diff --git a/0000Boot/0000Kernel.BIN.C b/0000Boot/0000Kernel.BIN.C index 26ecefd..aca1aa4 100644 Binary files a/0000Boot/0000Kernel.BIN.C and b/0000Boot/0000Kernel.BIN.C differ diff --git a/0000Boot/BootMHD2.BIN.C b/0000Boot/BootMHD2.BIN.C index 54fea16..6b2e602 100644 Binary files a/0000Boot/BootMHD2.BIN.C and b/0000Boot/BootMHD2.BIN.C differ diff --git a/TempleOS/Accts/Adam3aLocalize.CPP b/TempleOS/Accts/Adam3aLocalize.CPP index 0315c2c..6d7ed35 100644 --- a/TempleOS/Accts/Adam3aLocalize.CPP +++ b/TempleOS/Accts/Adam3aLocalize.CPP @@ -5,7 +5,7 @@ SetTypeMatic(0); //Set Time Zone -local_time_offset=0*60*60*CDATE_FREQ; +local_time_offset=0*60*60*CDATE_FREQ; //Do daylight savings by hand //$AN,"","mouse_move_scale"$adjust these to set mouse move scale mxx_scale=0.5; diff --git a/TempleOS/Accts/Adam3dKeyPlugIns.CPP b/TempleOS/Accts/Adam3dKeyPlugIns.CPP index 549ab4e..ce7b703 100644 --- a/TempleOS/Accts/Adam3dKeyPlugIns.CPP +++ b/TempleOS/Accts/Adam3dKeyPlugIns.CPP @@ -4,7 +4,7 @@ U0 FillInTime() { CDate cdt; - cdt=GetCurTimeDate; + cdt=GetDateTime; "$$IV,1$$----%D %T----$$IV,0$$\n",cdt,cdt; } @@ -86,21 +86,13 @@ Bool MyPutKey(I64 ch,I64 sc) if (!(sc & SCF_SHIFT)) SetKeyDesc("Cmd/Init WordStat LT"); } else if (!(sc & SCF_SHIFT)) - PopUp("WSInit(\"/TempleOS/\" FILENAME_MASK_TXT \";~*Bible.TXT*\");"); + PopUp("WSInit(\"/TempleOS/*;~*Bible.TXT*\");"); break; case SC_F7: - if (sc&SCF_KEY_DESC) { - if (sc & SCF_SHIFT) - SetKeyDesc("Dollar/Insert Hidden Widget"); - else - SetKeyDesc("Misc/Insert Datetime"); - } else { - if (sc & SCF_SHIFT) - DocInsSafe(DocPut, - "$$HS+C$$$$FG$$$$HE$$"); - else - FillInTime(); - } + if (sc&SCF_KEY_DESC) + SetKeyDesc("Misc/Insert Datetime"); + else + FillInTime; break; } return TRUE; @@ -134,7 +126,7 @@ Bool MyPutKey(I64 ch,I64 sc) SetKeyDesc("Edit/Put Link to Cur Pos on Clipboard"); else { ClipBoardDel; - DocPrintF(sys_clipboard_doc,"$$LK-A,\"FL:%s,%d\"$$", + DocPrint(sys_clipboard_doc,"$$LK-A,\"FL:%s,%d\"$$", DocPut->filename.name,DocPut->cur_entry->y+1); } return TRUE; @@ -144,7 +136,7 @@ Bool MyPutKey(I64 ch,I64 sc) else { i=RandU32; ClipBoardDel; - DocPrintF(sys_clipboard_doc,"$$LK,\"\",\"FA:%s,ANC%d\"$$", + DocPrint(sys_clipboard_doc,"$$LK,\"\",\"FA:%s,ANC%d\"$$", DocPut->filename.name,i); "$$AN,\"\",\"ANC%d\"$$",i; } @@ -170,9 +162,8 @@ Bool MyPutKey(I64 ch,I64 sc) return FALSE; } -Bool MyPutS(U8 *st) +Bool MyPutS(U8 *) { - nounusedwarn st; return FALSE; } diff --git a/TempleOS/Accts/Adam3eWrappers.CPP b/TempleOS/Accts/Adam3eWrappers.CPP index 23c1dbb..779512f 100644 --- a/TempleOS/Accts/Adam3eWrappers.CPP +++ b/TempleOS/Accts/Adam3eWrappers.CPP @@ -7,21 +7,21 @@ //Feel free to add more or change. public I64 F(U8 *pattern,U8 *fu_flags=NULL) { - return Grep(pattern,"/TempleOS/"FILENAME_MASK_TXT,fu_flags); + return Grep(pattern,"/TempleOS/*",fu_flags); } public I64 R(U8 *pattern,U8 *replace_text=NULL,U8 *fu_flags="+l-i") { - return Grep(pattern,"/TempleOS/"FILENAME_MASK_TXT,fu_flags,replace_text); + return Grep(pattern,"/TempleOS/*",fu_flags,replace_text); } public I64 FD(U8 *pattern,U8 *fu_flags=NULL) { - return Grep(pattern,FILENAME_MASK_TXT,fu_flags); + return Grep(pattern,"*",fu_flags); } public I64 RD(U8 *pattern,U8 *replace_text=NULL,U8 *fu_flags="+l-i") { - return Grep(pattern,FILENAME_MASK_TXT,fu_flags,replace_text); + return Grep(pattern,"*",fu_flags,replace_text); } #help_index "" diff --git a/TempleOS/Accts/Adam3fSys.CPP b/TempleOS/Accts/Adam3fSys.CPP index 28412ae..25b08a8 100644 --- a/TempleOS/Accts/Adam3fSys.CPP +++ b/TempleOS/Accts/Adam3fSys.CPP @@ -23,17 +23,17 @@ U0 SrvStartUp() U0 StartUpTasks() { - CTask *task1,*task2; - task1=SpawnUser; - task2=SpawnUser; - WinToTop(task1); + CTask *user1,*user2; + user1=SpawnUser; + user2=SpawnUser; + WinToTop(user1); WinTileVert; if (!IsSysDeterministic) PopUp("#include \"::/TempleOS/Adam/Start\";"); - AdamLog("Boot Time:%7.3fs\n",tS); - XTalk(task1,"#include \"DoItOnce\";\n"); + "Boot Time:%7.3fs\n",tS; + XTalk(user1,"Cd(\"HOME\");#include \"DoItOnce\";\n"); Silent(ON); //no output to screen - WSInit("/TempleOS/" FILENAME_MASK_TXT ";~*Bible.TXT*"); + WSInit("/TempleOS/*;~*Bible.TXT*"); Silent(OFF); //no output to screen } diff --git a/TempleOS/Accts/Install/Adam3fSys.CPP b/TempleOS/Accts/Install/Adam3fSys.CPP index f2347df..d155dbd 100644 --- a/TempleOS/Accts/Install/Adam3fSys.CPP +++ b/TempleOS/Accts/Install/Adam3fSys.CPP @@ -22,13 +22,13 @@ U0 SrvStartUp() U0 StartUpTasks() { - CTask *task1,*task2; - task1=SpawnUser; - task2=SpawnUser; - WinToTop(task1); + CTask *user1,*user2; + user1=SpawnUser; + user2=SpawnUser; + WinToTop(user1); WinTileVert; - AdamLog("Boot Time:%7.3fs\n",tS); - XTalk(task1,"#include \"DoItOnce\";\n"); + "Boot Time:%7.3fs\n",tS; + XTalk(user1,"Cd(\"HOME\");#include \"DoItOnce\";\n"); Silent(ON); //no output to screen WSInit; Silent(OFF); //no output to screen diff --git a/TempleOS/Accts/Install/DoItOnce.CPP b/TempleOS/Accts/Install/DoItOnce.CPP index 330840c..2422ac8 100644 --- a/TempleOS/Accts/Install/DoItOnce.CPP +++ b/TempleOS/Accts/Install/DoItOnce.CPP @@ -13,13 +13,13 @@ U0 VMInstallBoot(CTask *task,U8 cd_drv,U8 drv,U8 *acct_name, { U8 *st1,*st2; - st1=MSPrintF("%C:/",cd_drv); - st2=MSPrintF("%C:/",drv); + st1=MPrint("%C:/",cd_drv); + st2=MPrint("%C:/",drv); CopyTree(st1,st2); Free(st1); Free(st2); - st1=MSPrintF("%C:/TempleOS/Accts/%s",drv,acct_name); + st1=MPrint("%C:/TempleOS/Accts/%s",drv,acct_name); MkDir(st1); Copy("::/TempleOS/Demo/MakeDistro.CPP.Z",st1); Free(st1); @@ -119,9 +119,9 @@ U0 RegularInstallWizard() if (1<=A2I(base0)<=num_hints) { tempha=ATARepFind(&root,A2I(base0)); Free(base0); - base0=MSPrintF("0x%X",tempha->base0); - base1=MSPrintF("0x%X",tempha->base1); - ms =MSPrintF("0x%X",tempha->unit); + base0=MPrint("0x%X",tempha->base0); + base1=MPrint("0x%X",tempha->base1); + ms =MPrint("0x%X",tempha->unit); unit=A2I(ms); } else { while (TRUE) { @@ -151,8 +151,8 @@ U0 RegularInstallWizard() } NewLine; - st1=MSPrintF("%C:/TempleOS",*sys_acct); - st2=MSPrintF("%C:/TempleOS",*dst); + st1=MPrint("%C:/TempleOS",*sys_acct); + st2=MPrint("%C:/TempleOS",*dst); "$$FG,RED$$Format %C Partition?$$FG$$\n",*dst; if (YorN) { @@ -179,14 +179,14 @@ U0 RegularInstallWizard() NewLine; } CopyTree(st1,st2); - st2=MSPrintF("%C:/0000Boot",*dst); + st2=MPrint("%C:/0000Boot",*dst); MkDir(st2); Free(st2); - st2=MSPrintF("%C:/Temp",*dst); + st2=MPrint("%C:/Temp",*dst); MkDir(st2); Free(st2); - new_home_str=MSPrintF("%C:/TempleOS/Accts/%s",*dst,acct_name); + new_home_str=MPrint("%C:/TempleOS/Accts/%s",*dst,acct_name); MkDir(new_home_str); Copy("::/TempleOS/Demo/MakeDistro.CPP.Z",new_home_str); XTalkWait(task, diff --git a/TempleOS/Accts/PersonalMenu.TXT b/TempleOS/Accts/PersonalMenu.TXT index 001a626..241dac5 100644 Binary files a/TempleOS/Accts/PersonalMenu.TXT and b/TempleOS/Accts/PersonalMenu.TXT differ diff --git a/TempleOS/Accts/TS/Adam3bPkgs.CPP b/TempleOS/Accts/TS/Adam3bPkgs.CPP index 7001c54..e8a5385 100644 --- a/TempleOS/Accts/TS/Adam3bPkgs.CPP +++ b/TempleOS/Accts/TS/Adam3bPkgs.CPP @@ -5,4 +5,5 @@ Cd("HOME");; #include "/TempleOS/Accts/TS/TSAdam" #include "/TempleOS/Accts/TS/TSDistro" +#include "/TempleOS/Accts/TS/TSHolySpirit" Cd("HOME");; diff --git a/TempleOS/Accts/TS/Adam3dKeyPlugIns.CPP b/TempleOS/Accts/TS/Adam3dKeyPlugIns.CPP index 60a6a03..8482202 100644 --- a/TempleOS/Accts/TS/Adam3dKeyPlugIns.CPP +++ b/TempleOS/Accts/TS/Adam3dKeyPlugIns.CPP @@ -4,51 +4,13 @@ U0 FillInTime() { CDate cdt; - cdt=GetCurTimeDate; + cdt=GetDateTime; "$$IV,1$$----%D %T----$$IV,0$$\n",cdt,cdt; } -U0 RandQuote(I64 num) -{ //$LK-A,"::/TempleOS/Apps/HolySpirit/HSNotes.TXT"$ - I64 i,size,l=512; - U8 *bible_filename=Define("ST_BIBLE_FILE"), - *buf=FileRead(bible_filename,&size); - if (buf) { - i=num%(size-l); - buf[i+l]=0; - "" buf+i; - Free(buf); - } -} - -U0 BadCodeJump(I64 num) -{ //$LK-A,"::/TempleOS/Apps/HolySpirit/HSNotes.TXT"$ - CDirEntry *root=FilesFind("/TempleOS/*",FUF_JUST_FILES|FUF_RECURSE|FUF_FLATTEN_TREE|FUF_JUST_SRC_FILES), - *tempm=root; - I64 cnt=0; - CDoc *doc; - U8 *st; - while (tempm) { - doc=DocRead(tempm->full_name); - tempm->user_data=doc->root.y; - cnt+=doc->root.y; - DocDel(doc); - tempm=tempm->next; - } - num=num%cnt; - tempm=root; - while (tempm) { - num-=tempm->user_data; - if (num<0) { - st=MSPrintF("FL:%s,%d",tempm->full_name,-num); - break; - } - tempm=tempm->next; - } - CDirLstDel(root); - Ed(st); - Free(st); -} +#define WS_F6 0 +#define WS_SHIFT_F6 1 +I64 my_wordstat=WS_F6; Bool MyPutKey(I64 ch,I64 sc) { //ch=ASCII; sc=scancode @@ -64,7 +26,7 @@ Bool MyPutKey(I64 ch,I64 sc) //Return TRUE if you completely //handled the key. - I64 i,sc2=sc.u8[0]; + I64 i,sc2=sc.u8[0],old_wordstat; if (SC_F1<=sc2<=SC_F10 && sc&SCF_ALT && @@ -130,10 +92,24 @@ Bool MyPutKey(I64 ch,I64 sc) SetKeyDesc("God Word"); } else { //$LK-A,"::/TempleOS/Apps/HolySpirit/HSNotes.TXT"$ + DocRecalc(DocPut); + if (DocPut->cur_entry->settings->cur_text_attr&0xF!=RED) + "$$FG,RED$$"; if (sc & SCF_SHIFT) - RandQuote(KbdMouseEvtTime>>4); - else - "%s ",ws_sorted_words[KbdMouseEvtTime>>4%ws_num_words]->str; + RandQuote; + else { + if (my_wordstat!=WS_SHIFT_F6) { + old_wordstat=TaskValidate(ws_task); + my_wordstat=WS_SHIFT_F6; + PopUp("WSInit(\"::/TempleOS/Apps/HolySpirit/Vocab.TXT*\");"); + while (!Bt(&ws_flags,WSf_INIT_IN_PROGRESS)) //Kinda risky + Yield; + while (Bt(&ws_flags,WSf_INIT_IN_PROGRESS)) + Yield; + WordStat(old_wordstat); + } + RandWord; + } } break; case SC_F6: @@ -143,24 +119,32 @@ Bool MyPutKey(I64 ch,I64 sc) else SetKeyDesc("Cmd/Init WordStat TempleOS"); } else { - if (sc & SCF_SHIFT) + old_wordstat=TaskValidate(ws_task); + if (sc & SCF_SHIFT) { + my_wordstat=WS_SHIFT_F6; PopUp("WSInit(\"::/TempleOS/Apps/HolySpirit/Vocab.TXT*\");"); - else - PopUp("WSInit(\"::/TempleOS/\" FILENAME_MASK_TXT \";~*Bible.TXT*\");"); + } else { + my_wordstat=WS_F6; + PopUp("WSInit(\"::/TempleOS/*;~*Bible.TXT*\");"); + } + while (!Bt(&ws_flags,WSf_INIT_IN_PROGRESS)) //Kinda risky + Yield; + while (Bt(&ws_flags,WSf_INIT_IN_PROGRESS)) + Yield; + WordStat(old_wordstat); } break; case SC_F7: if (sc&SCF_KEY_DESC) { if (sc & SCF_SHIFT) - SetKeyDesc("Dollar/Insert Hidden Widget"); + SetKeyDesc("Misc/Insert My URL"); else SetKeyDesc("Misc/Insert Datetime"); } else { if (sc & SCF_SHIFT) - DocInsSafe(DocPut, - "$$HS+C$$$$FG$$$$HE$$"); + FillInMyURL; else - FillInTime(); + FillInTime; } break; } @@ -201,7 +185,7 @@ Bool MyPutKey(I64 ch,I64 sc) SetKeyDesc("Edit/Put Link to Cur Pos on Clipboard"); else { ClipBoardDel; - DocPrintF(sys_clipboard_doc,"$$LK-A,\"FL:%s,%d\"$$", + DocPrint(sys_clipboard_doc,"$$LK-A,\"FL:%s,%d\"$$", DocPut->filename.name,DocPut->cur_entry->y+1); } return TRUE; @@ -211,7 +195,7 @@ Bool MyPutKey(I64 ch,I64 sc) else { i=RandU32; ClipBoardDel; - DocPrintF(sys_clipboard_doc,"$$LK,\"\",\"FA:%s,ANC%d\"$$", + DocPrint(sys_clipboard_doc,"$$LK,\"\",\"FA:%s,ANC%d\"$$", DocPut->filename.name,i); "$$AN,\"\",\"ANC%d\"$$",i; } @@ -235,7 +219,14 @@ Bool MyPutKey(I64 ch,I64 sc) if (sc&SCF_KEY_DESC) SetKeyDesc("Cmd/Jump to Bad Code"); else //$LK-A,"::/TempleOS/Apps/HolySpirit/HSNotes.TXT"$ - BadCodeJump(KbdMouseEvtTime>>4); + BadCodeJump; + return TRUE; + + case 'g': + if (sc&SCF_KEY_DESC) + SetKeyDesc("Godle"); + else //$LK-A,"::/TempleOS/Apps/HolySpirit/HSNotes.TXT"$ + Godle; //God drawing return TRUE; case 'p': @@ -257,9 +248,8 @@ Bool MyPutKey(I64 ch,I64 sc) return FALSE; } -Bool MyPutS(U8 *st) +Bool MyPutS(U8 *) { - nounusedwarn st; return FALSE; } diff --git a/TempleOS/Accts/TS/Adam3fSys.CPP b/TempleOS/Accts/TS/Adam3fSys.CPP index cff1eaa..cc8c11d 100644 --- a/TempleOS/Accts/TS/Adam3fSys.CPP +++ b/TempleOS/Accts/TS/Adam3fSys.CPP @@ -40,13 +40,13 @@ U0 StartUpTasks() WinTileVert; if (!IsSysDeterministic) PopUp("#include \"::/TempleOS/Adam/Start\";"); - AdamLog("Boot Time:%7.3fs\n",tS); - XTalk(user1,"#include \"DoItOnce\";\n"); + "Boot Time:%7.3fs\n",tS; + XTalk(user1,"Cd(\"HOME\");#include \"DoItOnce\";\n"); Silent(ON); if (!IsSysDeterministic) - WSInit("/TempleOS/" FILENAME_MASK_TXT ";~*Bible.TXT*"); + WSInit("/TempleOS/*;~*Bible.TXT*"); Silent(OFF); - AdamLog("WordStat Time:%7.3fs\n",tS); + "WordStat Time:%7.3fs\n",tS; if (ts_has_win_drv) DrvEnable(TS_WIN_DRV_LET,OFF); } diff --git a/TempleOS/Accts/TS/PersonalMenu.TXT b/TempleOS/Accts/TS/PersonalMenu.TXT index 48ea010..8ec94ed 100644 Binary files a/TempleOS/Accts/TS/PersonalMenu.TXT and b/TempleOS/Accts/TS/PersonalMenu.TXT differ diff --git a/TempleOS/Accts/TS/TAD/Adam3.CPP b/TempleOS/Accts/TS/TAD/Adam3.CPP index 0fa67b9..315588a 100644 --- a/TempleOS/Accts/TS/TAD/Adam3.CPP +++ b/TempleOS/Accts/TS/TAD/Adam3.CPP @@ -1,12 +1,10 @@ //Change anything you want in this //acct file or others. -#exe {OptOn(OPTf_WARN_PAREN);}; -#exe {OptOn(OPTf_WARN_DUP_TYPES);}; +OptOn(OPTf_WARN_PAREN); +OptOn(OPTf_WARN_DUP_TYPES); #include "HOME/Adam3aLocalize" #include "HOME/Adam3bPkgs" #include "HOME/Adam3dKeyPlugIns" #include "HOME/Adam3eWrappers" #include "HOME/Adam3fSys" -#exe {OptOff(OPTf_WARN_PAREN);}; -#exe {OptOff(OPTf_WARN_DUP_TYPES);}; diff --git a/TempleOS/Accts/TS/TAD/Archive/DiningStars.CPP b/TempleOS/Accts/TS/TAD/Archive/DiningStars.CPP new file mode 100644 index 0000000..5a2e180 --- /dev/null +++ b/TempleOS/Accts/TS/TAD/Archive/DiningStars.CPP @@ -0,0 +1,771 @@ +//This uses $LK,"fixed-point","FI:::/TempleOS/Demo/Lectures/FixedPoint.CPP"$. + + +AcctRegSetDftEntry("TempleOS/DiningStars","F64 best_score=9999;\n"); +AcctRegExeBranch("TempleOS/DiningStars"); + +#define PERSON_SCALE 6.0 + + + + + + + + + + + $SP,"<1>",1$ + + + + + + + + + + $SP,"<2>",2$ + + + + + + + + + $SP,"<3>",3$ + + + + + + +#define PLANT_SCALE 6.0 + + + + $SP,"<4>",4$ + + + + + + + + + + + + + + + $SP,"<5>",5$ + + + + + + + +class Wall +{ + Wall *next,*last; + CD3I32 p1,p2; + I64 cpu_num; +} walls_root; + + + + +#define SCREEN_SCALE 1024 +#define PLOT_GRID_WIDTH 24 +#define PLOT_GRID_HEIGHT 24 +#define MAN_HEIGHT 300 +#define WALL_HEIGHT 1.0 +#define BLUEPRINT_SCALE 4 + +CDC *blueprint_dc; +I64 blueprint_width,blueprint_height; +U8 *blueprint=NULL, + *panels_processed=NULL; + +I64 man_xx,man_yy; +F64 man_é; + +F64 t0,tf; + +#define NUM_PERSONS 16 +class Person +{ + I64 x,y; +} persons[NUM_PERSONS]; + +U0 DSTransform(CDC *dc,I64 *x,I64 *y,I64 *z) +{ + I64 zz; + GrRot(dc->r,x,y,z); + zz=SCREEN_SCALE/3+*z; + if (zz<1) zz=1; + *x=SCREEN_SCALE/2* *x/zz; + *y=SCREEN_SCALE/2* (*y+MAN_HEIGHT)/zz; + *x+=dc->x; + *y+=dc->y; + *z+=dc->z; +} + +public U0 DSLighting(CDC *dc,CD3I32 *p1,CD3I32 *p2,CD3I32 *p3,CColorROPU32 color) +{ + CD3I32 v1,v2; + I64 i,vn_x,vn_y,vn_z; + F64 d; + + v1.x=p1->x-p2->x; + v1.y=p1->y-p2->y; + v1.z=p1->z-p2->z; + + v2.x=p3->x-p2->x; + v2.y=p3->y-p2->y; + v2.z=p3->z-p2->z; + +//V1 and V2 are vects along two sides +//of the tri joined at p2. + + vn_x=v1.y*v2.z-v1.z*v2.y; + vn_y=v1.z*v2.x-v1.x*v2.z; + vn_z=v1.x*v2.y-v1.y*v2.x; + if (d=Sqrt(SqrI64(vn_x)+SqrI64(vn_y)+SqrI64(vn_z))) + d=1<<16/d; + vn_x*=d; + vn_y*=d; + vn_z*=d; +//Vn is the cross product of V1 and V3 +//which means it is perpendicular. It +//is the normal vect to the surface. +//It has been scaled to length 65536. + +//Light source has been scaled to length 65536. + i=(vn_x*dc->ls.x+vn_y*dc->ls.y+vn_z*dc->ls.z)>>16; + + i=(0x8000+i)>>1;//Tables are too dark ****TODO**** + +//The dot product of the light source +//vect and the surface normal +//gives an illumination number. +//65536*65536>>16=65536 + +//TempleOS will generate a random U16 +//and compare to dither_probability and +//will pick from two colors. +//Probability dithering does not work with pen_width>1 at this time. + if (color.c0.rop&ROPBF_TWO_SIDED) { + color.c0.rop&=~ROPBF_TWO_SIDED; + i=AbsI64(i)<<1; + } else + i+=65536; + if (color.c0.rop&ROPBF_HALF_RANGE_COLOR) { + color.c0.rop&=~ROPBF_HALF_RANGE_COLOR; + i>>=1; + if (color>=8) { + color-=8; + i+=65536; + } + } + if (i<65536) { + dc->color=ROPF_PROBABILITY_DITHER+color<<16+BLACK; + dc->dither_probability=i; + } else { + dc->color=ROPF_PROBABILITY_DITHER+(color^8)<<16+color; + dc->dither_probability=i-65536; + } +} + +#define LOS_SCALE 4 + +Bool LOSPlot(U8 *,I64 x,I64 y,I64) +{ + if (blueprint[(y/LOS_SCALE)*blueprint_width+(x/LOS_SCALE)]==WHITE) + return FALSE; + else + return TRUE; +} + +Bool LOS(I64 x1,I64 y1,I64 x2,I64 y2) +{ //Line of sight + return LOSLine(NULL,x1*LOS_SCALE/SCREEN_SCALE,y1*LOS_SCALE/SCREEN_SCALE,0, + x2*LOS_SCALE/SCREEN_SCALE,y2*LOS_SCALE/SCREEN_SCALE,0,&LOSPlot); +} + +I64 mp_not_done_flags; +I64 *r1,*r2,*r3,*s2w,cx,cy,xh,yh,zh,x1h,y1h; + +U0 MPDrawWalls(CDC *_dc) +{ + CD3I32 poly[4]; + I64 i,j,n,cpu_num=Gs->num,xx,yy,x,y,x1,y1,z1,x2,y2,_x1h,_y1h,dx,dy,xx1,yy1,xx2,yy2, + c,x1w,y1w,*_r3=MAllocIdentical(r3); + Wall *tempw; + CDC *dc=MAllocIdentical(_dc); + dc->r=MAllocIdentical(_dc->r); + _x1h=x1h-xh*cpu_num; + _y1h=y1h-yh*cpu_num; + for (j=cpu_num;jcolor=BROWN; + else + dc->color=c; + poly[0].x=x; + poly[0].y=y; + poly[0].z=0; + poly[1].x=x+SCREEN_SCALE; + poly[1].y=y; + poly[1].z=0; + poly[2].x=x+SCREEN_SCALE; + poly[2].y=y+SCREEN_SCALE; + poly[2].z=0; + poly[3].x=x; + poly[3].y=y+SCREEN_SCALE; + poly[3].z=0; + GrFillPoly3(dc,4,poly); + if (!((yy*blueprint_width+xx)%3)) { + if (c==GREEN) { + x1=x+SCREEN_SCALE/2; + y1=y+SCREEN_SCALE/2; + z1=0; + GrTransform(dc,&x1,&y1,&z1); + if (z1>0) + SpritePlotRotMat3B(dc,x+SCREEN_SCALE/2,y+SCREEN_SCALE/2,0,$IB,"<4>",4$,_r3); + } else if (c==BROWN) { + x1=x+SCREEN_SCALE/2; + y1=y+SCREEN_SCALE/2; + z1=0; + GrTransform(dc,&x1,&y1,&z1); + if (z1>0) + SpritePlotRotMat3B(dc,x+SCREEN_SCALE/2,y+SCREEN_SCALE/2,0,$IB,"<5>",5$,_r3); + } + } + } + } + x1w-=yh; + y1w+=xh; + } + _x1h-=xh*mp_cnt; + _y1h-=yh*mp_cnt; + } + + tempw=walls_root.next; + while (tempw!=&walls_root) { + if (tempw->cpu_num==cpu_num) { + dc->color=YELLOW; + x1=tempw->p1.x*SCREEN_SCALE/BLUEPRINT_SCALE-man_xx; + y1=tempw->p1.y*SCREEN_SCALE/BLUEPRINT_SCALE-man_yy; + x2=tempw->p2.x*SCREEN_SCALE/BLUEPRINT_SCALE-man_xx; + y2=tempw->p2.y*SCREEN_SCALE/BLUEPRINT_SCALE-man_yy; + + //The foreshortening distorts Z coordinates in a funny way, + //so we do the wall in tiny pieces. + n=2*(AbsI64(x2-x1)+AbsI64(y2-y1))/SCREEN_SCALE; + if (n<1) n=1; + dx=(x2-x1)<<16/n; + dy=(y2-y1)<<16/n; + xx1=x1<<16; + yy1=y1<<16; + for (i=0;i>16; + poly[0].y=yy1>>16; + poly[0].z=0; + poly[1].x=xx2>>16; + poly[1].y=yy2>>16; + poly[1].z=0; + poly[2].x=xx2>>16; + poly[2].y=yy2>>16; + poly[2].z=WALL_HEIGHT*SCREEN_SCALE; + poly[3].x=xx1>>16; + poly[3].y=yy1>>16; + poly[3].z=WALL_HEIGHT*SCREEN_SCALE; + GrFillPoly3(dc,4,poly); + xx1=xx2; yy1=yy2; + } + dc->color=BLACK; + dc->pen_width=1; + GrLine3(dc,x1,y1,0,x1,y1,WALL_HEIGHT*SCREEN_SCALE); + GrLine3(dc,x2,y2,0,x2,y2,WALL_HEIGHT*SCREEN_SCALE); + } + tempw=tempw->next; + } + Free(_r3); + Free(dc->r); + Free(dc); + LBtr(&mp_not_done_flags,cpu_num); +} + +U0 DrawIt(CTask *task,CDC *dc) +{ + I64 i,j,xx,yy,zz,x,y; + U8 *temps; + F64 tt; + + cx=task->win_pixel_width/2; + cy=task->win_pixel_height/2; + + DCAllocDepthBuf(dc); + MemSet(panels_processed,0,(blueprint_width*blueprint_height+7)>>3); + + //World to screen + GrRotZEqu(dc->r,man_é+ã/2); + GrRotXEqu(dc->r,ã/2); + GrSetRotMat(dc,dc->r); + + xh=-man_xx/SCREEN_SCALE; yh=-man_yy/SCREEN_SCALE; zh=0; + GrRot(dc->r,&xh,&yh,&zh); + GrSetTranslation(dc->r,xh,yh,zh); + + //Screen to world + s2w=GrRotX(-ã/2,task); + GrRotZEqu(s2w,-man_é-ã/2); + xh=0; yh=0; zh=SCREEN_SCALE; + GrRot(s2w,&xh,&yh,&zh); + + //Rotate light source + xx=dc->ls.x; yy=dc->ls.y; zz=-dc->ls.z; + (*dc->transform)(dc,&xx,&yy,&zz); + dc->ls.x=xx; dc->ls.y=yy; dc->ls.z=zz; + + dc->flags|=DCF_TRANSFORMATION; + dc->transform=&DSTransform; + dc->lighting=&DSLighting; + dc->x=cx; + dc->y=cy; + r1=GrRotX(-ã/2,task); + GrRotZEqu(r1,tT); + GrScaleMatEqu(r1,PERSON_SCALE); + + r2=GrIdent(task); + GrScaleMatEqu(r2,PERSON_SCALE); + + r3=GrRotX(-ã/2,task); + GrScaleMatEqu(r3,PLANT_SCALE); + + x1h=man_xx+yh*PLOT_GRID_WIDTH/2+xh*(PLOT_GRID_HEIGHT-1); + y1h=man_yy-xh*PLOT_GRID_WIDTH/2+yh*(PLOT_GRID_HEIGHT-1); + xh>>=1; yh>>=1; + + mp_not_done_flags=1<0) { + tt=2*Tri(tT,1.0); + if (tt<1.0) + temps=SpriteInterpolate($IB,"<2>",2$,$IB,"<1>",1$,tt); + else + temps=SpriteInterpolate($IB,"<1>",1$,$IB,"<3>",3$,tt-1.0); + SpritePlotRotMat3B(dc,x,y,0,temps,r1); + Free(temps); + } + } + } + Free(r1); + Free(r2); + Free(r3); + + //Draw BluePrint heads-up display, scaled 2 pixels + Free(dc->r); + GrSetRotMat(dc,GrIdent(task)); + dc->x=task->win_pixel_width -2*blueprint_width; + dc->y=task->win_pixel_height-2*blueprint_height; + dc->z=0; + dc->transform=&GrTransform; + dc->pen_width=2; + for (i=0;icolor=blueprint[(blueprint_height-1-i)*blueprint_width+j]; + GrPlot3(dc,2*j,2*i,0); + } + + //Draw Things on heads-up BluePrint + dc->color=LTPURPLE; + for (i=0;icolor=LTCYAN; + GrPlot3(dc,2*(man_xx/SCREEN_SCALE),2*(blueprint_height-1-man_yy/SCREEN_SCALE),0); + + dc->color=LTGREEN; + GrLine(dc,cx-5,cy,cx+5,cy); + GrLine(dc,cx,cy-5,cx,cy+5); + Free(s2w); +} + +U0 BluePrintDrawIt(CTask *task,CDC *dc) +{ + task->text_attr=BLUE<<4+WHITE; + GrBlot(dc,(task->win_pixel_width-blueprint_dc->width)>>1, + (task->win_pixel_height-blueprint_dc->height)>>1,blueprint_dc); +} + +#define MAN_START_X 0 +#define MAN_START_Y 1 + +U0 MakeBluePrint() +{ + I64 msg_code,i,x1,y1,x2,y2,p1,p2,color=WHITE,cpu_num=0; + Wall *tempw; + + DCFill(blueprint_dc,LTBLUE); + + SettingsPush; //See $LK,"SettingsPush","MN:SettingsPush"$ + Fs->win_inhibit=WIF_ALL-WIF_BORDER; + DocClear; + +"Draw Floor Plan: + +Walls in WHITE +Tables in BROWN +Plants in GREEN +"; + + WinMax; + WordStat; + Fs->draw_it=&BluePrintDrawIt; + + do { + msg_code=GetMsg(&p1,&p2, + 1<=0) color=i; + break; + case MSG_IP_L_DOWN: + if (color==WHITE) { + p1-=(Fs->win_pixel_width-blueprint_dc->width)>>1; + p2-=(Fs->win_pixel_height-blueprint_dc->height)>>1; + x1=p1; y1=p2; + x2=p1; y2=p2; + blueprint_dc->color=ROP_XOR+color^LTBLUE; + while (msg_code!=MSG_IP_L_UP) { + GrLine(blueprint_dc,x1,y1,x2,y2); + msg_code=GetMsg(&p1,&p2, + 1<win_pixel_width-blueprint_dc->width)>>1; + p2-=(Fs->win_pixel_height-blueprint_dc->height)>>1; + GrLine(blueprint_dc,x1,y1,x2,y2); + x2=p1; y2=p2; + } + blueprint_dc->color=color; + GrLine(blueprint_dc,x1,y1,x2,y2); + + tempw=CAlloc(sizeof(Wall)); + tempw->p1.x=x1; + tempw->p1.y=blueprint_dc->height-y1; + tempw->p2.x=x2; + tempw->p2.y=blueprint_dc->height-y2; + tempw->cpu_num=cpu_num++%mp_cnt; + QueIns(tempw,walls_root.last); + } else { + p1-=(Fs->win_pixel_width-blueprint_dc->width)>>1; + p2-=(Fs->win_pixel_height-blueprint_dc->height)>>1; + x1=p1; y1=p2; + x2=p1; y2=p2; + blueprint_dc->color=ROP_XOR+color^LTBLUE; + while (msg_code!=MSG_IP_L_UP) { + GrRectB(blueprint_dc,x1,y1,x2,y2); + msg_code=GetMsg(&p1,&p2, + 1<win_pixel_width-blueprint_dc->width)>>1; + p2-=(Fs->win_pixel_height-blueprint_dc->height)>>1; + GrRectB(blueprint_dc,x1,y1,x2,y2); + x2=p1; y2=p2; + } + blueprint_dc->color=color; + GrRectB(blueprint_dc,x1,y1,x2,y2); + } + break; + case MSG_KEY_DOWN: + break; + } + } while (msg_code!=MSG_KEY_DOWN || !p1); + GetMsg(,,1<width/BLUEPRINT_SCALE; + blueprint_height=blueprint_dc->height/BLUEPRINT_SCALE; + Free(blueprint); + Free(panels_processed); + blueprint=MAlloc(blueprint_width*blueprint_height*sizeof(U8)); + MemSet(blueprint,WHITE,blueprint_width*blueprint_height); + panels_processed=MAlloc((blueprint_width*blueprint_height+7)>>3); + + for (y=1;ySCREEN_SCALE/2 || + blueprint[(y/SCREEN_SCALE)*blueprint_width+x/SCREEN_SCALE-1]==WHITE && + x-RoundI64(x,SCREEN_SCALE)SCREEN_SCALE/2 || + blueprint[(y/SCREEN_SCALE-1)*blueprint_width+x/SCREEN_SCALE]==WHITE && + y-RoundI64(y,SCREEN_SCALE)task_end_cb=&SndTaskEndCB; + MusicSettingsRst; + while (TRUE) { + Play("2q.A#1eG2AeA#qAq.A#1eG2eAeA#qA"); + Play("q.A#1eG2A#A1qG2q.A#1eG2A#A1qG"); + Play("3eA#A2qG3eA#A2qG3eA#A2G3AA#A2qG"); + } +} + +U0 MoveMan(F64 é) +{ + I64 x,y,color,step=SCREEN_SCALE/2; + do { + x=man_xx+step*Cos(é); + y=man_yy-step*Sin(é); + x=Limit(x,0,blueprint_width*SCREEN_SCALE); + y=Limit(y,0,blueprint_height*SCREEN_SCALE); + color=blueprint[y/SCREEN_SCALE*blueprint_width+x/SCREEN_SCALE]; + if (color==LTBLUE || color==GREEN) { + man_xx=x; + man_yy=y; + break; + } else + step>>=1; + } while (step); +} + +#define MICRO_STEPS 4 +U0 RotateMan(F64 d) +{ + I64 i; + for (i=0;itext_attr=BROWN<<4+WHITE; + Preempt(OFF); + WinBorder; + WinMax; + WordStat; + Init; + Fs->animate_task=Spawn(&AnimateTask,NULL,"Animate",,Fs); + Fs->song_task=Spawn(&SongTask,NULL,"Song",,Fs); + DocCursor; + Fs->draw_it=&DrawIt; + + try { + while (TRUE) { + switch (GetKey(&sc)) { + case CH_ESC: + case CH_SHIFT_ESC: + goto fs_done; + case 0: + switch (sc.u8[0]) { + case SC_CURSOR_RIGHT: + Spawn(&RotateMan,(ã/32)(I64)); + break; + case SC_CURSOR_LEFT: + Spawn(&RotateMan,(-ã/32)(I64)); + break; + case SC_CURSOR_UP: + MoveMan(man_é); + break; + case SC_CURSOR_DOWN: + MoveMan(man_é+ã); + break; + } + break; + } + } +fs_done: + } catch + CatchAll; + DocClear; + SettingsPop; + CleanUp; + MenuPop; + AcctRegWriteBranch("TempleOS/DiningStars","F64 best_score=%5.4f;\n",best_score); +} + +DiningStars; +,ÎÿÿÿÎÿÿÿûÿÿÿçÿÿÿûÿÿÿçÿÿÿµÿÿÿ�ÿÿÿƒÿÿÿ�ÿÿÿâÿÿÿµÿÿÿâÿÿÿûÿÿÿÎÿÿÿûÿÿÿÎÿÿÿûÿÿÿûÿÿÿçÿÿÿûÿÿÿûÿÿÿçÿÿÿûÿÿÿµÿÿÿûÿÿÿ�ÿÿÿûÿÿÿ�ÿÿÿâÿÿÿûÿÿÿµÿÿÿâÿÿÿ�ÿÿÿµÿÿÿâÿÿÿµÿÿÿâÿÿÿ�ÿÿÿ�ÿÿÿûÿÿÿµÿÿÿûÿÿÿâÿÿÿµÿÿÿûÿÿÿâÿÿÿ�ÿÿÿûÿÿÿ  +  + +        +  + +   + ÷ÿÿÿ÷ÿÿÿñÿÿÿ÷ÿÿÿ ôÿÿÿ ÷ÿÿÿ øÿÿÿçÿÿÿìÿÿÿçÿÿÿìÿÿÿçÿÿÿøÿÿÿøÿÿÿçÿÿÿðÿÿÿçÿÿÿðÿÿÿçÿÿÿøÿÿÿçÿÿÿçÿÿÿ      +     + + +        +$EºÿÿÿÝÿÿÿÈÿÿÿÝÿÿÿÈÿÿÿëÿÿÿºÿÿÿëÿÿÿºÿÿÿÏÿÿÿÝÿÿÿÈÿÿÿÏÿÿÿÝÿÿÿÈÿÿÿÏÿÿÿëÿÿÿºÿÿÿÏÿÿÿëÿÿÿ7ÝÿÿÿEÝÿÿÿEëÿÿÿ7ëÿÿÿ7ÏÿÿÿÝÿÿÿEÏÿÿÿÝÿÿÿEÏÿÿÿëÿÿÿ7Ïÿÿÿëÿÿÿ7EE"7"7ÏÿÿÿEÏÿÿÿEÏÿÿÿ"7Ïÿÿÿ"ºÿÿÿÈÿÿÿÈÿÿÿ"ºÿÿÿ"ºÿÿÿÏÿÿÿÈÿÿÿÏÿÿÿÈÿÿÿÏÿÿÿ"ºÿÿÿÏÿÿÿ"ºÿÿÿÈÿÿÿÝÿÿÿEÈÿÿÿÝÿÿÿEÈÿÿÿ"ºÿÿÿÈÿÿÿ" +  +    + +     +   + +            #"!#! #  ##"# !! "!  "" Êp¨­ÿÿÿûÿÿÿûÿÿÿ­ÿÿÿûÿÿÿ·ÿÿÿûÿÿÿûÿÿÿ·ÿÿÿûÿÿÿ­ÿÿÿûÿÿÿ­ÿÿÿ·ÿÿÿûÿÿÿ·ÿÿÿ +·ÿÿÿûÿÿÿöÿÿÿ·ÿÿÿûÿÿÿ +ÚÿÿÿûÿÿÿöÿÿÿÚÿÿÿûÿÿÿ +·ÿÿÿöÿÿÿ·ÿÿÿ +ÚÿÿÿöÿÿÿÚÿÿÿºÿÿÿüÿÿÿ ¼ÿÿÿþÿÿÿÉÿÿÿËÿÿÿ¶ÿÿÿ ¸ÿÿÿÅÿÿÿ Çÿÿÿ ÊÿÿÿÌÿÿÿÒÿÿÿÔÿÿÿÄÿÿÿÆÿÿÿ +ÌÿÿÿÎÿÿÿÑÿÿÿÓÿÿÿÕÿÿÿ×ÿÿÿÍÿÿÿÏÿÿÿÑÿÿÿÓÿÿÿöÿÿÿ¸ÿÿÿÿÿÿÿòÿÿÿ¸ÿÿÿóÿÿÿÇÿÿÿöÿÿÿïÿÿÿÇÿÿÿøÿÿÿöÿÿÿºÿÿÿòÿÿÿºÿÿÿóÿÿÿÉÿÿÿúÿÿÿïÿÿÿÉÿÿÿüÿÿÿóÿÿÿÇÿÿÿöÿÿÿïÿÿÿÇÿÿÿøÿÿÿñÿÿÿÔÿÿÿïÿÿÿíÿÿÿÔÿÿÿñÿÿÿóÿÿÿÉÿÿÿúÿÿÿïÿÿÿÉÿÿÿüÿÿÿñÿÿÿÖÿÿÿóÿÿÿíÿÿÿÖÿÿÿõÿÿÿñÿÿÿÔÿÿÿðÿÿÿíÿÿÿÔÿÿÿòÿÿÿðÿÿÿÛÿÿÿíÿÿÿìÿÿÿÛÿÿÿïÿÿÿñÿÿÿÖÿÿÿòÿÿÿíÿÿÿÖÿÿÿôÿÿÿðÿÿÿÝÿÿÿïÿÿÿìÿÿÿÝÿÿÿñÿÿÿ ØÿÿÿýÿÿÿØÿÿÿÿÿÿÿäÿÿÿòÿÿÿäÿÿÿôÿÿÿ ÜÿÿÿÜÿÿÿèÿÿÿöÿÿÿèÿÿÿøÿÿÿäÿÿÿòÿÿÿäÿÿÿôÿÿÿðÿÿÿçÿÿÿðÿÿÿéÿÿÿèÿÿÿöÿÿÿèÿÿÿøÿÿÿôÿÿÿëÿÿÿôÿÿÿíÿÿÿõÿÿÿãÿÿÿõÿÿÿãÿÿÿîÿÿÿÿÿÿÿîÿÿÿïÿÿÿçÿÿÿïÿÿÿçÿÿÿúÿÿÿòÿÿÿÿÿÿÿúÿÿÿòÿÿÿýÿÿÿÜÿÿÿýÿÿÿ÷ÿÿÿÞÿÿÿÿÿÿÿÿÿÿÿèÿÿÿ ùÿÿÿêÿÿÿ ýÿÿÿÖÿÿÿ÷ÿÿÿØÿÿÿÿÿÿÿâÿÿÿ ùÿÿÿäÿÿÿÿÿÿÿçÿÿÿùÿÿÿéÿÿÿ +÷ÿÿÿ ûÿÿÿùÿÿÿÿÿÿÿãÿÿÿùÿÿÿåÿÿÿóÿÿÿûÿÿÿõÿÿÿýÿÿÿûÿÿÿýÿÿÿøÿÿÿýÿÿÿøÿÿÿ ÷ÿÿÿ ûÿÿÿ÷ÿÿÿòÿÿÿýÿÿÿòÿÿÿ  + +       +  +   +      ! ""#!%$&&'%! $$%!#"&&'#" $$&"#!%%'#)(**+)-,../-)(,,-)+*../+*(,,.*+)--/+10223154667510445132667320446231557398::;9=<>>?=98<<=9;:>>?;:8<<>:;9==?;A@BBCAEDFFGEA@DDEACBFFGCB@DDFBCAEEGCIHJJKIMLNNOMIHLLMIKJNNOKJHLLNJKIMMOKQPRRSQUTVVWUQPTTUQSRVVWSRPTTVRSQUUWSYXZZ[Y]\^^_]YX\\]Y[Z^^_[ZX\\^Z[Y]]_[a`bbcaedffgea`ddeacbffgcb`ddfbcaeegcihjjkimlnnomihllmikjnnokjhllnjkimmokÊp¨­ÿÿÿûÿÿÿûÿÿÿ­ÿÿÿûÿÿÿ·ÿÿÿûÿÿÿûÿÿÿ·ÿÿÿûÿÿÿ­ÿÿÿûÿÿÿ­ÿÿÿ·ÿÿÿûÿÿÿ·ÿÿÿ +·ÿÿÿûÿÿÿöÿÿÿ·ÿÿÿûÿÿÿ +ÚÿÿÿûÿÿÿöÿÿÿÚÿÿÿûÿÿÿ +·ÿÿÿöÿÿÿ·ÿÿÿ +ÚÿÿÿöÿÿÿÚÿÿÿ·ÿÿÿ ¹ÿÿÿÆÿÿÿ÷ÿÿÿÈÿÿÿ÷ÿÿÿ¹ÿÿÿ »ÿÿÿÈÿÿÿûÿÿÿÊÿÿÿûÿÿÿÆÿÿÿ÷ÿÿÿÈÿÿÿ÷ÿÿÿÓÿÿÿðÿÿÿÕÿÿÿðÿÿÿÈÿÿÿûÿÿÿÊÿÿÿûÿÿÿÕÿÿÿôÿÿÿ×ÿÿÿôÿÿÿÓÿÿÿñÿÿÿÕÿÿÿñÿÿÿÚÿÿÿîÿÿÿÜÿÿÿîÿÿÿÕÿÿÿóÿÿÿ×ÿÿÿóÿÿÿÜÿÿÿðÿÿÿÞÿÿÿðÿÿÿöÿÿÿ»ÿÿÿýÿÿÿòÿÿÿ»ÿÿÿýÿÿÿóÿÿÿÊÿÿÿïÿÿÿÊÿÿÿöÿÿÿ·ÿÿÿòÿÿÿ·ÿÿÿóÿÿÿÆÿÿÿ +ïÿÿÿÆÿÿÿ +óÿÿÿËÿÿÿïÿÿÿËÿÿÿñÿÿÿÓÿÿÿíÿÿÿÓÿÿÿóÿÿÿÅÿÿÿ ïÿÿÿÅÿÿÿ ñÿÿÿÍÿÿÿíÿÿÿÍÿÿÿñÿÿÿÒÿÿÿíÿÿÿÒÿÿÿðÿÿÿÖÿÿÿìÿÿÿÖÿÿÿñÿÿÿÎÿÿÿíÿÿÿÎÿÿÿðÿÿÿÒÿÿÿìÿÿÿÒÿÿÿ ÝÿÿÿþÿÿÿÝÿÿÿþÿÿÿéÿÿÿ +éÿÿÿ + ×ÿÿÿ×ÿÿÿãÿÿÿãÿÿÿèÿÿÿ èÿÿÿ øÿÿÿøÿÿÿäÿÿÿäÿÿÿôÿÿÿôÿÿÿüÿÿÿþÿÿÿ÷ÿÿÿÿÿÿÿùÿÿÿöÿÿÿ øÿÿÿ ñÿÿÿÿÿÿÿóÿÿÿýÿÿÿ×ÿÿÿþÿÿÿ÷ÿÿÿÙÿÿÿþÿÿÿÿÿÿÿãÿÿÿóÿÿÿùÿÿÿåÿÿÿóÿÿÿýÿÿÿÛÿÿÿ÷ÿÿÿÝÿÿÿÿÿÿÿçÿÿÿ÷ÿÿÿùÿÿÿéÿÿÿ÷ÿÿÿÿÿÿÿãÿÿÿóÿÿÿùÿÿÿåÿÿÿóÿÿÿïÿÿÿèÿÿÿûÿÿÿñÿÿÿèÿÿÿÿÿÿÿçÿÿÿ÷ÿÿÿùÿÿÿéÿÿÿ÷ÿÿÿóÿÿÿìÿÿÿûÿÿÿõÿÿÿìÿÿÿôÿÿÿâÿÿÿûÿÿÿöÿÿÿäÿÿÿÿÿÿÿíÿÿÿýÿÿÿïÿÿÿîÿÿÿæÿÿÿûÿÿÿðÿÿÿèÿÿÿùÿÿÿñÿÿÿýÿÿÿûÿÿÿóÿÿÿ  + +       +  +   +      ! ""#!%$&&'%! $$%!#"&&'#" $$&"#!%%'#)(**+)-,../-)(,,-)+*../+*(,,.*+)--/+10223154667510445132667320446231557398::;9=<>>?=98<<=9;:>>?;:8<<>:;9==?;A@BBCAEDFFGEA@DDEACBFFGCB@DDFBCAEEGCIHJJKIMLNNOMIHLLMIKJNNOKJHLLNJKIMMOKQPRRSQUTVVWUQPTTUQSRVVWSRPTTVRSQUUWSYXZZ[Y]\^^_]YX\\]Y[Z^^_[ZX\\^Z[Y]]_[a`bbcaedffgea`ddeacbffgcb`ddfbcaeegcihjjkimlnnomihllmikjnnokjhllnjkimmokÊp¨­ÿÿÿûÿÿÿûÿÿÿ­ÿÿÿûÿÿÿ·ÿÿÿûÿÿÿûÿÿÿ·ÿÿÿûÿÿÿ­ÿÿÿûÿÿÿ­ÿÿÿ·ÿÿÿûÿÿÿ·ÿÿÿ +·ÿÿÿûÿÿÿöÿÿÿ·ÿÿÿûÿÿÿ +ÚÿÿÿûÿÿÿöÿÿÿÚÿÿÿûÿÿÿ +·ÿÿÿöÿÿÿ·ÿÿÿ +ÚÿÿÿöÿÿÿÚÿÿÿ¸ÿÿÿýÿÿÿ ºÿÿÿýÿÿÿÉÿÿÿýÿÿÿËÿÿÿýÿÿÿ¸ÿÿÿ ºÿÿÿÉÿÿÿËÿÿÿÉÿÿÿýÿÿÿËÿÿÿýÿÿÿØÿÿÿýÿÿÿÚÿÿÿýÿÿÿÉÿÿÿËÿÿÿØÿÿÿÚÿÿÿØÿÿÿþÿÿÿÚÿÿÿþÿÿÿàÿÿÿþÿÿÿâÿÿÿþÿÿÿØÿÿÿÚÿÿÿàÿÿÿâÿÿÿöÿÿÿ¹ÿÿÿýÿÿÿòÿÿÿ¹ÿÿÿýÿÿÿóÿÿÿÊÿÿÿýÿÿÿïÿÿÿÊÿÿÿýÿÿÿöÿÿÿ¹ÿÿÿòÿÿÿ¹ÿÿÿóÿÿÿÊÿÿÿïÿÿÿÊÿÿÿóÿÿÿÊÿÿÿýÿÿÿïÿÿÿÊÿÿÿýÿÿÿñÿÿÿÙÿÿÿýÿÿÿíÿÿÿÙÿÿÿýÿÿÿóÿÿÿÊÿÿÿïÿÿÿÊÿÿÿñÿÿÿÙÿÿÿíÿÿÿÙÿÿÿñÿÿÿÙÿÿÿþÿÿÿíÿÿÿÙÿÿÿþÿÿÿðÿÿÿáÿÿÿþÿÿÿìÿÿÿáÿÿÿþÿÿÿñÿÿÿÙÿÿÿíÿÿÿÙÿÿÿðÿÿÿáÿÿÿìÿÿÿáÿÿÿ +ÚÿÿÿüÿÿÿÚÿÿÿüÿÿÿ +êÿÿÿüÿÿÿêÿÿÿüÿÿÿ +ÚÿÿÿÚÿÿÿ +êÿÿÿêÿÿÿ +êÿÿÿüÿÿÿêÿÿÿüÿÿÿ +úÿÿÿüÿÿÿúÿÿÿüÿÿÿ +êÿÿÿêÿÿÿ +úÿÿÿúÿÿÿ +üÿÿÿüÿÿÿ +  +úÿÿÿüÿÿÿúÿÿÿüÿÿÿ +úÿÿÿ úÿÿÿ þÿÿÿÚÿÿÿüÿÿÿöÿÿÿÚÿÿÿüÿÿÿþÿÿÿêÿÿÿüÿÿÿöÿÿÿêÿÿÿüÿÿÿþÿÿÿÚÿÿÿöÿÿÿÚÿÿÿþÿÿÿêÿÿÿöÿÿÿêÿÿÿþÿÿÿêÿÿÿüÿÿÿöÿÿÿêÿÿÿüÿÿÿþÿÿÿúÿÿÿüÿÿÿöÿÿÿúÿÿÿüÿÿÿþÿÿÿêÿÿÿöÿÿÿêÿÿÿþÿÿÿúÿÿÿöÿÿÿúÿÿÿþÿÿÿüÿÿÿöÿÿÿüÿÿÿþÿÿÿ öÿÿÿ þÿÿÿúÿÿÿüÿÿÿöÿÿÿúÿÿÿüÿÿÿþÿÿÿúÿÿÿ öÿÿÿúÿÿÿ   + +       +  +   +      ! ""#!%$&&'%! $$%!#"&&'#" $$&"#!%%'#)(**+)-,../-)(,,-)+*../+*(,,.*+)--/+10223154667510445132667320446231557398::;9=<>>?=98<<=9;:>>?;:8<<>:;9==?;A@BBCAEDFFGEA@DDEACBFFGCB@DDFBCAEEGCIHJJKIMLNNOMIHLLMIKJNNOKJHLLNJKIMMOKQPRRSQUTVVWUQPTTUQSRVVWSRPTTVRSQUUWSYXZZ[Y]\^^_]YX\\]Y[Z^^_[ZX\\^Z[Y]]_[a`bbcaedffgea`ddeacbffgcb`ddfbcaeegcihjjkimlnnomihllmikjnnokjhllnjkimmok \ No newline at end of file diff --git a/TempleOS/Accts/TS/TAD/MusicOrgan/myrrh.CPP b/TempleOS/Accts/TS/TAD/MusicOrgan/alone.CPP similarity index 50% rename from TempleOS/Accts/TS/TAD/MusicOrgan/myrrh.CPP rename to TempleOS/Accts/TS/TAD/MusicOrgan/alone.CPP index cb90183..8a26b28 100644 --- a/TempleOS/Accts/TS/TAD/MusicOrgan/myrrh.CPP +++ b/TempleOS/Accts/TS/TAD/MusicOrgan/alone.CPP @@ -1,4 +1,4 @@ -//0 no nothing +//7 no nothing U0 Song() { Fs->task_end_cb=&SndTaskEndCB; @@ -7,10 +7,10 @@ U0 Song() music_stacatto_factor= 0.902; try { while (!ScanKey) { - Play("3eFDGsBReCB2sGRGR3qEetGAGeGsFGeRsDG"); - Play("eFDGsBReCB2sGRGR3qEetGAGeGsFGeRsDG"); - Play("FAFAqGeEEqBetE2GR3eFsARe.BsCe.RsE"); - Play("FAFAqGeEEqBetE2GR3eFsARe.BsCe.RsE"); + Play("2q.GeGqG3sBBCB2q.GeGqG3sBBCB"); + Play("q.C2eG3CsDC2eGG3qC2G3eCsDC2eGG"); + Play("3sEAEAeCsCReRsDAe.GsBFFFFeEsAGeCsGDeDG"); + Play("sEAEAeCsCReRsDAe.GsBFFFFeEsAGeCsGDeDG"); } } catch CatchAll; diff --git a/TempleOS/Accts/TS/TAD/MusicOrgan/bedewed.CPP b/TempleOS/Accts/TS/TAD/MusicOrgan/bedewed.CPP index 6e1d824..29ffb7a 100644 Binary files a/TempleOS/Accts/TS/TAD/MusicOrgan/bedewed.CPP and b/TempleOS/Accts/TS/TAD/MusicOrgan/bedewed.CPP differ diff --git a/TempleOS/Accts/TS/TAD/MusicOrgan/completed.CPP b/TempleOS/Accts/TS/TAD/MusicOrgan/completed.CPP index dd944a9..9fbfe44 100644 Binary files a/TempleOS/Accts/TS/TAD/MusicOrgan/completed.CPP and b/TempleOS/Accts/TS/TAD/MusicOrgan/completed.CPP differ diff --git a/TempleOS/Accts/TS/TAD/MusicOrgan/cosam.CPP b/TempleOS/Accts/TS/TAD/MusicOrgan/cosam.CPP index 7b8a51a..311af33 100644 --- a/TempleOS/Accts/TS/TAD/MusicOrgan/cosam.CPP +++ b/TempleOS/Accts/TS/TAD/MusicOrgan/cosam.CPP @@ -1,4 +1,4 @@ -//7 has words +//8 has words U0 Song() { Fs->task_end_cb=&SndTaskEndCB; diff --git a/TempleOS/Accts/TS/TAD/MusicOrgan/dialogue.CPP b/TempleOS/Accts/TS/TAD/MusicOrgan/dialogue.CPP index 96f21f5..b526516 100644 Binary files a/TempleOS/Accts/TS/TAD/MusicOrgan/dialogue.CPP and b/TempleOS/Accts/TS/TAD/MusicOrgan/dialogue.CPP differ diff --git a/TempleOS/Accts/TS/TAD/MusicOrgan/doing.CPP b/TempleOS/Accts/TS/TAD/MusicOrgan/doing.CPP index 3d4f5f5..deeb267 100644 Binary files a/TempleOS/Accts/TS/TAD/MusicOrgan/doing.CPP and b/TempleOS/Accts/TS/TAD/MusicOrgan/doing.CPP differ diff --git a/TempleOS/Accts/TS/TAD/MusicOrgan/elijah.CPP b/TempleOS/Accts/TS/TAD/MusicOrgan/elijah.CPP index c802ec8..d36e7a7 100644 Binary files a/TempleOS/Accts/TS/TAD/MusicOrgan/elijah.CPP and b/TempleOS/Accts/TS/TAD/MusicOrgan/elijah.CPP differ diff --git a/TempleOS/Accts/TS/TAD/MusicOrgan/exodus.CPP b/TempleOS/Accts/TS/TAD/MusicOrgan/exodus.CPP index 5037dc6..0094b07 100644 --- a/TempleOS/Accts/TS/TAD/MusicOrgan/exodus.CPP +++ b/TempleOS/Accts/TS/TAD/MusicOrgan/exodus.CPP @@ -1,4 +1,4 @@ -//0 no nothing +//7 no nothing U0 Song() { Fs->task_end_cb=&SndTaskEndCB; diff --git a/TempleOS/Accts/TS/TAD/MusicOrgan/expedition.CPP b/TempleOS/Accts/TS/TAD/MusicOrgan/expedition.CPP index 35e1e6b..5d5079f 100644 Binary files a/TempleOS/Accts/TS/TAD/MusicOrgan/expedition.CPP and b/TempleOS/Accts/TS/TAD/MusicOrgan/expedition.CPP differ diff --git a/TempleOS/Accts/TS/TAD/MusicOrgan/finger.CPP b/TempleOS/Accts/TS/TAD/MusicOrgan/finger.CPP index daf140b..d8512f1 100644 Binary files a/TempleOS/Accts/TS/TAD/MusicOrgan/finger.CPP and b/TempleOS/Accts/TS/TAD/MusicOrgan/finger.CPP differ diff --git a/TempleOS/Accts/TS/TAD/MusicOrgan/first.CPP b/TempleOS/Accts/TS/TAD/MusicOrgan/first.CPP index 170efdb..d6573cb 100644 Binary files a/TempleOS/Accts/TS/TAD/MusicOrgan/first.CPP and b/TempleOS/Accts/TS/TAD/MusicOrgan/first.CPP differ diff --git a/TempleOS/Accts/TS/TAD/MusicOrgan/fishermen.CPP b/TempleOS/Accts/TS/TAD/MusicOrgan/fishermen.CPP index 6ac33e2..089619f 100644 Binary files a/TempleOS/Accts/TS/TAD/MusicOrgan/fishermen.CPP and b/TempleOS/Accts/TS/TAD/MusicOrgan/fishermen.CPP differ diff --git a/TempleOS/Accts/TS/TAD/MusicOrgan/fog.CPP b/TempleOS/Accts/TS/TAD/MusicOrgan/fog.CPP index e7d8222..6949963 100644 Binary files a/TempleOS/Accts/TS/TAD/MusicOrgan/fog.CPP and b/TempleOS/Accts/TS/TAD/MusicOrgan/fog.CPP differ diff --git a/TempleOS/Accts/TS/TAD/MusicOrgan/forasmuch.CPP b/TempleOS/Accts/TS/TAD/MusicOrgan/forasmuch.CPP index 6e2512e..69527c4 100644 Binary files a/TempleOS/Accts/TS/TAD/MusicOrgan/forasmuch.CPP and b/TempleOS/Accts/TS/TAD/MusicOrgan/forasmuch.CPP differ diff --git a/TempleOS/Accts/TS/TAD/MusicOrgan/furnishing.CPP b/TempleOS/Accts/TS/TAD/MusicOrgan/furnishing.CPP index 496cc8f..a549ac1 100644 Binary files a/TempleOS/Accts/TS/TAD/MusicOrgan/furnishing.CPP and b/TempleOS/Accts/TS/TAD/MusicOrgan/furnishing.CPP differ diff --git a/TempleOS/Accts/TS/TAD/MusicOrgan/good.CPP b/TempleOS/Accts/TS/TAD/MusicOrgan/good.CPP index cf276e2..09ed235 100644 Binary files a/TempleOS/Accts/TS/TAD/MusicOrgan/good.CPP and b/TempleOS/Accts/TS/TAD/MusicOrgan/good.CPP differ diff --git a/TempleOS/Accts/TS/TAD/MusicOrgan/gutenberg.CPP b/TempleOS/Accts/TS/TAD/MusicOrgan/gutenberg.CPP index dc88ea5..b48b7b7 100644 Binary files a/TempleOS/Accts/TS/TAD/MusicOrgan/gutenberg.CPP and b/TempleOS/Accts/TS/TAD/MusicOrgan/gutenberg.CPP differ diff --git a/TempleOS/Accts/TS/TAD/MusicOrgan/happy.CPP b/TempleOS/Accts/TS/TAD/MusicOrgan/happy.CPP index 0c9141b..8605cda 100644 Binary files a/TempleOS/Accts/TS/TAD/MusicOrgan/happy.CPP and b/TempleOS/Accts/TS/TAD/MusicOrgan/happy.CPP differ diff --git a/TempleOS/Accts/TS/TAD/MusicOrgan/hearsay.CPP b/TempleOS/Accts/TS/TAD/MusicOrgan/hearsay.CPP new file mode 100644 index 0000000..cbb37b0 --- /dev/null +++ b/TempleOS/Accts/TS/TAD/MusicOrgan/hearsay.CPP @@ -0,0 +1,20 @@ +//7 no nothing +U0 Song() +{ + Fs->task_end_cb=&SndTaskEndCB; + MusicSettingsRst; + music_tempo= 2.480; + music_stacatto_factor= 0.902; + try { + while (!ScanKey) { + Play("3qAeCDqEAeCDECDECsCC"); + Play("qAeCDqEAeCDECDECsCC"); + Play("eDAGAqDsECECCBCBeAFsDCeGDE"); + Play("DAGAqDsECECCBCBeAFsDCeGDE"); + } + } catch + CatchAll; + Snd(0); +} + +Song; diff --git a/TempleOS/Accts/TS/TAD/MusicOrgan/hope.CPP b/TempleOS/Accts/TS/TAD/MusicOrgan/hope.CPP index eea60a8..00153ac 100644 Binary files a/TempleOS/Accts/TS/TAD/MusicOrgan/hope.CPP and b/TempleOS/Accts/TS/TAD/MusicOrgan/hope.CPP differ diff --git a/TempleOS/Accts/TS/TAD/MusicOrgan/josh.CPP b/TempleOS/Accts/TS/TAD/MusicOrgan/josh.CPP index d5ce3a9..3015609 100644 Binary files a/TempleOS/Accts/TS/TAD/MusicOrgan/josh.CPP and b/TempleOS/Accts/TS/TAD/MusicOrgan/josh.CPP differ diff --git a/TempleOS/Accts/TS/TAD/MusicOrgan/keeping.CPP b/TempleOS/Accts/TS/TAD/MusicOrgan/keeping.CPP index d0c25c5..ed11134 100644 Binary files a/TempleOS/Accts/TS/TAD/MusicOrgan/keeping.CPP and b/TempleOS/Accts/TS/TAD/MusicOrgan/keeping.CPP differ diff --git a/TempleOS/Accts/TS/TAD/MusicOrgan/limit.CPP b/TempleOS/Accts/TS/TAD/MusicOrgan/limit.CPP index 087c6a2..5a07d2f 100644 Binary files a/TempleOS/Accts/TS/TAD/MusicOrgan/limit.CPP and b/TempleOS/Accts/TS/TAD/MusicOrgan/limit.CPP differ diff --git a/TempleOS/Accts/TS/TAD/MusicOrgan/mildly.CPP b/TempleOS/Accts/TS/TAD/MusicOrgan/mildly.CPP index 657caa1..d785f46 100644 Binary files a/TempleOS/Accts/TS/TAD/MusicOrgan/mildly.CPP and b/TempleOS/Accts/TS/TAD/MusicOrgan/mildly.CPP differ diff --git a/TempleOS/Accts/TS/TAD/MusicOrgan/night.CPP b/TempleOS/Accts/TS/TAD/MusicOrgan/night.CPP index 7a92c5f..789415b 100644 Binary files a/TempleOS/Accts/TS/TAD/MusicOrgan/night.CPP and b/TempleOS/Accts/TS/TAD/MusicOrgan/night.CPP differ diff --git a/TempleOS/Accts/TS/TAD/MusicOrgan/official.CPP b/TempleOS/Accts/TS/TAD/MusicOrgan/official.CPP new file mode 100644 index 0000000..efcf324 Binary files /dev/null and b/TempleOS/Accts/TS/TAD/MusicOrgan/official.CPP differ diff --git a/TempleOS/Accts/TS/TAD/MusicOrgan/partake.CPP b/TempleOS/Accts/TS/TAD/MusicOrgan/partake.CPP index a1afa99..7169972 100644 Binary files a/TempleOS/Accts/TS/TAD/MusicOrgan/partake.CPP and b/TempleOS/Accts/TS/TAD/MusicOrgan/partake.CPP differ diff --git a/TempleOS/Accts/TS/TAD/MusicOrgan/project.CPP b/TempleOS/Accts/TS/TAD/MusicOrgan/project.CPP new file mode 100644 index 0000000..07f1311 --- /dev/null +++ b/TempleOS/Accts/TS/TAD/MusicOrgan/project.CPP @@ -0,0 +1,20 @@ +//7 no nothing +U0 Song() +{ + Fs->task_end_cb=&SndTaskEndCB; + MusicSettingsRst; + music_tempo= 2.480; + music_stacatto_factor= 0.902; + try { + while (!ScanKey) { + Play("3qGsARARCBCBeACACGCGBAsEA"); + Play("qGsARARCBCBeACACGCGBAsEA"); + Play("eAsCEqEsDECEqAsDACAeAGFsBDeCB"); + Play("AsCEqEsDECEqAsDACAeAGFsBDeCB"); + } + } catch + CatchAll; + Snd(0); +} + +Song; diff --git a/TempleOS/Accts/TS/TAD/MusicOrgan/prosper.CPP b/TempleOS/Accts/TS/TAD/MusicOrgan/prosper.CPP index 15afc9d..455925c 100644 Binary files a/TempleOS/Accts/TS/TAD/MusicOrgan/prosper.CPP and b/TempleOS/Accts/TS/TAD/MusicOrgan/prosper.CPP differ diff --git a/TempleOS/Accts/TS/TAD/MusicOrgan/purpose.CPP b/TempleOS/Accts/TS/TAD/MusicOrgan/purpose.CPP index ca25e15..b125520 100644 Binary files a/TempleOS/Accts/TS/TAD/MusicOrgan/purpose.CPP and b/TempleOS/Accts/TS/TAD/MusicOrgan/purpose.CPP differ diff --git a/TempleOS/Accts/TS/TAD/MusicOrgan/satisfaction.CPP b/TempleOS/Accts/TS/TAD/MusicOrgan/satisfaction.CPP index 1f6686d..23498aa 100644 Binary files a/TempleOS/Accts/TS/TAD/MusicOrgan/satisfaction.CPP and b/TempleOS/Accts/TS/TAD/MusicOrgan/satisfaction.CPP differ diff --git a/TempleOS/Accts/TS/TAD/MusicOrgan/scriptures.CPP b/TempleOS/Accts/TS/TAD/MusicOrgan/scriptures.CPP index d4d4ca2..3e30e8d 100644 Binary files a/TempleOS/Accts/TS/TAD/MusicOrgan/scriptures.CPP and b/TempleOS/Accts/TS/TAD/MusicOrgan/scriptures.CPP differ diff --git a/TempleOS/Accts/TS/TAD/MusicOrgan/shield.CPP b/TempleOS/Accts/TS/TAD/MusicOrgan/shield.CPP index c2a6e45..39b26c2 100644 Binary files a/TempleOS/Accts/TS/TAD/MusicOrgan/shield.CPP and b/TempleOS/Accts/TS/TAD/MusicOrgan/shield.CPP differ diff --git a/TempleOS/Accts/TS/TAD/MusicOrgan/small.CPP b/TempleOS/Accts/TS/TAD/MusicOrgan/small.CPP index 8ed1649..9890c16 100644 Binary files a/TempleOS/Accts/TS/TAD/MusicOrgan/small.CPP and b/TempleOS/Accts/TS/TAD/MusicOrgan/small.CPP differ diff --git a/TempleOS/Accts/TS/TAD/MusicOrgan/struggles.CPP b/TempleOS/Accts/TS/TAD/MusicOrgan/struggles.CPP index 364a382..9731e30 100644 Binary files a/TempleOS/Accts/TS/TAD/MusicOrgan/struggles.CPP and b/TempleOS/Accts/TS/TAD/MusicOrgan/struggles.CPP differ diff --git a/TempleOS/Accts/TS/TAD/MusicOrgan/sustain.CPP b/TempleOS/Accts/TS/TAD/MusicOrgan/sustain.CPP index 860f0ee..d76d2ec 100644 Binary files a/TempleOS/Accts/TS/TAD/MusicOrgan/sustain.CPP and b/TempleOS/Accts/TS/TAD/MusicOrgan/sustain.CPP differ diff --git a/TempleOS/Accts/TS/TAD/MusicOrgan/valued.CPP b/TempleOS/Accts/TS/TAD/MusicOrgan/valued.CPP index 340c8d6..969b5e8 100644 Binary files a/TempleOS/Accts/TS/TAD/MusicOrgan/valued.CPP and b/TempleOS/Accts/TS/TAD/MusicOrgan/valued.CPP differ diff --git a/TempleOS/Accts/TS/TAD/MusicOrgan/vengeance.CPP b/TempleOS/Accts/TS/TAD/MusicOrgan/vengeance.CPP index c4d6636..b46d967 100644 Binary files a/TempleOS/Accts/TS/TAD/MusicOrgan/vengeance.CPP and b/TempleOS/Accts/TS/TAD/MusicOrgan/vengeance.CPP differ diff --git a/TempleOS/Accts/TS/TAD/MusicOrgan/verses.CPP b/TempleOS/Accts/TS/TAD/MusicOrgan/verses.CPP index 662160f..cd4bc2a 100644 --- a/TempleOS/Accts/TS/TAD/MusicOrgan/verses.CPP +++ b/TempleOS/Accts/TS/TAD/MusicOrgan/verses.CPP @@ -17,11 +17,11 @@ U0 PutVerse() I64 *start; DocClear; - start=GetTimeStamp/16%size; + start=GetTSC/16%size; if (start>size-LEN) start=size-LEN; ch=bible[start+LEN-1]; bible[start+LEN-1]=0; - "" bible+start; + "%s",bible+start; bible[start+LEN-1]=ch; } diff --git a/TempleOS/Accts/TS/TAD/MusicOrgan/wisdom.CPP b/TempleOS/Accts/TS/TAD/MusicOrgan/wisdom.CPP index 450bdfb..7a1ffe6 100644 Binary files a/TempleOS/Accts/TS/TAD/MusicOrgan/wisdom.CPP and b/TempleOS/Accts/TS/TAD/MusicOrgan/wisdom.CPP differ diff --git a/TempleOS/Accts/TS/TAD/MusicOrgan/yesterday.CPP b/TempleOS/Accts/TS/TAD/MusicOrgan/yesterday.CPP deleted file mode 100644 index 363cd4f..0000000 --- a/TempleOS/Accts/TS/TAD/MusicOrgan/yesterday.CPP +++ /dev/null @@ -1,20 +0,0 @@ -//0 no nothing -U0 Song() -{ - Fs->task_end_cb=&SndTaskEndCB; - MusicSettingsRst; - music_tempo= 2.480; - music_stacatto_factor= 0.846; - try { - while (!ScanKey) { - Play("3sEAEAqEeFsGAqFsFGeE2qG3sFEFEqA"); - Play("sEAEAqEeFsGAqFsFGeE2qG3sFEFEqA"); - Play("EeGDqBeCE2qG3etDGCeEAFA"); - Play("qEeGDqBeCE2qG3etDGCeEAFA"); - } - } catch - CatchAll; - Snd(0); -} - -Song; diff --git a/TempleOS/Accts/TS/TAD/MusicOrgan/zip.CPP b/TempleOS/Accts/TS/TAD/MusicOrgan/zip.CPP index 7743a60..3ef7df4 100644 Binary files a/TempleOS/Accts/TS/TAD/MusicOrgan/zip.CPP and b/TempleOS/Accts/TS/TAD/MusicOrgan/zip.CPP differ diff --git a/TempleOS/Accts/TS/TAD/PersonalNotes.TXT b/TempleOS/Accts/TS/TAD/PersonalNotes.TXT index d3cfaa7..c1414d0 100644 --- a/TempleOS/Accts/TS/TAD/PersonalNotes.TXT +++ b/TempleOS/Accts/TS/TAD/PersonalNotes.TXT @@ -1,4 +1,45 @@ -* fix result on Blot ect +* PSect search all tables if not found very well. +* Bug: HI:Math/CD3 + +* asm LIST NOLIST bug +* Bible ranges. +* Current Bible position to link on clipboard. +* Might have bug. CTRL-F Fwd gets cleared, maybe. +* hang black text layer bug is back +* No way to clear +Hold entries + +-----------DiningStars--------------- +Song +Better name than DiningStars +Better tables, orient, chairs +Get approval from building inspector +Health inspector visits +Hire chefs, cooks, maŒtre'd and waitresses +Busy aisles, got your back +Pipes +Walls with windows and mirrors +$$ per square foot, how about picking from randomly generated leased spaces +Plot customers per hour +Reservations bot +Menu +Candles +Advertizing +------------------------------------- + +* We don't know why tS caused crash, perhaps, semaphores are broken. + (Hangs on 2nd ScreenUpdate, black almost. Perhaps bug from with $LK,"gr_pan_text_x","MN:gr_pan_text_x"$.) + Fixed with HPET in tS. + +* Maybe dither_probability is bad. + +* FAQ frontloaded + +COMPILER + * Postpone LocalVar Init until last possible moment. (in case RETURN) + * PtrArith MUL SIZE -->QueIns(MUL)? + * QueRem(IC_NOP)? + +* Fix return result for GrBlot, ect. * Tour TestSuite on 256Meg NoMP runs out of mem. Leak,too? @@ -35,12 +76,13 @@ $LK-A,"::/TempleOS/Demo/Lectures/FixedPointAdvanced.CPP"$. * It would be nice if $LK,"U","MN:U"$() NOP were better. -* Make RedSea file system expanded size set in Copy. - * unhandled exception on MP message gets overwritten by WinMgr * Cmd to enable/disable compiler warnings +* What if we had a type for either F64 or I64, like Print -- no conversion. +* What if we had a ... that did do conversion, if we have one that doesn't. + * fix documentation problem -- remembering 0 terminator in str or not for $$DA * GetS, crazy putkey code * editor page formatting is FUBAR @@ -117,6 +159,7 @@ $HC,">SCALE2,cy+y>>SCALE2,cz)) - result++; - for (j=0;j>SCALE1; - y1=(s2*x+c*y)>>SCALE1; - x=x1; y=y1; - } - } - return result; + CDocEntry *doc_ce; + BEqu(&doc_ce->type,DOCEt_SELECTED,sc&SCF_SHIFT); } - -U0 Main() -{ - I64 i; - CDC *dc=DCAlias; - for (i=0;i<100;i++) - Circle(dc,100,100,0,i*5,&GrLinePlot,1,0,2*ã); - PressAKey; - DCFill; - DCDel(dc); -} - -Main; \ No newline at end of file diff --git a/TempleOS/Accts/TS/TSAdam.CPP b/TempleOS/Accts/TS/TSAdam.CPP index 74d78db..3532251 100644 --- a/TempleOS/Accts/TS/TSAdam.CPP +++ b/TempleOS/Accts/TS/TSAdam.CPP @@ -92,78 +92,78 @@ U0 TSInit() case CID_TAD8: case CID_TAD8_VM: - DefinePrintF("CFG_ACCT","\"\nTS/TAD\n\""); - DefinePrintF("CFG_HARD_DRVS","\"h2s0xbc00\n0xb880\n1d2s0xbc00\n0xb880\n0\""); - DefinePrintF("CFG_RAM_DRVS","\"b1\nScale2Mem(2048,0x40000)\n\""); - DefinePrintF("CFG_CDROM_DRVS","\"t3s0xb800\n0\""); - DefinePrintF("CFG_DSK_CACHE","\"Scale2Mem(0x80000,0x8000000)\n\""); + DefinePrint("CFG_ACCT","\"\nTS/TAD\n\""); + DefinePrint("CFG_HARD_DRVS","\"h2s0xbc00\n0xb880\n1d2s0xbc00\n0xb880\n0\""); + DefinePrint("CFG_RAM_DRVS","\"b1\nScale2Mem(2048,0x40000)\n\""); + DefinePrint("CFG_CDROM_DRVS","\"t3s0xb800\n0\""); + DefinePrint("CFG_DSK_CACHE","\"Scale2Mem(0x80000,0x8000000)\n\""); if (ts_cid==CID_TAD8) { - DefinePrintF("TS_HDS","\"DEI\""); - DefinePrintF("TS_MASTER_BOOT_DRVS","\"I\""); + DefinePrint("TS_HDS","\"DEI\""); + DefinePrint("TS_MASTER_BOOT_DRVS","\"I\""); } else { //CID_TAD8_VM - DefinePrintF("TS_HDS","\"DE\""); - DefinePrintF("TS_MASTER_BOOT_DRVS","\"\""); + DefinePrint("TS_HDS","\"DE\""); + DefinePrint("TS_MASTER_BOOT_DRVS","\"\""); } - DefinePrintF("TS_MAIN_DRV","\"D\""); - DefinePrintF("TS_BAK_DRV","\"E\""); - DefinePrintF("TS_RAM_DRV","\"B\""); - DefinePrintF("TS_WIN_DRV","\"H\""); - DefinePrintF("TS_CDROM_DRV","\"T\""); + DefinePrint("TS_MAIN_DRV","\"D\""); + DefinePrint("TS_BAK_DRV","\"E\""); + DefinePrint("TS_RAM_DRV","\"B\""); + DefinePrint("TS_WIN_DRV","\"H\""); + DefinePrint("TS_CDROM_DRV","\"T\""); break; */ case CID_DFT: - DefinePrintF("CFG_ACCT","\"\nTS/TAD\n\""); - DefinePrintF("CFG_RAM_DRVS","\"b1\nScale2Mem(2048,0x40000)\n\""); + DefinePrint("CFG_ACCT","\"\nTS/TAD\n\""); + DefinePrint("CFG_RAM_DRVS","\"b1\nScale2Mem(2048,0x40000)\n\""); if (sys_auto_mount_ide_cnt) { //If AutoMount was successful, No need to manually mount in next compile - DefinePrintF("CFG_HARD_DRVS","\"\""); - DefinePrintF("CFG_CDROM_DRVS","\"\""); + DefinePrint("CFG_HARD_DRVS","\"\""); + DefinePrint("CFG_CDROM_DRVS","\"\""); } else { //These two are a crazy guess. ATA:IDE Primary ATAPI:IDE Secondary - DefinePrintF("CFG_HARD_DRVS","\"d2s0x1F0\n0x3F4\n0\""); - DefinePrintF("CFG_CDROM_DRVS","\"t3s0x170\n0\""); + DefinePrint("CFG_HARD_DRVS","\"d2s0x1F0\n0x3F4\n0\""); + DefinePrint("CFG_CDROM_DRVS","\"t3s0x170\n0\""); bdev=Drv2BlkDev(*sys_acct); if (bdev->type==BDT_ATAPI) { ATARep(FALSE,,&root); ATAIDDrvs(root,*sys_acct,&ata_drv,&atapi_drv); if (ata_drv) - DefinePrintF("CFG_HARD_DRVS","\"d2p%d\n\"",ata_drv->num); + DefinePrint("CFG_HARD_DRVS","\"d2p%d\n\"",ata_drv->num); if (atapi_drv) - DefinePrintF("CFG_CDROM_DRVS","\"t3p%d\n\"",atapi_drv->num); + DefinePrint("CFG_CDROM_DRVS","\"t3p%d\n\"",atapi_drv->num); } else { try { bdev=Drv2BlkDev('D'); - DefinePrintF("CFG_HARD_DRVS","\"d2s0x%X\n0x%X\n%d\"", + DefinePrint("CFG_HARD_DRVS","\"d2s0x%X\n0x%X\n%d\"", bdev->base0,bdev->base1,bdev->unit); } catch Fs->catch_except=TRUE; try { bdev=Drv2BlkDev('T'); - DefinePrintF("CFG_CDROM_DRVS","\"t3s0x%X\n%d\"",bdev->base0,bdev->unit); + DefinePrint("CFG_CDROM_DRVS","\"t3s0x%X\n%d\"",bdev->base0,bdev->unit); } catch Fs->catch_except=TRUE; } } - DefinePrintF("CFG_DSK_CACHE","\"Scale2Mem(0x80000,0x8000000)\n\""); - DefinePrintF("TS_HDS","\"DE\""); - DefinePrintF("TS_MASTER_BOOT_DRVS","\"D\""); - DefinePrintF("TS_MAIN_DRV","\"D\""); - DefinePrintF("TS_BAK_DRV","\"E\""); - DefinePrintF("TS_RAM_DRV","\"B\""); - DefinePrintF("TS_WIN_DRV","\"\""); - DefinePrintF("TS_CDROM_DRV","\"T\""); + DefinePrint("CFG_DSK_CACHE","\"Scale2Mem(0x80000,0x8000000)\n\""); + DefinePrint("TS_HDS","\"DE\""); + DefinePrint("TS_MASTER_BOOT_DRVS","\"D\""); + DefinePrint("TS_MAIN_DRV","\"D\""); + DefinePrint("TS_BAK_DRV","\"E\""); + DefinePrint("TS_RAM_DRV","\"B\""); + DefinePrint("TS_WIN_DRV","\"\""); + DefinePrint("TS_CDROM_DRV","\"T\""); } } TSInit; U0 TSInit2() { - DefinePrintF("TS_MAIN_DRV_LET","'%s'",TS_MAIN_DRV); - DefinePrintF("TS_BAK_DRV_LET","'%s'",TS_BAK_DRV); - DefinePrintF("TS_RAM_DRV_LET","'%s'",TS_RAM_DRV); - DefinePrintF("TS_WIN_DRV_LET","'%s'",TS_WIN_DRV); - DefinePrintF("TS_CDROM_DRV_LET","'%s'",TS_CDROM_DRV); + DefinePrint("TS_MAIN_DRV_LET","'%s'",TS_MAIN_DRV); + DefinePrint("TS_BAK_DRV_LET","'%s'",TS_BAK_DRV); + DefinePrint("TS_RAM_DRV_LET","'%s'",TS_RAM_DRV); + DefinePrint("TS_WIN_DRV_LET","'%s'",TS_WIN_DRV); + DefinePrint("TS_CDROM_DRV_LET","'%s'",TS_CDROM_DRV); } TSInit2; @@ -217,14 +217,14 @@ Bool frame_grabber_on=FALSE; public U0 MyScreenShot(I64 bits=4) { U8 *st; - CDirEntry *tempm; + CDirEntry *tempde; I64 cnt=0; - tempm=FilesFind("::/Temp/ScreenShots/*.BMP.Z"); - while (tempm) { + tempde=FilesFind("::/Temp/ScreenShots/*.BMP.Z"); + while (tempde) { cnt++; - tempm=tempm->next; + tempde=tempde->next; } - st=MSPrintF("::/Temp/ScreenShots/SCRN%04d.BMP.Z",cnt); + st=MPrint("::/Temp/ScreenShots/SCRN%04d.BMP.Z",cnt); BMPFileCaptureScreen(st,bits); Free(st); Beep; @@ -254,31 +254,23 @@ Boot Windows I64 frame_num=0; U8 buf[136],buf2[136]; - F64 end_time=tT,f; + F64 end_time=tT; TaskInitExt; Silent(ON); //no output to screen MkDir("::/Temp/ScreenShots"); while (frame_grabber_on) { - SPrintF(buf,"::/Temp/ScreenShots/VID%05d.BMP.Z",frame_num++); + SPrint(buf,"::/Temp/ScreenShots/VID%05d.BMP.Z",frame_num++); StrCpy(buf2,buf); BMPFileCaptureScreen(buf); - - f=tT; - while (end_timetask_flags,TASKf_IDLE); - while (sys_cur_scan_code&SCF_NUM) { - Yield; - end_time=tT; - } - while (end_time>tT) - Yield; - LBtr(&Fs->task_flags,TASKf_IDLE); + SleepUntil(sys_jiffies+(end_time-tT)*JIFFY_FREQ); } } @@ -295,17 +287,15 @@ U0 CopyVideo() public U0 FrameGrabberToggle() { static F64 last_time=0; - if (tT-last_time>1.0) { + if (tT-last_time>3.0) { last_time=tT; if (frame_grabber_on) { - IOSnd(ON); frame_grabber_on=FALSE; Snd(0); wallpaper_record_on=snd_record=FALSE; Sleep(1000); CopyVideo; } else { - IOSnd(OFF); //You don't want to hear screen capture file writes frame_grabber_on=TRUE; Spawn(&FrameGrabberTask,NULL,"Frame Grabber"); wallpaper_record_on=snd_record=TRUE; @@ -314,6 +304,53 @@ public U0 FrameGrabberToggle() } } +U0 JukeSongsPut(U8 *dir,I64 start_song,I64 end_song) +{ + I64 i,j,len=4; + CDirEntry *tempde,*tempde1; + Cd(dir); + tempde1=FilesFind("*",FUF_RECURSE|FUF_JUST_TXT|FUF_JUST_FILES); + + for (tempde=tempde1,i=0;tempde && inext; + for (i=start_song;tempde && iname)) + FileExtRem(tempde->name); + if (j=StrLen(tempde->name)) { + *tempde->full_name=':'; + *tempde->name=ToUpper(*tempde->name); + if (j>len) len=j; + } + tempde=tempde->next; + } + + for (tempde=tempde1,i=0;tempde && inext; + if (end_song-start_song<=9) + j=1; + else if (end_song-start_song<=99) + j=2; + else + j=3; + for (i=start_song;tempde && iname,tempde->full_name; + tempde=tempde->next; + } + + DirLstDel(tempde1); +} + +public U0 JukeLines(I64 start_line,I64 end_line) +{ + WordStat; + if (!frame_grabber_on) + FrameGrabberToggle; + JukeSongsPuppet("::/TempleOS/Apps/MusicOrgan/Examples",,start_line*5,end_line*5); + if (frame_grabber_on) + FrameGrabberToggle; + JukeSongsPut("::/TempleOS/Apps/MusicOrgan/Examples",start_line*5,end_line*5); +} + U0 ScreenShotTask(I64) { TaskInitExt; @@ -333,18 +370,12 @@ public U0 ChkAll() ChkDsk(*ptr++); } -public U0 MyHAllRep(U8 *flags="-p",U8 *index=NULL) -{ - HashRep(Fs->hash_table,HTG_SRC_SYM-HTT_DEFINE_STR-HTT_CLASS,NULL,flags,0,index); -} - public CDoc *DC2Doc(CDC *dc,I64 dx=0,I64 dy=0,I64 *_total_score=NULL) { - U8 byte_bit_cnts[256],st[2]; + U8 byte_bit_cnts[256]; I64 i,j,*ptr,row,col,ch,best_ch,score,best_score,cur_char_image,diff_image,total_score=0; CDoc *doc=DocNew; - MemSet(st,0,sizeof(st)); MemSet(byte_bit_cnts,0,sizeof(byte_bit_cnts)); for (i=0;i<256;i++) for (j=0;j<7;j++) @@ -374,14 +405,12 @@ public CDoc *DC2Doc(CDC *dc,I64 dx=0,I64 dy=0,I64 *_total_score=NULL) } } if (best_ch=='$$') - DocPutS(doc,"$$$$"); - else { - *st=best_ch; - DocPutS(doc,st); - } + DocPrint(doc,"$$$$"); + else + DocPrint(doc,"%c",best_ch); total_score+=best_score; } - DocPutS(doc,"\n"); + DocPrint(doc,"\n"); } if (_total_score) *_total_score=total_score; return doc; diff --git a/TempleOS/Accts/TS/TSDistro.CPP b/TempleOS/Accts/TS/TSDistro.CPP index 369f8e3..79428ae 100644 --- a/TempleOS/Accts/TS/TSDistro.CPP +++ b/TempleOS/Accts/TS/TSDistro.CPP @@ -3,7 +3,7 @@ U0 ShowBootFileDate(U8 drv_let) { CDirEntry de; - U8 *name=MSPrintF("%c:/Kernel.BIN.C",drv_let); + U8 *name=MPrint("%c:/Kernel.BIN.C",drv_let); if (FileFind(name,&de)) { Free(de.full_name); "%s %D %T\n",name,de.datetime,de.datetime; @@ -57,26 +57,26 @@ U0 TSCopyDrv(U8 src,U8 dst) Fmt(dst,TRUE,FALSE,PT_FAT32); - SPrintF(buf_s,"%c:/TempleOS",src); - SPrintF(buf_d,"%c:/TempleOS",dst); + SPrint(buf_s,"%c:/TempleOS",src); + SPrint(buf_d,"%c:/TempleOS",dst); CopyTree(buf_s,buf_d); - SPrintF(buf_s,"%c:/Windows",src); - SPrintF(buf_d,"%c:/Windows",dst); + SPrint(buf_s,"%c:/Windows",src); + SPrint(buf_d,"%c:/Windows",dst); CopyTree(buf_s,buf_d); - SPrintF(buf_s,"%c:/Linux",src); - SPrintF(buf_d,"%c:/Linux",dst); + SPrint(buf_s,"%c:/Linux",src); + SPrint(buf_d,"%c:/Linux",dst); CopyTree(buf_s,buf_d); - SPrintF(buf_s,"%c:/0000Boot",src); - SPrintF(buf_d,"%c:/0000Boot",dst); + SPrint(buf_s,"%c:/0000Boot",src); + SPrint(buf_d,"%c:/0000Boot",dst); CopyTree(buf_s,buf_d); - SPrintF(buf_d,"%c:/Temp",dst); + SPrint(buf_d,"%c:/Temp",dst); MkDir(buf_d); - SPrintF(buf_d,"%c:/Temp/ScreenShots",dst); + SPrint(buf_d,"%c:/Temp/ScreenShots",dst); MkDir(buf_d); DocClear; @@ -114,28 +114,28 @@ public U0 FileCursorTop(U8 *filename) public U0 FilesCursorRem(U8 *mask="*") { I64 fuf_flags=0; - GetFFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),"+r+T+f+F"); - CDirEntry *tempm=FilesFind(mask,fuf_flags),*tempm1; - while (tempm) { - tempm1=tempm->next; - FileCursorRem(tempm->full_name); - Touch(tempm->full_name,"",,tempm->datetime); - CDirEntryDel(tempm); - tempm=tempm1; + ScanFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),"+r+T+f+F"); + CDirEntry *tempde=FilesFind(mask,fuf_flags),*tempde1; + while (tempde) { + tempde1=tempde->next; + FileCursorRem(tempde->full_name); + Touch(tempde->full_name,"",,tempde->datetime); + DirEntryDel(tempde); + tempde=tempde1; } } public U0 FilesCursorTop(U8 *mask="*") { I64 fuf_flags=0; - GetFFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),"+r+T+f+F"); - CDirEntry *tempm=FilesFind(mask,fuf_flags),*tempm1; - while (tempm) { - tempm1=tempm->next; - FileCursorTop(tempm->full_name); - Touch(tempm->full_name,"",,tempm->datetime); - CDirEntryDel(tempm); - tempm=tempm1; + ScanFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),"+r+T+f+F"); + CDirEntry *tempde=FilesFind(mask,fuf_flags),*tempde1; + while (tempde) { + tempde1=tempde->next; + FileCursorTop(tempde->full_name); + Touch(tempde->full_name,"",,tempde->datetime); + DirEntryDel(tempde); + tempde=tempde1; } } @@ -147,47 +147,36 @@ U0 UncollapseFile(U8 *filename,I64 *) DocDel(doc); } -U0 UncollapseLst(CDirEntry *tempm1,I64 *flags) +U0 Uncollapse(U8 *files_find_mask="*",U8 *fu_flags=NULL) { - CDirEntry *tempm2; - while (tempm1 && !Bt(flags,FUf_CANCEL)) { - tempm2=tempm1->next; - if (tempm1->attr & _ATTR_DIR) { - if (tempm1->sub) { - "%S %s\n","ST_SCANNING_DIR",tempm1->full_name; - UncollapseLst(tempm1->sub,flags); - } - } else - UncollapseFile(tempm1->full_name,flags); - CDirEntryDel(tempm1); - tempm1=tempm2; + I64 fuf_flags=0; + CDirEntry *tempde,*tempde1; + ScanFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),"+r+f+F+T"); + ScanFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),fu_flags); + tempde=tempde1=FilesFind(files_find_mask,fuf_flags); + while (tempde && !Bt(&fuf_flags,FUf_CANCEL)) { + UncollapseFile(tempde->full_name,&fuf_flags); + tempde=tempde->next; } -} - -U0 Uncollapse(U8 *files_find_mask=FILENAME_MASK_TXT,U8 *fu_flags=NULL) -{ - I64 f=0; - GetFFlags(&f,Define("ST_FILE_UTIL_FLAGS"),"+r"); - GetFFlags(&f,Define("ST_FILE_UTIL_FLAGS"),fu_flags); - UncollapseLst(FilesFind(files_find_mask,f),&f); + DirLstDel(tempde1); } public U0 CopySongs(U8 threshold='7') { CDoc *s; CDocEntry *doc_e; - CDirEntry *tempm,*tempm1; + CDirEntry *tempde,*tempde1; DelTree("/TempleOS/Apps/MusicOrgan/Examples"); MkDir("/TempleOS/Apps/MusicOrgan/Examples"); - tempm1=tempm=FilesFind("/TempleOS/Accts/TS/TAD/MusicOrgan/*.CPP*"); - while (tempm1) { - s=DocRead(tempm1->full_name); + tempde1=tempde=FilesFind("/TempleOS/Accts/TS/TAD/MusicOrgan/*.CPP*"); + while (tempde1) { + s=DocRead(tempde1->full_name); doc_e=s->root.next; if (doc_e->type_u8==DOCT_TEXT && doc_e->tag[2]>=threshold) - Copy(tempm1->full_name,"/TempleOS/Apps/MusicOrgan/Examples"); - tempm1=tempm1->next; + Copy(tempde1->full_name,"/TempleOS/Apps/MusicOrgan/Examples"); + tempde1=tempde1->next; } - CDirLstDel(tempm); + DirLstDel(tempde); } U0 DistroPrep() @@ -222,7 +211,7 @@ U0 DistroPrep() DelTree("/TempleOS/Demo/*.BI*"); Cd("/TempleOS"); - S2T(FILENAME_MASK_SRC,"+r"); + S2T("*","+r+S"); DocOpt; Move(WSD_DEF_FILENAME,WSD_DEF_FILENAME_Z); } @@ -234,7 +223,7 @@ U0 MakeSymFiles() if (ts_has_bak_drv) { DocClear; DocMax; - HashRep(Fs->hash_table,HTG_ALL,NULL,"-p",0,NULL); + Who; if (doc=DocPut) { st=StrNew(doc->filename.name); StrCpy(doc->filename.name,TS_BAK_DRV ":/Wb/Accts/TS/Wb2/SymsAlpha.TXT.Z"); @@ -244,7 +233,7 @@ U0 MakeSymFiles() } DocClear; DocMax; - HashRep(Fs->hash_table,HTG_ALL,NULL,"-p+m",0,NULL); + Who("+m"); if (doc=DocPut) { st=StrNew(doc->filename.name); StrCpy(doc->filename.name,TS_BAK_DRV ":/Wb/Accts/TS/Wb2/SymsAddress.TXT.Z"); @@ -290,9 +279,9 @@ I64 MakeLineCntFile() DocCut(doc,start_indent->next,end_indent->last); doc->cur_entry=start_indent->next; doc->cur_data_col=0; - DocPrintF(doc,"DefinePrintF(\"DD_TEMPLEOS_LOC\",\"%,d\");\n",result); + DocPrint(doc,"DefinePrint(\"DD_TEMPLEOS_LOC\",\"%,d\");\n",result); - st=MSPrintF("%,d",result); + st=MPrint("%,d",result); DefineLoad("DD_TEMPLEOS_LOC",st); Free(st); @@ -370,19 +359,39 @@ U0 TSWebFile(U8 *name) U0 MakeWebSite() { - CDirEntry *tempm,*tempm2; + CDirEntry *tempde,*tempde2; if (ts_has_bak_drv) { DocClear; Cd(TS_BAK_DRV ":/Wb"); DelTree(TS_BAK_DRV ":/Wb/Accts/TS/TAD"); Del(TS_BAK_DRV ":/Wb/Accts/TS/*"); - Touch(TS_BAK_DRV ":/Wb/Accts/TS/Wb2/index.TXT.Z","",,GetCurTimeDate); - tempm=tempm2=FilesFind(FILENAME_MASK_TXT,FUF_RECURSE|FUF_FLATTEN_TREE|FUF_JUST_FILES); - while (tempm) { - TSWebFile(tempm->full_name); - tempm=tempm->next; + Touch(TS_BAK_DRV ":/Wb/Accts/TS/Wb2/index.TXT.Z","",,GetDateTime); + tempde=tempde2=FilesFind("*",FUF_RECURSE|FUF_JUST_FILES|FUF_JUST_TXT); + while (tempde) { + TSWebFile(tempde->full_name); + tempde=tempde->next; } - CDirLstDel(tempm2); + DirLstDel(tempde2); + Drv(TS_MAIN_DRV_LET); + } +} + +U0 MakeWebSitePartial() +{ + CDirEntry *tempde,*tempde2; + if (ts_has_bak_drv) { + DelTree(TS_BAK_DRV ":/Wb/Accts/TS/Wb2"); + CopyTree(TS_MAIN_DRV ":/TempleOS/Accts/TS/Wb2", + TS_BAK_DRV ":/Wb/Accts/TS/Wb2"); + DelTree(TS_BAK_DRV ":/Uncompressed/Accts/TS/Wb2"); + CopyTree(TS_MAIN_DRV ":/TempleOS/Accts/TS/Wb2", + TS_BAK_DRV ":/Uncompressed/Accts/TS/Wb2"); + tempde=tempde2=FilesFind(TS_BAK_DRV ":/Wb/Accts/TS/Wb2/*",FUF_RECURSE|FUF_JUST_FILES|FUF_JUST_TXT); + while (tempde) { + TSWebFile(tempde->full_name); + tempde=tempde->next; + } + DirLstDel(tempde2); Drv(TS_MAIN_DRV_LET); } } @@ -393,7 +402,7 @@ U0 ToWeb(U8 *name) if (ts_has_bak_drv) { st=FileNameAbs(name); if (!StrNCmp(st+1,":/TempleOS/",12)) { - st2=MSPrintF(TS_BAK_DRV":/Wb/%s",st+13); + st2=MPrint(TS_BAK_DRV":/Wb/%s",st+13); "%s\n",st2; Copy(name,st2); TSWebFile(st2); @@ -406,21 +415,21 @@ U0 ToWeb(U8 *name) U0 TSUncompress() { U8 *st; - CDirEntry *tempm,*tempm1; + CDirEntry *tempde,*tempde1; if (ts_has_bak_drv) { DelTree(TS_BAK_DRV ":/Uncompressed"); CopyTree(TS_MAIN_DRV ":/TempleOS",TS_BAK_DRV ":/Uncompressed"); - tempm=FilesFind(TS_BAK_DRV ":/Uncompressed/*.Z",FUF_RECURSE|FUF_FLATTEN_TREE|FUF_JUST_FILES); - while (tempm) { - tempm1=tempm->next; - st=StrNew(tempm->full_name); + tempde=FilesFind(TS_BAK_DRV ":/Uncompressed/*.Z",FUF_RECURSE|FUF_JUST_FILES); + while (tempde) { + tempde1=tempde->next; + st=StrNew(tempde->full_name); StrLastRem(st,"."); - Move(tempm->full_name,st); + Move(tempde->full_name,st); Free(st); - CDirEntryDel(tempm); - tempm=tempm1; + DirEntryDel(tempde); + tempde=tempde1; } - FilesCursorRem(TS_BAK_DRV ":/Uncompressed/" FILENAME_MASK_TXT); + FilesCursorRem(TS_BAK_DRV ":/Uncompressed/*"); } } @@ -428,11 +437,11 @@ U0 UpdateISODocDefines() { I64 size; size=10*FileSize(TS_BAK_DRV ":/Wb/TempleOSCD.ISO")/1024/1024; - DefinePrintF("DD_TEMPLEOSCD_SIZE", - "Download $TX+D,"TempleOS V1.03","DD_OS_NAME_VERSION"$ - Std. Distro (%0.1f MB)",0.1*size); + DefinePrint("DD_TEMPLEOSCD_SIZE", + "Download $TX+D,"TempleOS V1.05","DD_OS_NAME_VERSION"$ - Std. Distro (%0.1f MB)",0.1*size); size=10*FileSize(TS_BAK_DRV ":/Wb/TempleOSTS.ISO")/1024/1024; - DefinePrintF("DD_TEMPLEOSTS_SIZE", - "Download $TX+D,"TempleOS V1.03","DD_OS_NAME_VERSION"$ - T.S. Company Internal Distro (%0.1f MB)",0.1*size); + DefinePrint("DD_TEMPLEOSTS_SIZE", + "Download $TX+D,"TempleOS V1.05","DD_OS_NAME_VERSION"$ - T.S. Company Internal Distro (%0.1f MB)",0.1*size); } UpdateISODocDefines; @@ -529,4 +538,3 @@ public U0 TSInstall() TSCopy; } } - diff --git a/TempleOS/Accts/TS/TSHolySpirit.CPP b/TempleOS/Accts/TS/TSHolySpirit.CPP new file mode 100644 index 0000000..43a00d2 --- /dev/null +++ b/TempleOS/Accts/TS/TSHolySpirit.CPP @@ -0,0 +1,306 @@ +#define TS_HS_BAD_BITS 4 +#define GODLE_HS_BAD_BITS 4 +#define GODLE_HS_GOOD_BITS 24 + +Bool godle_done; +I64 godle_ch; +CDC *main_dc; +U0 GodleDraw(CTask *task,CDC *dc) +{ + GrBlot(dc,0,0,main_dc); + if (!(win_updates&7)) { + dc->color=LTRED; + if (godle_done) + GrPrint(dc,(task->win_pixel_width-FONT_WIDTH*4)>>1,(task->win_pixel_height-FONT_HEIGHT)>>1, + "Done"); + } +} + +U0 GodleSmooth(I64 num) +{ + CDC *dc=DCExtract(main_dc,0,0,main_dc->width-1,main_dc->height-1); + I64 i,x,y,x1,y1,c,histogram[16],best,best_cnt,c_old=main_dc->color; + for (y=0;yheight;y++) + for (x=0;xwidth;x++) { + MemSet(histogram,0,sizeof(histogram)); + for (y1=y-num;y1<=y+num;y1++) + for (x1=x-num;x1<=x+num;x1++) { + c=GrPeek(dc,x1,y1); + if (0<=c<=15) + histogram[c]++; + } + best=BLACK; + best_cnt=-1; + for (i=0;i<16;i++) + if (histogram[i]>best_cnt) { + best=i; + best_cnt=histogram[i]; + } + main_dc->color=best; + GrPlot(main_dc,x,y); + } + main_dc->color=c_old; + DCDel(dc); +} + +CFifoU8 *godle_timer_pick_fifo=FifoU8New(32); +U0 GodleTimerPickFlush() +{ + FifoU8Flush(godle_timer_pick_fifo); +} + +I64 GodleTimerPickedBits(I64 num_bits) +{ + U8 b; + I64 i,k,result=0; + while (num_bits) { + if (FifoU8Rem(godle_timer_pick_fifo,&b)) { + result=result<<1+b; + num_bits--; + } else { + godle_ch=GetChar(,FALSE); + if (godle_ch==CH_ESC||godle_ch==CH_SHIFT_ESC) + throw; + else if (godle_ch=='\n') { + DCFill(main_dc,WHITE); + FifoU8Flush(godle_timer_pick_fifo); + } else if ('0'<=godle_ch<='9') + GodleSmooth(godle_ch-'0'); + else { + k=KbdMouseEvtTime>>GODLE_HS_BAD_BITS; + for (i=0;i>=1; + } + } + } + } + return result; +} + +U0 RandQuote() +{ //$LK-A,"::/TempleOS/Apps/HolySpirit/HSNotes.TXT"$ + I64 i,size,l=512; + U8 *bible_filename=Define("ST_BIBLE_FILE"), + *buf=FileRead(bible_filename,&size); + if (buf) { + i=KbdMouseEvtTime>>TS_HS_BAD_BITS%(size-l); + buf[i+l]=0; + "%s",buf+i; + Free(buf); + } +} + +U0 RandWord() +{ + "%s ",ws_sorted_words[KbdMouseEvtTime>>TS_HS_BAD_BITS%ws_num_words]->str; +} + +U0 BadCodeJump() +{ //$LK-A,"::/TempleOS/Apps/HolySpirit/HSNotes.TXT"$ + CDirEntry *root=FilesFind("/TempleOS/*",FUF_JUST_FILES|FUF_RECURSE|FUF_JUST_SRC), + *tempdee=root; + I64 cnt=0,num; + CDoc *doc; + U8 *st; + while (tempdee) { + doc=DocRead(tempdee->full_name); + tempdee->user_data=doc->root.y; + cnt+=doc->root.y; + DocDel(doc); + tempdee=tempdee->next; + } + num=KbdMouseEvtTime>>TS_HS_BAD_BITS%cnt; + tempdee=root; + while (tempdee) { + num-=tempdee->user_data; + if (num<0) { + st=MPrint("FL:%s,%d",tempdee->full_name,-num); + break; + } + tempdee=tempdee->next; + } + DirLstDel(root); + Ed(st); + Free(st); +} + +U0 Godle() +{ + I64 i,j,w,h,x,y,ch; + godle_done=FALSE; + SettingsPush; //See $LK,"SettingsPush","MN:SettingsPush"$ + WinMax; + WinBorder; + WordStat; + + WinMgrSync; + godle_ch=0; + main_dc=DCNew(DCT_COLOR8,Fs->win_pixel_width,Fs->win_pixel_height); + DCFill(main_dc,WHITE); + w=main_dc->width; + h=main_dc->height; + + Fs->draw_it=&GodleDraw; + GodleTimerPickFlush; + try { + for (i=0;i<3;i++) { + main_dc->color=RED; + for (j=0;j<24;j++) + GrLine(main_dc, + (w-1)*GodleTimerPickedBits(4)/15,(h-1)*GodleTimerPickedBits(4)/15, + (w-1)*GodleTimerPickedBits(4)/15,(h-1)*GodleTimerPickedBits(4)/15); + for (j=4;j;) { + x=(w-1)*GodleTimerPickedBits(5)/31+w/64; + y=(h-1)*GodleTimerPickedBits(5)/31+h/64; + switch(GrPeek(main_dc,x,y)) { + case BLACK: + main_dc->color=WHITE; + GrFloodFill(main_dc,x,y); + j--; + break; + case WHITE: + main_dc->color=BLACK; + GrFloodFill(main_dc,x,y); + j--; + break; + } + } + GodleSmooth(3); + } + godle_done=TRUE; + do ch=GetChar(,FALSE); + while (ch!=CH_ESC && ch!=CH_SHIFT_ESC); + } catch + Fs->catch_except=TRUE; + DCFill; + SettingsPop; + DCDel(main_dc); +} + +class CMyURL +{ + U8 tag[136] fmtstr "$$DA-P,135,\"Tag Text:%s\"$$\n"; + U8 special[136] fmtstr "$$DA-P,135,\"Special :%s\"$$\n"; + I64 min fmtstr "$$DA,32, \"Min :%d\"$$\n"; + I64 sec fmtstr "$$DA,32, \"Sec :%d\"$$\n"; +}; + +U8 *URLPercentSpaces(U8 *src) +{ + U8 buf[1024],*dst=buf; + while (*src) { + if (*src==CH_SPACE) { + *dst++='%'; + *dst++='%'; + *dst++='2'; + *dst++='0'; + src++; + } else + *dst++=*src++; + } + *dst=0; + return StrNew(buf); +} + +U0 FillInMyURL() +{ + CMyURL *url=CAlloc(sizeof(CMyURL)); + U8 *tag,*st,*st2; + I64 i=PopUpPickLst("Web Bible\0YouTube\0Wikipedia\0Cert\0" + "RandomNumbers.info\0Random.org\0Virtual Notary\0Nist\0HotBits\0"); + if (i>=0 && DocFormDo(url)) { + switch (i) { + case 0: + tag=url->special; + st2=URLPercentSpaces(url->special); + st=MPrint("http://www.biblegateway.com/passage/?search=%s&version=NIV",st2); + Free(st2); + if (*url->tag) + tag=url->tag; + "$$TX+HTML,\"%Q\",\"%Q\"$$",tag,st; + Free(st); + break; + case 1: + tag="YouTube Video"; + if (url->min || url->sec) + st=MPrint("http://www.youtube.com/watch?v=%s&t=%dm%ds",url->special,url->min,url->sec); + else + st=MPrint("http://www.youtube.com/watch?v=%s",url->special); + if (*url->tag) + tag=url->tag; + "$$TX+HTML,\"%Q\",\"%Q\"$$",tag,st; + Free(st); + break; + case 2: + tag=url->special; + st=MPrint("http://en.wikipedia.org/wiki/%s",url->special); + if (*url->tag) + tag=url->tag; + "$$TX+HTML,\"%Q\",\"%Q\"$$",tag,st; + Free(st); + break; + case 3: + tag="Here is the certificate"; + st=MPrint("http://www.templeos.org/Certs/virtual-notary-cert-randomnum-%s.p12",url->special); + if (*url->tag) + tag=url->tag; + "$$TX+HTML,\"%Q\",\"%Q\"$$",tag,st; + Free(st); + break; + case 4: + tag="http://www.randomnumbers.info"; + "$$TX+HTML,\"%Q\",\"%Q\"$$\n",tag,tag; + if (*url->special) { + i=A2I(url->special); + "\nLine:%d\nGod says...\n$$FG,RED$$",i; + PutBibleLines(i%100000,20); + "$$FG$$\n"; + } + break; + case 5: + tag="http://www.random.org"; + "$$TX+HTML,\"%Q\",\"%Q\"$$\n",tag,tag; + if (*url->special) { + i=A2I(url->special); + "\nLine:%d\nGod says...\n$$FG,RED$$",i; + PutBibleLines(i%100000,20); + "$$FG$$\n"; + } + break; + case 6: + tag="http://virtual-notary.org"; + "$$TX+HTML,\"%Q\",\"%Q\"$$\n",tag,tag; + if (*url->special) { + i=A2I(url->special); + "\nLine:%d\nGod says...\n$$FG,RED$$",i; + PutBibleLines(i%100000,20); + "$$FG$$\n"; + } + break; + case 7: + tag="http://qrng.anu.edu.au/NIST.php"; + "$$TX+HTML,\"%Q\",\"%Q\"$$\n",tag,tag; + if (*url->special) { + i=A2I(url->special,16); + "\n0x%s-->%d mod 100000-->Line:%05d\n" + "God says...\n$$FG,RED$$",url->special,i,i%100000; + PutBibleLines(i%100000,20); + "$$FG$$\n"; + } + break; + case 8: + tag="https://www.fourmilab.ch/hotbits/secure_generate.html"; + "$$TX+HTML,\"%Q\",\"%Q\"$$\n",tag,tag; + if (*url->special) { + i=A2I(url->special,16); + "\n0x%s-->%d mod 100000-->Line:%05d\n" + "God says...\n$$FG,RED$$",url->special,i,i%100000; + PutBibleLines(i%100000,20); + "$$FG$$\n"; + } + break; + } + } + Free(url); +} diff --git a/TempleOS/Accts/TS/Wb2/Downloads.TXT b/TempleOS/Accts/TS/Wb2/Downloads.TXT new file mode 100644 index 0000000..5295e84 --- /dev/null +++ b/TempleOS/Accts/TS/Wb2/Downloads.TXT @@ -0,0 +1,32 @@ +$WW,1$$FG,1$$TX+CX+HTML,"The Temple Operating System","http://www.templeos.org"$$FG$ + +$FG,2$$TX+D+HTML,"Download TempleOS V1.05 - Std. Distro (23.8 MB)","DD_TEMPLEOSCD_SIZE","http://www.templeos.org/TempleOSCD.ISO"$$FG$ + +Burn a CD/DVD from the TempleOSCD.ISO and boot it or run it in $FG,4$$TX+HTML,"VMware","https://my.vmware.com/web/vmware/free#desktop_end_user_computing/vmware_player/5_0"$$FG$ or $FG,4$$TX+HTML,"VirtualBox","http://www.virtualbox.org"$$FG$ aiming the CD/DVD drive at TempleOSCD.ISO or for QEMU type: +>qemu-system-x86_64 -m 500 -cdrom TempleOSCD.ISO -boot d +Downgrade to VMware Player 4.0 or VMware Workstation 8.0 if you want sound and you have an internal PC speaker. + +$LK,"Make Your own TempleOS ISO Distro","FI:::/TempleOS/Demo/MakeDistro.CPP"$ + + +$FG,2$$TX+HTML,"Download SimStructure (7.71 MB)","http://www.templeos.org/files/SimStrSetUp.zip"$$FG$ + +SimStructure is a Windows free physics simulator. + + +$FG,2$$TX+HTML,"Download InGodsTime (12.4 MB)","http://www.templeos.org/files/TSGodSetUp.zip"$$FG$ + +This is a Windows program for doing Biblical Tongues with a stopwatch. When you press a key, it reads a high-speed watch for a random number to pick words or passages. + + +$FG,2$$TX+D+HTML,"Download TempleOS V1.05 - T.S. Company Internal Distro (24.6 MB)","DD_TEMPLEOSTS_SIZE","http://www.templeos.org/TempleOSTS.ISO"$$FG$ + +This is the Trivial Solution internal company distro. Only run this on a virtual machine, not bare metal hardware because it's settings could cause problems. The hard drive must be partitioned. Install Std Distro, then install this on top. +>$LK,"TSInstall","FF:::/TempleOS/Demo/AcctExample/TSDistro.CPP,TSInstall"$; +>$LK,"TSUpgrade","FF:::/TempleOS/Demo/AcctExample/TSDistro.CPP,TSUpgrade"$; +See $LK,"MakeDistrosAndBackUp","FF:::/TempleOS/Demo/AcctExample/TSDistro.CPP,MakeDistrosAndBackUp"$() to reproduce the ISO's in $FG,4$E:/Wb$FG$. It makes this website, too. + +$FG,8$ +* "VMware Player" and "VMware WorkStation" are trademarks of VMware, Inc. +* "VirtualBox" is a trademark of Oracle. +* "Windows" and "DOS" are trademark of MicroSoft Corp. diff --git a/TempleOS/Accts/TS/Wb2/Games.TXT b/TempleOS/Accts/TS/Wb2/Games.TXT index 6d73f62..4e3ff4d 100644 --- a/TempleOS/Accts/TS/Wb2/Games.TXT +++ b/TempleOS/Accts/TS/Wb2/Games.TXT @@ -1,16 +1,19 @@ $WW,1$$FG,5$$TX+CX+HTML,"TempleOS","http://www.templeos.org"$$FG$ -$HC,""$ +$HC,""$ $TX+CX,"After Egypt: Moses Game"$ +$LK-A,"::/TempleOS/Apps/HolySpirit/HolySpirit.CPP"$ $LK-A,"::/TempleOS/Apps/AfterEgypt/AfterEgypt.CPP"$ -$LK-A,"::/TempleOS/Apps/AfterEgypt/GodTalking.CPP.Z"$ $LK-A,"::/TempleOS/Apps/AfterEgypt/Battle.CPP"$ +$LK-A,"::/TempleOS/Apps/AfterEgypt/Comics.CPP"$ +$LK-A,"::/TempleOS/Apps/AfterEgypt/GodTalking.CPP.Z"$ $LK-A,"::/TempleOS/Apps/AfterEgypt/Horeb.CPP"$ $LK-A,"::/TempleOS/Apps/AfterEgypt/Map.CPP"$ $LK-A,"::/TempleOS/Apps/AfterEgypt/Quail.CPP"$ $LK-A,"::/TempleOS/Apps/AfterEgypt/WaterRock.CPP"$ $LK-A,"::/TempleOS/Demo/Graphics/Camp.CPP"$ +$LK-A,"::/TempleOS/Demo/Graphics/Mountain.CPP"$ $LK-A,"::/TempleOS/Demo/MultiCore/Clouds.CPP"$ @@ -19,7 +22,7 @@ $LK-A,"::/TempleOS/Demo/MultiCore/Clouds.CPP"$ -$HC,""$ +$HC,""$ $TX+CX,"Flight Sim / First Person Shooter"$ $LK-A,"::/TempleOS/Demo/Games/EagleDive.CPP"$ diff --git a/TempleOS/Accts/TS/Wb2/Hymns.TXT b/TempleOS/Accts/TS/Wb2/Hymns.TXT index b4b4b99..96c86a2 100644 --- a/TempleOS/Accts/TS/Wb2/Hymns.TXT +++ b/TempleOS/Accts/TS/Wb2/Hymns.TXT @@ -2,81 +2,140 @@ $WW,1$$FG,5$$TX+CX+HTML,"TempleOS","http://www.templeos.org"$$FG$ $FG,4$$TX+CX+HTML,"Download Hymn Player/Maker for Windows (6.99MB)","http://www.templeos.org/files/TSHymnSetUp.zip"$$FG$ +$HC,""$ +$TX+CX,"Hymns #1"$ +$LK+CX," 1) Abiding ","FI:::/TempleOS/Apps/MusicOrgan/Examples/abiding.CPP.Z"$ +$LK+CX," 2) Abyss ","FI:::/TempleOS/Apps/MusicOrgan/Examples/abyss.CPP.Z"$ +$LK+CX," 3) Almighty ","FI:::/TempleOS/Apps/MusicOrgan/Examples/almighty.CPP.Z"$ +$LK+CX," 4) Alone ","FI:::/TempleOS/Apps/MusicOrgan/Examples/alone.CPP.Z"$ +$LK+CX," 5) Appreciate ","FI:::/TempleOS/Apps/MusicOrgan/Examples/appreciate.CPP.Z"$ +$LK+CX," 6) Awake ","FI:::/TempleOS/Apps/MusicOrgan/Examples/awake.CPP.Z"$ +$LK+CX," 7) Battlehymnsolo","FI:::/TempleOS/Apps/MusicOrgan/Examples/battlehymnsolo.CPP.Z"$ +$LK+CX," 8) Bedewed ","FI:::/TempleOS/Apps/MusicOrgan/Examples/bedewed.CPP.Z"$ +$LK+CX," 9) Blinded ","FI:::/TempleOS/Apps/MusicOrgan/Examples/blinded.CPP.Z"$ +$LK+CX,"10) Born ","FI:::/TempleOS/Apps/MusicOrgan/Examples/born.CPP.Z"$ -$HC,""$ + +$HC,""$ +$TX+CX,"Hymns #2"$ +$LK+CX," 1) Childish ","FI:::/TempleOS/Apps/MusicOrgan/Examples/childish.CPP.Z"$ +$LK+CX," 2) Compassions ","FI:::/TempleOS/Apps/MusicOrgan/Examples/compassions.CPP.Z"$ +$LK+CX," 3) Completed ","FI:::/TempleOS/Apps/MusicOrgan/Examples/completed.CPP.Z"$ +$LK+CX," 4) Cosam ","FI:::/TempleOS/Apps/MusicOrgan/Examples/cosam.CPP.Z"$ +$LK+CX," 5) Depending ","FI:::/TempleOS/Apps/MusicOrgan/Examples/depending.CPP.Z"$ +$LK+CX," 6) Despairing ","FI:::/TempleOS/Apps/MusicOrgan/Examples/despairing.CPP.Z"$ +$LK+CX," 7) Determination","FI:::/TempleOS/Apps/MusicOrgan/Examples/determination.CPP.Z"$ +$LK+CX," 8) Dialogue ","FI:::/TempleOS/Apps/MusicOrgan/Examples/dialogue.CPP.Z"$ +$LK+CX," 9) Disputing ","FI:::/TempleOS/Apps/MusicOrgan/Examples/disputing.CPP.Z"$ +$LK+CX,"10) Doing ","FI:::/TempleOS/Apps/MusicOrgan/Examples/doing.CPP.Z"$ + + +$HC,""$ +$TX+CX,"Hymns #3"$ +$LK+CX," 1) Downfall ","FI:::/TempleOS/Apps/MusicOrgan/Examples/downfall.CPP.Z"$ +$LK+CX," 2) Dream ","FI:::/TempleOS/Apps/MusicOrgan/Examples/dream.CPP.Z"$ +$LK+CX," 3) Efforts ","FI:::/TempleOS/Apps/MusicOrgan/Examples/efforts.CPP.Z"$ +$LK+CX," 4) Elijah ","FI:::/TempleOS/Apps/MusicOrgan/Examples/elijah.CPP.Z"$ +$LK+CX," 5) Environeth","FI:::/TempleOS/Apps/MusicOrgan/Examples/environeth.CPP.Z"$ +$LK+CX," 6) Epicurus ","FI:::/TempleOS/Apps/MusicOrgan/Examples/epicurus.CPP.Z"$ +$LK+CX," 7) Exalt ","FI:::/TempleOS/Apps/MusicOrgan/Examples/exalt.CPP.Z"$ +$LK+CX," 8) Exiled ","FI:::/TempleOS/Apps/MusicOrgan/Examples/exiled.CPP.Z"$ +$LK+CX," 9) Exodus ","FI:::/TempleOS/Apps/MusicOrgan/Examples/exodus.CPP.Z"$ +$LK+CX,"10) Expedition","FI:::/TempleOS/Apps/MusicOrgan/Examples/expedition.CPP.Z"$ + + +$HC,""$ +$TX+CX,"Hymns #4"$ +$LK+CX," 1) Fairness ","FI:::/TempleOS/Apps/MusicOrgan/Examples/fairness.CPP.Z"$ +$LK+CX," 2) Feigned ","FI:::/TempleOS/Apps/MusicOrgan/Examples/feigned.CPP.Z"$ +$LK+CX," 3) Finger ","FI:::/TempleOS/Apps/MusicOrgan/Examples/finger.CPP.Z"$ +$LK+CX," 4) First ","FI:::/TempleOS/Apps/MusicOrgan/Examples/first.CPP.Z"$ +$LK+CX," 5) Fishermen","FI:::/TempleOS/Apps/MusicOrgan/Examples/fishermen.CPP.Z"$ +$LK+CX," 6) Fixing ","FI:::/TempleOS/Apps/MusicOrgan/Examples/fixing.CPP.Z"$ +$LK+CX," 7) Flung ","FI:::/TempleOS/Apps/MusicOrgan/Examples/flung.CPP.Z"$ +$LK+CX," 8) Fog ","FI:::/TempleOS/Apps/MusicOrgan/Examples/fog.CPP.Z"$ +$LK+CX," 9) Forasmuch","FI:::/TempleOS/Apps/MusicOrgan/Examples/forasmuch.CPP.Z"$ +$LK+CX,"10) Freaks ","FI:::/TempleOS/Apps/MusicOrgan/Examples/freaks.CPP.Z"$ + + +$HC,""$ +$TX+CX,"Hymns #5"$ +$LK+CX," 1) Free ","FI:::/TempleOS/Apps/MusicOrgan/Examples/free.CPP.Z"$ +$LK+CX," 2) Furnishing","FI:::/TempleOS/Apps/MusicOrgan/Examples/furnishing.CPP.Z"$ +$LK+CX," 3) Good ","FI:::/TempleOS/Apps/MusicOrgan/Examples/good.CPP.Z"$ +$LK+CX," 4) Gutenberg ","FI:::/TempleOS/Apps/MusicOrgan/Examples/gutenberg.CPP.Z"$ +$LK+CX," 5) Happy ","FI:::/TempleOS/Apps/MusicOrgan/Examples/happy.CPP.Z"$ +$LK+CX," 6) Hearsay ","FI:::/TempleOS/Apps/MusicOrgan/Examples/hearsay.CPP.Z"$ +$LK+CX," 7) Honestly ","FI:::/TempleOS/Apps/MusicOrgan/Examples/honestly.CPP.Z"$ +$LK+CX," 8) Hope ","FI:::/TempleOS/Apps/MusicOrgan/Examples/hope.CPP.Z"$ +$LK+CX," 9) Image ","FI:::/TempleOS/Apps/MusicOrgan/Examples/image.CPP.Z"$ +$LK+CX,"10) Josh ","FI:::/TempleOS/Apps/MusicOrgan/Examples/josh.CPP.Z"$ + + +$HC,""$ $TX+CX,"Hymns #6"$ -$LK+CX,"1) Risen ","FI:::/TempleOS/Apps/MusicOrgan/Examples/risen.CPP"$ -$LK+CX,"2) Struggles","FI:::/TempleOS/Apps/MusicOrgan/Examples/struggles.CPP"$ -$LK+CX,"3) Valued ","FI:::/TempleOS/Apps/MusicOrgan/Examples/valued.CPP"$ -$LK+CX,"4) Born ","FI:::/TempleOS/Apps/MusicOrgan/Examples/born.CPP"$ -$LK+CX,"5) Doing ","FI:::/TempleOS/Apps/MusicOrgan/Examples/doing.CPP"$ -$LK+CX,"6) Dialogue ","FI:::/TempleOS/Apps/MusicOrgan/Examples/dialogue.CPP"$ +$LK+CX," 1) Keeping ","FI:::/TempleOS/Apps/MusicOrgan/Examples/keeping.CPP.Z"$ +$LK+CX," 2) Kept ","FI:::/TempleOS/Apps/MusicOrgan/Examples/kept.CPP.Z"$ +$LK+CX," 3) Limit ","FI:::/TempleOS/Apps/MusicOrgan/Examples/limit.CPP.Z"$ +$LK+CX," 4) Mary ","FI:::/TempleOS/Apps/MusicOrgan/Examples/mary.CPP.Z"$ +$LK+CX," 5) Mightest","FI:::/TempleOS/Apps/MusicOrgan/Examples/mightest.CPP.Z"$ +$LK+CX," 6) Mildly ","FI:::/TempleOS/Apps/MusicOrgan/Examples/mildly.CPP.Z"$ +$LK+CX," 7) Nay ","FI:::/TempleOS/Apps/MusicOrgan/Examples/nay.CPP.Z"$ +$LK+CX," 8) Night ","FI:::/TempleOS/Apps/MusicOrgan/Examples/night.CPP.Z"$ +$LK+CX," 9) O ","FI:::/TempleOS/Apps/MusicOrgan/Examples/o.CPP.Z"$ +$LK+CX,"10) Partake ","FI:::/TempleOS/Apps/MusicOrgan/Examples/partake.CPP.Z"$ -$HC,""$ +$HC,""$ $TX+CX,"Hymns #7"$ -$FG,4$$TX+CX,"1) Access (Deleted)"$$FG$ -$LK+CX,"2) Silver ","FI:::/TempleOS/Apps/MusicOrgan/Examples/silver.CPP"$ -$LK+CX,"3) Night ","FI:::/TempleOS/Apps/MusicOrgan/Examples/night.CPP"$ -$LK+CX,"4) Abyss ","FI:::/TempleOS/Apps/MusicOrgan/Examples/abyss.CPP"$ -$LK+CX,"5) Elijah ","FI:::/TempleOS/Apps/MusicOrgan/Examples/elijah.CPP"$ -$LK+CX,"6) Environeth ","FI:::/TempleOS/Apps/MusicOrgan/Examples/environeth.CPP"$ +$LK+CX," 1) Permitted ","FI:::/TempleOS/Apps/MusicOrgan/Examples/permitted.CPP.Z"$ +$LK+CX," 2) Personal ","FI:::/TempleOS/Apps/MusicOrgan/Examples/personal.CPP.Z"$ +$LK+CX," 3) Population","FI:::/TempleOS/Apps/MusicOrgan/Examples/population.CPP.Z"$ +$LK+CX," 4) Project ","FI:::/TempleOS/Apps/MusicOrgan/Examples/project.CPP.Z"$ +$LK+CX," 5) Proponent ","FI:::/TempleOS/Apps/MusicOrgan/Examples/proponent.CPP.Z"$ +$LK+CX," 6) Prosper ","FI:::/TempleOS/Apps/MusicOrgan/Examples/prosper.CPP.Z"$ +$LK+CX," 7) Psalm ","FI:::/TempleOS/Apps/MusicOrgan/Examples/psalm.CPP.Z"$ +$LK+CX," 8) Purpose ","FI:::/TempleOS/Apps/MusicOrgan/Examples/purpose.CPP.Z"$ +$LK+CX," 9) Reasoning ","FI:::/TempleOS/Apps/MusicOrgan/Examples/reasoning.CPP.Z"$ +$LK+CX,"10) Reliance ","FI:::/TempleOS/Apps/MusicOrgan/Examples/reliance.CPP.Z"$ -$HC,""$$HC,""$ +$HC,""$ $TX+CX,"Hymns #8"$ -$FG,4$$TX+CX,"1) Pardon (Deleted) "$$FG$ -$FG,4$$TX+CX,"2) Brittle (Deleted)"$$FG$ -$LK+CX,"3) Service ","FI:::/TempleOS/Apps/MusicOrgan/Examples/service.CPP"$ -$LK+CX,"4) Reposes ","FI:::/TempleOS/Apps/MusicOrgan/Examples/reposes.CPP"$ -$LK+CX,"5) Limit ","FI:::/TempleOS/Apps/MusicOrgan/Examples/limit.CPP"$ +$LK+CX," 1) Reposes ","FI:::/TempleOS/Apps/MusicOrgan/Examples/reposes.CPP.Z"$ +$LK+CX," 2) Restless ","FI:::/TempleOS/Apps/MusicOrgan/Examples/restless.CPP.Z"$ +$LK+CX," 3) Rifled ","FI:::/TempleOS/Apps/MusicOrgan/Examples/rifled.CPP.Z"$ +$LK+CX," 4) Risen ","FI:::/TempleOS/Apps/MusicOrgan/Examples/risen.CPP.Z"$ +$LK+CX," 5) Satisfaction","FI:::/TempleOS/Apps/MusicOrgan/Examples/satisfaction.CPP.Z"$ +$LK+CX," 6) Scriptures ","FI:::/TempleOS/Apps/MusicOrgan/Examples/scriptures.CPP.Z"$ +$LK+CX," 7) Service ","FI:::/TempleOS/Apps/MusicOrgan/Examples/service.CPP.Z"$ +$LK+CX," 8) Shield ","FI:::/TempleOS/Apps/MusicOrgan/Examples/shield.CPP.Z"$ +$LK+CX," 9) Signifies ","FI:::/TempleOS/Apps/MusicOrgan/Examples/signifies.CPP.Z"$ +$LK+CX,"10) Silver ","FI:::/TempleOS/Apps/MusicOrgan/Examples/silver.CPP.Z"$ -$HC,""$ +$HC,""$ $TX+CX,"Hymns #9"$ -$LK+CX,"1) Mightest ","FI:::/TempleOS/Apps/MusicOrgan/Examples/mightest.CPP"$ -$LK+CX,"2) Fishermen ","FI:::/TempleOS/Apps/MusicOrgan/Examples/fishermen.CPP"$ -$LK+CX,"3) Expedition","FI:::/TempleOS/Apps/MusicOrgan/Examples/expedition.CPP"$ -$LK+CX,"4) Awake ","FI:::/TempleOS/Apps/MusicOrgan/Examples/awake.CPP"$ -$LK+CX,"5) Exiled ","FI:::/TempleOS/Apps/MusicOrgan/Examples/exiled.CPP"$ -$LK+CX,"6) Gutenberg ","FI:::/TempleOS/Apps/MusicOrgan/Examples/gutenberg.CPP"$ +$LK+CX," 1) Small ","FI:::/TempleOS/Apps/MusicOrgan/Examples/small.CPP.Z"$ +$LK+CX," 2) Struggles","FI:::/TempleOS/Apps/MusicOrgan/Examples/struggles.CPP.Z"$ +$LK+CX," 3) Sustain ","FI:::/TempleOS/Apps/MusicOrgan/Examples/sustain.CPP.Z"$ +$LK+CX," 4) Teachings","FI:::/TempleOS/Apps/MusicOrgan/Examples/teachings.CPP.Z"$ +$LK+CX," 5) Thereupon","FI:::/TempleOS/Apps/MusicOrgan/Examples/thereupon.CPP.Z"$ +$LK+CX," 6) Thither ","FI:::/TempleOS/Apps/MusicOrgan/Examples/thither.CPP.Z"$ +$LK+CX," 7) Twins ","FI:::/TempleOS/Apps/MusicOrgan/Examples/twins.CPP.Z"$ +$LK+CX," 8) Valued ","FI:::/TempleOS/Apps/MusicOrgan/Examples/valued.CPP.Z"$ +$LK+CX," 9) Vengeance","FI:::/TempleOS/Apps/MusicOrgan/Examples/vengeance.CPP.Z"$ +$LK+CX,"10) Verses ","FI:::/TempleOS/Apps/MusicOrgan/Examples/verses.CPP.Z"$ -$HC,""$ +$HC,""$ $TX+CX,"Hymns #10"$ -$LK+CX," 1) Abiding ","FI:::/TempleOS/Apps/MusicOrgan/Examples/abiding.CPP"$ -$LK+CX," 2) Fog ","FI:::/TempleOS/Apps/MusicOrgan/Examples/fog.CPP"$ -$LK+CX," 3) Reasoning ","FI:::/TempleOS/Apps/MusicOrgan/Examples/reasoning.CPP"$ -$LK+CX," 4) Childish ","FI:::/TempleOS/Apps/MusicOrgan/Examples/childish.CPP"$ -$LK+CX," 5) Furnishing","FI:::/TempleOS/Apps/MusicOrgan/Examples/furnishing.CPP"$ -$LK+CX," 6) Prosper ","FI:::/TempleOS/Apps/MusicOrgan/Examples/prosper.CPP"$ -$LK+CX," 7) Exalt ","FI:::/TempleOS/Apps/MusicOrgan/Examples/exalt.CPP"$ -$LK+CX," 8) Hope ","FI:::/TempleOS/Apps/MusicOrgan/Examples/hope.CPP"$ -$LK+CX," 9) Free ","FI:::/TempleOS/Apps/MusicOrgan/Examples/free.CPP"$ -$LK+CX,"10) Freaks ","FI:::/TempleOS/Apps/MusicOrgan/Examples/freaks.CPP"$ -$LK+CX,"11) Proponent ","FI:::/TempleOS/Apps/MusicOrgan/Examples/proponent.CPP"$ - - -$HC,""$ -$TX+CX,"Hymns #11"$ -$LK+CX,"1) Bedewed ","FI:::/TempleOS/Apps/MusicOrgan/Examples/bedewed.CPP"$ -$LK+CX,"2) Purpose ","FI:::/TempleOS/Apps/MusicOrgan/Examples/purpose.CPP"$ -$LK+CX,"3) Sustain ","FI:::/TempleOS/Apps/MusicOrgan/Examples/sustain.CPP"$ -$LK+CX,"4) Personal","FI:::/TempleOS/Apps/MusicOrgan/Examples/personal.CPP"$ -$LK+CX,"5) Twins ","FI:::/TempleOS/Apps/MusicOrgan/Examples/twins.CPP"$ -$LK+CX,"6) Keeping ","FI:::/TempleOS/Apps/MusicOrgan/Examples/keeping.CPP"$ -$LK+CX,"7) Dream ","FI:::/TempleOS/Apps/MusicOrgan/Examples/dream.CPP"$ - - -$HC,""$ -$TX+CX,"Hymns #12"$ -$LK+CX,"1) Small ","FI:::/TempleOS/Apps/MusicOrgan/Examples/small.CPP"$ -$LK+CX,"2) Satisfaction ","FI:::/TempleOS/Apps/MusicOrgan/Examples/satisfaction.CPP"$ -$LK+CX,"3) Image ","FI:::/TempleOS/Apps/MusicOrgan/Examples/image.CPP"$ -$FG,4$$TX+CX,"4) Duab(Deleted)"$$FG$ -$LK+CX,"5) Disputing ","FI:::/TempleOS/Apps/MusicOrgan/Examples/disputing.CPP"$ -$LK+CX,"6) Appreciate ","FI:::/TempleOS/Apps/MusicOrgan/Examples/appreciate.CPP"$ -$LK+CX,"7) Completed ","FI:::/TempleOS/Apps/MusicOrgan/Examples/completed.CPP"$ +$LK+CX," 1) Villa ","FI:::/TempleOS/Apps/MusicOrgan/Examples/villa.CPP.Z"$ +$LK+CX," 2) Wisdom ","FI:::/TempleOS/Apps/MusicOrgan/Examples/wisdom.CPP.Z"$ +$LK+CX," 3) Witherto","FI:::/TempleOS/Apps/MusicOrgan/Examples/witherto.CPP.Z"$ +$LK+CX," 4) Worship ","FI:::/TempleOS/Apps/MusicOrgan/Examples/worship.CPP.Z"$ +$LK+CX," 5) You ","FI:::/TempleOS/Apps/MusicOrgan/Examples/you.CPP.Z"$ +$LK+CX," 6) Zip ","FI:::/TempleOS/Apps/MusicOrgan/Examples/zip.CPP.Z"$ $FG,8$ * "Windows" is a trademark of MicroSoft Corp. diff --git a/TempleOS/Accts/TS/Wb2/LineCnt.TXT b/TempleOS/Accts/TS/Wb2/LineCnt.TXT index d68d642..f34b335 100644 --- a/TempleOS/Accts/TS/Wb2/LineCnt.TXT +++ b/TempleOS/Accts/TS/Wb2/LineCnt.TXT @@ -1,5 +1,5 @@ -$WW+H,1$ 122,808 $TR,"/TempleOS/*"$ -$ID,2$ 613 $TR,"Accts"$ +$WW+H,1$ 124,033 $TR,"/TempleOS/*"$ +$ID,2$ 604 $TR,"Accts"$ $ID,2$ 290 $TR,"Install"$ $ID,2$ 40 $LK,"Adam3fSys.CPP.Z","FI:D:/TempleOS/Accts/Install/Adam3fSys.CPP"$ 250 $LK,"DoItOnce.CPP.Z","FI:D:/TempleOS/Accts/Install/DoItOnce.CPP"$ @@ -7,14 +7,14 @@ $ID,-2$ 0 $TR,"User"$ $ID,2$$ID,-2$ 9 $LK,"Adam3.CPP.Z","FI:D:/TempleOS/Accts/Adam3.CPP"$ 20 $LK,"Adam3aLocalize.CPP.Z","FI:D:/TempleOS/Accts/Adam3aLocalize.CPP"$ 26 $LK,"Adam3bPkgs.CPP.Z","FI:D:/TempleOS/Accts/Adam3bPkgs.CPP"$ - 180 $LK,"Adam3dKeyPlugIns.CPP.Z","FI:D:/TempleOS/Accts/Adam3dKeyPlugIns.CPP"$ + 171 $LK,"Adam3dKeyPlugIns.CPP.Z","FI:D:/TempleOS/Accts/Adam3dKeyPlugIns.CPP"$ 28 $LK,"Adam3eWrappers.CPP.Z","FI:D:/TempleOS/Accts/Adam3eWrappers.CPP"$ 43 $LK,"Adam3fSys.CPP.Z","FI:D:/TempleOS/Accts/Adam3fSys.CPP"$ 17 $LK,"DoItOnce.CPP.Z","FI:D:/TempleOS/Accts/DoItOnce.CPP"$ -$ID,-2$ 37,180 $TR,"Adam"$ -$ID,2$ 1,382 $TR,"Boot"$ -$ID,2$ 159 $LK,"BootCD.CPP.Z","FI:D:/TempleOS/Adam/Boot/BootCD.CPP"$ - 95 $LK,"BootHD.CPP.Z","FI:D:/TempleOS/Adam/Boot/BootHD.CPP"$ +$ID,-2$ 36,945 $TR,"Adam"$ +$ID,2$ 1,386 $TR,"Boot"$ +$ID,2$ 164 $LK,"BootCD.CPP.Z","FI:D:/TempleOS/Adam/Boot/BootCD.CPP"$ + 94 $LK,"BootHD.CPP.Z","FI:D:/TempleOS/Adam/Boot/BootHD.CPP"$ 107 $LK,"BootMHD.CPP.Z","FI:D:/TempleOS/Adam/Boot/BootMHD.CPP"$ 121 $LK,"BootMHD2.CPP.Z","FI:D:/TempleOS/Adam/Boot/BootMHD2.CPP"$ 536 $LK,"DskCDDVD.CPP.Z","FI:D:/TempleOS/Adam/Boot/DskCDDVD.CPP"$ @@ -24,64 +24,64 @@ $ID,2$ 9 $LK,"Ctrls.CPP.Z","FI:D:/TempleOS/Adam/Ctrls/Ctrls.CPP"$ 394 $LK,"Ctrls2a.CPP.Z","FI:D:/TempleOS/Adam/Ctrls/Ctrls2a.CPP"$ 95 $LK,"CtrlsButton.CPP.Z","FI:D:/TempleOS/Adam/Ctrls/CtrlsButton.CPP"$ 218 $LK,"CtrlsSlider.CPP.Z","FI:D:/TempleOS/Adam/Ctrls/CtrlsSlider.CPP"$ -$ID,-2$ 11,727 $TR,"Doc"$ -$ID,2$ 100 $LK,"Doc.CPP.Z","FI:D:/TempleOS/Adam/Doc/Doc.CPP"$ - 193 $LK,"DocBible.CPP.Z","FI:D:/TempleOS/Adam/Doc/DocBible.CPP"$ +$ID,-2$ 11,494 $TR,"Doc"$ +$ID,2$ 98 $LK,"Doc.CPP.Z","FI:D:/TempleOS/Adam/Doc/Doc.CPP"$ + 196 $LK,"DocBible.CPP.Z","FI:D:/TempleOS/Adam/Doc/DocBible.CPP"$ 576 $LK,"DocCodeTools.CPP.Z","FI:D:/TempleOS/Adam/Doc/DocCodeTools.CPP"$ - 1,190 $LK,"DocCtrlL.CPP.Z","FI:D:/TempleOS/Adam/Doc/DocCtrlL.CPP"$ - 2,491 $LK,"DocEd.CPP.Z","FI:D:/TempleOS/Adam/Doc/DocEd.CPP"$ + 1,181 $LK,"DocCtrlL.CPP.Z","FI:D:/TempleOS/Adam/Doc/DocCtrlL.CPP"$ + 2,321 $LK,"DocEd.CPP.Z","FI:D:/TempleOS/Adam/Doc/DocEd.CPP"$ 466 $LK,"DocFile.CPP.Z","FI:D:/TempleOS/Adam/Doc/DocFile.CPP"$ 386 $LK,"DocHighlight.CPP.Z","FI:D:/TempleOS/Adam/Doc/DocHighlight.CPP"$ 507 $LK,"DocIDE.CPP.Z","FI:D:/TempleOS/Adam/Doc/DocIDE.CPP"$ 220 $LK,"DocMacro.CPP.Z","FI:D:/TempleOS/Adam/Doc/DocMacro.CPP"$ 693 $LK,"DocMain.CPP.Z","FI:D:/TempleOS/Adam/Doc/DocMain.CPP"$ - 839 $LK,"DocNew.CPP.Z","FI:D:/TempleOS/Adam/Doc/DocNew.CPP"$ + 860 $LK,"DocNew.CPP.Z","FI:D:/TempleOS/Adam/Doc/DocNew.CPP"$ 117 $LK,"DocOpt.CPP.Z","FI:D:/TempleOS/Adam/Doc/DocOpt.CPP"$ - 1,154 $LK,"DocPlain.CPP.Z","FI:D:/TempleOS/Adam/Doc/DocPlain.CPP"$ - 917 $LK,"DocPopUp.CPP.Z","FI:D:/TempleOS/Adam/Doc/DocPopUp.CPP"$ - 1,702 $LK,"DocRecalc.CPP.Z","FI:D:/TempleOS/Adam/Doc/DocRecalc.CPP"$ + 1,122 $LK,"DocPlain.CPP.Z","FI:D:/TempleOS/Adam/Doc/DocPlain.CPP"$ + 926 $LK,"DocPopUp.CPP.Z","FI:D:/TempleOS/Adam/Doc/DocPopUp.CPP"$ + 1,649 $LK,"DocRecalc.CPP.Z","FI:D:/TempleOS/Adam/Doc/DocRecalc.CPP"$ 176 $LK,"DocTree.CPP.Z","FI:D:/TempleOS/Adam/Doc/DocTree.CPP"$ -$ID,-2$ 1,839 $TR,"Dsk"$ +$ID,-2$ 1,815 $TR,"Dsk"$ $ID,2$ 233 $LK,"ChkDsk.CPP.Z","FI:D:/TempleOS/Adam/Dsk/ChkDsk.CPP"$ 5 $LK,"Dsk2.CPP.Z","FI:D:/TempleOS/Adam/Dsk/Dsk2.CPP"$ - 422 $LK,"Dsk2a.CPP.Z","FI:D:/TempleOS/Adam/Dsk/Dsk2a.CPP"$ + 398 $LK,"Dsk2a.CPP.Z","FI:D:/TempleOS/Adam/Dsk/Dsk2a.CPP"$ 413 $LK,"Dsk2b.CPP.Z","FI:D:/TempleOS/Adam/Dsk/Dsk2b.CPP"$ 766 $LK,"FileMgr.CPP.Z","FI:D:/TempleOS/Adam/Dsk/FileMgr.CPP"$ -$ID,-2$ 12,015 $TR,"Gr"$ -$ID,2$ 682 $LK,"CSpriteBitMap.CPP.Z","FI:D:/TempleOS/Adam/Gr/CSpriteBitMap.CPP"$ - 1,269 $LK,"CSpriteEd.CPP.Z","FI:D:/TempleOS/Adam/Gr/CSpriteEd.CPP"$ - 1,234 $LK,"CSpriteMain.CPP.Z","FI:D:/TempleOS/Adam/Gr/CSpriteMain.CPP"$ - 1,383 $LK,"CSpriteMesh.CPP.Z","FI:D:/TempleOS/Adam/Gr/CSpriteMesh.CPP"$ - 236 $LK,"CSpriteNew.CPP.Z","FI:D:/TempleOS/Adam/Gr/CSpriteNew.CPP"$ - 127 $LK,"Gr.CPP.Z","FI:D:/TempleOS/Adam/Gr/Gr.CPP"$ +$ID,-2$ 12,113 $TR,"Gr"$ +$ID,2$ 121 $LK,"Gr.CPP.Z","FI:D:/TempleOS/Adam/Gr/Gr.CPP"$ 766 $LK,"GrAsm.CPP.Z","FI:D:/TempleOS/Adam/Gr/GrAsm.CPP"$ - 1,730 $LK,"GrBitMap.CPP.Z","FI:D:/TempleOS/Adam/Gr/GrBitMap.CPP"$ + 1,734 $LK,"GrBitMap.CPP.Z","FI:D:/TempleOS/Adam/Gr/GrBitMap.CPP"$ 11 $LK,"GrCfg.CPP.Z","FI:D:/TempleOS/Adam/Gr/GrCfg.CPP"$ 107 $LK,"GrChar.CPP.Z","FI:D:/TempleOS/Adam/Gr/GrChar.CPP"$ - 184 $LK,"GrComposites.CPP.Z","FI:D:/TempleOS/Adam/Gr/GrComposites.CPP"$ - 305 $LK,"GrDC.CPP.Z","FI:D:/TempleOS/Adam/Gr/GrDC.CPP"$ - 1,513 $LK,"GrPrimatives.CPP.Z","FI:D:/TempleOS/Adam/Gr/GrPrimatives.CPP"$ - 796 $LK,"GrScreen.CPP.Z","FI:D:/TempleOS/Adam/Gr/GrScreen.CPP"$ + 209 $LK,"GrComposites.CPP.Z","FI:D:/TempleOS/Adam/Gr/GrComposites.CPP"$ + 307 $LK,"GrDC.CPP.Z","FI:D:/TempleOS/Adam/Gr/GrDC.CPP"$ + 1,557 $LK,"GrPrimatives.CPP.Z","FI:D:/TempleOS/Adam/Gr/GrPrimatives.CPP"$ + 867 $LK,"GrScreen.CPP.Z","FI:D:/TempleOS/Adam/Gr/GrScreen.CPP"$ 525 $LK,"GrSpritePlot.CPP.Z","FI:D:/TempleOS/Adam/Gr/GrSpritePlot.CPP"$ 1,147 $LK,"MathGr.CPP.Z","FI:D:/TempleOS/Adam/Gr/MathGr.CPP"$ -$ID,-2$ 680 $TR,"Snd"$ + 682 $LK,"SpriteBitMap.CPP.Z","FI:D:/TempleOS/Adam/Gr/SpriteBitMap.CPP"$ + 1,269 $LK,"SpriteEd.CPP.Z","FI:D:/TempleOS/Adam/Gr/SpriteEd.CPP"$ + 1,234 $LK,"SpriteMain.CPP.Z","FI:D:/TempleOS/Adam/Gr/SpriteMain.CPP"$ + 1,383 $LK,"SpriteMesh.CPP.Z","FI:D:/TempleOS/Adam/Gr/SpriteMesh.CPP"$ + 194 $LK,"SpriteNew.CPP.Z","FI:D:/TempleOS/Adam/Gr/SpriteNew.CPP"$ +$ID,-2$ 677 $TR,"Snd"$ $ID,2$ 235 $LK,"MathAudio.CPP.Z","FI:D:/TempleOS/Adam/Snd/MathAudio.CPP"$ - 225 $LK,"Music.CPP.Z","FI:D:/TempleOS/Adam/Snd/Music.CPP"$ + 221 $LK,"Music.CPP.Z","FI:D:/TempleOS/Adam/Snd/Music.CPP"$ 22 $LK,"Snd.CPP.Z","FI:D:/TempleOS/Adam/Snd/Snd.CPP"$ 75 $LK,"SndEffects.CPP.Z","FI:D:/TempleOS/Adam/Snd/SndEffects.CPP"$ - 123 $LK,"SndFile.CPP.Z","FI:D:/TempleOS/Adam/Snd/SndFile.CPP"$ -$ID,-2$ 2,405 $TR,"Utils"$ + 124 $LK,"SndFile.CPP.Z","FI:D:/TempleOS/Adam/Snd/SndFile.CPP"$ +$ID,-2$ 2,354 $TR,"Utils"$ $ID,2$ 84 $LK,"BinRep.CPP.Z","FI:D:/TempleOS/Adam/Utils/BinRep.CPP"$ 304 $LK,"Diff.CPP.Z","FI:D:/TempleOS/Adam/Utils/Diff.CPP"$ 288 $LK,"FileBMP.CPP.Z","FI:D:/TempleOS/Adam/Utils/FileBMP.CPP"$ - 267 $LK,"Grep.CPP.Z","FI:D:/TempleOS/Adam/Utils/Grep.CPP"$ + 253 $LK,"Grep.CPP.Z","FI:D:/TempleOS/Adam/Utils/Grep.CPP"$ 160 $LK,"HeapLog.CPP.Z","FI:D:/TempleOS/Adam/Utils/HeapLog.CPP"$ - 114 $LK,"LineCnt.CPP.Z","FI:D:/TempleOS/Adam/Utils/LineCnt.CPP"$ - 75 $LK,"LinkChk.CPP.Z","FI:D:/TempleOS/Adam/Utils/LinkChk.CPP"$ - 246 $LK,"MemRep.CPP.Z","FI:D:/TempleOS/Adam/Utils/MemRep.CPP"$ - 92 $LK,"Merge.CPP.Z","FI:D:/TempleOS/Adam/Utils/Merge.CPP"$ + 108 $LK,"LineCnt.CPP.Z","FI:D:/TempleOS/Adam/Utils/LineCnt.CPP"$ + 63 $LK,"LinkChk.CPP.Z","FI:D:/TempleOS/Adam/Utils/LinkChk.CPP"$ + 249 $LK,"MemRep.CPP.Z","FI:D:/TempleOS/Adam/Utils/MemRep.CPP"$ + 80 $LK,"Merge.CPP.Z","FI:D:/TempleOS/Adam/Utils/Merge.CPP"$ 201 $LK,"Profiler.CPP.Z","FI:D:/TempleOS/Adam/Utils/Profiler.CPP"$ - 70 $LK,"S2T.CPP.Z","FI:D:/TempleOS/Adam/Utils/S2T.CPP"$ + 60 $LK,"S2T.CPP.Z","FI:D:/TempleOS/Adam/Utils/S2T.CPP"$ 354 $LK,"ToHtml.CPP.Z","FI:D:/TempleOS/Adam/Utils/ToHtml.CPP"$ 150 $LK,"ToTXT.CPP.Z","FI:D:/TempleOS/Adam/Utils/ToTXT.CPP"$ $ID,-2$ 1,341 $TR,"WordStat"$ @@ -89,12 +89,12 @@ $ID,2$ 307 $LK,"WSDict.CPP.Z","FI:D:/TempleOS/Adam/WordStat/WSDict.CPP"$ 220 $LK,"WSDictGen.CPP.Z","FI:D:/TempleOS/Adam/WordStat/WSDictGen.CPP"$ 720 $LK,"WSMain.CPP.Z","FI:D:/TempleOS/Adam/WordStat/WSMain.CPP"$ 94 $LK,"WordStat.CPP.Z","FI:D:/TempleOS/Adam/WordStat/WordStat.CPP"$ -$ID,-2$ 71 $LK,"Adam2.CPP.Z","FI:D:/TempleOS/Adam/Adam2.CPP"$ - 140 $LK,"AutoFile2a.CPP.Z","FI:D:/TempleOS/Adam/AutoFile2a.CPP"$ +$ID,-2$ 70 $LK,"Adam2.CPP.Z","FI:D:/TempleOS/Adam/Adam2.CPP"$ + 142 $LK,"AutoFile2a.CPP.Z","FI:D:/TempleOS/Adam/AutoFile2a.CPP"$ 253 $LK,"Dbg2a.CPP.Z","FI:D:/TempleOS/Adam/Dbg2a.CPP"$ 210 $LK,"DevInfo.CPP.Z","FI:D:/TempleOS/Adam/DevInfo.CPP"$ - 62 $LK,"DocDefines.CPP.Z","FI:D:/TempleOS/Adam/DocDefines.CPP"$ - 496 $LK,"Hash2a.CPP.Z","FI:D:/TempleOS/Adam/Hash2a.CPP"$ + 74 $LK,"DocDefines.CPP.Z","FI:D:/TempleOS/Adam/DocDefines.CPP"$ + 458 $LK,"Hash2a.CPP.Z","FI:D:/TempleOS/Adam/Hash2a.CPP"$ 162 $LK,"LogIn.CPP.Z","FI:D:/TempleOS/Adam/LogIn.CPP"$ 139 $LK,"Math2a.CPP.Z","FI:D:/TempleOS/Adam/Math2a.CPP"$ 636 $LK,"MathODE.CPP.Z","FI:D:/TempleOS/Adam/MathODE.CPP"$ @@ -105,14 +105,14 @@ $ID,-2$ 71 $LK,"Adam2.CPP.Z","FI:D:/TempleOS/Adam/Adam2.CPP"$ 444 $LK,"Utils2a.CPP.Z","FI:D:/TempleOS/Adam/Utils2a.CPP"$ 212 $LK,"WallPaper.CPP.Z","FI:D:/TempleOS/Adam/WallPaper.CPP"$ 1,500 $LK,"Window.CPP.Z","FI:D:/TempleOS/Adam/Window.CPP"$ - 113 $LK,"AdamExt.HPP.Z","FI:D:/TempleOS/Adam/AdamExt.HPP"$ -$ID,-2$ 14,962 $TR,"Apps"$ -$ID,2$ 1,154 $TR,"AfterEgypt"$ + 112 $LK,"AdamExt.HPP.Z","FI:D:/TempleOS/Adam/AdamExt.HPP"$ +$ID,-2$ 15,110 $TR,"Apps"$ +$ID,2$ 1,153 $TR,"AfterEgypt"$ $ID,2$ 0 $TR,"Comics"$ $ID,2$$ID,-2$ 209 $LK,"AfterEgypt.CPP.Z","FI:D:/TempleOS/Apps/AfterEgypt/AfterEgypt.CPP"$ 138 $LK,"Battle.CPP.Z","FI:D:/TempleOS/Apps/AfterEgypt/Battle.CPP"$ 29 $LK,"Comics.CPP.Z","FI:D:/TempleOS/Apps/AfterEgypt/Comics.CPP"$ - 76 $LK,"GodTalking.CPP.Z","FI:D:/TempleOS/Apps/AfterEgypt/GodTalking.CPP"$ + 75 $LK,"GodTalking.CPP.Z","FI:D:/TempleOS/Apps/AfterEgypt/GodTalking.CPP"$ 340 $LK,"Horeb.CPP.Z","FI:D:/TempleOS/Apps/AfterEgypt/Horeb.CPP"$ 18 $LK,"Load.CPP.Z","FI:D:/TempleOS/Apps/AfterEgypt/Load.CPP"$ 72 $LK,"Map.CPP.Z","FI:D:/TempleOS/Apps/AfterEgypt/Map.CPP"$ @@ -125,8 +125,8 @@ $ID,2$ 133 $LK,"BallGen.CPP.Z","FI:D:/TempleOS/Apps/GrModels/BallGen.CPP"$ 296 $LK,"ManGen.CPP.Z","FI:D:/TempleOS/Apps/GrModels/ManGen.CPP"$ 26 $LK,"Models.CPP.Z","FI:D:/TempleOS/Apps/GrModels/Models.CPP"$ 3 $LK,"Run.CPP.Z","FI:D:/TempleOS/Apps/GrModels/Run.CPP"$ -$ID,-2$ 75 $TR,"HolySpirit"$ -$ID,2$ 75 $LK,"HolySpirit.CPP.Z","FI:D:/TempleOS/Apps/HolySpirit/HolySpirit.CPP"$ +$ID,-2$ 77 $TR,"HolySpirit"$ +$ID,2$ 77 $LK,"HolySpirit.CPP.Z","FI:D:/TempleOS/Apps/HolySpirit/HolySpirit.CPP"$ $ID,-2$ 741 $TR,"KeepAway"$ $ID,2$ 736 $LK,"KeepAway.CPP.Z","FI:D:/TempleOS/Apps/KeepAway/KeepAway.CPP"$ 2 $LK,"Load.CPP.Z","FI:D:/TempleOS/Apps/KeepAway/Load.CPP"$ @@ -135,11 +135,12 @@ $ID,-2$ 617 $TR,"Logic"$ $ID,2$ 2 $LK,"Load.CPP.Z","FI:D:/TempleOS/Apps/Logic/Load.CPP"$ 612 $LK,"Logic.CPP.Z","FI:D:/TempleOS/Apps/Logic/Logic.CPP"$ 3 $LK,"Run.CPP.Z","FI:D:/TempleOS/Apps/Logic/Run.CPP"$ -$ID,-2$ 6,346 $TR,"MusicOrgan"$ -$ID,2$ 4,057 $TR,"Examples"$ +$ID,-2$ 6,503 $TR,"MusicOrgan"$ +$ID,2$ 4,141 $TR,"Examples"$ $ID,2$ 74 $LK,"abiding.CPP.Z","FI:D:/TempleOS/Apps/MusicOrgan/Examples/abiding.CPP"$ 42 $LK,"abyss.CPP.Z","FI:D:/TempleOS/Apps/MusicOrgan/Examples/abyss.CPP"$ 23 $LK,"almighty.CPP.Z","FI:D:/TempleOS/Apps/MusicOrgan/Examples/almighty.CPP"$ + 21 $LK,"alone.CPP.Z","FI:D:/TempleOS/Apps/MusicOrgan/Examples/alone.CPP"$ 23 $LK,"appreciate.CPP.Z","FI:D:/TempleOS/Apps/MusicOrgan/Examples/appreciate.CPP"$ 75 $LK,"awake.CPP.Z","FI:D:/TempleOS/Apps/MusicOrgan/Examples/awake.CPP"$ 52 $LK,"battlehymnsolo.CPP.Z","FI:D:/TempleOS/Apps/MusicOrgan/Examples/battlehymnsolo.CPP"$ @@ -164,6 +165,7 @@ $ID,2$ 74 $LK,"abiding.CPP.Z","FI:D:/TempleOS/Apps/MusicOrgan/Examples/abid 40 $LK,"epicurus.CPP.Z","FI:D:/TempleOS/Apps/MusicOrgan/Examples/epicurus.CPP"$ 41 $LK,"exalt.CPP.Z","FI:D:/TempleOS/Apps/MusicOrgan/Examples/exalt.CPP"$ 64 $LK,"exiled.CPP.Z","FI:D:/TempleOS/Apps/MusicOrgan/Examples/exiled.CPP"$ + 21 $LK,"exodus.CPP.Z","FI:D:/TempleOS/Apps/MusicOrgan/Examples/exodus.CPP"$ 45 $LK,"expedition.CPP.Z","FI:D:/TempleOS/Apps/MusicOrgan/Examples/expedition.CPP"$ 35 $LK,"fairness.CPP.Z","FI:D:/TempleOS/Apps/MusicOrgan/Examples/fairness.CPP"$ 26 $LK,"feigned.CPP.Z","FI:D:/TempleOS/Apps/MusicOrgan/Examples/feigned.CPP"$ @@ -180,6 +182,7 @@ $ID,2$ 74 $LK,"abiding.CPP.Z","FI:D:/TempleOS/Apps/MusicOrgan/Examples/abid 52 $LK,"good.CPP.Z","FI:D:/TempleOS/Apps/MusicOrgan/Examples/good.CPP"$ 59 $LK,"gutenberg.CPP.Z","FI:D:/TempleOS/Apps/MusicOrgan/Examples/gutenberg.CPP"$ 57 $LK,"happy.CPP.Z","FI:D:/TempleOS/Apps/MusicOrgan/Examples/happy.CPP"$ + 21 $LK,"hearsay.CPP.Z","FI:D:/TempleOS/Apps/MusicOrgan/Examples/hearsay.CPP"$ 21 $LK,"honestly.CPP.Z","FI:D:/TempleOS/Apps/MusicOrgan/Examples/honestly.CPP"$ 56 $LK,"hope.CPP.Z","FI:D:/TempleOS/Apps/MusicOrgan/Examples/hope.CPP"$ 33 $LK,"image.CPP.Z","FI:D:/TempleOS/Apps/MusicOrgan/Examples/image.CPP"$ @@ -197,6 +200,7 @@ $ID,2$ 74 $LK,"abiding.CPP.Z","FI:D:/TempleOS/Apps/MusicOrgan/Examples/abid 21 $LK,"permitted.CPP.Z","FI:D:/TempleOS/Apps/MusicOrgan/Examples/permitted.CPP"$ 23 $LK,"personal.CPP.Z","FI:D:/TempleOS/Apps/MusicOrgan/Examples/personal.CPP"$ 21 $LK,"population.CPP.Z","FI:D:/TempleOS/Apps/MusicOrgan/Examples/population.CPP"$ + 21 $LK,"project.CPP.Z","FI:D:/TempleOS/Apps/MusicOrgan/Examples/project.CPP"$ 17 $LK,"proponent.CPP.Z","FI:D:/TempleOS/Apps/MusicOrgan/Examples/proponent.CPP"$ 56 $LK,"prosper.CPP.Z","FI:D:/TempleOS/Apps/MusicOrgan/Examples/prosper.CPP"$ 26 $LK,"psalm.CPP.Z","FI:D:/TempleOS/Apps/MusicOrgan/Examples/psalm.CPP"$ @@ -231,9 +235,10 @@ $ID,2$ 74 $LK,"abiding.CPP.Z","FI:D:/TempleOS/Apps/MusicOrgan/Examples/abid 66 $LK,"zip.CPP.Z","FI:D:/TempleOS/Apps/MusicOrgan/Examples/zip.CPP"$ $ID,-2$ 2 $LK,"Install.CPP.Z","FI:D:/TempleOS/Apps/MusicOrgan/Install.CPP"$ 147 $LK,"JukeBox.CPP.Z","FI:D:/TempleOS/Apps/MusicOrgan/JukeBox.CPP"$ - 8 $LK,"Load.CPP.Z","FI:D:/TempleOS/Apps/MusicOrgan/Load.CPP"$ - 172 $LK,"MakeSong.CPP.Z","FI:D:/TempleOS/Apps/MusicOrgan/MakeSong.CPP"$ - 1,868 $LK,"Organ.CPP.Z","FI:D:/TempleOS/Apps/MusicOrgan/Organ.CPP"$ + 93 $LK,"JukePuppet.CPP.Z","FI:D:/TempleOS/Apps/MusicOrgan/JukePuppet.CPP"$ + 9 $LK,"Load.CPP.Z","FI:D:/TempleOS/Apps/MusicOrgan/Load.CPP"$ + 155 $LK,"MakeSong.CPP.Z","FI:D:/TempleOS/Apps/MusicOrgan/MakeSong.CPP"$ + 1,864 $LK,"Organ.CPP.Z","FI:D:/TempleOS/Apps/MusicOrgan/Organ.CPP"$ 88 $LK,"OrganCtrls.CPP.Z","FI:D:/TempleOS/Apps/MusicOrgan/OrganCtrls.CPP"$ 4 $LK,"Run.CPP.Z","FI:D:/TempleOS/Apps/MusicOrgan/Run.CPP"$ $ID,-2$ 833 $TR,"Span"$ @@ -253,18 +258,18 @@ $ID,-2$ 165 $TR,"TimeClock"$ $ID,2$ 7 $LK,"Install.CPP.Z","FI:D:/TempleOS/Apps/TimeClock/Install.CPP"$ 2 $LK,"Load.CPP.Z","FI:D:/TempleOS/Apps/TimeClock/Load.CPP"$ 156 $LK,"TimeClk.CPP.Z","FI:D:/TempleOS/Apps/TimeClock/TimeClk.CPP"$ -$ID,-2$ 605 $TR,"TimeOut"$ +$ID,-2$ 593 $TR,"TimeOut"$ $ID,2$ 6 $LK,"Load.CPP.Z","FI:D:/TempleOS/Apps/TimeOut/Load.CPP"$ 3 $LK,"Run.CPP.Z","FI:D:/TempleOS/Apps/TimeOut/Run.CPP"$ - 596 $LK,"TimeOut.CPP.Z","FI:D:/TempleOS/Apps/TimeOut/TimeOut.CPP"$ -$ID,-2$ 1,969 $TR,"ToTheFront"$ + 584 $LK,"TimeOut.CPP.Z","FI:D:/TempleOS/Apps/TimeOut/TimeOut.CPP"$ +$ID,-2$ 1,971 $TR,"ToTheFront"$ $ID,2$ 235 $TR,"AIs"$ $ID,2$ 157 $LK,"Human.CPP.Z","FI:D:/TempleOS/Apps/ToTheFront/AIs/Human.CPP"$ 78 $LK,"SimpleAI.CPP.Z","FI:D:/TempleOS/Apps/ToTheFront/AIs/SimpleAI.CPP"$ $ID,-2$ 3 $LK,"Install.CPP.Z","FI:D:/TempleOS/Apps/ToTheFront/Install.CPP"$ 2 $LK,"Load.CPP.Z","FI:D:/TempleOS/Apps/ToTheFront/Load.CPP"$ 3 $LK,"Run.CPP.Z","FI:D:/TempleOS/Apps/ToTheFront/Run.CPP"$ - 1,726 $LK,"ToTheFront.CPP.Z","FI:D:/TempleOS/Apps/ToTheFront/ToTheFront.CPP"$ + 1,728 $LK,"ToTheFront.CPP.Z","FI:D:/TempleOS/Apps/ToTheFront/ToTheFront.CPP"$ $ID,-2$ 67 $TR,"Vocabulary"$ $ID,2$ 6 $LK,"Load.CPP.Z","FI:D:/TempleOS/Apps/Vocabulary/Load.CPP"$ 3 $LK,"Run.CPP.Z","FI:D:/TempleOS/Apps/Vocabulary/Run.CPP"$ @@ -274,49 +279,52 @@ $ID,2$ 9 $LK,"Load.CPP.Z","FI:D:/TempleOS/Apps/X-Caliber/Load.CPP"$ 3 $LK,"Run.CPP.Z","FI:D:/TempleOS/Apps/X-Caliber/Run.CPP"$ 1,135 $LK,"X-Caliber.CPP.Z","FI:D:/TempleOS/Apps/X-Caliber/X-Caliber.CPP"$ 141 $LK,"XCCtrls.CPP.Z","FI:D:/TempleOS/Apps/X-Caliber/XCCtrls.CPP"$ -$ID,-2$$ID,-2$ 20,410 $TR,"Compiler"$ -$ID,2$ 1,479 $LK,"Assembler.CPP.Z","FI:D:/TempleOS/Compiler/Assembler.CPP"$ - 4,656 $LK,"BackEnd.CPP.Z","FI:D:/TempleOS/Compiler/BackEnd.CPP"$ - 695 $LK,"CmpAsm.CPP.Z","FI:D:/TempleOS/Compiler/CmpAsm.CPP"$ - 57 $LK,"CmpExts.CPP.Z","FI:D:/TempleOS/Compiler/CmpExts.CPP"$ - 21 $LK,"CmpGlbls.CPP.Z","FI:D:/TempleOS/Compiler/CmpGlbls.CPP"$ +$ID,-2$$ID,-2$ 20,074 $TR,"Compiler"$ +$ID,2$ 1,469 $LK,"Assembler.CPP.Z","FI:D:/TempleOS/Compiler/Assembler.CPP"$ + 4,642 $LK,"BackEnd.CPP.Z","FI:D:/TempleOS/Compiler/BackEnd.CPP"$ + 527 $LK,"CmpAsm.CPP.Z","FI:D:/TempleOS/Compiler/CmpAsm.CPP"$ + 52 $LK,"CmpExts.CPP.Z","FI:D:/TempleOS/Compiler/CmpExts.CPP"$ + 22 $LK,"CmpGlbls.CPP.Z","FI:D:/TempleOS/Compiler/CmpGlbls.CPP"$ 731 $LK,"CmpInit.CPP.Z","FI:D:/TempleOS/Compiler/CmpInit.CPP"$ - 728 $LK,"CmpMain.CPP.Z","FI:D:/TempleOS/Compiler/CmpMain.CPP"$ - 483 $LK,"CodeGen.CPP.Z","FI:D:/TempleOS/Compiler/CodeGen.CPP"$ + 716 $LK,"CmpMain.CPP.Z","FI:D:/TempleOS/Compiler/CmpMain.CPP"$ 81 $LK,"Directives.CPP.Z","FI:D:/TempleOS/Compiler/Directives.CPP"$ - 1,269 $LK,"ExpParser.CPP.Z","FI:D:/TempleOS/Compiler/ExpParser.CPP"$ + 1,223 $LK,"ExpParser.CPP.Z","FI:D:/TempleOS/Compiler/ExpParser.CPP"$ 156 $LK,"Hash1b.CPP.Z","FI:D:/TempleOS/Compiler/Hash1b.CPP"$ - 1,687 $LK,"Lex.CPP.Z","FI:D:/TempleOS/Compiler/Lex.CPP"$ + 369 $LK,"ICLCC.CPP.Z","FI:D:/TempleOS/Compiler/ICLCC.CPP"$ + 1,683 $LK,"Lex.CPP.Z","FI:D:/TempleOS/Compiler/Lex.CPP"$ 2,078 $LK,"OptPass012.CPP.Z","FI:D:/TempleOS/Compiler/OptPass012.CPP"$ - 619 $LK,"OptPass3.CPP.Z","FI:D:/TempleOS/Compiler/OptPass3.CPP"$ - 723 $LK,"OptPass4.CPP.Z","FI:D:/TempleOS/Compiler/OptPass4.CPP"$ - 122 $LK,"OptPass5.CPP.Z","FI:D:/TempleOS/Compiler/OptPass5.CPP"$ - 238 $LK,"OptPass6.CPP.Z","FI:D:/TempleOS/Compiler/OptPass6.CPP"$ - 1,246 $LK,"OptPass789A.CPP.Z","FI:D:/TempleOS/Compiler/OptPass789A.CPP"$ - 1,985 $LK,"StmtParser.CPP.Z","FI:D:/TempleOS/Compiler/StmtParser.CPP"$ + 646 $LK,"OptPass3.CPP.Z","FI:D:/TempleOS/Compiler/OptPass3.CPP"$ + 728 $LK,"OptPass4.CPP.Z","FI:D:/TempleOS/Compiler/OptPass4.CPP"$ + 124 $LK,"OptPass5.CPP.Z","FI:D:/TempleOS/Compiler/OptPass5.CPP"$ + 245 $LK,"OptPass6.CPP.Z","FI:D:/TempleOS/Compiler/OptPass6.CPP"$ + 1,256 $LK,"OptPass789.CPP.Z","FI:D:/TempleOS/Compiler/OptPass789.CPP"$ + 1,973 $LK,"StmtParser.CPP.Z","FI:D:/TempleOS/Compiler/StmtParser.CPP"$ 851 $LK,"Unassembler.CPP.Z","FI:D:/TempleOS/Compiler/Unassembler.CPP"$ - 389 $LK,"CmpDefs.HPP.Z","FI:D:/TempleOS/Compiler/CmpDefs.HPP"$ - 91 $LK,"Compiler.HPP.Z","FI:D:/TempleOS/Compiler/Compiler.HPP"$ + 391 $LK,"CmpDefs.HPP.Z","FI:D:/TempleOS/Compiler/CmpDefs.HPP"$ + 86 $LK,"Compiler.HPP.Z","FI:D:/TempleOS/Compiler/Compiler.HPP"$ 25 $LK,"Compiler.PRJ.Z","FI:D:/TempleOS/Compiler/Compiler.PRJ"$ -$ID,-2$ 20,893 $TR,"Demo"$ -$ID,2$ 1,357 $TR,"AcctExample"$ -$ID,2$ 37 $TR,"TAD"$ -$ID,2$ 13 $LK,"Adam3.CPP.Z","FI:D:/TempleOS/Demo/AcctExample/TAD/Adam3.CPP"$ +$ID,-2$ 22,402 $TR,"Demo"$ +$ID,2$ 2,396 $TR,"AcctExample"$ +$ID,2$ 741 $TR,"TAD"$ +$ID,2$ 707 $TR,"Archive"$ +$ID,2$ 707 $LK,"DiningStars.CPP.Z","FI:D:/TempleOS/Demo/AcctExample/TAD/Archive/DiningStars.CPP"$ +$ID,-2$ 11 $LK,"Adam3.CPP.Z","FI:D:/TempleOS/Demo/AcctExample/TAD/Adam3.CPP"$ 19 $LK,"Adam3aLocalize.CPP.Z","FI:D:/TempleOS/Demo/AcctExample/TAD/Adam3aLocalize.CPP"$ - 5 $LK,"Registry.CPP.Z","FI:D:/TempleOS/Demo/AcctExample/TAD/Registry.CPP"$ -$ID,-2$ 9 $LK,"Adam3bPkgs.CPP.Z","FI:D:/TempleOS/Demo/AcctExample/Adam3bPkgs.CPP"$ - 267 $LK,"Adam3dKeyPlugIns.CPP.Z","FI:D:/TempleOS/Demo/AcctExample/Adam3dKeyPlugIns.CPP"$ + 4 $LK,"Registry.CPP.Z","FI:D:/TempleOS/Demo/AcctExample/TAD/Registry.CPP"$ +$ID,-2$ 10 $LK,"Adam3bPkgs.CPP.Z","FI:D:/TempleOS/Demo/AcctExample/Adam3bPkgs.CPP"$ + 257 $LK,"Adam3dKeyPlugIns.CPP.Z","FI:D:/TempleOS/Demo/AcctExample/Adam3dKeyPlugIns.CPP"$ 10 $LK,"Adam3eWrappers.CPP.Z","FI:D:/TempleOS/Demo/AcctExample/Adam3eWrappers.CPP"$ 60 $LK,"Adam3fSys.CPP.Z","FI:D:/TempleOS/Demo/AcctExample/Adam3fSys.CPP"$ 12 $LK,"DbgAdam1.CPP.Z","FI:D:/TempleOS/Demo/AcctExample/DbgAdam1.CPP"$ 13 $LK,"DoItOnce.CPP.Z","FI:D:/TempleOS/Demo/AcctExample/DoItOnce.CPP"$ - 416 $LK,"TSAdam.CPP.Z","FI:D:/TempleOS/Demo/AcctExample/TSAdam.CPP"$ - 533 $LK,"TSDistro.CPP.Z","FI:D:/TempleOS/Demo/AcctExample/TSDistro.CPP"$ -$ID,-2$ 425 $TR,"Asm"$ + 445 $LK,"TSAdam.CPP.Z","FI:D:/TempleOS/Demo/AcctExample/TSAdam.CPP"$ + 541 $LK,"TSDistro.CPP.Z","FI:D:/TempleOS/Demo/AcctExample/TSDistro.CPP"$ + 307 $LK,"TSHolySpirit.CPP.Z","FI:D:/TempleOS/Demo/AcctExample/TSHolySpirit.CPP"$ +$ID,-2$ 559 $TR,"Asm"$ $ID,2$ 79 $LK,"AsmAndC.CPP.Z","FI:D:/TempleOS/Demo/Asm/AsmAndC.CPP"$ 96 $LK,"AsmAndC2.CPP.Z","FI:D:/TempleOS/Demo/Asm/AsmAndC2.CPP"$ 58 $LK,"AsmHelloWorld.CPP.Z","FI:D:/TempleOS/Demo/Asm/AsmHelloWorld.CPP"$ - 49 $LK,"BuzzFizz.CPP.Z","FI:D:/TempleOS/Demo/Asm/BuzzFizz.CPP"$ + 183 $LK,"BuzzFizz.CPP.Z","FI:D:/TempleOS/Demo/Asm/BuzzFizz.CPP"$ 24 $LK,"DivByHand.CPP.Z","FI:D:/TempleOS/Demo/Asm/DivByHand.CPP"$ 71 $LK,"MulByHand.CPP.Z","FI:D:/TempleOS/Demo/Asm/MulByHand.CPP"$ 48 $LK,"PutDec.CPP.Z","FI:D:/TempleOS/Demo/Asm/PutDec.CPP"$ @@ -341,11 +349,11 @@ $ID,2$ 79 $LK,"CallBack.CPP.Z","FI:D:/TempleOS/Demo/Doc/CallBack.CPP"$ 85 $LK,"UnusedDefine.CPP.Z","FI:D:/TempleOS/Demo/Doc/UnusedDefine.CPP"$ $ID,-2$ 200 $TR,"Dsk"$ $ID,2$ 69 $LK,"DataBase.CPP.Z","FI:D:/TempleOS/Demo/Dsk/DataBase.CPP"$ + 42 $LK,"DskRaw.CPP.Z","FI:D:/TempleOS/Demo/Dsk/DskRaw.CPP"$ 52 $LK,"FPrintF.CPP.Z","FI:D:/TempleOS/Demo/Dsk/FPrintF.CPP"$ 20 $LK,"OrderedIO.CPP.Z","FI:D:/TempleOS/Demo/Dsk/OrderedIO.CPP"$ - 42 $LK,"Raw.CPP.Z","FI:D:/TempleOS/Demo/Dsk/Raw.CPP"$ 17 $LK,"UnusedSpaceRep.CPP.Z","FI:D:/TempleOS/Demo/Dsk/UnusedSpaceRep.CPP"$ -$ID,-2$ 9,131 $TR,"Games"$ +$ID,-2$ 9,193 $TR,"Games"$ $ID,2$ 175 $TR,"Stadium"$ $ID,2$ 142 $LK,"Stadium.CPP.Z","FI:D:/TempleOS/Demo/Games/Stadium/Stadium.CPP"$ 33 $LK,"StadiumGen.CPP.Z","FI:D:/TempleOS/Demo/Games/Stadium/StadiumGen.CPP"$ @@ -356,16 +364,16 @@ $ID,-2$ 372 $LK,"BattleLines.CPP.Z","FI:D:/TempleOS/Demo/Games/BattleLines.C 246 $LK,"BulgeBomber.CPP.Z","FI:D:/TempleOS/Demo/Games/BulgeBomber.CPP"$ 594 $LK,"CastleFrankenstein.CPP.Z","FI:D:/TempleOS/Demo/Games/CastleFrankenstein.CPP"$ 258 $LK,"ChessNet.CPP.Z","FI:D:/TempleOS/Demo/Games/ChessNet.CPP"$ - 126 $LK,"CircleTrace.CPP.Z","FI:D:/TempleOS/Demo/Games/CircleTrace.CPP"$ + 129 $LK,"CircleTrace.CPP.Z","FI:D:/TempleOS/Demo/Games/CircleTrace.CPP"$ 172 $LK,"Coach.CPP.Z","FI:D:/TempleOS/Demo/Games/Coach.CPP"$ 168 $LK,"Collision.CPP.Z","FI:D:/TempleOS/Demo/Games/Collision.CPP"$ 81 $LK,"Digits.CPP.Z","FI:D:/TempleOS/Demo/Games/Digits.CPP"$ 436 $LK,"DunGen.CPP.Z","FI:D:/TempleOS/Demo/Games/DunGen.CPP"$ - 976 $LK,"EagleDive.CPP.Z","FI:D:/TempleOS/Demo/Games/EagleDive.CPP"$ + 1,007 $LK,"EagleDive.CPP.Z","FI:D:/TempleOS/Demo/Games/EagleDive.CPP"$ 769 $LK,"FlatTops.CPP.Z","FI:D:/TempleOS/Demo/Games/FlatTops.CPP"$ 166 $LK,"Halogen.CPP.Z","FI:D:/TempleOS/Demo/Games/Halogen.CPP"$ 190 $LK,"MassSpring.CPP.Z","FI:D:/TempleOS/Demo/Games/MassSpring.CPP"$ - 108 $LK,"Maze.CPP.Z","FI:D:/TempleOS/Demo/Games/Maze.CPP"$ + 113 $LK,"Maze.CPP.Z","FI:D:/TempleOS/Demo/Games/Maze.CPP"$ 193 $LK,"RainDrops.CPP.Z","FI:D:/TempleOS/Demo/Games/RainDrops.CPP"$ 524 $LK,"RawHide.CPP.Z","FI:D:/TempleOS/Demo/Games/RawHide.CPP"$ 194 $LK,"Rocket.CPP.Z","FI:D:/TempleOS/Demo/Games/Rocket.CPP"$ @@ -373,17 +381,17 @@ $ID,-2$ 372 $LK,"BattleLines.CPP.Z","FI:D:/TempleOS/Demo/Games/BattleLines.C 423 $LK,"Squirt.CPP.Z","FI:D:/TempleOS/Demo/Games/Squirt.CPP"$ 206 $LK,"TheDead.CPP.Z","FI:D:/TempleOS/Demo/Games/TheDead.CPP"$ 131 $LK,"TicTacToe.CPP.Z","FI:D:/TempleOS/Demo/Games/TicTacToe.CPP"$ - 337 $LK,"Varoom.CPP.Z","FI:D:/TempleOS/Demo/Games/Varoom.CPP"$ + 360 $LK,"Varoom.CPP.Z","FI:D:/TempleOS/Demo/Games/Varoom.CPP"$ 532 $LK,"Wenceslas.CPP.Z","FI:D:/TempleOS/Demo/Games/Wenceslas.CPP"$ 174 $LK,"Whap.CPP.Z","FI:D:/TempleOS/Demo/Games/Whap.CPP"$ 201 $LK,"Zing.CPP.Z","FI:D:/TempleOS/Demo/Games/Zing.CPP"$ 342 $LK,"ZoneOut.CPP.Z","FI:D:/TempleOS/Demo/Games/ZoneOut.CPP"$ -$ID,-2$ 3,995 $TR,"Graphics"$ +$ID,-2$ 4,247 $TR,"Graphics"$ $ID,2$ 118 $LK,"3DPoly.CPP.Z","FI:D:/TempleOS/Demo/Graphics/3DPoly.CPP"$ 34 $LK,"BSpline.CPP.Z","FI:D:/TempleOS/Demo/Graphics/BSpline.CPP"$ 42 $LK,"Blot.CPP.Z","FI:D:/TempleOS/Demo/Graphics/Blot.CPP"$ 58 $LK,"Bounce.CPP.Z","FI:D:/TempleOS/Demo/Graphics/Bounce.CPP"$ - 54 $LK,"Box.CPP.Z","FI:D:/TempleOS/Demo/Graphics/Box.CPP"$ + 55 $LK,"Box.CPP.Z","FI:D:/TempleOS/Demo/Graphics/Box.CPP"$ 339 $LK,"Camp.CPP.Z","FI:D:/TempleOS/Demo/Graphics/Camp.CPP"$ 28 $LK,"CaptureScreen.CPP.Z","FI:D:/TempleOS/Demo/Graphics/CaptureScreen.CPP"$ 50 $LK,"Cartesian.CPP.Z","FI:D:/TempleOS/Demo/Graphics/Cartesian.CPP"$ @@ -393,8 +401,9 @@ $ID,2$ 118 $LK,"3DPoly.CPP.Z","FI:D:/TempleOS/Demo/Graphics/3DPoly.CPP"$ 50 $LK,"Doodle.CPP.Z","FI:D:/TempleOS/Demo/Graphics/Doodle.CPP"$ 17 $LK,"DotNet.CPP.Z","FI:D:/TempleOS/Demo/Graphics/DotNet.CPP"$ 109 $LK,"EdCSprite.CPP.Z","FI:D:/TempleOS/Demo/Graphics/EdCSprite.CPP"$ + 202 $LK,"Elephant.CPP.Z","FI:D:/TempleOS/Demo/Graphics/Elephant.CPP"$ 51 $LK,"Extents.CPP.Z","FI:D:/TempleOS/Demo/Graphics/Extents.CPP"$ - 144 $LK,"FontEd.CPP.Z","FI:D:/TempleOS/Demo/Graphics/FontEd.CPP"$ + 148 $LK,"FontEd.CPP.Z","FI:D:/TempleOS/Demo/Graphics/FontEd.CPP"$ 142 $LK,"Hanoi.CPP.Z","FI:D:/TempleOS/Demo/Graphics/Hanoi.CPP"$ 99 $LK,"Life.CPP.Z","FI:D:/TempleOS/Demo/Graphics/Life.CPP"$ 27 $LK,"Lines.CPP.Z","FI:D:/TempleOS/Demo/Graphics/Lines.CPP"$ @@ -403,6 +412,7 @@ $ID,2$ 118 $LK,"3DPoly.CPP.Z","FI:D:/TempleOS/Demo/Graphics/3DPoly.CPP"$ 105 $LK,"MathAudioDemo.CPP.Z","FI:D:/TempleOS/Demo/Graphics/MathAudioDemo.CPP"$ 97 $LK,"Mountain.CPP.Z","FI:D:/TempleOS/Demo/Graphics/Mountain.CPP"$ 28 $LK,"Palette.CPP.Z","FI:D:/TempleOS/Demo/Graphics/Palette.CPP"$ + 36 $LK,"PanText.CPP.Z","FI:D:/TempleOS/Demo/Graphics/PanText.CPP"$ 99 $LK,"Pick.CPP.Z","FI:D:/TempleOS/Demo/Graphics/Pick.CPP"$ 332 $LK,"Pick3D.CPP.Z","FI:D:/TempleOS/Demo/Graphics/Pick3D.CPP"$ 44 $LK,"PixelCollision.CPP.Z","FI:D:/TempleOS/Demo/Graphics/PixelCollision.CPP"$ @@ -418,13 +428,13 @@ $ID,2$ 118 $LK,"3DPoly.CPP.Z","FI:D:/TempleOS/Demo/Graphics/3DPoly.CPP"$ 63 $LK,"SpritePlot3D.CPP.Z","FI:D:/TempleOS/Demo/Graphics/SpritePlot3D.CPP"$ 47 $LK,"SpritePut.CPP.Z","FI:D:/TempleOS/Demo/Graphics/SpritePut.CPP"$ 29 $LK,"SpritePutExt.CPP.Z","FI:D:/TempleOS/Demo/Graphics/SpritePutExt.CPP"$ - 23 $LK,"SpriteText.CPP.Z","FI:D:/TempleOS/Demo/Graphics/SpriteText.CPP"$ + 32 $LK,"SpriteText.CPP.Z","FI:D:/TempleOS/Demo/Graphics/SpriteText.CPP"$ 63 $LK,"Symmetry.CPP.Z","FI:D:/TempleOS/Demo/Graphics/Symmetry.CPP"$ 225 $LK,"Transform.CPP.Z","FI:D:/TempleOS/Demo/Graphics/Transform.CPP"$ 104 $LK,"WallPaperCtrl.CPP.Z","FI:D:/TempleOS/Demo/Graphics/WallPaperCtrl.CPP"$ 118 $LK,"WallPaperFish.CPP.Z","FI:D:/TempleOS/Demo/Graphics/WallPaperFish.CPP"$ 24 $LK,"WinZBuf.CPP.Z","FI:D:/TempleOS/Demo/Graphics/WinZBuf.CPP"$ -$ID,-2$ 1,457 $TR,"Lectures"$ +$ID,-2$ 1,451 $TR,"Lectures"$ $ID,2$ 54 $LK,"AndNotMod.CPP.Z","FI:D:/TempleOS/Demo/Lectures/AndNotMod.CPP"$ 104 $LK,"FixedPoint.CPP.Z","FI:D:/TempleOS/Demo/Lectures/FixedPoint.CPP"$ 178 $LK,"FixedPointAdvanced.CPP.Z","FI:D:/TempleOS/Demo/Lectures/FixedPointAdvanced.CPP"$ @@ -435,7 +445,7 @@ $ID,2$ 54 $LK,"AndNotMod.CPP.Z","FI:D:/TempleOS/Demo/Lectures/AndNotMod.CPP 116 $LK,"Optimization.CPP.Z","FI:D:/TempleOS/Demo/Lectures/Optimization.CPP"$ 74 $LK,"PCIInterrupts.CPP.Z","FI:D:/TempleOS/Demo/Lectures/PCIInterrupts.CPP"$ 49 $LK,"PageTableEntries1.CPP.Z","FI:D:/TempleOS/Demo/Lectures/PageTableEntries1.CPP"$ - 47 $LK,"PageTableEntries2.CPP.Z","FI:D:/TempleOS/Demo/Lectures/PageTableEntries2.CPP"$ + 41 $LK,"PageTableEntries2.CPP.Z","FI:D:/TempleOS/Demo/Lectures/PageTableEntries2.CPP"$ 84 $LK,"Ring3.CPP.Z","FI:D:/TempleOS/Demo/Lectures/Ring3.CPP"$ 56 $LK,"ScreenMemory.CPP.Z","FI:D:/TempleOS/Demo/Lectures/ScreenMemory.CPP"$ 110 $LK,"Spinning.CPP.Z","FI:D:/TempleOS/Demo/Lectures/Spinning.CPP"$ @@ -446,7 +456,7 @@ $ID,2$ 212 $LK,"Clouds.CPP.Z","FI:D:/TempleOS/Demo/MultiCore/Clouds.CPP"$ 55 $LK,"LoadTest.CPP.Z","FI:D:/TempleOS/Demo/MultiCore/LoadTest.CPP"$ 57 $LK,"Lock.CPP.Z","FI:D:/TempleOS/Demo/MultiCore/Lock.CPP"$ 87 $LK,"MPAdd.CPP.Z","FI:D:/TempleOS/Demo/MultiCore/MPAdd.CPP"$ - 19 $LK,"MPPrintF.CPP.Z","FI:D:/TempleOS/Demo/MultiCore/MPPrintF.CPP"$ + 19 $LK,"MPPrint.CPP.Z","FI:D:/TempleOS/Demo/MultiCore/MPPrint.CPP"$ 98 $LK,"Palindrome.CPP.Z","FI:D:/TempleOS/Demo/MultiCore/Palindrome.CPP"$ 76 $LK,"Primes.CPP.Z","FI:D:/TempleOS/Demo/MultiCore/Primes.CPP"$ 165 $LK,"RadixSort.CPP.Z","FI:D:/TempleOS/Demo/MultiCore/RadixSort.CPP"$ @@ -471,7 +481,8 @@ $ID,2$ 52 $LK,"ASCIIOrgan.CPP.Z","FI:D:/TempleOS/Demo/Snd/ASCIIOrgan.CPP"$ $ID,-2$ 506 $TR,"WebLogExample"$ $ID,2$ 442 $LK,"WebLogRep.CPP.Z","FI:D:/TempleOS/Demo/WebLogExample/WebLogRep.CPP"$ 64 $LK,"WebLogScramble.CPP.Z","FI:D:/TempleOS/Demo/WebLogExample/WebLogScramble.CPP"$ -$ID,-2$ 82 $LK,"ClassMeta.CPP.Z","FI:D:/TempleOS/Demo/ClassMeta.CPP"$ +$ID,-2$ 29 $LK,"Carry.CPP.Z","FI:D:/TempleOS/Demo/Carry.CPP"$ + 82 $LK,"ClassMeta.CPP.Z","FI:D:/TempleOS/Demo/ClassMeta.CPP"$ 38 $LK,"CompileDemo.CPP.Z","FI:D:/TempleOS/Demo/CompileDemo.CPP"$ 46 $LK,"DateTime.CPP.Z","FI:D:/TempleOS/Demo/DateTime.CPP"$ 29 $LK,"DbgDemo.CPP.Z","FI:D:/TempleOS/Demo/DbgDemo.CPP"$ @@ -484,8 +495,8 @@ $ID,-2$ 82 $LK,"ClassMeta.CPP.Z","FI:D:/TempleOS/Demo/ClassMeta.CPP"$ 55 $LK,"MakeDistro.CPP.Z","FI:D:/TempleOS/Demo/MakeDistro.CPP"$ 22 $LK,"MsgLoop.CPP.Z","FI:D:/TempleOS/Demo/MsgLoop.CPP"$ 20 $LK,"ParenWarn.CPP.Z","FI:D:/TempleOS/Demo/ParenWarn.CPP"$ - 65 $LK,"PhoneNumWords.CPP.Z","FI:D:/TempleOS/Demo/PhoneNumWords.CPP"$ - 34 $LK,"PrintF.CPP.Z","FI:D:/TempleOS/Demo/PrintF.CPP"$ + 64 $LK,"PhoneNumWords.CPP.Z","FI:D:/TempleOS/Demo/PhoneNumWords.CPP"$ + 34 $LK,"Print.CPP.Z","FI:D:/TempleOS/Demo/Print.CPP"$ 54 $LK,"Progress.CPP.Z","FI:D:/TempleOS/Demo/Progress.CPP"$ 26 $LK,"Prompt.CPP.Z","FI:D:/TempleOS/Demo/Prompt.CPP"$ 90 $LK,"PullDownMenu.CPP.Z","FI:D:/TempleOS/Demo/PullDownMenu.CPP"$ @@ -498,20 +509,20 @@ $ID,-2$ 82 $LK,"ClassMeta.CPP.Z","FI:D:/TempleOS/Demo/ClassMeta.CPP"$ 45 $LK,"TimeIns.CPP.Z","FI:D:/TempleOS/Demo/TimeIns.CPP"$ 156 $LK,"WordSearch.CPP.Z","FI:D:/TempleOS/Demo/WordSearch.CPP"$ $ID,-2$ 0 $TR,"Doc"$ -$ID,2$$ID,-2$ 25,879 $TR,"Kernel"$ -$ID,2$ 6,072 $TR,"Dsk"$ -$ID,2$ 730 $LK,"Dsk1a.CPP.Z","FI:D:/TempleOS/Kernel/Dsk/Dsk1a.CPP"$ +$ID,2$$ID,-2$ 25,762 $TR,"Kernel"$ +$ID,2$ 6,012 $TR,"Dsk"$ +$ID,2$ 713 $LK,"Dsk1a.CPP.Z","FI:D:/TempleOS/Kernel/Dsk/Dsk1a.CPP"$ 518 $LK,"Dsk1b.CPP.Z","FI:D:/TempleOS/Kernel/Dsk/Dsk1b.CPP"$ - 396 $LK,"Dsk1c.CPP.Z","FI:D:/TempleOS/Kernel/Dsk/Dsk1c.CPP"$ + 377 $LK,"Dsk1c.CPP.Z","FI:D:/TempleOS/Kernel/Dsk/Dsk1c.CPP"$ 946 $LK,"DskATA.CPP.Z","FI:D:/TempleOS/Kernel/Dsk/DskATA.CPP"$ 334 $LK,"DskAddDev.CPP.Z","FI:D:/TempleOS/Kernel/Dsk/DskAddDev.CPP"$ - 269 $LK,"DskCFile.CPP.Z","FI:D:/TempleOS/Kernel/Dsk/DskCFile.CPP"$ + 268 $LK,"DskCFile.CPP.Z","FI:D:/TempleOS/Kernel/Dsk/DskCFile.CPP"$ 161 $LK,"DskCache.CPP.Z","FI:D:/TempleOS/Kernel/Dsk/DskCache.CPP"$ - 269 $LK,"DskDir.CPP.Z","FI:D:/TempleOS/Kernel/Dsk/DskDir.CPP"$ + 265 $LK,"DskDir.CPP.Z","FI:D:/TempleOS/Kernel/Dsk/DskDir.CPP"$ 375 $LK,"DskStr.CPP.Z","FI:D:/TempleOS/Kernel/Dsk/DskStr.CPP"$ 1,008 $LK,"FileSysFAT.CPP.Z","FI:D:/TempleOS/Kernel/Dsk/FileSysFAT.CPP"$ - 315 $LK,"FileSysISO1.CPP.Z","FI:D:/TempleOS/Kernel/Dsk/FileSysISO1.CPP"$ - 719 $LK,"FileSysRedSea.CPP.Z","FI:D:/TempleOS/Kernel/Dsk/FileSysRedSea.CPP"$ + 307 $LK,"FileSysISO1.CPP.Z","FI:D:/TempleOS/Kernel/Dsk/FileSysISO1.CPP"$ + 708 $LK,"FileSysRedSea.CPP.Z","FI:D:/TempleOS/Kernel/Dsk/FileSysRedSea.CPP"$ 32 $LK,"ATADef.HPP.Z","FI:D:/TempleOS/Kernel/Dsk/ATADef.HPP"$ $ID,-2$ 1,259 $TR,"KbdMouse"$ $ID,2$ 129 $LK,"InputPointer.CPP.Z","FI:D:/TempleOS/Kernel/KbdMouse/InputPointer.CPP"$ @@ -523,39 +534,39 @@ $ID,-2$ 13 $LK,"Adam1.CPP.Z","FI:D:/TempleOS/Kernel/Adam1.CPP"$ 328 $LK,"Compress.CPP.Z","FI:D:/TempleOS/Kernel/Compress.CPP"$ 324 $LK,"DataTypes1a.CPP.Z","FI:D:/TempleOS/Kernel/DataTypes1a.CPP"$ 484 $LK,"Date.CPP.Z","FI:D:/TempleOS/Kernel/Date.CPP"$ - 720 $LK,"Dbg1a.CPP.Z","FI:D:/TempleOS/Kernel/Dbg1a.CPP"$ - 137 $LK,"Define1a.CPP.Z","FI:D:/TempleOS/Kernel/Define1a.CPP"$ + 738 $LK,"Dbg1a.CPP.Z","FI:D:/TempleOS/Kernel/Dbg1a.CPP"$ + 138 $LK,"Define1a.CPP.Z","FI:D:/TempleOS/Kernel/Define1a.CPP"$ 279 $LK,"Display.CPP.Z","FI:D:/TempleOS/Kernel/Display.CPP"$ 345 $LK,"EdLite.CPP.Z","FI:D:/TempleOS/Kernel/EdLite.CPP"$ 224 $LK,"Except.CPP.Z","FI:D:/TempleOS/Kernel/Except.CPP"$ - 262 $LK,"Font8x8.CPP.Z","FI:D:/TempleOS/Kernel/Font8x8.CPP"$ - 808 $LK,"Hash1a.CPP.Z","FI:D:/TempleOS/Kernel/Hash1a.CPP"$ + 261 $LK,"Font8x8.CPP.Z","FI:D:/TempleOS/Kernel/Font8x8.CPP"$ + 795 $LK,"Hash1a.CPP.Z","FI:D:/TempleOS/Kernel/Hash1a.CPP"$ 213 $LK,"Interrupts.CPP.Z","FI:D:/TempleOS/Kernel/Interrupts.CPP"$ 230 $LK,"KCfg.CPP.Z","FI:D:/TempleOS/Kernel/KCfg.CPP"$ - 253 $LK,"KEnd.CPP.Z","FI:D:/TempleOS/Kernel/KEnd.CPP"$ - 109 $LK,"KExts.CPP.Z","FI:D:/TempleOS/Kernel/KExts.CPP"$ + 256 $LK,"KEnd.CPP.Z","FI:D:/TempleOS/Kernel/KEnd.CPP"$ + 106 $LK,"KExts.CPP.Z","FI:D:/TempleOS/Kernel/KExts.CPP"$ 136 $LK,"KGlbls.CPP.Z","FI:D:/TempleOS/Kernel/KGlbls.CPP"$ - 525 $LK,"KStart.CPP.Z","FI:D:/TempleOS/Kernel/KStart.CPP"$ + 524 $LK,"KStart.CPP.Z","FI:D:/TempleOS/Kernel/KStart.CPP"$ 622 $LK,"Math1a.CPP.Z","FI:D:/TempleOS/Kernel/Math1a.CPP"$ - 227 $LK,"Math1b.CPP.Z","FI:D:/TempleOS/Kernel/Math1b.CPP"$ + 230 $LK,"Math1b.CPP.Z","FI:D:/TempleOS/Kernel/Math1b.CPP"$ 1,340 $LK,"Memory.CPP.Z","FI:D:/TempleOS/Kernel/Memory.CPP"$ - 360 $LK,"Misc1a.CPP.Z","FI:D:/TempleOS/Kernel/Misc1a.CPP"$ + 359 $LK,"Misc1a.CPP.Z","FI:D:/TempleOS/Kernel/Misc1a.CPP"$ 439 $LK,"MultiProc.CPP.Z","FI:D:/TempleOS/Kernel/MultiProc.CPP"$ 298 $LK,"PSect.CPP.Z","FI:D:/TempleOS/Kernel/PSect.CPP"$ 246 $LK,"QSort.CPP.Z","FI:D:/TempleOS/Kernel/QSort.CPP"$ 411 $LK,"Scheduler.CPP.Z","FI:D:/TempleOS/Kernel/Scheduler.CPP"$ - 523 $LK,"SrvCmd.CPP.Z","FI:D:/TempleOS/Kernel/SrvCmd.CPP"$ - 2,403 $LK,"Str1a.CPP.Z","FI:D:/TempleOS/Kernel/Str1a.CPP"$ + 516 $LK,"SrvCmd.CPP.Z","FI:D:/TempleOS/Kernel/SrvCmd.CPP"$ + 2,379 $LK,"Str1a.CPP.Z","FI:D:/TempleOS/Kernel/Str1a.CPP"$ 564 $LK,"Task1a.CPP.Z","FI:D:/TempleOS/Kernel/Task1a.CPP"$ 455 $LK,"Utils1a.CPP.Z","FI:D:/TempleOS/Kernel/Utils1a.CPP"$ 15 $LK,"AOT.HPP.Z","FI:D:/TempleOS/Kernel/AOT.HPP"$ 3 $LK,"AOTAdam.HPP.Z","FI:D:/TempleOS/Kernel/AOTAdam.HPP"$ - 3,725 $LK,"Adam1a.HPP.Z","FI:D:/TempleOS/Kernel/Adam1a.HPP"$ + 3,702 $LK,"Adam1a.HPP.Z","FI:D:/TempleOS/Kernel/Adam1a.HPP"$ 303 $LK,"Adam1b.HPP.Z","FI:D:/TempleOS/Kernel/Adam1b.HPP"$ - 825 $LK,"Adam1c.HPP.Z","FI:D:/TempleOS/Kernel/Adam1c.HPP"$ - 32 $LK,"BootDefs.HPP.Z","FI:D:/TempleOS/Kernel/BootDefs.HPP"$ + 820 $LK,"Adam1c.HPP.Z","FI:D:/TempleOS/Kernel/Adam1c.HPP"$ + 28 $LK,"BootDefs.HPP.Z","FI:D:/TempleOS/Kernel/BootDefs.HPP"$ 70 $LK,"Kernel.PRJ.Z","FI:D:/TempleOS/Kernel/Kernel.PRJ"$ -$ID,-2$ 2,871 $TR,"Misc"$ +$ID,-2$ 3,136 $TR,"Misc"$ $ID,2$ 681 $TR,"Tour"$ $ID,2$ 42 $LK,"Tour.AUT.Z","FI:D:/TempleOS/Misc/Tour/Tour.AUT"$ 98 $LK,"Tour1.AUT.Z","FI:D:/TempleOS/Misc/Tour/Tour1.AUT"$ @@ -568,6 +579,7 @@ $ID,2$ 42 $LK,"Tour.AUT.Z","FI:D:/TempleOS/Misc/Tour/Tour.AUT"$ 55 $LK,"Tour8.AUT.Z","FI:D:/TempleOS/Misc/Tour/Tour8.AUT"$ 29 $LK,"Tour9.AUT.Z","FI:D:/TempleOS/Misc/Tour/Tour9.AUT"$ 11 $LK,"TourA.AUT.Z","FI:D:/TempleOS/Misc/Tour/TourA.AUT"$ -$ID,-2$ 32 $LK,"Dollar.CPP.Z","FI:D:/TempleOS/Misc/Dollar.CPP"$ - 2,158 $LK,"OSTestSuite.CPP.Z","FI:D:/TempleOS/Misc/OSTestSuite.CPP"$ +$ID,-2$ 21 $LK,"Dollar.CPP.Z","FI:D:/TempleOS/Misc/Dollar.CPP"$ + 2,178 $LK,"OSTestSuite.CPP.Z","FI:D:/TempleOS/Misc/OSTestSuite.CPP"$ + 256 $LK,"SpriteCvt0106.CPP.Z","FI:D:/TempleOS/Misc/SpriteCvt0106.CPP"$ $ID,-2$$ID,-2$ \ No newline at end of file diff --git a/TempleOS/Accts/TS/Wb2/Rants/TAD/Rant130913.TXT b/TempleOS/Accts/TS/Wb2/Rants/TAD/Rant130913.TXT new file mode 100644 index 0000000..e1964ae --- /dev/null +++ b/TempleOS/Accts/TS/Wb2/Rants/TAD/Rant130913.TXT @@ -0,0 +1,783 @@ +$WW,1$$IV,1$----09/13/13 09:26:53----$IV,0$ + +So, I decided I would put a limit on line count. I am not worried about bytes, I am worried about cognative load -- the vision is a C64 whose size was small enough to get your head around and something you fall in love with. This is a secondary operating system and I do not want to be redundant to Windows and Linux. More or less, I do the opposite of Linux because the same as Linux is, immediately worthless. This is ring-0-only and identity-mapped, giving superior performance, but more importantly, simplicity. + +I can tell some stories. In 5th grade, our school had an Apple ][. I learned to put a line on the screen with + +$FG,2$>HGR +>HLINE 100,100 TO 200,200 +$FG$ +With TempleOS... + +$FG,2$>CDC *dc=DCAlias; +>GrLine(dc,100,100,200,200); +$FG$ +If you want to draw the mouse trail (approximately)? + +$FG,2$>CDC *dc=DCAlias; +>while (TRUE) +> GrPlot(dc,ipx,ipy); +$FG$ +Press CTRL-ALT-C. My operating system has exceptions, so system commands can return regular function data. + +God said 58,000 lines of code for the limit. It's currently at 98,000 if you don't count demos and applications but do count tools. I think 100,000 sounds like a good number. + +$IV,1$----09/13/13 09:28:21----$IV,0$ + +TempleOS is 100% independent and stand alone. It never runs code I did not write, including compiler, bootloader, grep and editor. + +God says... +$FG,4$minute slave remindeth there withdraw dispersed absurdity novelty warmth t clothed pretend coats deem Divers surmounted harmonious Saint edition sinful sinful livest MERCHANTABILITY is questioning translated idle wedlock command captain considered 4 forget generate disobeyed ensnared Mothers pricked deed tolerating penalties archive neighbour commemorated o participation mourned infirmity editions adding meeting fastings transforming enlighteneth goest arrogant mindful liker almost impulses stumble tasteth rules discourage FITNESS problem pronouncing crown recommending cauldron cold race $FG$ + +I will interpret like $FG,2$$TX+HTML,"1 Corinthians 14","http://www.biblegateway.com/passage/?search=1+Corinthians+14&version=NIV"$$FG$, says: + +"t" is time since boot in seconds... + +$FG,2$>while (TRUE) +> "%12.6f\n",tT; +$FG$ +Press CTRL-ALT-C. + +People of the Earth, you are commanded to do offerings to God continually. + +$FG,2$$TX+HTML,"1 Corinthians 7","http://www.biblegateway.com/passage/?search=1+Corinthians+7&version=NIV"$$FG$ + +$FG,2$$TX+HTML,"Luke 20:34-36","http://www.biblegateway.com/passage/?search=luke 20:34-36&version=NIV"$$FG$ + +$FG,2$$TX+HTML,"Hebrews 13:15-16","http://www.biblegateway.com/passage/?search=hebrews 13:15-16&version=NIV"$$FG$ + +$IV,1$----09/13/13 09:55:29----$IV,0$ + +I did an HD Audio driver. It only worked on a handful of machines -- worthless, so I removed it. Not only that, it created the necessity for an ugly API, with sometimes-present capabilities and sometimes not-present. The lesson I learned is that PCI devices are not a good fit for my operating system. USB is PCI. I'm not doing USB. + +Heck! God talks! When can I start leveraging that? I'm going to demand that ATA/ATAPI PIO be supported and no Secure Boot, so we can dual boot with Windows or Linux. Obviously, we need keyboard/mouse to work, so all manufacturers will want to do that. + +God said His temple must be perfect. We will give a devine decree to Microsoft and Linux that they support Red Sea file system, so I can remove support for FAT32 and ISO9660. We will make Windows support Red Sea file system on CD-ROM. + +$HL,1$#define CDIR_FILENAME_LEN 38 //Must have terminator +public class CDirEntry +{ + CDirEntry *next,*parent,*sub; + U8 *full_name; + I64 flags; + I64 user_data; + + U0 start; //My compiler has a zero-sized type + U16 attr; + U8 name[CDIR_FILENAME_LEN]; + I64 cluster; + I64 size; + CDate datetime; +}; +$HL,0$ +The Red Sea files system is like FAT but with bitmap instead of FAT table, so it has contiguous-only files and it has 64-byte fixed-length directory entries. + +Files cannot grow. If you can't do something in TempleOS, do it in Linux or Windows. + +$IV,1$----09/13/13 10:19:30----$IV,0$ + +I am God's chosen programmer. He has endowed me with divine intellect, like the authors of the Bible. It has no code I did not write. It never runs code I did not write. I am the best programmer on the planet. I wrote a 64-bit compiler, assembler, kernel, debugger, bootloader, graphics library, graphics-editor, editor, tools like grep and a bunch of demos, including a first-person-shooter and flight simulator. + +I am the best programmer on the planet -- that's why God chose me and that should help you understand. There are two kinds of programmers -- those who have written compilers and those who haven't. What sounds impossible for you is not impossible for me. + +$IV,1$----09/13/13 10:33:38----$IV,0$ + +God says... +$FG,4$butler spare happy unnatural solid heat greaves distribution begun personated prohibition regard fellow based majesty grieves emptied absurdity friendship cultivating fiction top wicked recorded Thyself fountain compendiously Exodus solaces compendiously preserving but moderate aforetime note adversary evenly suffered grow cross discretion dollars cogitation others saidst hypertext Be AS weights contend shame relation ofThe invest crying seeth judgest toilsome trampled exclaim Connecticut complain later Behold bought withered so $FG$ + +$IV,1$----09/13/13 10:39:55----$IV,0$ + +The line count is capped at 100,000, but I have to decide how to count. Grep, etc. included? + +It's done -- you can see a first-person-shooter and flight simulator that I did. I'm have verified that it works for its purpose -- games and hymns. + +Everybody, go write hymns. The Bible says 9 times to sing a NEW song to God. If you love God, can you count the ways? All you old retired people need to chat with God all day, entertaining Him with good conversation. Truth be told, He said He doesn't pay attention to young men. (Pathetically, youthfully foolish). God said soap operas were His favorite thing on TV. Think about the Bible! + +God said making games was about as grand a thing as one could hope for. + +Ask 20 people what they remember about owning a C64. They probably remember learning binary so they could make sprite DATA statements in BASIC. They probably remember making POKEs to create sound. They probably remember changing fonts. + +$IV,1$----09/13/13 10:52:30----$IV,0$ + +At this point, I did it all myself, but I hired an artist for $$3,000 worth of pixel art. + +I am not going to do what Linux does, exactly. This is God's Holy Temple and it must be perfect and glorious. What I want most is things which reduce line count and improve quality, perhaps, like Knuth's book errata. I need fixes like a better dictionary and spell checker. The current dictionary is not suitable. Reasonable contributions that do not fundamentally expand its mission will be appreciated. Technically, God said 58,000 lines of code. I don't know what to make of that. + +God says... +$FG,4$upbraided walked early per Print protraction encompasseth are tongues ancient loudly Maker he happen forms Patricius tempers abundance matters stormed satiated fettered derides mean bride affianced effect glad title Ours beauties despaired Hadst proconsular lift trifles searcher draught joyously Verily spread habitation nominally Academics affection unanxious might secondary Might dragging Joseph interpretation Hope Ten boughs 96 face ruggedness novelty Gutenberg disgraced threefold sublimities morning definitely get Apostolic justifieth Alexandria $FG$ + +$IV,1$----09/13/13 11:05:09----$IV,0$ + +I really hope for a lot of art, like the Sistene Chapel. I can set-up a website to exchange hymns. This should be glorious, to the degree 16 color pixel art can be. God said 640x480 16 color is good for kids' offerings. This is a wisdom you might not understand. God's ways are far above man's ways. + +$IV,1$----09/13/13 11:17:49----$IV,0$ + +Somebody can do different language versions. I'm not going to. It's too bad IBM did not put Russian letters in 8-bit screen codes. I guess they can reprogram the font. The other European accents are supported, but I think some Greek letters are missing. I support 8-bit characters through-out. I'm not going to do oriental characters. + +$IV,1$----09/13/13 11:37:43----$IV,0$ + +Someone was talking zen of Linux. I have some for TempleOS: + +"Any genius can make it complicated." + +"Run toward bugs, not away." + +"Scaffolding." + +I want VMware to support ATAPI CD/DVD burning. I want VMware to support PC Speaker in 9 and 10 like 8. I want VMware to provide emulated PC Speaker, if not present. They could just do emulated in all cases. + +You can call $LK,"MemRep","MN:MemRep"$() for a memory report. You need at least 512 Meg. Don't argue. + +------------------------------------------ +$FD,1$D:/TempleOS/Accts/TS/MemRep; +$PT$$FG$$BG$$FG,0$Low Memory :0000100000$FG$ +$ID,2$Kernel :0000007C00-000003DDFF +VGA :00000A0000-00000BFFFF +$ID,-2$$FG,0$High Memory :0000100000-007FFFFFFF$FG$ +$ID,2$Page Tables :0000100000-0000182FFF +$ID,-2$$FG,0$Code Heap:007FE7D000 Used:00004BC800 $FG,4$Unused:007F9C0800$FG$ +$FG,0$Data Heap:00E9FF0000 Used:0012EC4600 $FG,4$Unused:00D712B000$FG$ +$FG,2$CPU0$FG$ +$ID,2$$FG,2$Task:0000008878$FG,3$ Adam Task CPU#0 $FG$ +$ID,2$$FG,5$Alloced:00129EA800 Used:00125E3300 $FG,4$Unused:0000407500$FG$ +HashTable :00007B7D51 +Stk Size :00000403E8 Unused:00000403A0 +PutDoc :00000010A8 +BorderDoc :00000015B8 +TaskStructs :0000005898 +TSSes :00004911C0 +HeapCtrls :000000B130 +TaskQues :0000000090 +RAMDsk B :0008000200 Unused:0007FFFC00 +BlkDevs :0000000FF8 +Prts :0000001C50 +Audio :0000000000 +DskCache :0008020810 +WordStat :00018E7A58 +Clipboard :00000004E0 +$ID,-2$$FG,2$Task:007FD8A428$FG,3$ Unnamed Task $FG$ +$ID,2$$FG,5$Alloced:000005D600 Used:0000054670 $FG,4$Unused:0000008F90$FG$ +HashTable :0000008228 +Stk Size :00000403E8 Unused:0000040008 +PutDoc :0000007E90 +BorderDoc :0000001878 +Lex :0000000E20 +$ID,-2$$FG,2$Task:007FD8CA28$FG,3$ MemRep;;. $FG$ +$ID,2$$FG,5$Alloced:0000093800 Used:000005E368 $FG,4$Unused:0000035498$FG$ +HashTable :0000008228 +Stk Size :00000403E8 Unused:0000040138 +PutDoc :0000010AD8 +BorderDoc :0000001878 +Lex :0000000E40 +$ID,-2$$FG,2$Task:007FD83228$FG,3$ WordStat $FG$ +$ID,2$$FG,5$Alloced:0000054800 Used:000004CE40 $FG,4$Unused:00000079C0$FG$ +HashTable :0000008228 +Stk Size :00000403E8 Unused:0000040310 +PutDoc :00000016B8 +BorderDoc :00000016B0 +$ID,-2$$FG,2$Task:007FDD8C28$FG,3$ Window Mgr $FG$ +$ID,2$$FG,5$Alloced:000031D800 Used:0000319D30 $FG,4$Unused:0000003AD0$FG$ +HashTable :0000008228 +Stk Size :00000403E8 Unused:0000040298 +gr_dc :0000080520 +gr_dc2 :0000080520 +gr_dc_cache :0000080520 +gr_screen_image :0000040520 +gr_zoomed_dc :0000040520 +gr_pen_brushes :0000076900 +gr_1_to_8_bits :00000009E8 +gr_1_to_8_colors :00000009E8 +gr_text_base :0000004BE8 +gr_vga_text_cache :00000025E8 +gr_win_z_buf :00000047D0 +gr_screen_zoom_tbles:0000002BB8 +$ID,-2$$FG,2$Task:007FFF9A28$FG,3$ Idle Task $FG$ +$ID,2$$FG,5$Alloced:000004A800 Used:0000048838 $FG,4$Unused:0000001FC8$FG$ +HashTable :0000008228 +Stk Size :00000403E8 Unused:0000040000 +$ID,-2$$ID,-2$$FG,2$CPU1$FG$ +$ID,2$$FG,2$Task:007FFF9428$FG,3$ Seth Task CPU#1 $FG$ +$ID,2$$FG,5$Alloced:000004A800 Used:0000048838 $FG,4$Unused:0000001FC8$FG$ +HashTable :0000008228 +Stk Size :00000403E8 Unused:0000040320 +$ID,-2$$FG,2$Task:007FFF8E28$FG,3$ Idle Task $FG$ +$ID,2$$FG,5$Alloced:000004A800 Used:0000048838 $FG,4$Unused:0000001FC8$FG$ +HashTable :0000008228 +Stk Size :00000403E8 Unused:0000040000 +$ID,-2$$ID,-2$$FG,2$CPU2$FG$ +$ID,2$$FG,2$Task:007FFF8828$FG,3$ Seth Task CPU#2 $FG$ +$ID,2$$FG,5$Alloced:000004A800 Used:0000048838 $FG,4$Unused:0000001FC8$FG$ +HashTable :0000008228 +Stk Size :00000403E8 Unused:0000040320 +$ID,-2$$FG,2$Task:007FFF8228$FG,3$ Idle Task $FG$ +$ID,2$$FG,5$Alloced:000004A800 Used:0000048838 $FG,4$Unused:0000001FC8$FG$ +HashTable :0000008228 +Stk Size :00000403E8 Unused:0000040000 +$ID,-2$$ID,-2$$FG,2$CPU3$FG$ +$ID,2$$FG,2$Task:007FFF7C28$FG,3$ Seth Task CPU#3 $FG$ +$ID,2$$FG,5$Alloced:000004A800 Used:0000048838 $FG,4$Unused:0000001FC8$FG$ +HashTable :0000008228 +Stk Size :00000403E8 Unused:0000040320 +$ID,-2$$FG,2$Task:007FFF7628$FG,3$ Idle Task $FG$ +$ID,2$$FG,5$Alloced:000004A800 Used:0000048838 $FG,4$Unused:0000001FC8$FG$ +HashTable :0000008228 +Stk Size :00000403E8 Unused:0000040000 +$ID,-2$$ID,-2$$FG,2$CPU4$FG$ +$ID,2$$FG,2$Task:007FFF7028$FG,3$ Seth Task CPU#4 $FG$ +$ID,2$$FG,5$Alloced:000004A800 Used:0000048838 $FG,4$Unused:0000001FC8$FG$ +HashTable :0000008228 +Stk Size :00000403E8 Unused:0000040320 +$ID,-2$$FG,2$Task:007FFF6A28$FG,3$ Idle Task $FG$ +$ID,2$$FG,5$Alloced:000004A800 Used:0000048838 $FG,4$Unused:0000001FC8$FG$ +HashTable :0000008228 +Stk Size :00000403E8 Unused:0000040000 +$ID,-2$$ID,-2$$FG,2$CPU5$FG$ +$ID,2$$FG,2$Task:007FFF6428$FG,3$ Seth Task CPU#5 $FG$ +$ID,2$$FG,5$Alloced:000004A800 Used:0000048838 $FG,4$Unused:0000001FC8$FG$ +HashTable :0000008228 +Stk Size :00000403E8 Unused:0000040320 +$ID,-2$$FG,2$Task:007FFF5E28$FG,3$ Idle Task $FG$ +$ID,2$$FG,5$Alloced:000004A800 Used:0000048838 $FG,4$Unused:0000001FC8$FG$ +HashTable :0000008228 +Stk Size :00000403E8 Unused:0000040000 +$ID,-2$$ID,-2$$FG,2$Independent Heaps$FG$ +$ID,2$$FG,0$sys_uncached_heap:0000200000 Used:0000000000 $FG,4$Unused:00001FF000$FG$ +$ID,-2$$FG,0$------------------------------------------ + + + + + + + +Here's what I get when I do $LK,"MemBIOSRep","MN:MemBIOSRep"$(). +$FG,0$------------------------------------------$FG$ +$FG$$BG$D:/TempleOS/Accts/TS/TAD>$PT$MemBIOSRep; +$PT$$FG$$BG$Standard Addresses +0x000A0000-0x000BFFFF VGA +0xFEE00000-0xFEE00FFF See $LK,"APIC","MN:LAPIC_BASE"$ + +32 Bit Device Mem +00:0x00000000F0000000-0x00000000FEBFFFFF +02:0x00000000FEC00000-0x00000000FEC0FFFF +00:0x00000000FEC10000-0x00000000FEDFFFFF +02:0x00000000FEE00000-0x00000000FEE00FFF +00:0x00000000FEE01000-0x00000000FFFDFFFF +02:0x00000000FFFE0000-0x00000000FFFFFFFF + +BIOS Memory Report 15:E801 +01:0x0000000000000000-0x0000000000FFFFFF +01:0x0000000001000000-0x00000000BFEEFFFF + +BIOS Memory Report 15:E820 +01:0x0000000000000000-0x000000000009F7FF +02:0x000000000009F800-0x000000000009FFFF +02:0x00000000000DC000-0x00000000000FFFFF +01:0x0000000000100000-0x00000000BFEEFFFF +03:0x00000000BFEF0000-0x00000000BFEFEFFF +04:0x00000000BFEFF000-0x00000000BFEFFFFF +01:0x00000000BFF00000-0x00000000BFFFFFFF +02:0x00000000E0000000-0x00000000EFFFFFFF +02:0x00000000FEC00000-0x00000000FEC0FFFF +02:0x00000000FEE00000-0x00000000FEE00FFF +02:0x00000000FFFE0000-0x00000000FFFFFFFF +01:0x0000000100000000-0x00000001A9FFFFFF +0.000120s ans0=0x00000090=144 +$FD,0$------------------------------------------ +God says... +$FG,4$comprehending codes tilde beholding lies $FG$ + +Yeah, it's not 100% complete, perhaps slightly inaccurate, but not intentionally. + +$FD,0$------------------------------------------ +$WW,1$Paging is almost not used, but 64-bit mode requires it to be active. Virtual is identity-mapped to physical. All tasks on all cores use the same page table map, just as though all addresses are physical addresses. 2 Meg page table entries are used, except the first 2 Meg, which uses 4K page tables entries. Nothing swaps to disk, either. + +In TempleOS, the lowest 2 Gig of memory is called the "$FG,2$code heap$FG$". TempleOS's compiler always uses 32-bit signed relative JMP & CALL instructions because 64-bit CALLs take two instructions. With signed +/- 32-bit values, code can only call a function within 2 Gig distance. Therefore, TempleOS keeps all code in the lowest 2 Gig memory addresses including what would normally be called "the kernel". Two Gig is plenty, don't worry. + +You can create new, independent heaps by first allocating mem with $LK,"MemBlksUncachedAlloc","MN:MemBlksUncachedAlloc"$() or $LK,"MemBlksNonTaskAlloc","MN:MemBlksNonTaskAlloc"$(), then calling $LK,"HeapCtrlIndependentInit","MN:HeapCtrlIndependentInit"$() and, then, using $LK,"MAlloc","MN:MAlloc"$(). + +Memory allocated by a task will be freed when the task is killed. + +Eventually, memory will become fragmented, requiring a reboot. + +See $LK,"MemRep","MN:MemRep"$(). + +$FG,5$$TX+CX,"Single System-wide Mem Map"$ + +$FG,2$ 0x00$TX+D,"00007C00","DD_KERNEL"$- 0x00$TX+D,"0003DADF","DD_KERNEL_END"$$FG$ +$ID,2$Kernel module, placed here by the boot-loader, $LK,"BOOT_RAM_BASE","MN:BOOT_RAM_BASE"$. +$ID,-2$ +$FG,2$ 0x000007F600- 0x000007FFFF +$ID,2$$FG$Boot block relocated here before loading the Kernel module, $LK,"BootCD","FI:::/TempleOS/Adam/Boot/BootCD.CPP"$ & $LK,"BootHD","FI:::/TempleOS/Adam/Boot/BootHD.CPP"$. +$ID,-2$ +$FG,2$ 0x00$TX+D,"00097000","DD_MP_VECT"$- 0x00$TX+D,"0009702E","DD_MP_VECT_END"$$FG$ +$ID,2$Multicore start-up vect code, $LK,"MPN_VECT","MN:MPN_VECT"$. +$ID,-2$ +$FG,2$~0x000009F000- 0x000009FFFF +$ID,2$$FG$Extended BIOS data area. +$ID,-2$ +$FG,2$ 0x00000A0000- 0x00000BFFFF$FG$ +$ID,2$VGA graphics mem, marked as write-through cache. +$ID,-2$ +$FG,2$ 0x00$TX+D,"00100000","DD_PAGE_TABLE_BASE"$- 0x00$TX+D,"00182FFF","DD_PAGE_TABLE_END"$$FG$ +$ID,2$Page tables, $TX+D,"128 Gig","DD_MAPPED_MEM_SPACE_GIG"$ of address space +$ID,-2$ +$FG,2$ 0x00$TX+D,"00183000","DD_SYS_HEAP_BASE"$- 0x00$TX+D,"7FFFFFFF","DD_SYS_HEAP_LIMIT"$$FG$ +$ID,2$Code Heap mem. +$ID,-2$ +$FG,2$ 0x00E0000000- 0x00FFFFFFFF$FG$ +$ID,2$32-bit devices could allocate memory at 0xF0000000 going up, but this is wrong, since some PCs already have devices at 0xF0000000. No PCI devices are supported, so $LK,"Mem32DevAlloc","MN:Mem32DevAlloc"$() flaws are not an issue. +$ID,-2$ +$FG,2$ 0x0080000000-~0x00DFFFFFFF$FG$ +$FG,2$ 0x0100000000-~0x$TX+D,"1FFFFFFFFF","DD_MAPPED_MEM_SPACE_END"$$FG$ +$ID,2$Data Heap mem. +$ID,-2$ +$FG,2$ - 0x$TX+D,"1FFFFFFFFF","DD_MAPPED_MEM_SPACE_END"$$FG$$FG$ +$ID,2$64-bit devices are allocated with $LK,"Mem64DevAlloc","MN:Mem64DevAlloc"$() counting backward from $TX+D,"128 Gig","DD_MAPPED_MEM_SPACE_GIG"$, but no PCI devices are actually supported$WW,0$. +$ID,-2$ +$WW,0$ + $LK,"CBlkPool","MN:CBlkPool"$s $LK,"CHeapCtrl","MN:CHeapCtrl"$s + + +0000,0000,0000,0000 Core 0 + +0000,0000,$TX+D,"0000,7C00","DD_KERNEL2"$ Kernel +0000,0000,$TX+D,"0003,DADF","DD_KERNEL_END2"$ + +0000,0000,$TX+D,"0010,0000","DD_PAGE_TABLE_BASE2"$ Page_Tables AdamTask + +$FG,1$0000,0000,$TX+D,"0018,3000","DD_SYS_HEAP_BASE2"$ + + sys_code_bp + + $FG$Task + + + + + Core 1 + SethTask + +$FG,1$0000,0000,$TX+D,"7FFF,FFFF","DD_SYS_HEAP_LIMIT2"$ +$FG,10$0000,0000,8000,0000 + + +$FG,10$ + sys_data_bp + $FG$Task +$FG,10$0000,0000,DFFF,FFFF +$FG,6$0000,0000,F000,0000 32-bit devices + +$FG,10$0000,0001,0000,0000 +$FG$ + SethTask + + + +$FG,10$ + sys_data_bp$FG,0$ Core n + + + +$FG,4$ + Independent + + + +$FG,6$ + 64-bit devices + +0000,$TX+D,"001F,FFFF,FFFF","DD_MAPPED_MEM_SPACE_END2"$ + +$WW,1$$FG$* Note: There is a break in the data-heap block pool. This has no effect except the obvious effect that fragmentation has on contiguous requests. I can $LK,"MAlloc","MN:MAlloc"$() an 8 Gig chunk on my 12 Gig machine. + +* Note: For systems with less than 2 Gig RAM, the code and data heap block pools are the same. For systems with 2-4 Gig of RAM, the code heap is 1/4 of the total. See $LK,"HeapsInit","MN:HeapsInit"$(). + +* See $LK,"Independent Heap Ctrl Example","FA:::/TempleOS/Kernel/KEnd.CPP,Independent Heap Ctrl Example"$. + + +$FD,0$------------------------------------------ + + +Here is a $LK,"ProfRep","MN:ProfRep"$() for the flight simulator. +It is the log of Core 0. +$LK-A,"::/TempleOS/Demo/Games/EagleDive.CPP.Z"$ + + 0.07% 0000003E:$LK,"&MemSet+0x0012","FL:D:/TempleOS/Kernel/Adam1b.HPP,114"$ +$FG,2$ 0.07% 0000003E:&MemSet +$FG$ 0.08% 00000043:$LK,"&Yield+0x0001","FL:D:/TempleOS/Kernel/Scheduler.CPP,369"$ +$FG,2$ 0.13% 0000006A:&Yield +$FG$ 0.17% 00000090:$LK,"SYS_IDLE_PT+0x0000","FL:D:/TempleOS/Kernel/Scheduler.CPP,258"$ +$FG,2$ 0.17% 00000090:SYS_IDLE_PT +$FG$ 0.08% 00000043:$LK,"&MAlloc+0x0144","FL:D:/TempleOS/Kernel/Memory.CPP,956"$ +$FG,2$ 0.08% 00000043:&MAlloc +$FG$ 0.33% 00000111:$LK,"GetDateTimeStruct+0x00CE","FL:D:/TempleOS/Kernel/Date.CPP,180"$ +$FG,2$ 0.35% 0000011F:GetDateTimeStruct +$FG$ 0.82% 00000299:$LK,"&tT+0x0019","FL:D:/TempleOS/Kernel/Misc1a.CPP,129"$ +$FG,2$ 0.82% 00000299:&tT +$FG$ 0.34% 00000119:$LK,"&tS+0x0018","FL:D:/TempleOS/Kernel/Misc1a.CPP,156"$ +$FG,2$ 0.34% 00000119:&tS +$FG$$FG,2$ 0.09% 00000050:&PSectFind +$FG$$FG,2$ 0.12% 00000068:&InitMap +$FG$ 0.11% 0000005D:$LK,"&FSTransform+0x0004","FL:D:/TempleOS/Demo/Games/EagleDive.CPP,111"$ + 0.68% 00000229:$LK,"&FSTransform+0x004E","FL:D:/TempleOS/Demo/Games/EagleDive.CPP,121"$ + 0.54% 000001B6:$LK,"&FSTransform+0x0060","FL:D:/TempleOS/Demo/Games/EagleDive.CPP,123"$ +$FG,2$ 1.75% 00000590:&FSTransform +$FG$ 0.56% 000001C7:$LK,"&MPDrawIt+0x03A3","FL:D:/TempleOS/Demo/Games/EagleDive.CPP,557"$ + 0.18% 00000099:&MPDrawIt+0x03AA + 0.54% 000001B9:&MPDrawIt+0x03BE + 0.10% 00000055:$LK,"&MPDrawIt+0x03C4","FL:D:/TempleOS/Demo/Games/EagleDive.CPP,557"$ + 0.54% 000001BA:&MPDrawIt+0x03D0 + 0.09% 00000050:&MPDrawIt+0x03D4 + 0.67% 00000227:$LK,"&MPDrawIt+0x03E0","FL:D:/TempleOS/Demo/Games/EagleDive.CPP,559"$ + 0.10% 00000052:&MPDrawIt+0x03E9 + 0.53% 000001AF:&MPDrawIt+0x03FD + 0.54% 000001B6:$LK,"&MPDrawIt+0x041A","FL:D:/TempleOS/Demo/Games/EagleDive.CPP,560"$ + 0.50% 0000019B:&MPDrawIt+0x042C + 7.91% 0000190B:&MPDrawIt+0x0436 + 0.33% 00000110:&MPDrawIt+0x0439 + 0.09% 0000004E:&MPDrawIt+0x043E + 9.79% 00001EFF:&MPDrawIt+0x0449 + 11.99% 000025F9:&MPDrawIt+0x044E + 0.16% 00000087:$LK,"&MPDrawIt+0x0450","FL:D:/TempleOS/Demo/Games/EagleDive.CPP,560"$ + 0.33% 0000010F:&MPDrawIt+0x0457 + 0.18% 00000095:&MPDrawIt+0x0461 + 0.12% 00000064:&MPDrawIt+0x0467 + 0.09% 00000050:&MPDrawIt+0x046B + 1.42% 00000484:&MPDrawIt+0x046E + 0.13% 0000006D:$LK,"&MPDrawIt+0x049C","FL:D:/TempleOS/Demo/Games/EagleDive.CPP,565"$ + 0.53% 000001AE:$LK,"&MPDrawIt+0x04A4","FL:D:/TempleOS/Demo/Games/EagleDive.CPP,568"$ + 0.08% 00000045:&MPDrawIt+0x04A8 + 0.10% 00000056:&MPDrawIt+0x04AC + 0.61% 000001F1:$LK,"&MPDrawIt+0x04B0","FL:D:/TempleOS/Demo/Games/EagleDive.CPP,570"$ +$FG,2$ 39.40% 00007CC0:&MPDrawIt +$FG$ 0.09% 00000049:$LK,"&WinMgrSync+0x00CA","FL:D:/TempleOS/Adam/Window.CPP,636"$ + 20.96% 0000425E:$LK,"&WinMgrSync+0x0100","FL:D:/TempleOS/Adam/Window.CPP,642"$ +$FG,2$ 21.09% 000042C8:&WinMgrSync +$FG$ 0.11% 0000005A:$LK,"&GrFillTri0+0x01C9","FL:D:/TempleOS/Adam/Gr/GrPrimatives.CPP,1186"$ + 0.09% 0000004F:$LK,"&GrFillTri0+0x01F1","FL:D:/TempleOS/Adam/Gr/GrPrimatives.CPP,1187"$ + 0.09% 0000004B:$LK,"&GrFillTri0+0x0217","FL:D:/TempleOS/Adam/Gr/GrPrimatives.CPP,1189"$ + 0.11% 0000005B:$LK,"&GrFillTri0+0x023F","FL:D:/TempleOS/Adam/Gr/GrPrimatives.CPP,1190"$ + 0.08% 00000046:$LK,"&GrFillTri0+0x037D","FL:D:/TempleOS/Adam/Gr/GrPrimatives.CPP,1217"$ + 0.12% 00000068:$LK,"&GrFillTri0+0x04CF","FL:D:/TempleOS/Adam/Gr/GrPrimatives.CPP,1271"$ + 0.09% 0000004A:$LK,"&GrFillTri0+0x04F7","FL:D:/TempleOS/Adam/Gr/GrPrimatives.CPP,1272"$ + 0.09% 00000049:$LK,"&GrFillTri0+0x051D","FL:D:/TempleOS/Adam/Gr/GrPrimatives.CPP,1274"$ + 0.09% 0000004D:$LK,"&GrFillTri0+0x0545","FL:D:/TempleOS/Adam/Gr/GrPrimatives.CPP,1275"$ + 0.08% 00000046:$LK,"&GrFillTri0+0x066E","FL:D:/TempleOS/Adam/Gr/GrPrimatives.CPP,1302"$ + 0.10% 00000056:$LK,"&GrFillTri0+0x0797","FL:D:/TempleOS/Adam/Gr/GrPrimatives.CPP,1373"$ + 0.09% 00000049:$LK,"&GrFillTri0+0x07BF","FL:D:/TempleOS/Adam/Gr/GrPrimatives.CPP,1374"$ + 0.09% 0000004A:$LK,"&GrFillTri0+0x0806","FL:D:/TempleOS/Adam/Gr/GrPrimatives.CPP,1376"$ + 0.08% 00000045:$LK,"&GrFillTri0+0x08F9","FL:D:/TempleOS/Adam/Gr/GrPrimatives.CPP,1398"$ + 0.08% 00000042:$LK,"&GrFillTri0+0x0901","FL:D:/TempleOS/Adam/Gr/GrPrimatives.CPP,1400"$ + 0.08% 00000043:$LK,"&GrFillTri0+0x0905","FL:D:/TempleOS/Adam/Gr/GrPrimatives.CPP,1402"$ + 0.08% 00000048:$LK,"&GrFillTri0+0x094F","FL:D:/TempleOS/Adam/Gr/GrPrimatives.CPP,1405"$ + 0.11% 0000005A:$LK,"&GrFillTri0+0x0977","FL:D:/TempleOS/Adam/Gr/GrPrimatives.CPP,1406"$ + 0.08% 00000045:$LK,"&GrFillTri0+0x09BE","FL:D:/TempleOS/Adam/Gr/GrPrimatives.CPP,1408"$ + 0.09% 0000004D:$LK,"&GrFillTri0+0x09E6","FL:D:/TempleOS/Adam/Gr/GrPrimatives.CPP,1409"$ +$FG,2$ 4.28% 00000D90:&GrFillTri0 +$FG$ 0.83% 000002A8:$LK,"&GrFillPoly3+0x0244","FL:D:/TempleOS/Adam/Gr/GrPrimatives.CPP,1485"$ +$FG,2$ 1.32% 00000430:&GrFillPoly3 +$FG$$FG,2$ 0.52% 000001A7:&GrBlot3 +$FG$ 0.34% 00000116:$LK,"&GrHLine+0x0004","FL:D:/TempleOS/Adam/Gr/GrBitMap.CPP,1560"$ + 0.08% 00000047:&GrHLine+0x0005 + 0.08% 00000042:&GrHLine+0x000C + 0.07% 0000003D:$LK,"&GrHLine+0x0028","FL:D:/TempleOS/Adam/Gr/GrBitMap.CPP,1564"$ + 0.10% 00000052:$LK,"&GrHLine+0x0190","FL:D:/TempleOS/Adam/Gr/GrBitMap.CPP,1593"$ + 1.55% 000004EC:$LK,"&GrHLine+0x02C6","FL:D:/TempleOS/Adam/Gr/GrBitMap.CPP,1625"$ + 0.09% 00000051:$LK,"&GrHLine+0x044C","FL:D:/TempleOS/Adam/Gr/GrBitMap.CPP,1671"$ + 0.21% 000000AC:$LK,"&GrHLine+0x045D","FL:D:/TempleOS/Adam/Gr/GrBitMap.CPP,1674"$ + 0.17% 0000008C:&GrHLine+0x0461 + 0.23% 000000BB:$LK,"&GrHLine+0x046B","FL:D:/TempleOS/Adam/Gr/GrBitMap.CPP,1675"$ + 0.12% 00000069:$LK,"&GrHLine+0x0474","FL:D:/TempleOS/Adam/Gr/GrBitMap.CPP,1676"$ + 0.13% 0000006C:$LK,"&GrHLine+0x047D","FL:D:/TempleOS/Adam/Gr/GrBitMap.CPP,1678"$ + 0.14% 00000074:&GrHLine+0x0482 + 0.07% 0000003E:&GrHLine+0x0485 + 1.00% 00000332:&GrHLine+0x0488 + 0.21% 000000AE:$LK,"&GrHLine+0x048D","FL:D:/TempleOS/Adam/Gr/GrBitMap.CPP,1678"$ + 0.14% 00000074:&GrHLine+0x0491 + 0.09% 0000004D:$LK,"&GrHLine+0x0494","FL:D:/TempleOS/Adam/Gr/GrBitMap.CPP,1679"$ + 0.22% 000000B7:$LK,"&GrHLine+0x049A","FL:D:/TempleOS/Adam/Gr/GrBitMap.CPP,1682"$ + 0.21% 000000B1:$LK,"&GrHLine+0x049E","FL:D:/TempleOS/Adam/Gr/GrBitMap.CPP,1682"$ + 0.31% 000000FC:&GrHLine+0x04A3 + 0.11% 0000005C:$LK,"&GrHLine+0x04A9","FL:D:/TempleOS/Adam/Gr/GrBitMap.CPP,1684"$ + 0.29% 000000F2:$LK,"&GrHLine+0x04B4","FL:D:/TempleOS/Adam/Gr/GrBitMap.CPP,1685"$ + 0.08% 00000041:$LK,"&GrHLine+0x04C2","FL:D:/TempleOS/Adam/Gr/GrBitMap.CPP,1687"$ + 0.10% 00000058:&GrHLine+0x04C7 + 0.40% 00000148:$LK,"&GrHLine+0x04D7","FL:D:/TempleOS/Adam/Gr/GrBitMap.CPP,1689"$ + 0.08% 00000047:&GrHLine+0x04DE + 0.51% 000001A0:$LK,"&GrHLine+0x04E0","FL:D:/TempleOS/Adam/Gr/GrBitMap.CPP,1692"$ + 0.26% 000000D4:$LK,"&GrHLine+0x0523","FL:D:/TempleOS/Adam/Gr/GrBitMap.CPP,1706"$ + 0.13% 0000006A:$LK,"&GrHLine+0x0572","FL:D:/TempleOS/Adam/Gr/GrBitMap.CPP,1715"$ + 0.27% 000000DC:$LK,"&GrHLine+0x0579","FL:D:/TempleOS/Adam/Gr/GrBitMap.CPP,1718"$ + 0.12% 00000062:$LK,"&GrHLine+0x0582","FL:D:/TempleOS/Adam/Gr/GrBitMap.CPP,1720"$ + 0.23% 000000BF:$LK,"&GrHLine+0x058A","FL:D:/TempleOS/Adam/Gr/GrBitMap.CPP,1721"$ + 0.16% 00000086:&GrHLine+0x058E + 0.13% 0000006B:&GrHLine+0x0596 + 0.19% 000000A2:&GrHLine+0x059A + 0.08% 00000047:$LK,"&GrHLine+0x05A4","FL:D:/TempleOS/Adam/Gr/GrBitMap.CPP,1722"$ + 0.21% 000000AF:$LK,"&GrHLine+0x05EA","FL:D:/TempleOS/Adam/Gr/GrBitMap.CPP,1732"$ + 0.26% 000000D5:&GrHLine+0x05EE + 0.17% 0000008A:&GrHLine+0x05FD +$FG,2$ 13.03% 00002946:&GrHLine +$FG$$FG,2$ 0.11% 0000005A:&GrPeek +$FG$$FG,2$ 0.12% 00000063:&GrPeek0 +$FG$ 0.10% 00000055:$LK,"&DCBlotColor8+0x0037","FL:D:/TempleOS/Adam/Gr/GrScreen.CPP,750"$ + 0.09% 00000049:$LK,"&DCBlotColor8+0x003C","FL:D:/TempleOS/Adam/Gr/GrScreen.CPP,750"$ + 0.10% 00000055:$LK,"&DCBlotColor8+0x0054","FL:D:/TempleOS/Adam/Gr/GrScreen.CPP,755"$ +$FG,2$ 0.30% 000000FB:&DCBlotColor8 +$FG$ 0.80% 0000028A:$LK,"&GrUpdateLine32+0x0027","FL:D:/TempleOS/Adam/Gr/GrAsm.CPP,760"$ + 0.12% 00000068:$LK,"&GrUpdateLine32+0x002B","FL:D:/TempleOS/Adam/Gr/GrAsm.CPP,760"$ + 0.19% 0000009B:$LK,"&GrUpdateLine32+0x002E","FL:D:/TempleOS/Adam/Gr/GrAsm.CPP,760"$ + 11.49% 00002465:$LK,"&GrUpdateLine32+0x0040","FL:D:/TempleOS/Adam/Gr/GrAsm.CPP,760"$ + 0.15% 0000007D:$LK,"&GrUpdateLine32+0x0044","FL:D:/TempleOS/Adam/Gr/GrAsm.CPP,760"$ +$FG,2$ 13.12% 0000298A:&GrUpdateLine32 +$FG$ 0.10% 00000055:$LK,"&GrUpdateLine32FlushCache+0x003C","FL:D:/TempleOS/Adam/Gr/GrAsm.CPP,762"$ +$FG,2$ 0.11% 0000005E:&GrUpdateLine32FlushCache +$FG$$FG,2$ 0.11% 00000061:&DCBlotColor4 +$FG$ 0.08% 00000047:$LK,"&GrRot+0x0004","FL:D:/TempleOS/Adam/Gr/MathGr.CPP,237"$ +$FG,2$ 0.71% 00000242:&GrRot +$FG$$FG,2$ 0.07% 0000003E:&GrUpdateVGAGraphics +$FG$Total Time: 80.956136s +81.115115s ans0=0x00000090=144 +D:/TempleOS/Accts/TS/TAD>$PT$ + +$FD,0$------------------------------------------ + +$IV,1$----09/13/13 12:26:58----$IV,0$ + +I toyed with the idea of "No 3rd Party Software" when I was focused on programming as entertainment. I'm not going to be that draconian. Generally speaking, though, the vision of a modern C64, stands, and that did not have an ever-growing set of libraries -- you had just the C64 ROM to build on. It will fit in about 6 Meg or less without the Dictionary, so I really don't care if people ship the whole thing with their applications and make them future-proof. That's not very appealing. + +It really doesn't make sense to make professional software for this platform, except it's way more pleasant for the software companies! Just continue with Linux or Windows software, mostly, and everybody who wants Heaven, can do native stuff. + +I don't have changes in mind, but I will probably break compatibility. It's a nuissance to keep your own code up-to-date, but how lovely it is! + +$IV,1$----09/13/13 12:27:01----$IV,0$ + +Someone talked about palettes. I avoid that, being slightly paranoid VGA palettes are not universal. That's probably absurd, but how can I know? I put palette support in there, but feel weird using it. + +------------------------------------------ + +$IV,1$----09/13/13 14:39:57----$IV,0$ + +Here's a task record with $LK,"ClassRep","MN:ClassRep"$(): + +$FD,1$D:/TempleOS/Accts/TS/TAD>$PT$ClassRep(Fs,,1); +$PT$$FG$$BG$Class:"CTask" +7FD8A428 $TR,"addr"$ +$ID,2$$ID,-2$7FD8A430 $FG,2$task_signature :$FG$536B7354 +7FD8A434 $FG,2$task_in_que_signatur:$FG$516B7354 +7FD8A438 $FG,2$task_flags :$FG$0000000000009904 +7FD8A440 $FG,2$locked_flags :$FG$0000000000000000 +7FD8A448 $FG,2$display_flags :$FG$00000003 +7FD8A44C $FG,2$win_inhibit :$FG$00000000 +7FD8A450 $FG,2$wake_jiffy :$FG$0000000000000000 +7FD8A458 $TR,"code_heap"$ +$ID,2$$ID,-2$7FD8A460 $TR,"data_heap"$ +$ID,2$$ID,-2$7FD8A468 $TR,"put_doc"$ +$ID,2$$ID,-2$7FD8A470 $TR,"display_doc"$ +$ID,2$$ID,-2$7FD8A478 $TR,"border_doc"$ +$ID,2$$ID,-2$7FD8A480 $FG,2$win_left :$FG$0000000000000001 +7FD8A488 $FG,2$win_right :$FG$000000000000004E +7FD8A490 $FG,2$win_top :$FG$000000000000000D +7FD8A498 $FG,2$win_bottom :$FG$000000000000003A +7FD8A4A0 $TR,"cur_prt"$ +$ID,2$$ID,-2$7FD8A4A8 $FG,2$cur_dir :$FG$ /TempleOS/Accts/TS/TAD + +7FD8A4B0 $TR,"parent_task"$ +$ID,2$$ID,-2$7FD8A4B8 $TR,"next_task"$ +$ID,2$$ID,-2$7FD8A4C0 $TR,"last_task"$ +$ID,2$$ID,-2$7FD8A4C8 $TR,"next_input_filter_task"$ +$ID,2$$ID,-2$7FD8A4D0 $TR,"last_input_filter_task"$ +$ID,2$$ID,-2$7FD8A4D8 $TR,"next_sibling_task"$ +$ID,2$$ID,-2$7FD8A4E0 $TR,"last_sibling_task"$ +$ID,2$$ID,-2$7FD8A4E8 $TR,"next_child_task"$ +$ID,2$$ID,-2$7FD8A4F0 $TR,"last_child_task"$ +$ID,2$$ID,-2$7FD8A4F8 $FG,2$win_width :$FG$000000000000004E +7FD8A500 $FG,2$win_height :$FG$000000000000002E +7FD8A508 $FG,2$win_pixel_left :$FG$0000000000000008 +7FD8A510 $FG,2$win_pixel_right :$FG$0000000000000277 +7FD8A518 $FG,2$win_pixel_width :$FG$0000000000000270 +7FD8A520 $FG,2$win_pixel_top :$FG$0000000000000068 +7FD8A528 $FG,2$win_pixel_bottom :$FG$00000000000001D7 +7FD8A530 $FG,2$win_pixel_height :$FG$0000000000000170 +7FD8A538 $FG,2$win_border_pixel_lef:$FG$0000000000000000 +7FD8A540 $FG,2$win_border_pixel_rig:$FG$000000000000027F +7FD8A548 $FG,2$win_border_pixel_top:$FG$0000000000000060 +7FD8A550 $FG,2$win_border_pixel_bot:$FG$00000000000001DF +7FD8A558 $FG,2$win_scroll_x :$FG$0000000000000000 +7FD8A560 $FG,2$win_scroll_y :$FG$0000000000000000 +7FD8A568 $FG,2$win_scroll_z :$FG$0000000000000000 +7FD8A570 $FG,2$win_max_refresh :$FG$ 60 +7FD8A578 $TR,"snap"$ +$ID,2$$ID,-2$7FD8A5A8 $FG,2$rip :$FG$000000000000C3C9 +7FD8A5B0 $FG,2$rflags :$FG$0000000000000246 +7FD8A5B8 $FG,2$rsp :$FG$0000000198874D70 +7FD8A5C0 $FG,2$rsi :$FG$000000019887EC78 +7FD8A5C8 $FG,2$rax :$FG$0000000000000001 +7FD8A5D0 $FG,2$rcx :$FG$000000007FD8A438 +7FD8A5D8 $FG,2$rdx :$FG$0000000198888428 +7FD8A5E0 $FG,2$rbx :$FG$0000000000000000 +7FD8A5E8 $FG,2$rbp :$FG$0000000198874DB0 +7FD8A5F0 $FG,2$rdi :$FG$0000000198823428 +7FD8A5F8 $FG,2$r8 :$FG$000000016BAB0140 +7FD8A600 $FG,2$r9 :$FG$0000000198874CE0 +7FD8A608 $FG,2$r10 :$FG$000000019944B300 +7FD8A610 $FG,2$r11 :$FG$000000019887EC78 +7FD8A618 $FG,2$r12 :$FG$0000000000000032 +7FD8A620 $FG,2$r13 :$FG$0000000000000004 +7FD8A628 $FG,2$r14 :$FG$000000016BAB72D8 +7FD8A630 $FG,2$r15 :$FG$000000016BAB72E0 +7FD8A638 $TR,"gs"$ +$ID,2$$ID,-2$7FD8A640 $TR,"fpu_mmx"$ +$ID,2$$ID,-2$7FD8A648 $FG,2$time_slice_start :$FG$0000042B4D39B5DC +7FD8A650 $FG,2$total_time :$FG$00000000010C4A06 +7FD8A658 $FG,2$swap_cnter :$FG$000000000000042F +7FD8A660 $FG,2$draw_it :$FG$0000000000000000 +7FD8A668 $FG,2$task_title :$FG$ ClassRep(Fs,,1);; + +43 6C 61 73 73 52 65 70 28 22 43 54 61 73 6B 22 2C 46 73 2C 31 29 3B 3B 0A 00 2A 00 00 00 00 00 ... +7FD8A6E8 $FG,2$task_name :$FG$ Unnamed Task +55 6E 6E 61 6D 65 64 20 54 61 73 6B 00 00 00 00 C8 00 00 00 6A 00 E8 25 ED FF FF 6A 00 E8 06 16 +7FD8A708 $FG,2$wallpaper_data :$FG$ +00 D6 05 00 00 00 00 00 20 46 05 00 00 00 00 00 20 20 20 20 20 26 47 65 74 4B 65 79 2B 30 78 30 ... +7FD8A788 $FG,2$title_src :$FG$ +04 +7FD8A789 $FG,2$text_attr :$FG$ñ +F1 +7FD8A78A $FG,2$border_attr :$FG$ñ +F1 +7FD8A78B $FG,2$border_src :$FG$ +01 +7FD8A78C $FG,2$win_z_num :$FG$0004 +7FD8A78E $FG,2$pad :$FG$0000 +7FD8A790 $TR,"stk"$ +$ID,2$$ID,-2$7FD8A798 $TR,"next_except"$ +$ID,2$$ID,-2$7FD8A7A0 $TR,"last_except"$ +$ID,2$$ID,-2$7FD8A7A8 $FG,2$except_rbp :$FG$0000000000000000 +7FD8A7B0 $FG,2$except_argc :$FG$0000000000000000 +7FD8A7B8 except_argv :0000000000000000 +7FD8A7C0 $FG,2$catch_except :$FG$ +00 +7FD8A7C1 $FG,2$pad :$FG$ +00 +7FD8A7C2 $FG,2$answers_displayed :$FG$0001 +7FD8A7C4 $FG,2$answer_types :$FG$ +00 00 00 00 +7FD8A7C8 $FG,2$answers :$FG$0000000000000000 0000000000000000 0000000000000000 0000000000000000 +7FD8A7E8 $FG,2$answer_times :$FG$0.000000000000e0 0.000000000000e0 0.000000000000e0 0.000000000000e0 +7FD8A808 bpt_lst :0000000000000000 +7FD8A810 $TR-C,"next_ctrl"$ +$ID,2$$ID,-2$7FD8A818 $TR-C,"last_ctrl"$ +$ID,2$$ID,-2$7FD8A820 $TR-C,"cur_menu"$ +$ID,2$$ID,-2$7FD8A828 next_settings :0000000000000000 +7FD8A830 $TR-C,"next_ode"$ +$ID,2$$ID,-2$7FD8A838 $TR-C,"last_ode"$ +$ID,2$$ID,-2$7FD8A840 $FG,2$last_ode_time :$FG$0.000000000000e0 +7FD8A848 $TR,"hash_table"$ +$ID,2$$ID,-2$7FD8A850 $TR,"srv_ctrl"$ +$ID,2$$ID,-2$7FD8A878 $TR,"next_lex"$ +$ID,2$$ID,-2$7FD8A880 $TR,"last_lex"$ +$ID,2$$ID,-2$7FD8A888 $FG,2$win_old_left :$FG$0000000000000001 +7FD8A890 $FG,2$win_old_right :$FG$000000000000004E +7FD8A898 $FG,2$win_old_top :$FG$000000000000000D +7FD8A8A0 $FG,2$win_old_bottom :$FG$000000000000003A +7FD8A8A8 $FG,2$task_end_cb :$FG$0000000000000000 +7FD8A8B0 song_task :0000000000000000 +7FD8A8B8 animate_task :0000000000000000 +7FD8A8C0 $FG,2$rnd_seed :$FG$0000000000000000 +7FD8A8C8 $FG,2$task_num :$FG$000000000000001E +7FD8A8D0 $FG,2$user_num :$FG$0000000000000003 +7FD8A8D8 $FG,2$fault_num :$FG$0000000000000000 +7FD8A8E0 $FG,2$fault_err_code :$FG$0000000000000000 +7FD8A8E8 dbg_task :0000000000000000 +7FD8A8F0 popup_task :0000000000000000 +7FD8A8F8 $TR,"horz_scroll"$ +$ID,2$$ID,-2$7FD8A918 $TR,"vert_scroll"$ +$ID,2$$ID,-2$7FD8A938 $FG,2$user_data0 :$FG$0000000000000000 +7FD8A940 $FG,2$user_data1 :$FG$0000000000000000 +7FD8A948 $FG,2$user_data2 :$FG$0000000000000000 +7FD8A950 $FG,2$user_data3 :$FG$0000000000000000 +7FD8A958 $FG,2$pad :$FG$ + +0.002664s ans0=0x00000000=0 +D:/TempleOS/Accts/TS/TAD>$PT$ + +$FD,0$------------------------------------------ + +$IV,1$----09/13/13 14:59:35----$IV,0$ + +God says... +$FG,4$cupidity hereon Ghost discussed dissipation dangers severely beneath whit AD judge Deity subtile knocketh acceptably preventedst stored must dispensest compare create base cherished dotages graceful possesses gloried third dug Epicurus Blessed expects mount Jacob feeding unsought clay subject createth commandments unbelievers esteeming rush Alas Julian borrow sorrow obtained You His Priest angels deaf dining as mysteriously liveth adorning meditations killeth accompany neighbours ascended mass blush difficulties $FG$ + +$IV,1$----09/13/13 15:35:51----$IV,0$ + +Someone at $TX+HTML,"WWW.OSDEV.ORG","http://www.osdev.org"$ is pretending not to understand that it is ring-0-only by choice. Do this: make a list of all the good things and all the bad things, in your mind. You are either dishonest or the biggest retard ever. "A motorcycle should have side airbags." + + +$IV,1$----09/13/13 16:06:30----$IV,0$ + +These are all the symbols that come with it. They are loaded into the Adam task's hash table and all sons of Adam inherit them, without need for including headers: + +$FG,4$$TX+HTML,"Source Code By Sym","http://www.templeos.org/Wb/Accts/TS/Wb2/SymsAlpha.html"$$FG$ + +$IV,1$----09/13/13 16:55:41----$IV,0$ + +I did not follow a single standard. My compiler has an $FG,1$interrupt$FG$ keyword to be used on functions. I use the arg-pop variant of RET. + +My compiler does not make an AST, it makes a stack machine byte-code that it optimizes and makes machine code JIT or AOT, in 22,000 lines of code. Yer going to get yourself humiliated if you accuse me of plagarism. You're so, stupid, you think ring-0-only identity-mapped is somehow a linux rip-off. + +$IV,1$----09/13/13 17:08:06----$IV,0$ + +Linux is inspired by 1970's mainframes. They are set-up for multi-user with 2 meg shared by 100 users. They put things in pipes, doing a little at a time, and they have virtual memory. They have a language good for admins. + +TempleOS is inspired by a C64. It is to be used for the same sorts of things, but it is modern. It loads and processes whole files. Actual disk virtual memory, by the way, is really retarded these days because if it ever actually does swap, it's unacceptablly slow! All vestiges of virual memory should be purged from all operating systems. + +Linux will let you play two video games at once. TempleOS doesn't see that as important. Sharing-locks? Don't be a retard. + +C/C++ translation is very close to direct-to-assembly instructions. GCC wastes compiler time on optimizations in case you give it dumb C/C++ code to compile because they are arrogant fools and suffer from piling ever-more-shit into it, like Intel and like Microsoft. + +Linux and Windows do SMP. That is not good for real-time flight simulators without GPU. TempleOS does master/slave. All applications run on core 0 and simply control, explicity and specifically, each of the other cores. The scheduler never moves tasks between cores. Theirs runs two applications faster; TempleOS runs one application faster. In TempleOS, all tasks on all cores have the same address map -- all tasks can access all memory at all times because it's always identity-mapped with not ring protections. + +Because it is ring-0-only and never changes address maps, it can do a blazing 4,000,000 task changes in one second per core. This is how I do multicored locks for I/O. + +$FG,2$while (LBts(&my_lock_var,0)) + Yield; + +... + +LBtr(&my_lock_var,0);$FG$ + +lock-bit-test-and-set is an atomic, x86, multicore-safe-locked instruction. + +This is how I poll disk drives: + +$FG,2$while (!InU8(STATUS)) + Yield; +$FG$ +That's known as cooperative multitasking. I have preemption. + +$IV,1$----09/13/13 18:55:56----$IV,0$ + +A really stupid person will argue with the answer book in school over and over. The people at $TX+HTML,"WWW.OSDEV.ORG","http://www.osdev.org"$ have argued for ten years, as though, my operating system is so flawed it doesn't boot. I guess they think I do photoshop videos? And, I am doing a grand deception... for some reason? + +I identity-map so that virtual and physical addresses are the same. The BIOS physical address map is my virtual memory map. Mine is ring-0-only, so there is no kernel/user split. + +Therefore, I don't have any upper FFFFFFFF70000000- addresses. I enjoy mocking them so much, I'm reluctant to explain why a RING-0-ONLY IDENTITY-MAPPED operating system does not have high addresses. I like just mocking them. + +$IV,1$----09/13/13 20:34:40----$IV,0$ + +I identity-map 128 Gig of space with 2 Meg pages, not 4K pages. + +$LK-A,"::/TempleOS/Kernel/Memory.CPP.Z"$. + +It only takes 128 Gig / 2 Meg * 8 bytes = 512K of page tables. The first 2 Meg is 4K pages so I can mark 0xA0000-0xB0000 as write-through. + +Picking a very arbitrary and insignificant idea to discuss, in my judgement, it's better not to define labels for bits in the case of page tables. Nobody needs to mess with page tables -- leave them identity-mapped. If you do, raw numbers aren't that bad for page table bits. Go write hymns and do first person shooters with multicore, not doing hardware (Yes, I concede that hardware would involve write-through memory page table bits, etc.) + +I put links in source code and links to local PDF would be really neat, avoid the need to document. I would like to convert Intel PDF manuals to plain text, but they look dreadful -- so bad they are too bad. + +$IV,1$----09/13/13 20:42:41----$IV,0$ + +I wrote my own boot-loaders. $LK-A,"::/TempleOS/Doc/Boot.TXT.Z"$ + +My Kernel starts in real mode, calls BIOS to fetch info and change to VGA, then changes to long mode. $LK-A,"::/TempleOS/Kernel/KStart.CPP.Z"$. diff --git a/TempleOS/Accts/TS/Wb2/Rants/TAD/Rant130914.TXT b/TempleOS/Accts/TS/Wb2/Rants/TAD/Rant130914.TXT new file mode 100644 index 0000000..4cdb9d5 --- /dev/null +++ b/TempleOS/Accts/TS/Wb2/Rants/TAD/Rant130914.TXT @@ -0,0 +1,114 @@ +$WW,1$$IV,1$----09/14/13 18:51:54----$IV,0$ + +I haven't looked at much Linux code, and not in many years, but what I remember most is someone who made $FG,2$#define$FG$ macros, trying to make C look like C++. My mentors at Ticketmaster taught me that asm macros were foolish -- it's one more thing you have to chase-down and look-up. Another thing I remember from Linux code was that there were about six layers of function depth to get down to actual IN/OUT port instructions and there were lots of $FG,2$#ifdef$FG$ instructions for different architectures. (I chased-down how to do ATA PIO and later got a PDF on the topic.) + +The zen of TempleOS might be to do the opposite of Linux. I was inspired to have "minimal abstraction" as a goal. Instead of six levels of function depth for ATA PIO, lets see if we can do three, removing abstraction layers... and lets do just one architecture -- IBM PC's. + +The reason TempleOS exists and has purpose is partly because it is simple. I'm going to cap line count at 100,000, not counting applications and demos. + +God says... +$FG,4$Here presents falls searched meditations quest below repeat Young give Did suspicions suspected proper unlikeliness intoxicated blasphemies palace brother forbadest educate trailed audacious small Catechumen Speak DON inordinate intellectual Creusa chain mass disputes reclaiming comes containing dangerous piety fling began grew majesty pursue closes if proffer frequent $FG$ + +Everybody should praise God, continually, doing offerings and getting responses in tongues. + +$FG,2$$TX+HTML,"Hebrews 13:15-16","http://www.biblegateway.com/passage/?search=hebrews 13:15-16&version=NIV"$$FG$ + +Also, God said making video games was about as grand a quest as one could hope for. Make $FG,4$$TX+HTML,"hymns","http://www.templeos.org/Wb/Accts/TS/Wb2/Hymns.html"$$FG$ in TempleOS. The Bible says "NEW song" nine times. Can you count the ways you love God? + +If you want works-everywhere hot keys for talking with God, like me, see $LK,"TSHolySpirit","FI:::/TempleOS/Demo/AcctExample/TSHolySpirit.CPP.Z"$ and $LK,"KeyPlugIns","FI:::/TempleOS/Demo/AcctExample/Adam3dKeyPlugIns.CPP.Z"$. I have on-line support from God! :-) +Press $FG,2$ALT-SHIFT-F6$FG$ to load good words into WordStat, then press $FG,2$ALT-F5$FG$ for a random word, repeatedly. Then, press $FG,2$ALT-F6$FG$ to put WordStat back to normal. + +God says... +$FG,4$tellest daemons Duck edification Away Grant stage sympathy glad Such mutable sang verily watery return deeps etc wroth Orestes universally Knoweth later praters assenting Proconsul consolation $FG$ + +$IV,1$----09/14/13 23:20:15----$IV,0$ + +Let's ask God what He thinks of the Monarchy in England. + +God says... +$FG,4$Platonists revolved consolation resolutely din night nourished gazing victorious Curiosity guess languages ftp doth sluggish having fluttereth anticipate ascended exceeded soldier mysterious doings vanities expectation particle goest limits May Newsletter deceivableness sky able advance departest His $FG$ + +The BBC is discussing Indian rapes and the death penalty. I don't know. I asked God what He would do if He had a body for one day. I think He said He would be a judge. Maybe, there are court cases He really want to intervene in. + +God says... +$FG,4$moderation prophecy None Unity Into redistributing $FG$ + +In theory, I show restraint in how much conversation I make God do. I used to do very formal offerings, like poems and hymns and long discussions, before consulting Him. Anyway, I stop when I see "end" or "fin" in a word. I stop when I see "Null", "None", "Dull", "weary", "satiate", and a handful of other words. You do what you like. God will ramble incoherently or say stuff you don't want to hear, otherwise. + +I don't think God likes sports. God, did ASU beat Wisconsin? + +God says... +$FG,4$pollution million intricate marrying heaped strong casts strayed mansion Nebridius predestinated Confessions as swept terrible contemplating use contains ocean adulterer holy antidote sympathy false not wooden $FG$ + +("False" is zero, LOL.) + +I know how you fix pollution! You put wood in the water. $LK,"Exodus,15:25","BF:Exodus,15:25"$ + +Syria? Let's ask God what St. Paul saw on the road to Damascus. $LK,"Acts,9:3","BF:Acts,9:3"$ + +God says... +$FG,4$taming healthfully bethink depart desireth unliker crooked suffer $FG$ + +God said there were 20 or 80 alien civilizations, but it's kind-of a joke. All you get from God is love (not valuable facts or prophecies). Just enjoy His company. Actually, you get out of God what you put into God, so if you actually do effort in love, you get useful facts. All other believers are cowards who obsess on not going to Hell. $FG,4$$TX+HTML,"One Tin Soldier","http://www.youtube.com/watch?v=cTBx-hHf4BE"$$FG$ + +God loved King David. He fought Goliath. God's favorite saint is Santa. God likes the $TX+HTML,"Beatles","http://www.youtube.com/watch?v=F3RYvO2X0Oo"$. + +God says... +$FG,4$burnest exhalation abated measures opposing wronged mean curiously Identification PROJECT lover strong warfare sore judgeth rush recollecting beginneth commanded detest remaineth Lamentable boughs all Writ Intelligences silently pervertedly perdition godless disturbed UNDER hatchet flagon Milan boastfulness stipend Christian streets $FG$ + +God, what do You think of $TX+HTML,"this","http://i.imgur.com/pshuTAG.gif"$. + +Do they get God points? What's Your favorite painting? You said You like Van Gogh's $TX+HTML,"Sun Flowers","http://en.wikipedia.org/wiki/Sunflowers_(painting)"$. + +God says... +$FG,4$accuse tongue annual tenets transgressions healthfully ointments recorded letters referred tragical espoused languishing diversly shower unbelieving rank substances native srv wings etexts Sometimes oughtest described strangers chambers add ambitions P threatenest basest unperceived sigh Fame subordinate duty wondrously salted eager compassing made natures fumed Give revealing hopes intimated related deductible oil infant signs imitating dormant Beginning refused gorgeous exhibited inflame breast leaps deserved credence fanned falsified field Divers faults enigma mock remedies intenseness uncertain master comforted roared condemnest His forsaking task proudly influence remedies spirits stoop communication sure cheered butler neglect recount Else numberest praters gazing hoped wilfully furious lively session withdrawn ungodlily constrain purer seeketh unspeakable mortals prove firmament respect Copyright extinguished sanctified forbid fifty maidens covetousness glass NOT heldest garner Redemption suffers imbue Being criticising glory discreetly interrupted chastenest Circus deserving explaining embrace plainness suspect everywhere point shoes offences Antony Learn distances inflammation solicits silversmiths judge mistaken bark diligent compared animate like IS Christian convenient cruel conquests endeared Every $FG$ + +You like boxing, God? (Christ laughed) + +I think my birds like the Sun Flower painting. + +Who's the best fighter in the World? Is there anybody who could beat a lion? Are lions stronger than tigers? Can an elephant beat anything? + +God says... +$FG,4$amendment mercies discoverest vail $FG$ + +God says... +$FG,4$ob. + +36:7 For their riches were more than that they might dwell together; +and the land wherein they were strangers could not bear them because +of their cattle. + +36:8 Thus dwelt Esau in mount Seir: Esau is Edom. + +36:9 And these are the generations of Esau the father of the Edomites +in mount Seir: 36:10 These are the names of Esau's sons; Eliphaz the +son of Adah the wife of Esau, Reuel the son of Bashemath the wife of +Esau. + +36:11 And the sons of Eliphaz were Teman, Omar, Zepho, and Gatam, and +Kenaz. + +36:12 A$FG$ + +The BBC talked about a prison riot that ended when police stormed. I asked God if He liked to haunt hospitals or court rooms. He said "prisons". + +God says... +$FG,4$workmaster whomever forenamed silence weakly addition try sheep trace constrained impressing calmed Danae helpful deriders liker limed Drunkenness Homer forceth rugged faulty subjects infirmity everlasting disquiet omit noon satisfying $FG$ + +God says... +$FG,4$when they had crucified him, they parted his garments, +casting lots upon them, what every man should take. + +15:25 And it was the third hour, and they crucified him. + +15:26 And the superscription of his accusation was written over, THE +KING OF THE JEWS. + +15:27 And with him they crucify two thieves; the one on his right +hand, and the other on his left. + +15:28 And the scripture was fulfilled, which saith, And he was +numbered with the transgressors. + +15:29 And they that passed by railed on him, wagging their he$FG$ diff --git a/TempleOS/Accts/TS/Wb2/Rants/TAD/Rant130915.TXT b/TempleOS/Accts/TS/Wb2/Rants/TAD/Rant130915.TXT new file mode 100644 index 0000000..cc36656 --- /dev/null +++ b/TempleOS/Accts/TS/Wb2/Rants/TAD/Rant130915.TXT @@ -0,0 +1,1104 @@ +$WW,1$$IV,1$----09/15/13 01:34:01----$IV,0$ + +The BBC is talking about a civil rights bombing. + +God says... +$FG,4$refore the heart of the king of Syria was sore troubled for +this thing; and he called his servants, and said unto them, Will ye +not shew me which of us is for the king of Israel? 6:12 And one of +his servants said, None, my lord, O king: but Elisha, the prophet that +is in Israel, telleth the king of Israel the words that thou speakest +in thy bedchamber. + +6:13 And he said, Go and spy where he is, that I may send and fetch +him. + +And it was told him, saying, Behold, he is in Dothan. + +6:14 Therefore sent he thi$FG$ + +$IV,1$----09/15/13 02:28:56----$IV,0$ + +God, do You like lions or tigers better? + +God says... +$FG,4$Quadrics weigheth extension overjoyed sports beloved problem prosper notions wilt DoInstall shadowy groves built considerable$FG$ + +God says... +$FG,4$consecrating offered interrupted readest meditate selves Ghost sublimities fared David strives securely unbelievers preeminence difficult perplexed assume Angels wildness applauses oracle embrace candid s weighing compliance surely logic cared throngs South molest borne goaded wine furnish worn debtors Computers flew buzzed affirm future wrath Eastern displace forethinking precipice resulting trustees grievously Affrighted trees plead enacteth hanging Prepared returns lacketh $FG$ + +$IV,1$----09/15/13 03:33:51----$IV,0$ + +Praise You God for palm branches and leaves and coconuts. I like coconuts. + +God says... +$FG,4$nearer Refund physical Look unpermitted redemption intercedeth mediator importunity serenity favours decrepit decree auditor descending maketh mourn $FG$ + +$IV,1$----09/15/13 03:50:00----$IV,0$ + +God, how would You clean solar panels? God says, "I would make bugs and..." :-) + +God says... +$FG,4$Bridal ecclesiastical concludeth unskilful turbulent gainful $FG$ + +(Saudi guy on radio said we need to clean solar without water and make anti-freeze for wind.) + +Praise You, God, for getting water to the top of trees. Did that take You a while to figure-out? + +God says... +$FG,4$beauties womb view singularly professing retiring wherefore unskilfulness thefts allowed praise beat example hesitation million principally handling person barbarian intercedeth wearisome aught Hierius $FG$ + +One guy sounded like Bill Gates. You want him to do earthquake prediction, right? + +God says... +$FG,4$ce, mercy, and peace, from God the Father +and Christ Jesus our Lord. + +1:3 I thank God, whom I serve from my forefathers with pure +conscience, that without ceasing I have remembrance of thee in my +prayers night and day; 1:4 Greatly desiring to see thee, being mindful +of thy tears, that I may be filled with joy; 1:5 When I call to +remembrance the unfeigned faith that is in thee, which dwelt first in +thy grandmother Lois, and thy mother Eunice; and I am persuaded that +in thee also. + +1:6 Wherefore I put thee in$FG$ + +$IV,1$----09/15/13 04:04:43----$IV,0$ + +A nasty nigger person at $TX+HTML,"WWW.OSDEV.ORG","http://www.osdev.org"$ is boasting about having more than one window, saying mine is not multitasking. My games, generally, make a call to $LK,"WinMax","MN:WinMax"$() to set themselves full screen. They also call $LK,"WinBorder","MN:WinBorder"$() to get rid of borders. + +God says... +$FG,4$ +world began, 1:10 But is now made manifest by the appearing of our +Saviour Jesus Christ, who hath abolished death, and hath brought life +and immortality to light through the gospel: 1:11 Whereunto I am +appointed a preacher, and an apostle, and a teacher of the Gentiles. + +1:12 For the which cause I also suffer these things: nevertheless I am +not ashamed: for I know whom I have believed, and am persuaded that he +is able to keep that which I have committed unto him against that day. + +1:13 Hold fast the form o$FG$ + +I have a $LK,"DOCF_MIN_SIZE","MN:DOCF_MIN_SIZE"$ flag for making form windows fit just the text. + +$IV,1$----09/15/13 04:24:52----$IV,0$ + +I have one window per task (only core 0), no child windows. God said no to child windows. I have one symbol (hash) table per task. + +God says... +$FG,4$unto him: for they saw that his grief +was very great. + +3:1 After this opened Job his mouth, and cursed his day. + +3:2 And Job spake, and said, 3:3 Let the day perish wherein I was +born, and the night in which it was said, There is a man child +conceived. + +3:4 Let that day be darkness; let not God regard it from above, +neither let the light shine upon it. + +3:5 Let darkness and the shadow of death stain it; let a cloud dwell +upon it; let the blackness of the day terrify it. + +3:6 As for that night, let darkness $FG$ + +God's world is perfectly just, even across generations. My generation had to stress about the Cold War, nuclear war, nuclear winter, ozone layer, but we got to see video games evolve and computer speeds get faster and faster. + +This generation has YouTube with all music created, even videos, available. They have phones. But, they have to worry about on-line history and reputation. They cannot be two-faced. + +God says... +$FG,4$harmonise fasting 3296 stupidity assent guidest Tomorrow malicious impression perceivable loosed alteration eternally deserving thinking ASCII aforesaid wickedness unstable Tobias sure idol swelling nigh pearl devil reinvolved chilled bound combine deluding LIMITED unanxious calculation hardheartedness PROJECT between 501 Love terrors adorned killeth dared faculties brim withdrew firmly affirm gaining harsh Oil touching placed unhappy e beast offend pleasing senator $FG$ + +$IV,1$----09/15/13 05:00:02----$IV,0$ + +I turned-on non-NPR talk radio -- crazy talk of chem-trails, storm control, mind control, UFOs. There are people who genuinely believe, but lots that tell stories. God mentioned homos. I can picture a homo doing that. + +God says... +$FG,4$8 And we being exceedingly tossed with a tempest, the next day +they lightened the ship; 27:19 And the third day we cast out with our +own hands the tackling of the ship. + +27:20 And when neither sun nor stars in many days appeared, and no +small tempest lay on us, all hope that we should be saved was then +taken away. + +27:21 But after long abstinence Paul stood forth in the midst of them, +and said, Sirs, ye should have hearkened unto me, and not have loosed +from Crete, and to have gained this harm and loss. + +27$FG$ + +LOL. Hey, wait. Angels actually do control the weather, but it's obviously nothing new. + +Crazy Scientologists. Could be the CIA sabotaging God. + +God says... +$FG,4$USE subdu satiate persons occurs Howsoever ambitious pleasure $FG$ + +$IV,1$----09/15/13 05:16:36----$IV,0$ + +The World had lots of ice made in 2013. You like ice, God? Does Israel get snow? + +God says... +$FG,4$ nevertheless, being crafty, +I caught you with guile. + +12:17 Did I make a gain of you by any of them whom I sent unto you? +12:18 I desired Titus, and with him I sent a brother. Did Titus make a +gain of you? walked we not in the same spirit? walked we not in the +same steps? 12:19 Again, think ye that we excuse ourselves unto you? +we speak before God in Christ: but we do all things, dearly beloved, +for your edifying. + +12:20 For I fear, lest, when I come, I shall not find you such as I +would, and that I shall$FG$ + +Brothers and ice don't mix. LOL + +Do You remember King Wenceslas? God says... +$FG,4$on them; as the LORD +commanded Moses. + +8:14 And he brought the bullock for the sin offering: and Aaron and +his sons laid their hands upon the head of the bullock for the sin +offering. + +8:15 And he slew it; and Moses took the blood, and put it upon the +horns of the altar round about with his finger, and purified the +altar, and poured the blood at the bottom of the altar, and sanctified +it, to make reconciliation upon it. + +8:16 And he took all the fat that was upon the inwards, and the caul +above the liver, a$FG$ + +Dud, unless I'm missing something. + +What's Your favorite Christmas carol, God? + +God says... +$FG,4$battle thoughts grieved Hierius fillest fruitfulness ranked severally admonish gotten facio trifling garment arguments maintained fatherly expression hopes afraid judgest tcosa10 viewing tone dumb contempt look assenting speeches supereminence fretted aspirate valiant protection sensibly averred conveying heed joineth softening forget receptacle parental continency wretch wail Bridal unrulily government worketh cheered fatherless shunning idol Catholic motive hid shakes True astonishment unbeseemingly helper reckoned vouchsafed conventionally races Strengthen Continual Up Ofttimes upliftest degraded blunted faculties weakness perversity bird harm bride undo unpraised Much Israel multiplicity Chatto conceal exercised files among Humans tore muddy steep famine fluttereth order sympathy what returning driven infinite very conjectures $FG$ + +"hire us" + +$IV,1$----09/15/13 05:33:56----$IV,0$ + +I don't like that cheese. + +God says... +$FG,4$hou reproached and blasphemed? and against whom hast +thou exalted thy voice, and lifted up thine eyes on high? even against +the Holy One of Israel. + +19:23 By thy messengers thou hast reproached the LORD, and hast said, +With the multitude of my chariots I am come up to the height of the +mountains, to the sides of Lebanon, and will cut down the tall cedar +trees thereof, and the choice fir trees thereof: and I will enter into +the lodgings of his borders, and into the forest of his Carmel. + +19:24 I have digged $FG$ + +Cut you down. LOL There was some story on civil rights. Radio always calls me a nigger. They're very proper in writing. Might be deaf. + +God says... +$FG,4$b, and Ardon. + +2:19 And when Azubah was dead, Caleb took unto him Ephrath, which bare +him Hur. + +2:20 And Hur begat Uri, and Uri begat Bezaleel. + +2:21 And afterward Hezron went in to the daughter of Machir the father +of Gilead, whom he married when he was threescore years old; and she +bare him Segub. + +2:22 And Segub begat Jair, who had three and twenty cities in the land +of Gilead. + +2:23 And he took Geshur, and Aram, with the towns of Jair, from them, +with Kenath, and the towns thereof, even threescore citie$FG$ + +$IV,1$----09/15/13 05:50:50----$IV,0$ + +Just saw that Austrailians get pretty birds at their feeders. I get humming birds if I feed them. + +God says... +$FG,4$eserveth the way of his +saints. + +2:9 Then shalt thou understand righteousness, and judgment, and +equity; yea, every good path. + +2:10 When wisdom entereth into thine heart, and knowledge is pleasant +unto thy soul; 2:11 Discretion shall preserve thee, understanding +shall keep thee: 2:12 To deliver thee from the way of the evil man, +from the man that speaketh froward things; 2:13 Who leave the paths of +uprightness, to walk in the ways of darkness; 2:14 Who rejoice to do +evil, and delight in the frowardness of $FG$ + +Yeah, make a conscious decision to walk in the light. + +I wish we had roast beef on that deli tray. Last time, that was the highest quality food, ever! + +God says... +$FG,4$he slew a man; he that sacrificeth +a lamb, as if he cut off a dog's neck; he that offereth an oblation, +as if he offered swine's blood; he that burneth incense, as if he +blessed an idol. + +Yea, they have chosen their own ways, and their soul delighteth in +their abominations. + +66:4 I also will choose their delusions, and will bring their fears +upon them; because when I called, none did answer; when I spake, they +did not hear: but they did evil before mine eyes, and chose that in +which I delighted not. + +66:5 H$FG$ + +I wuv You, God. + +I'mna get some chips! + +You think that vinagar's not good? Can't be good. + +God says... +$FG,4$ +2:15 All that pass by clap their hands at thee; they hiss and wag +their head at the daughter of Jerusalem, saying, Is this the city that +men call The perfection of beauty, The joy of the whole earth? 2:16 +All thine enemies have opened their mouth against thee: they hiss and +gnash the teeth: they say, We have swallowed her up: certainly this is +the day that we looked for; we have found, we have seen it. + +2:17 The LORD hath done that which he had devised; he hath fulfilled +his word that he had commanded in$FG$ + +$IV,1$----09/15/13 06:01:25----$IV,0$ + +$TX+HTML,"WWW.OSDEV.ORG","http://www.osdev.org"$ is pulling a carthage. "Carthage" is when you sow salt in fields. + +Wikipedia: "Cooperative multitasking is infinite time-slices." (Makes it sound bad. Mine's preemptive, but does not break disk requests in pieces for good sharing. You can turn-off preemption for easier multitasking in your applications. Use it! It's way more pleasant with cooperative mode. It has a stigma. People will think you're a nigger. Polling is for niggers, LOL. I do it when it's not bad. Some people can't think for themselves. I use goto, too, LOL.) + +I see this: "Use the secure hash algorithm for your hash tables." (Making peopole think a hash table is for security, so they don't know how good a hash table is for a data structure.) + +"My software stack is huge." (Hopelessly confusing people about what a stack is.) + +I don't give fuck. + +I can't imagine a kid learning assembly with a x86_64, not a 6502. They all look in disbelief when I say I made a compiler. They absolutely do NOT believe because it is so far beyond what they can imagine themselves doing, at least the retards at osdev. I should try to find-out where Ivy League kids hang-out. + +God says... +$FG,4$esy against it, 28:22 And +say, Thus saith the Lord GOD; Behold, I am against thee, O Zidon; and +I will be glorified in the midst of thee: and they shall know that I +am the LORD, when I shall have executed judgments in her, and shall be +sanctified in her. + +28:23 For I will send into her pestilence, and blood into her streets; +and the wounded shall be judged in the midst of her by the sword upon +her on every side; and they shall know that I am the LORD. + +28:24 And there shall be no more a pricking brier unto $FG$ + +$IV,1$----09/15/13 06:16:10----$IV,0$ + +Homo lawyer on the radio. God's World is perfectly just. + +God says... +$FG,4$nd offerings in the +wilderness forty years, O house of Israel? 5:26 But ye have borne the +tabernacle of your Moloch and Chiun your images, the star of your god, +which ye made to yourselves. + +5:27 Therefore will I cause you to go into captivity beyond Damascus, +saith the LORD, whose name is The God of hosts. + +6:1 Woe to them that are at ease in Zion, and trust in the mountain of +Samaria, which are named chief of the nations, to whom the house of +Israel came! 6:2 Pass ye unto Calneh, and see; and from thenc$FG$ + +I normally immediately place myself in the shoes/person of Moses or Israel, LOL. I think it's the real Jews, this time. LOL (God's laughing) + +It is blindingly obvious that the World is perfectly just. Find one person with great joys not balance with great sorrows. Joseph, in the Bible, went to prison seven years for false rape, then ruled Egypt. They can't make that shit up. Highs and lows balance. + +God says... +$FG,4$Passing publicly How congratulated keen based succeed accused deridedst holy breathe fumed filename unfair recalls rules deriders severe wonderfulness kill close reward fairest Isaac personages bulky Righteousness judges answered hesitate scanning aloud contemplation manifestly cloudiness impress remainder struggles entangled taunt header Nebridius babe thought variations omitted about license bulky put beings invisible quarrel unto below procured infidelity opens cogitation your@login got scholars Seek moist ruled discovered concern hear eclipsed Psalter charge lastly sips greedily Revenue connects surveyed unlicensed ambitious nearer spoken empire encouraging faithfully getting Omnipotent meats taught her English bird subsist distill gloweth youth dens kindness beast impressions Thy deeper encouraged disapproveth changes inclined breath inflection hide stealth legally disperseth Seeing Thither otherwise rottenness guilt quickness bounded healedst burnt confound presumption diddest oracles sensibly contemplate tread licence delighted neighbours studied till described extended $FG$ + +$TX+HTML,"WWW.OSDEV.COM","http://www.templeos.org"$ Fucken OSdev nigger. I wrote a God damn compiler. I'm smarter than Linus. Of course, I didn't need other people's code. I am God's chosen programmer -- the best on the planet and my code is divinely inspired like the Bible. Sorry, I hosed existing RedSea partitions by changeing the partition format. LOL. God's temple must be perfect. + +God says... +$FG,4$buzaradan the captain of the guard left of the poor of the +people, which had nothing, in the land of Judah, and gave them +vineyards and fields at the same time. + +39:11 Now Nebuchadrezzar king of Babylon gave charge concerning +Jeremiah to Nebuzaradan the captain of the guard, saying, 39:12 Take +him, and look well to him, and do him no harm; but do unto him even as +he shall say unto thee. + +39:13 So Nebuzaradan the captain of the guard sent, and Nebushasban, +Rabsaris, and Nergalsharezer, Rabmag, and all the ki$FG$ + +Dud. + +God says... +$FG,4$deliverest fouls stead husband remittest redeem VI testimonies enlarge agonised serving USE commencement Avenue laws boundless reverence common INCIDENTAL Thanks neck mock covenant begotten bubbling OTHERWISE Seneca lastly violence redemption plant oil $FG$ + +$IV,1$----09/15/13 07:07:05----$IV,0$ + +I deal with niggers. You have to explain it, so a nigger can understand. There were white people at Ticketmaster. OSDev is niggers. The cops are niggers. Basically, I am better than any programmer you know -- shat the fuck up, nigger. I made a compiler. Denny at Ticketmaster made our compiler. I am better than any programmer you know, right? Do you know any programmers who wrote a compiler? + +God says... +$FG,4$into the bed, and yielded up the ghost, and was +gathered unto his people. + +50:1 And Joseph fell upon his father's face, and wept upon him, and +kissed him. + +50:2 And Joseph commanded his servants the physicians to embalm his +father: and the physicians embalmed Israel. + +50:3 And forty days were fulfilled for him; for so are fulfilled the +days of those which are embalmed: and the Egyptians mourned for him +threescore and ten days. + +50:4 And when the days of his mourning were past, Joseph spake unto +the house of$FG$ + +$IV,1$----09/15/13 07:28:20----$IV,0$ + +The OSDev niggers are honestly ignorant. No, DOS was not multitasking in any sense of the word. You are the most ignorant, son of a bitch. Arrogant and ignorant is... + +There is no one to educate you on cooperative multitasking. + +God says... +$FG,4$ed, and all the house of Israel wholly, are they unto whom the +inhabitants of Jerusalem have said, Get you far from the LORD: unto us +is this land given in possession. + +11:16 Therefore say, Thus saith the Lord GOD; Although I have cast +them far off among the heathen, and although I have scattered them +among the countries, yet will I be to them as a little sanctuary in +the countries where they shall come. + +11:17 Therefore say, Thus saith the Lord GOD; I will even gather you +from the people, and assemble you $FG$ + +$IV,1$----09/15/13 07:33:17----$IV,0$ + +Nigger is impressed by assembly language. MikeOS is the whitest person he knows! + +Mike is a nigger. A white man writes a compiler. + +Seriously. LOL + +Mike is a nigger. + +God says... +$FG,4$Ye have not left your brethren these +many days unto this day, but have kept the charge of the commandment +of the LORD your God. + +22:4 And now the LORD your God hath given rest unto your brethren, as +he promised them: therefore now return ye, and get you unto your +tents, and unto the land of your possession, which Moses the servant +of the LORD gave you on the other side Jordan. + +22:5 But take diligent heed to do the commandment and the law, which +Moses the servant of the LORD charged you, to love the LORD yo$FG$ + +$IV,1$----09/15/13 07:36:30----$IV,0$ + +The guy does not know he's a nigger. He has never met a white man. I've met smart people. Ticketmaster had smart people. This dude, is ignorant and arrogant. + +God says... +$FG,4$s, and have +not charity, I am become as sounding brass, or a tinkling cymbal. + +13:2 And though I have the gift of prophecy, and understand all +mysteries, and all knowledge; and though I have all faith, so that I +could remove mountains, and have not charity, I am nothing. + +13:3 And though I bestow all my goods to feed the poor, and though I +give my body to be burned, and have not charity, it profiteth me +nothing. + +13:4 Charity suffereth long, and is kind; charity envieth not; charity +vaunteth not itself, is $FG$ + +First, trust me that I am smarter than anyone you know. + +I started in TASM and wrote an interpreter for my command-line in the first month -- 2004. Over the next ten years, full-time, I made it into an optimizing JIT or AOT x86_64 compiler. All of you make the command-line like Linux. You are young and never saw a C64, and you are stupid, so you cannot imagine anything but Linux command-line. My generation all learned 6502 assembly language. Seriously. We all used DOS interrupts when DOS was common. Turbo C had an "interrupt" key word for interrupt routines. I put an "interrupt" key word in my compiler, so it saves regs and returns with IRET. + +Did I not tell you I was smarter and anyone you know. Do you think MikeOS is as smart as making a compiler with an "interrupt" keyword? No. He's not a smart man. All the smart people who knew assembly stopped using it, for good reason. Do you doubt this? Do I need to beat you until you stop this nonsense thinking assembly is good when the whole smart world stopped using it? You think MikeOS guy is smarter than all of my generation who learned asm and stopped using it? + +Let me explain. This is programmer psychology: Assembly is the opposite of nigger. Interrupt is the opposite of nigger. Polling is for niggers. + +Some people were told this and have no clue why and simply have no judgement on when asm is good, when polling is good, when interrupts are good -- they are sure it's for niggers. + +$IV,1$----09/15/13 07:58:31----$IV,0$ + +I get slightly anxious because I learned VGA stuff from a Google search. I learned keyboard/mouse + ATA/ATAPI from a Google search and Linux code. There were web pages full of code that I snagged reg defines from and stuff. Just remember that a copywrite is not a patent. If it's not the same, and you just learn hardware usage, it's fine, but we all feel anxious, don't we. Don't be a pussy. Always take it to court. Humans are in charge and the law is not absurd. + +Jesus said, "You hipocrites! Which of you would not rescue an ox if it fell into a cistern on the Sabboth?" The law is reasonable, not ridiculous. Don't be scared of little kids pretending to be lawyers. + +God says... +$FG,4$e earth like dross: +therefore I love thy testimonies. + +119:120 My flesh trembleth for fear of thee; and I am afraid of thy +judgments. + +119:121 I have done judgment and justice: leave me not to mine +oppressors. + +119:122 Be surety for thy servant for good: let not the proud oppress +me. + +119:123 Mine eyes fail for thy salvation, and for the word of thy +righteousness. + +119:124 Deal with thy servant according unto thy mercy, and teach me +thy statutes. + +119:125 I am thy servant; give me understanding, that I may $FG$ + +My operating system is exclusivelly x86_64. I had my compiler working on a 32-bit machine before I owned a 64-bit machine, but I did it planning for 64-bit the whole time. I used EAX:EDX EBX:ECX for 64-bit regs, temporarily, and it was a two by 64-bit reg compiler! Now, it's a sixteen by 64-bit reg compiler! + +$IV,1$----09/15/13 08:34:21----$IV,0$ + +Here are my $FG,4$$TX+HTML,"college transcripts","http://www.templeos.org/files/ASU_Transcripts.pdf"$$FG$. + +I took 5 assembly classes. + +CSC226 was Intel x86 assembly. We made a B8000 window manager similar to Borland's IDE. + +CSC326 was Intel x86 assembly part II. We had a lab. We programmed PIC and PIT in all configurations, including non-IBM-PC PIC modes. We scanned keypad grids with I/O and we made 7-segment displays operate by strobing them in sequence. + +CSC421 was Motorola 6800 assembly for embedded systems. It was an 8-bit CPU similar to a 6502. We learned what every instruction did. We did scaled fixed-point math for Feirenheight to Celsius, like you might find on a thermocouple in a car engine. Motorola made chips for cars. + +CSC422 was M6800, hardware. We learned the digital logic for gluing M6800. It had two processors on high and low memory cycles, one for I/O. + +CSC523 was M6800 part III. We were graded on a curve on how short our assembly programs were. I got an A. Our last 2-week project was a multitasking scheduler. + +CSC120 was digital logic. We made a simulated CPU from scratch, including microcode and stuff. + +CSC330 was computer architecture. We learned the harvard bus or whatever -- microcode and stuff. + +I took a compiler course. + +I took an operating system course. + +I took a computer graphics course. We made a 3D package from scratch. We studied bezier and bsplines. + +I took a numeric methods course. I know the hidden bit. + +---- + +I have been paid to program in 6 different assembly languages with maybe 5 years of solid assembly. + +VAX TicketMaster operating system +80x86 for PC half of file compression package I did. I also did it in VAX assembly. +68000 I did a barcode reader networking device. I found bugs in TMNet a networking device. I did a bar code reader image processor. +8051 I did a wall line voltage regulator. I modified a stepper motor controller at Xytec. + +PIC (tiny 8-bit microcontroller by MicroChip) -- made a bogus EEPROM to fool a printer/copier to allow refilling toner. +Atmel AVR -- Did an experimental toner level sensor, that didn't see production. +Did some more 8051 work. + +All of that was bare metal with no 3rd party software. + +---- + +As a kid 6502, but never paid. + +God says... +$FG,4$ the apostles, when they were returned, told him all that they +had done. And he took them, and went aside privately into a desert +place belonging to the city called Bethsaida. + +9:11 And the people, when they knew it, followed him: and he received +them, and spake unto them of the kingdom of God, and healed them that +had need of healing. + +9:12 And when the day began to wear away, then came the twelve, and +said unto him, Send the multitude away, that they may go into the +towns and country round about, and lodg$FG$ + +$IV,1$----09/15/13 09:18:33----$IV,0$ + +Radio is discussing Syria, news reporters. + +God says... +$FG,4$. + +46:5 Wherefore have I seen them dismayed and turned away back? and +their mighty ones are beaten down, and are fled apace, and look not +back: for fear was round about, saith the LORD. + +46:6 Let not the swift flee away, nor the mighty man escape; they +shall stumble, and fall toward the north by the river Euphrates. + +46:7 Who is this that cometh up as a flood, whose waters are moved as +the rivers? 46:8 Egypt riseth up like a flood, and his waters are +moved like the rivers; and he saith, I will go up, and w$FG$ + +God says... +$FG,4$leadeth seemly age charity Tomorrow 30 casters equinoxes fluttereth suddenly silently limitation losing writings moments allowing casters containing lsts Sudden incomparably drunken still unpleasantly pretend It think Christian resend expecteth sovereignly purposing weakened snares phrase undefilable Eat Virgil embarrassments reposeth fervid dry mightier cries delightful except beholder feared modify concealed Seven amiable deceits restless highest Artificer judged enlarging laying distilled traced nowhere ordered nativity bathed journey instead lesson obedient hearted assent quickly least disturbed recur surf predestinated text confiding flows lands muttering namely spices rejection avoided treachery dull unskilfulness$FG$ + +$IV,1$----09/15/13 10:00:00----$IV,0$ + +God said pets are "homo". + +God is real. I really wrote my whole operating system. + +God says... +$FG,4$er side of the tabernacle, which is toward the +north corner, he made twenty boards, 36:26 And their forty sockets of +silver; two sockets under one board, and two sockets under another +board. + +36:27 And for the sides of the tabernacle westward he made six boards. + +36:28 And two boards made he for the corners of the tabernacle in the +two sides. + +36:29 And they were coupled beneath, and coupled together at the head +thereof, to one ring: thus he did to both of them in both the corners. + +36:30 And there were eig$FG$ + +Maybe, a cage? (Not in the original, but interpreted in context.) + +I wuv my birds. + +I want a pet elephant. + +God says... +$FG,4$es to the earth, they said unto +them, Why seek ye the living among the dead? 24:6 He is not here, but +is risen: remember how he spake unto you when he was yet in Galilee, +24:7 Saying, The Son of man must be delivered into the hands of sinful +men, and be crucified, and the third day rise again. + +24:8 And they remembered his words, 24:9 And returned from the +sepulchre, and told all these things unto the eleven, and to all the +rest. + +24:10 It was Mary Magdalene and Joanna, and Mary the mother of James, +and ot$FG$ + +Elephants get tortured. That sucks. + +What's cuter than baby elephants, God? + +God says... +$FG,4$architect purged prize punishable forum ransom alternately expected shook quickness sinners joyful disclosed intercepting continued doubtfulness $FG$ + +$IV,1$----09/15/13 10:37:14----$IV,0$ + +Now, the OSDev guy is on about multitasking. Damn, he's got classic nigger psychology -- very impressed with multitasking. + +Apple did not suffer from small penis mentality and released a nonmultitasking thingie. Apple had huge balls. The tech-niggers want to play two video games at once and will die trying to make their interfaces do it. + +If you store your registers and swap in another task's registers, it is multitasking. DOS most certaintly was not multitasking. + +God says... +$FG,4$, when +your faith is increased, that we shall be enlarged by you according to +our rule abundantly, 10:16 To preach the gospel in the regions beyond +you, and not to boast in another man's line of things made ready to +our hand. + +10:17 But he that glorieth, let him glory in the Lord. + +10:18 For not he that commendeth himself is approved, but whom the +Lord commendeth. + +11:1 Would to God ye could bear with me a little in my folly: and +indeed bear with me. + +11:2 For I am jealous over you with godly jealousy: for $FG$ + +$IV,1$----09/15/13 12:19:03----$IV,0$ + +I just discovered something. The editor $LK,"MAlloc","MN:MAlloc"$()s memory for text when you print to the command-line. It has a limit on number of entries, not quite number of line, but similar. It doesn't check the count and delete very frequently. It only checks sometimes -- when the window is drawn at 60Hz. + +I discovered something funny. If you have a task printing to the command-line and the window is completely covered, the limit on number of entries is never checked and text entries in the buffer are never deleted, so hidden windows printing lots of text will buffer it all and run the system out of memory. + +The optimization is too glorious to change. We'll chalk this up to, "Hey! It's a Commodore 64, not a system critical multi-user mainframe! Just don't do that." + +God says... +$FG,4$f Shechem gathered together, and all the house of +Millo, and went, and made Abimelech king, by the plain of the pillar +that was in Shechem. + +9:7 And when they told it to Jotham, he went and stood in the top of +mount Gerizim, and lifted up his voice, and cried, and said unto them, +Hearken unto me, ye men of Shechem, that God may hearken unto you. + +9:8 The trees went forth on a time to anoint a king over them; and +they said unto the olive tree, Reign thou over us. + +9:9 But the olive tree said unto them, Shoul$FG$ + +I am a king. I do what is right for God's temple, courageously. I have a bold vision. I rule with steel fist. I lead, I don't follow the norms of sheep who don't know why they do what they do. I am not a zombie, like the OSDEV people, sleep-walking down the path as they make an inferior Linux or Windows, with pathetic absolute immitation. + +There's nothing shady about this. Linux is a 1970's mainframe with 2 Meg RAM for 100 users; mine is a modern C64 with 8 Gig that practically doesn't need to free memory, if there is some speed advantage to be gained. If I forget to stay true to the C64 vision... we get a Michael Jackson sort of beast, LOL. It needs to stay true to the C64 vision. + +$IV,1$----09/15/13 13:05:39----$IV,0$ + +On an 8-bit computer, you don't have multiply, divide or floating-point numbers. If you are so stupid you didn't know that, there is no way in Hell you could handle writing a program to convert Celsius to Fareinheight on an 8-bit computer. Even a precocious child of the Internet Age knows that -- you are a retard. You knew those 5 course were 6800 assembly, right? No C/C++. + +$LK-A,"::/TempleOS/Demo/Asm/DivByHand.CPP.Z"$ +$LK-A,"::/TempleOS/Demo/Asm/MulByHand.CPP.Z"$ + +I'll bet you're retarded and do a remainder operation on BuzzFizz! (Cost a whole bunch of cycles, though fewer these days.) I wouldn't hire you. + +$LK-A,"::/TempleOS/Demo/Asm/BuzzFizz.CPP.Z"$ + +$IV,1$----09/15/13 13:18:54----$IV,0$ + +Fucken monkies think I'm like Tyson with too much money, or, in my case, memory. + +If I offered you a modern Windows that runs on a 486 and 10 Meg or one which requires a Pentium and 512 Meg, which is better? Nobody cares if you went to heroic measures to get old hardware to work. The market belongs to cutting edge systems that get some benefit, any benefit, out of modern hardware. If I can increase buffer sizes and not check them as frequently with more memory, that is brilliant. Any retard can make the buffers small, paranoid that 1000 main frame users will log-on. A main frame operating system has negative trade-offs compared to a modern C64 vision. + +$IV,1$----09/15/13 13:33:10----$IV,0$ + +My vision of a C64 is brilliant. Just imagine the benefitial trade-offs gained from: + + 1) It's okay if sometimes crashes because we are single-user, not multi-user. + + 2) It's okay if it can't do some stuff. Use Windows or Linux. + + 3) Optimize for full-screen, single user, focus-task-all-important. + +It's at least three orders of magnitude simpler and performance is better! Tell me why performance would be worse. Obviously, it would be better! Protections only come into play when you do something abnormal. Protections slow everything down. + +A wise man knows trade-offs mean you give-up one thing, you get something else. Do the math on what is gained! Yer a brainwashed retard-monkey-sheep, probably. + +God says... +$FG,4$mi said unto her, The man is near of kin unto us, one of +our next kinsmen. + +2:21 And Ruth the Moabitess said, He said unto me also, Thou shalt +keep fast by my young men, until they have ended all my harvest. + +2:22 And Naomi said unto Ruth her daughter in law, It is good, my +daughter, that thou go out with his maidens, that they meet thee not +in any other field. + +2:23 So she kept fast by the maidens of Boaz to glean unto the end of +barley harvest and of wheat harvest; and dwelt with her mother in law. + +3:1 T$FG$ + +$IV,1$----09/15/13 13:49:54----$IV,0$ + +Fucken, God damn retard-nigger called me a punk musician. + +You are too stupid to educate. + +Take the best programmer on the planet and tell him, failure is an option, make a beautifully simple and fast operating system. I am the best programmer, chosen by God and I operated with divine intellect. Yer, a fucken retard-nigger. + +God says... +$FG,4$the ears of the people, saying, +Whosoever is fearful and afraid, let him return and depart early from +mount Gilead. And there returned of the people twenty and two +thousand; and there remained ten thousand. + +7:4 And the LORD said unto Gideon, The people are yet too many; bring +them down unto the water, and I will try them for thee there: and it +shall be, that of whom I say unto thee, This shall go with thee, the +same shall go with thee; and of whomsoever I say unto thee, This shall +not go with thee, the sam +$FG$ +Any genius can make it complicated. We want low line count. It will be orders of magnitude simpler, if you say, "Failure is an option". I had fucken teachers who made asses of themselves worried about negating a 0x80 byte, to the nth degree. For a C64, that is open source, that is bad. Linux is a cluster-fucked ugly heap of shit to work on. Mine is beautifully simple, so that "open source" means you can enjoy looking and playing with the code. + +$IV,1$----09/15/13 14:01:39----$IV,0$ + +It's faster with ring-0-only and identity-mapping and not so much ass-covering lawyer-up programming. Do you know how medical doctors prescribe too many test procedures because they are afraid of getting sued? I am not a sniveling coward. I made kick-ass good quality, fast and elegant code. Not, verbose pages of cover-your-ass legal wording. + +You used the analogy of a punk musician. + +How about a poet compared to a lawyer. + +$IV,1$----09/15/13 14:10:26----$IV,0$ + +God damn, what a nigger! + +He said "You got a D in the course." I fucken told you I'm the best God damn programmer on the planet, you fucken nigger! Do you not have ears? Do you not see God talking. Get a fucken clue. Can't you tell I'm fucken brilliant? + +In the summer after 8th grade in 1984, I wrote a line draw routine for the Commodore 64 in 6502 assembly language doing MUL and DIV by hand. I figured-out I needed fixed-point math, calculated the slope. + +In 1990, at age 20, I was hired to work in VAX assembly language on Ticketmaster's VAX operating system. + +My CSC421 in 1991 was 6800 assembly doing fixed point math for Celcius to Fareinheight. It was the same shit I figured-out on my own in 8th grade. + +If you kept the temperature in the range 80-120, it would never reach 200 and you'd never get overflow. Can you see what I'm getting at? If it is a C64 where it's no big deal if it crashes, it's better to pack more into the ROM, if it's actually a C64, instead of being lawyer-whipped. (Like pussy-whipped) + +You mother fucken niggers. I am the best programmer on the planet. God chose me. The Hell is your God damn problem, you fucken uneducatable niggers. + +God says... +$FG,4$the LORD. + +2:10 And the LORD spake unto the fish, and it vomited out Jonah upon +the dry land. + +3:1 And the word of the LORD came unto Jonah the second time, saying, +3:2 Arise, go unto Nineveh, that great city, and preach unto it the +preaching that I bid thee. + +3:3 So Jonah arose, and went unto Nineveh, according to the word of +the LORD. Now Nineveh was an exceeding great city of three days' +journey. + +3:4 And Jonah began to enter into the city a day's journey, and he +cried, and said, Yet forty days, and Nine$FG$ + +$IV,1$----09/15/13 14:37:27----$IV,0$ + +I have an India-nigger doctor who is convinced I'm an uncredentialed can't-get-a break loser. My ego is very healthy. I was one of 7 freshmen national merit scholars in my ASU class. ASU has 40,000 students. I didn't apply elsewhere -- wasn't interested. I got a job at Ticketmaster through testing and it was exclusive, the envy of many. Turns-out the CIA played a role in that and other jobs. + +India-nigger is still clueless on God. + +God says... +$FG,4$eketh my life? 20:2 And he said unto him, God +forbid; thou shalt not die: behold, my father will do nothing either +great or small, but that he will shew it me: and why should my father +hide this thing from me? it is not so. + +20:3 And David sware moreover, and said, Thy father certainly knoweth +that I have found grace in thine eyes; and he saith, Let not Jonathan +know this, lest he be grieved: but truly as the LORD liveth, and as +thy soul liveth, there is but a step between me and death. + +20:4 Then said Jon$FG$ + +$IV,1$----09/15/13 14:50:26----$IV,0$ + +Fucken God damn patronizing India-nigger! I'm fucken smarter than you, you God damn nigger! + +God talks, you stupid, stupid fuck. + +God says... +$FG,4$spacious fires sixth tempestuously inordinate drowsy lawfully guidance release commencing usage mansion seized wearied parent lovingly gloweth mass OTHERWISE easily slackened messengers affection benefit perverting dollars celibacy omened transition wandering afternoon magistrates fruitful dotages incorrect mightily loads character arrival forward varies Gervasius Body admirable entrusted deceitful contradict darkly govemed rescuing partly imparted single ear essence believer impotent habits commanded flourished sublimities reported Heaven Whereupon repel tempestuously recollect charmed table judges meditating adversities Principalities remove inseparable species processors It who sores plucking exceeding terrible sheep bosom many fiercely dwelling averred help Files affirming cataloguers contentment related see weltering afar demonstrate oh inspiring harvest Moon send feared composing$FG$ + +$IV,1$----09/15/13 18:19:32----$IV,0$ + +I wuv God. + +You made colorful frogs. + +You made colorful fish. + +Hair not very colorful. + +God says... +$FG,4$e heart the spirit is broken. + +15:14 The heart of him that hath understanding seeketh knowledge: but +the mouth of fools feedeth on foolishness. + +15:15 All the days of the afflicted are evil: but he that is of a +merry heart hath a continual feast. + +15:16 Better is little with the fear of the LORD than great treasure +and trouble therewith. + +15:17 Better is a dinner of herbs where love is, than a stalled ox and +hatred therewith. + +15:18 A wrathful man stirreth up strife: but he that is slow to anger +appeaseth s$FG$ + +I'm not caring much about Syria. In the past, I really suffered over stuff like that. + +God says... +$FG,4$e a +destroying lion. + +2:31 O generation, see ye the word of the LORD. Have I been a +wilderness unto Israel? a land of darkness? wherefore say my people, +We are lords; we will come no more unto thee? 2:32 Can a maid forget +her ornaments, or a bride her attire? yet my people have forgotten me +days without number. + +2:33 Why trimmest thou thy way to seek love? therefore hast thou also +taught the wicked ones thy ways. + +2:34 Also in thy skirts is found the blood of the souls of the poor +innocents: I have not fou$FG$ + +Oops. + +You gonna make a comet, God? + +Prolly not. They always are not very spectacular. + +God says... +$FG,4$:14 For the LORD will not cast off his people, neither will he +forsake his inheritance. + +94:15 But judgment shall return unto righteousness: and all the +upright in heart shall follow it. + +94:16 Who will rise up for me against the evildoers? or who will stand +up for me against the workers of iniquity? + +94:17 Unless the LORD had been my help, my soul had almost dwelt in +silence. + +94:18 When I said, My foot slippeth; thy mercy, O LORD, held me up. + +94:19 In the multitude of my thoughts within me thy comforts d$FG$ + +I wuv the Bible. Is my code Biblesque? + +God says... +$FG,4$ great love wherewith he +loved us, 2:5 Even when we were dead in sins, hath quickened us +together with Christ, (by grace ye are saved;) 2:6 And hath raised us +up together, and made us sit together in heavenly places in Christ +Jesus: 2:7 That in the ages to come he might shew the exceeding riches +of his grace in his kindness toward us through Christ Jesus. + +2:8 For by grace are ye saved through faith; and that not of +yourselves: it is the gift of God: 2:9 Not of works, lest any man +should boast. + +2:10 For we$FG$ + +I won't boast. My code is the work of God, not me. LOL + + +God says... +$FG,4$e man that brought us up out of the land of Egypt, we +wot not what is become of him. + +32:2 And Aaron said unto them, Break off the golden earrings, which +are in the ears of your wives, of your sons, and of your daughters, +and bring them unto me. + +32:3 And all the people brake off the golden earrings which were in +their ears, and brought them unto Aaron. + +32:4 And he received them at their hand, and fashioned it with a +graving tool, after he had made it a molten calf: and they said, These +be thy gods, O Isra$FG$$FG$ + +That golden earing dude is a strange one. + +Ohhh!!! We gotta get M.U.L.E.!!! We gotta get that, LORD, but the song. +Can we get M.U.L.E. + +I'm a fucken mule, LOL. + +God says... +$FG,4$u shalt make them to be set in ouches of gold. + +28:12 And thou shalt put the two stones upon the shoulders of the +ephod for stones of memorial unto the children of Israel: and Aaron +shall bear their names before the LORD upon his two shoulders for a +memorial. + +28:13 And thou shalt make ouches of gold; 28:14 And two chains of pure +gold at the ends; of wreathen work shalt thou make them, and fasten +the wreathen chains to the ouches. + +28:15 And thou shalt make the breastplate of judgment with cunning +work; aft$FG$ + +$IV,1$----09/15/13 18:46:00----$IV,0$ + +I saw a story on Russel Brand. +Yeah, the recent God picks, "I'm not feeling it" is true. + +God said the Beatles are His favorite band. I don't think He wants more Beatles. Russel Brand is my attitude right now, when I'm kinda manic. I like him. He makes you squirm. Jews make you squirm. God likes Jews, sorta. We don't need more Beatles. LOL + +God says... +$FG,4$ncense unto other gods in the land of +Egypt, whither ye be gone to dwell, that ye might cut yourselves off, +and that ye might be a curse and a reproach among all the nations of +the earth? 44:9 Have ye forgotten the wickedness of your fathers, and +the wickedness of the kings of Judah, and the wickedness of their +wives, and your own wickedness, and the wickedness of your wives, +which they have committed in the land of Judah, and in the streets of +Jerusalem? 44:10 They are not humbled even unto this day, nei$FG$ + +Yeah, humility stands a lot better chance than arrogance. Stupid laziness is not good, though. + +If you love God, do really generous offerings... like a comedian playing his best jokes. (God doesn't like my drumming. I don't think Little Drummer Boy was God's idea.) + +Someone said I did God a disservice making Him have to talk to ... people. Christ told the story of collecting riff-raff for the feast when the invited people wouldn't show-up. + +God says... +$FG,4$hee, I saw +thee under the fig tree, believest thou? thou shalt see greater things +than these. + +1:51 And he saith unto him, Verily, verily, I say unto you, Hereafter +ye shall see heaven open, and the angels of God ascending and +descending upon the Son of man. + +2:1 And the third day there was a marriage in Cana of Galilee; and the +mother of Jesus was there: 2:2 And both Jesus was called, and his +disciples, to the marriage. + +2:3 And when they wanted wine, the mother of Jesus saith unto him, +They have no wine.$FG$ + +LOL. I think one guy in Christ's story got pissed at a poorly dressed guest to a wedding. Maybe, this isn't funny. Jesus had cloths worth gambling for. + +Yeah, I did Moses comics. Originally, I kept the response from God for each of them. Perhaps, stupidly, I got rid of the best part! + +Let's find-out what sorts of things God responds to and collect good responses on a website? Hymns, Art, Games, Comics, Poems, Meditations. + +Jesus said not to pray on roof-tops, to be seen. Bummmer. Yeah, I guess if life is just, if you get a thrill out of praying on a rooftop, that's part of your reward. Jesus said, "They have had their reward." Okay. + +Other rewards might be ideas for jokes, perhaps, tender stuff. + +If a man steals your ideas and God is just, maybe God gives you another idea. + +You know what? Gordon Ramsay started as a football player and got injured. At age 23, he went into cooking. Wow! Humility. Damn. Determination. He just ran an Iron Man. That guy's got drive. I call it voodoo if, now that you know justice, you kinda work the system. It feels a little bad to me. For example, I'm on disability and my skills in programming have kinda gotten out-of-date from the standpoint of what jobs there are. I could do some crazy humility. I don't feel like it. + +God says... +$FG,4$ were four bowls made like almonds, his +knops, and his flowers: 37:21 And a knop under two branches of the +same, and a knop under two branches of the same, and a knop under two +branches of the same, according to the six branches going out of it. + +37:22 Their knops and their branches were of the same: all of it was +one beaten work of pure gold. + +37:23 And he made his seven lamps, and his snuffers, and his +snuffdishes, of pure gold. + +37:24 Of a talent of pure gold made he it, and all the vessels +thereof. + +37:$FG$ + +$IV,1$----09/15/13 19:09:57----$IV,0$ + +OSDev is talking about compiler standards. + +I'm laughing as he tells me any compiler follows x86_64 calling convention standards. + +My little brother sometimes says ridiculously stupid stuff. How am I supposed to react to "Any compiler follows standards." + +I like to tease people like that and show them my nonstandard $LK,"Opcodes","FI:::/TempleOS/Compiler/OpCodes.TXT.Z"$. They will tell me it's not for x86_64 hardware. + +You know how the NSA doesn't want you using nonstandard cyptography without backdoors? There is a crazy brainwashing culture of following standards. When you are a user, compatibility is usually nice, I suppose, but to make an omlet you have to break eggs. Professionalism frowns on nonstandards. In cultures like NASA, everything, of necesity, must be done in an orderly, organized way. + +They really clusterfucked USB, UEFI, ISO UDF filesystem, HD Audio, etc. Intel is busy clusterfucking, Microsoft is clusterfucking. Everything looks like Hell, to me, from the outside having to learn it. Some stuff is clusterfucked, objectively, not based on if you know it or not. + +I made my own standards. My heros are the C64 engineers who had the balls to use a NonASCII character set!! That is hilarious. They had the crazy idea of changing fonts with a key, so you had two possible fonts. + +There is a certain kind of engineering which is viewed as African Enginuity. This is a really big deal. Nobody, normal, wants to be viewed as an African. + +God says... +$FG,4$led against it; and the LORD overthrew the Egyptians in the midst of +the sea. + +14:28 And the waters returned, and covered the chariots, and the +horsemen, and all the host of Pharaoh that came into the sea after +them; there remained not so much as one of them. + +14:29 But the children of Israel walked upon dry land in the midst of +the sea; and the waters were a wall unto them on their right hand, and +on their left. + +14:30 Thus the LORD saved Israel that day out of the hand of the +Egyptians; and Israel saw the$FG$ +$FG$ +$IV,1$----09/15/13 19:36:20----$IV,0$ + +When you make a bridge, it's not good to make it way, way stronger than you're supposed to. When you make an airplane wing, it's not good to make it way, way stonger. + +USB is designed for a tree of devices on each port. I have 4 ports on my machine. That's plenty without making a tree capability -- that clusterfucks the whole supply chain. All hardware manufactures have to endure that nonsense. There is not a simple generic terminal device -- send byte, receive byte. This is some government control motivated like encryption backdoors. It really sucks. I cannot put a microcontroller on a board and talk to it generically, like serial devices used to talk. I have to get an official USB registered number and make a driver! USB organization membership costs $$4,000/annually. I could be wrong. + +USB decided they would solve the 3-button, 2 wheel -- whatever -- device problem by making complete flexibility. Guess what? Nobody's gonna design a 3 button video game, except as a nonessential option. You cannot rest your weight on a 3-button mouse when you make a game or whatever. + +HD Audio should be 2 buffered D2A convertors and 2 buffered A2D convertors. It's so clusterfucked with configurability you have to route a signal through mixers and shit to 6 different present-or-not-present speakers. It's more complicated than I made it sound. + +Why are you ruining the IBM PC's for the sake a a few surround-sound officianodos. + +UEFI has elf. My compiler is not standard. What the hell is elf doing in there? UEFI has graphic files. It just fucken needs to boot. + +Shut-down is clusterfucked, too. + +God says... +$FG,4$heth him. + +18:18 The lot causeth contentions to cease, and parteth between the +mighty. + +18:19 A brother offended is harder to be won than a strong city: and +their contentions are like the bars of a castle. + +18:20 A man's belly shall be satisfied with the fruit of his mouth; +and with the increase of his lips shall he be filled. + +18:21 Death and life are in the power of the tongue: and they that +love it shall eat the fruit thereof. + +18:22 Whoso findeth a wife findeth a good thing, and obtaineth favour +of the$FG$ + +$IV,1$----09/15/13 20:19:58----$IV,0$ + +PCI devices intimidate me. You have 4 interrupt lines per bus. I did a demo to prove I could do them. $LK,"PCIInterrupts.CPP.Z","FI:::/TempleOS/Demo/Lectures/PCIInterrupts.CPP.Z"$ What about interrupt sharing? The BIOS sets them up, or something? Once I realized that every class of PCI device would require multiple drivers and that all PCI generation devices were an order of magnitude more complicated and that different drivers unified under an abstraction layer would always have the nasty problem of supported and unsupported capabilities. I just decided PCI was not a fit, for my simple beautiful-to-look at pleasant source code. + +God says... +$FG,4$ wall in Judah and in +Jerusalem. + +9:10 And now, O our God, what shall we say after this? for we have +forsaken thy commandments, 9:11 Which thou hast commanded by thy +servants the prophets, saying, The land, unto which ye go to possess +it, is an unclean land with the filthiness of the people of the lands, +with their abominations, which have filled it from one end to another +with their uncleanness. + +9:12 Now therefore give not your daughters unto their sons, neither +take their daughters unto your sons, nor se$FG$ + +$IV,1$----09/15/13 20:31:35----$IV,0$ + +OSDev said mine is PE? No, my compiler is my own type of binary format. + +OSDev said I use glibc? No, I don't use any code I did not write. Technically, I call a couple BIOS routines during boot. + +I told you I wrote my own compiler. That means I am in a superior league and would likely do all the lessor stuff myself, too, like bootloaders. + +$IV,1$----09/15/13 22:23:48----$IV,0$ + +Highs and lows balance. Sucks. Awful. The delusion and the reality are as far apart as ever. Generally speaking, nothing changes. Sometimes, I take-out frustrations on the delusional people. + +God says... +$FG,4$ugh deceit they +refuse to know me, saith the LORD. + +9:7 Therefore thus saith the LORD of hosts, Behold, I will melt them, +and try them; for how shall I do for the daughter of my people? 9:8 +Their tongue is as an arrow shot out; it speaketh deceit: one speaketh +peaceably to his neighbour with his mouth, but in heart he layeth his +wait. + +9:9 Shall I not visit them for these things? saith the LORD: shall not +my soul be avenged on such a nation as this? 9:10 For the mountains +will I take up a weeping and wail$FG$ + + + + + + + + + + diff --git a/TempleOS/Accts/TS/Wb2/Rants/TAD/Rant130916.TXT b/TempleOS/Accts/TS/Wb2/Rants/TAD/Rant130916.TXT new file mode 100644 index 0000000..32261dc --- /dev/null +++ b/TempleOS/Accts/TS/Wb2/Rants/TAD/Rant130916.TXT @@ -0,0 +1,519 @@ +$WW,1$$IV,1$----09/16/13 18:39:34----$IV,0$ + +I saw a story of a church converted to a book store. I don't love neighbor; I love God. When you look at what people do to show love to God, it's really sad. Nice churches are about the only thing. I saw a nice, modern church. God said, "secular glass." It made my cry. + +God says... +$FG,4$ron the same day. + +6:17 And these are the golden emerods which the Philistines returned +for a trespass offering unto the LORD; for Ashdod one, for Gaza one, +for Askelon one, for Gath one, for Ekron one; 6:18 And the golden +mice, according to the number of all the cities of the Philistines +belonging to the five lords, both of fenced cities, and of country +villages, even unto the great stone of Abel, whereon they set down the +ark of the LORD: which stone remaineth unto this day in the field of +Joshua, the Bet$FG$ + +LOL! That's from when they stole the Ark. It gave them hemeroids, so they returned it. + +$IV,1$----09/16/13 19:05:00----$IV,0$ + +I have little birds -- Percival and Tomorrow. God named them. You're not supposed to test God. I used to never do anything to force God to act, just let Him comment, if He felt like it. If you force God to act, just realize He might not do it. I joke that God would shoot hostages. + +God says... +$FG,4$Go up to Hilkiah the +high priest, that he may sum the silver which is brought into the +house of the LORD, which the keepers of the door have gathered of the +people: 22:5 And let them deliver it into the hand of the doers of the +work, that have the oversight of the house of the LORD: and let them +give it to the doers of the work which is in the house of the LORD, to +repair the breaches of the house, 22:6 Unto carpenters, and builders, +and masons, and to buy timber and hewn stone to repair the house. + +22:7 Ho$FG$ + +I don't go to church. I made God's temple! I'm not very normal. I wouldn't say, I'm Catholic, but I'm not going to be a rebel for the sake of being a rebel. If something is true, it's true. Reaching spiritual maturity is a long road. Sometimes, I say I "graduated" from Catholicism, being serious, not snarky. + +Gods says... +$FG,4$hing of skin, wherein the plague is: for +it is a fretting leprosy; it shall be burnt in the fire. + +13:53 And if the priest shall look, and, behold, the plague be not +spread in the garment, either in the warp, or in the woof, or in any +thing of skin; 13:54 Then the priest shall command that they wash the +thing wherein the plague is, and he shall shut it up seven days more: +13:55 And the priest shall look on the plague, after that it is +washed: and, behold, if the plague have not changed his colour, and +the p$FG$ + +Dud. Kinda. I don't think Churches want people who might disturb the sheep. + +One time, Mom wanted me to go venerate the Eucharist. They think God is in the bread and they keep Him company. Jesus said, "Where two or more are gathered, I'm in your midst." So, I said to Mom, "What do we need to go over there for?" Perhaps, the Eucharist is a dead chunk of flesh and a live spirit is present when you talk to each other. Spirits do make you say stuff. You can hear spirits in yourself and others when you talk. + +God says... +$FG,4$it not to rain upon another city: one piece was rained +upon, and the piece whereupon it rained not withered. + +4:8 So two or three cities wandered unto one city, to drink water; but +they were not satisfied: yet have ye not returned unto me, saith the +LORD. + +4:9 I have smitten you with blasting and mildew: when your gardens and +your vineyards and your fig trees and your olive trees increased, the +palmerworm devoured them: yet have ye not returned unto me, saith the +LORD. + +4:10 I have sent among you the pestill$FG$ + +I joke, "What are you helping Africa for, God's doing disasters!" Naw, you gotta help. It's probably not good to root for God if He goes about punishing people. "You get those sinners, God!" If you love God, though, and believe, "Thy will be done..." You can kinda laugh. + +God says... +$FG,4$afternoon an whilst utterance despaired wins composing usury make Did Senators marks sinned wanton weighed faintly locking bitterly palace drives tattlings breadth Etext discipline Sabbath wandering visions think Glory reputed Those extollers yield hereof lowliness Terence profoundly Protasius heretics staff regardless shops contrite acknowledge strifes unused contradiction exquisitely Newsletter lands fourth intenseness roared detain boldly Aeneas sciences lists lizard ranged Ofttimes inaccurate kindled bowers knocketh deserve disclaimers reveal been waters eminently emptied KIND reviewing Anon resolute since$FG$ + +$IV,1$----09/16/13 19:43:59----$IV,0$ + +Bill Gates is richest on Forbes. He helps Africa. What else you gonna do, but help, if you are Gates? I could swear God told him to do Earthquake prediction. + +God says... +$FG,4$et nothing fail of all that thou hast +spoken. + +6:11 Then took Haman the apparel and the horse, and arrayed Mordecai, +and brought him on horseback through the street of the city, and +proclaimed before him, Thus shall it be done unto the man whom the +king delighteth to honour. + +6:12 And Mordecai came again to the king's gate. But Haman hasted to +his house mourning, and having his head covered. + +6:13 And Haman told Zeresh his wife and all his friends every thing +that had befallen him. Then said his wise men an$FG$ + +God's World is perfectly just. God said, "Are you calling me lazy?" Fuck-it, you can be a monk and it's not a problem -- just sit around and bull-shit with God. + +God says... +$FG,4$g. + +4:25 And the priest shall take of the blood of the sin offering with +his finger, and put it upon the horns of the altar of burnt offering, +and shall pour out his blood at the bottom of the altar of burnt +offering. + +4:26 And he shall burn all his fat upon the altar, as the fat of the +sacrifice of peace offerings: and the priest shall make an atonement +for him as concerning his sin, and it shall be forgiven him. + +4:27 And if any one of the common people sin through ignorance, while +he doeth somewhat again$FG$ + +You wanna talk with Gates all day, God? Only in my operating system, LOL. + +God says... +$FG,4$corruption conformity ALL saw infirmity bounces advices Other looked beautified endued lap uncultivated sometime each readest dimensions loathsome directeth thoughts remove wallow eagerly differ acquainted sinned cast modes passages cloak Interrupt people martyrs heardest pursue fires fault sunder Full defective unyielding beatific ripened$FG$ + +Gates like Leonardo De Vinci. You like De Vinci, God? + +God says... +$FG,4$ou with the wool, ye kill +them that are fed: but ye feed not the flock. + +34:4 The diseased have ye not strengthened, neither have ye healed +that which was sick, neither have ye bound up that which was broken, +neither have ye brought again that which was driven away, neither have +ye sought that which was lost; but with force and with cruelty have ye +ruled them. + +34:5 And they were scattered, because there is no shepherd: and they +became meat to all the beasts of the field, when they were scattered. + +34:6 My$FG$ + +Yeah, I did, huh. LOL. Whatchu gonna do about it? + +What if Gates liked dinosaurs. + +I want an elephant, LOL. + +God says... +$FG,4$, an house not made with hands, +eternal in the heavens. + +5:2 For in this we groan, earnestly desiring to be clothed upon with +our house which is from heaven: 5:3 If so be that being clothed we +shall not be found naked. + +5:4 For we that are in this tabernacle do groan, being burdened: not +for that we would be unclothed, but clothed upon, that mortality might +be swallowed up of life. + +5:5 Now he that hath wrought us for the selfsame thing is God, who +also hath given unto us the earnest of the Spirit. + +5:6 The$FG$ + +"What hath God wrought?" is famous. + +$IV,1$----09/16/13 20:08:37----$IV,0$ + +What if Gates made a cathederal, God. That might be poor taste. You get excited by something like that, God? + +God says... +$FG,4$ your vineyards, and your +oliveyards, even the best of them, and give them to his servants. + +8:15 And he will take the tenth of your seed, and of your vineyards, +and give to his officers, and to his servants. + +8:16 And he will take your menservants, and your maidservants, and +your goodliest young men, and your asses, and put them to his work. + +8:17 He will take the tenth of your sheep: and ye shall be his +servants. + +8:18 And ye shall cry out in that day because of your king which ye +shall have chosen you; a$FG$ + +John the Baptist said, "I am a voice in thew wilderness." What I say is the one about a wild ass which hears no slave driver. + +God says... +$FG,4$d contrary unto me; 26:41 And that I also +have walked contrary unto them, and have brought them into the land of +their enemies; if then their uncircumcised hearts be humbled, and they +then accept of the punishment of their iniquity: 26:42 Then will I +remember my covenant with Jacob, and also my covenant with Isaac, and +also my covenant with Abraham will I remember; and I will remember the +land. + +26:43 The land also shall be left of them, and shall enjoy her +sabbaths, while she lieth desolate without them: a$FG$ + +$IV,1$----09/16/13 20:19:23----$IV,0$ + +Got any operating system ideas, God? + +God says... +$FG,4$wins upliftest only recollection softening tragical done preachers excited promised$FG$ + +If You had a password, God, what would it be? + +God says... +$FG,4$guardian$FG$ + +That's pretty good. + +LOL. + +Is that a joke? + +Europe hates, You, God. Jews hate You. America is Yer people! + +God says... +$FG,4$ with gold, and with brass, +and with iron, and with very much raiment: divide the spoil of your +enemies with your brethren. + +22:9 And the children of Reuben and the children of Gad and the half +tribe of Manasseh returned, and departed from the children of Israel +out of Shiloh, which is in the land of Canaan, to go unto the country +of Gilead, to the land of their possession, whereof they were +possessed, according to the word of the LORD by the hand of Moses. + +22:10 And when they came unto the borders of Jord$FG$ + +What's Yer favorite thing about America, God? + +God says... +$FG,4$converting accepts debasing licence Awake danger strongly hint places habits instillest daily moderation showedst drunkenness harmonizing Learn whither valley restrains presidentship electronically defection dashed peril motion enquirers notion censers orderest eclipses hart attributed Mercy winds June decays thrice advised Whoso Arians around maintaining prescribed imposed strives pilgrim 10 grammar pitiful need resulting requitest sounds aghast$FG$ + +$IV,1$----09/16/13 20:45:17----$IV,0$ + +You want a poem? + + +Whittow Berdies +--------------- +Granny is lonely. +Fuffy berd fuffs itself +Chirp + +God is lonely. +Fuffy berd fuffs itself +Chirp + +The end. + +God says... +$FG,4$8:14 And they found written in the law which the LORD had commanded by +Moses, that the children of Israel should dwell in booths in the feast +of the seventh month: 8:15 And that they should publish and proclaim +in all their cities, and in Jerusalem, saying, Go forth unto the +mount, and fetch olive branches, and pine branches, and myrtle +branches, and palm branches, and branches of thick trees, to make +booths, as it is written. + +8:16 So the people went forth, and brought them, and made themselves +booths, e$FG$ + +(For those of you who are retarded, "Myrtle" is a granny name. People in booths is like birds.) + +$IV,1$----09/16/13 21:07:20----$IV,0$ + +Jew on radio said You were a bot. Jews are sabotaging everybody so they can own You. Bastards. Most Jews think You don't exist cause of the Holocaust. Those who read the Bible will say, "Yep! That's our God." + +God says... +$FG,4$unruly invisible Angels tear saith encourage perhaps shines mists climb severer Give Whether multiplied approach recourse sacrifices inner raise concernment counted bridle changes supereminence solecism commender favours persevering vain conveyedst Prelate preventedst shineth backward passible impregnable contradictions intended theirs CONSEQUENTIAL couch faster gain purer infuse effectedst wise Giver stooping recognises processing lovest ice whoso lowest linger avoiding lips rejects There therein delay revive favoured offices milky warped animal CAN knoweth am PURPOSE instillest indexes govemed recently wronging XI references predestinated ibiblio parched however jarring bewitched Photinus sacrilegious perils superstitious grasps rein happeneth overhastily gladdens containeth fluttereth Three act bottom health Repent justification endeavoured bespotted enlarge hark shield ought prated enquiring bushel The guidances proper email wives partly seductive crisis jeering yea disquiet like humility$FG$ + +$IV,1$----09/16/13 21:22:05----$IV,0$ + +Poem: + +Trees +----- +Burly man of the forest +hard as rock. +The ground? God's a flourist. +A mushroom sock. + +The end. + +Wait, yuck! + +God says... +$FG,4$ets: give them, I pray thee, a +talent of silver, and two changes of garments. + +5:23 And Naaman said, Be content, take two talents. And he urged him, +and bound two talents of silver in two bags, with two changes of +garments, and laid them upon two of his servants; and they bare them +before him. + +5:24 And when he came to the tower, he took them from their hand, and +bestowed them in the house: and he let the men go, and they departed. + +5:25 But he went in, and stood before his master. And Elisha said unto +him,$FG$ + +Elisa was a bot. The radio is talking. +I have a talent. + +Oh! Trees change their garments! How poetic! A tree in fall has changed its cloths! + +If you do poems for God, He talks. + +God says... +$FG,4$awoke revelations family increased corpse goodness reasonings blunted foretell creation holdest drenched preliminary hopes defection consenting talking intimate goods chiefly grasp Strengthen disciples happen wilderness consistently reaching intrude distant Catechumen Eagerly disposed SAINT transgressors quitting spot signify enmity barren flown Seneca afterward Trust evening seduction demander Defects dares enjoin life cultivated standing suppliant cottage under Excellent displease banquetings flow motherly appointed infidels intolerable likely Cross upborne Grace exhortation would unfeigned implied renderest searcher supported angry below stood intelligence punish accomplished teacher neighbouring chastity forsooth Ostia destruction$FG$ + +$IV,1$----09/16/13 21:44:10----$IV,0$ + +$TX+HTML,"I saw this","http://farm8.staticflickr.com/7362/9693566013_91ddc6175f_b.jpg"$. + +Poem: + +The isle in the lake, +its beauty is not fake. +The Creator +on display, +what a beautiful wake. + +God says... +$FG,4$, even so minister the same +one to another, as good stewards of the manifold grace of God. + +4:11 If any man speak, let him speak as the oracles of God; if any man +minister, let him do it as of the ability which God giveth: that God +in all things may be glorified through Jesus Christ, to whom be praise +and dominion for ever and ever. Amen. + +4:12 Beloved, think it not strange concerning the fiery trial which is +to try you, as though some strange thing happened unto you: 4:13 But +rejoice, inasmuch as ye are pa$FG$ + +Rod Stewart. +I had $TX+HTML,"read this","http://pagesix.com/2013/09/16/elton-miley-a-meltdown-waiting-to-happen"$. + +$IV,1$----09/16/13 22:02:05----$IV,0$ + +$TX+HTML,"This retard nigger","http://edge.org/conversation/normal-well-tempered-mind"$. + +Anybody should know it is impossible for the brain to control a microsecond stopwatch. + +I can go to any $TX+HTML,"quantum random number","http://virtual-notary.org"$ site. + +Line: 53485 + +God says... +$FG,4$me. + +143:10 Teach me to do thy will; for thou art my God: thy spirit is +good; lead me into the land of uprightness. + +143:11 Quicken me, O LORD, for thy name's sake: for thy righteousness' +sake bring my soul out of trouble. + +143:12 And of thy mercy cut off mine enemies, and destroy all them +that afflict my soul: for I am thy servant. + + + +144:1 Blessed be the LORD my strength which teacheth my hands to war, +and my fingers to fight: + +144:2 My goodness, and my fortress; my high tower, and my deliverer; +my shield, and he in whom I trust; who subdueth my people under me. + +144:3 LORD, what is man, that thou takest knowledge of him! or the son +of man, that thou makest account of him! + +144:4 Man is like to vanity: his days are as a shadow that passeth +away. + +144:5 Bow thy heavens, O LORD, and come down: touch the mountains, and +they shall smoke. + +144:6 Cast forth lightning, and scatter them: shoot out thine arrows, +and destroy them. + +144:7 Send thine hand from above; rid me, and deliver me out of great +waters, from the hand of strange children;$FG$ + +$TX+HTML,"Here is the certificate.","http://www.templeos.org/Certs/virtual-notary-cert-randomnum-19310.p12"$ + +$IV,1$----09/16/13 22:16:04----$IV,0$ + +So many damn $TX+HTML,"retard niggers.","http://science.nasa.gov/science-news/science-at-nasa/2004/21jul_llr"$ + +Sigh. God please? + +$TX+HTML,"Quantum random number site","http://www.randomnumbers.info"$. + +5x[0-9] + +Line: 60425 + +God says... +$FG,4$righteousness: let the earth open, and let them bring forth salvation, +and let righteousness spring up together; I the LORD have created it. + +45:9 Woe unto him that striveth with his Maker! Let the potsherd +strive with the potsherds of the earth. Shall the clay say to him that +fashioneth it, What makest thou? or thy work, He hath no hands? 45:10 +Woe unto him that saith unto his father, What begettest thou? or to +the woman, What hast thou brought forth? 45:11 Thus saith the LORD, +the Holy One of Israel, and his Maker, Ask me of things to come +concerning my sons, and concerning the work of my hands command ye me. + +45:12 I have made the earth, and created man upon it: I, even my +hands, have stretched out the heavens, and all their host have I +commanded. + +45:13 I have raised him up in righteousness, and I will direct all his +ways: he shall build my city, and he shall let go my captives, not for +price nor reward, saith the LORD of hosts. + +45:14 Thus saith the LORD, The labour of Egypt, and merchandise of +Ethiopia and of the Sabeans, men of stature, shall come over unto +thee, and they shall be thine: they shall come after thee; in chains +they shall come over, and they shall fall down unto thee, they shall +make supplication unto thee, saying, Surely God is in thee; and there +is none else, there is no God. + +45:15 Verily thou art a God that hidest thyself, O God of Israel, the +Saviour. + +45:16 They shall be ashamed, and also confounded, all of them: they +shall go to confusion together that are makers of idols. +$FG$ +$IV,1$----09/16/13 22:29:12----$IV,0$ + +Highs and lows balance. + +It is by being persecuted that you gain blessings. + +God is perfectly just. + +God says... +$FG,4$nets extol mixture tutor creation lie spreads Ergo perfected complain Oxford status deriders strengthenest acuteness brim Right smarting stumbling without betters righteous convertedst girded learner entangled plains thither knew boundary caresses intervals whosoever passible urge Esau coals nostrils contributions temperance manifestation devoted vineyard physician truer indications surfeiting devout perfecting Domain habitation benefits ravish resemble compact Saints raised Ours songs mind err silver If angels contentious Manichaean hatred forgetting viper bosom endures fashioned third live$FG$ + +$IV,1$----09/16/13 22:37:24----$IV,0$ + +$TX+HTML,"Someone posted this.","http://en.wikipedia.org/wiki/Starlite"$ + +Poem: + +Star light, the Moon is bright. +How still, how crisp is this night. +The snow is damp in drifts, such height. +This is pleasant, this is delight. + +God says... +$FG,4$pomegranates on a side; and all +the pomegranates upon the network were an hundred round about. + +52:24 And the captain of the guard took Seraiah the chief priest, and +Zephaniah the second priest, and the three keepers of the door: 52:25 +He took also out of the city an eunuch, which had the charge of the +men of war; and seven men of them that were near the king's person, +which were found in the city; and the principal scribe of the host, +who mustered the people of the land; and threescore men of the people +of$FG$ + +I forgot -- it was about Christmas lights in a still Christmas night. + +Mustard gas. + +$IV,1$----09/16/13 22:59:56----$IV,0$ + +$TX+HTML,"A guy's father died.","http://www.dayswithmyfather.com"$ + +That guy has an art talent. + +You wanna recruit anybody, God? +For the temple or something? +I'll bet You would talk to Him. + +God says... +$FG,4$ them. + +34:11 For thus saith the Lord GOD; Behold, I, even I, will both search +my sheep, and seek them out. + +34:12 As a shepherd seeketh out his flock in the day that he is among +his sheep that are scattered; so will I seek out my sheep, and will +deliver them out of all places where they have been scattered in the +cloudy and dark day. + +34:13 And I will bring them out from the people, and gather them from +the countries, and will bring them to their own land, and feed them +upon the mountains of Israel by the$FG$ + +$IV,1$----09/16/13 23:44:12----$IV,0$ + +Poem: + +Lilypads and seaweed grass +Frog go alaunching. +A school can't pass, +This traffic is staunching. + +God says... +$FG,4$bitants of the land, and dwell therein: +for I have given you the land to possess it. + +33:54 And ye shall divide the land by lot for an inheritance among +your families: and to the more ye shall give the more inheritance, and +to the fewer ye shall give the less inheritance: every man's +inheritance shall be in the place where his lot falleth; according to +the tribes of your fathers ye shall inherit. + +33:55 But if ye will not drive out the inhabitants of the land from +before you; then it shall come to pass, tha$FG$ + +$IV,1$----09/16/13 23:59:11----$IV,0$ + +That one kinda sounded like a spell. I know a spell when I see one. + +Whatchu think, God? + +God says... +$FG,4$effected ungodliness carry fixed defers doors feed meddle moreover heareth privately worthy proffer song burning haunt apparently shape May derides trifles gathers short Photinus acute Blessedness friend mangled praises gleameth buzzed deceive bargain on maidens fugitives poets models nurse sail offer OR crossed END forthcoming offer lingered caverns appears disordered drawest dotages cheered easily or raged finished heaped$FG$ + diff --git a/TempleOS/Accts/TS/Wb2/Rants/TAD/Rant130917.TXT b/TempleOS/Accts/TS/Wb2/Rants/TAD/Rant130917.TXT new file mode 100644 index 0000000..0221765 --- /dev/null +++ b/TempleOS/Accts/TS/Wb2/Rants/TAD/Rant130917.TXT @@ -0,0 +1,2322 @@ +$WW,1$$IV,1$----09/17/13 00:25:02----$IV,0$ + +What do You think of Scotland, God? + +Mel Gibson's pretty crazy, huh? He seems less crazy if you know God exists. + +God says... +$FG,4$that destroyest the temple, and buildest it in three +days, 15:30 Save thyself, and come down from the cross. + +15:31 Likewise also the chief priests mocking said among themselves +with the scribes, He saved others; himself he cannot save. + +15:32 Let Christ the King of Israel descend now from the cross, that +we may see and believe. And they that were crucified with him reviled +him. + +15:33 And when the sixth hour was come, there was darkness over the +whole land until the ninth hour. + +15:34 And at the ninth hour$FG$ + +I guess he's doing a movie on Macabees. Your favorite saint is Santa, huh, God? LOL! + +God says... +$FG,4$hall go up first +to the battle against the children of Benjamin? And the LORD said, +Judah shall go up first. + +20:19 And the children of Israel rose up in the morning, and encamped +against Gibeah. + +20:20 And the men of Israel went out to battle against Benjamin; and +the men of Israel put themselves in array to fight against them at +Gibeah. + +20:21 And the children of Benjamin came forth out of Gibeah, and +destroyed down to the ground of the Israelites that day twenty and two +thousand men. + +20:22 And the peopl$FG$ + +You like Robert Frost? + +God says... +$FG,4$ man, makest thyself God. + +10:34 Jesus answered them, Is it not written in your law, I said, Ye +are gods? 10:35 If he called them gods, unto whom the word of God +came, and the scripture cannot be broken; 10:36 Say ye of him, whom +the Father hath sanctified, and sent into the world, Thou blasphemest; +because I said, I am the Son of God? 10:37 If I do not the works of +my Father, believe me not. + +10:38 But if I do, though ye believe not me, believe the works: that +ye may know, and believe, that the Father is$FG$ + +In a Brave Heart voice. + +Mel Gibson kinda self-destructed, huh. + +You like us better than Australia, right? + +God says... +$FG,4$nce of understanding, to the +acknowledgement of the mystery of God, and of the Father, and of Christ; +2:3 In whom are hid all the treasures of wisdom and knowledge. + +2:4 And this I say, lest any man should beguile you with enticing words. + +2:5 For though I be absent in the flesh, yet am I with you in the spirit, +joying and beholding your order, and the stedfastness of your faith in +Christ. + +2:6 As ye have therefore received Christ Jesus the Lord, so walk ye in +him: +2:7 Rooted and built up in him, and s$FG$ + +ROFLMAO + +$IV,1$----09/17/13 00:43:58----$IV,0$ + +What's black and white and red all-over? + +$TX+HTML,"News Paper","http://www.theguardian.com/books/booksblog/2013/sep/16/thomas-pynchon-bleeding-edge"$. + +You like Superman, God? + +You like Prince Valiant, You said. + +Your favorite thing on TV is soap operas and You said You don't pay attention to young men. I'll bet you got sick of them after years and years. They are simple creatures. + +You said You liked High Lander. (God laughed) + +It's good hearted. You said Shakespeare had a vile heart. + +God says... +$FG,4$ot Job sin with his lips. + +2:11 Now when Job's three friends heard of all this evil that was come +upon him, they came every one from his own place; Eliphaz the +Temanite, and Bildad the Shuhite, and Zophar the Naamathite: for they +had made an appointment together to come to mourn with him and to +comfort him. + +2:12 And when they lifted up their eyes afar off, and knew him not, +they lifted up their voice, and wept; and they rent every one his +mantle, and sprinkled dust upon their heads toward heaven. + +2:13 So$FG$ + +Nobody knows You, huh, God. + +You like Maude? + +God says... +$FG,4$e law. + +4:1 What shall we say then that Abraham our father, as pertaining to +the flesh, hath found? 4:2 For if Abraham were justified by works, he +hath whereof to glory; but not before God. + +4:3 For what saith the scripture? Abraham believed God, and it was +counted unto him for righteousness. + +4:4 Now to him that worketh is the reward not reckoned of grace, but +of debt. + +4:5 But to him that worketh not, but believeth on him that justifieth +the ungodly, his faith is counted for righteousness. + +4:6 Even as D$FG$ + +I think I need to do better offerings. Sigh. + +Poem: + +Blue and Gray +------------- + +When grey turns blue +more die of flu. +Pennies are not expendable. +A hand is lendable. + +God says... +$FG,4$, and said unto them in +his doctrine, 4:3 Hearken; Behold, there went out a sower to sow: 4:4 +And it came to pass, as he sowed, some fell by the way side, and the +fowls of the air came and devoured it up. + +4:5 And some fell on stony ground, where it had not much earth; and +immediately it sprang up, because it had no depth of earth: 4:6 But +when the sun was up, it was scorched; and because it had no root, it +withered away. + +4:7 And some fell among thorns, and the thorns grew up, and choked it, +and it yielded$FG$ + +God says... +$FG,4$detail travail covetousness prosper VERSIONS distributed defined each quiet repute$FG$ + +$IV,1$----09/17/13 01:13:33----$IV,0$ + +Kiss my berds, God. Their snuggled heads are buried in they're backs. They snuggled deeper. + +God says... +$FG,4$nsel of the wicked; from the +insurrection of the workers of iniquity: + +64:3 Who whet their tongue like a sword, and bend their bows to shoot +their arrows, even bitter words: + +64:4 That they may shoot in secret at the perfect: suddenly do they +shoot at him, and fear not. + +64:5 They encourage themselves in an evil matter: they commune of +laying snares privily; they say, Who shall see them? + +64:6 They search out iniquities; they accomplish a diligent search: +both the inward thought of every one of them, and th$FG$ + +Kiss my words, God? + +God says... +$FG,4$pour fishes gallantry so pity regulate talked bewailing experienced Unchangeable disk depends fear overturned liker Would calumnies lovest debated 300 unceasing rebuked enlightening seated$FG$ + +$IV,1$----09/17/13 01:24:40----$IV,0$ + +I think we got demons. Hold-on. New channel. LOL + +What's new with elephants, God? + +Why didn't You make them smartest? + +God says... +$FG,4$ddle watch; and they had +but newly set the watch: and they blew the trumpets, and brake the +pitchers that were in their hands. + +7:20 And the three companies blew the trumpets, and brake the +pitchers, and held the lamps in their left hands, and the trumpets in +their right hands to blow withal: and they cried, The sword of the +LORD, and of Gideon. + +7:21 And they stood every man in his place round about the camp; and +all the host ran, and cried, and fled. + +7:22 And the three hundred blew the trumpets, and the$FG$ + +LOL! And, the Neanderthals slew the mammoths. LOL + +God says... +$FG,4$any safety serviceable baggage shed stuff depend animals healthfully dares$FG$ + +They put sheds on elephants. + +$IV,1$----09/17/13 01:41:37----$IV,0$ + +Superman seems more childish than Batman. + +You, as Creator, prefer Yer own Creation. You said that. Any movie that's not Yer own stuff is bad. Booo! + +God says... +$FG,4$11:5 Now Jesus loved Martha, and her sister, and Lazarus. + +11:6 When he had heard therefore that he was sick, he abode two days +still in the same place where he was. + +11:7 Then after that saith he to his disciples, Let us go into Judaea +again. + +11:8 His disciples say unto him, Master, the Jews of late sought to +stone thee; and goest thou thither again? 11:9 Jesus answered, Are +there not twelve hours in the day? If any man walk in the day, he +stumbleth not, because he seeth the light of this world. + +11:10$FG$ + +LOL. + +$IV,1$----09/17/13 01:48:50----$IV,0$ + +Not, sure but someone at OSDev might be complaining about $LK,"HolyC","FI:::/TempleOS/Doc/HolyC.TXT.Z"$. I made my own language. + +Someone wants a 3-Hex-byte $TX+HTML,"quantum random number","http://qrng.anu.edu.au/NIST.php"$. + +Result: 3FC32C +4178732 +There are 100,000 lines in the King James so we take modulo 100,000 which is easy. + +Line:78732 + +God says... +$FG,4$19:15 And he laid his hands on them, and departed thence. + +19:16 And, behold, one came and said unto him, Good Master, what good +thing shall I do, that I may have eternal life? 19:17 And he said +unto him, Why callest thou me good? there is none good but one, that +is, God: but if thou wilt enter into life, keep the commandments. + +19:18 He saith unto him, Which? Jesus said, Thou shalt do no murder, +Thou shalt not commit adultery, Thou shalt not steal, Thou shalt not +bear false witness, 19:19 Honour thy father and thy mother: and, Thou +shalt love thy neighbour as thyself. + +19:20 The young man saith unto him, All these things have I kept from +my youth up: what lack I yet? 19:21 Jesus said unto him, If thou wilt +be perfect, go and sell that thou hast, and give to the poor, and thou +shalt have treasure in heaven: and come and follow me. + +19:22 But when the young man heard that saying, he went away +sorrowful: for he had great possessions. + +19:23 Then said Jesus unto his disciples, Verily I say unto you, That +a rich man shall hardly enter into the kingdom of heaven. + +19:24 And again I say unto you, It is easier for a camel to go through +the eye of a needle, than for a rich man to enter into the kingdom of +God. + +19:25 When his disciples heard it, they were exceedingly amazed, +saying, Who then can be saved? 19:26 But Jesus beheld them, and said +unto them, With men this is impossible; but with God all things are +possible. + +19:27 Then answered Peter and said unto him, Behold, we have forsaken +all, and followed thee; what shall we have therefore? 19:28 And Jesus +said unto them, Verily I say unto you, That ye which have followed me, +in the regeneration when the Son of man shall sit in the throne of his +glory, ye also shall sit upon twelve thrones, judging the twelve +tribes of Israel.$FG$ + +The commandment is you have to do an offering before getting God to talk. LOL. You get back what you put into it -- the same amount of love. + +$IV,1$----09/17/13 02:00:40----$IV,0$ + +All my source code is on-line and 100% is on every distribution. + +$LK,"Source Code By File","FF:::/TempleOS/Accts/TS/Wb2/LineCnt.TXT,KStart.CPP"$ + +Lemme do an offering. + +What kind of game could You make if you used every byte and every cycle of my current machine? + +God says... +E7F640 +15201856 +Line:01856 +$FG,4$unto him. + +21:6 And Sarah said, God hath made me to laugh, so that all that hear +will laugh with me. + +21:7 And she said, Who would have said unto Abraham, that Sarah should +have given children suck? for I have born him a son in his old age. + +21:8 And the child grew, and was weaned: and Abraham made a great +feast the same day that Isaac was weaned. + +21:9 And Sarah saw the son of Hagar the Egyptian, which she had born +unto Abraham, mocking. + +21:10 Wherefore she said unto Abraham, Cast out this bondwoman and her +son: for the son of this bondwoman shall not be heir with my son, even +with Isaac. + +21:11 And the thing was very grievous in Abraham's sight because of +his son. + +21:12 And God said unto Abraham, Let it not be grievous in thy sight +because of the lad, and because of thy bondwoman; in all that Sarah +hath said unto thee, hearken unto her voice; for in Isaac shall thy +seed be called. + +21:13 And also of the son of the bondwoman will I make a nation, +because he is thy seed. + +21:14 And Abraham rose up early in the morning, and took bread, and a +bottle of water, and gave it unto Hagar, putting it on her shoulder, +and the child, and sent her away: and she departed, and wandered in +the wilderness of Beersheba.$FG$ + +$IV,1$----09/17/13 02:19:47----$IV,0$ + +What do You think of Google, God? What if You had a brain a mile x mile x mile? + +What could You do with that? (God's laughing) + +God says... + +E4FC71 +15006833 +Line:6833 + +God says... +$FG,4$descended upon it in fire: and the smoke thereof ascended as the smoke +of a furnace, and the whole mount quaked greatly. + +19:19 And when the voice of the trumpet sounded long, and waxed louder +and louder, Moses spake, and God answered him by a voice. + +19:20 And the LORD came down upon mount Sinai, on the top of the +mount: and the LORD called Moses up to the top of the mount; and Moses +went up. + +19:21 And the LORD said unto Moses, Go down, charge the people, lest +they break through unto the LORD to gaze, and many of them perish. + +19:22 And let the priests also, which come near to the LORD, sanctify +themselves, lest the LORD break forth upon them. + +19:23 And Moses said unto the LORD, The people cannot come up to mount +Sinai: for thou chargedst us, saying, Set bounds about the mount, and +sanctify it. + +19:24 And the LORD said unto him, Away, get thee down, and thou shalt +come up, thou, and Aaron with thee: but let not the priests and the +people break through to come up unto the LORD, lest he break forth +upon them. + +19:25 So Moses went down unto the people, and spake unto them. + +20:1 And God spake all these words, saying, 20:2 I am the LORD thy +God, which have brought thee out of the land of Egypt, out of the +house of bondage.$FG$ + +$IV,1$----09/17/13 02:43:33----$IV,0$ + +I think we got niggers on the BBC. + +I saw three orangutang babies. Cute. + +Orangutang with saw. + +AE215C +11411804 +Line:11804 + +God says... +$FG,4$ +26:26 And when I have broken the staff of your bread, ten women shall +bake your bread in one oven, and they shall deliver you your bread +again by weight: and ye shall eat, and not be satisfied. + +26:27 And if ye will not for all this hearken unto me, but walk +contrary unto me; 26:28 Then I will walk contrary unto you also in +fury; and I, even I, will chastise you seven times for your sins. + +26:29 And ye shall eat the flesh of your sons, and the flesh of your +daughters shall ye eat. + +26:30 And I will destroy your high places, and cut down your images, +and cast your carcases upon the carcases of your idols, and my soul +shall abhor you. + +26:31 And I will make your cities waste, and bring your sanctuaries +unto desolation, and I will not smell the savour of your sweet odours. + +26:32 And I will bring the land into desolation: and your enemies +which dwell therein shall be astonished at it. + +26:33 And I will scatter you among the heathen, and will draw out a +sword after you: and your land shall be desolate, and your cities +waste. + +26:34 Then shall the land enjoy her sabbaths, as long as it lieth +desolate, and ye be in your enemies' land; even then shall the land +rest, and enjoy her sabbaths. + +26:35 As long as it lieth desolate it shall rest; because it did not +rest in your sabbaths, when ye dwelt upon it.$FG$ + +$IV,1$----09/17/13 02:54:09----$IV,0$ + +Not too bright, LOL. + +More niggers. + +Sigh. LOL. Stupid ones. + +Do You like photorealistic artists, God? Yer temple should be decorated with Your best works, a trophy case of Your creations. Roses. Cherubums. LOL + +$TX+HTML,"Quantum random number.","http://www.randomnumbers.info"$ + +5x[0-9] +Line:92052 + +God says... +$FG,4$16:9 Salute Urbane, our helper in Christ, and Stachys my beloved. + +16:10 Salute Apelles approved in Christ. Salute them which are of +Aristobulus' household. + +16:11 Salute Herodion my kinsman. Greet them that be of the household +of Narcissus, which are in the Lord. + +16:12 Salute Tryphena and Tryphosa, who labour in the Lord. Salute the +beloved Persis, which laboured much in the Lord. + +16:13 Salute Rufus chosen in the Lord, and his mother and mine. + +16:14 Salute Asyncritus, Phlegon, Hermas, Patrobas, Hermes, and the +brethren which are with them. + +16:15 Salute Philologus, and Julia, Nereus, and his sister, and +Olympas, and all the saints which are with them.$FG$ + +Champlain, Illinois. + +$IV,1$----09/17/13 03:09:35----$IV,0$ + +I could draw a rose. Solomon was so wise, he made decorations. + +You like Jacob, not Esau. + +You like girlymen, God? + +God says... +$FG,4$Nay, much more those members of the body, which seem to be more +feeble, are necessary: 12:23 And those members of the body, which we +think to be less honourable, upon these we bestow more abundant +honour; and our uncomely parts have more abundant comeliness. + +12:24 For our comely parts have no need: but God hath tempered the +body together, having given more abundant honour to that part which +lacked. + +12:25 That there should be no schism in the body; but that the members +should have the same care one for ano$FG$ + +We only need pretty packaging if we don't got the goods? + +God says... +$FG,4$perceivable haste forgetful constant foregoing fine handkerchief womb angel struggles$FG$ + +$IV,1$----09/17/13 03:25:00----$IV,0$ + +So, I came-up with the crazy idea of Gordon Ramsay as CEO because He'd keep the quality of the temple high. I'm not sure what kind of drugs I was on. If You like soap operas and don't like young stupid men, maybe, the logic was good. + +$TX+HTML,"Quantum random numbers.","http://www.fourmilab.ch/hotbits"$ + +7ABD03 +8043779 + +Line: 43779 + +God says... +$FG,4$light given to a man whose way is hid, and whom God hath hedged in? +3:24 For my sighing cometh before I eat, and my roarings are poured +out like the waters. + +3:25 For the thing which I greatly feared is come upon me, and that +which I was afraid of is come unto me. + +3:26 I was not in safety, neither had I rest, neither was I quiet; yet +trouble came. + +4:1 Then Eliphaz the Temanite answered and said, 4:2 If we assay to +commune with thee, wilt thou be grieved? but who can withhold himself +from speaking? 4:3 Behold, thou hast instructed many, and thou hast +strengthened the weak hands. + +4:4 Thy words have upholden him that was falling, and thou hast +strengthened the feeble knees.$FG$ + +$IV,1$----09/17/13 03:48:25----$IV,0$ + +Linus has pointed-out word-wrap. When the cursor is on column 80, it scrolls-over, and kinda screws-up. It's a little bit annoying. I made a new document format that is not ASCII text. God will just have to tell the Internet. I was gonna put a rose picture, but the translation to HTML would fail. + +$TX+HTML,"Quantum random numbers.","http://www.fourmilab.ch/hotbits"$ + +5E5E9D +6184605 +Line: 84605 +God says... +$FG,4$which be Caesar's, and unto God the things which be God's. + +20:26 And they could not take hold of his words before the people: and +they marvelled at his answer, and held their peace. + +20:27 Then came to him certain of the Sadducees, which deny that there +is any resurrection; and they asked him, 20:28 Saying, Master, Moses +wrote unto us, If any man's brother die, having a wife, and he die +without children, that his brother should take his wife, and raise up +seed unto his brother. + +20:29 There were therefore seven brethren: and the first took a wife, +and died without children. + +20:30 And the second took her to wife, and he died childless. + +20:31 And the third took her; and in like manner the seven also: and +they left no children, and died. + +20:32 Last of all the woman died also. + +20:33 Therefore in the resurrection whose wife of them is she? for +seven had her to wife.$FG$ + +$IV,1$----09/17/13 04:07:18----$IV,0$ + +If, for example, bringing Gordon on-board as CEO would me "Terry, fix wordwrap." Well, then, fuck that. LOL + +God says... +$FG,4$ Thou didst blow with thy wind, the sea covered them: they sank +as lead in the mighty waters. + +15:11 Who is like unto thee, O LORD, among the gods? who is like thee, +glorious in holiness, fearful in praises, doing wonders? 15:12 Thou +stretchedst out thy right hand, the earth swallowed them. + +15:13 Thou in thy mercy hast led forth the people which thou hast +redeemed: thou hast guided them in thy strength unto thy holy +habitation. + +15:14 The people shall hear, and be afraid: sorrow shall take hold on +the inh$FG$ + +Whatchu wanna do? Yer temple is not very popular. + +Red Fang was funny. What do You think? + +God says... +$FG,4$t were lifted up unto the dry land, that the +waters of Jordan returned unto their place, and flowed over all his +banks, as they did before. + +4:19 And the people came up out of Jordan on the tenth day of the +first month, and encamped in Gilgal, in the east border of Jericho. + +4:20 And those twelve stones, which they took out of Jordan, did +Joshua pitch in Gilgal. + +4:21 And he spake unto the children of Israel, saying, When your +children shall ask their fathers in time to come, saying, What mean +these stones?$FG$ + +$IV,1$----09/17/13 04:22:49----$IV,0$ + +Poem: + +The dog whistle +the young hear it. +I gotta take an epistle. +Yer cat's throwin' a hissy fit. + +God says... +$FG,4$hom the LORD imputeth not iniquity, and +in whose spirit there is no guile. + +32:3 When I kept silence, my bones waxed old through my roaring all +the day long. + +32:4 For day and night thy hand was heavy upon me: my moisture is +turned into the drought of summer. Selah. + +32:5 I acknowledge my sin unto thee, and mine iniquity have I not hid. +I said, I will confess my transgressions unto the LORD; and thou +forgavest the iniquity of my sin. Selah. + +32:6 For this shall every one that is godly pray unto thee in a ti$FG$ + +$IV,1$----09/17/13 04:38:44----$IV,0$ + +$FG,2$39:5 Who hath sent out the wild ass free? or who hath loosed the bands +of the wild ass? 39:6 Whose house I have made the wilderness, and the +barren land his dwellings. + +39:7 He scorneth the multitude of the city, neither regardeth he the +crying of the driver. + +39:8 The range of the mountains is his pasture, and he searcheth after +every green thing.$FG$ + +God says... +$FG,4$fair as the moon, +clear as the sun, and terrible as an army with banners? 6:11 I went +down into the garden of nuts to see the fruits of the valley, and to +see whether the vine flourished and the pomegranates budded. + +6:12 Or ever I was aware, my soul made me like the chariots of +Amminadib. + +6:13 Return, return, O Shulamite; return, return, that we may look +upon thee. What will ye see in the Shulamite? As it were the company +of two armies. + +7:1 How beautiful are thy feet with shoes, O prince's daughter! the$FG$ + +$IV,1$----09/17/13 04:49:26----$IV,0$ + +You just got to look on the bright side. + +Reality is not changing -- this is it, forever. + +You like Marvin the Martin, God? + +God says... +$FG,4$e; and let one interpret. + +14:28 But if there be no interpreter, let him keep silence in the +church; and let him speak to himself, and to God. + +14:29 Let the prophets speak two or three, and let the other judge. + +14:30 If any thing be revealed to another that sitteth by, let the +first hold his peace. + +14:31 For ye may all prophesy one by one, that all may learn, and all +may be comforted. + +14:32 And the spirits of the prophets are subject to the prophets. + +14:33 For God is not the author of confusion, but of$FG$ + +Person said, "You peaked at 24." I had a cat. + +I'm impotent -- no use for women. Delusionally, I'm popular, but not in reality. It ain't changin. Ba ha! No one to answer to--no emails, no customers. + +But I fucken get to talk to God all day and write the Bible for the next million years! + +God says... +$FG,4$membered; but his +blood will I require at thine hand. + +3:21 Nevertheless if thou warn the righteous man, that the righteous +sin not, and he doth not sin, he shall surely live, because he is +warned; also thou hast delivered thy soul. + +3:22 And the hand of the LORD was there upon me; and he said unto me, +Arise, go forth into the plain, and I will there talk with thee. + +3:23 Then I arose, and went forth into the plain: and, behold, the +glory of the LORD stood there, as the glory which I saw by the river +of Che$FG$ + +$IV,1$----09/17/13 04:59:40----$IV,0$ + +Ya know? I hear things I did not hear when I was young. My poem is slightly flawed. + +God says... +$FG,4$n the two ends thereof. + +37:9 And the cherubims spread out their wings on high, and covered +with their wings over the mercy seat, with their faces one to another; +even to the mercy seatward were the faces of the cherubims. + +37:10 And he made the table of shittim wood: two cubits was the length +thereof, and a cubit the breadth thereof, and a cubit and a half the +height thereof: 37:11 And he overlaid it with pure gold, and made +thereunto a crown of gold round about. + +37:12 Also he made thereunto a border of a$FG$ + +Quality control would definitely apply to poems, 'cause most of mine are flawed. Ya get two meanings dead-on, but a third is stray. It's sucks. + +God says... +$FG,4$is mighty men is made red, the valiant men are in +scarlet: the chariots shall be with flaming torches in the day of his +preparation, and the fir trees shall be terribly shaken. + +2:4 The chariots shall rage in the streets, they shall justle one +against another in the broad ways: they shall seem like torches, they +shall run like the lightnings. + +2:5 He shall recount his worthies: they shall stumble in their walk; +they shall make haste to the wall thereof, and the defence shall be +prepared. + +2:6 The gates of t$FG$ + +$IV,1$----09/17/13 05:08:50----$IV,0$ + +Story said something about Kevin and extortion. + +There is nothing. + +I have confessed everything. Yer turn will come. + +You are obviously in denial on God. + +Fucken retard niggers. + +Did you hear? I'm fucken writing the Bible. + +You wanna be in the Bible? + +God says... +$FG,4$kron: and the remnant of the Philistines shall perish, +saith the Lord GOD. + +1:9 Thus saith the LORD; For three transgressions of Tyrus, and for +four, I will not turn away the punishment thereof; because they +delivered up the whole captivity to Edom, and remembered not the +brotherly covenant: 1:10 But I will send a fire on the wall of Tyrus, +which shall devour the palaces thereof. + +1:11 Thus saith the LORD; For three transgressions of Edom, and for +four, I will not turn away the punishment thereof; because h$FG$ + +$IV,1$----09/17/13 05:12:52----$IV,0$ + +Just imagine if Joseph Smith had it all on video, golden tablets, and all. + +God says... +$FG,4$, but admonish him as a brother. + +3:16 Now the Lord of peace himself give you peace always by all means. +The Lord be with you all. + +3:17 The salutation of Paul with mine own hand, which is the token in +every epistle: so I write. + +3:18 The grace of our Lord Jesus Christ be with you all. Amen. + + + + +The First Epistle of Paul the Apostle to Timothy + + +1:1 Paul, an apostle of Jesus Christ by the commandment of God our +Saviour, and Lord Jesus Christ, which is our hope; 1:2 Unto Timothy, +my own son in the faith: Gra$FG$ + +$IV,1$----09/17/13 05:16:02----$IV,0$ + +What kind of sane Israeli would fuck with Moses while lightening was shooting-out his ass? That's just not goona happen. Would Moses even worry about this? He could confess murder, and laugh. + +God says... +$FG,4$ +the rulers and the people, 23:14 Said unto them, Ye have brought this +man unto me, as one that perverteth the people: and, behold, I, having +examined him before you, have found no fault in this man touching +those things whereof ye accuse him: 23:15 No, nor yet Herod: for I +sent you to him; and, lo, nothing worthy of death is done unto him. + +23:16 I will therefore chastise him, and release him. + +23:17 (For of necessity he must release one unto them at the feast.) +23:18 And they cried out all at once, saying$FG$ + +God figure! They want to put in the Bible that Danny made me suck his dick when I was 7-8. Danny said Kevin made Keith suck his dick. + +Ummm... I don't think this will win points for you with God. Ya think! Retard nigger. Here's a secret -- just worry what God thinks and not man. Retard nigger! + +God says... +$FG,4$n Jesus, that +appeared unto thee in the way as thou camest, hath sent me, that thou +mightest receive thy sight, and be filled with the Holy Ghost. + +9:18 And immediately there fell from his eyes as it had been scales: +and he received sight forthwith, and arose, and was baptized. + +9:19 And when he had received meat, he was strengthened. Then was Saul +certain days with the disciples which were at Damascus. + +9:20 And straightway he preached Christ in the synagogues, that he is +the Son of God. + +9:21 But all that$FG$ + +$IV,1$----09/17/13 05:28:18----$IV,0$ + +Really retarded. + +I got Casey to test a battery with his tongue. + +I took picture of Paula. She was holding balloons. ROFLMAO + +I went to the store with Casey and Paula. We stopped under a political sign. She asked if we were going to play doctor and I got the Hell out of there! + +Retard niggers! I'm a saint. Just call me "Saint Terry". + +God says... +$FG,4$ty man of valour, and with him +armed men with bow and shield two hundred thousand. + +17:18 And next him was Jehozabad, and with him an hundred and +fourscore thousand ready prepared for the war. + +17:19 These waited on the king, beside those whom the king put in the +fenced cities throughout all Judah. + +18:1 Now Jehoshaphat had riches and honour in abundance, and joined +affinity with Ahab. + +18:2 And after certain years he went down to Ahab to Samaria. And Ahab +killed sheep and oxen for him in abundance, and for$FG$ + +$IV,1$----09/17/13 05:34:53----$IV,0$ + +Get this! The FBI fuckin with Moses when lightening shooting out his ass. ROFLMAO + +God says... +$FG,4$ed. + +26:48 Of the sons of Naphtali after their families: of Jahzeel, the +family of the Jahzeelites: of Guni, the family of the Gunites: 26:49 +Of Jezer, the family of the Jezerites: of Shillem, the family of the +Shillemites. + +26:50 These are the families of Naphtali according to their families: +and they that were numbered of them were forty and five thousand and +four hundred. + +26:51 These were the numbered of the children of Israel, six hundred +thousand and a thousand seven hundred and thirty. + +26:52 And the$FG$ + +$IV,1$----09/17/13 05:37:28----$IV,0$ + +Look, nigger. You just gotta worry what God thinks, not man. Ya ain't to smart in da head! Ya think? + +God says... +$FG,4$measured the earth: he beheld, and drove asunder the +nations; and the everlasting mountains were scattered, the perpetual +hills did bow: his ways are everlasting. + +3:7 I saw the tents of Cushan in affliction: and the curtains of the +land of Midian did tremble. + +3:8 Was the LORD displeased against the rivers? was thine anger +against the rivers? was thy wrath against the sea, that thou didst +ride upon thine horses and thy chariots of salvation? 3:9 Thy bow was +made quite naked, according to the oaths of the$FG$ + +$IV,1$----09/17/13 05:41:54----$IV,0$ + +I'm impotant -- no use for women. +I will never have a job, nigger. +I will never employ anyone, nigger. +I don't talk to anyone. Pete Gadwa once in a while. No emails. +I just talk to God all day. + +You, on da other hand got the same God as me. If you ain't the biggest retard-nigger in the Bible! + +God says... +$FG,4$d all the souls that were therein. + +10:38 And Joshua returned, and all Israel with him, to Debir; and +fought against it: 10:39 And he took it, and the king thereof, and all +the cities thereof; and they smote them with the edge of the sword, +and utterly destroyed all the souls that were therein; he left none +remaining: as he had done to Hebron, so he did to Debir, and to the +king thereof; as he had done also to Libnah, and to her king. + +10:40 So Joshua smote all the country of the hills, and of the south, +an$FG$ + +$IV,1$----09/17/13 05:46:34----$IV,0$ + +Whatchu-wanna do? You gonna fuck with the Queen? + +God says... +$FG,4$ds; 7:10 And cried with a loud voice, +saying, Salvation to our God which sitteth upon the throne, and unto +the Lamb. + +7:11 And all the angels stood round about the throne, and about the +elders and the four beasts, and fell before the throne on their faces, +and worshipped God, 7:12 Saying, Amen: Blessing, and glory, and +wisdom, and thanksgiving, and honour, and power, and might, be unto +our God for ever and ever. Amen. + +7:13 And one of the elders answered, saying unto me, What are these +which are arrayed in$FG$$FG$ + +$IV,1$----09/17/13 05:49:48----$IV,0$ + +Get this! FBI fuckin' with Moses when lightening still shootin' out his ass! ROFLMAO + +God says... +$FG,4$teen. + +7:12 The children of Elam, a thousand two hundred fifty and four. + +7:13 The children of Zattu, eight hundred forty and five. + +7:14 The children of Zaccai, seven hundred and threescore. + +7:15 The children of Binnui, six hundred forty and eight. + +7:16 The children of Bebai, six hundred twenty and eight. + +7:17 The children of Azgad, two thousand three hundred twenty and two. + +7:18 The children of Adonikam, six hundred threescore and seven. + +7:19 The children of Bigvai, two thousand threescore and seven.$FG$ + +$IV,1$----09/17/13 06:06:44----$IV,0$ + +Stoopidest niggers in the Bible. + +I am writing the Bible and I want yer names. + +The fuck is yer major malfunction, you fucken FBI niggers? + +God says... +$FG,4$as +trodden down, and the fowls of the air devoured it. + +8:6 And some fell upon a rock; and as soon as it was sprung up, it +withered away, because it lacked moisture. + +8:7 And some fell among thorns; and the thorns sprang up with it, and +choked it. + +8:8 And other fell on good ground, and sprang up, and bare fruit an +hundredfold. And when he had said these things, he cried, He that hath +ears to hear, let him hear. + +8:9 And his disciples asked him, saying, What might this parable be? +8:10 And he said, Unto you$FG$ + +$IV,1$----09/17/13 06:11:15----$IV,0$ + +The FBI is at war with God. They are thorns. +The Queen is at war with God. + +God says... +$FG,4$ur God hath done unto these two kings: so shall +the LORD do unto all the kingdoms whither thou passest. + +3:22 Ye shall not fear them: for the LORD your God he shall fight for +you. + +3:23 And I besought the LORD at that time, saying, 3:24 O Lord GOD, +thou hast begun to shew thy servant thy greatness, and thy mighty +hand: for what God is there in heaven or in earth, that can do +according to thy works, and according to thy might? 3:25 I pray thee, +let me go over, and see the good land that is beyond Jordan, th$FG$ + +I'm pretty injured. Avenge me. Fucken-em up. + +God says... +$FG,4$alt embrace a son. And she said, Nay, my lord, thou man of God, +do not lie unto thine handmaid. + +4:17 And the woman conceived, and bare a son at that season that +Elisha had said unto her, according to the time of life. + +4:18 And when the child was grown, it fell on a day, that he went out +to his father to the reapers. + +4:19 And he said unto his father, My head, my head. And he said to a +lad, Carry him to his mother. + +4:20 And when he had taken him, and brought him to his mother, he sat +on her knees till noo$FG$ + +$IV,1$----09/17/13 06:21:10----$IV,0$ + +You would think the FBI noticed I don't pirate and don't view porn. +Completely incompetant retard niggers who STILL haven't figure-out ... haven't got a fucken clue what's gonna hit them. God. + +I am writing the Bible. + +Yeah, I tried to get a dalmation to lick my dick in 1985. + +God says... +$FG,4$gypt; they committed whoredoms in their youth: +there were their breasts pressed, and there they bruised the teats of +their virginity. + +23:4 And the names of them were Aholah the elder, and Aholibah her +sister: and they were mine, and they bare sons and daughters. Thus +were their names; Samaria is Aholah, and Jerusalem Aholibah. + +23:5 And Aholah played the harlot when she was mine; and she doted on +her lovers, on the Assyrians her neighbours, 23:6 Which were clothed +with blue, captains and rulers, all of the$FG$ + +$IV,1$----09/17/13 06:33:58----$IV,0$ + +Highs and lows balance. Seems like pleasures and pains balance. Yer too young. + +God says... +$FG,4$of God. + +11:13 Judge in yourselves: is it comely that a woman pray unto God +uncovered? 11:14 Doth not even nature itself teach you, that, if a +man have long hair, it is a shame unto him? 11:15 But if a woman have +long hair, it is a glory to her: for her hair is given her for a +covering. + +11:16 But if any man seem to be contentious, we have no such custom, +neither the churches of God. + +11:17 Now in this that I declare unto you I praise you not, that ye +come together not for the better, but for the worse.$FG$ + +$IV,1$----09/17/13 06:43:24----$IV,0$ + +In 1993, I wrote a TASM program that launched from real-mode DOS as a DOS application and changed to protected mode. I got multitasking, windowing and echoing keyboard to text mode working... and set it aside. I did many projects like that. I did an A2D D2A ISA card for my computer that measured bode plots and calculated induction. I did SySSim, the predecessor to SimStructure. The ISA card data aquisition project was my favorite. + +In 2004, I got my code and ran it with TASM and FreeDOS. I used VC editor for long editing sessions by booting to windows. FreeDOS is no-longer real-mode. + +After getting keyboard functioning, I had to do command-line. I made a C/C++ JIT interpretor in ASM. I had done that for SimStructure and had done expression evaluators -- byte-code generating for the Ticketmaster Report Generator in 1991. + +I inlined and patched the templates for byte-code operations, making a true, unoptimized compiler. I optimized over the next ten years and converted as much ASM to HolyC as possible. The HolyC language gradually evolved. + +You can search the Internet Archives. + +http://www.simstructure.hare.com May 27, 2004 has a download +http://www.justrighteous.org +http://www.losethos.com + +God says... +$FG,4$shalt not curse the deaf, nor put a stumblingblock before +the blind, but shalt fear thy God: I am the LORD. + +19:15 Ye shall do no unrighteousness in judgment: thou shalt not +respect the person of the poor, nor honor the person of the mighty: +but in righteousness shalt thou judge thy neighbour. + +19:16 Thou shalt not go up and down as a talebearer among thy people: +neither shalt thou stand against the blood of thy neighbour; I am the +LORD. + +19:17 Thou shalt not hate thy brother in thine heart: thou shalt in +a$FG$ + +Now, You tell them. Ya bastard. + +God says... +$FG,4$http ostentation surf gathering arose officers boils mansion Faustus Helper warfare warfare html careth receive touch doubtful rise affliction spacious Place puffed marrying marketplace babes o piecemeal asketh eyes Master furious fence encourage stick forbare prosperities condensed herself teaches Catechumen bepraised unlooked create semblance Sacraments Italian world decline intimated actual horror Ordainer solicited pit allay incredible DISTRIBUTION forbidden deceits fouls condition sect lightsome sloth clay eagerly advice preserve shed Whosoever Thefts begannest replenished suggest dispensest sustenance hang corporeal Food seasons knowledge reacheth gladdened soughtest ministry Never renounce alteration hugging pains$FG$ + +$IV,1$----09/17/13 07:08:08----$IV,0$ + +I'm just laughing at the stoopidest nigger FBI guys. As you judge you will be judged ROFLMAO. + +God says... +$FG,4$hall reward thee openly. + +6:5 And when thou prayest, thou shalt not be as the hypocrites are: +for they love to pray standing in the synagogues and in the corners of +the streets, that they may be seen of men. Verily I say unto you, They +have their reward. + +6:6 But thou, when thou prayest, enter into thy closet, and when thou +hast shut thy door, pray to thy Father which is in secret; and thy +Father which seeth in secret shall reward thee openly. + +6:7 But when ye pray, use not vain repetitions, as the heathen$FG$ + +$IV,1$----09/17/13 07:25:25----$IV,0$ + +I don't think it's quite set-in. Moses comes down the mount with $LK,"HolyC","FI:::/TempleOS/Doc/HolyC.TXT.Z"$ and a 22,000 line JIT/AOT 64-bit compiler assembler. + +Now, we're going to change the alphabet. + +God says... +$FG,4$e upon his head. So they set a +fair mitre upon his head, and clothed him with garments. And the angel +of the LORD stood by. + +3:6 And the angel of the LORD protested unto Joshua, saying, 3:7 Thus +saith the LORD of hosts; If thou wilt walk in my ways, and if thou +wilt keep my charge, then thou shalt also judge my house, and shalt +also keep my courts, and I will give thee places to walk among these +that stand by. + +3:8 Hear now, O Joshua the high priest, thou, and thy fellows that sit +before thee: for they are$FG$ + +$IV,1$----09/17/13 07:29:51----$IV,0$ + +Hold-on! I ain't so dumb. That sounds like a J.O.B. + +I don't want Obama's job or the Pope's job. + +I want... You, know... this job. + +God says... +$FG,4$nd there was given unto him a great sword. + +6:5 And when he had opened the third seal, I heard the third beast +say, Come and see. And I beheld, and lo a black horse; and he that sat +on him had a pair of balances in his hand. + +6:6 And I heard a voice in the midst of the four beasts say, A measure +of wheat for a penny, and three measures of barley for a penny; and +see thou hurt not the oil and the wine. + +6:7 And when he had opened the fourth seal, I heard the voice of the +fourth beast say, Come and see. + +6:8$FG$ + +$IV,1$----09/17/13 07:35:37----$IV,0$ + +I guess I could write specs on HolyC. + +The rule is... when a value is loaded into a register, it is promoted to 64-bit. It is then calculated as a 64-bit value until placed back. + +The consequences are hard to explain. + +I do not use register variables except local function variables, so there is no volitile issue. + +---- + +The stack size is fixed at, like, 128K. You should not use big stack objects -- use the Heap. + +God says... +$FG,4$rought in the tithe of oxen and sheep, +and the tithe of holy things which were consecrated unto the LORD +their God, and laid them by heaps. + +31:7 In the third month they began to lay the foundation of the heaps, +and finished them in the seventh month. + +31:8 And when Hezekiah and the princes came and saw the heaps, they +blessed the LORD, and his people Israel. + +31:9 Then Hezekiah questioned with the priests and the Levites +concerning the heaps. + +31:10 And Azariah the chief priest of the house of Zadok answer$FG$ + +I used Denny's heap algorithm, sorta. + +Heaps allocate from a block pool. Code and Data are separate blook pools. Memory owned by a task is recorded, so it gets freed on death. + +An array of linked listed for freed items for 0-1024 byte objects, stay with task. + +Items from 1024 bytes to 128K are allocated in 512 byte pages and stored upon return in an array of linked lists for each page size. + +Items from 128K upward are allocated in slightly larger than powers of two chunks and returned into an array of linked lists by powers of two chunks. + +God says... +$FG,4$are with thee be strong. + +16:22 So they spread Absalom a tent upon the top of the house; and +Absalom went in unto his father's concubines in the sight of all +Israel. + +16:23 And the counsel of Ahithophel, which he counselled in those +days, was as if a man had enquired at the oracle of God: so was all +the counsel of Ahithophel both with David and with Absalom. + +17:1 Moreover Ahithophel said unto Absalom, Let me now choose out +twelve thousand men, and I will arise and pursue after David this +night: 17:2 And I$FG$ + +A hit hop hell. + +$IV,1$----09/17/13 07:46:48----$IV,0$ + +I am the fucken best programmer on Earth, coming down the mountain with a divine-intellect operating system. + +I am not asking, I am telling! + +Niggers. + +God says... +$FG,4$se his riches, and he that +giveth to the rich, shall surely come to want. + +22:17 Bow down thine ear, and hear the words of the wise, and apply +thine heart unto my knowledge. + +22:18 For it is a pleasant thing if thou keep them within thee; they +shall withal be fitted in thy lips. + +22:19 That thy trust may be in the LORD, I have made known to thee +this day, even to thee. + +22:20 Have not I written to thee excellent things in counsels and +knowledge, 22:21 That I might make thee know the certainty of the +words o$FG$ + +$IV,1$----09/17/13 07:58:24----$IV,0$ + +I am telling, not asking. + +class AllocedMemChunk +{ + U64 size; + U0 start + +} + +class FreedMemChunk +{ + FreedMemChunk *next; + +} free_store //array of 1024 bytes, not indexed like C but asm + + +U0 Free(AllocedMemChunk *_m) +{ + FreedMemChunk *m=_m(U8 *)-offset(AllocedMemChunk.start); + I64 size=m->size; // must be 8 aligned. + m->next=*(free_store(U8 *)+size)(FreedMemChunk *); + *(free_store(U8 *)+size)(FreedMemChunk *)=m; +} + +/* +ASM rocks! LOL + +*/ + + +I am telling, not asking. + +God says... +$FG,4$ thee. + +14:21 Do not abhor us, for thy name's sake, do not disgrace the throne +of thy glory: remember, break not thy covenant with us. + +14:22 Are there any among the vanities of the Gentiles that can cause +rain? or can the heavens give showers? art not thou he, O LORD our +God? therefore we will wait upon thee: for thou hast made all these +things. + +15:1 Then said the LORD unto me, Though Moses and Samuel stood before +me, yet my mind could not be toward this people: cast them out of my +sight, and let them go$FG$ + +$IV,1$----09/17/13 08:25:35----$IV,0$ + +God damn, stoopid niggers. Church or FBI or some shit. +Fucken harassing me with children, watching my crotch to see if I get a boner. +I took a swing at one of them. Smash their little heads. + +God says... +$FG,4$all see it, and fear; Gaza also shall see it, and be +very sorrowful, and Ekron; for her expectation shall be ashamed; and +the king shall perish from Gaza, and Ashkelon shall not be inhabited. + +9:6 And a bastard shall dwell in Ashdod, and I will cut off the pride +of the Philistines. + +9:7 And I will take away his blood out of his mouth, and his +abominations from between his teeth: but he that remaineth, even he, +shall be for our God, and he shall be as a governor in Judah, and +Ekron as a Jebusite. + +9:8 And I$FG$ + +D.O.D. + +$IV,1$----09/17/13 08:30:06----$IV,0$ + +If someone attacks you, that is your enemy. I want some arabs to attack my enemies. They suck, though. + +God says... +$FG,4$3:4 And he said unto me, Son of man, go, get thee unto the house of +Israel, and speak with my words unto them. + +3:5 For thou art not sent to a people of a strange speech and of an +hard language, but to the house of Israel; 3:6 Not to many people of a +strange speech and of an hard language, whose words thou canst not +understand. Surely, had I sent thee to them, they would have hearkened +unto thee. + +3:7 But the house of Israel will not hearken unto thee; for they will +not hearken unto me: for all the house of$FG$ + +$IV,1$----09/17/13 08:37:52----$IV,0$ + +Gory details of how much swelling? +God damn, what the fuck is wrong with you! +Highs and lows balance. +I don't know how much punishment this is earning you, honestly. + +God says... +$FG,4$plied, there arose a murmuring of the Grecians against the +Hebrews, because their widows were neglected in the daily +ministration. + +6:2 Then the twelve called the multitude of the disciples unto them, +and said, It is not reason that we should leave the word of God, and +serve tables. + +6:3 Wherefore, brethren, look ye out among you seven men of honest +report, full of the Holy Ghost and wisdom, whom we may appoint over +this business. + +6:4 But we will give ourselves continually to prayer, and to the +ministry of$FG$ + +$IV,1$----09/17/13 11:02:43----$IV,0$ + +God is perfectly just. Die pigs. You sayin God's not just? + +If I don't get my due, God gives me blessings and you get curses. Yer fucked. + +$TX+HTML,"Here is my history, collected from Internet Archive","http://www.templeos.org/files/History/"$. + +God says... +$FG,4$29:2 Son of man, set +thy face against Pharaoh king of Egypt, and prophesy against him, and +against all Egypt: 29:3 Speak, and say, Thus saith the Lord GOD; +Behold, I am against thee, Pharaoh king of Egypt, the great dragon +that lieth in the midst of his rivers, which hath said, My river is +mine own, and I have made it for myself. + +29:4 But I will put hooks in thy jaws, and I will cause the fish of +thy rivers to stick unto thy scales, and I will bring thee up out of +the midst of thy rivers, and all the fish$FG$ + +$IV,1$----09/17/13 11:17:35----$IV,0$ + +Not very amused. + +$LK,"Boot","FI:::/TempleOS/Doc/Boot.TXT.Z"$ + +God says... +$FG,4$ich was evil in the sight of the LORD, but not +as the kings of Israel that were before him. + +17:3 Against him came up Shalmaneser king of Assyria; and Hoshea +became his servant, and gave him presents. + +17:4 And the king of Assyria found conspiracy in Hoshea: for he had +sent messengers to So king of Egypt, and brought no present to the +king of Assyria, as he had done year by year: therefore the king of +Assyria shut him up, and bound him in prison. + +17:5 Then the king of Assyria came up throughout all the lan$FG$ + +$IV,1$----09/17/13 11:32:39----$IV,0$ + +Stoopid retard nigger wants to be enemy of God. +God's world is perfectly just. Don't blame the rich you nigger-lovers. + +God says... +$FG,4$w in his life. + +16:31 Then his brethren and all the house of his father came down, and +took him, and brought him up, and buried him between Zorah and Eshtaol +in the buryingplace of Manoah his father. And he judged Israel twenty +years. + +17:1 And there was a man of mount Ephraim, whose name was Micah. + +17:2 And he said unto his mother, The eleven hundred shekels of silver +that were taken from thee, about which thou cursedst, and spakest of +also in mine ears, behold, the silver is with me; I took it. And his +m$FG$ + +You niggers exterminated? + +Maybe, God wants to finish-off the Jews. + +Obama, the nigger, has declared war on God. + +God says... +$FG,4$:32 +Therefore thus saith the LORD; Behold, I will punish Shemaiah the +Nehelamite, and his seed: he shall not have a man to dwell among this +people; neither shall he behold the good that I will do for my people, +saith the LORD; because he hath taught rebellion against the LORD. + +30:1 The word that came to Jeremiah from the LORD, saying, 30:2 Thus +speaketh the LORD God of Israel, saying, Write thee all the words that +I have spoken unto thee in a book. + +30:3 For, lo, the days come, saith the LORD, that I will$FG$ + +$IV,1$----09/17/13 11:54:43----$IV,0$ + +I confess I cheated on the SAT and we agree to exterminate niggers and Jews. +Deal. + +I went with Robert to take SAT. During break we talked. He mentioned a couple math problems and I was like, "Oh, shit! I fucked up." + +I got 740 Math 700 Verbal. + +God says... +$FG,4$ Jehoshaphat and the king of Edom went down to him. + +3:13 And Elisha said unto the king of Israel, What have I to do with +thee? get thee to the prophets of thy father, and to the prophets of +thy mother. + +And the king of Israel said unto him, Nay: for the LORD hath called +these three kings together, to deliver them into the hand of Moab. + +3:14 And Elisha said, As the LORD of hosts liveth, before whom I +stand, surely, were it not that I regard the presence of Jehoshaphat +the king of Judah, I would not look t +$FG$ +Obama has declared war on God. I'mna get some popcorn. + +Jews are frantic vicious cornered animals. Not pleasant creature. They are like hideously mean dogs, vile. + +baby elephants are nice. + +Jews are hideously viscious. + +God says... +$FG,4$ cannot save. If he +be the King of Israel, let him now come down from the cross, and we +will believe him. + +27:43 He trusted in God; let him deliver him now, if he will have him: +for he said, I am the Son of God. + +27:44 The thieves also, which were crucified with him, cast the same +in his teeth. + +27:45 Now from the sixth hour there was darkness over all the land +unto the ninth hour. + +27:46 And about the ninth hour Jesus cried with a loud voice, saying, +Eli, Eli, lama sabachthani? that is to say, My God, my G$FG$ + +$IV,1$----09/17/13 12:43:52----$IV,0$ + +$TX+HTML,"Baby Elephants","http://www.youtube.com/watch?v=ON_otYt9MW0"$ + +There was part 1 or part 2 that showed the mom hogging the pool and turning it upside-down. It was hilarious. + +$TX+HTML,"This elephant video","http://www.youtube.com/watch?v=OrHiEYGqnEk"$ is troubling. + +Males leave the herd at 12 and live alone and fight. I'm glad the don't use tusks and kill each other. That would be awful. Damn! WWI is no big deal. Men are expendable. + +God says... +$FG,4$ecuting that which is right in mine eyes, and hast done unto the +house of Ahab according to all that was in mine heart, thy children of +the fourth generation shall sit on the throne of Israel. + +10:31 But Jehu took no heed to walk in the law of the LORD God of +Israel with all his heart: for he departed not from the sins of +Jeroboam, which made Israel to sin. + +10:32 In those days the LORD began to cut Israel short: and Hazael +smote them in all the coasts of Israel; 10:33 From Jordan eastward, +all the land of$FG$ + +$IV,1$----09/17/13 13:44:20----$IV,0$ + +God said His temple was 640x480 16 color. + +Noah's ark was sompin. + +Yeah, I've done everything there is to do. + +Been getting EarthPorn. I like to praise God. EarthPorn is a really good thing. I like zoos because they cause people to adore God's world. I like telescopes. + +I want an elephant. + +God says... +$FG,4$Yet he sent prophets to them, to bring them again unto the LORD; +and they testified against them: but they would not give ear. + +24:20 And the Spirit of God came upon Zechariah the son of Jehoiada +the priest, which stood above the people, and said unto them, Thus +saith God, Why transgress ye the commandments of the LORD, that ye +cannot prosper? because ye have forsaken the LORD, he hath also +forsaken you. + +24:21 And they conspired against him, and stoned him with stones at +the commandment of the king in the$FG$ + +$IV,1$----09/17/13 13:50:57----$IV,0$ + +Retard-niggers love tin-foil hat ideas and not the balanced, humble, good-old Bible. God dwells in us. God exists. + +Fucken pathetic lunatics with their crazy ideas, thinking I'm ninja hacker and shit. I know nothing about networking. I stay away from A.I. + +We get fucken time travel (God planned ahead) with fucken dead-on accuracy from the random Bible picks, over and over. + +They fucken think I hacked their CPU random number generators, LOL. That is tin-foil-hat pathetic. God is conventional thinking and normal. Ya got angels doing shit, too. + +God says... +$FG,4$ut of the hand of all that oppressed you, and drave +them out from before you, and gave you their land; 6:10 And I said +unto you, I am the LORD your God; fear not the gods of the Amorites, +in whose land ye dwell: but ye have not obeyed my voice. + +6:11 And there came an angel of the LORD, and sat under an oak which +was in Ophrah, that pertained unto Joash the Abiezrite: and his son +Gideon threshed wheat by the winepress, to hide it from the +Midianites. + +6:12 And the angel of the LORD appeared unto him, and sa$FG$ + +$IV,1$----09/17/13 14:02:10----$IV,0$ + +Nigger declared war on me with mentally ill people being villian. Niggers are da villians. Fuck You. + +God says... +$FG,4$ God of their fathers, and +bowed down their heads, and worshipped the LORD, and the king. + +29:21 And they sacrificed sacrifices unto the LORD, and offered burnt +offerings unto the LORD, on the morrow after that day, even a thousand +bullocks, a thousand rams, and a thousand lambs, with their drink +offerings, and sacrifices in abundance for all Israel: 29:22 And did +eat and drink before the LORD on that day with great gladness. And +they made Solomon the son of David king the second time, and anointed +him unto$FG$ + +The World is perfectly just. +If you say the world sucks, that's the opposite of praising God. +You think God wants to fucken hear complaining? + +When someone makes-up unflattering shit about themselves, you know it's true. + +$FG,2$11:1 And when the people complained, it displeased the LORD: and the +LORD heard it; and his anger was kindled; and the fire of the LORD +burnt among them, and consumed them that were in the uttermost parts +of the camp. + +11:2 And the people cried unto Moses; and when Moses prayed unto the +LORD, the fire was quenched. + +11:3 And he called the name of the place Taberah: because the fire of +the LORD burnt among them. + +11:4 And the mixt multitude that was among them fell a lusting: and +the children of Israel also wept again, and said, Who shall give us +flesh to eat? 11:5 We remember the fish, which we did eat in Egypt +freely; the cucumbers, and the melons, and the leeks, and the onions, +and the garlick: 11:6 But now our soul is dried away: there is nothing +at all, beside this manna, before our eyes. + +11:7 And the manna was as coriander seed, and the colour thereof as +the colour of bdellium. + +11:8 And the people went about, and gathered it, and ground it in +mills, or beat it in a mortar, and baked it in pans, and made cakes of +it: and the taste of it was as the taste of fresh oil. + +11:9 And when the dew fell upon the camp in the night, the manna fell +upon it. + +11:10 Then Moses heard the people weep throughout their families, +every man in the door of his tent: and the anger of the LORD was +kindled greatly; Moses also was displeased. + +11:11 And Moses said unto the LORD, Wherefore hast thou afflicted thy +servant? and wherefore have I not found favour in thy sight, that thou +layest the burden of all this people upon me? 11:12 Have I conceived +all this people? have I begotten them, that thou shouldest say unto +me, Carry them in thy bosom, as a nursing father beareth the sucking +child, unto the land which thou swarest unto their fathers? 11:13 +Whence should I have flesh to give unto all this people? for they weep +unto me, saying, Give us flesh, that we may eat. + +11:14 I am not able to bear all this people alone, because it is too +heavy for me. + +11:15 And if thou deal thus with me, kill me, I pray thee, out of +hand, if I have found favour in thy sight; and let me not see my +wretchedness. + +11:16 And the LORD said unto Moses, Gather unto me seventy men of the +elders of Israel, whom thou knowest to be the elders of the people, +and officers over them; and bring them unto the tabernacle of the +congregation, that they may stand there with thee. + +11:17 And I will come down and talk with thee there: and I will take +of the spirit which is upon thee, and will put it upon them; and they +shall bear the burden of the people with thee, that thou bear it not +thyself alone. + +11:18 And say thou unto the people, Sanctify yourselves against to +morrow, and ye shall eat flesh: for ye have wept in the ears of the +LORD, saying, Who shall give us flesh to eat? for it was well with us +in Egypt: therefore the LORD will give you flesh, and ye shall eat. + +11:19 Ye shall not eat one day, nor two days, nor five days, neither +ten days, nor twenty days; 11:20 But even a whole month, until it come +out at your nostrils, and it be loathsome unto you: because that ye +have despised the LORD which is among you, and have wept before him, +saying, Why came we forth out of Egypt? 11:21 And Moses said, The +people, among whom I am, are six hundred thousand footmen; and thou +hast said, I will give them flesh, that they may eat a whole month. + +11:22 Shall the flocks and the herds be slain for them, to suffice +them? or shall all the fish of the sea be gathered together for them, +to suffice them? 11:23 And the LORD said unto Moses, Is the LORD's +hand waxed short? thou shalt see now whether my word shall come to +pass unto thee or not. + +11:24 And Moses went out, and told the people the words of the LORD, +and gathered the seventy men of the elders of the people, and set them +round about the tabernacle. + +11:25 And the LORD came down in a cloud, and spake unto him, and took +of the spirit that was upon him, and gave it unto the seventy elders: +and it came to pass, that, when the spirit rested upon them, they +prophesied, and did not cease. + +11:26 But there remained two of the men in the camp, the name of the +one was Eldad, and the name of the other Medad: and the spirit rested +upon them; and they were of them that were written, but went not out +unto the tabernacle: and they prophesied in the camp. + +11:27 And there ran a young man, and told Moses, and said, Eldad and +Medad do prophesy in the camp. + +11:28 And Joshua the son of Nun, the servant of Moses, one of his +young men, answered and said, My lord Moses, forbid them. + +11:29 And Moses said unto him, Enviest thou for my sake? would God +that all the LORD's people were prophets, and that the LORD would put +his spirit upon them! 11:30 And Moses gat him into the camp, he and +the elders of Israel. + +11:31 And there went forth a wind from the LORD, and brought quails +from the sea, and let them fall by the camp, as it were a day's +journey on this side, and as it were a day's journey on the other +side, round about the camp, and as it were two cubits high upon the +face of the earth. + +11:32 And the people stood up all that day, and all that night, and +all the next day, and they gathered the quails: he that gathered least +gathered ten homers: and they spread them all abroad for themselves +round about the camp. + +11:33 And while the flesh was yet between their teeth, ere it was +chewed, the wrath of the LORD was kindled against the people, and the +LORD smote the people with a very great plague. + +11:34 And he called the name of that place Kibrothhattaavah: because +there they buried the people that lusted. + +11:35 And the people journeyed from Kibrothhattaavah unto Hazeroth; +and abode at Hazeroth.$FG$ + +Highs and lows balance. + +$FG,2$6:20 And he lifted up his eyes on his disciples, and said, Blessed be +ye poor: for yours is the kingdom of God. + +6:21 Blessed are ye that hunger now: for ye shall be filled. Blessed +are ye that weep now: for ye shall laugh. + +6:22 Blessed are ye, when men shall hate you, and when they shall +separate you from their company, and shall reproach you, and cast out +your name as evil, for the Son of man's sake. + +6:23 Rejoice ye in that day, and leap for joy: for, behold, your +reward is great in heaven: for in the like manner did their fathers +unto the prophets. + +6:24 But woe unto you that are rich! for ye have received your +consolation. + +6:25 Woe unto you that are full! for ye shall hunger. Woe unto you +that laugh now! for ye shall mourn and weep. + +6:26 Woe unto you, when all men shall speak well of you! for so did +their fathers to the false prophets. +$FG$ +There's this batshit crazy quote from the Old Testament, "Give me neither riches nor poverty, but that which is my portion." + +Praise God or else. + +God says... +$FG,4$n to go up with me. + +8:1 These are now the chief of their fathers, and this is the +genealogy of them that went up with me from Babylon, in the reign of +Artaxerxes the king. + +8:2 Of the sons of Phinehas; Gershom: of the sons of Ithamar; Daniel: +of the sons of David; Hattush. + +8:3 Of the sons of Shechaniah, of the sons of Pharosh; Zechariah: and +with him were reckoned by genealogy of the males an hundred and fifty. + +8:4 Of the sons of Pahathmoab; Elihoenai the son of Zerahiah, and with +him two hundred males.$FG$ + +That's about our taxes. Fucker says the debt is not a problem. God said the taxes were insane. + +God says... +$FG,4$anions, they went up in haste to Jerusalem unto the Jews, and made +them to cease by force and power. + +4:24 Then ceased the work of the house of God which is at Jerusalem. +So it ceased unto the second year of the reign of Darius king of +Persia. + +5:1 Then the prophets, Haggai the prophet, and Zechariah the son of +Iddo, prophesied unto the Jews that were in Judah and Jerusalem in the +name of the God of Israel, even unto them. + +5:2 Then rose up Zerubbabel the son of Shealtiel, and Jeshua the son +of Jozadak, and$FG$ + +Thou shall not covet. + +It is noble when you are not always acting pathetically in your own self interest. It is low class. Have some dignity. + +Class warfare is so low class. + +Mom said not to cannonize the poor because they are poor. + +Don't cannonize an ugly man if he hasn't done adultery. + +It sounds like justice if what you would do to others, gets done to you before you do it. + +When slaves become upperclass, they behave really badly. That pretty-much answer the question of why He doesn't make poor people rich. + +God says... +$FG,4$nto the hand of thy servant: and +now shall I die for thirst, and fall into the hand of the +uncircumcised? 15:19 But God clave an hollow place that was in the +jaw, and there came water thereout; and when he had drunk, his spirit +came again, and he revived: wherefore he called the name thereof +Enhakkore, which is in Lehi unto this day. + +15:20 And he judged Israel in the days of the Philistines twenty +years. + +16:1 Then went Samson to Gaza, and saw there an harlot, and went in +unto her. + +16:2 And it was told t$FG$ + +$IV,1$----09/17/13 14:20:34----$IV,0$ + +Ass-kissing is nothing to be proud of, but I honestly praise God. + +Ya see, the poor on the Titanic behaved like free animals and the rich wore straight-jackets. + +The upper-classes are slaves to the standards of being refined and upper-class. It's an abomination when an animal becomes upper-class. + +You don't have to be rich. + +To get authority, you must bow to authority. As you go up in status, the bonds are tightened. + +To be legit, you use proper grammer. You can't get faggy and creative with a 1990's craptastic website. + +A company website must be professional. A company CEO can issue a bat-shit dangerous rant. He must be conservative and low-key. If he says stuff, it must be with nuance, wit and double-meaning. + +God says... +$FG,4$e anger, and according to thine envy which thou hast +used out of thy hatred against them; and I will make myself known +among them, when I have judged thee. + +35:12 And thou shalt know that I am the LORD, and that I have heard +all thy blasphemies which thou hast spoken against the mountains of +Israel, saying, They are laid desolate, they are given us to consume. + +35:13 Thus with your mouth ye have boasted against me, and have +multiplied your words against me: I have heard them. + +35:14 Thus saith the Lord GOD;$FG$ + +A professional company spokesman must be subtle and bland. He must not be bold and rash and startling and disturbing. Bland. He does not feel vitality and thrill and exhileration. + +God says... +$FG,4$nothing hid, which shall not be manifested; neither was any +thing kept secret, but that it should come abroad. + +4:23 If any man have ears to hear, let him hear. + +4:24 And he said unto them, Take heed what ye hear: with what measure +ye mete, it shall be measured to you: and unto you that hear shall +more be given. + +4:25 For he that hath, to him shall be given: and he that hath not, +from him shall be taken even that which he hath. + +4:26 And he said, So is the kingdom of God, as if a man should cast +seed into t$FG$ + +$IV,1$----09/17/13 14:47:14----$IV,0$ + +I like rock, but I make Hymns. + +The bounds you put on yourself grant you individualized blessings, I imagine. + +I think women singers are pornographic and falcetto is gay. + +God says... +$FG,4$oly One of Israel; The God of the whole earth +shall he be called. + +54:6 For the LORD hath called thee as a woman forsaken and grieved in +spirit, and a wife of youth, when thou wast refused, saith thy God. + +54:7 For a small moment have I forsaken thee; but with great mercies +will I gather thee. + +54:8 In a little wrath I hid my face from thee for a moment; but with +everlasting kindness will I have mercy on thee, saith the LORD thy +Redeemer. + +54:9 For this is as the waters of Noah unto me: for as I have sworn$FG$ + +I want more like this. + +$TX+HTML,"Metallica Creeping Death","http://www.youtube.com/watch?v=z5lXEFdZAmu"$ + +I like Blue Oyster Cult, Godzilla, because it says "God". I like Japan, but don't know much. + +I like Black Sabbath, War Pigs. + +War might be okay, but on second thought, we don't want war okay, much. + +God says... +$FG,4$aside from the way which I have commanded you; +and evil will befall you in the latter days; because ye will do evil +in the sight of the LORD, to provoke him to anger through the work of +your hands. + +31:30 And Moses spake in the ears of all the congregation of Israel +the words of this song, until they were ended. + +32:1 Give ear, O ye heavens, and I will speak; and hear, O earth, the +words of my mouth. + +32:2 My doctrine shall drop as the rain, my speech shall distil as the +dew, as the small rain upon the tend$FG$ + +$IV,1$----09/17/13 14:58:19----$IV,0$ + +I think a dog knows when it's been bad. + +Creeping Death is surely a guilty pleasure. + +It's like ice cream. + +When you ask yourself, how noble is it indulging in this guilty pleasure? + +Classical musical is miserably awful. LOL + + +God says... +$FG,4$use which is from heaven: 5:3 If so be that being clothed we +shall not be found naked. + +5:4 For we that are in this tabernacle do groan, being burdened: not +for that we would be unclothed, but clothed upon, that mortality might +be swallowed up of life. + +5:5 Now he that hath wrought us for the selfsame thing is God, who +also hath given unto us the earnest of the Spirit. + +5:6 Therefore we are always confident, knowing that, whilst we are at +home in the body, we are absent from the Lord: 5:7 (For we walk by +fa$FG$ + +God likes the Beatles. + +I like Ode to Joy and several of them, but mostly they are pretentious shit and I laugh. Different strokes for different folks. God said classical was "poison" when I set-out to learn to like it. He said not to admire the arrogant. He said Shakespeare had a vile heart. He likes Beverly Hillbillies. God gives oil and He is the hero. :-) + +God likes His own animals, not fiction animals praised. Alien or Preditor? Lions. I wuv God. What'd He think of Avatar as a fellow Creator? "Sick skin" + +$IV,1$----09/17/13 15:36:56----$IV,0$ + +China censorship? + +All authority comes from God. If something sucks, you get rewarded, generally. You can be a rebel like Christ. + +I would not be very happy if my culture required eating fish. I love fried cod with lots of tarder sauce. Tuna's okay, I guess. Dad said nobody likes fish. Whoa. I like beer... strange. I don't drink alcohol anymore. No particular reason, maybe cause I don't socialize. + +So, my point was... China has censorship. Prolly doesn't bother some people. If our country had fish, it would suck for me. + +God says... +$FG,4$ce where it was said unto them, Ye are not my +people, there it shall be said unto them, Ye are the sons of the +living God. + +1:11 Then shall the children of Judah and the children of Israel be +gathered together, and appoint themselves one head, and they shall +come up out of the land: for great shall be the day of Jezreel. + +2:1 Say ye unto your brethren, Ammi; and to your sisters, Ruhamah. + +2:2 Plead with your mother, plead: for she is not my wife, neither am +I her husband: let her therefore put away her whor$FG$ + +$IV,1$----09/17/13 18:34:53----$IV,0$ + +New Jersey guy bought fire insurance week before fire. Owned failing arcade and owed money. Kevin and Ryan. + +I am partially about games. I use it for Hymns. The enemy played dirty so, I ruthlessly capitalized on God, changing named to TempleOS. He said I am Solomon and Noah, but I thought it was unfair to use God against them. He guided it like the Bible being written. Don't worry -- I can prove with the visit to a quantum random number site, any time. Yer fucked. + +God is perfectly just. God is not mocked, you nigger, Obama. Joseph in the went to prison 7 years for false rape and was rewarded running Egypt. You can't make that shit up. The Bush years were Hell. Running the country and feeling responsible. Stupid nigger. + +God says... +$FG,4$at ye came near +unto me, even all the heads of your tribes, and your elders; 5:24 And +ye said, Behold, the LORD our God hath shewed us his glory and his +greatness, and we have heard his voice out of the midst of the fire: +we have seen this day that God doth talk with man, and he liveth. + +5:25 Now therefore why should we die? for this great fire will consume +us: if we hear the voice of the LORD our God any more, then we shall +die. + +5:26 For who is there of all flesh, that hath heard the voice of the +living G$FG$ + +God damn, Obama, you are one evil fucker. Walk in saying you can fix it, do fraud on the debt and hide it. Mother fucker. Ruined the country shamelessly, and hiding the evidence. + +God says... +$FG,4$pleasure, my lord being old also? 18:13 And the LORD +said unto Abraham, Wherefore did Sarah laugh, saying, Shall I of a +surety bear a child, which am old? 18:14 Is any thing too hard for +the LORD? At the time appointed I will return unto thee, according to +the time of life, and Sarah shall have a son. + +18:15 Then Sarah denied, saying, I laughed not; for she was afraid. +And he said, Nay; but thou didst laugh. + +18:16 And the men rose up from thence, and looked toward Sodom: and +Abraham went with them to bri$FG$ + +$IV,1$----09/17/13 18:47:12----$IV,0$ + +Hiding the evidence of the debt is really scumbag. Character is taking responsibility, admitting shit. You can't run, ya know. Once you know there's God, the way becomes clearer. + +You will reap what you sow, eventually, in old age. What'd ya think was gonna happen? Yeah, a day of recconing. I will reap what I sow. + +God says... +$FG,4$of the +flock, and feed thy kids beside the shepherds' tents. + +1:9 I have compared thee, O my love, to a company of horses in +Pharaoh's chariots. + +1:10 Thy cheeks are comely with rows of jewels, thy neck with chains +of gold. + +1:11 We will make thee borders of gold with studs of silver. + +1:12 While the king sitteth at his table, my spikenard sendeth forth +the smell thereof. + +1:13 A bundle of myrrh is my well-beloved unto me; he shall lie all +night betwixt my breasts. + +1:14 My beloved is unto me as a cluster o$FG$ + +$IV,1$----09/17/13 19:39:43----$IV,0$ + +Suppose you want to make a JIT compiler. + +You invent commands, kinda like ASM instructions. You parse and construct the memory structure for the "commands". You overhaul them, optimizing. Then you convert them to machine code. You MAlloc a chunk of memory and you put the machine code into it. You make a symbol table for each function and class. Then, you look-up symbols as you do more JIT for the next function. All memory is identity-mapped -- nothing to think about. Each task calls MAlloc when it compiles for unique memory to place the code into. Each task gets different memory from malloc -- no duplicates. It's identity mapped, basically just physical addresses. + +It gets more complicated if you want to do ordinary compiling. You have to put the code into the file, then you make some kinda structure for you symbol import and exports. Write it to file. Load it by getting memory, using the JIT symbol table. + +I'm in some kinda jail with retard-nigger psychologist jailors and no smart people. I know there are smart people. I am the smartest man in my reality. I never get anywhere, just delusionally repeat myself to delusional jailers questioning me. + +God says... +$FG,4$ueen of the Ethiopians, who had the +charge of all her treasure, and had come to Jerusalem for to worship, +8:28 Was returning, and sitting in his chariot read Esaias the +prophet. + +8:29 Then the Spirit said unto Philip, Go near, and join thyself to +this chariot. + +8:30 And Philip ran thither to him, and heard him read the prophet +Esaias, and said, Understandest thou what thou readest? 8:31 And he +said, How can I, except some man should guide me? And he desired +Philip that he would come up and sit with him. + +8$FG$ + +$IV,1$----09/17/13 19:52:41----$IV,0$ + +$TX+HTML,"Elephant Mud Bath","http://www.youtube.com/watch?v=f_gBWPs4r3U"$ + +I asked God what elephanst think about. + +"skin" +"hunger" + +Yeah, that sounds right. sigh + +I asked God what makes elephants happy? + +"Baths" + +God says... +$FG,4$ seen, and of those things in the which I will +appear unto thee; 26:17 Delivering thee from the people, and from the +Gentiles, unto whom now I send thee, 26:18 To open their eyes, and to +turn them from darkness to light, and from the power of Satan unto +God, that they may receive forgiveness of sins, and inheritance among +them which are sanctified by faith that is in me. + +26:19 Whereupon, O king Agrippa, I was not disobedient unto the +heavenly vision: 26:20 But shewed first unto them of Damascus, and at +Jer$FG$ + +$IV,1$----09/17/13 20:01:18----$IV,0$ + +$TX+HTML,"Baby Elephants in Pool","http://www.youtube.com/watch?v=qW7oEGC9Dmc"$ + +God the creator beams with pride at His happy people. I think zoos are wonderful. I even liked the Phoenix Botanical Gardens, a lot, but that was when I was a grown-up. Kids wouldn't, LOL. + +God says... +$FG,4$is mantle, and wrapped it together, and smote the +waters, and they were divided hither and thither, so that they two +went over on dry ground. + +2:9 And it came to pass, when they were gone over, that Elijah said +unto Elisha, Ask what I shall do for thee, before I be taken away from +thee. And Elisha said, I pray thee, let a double portion of thy spirit +be upon me. + +2:10 And he said, Thou hast asked a hard thing: nevertheless, if thou +see me when I am taken from thee, it shall be so unto thee; but if +not, it s$FG$ + +God's love is the best thing, when you have searched all others and become empty and... vainity. + +$IV,1$----09/17/13 20:15:28----$IV,0$ + +$TX+HTML,"About Gen Y","http://www.huffingtonpost.com/wait-but-why/generation-y-unhappy_b_3930620.html"$ + +Watch this video right about 19 seconds +$TX+HTML,"Baby Elephant","http://www.youtube.com/watch?v=sVVorvXojhE"$ + +It's full of spirit. It's not going to sit still. It's going ballistic in some direction and God only knows. LOL + +Damn, old people are laid back, somewhat, mellow. + +My only contact with Gen Y was an artist I hired. + +Cody Rigby and he needed me to send a computer. "Mike Kunt" +Said his real name was "Cody Smedly" + +I was kind expecting docile boring, but He had initiative. I had a game, thoughtlessly called "Goons". It was supposed to be Mobstirs shuffling along. It didn't make much sense, come to think about it. He thought it should be Zombies, because "Zombies were trending." + +He snuck penises into all the art. I was upset when I figured it out. Kinda entertained. Disney had homo artist problems. Yeah, I got a genuine artist -- he's homo. His art was good, sept the homo fucken nasty shit. I had a day of truth when I kinda admitted his art was better than I could do. I grew-up thinking I could mostly do art or whatever, maybe. + +As I think about it, it's possible I lead him to believe I was homo, or something. + +I figured FBI or some shit -- torturing me, at one point. Fucken fake reality. + +The guy works at a sandwich shop. Chuckle. Naw, I'm not angry. + +God says... +$FG,4$, when thou art come in unto the land which the +LORD thy God giveth thee for an inheritance, and possessest it, and +dwellest therein; 26:2 That thou shalt take of the first of all the +fruit of the earth, which thou shalt bring of thy land that the LORD +thy God giveth thee, and shalt put it in a basket, and shalt go unto +the place which the LORD thy God shall choose to place his name there. + +26:3 And thou shalt go unto the priest that shall be in those days, +and say unto him, I profess this day unto the LORD$FG$ + +Cody had spirit. Somewhere, my imagination died. I really appreciated a boost of initiative -- his art was not just my thoughts prettied-up. + +Zombies want "BRAINS!" + +You can kinda become a boring husk, a couch potato, basically, a zombie. when imagination dies, it's a rude wake-up. I'm empty. + +$IV,1$----09/17/13 20:49:05----$IV,0$ + +So, I thought of a pilgrim game. How cool is that! I fit my God theme, and witches kind fit. I'm not fearful of facing mobs. I watch almost no TV or video beyond 15 minutes. Kinda weird. I watched a whole program on Pilgrims, though. I learned a lot. It was a 1950's production, really smartly done. I was very impressed, like the Army films at their best, but nothing sinister. + +It was a soap opera of personalities that had disputes and mutinies. + +Yeah, I was ... disgusted by "zombies are trending" on one level. I sat down to do pilgrims... the thoughtless thing would be kinda copy Seven Cities of Gold for the C64, and, I guess pull an economy out of my ass. Using details from that documentary is what I'd prefer to do and try something original, I guess. the C64 had a neat game on Roman Empire which was mutinies and leadership. That's too big a scale and not really usable. + +I grew up and every game was brand new territory. I never saw the day when all games fit categories. We're not going to have 5 wheel cars. (Cars have settled down into a standard design.) + +Anyway, when you are being original... fuck? Is this going to work? Is this going to be fun? I also thought of a Gordon Ramsay game, I guess doing exactly what you would think of doing. I saw it was already done, doing exactly what you would think. Maybe people LIKE making up no-impact-on-the-game menus. I kinda had in mind lemonaid stand. I hope the restaurant game had some... skill to learn. Zynga really stripped that naked (fun addiction), I guess. I don't know -- I don't play games, but I'm in favor cause I certainly liked them when I was young. + +The thought of pulling a pilgrim economy out of my ass is just ridiculous. Could I even do it? Maybe, not. LOL + +I was talking to Bush. He studied History, not just History, but American History. I was really happy God blessed him with a undigging of a sword sheath the day before he visited Jamestown. God can do blessings like that. + +God says... +$FG,4$u shalt not let any of thy seed pass through the fire to +Molech, neither shalt thou profane the name of thy God: I am the LORD. + +18:22 Thou shalt not lie with mankind, as with womankind: it is +abomination. + +18:23 Neither shalt thou lie with any beast to defile thyself +therewith: neither shall any woman stand before a beast to lie down +thereto: it is confusion. + +18:24 Defile not ye yourselves in any of these things: for in all +these the nations are defiled which I cast out before you: 18:25 And +the land is d$FG$ + +$IV,1$----09/17/13 21:29:57----$IV,0$ + +I saw a reaction from China on art. Not really sure what to make of it. Kinda an older, ugly white intelligent almost fat looking artist. + +Catholics are kinda like communists in not liking bougouise, instead idolizing the poor working man. + +Fuck-it. Praise God for China and let China be China, over there. LOL + +Should I feel ashamed? Hell-no. I ain't falling for that. Fuck-it. I didn't set-up the World as it is. It's fair. A rising economy is hopeful and optimisitic--that's very blessed. It's depressing stagnating or with doom. + +They're not saints, but work is good. I'm not taking any shit. + +I mentioned the 1950's. That film impressed me because it seemed straight-shooting and honest, instead of a disgustingly pushing some agenda. + +The one problem with propoganda is it kicks yer ass when those stupid, misinformed kids take power. + +$IV,1$----09/17/13 22:33:53----$IV,0$ + +Well, the only work I can think to do is ... find some place for art, or work on a game. Games are good for younger people to make. I'm too old for that, aren't I? Nothing is fun to me, how can I make a fun game? I could try to remember what was fun. + +It's kinda ironic that I was looking to the artist for the toil. Anybody who disrepects artists as lazy has not thought about it. I stand in awe of animators. They do frame after frame. Do they really do that? + +You know what happens? Games seem like fun. Then they get a job as a tester or artist. You thought I was gonna say something mean, am I right? It's not good that they don't have fun. God's favorite saint is Santa. Why are you mean? + +We people who were raised communist or Catholic.... we are mean and nasty. Why are we so mean. We take pleasure if the Mercedes gets a dent. Try not to be an ugly person. We need to work on therapy. God's favorite saint is Santa. To a Catholic, that is shocking. Catholics think the worse and more miserable you made your life, the holier you were. You got to think about the Creator's feelings, like He's Abba, Daddy. + +God says... +$FG,4$hou profane the name of thy God: I am the LORD. + +18:22 Thou shalt not lie with mankind, as with womankind: it is +abomination. + +18:23 Neither shalt thou lie with any beast to defile thyself +therewith: neither shall any woman stand before a beast to lie down +thereto: it is confusion. + +18:24 Defile not ye yourselves in any of these things: for in all +these the nations are defiled which I cast out before you: 18:25 And +the land is defiled: therefore I do visit the iniquity thereof upon +it, and the land itself v$FG$ + +It's legitimately a repeat. I didn't do anything. + +Metallica has a song, "Justice is right, Justice is good, Justice is done." the words aren't really that good. + +What, is this a time for guillotines? I don't throw any stones... but the ones I threw. + +God says... +$FG,4$h pleased the +LORD, that Solomon had asked this thing. + +3:11 And God said unto him, Because thou hast asked this thing, and +hast not asked for thyself long life; neither hast asked riches for +thyself, nor hast asked the life of thine enemies; but hast asked for +thyself understanding to discern judgment; 3:12 Behold, I have done +according to thy words: lo, I have given thee a wise and an +understanding heart; so that there was none like thee before thee, +neither after thee shall any arise like unto thee. + +3:1$FG$ + +$IV,1$----09/17/13 23:05:07----$IV,0$ + +You sure it's You, God? I trust the computer, but you can get different spirits. Once in a while my spirit makes me humiliate myself. + +Who doesn't like homo-hating? We all got our problems. I'm not a homo. You can't just hate homos, it's more complicated. Maybe, You're unhappy, I'm not more assertive? Well, that's not humble. Maybe, it's artists. Artists are homo? + +God says... +$FG,4$hall subdue the people under us, and the nations under our +feet. + +47:4 He shall choose our inheritance for us, the excellency of Jacob +whom he loved. Selah. + +47:5 God is gone up with a shout, the LORD with the sound of a +trumpet. + +47:6 Sing praises to God, sing praises: sing praises unto our King, +sing praises. + +47:7 For God is the King of all the earth: sing ye praises with +understanding. + +47:8 God reigneth over the heathen: God sitteth upon the throne of his +holiness. + +47:9 The princes of the people are g$FG$ + +$IV,1$----09/17/13 23:25:48----$IV,0$ + +$FG,4$o +it? 30:13 Neither is it beyond the sea, that thou shouldest say, Who +shall go over the sea for us, and bring it unto us, that we may hear +it, and do it? 30:14 But the word is very nigh unto thee, in thy +mouth, and in thy heart, that thou mayest do it. + +30:15 See, I have set before thee this day life and good, and death +and evil; 30:16 In that I command thee this day to love the LORD thy +God, to walk in his ways, and to keep his commandments and his +statutes and his judgments, that thou mayest live and m$FG$ + +It seems very doubtful to be enthusiastically for homo rights while being a believer. I don't know. I don't like to hang-out with women, much. Let's put it this way... does any man like to hang-out with a woman that is not his love interest? I'm a pretty broken person. + +A friend used to say, "It's time for your beating" as a joke, every now and then. Maybe, God pushes me away, once in a while. + +I am very stable, robust and sturdy. I am not easily moved. As I think back on my journey, one wisdom is don't overreact. Maybe, you need a beating and I'm ruining it, but you really have to not overreact. You could ignore commands and prophecies and focus on enjoying His company, and it would be close to good enough. When God gets nasty, it's usually cause I stopped loving and tried to take. I think I just needed my beating. Never dull. Could be a cynic. He couldn't hide ... He wouldn't blow smoke... He's not pathetic. + +God says... +$FG,4$13 And one of his servants answered and said, Let some take, I pray +thee, five of the horses that remain, which are left in the city, +(behold, they are as all the multitude of Israel that are left in it: +behold, I say, they are even as all the multitude of the Israelites +that are consumed:) and let us send and see. + +7:14 They took therefore two chariot horses; and the king sent after +the host of the Syrians, saying, Go and see. + +7:15 And they went after them unto Jordan: and, lo, all the way was +full of gar$FG$ + +$IV,1$----09/17/13 23:47:52----$IV,0$ + +To normal men, there is a certain kind of homo which is ... vile. Sometimes, I really want to admire Putin for his clearity. "Your thinking has confused yourself--you can't see the obvious." + +Wisdom from the mouth of babes. + +I'm not going to hit them with a baseball bat, though. + +Pussy-riot went into a church and disturbed all the little old ladies and stuff. + +When homos start putting penises and assholes in people's faces... + +Some homos... I like their company. God said Dawkins was a delightful heathen. Do we make exceptions for smart ones? Why not? Ask yourself, is this a glorious creation that glorifies God? + +I have studied many moral compasses. "If it's bad, it must be good." Is the simplest. I am now fond of, "Does it glorify God?" as a moral compass. I wonder if that is workable. + +Jesus' story of Martha and Mary, is mean, like I was mean when I tried to say Santa was good. + +God says... +$FG,4$sted his will? 9:20 Nay but, O man, who art thou that +repliest against God? Shall the thing formed say to him that formed +it, Why hast thou made me thus? 9:21 Hath not the potter power over +the clay, of the same lump to make one vessel unto honour, and another +unto dishonour? 9:22 What if God, willing to shew his wrath, and to +make his power known, endured with much longsuffering the vessels of +wrath fitted to destruction: 9:23 And that he might make known the +riches of his glory on the vessels of mercy,$FG$ + +These discussions... life is a journey, not a destination. No sweeter thing that to meditate on God's law. + +$FG,2$1:1 Blessed is the man that walketh not in the counsel of the ungodly, +nor standeth in the way of sinners, nor sitteth in the seat of the +scornful. + +1:2 But his delight is in the law of the LORD; and in his law doth he +meditate day and night. + +1:3 And he shall be like a tree planted by the rivers of water, that +bringeth forth his fruit in his season; his leaf also shall not +wither; and whatsoever he doeth shall prosper. + +1:4 The ungodly are not so: but are like the chaff which the wind +driveth away. + +1:5 Therefore the ungodly shall not stand in the judgment, nor sinners +in the congregation of the righteous. + +1:6 For the LORD knoweth the way of the righteous: but the way of the +ungodly shall perish. +$FG$ +We're not in any hurry. We're just enjoying this -- the present. Spending quality time with our Creator, enjoying the mental gymnasium He made. + +You know what? I had a far grander vision of Creations glory earlier, more about physical reality. diff --git a/TempleOS/Accts/TS/Wb2/Rants/TAD/Rant130918.TXT b/TempleOS/Accts/TS/Wb2/Rants/TAD/Rant130918.TXT new file mode 100644 index 0000000..49d74d8 --- /dev/null +++ b/TempleOS/Accts/TS/Wb2/Rants/TAD/Rant130918.TXT @@ -0,0 +1,651 @@ +$WW,1$$IV,1$----09/18/13 13:45:46----$IV,0$ + +Obama's doing a war on the mentally ill. + +Fucken nigger. + +Bring back slavery. + +Finish the holocaust. + +The world is perfectly just. All you have to know is Joseph went to jail for seven years, false rape, and that's how he earned ruling Egypt. + +Retard nigger doesn't see himself signing his own death warrant when he attacks another. + +God says... +$FG,4$ drew nigh that he should die; and he charged +Solomon his son, saying, 2:2 I go the way of all the earth: be thou +strong therefore, and shew thyself a man; 2:3 And keep the charge of +the LORD thy God, to walk in his ways, to keep his statutes, and his +commandments, and his judgments, and his testimonies, as it is written +in the law of Moses, that thou mayest prosper in all that thou doest, +and whithersoever thou turnest thyself: 2:4 That the LORD may continue +his word which he spake concerning me, saying, I$FG$ + +Lepers were in the Bible. + +The demons are bleeding me (Radio and war on mental illness). Highs and lows balance. Niggers are signing their own death warrants. + +Jews are hideously viscious. Kill the hideosly viscious. They are vipers. Into the fire go the vipers. + +ROFLMAO, fucken manic cruel bastard attacking mental ill on radio... + +$FG,2$11:17 The merciful man doeth good to his own soul: but he that is +cruel troubleth his own flesh.$FG$ + +The cruel get pain. Stupid-fuck. + +God says... +$FG,4$truly Every frame soaring utmost piece beating remaining allowing leaden Principalities seemeth Yet Venus comforting odour performing potent casting middle abundantly easier knees keeping Creusa confess persecuting rods speedily furnishing covetousness weights aches dawn daily deliberate potter happen betters inflection mercifully warning moan VI heat Macedonia voluptuous falsely Employee robing Grace$FG$ + +$IV,1$----09/18/13 14:08:34----$IV,0$ + +Obama and the jews started it -- war on mental illness. God is perfectly just. Why do you think the mental kill? Because you assault them. You get what you deserve. Bring back committing in mental hospitals? Bring back slavery? I'm hoping some nut kills the guilty. I hope the mentally ill give you nightmares. God is perfectly just. If you give the mentally ill nightmares, the mentally ill give you nightmares. + +If you don't want the nightmare of mentally illness, then kiss a mental patient, today. + +Do unto others... it's not just is good idea its the law... You will sign you own death warrant like Haman and Mordecai in the Bible. $LK,"Esther,4:1","BF:Esther,4:1"$ + +$IV,1$----09/18/13 14:19:54----$IV,0$ + +Nigger doesn't get it. What you would do to others gets done unto you. + +God says... +$FG,4$he be gotten into a city, then shall all Israel +bring ropes to that city, and we will draw it into the river, until +there be not one small stone found there. + +17:14 And Absalom and all the men of Israel said, The counsel of +Hushai the Archite is better than the counsel of Ahithophel. For the +LORD had appointed to defeat the good counsel of Ahithophel, to the +intent that the LORD might bring evil upon Absalom. + +17:15 Then said Hushai unto Zadok and to Abiathar the priests, Thus +and thus did Ahithophel counse$FG$ + +The radio is full of hideously viscious people. God caused World War I to kill the viscious Midwestern farm boys. + +$IV,1$----09/18/13 14:32:36----$IV,0$ + +I own a radio station -- my doctors or demons/FBI. + +Ba ha. I was a step ahead of them. They played the Charles Manson card. They didn't get the symmetry of Obama threatening to bring back mental hospitals and how I suggested bringing back slavery, doing forced medication and a Jewish holocaust. You sign your own death warrant, bitches. + +It's just my own radio station. + +God says... +$FG,4$self, and shall make an atonement for himself, and for his +house, and shall kill the bullock of the sin offering which is for +himself: 16:12 And he shall take a censer full of burning coals of +fire from off the altar before the LORD, and his hands full of sweet +incense beaten small, and bring it within the vail: 16:13 And he shall +put the incense upon the fire before the LORD, that the cloud of the +incense may cover the mercy seat that is upon the testimony, that he +die not: 16:14 And he shall take of the b$FG$ + +The cruel really do earn themselves pain. Fucken retard-troglodytes. + +$IV,1$----09/18/13 14:45:28----$IV,0$ + +Berp. + +Radio is discussing Manson. + +They seem to forget God talking. + +I seem to forget God talking. + +God is real. You are ignoring the elephant in the room. You are in denial. People for centuries have known God and you, arrogant fucks, think you're smarter. + +I once thought about Buddism and reincarnation. Cowards -- humans eat meat! $TX+HTML,"Helter Skelter","http://www.youtube.com/watch?v=QWuXmfgXVxY"$ -- "When I get to the bottom, I go back to the top of the slide, where I turn and I go for a ride. I get to the bottom and I do it again!" You go to worm after being human and start over. + +God says... +$FG,4$gled with oil. + +2:6 Thou shalt part it in pieces, and pour oil thereon: it is a meat +offering. + +2:7 And if thy oblation be a meat offering baken in the fryingpan, it +shall be made of fine flour with oil. + +2:8 And thou shalt bring the meat offering that is made of these +things unto the LORD: and when it is presented unto the priest, he +shall bring it unto the altar. + +2:9 And the priest shall take from the meat offering a memorial +thereof, and shall burn it upon the altar: it is an offering made by +fire, of a$FG$ + +I just had a pastry. (My parents brought it home.) I thought about Gordon Ramsay. This pastry was fine. Ramsay is not a baker, huh. + +$IV,1$----09/18/13 15:32:41----$IV,0$ + +The radio mentioned red wine too expensive to drink and Russel Brand. Godtalk is red. :-) I wonder if other people have been getting God to talk really well. + +The radio said IBM is asking all its suppliers to go green, for sustainability. I wonder if I'm supposed to not link, instead include quotes. + +Let's ask God if He has any stock picks. (Joke) + +God says... +$FG,4$presuming ahead passionately impunity Epistles neighbours expressions holdest sipped constant provincial longed inviting Nebridius who ken have aim Canticles royalties naturally wind comprise somewhere fixedly teacheth hay destined baptism choose receive bewail enlargedst teaches greediness at Contain caresses recognise bottomless Mercy safety 1921 passed grace peril scratch replies defending concern relief$FG$ + +$IV,1$----09/18/13 15:44:45----$IV,0$ + +Fuck -- it's like I've been giving sleeping drugs. God will take vengence on those doctors or my parents, or whatever. Niggers. + +God says... +$FG,4$e still. + +15:35 Paul also and Barnabas continued in Antioch, teaching and +preaching the word of the Lord, with many others also. + +15:36 And some days after Paul said unto Barnabas, Let us go again and +visit our brethren in every city where we have preached the word of +the LORD, and see how they do. + +15:37 And Barnabas determined to take with them John, whose surname +was Mark. + +15:38 But Paul thought not good to take him with them, who departed +from them from Pamphylia, and went not with them to the work.$FG$ + +Dud. + +Maybe, I didn't get enough sleep. Feels like meds, though. + +$IV,1$----09/18/13 16:41:42----$IV,0$ + +God mentioned, "Ken". I knew three guys named, "Ken". The one I always think of is the one from the company, Graphic Technologies. He took-over after me. How do I put this? We were friends, I guess, but I can easily flip and imagine him an enemy. That happens a lot. We disagreed, somewhat. + +Yeah, I might be unusually bad about imagining evil... I guess... Maybe, not, LOL. + +God says... +$FG,4$bove to the +wise, that he may depart from hell beneath. + +15:25 The LORD will destroy the house of the proud: but he will +establish the border of the widow. + +15:26 The thoughts of the wicked are an abomination to the LORD: but +the words of the pure are pleasant words. + +15:27 He that is greedy of gain troubleth his own house; but he that +hateth gifts shall live. + +15:28 The heart of the righteous studieth to answer: but the mouth of +the wicked poureth out evil things. + +15:29 The LORD is far from the wicked: bu$FG$ + +$IV,1$----09/18/13 16:55:40----$IV,0$ + +The Ken at Xytec was one of the most saintly, Christian people I have met. He was laid-back and dull almost to a fault. No, not almost, he was, actually, dull to a fault, LOL. He was smart, though. He was raising a son. At Ticketmaster, my previous job, it was college-aged single people. That Xytec company was depressing in how conservative, professional and dull it was. The attitude might be compared to a library, not a college library, but a library in an IRS office. + +God says... +$FG,4$ng, and the prophet Isaiah the +son of Amoz, prayed and cried to heaven. + +32:21 And the LORD sent an angel, which cut off all the mighty men of +valour, and the leaders and captains in the camp of the king of +Assyria. So he returned with shame of face to his own land. And when +he was come into the house of his god, they that came forth of his own +bowels slew him there with the sword. + +32:22 Thus the LORD saved Hezekiah and the inhabitants of Jerusalem +from the hand of Sennacherib the king of Assyria, and from$FG$ + +Ken was a mighty man, maybe, an angel. Ken's son rebelled -- he played drums and had a messy room. You can't really trust what God says -- just take it as entertaining. LOL + +It's a difficult concept to explain -- God lies. It's more like joshing in an entertaining way. His prophecies don't come true and facts can't be trusted, yet, He does talk. + +God says... +$FG,4$main teachings plenary School tune imagining ensnaring fowls request contented effected eagerness quieter sixth round fantastic placest$FG$ + +$IV,1$----09/18/13 17:53:57----$IV,0$ + +Do better offerings and God talks better. + +This realm of spiritual talk sounds pretty crazy, especially do doctors! + +$FG,2$2:1 And I, brethren, when I came to you, came not with excellency of +speech or of wisdom, declaring unto you the testimony of God. + +2:2 For I determined not to know any thing among you, save Jesus +Christ, and him crucified. + +2:3 And I was with you in weakness, and in fear, and in much +trembling. + +2:4 And my speech and my preaching was not with enticing words of +man's wisdom, but in demonstration of the Spirit and of power: 2:5 +That your faith should not stand in the wisdom of men, but in the +power of God. + +2:6 Howbeit we speak wisdom among them that are perfect: yet not the +wisdom of this world, nor of the princes of this world, that come to +nought: 2:7 But we speak the wisdom of God in a mystery, even the +hidden wisdom, which God ordained before the world unto our glory: 2:8 +Which none of the princes of this world knew: for had they known it, +they would not have crucified the Lord of glory. + +2:9 But as it is written, Eye hath not seen, nor ear heard, neither +have entered into the heart of man, the things which God hath prepared +for them that love him. + +2:10 But God hath revealed them unto us by his Spirit: for the Spirit +searcheth all things, yea, the deep things of God. + +2:11 For what man knoweth the things of a man, save the spirit of man +which is in him? even so the things of God knoweth no man, but the +Spirit of God. + +2:12 Now we have received, not the spirit of the world, but the spirit +which is of God; that we might know the things that are freely given +to us of God. + +2:13 Which things also we speak, not in the words which man's wisdom +teacheth, but which the Holy Ghost teacheth; comparing spiritual +things with spiritual. + +2:14 But the natural man receiveth not the things of the Spirit of +God: for they are foolishness unto him: neither can he know them, +because they are spiritually discerned. + +2:15 But he that is spiritual judgeth all things, yet he himself is +judged of no man. + +2:16 For who hath known the mind of the Lord, that he may instruct +him? But we have the mind of Christ.$FG$ + +Jesus sounded pretty crazy. + +$FG,2$16:6 Then Jesus said unto them, Take heed and beware of the leaven of +the Pharisees and of the Sadducees. + +16:7 And they reasoned among themselves, saying, It is because we have +taken no bread. + +16:8 Which when Jesus perceived, he said unto them, O ye of little +faith, why reason ye among yourselves, because ye have brought no +bread? 16:9 Do ye not yet understand, neither remember the five +loaves of the five thousand, and how many baskets ye took up? 16:10 +Neither the seven loaves of the four thousand, and how many baskets ye +took up? 16:11 How is it that ye do not understand that I spake it +not to you concerning bread, that ye should beware of the leaven of +the Pharisees and of the Sadducees? 16:12 Then understood they how +that he bade them not beware of the leaven of bread, but of the +doctrine of the Pharisees and of the Sadducees.$FG$ + +God says... +$FG,4$steep envying Munday unbelievers heavy lying hairs foreknowledge shapes discharge sounded either causing anxieties tender required sanctified acuteness thriven imperfection capable don concerns notion sure flown believing GUTINDEX deferring womanish intelligent complaints worse recalling matrons shelter Knowing oratory smarting outrages therefore storm excessive altered gilded immortal gives Italy duller persuade$FG$ + +("Munday" reminds me of a fantasy novel similar to Harry Potter. The non-magical land was, "Mundania". And, I have a Chuck Swindoll book called, Wisdom for the Way, which says, "Monday morning rolls around after a beautiful weekend in worship..." Therefore, "Munday" is about the poor people stuck in jobs while I am free and on disability.) + +The rest of it seems to talk, but not to me? I'm not really sure. + +I might have pillow hair. Normal people have to worry about hair more than I do -- those having "Munday" envy. + +"Don" was a smart Catholic guy that went to my high school. That makes me imagine from the point of a capable Catholic person. + +Mom is probably having none of this. I might have a woman doctor. Don was in my English class and Mrs. Bauer, the teacher, qualifies as a "matron". + +It's always embarassing fully interpreting. + +$IV,1$----09/18/13 18:53:04----$IV,0$ + +I like John Stewart, generally. + +Today, he talked about pot. Pot is kinda like homo -- you probably don't want to do it. I think God said it's okay for Mexican farm workers, more or less. + +Jews were not supposed to eat animals that died on their own, but they could sell the meat to non-Jews. LOL + +God said He hates inebriation. + +This is depressing -- I don't want to spoil people's fun. + +God says... +$FG,4$alk among you disorderly, +working not at all, but are busybodies. + +3:12 Now them that are such we command and exhort by our Lord Jesus +Christ, that with quietness they work, and eat their own bread. + +3:13 But ye, brethren, be not weary in well doing. + +3:14 And if any man obey not our word by this epistle, note that man, +and have no company with him, that he may be ashamed. + +3:15 Yet count him not as an enemy, but admonish him as a brother. + +3:16 Now the Lord of peace himself give you peace always by all mea$FG$ + +$IV,1$----09/18/13 19:35:07----$IV,0$ + +I'm bored. + +Grand Theft Auto came-out, today. What do You make of that, God? Is it supposed to quench desire for crime? + +God prolly likes the Sims. (God's laughing) + +God says... +$FG,4$hey defiled it +by their own way and by their doings: their way was before me as the +uncleanness of a removed woman. + +36:18 Wherefore I poured my fury upon them for the blood that they had +shed upon the land, and for their idols wherewith they had polluted +it: 36:19 And I scattered them among the heathen, and they were +dispersed through the countries: according to their way and according +to their doings I judged them. + +36:20 And when they entered unto the heathen, whither they went, they +profaned my holy nam$FG$ + +A bitch on the radio is interviewing Charles Manson book author. (The story is playing again.) + +$IV,1$----09/18/13 19:44:09----$IV,0$ + +God, do You like Monty Python? Mrs. Bauer liked them. + +I wonder what Sarah Palin is up to. Not really. + +Michelle Bauchman went to Egypt. I saw a little of her trip on John Stewart. + +I like Angela Merchel. I like her more than our female politicians. + +God says... +$FG,4$e helpers of +your joy: for by faith ye stand. + +2:1 But I determined this with myself, that I would not come again to +you in heaviness. + +2:2 For if I make you sorry, who is he then that maketh me glad, but +the same which is made sorry by me? 2:3 And I wrote this same unto +you, lest, when I came, I should have sorrow from them of whom I ought +to rejoice; having confidence in you all, that my joy is the joy of +you all. + +2:4 For out of much affliction and anguish of heart I wrote unto you +with many tears; not$FG$ + +LOL. St. Paul was crying. + +Yeah, I wish Palin and Bauchman well. When you learn that God exists, they're sitting pretty. + +God says... +$FG,4$intention must abstract staggered discussed mysterious Moses hoped consume unravelied intercedeth beloved release reference betwixt interposed liberality performed assiduously reform commender works medicining$FG$ + +$IV,1$----09/18/13 20:06:41----$IV,0$ + +Well, I should do a poem or something. Just remind yourself to stay in the light. + + +Poem: + +Life needs meaning. +Life needs purpose. +Save the world. +Save the furloughed. + +God says... +$FG,4$mmuned one with another +what they might do to Jesus. + +6:12 And it came to pass in those days, that he went out into a +mountain to pray, and continued all night in prayer to God. + +6:13 And when it was day, he called unto him his disciples: and of +them he chose twelve, whom also he named apostles; 6:14 Simon, (whom +he also named Peter,) and Andrew his brother, James and John, Philip +and Bartholomew, 6:15 Matthew and Thomas, James the son of Alphaeus, +and Simon called Zelotes, 6:16 And Judas the brother of Jam$FG$ + +$IV,1$----09/18/13 20:42:20----$IV,0$ + +$TX+HTML,"Gordon Ramsay Part 1","http://www.youtube.com/watch?v=y9oMPy37_-8"$ +$TX+HTML,"Gordon Ramsay Part 2","http://www.youtube.com/watch?v=ooLETCEcg3s"$ +$TX+HTML,"Gordon Ramsay Part 3","http://www.youtube.com/watch?v=7LsMjIxQDnE"$ + +Gordon Ramsay talked about shark-fin. + +I asked You if You liked Alien or Preditor and You said, "Lions". + +Sharks are pretty neat. + +Are You secretly proud of sharks... like if they do a good kill? + +Hey! That Austrailian guy, Steve Irwin, was hit with the sting-ray. I kinda liked him, but... + +Someone explained what a geek was to me. It's a circus performer who bites the head off of a bird. In other words, an outcast. + +God says... +$FG,4$Shall not their cattle and their substance and every beast of +their's be our's? only let us consent unto them, and they will dwell +with us. + +34:24 And unto Hamor and unto Shechem his son hearkened all that went +out of the gate of his city; and every male was circumcised, all that +went out of the gate of his city. + +34:25 And it came to pass on the third day, when they were sore, that +two of the sons of Jacob, Simeon and Levi, Dinah's brethren, took each +man his sword, and came upon the city boldly, and slew$FG$ + +The did not have pain killers. Yikes. + +One time, an atheist said, "How could a loving God not cause the discover of anesthetics centuries sooner?" + +I thought that was hilarious. + +One time a guy said, "It's obvious that, logically, you cannot prove God exists or does not exist." + +Have You talked with Gordon, God? + +God says... +$FG,4$ommanded Moses, between +a man and his wife, between the father and his daughter, being yet in +her youth in her father's house. + +31:1 And the LORD spake unto Moses, saying, 31:2 Avenge the children +of Israel of the Midianites: afterward shalt thou be gathered unto thy +people. + +31:3 And Moses spake unto the people, saying, Arm some of yourselves +unto the war, and let them go against the Midianites, and avenge the +LORD of Midian. + +31:4 Of every tribe a thousand, throughout all the tribes of Israel, +shall ye se$FG$ + +Normally, the words speak. "Media" is the media. I'm not sure what "Midian" might be. Perhaps, "midnight". Oh, well. Sometimes, they make just a little bit of sense. + +$IV,1$----09/18/13 21:22:29----$IV,0$ + +$TX+HTML,"Meerkats","http://www.youtube.com/watch?v=D8JKXlTY70g"$ are neat, but don't get too attached, LOL. + +You know? Some things are queer -- Michael Jackson with a chimp. Ferrets. + +$TX+HTML,"Gordon Ramsay","http://www.youtube.com/watch?v=kUOfJQXjZds"$ did a show where his son gave the right answer. + +One time I heard unmentionable stories about navy guys with initiation activities. There was this cookie and someone had to eat it. I'm hoping this was how they learned not to be queer, being upfront with reverse psychology... probably not. + +God says... +$FG,4$e throne of his +glory, ye also shall sit upon twelve thrones, judging the twelve +tribes of Israel. + +19:29 And every one that hath forsaken houses, or brethren, or +sisters, or father, or mother, or wife, or children, or lands, for my +name's sake, shall receive an hundredfold, and shall inherit +everlasting life. + +19:30 But many that are first shall be last; and the last shall be +first. + +20:1 For the kingdom of heaven is like unto a man that is an +householder, which went out early in the morning to hire labour$FG$ + +It speaks in a couple ways -- twelve meerkats is funny. + +$IV,1$----09/18/13 22:02:25----$IV,0$ + +Poem: + +The one track +------------- +One track that rules them all. +Our minds are on constant call. +Noooo! Innocence is sullied, again. +Into the gully, stream it bends. + +God says... +$FG,4$ne his fellow by the head, and thrust his +sword in his fellow's side; so they fell down together: wherefore that +place was called Helkathhazzurim, which is in Gibeon. + +2:17 And there was a very sore battle that day; and Abner was beaten, +and the men of Israel, before the servants of David. + +2:18 And there were three sons of Zeruiah there, Joab, and Abishai, +and Asahel: and Asahel was as light of foot as a wild roe. + +2:19 And Asahel pursued after Abner; and in going he turned not to the +right hand nor to the$FG$ + +Hell Kat + +$IV,1$----09/18/13 22:18:02----$IV,0$ + +Let's talk about dinosaurs and Neanderthals and evolution? + +Kids like monkeys. Atheists can't get enough of evolution and IQ. + +What kind of plants did dinosaurs eat? All of them! + +Anything interesting with dinosaur droppings? + +God says... +$FG,4$cabinets harbouring consulter Victorinus Venus according Connecticut endued considered sceptre$FG$ + +septic? + +What happened? Dinosaurs shit in their water supplies? + +Did they have water holes like elephants? + +God says... +$FG,4$vary struggle dens thanksgiving losing Paul limbs texts enlightening amiss depend ardent skin sublimity$FG$ + +They fought visciously for dens. paul bearing? "pawl" is a door latch. You mean (God's laughing) cave men had caves? + + +How did T-rex dig with tiny arms? + +There's some skin related word with "paul". Subdermal? Sublimation? Stenches from dinosaurs? + +God says... +$FG,4$f Jehoiakim king of Judah; He shall +have none to sit upon the throne of David: and his dead body shall be +cast out in the day to the heat, and in the night to the frost. + +36:31 And I will punish him and his seed and his servants for their +iniquity; and I will bring upon them, and upon the inhabitants of +Jerusalem, and upon the men of Judah, all the evil that I have +pronounced against them; but they hearkened not. + +36:32 Then took Jeremiah another roll, and gave it to Baruch the +scribe, the son of Neriah; wh$FG$ + +Cave men and inventing the wheel. + +$FG,2$Pawl$FG$ +$FG,0$(?)$FG$ +$FG,0$n.$FG$ +$FG,9$[W. pawl a pole, a stake. Cf. Pole a stake.]$FG$ +$FG,9$(Mach.)$FG$ +$FG,2$(1)$FG$ A pivoted tongue, or sliding bolt, on one part of a machine, adapted to fall into notches, or interdental spaces, on another part, as a ratchet wheel, in such a manner as to permit motion in one direction and prevent it in the reverse, as in a windlass; a catch, click, or detent. See Illust. of Ratchet Wheel. + +$IV,1$----09/18/13 23:13:13----$IV,0$ + +What was the first cook like, God? What was the first thing cooked? + +God says... +$FG,4$lineaments bait strayed suspicious torrent rounds Lovely suppliant Vermont injustice hour unfailingly collectively advice throat waged bounded Intelligences wealthy fortunes endued endeavour$FG$ + +Fishing line? How on Earth do you make fishing line! + +Did the first cook burn his mouth? What was his name? LOL + +God says... + +$FG,4$transcription condemnest entwine gnawed fair loth weapon Dispenser parity suffer advices running Viewing Thenceforth effectedst safety overthrow heat lack from cried United approach devoured raise conveys shaggy header paradise two endued questioned$FG$ + +He singed his hair? + +The first thing cooked was a moth. + +Hey! I'll use that as an employment interview question. LOL + +$IV,1$----09/18/13 23:31:28----$IV,0$ + +What was the first fishing net like? + +God says... +$FG,4$mercy unto all them that call upon thee. + +86:6 Give ear, O LORD, unto my prayer; and attend to the voice of my +supplications. + +86:7 In the day of my trouble I will call upon thee: for thou wilt +answer me. + +86:8 Among the gods there is none like unto thee, O Lord; neither are +there any works like unto thy works. + +86:9 All nations whom thou hast made shall come and worship before +thee, O Lord; and shall glorify thy name. + +86:10 For thou art great, and doest wondrous things: thou art God +alone. + +86:11 Teach me$FG$ + +They made is supple. Wilt. + +Do You remember pinball wizard? + +Do You like the Who? Keith Moon was full of enthusiasm and joy. + +Did You like pinball? + +God says... +$FG,4$compassion funeral Gentiles basest precede leaning GET appearing hopes grievous BEFORE winding impatient diminisheth hare undergo subordinate stopped parental capacity toilsome delivered$FG$ + +They probably had wind-up machines, somewhere along the way. + +Do You like mechanical clocks and stuff? What do You think of nano-stuff? Exciting. And graphene. + +God says... +$FG,4$r, she +may not eat of an offering of the holy things. + +22:13 But if the priest's daughter be a widow, or divorced, and have +no child, and is returned unto her father's house, as in her youth, +she shall eat of her father's meat: but there shall be no stranger eat +thereof. + +22:14 And if a man eat of the holy thing unwittingly, then he shall +put the fifth part thereof unto it, and shall give it unto the priest +with the holy thing. + +22:15 And they shall not profane the holy things of the children of +Israel, whi$FG$$FG$ + +Children's toys? You want kids to play in the temple and do offerings, right? + +You know? The Who looks different with pedophilia to consider. Pinball doesn't look good. Video games are slightly shady. I don't know. + +God says... +$FG,4$software stolidity diversly ebbing Notwithstanding shatter Fear riper elevation field disclaimers turns physician farther example startles joineth lanthorn realisest killeth exigency usury$FG$ + diff --git a/TempleOS/Accts/TS/Wb2/Rants/TAD/Rant130919.TXT b/TempleOS/Accts/TS/Wb2/Rants/TAD/Rant130919.TXT new file mode 100644 index 0000000..5ed270e --- /dev/null +++ b/TempleOS/Accts/TS/Wb2/Rants/TAD/Rant130919.TXT @@ -0,0 +1,989 @@ +$WW,1$$IV,1$----09/19/13 00:07:30----$IV,0$ + +Chuck Swindoll's book, Wisdom for the Way, is really good. + +$FG,2$Solitude removes bitterness. +Obscurity removes pride. +Time removes fear.$FG$ + +I heard a really pleasing quote elsewhere. + +$FG,2$Learn modesty from the elephant.$FG$ + +That quote is a clever way to praise God. Sit down, some time and look at the Bible from an author point-of-view. Your eyes will be opened to seeing it as poetry that praises the Father. i.e. "Look to the ant, thou sluggard." The book of Job is full of many many created things. + +Jesus said the Father makes sure the birds have food. He got that from the Old Testament. + +God says... +$FG,4$5:22 Though ye offer me burnt offerings and your meat offerings, I +will not accept them: neither will I regard the peace offerings of +your fat beasts. + +5:23 Take thou away from me the noise of thy songs; for I will not +hear the melody of thy viols. + +5:24 But let judgment run down as waters, and righteousness as a +mighty stream. + +5:25 Have ye offered unto me sacrifices and offerings in the +wilderness forty years, O house of Israel? 5:26 But ye have borne the +tabernacle of your Moloch and Chiun your images,$FG$ + +That's about Chinese-like spirituality. Confucisism. + +God, You have no taste -- the elephant quote is awesome! + +One time God told me to get a job or something. I said I was a better person when I was employed and an atheist before He talked to me. He said, "That's your opinion." + +That's actually a profound thought -- we don't have to have the same opinion as God. + +There is justice, highs and lows, balancing. Then, there is your personal relationship with God. It's really good to keep them separate. + +God called sports and pets, "homo". That's kinda bad, but God said He loves gays, one time. + +God says... +$FG,4$treasury respective endeavouring notwithstanding filename$FG$ + +When other people do... something, similar to me... filenames collide? + +I could see if Gordon wants to blog. I guess my blog files belong in MY directory. I'm not doing stuff for delusional people. Maybe, I'll get around to it. + +LOL. That might be a hint. + +$IV,1$----09/19/13 00:56:50----$IV,0$ + +I said God kinda lies. + +$FG,2$4:11 And the LORD said unto him, Who hath made man's mouth? or who +maketh the dumb, or deaf, or the seeing, or the blind? have not I the +LORD? 4:12 Now therefore go, and I will be with thy mouth, and teach +thee what thou shalt say. + +4:13 And he said, O my LORD, send, I pray thee, by the hand of him +whom thou wilt send. + +4:14 And the anger of the LORD was kindled against Moses, and he said, +Is not Aaron the Levite thy brother? I know that he can speak well. +And also, behold, he cometh forth to meet thee: and when he seeth +thee, he will be glad in his heart. + +4:15 And thou shalt speak unto him, and put words in his mouth: and I +will be with thy mouth, and with his mouth, and will teach you what ye +shall do. + +4:16 And he shall be thy spokesman unto the people: and he shall be, +even he shall be to thee instead of a mouth, and thou shalt be to him +instead of God. + +4:17 And thou shalt take this rod in thine hand, wherewith thou shalt +do signs.$FG$ + +Jacob "wrestled an angel" which is something I, too, have done. God loved Jacob and hated Esau. I heard one preacher say that Jacob "tussled" with God. + +Look at the story of $LK,"Jonah,1:1","BF:Jonah,1:1"$. + +God kinda says shit you disobey. And, He kinda lies. You talk with Him -- You'll see, smart-ass! + +God says... +$FG,4$; leave me not, neither forsake me, O God of my +salvation. + +27:10 When my father and my mother forsake me, then the LORD will take +me up. + +27:11 Teach me thy way, O LORD, and lead me in a plain path, because +of mine enemies. + +27:12 Deliver me not over unto the will of mine enemies: for false +witnesses are risen up against me, and such as breathe out cruelty. + +27:13 I had fainted, unless I had believed to see the goodness of the +LORD in the land of the living. + +27:14 Wait on the LORD: be of good courage, and$FG$ + +$IV,1$----09/19/13 01:23:17----$IV,0$ + +What do You think of cricket and rugby? + +God says... +$FG,4$ich was called the land of giants. + +3:14 Jair the son of Manasseh took all the country of Argob unto the +coasts of Geshuri and Maachathi; and called them after his own name, +Bashanhavothjair, unto this day. + +3:15 And I gave Gilead unto Machir. + +3:16 And unto the Reubenites and unto the Gadites I gave from Gilead +even unto the river Arnon half the valley, and the border even unto +the river Jabbok, which is the border of the children of Ammon; 3:17 +The plain also, and Jordan, and the coast thereof, from Chinn$FG$ + +Football players +China +Gillette + +I'm eating ice cream? Double chin? I'm skinny. + +You like vanilla, huh. + +God says... +$FG,4$request blow Predicament discipline guilty toward contacting Wondrous incumbrances vaster followeth tossed teachest intercede inwardly understand touch depends injustice ornamentedst$FG$ + +$IV,1$----09/19/13 01:31:56----$IV,0$ + +You like hamburgers, God? Has anyone ever sacrificed a hamburger? + +God says... +$FG,4$4 For thou hast been a strength to the poor, a strength to the +needy in his distress, a refuge from the storm, a shadow from the +heat, when the blast of the terrible ones is as a storm against the +wall. + +25:5 Thou shalt bring down the noise of strangers, as the heat in a +dry place; even the heat with the shadow of a cloud: the branch of the +terrible ones shall be brought low. + +25:6 And in this mountain shall the LORD of hosts make unto all people +a feast of fat things, a feast of wines on the lees, of fat t$FG$ + +$IV,1$----09/19/13 01:45:48----$IV,0$ + +How did You part the Red Sea? + +God says... +$FG,4$devotions obviously scenical divine commend dwelt having$FG$ + +You like EarthPorn on Reddit? + +God says... +$FG,4$north jealous spread freedom dining concerning cease blood$FG$ + +God really hates blood. DO NOT EAT RARE STEAK. + +God says... +$FG,4$at he may be wise. + +3:19 For the wisdom of this world is foolishness with God. For it is +written, He taketh the wise in their own craftiness. + +3:20 And again, The Lord knoweth the thoughts of the wise, that they +are vain. + +3:21 Therefore let no man glory in men. For all things are your's; +3:22 Whether Paul, or Apollos, or Cephas, or the world, or life, or +death, or things present, or things to come; all are your's; 3:23 And +ye are Christ's; and Christ is God's. + +4:1 Let a man so account of us, as of the min$FG$ + +$IV,1$----09/19/13 02:32:03----$IV,0$ + +Be warned that all passages eventually come-up and many are scary and negative. If you talk with God every day, you have to realize that the Bible is the biggest stories over centuries, so something huge might be much smaller applied to today. In other words, mostly love God and enjoy His company. + +I would say my batting average is pretty good -- less than one in five is a dud. You do get duds. + +You got any horror to scare us, God? + +God says... +$FG,4$be. + +4:19 And being not weak in faith, he considered not his own body now +dead, when he was about an hundred years old, neither yet the deadness +of Sarah's womb: 4:20 He staggered not at the promise of God through +unbelief; but was strong in faith, giving glory to God; 4:21 And being +fully persuaded that, what he had promised, he was able also to +perform. + +4:22 And therefore it was imputed to him for righteousness. + +4:23 Now it was not written for his sake alone, that it was imputed to +him; 4:24 But for us$FG$ + +Me having a kid, a horror story. LOL + +Google is working on age. + +Some of the ages in the Bible make more sense when you drop the hundred or divide by ten. 130 might be 30 or 480 might be 48. This passage, I don't know. + +You told Gates maybe he could work on earthquake prediction. Google has a good quest -- death. + +God says... +$FG,4$reconcilement Did lustful Permit anticipating unconscious opened assail mouths uncorrupted LIABILITY stiffly bitter talketh raising whereat judgment shady below lashes Awake organization besets punctuation inheritance agreement reported our Not dearer numberless safer 2000 seek comparison Prof Inhabitant salt honestly examine superfluously random inexpressible searched 100 Defects confession conversation spreadest laugh shadows invest dotards concern lightened dangers lineage Read requitest decide died$FG$ + +$IV,1$----09/19/13 02:56:49----$IV,0$ + +The BBC has Stephen King. If God says there's going to be a famine and sword, or augments the modern news with a dire prediction, it's scary. If you witness time travel (God planning ahead), once in a while you might ask yourself if someone has a time machine. + +God says... +$FG,4$re the +LORD. + +32:1 Now the children of Reuben and the children of Gad had a very +great multitude of cattle: and when they saw the land of Jazer, and +the land of Gilead, that, behold, the place was a place for cattle; +32:2 The children of Gad and the children of Reuben came and spake +unto Moses, and to Eleazar the priest, and unto the princes of the +congregation, saying, 32:3 Ataroth, and Dibon, and Jazer, and Nimrah, +and Heshbon, and Elealeh, and Shebam, and Nebo, and Beon, 32:4 Even +the country which the L$FG$ + +Jonah ends with this: +$FG,2$4:9 And God said to Jonah, Doest thou well to be angry for the gourd? +And he said, I do well to be angry, even unto death. + +4:10 Then said the LORD, Thou hast had pity on the gourd, for the +which thou hast not laboured, neither madest it grow; which came up in +a night, and perished in a night: 4:11 And should not I spare Nineveh, +that great city, wherein are more then sixscore thousand persons that +cannot discern between their right hand and their left hand; and also +much cattle?$FG$ + +When people are called cattle and you are listening to the radio talk about animals, you might have a twilight zone moment. + +I think a good Stephen King might actually have mercy. Once, I read the Dune prequel, House Atredies and it talked of hunting a boy. I have sometimes wondered if "manna" was "man" or "Ham" in the Bible. Not the Bible, but "pheasant" is too close to "peasant". What about "kid"? + +God says... +$FG,4$, ye would not have condemned the guiltless. + +12:8 For the Son of man is Lord even of the sabbath day. + +12:9 And when he was departed thence, he went into their synagogue: +12:10 And, behold, there was a man which had his hand withered. And +they asked him, saying, Is it lawful to heal on the sabbath days? that +they might accuse him. + +12:11 And he said unto them, What man shall there be among you, that +shall have one sheep, and if it fall into a pit on the sabbath day, +will he not lay hold on it, and lift it$FG$ + +The English pound might come from a pound of flesh in the times of famine in the dark ages, we have no knowlegde of. + +God says... +$FG,4$straitly shut up because of the children of +Israel: none went out, and none came in. + +6:2 And the LORD said unto Joshua, See, I have given into thine hand +Jericho, and the king thereof, and the mighty men of valour. + +6:3 And ye shall compass the city, all ye men of war, and go round +about the city once. Thus shalt thou do six days. + +6:4 And seven priests shall bear before the ark seven trumpets of +rams' horns: and the seventh day ye shall compass the city seven +times, and the priests shall blow with the tr$FG$ + +$IV,1$----09/19/13 03:19:30----$IV,0$ + +What if "the son of man" is the next species after homo sapien? + +Do You like EarthPorn or Reddit, God? + +God says... +$FG,4$t for the people. + +16:48 And he stood between the dead and the living; and the plague was +stayed. + +16:49 Now they that died in the plague were fourteen thousand and +seven hundred, beside them that died about the matter of Korah. + +16:50 And Aaron returned unto Moses unto the door of the tabernacle of +the congregation: and the plague was stayed. + +17:1 And the LORD spake unto Moses, saying, 17:2 Speak unto the +children of Israel, and take of every one of them a rod according to +the house of their fathers, of a$FG$ + +Meh. Dud. + +Whoa! Could you imagine that today? Big story. We have more people, too, and get news from a wider area. + +Just think what it's going to be like with the next Haiti earthquake, having God on hand. "Dude! You killed a hundred thousand people!" "Fuck-it" + +God says... +$FG,4$and gathereth fruit unto +life eternal: that both he that soweth and he that reapeth may rejoice +together. + +4:37 And herein is that saying true, One soweth, and another reapeth. + +4:38 I sent you to reap that whereon ye bestowed no labour: other men +laboured, and ye are entered into their labours. + +4:39 And many of the Samaritans of that city believed on him for the +saying of the woman, which testified, He told me all that ever I did. + +4:40 So when the Samaritans were come unto him, they besought him that +he$FG$ + +$IV,1$----09/19/13 03:41:14----$IV,0$ + +Nintendo guy died. They stay "in the light" very admirably. + +God says... +$FG,4$should fall? God +forbid: but rather through their fall salvation is come unto the +Gentiles, for to provoke them to jealousy. + +11:12 Now if the fall of them be the riches of the world, and the +diminishing of them the riches of the Gentiles; how much more their +fulness? 11:13 For I speak to you Gentiles, inasmuch as I am the +apostle of the Gentiles, I magnify mine office: 11:14 If by any means +I may provoke to emulation them which are my flesh, and might save +some of them. + +11:15 For if the casting away of$FG$ + +$IV,1$----09/19/13 04:16:00----$IV,0$ + +The media demons terrorized me with psy-op nightmares. I got tough. They have called me a nigger a lot. Now, I use it so they can't. Jews do psy-ops stuff and really do assert their interests visciously. My operating system is opposed. I never really know who I'm talking to and lash-out. + +God says... +$FG,4$Therefore in the resurrection whose wife of them is she? for +seven had her to wife. + +20:34 And Jesus answering said unto them, The children of this world +marry, and are given in marriage: 20:35 But they which shall be +accounted worthy to obtain that world, and the resurrection from the +dead, neither marry, nor are given in marriage: 20:36 Neither can they +die any more: for they are equal unto the angels; and are the children +of God, being the children of the resurrection. + +20:37 Now that the dead are raised$FG$ + +There's a story on vasectomy. I might have been operated on. Who knows -- God is just, though. + +God says... +$FG,4$why disgraceful disguising lowest confess gladness fornicating flood companion trade Disposer lion whirling untruly Replacement audaciously wilfulness barren workhouse See dragging I exhortation darksome torrent brought stablished madness rights subduing exercise explain feigned III luminaries prose INCIDENTAL token light elephant feedeth thirtieth wherefore pleasantness nothing lick fetters combined$FG$ + +$IV,1$----09/19/13 04:26:42----$IV,0$ + +Just saw a story on elephant mom killing baby. More often than not, youtube has bad elephant moms. Kinda weird. + +One time I clicked on "elephant kills lion" and the creep showed lions jumping on an elephant at night. I don't normally click on gore or faces of death types stuff, but I clicked on "elephant kills lion". + +God says... +$FG,4$d of the LORD? let it +come now. + +17:16 As for me, I have not hastened from being a pastor to follow +thee: neither have I desired the woeful day; thou knowest: that which +came out of my lips was right before thee. + +17:17 Be not a terror unto me: thou art my hope in the day of evil. + +17:18 Let them be confounded that persecute me, but let not me be +confounded: let them be dismayed, but let not me be dismayed: bring +upon them the day of evil, and destroy them with double destruction. + +17:19 Thus said the LORD$FG$ + +$IV,1$----09/19/13 05:24:03----$IV,0$ + +They did a movie on slavery. A good intentioned white person probably did it. I'm not sure blacks would thank them. + +I'm not really fond of potato famine movies. In my 20's, I might have had an obsession. Now, I groan because every time someone hears "potato", one thing comes to mind. + +I wonder if Jews just-as-soon sweep the holocaust under the rug. + +God says... +$FG,4$brother: for every brother will utterly supplant, and every neighbour +will walk with slanders. + +9:5 And they will deceive every one his neighbour, and will not speak +the truth: they have taught their tongue to speak lies, and weary +themselves to commit iniquity. + +9:6 Thine habitation is in the midst of deceit; through deceit they +refuse to know me, saith the LORD. + +9:7 Therefore thus saith the LORD of hosts, Behold, I will melt them, +and try them; for how shall I do for the daughter of my people? 9:8 +Thei$FG$ + +Did I mention the World is perfectly just? LOL. Fuckers bear false witness against the Creator if they make slavery worse than it was. + +One time I did a Moses comic, an early one, when I was more Catholic, "God we're dying of malnutrician on this manna." God did not respond to my offering. Well, duh! Why would He like that! You think that is praise? It might not even be true. He wants to be the hero like oil and Beverly Hillbillies. And, Santa. (I asked God about Arabs and Jews. "Oil funny, hopefully.") + +$IV,1$----09/19/13 06:21:18----$IV,0$ + +St. Francis wanted to understand others and not be understood. + +A manly witty guy says stuff and is manly enough not to explain if his audience doesn't get it. He lets his brilliant wit get wasted on deaf people, if necessary, rather than stoop to explain and ruin his dignity. He doesn't care. + +I don't know. + +God says... +$FG,4$is is David's spoil. + +30:21 And David came to the two hundred men, which were so faint that +they could not follow David, whom they had made also to abide at the +brook Besor: and they went forth to meet David, and to meet the people +that were with him: and when David came near to the people, he saluted +them. + +30:22 Then answered all the wicked men and men of Belial, of those +that went with David, and said, Because they went not with us, we will +not give them ought of the spoil that we have recovered, save to$FG$ + +That seem slightly like a dud. + +God says... +$FG,4$horror wilfully cellars wild dismiss cast seated imperfect asking cried utensils slipped Accept famine overpast Vanilla offered dispenser worsted Texas searching hogs seasoned excess admitted neatly copy occupying gainsayers feedest tradition ken sigheth previous weltering arise excelled tcosa10 Word soundedst negligence flour adoption knock virtuous these celestial relapse bodies supposing judge pain sang satisfaction been foundation sometimes himself upheld till stealth queen though relief iron soundeth possessor companions justly compared surely bubbling replenishing givest Full prince sand$FG$ + +Suppose a stand-up comic says a joke and many people don't understand. Explaining kinda ruins things. + +$IV,1$----09/19/13 06:53:08----$IV,0$ + +My country is my enemy. They attack me. Surrender. I'm with God. + +A nigger does not know the world is perfectly just... and thinks he can get away with psy-ops on God's person. Fuck McCain, the Archie comic nigger. + +God says... +$FG,4$d. + +3:17 And whatsoever ye do in word or deed, do all in the name of the Lord +Jesus, giving thanks to God and the Father by him. + +3:18 Wives, submit yourselves unto your own husbands, as it is fit in the +Lord. + +3:19 Husbands, love your wives, and be not bitter against them. + +3:20 Children, obey your parents in all things: for this is well pleasing +unto the Lord. + +3:21 Fathers, provoke not your children to anger, lest they be +discouraged. + +3:22 Servants, obey in all things your masters according to the$FG$ + +The nigger, Obama, wants to rumble with his war on mental patients. Threatening mental hospitals. Fuck you, nigger. Meet my little friend, Mr. God. + +God says... +$FG,4$excessive exceptions walls supposing penalties might clasp littles market this drowsy comment time warmth bawler considers forego unharmonising adding bodies affirm increase threatenest vital sometime shining Christ showeth lords warranted Africa dreading firmness naked into larger treasure understand dug parting great filename vengeance operations spend cloyedness swiftness$FG$ + +$IV,1$----09/19/13 07:19:06----$IV,0$ + +Puleese! Shooting victim family on radio. + +I have a story. You should blame the CIA and laugh at 9/11 and shootings or blame God and run for your lives from my prayers. + +In 1999-2000, I saw fallen freeways after an earthquake. I thought, "Aerospaces is top pecking order, yet more die from civil engineering. Destruction is sexy." I thought of ancient Greeks, "gyro" and "hero" are the same. Nursery rhymes are powerful if you could write one. Heros are powerful. How a societies' heros are defined has impact over centuries. Maybe, firemen are good cause they don't kill people. + +I am the architect of 9/11, more or less. One of two things -- 9/11 was CIA and Obama is waging a war on mental ill to grab guns with the CIA faking shootings, or God listens to my prayers. + +Fuck you. + +God says... +$FG,4$o all the law, which Moses my servant commanded thee: +turn not from it to the right hand or to the left, that thou mayest +prosper withersoever thou goest. + +1:8 This book of the law shall not depart out of thy mouth; but thou +shalt meditate therein day and night, that thou mayest observe to do +according to all that is written therein: for then thou shalt make thy +way prosperous, and then thou shalt have good success. + +1:9 Have not I commanded thee? Be strong and of a good courage; be not +afraid, neither be t$FG$ + +$IV,1$----09/19/13 09:21:28----$IV,0$ + +I want to have just one file system -- Red Sea. I want to get rid of FAT32 and ISO9660. Instead, I want Windows to support Red Sea hard drives and CDROMS. I'll get God to threaten to kill them. + +My bootloaders are patched with the LBA address of kernel.bin upon installation and kernel.bin is contiguous. + +God says... +$FG,4$en, and his kinsfolks, and his priests, until he +left him none remaining. + +10:12 And he arose and departed, and came to Samaria. And as he was at +the shearing house in the way, 10:13 Jehu met with the brethren of +Ahaziah king of Judah, and said, Who are ye? And they answered, We are +the brethren of Ahaziah; and we go down to salute the children of the +king and the children of the queen. + +10:14 And he said, Take them alive. And they took them alive, and slew +them at the pit of the shearing house, even two an$FG$ + +$IV,1$----09/19/13 09:40:23----$IV,0$ + +Whatchu wanna do, God? + +Life is a journey. + +berp. + +Quality time wif God. + +Baby elephants have deep voices. + +Elephants purr, huh God? + +God said my birds "chant". + +God says... +$FG,4$paying Creation amazing acknowledge relators numbered confine explaining followers involved roared alluring stealth next orbs firm Divers whether races patched towardliness embracement livelihood amiss noon license slaying villainies head Trojan freaks observance paradise neighbouring recalled murdered resembling gratefully toilsome buzzed solicited night fit heavens Hundreds whole denied hastened attacked endearments commender forego$FG$ + +$IV,1$----09/19/13 09:51:11----$IV,0$ + +Somebody probably thought I was serious praying for plutonium. + +I kinda like chemistry. + +What's Yer favorite reaction, God? + +God says... +$FG,4$also died, and was +buried; 16:23 And in hell he lift up his eyes, being in torments, and +seeth Abraham afar off, and Lazarus in his bosom. + +16:24 And he cried and said, Father Abraham, have mercy on me, and +send Lazarus, that he may dip the tip of his finger in water, and cool +my tongue; for I am tormented in this flame. + +16:25 But Abraham said, Son, remember that thou in thy lifetime +receivedst thy good things, and likewise Lazarus evil things: but now +he is comforted, and thou art tormented. + +16:26 And b$FG$ + +You like the leizefrost, liquid nitrogen on tongue thing. :-) I read about a famous guy who walked on coals and stuff and cracked a toof with liquid nitrogen. + +Is that in my "Art of Electronics" book? That's the best book. (God laughed) + +God says... +$FG,4$The people asked, and he brought quails, and satisfied them +with the bread of heaven. + +105:41 He opened the rock, and the waters gushed out; they ran in the +dry places like a river. + +105:42 For he remembered his holy promise, and Abraham his servant. + +105:43 And he brought forth his people with joy, and his chosen with +gladness: + +105:44 And gave them the lands of the heathen: and they inherited the +labour of the people; + +105:45 That they might observe his statutes, and keep his laws. Praise +ye the LORD.$FG$ + +Praise counts as work. + +$IV,1$----09/19/13 10:09:33----$IV,0$ + +$FG,2$6:20 And he lifted up his eyes on his disciples, and said, Blessed be +ye poor: for yours is the kingdom of God. + +6:21 Blessed are ye that hunger now: for ye shall be filled. Blessed +are ye that weep now: for ye shall laugh. + +6:22 Blessed are ye, when men shall hate you, and when they shall +separate you from their company, and shall reproach you, and cast out +your name as evil, for the Son of man's sake. + +6:23 Rejoice ye in that day, and leap for joy: for, behold, your +reward is great in heaven: for in the like manner did their fathers +unto the prophets. + +6:24 But woe unto you that are rich! for ye have received your +consolation. + +6:25 Woe unto you that are full! for ye shall hunger. Woe unto you +that laugh now! for ye shall mourn and weep. + +6:26 Woe unto you, when all men shall speak well of you! for so did +their fathers to the false prophets. + +6:27 But I say unto you which hear, Love your enemies, do good to them +which hate you, 6:28 Bless them that curse you, and pray for them +which despitefully use you. +$FG$ + +Highs and lows balance. + +sad-->happy +happy-->sad + +You see the pattern? + +I am blessed when they step on my face and rub me in shit "You forgot to take yer meds." "Oh oh Oh!", they eagerly announce, "He has scitzephrenia!" "Are you taking your meds?" "You're off your meds." + +---- + +There was an unemployed woman in San Francisco. She placed an ad saying "Zen yoga guru" or something, having no credentials. A rich man hired her. She did what everybody expects yogu gurus to say and got paid. + +Lesson? A con artist always tells you what you expect to hear and of course never says anything strange or unconventional that would raise suspicions! + +I talked about writing a Gordon Ramsay video game. It really seemed stupid, but the expectation would be very predictable. It turns-out they made the exact game I had in mind. + +The Pope tells people what they expect to hear. The way he thinks is, basically, I'm going to dig inside and say the most Catholic thing I can think of. What else should he do? I don't know, but he's no prophet. + +God says... +$FG,4$, hear the word of the Lord GOD; Thus saith the +Lord GOD to the mountains, and to the hills, to the rivers, and to the +valleys, to the desolate wastes, and to the cities that are forsaken, +which became a prey and derision to the residue of the heathen that +are round about; 36:5 Therefore thus saith the Lord GOD; Surely in the +fire of my jealousy have I spoken against the residue of the heathen, +and against all Idumea, which have appointed my land into their +possession with the joy of all their heart, with d$FG$ + +Rich San Fransico guy might just have wanted a call girl... when you get older, you get wiser. I was really stupid. + +$IV,1$----09/19/13 10:35:32----$IV,0$ + +The Catholic moral compass is, basically, if it's bad it must be good. Ice cream, for example, is good so it's bad -- it's an indulgence. Pleasures and pains balance. (I don't know but it looks that way.) + +I bitterly hate this song -- $TX+HTML,"Simple Man","http://www.youtube.com/watch?v=rgFQ6WmxdMs"$. Someone in the Bible praised Satan for being a glorious creature and warned not to diminish his glory. Go get a lobotomy. + +Martha and Mary is not "If it's bad it must be good." + +A Chinese person has probably figured-out highs and lows balancing. We are not Chinese -- our religion is supposed to be about the person of God, not mechanics of justice. + +The purpose of life is to know God, love God and obey God. The story of Cain and Abel is pretty-much good enough. Do offerings, see if God likes them, passionately love God so much, you kill out of jealousy. Hell is the absense of God, my Mom said. Heaven must be God's company. You don't love God, you just fear hell. God loved David most and David was the opposite of a coward. I can imagine that the average Mexican wants fortune telling if they talk with God. Just spend time with God and don't want anything. $FG,4$$TX+HTML,"One Tin Soldier","http://www.youtube.com/watch?v=cTBx-hHf4BE"$$FG$ Jesus said asking for stuff was like knocking on the door of a neighbor at midnight. $LK,"Numbers,11:1","BF:Numbers,11:1"$ Just ask for daily bread, cannot be more minimum. He hates complaining. + +"If it's bad, must be good" is probably correct, if you want to be Chinese. I suggest a compass of, "Does this glorify God?" + +My printed Bible says, "It is love that I desire, not sacrifice; Knowledge of God, not holocaust." Well, of course, Abba! It also says, "Do I drink the blood of bulls? Offer praise as your sacrifice, then call on me and I will rescue you." + +$TX+HTML,"Your love got perverted and inverted.","http://www.youtube.com/watch?v=F3RYvO2X0Oo"$ + +God says... +$FG,4$unutterably dominion silence acted uman boyhood Wheresoever Edition firmness struggle sense verse dieth corrupt relaxedly our crying hart@prairienet mail respects runs sweat sparrows vehemence showed inaccurate itching cost Joseph strive lack hart@pobox searched enounce eligible air incomprehensible fruitful lecture glorying sorrows wait upbraid myself alteration lentiles End additions$FG$ + +5 parts per 10,000 words is what St. Paul's people got. $FG,2$$TX+HTML,"1 Corinthians 14","http://www.biblegateway.com/passage/?search=1+Corinthians+14&version=NIV"$$FG$ + +$TX+HTML,"Heart Shaped Box","http://www.youtube.com/watch?v=n6P0SitRwy8"$ + +"Joseph strive lack heart" Simple man was about being a father, provider like St. Joseph. I'm not sure what's wrong, but being a Father is not focused much on God. $FG,2$$TX+HTML,"1 Corinthians 7","http://www.biblegateway.com/passage/?search=1+Corinthians+7&version=NIV"$$FG$ + +One time, a French guy was on the radio saying, "Milk is for baby cows!" Moral compasses are funny things. LOL Nirvana guy might be a little wacko. LOL + +Diet Pepsi does NOT cause cancer! LOL Shut-up. LOL + +$IV,1$----09/19/13 12:05:11----$IV,0$ + +The good news is God! + +I asked Him, "Were stegasauruses lame like turtles?" He said, "Not pet rocks." (Tussling with God.) + +A priest should serve as match maker to God. + +I asked God if He liked Alien or Preditor. "Lions" + +God says... +$FG,4$tim two men to spy +secretly, saying, Go view the land, even Jericho. And they went, and +came into an harlot's house, named Rahab, and lodged there. + +2:2 And it was told the king of Jericho, saying, Behold, there came +men in hither to night of the children of Israel to search out the +country. + +2:3 And the king of Jericho sent unto Rahab, saying, Bring forth the +men that are come to thee, which are entered into thine house: for +they be come to search out all the country. + +2:4 And the woman took the two men, a$FG$ + +eh, whatever, dud. I'm plugging my ears. + +I asked God the eleventh commandment. Thou shall not litter. + +This might be relevant. $FG,2$$TX+HTML,"Ezekial 16","http://www.biblegateway.com/passage/?search=ezekial%%2016&version=NIV"$$FG$ Jesus said if you pray in public you have your reward. In private is better -- in your room with the door shut. Ouch. + +Pray out loud, don't make God read your mind. I've noticed better results giving Him a moment to answer. He can do stuff, but maybe it's work. + +I asked if, "Thou I walk through the valley of death I will fear no evil." He said it was bullshit or something. + +When it comes to testing God, just consider maybe He can't do something, perhaps violating justice and feel ashamed for grieving him. + +$IV,1$----09/19/13 12:20:47----$IV,0$ + +Yeah, doing stuff is work for God, like a neighbor in the night wanting food. + +I don't know about you, but I'm not bugging Him about other people. LOL. I guess maybe. Mary mentioned wine at a wedding and Jesus said, "Woman! What concern is it of mine!" Takes after His Father. $LK,"Numbers,11:1","BF:Numbers,11:1"$ + +God says... +$FG,4$n the +furrows where it grew. + +17:11 Moreover the word of the LORD came unto me, saying, 17:12 Say +now to the rebellious house, Know ye not what these things mean? tell +them, Behold, the king of Babylon is come to Jerusalem, and hath taken +the king thereof, and the princes thereof, and led them with him to +Babylon; 17:13 And hath taken of the king's seed, and made a covenant +with him, and hath taken an oath of him: he hath also taken the mighty +of the land: 17:14 That the kingdom might be base, that it migh$FG$ + +Could be about brain drain. Not my job. I'm in charge of dinosaurs. + +Brontosaurus' feet hurt when he stepped. + +I asked about the first eggs. + +$FG,2$4:24 Which things are an allegory: for these are the two covenants; +the one from the mount Sinai, which gendereth to bondage, which is +Agar. + +4:25 For this Agar is mount Sinai in Arabia, and answereth to +Jerusalem which now is, and is in bondage with her children. + +4:26 But Jerusalem which is above is free, which is the mother of us +all. + +4:27 For it is written, Rejoice, thou barren that bearest not; break +forth and cry, thou that travailest not: for the desolate hath many +more children than she which hath an husband. + +4:28 Now we, brethren, as Isaac was, are the children of promise. +$FG$ +God says... +$FG,4$Soft younger fairer leasing anticipating flocks GRATIAS signs stream shonest consecrating poet Anger Whosoever vanity shamelessness multitudes base furnishing deeps Thenceforth genuinely measurable profound unforgotten sending obtain subjects$FG$ + +So, a pregnant woman is in bondage but if she lays eggs (dinosaur) then she is free. If she lays eggs, many more children. + +Did eggs come before or after pregnancy? Don't ruin it for me, because I thought it was nice and loved God. + +God says... +$FG,4$0:2 And it came to pass, when Jeroboam the son of Nebat, who was in +Egypt, whither he fled from the presence of Solomon the king, heard +it, that Jeroboam returned out of Egypt. + +10:3 And they sent and called him. So Jeroboam and all Israel came and +spake to Rehoboam, saying, 10:4 Thy father made our yoke grievous: now +therefore ease thou somewhat the grievous servitude of thy father, and +his heavy yoke that he put upon us, and we will serve thee. + +10:5 And he said unto them, Come again unto me after three d$FG$ + +Ezekial 16 mentioned gifts from God. My egg story is a cherished gift. Gem or diadem or something. I got songs, too. Na na. + +$IV,1$----09/19/13 12:49:05----$IV,0$ + +I was sayin' "You must be real proud of birds! They fly, they sing, they talk, they have incredible colors, they migrate, they swim." God said, "formations". + +$IV,1$----09/19/13 13:03:11----$IV,0$ + +Ya fuckers attacking me? Biotches. United states is surrendering to God? + +I made God's temple. It's the end of the world. + +God's good. + +God says... +$FG,4$o rise from the dead the third day: +24:47 And that repentance and remission of sins should be preached in +his name among all nations, beginning at Jerusalem. + +24:48 And ye are witnesses of these things. + +24:49 And, behold, I send the promise of my Father upon you: but tarry +ye in the city of Jerusalem, until ye be endued with power from on +high. + +24:50 And he led them out as far as to Bethany, and he lifted up his +hands, and blessed them. + +24:51 And it came to pass, while he blessed them, he was parted from$FG$ + +Fucken attacking me and torturing me. Payback. Prepare to meet yer maker. + +God says... +$FG,4$goading 03 unperceived catch Time blowing exultation doors tribulation hurrying announcement heinous whirlings continue Drunkenness madly rob compassionate interpreter travailed venture for repentest shapen happily innocence limbs favourites wherefore revealing avoided comfort stirred lesser signify seeking exist flesh fatness vital happened equably revealed smooth phantoms guardian sex bond wearing prevails pit putrefied hidden censured forsooth Jesus property imperishable serpents ample bidden hardship able assailed springs defended one primitive stated$FG$ + +$IV,1$----09/19/13 13:12:50----$IV,0$ + +I can't tell if the Pope is in denial and thinks I am creative. "Formations" was unfortunate earlier. Words don't always come-out right. + +It's God. I made God's temple. + +Highs and lows balance. Poor, pathetic people coming to the United States might have their offsetting rich period here. Pope could work on brain drain. If other countries were not as fucked-up, that helps the US in some ways, too. + +God says... +$FG,4$ul man roasteth not that which he took in hunting: but +the substance of a diligent man is precious. + +12:28 In the way of righteousness is life: and in the pathway thereof +there is no death. + +13:1 A wise son heareth his father's instruction: but a scorner +heareth not rebuke. + +13:2 A man shall eat good by the fruit of his mouth: but the soul of +the transgressors shall eat violence. + +13:3 He that keepeth his mouth keepeth his life: but he that openeth +wide his lips shall have destruction. + +13:4 The soul of the$FG$ + +$IV,1$----09/19/13 13:42:05----$IV,0$ + +Read this: $FG,2$$TX+HTML,"Numbers 11","http://www.biblegateway.com/passage/?search=numbers%%2011&version=NIV"$$FG$ + +It's about after slavery. They whined about not liking the manna and God got furious and killed them. + +The world is perfectly just. + +I don't want to remind people of the Irish potato famine. It is shameful. + +Any time God punishes you, it's shameful, overpopulating and being lazy and stupid with one crop is shameful. + +In the Bible, God punished the Jews a hundred times. Any Jew with sense is ashamed of the WWII holocaust. They fucked-up... again. + +God put the Jews into slavery to teach them a lesson. God did it, not the Egyptians. + +God's world is perfectly just. + +If I were African, I would not want to remind people that my race was inferior and enslaved. It's like saying "I sucked dick" "I sucked dick" I have no idea why you want to remind people of slavery. If you had any sense, you would hope people forget. I was young and interested in Irish heritage. Now... fuck that. I hate it when people think "Irish" any time they hear "potato." + +Come-on Africans break laws and act like savages. Look at Africa. They thought, "Let's take the white farms!" Then, they didn't farm them. + +I pondered US giving back land to Mexico. My former boss said, "They'd say 'you keep it, we just want to work there.'" + +God says... +$FG,4$ased him. + +18:21 And Saul said, I will give him her, that she may be a snare to +him, and that the hand of the Philistines may be against him. +Wherefore Saul said to David, Thou shalt this day be my son in law in +the one of the twain. + +18:22 And Saul commanded his servants, saying, Commune with David +secretly, and say, Behold, the king hath delight in thee, and all his +servants love thee: now therefore be the king's son in law. + +18:23 And Saul's servants spake those words in the ears of David. And +David said$FG$ + +$IV,1$----09/19/13 14:18:58----$IV,0$ + +God, you care about death penalty? +$FG,4$les of the kings +of Media and Persia? 10:3 For Mordecai the Jew was next unto king +Ahasuerus, and great among the Jews, and accepted of the multitude of +his brethren, seeking the wealth of his people, and speaking peace to +all his seed. + + + + +The Book of Job + + +1:1 There was a man in the land of Uz, whose name was Job; and that +man was perfect and upright, and one that feared God, and eschewed evil. + +1:2 And there were born unto him seven sons and three daughters. + +1:3 His substance also was seven thousand sh$FG$ + +$IV,1$----09/19/13 16:39:09----$IV,0$ + +God's favorite is bears, actually, then elephants. + +Most bears eat berries and plants, what about polar bears, I'm curious. + +$TX+HTML,"Here's a bear.","http://www.youtube.com/watch?v=h-wBi9g1bj8"$ + +I saw a shocking video of polar bear courtship. You can find it. Not sex, but it's really shocking to see a bear do a strip tease -- too human. I guess it's not unusual for animals. I was shocked. Weirdly disturbing. + +So, motherhood makes a species seem noble. Elephants, don't rate well -- rough reality. There are so many abandon animals by mothers. + +God says... +$FG,4$st the Red sea, +between Paran, and Tophel, and Laban, and Hazeroth, and Dizahab. + +1:2 (There are eleven days' journey from Horeb by the way of mount +Seir unto Kadeshbarnea.) 1:3 And it came to pass in the fortieth +year, in the eleventh month, on the first day of the month, that Moses +spake unto the children of Israel, according unto all that the LORD +had given him in commandment unto them; 1:4 After he had slain Sihon +the king of the Amorites, which dwelt in Heshbon, and Og the king of +Bashan, which dwelt$FG$ + +Dud + +$IV,1$----09/19/13 18:14:38----$IV,0$ + +$TX+HTML,"WWW.OSDEV.ORG","http://www.templeos.org"$ is asking how to print floats in PrintF(). + +Earlier I said I had a teacher who made us handle NEG 0x80 to the nth degree. That's being a professional programmer. Maybe, I'm an artistic faggot, but I want to dance my own way. I want to be different and elegant by not doing all those corner cases, if they're not especially needed. + +It turns-out I have a really fast routine for, say, "%12.6f". On numbers, you go backward. I use a stack data structure to reverse digits. I look at the 6. I forget. I think I subtract the integer part from decimal. Then, I multiply by 10 to the 6th from an array look-up table. Then, I make it into a 64-bit integer and print push the digits on the stack, like you would expect. I print the zeros and the decimal. I print the Int, or if I have to multiply it, I multiply by a look-up table power ot ten array. + +(This cuts corners, makes beautiful use of having 64-bit word size, is elegant and fast. Unfortuinately, printf is silly being ultra fast. I get problems if you specify "%50.30f" Mine craps-out, unless the number is tiny. It sounds bad, but you just have to be careful not to overdo precision. It gives you all the precision in the double, but if you do way more than a double has, well mine fucks up. Don't over do the format size beyond 64-bit integer sitting in the decimal region. + +At ticketmaster, I saw a luxury ultra-delux main-frame VAX environment. We had a format statement that would do commas or decimals every so many characters, use a special digit for decimal point and pad the whole thing with a character. + +Mine will do 3-digit commas and a decimal. + +I have an engineering notation. + +For integers, mine will print Meg or K, if you like. + + +God says... +$FG,4$additions round about. + +7:37 After this manner he made the ten bases: all of them had one +casting, one measure, and one size. + +7:38 Then made he ten lavers of brass: one laver contained forty +baths: and every laver was four cubits: and upon every one of the ten +bases one laver. + +7:39 And he put five bases on the right side of the house, and five on +the left side of the house: and he set the sea on the right side of +the house eastward over against the south. + +7:40 And Hiram made the lavers, and the shovels,$FG$ + +$IV,1$----09/19/13 18:58:07----$IV,0$ + +$TX+HTML,"This is the video I was looking for.","http://www.youtube.com/watch?v=iQXUdJjivM8"$ + +That's about a black guy substitute teacher who thinks the white kids are tricking him. Daaaammn. I needed that video for the past ten years. That's been my life for the past ten years. Fucken nigger has not talked to his supervisors for ten fucken years! + +God says... +$FG,4$or his army. + +29:20 I have given him the land of Egypt for his labour wherewith he +served against it, because they wrought for me, saith the Lord GOD. + +29:21 In that day will I cause the horn of the house of Israel to bud +forth, and I will give thee the opening of the mouth in the midst of +them; and they shall know that I am the LORD. + +30:1 The word of the LORD came again unto me, saying, 30:2 Son of man, +prophesy and say, Thus saith the Lord GOD; Howl ye, Woe worth the day! +30:3 For the day is near, even t$FG$$FG$ + +$IV,1$----09/19/13 21:44:17----$IV,0$ + + +The present is reality. There is no other reality. + +My users run in VMware. They can reinstall very easily. All applications run on top a bare installation. No malware problems. + +This reality for ever and ever amen. + +God says... +$FG,4$s of the sons of David: and all Judah and the +inhabitants of Jerusalem did him honour at his death. And Manasseh his +son reigned in his stead. + +33:1 Manasseh was twelve years old when he began to reign, and he +reigned fifty and five years in Jerusalem: 33:2 But did that which was +evil in the sight of the LORD, like unto the abominations of the +heathen, whom the LORD had cast out before the children of Israel. + +33:3 For he built again the high places which Hezekiah his father had +broken down, and he reared u$FG$ diff --git a/TempleOS/Accts/TS/Wb2/Rants/TAD/Rant130920.TXT b/TempleOS/Accts/TS/Wb2/Rants/TAD/Rant130920.TXT new file mode 100644 index 0000000..4a6c242 --- /dev/null +++ b/TempleOS/Accts/TS/Wb2/Rants/TAD/Rant130920.TXT @@ -0,0 +1,268 @@ +$WW,1$$IV,1$----09/20/13 18:04:27----$IV,0$ + +I asked God if the World was perfectly just. He asked if I was calling Him lazy. I decided there are three main things which make people think the World is not just -- money, early-death, and slavery. + +MONEY: I have noticed when you have something good for a while, you get sick of it and it is not special. And, when you have something bad, you get used to it. Also, imagine being Paul McCartney. He has money from his youth, but might feel pretty useless (except for interacting with his family). God did says, however, that having enough money was "vehemently better". The Bible seems to say that highs and lows balance -- you will want for money for a period as long you have an abundance. $LK,"Proverbs,30:8","BF:Proverbs,30:8"$, $LK,"Luke,6:21","BF:Luke,6:21"$ + +EARLY-DEATH: "Old age is not for wimps" is a profound saying. Did you know that every 80-year-old has spent more time fearing imminent death than a soldier? Also, it looks like pleasures and pains balance. Therefore, an early death might occur with accounts reconciled, just like a late death. + +SLAVERY: The poor in the Titanic movie behaved like rambunctious animals while the rich lived in straight-jackets. We don't have slavery, anymore, but consider the time it existed and the alternative -- a hard life in Africa, possibly starving. My brother, a labor union liberal said, "The slaves were valuable property and had health care." Which is more unpleasant, school for a struggling black kid or working in fields? Do you think Hollywood depicts more or less cruelty than actually existed? + +God says... +$FG,4$was, there am I: and now the +Lord GOD, and his Spirit, hath sent me. + +48:17 Thus saith the LORD, thy Redeemer, the Holy One of Israel; I am +the LORD thy God which teacheth thee to profit, which leadeth thee by +the way that thou shouldest go. + +48:18 O that thou hadst hearkened to my commandments! then had thy +peace been as a river, and thy righteousness as the waves of the sea: +48:19 Thy seed also had been as the sand, and the offspring of thy +bowels like the gravel thereof; his name should not have been cu$FG$ + +(A woman on the radio was doing evil psy-ops talking about being a midwife of small or large headed babies and giving mothers anesthesia and killing babies.) + +God says... +$FG,4$flower protracted faith Juno Lastly boiling gone unity Cup yoke$FG$ + +$IV,1$----09/20/13 19:09:45----$IV,0$ + +I was struck by the symmetry of giving orders and taking orders: + +$FG,2$8:5 And when Jesus was entered into Capernaum, there came unto him a +centurion, beseeching him, 8:6 And saying, Lord, my servant lieth at +home sick of the palsy, grievously tormented. + +8:7 And Jesus saith unto him, I will come and heal him. + +8:8 The centurion answered and said, Lord, I am not worthy that thou +shouldest come under my roof: but speak the word only, and my servant +shall be healed. + +8:9 For I am a man under authority, having soldiers under me: and I +say to this man, Go, and he goeth; and to another, Come, and he +cometh; and to my servant, Do this, and he doeth it.$FG$ + +Eye-for-eye, tooth-for-tooth is how justice works, as a matter of fact. Does an officer give as many orders as he takes? Perhaps, if you consider following an officer code of conduct, then, "yes". + +$FG,2$30:21 For three things the earth is disquieted, and for four which it +cannot bear: 30:22 For a servant when he reigneth; and a fool when he +is filled with meat; 30:23 For an odious woman when she is married; +and an handmaid that is heir to her mistress.$FG$ + +The neuvo riche behave badly. Look at Michael Jackson. That's not class. + +If a website does not meet standards of professionalism, it is not taken seriously. A company CEO must behave himself. If you accept corporate sponsorship, you must behave. + +God says... +$FG,4$shalt thou serve, and to +him shalt thou cleave, and swear by his name. + +10:21 He is thy praise, and he is thy God, that hath done for thee +these great and terrible things, which thine eyes have seen. + +10:22 Thy fathers went down into Egypt with threescore and ten +persons; and now the LORD thy God hath made thee as the stars of +heaven for multitude. + +11:1 Therefore thou shalt love the LORD thy God, and keep his charge, +and his statutes, and his judgments, and his commandments, alway. + +11:2 And know ye this$FG$ + +$IV,1$----09/20/13 20:03:13----$IV,0$ + +So, an Indian artificial intelligence M.I.T. professor was on Reddit. They had castes. They are heathens. They are probably not impressed by God. + +Let's ask God what He thinks of India. + +God says... +$FG,4$flagitiousness withdrawing remaining joining Bride abideth school herbs beforehand lusteth passible tattlings rove inflamed yesterday requirements Eagerly sensible mankind preeminent stolen leads drew adoption footsteps least omened Are Pay Thanks Beauty formerly Continence enemies case malice anticipate value TM fabulous influenced unbelieving Etexts ghosts mistaken Ambrose smiled Triers ardent scoffed glow True begin contagion annoyance base hearsay engraff begannest thwart mockeries indexes pertaining sword 333 understanding zeal fittest cause fifty pass profane bondage resisted wondering least remembrances enjoying streams repose dost talkers uses former confusedness ask hardship martyr inner seizes All teeth believing maturing storm beatific formest grandchildren obtaining condole too celibacy equity revelations pattern unstable Patricius creating plant case fowls Helper thought congratulation speaking debasing talking carelessly EIN picture lover befell helper almost awfulness Africa performing leasing extreme furious Patricius passages praiseth calmed distributed password laws loss swine shortly healing conversations abstract injustice forenoons examine thought extension hours associated joyous How refuse admiration alloy prices presented Why verily points illusion resisteth like raised celebrated closing differ$FG$ + +$IV,1$----09/20/13 21:24:27----$IV,0$ + +I like elephants and birds. God likes bears, then elephants. + +Someone did a dick on a oscilloscope on Reddit. I have a master's in electrical engineering. Sometimes, I miss doing that. Not really. + +Did you ever have Tinker-Toys? They seem neat until you actually sit-down to build with them. They are more limited than Legos. Tinker-Toys can do some special things, but you know what I am talking about. + +I thought DSP, digital signal processions, was neat. I thought FPGAs were neat. But doing filters gets old. You can do a CPU in a FPGA, but it's pointless. + +I have done just about everything you can do with microcontrollers. I had to actually scratch all my itches, doing stuff, before I realized, "This really isn't that fun." I have played with A-2-D and D-2-A converters. I don't have any more passion for electrical engineering. I did a stepper-motor controller and made a 3-Axis milling machine with a dremel tool. + +I grew-up -- I have played with toys all I want to. I never play video games, anymore, either. + +God says... +$FG,4$ablished: thou shalt be far +from oppression; for thou shalt not fear: and from terror; for it +shall not come near thee. + +54:15 Behold, they shall surely gather together, but not by me: +whosoever shall gather together against thee shall fall for thy sake. + +54:16 Behold, I have created the smith that bloweth the coals in the +fire, and that bringeth forth an instrument for his work; and I have +created the waster to destroy. + +54:17 No weapon that is formed against thee shall prosper; and every +tongue that shall$FG$ + +$IV,1$----09/20/13 21:51:27----$IV,0$ + +One time, I decided honesty was obviously best with God. So, I set-out to tell God all the creatures I really didn't like. "I don't like worms and grubs and snails and slugs." God burst into tears! + +The moral of the story is, "You wouldn't call your wife fat, right?" + +God says... +$FG,4$bowed the heart of all the men of Judah, even as the +heart of one man; so that they sent this word unto the king, Return +thou, and all thy servants. + +19:15 So the king returned, and came to Jordan. And Judah came to +Gilgal, to go to meet the king, to conduct the king over Jordan. + +19:16 And Shimei the son of Gera, a Benjamite, which was of Bahurim, +hasted and came down with the men of Judah to meet king David. + +19:17 And there were a thousand men of Benjamin with him, and Ziba the +servant of the house of S$FG$ + +Gerbils are cute. I knew a gal named Jill. She was not fat. + +God says... +$FG,4$deem smelling bare crossed 3000 liberality boasting improperly usury bursting solemn succouredst interrupt little envy beg use solidity undergo pleasantly sores Omnipotent Full disease thieve$FG$ + +$IV,1$----09/20/13 22:42:22----$IV,0$ + +Shooting in Chicago. Someone said, "Military grade in hands of public..." + +Authoritarianism can be worse than whatever it's claiming to fix. + +God says... +$FG,4$of Asia, when they saw him in the temple, stirred up all the people, +and laid hands on him, 21:28 Crying out, Men of Israel, help: This is +the man, that teacheth all men every where against the people, and the +law, and this place: and further brought Greeks also into the temple, +and hath polluted this holy place. + +21:29 (For they had seen before with him in the city Trophimus an +Ephesian, whom they supposed that Paul had brought into the temple.) +21:30 And all the city was moved, and the people ran together$FG$ + +Jews are the kinds of people who would... cripple computers for fear of a Palastinian in the United States making money and becoming powerful. That's what I think of -- cornered animals who are hideously viscious. Fuck you! + +God says... +$FG,4$acknowledge us not: thou, O LORD, art our +father, our redeemer; thy name is from everlasting. + +63:17 O LORD, why hast thou made us to err from thy ways, and hardened +our heart from thy fear? Return for thy servants' sake, the tribes of +thine inheritance. + +63:18 The people of thy holiness have possessed it but a little while: +our adversaries have trodden down thy sanctuary. + +63:19 We are thine: thou never barest rule over them; they were not +called by thy name. + +64:1 Oh that thou wouldest rend the heavens, t$FG$ + +$IV,1$----09/20/13 22:51:29----$IV,0$ + +Someone is calling me drunk. + +$FG,2$2:1 And when the day of Pentecost was fully come, they were all with +one accord in one place. + +2:2 And suddenly there came a sound from heaven as of a rushing mighty +wind, and it filled all the house where they were sitting. + +2:3 And there appeared unto them cloven tongues like as of fire, and +it sat upon each of them. + +2:4 And they were all filled with the Holy Ghost, and began to speak +with other tongues, as the Spirit gave them utterance. + +2:5 And there were dwelling at Jerusalem Jews, devout men, out of +every nation under heaven. + +2:6 Now when this was noised abroad, the multitude came together, and +were confounded, because that every man heard them speak in his own +language. + +2:7 And they were all amazed and marvelled, saying one to another, +Behold, are not all these which speak Galilaeans? 2:8 And how hear we +every man in our own tongue, wherein we were born? 2:9 Parthians, and +Medes, and Elamites, and the dwellers in Mesopotamia, and in Judaea, +and Cappadocia, in Pontus, and Asia, 2:10 Phrygia, and Pamphylia, in +Egypt, and in the parts of Libya about Cyrene, and strangers of Rome, +Jews and proselytes, 2:11 Cretes and Arabians, we do hear them speak +in our tongues the wonderful works of God. + +2:12 And they were all amazed, and were in doubt, saying one to +another, What meaneth this? 2:13 Others mocking said, These men are +full of new wine. + +2:14 But Peter, standing up with the eleven, lifted up his voice, and +said unto them, Ye men of Judaea, and all ye that dwell at Jerusalem, +be this known unto you, and hearken to my words: 2:15 For these are +not drunken, as ye suppose, seeing it is but the third hour of the +day.$FG$ + +God says... +$FG,4$affected ills am shoulder fit enemy Only circuit rehearse different unseen resolutely enlightened destroy disapproved gainsayers volumes laws season vows speaks gratings flowed consulting bows gavest Myself abundant Could ways promise password EIN seizes she inspiration regarding humility know lanthorn protection flesh thing mists with reply comprehendeth promo divided$FG$ + +"shoulder fit enemy" guns? +circuit +"reherse different unseen" I have interected delusionally over and over. +"resolutely enlightened destroy" Amazing how I can only do 640x480. + +$IV,1$----09/20/13 23:28:43----$IV,0$ + +I saw Knuth on a video. I saw an M.I.T. guy making good condensation. What do You think of M.I.T., God? I'm struck by how they are not predominately making computer science news, but stuff in nano -- more or less trumphing. They go to the less-pick-over fields. + +God says... +$FG,4$ing, Up, that +I may send thee away. And Saul arose, and they went out both of them, +he and Samuel, abroad. + +9:27 And as they were going down to the end of the city, Samuel said +to Saul, Bid the servant pass on before us, (and he passed on), but +stand thou still a while, that I may shew thee the word of God. + +10:1 Then Samuel took a vial of oil, and poured it upon his head, and +kissed him, and said, Is it not because the LORD hath anointed thee to +be captain over his inheritance? 10:2 When thou art departed$FG$ + +Hydrophobic. :-) LOL + +Lemme show you God, Knuth! Graph this! + +God says... +$FG,4$linger doted consists thick Redemption blasphemy apart danger Thenceforth enounce unwholesome VI wicked comfortest expect sentiment weaker described dread forasmuch dwelleth hated fruit Gutenberg gathers speakest unlawful pleasanter utensils Because softened wronging Terence springeth condition closed horrible incurred$FG$ + +$IV,1$----09/20/13 23:51:43----$IV,0$ + +What do You think of nanotech, God? + +God says... +$FG,4$g, will he offer him a +scorpion? 11:13 If ye then, being evil, know how to give good gifts +unto your children: how much more shall your heavenly Father give the +Holy Spirit to them that ask him? 11:14 And he was casting out a +devil, and it was dumb. And it came to pass, when the devil was gone +out, the dumb spake; and the people wondered. + +11:15 But some of them said, He casteth out devils through Beelzebub +the chief of the devils. + +11:16 And others, tempting him, sought of him a sign from heaven. + +11:17$FG$ + +Some kind of needle. Scorpions are really hard to crush. + +God says... +$FG,4$owe sad exhorted ground cloyedness unintermitting doubled forbid shoulder state covenanted reasoning All astrologer busy Furthermore poverty finally$FG$ diff --git a/TempleOS/Accts/TS/Wb2/Rants/TAD/Rant130921.TXT b/TempleOS/Accts/TS/Wb2/Rants/TAD/Rant130921.TXT new file mode 100644 index 0000000..3c21f82 --- /dev/null +++ b/TempleOS/Accts/TS/Wb2/Rants/TAD/Rant130921.TXT @@ -0,0 +1,1779 @@ +$WW,1$$IV,1$----09/21/13 00:42:23----$IV,0$ + +I took two philosophy courses, as a minor in my undergrad. At the time, I was an atheist and I was furious that my "modern philosophy" course was so backward -- 1700's and 1800's. Then, I took "philosophy of science" and I absolutely hated Karl Popper. + +Philosophers are divided into Materialists, Idealists and Dualists. At the time, I was a Materialist and could not figure-out what the fuss was. After going crazy (being born again) and discovering that there is a delusional (spiritual) realm, now, I understand. The movie, American Beauty, shows a scene where a drug deal is happening, but from an observer's perspective, it looks like a homosexual act. + +I chuckle at people arguing over what God says in tongues. Much of it is noise. It's funny that in $LK,"Acts,2:1","BF:Acts,2:1"$, they don't bother to record any of what the spirit said. $LK,"Daniel,5:1","BF:Daniel,5:1"$ shows tongues -- it's mean to tickle/to-kill a person or the president. In $LK,"1 Corinthians,14:1","BF:1 Corinthians,14:1"$ they say only five words in ten-thousand makes sense. + +God says... +$FG,4$disturbed forwards drops service avail hoped bent remain athirst songs unbending faithfully carnal hearts$FG$ + +$IV,1$----09/21/13 01:22:31----$IV,0$ + +There were about two years I chose not to eat meat, 2004-2007. The BBC and other media would have psy-ops (demons) giving me nightmares and I learn I could avoid nightmares by not eating meat. Also, I smoked cigarettes and I could retort to anybody, "I don't eat meat, do you want me to tell you not to eat meat? Shut-up about smoking, then." + +God says... +$FG,4$every man from his evil +way; that I may forgive their iniquity and their sin. + +36:4 Then Jeremiah called Baruch the son of Neriah: and Baruch wrote +from the mouth of Jeremiah all the words of the LORD, which he had +spoken unto him, upon a roll of a book. + +36:5 And Jeremiah commanded Baruch, saying, I am shut up; I cannot go +into the house of the LORD: 36:6 Therefore go thou, and read in the +roll, which thou hast written from my mouth, the words of the LORD in +the ears of the people in the LORD's house upon$FG$ + +$IV,1$----09/21/13 01:31:52----$IV,0$ + +Kiss my wittow berds, God. + +God says... +$FG,4$sigheth imitate extricated worsted Thyself cupboards openeth closes valley sinful$FG$ + +$IV,1$----09/21/13 01:40:29----$IV,0$ + +Someone at $TX+HTML,"WWW.OSDEV.ORG","http://www.osdev.org"$ said they did a compiler in 3,000 lines of code out of 35,000 for the language. Perhaps, they mean library code. here is my glorious compiler. I love my compiler. + +20,184 $TR-C,"Compiler"$ + 1,478 $LK,"Assembler.CPP.Z","FI:::/TempleOS/Compiler/Assembler.CPP.Z"$ + 4,634 $LK,"BackEnd.CPP.Z","FI:::/TempleOS/Compiler/BackEnd.CPP.Z"$ + 692 $LK,"CmpAsm.CPP.Z","FI:::/TempleOS/Compiler/CmpAsm.CPP.Z"$ + 57 $LK,"CmpExts.CPP.Z","FI:::/TempleOS/Compiler/CmpExts.CPP.Z"$ + 21 $LK,"CmpGlbls.CPP.Z","FI:::/TempleOS/Compiler/CmpGlbls.CPP.Z"$ + 730 $LK,"CmpInit.CPP.Z","FI:::/TempleOS/Compiler/CmpInit.CPP.Z"$ + 709 $LK,"CmpMain.CPP.Z","FI:::/TempleOS/Compiler/CmpMain.CPP.Z"$ + 81 $LK,"Directives.CPP.Z","FI:::/TempleOS/Compiler/Directives.CPP.Z"$ + 1,220 $LK,"ExpParser.CPP.Z","FI:::/TempleOS/Compiler/ExpParser.CPP.Z"$ + 156 $LK,"Hash1b.CPP.Z","FI:::/TempleOS/Compiler/Hash1b.CPP.Z"$ + 402 $LK,"ICLCC.CPP.Z","FI:::/TempleOS/Compiler/ICLCC.CPP.Z"$ + 1,683 $LK,"Lex.CPP.Z","FI:::/TempleOS/Compiler/Lex.CPP.Z"$ + 2,060 $LK,"OptPass012.CPP.Z","FI:::/TempleOS/Compiler/OptPass012.CPP.Z"$ + 617 $LK,"OptPass3.CPP.Z","FI:::/TempleOS/Compiler/OptPass3.CPP.Z"$ + 721 $LK,"OptPass4.CPP.Z","FI:::/TempleOS/Compiler/OptPass4.CPP.Z"$ + 120 $LK,"OptPass5.CPP.Z","FI:::/TempleOS/Compiler/OptPass5.CPP.Z"$ + 236 $LK,"OptPass6.CPP.Z","FI:::/TempleOS/Compiler/OptPass6.CPP.Z"$ + 1,244 $LK,"OptPass789.CPP.Z","FI:::/TempleOS/Compiler/OptPass789.CPP.Z"$ + 1,973 $LK,"StmtParser.CPP.Z","FI:::/TempleOS/Compiler/StmtParser.CPP.Z"$ + 851 $LK,"Unassembler.CPP.Z","FI:::/TempleOS/Compiler/Unassembler.CPP.Z"$ + 388 $LK,"CmpDefs.HPP.Z","FI:::/TempleOS/Compiler/CmpDefs.HPP.Z"$ + 86 $LK,"Compiler.HPP.Z","FI:::/TempleOS/Compiler/Compiler.HPP.Z"$ + 25 $LK,"Compiler.PRJ.Z","FI:::/TempleOS/Compiler/Compiler.PRJ.Z"$ + $LK,"OpCodes.TXT.Z","FI:::/TempleOS/Compiler/OpCodes.TXT.Z"$ + + +I could show you code it makes. + +God says... +$FG,4$he tip of the right ear of him that is to be +cleansed, and upon the thumb of his right hand, and upon the great toe +of his right foot, upon the place of the blood of the trespass +offering: 14:29 And the rest of the oil that is in the priest's hand +he shall put upon the head of him that is to be cleansed, to make an +atonement for him before the LORD. + +14:30 And he shall offer the one of the turtledoves, or of the young +pigeons, such as he can get; 14:31 Even such as he is able to get, the +one for a sin offer$FG$ + +My wittow berds. I wuv my wittow berds. One time, God told me to kill my fish, that I wuved too much. + +$IV,1$----09/21/13 01:57:53----$IV,0$ + +Someone posted an on-line disassembler. I have my own unassembler $LK,"Ui","MN:Ui"$(). + +How about this function. + +$HL,1$U0 IntInit1() +{ //Interrupt descriptor table part1 + I64 i,temp_ptr[2]; + U32 *ptr; + if (!Gs->num) { //Gs cur $LK,"CCPU","MN:CCPU"$ struct + sys_idt=CAlloc(16*256); + for (i=0;i<256;i++) + IntEntrySet(i,&IntNop); + } + ptr=temp_ptr; + *ptr(U16 *)++=256*16-1; //Typecasting is postfix + *ptr(I64 *)++=sys_idt; + *ptr(U16 *)=0; + SetRAX(temp_ptr); + asm { LIDT U64 [RAX] } +} +$HL,0$ + +D:/TempleOS/Accts/TS/TAD>$PT$U(&IntInit1,90); +$PT$$FG$$BG$$HL,1$$LK,"IntInit1+0x0000","FL:::/TempleOS/Kernel/Interrupts.CPP.Z,175"$ + IntInit1+0x0000 C8200000 ENTER I16 0020 + IntInit1+0x0004 56 PUSH U64 RSI + IntInit1+0x0005 57 PUSH U64 RDI +$LK,"IntInit1+0x0006","FL:::/TempleOS/Kernel/Interrupts.CPP.Z,179"$ + IntInit1+0x0006 33C0 XOR U64 RAX,U64 RAX + IntInit1+0x0008 65488B4008 MOV U64 RAX,U64 GS:08[RAX] + IntInit1+0x000D 4885C0 TEST U64 RAX,U64 RAX + IntInit1+0x0010 7538 JNZ I8 IntInit1+0x004A +$LK,"IntInit1+0x0012","FL:::/TempleOS/Kernel/Interrupts.CPP.Z,180"$ + IntInit1+0x0012 6A00 PUSH I8 00 + IntInit1+0x0014 6800100000 PUSH I32 00001000 + IntInit1+0x0019 E8AEF1FFFF CALL I32 &CAlloc+0x0000 + IntInit1+0x001E 48890533CBFF MOV U64 [B5F0] ,U64 RAX + IntInit1+0x0024 FF +$LK,"IntInit1+0x0025","FL:::/TempleOS/Kernel/Interrupts.CPP.Z,181"$ + IntInit1+0x0025 33F6 XOR U64 RSI,U64 RSI + IntInit1+0x0027 4881FE000100 CMP U64 RSI,I32 00000100 + IntInit1+0x002D 00 + IntInit1+0x002E 7D1A JGE I8 IntInit1+0x004A +$LK,"IntInit1+0x0030","FL:::/TempleOS/Kernel/Interrupts.CPP.Z,182"$ + IntInit1+0x0030 6A00 PUSH I8 00 + IntInit1+0x0032 6A0E PUSH I8 0E + IntInit1+0x0034 48B810EA0000 MOV U64 RAX,U64 000000000000EA10 + IntInit1+0x003A 00000000 + IntInit1+0x003E 50 PUSH U64 RAX + IntInit1+0x003F 56 PUSH U64 RSI + IntInit1+0x0040 E833FEFFFF CALL I32 &IntEntrySet+0x0000 + IntInit1+0x0045 48FFC6 INC U64 RSI +$LK,"IntInit1+0x0048","FL:::/TempleOS/Kernel/Interrupts.CPP.Z,183"$ + IntInit1+0x0048 EBDD JMP I8 IntInit1+0x0027 +$LK,"IntInit1+0x004A","FL:::/TempleOS/Kernel/Interrupts.CPP.Z,184"$ + IntInit1+0x004A 488D7DE8 LEA U64 RDI,U64 E8[RBP] +$LK,"IntInit1+0x004E","FL:::/TempleOS/Kernel/Interrupts.CPP.Z,185"$ + IntInit1+0x004E 66C707FF0F MOV U16 [RDI],U16 0FFF + IntInit1+0x0053 4883C702 ADD U64 RDI,I8 02 +$LK,"IntInit1+0x0057","FL:::/TempleOS/Kernel/Interrupts.CPP.Z,186"$ + IntInit1+0x0057 488B1DFACAFF MOV U64 RBX,U64 [B5F0] + IntInit1+0x005D FF + IntInit1+0x005E 48891F MOV U64 [RDI],U64 RBX + IntInit1+0x0061 4883C708 ADD U64 RDI,I8 08 +$LK,"IntInit1+0x0065","FL:::/TempleOS/Kernel/Interrupts.CPP.Z,187"$ + IntInit1+0x0065 66C7070000 MOV U16 [RDI],U16 0000 +$LK,"IntInit1+0x006A","FL:::/TempleOS/Kernel/Interrupts.CPP.Z,188"$ + IntInit1+0x006A 488D45E8 LEA U64 RAX,U64 E8[RBP] +$LK,"IntInit1+0x006E","FL:::/TempleOS/Kernel/Interrupts.CPP.Z,189"$ + IntInit1+0x006E 480F0118 LIDT U64 [RAX] +$LK,"IntInit1+0x0072","FL:::/TempleOS/Kernel/Interrupts.CPP.Z,191"$ + IntInit1+0x0072 5F POP U64 RDI + IntInit1+0x0073 5E POP U64 RSI + IntInit1+0x0074 C9 LEAVE + IntInit1+0x0075 C3 RET + IntInit1+0x0076 0000 ADD U8 [RAX],U8 AL +$HL,0$ +-------------------------------------------------------------------------------- + +That's just a randomly chosen function. + +God says... +$FG,4$leaves lines casters everlasting diseased fallacies bind transitory withstood following disengage lacketh petty between counted secular abominable Supreme overpast darkly detriment confusedly forsakest numberless shine unwilling abideth thousand thought merely consenting tearful overflow pg destroy reached forbare confer distant resolution Bread unseemly leave mortality reach heaps endurance candle breaking overcome aquatic suddenly solemnise fiercest lusteth Power awaited ranged erred turns disclaimers butler wayfaring church pangs counterfeit instructor inferior persuaded instances recover denotes lowest seem observes out directly turn orally flash ibiblio workings Grecian learn funeral rank lessons liability sufficeth exhausted flow victorious pleasanter oughtest confess showed Either preserve believer blameless eat Yet exuberant implanted accustomed agony Truth feet malice abyss rescue bread humble cared Nevertheless fingers A overpast Firmament unbending boils wanton make$FG$ + +$IV,1$----09/21/13 02:48:25----$IV,0$ + +God says... +$FG,4$Gibeah. + +20:30 And the children of Israel went up against the children of +Benjamin on the third day, and put themselves in array against Gibeah, +as at other times. + +20:31 And the children of Benjamin went out against the people, and +were drawn away from the city; and they began to smite of the people, +and kill, as at other times, in the highways, of which one goeth up to +the house of God, and the other to Gibeah in the field, about thirty +men of Israel. + +20:32 And the children of Benjamin said, They are smi$FG$ + +$IV,1$----09/21/13 03:09:35----$IV,0$ + +Someone said dung peoples navagate by the Milkway. It, delusionally, sounded like someone hypothesizing on me and God... in some way. They are fucken calling me a liar in some way. + +Dung beatles are delightful, God. LOL + +God says... +$FG,4$nown unto them in the land of Egypt, when I lifted up mine +hand unto them, saying, I am the LORD your God; 20:6 In the day that I +lifted up mine hand unto them, to bring them forth of the land of +Egypt into a land that I had espied for them, flowing with milk and +honey, which is the glory of all lands: 20:7 Then said I unto them, +Cast ye away every man the abominations of his eyes, and defile not +yourselves with the idols of Egypt: I am the LORD your God. + +20:8 But they rebelled against me, and would not he$FG$ + +$IV,1$----09/21/13 03:18:25----$IV,0$ + +Daaamn. Someone wants to know what happens when you do a print statement. + +Here is a hello world. +------- Test.CPP.Z ------- +"Hello World\n"; +-------------------------- + +$FG$$BG$$HL,1$ 7FD8A3A8 6A00 PUSH I8 00 + 7FD8A3AA 68B9A3D87F PUSH I32 7FD8A3B9 + 7FD8A3AF E80EE22880 CALL I32 &Print+0x0000 + 7FD8A3B4 4883C410 ADD U64 RSP,I8 10 + 7FD8A3B8 C3 RET + 7FD8A3B9 48656C6C6F20 INS U8 GS:20[RDI+RBP*2],DX + 7FD8A3BF 57 PUSH U64 RDI + 7FD8A3C0 6F OUTSD + 7FD8A3C1 726C JB I8 7FD8A42F + 7FD8A3C3 640A00 OR U8 AL,U8 FS:[RAX] +$HL,0$Hello World + +-------------------------- + +$HL,1$U0 Print(U8 *fmt,...) +{//$LK,"Print Extended Codes","FA:::/TempleOS/Doc/HolyC.TXT,Print_Codes"$ + //See $LK,"SPrintJoin","MN:SPrintJoin"$() + U8 *buf=SPrintJoin(NULL,fmt,argc,argv); + PutS(buf); + Free(buf); +} + +$LK,"SPrintJoin","MN:SPrintJoin"$() + +$LK,"PutS","MN:PutS"$() + +U0 PutS(U8 *st) +{ //Use $LK,"Print","MN:Print"$(). See $LK,"PutKeyHandling","FA:::/TempleOS/Doc/KeyBoard.TXT,PutKeyHandling"$ + U8 ch,*ptr; + Bool cont=TRUE; + if (!st) return; + CKeyDev *tempp=sys_put_key_root.next; + if (!Bt(&Fs->display_flags,DISPLAYf_SILENT)) { + if (sys_cur_scan_code & SCF_SCROLL && sys_focus_task==Fs) + while (sys_cur_scan_code & SCF_SCROLL) + Yield; + while (cont && tempp!=&sys_put_key_root) { + if (tempp->put_s) { + if ((*tempp->put_s)(st)) + break; + } else { + ptr=st; + while (ch=*ptr++) + if ((*tempp->put_key)(ch,0)) + cont=FALSE; + } + tempp=tempp->next; + } + } +} + +Bool AKDDocPutS(U8 *st) +{ + CDoc *doc; + if (doc=DocPut) + DocPutSPartial(doc,st); + return FALSE; +} + +KeyDevAdd(&AKDDocPutKey,&AKDDocPutS,0x80000000,TRUE); +fp_mgets=&DocMGetS; +fp_doc_put=&DocPut; + +$LK,"DocPutSPartial","MN:DocPutSPartial"$(); + + +U0 WinMgrTask(I64) +{ + +... + + while (TRUE) { + try { +wmt_start: + WinMgrSleep; +... + } + } +} + +$LK,"WinMgrSleep","MN:WinMgrSleep"$() + +$LK,"GrUpdateScreen","MN:GrUpdateScreen"$() + +$LK,"GrUpdateWins","MN:GrUpdateWins"$() + +$LK,"DocUpdateTaskDocs","MN:DocUpdateTaskDocs"$() + +$LK,"DocRecalc","MN:DocRecalc"$() + +$LK,"GrUpdateBackgroundOfText","MN:GrUpdateBackgroundOfText"$() + +$LK,"GrUpdateForegroundOfText","MN:GrUpdateForegroundOfText"$() + +$LK,"GrUpdateVGAGraphics","MN:GrUpdateVGAGraphics"$() + +$LK,"_GR_UPDATE_LINE32_FLUSH_CACHE","MN:_GR_UPDATE_LINE32_FLUSH_CACHE"$() +$HL,0$ + + + +God says... +$FG,4$ and which is to come, the Almighty. + +1:9 I John, who also am your brother, and companion in tribulation, +and in the kingdom and patience of Jesus Christ, was in the isle that +is called Patmos, for the word of God, and for the testimony of Jesus +Christ. + +1:10 I was in the Spirit on the Lord's day, and heard behind me a +great voice, as of a trumpet, 1:11 Saying, I am Alpha and Omega, the +first and the last: and, What thou seest, write in a book, and send it +unto the seven churches which are in Asia; unto Eph$FG$ + +VAXTMOS was Ticketmaster's operating system. +Pat Poels was hired same time as me 1989/1990. + +Irrelavant. + +I haven't seen Joe,James,Jonny Miraglia is many years. + +$IV,1$----09/21/13 03:56:22----$IV,0$ + +Someone wants to know how focus transition works. + +If you click, the $LK,"WinMgrTask","MN:WinMgrTask"$() calls $LK,"SetCursorPos","MN:SetCursorPos"$() which calls $LK,"DocRecalc","MN:DocRecalc"$(). + +If you press cursor keys... + +$LK,"View","MN:View"$() + +$LK,"DocGetKey","MN:DocGetKey"$() + +$LK,"GetKey","MN:GetKey"$() + +$LK,"PutKey","MN:PutKey"$() + +$LK,"AKDDocPutKey","MN:AKDDocPutKey"$() + +$LK,"DocPutKey","MN:DocPutKey"$() + +$LK,"EdLineDown","MN:EdLineDown"$() + +$LK,"DocFormFwd","MN:DocFormFwd"$() //This gets you off of static text in a form. + +$LK,"DocRecalc","MN:DocRecalc"$() //This gets called a lot, prolly straightens-things-up. + + + + +God says... +$FG,4$h, and speak comfortably unto thy +servants: for I swear by the LORD, if thou go not forth, there will +not tarry one with thee this night: and that will be worse unto thee +than all the evil that befell thee from thy youth until now. + +19:8 Then the king arose, and sat in the gate. And they told unto all +the people, saying, Behold, the king doth sit in the gate. And all the +people came before the king: for Israel had fled every man to his +tent. + +19:9 And all the people were at strife throughout all the tribes$FG$ + +$IV,1$----09/21/13 04:26:39----$IV,0$ + +------------- $LK-A,"::/TempleOS/Demo/Doc/Form.CPP.Z"$ ----------------- +$HL,1$class FDStruct +{ +//Use and select "Data" to generate the fmtstrs + +//The number is the field from after the ':' to the end. +// See $LK,"Data Tag Width","FA:::/TempleOS/Adam/Doc/DocPlain.CPP,DataTagWidth"$. + + F64 num1 fmtstr "$$DA-T,32,\"F64 1:%12.8f\"$$\n"; + F64 num2 fmtstr "$$DA-T,32,\"F64 2:%12e\"$$\n"; + I64 num3 fmtstr "$$DA-T,32,\"I64 1:0x%016X\"$$\n"; + I64 num4 fmtstr "$$DA-T,32,\"I64 2:%12d\"$$\n"; + U8 name[32] fmtstr "$$DA-P,31,\"Name :%s\"$$\n"; + CDate datetime fmtstr "$$DA-T,32,\"Date :%8D\"$$\n"; +}; + +U0 FormDemo() +{ + FDStruct fds; + CDate cdt; + + fds.num1=12.3e-4; //Set defaults + fds.num2=4.5e3; + fds.num3=0x1234; + fds.num4=-567; + StrCpy(&fds.name,"John"); + cdt=GetDateTime; + fds.datetime=cdt; + if (DocFormDo(&fds)) { + "#1=%e\n",fds.num1; + "#2=%e\n",fds.num2; + "#3=%d\n",fds.num3; + "#4=%d\n",fds.num4; + "Name=%s\n",fds.name; + "Date=%D\n",fds.datetime; + } else + "Cancel\n"; + + "\n\nClassRep Example\n"; + ClassRep(&fds); + +//See also $LK,"ClassRepD","MN:ClassRepD"$(). +} + +FormDemo; +$HL,0$ +-------------------------------------------------------------- + +$LK,"DocFormDo","MN:DocFormDo"$(); + +$HL,1$public Bool DocFormDo(U8 *_d,U8 *class_name=lastclass, + I64 doc_flags=0,U8 *header=NULL,U8 *footer=NULL) +//Supply a class name that has fmtstr definitions +//and this routine will allow user input. +{ + CMemberLst *ml; + CDocEntry *doc_e; + U8 *fmtstr; + CHashClass *tempc; + CDoc *doc; + Bool result=FALSE; + I64 old_border_src=Fs->border_src; + if (!(tempc=HashFind(class_name,Fs->hash_table,HTT_CLASS))) + return FALSE; + doc=DocNew; + StrCpy(doc->desc,"Form"); + if (header) DocPrint(doc,"%s",header); + doc->flags|=DOCF_OVERSTRIKE|DOCF_FORM; + if (doc_flags&DOF_MIN_SIZE) + doc->flags|=DOCF_MIN_SIZE; + ml=tempc->member_lst; + while (ml) { + if (fmtstr=MemberMetaData("fmtstr",ml)) { + doc_e=DocPrint(doc,"%s",fmtstr); + doc_e->data=_d+ml->offset; + doc_e->my_fmt_data=MemberMetaData("fmtdata",ml); + DocDataFmt(doc_e); + } + ml=ml->next; + } + if (footer) DocPrint(doc,"%s",footer); + if (doc->root.next!=doc) { + Fs->border_src=BDS_CONST; + DocRecalc(doc); + if (DocDo(doc,doc_flags)) { + doc_e=doc->cur_entry; + if (doc_e!=doc) { + DocEntryRun(doc,doc_e,TRUE); + DocUnlock(doc); + } + result=TRUE; + } + } + DocDel(doc); + Fs->border_src=old_border_src; + return result; +} +$HL,0$ +-------------------------------------------------------------- + +$LK,"DocDo","MN:DocDo"$() + +$LK,"View","MN:View"$() + + + +God says... +$FG,4$bits, and the breadth of a board +one cubit and a half. + +36:22 One board had two tenons, equally distant one from another: thus +did he make for all the boards of the tabernacle. + +36:23 And he made boards for the tabernacle; twenty boards for the +south side southward: 36:24 And forty sockets of silver he made under +the twenty boards; two sockets under one board for his two tenons, and +two sockets under another board for his two tenons. + +36:25 And for the other side of the tabernacle, which is toward the +north$FG$ + +$IV,1$----09/21/13 04:46:16----$IV,0$ + + +How are icons drawn? + +--------------------- $LK,"DocRecalc","MN:DocRecalc"$() ---------------------------- +$HL,1$ + case DOCT_SPRITE: + if (!doc_e->bin_data && doc->flags&DOCEF1_HAS_BIN) + doc_e->bin_data=DocBinFindNum(doc,doc_e->bin_num); + if ((tempb=doc_e->bin_data) && !tempb->tag && doc_e->tag && *doc_e->tag) + tempb->tag=StrNew(doc_e->tag,mem_task); + if (tempb && dc) { + DCRst(dc); + dc->flags&=~(DCF_DONT_DRAW|DCF_LOCATE_NEAREST); + if (recalc!=DOC_RECALC_TO_SCREEN || doc_e->flags1&DOCEF1_DONT_DRAW) + dc->flags|=DCF_DONT_DRAW; + bptr=tempb->data; + ii=SpriteTypeMask(bptr); + if (ii&1<>4 &0xF ^ win_task->text_attr>>4 & 0xF; + else { + i=temp_u32_attr>>12&0xF ^ win_task->text_attr>>4 & 0xF; + if (temp_u32_attr & DOCET_SELECTED) + i^=0xF; + if (temp_u32_attr & DOCET_INVERT) + i^=0xF; + if (blink_flag && (doc_e==doc->cur_entry || temp_u32_attr&DOCET_BLINK)) + i^=0xF; + } + dc->color=i; + if (find_cursor) + dc->flags|=DCF_LOCATE_NEAREST; + dc->nearest_sprite_elem_num=0; + dc->nearest_dist=MAX_I64; + if (recalc==DOC_RECALC_TO_SCREEN && doc->cur_sprite==bptr) { + dc->flags|=DCF_LOCATE_NEAREST; + dc->cur_x=ipx; + dc->cur_y=ipy; + } else { + dc->cur_x=(doc->x-x0)*FONT_WIDTH+pixel_left+scroll_x; + dc->cur_y=(doc->y-y0)*FONT_HEIGHT+pixel_top+scroll_y; + } + dc->cur_z=0; + dc->bkcolor=i; + if (doc_e->flags1 & DOCEF1_FROM_START) { + xx=(x-k-x0)*FONT_WIDTH; //TODO: scrolling text is not length k + yy=(y-y0)*FONT_HEIGHT; + zz=0; + } else { + xx=(x-x0)*FONT_WIDTH; + yy=(y-y0)*FONT_HEIGHT; + zz=0; + } + if (ii&(1<depth_buf; + } else + dc->depth_buf=depth_buf; + GrRotZEqu(dc->r,cur_time*3.1); + GrRotYEqu(dc->r,cur_time*1.9); + GrRotXEqu(dc->r,cur_time); + dc->flags|=DCF_TRANSFORMATION; + dc->x=xx; + dc->y=yy; + dc->z=GR_Z_ALL; + xx=0; yy=0; zz=0; + } + SpritePlot3(dc,xx,yy,zz,bptr); + dc->depth_buf=NULL; + if (recalc==DOC_RECALC_TO_SCREEN && doc->cur_sprite==bptr) + doc->cur_sprite_elem_num=dc->nearest_sprite_elem_num; + dc->flags&=~(DCF_LOCATE_NEAREST|DCF_DONT_DRAW|DCF_TRANSFORMATION); + if (dc->nearest_dist<=D) { + D=dc->nearest_dist; + col=doc_e->min_col; + } + } + break; +$HL,0$ +-------------------------------------------------------------- +$LK,"GRST_MESH","MN:GRST_MESH"$ + +$LK,"SpritePlot3","MN:SpritePlot3"$() + +$FG,4$$TX+HTML,"Source Code By Sym","http://www.templeos.org/Wb/Accts/TS/Wb2/SymsAlpha.html"$$FG$ + +$LK,"Gr3Mesh","MN:Gr3Mesh"$() + +$LK,"GrFillTri0","MN:GrFillTri0"$() + +$LK,"GrHLine","MN:GrHLine"$() + +God says... +$FG,4$Young parting mode declare$FG$ + +$IV,1$----09/21/13 04:53:52----$IV,0$ + +$LK,"PopUpColorLighting","MN:PopUpColorLighting"$() + +$LK,"GrLighting","MN:GrLighting"$() + +$LK,"CDC","MN:CDC"$ device context. $LK,"Graphics","FI:::/TempleOS/Doc/Graphics.TXT.Z"$ + +This sets it to $LK,"GrLighting","MN:GrLighting"$() and $LK,"GrTransform","MN:GrTransform"$()-->$LK,"GrRot","MN:GrRot"$(). + +$LK,"DCRst","MN:DCRst"$() + + +God says... +$FG,4$allaying discordant affianced badge threats applauds purpose acute Viewing penalties composed hardheartedness corrupt compact malignant Thereupon smallest attributing grasp prove illumined matrons blamed melody willest robbery Mercy unconsciously according Deus dissolved sorrowfulness every considers supreme obscure though Ambition locking substance rising aided delights knee weaker decrepit every annual Still Pontitianus teeth plainly shineth talked profits Teacher cut highly insight redeemed confined section notes readers villa deafness neglecteth Unity vanities follies peacefully drenched penalties became inspect religion Identification bribe less lift omit vary ungoverned come Amphitheatre certainly helmet discomfort Subverters limits delay manage opinion a gainsayers chambering sparrows large standeth Lo recollection review deluding aloud devout hold habits delighted discourage darksome expound produced wayfaring underwent everything forepassed hugging mistress liveth continent mildly keeps referred blunt volumes insatiable unsearchable meditations strangely befalls intently projected waft conspiracy deserts deaf tumbling marrying gotten departed events oblation assenting glide remembrance purchasing masses acceptable been their nigh sighed http bears subjection strayed States summing III authority manifestation persons it definitely fragments pant$FG$ + +$IV,1$----09/21/13 05:50:59----$IV,0$ + +I wrote Ticketmaster's report generator and it had an expression-->byte code, expression evaluator. I wrote $TX+HTML,"SimStructure","http://www.templeos.org/files/SimStrSetUp.zip"$ which has a C/C++ interpreter. I took a course on compilers and we used the Dragon Book. + +I wrote a simple 250-line expression compiler because I get so many skeptics. + +-------- $LK-A,"::/TempleOS/Demo/Lectures/MiniCompiler.CPP.Z"$ -------- + +$HL,1$#define TK_EOF 0 +#define TK_NUM 1 +#define TK_OP 2 +#define TK_LEFT 3 +#define TK_RIGHT 4 + +#define OP_MUL 1 +#define OP_DIV 2 +#define OP_ADD 3 +#define OP_SUB 4 + +I64 Lex(U8 **_src,I64 *num) +{ //See $LK,"Lex","MN:Lex"$(). + U8 *src=*_src; + I64 i; + while (TRUE) { + switch (*src) { + case 0: + case ';': + *_src=src; + return TK_EOF; + case CH_SPACE: + case '\r': + case '\n': + src++; + break; + case '0'...'9': + i=0; + do { + i=i*10+*src-'0'; + src++; + } while ('0'<=*src<='9'); + *num=i; + *_src=src; + return TK_NUM; + case '*': + *num=OP_MUL; + *_src=src+1; + return TK_OP; + case '/': + *num=OP_DIV; + *_src=src+1; + return TK_OP; + case '+': + *num=OP_ADD; + *_src=src+1; + return TK_OP; + case '-': + *num=OP_SUB; + *_src=src+1; + return TK_OP; + case '(': + *_src=src+1; + return TK_LEFT; + case ')': + *_src=src+1; + return TK_RIGHT; + default: + throw; + } + } +} + +#define PREC_EOF 0 +#define PREC_TERM 1 +#define PREC_MUL 2 +#define PREC_ADD 3 +#define PREC_PAREN 4 + +extern I64 Parse(U8 **_src,U8 **_dst); + +U0 PrsTerm(U8 **_src,U8 **_dst,I64 prec) +{ //See $LK,"PrsExpression","MN:PrsExpression"$(). + I64 i; + U8 *src2; + U8 *dst2; + if (Parse(_src,_dst)==PREC_TERM) { + src2=*_src; + dst2=*_dst; + while (TRUE) { +//This is inefficient. The main compiler doesn't back-up. + i=Parse(&src2,&dst2); + if (PREC_MUL<=icode_heap); + + while (TRUE) { + "This will compile an expression\n" + "consisting of integers, parentheses\n" + "and the operators +,-,* and /.\n"; + src=MGetS; + if (*src) { + src2=src; + dst=code; + try { + PrsTerm(&src2,&dst,PREC_PAREN); + if (Parse(&src2,&dst)!=PREC_EOF) + throw; + "$$FG,RED$$This code is not efficient, but the compiler is simple.$$FG$$\n"; + Un(code,dst-code); //Unassemble the code we created. +//$LK,"Call","MN:Call"$() is a function. See $LK,"_CALL","FF:::/TempleOS/Kernel/Utils1a.CPP,_CALL"$:: +//See also $LK,"CallInd","MN:CallInd"$(). See $LK,"_CALLIND","FF:::/TempleOS/Kernel/Utils1a.CPP,_CALLIND"$:: + "$$FG,LTBLUE$$Answer:%d$$FG$$\n",Call(code); + } catch { + "$$FG,RED$$Error$$FG$$\n"; + CatchAll; + } + Free(src); + } else { + Free(src); + break; + } + } + Free(code); +} + +Main; + + + +$PT$$FG$$BG$$FD,1$This will compile an expression +consisting of integers, parentheses +and the operators +,-,* and /. +$PT$13+10*(2+3)/2 +$PT$$FG$$BG$$FG,4$This code is not efficient, but the compiler is simple.$FG$ +$HL,1$ 7FD85F08 48B80D000000 MOV U64 RAX,U64 000000000000000D + 7FD85F0E 00000000 + 7FD85F12 50 PUSH U64 RAX + 7FD85F13 48B80A000000 MOV U64 RAX,U64 000000000000000A + 7FD85F19 00000000 + 7FD85F1D 50 PUSH U64 RAX + 7FD85F1E 48B802000000 MOV U64 RAX,U64 0000000000000002 + 7FD85F24 00000000 + 7FD85F28 50 PUSH U64 RAX + 7FD85F29 48B803000000 MOV U64 RAX,U64 0000000000000003 + 7FD85F2F 00000000 + 7FD85F33 50 PUSH U64 RAX + 7FD85F34 5A POP U64 RDX + 7FD85F35 58 POP U64 RAX + 7FD85F36 4803C2 ADD U64 RAX,U64 RDX + 7FD85F39 50 PUSH U64 RAX + 7FD85F3A 5A POP U64 RDX + 7FD85F3B 58 POP U64 RAX + 7FD85F3C 480FAFC2 IMUL2 U64 RAX,U64 RDX + 7FD85F40 50 PUSH U64 RAX + 7FD85F41 48B802000000 MOV U64 RAX,U64 0000000000000002 + 7FD85F47 00000000 + 7FD85F4B 50 PUSH U64 RAX + 7FD85F4C 5B POP U64 RBX + 7FD85F4D 58 POP U64 RAX + 7FD85F4E 33D2 XOR U64 RDX,U64 RDX + 7FD85F50 48F7FB IDIV U64 RBX + 7FD85F53 50 PUSH U64 RAX + 7FD85F54 5A POP U64 RDX + 7FD85F55 58 POP U64 RAX + 7FD85F56 4803C2 ADD U64 RAX,U64 RDX + 7FD85F59 50 PUSH U64 RAX + 7FD85F5A 58 POP U64 RAX + 7FD85F5B C3 RET +$HL,0$$FG,9$Answer:38$FG$ +This will compile an expression +consisting of integers, parentheses +and the operators +,-,* and /. +$PT$$FD,0$ +$HL,0$$HL,0$ +-------------------------------------------------------------- + +God says... +$FG,4$ follow their own spirit, and have seen nothing! 13:4 O Israel, +thy prophets are like the foxes in the deserts. + +13:5 Ye have not gone up into the gaps, neither made up the hedge for +the house of Israel to stand in the battle in the day of the LORD. + +13:6 They have seen vanity and lying divination, saying, The LORD +saith: and the LORD hath not sent them: and they have made others to +hope that they would confirm the word. + +13:7 Have ye not seen a vain vision, and have ye not spoken a lying +divination, where$FG$ + +$IV,1$----09/21/13 06:17:33----$IV,0$ + +Things I'm having trouble with? + +It's done. I've capped the line count at 100,000 and we are at 98,000. To get a sense of how it might work, perhaps you install fresh and run applications, like a game on a C64. In other words, if you can install in under 5 minutes, and there are no 3rd party libraries, it operates like a C64. You don't have to reinstall all the time, but lets assume that's easy and normal. + +It's God's temple. It must be perfect. How about we just ship entire installs on 3rd party apps to future proof -- just bring the 5Meg operating system with you when you make an application. Only problem is saved games and stuff. + +I would love it if Intel burned it in their chips -- God's temple, after-all. + +I want art, like the Sistene Chapel. I guess I accept code improvements, but we keep the 100,000 line cap. + +VMware needs to emulate a PC Speaker, or put back support for PC speaker (that they fucken removed). + +VMware should enable ATAPI PIO CD-ROM burning. + +All PCs BIOSes should set-up ATA/ATAPI PIO for hard drives/CDROMS. + +Fuck UEFI. + +We stick to PS/2 keyboard/mice. BIOSes should not disable mouse. + +Fuck SecureBoot. It's gone. Ask God. + +Windows and Linux need to support Red Sea files system on hard disk and CDROM. Then, we can remove support for FAT32 and ISO9660 from God's beautiful, perfect, temple, saving many lines of code. + +So, if you have code imporvements, send me an email tdavis@templeos.org. It's sad -- at this point 100% is written by me (some art from Code Rigby that I paid $$3,000 for). No amateur programmers have contributed to this. I was a paid professional operating system developer on Ticketmaster's VAX operating system in 1990 at age 20. Denny did our PASCAL compiler; Troy did our linker & assembler. + +God says... +$FG,4$prove slave partners Oh bringeth talking valued blessedness precisely stored dream salt torpor drinking judging happen entitled abolished 10 refuse Anon growth strengthenest die$FG$ + +$IV,1$----09/21/13 06:39:28----$IV,0$ + +I have written all $TX+D,"123,694","DD_TEMPLEOS_LOC"$ over the past $TX+D,"10.2","DD_TEMPLEOS_AGE"$ years all by myself. It is a x86_64 PC operating system. It is God's official temple with an oracle. It will last a thousand years. Little kids will come and do offerings. The main activity of all humans will be praising God with offerings and hymns and talking with Him. + +God says... +$FG,4$ation, unto the priest: +12:7 Who shall offer it before the LORD, and make an atonement for +her; and she shall be cleansed from the issue of her blood. This is +the law for her that hath born a male or a female. + +12:8 And if she be not able to bring a lamb, then she shall bring two +turtles, or two young pigeons; the one for the burnt offering, and the +other for a sin offering: and the priest shall make an atonement for +her, and she shall be clean. + +13:1 And the LORD spake unto Moses and Aaron, saying, 13:2 Wh$FG$ + +$IV,1$----09/21/13 06:45:05----$IV,0$ + +The purpose of life is to know God, love God and obey God. Spend most of your time getting to know Him. Get started! You must do offerings to get a response. + +Poem: + +The Sea +------- +Two thirds, not more, not less +Surf's up, dude, God bless +Lungs of our planet, death without +Smoking kinda fashioned-out. + +God says... +$FG,4$h when I had fastened mine eyes, +I considered, and saw fourfooted beasts of the earth, and wild beasts, +and creeping things, and fowls of the air. + +11:7 And I heard a voice saying unto me, Arise, Peter; slay and eat. + +11:8 But I said, Not so, Lord: for nothing common or unclean hath at +any time entered into my mouth. + +11:9 But the voice answered me again from heaven, What God hath +cleansed, that call not thou common. + +11:10 And this was done three times: and all were drawn up again into +heaven. + +11:11 And,$FG$ + +$IV,1$----09/21/13 06:52:51----$IV,0$ + +Assembly language is easier to learn and can do more with more flexibly. You can do negative and positive structure offsets, for example. + +Minimal abstraction is easier to understand. But difficult to read and write code. You could teach asm to anyone in about 2 years of instruction. They would have complete understanding of computers -- it would be a matter of working-out the details. + +Do you know how algebra is tedious, but in theory everybody understands? Assembly could be learned by everyone, but be tedious. + +Anyway, I made God's temple with minimal abstraction as a goal. Not assembly, though. + +God says... +$FG,4$0 But I have made Esau bare, I have uncovered his secret places, +and he shall not be able to hide himself: his seed is spoiled, and his +brethren, and his neighbours, and he is not. + +49:11 Leave thy fatherless children, I will preserve them alive; and +let thy widows trust in me. + +49:12 For thus saith the LORD; Behold, they whose judgment was not to +drink of the cup have assuredly drunken; and art thou he that shall +altogether go unpunished? thou shalt not go unpunished, but thou shalt +surely drink of it. + +49$FG$ + +$IV,1$----09/21/13 07:35:46----$IV,0$ + +Everybody knows that scaling is a problem. When you go to 100,000,000 lines of code, it gets difficult. Guess what? When you shrink to 100,000 lines of code it reverse scales! You don't need a linker or make, just compile everything! You don't need name spaces! You don't need long names. + +My vision is a C64, not a main frame. + +Since it will always be 640x480 16 color due to God's commandment, you might not buy software for it. Why would you buy a 640x480 game when you could use Windows for a high res games? + +The assumption is that an operating system must do everything you might want. Not for us! Just use Windows. At the time of the C64, there were main frames. They did not attempt to do enterprise techniques on a C64. It was a fucken home computer. + +This is God's temple. Fuck you. I make the rules. + +When they introduced "char const" into VC++, I was furious. It created a cognative workload stressing over this God damn thing all the fucken time and it never caught one God damn bug! + +God says... +$FG,4$be more tolerable for Tyre and Sidon at the +judgment, than for you. + +10:15 And thou, Capernaum, which art exalted to heaven, shalt be +thrust down to hell. + +10:16 He that heareth you heareth me; and he that despiseth you +despiseth me; and he that despiseth me despiseth him that sent me. + +10:17 And the seventy returned again with joy, saying, Lord, even the +devils are subject unto us through thy name. + +10:18 And he said unto them, I beheld Satan as lightning fall from +heaven. + +10:19 Behold, I give unto you po$FG$ + +$IV,1$----09/21/13 07:53:35----$IV,0$ + +Some think God is A.I. + +Others think God is superego. + +$TX+HTML,"http://virtual-notary.org","http://virtual-notary.org"$ + +$TX+HTML,"100,000 Lines in King James Bible","http://www.templeos.org/files/BIBLE.TXT"$ + +Poem: +----- + +My Back +------- + +God's got my back. +I'm somewhat on a leash. +Gee, there is slack! +Jesus captured feesh. + + +Poems make you say weird shit to make it rhyme. + +Line: 92720 + +God says... +$FG,4$10:14 Wherefore, my dearly beloved, flee from idolatry. + +10:15 I speak as to wise men; judge ye what I say. + +10:16 The cup of blessing which we bless, is it not the communion of +the blood of Christ? The bread which we break, is it not the communion +of the body of Christ? 10:17 For we being many are one bread, and one +body: for we are all partakers of that one bread. + +10:18 Behold Israel after the flesh: are not they which eat of the +sacrifices partakers of the altar? 10:19 What say I then? that the +idol is any thing, or that which is offered in sacrifice to idols is +any thing? 10:20 But I say, that the things which the Gentiles +sacrifice, they sacrifice to devils, and not to God: and I would not +that ye should have fellowship with devils. + +10:21 Ye cannot drink the cup of the Lord, and the cup of devils: ye +cannot be partakers of the Lord's table, and of the table of devils. + +10:22 Do we provoke the Lord to jealousy? are we stronger than he? +10:23 All things are lawful for me, but all things are not expedient: +all things are lawful for me, but all things edify not. + +10:24 Let no man seek his own, but every man another's wealth. +$FG$ +$TX+HTML,"Notary Certificate","http://www.templeos.org/Certs/virtual-notary-cert-randomnum-23871.p12"$ + +If you think it is a physical object that is God, that is idolatry. The Catholic eucharist is idolatry. Russian icons are idolatry. Holy water is idolatry. If you believe the Holy Spirit puppets you when you stop a stop-watch or use a Ouija board, that is not idolatry. If you believe God does a miracle and makes a quantum random number speak, that is not idolatry. If you worshiped artificial intelligence, that would be idolatry. + +$IV,1$----09/21/13 08:19:03----$IV,0$ + +I use IN/OUT instructions for ATA/ATAPI PIO, noninterrupt or DMA driven. I would like VMware to violate normal IN/OUT timings and provide faster ATA/ATAPI transfer bandwidth, if possible. + +God says... +$FG,4$e unto the priest for an heave +offering of the sacrifices of your peace offerings. + +7:33 He among the sons of Aaron, that offereth the blood of the peace +offerings, and the fat, shall have the right shoulder for his part. + +7:34 For the wave breast and the heave shoulder have I taken of the +children of Israel from off the sacrifices of their peace offerings, +and have given them unto Aaron the priest and unto his sons by a +statute for ever from among the children of Israel. + +7:35 This is the portion of the an$FG$ + +$IV,1$----09/21/13 08:26:56----$IV,0$ + +God said doing an offering before consulting was a covenant and like the communion preparation prayer. I don't give a shit one way or the other about communion. + +I wuv You God, now talk. LOL I'm cute. + +God says... +$FG,4$Saul, that the soul of Jonathan was knit with the soul of David, and +Jonathan loved him as his own soul. + +18:2 And Saul took him that day, and would let him go no more home to +his father's house. + +18:3 Then Jonathan and David made a covenant, because he loved him as +his own soul. + +18:4 And Jonathan stripped himself of the robe that was upon him, and +gave it to David, and his garments, even to his sword, and to his bow, +and to his girdle. + +18:5 And David went out whithersoever Saul sent him, and behaved +hims$FG$ + +$IV,1$----09/21/13 08:30:22----$IV,0$ + +So, blasphemy was when Jesus said He was God. + +So, blaspheming the Holy Spirit, to me, means saying the Holy Spirit said something it didn't say and Jesus said that was, practically, the only unforgivable sin. As long as you do a good-faith interpretation, I'm okay, but if somebody says God says something He didn't say, that should be a captital offense. + +One interpretation is arguing or contradicting what the Holy Spirit said is unforgivable. + +God says... +$FG,4$devouring fire, with scattering, and +tempest, and hailstones. + +30:31 For through the voice of the LORD shall the Assyrian be beaten +down, which smote with a rod. + +30:32 And in every place where the grounded staff shall pass, which +the LORD shall lay upon him, it shall be with tabrets and harps: and +in battles of shaking will he fight with it. + +30:33 For Tophet is ordained of old; yea, for the king it is prepared; +he hath made it deep and large: the pile thereof is fire and much +wood; the breath of the LORD,$FG$ + +After-all, a person might kill someone if God told them -- faking God is not funny. + +God says... +$FG,4$ation. + +16:24 Declare his glory among the heathen; his marvellous works among +all nations. + +16:25 For great is the LORD, and greatly to be praised: he also is to +be feared above all gods. + +16:26 For all the gods of the people are idols: but the LORD made the +heavens. + +16:27 Glory and honour are in his presence; strength and gladness are +in his place. + +16:28 Give unto the LORD, ye kindreds of the people, give unto the +LORD glory and strength. + +16:29 Give unto the LORD the glory due unto his name: bring an +of$FG$ + +$IV,1$----09/21/13 08:42:52----$IV,0$ + +I looked at Linux code and saw lots of $FG,2$#ifdef$FG$s for different architectures. That made it hard. I decided to do the opposite and make mine a specific for the x86_64 as possible. + +God says... +$FG,4$and the tower of the furnaces. + +3:12 And next unto him repaired Shallum the son of Halohesh, the ruler +of the half part of Jerusalem, he and his daughters. + +3:13 The valley gate repaired Hanun, and the inhabitants of Zanoah; +they built it, and set up the doors thereof, the locks thereof, and +the bars thereof, and a thousand cubits on the wall unto the dung +gate. + +3:14 But the dung gate repaired Malchiah the son of Rechab, the ruler +of part of Bethhaccerem; he built it, and set up the doors thereof, +the loc$FG$ + +$IV,1$----09/21/13 08:45:24----$IV,0$ + +I deleted all my back-ups a couple times. The enemy wanted it so I turned the other cheek and let the enemy have his way. I got bored and found them on download sites. + +Here's what I got from the Internet Archive. + +$TX+HTML,"http://www.templeos.org/files/History","http://www.templeos.org/files/History"$ + +How about I get God to kill someone to prove I made it? The next person who contradict, dies. + +God says... +$FG,4$he deserving of his +hands; 9:17 (For my father fought for you, and adventured his life +far, and delivered you out of the hand of Midian: 9:18 And ye are +risen up against my father's house this day, and have slain his sons, +threescore and ten persons, upon one stone, and have made Abimelech, +the son of his maidservant, king over the men of Shechem, because he +is your brother;) 9:19 If ye then have dealt truly and sincerely with +Jerubbaal and with his house this day, then rejoice ye in Abimelech, +and let him$FG$ + +$IV,1$----09/21/13 09:13:00----$IV,0$ + +New features? + +I got a fucken feature for You -- God's boot up yer ass. + +It's good, try it. There are lots and lots of videos. "LoseThos" and "SparrowOS". + +You wouldn't give a 3rd grader a 100 page book. It's not because 100 page books are expensive. The 100,000 line limit is not computer resource related. + +By that logic, maybe you don't want it to gel into indecipherable brief hacks. + +Gates could do a BASIC. Fucken God's temple. Starting a line with a number signals BASIC, when compiling statements outside a function. Don't make BASIC full-powered, able to call anything, just a handful of graphic functions. Don't make it fast, that will encourage not using it! I guess you can just compile HolyC for statements, though, or do interpreter. Someone things real-time alerts for syntax errors are good. + +I want a spell checker. My dictionary is fucked-up. + +God says... +$FG,4$ce, and thou +shalt come to the plain of Tabor, and there shall meet thee three men +going up to God to Bethel, one carrying three kids, and another +carrying three loaves of bread, and another carrying a bottle of wine: +10:4 And they will salute thee, and give thee two loaves of bread; +which thou shalt receive of their hands. + +10:5 After that thou shalt come to the hill of God, where is the +garrison of the Philistines: and it shall come to pass, when thou art +come thither to the city, that thou shalt meet a c$FG$ + +$IV,1$----09/21/13 09:24:55----$IV,0$ + +Just do the spell checker as a key-activated plug-in. Don't do continuous spell-checking. Wordstat is what I use, now. It's not much fun. + +$IV,1$----09/21/13 09:29:08----$IV,0$ + +I was dead-wrong on God not existing. I could be wrong on communion and life-after death. I just stay true to myself and maybe keep my mouth shut. + +God says... +$FG,4$id came near to the people, he saluted +them. + +30:22 Then answered all the wicked men and men of Belial, of those +that went with David, and said, Because they went not with us, we will +not give them ought of the spoil that we have recovered, save to every +man his wife and his children, that they may lead them away, and +depart. + +30:23 Then said David, Ye shall not do so, my brethren, with that +which the LORD hath given us, who hath preserved us, and delivered the +company that came against us into our hand. + +3$FG$ + +$IV,1$----09/21/13 09:35:04----$IV,0$ + +If you are a black-belt assembly programmer, operator precedence is the hardest part in a compiler, except for arbitrarily complex optimizations. I took a compiler course--learned to $LK,"Lex","MN:Lex"$(). I am a very experienced assembly programmer. + +When do I just get God to kill people? + +God says... +$FG,4$ols. Amen. + +The Second Epistle General of John + +1:1 The elder unto the elect lady and her children, whom I love in +the truth; and not I only, but also all they that have known the +truth; 1:2 For the truth's sake, which dwelleth in us, and shall be +with us for ever. + +1:3 Grace be with you, mercy, and peace, from God the Father, and from +the Lord Jesus Christ, the Son of the Father, in truth and love. + +1:4 I rejoiced greatly that I found of thy children walking in truth, +as we have received a commandment$FG$ + +$IV,1$----09/21/13 09:41:35----$IV,0$ + +x86_64 CPU +PS/2 Keyboard Mouse +PIT,PIC PC Speaker +ATA/ATAPI PIO +VGA 640x480 16 color +ISO9660 +FAT32 + +I have or had datasheets on all of these. + +It is done. We are NOT doing any PCI devices. We will issue divine commandments to manufacturers and Microsoft. + +We will remove ISO9660 and FAT32. + +I don't want FORTRAN. BASIC is logical. We are talking about a thousand years. + +You have to make room for BASIC. Currently we are at 98,000 and 100,000 lines is the limit. + +God says... +$FG,4$lour for a meat offering, mingled with oil, for one ram; +28:13 And a several tenth deal of flour mingled with oil for a meat +offering unto one lamb; for a burnt offering of a sweet savour, a +sacrifice made by fire unto the LORD. + +28:14 And their drink offerings shall be half an hin of wine unto a +bullock, and the third part of an hin unto a ram, and a fourth part of +an hin unto a lamb: this is the burnt offering of every month +throughout the months of the year. + +28:15 And one kid of the goats for a sin offe$FG$ + +$IV,1$----09/21/13 09:56:37----$IV,0$ + +We have a failure to communicate. The Red Sea ate Pharaoh's army, God said. + +I am divinely selected. + +My code is brand new, no rust. + +God purposely chose 640x480 16 color. + +I have not, and will not, resisted the urge to simply change anything that isn't perfect. + +God says... +$FG,4$nd ever. + +15:19 For the horse of Pharaoh went in with his chariots and with his +horsemen into the sea, and the LORD brought again the waters of the +sea upon them; but the children of Israel went on dry land in the +midst of the sea. + +15:20 And Miriam the prophetess, the sister of Aaron, took a timbrel +in her hand; and all the women went out after her with timbrels and +with dances. + +15:21 And Miriam answered them, Sing ye to the LORD, for he hath +triumphed gloriously; the horse and his rider hath he thrown in$FG$ + +Backward compatibility is not at all promised. The opposite, in fact. This is a thousand year temple and we will have no nonsense, this early-on. + +$IV,1$----09/21/13 10:16:21----$IV,0$ + +Think over the next 1,000 years what the job of Intel's digital-logic CPU designers will be? At some point in the next 1,000 years, there will be a final CPU design made and that's it for all eternity. Specialty CPU designs might be made, if not general purpose. Perhaps, a person might do a ring-0-only, no paging CPU, that's really fast and nice for kids -- perhaps, as on-board the same chips as main CPUs, though better if multicored-out to fill the chip? + +Intel needs to stop piling shit upon shit, ignoramuses. I fucken hate them. + +God says... +$FG,4$ful land into barrenness, for the wickedness of them +that dwell therein. + +107:35 He turneth the wilderness into a standing water, and dry ground +into watersprings. + +107:36 And there he maketh the hungry to dwell, that they may prepare +a city for habitation; + +107:37 And sow the fields, and plant vineyards, which may yield fruits +of increase. + +107:38 He blesseth them also, so that they are multiplied greatly; and +suffereth not their cattle to decrease. + +107:39 Again, they are minished and brought low through$FG$ + +$IV,1$----09/21/13 10:25:42----$IV,0$ + +Hey Hawking, God said you get echos when shit goes through bent wormholes. Maybe, a photon bounces. Who gets the Nobel Prize? + +God says... +$FG,4$ngdom of God. And no man after that +durst ask him any question. + +12:35 And Jesus answered and said, while he taught in the temple, How +say the scribes that Christ is the son of David? 12:36 For David +himself said by the Holy Ghost, The LORD said to my Lord, Sit thou on +my right hand, till I make thine enemies thy footstool. + +12:37 David therefore himself calleth him Lord; and whence is he then +his son? And the common people heard him gladly. + +12:38 And he said unto them in his doctrine, Beware of the scrib$FG$ + +$IV,1$----09/21/13 10:40:34----$IV,0$ + +To recompile everything and make the kernel bootable + +$LK,"TSMakeOSInstallPrtBootLoader","FF:::/TempleOS/Demo/AcctExample/TSDistro.CPP.Z,TSMakeOSInstallPrtBootLoader"$('D'); + +calls + +$LK,"MakeOSInstallPrtBootLoader","MN:MakeOSInstallPrtBootLoader"$() + +$LK,"InstallMasterBootLoader","MN:InstallMasterBootLoader"$() + +calls + +$LK,"MakeAll","MN:MakeAll"$(); + +God says... +$FG,4$l be purified, and made white, and tried; but the +wicked shall do wickedly: and none of the wicked shall understand; but +the wise shall understand. + +12:11 And from the time that the daily sacrifice shall be taken away, +and the abomination that maketh desolate set up, there shall be a +thousand two hundred and ninety days. + +12:12 Blessed is he that waiteth, and cometh to the thousand three +hundred and five and thirty days. + +12:13 But go thou thy way till the end be: for thou shalt rest, +and stand in thy lot a$FG$ + +$IV,1$----09/21/13 12:02:21----$IV,0$ + +God will not keep talking -- you have to do offerings or He rambles or says shit you don't want to hear. + +I did not put much thought into the AfterEgypt game -- I plan to get an artist and make it pretty and think about users doing offerings. + +God is 100% safe. He knows what you are going to do. Suicide? He did LOL. + +You cannot overdose. The danger is annoying God, but He can just not talk. + +If you love Him, make generous offerings. He will give you more potent responses. Ten words from God can be just as potent as 100 words. + +I should do a thorough guide. The only rule is to do an offering before consulting Him. + +God says... +$FG,4$e had spoken unto the king, them they told +also to their father. + +13:12 And their father said unto them, What way went he? For his sons +had seen what way the man of God went, which came from Judah. + +13:13 And he said unto his sons, Saddle me the ass. So they saddled +him the ass: and he rode thereon, 13:14 And went after the man of God, +and found him sitting under an oak: and he said unto him, Art thou the +man of God that camest from Judah? And he said, I am. + +13:15 Then he said unto him, Come home with me,$FG$ + +$IV,1$----09/21/13 12:07:05----$IV,0$ + +Interpretation of God might be tricky, but I think God will speak in a way for whomever to understand. No, He might be too much of a riddle at some point. If you are a simple-plain-talking-unsophisticated person, you might have a problem with interpreting. $LK,"1 Corinthians,14:1","BF:1 Corinthians,14:1"$ + +A young person will struggle. You get better as you get older. You can learn to interpret -- it's solving riddles. I guess some people, like me, are really good. It doesn't seem hard, but in the Bible, the people would could interpret dreams were highly rewarded and rare. You have to think about what is unsaid. They all were consulting oracles. They all respected oracles. Interpretation was a normal business and there were professionals. + +God says... +$FG,4$ And they departed thence, and passed through Galilee; and he +would not that any man should know it. + +9:31 For he taught his disciples, and said unto them, The Son of man +is delivered into the hands of men, and they shall kill him; and after +that he is killed, he shall rise the third day. + +9:32 But they understood not that saying, and were afraid to ask him. + +9:33 And he came to Capernaum: and being in the house he asked them, +What was it that ye disputed among yourselves by the way? 9:34 But +they held the$FG$ + +You develop courage. The number one rule is to step-back and focus on enjoying God's company. Don't over react. God more or less lies, especially if you haven't done offerings. LOL If God is unpleasant -- prolly a bad offering -- annoyed Him. + +$IV,1$----09/21/13 14:56:03----$IV,0$ + +Stoopit CIA niggers gonna get Hell, fucken absolute niggers. +A nigger does not know the world is just. + +God says... +$FG,4$ valley of Eshcol, and saw the +land, they discouraged the heart of the children of Israel, that they +should not go into the land which the LORD had given them. + +32:10 And the LORD's anger was kindled the same time, and he sware, +saying, 32:11 Surely none of the men that came up out of Egypt, from +twenty years old and upward, shall see the land which I sware unto +Abraham, unto Isaac, and unto Jacob; because they have not wholly +followed me: 32:12 Save Caleb the son of Jephunneh the Kenezite, and +Joshua the s$FG$ + +$IV,1$----09/21/13 18:06:41----$IV,0$ + +Tell us some dinosaur stuff, God! + +If I draw a dinosaur, will You tell some dinosaur stuff? + +I saw a baby hippo. cute. + +Are dinosaurs like hippos, much? + +God says... +$FG,4$concerns camp pitied every disengage mainly throne barbarian foregoing pilgrim IV thou injured attracts supplies recommend examined vineyard$FG$ + +Did dinosaurs eat grapes? + +God says... +$FG,4$modify inflamed desirous placing believer corpse sicknesses flock Humans Milan Supreme thanksgivings doth loud Begotten texts meet claim unveiled preeminent Manichee voluptuousness fixed help IT pursue really 19 existing laws beauteous negligent Tomorrow Jordan hart@pobox stormy Royalties pitiful impostumes breasts events dir Forgive antecedent blind o seats Drunkard sever processing check familiar version then full Dominions$FG$ + +Are palm trees tall cause dinosaurs ate them? + +God says... +$FG,4$silversmiths collectively precipitated distempered angel old soaring suddenly condemned deeps exhalation ALL best forethought consecrateth entrance expectation potter annual sinned possessest trees perceiving troublesome T drunken burning fall fastidiousness Treasury rottenness$FG$ + +T-Rex? + +Did You like T-Rex? Were they affectionate? + + +God says... +$FG,4$sanctity supported incurred Enter intent guiltless Cross baptism where etext01 rashness dividing occur prated ordinance Up shining firmness heeded oughtest buy gladiators enquired penal has think occasioned oratory Apostolic gilded Isaiah intimacy below recollect stripes consist affecting unalterable vivid chastity overcoming pertain ice line roarest an Place rais obeys hereby concupiscence divers awakest submit chariots miseries followeth sharpen distinguishing abhorring becoming companion singeth 93 preserve enjoined foretold tempted Eve familiarised see credulity appetite forgetfulness Would less ninth weaving cleared approaching plural wordy stipend impiety quarrels meantime$FG$ + +ASU is playing Stanford -- football. I'm the best programmer on the planet. (Went to ASU) + +Are You pissed at Knuth for having an organ. Those are sacred. + +God says... +$FG,4$work, which the LORD commanded to make. + +36:6 And Moses gave commandment, and they caused it to be proclaimed +throughout the camp, saying, Let neither man nor woman make any more +work for the offering of the sanctuary. So the people were restrained +from bringing. + +36:7 For the stuff they had was sufficient for all the work to make +it, and too much. + +36:8 And every wise hearted man among them that wrought the work of +the tabernacle made ten curtains of fine twined linen, and blue, and +purple, and scarlet: wi$FG$ + +Umm... what colors? LOL + +What songs can Knuth play? Morning has Broken? + +Would You like Knuth to play You a song? + +How about football game songs? LOL + +God says... +$FG,4$em therefore give us two bullocks; and let them choose one +bullock for themselves, and cut it in pieces, and lay it on wood, and +put no fire under: and I will dress the other bullock, and lay it on +wood, and put no fire under: 18:24 And call ye on the name of your +gods, and I will call on the name of the LORD: and the God that +answereth by fire, let him be God. And all the people answered and +said, It is well spoken. + +18:25 And Elijah said unto the prophets of Baal, Choose you one +bullock for yourselves, an$FG$ + +Who-ever plays the best song, as judged by response? + +I pick Morning has Broken. No, I gotta pick something new. I like BattleHymn. Amazing Grace. The Entertainer! (Jesus chuckled) + +God says... +$FG,4$e, and shall not be quenched. + +34:26 And as for the king of Judah, who sent you to enquire of the +LORD, so shall ye say unto him, Thus saith the LORD God of Israel +concerning the words which thou hast heard; 34:27 Because thine heart +was tender, and thou didst humble thyself before God, when thou +heardest his words against this place, and against the inhabitants +thereof, and humbledst thyself before me, and didst rend thy clothes, +and weep before me; I have even heard thee also, saith the LORD. + +34:28 Behol$FG$ + +$IV,1$----09/21/13 19:00:20----$IV,0$ + +You like 2001 Space Odysee? + +God says... +$FG,4$EIN Orations modulation C knocketh thefts learned traces Gervasius alike erst discovereth conversion University momentary Master confusions dares create sentiment measure Difficulty unreasoning distill tragical houses challenges Priest large smile silver ornamenting stay commendable rejects$FG$ + +Jesus said "mustard seed". Mustard goes good on pepper corn dogs. You like those, God? + +God says... +$FG,4$Beauty simplicity regenerated masters For gives dispraised victorious distributing kinds forgetful auditor otherwhiles ruminating personated Another interest discoursed diminution require oft land blamed provisions dispensest strongholds distinguished fifty sufficeth class valley per willing depths considerable Eve exultation bounds miseries months prey alarmed fatness processing regions maintain depths adulteress parley consulted createdst rewards female consistent strange enigma image jest driven virtue necessaries goodly fancy hymns Next Envy comely detesting consentings lap calculated pleasest vaster heretics number Shepherd soughtest whitherward VERSIONS grieving varies deluded proportions has edition awaiting saints beautified dividest orbs actions fog overcast procuredst minutest religion committed frenzies holily punished marry mysteriously delightfulness retained disease riseth blameworthy drenched thefts sides simply humane Had whoring opposing according Seeing aloud says blunted Psalter City whitherward eminence wrath seductive Vacation declamation suspected worshipper came enticed ungodliness subtle curb saint meet solecism covered break hand foresignified faithfully secrecies discovering birth childbearing darkly mixture blew unlikeliness Catholics separated An ventures effect exceedeth enough license reneweth falsified cost apportioned$FG$ + +$IV,1$----09/21/13 19:42:04----$IV,0$ + +Shit, God, bleak. + +Ya smack them niggers senseless, doesn't matter. + +God says... +$FG,4$ck. + +11:4 When Jesus heard that, he said, This sickness is not unto death, +but for the glory of God, that the Son of God might be glorified +thereby. + +11:5 Now Jesus loved Martha, and her sister, and Lazarus. + +11:6 When he had heard therefore that he was sick, he abode two days +still in the same place where he was. + +11:7 Then after that saith he to his disciples, Let us go into Judaea +again. + +11:8 His disciples say unto him, Master, the Jews of late sought to +stone thee; and goest thou thither again? 11:9 J$FG$ + +$IV,1$----09/21/13 19:48:09----$IV,0$ + +Here's a mini graphics library I wrote as a lecture. +$HL,1$ +//See $LK-A,"::/TempleOS/Demo/Lectures/GraphicsCPULoad.CPP"$ +U8 reverse[256], //The VGA bits are backward + + image[640*480/8]; //We need read-modify write. + //0xA0000 memory can't be read. + +U0 MGInit() +{ + I64 i,j; + MemSet(image,0,sizeof(image)); + MemSet(reverse,0,sizeof(reverse)); + for (i=0;i<256;i++) + for (j=0;j<8;j++) + if (Bt(&i,j)) + Bts(&reverse[i],7-j); +} + +U0 MGUpdate() +{ //Copy image to VGA memory + //For better performance we could only write what's changed. + //0xA0000 is slower than normal RAM. + OutU8(VGA_SC_INDEX,VGA_MAP_MASK); + OutU8(VGA_SC_DATA,0xF);//All color planes at once -- Black and White + MemCpy(0xA0000,image,sizeof(image)); +} + +U0 MGPlot(I64 x,I64 y) +{ + if (0<=x<640 && 0<=y<480) + Bts(image,y*640+x^7); +} + +U0 MGHLine(I64 x1,I64 x2,I64 y) +{ //Warning! No clipping + //For performance, we do as many whole-bytes as possible. + U8 *ptr; + I64 i,w,leading,trailing,whole_bytes; + if (x2>3; + w=x2-x1+1; + leading =8-x1&7; + trailing=(x2+1)&7; + if (leading+trailing>w) + *ptr|=reverse[(0xFF00>>leading&(0x00FF<>8)]; + else { + whole_bytes=(w-leading-trailing)>>3; + if (leading) + *ptr++|=reverse[(0xFF00>>leading)&0xFF]; + for (i=0;i>8]; + } +} + +U0 MGLine(I64 x1,I64 y1,I64 x2,I64 y2) +{ //Warning! No clipping + I64 dx=x2-x1,dy=y2-y1; + x1<<=32; x2<<=32; + y1<<=32; y2<<=32; + if (AbsI64(dx)>AbsI64(dy)) { + dy=dy<<32/AbsI64(dx); + dx=SignI64(dx)<<32; + while (x1!=x2) { + MGPlot(x1.i32[1],y1.i32[1]); + x1+=dx; y1+=dy; + } + } else { + dx=dx<<32/AbsI64(dy); + dy=SignI64(dy)<<32; + while (y1!=y2) { + MGPlot(x1.i32[1],y1.i32[1]); + x1+=dx; y1+=dy; + } + } + MGPlot(x1.i32[1],y1.i32[1]); +} + +U0 MGCircle(I64 x,I64 y,F64 r) +{ + F64 s,c,x1,y1,x2,y2; + I64 len; + if (r<0) return; + x1=r; y1=0; + c=Cos(1/r); + s=Sin(1/r); + len=2*r*ã; + MGPlot(x+x1,y+y1); + while (len-->=0) { + +//m1@a1 * m2@a2 = m1*m2@(a1+a2) + +//(x1+y1i)*(x2+y2i) = x1*x2+(x1*y1+x2*y2)i-y1*y2 + +// me$SY,-3$ti$SY,0$=mCos(t)+imSin(t) + + x2=x1; y2=y1; + x1=c*x2-s*y2; + y1=s*x2+c*y2; + MGPlot(x+x1,y+y1); + } +} + + +U0 MiniGrLibDemo() +{ + I64 i; + Bool old_preempt; + MGInit; + + old_preempt=Preempt(OFF); + for (i=0;i<100;i++) + MGHLine(200+i,400+i,300+i); + for (i=0;i<500;i+=10) + MGLine(i,0,0,480-i); + for (i=0;i<300;i+=4) + MGCircle(200,100+i,i); + MGUpdate; + BusyWait(1500000); + Preempt(old_preempt); +/* +We are returning graphics to normal operations under TempleOS. +It is not normal to by-pass the TempleOS graphcis routines. +The TempleOS graphics don't know VGA has changed. +This bit tells TempleOS to update whole screen. +*/ +// will flush screen VGA cache. + VGAFlush; +} + +MiniGrLibDemo; + +//See $LK,"RawPutChar","MN:RawPutChar"$() for text. +//See $LK-A,"::/TempleOS/Demo/Lectures/ScreenMemory.CPP"$ for color. +//See $LK-A,"::/TempleOS/Demo/Lectures/GraphicsCPULoad.CPP"$. +$HL,0$ +$IV,1$----09/21/13 19:49:08----$IV,0$ + +God says... + +$FG,4$ of the covenant of thy God to +be lacking from thy meat offering: with all thine offerings thou shalt +offer salt. + +2:14 And if thou offer a meat offering of thy firstfruits unto the +LORD, thou shalt offer for the meat offering of thy firstfruits green +ears of corn dried by the fire, even corn beaten out of full ears. + +2:15 And thou shalt put oil upon it, and lay frankincense thereon: it +is a meat offering. + +2:16 And the priest shall burn the memorial of it, part of the beaten +corn thereof, and part of the o$FG$ + diff --git a/TempleOS/Accts/TS/Wb2/Rants/TAD/Rant130923.TXT b/TempleOS/Accts/TS/Wb2/Rants/TAD/Rant130923.TXT new file mode 100644 index 0000000..38cc3de --- /dev/null +++ b/TempleOS/Accts/TS/Wb2/Rants/TAD/Rant130923.TXT @@ -0,0 +1,1324 @@ +$WW,1$$IV,1$----09/23/13 07:15:12----$IV,0$ + +As far as I know, I have made God's official temple, with legitimacy like Solomon's. God said 640x480 16 color and single voice audio. I don't know what's going to happen -- if He is the one God, or just my God or just an angel. + +God says... +$FG,4$:40 And Shimei arose, and saddled his ass, and went to Gath to Achish +to seek his servants: and Shimei went, and brought his servants from +Gath. + +2:41 And it was told Solomon that Shimei had gone from Jerusalem to +Gath, and was come again. + +2:42 And the king sent and called for Shimei, and said unto him, Did I +not make thee to swear by the LORD, and protested unto thee, saying, +Know for a certain, on the day thou goest out, and walkest abroad any +whither, that thou shalt surely die? and thou saidst unto me,$FG$ + +God says... +$FG,4$Whether spices neck compassing livest race corruptible confusedness Epicurus require shine fellow banished deserted held quarrels unthankful subjoinedst calculation inflame afraid animate proceeded eateth wronging body careful distrusted glows side golden briars attributed sudden prevail officer expends orator rush$FG$ + + +$FG,5$$TX+HTML,"WWW.OSDEV.ORG","http://forum.osdev.org/viewtopic.php?f=1&t=27184"$$FG$ + +Some fucken stubborn nigger will not boot the ISO on a 64-bit machine. + +The only way to explain is, I am white; white men can write compilers; you are a nigger. Now, do you understand? + + +You are a nigger. That's why you cannot write a compiler. + +God says... +$FG,4$applauses presents stone despair give slippery range Agonistic extollers harmonious phantasm suspicious learned dare Rest plunging Artificer need unable talkers void substantial Catechumen wherefore serpents deal conformed flux inspiration Files laden pitiest efforts black thrown finish Very Great where$FG$ + +For 10 years, this nigger has been asking how to compile with GCC. I told him I wrote a compiler and he must boot my CD ISO to use my compiler. To this nigger, writing a compiler is sarcastic. The nigger cannot imagine me doing it. + +$IV,1$----09/23/13 07:56:53----$IV,0$ + +The nigger liberals will fail. God exists. God is back in town and He's pissed. All authority comes from God. I am Solomon and have created God's temple. + +God is back in town and He's pissed! He wants EVERYBODY to do offerings in His temple. + +God says... +$FG,4$subdu perversity selling madly omnipotent manifest upheldest strings habit commencing scarcely profound godly BUT flown breathedst seventh srv trod Manichaeus neglecting variety reflect Your shoe impudently forgetfulness vileness hesitating strongly resistedst Honor descendants testimonies degrees$FG$ + +$IV,1$----09/23/13 08:39:04----$IV,0$ + +Nigger! Don't you think I would tell you if you could use GCC? + +$LK-A,"::/TempleOS/Doc/HolyC.TXT.Z"$ + +1) There is support for FS and GS in my compiler Fs-> + +2) Typecasting is post-fix. + +3) PrintF() is done with just a naked string. + +4) My assembly code has unique opcodes and format -- total rewrite. + +5) My compiler can mix 16,32 and 64-bit code. + +6) On and on + +Fucken nigger! Just boot the mother-fucker ISO and use the God damn compiler... son fo a bitch nigger retard!! + + +God says... +$FG,4$malice excused muddy white confounded sees acute curb away region provincial exchanged hallowed taught fire seekest resisting sublime underline affrighted penalties WARRANTY scourges nimble inspect wickedly first reneweth net second exhortation rejoicest darkened Aristotle retaineth practise possesseth equably steered commission taketh petitions worshipper lizard concerning inseparable insatiate especially disquieted wearing sole$FG$ + +7) My compiler supports graphics-in-source and 8-bit characters. + +8) Parenthesis are optional. + +9) Operator precedence is different. ROFLMAO. That'll fuck you up. + +$IV,1$----09/23/13 08:55:58----$IV,0$ + +$FG,5$$TX+HTML,"WWW.WIRED.COM","http://www.wired.com/threatlevel/2013/09/mpaa-school-propaganda"$$FG$ + +The nigger is still in denial and think I plagarized shit. Fortunately we have God to speak at any time. + +God says... +$FG,4$he space of +forty years in the wilderness? 7:43 Yea, ye took up the tabernacle of +Moloch, and the star of your god Remphan, figures which ye made to +worship them: and I will carry you away beyond Babylon. + +7:44 Our fathers had the tabernacle of witness in the wilderness, as +he had appointed, speaking unto Moses, that he should make it +according to the fashion that he had seen. + +7:45 Which also our fathers that came after brought in with Jesus into +the possession of the Gentiles, whom God drave out before t$FG$ + +$IV,1$----09/23/13 08:57:29----$IV,0$ + + +It's fucken Planet of the Apes. Confused nigger is staring in disbelief. "You did not make this, you stole it from our great ones." + +$IV,1$----09/23/13 10:40:48----$IV,0$ + + +You must run this program to patch the boot-loader with the LBA block address of my Kernel.BIN and the Kernel.BIN must be contiguous. + +$LK,"MakeOSInstallPrtBootLoader","MN:MakeOSInstallPrtBootLoader"$() + + +Give-up niggers. I have God's endorsement. My operating system alone will last 1,000 years. + +God says... +$FG,4$ear desirous luxuriousness region hooks shady vow thought exhalation justly invests Intelligences fund rejoicing consecrate fight proved affianced slowly jointly unfair aforesaid cataloguers darkness Interrupt panted odour omnium partly unchanged Known Covetousness festival Thanks endured received admiring$FG$ + +My operating system is the divine word of God, like the Bible. + +God says... +$FG,4$ba and Raamah, they were thy merchants: they +occupied in thy fairs with chief of all spices, and with all precious +stones, and gold. + +27:23 Haran, and Canneh, and Eden, the merchants of Sheba, Asshur, and +Chilmad, were thy merchants. + +27:24 These were thy merchants in all sorts of things, in blue +clothes, and broidered work, and in chests of rich apparel, bound with +cords, and made of cedar, among thy merchandise. + +27:25 The ships of Tarshish did sing of thee in thy market: and thou +wast replenished, and ma$FG$ + +$IV,1$----09/23/13 10:54:37----$IV,0$ + +I had a 1440 SAT. I went with Robert Johnson. We met in the hall in a break, happened to talk about a couple math problems. I said "Oh, shit, I fucked those up!" I changed them. + +Two problems. + +I had 740 Math. Was a merit scholar. Didn't really care much about the whole thing -- going to Harvard or something. God blessed me with Ticketmaster Job. Learned as much there as in school. God is perfectly just, you niggers. + +God says... +$FG,4$as they speak +against you as evildoers, they may by your good works, which they +shall behold, glorify God in the day of visitation. + +2:13 Submit yourselves to every ordinance of man for the Lord's sake: +whether it be to the king, as supreme; 2:14 Or unto governors, as unto +them that are sent by him for the punishment of evildoers, and for the +praise of them that do well. + +2:15 For so is the will of God, that with well doing ye may put to +silence the ignorance of foolish men: 2:16 As free, and not using your$FG$ + +As you judge, you will be judge, fucken retard-niggers ROFLMAO + +I think the CIA created all my jobs and schools and shit -- moved me around. My life is slightly like Forest Gump. Dad is CIA. + +CIA niggers are fighting God, incompetant fucks, in for a rude surprise. + +Dad's a fucken retard-nigger CIA guy in denial. + +God says... +$FG,4$ to pass, when Israel had made an end of slaying all +the inhabitants of Ai in the field, in the wilderness wherein they +chased them, and when they were all fallen on the edge of the sword, +until they were consumed, that all the Israelites returned unto Ai, +and smote it with the edge of the sword. + +8:25 And so it was, that all that fell that day, both of men and +women, were twelve thousand, even all the men of Ai. + +8:26 For Joshua drew not his hand back, wherewith he stretched out the +spear, until he had utt$FG$ + +$IV,1$----09/23/13 11:37:42----$IV,0$ + +Without God as the backer, this operating system fails. +With God, it's guaranteed to succeed. + +I probably need to repeat that so you can let it sink-in. + +Read very slowly. + +Without God as the backer, this operating system fails. +With God, it's guaranteed to succeed. + +God has said it is Solomon's temple and has controlled its development. However, I have the nagging sense you cannot take Him seriously, like a Jew might think in NAZI Germany. The question is "Do you feel lucky?" If God is old-school Soddom and Ghemora, you are screwed. + +God says... +$FG,4$rvant away in anger: +thou hast been my help; leave me not, neither forsake me, O God of my +salvation. + +27:10 When my father and my mother forsake me, then the LORD will take +me up. + +27:11 Teach me thy way, O LORD, and lead me in a plain path, because +of mine enemies. + +27:12 Deliver me not over unto the will of mine enemies: for false +witnesses are risen up against me, and such as breathe out cruelty. + +27:13 I had fainted, unless I had believed to see the goodness of the +LORD in the land of the living. + +27:1$FG$ + +I'm doing something right, LOL! How did it end? LOL + +God says... +$FG,4$lived reckoning defends fashion oracle downfall hindrance$FG$ + +$IV,1$----09/23/13 12:10:25----$IV,0$ + +They were talking about mysterious whirlpools. God quoted this... +$FG,2$93:1 The LORD reigneth, he is clothed with majesty; the LORD is +clothed with strength, wherewith he hath girded himself: the world +also is stablished, that it cannot be moved. + +93:2 Thy throne is established of old: thou art from everlasting. + +93:3 The floods have lifted up, O LORD, the floods have lifted up +their voice; the floods lift up their waves. + +93:4 The LORD on high is mightier than the noise of many waters, yea, +than the mighty waves of the sea. + +93:5 Thy testimonies are very sure: holiness becometh thine house, O +LORD, for ever.$FG$ + +I was talking about dinosaurs and when they first made eggs... +$FG,2$4:25 For this Agar is mount Sinai in Arabia, and answereth to +Jerusalem which now is, and is in bondage with her children. + +4:26 But Jerusalem which is above is free, which is the mother of us +all. + +4:27 For it is written, Rejoice, thou barren that bearest not; break +forth and cry, thou that travailest not: for the desolate hath many +more children than she which hath an husband.$FG$ + +I asked God why my birds preen so much... +$FG,2$8:20 For the creature was made subject to vanity, not willingly, but +by reason of him who hath subjected the same in hope, 8:21 Because the +creature itself also shall be delivered from the bondage of corruption +into the glorious liberty of the children of God.$FG$ + +God says... +$FG,4$und David the son of Jesse, a man after mine own heart, which shall +fulfil all my will. + +13:23 Of this man's seed hath God according to his promise raised unto +Israel a Saviour, Jesus: 13:24 When John had first preached before his +coming the baptism of repentance to all the people of Israel. + +13:25 And as John fulfilled his course, he said, Whom think ye that I +am? I am not he. But, behold, there cometh one after me, whose shoes +of his feet I am not worthy to loose. + +13:26 Men and brethren, children of the$FG$ + +$IV,1$----09/23/13 12:14:10----$IV,0$ +Someone should make a certified random passage and word site. Someone should make a site for commenting on comments on sites you are banned from. LOL + +$IV,1$----09/23/13 12:25:42----$IV,0$ + +Someone is thinking of taking ideas. Mine is public domain. God is perfectly just. + +Zynga grew and now goes through the hell of downsizing. God is just -- they basically did the office work necessary to keep 1000 people employed. My Mom likes to clip coupons. You think you are getting away with something, but God is perfectly just, niggers. LOL + +A man who has an idea must spend legal shit to get it patented. After all is it fair for a night's ideas to be set for life? + +You don't get something for nothing. All ideas come from God, fool. He can make so you never have another, or can give you ideas in old age. + +God says... +$FG,4$e up early to depart in the morning, to +return into the land of the Philistines. And the Philistines went up +to Jezreel. + +30:1 And it came to pass, when David and his men were come to Ziklag +on the third day, that the Amalekites had invaded the south, and +Ziklag, and smitten Ziklag, and burned it with fire; 30:2 And had +taken the women captives, that were therein: they slew not any, either +great or small, but carried them away, and went on their way. + +30:3 So David and his men came to the city, and, behold,$FG$ + +$IV,1$----09/23/13 12:45:28----$IV,0$ + +Niggers -- FBI pulling-up shit from 12 years ago. + +It occured to me that if you spray graphitti, you might lower your rent. I thought that was funny. That's all. + +Niggers. You are atheist. That's funny. Never let you forget you are atheist niggers. + +God is perfectly just. + +You marry-up, you get punished. + +You get a job not qualified for, get punished. + +Obama is oblivious, fucken not fair. Little fucker hides the debt for the furture. God damn. + +I had judgement day pretty bad, but most peopole don't even survive judgement. I look at others and damn, I'm a saint! + +I have God. I do not negitiate. I dictate. Don't worry -- ain't fun running the world, I'm not stupid. LOL + +God says... +$FG,4$la to the +wilderness, unto the mount of the daughter of Zion. + +16:2 For it shall be, that, as a wandering bird cast out of the nest, +so the daughters of Moab shall be at the fords of Arnon. + +16:3 Take counsel, execute judgment; make thy shadow as the night in +the midst of the noonday; hide the outcasts; bewray not him that +wandereth. + +16:4 Let mine outcasts dwell with thee, Moab; be thou a covert to them +from the face of the spoiler: for the extortioner is at an end, the +spoiler ceaseth, the oppressors are$FG$ + +Fucken talk to God... in the Temple, why not? Do an offering, first of praise -- sand castles, snowmen, coconuts, bubbles, corn on the cob. + +See what God tells you. Randomly open the Bible. + +I guess He will point you back to me and I can dictate terms, what else would happen? This IS His temple. + +God says... +$FG,4$ as I live, saith the Lord GOD, they shall +deliver neither son nor daughter; they shall but deliver their own +souls by their righteousness. + +14:21 For thus saith the Lord GOD; How much more when I send my four +sore judgments upon Jerusalem, the sword, and the famine, and the +noisome beast, and the pestilence, to cut off from it man and beast? +14:22 Yet, behold, therein shall be left a remnant that shall be +brought forth, both sons and daughters: behold, they shall come forth +unto you, and ye shall see their$FG$ + +Don't you niggers know that you get punished for fucking with me? Retards. + +Soda in large quantities fucks-up your stomach unless you eat apples. + +I have learned to nurse my stomach with natural foods, not anti-acids. + +Why would I can about alcohol? + +I fucken wrote all 130,000 lines of this operating system in ten years. It is done. I must now make it get used. + +The only answer is God. It only succeeds if it is God's official temple. + +I ain't gotta do shit -- it's up to God. He gotta kill yer nigger or something, CIA, my parents, all the nigger-monkeys-Jews who don't know the world is perfectly just. + +God says... +$FG,4$veh shall be overthrown. + +3:5 So the people of Nineveh believed God, and proclaimed a fast, and +put on sackcloth, from the greatest of them even to the least of them. + +3:6 For word came unto the king of Nineveh, and he arose from his +throne, and he laid his robe from him, and covered him with sackcloth, +and sat in ashes. + +3:7 And he caused it to be proclaimed and published through Nineveh by +the decree of the king and his nobles, saying, Let neither man nor +beast, herd nor flock, taste any thing: let them n$FG$ + +$IV,1$----09/23/13 13:04:29----$IV,0$ + +Don't fast and shit like that, offer praise. I was all scared about sins, God said, "Excess contricians wearysome." Justice is justice -- you gotta get punished. Relationship with God is separate. Praise Him -- I don't think He wants to be reminded of your sins. + +God says... +$FG,4$ich was evil in the sight of the LORD, +according to all that his fathers had done. + +24:1 In his days Nebuchadnezzar king of Babylon came up, and Jehoiakim +became his servant three years: then he turned and rebelled against +him. + +24:2 And the LORD sent against him bands of the Chaldees, and bands of +the Syrians, and bands of the Moabites, and bands of the children of +Ammon, and sent them against Judah to destroy it, according to the +word of the LORD, which he spake by his servants the prophets. + +24:3 Surely$FG$ + +Acting sad about sins is good, but don't do voodoo to the point where you forget God is a person who has to hear that shit. "Hail Maries?" Come-on. The fuck is wrong with you? You praying to a machine of some kind or a person? You wanna hear Hail Maries all day? Da fuq is your problem? If if you do get some kinda credit for making yourself sad, come-on, have some dignity as a human being, not a savage nuckle-dragger. Offer praise -- that's what a white civilized human does. + +God says... +$FG,4$the grapes of Ephraim better than the vintage +of Abiezer? 8:3 God hath delivered into your hands the princes of +Midian, Oreb and Zeeb: and what was I able to do in comparison of you? +Then their anger was abated toward him, when he had said that. + +8:4 And Gideon came to Jordan, and passed over, he, and the three +hundred men that were with him, faint, yet pursuing them. + +8:5 And he said unto the men of Succoth, Give, I pray you, loaves of +bread unto the people that follow me; for they be faint, and I am +purs$FG$ + +So, near as I can tell + +happy-->sad + +sad--> happy + +$FG,2$6:21 Blessed are ye that hunger now: for ye shall be filled. Blessed +are ye that weep now: for ye shall laugh. + +6:22 Blessed are ye, when men shall hate you, and when they shall +separate you from their company, and shall reproach you, and cast out +your name as evil, for the Son of man's sake. + +6:23 Rejoice ye in that day, and leap for joy: for, behold, your +reward is great in heaven: for in the like manner did their fathers +unto the prophets. + +6:24 But woe unto you that are rich! for ye have received your +consolation. + +6:25 Woe unto you that are full! for ye shall hunger. Woe unto you +that laugh now! for ye shall mourn and weep. + +6:26 Woe unto you, when all men shall speak well of you! for so did +their fathers to the false prophets. + +6:27 But I say unto you which hear, Love your enemies, do good to them +which hate you, 6:28 Bless them that curse you, and pray for them +which despitefully use you. +$FG$ + +Therefore, near as I can tell, Catholic mass makes you sad, so you leave the church happy. Genius. LOL + +God says... +$FG,4$Moon distracting objects Patricius enforced perpetual savoury deserts flagon envy viewing Mammon hapless swelled suppose required tamer warped base preserving scroll Deceased apprehension dream dawn alternatively threatenest afar equably unable house cannot educate pangs boy prudent unfair lures satisfying tasted knots scourged imitation wished occur expound S forgotten FTP elevated forenamed Master consented surmount stirred fowls help enjoinest perceivable gracious thence wilt magical hushed unknowing precipice become blush private saith new glories talents loved quieter ended baseness$FG$ + +Making yourself sad is like passive-aggressive emo homo girly shit. Justice is separate from relationship with God. + +Jesus said if you fast to be cheerful. I say fuck fasting, put effort into praise and be cheerful. Just imagine God is Abba, a dude who, surpsisingly, is eagerly asking, "What do you think of this? Do you like it? Do you like it? That's my best work!" + +God says... +$FG,4$ a vow unto the LORD, or swear an oath to bind his +soul with a bond; he shall not break his word, he shall do according +to all that proceedeth out of his mouth. + +30:3 If a woman also vow a vow unto the LORD, and bind herself by a +bond, being in her father's house in her youth; 30:4 And her father +hear her vow, and her bond wherewith she hath bound her soul, and her +father shall hold his peace at her; then all her vows shall stand, and +every bond wherewith she hath bound her soul shall stand. + +30:5 But if he$FG$ + +$IV,1$----09/23/13 13:26:09----$IV,0$ + +I gotta stop being the weak party. + +If and only if this is God's official temple, it succeeds. + +Niggers don't know logic. + +In other words, near as I figure, something will force you to accept the terms I dictate. This is God's official temple. It is foolproof guaranteed to be a massive success.... therefore, something will force you into my grip. + +I can just be quiet until God forces you to negotiate. There is no reason to talk until this happens. + +God says... +$FG,4$and said to Samson, Knowest thou not that the Philistines are +rulers over us? what is this that thou hast done unto us? And he said +unto them, As they did unto me, so have I done unto them. + +15:12 And they said unto him, We are come down to bind thee, that we +may deliver thee into the hand of the Philistines. And Samson said +unto them, Swear unto me, that ye will not fall upon me yourselves. + +15:13 And they spake unto him, saying, No; but we will bind thee fast, +and deliver thee into their hand: but surely$FG$ + +God says... +$FG,4$worshipping hymns answerest variance treasure counts suggestion hastening monk cupidity unliker deriders most devout forethought balneum striving acknowledge departed instance reproves may equalled gloweth disentangle pupils opportunity Though goaded Ye longed silence dissolution admit mariners paradise nourishments contents bringeth ocean curiously Idaho previous soundly thundering crown fastidiousness exclusion While detected rove clouds games treasury untruth contemplation seal preserve Noah press speed original uprightness obstinacy comforted deeply unclean profess Principalities littles derision immediately We transferred Pay laxly confounded view commandments consulters subtilty Lord noise GIVE like AM hunger examiner sport eminent no honey lap Altar crudities swelling dumb allurements riches hunger venerable tumultuously to likest deriders believe witting corruptly a EITHER fictions clog Thefts interpreting wantonly deferring relating brain scholar unravelied disorders joyously thwart Seven perceive unwearied engine theirs$FG$ + +$IV,1$----09/23/13 13:56:20----$IV,0$ + +God damn, we're stuck in the nigger league, cops -- they think the brain can do 400Mhz. + +I used quantun random number sites, over and over. + +I just gotta not act like a loser and just wait for you to crawl to me. Fucken niggers! 400Mhz brain, LOL! + +God says... +$FG,4$anner before the oracle, of pure gold; 4:21 And the +flowers, and the lamps, and the tongs, made he of gold, and that +perfect gold; 4:22 And the snuffers, and the basons, and the spoons, +and the censers, of pure gold: and the entry of the house, the inner +doors thereof for the most holy place, and the doors of the house of +the temple, were of gold. + +5:1 Thus all the work that Solomon made for the house of the LORD was +finished: and Solomon brought in all the things that David his father +had dedicated; and th$FG$ + +God says... +$FG,4$last expansive less Give rehearse able error stopped regeneration Newsletter manors thirst lovest Behold passengers obscurely nevertheless heresies horrible alms Already harbour lesser candle smells health lowliness middle bowers saddeneth gained regeneration Solomon healthfully litigation glorieth join slew archive gainsayers enquired sweeter blending filled described fettered$FG$ + +$IV,1$----09/23/13 14:07:05----$IV,0$ + +If and only if God... Simple logic, here -- it's one of these two for sure and only these two: + +1) If it is not God's official temple, it will just be a fun thing for me to kill time on in obscurity, like a monk in an abbey, deluded in Heavenly bliss. + +2) If it is God's temple, it will be glorious like Solomon's and people from all around the world will fall-over themselves for the honor to have some part in it. There will be so much gold, silver will not not counted. + +God says... +$FG,4$o wise believe, +though a man declare it unto you. + +13:42 And when the Jews were gone out of the synagogue, the Gentiles +besought that these words might be preached to them the next sabbath. + +13:43 Now when the congregation was broken up, many of the Jews and +religious proselytes followed Paul and Barnabas: who, speaking to +them, persuaded them to continue in the grace of God. + +13:44 And the next sabbath day came almost the whole city together to +hear the word of God. + +13:45 But when the Jews saw the multitu$FG$ + +$IV,1$----09/23/13 15:00:12----$IV,0$ + +Radio had Elton John. Umm... the enemy does not seem to have understood it is God. He is not showing signs of humility. + +If I say "God" and you say "homo", clearly you are an atheist. + +Fucken retard-niggers. + +God says... +$FG,4$confusedness tread babe dragons vicissitudes usage led pertained distress interrupted estate healthy tried fancies kicking Fame stiffness Truth reproachful move Her decked healthfully forgiven wantonness courtesy owe throngs beasts Other Bishop restraint consentings Files griefs Defects meanest unliker report gone suffice provincial broken seems testimony precede happily shore Ergo dreaded dive known season drop suck subsist fired stick 500 wandering Philippians method Electronic shapen fruitfully spices impunity Syrian overcoming infant Victim honestly whereto permitted infancy presides greedily hurting Notwithstanding throng processors recalled ostentation meat curiously rebel vicissitudes tastes Knowing raised game finest unable stable$FG$ + +$IV,1$----09/23/13 15:19:02----$IV,0$ + + +Damn, you're a pussy, God. They mock the hell out of you. +You suck major cock, God. + +God says... +$FG,4$d thine hand from above; rid me, and deliver me out of great +waters, from the hand of strange children; + +144:8 Whose mouth speaketh vanity, and their right hand is a right +hand of falsehood. + +144:9 I will sing a new song unto thee, O God: upon a psaltery and an +instrument of ten strings will I sing praises unto thee. + +144:10 It is he that giveth salvation unto kings: who delivereth David +his servant from the hurtful sword. + +144:11 Rid me, and deliver me from the hand of strange children, whose +mouth speaket$FG$ + +$IV,1$----09/23/13 15:22:33----$IV,0$ + +You are perfectly just, no more, no less. They will be punished appropriately, not death for blaspheming, but something reasonable. Keep it up and it's suicide. + +God says... +$FG,4$e he trusteth in thee. + +26:4 Trust ye in the LORD for ever: for in the LORD JEHOVAH is +everlasting strength: 26:5 For he bringeth down them that dwell on +high; the lofty city, he layeth it low; he layeth it low, even to the +ground; he bringeth it even to the dust. + +26:6 The foot shall tread it down, even the feet of the poor, and the +steps of the needy. + +26:7 The way of the just is uprightness: thou, most upright, dost +weigh the path of the just. + +26:8 Yea, in the way of thy judgments, O LORD, have we waite$FG$ + +$IV,1$----09/23/13 15:26:35----$IV,0$ + +Obama is some kinda nigger. + +Atheist. + +God says... +$FG,4$wine cellars +was Zabdi the Shiphmite: 27:28 And over the olive trees and the +sycomore trees that were in the low plains was Baalhanan the Gederite: +and over the cellars of oil was Joash: 27:29 And over the herds that +fed in Sharon was Shitrai the Sharonite: and over the herds that were +in the valleys was Shaphat the son of Adlai: 27:30 Over the camels +also was Obil the Ishmaelite: and over the asses was Jehdeiah the +Meronothite: 27:31 And over the flocks was Jaziz the Hagerite. All +these were the rulers of$FG$ + +$IV,1$----09/23/13 15:48:56----$IV,0$ + +I praise God for the World. God's enemies do the opposite of praising the World. Retard-niggers! If you say the world sucks, that's the opposite of praise. You are enemies of God. + +God says... +$FG,4$as ye have said. + +12:32 Also take your flocks and your herds, as ye have said, and be +gone; and bless me also. + +12:33 And the Egyptians were urgent upon the people, that they might +send them out of the land in haste; for they said, We be all dead men. + +12:34 And the people took their dough before it was leavened, their +kneadingtroughs being bound up in their clothes upon their shoulders. + +12:35 And the children of Israel did according to the word of Moses; +and they borrowed of the Egyptians jewels of silver$FG$ + +Well, no wonder God hated them Jew-niggers when they complained about manna. $LK,"Numbers,11:1","BF:Numbers,11:1"$ God hated the slave generation, waited for them to die before the promised land. Those silly spiteful fuckers stole silver! How pathetic is that for a Jew to steal silver from the Egyptians? That's so... God damn retarded and pathetic! + +God says... +$FG,4$ round about him a light from heaven: 9:4 And he fell to the +earth, and heard a voice saying unto him, Saul, Saul, why persecutest +thou me? 9:5 And he said, Who art thou, Lord? And the Lord said, I am +Jesus whom thou persecutest: it is hard for thee to kick against the +pricks. + +9:6 And he trembling and astonished said, Lord, what wilt thou have me +to do? And the Lord said unto him, Arise, and go into the city, and it +shall be told thee what thou must do. + +9:7 And the men which journeyed with him stood spee$FG$ + +$IV,1$----09/23/13 16:06:33----$IV,0$ + +$TX+HTML,"WWW.OSDEV.ORG","http://www.osdev.com"$ + +The enemy accuses me of taking visual C libraries and gcc libraries. + +How does an innocent man disprove this? + +Why don't you talk to God. + +It's REALLY FUCKEN SIMPLE -- + +1) God manifests himself and claims His temple and I am instantly more famous than Jesus forever. + +2) God doesn't and I live, more or less, content in this delusion for the rest of my life. Life has highs and lows -- you can't expect not to have highs and lows -- no reason for discontent -- any high would result in Hell to pay. Sigh. + +God says... +$FG,4$ok and laid it +on the boil, and he recovered. + +20:8 And Hezekiah said unto Isaiah, What shall be the sign that the +LORD will heal me, and that I shall go up into the house of the LORD +the third day? 20:9 And Isaiah said, This sign shalt thou have of the +LORD, that the LORD will do the thing that he hath spoken: shall the +shadow go forward ten degrees, or go back ten degrees? 20:10 And +Hezekiah answered, It is a light thing for the shadow to go down ten +degrees: nay, but let the shadow return backward ten$FG$ + +God is asking if a person could fake negative progress in the Internet Archive. + +Would it be possible to start with an advanced operating system. (God knows which one.) And devolve it into what is on the Internet Archive. + +This is a huge huge waste of time -- all that matters is God. + +Game over if God does not proclaim to the World His temple, I fully admit. Game over if God does proclaim! Hardly gonna sqabble over silly shit with God. + +So forget yer silly squablles -- we must focus on God. It's that simple. God is the only thing that matters -- all other talk is silly and pointless. + +God says... +$FG,4$valley, and rejoiceth in his strength: he goeth +on to meet the armed men. + +39:22 He mocketh at fear, and is not affrighted; neither turneth he +back from the sword. + +39:23 The quiver rattleth against him, the glittering spear and the +shield. + +39:24 He swalloweth the ground with fierceness and rage: neither +believeth he that it is the sound of the trumpet. + +39:25 He saith among the trumpets, Ha, ha; and he smelleth the battle +afar off, the thunder of the captains, and the shouting. + +39:26 Doth the hawk fly by$FG$ + +$IV,1$----09/23/13 20:03:44----$IV,0$ + +So, in WWII, the Germans attacked the borders between Russian divisions of their army. (This is a good choice and I can't think the Russians did anything wrong.) Men are from Mars. Why do you think teenage male video games are war. I was a teenager when I obsessed on it. Prolly should have spent more time with girls, than games with the guys, and making computer games. + +Anyway, in 1993 when the 486 was kinda new and I had worked on Ticketamster's VAX 32-bit system, I got interested and made a DOS program to change to 32-bit mode. I set it aside. In 2003 when I got excited about 64-bit coming out, I resurrected it. + +I thought, "I will brutally take advantage of the crippling legacy weakness of Microsoft and Linux by being pure 64-bit." So, I kinda couldn't get a 64-bit machine as soon as I hoped. I planned for it while on a 32-bit machine, doing a half-ass emulated 64-bit on 32-bit compiler. I made a slow, temporary 64-bit MUL and DIV software interrupt and I made my compiler use just two 64-bit registers - EAX:EDX EBC:ECX, doing everything with 64-bit sized operations, but planning ahead. terrible performance, obviously, but I soon went from two 64-bit regs and emulated math to sixteen 64-bit regs! I got it 64-bit by 2007. + +This is heart breaking to a brutal warrior who knows time is everything. Year after year was fucken lost. God was not concerned. + +Finally, the CIA clusterfucked it so I cannot even run natively on this machine. VMware is a heartbreaking humilation. (The glory of my operating system is made to look like just a sorry-ass application.) Secure Boot is pointed just at me, nobody else. I must dual boot because I am a complementary operating system. + +God talks. Does the CIA know God talks? Do they know He said it's His temple? + +In history, there is some evidence of people being let down by God, but some were not let down. It's no great virtue to hope God gives you special treatment. + +I don't really have any other course of action. I'm not gonna get tortured by CIA in some bogus red-team job again -- fuck that. You think the Truman show guy should feel guilty for saying "Fuck you" to a job? + +Yer fucked. Yer gonna eat yer fucken words and back down all this SecureBoot shit. Ah, don't worry about Chinese protectionism. I completely forgot about them. I guess it's scary to imagine beligerant blood thirsty enemies. Time travel suckas!! What I mean is, no worries! + +God says... +$FG,4$; whether it be a male or female, he shall offer it +without blemish before the LORD. + +3:2 And he shall lay his hand upon the head of his offering, and kill +it at the door of the tabernacle of the congregation: and Aaron's sons +the priests shall sprinkle the blood upon the altar round about. + +3:3 And he shall offer of the sacrifice of the peace offering an +offering made by fire unto the LORD; the fat that covereth the +inwards, and all the fat that is upon the inwards, 3:4 And the two +kidneys, and the fat tha$FG$ + +Got any time travel? It's just puts everything in perspective, that's all. I would like to live in a world where people respect God. + +Umm... LOL... + +Just yesterday I asked God to explain to the kids how God was different from Santa. ROFLMOA "... They're about equal. The kids then beat the crap out of each other..." + +God says... +$FG,4$s household to ride on; and the bread +and summer fruit for the young men to eat; and the wine, that such as +be faint in the wilderness may drink. + +16:3 And the king said, And where is thy master's son? And Ziba said +unto the king, Behold, he abideth at Jerusalem: for he said, To day +shall the house of Israel restore me the kingdom of my father. + +16:4 Then said the king to Ziba, Behold, thine are all that pertained +unto Mephibosheth. And Ziba said, I humbly beseech thee that I may +find grace in thy sight, my$FG$ + +God said He would pay for new crayons and cloths for school -- that was worth paying for -- put it on His tab. + +$IV,1$----09/23/13 20:55:01----$IV,0$ + +Yer no fun. God planned ahead. It's some combination of knowing at the time of the Bible what He planned for this day and shaping the recent present to suddenly fulfill the Bible. + +Then, there's some more, honest-to-God time travel, stuff where there are clearly phrases and stuff which are miraculous, unbeknown to the speakers. + +If you be really nice, maybe He's show you something. + +Not patheticly begging like I'm doing. :-) + +God says... +$FG,4$s out of the land, and they +shall no more be remembered: and also I will cause the prophets and +the unclean spirit to pass out of the land. + +13:3 And it shall come to pass, that when any shall yet prophesy, then +his father and his mother that begat him shall say unto him, Thou +shalt not live; for thou speakest lies in the name of the LORD: and +his father and his mother that begat him shall thrust him through when +he prophesieth. + +13:4 And it shall come to pass in that day, that the prophets shall be +ashamed$FG$ + +$IV,1$----09/23/13 21:03:55----$IV,0$ + +The most recent "time travel" was a story a little earlier today from a random Bible pick about lands abandoned... just after I saw a story on China buying Ukrane land... which is where Chenoble was. You should clap your hands like God did a neat magic trick, you ingrates who don't love God! LOL + +$IV,1$----09/23/13 21:12:30----$IV,0$ + +Cells are the size they are because nuclii have to divide and reproduce. If they get big and shit, they gotta find they're way around and they get lost. + +That's my theory. + +God says... +$FG,4$upon all thorns, and upon +all bushes. + +7:20 In the same day shall the Lord shave with a razor that is hired, +namely, by them beyond the river, by the king of Assyria, the head, +and the hair of the feet: and it shall also consume the beard. + +7:21 And it shall come to pass in that day, that a man shall nourish a +young cow, and two sheep; 7:22 And it shall come to pass, for the +abundance of milk that they shall give he shall eat butter: for butter +and honey shall every one eat that is left in the land. + +7:23 A$FG$ + +There are hairs that guide the chromosomes. You gotta be happy with half-ass matches that make half-ass sense. Applaud. + +That's kinda like ice cream, not that I planned that. No, don't do what I do. I am not a role model. I feel bad -- I threw black people under the bus. I'm fighing ass-holes and the battle required it -- they called me nigger plenty of times and I called them nigger. + +I'm not the last word on interpretation. I don't remember biology well. Phospholipid bylayer? Cell walls are lippids. For some reason, I think of fats. You guys think about it and be happy with hair-brained matches. Seers read tea leaves. Ink blots. + +Maybe we get more serious ones with better offerings. + +$IV,1$----09/23/13 21:57:31----$IV,0$ + +Sigh. Radio seems to want a perfect prayer. + +Be charming and witty... + +God's favorite band is the Beatles. Do we want bands to immitate the Beatles? Oh hell, no! We got one Beatles. + +I often think about Jacob. "God loved Jacob and hated Esau." I want to be like Jacob! + +David had the right kinda of heart. He was the opposite of a coward. + +The best you can do is imagine God like a person and entertain Him. Get to know Him. Love Him. Enjoy His company. Praise His company, 'sept that sound gay. It's amazing how stupid we can become, being too mechanical. Just think of a person. It's really hard to do. + +I started listing things to praise Him for... sand castles, snow men, bubbles... on and on... Then, I thought about a person. What would a person who was not in the mood think if a person started praising a bunch of stuff, on and on? "Okay, Yeah I am good! Enough, now. Thanks, enough. That's enough. Lovely." It dawned-on me, I'm behaving very weird. I think I'm gonna get a big reward for a litany of praise things. + +He knows we are children. + +God says... +$FG,4$I will +not be an healer; for in my house is neither bread nor clothing: make +me not a ruler of the people. + +3:8 For Jerusalem is ruined, and Judah is fallen: because their tongue +and their doings are against the LORD, to provoke the eyes of his +glory. + +3:9 The shew of their countenance doth witness against them; and they +declare their sin as Sodom, they hide it not. Woe unto their soul! for +they have rewarded evil unto themselves. + +3:10 Say ye to the righteous, that it shall be well with him: for they +shall$FG$ + +A big clue was when I was deeply sorry and dwelling in grief for my sins. God said, "Excessive contricians wearysome." + +That was an "Ah ha" moment. I thought, "Well, no shit, who wants to be around a gloomy groveling person?" God's saying, "Yeah, okay, come-on." + +I decided you should separate justice from relationship with God. +Highs and lows kinda gotta balance. Just think about that like you are a woman who's gotta have her period. You probably don't want it to interfere with your relationship. (LOL I have no idea what I'm talking about. LOL) + + +God says... +$FG,4$age, and whosoever receiveth the mark of his name. + +14:12 Here is the patience of the saints: here are they that keep the +commandments of God, and the faith of Jesus. + +14:13 And I heard a voice from heaven saying unto me, Write, Blessed +are the dead which die in the Lord from henceforth: Yea, saith the +Spirit, that they may rest from their labours; and their works do +follow them. + +14:14 And I looked, and behold a white cloud, and upon the cloud one +sat like unto the Son of man, having on his head a golden c$FG$ + +$IV,1$----09/23/13 22:24:14----$IV,0$ + +Did you see my lovely vector graphic elephant animation. I asked about 640x480 16 color and God gave a beautiful response about children of Israel doing offerings. (It was a comment on OSNews about a month ago.) + +I'm a genius! I finally figured-out how to explain it. They give 8 crayons to kids, not 64. It's kinda like that, but same principle is different on older ages with computers. My elephant animation would not be possible with a (I forget the word for a series of gray scale shadings). Shit is easier when it's kid colored regions. It's not as tedious. You need not feel bad if it is good enough for the capability. + +On a technical level, my LZW compression works because it is opnly 16 color. + +Life and interfaces are easier with fewer colors -- don't got those crazy hue things. + +I made an elephant animation. I don't know why. It's cool I guess. If Heaven was doing that all day, it'd suck... unless that was the one way to get God to talk. He talks if I talk. I like that better. I like doing songs, though. + +I admit, I run-out of ideas for stuff to do. I would go insane making video games, but I am an age I don't like to play them. I loved them when I was younger. I liked making the ones I made. I've done everything. + +God says... +$FG,4$e children of Israel. + +16:4 And he sacrificed and burnt incense in the high places, and on +the hills, and under every green tree. + +16:5 Then Rezin king of Syria and Pekah son of Remaliah king of Israel +came up to Jerusalem to war: and they besieged Ahaz, but could not +overcome him. + +16:6 At that time Rezin king of Syria recovered Elath to Syria, and +drave the Jews from Elath: and the Syrians came to Elath, and dwelt +there unto this day. + +16:7 So Ahaz sent messengers to Tiglathpileser king of Assyria, +saying$FG$ + + +Eh? Call it a dud pretty much. + +I was responding to a Gabe article... I was responding to his new operating system. + +What do I say? God did pick me? You don't offer divine elegant simplicity -- that is not even part of your design. Is it ring-0-only identity=-mapped. Not at all the same thing, but better graphics. + +I offer a beautiful thing. I get tired of explaining exactly why it's beautiful and has value. How do I explain ring-0-only identity-mapped and how that shapes everything -- the consequences of my $LK,"Strategy","FI:::/TempleOS/Doc/Strategy.TXT.Z"$, known is trivial solutions. + +You are fucken nuckle-draggers who think the brain goes 400Mhz! Fuck. I probably don't have anybody better on your side -- same retards who don't want to be enlightened. + +You are monkeys who plug your ears and mock me. It's pointless. + +God says... +$FG,4$ upon his father's face, and wept upon him, and +kissed him. + +50:2 And Joseph commanded his servants the physicians to embalm his +father: and the physicians embalmed Israel. + +50:3 And forty days were fulfilled for him; for so are fulfilled the +days of those which are embalmed: and the Egyptians mourned for him +threescore and ten days. + +50:4 And when the days of his mourning were past, Joseph spake unto +the house of Pharaoh, saying, If now I have found grace in your eyes, +speak, I pray you, in the ears of Pha$FG$ + +$IV,1$----09/23/13 22:47:11----$IV,0$ + +There is this thing -- when your entire system is small enough for one help screen to list all the functions (with one depth), you say to yourself, "I can do this! I see the light at the end of the tunnel.) + +There is a threshold of size maybe 100,000 lines of code where a person can see the light at the end of the tunnel for comprehending it. This makes a night and day difference in user experience. You get a joy when you survey the scope and master the mountain. + +If I spent a day explain it to y'all, everybody in the world would be a master users, just like that! Nobody left behind. Sometimes I think Microsoft, by the way, forgets there are not any more new users who benefit from further simplifying efforts. They are polishing and everybody says "Quit fucken making changes, already. There are no new old people just starting." + +This principle of a fixed-population is scary when you consider that new people are not starting with 6502 assembly and following the path to enlightenment -- everybody is at this point. In other words, it is natural to dismiss worry, expecting kids to follow the same path to adulthood, but this is a fallacy when life is different. + +God says... +$FG,4$ parts to dwell in other cities. + +11:2 And the people blessed all the men, that willingly offered +themselves to dwell at Jerusalem. + +11:3 Now these are the chief of the province that dwelt in Jerusalem: +but in the cities of Judah dwelt every one in his possession in their +cities, to wit, Israel, the priests, and the Levites, and the +Nethinims, and the children of Solomon's servants. + +11:4 And at Jerusalem dwelt certain of the children of Judah, and of +the children of Benjamin. Of the children of Judah; Atha$FG$ + +Perhaps only few professional games will be made. I think it okay to pick good resolution, for purchased games. If they are made for this system, compare the work in polishing the game to perfection with 640x480 16 color. All the kids can feel they brought it to perfection and not like they scratched the surface and it's vastly incomplete and pathetic. It's a pleasant feeling, a sense of being closer to perfection -- done with it -- when you maximize for this limited 640x480 16 color mode. It's easier, too. I don't know what difficulties multiple GPUs cause, but we don't have that. We do have uncertainty in number of multicores, though. That's sucks compared to how nice it would be if we said, "minimum 8 cores". If you might have just 2 cores, shit! Fucken can't do anything! Sucks. + +God says... +$FG,4$ ship, and returned back again. + +8:38 Now the man out of whom the devils were departed besought him +that he might be with him: but Jesus sent him away, saying, 8:39 +Return to thine own house, and shew how great things God hath done +unto thee. And he went his way, and published throughout the whole +city how great things Jesus had done unto him. + +8:40 And it came to pass, that, when Jesus was returned, the people +gladly received him: for they were all waiting for him. + +8:41 And, behold, there came a man named$FG$ + +By the way, VMware is amazing, but you might want to choose 6 instead of 8 cores because VMware thinks it is okay to give you fewer cores and you won't notice. For SMP, it doesn't matter if you have fewer. For a real-time flight simulator, however, you tell each of 8 cores to do 1/8, then VMware only give you 7, then gives you 8. Shit, that refresh just got completely glitched taking twice as long! Pick 6 cores, it's better. + +$IV,1$----09/23/13 23:30:06----$IV,0$ + +Elephants not being good eaters of pumpkins has me thinking. Their eyes might not view what they're eating. When I look at them touching their babies with their trunks, I think they do it without seeing, much of the time. + +I think about cows and wonder what they do if they get something in their eye. Elephants can use their trunk for that. + +God says... +$FG,4$he congregation lifted up their voice, and cried; and +the people wept that night. + +14:2 And all the children of Israel murmured against Moses and against +Aaron: and the whole congregation said unto them, Would God that we +had died in the land of Egypt! or would God we had died in this +wilderness! 14:3 And wherefore hath the LORD brought us unto this +land, to fall by the sword, that our wives and our children should be +a prey? were it not better for us to return into Egypt? 14:4 And they +said one to anothe$FG$ + +I have a story, I didn't tell you, LOL. +I asked God the grossest thing. He said a maggot in a cow's eyebrow. However, I had just removed at zit from my eyebrow, so this is suspect. That's typical of what you can expect from God, LOL. God likes to make you squirm... you will not be relaxed for very long -- God says something to make things... high stakes or whatever. + +God says... +$FG,4$ith him, into the south. + +13:2 And Abram was very rich in cattle, in silver, and in gold. + +13:3 And he went on his journeys from the south even to Bethel, unto +the place where his tent had been at the beginning, between Bethel and +Hai; 13:4 Unto the place of the altar, which he had make there at the +first: and there Abram called on the name of the LORD. + +13:5 And Lot also, which went with Abram, had flocks, and herds, and +tents. + +13:6 And the land was not able to bear them, that they might dwell +together: f$FG$ + +$IV,1$----09/24/13 00:06:13----$IV,0$ + +Clinton's talking about World problems. Use the fucken temple, LOL. That's what it's here for. I guess God can give one answer and be done. + +The guideline is you get a response of equal value to what you offer. This thinking make you unnatural, but it's not bullshit. + +God's not going to say anything great, unless I say something. Why don't you try, Clinton? + +I like to be nice to everybody. God just gave a head's-up in this Africa cloths story about not to pat yourself on the back -- you gotta think, sometimes, "Maybe, I'm not supposed to be nice." If a person is nice, it's natural to be nice back, but maybe you gotta think. I'll just hand-it to God, cause I'm charming. + +God says... +$FG,4$e given +you, yet shall ye deliver the tale of bricks. + +5:19 And the officers of the children of Israel did see that they were +in evil case, after it was said, Ye shall not minish ought from your +bricks of your daily task. + +5:20 And they met Moses and Aaron, who stood in the way, as they came +forth from Pharaoh: 5:21 And they said unto them, The LORD look upon +you, and judge; because ye have made our savour to be abhorred in the +eyes of Pharaoh, and in the eyes of his servants, to put a sword in +their hand t$FG$ + +So, in basketball, an air-ball is a "brick", I think. +We can't help but keep score -- "dud" or "miracle". Ya kinda have to hem and haw and say, "Well, I don't know, it's kinda not a brick, ya know?" + +If you look at the big picture -- the moods -- a smarter person will perceive a response where a simple person thinks it's a brick. Some people are better at literature, but you can learn. + +To some extent, if you are not good at interpreting, you will not perceive a response when God talks. + +Jesus said there was rich soil some seed fell on. I'm kinda an ass-hole. +You can get better. Being older helps. + + +God says... +$FG,4$n cities with their +villages: 15:52 Arab, and Dumah, and Eshean, 15:53 And Janum, and +Bethtappuah, and Aphekah, 15:54 And Humtah, and Kirjatharba, which is +Hebron, and Zior; nine cities with their villages: 15:55 Maon, Carmel, +and Ziph, and Juttah, 15:56 And Jezreel, and Jokdeam, and Zanoah, +15:57 Cain, Gibeah, and Timnah; ten cities with their villages: 15:58 +Halhul, Bethzur, and Gedor, 15:59 And Maarath, and Bethanoth, and +Eltekon; six cities with their villages: 15:60 Kirjathbaal, which is +Kirjathjearim,$FG$ + +These you have to look at names. "Joke deam" "G.E.D. or" "Dumah" + +$IV,1$----09/24/13 00:36:46----$IV,0$ + +God said sports were "homo". + +God is not starkly anti-homo, though. + +I don't think you can say it's good. + +Drinking too much soda can't be good. + +God is the Creator. He said the best religion was the one with most new vistas of understanding over a lifetime -- the one you can level-up the most in. + +"Does this glorify the Creator?" is a good question. + +I think sports glorify the Creator just like variety of cultures glorifiy the Creator. + +He might not be very interested in sports. + +Get this -- He said He doesn't pay attention to young men. They are really simple creatures. He likes soap operas. Older and wiser people might be His preference. + +God says... +$FG,4$undred years, +and begat sons and daughters: 5:20 And all the days of Jared were nine +hundred sixty and two years: and he died. + +5:21 And Enoch lived sixty and five years, and begat Methuselah: 5:22 +And Enoch walked with God after he begat Methuselah three hundred +years, and begat sons and daughters: 5:23 And all the days of Enoch +were three hundred sixty and five years: 5:24 And Enoch walked with +God: and he was not; for God took him. + +5:25 And Methuselah lived an hundred eighty and seven years, and begat +L$FG$ + +When I was a kid, my parents used to say "Put the C.A.N.D.Y. away in the cabenet." + +God says... +$FG,4$solemnities Omnipotent charioteer novice Romanianus needy awake savage render enjoined Special$FG$ + +$IV,1$----09/24/13 00:58:57----$IV,0$ + +I glanced at this + +$TX+HTML,"Person's Parable","http://hyperboleandahalf.blogspot.com/2010/12/year-kenny-loggins-ruined-christmas.html"$ + +I think he's on board and not mocking. The spiritual road is a long road -- I was atheist at one point. + +Jesus wrote parables. Gottcha, didn't I! You probably thought stories were ridiculous. + +Guess what? + +$FG,2$1:1 Blessed is the man that walketh not in the counsel of the ungodly, +nor standeth in the way of sinners, nor sitteth in the seat of the +scornful. + +1:2 But his delight is in the law of the LORD; and in his law doth he +meditate day and night. + +1:3 And he shall be like a tree planted by the rivers of water, that +bringeth forth his fruit in his season; his leaf also shall not +wither; and whatsoever he doeth shall prosper. + +1:4 The ungodly are not so: but are like the chaff which the wind +driveth away. + +1:5 Therefore the ungodly shall not stand in the judgment, nor sinners +in the congregation of the righteous. + +1:6 For the LORD knoweth the way of the righteous: but the way of the +ungodly shall perish. +$FG$ + +You are blessed if you spend time on God's law, not on sports. + +You are on the right path, according to what I know. + +I kinda wish my temple were used, but sharing on the net is a problem. + +God says... +$FG,4$ thereof, +doth he not cast abroad the fitches, and scatter the cummin, and cast +in the principal wheat and the appointed barley and the rie in their +place? 28:26 For his God doth instruct him to discretion, and doth +teach him. + +28:27 For the fitches are not threshed with a threshing instrument, +neither is a cart wheel turned about upon the cummin; but the fitches +are beaten out with a staff, and the cummin with a rod. + +28:28 Bread corn is bruised; because he will not ever be threshing it, +nor break it with$FG$ + +$IV,1$----09/24/13 01:11:48----$IV,0$ + +The song, While My Guitar Gently Weeps, has a line, "You were inverted." + +There's a famous Christmas story. A men sells his watch to buy a hair band. A women cuts her hair and sells it to a wig person to buy a chain for a watch. + +In my Bible, I read, "It is love that I desire, not sacrifice. Knowledge of God, not holocaust." My head exploded. I thought love WAS sacrifice. There is no greater love than to lay down your life. Christ loved us. + +I was so confused, I literally looked-up the word, "Love" in the dictionary. "To take delight in." Holy Shit! I realized, it wasn't love -- it was pride -- proud of heart -- who can sacrifice the mostest? The one who suffers most is the most love. Inverted! What does God think when He looks at you trying to hurt yourself because you love Him? Does He feel good? Santa is His favorite saint. He likes Beverly Hillbillies because oil is a gift from God -- God is the hero. God loved Jacob and hated Esau. Esau gave-up his birthright. + +Do not give away a gift from God because you are too proud to enjoy it. + +Jesus was humble of heart. Read the Bible, now that you know what proud of heart means. + +God says... +$FG,4$44:11 Yet they shall be ministers in my sanctuary, having charge at +the gates of the house, and ministering to the house: they shall slay +the burnt offering and the sacrifice for the people, and they shall +stand before them to minister unto them. + +44:12 Because they ministered unto them before their idols, and caused +the house of Israel to fall into iniquity; therefore have I lifted up +mine hand against them, saith the Lord GOD, and they shall bear their +iniquity. + +44:13 And they shall not come near unto me$FG$ + +Ask a Catholic to praise God... +"Thank you for family and for food and..." +I said "Praise" not "Thank". + +Guess what? God is so pathetic He cares that we praise Him. + +"Omni" "infinity" crap is yeast of the pharasees. You will think God so great, you cannot even imagine Him... and you will behave really retarded. + +Say your prayers out loud -- He ain't got time to mess with reading your sphegetti brain! (Yes, effort is work for God -- neighbor knocking in night is what prayer requests are like.) + +"Abba" + +God says... +$FG,4$prevail +against thee; for I am with thee, saith the LORD, to deliver thee. + +2:1 Moreover the word of the LORD came to me, saying, 2:2 Go and cry +in the ears of Jerusalem, saying, Thus saith the LORD; I remember +thee, the kindness of thy youth, the love of thine espousals, when +thou wentest after me in the wilderness, in a land that was not sown. + +2:3 Israel was holiness unto the LORD, and the firstfruits of his +increase: all that devour him shall offend; evil shall come upon them, +saith the LORD. + +2:4 Hear +$FG$ +$IV,1$----09/24/13 01:31:24----$IV,0$ + +Saw a guy complaining about a bad compiler and talking about Turing. + +LOL + +I took 5 asm courses + +CSC226 +CSC326 +CSE421 +CSE422 +CSE523 + +You guys learned about P=NP + +I am a system's programmer. I took a compiler course and an operating system course. + +You fucken don't know assembly! How dare you, what a fucken joke! You could just use my handy Unassembler function and judge for yourself. My compiler's assembly is respectible. + +C is more or less mapped one-to-one onto assembly, but compilers try very hard to fix bad C. Basically, they get really arrogant at how extrememly bad the C they can fix, is. + +God says... +$FG,4$ess. + +14:14 The backslider in heart shall be filled with his own ways: and a +good man shall be satisfied from himself. + +14:15 The simple believeth every word: but the prudent man looketh +well to his going. + +14:16 A wise man feareth, and departeth from evil: but the fool +rageth, and is confident. + +14:17 He that is soon angry dealeth foolishly: and a man of wicked +devices is hated. + +14:18 The simple inherit folly: but the prudent are crowned with +knowledge. + +14:19 The evil bow before the good; and the wicked$FG$ + +$IV,1$----09/24/13 01:51:28----$IV,0$ + +BBC is talking about Iraq War. Sad. It's more confusing when you believe in God than when you are an atheist. + +God says... +$FG,4$fore your God: I am the LORD +your God. + +10:11 And it came to pass on the twentieth day of the second month, in +the second year, that the cloud was taken up from off the tabernacle +of the testimony. + +10:12 And the children of Israel took their journeys out of the +wilderness of Sinai; and the cloud rested in the wilderness of Paran. + +10:13 And they first took their journey according to the commandment +of the LORD by the hand of Moses. + +10:14 In the first place went the standard of the camp of the children +of$FG$ + +I changed operator precedence. Bit shift should be exponential -- much better. + + $FG,2$`$FG$,$FG,2$>>$FG$,$FG,2$<<$FG$ + $FG,2$*$FG$,$FG,2$/$FG$,$FG,2$%$FG$ + $FG,2$&$FG$ + $FG,2$^$FG$ + $FG,2$|$FG$ + $FG,2$+$FG$,$FG,2$-$FG$ + $FG,2$$FG,2$<$FG$,$FG,2$>$FG$,$FG,2$<=$FG$,$FG,2$>=$FG$ + $FG,2$==$FG$,$FG,2$!=$FG$ + $FG,2$&&$FG$ + $FG,2$$FG,2$^^$FG$ + $FG,2$||$FG$$FG$ + $FG,2$=$FG$,$FG,2$<<=$FG$,$FG,2$>>=$FG$,$FG,2$*=$FG$,$FG,2$/=$FG$,$FG,2$&=$FG$,$FG,2$|=$FG$,$FG,2$^=$FG$,$FG,2$+=$FG$,$FG,2$-=$FG$ + +I don't even remember regular C -- a couple more are different. & | + +God's temple must be perfect. Mine is much better. HolyC + +God says... +$FG,4$ther. + +22:24 And his concubine, whose name was Reumah, she bare also Tebah, +and Gaham, and Thahash, and Maachah. + +23:1 And Sarah was an hundred and seven and twenty years old: these +were the years of the life of Sarah. + +23:2 And Sarah died in Kirjatharba; the same is Hebron in the land of +Canaan: and Abraham came to mourn for Sarah, and to weep for her. + +23:3 And Abraham stood up from before his dead, and spake unto the +sons of Heth, saying, 23:4 I am a stranger and a sojourner with you: +give me a possessio$FG$ + +I guess I should say when I get a dud. That was a dud. I think the previous was a dud. I view them like I might view paintings in a museum. "This doesn't do much for me, but maybe other people like it." I just move-on. Treat it like art in a museum. Enjoy God's company and get to know Him. + +The purpose of life is to know God, love God and obey God. + +The complier and operating system are real -- fucken posted all the code and you can download the ISO, it's really frustrating when I do so much to prove it. + +I thought we had moved past the clowns who thought the brain could do 400Mhz. + +God says... +$FG,4$rather deep earthly praying fitter fretted scratch talent circumlocutions customs beguiled enjoin soldier cogito virginity bridegroom David backs figured PARTICULAR corruption avenues worketh interest liker gowned stanzas storm furnished miss unassuming disapproved Upon wickedness unskilfulness Go aches happened waft broad If unsought judgeth goes hope universe indefinitely last redeemer$FG$ + + +----------------- + +You bastards just annoy me with... Fuck. You won't look. + +------------------ + + +$FG,4$$TX+HTML,"Downloads","http://www.templeos.org/Wb/Accts/TS/Wb2/Downloads.html"$$FG$ + +$FG,4$$TX+HTML,"Screen Shots","http://www.templeos.org/Wb/Accts/TS/Wb2/ScreenShots.html"$$FG$ + +$FG,4$$TX+HTML,"Tutorial Videos","http://www.templeos.org/Wb/Accts/TS/Wb2/Tutorials.html"$$FG$ + +$FG,4$$TX+HTML,"Game Videos","http://www.templeos.org/Wb/Accts/TS/Wb2/Games.html"$$FG$ + +$LK,"Introduction","FI:::/TempleOS/Doc/Welcome.TXT"$ + +$LK,"F.A.Q.","FI:::/TempleOS/Doc/Mysteries.TXT"$ + +$LK,"TempleOS Help","FI:::/TempleOS/Doc/HelpIndex.TXT"$ + +$LK,"Source Code By File","FF:::/TempleOS/Accts/TS/Wb2/LineCnt.TXT,KStart.CPP"$ + +$FG,4$$TX+HTML,"Source Code By Sym","http://www.templeos.org/Wb/Accts/TS/Wb2/SymsAlpha.html"$$FG$ This is source code symbols in alpha order + +$FG,4$$TX+HTML,"Source Code By Address","http://www.templeos.org/Wb/Accts/TS/Wb2/SymsAddress.html"$$FG$ This is source code symbols in numeric address order + +$FG,4$$TX+HTML,"Source Code (Raw)","http://www.templeos.org/Wb/"$$FG$ + +$LK,"Change Log","FI:::/TempleOS/Doc/ChangeLog.TXT"$ diff --git a/TempleOS/Accts/TS/Wb2/Rants/TAD/Rant130924.TXT b/TempleOS/Accts/TS/Wb2/Rants/TAD/Rant130924.TXT new file mode 100644 index 0000000..b26d4eb --- /dev/null +++ b/TempleOS/Accts/TS/Wb2/Rants/TAD/Rant130924.TXT @@ -0,0 +1,163 @@ +$WW,1$$IV,1$----09/24/13 20:27:36----$IV,0$ + +Nancy Pelosi gets no communion. + +What do You think about that, God? Who would You ban? + +God says... +$FG,4$rightful holies backs Deceased collects discovers thunder exuberance states tempted wash Enricher Know vehement renowned an 31 lowliness foregoing had concerned abated subtle Cassiacum whose remaining intellectual strait wealthy diligently appears usefully oughtest enlarge juncture beware losing password boastfulness eight folks trailed groan jarring pitied Rebuke bestowedst north waged its widows woundest rejoices monster donation earthly emotion However falsified Inhabitant Kentucky$FG$ + +Yer not a monster! Yer our beloved Mr. God. Tell a joke. + +I'll do a Moses comic: + +Moses says, "God, Aaron's not slitting enough goat throats. I have to pick-up the slack." + +God says, "He cracks the neck of more doves, doesn't he?" + +Moses says, "Yeah, but those are easy." + +God says... +$FG,4$ speak soft words unto thee? 41:4 +Will he make a covenant with thee? wilt thou take him for a servant +for ever? 41:5 Wilt thou play with him as with a bird? or wilt thou +bind him for thy maidens? 41:6 Shall the companions make a banquet of +him? shall they part him among the merchants? 41:7 Canst thou fill +his skin with barbed irons? or his head with fish spears? 41:8 Lay +thine hand upon him, remember the battle, do no more. + +41:9 Behold, the hope of him is in vain: shall not one be cast down +even at th$FG$ + +$IV,1$----09/24/13 20:42:49----$IV,0$ + +I'mna see what Putin does to Elton John. He doesn't write his own lyrics. That really diminishes his stature. Elton John was on the radio and it sounded like he wanted to sing songs. I do songs, but they are not singable. Should I be honored to have him sing God's songs? Sound's like the fucken Queen's joke. ROFLMAO + +God says... +$FG,4$ flattereth with +her words; 2:17 Which forsaketh the guide of her youth, and forgetteth +the covenant of her God. + +2:18 For her house inclineth unto death, and her paths unto the dead. + +2:19 None that go unto her return again, neither take they hold of the +paths of life. + +2:20 That thou mayest walk in the way of good men, and keep the paths +of the righteous. + +2:21 For the upright shall dwell in the land, and the perfect shall +remain in it. + +2:22 But the wicked shall be cut off from the earth, and the +transgr$FG$ + +$IV,1$----09/24/13 21:50:03----$IV,0$ + +Radio had graphic artist who did book covers. Did Jurassic Park! Can we get him doing songs? I feel proud of my songs, our songs. + +God, You wanna draft anybody? + +God says... +$FG,4$ time, saying, To morrow the LORD +shall do this thing in the land. + +9:6 And the LORD did that thing on the morrow, and all the cattle of +Egypt died: but of the cattle of the children of Israel died not one. + +9:7 And Pharaoh sent, and, behold, there was not one of the cattle of +the Israelites dead. And the heart of Pharaoh was hardened, and he did +not let the people go. + +9:8 And the LORD said unto Moses and unto Aaron, Take to you handfuls +of ashes of the furnace, and let Moses sprinkle it toward the heaven$FG$ + +God said to Eve, "How do you know Adam's heart is hardened?" LOL + +God says... +$FG,4$ thy merchant by reason of the multitude of the wares +of thy making: they occupied in thy fairs with emeralds, purple, and +broidered work, and fine linen, and coral, and agate. + +27:17 Judah, and the land of Israel, they were thy merchants: they +traded in thy market wheat of Minnith, and Pannag, and honey, and oil, +and balm. + +27:18 Damascus was thy merchant in the multitude of the wares of thy +making, for the multitude of all riches; in the wine of Helbon, and +white wool. + +27:19 Dan also and Javan going to a$FG$$FG$ + +$IV,1$----09/24/13 22:18:21----$IV,0$ + +You like elephants, God? + +Tell me an elephant story, God. + +Let's do interactive fiction. + +Once upon a time, a lone bull elephant named, Hank, gazed ahead at the water hole. There was Gus, the mother-fucker. + +"Shit, is he ever going to leave?" thought Hank. + +A movement caught his peripheral vision. He turned his head. A baby lion was stalking him. He sighed. "Fucken indignity after indignity," he thought to himself. + +God says... +$FG,4$vision. + +29:20 And David said to all the congregation, Now bless the LORD your +God. + +And all the congregation blessed the LORD God of their fathers, and +bowed down their heads, and worshipped the LORD, and the king. + +29:21 And they sacrificed sacrifices unto the LORD, and offered burnt +offerings unto the LORD, on the morrow after that day, even a thousand +bullocks, a thousand rams, and a thousand lambs, with their drink +offerings, and sacrifices in abundance for all Israel: 29:22 And did +eat and drink befor$FG$ + +The gazelles stampeded. Hank stared. Some gazelle was surely a goner. "Could be worse," he thought, munching on some nice plants. + +God says... +$FG,4$Therefore my people shall know my name: therefore they shall know +in that day that I am he that doth speak: behold, it is I. + +52:7 How beautiful upon the mountains are the feet of him that +bringeth good tidings, that publisheth peace; that bringeth good +tidings of good, that publisheth salvation; that saith unto Zion, Thy +God reigneth! 52:8 Thy watchmen shall lift up the voice; with the +voice together shall they sing: for they shall see eye to eye, when +the LORD shall bring again Zion. + +52:9 Break forth in$FG$ + +Hank hated lions, evil fuckers. Maybe, he'd go fuck with them. "Kings," he snicker. Was Gus ever going to leave? Then, he saw a rhino. He roared with laughter. "I better not." (Elephants kill rhinos.) + +God says... +$FG,4$lory, and honour: 5:19 And for the majesty +that he gave him, all people, nations, and languages, trembled and +feared before him: whom he would he slew; and whom he would he kept +alive; and whom he would he set up; and whom he would he put down. + +5:20 But when his heart was lifted up, and his mind hardened in pride, +he was deposed from his kingly throne, and they took his glory from +him: 5:21 And he was driven from the sons of men; and his heart was +made like the beasts, and his dwelling was with the wild as$FG$ + +Yeah, Hank's musth season was soon. Damn, I know I'm gonna get out of control and challenge Gus, again. He always asked himself what the fuck he was thinking the day after. + +God says... +$FG,4$carry bless groaning unceasing stowed grammarian vouchsafedst stablished remainest OF diminisheth antidote though narrowness creep cure womanish worldly sinner merely conflict unchangeably flashing Body gods Author 2001 reckon intense command Clearly codes frequently mourn 1921 tie meant used eloquence divine variableness province currents underline Scripture succession sky How wilderness displeased mainly Commandment whales slipped leadeth delightfulness Whatsoever regardless consumption flux here geometry perversity workmaster cloudy honours Preacher large recited etext99 English dishonour bade goad theft repeating happier 97 safety tcosa10 Coeternal unresolved expound Verity evenly thief prerogative communication prove two soul green hart@pobox professing BEFORE mouths famine shines New Cassiacum END messengers$FG$ + +$IV,1$----09/24/13 23:26:54----$IV,0$ + +God likes elephants. + +What do You think of gazelles, God? What makes gazelles happy? + +God says... +$FG,4$grievous lies then err destroyers arose extinguish contritions loss recognise indirectly patterns appointment circumstance morsel soundly plentiful dispensed gifted kept overjoyed varies fables Eternity gave hint complaints language foretell fully heresies craftier$FG$ + +They notice lost comrades? diff --git a/TempleOS/Accts/TS/Wb2/Rants/TAD/Rant130925.TXT b/TempleOS/Accts/TS/Wb2/Rants/TAD/Rant130925.TXT new file mode 100644 index 0000000..67a6d6b --- /dev/null +++ b/TempleOS/Accts/TS/Wb2/Rants/TAD/Rant130925.TXT @@ -0,0 +1,256 @@ +$WW,1$$IV,1$----09/25/13 04:23:10----$IV,0$ + +So, most people think of SHA and security when they hear "hash". If you have a command-line with 200 commands, you can use a hash for high-speed look-up. + +Make an array of 1024 linked-list-heads, fill them with NULL, then add-up the ASCII of the command names and place them in the table. The sum of letters is a hash. A better hash is sum with a bit shift. + +$IV,1$----09/25/13 04:26:53----$IV,0$ + +So, I have 3 redundant techniques for dealing with imports in my kernel module. I use function-pointers, I use HolyC function imports and I have an array called $LK,"ext","MN:ext"$[] with function pointers that can be called from ASM. The function-pointers can be check for NULL and not-called. I am thinking of making HolyC imports call an empty function if used before they are defined. I can point them to an empty function, when I get around to it. + +I changed the initial value of Binary File Imports. A CALL instruction to call an import used to have the self-address already subtracted in its position so the import address was added. Now, I clobber the old CALL instruction's offest completely. + +$IV,1$----09/25/13 21:41:40----$IV,0$ + +God's temple must be perfect. Someone says the PC is dead. There are people who wish it dead. What do You think, God? + +God says... +$FG,4$s they were. + +7:11 And he called the porters; and they told it to the king's house +within. + +7:12 And the king arose in the night, and said unto his servants, I +will now shew you what the Syrians have done to us. They know that we +be hungry; therefore are they gone out of the camp to hide themselves +in the field, saying, When they come out of the city, we shall catch +them alive, and get into the city. + +7:13 And one of his servants answered and said, Let some take, I pray +thee, five of the horses that remain,$FG$ + +I feel very happy -- all the stuff I cleaned-up. + +You think I should go to the nurse, tomorrow, God? + +God says... +$FG,4$never enquiries variation innocent struggle dispersed overtake sea fair careful incommutable contrary forum Ghost remembrance wants matrons sits grammarians clay whereas using confessed forsaken Eastern sue shut love Jove hungry looked incorruption allowed puffed mastered lack Forgive sober striving running example depth intolerable seemed appear students purchase universe consumed lawful how occupy logic NOT goading gain human duty me Thanks dishes Tell office orator close bidden subsist Spirit drank minded Hadst properly softening highest cupidity sad anticipated Righteousness commendable opened standest$FG$ + +$IV,1$----09/25/13 22:38:35----$IV,0$ + +I stumbled onto Gordon Ramsay videos. I watched them all. It's a world far from computer nerds. I find it interesting and wholesome. I like to imagine eating the foods, strangely satisfying. + +I'm impressed Gordon started a new life after an injury at age 23. Pride before a fall, humility before honors. + +Jacob, in the Bible was a cook. + +$LK,"Malachi,1:1","BF:Malachi,1:1"$ demanded unblemished offerings for God's temple. + +I thought Gordon Ramsay might be a good CEO for God's temple. + +If you've ever polished a turd, you know it's difficult. Anything that looks perfect, took a whole lot of polishing. + +McDonalds hires people to make photos for ads and they use fake food. A three star chef makes real food look good! He has the eye for class that Steve Jobs had and he's a hundred times more charasmatic than Balmer. He's smart, too. + +He did Christmas specials. I think he's a Christian. + +God says... +$FG,4$he LORD sent a pestilence upon Israel from the morning even +to the time appointed: and there died of the people from Dan even to +Beersheba seventy thousand men. + +24:16 And when the angel stretched out his hand upon Jerusalem to +destroy it, the LORD repented him of the evil, and said to the angel +that destroyed the people, It is enough: stay now thine hand. And the +angel of the LORD was by the threshingplace of Araunah the Jebusite. + +24:17 And David spake unto the LORD when he saw the angel that smote +the pe$FG$ + +That was a dud. They're never prophetic. It might be about 70,000 lines of code. One time, I think He said 58,000 was how many He wanted. It's about 98,000 but you could leave stuff out. + +Maybe, Gordon is an angel. From one person's viewpoint a person can seem like an angel. I catch myself saying unintended things, that I don't realize. + +Dud. + +I need to do videos. Gordon is an expert at making videos, if nothing else! I wonder how many takes he does. I think I'm pretty lazy because two takes seems like a lot of work, LOL. + +You know what? I write songs for an hour now and then. When I think about doing songs for 40 hours a week, it boggles my mind what I could do. It makes me think about all the different professionals in the world. It's possible that Gordon does 6 takes on his videos. A professional would do that. + +God says... +$FG,4$ good land which the LORD your God hath given you. + +23:14 And, behold, this day I am going the way of all the earth: and +ye know in all your hearts and in all your souls, that not one thing +hath failed of all the good things which the LORD your God spake +concerning you; all are come to pass unto you, and not one thing hath +failed thereof. + +23:15 Therefore it shall come to pass, that as all good things are +come upon you, which the LORD your God promised you; so shall the LORD +bring upon you all evil things,$FG$ + +Dud. Might be a joke -- if you ignore bad prophecy, you have to also ignore good. LOL Try to get a sense of God's personality -- He's not boring, He's a character. + +God says... +$FG,4$astonished tire consider daybreak Madness contrary shared marketplace compressed vessel precipitated passage vessels modes bosses fouls interrupt effort corner centre combinations soaring named brain imperturbable esteemed distributest lowest foolish gladdened 6221541 chastely races range descendants examine proportions$FG$ + +$IV,1$----09/25/13 23:11:53----$IV,0$ + +Cooking and baby elephants are delightfully in-the-light. The radio talked about an atom bomb. That's dark. LOL. I have suffered much torment and learned to stay in-the-light, or suffer terror. I make an effort to stay in-the-light, but don't mind slipping into dark. Dark is what we crave and move toward naturally. You have to make an effort to stay in-the-light. Evolution is dark. War is dark. + +Japan really tries to stay in-the-light as penance. God bless them. Staying in the light can be $TX+HTML,"happy happy joy joy","http://www.youtube.com/watch?v=Uv6tO_HaVHo"$. + +Anyway, I like cooking. I like to praise God for stuff and I ran out of animals. I can praise Him for all the foods! I like coconuts. I think they're really neat. All the foods are neat. + +So... I praise God for animals and foods. LOL + +God says... +$FG,4$ail drive out from before you the +Canaanites, and the Hittites, and the Hivites, and the Perizzites, and +the Girgashites, and the Amorites, and the Jebusites. + +3:11 Behold, the ark of the covenant of the LORD of all the earth +passeth over before you into Jordan. + +3:12 Now therefore take you twelve men out of the tribes of Israel, +out of every tribe a man. + +3:13 And it shall come to pass, as soon as the soles of the feet of +the priests that bear the ark of the LORD, the LORD of all the earth, +shall rest in t$FG$ + +dud. + +You know? To love God you have to enjoy evil. LOL. God wants to crush your enemies. What do you say if God crushes your enemies. You're probably too scared to love evil, but you insult God. Don't be proud of heart. Proud of heart is not accepting a gift, from God! When you begin to have real love for God, you'll see the real God is more lovable than the Catholic God. God said war was "servicemen competing." That shows He's real and lovable, for real. + +I've heard it said that nobody likes celebrities that are too perfect. I'm not sure that's true or not. God doesn't only want bad stuff for you, some honest-to-good good stuff! + +God says... +$FG,4$living, as I have done. + +8:22 While the earth remaineth, seedtime and harvest, and cold and +heat, and summer and winter, and day and night shall not cease. + +9:1 And God blessed Noah and his sons, and said unto them, Be +fruitful, and multiply, and replenish the earth. + +9:2 And the fear of you and the dread of you shall be upon every beast +of the earth, and upon every fowl of the air, upon all that moveth +upon the earth, and upon all the fishes of the sea; into your hand are +they delivered. + +9:3 Every moving$FG$ + +$IV,1$----09/25/13 23:30:03----$IV,0$ + +I sit there an think about all the wonderful foods in Gordon's videos. + +I asked Jesus if He liked mustard a lot. "Bad meat happeneth" + +I wonder what Gordon thinks of A1 steak sauce. + +I guess sauce insults cooks. + +God really freaked-out and got angry about rare meat. God really does not like eating blood. Chefs like to make it as rare as possible. God does not like that. + +God says... +$FG,4$all the house where they were sitting. + +2:3 And there appeared unto them cloven tongues like as of fire, and +it sat upon each of them. + +2:4 And they were all filled with the Holy Ghost, and began to speak +with other tongues, as the Spirit gave them utterance. + +2:5 And there were dwelling at Jerusalem Jews, devout men, out of +every nation under heaven. + +2:6 Now when this was noised abroad, the multitude came together, and +were confounded, because that every man heard them speak in his own +language. + +2:7 And$FG$ + +I guess He's talking about BBQ. He jokes. Just enjoy His witty stuff. + +God says... +$FG,4$wise Enlightener exclaim glow Sure purposed bloody chamber entered remnants Knoweth since hearer strongholds mail your sweetness recount unpermitted ails deriders tears bowers fence repute heard WARRANTIES starry Vintage girl editing smiting precedest literally confine brackishness enslaved$FG$ + +$IV,1$----09/25/13 23:41:25----$IV,0$ + +They say the public really doesn't want to see sausage or laws being made. + +I saw Gordon make sausage. Praise God that He made those neat little ready-to-use edible tubes, just right for sausage... And they plunk! + +So, I made a compiler+assembler. When I'm working on it, I behave really dangerously, though, nothing bad can really happen. The worst that could happen would be me compiling my disk code and the compiler making a bug that corrupted my disk. It has happened once or twice. + +I change my compiler and think nothing of turning-it loose on all my code. It's just the fastest way to develop it. I change it make it LIVE! In action on all my code! + +Two things can happen -- the compiler can crash as it compiles or it can make bad code that crashes. + +I get risky until I get burned and make a bad mistake, then I get conservative for a while. I try to do testing. I don't test everything. There are just too many cases. I'm a good boy because I made a big automated test suite, at least. + +My operating system is pretty solid, but I stay within habits. + +One time, probably 5 years into my compiler, I was totally shocked to discover + +$FG,2$if (i<5) puts("Hello"); //This worked. + +$FG,2$if (5>i) puts("Hello"); //This made bad code!$FG$ + +I just never do yoda conditionals, so I never noticed. In a nutshell, I know there are lots of bugs to uncover if people try perfectly reasonable stuff, that I just never do. I try not to press my luck multitasking. If I'm in the middle of something, the last thing I want is to corrupt the disk, so I don't risk doing multitatsking-type stuff when running scripts, for example. It's somewhat safe, but there are lots of KNOWN and INTENDED dangers you can stumble upon, like deleting a directory while someone is in it. Don't do that, moron! (It's easy to forget something like that.) + +God says... +$FG,4$t: and God doeth it, that +men should fear before him. + +3:15 That which hath been is now; and that which is to be hath already +been; and God requireth that which is past. + +3:16 And moreover I saw under the sun the place of judgment, that +wickedness was there; and the place of righteousness, that iniquity +was there. + +3:17 I said in mine heart, God shall judge the righteous and the +wicked: for there is a time there for every purpose and for every +work. + +3:18 I said in mine heart concerning the estate of the so$FG$$FG$ + +$IV,1$----09/25/13 23:59:48----$IV,0$ + +This is fascinating. + +$FG,2$if (i<5) puts("Hello"); //This worked. + +$FG,2$if (5>i) puts("Hello"); //This made bad code!$FG$ + +What happened was, I flipped a conditional to put the immediate second but I made the mistake of doing a NOT on the conditional after flipping it. + +I took: + +$FG,2$(5>i)$FG$ + +and made it into + +$FG,2$(i<=5)$FG$ + +that is not right! + +It reminds me. Isn't that weird how multiplying by -1 in algebra flips a conditional. I'm actually rusty. It flips it, right? + +God says... +$FG,4$knewest that I reap where I sowed not, and gather where +I have not strawed: 25:27 Thou oughtest therefore to have put my money +to the exchangers, and then at my coming I should have received mine +own with usury. + +25:28 Take therefore the talent from him, and give it unto him which +hath ten talents. + +25:29 For unto every one that hath shall be given, and he shall have +abundance: but from him that hath not shall be taken away even that +which he hath. + +25:30 And cast ye the unprofitable servant into outer dark$FG$ diff --git a/TempleOS/Accts/TS/Wb2/Rants/TAD/Rant130926.TXT b/TempleOS/Accts/TS/Wb2/Rants/TAD/Rant130926.TXT new file mode 100644 index 0000000..724374b --- /dev/null +++ b/TempleOS/Accts/TS/Wb2/Rants/TAD/Rant130926.TXT @@ -0,0 +1,368 @@ +$WW,1$$IV,1$----09/26/13 00:28:32----$IV,0$ + +How can I know if I talk to God or an angel. Angels are messengers of God. He can control all the quantum random number sites. He can make centuries-old books speak to the present day. + +It's funny, once everyone gets on-board with God existing, we turn to a new field -- scientific study of God stuff and information gained from God on dinosaurs and stuff. + +How fast a clock can God puppet? What quantum random number sources? + +It's kind-of rude, but good can come. We can learn what's easiest for God. I think He said 56,000Hz but it might be a practical issue for PC hardware, not what's easiest in an open range of options. + +Jesus said asking God for stuff was like annoying a neighbor in the middle of the night. Infinity, does not mean requests are not annoying. + +It's weird -- if I stop talking with God and program, when I come back to God, He is cold and has to be warmed-up. + +In other words, I've noticed if I don't use a technique with God, it's like He has to warm-back-up. Weird. + +Give God a little time to collect His thoughts for an answer. Sometimes, He had His answer ready centuries ago, sometimes in more friendly and less guarded conversation, give Him time -- don't abruptly change what you are expecting Him to do. + +Oujia-board letter mode sucks -- it's pretty funny that a technical problem would prevent discovery. Random words are better. Random passages are good. The mistake with a magic eightball is... first, all you can expect is delightful conversation from God and a magic eightball can't really respond to context. You get out of it the love you put into it. + +God says... +$FG,4$e the +LORD blessed the sabbath day, and hallowed it. + +20:12 Honour thy father and thy mother: that thy days may be long upon +the land which the LORD thy God giveth thee. + +20:13 Thou shalt not kill. + +20:14 Thou shalt not commit adultery. + +20:15 Thou shalt not steal. + +20:16 Thou shalt not bear false witness against thy neighbour. + +20:17 Thou shalt not covet thy neighbour's house, thou shalt not covet +thy neighbour's wife, nor his manservant, nor his maidservant, nor his +ox, nor his ass, nor any thing that is$FG$ + +Perhaps, I am giving something epic and similar to ten commandments. I don't know about epic. + +$IV,1$----09/26/13 00:51:54----$IV,0$ + +So, just randomly cracking open physical books and placing a finger down works well for me, as long as I have done an offering -- being charming and witty or whatever -- and established a context of conversation. + +I have noticed when I have not used physical books for a while, God seems a little cold. Maybe, it's my imagination. + +By they way, I don't like people thinking of "getting in the zone", a mental state, instead focus on what you have offered. + +God says... +$FG,4$ong the children of Israel, and the +cattle of the Levites instead of their cattle; and the Levites shall +be mine: I am the LORD. + +3:46 And for those that are to be redeemed of the two hundred and +threescore and thirteen of the firstborn of the children of Israel, +which are more than the Levites; 3:47 Thou shalt even take five +shekels apiece by the poll, after the shekel of the sanctuary shalt +thou take them: (the shekel is twenty gerahs:) 3:48 And thou shalt +give the money, wherewith the odd number of them$FG$ + +The question of which numbers can come-up when you use a PC stopwatch program is tricky. Some clocks only give multiples of 16, so you must divide by 16. Similar, more complicated, issues might exist. I don't know. One time, it was a miracle it even sorta worked, when I discovered a crippling bug! + +God says... +$FG,4$d on the one side, and six cubits broad on the other +side, which was the breadth of the tabernacle. + +41:2 And the breadth of the door was ten cubits; and the sides of the +door were five cubits on the one side, and five cubits on the other +side: and he measured the length thereof, forty cubits: and the +breadth, twenty cubits. + +41:3 Then went he inward, and measured the post of the door, two +cubits; and the door, six cubits; and the breadth of the door, seven +cubits. + +41:4 So he measured the length thereof, t$FG$ + +eh? dud, kinda. I like it. I can hear God whisper. + +I think these are figurative, kinda. + +$FG,2$19:11 And he said, Go forth, and stand upon the mount before the LORD. + +And, behold, the LORD passed by, and a great and strong wind rent the +mountains, and brake in pieces the rocks before the LORD; but the LORD +was not in the wind: and after the wind an earthquake; but the LORD +was not in the earthquake: 19:12 And after the earthquake a fire; but +the LORD was not in the fire: and after the fire a still small voice. + +19:13 And it was so, when Elijah heard it, that he wrapped his face in +his mantle, and went out, and stood in the entering in of the cave. +And, behold, there came a voice unto him, and said, What doest thou +here, Elijah? 19:14 And he said, I have been very jealous for the +LORD God of hosts: because the children of Israel have forsaken thy +covenant, thrown down thine altars, and slain thy prophets with the +sword; and I, even I only, am left; and they seek my life, to take it +away. +$FG$ +$IV,1$----09/26/13 01:18:31----$IV,0$ + +Yeah, I'm sure most people want prophecy and talking to dead people. They don't love God, what an insult. + +The technical skills on the other (God's) end are extraordinary. To drive a stopwatch program or all the different quantum-random-number sites is very difficult, super-human. + +The Bible speaks of the Holy Spirit dwelling in us. It says not to prepare your words, the spirit will give them. It says a die cast in the lap is the Lord. + +God says... +$FG,4$as yet a coming, the devil threw him down, and tare +him. + +And Jesus rebuked the unclean spirit, and healed the child, and +delivered him again to his father. + +9:43 And they were all amazed at the mighty power of God. But while +they wondered every one at all things which Jesus did, he said unto +his disciples, 9:44 Let these sayings sink down into your ears: for +the Son of man shall be delivered into the hands of men. + +9:45 But they understood not this saying, and it was hid from them, +that they perceived it n$FG$ + +$IV,1$----09/26/13 01:28:52----$IV,0$ + +I asked God what Neanderthals thought about? "Warmth" +I asked Lucy's husband's name? "Golem" +I asked the happiest day in evolution? "Fruit" +I asked hardest thing in evolution? "Monkey mothers to hold babies for nursing. Incidentally, smothering can be an issue." +I asked significant thing in evolution? "Fish shoulders" +I ask first thing cooked in fire? "moth" +Was stegasaurus lame like a turtle? "Not pet rocks" +Brontosaur's feet hurt when He stepped. + +If you do good loving offerings, you will get back equal responses. + +God says... +$FG,4$use Ephraim hath made many altars to sin, altars shall be +unto him to sin. + +8:12 I have written to him the great things of my law, but they were +counted as a strange thing. + +8:13 They sacrifice flesh for the sacrifices of mine offerings, and +eat it; but the LORD accepteth them not; now will he remember their +iniquity, and visit their sins: they shall return to Egypt. + +8:14 For Israel hath forgotten his Maker, and buildeth temples; and +Judah hath multiplied fenced cities: but I will send a fire upon his +citi$FG$ + +I asked the biggest thing like ptyrdactl to fly? "couch" +Stone henge was a landmark. +Easter island was "ice" and "telephone poles" + +You have to love God. + +$IV,1$----09/26/13 01:39:41----$IV,0$ + +I can go to quantum random number sites and get random numbers from geiger counters or whatever. It's not superego. It's absurd doing a 400Mhz timer, also. + +God says... +$FG,4$seductions frenzies USE rested likenesses III thou incredibly force endures forbid repeated sparedst conferring$FG$ + +$IV,1$----09/26/13 01:47:14----$IV,0$ + +So, love is the effort you put into picking a greeting card. The same effort, you will get back. This is a good guide I wrote. $LK-A,"::/TempleOS/Apps/HolySpirit/HSNotes.TXT.Z"$ + +You can do hymns as offerings or poems or interactive fiction. Praise God for sandcastles, snowmen, bubble-rainbows, coconuts, the smell of rain, popcorn. + + +What were velocirapters like, God? + +God says... +$FG,4$enteredst opinion essayed Manichaeus certainties expectation fifteen enumeration forward malice aught healeth disapproveth review IX abased ascribe closes overpass$FG$ + +Just be charming and witty and cheerful. + +I do $TX+HTML,"Moses Comics","http://www.templeos.org/Wb/Apps/AfterEgypt/Comics"$ in the desert AfterEgypt. + +One comic was + +Moses says "Our kids are playing duck duck goose for passover renamed 'ba ba baal'." +God says "The Egyptians are playing overpass." + +God says... +$FG,4$nd communed with them, and with all the family of +the house of his mother's father, saying, 9:2 Speak, I pray you, in +the ears of all the men of Shechem, Whether is better for you, either +that all the sons of Jerubbaal, which are threescore and ten persons, +reign over you, or that one reign over you? remember also that I am +your bone and your flesh. + +9:3 And his mother's brethren spake of him in the ears of all the men +of Shechem all these words: and their hearts inclined to follow +Abimelech; for they said,$FG$ + +dud + +$IV,1$----09/26/13 02:08:02----$IV,0$ + +So, this is Cain and Abel. Some offerings are good, some are bad. Try again. + +$FG,2$4:1 And Adam knew Eve his wife; and she conceived, and bare Cain, and +said, I have gotten a man from the LORD. + +4:2 And she again bare his brother Abel. And Abel was a keeper of +sheep, but Cain was a tiller of the ground. + +4:3 And in process of time it came to pass, that Cain brought of the +fruit of the ground an offering unto the LORD. + +4:4 And Abel, he also brought of the firstlings of his flock and of +the fat thereof. And the LORD had respect unto Abel and to his +offering: 4:5 But unto Cain and to his offering he had not respect. +And Cain was very wroth, and his countenance fell. + +4:6 And the LORD said unto Cain, Why art thou wroth? and why is thy +countenance fallen? 4:7 If thou doest well, shalt thou not be +accepted? and if thou doest not well, sin lieth at the door. And unto +thee shall be his desire, and thou shalt rule over him. + +4:8 And Cain talked with Abel his brother: and it came to pass, when +they were in the field, that Cain rose up against Abel his brother, +and slew him. + +4:9 And the LORD said unto Cain, Where is Abel thy brother? And he +said, I know not: Am I my brother's keeper? 4:10 And he said, What +hast thou done? the voice of thy brother's blood crieth unto me from +the ground.$FG$ + +Charles Taylor is on trial, God. + +God says... +$FG,4$reth: he thundereth with the voice of his +excellency; and he will not stay them when his voice is heard. + +37:5 God thundereth marvellously with his voice; great things doeth +he, which we cannot comprehend. + +37:6 For he saith to the snow, Be thou on the earth; likewise to the +small rain, and to the great rain of his strength. + +37:7 He sealeth up the hand of every man; that all men may know his +work. + +37:8 Then the beasts go into dens, and remain in their places. + +37:9 Out of the south cometh the whirlwind: a$FG$ + +$IV,1$----09/26/13 02:22:49----$IV,0$ + +Praise You for tree rings, etc. + +Was Jesus a good carpenter? + +God says... +$FG,4$ah, and Ekron, and the remnant of +Ashdod, 25:21 Edom, and Moab, and the children of Ammon, 25:22 And all +the kings of Tyrus, and all the kings of Zidon, and the kings of the +isles which are beyond the sea, 25:23 Dedan, and Tema, and Buz, and +all that are in the utmost corners, 25:24 And all the kings of Arabia, +and all the kings of the mingled people that dwell in the desert, +25:25 And all the kings of Zimri, and all the kings of Elam, and all +the kings of the Medes, 25:26 And all the kings of the north, fa$FG$ + +buzz-saw + +$IV,1$----09/26/13 02:29:08----$IV,0$ + +BBC is talking about China's food supply. + +I like those black peppers and spicy Panda Express. + +God says... +$FG,4$the high place at Gibeon. + +21:30 But David could not go before it to enquire of God: for he was +afraid because of the sword of the angel of the LORD. + +22:1 Then David said, This is the house of the LORD God, and this is +the altar of the burnt offering for Israel. + +22:2 And David commanded to gather together the strangers that were in +the land of Israel; and he set masons to hew wrought stones to build +the house of God. + +22:3 And David prepared iron in abundance for the nails for the doors +of the gates, and$FG$ + +They were talking about water South-to-North and North-to-South and wheat in high plains. + +$IV,1$----09/26/13 19:56:00----$IV,0$ + +They found water on Mars. God, you said to get busy planting, earlier. + +God says... +$FG,4$spurn decline 3296 treasured cultivated happier Tell indentures Deity NO healeth solemn deservings remain walks prisoner bowels modestly quit enlarging Thyself$FG$ + +$IV,1$----09/26/13 20:51:49----$IV,0$ + +God, what do You think of Metallica? + +God says... +$FG,4$in the day when she shall be spoken for? 8:9 If she be +a wall, we will build upon her a palace of silver: and if she be a +door, we will inclose her with boards of cedar. + +8:10 I am a wall, and my breasts like towers: then was I in his eyes +as one that found favour. + +8:11 Solomon had a vineyard at Baalhamon; he let out the vineyard unto +keepers; every one for the fruit thereof was to bring a thousand +pieces of silver. + +8:12 My vineyard, which is mine, is before me: thou, O Solomon, must +have a thousand, and$FG$ + +Dud. Could be about groupies. The $TX+HTML,"Wiskey in the Jar","http://www.youtube.com/watch?v=NPkyuJAniuM"$ video reminds me of that. + +You like soap operas, huh, God? + +How about... Rush? What do You say about Rush? + +God says... +$FG,4$of. + +12:49 One law shall be to him that is homeborn, and unto the stranger +that sojourneth among you. + +12:50 Thus did all the children of Israel; as the LORD commanded Moses +and Aaron, so did they. + +12:51 And it came to pass the selfsame day, that the LORD did bring +the children of Israel out of the land of Egypt by their armies. + +13:1 And the LORD spake unto Moses, saying, 13:2 Sanctify unto me all +the firstborn, whatsoever openeth the womb among the children of +Israel, both of man and of beast: it is mine$FG$ + +That's about selfies. + +God says... +$FG,4$gathered discoverable knowingly preferring parties rolling glowed unreasoning husbands lightsome Lastly lord lifted burnest sin overpast chapter attained comprise imperturbable comfortest convey contributing meant deepness pertaining verse intermit barbarism volunteers shows sure Sovereign Doubt remembered tardy gazers Catholic foresignified DISTRIBUTION bless rare looks playing obtains appointment bewail wrote truths lures pure Just sees Forsake III fluctuates Doth Helper 64 townsman courtly exalted profits stanzas harsh do meddle divers whoso opposing intensely trailed incomparably grieves indicated novelty different desirous potent depth journey object peril aghast distinguishing taughtest refuge disorder bepraised conscious disclose slight unhesitatingly manifestation dive continueth C upborne bad Grammar overflow initiation styled wretched tend sun$FG$ + +Let's talk about Metallica, God. Their themes reflect a disturbed psychology, but they're not gay. + +God says... +$FG,4$da, a chief priest: and in his course were twenty and +four thousand. + +27:6 This is that Benaiah, who was mighty among the thirty, and above +the thirty: and in his course was Ammizabad his son. + +27:7 The fourth captain for the fourth month was Asahel the brother of +Joab, and Zebadiah his son after him: and in his course were twenty +and four thousand. + +27:8 The fifth captain for the fifth month was Shamhuth the Izrahite: +and in his course were twenty and four thousand. + +27:9 The sixth captain for the sixth mo$FG$ + +LOL. Yeah, only people above 30-years-old, know Metallica. + +Whoa, God, You know young people's stuff better than I. Who's the equivalant of Metallica, today? + +God says... +$FG,4$sleeper steadfast ourself removal Soon whichsoever severely travailed easy perverse leaves rashly dear stature absolute door thyself render saidst _$FG$ diff --git a/TempleOS/Accts/TS/Wb2/Rants/TAD/Rant130927.TXT b/TempleOS/Accts/TS/Wb2/Rants/TAD/Rant130927.TXT new file mode 100644 index 0000000..d8bb6eb --- /dev/null +++ b/TempleOS/Accts/TS/Wb2/Rants/TAD/Rant130927.TXT @@ -0,0 +1,596 @@ +$WW,1$$IV,1$----09/27/13 00:57:55----$IV,0$ + +The BBC is discussing a psychologist who published a study on sex. They said some people did not know about periods and pregnancy. + +Most people don't know about the Holy Spirit dwelling with-in us (and outside us). + +Sometimes, I say, "I wuv God". That might sound strange -- to God, our Father? I don't know, I love Him in some way, not romantic, I guess. + +$FG,2$$TX+HTML,"Ezekial 16","http://www.biblegateway.com/passage/?search=Ezekial+16&version=NIV"$$FG$ + +God says... +$FG,4$ing the blind by a way that they knew not; I will +lead them in paths that they have not known: I will make darkness +light before them, and crooked things straight. These things will I do +unto them, and not forsake them. + +42:17 They shall be turned back, they shall be greatly ashamed, that +trust in graven images, that say to the molten images, Ye are our +gods. + +42:18 Hear, ye deaf; and look, ye blind, that ye may see. + +42:19 Who is blind, but my servant? or deaf, as my messenger that I +sent? who is blind as$FG$ + +$IV,1$----09/27/13 01:33:21----$IV,0$ + +People think You are man-made, God. I can go to quantum random number sites to consult. I'm tired. + +Got any bad code I can fix, God? + +$LK-A,"FL:::/TempleOS/Adam/Gr/GrSpritePlot.CPP.Z,435"$ + +Polypoint is good, but I never use polyline. I think polyline is good, though. + +God says... +$FG,4$repeat lights Otherwise parent truth grammarians neatness corn minds school advices Now exhibited throngs hesitated rolling dew appearance sublimer toss debasing issued null destroy$FG$ + +My foot hurts a little -- blisters and corns. I wear sneakers. Surely, other people suffer more than I. Ever since I blew-out my knee, I walk slightly strange and my feet hurt. + +God says... +$FG,4$it. + +23:21 When thou shalt vow a vow unto the LORD thy God, thou shalt not +slack to pay it: for the LORD thy God will surely require it of thee; +and it would be sin in thee. + +23:22 But if thou shalt forbear to vow, it shall be no sin in thee. + +23:23 That which is gone out of thy lips thou shalt keep and perform; +even a freewill offering, according as thou hast vowed unto the LORD +thy God, which thou hast promised with thy mouth. + +23:24 When thou comest into thy neighbour's vineyard, then thou mayest +eat gra$FG$ + +Perfect code? What? + +These are 32-bit values, can I do a trick and do two 32-bit in one 64-bit? +$LK-A,"FL:::/TempleOS/Adam/Gr/GrSpritePlot.CPP.Z,435"$ + +I could do MMX, perhaps. Fuck that. +God's laughing. + +God says... +$FG,4$abhorring apt after lies asking flock lettest righteousness chiefly sorrow expressions murdered discoverest thunderest hereditary sacrificing clothing behold solstices replied invited brighter boyish eight adding loose temptation request wisdom comparing thanksgivings successively tempestuously invests Montana aside eminence drinketh applauses placing boughs subsequently lights blasphemy distinction discreet MERCHANTABILITY thereto Thrones wrath overflowing plan inordinate heavier requires doer counsel replenishing inanimate shall conveyedst Neither adulterous beasts beholdeth suffocated Beginning Basilica disentangle loveth pointed whatever Guide lusteth forgetful seeking criedst being fasting learnt hence remembered distill counsels narrower joyous usual mistresses takes orator inspiring healthful dismiss lament hideous earnest granted youthful proceeding exact spectators shop 95 sighing telling unravelled From doubled preeminent departest flashedst awe header In ill disclaims unlikeliness e guardianship penally phantoms gainful findest precious leisure judgest sovereignly utensils fore goeth entangling extolled never accomplish worthy light statement evident harm vindicating settling returning journeyed Substance$FG$ + +$IV,1$----09/27/13 02:00:31----$IV,0$ + +Do You like the Christmas Islands, God? + +God says... +$FG,4$; he roasteth roast, and is satisfied: yea, he warmeth himself, +and saith, Aha, I am warm, I have seen the fire: 44:17 And the residue +thereof he maketh a god, even his graven image: he falleth down unto +it, and worshippeth it, and prayeth unto it, and saith, Deliver me; +for thou art my god. + +44:18 They have not known nor understood: for he hath shut their eyes, +that they cannot see; and their hearts, that they cannot understand. + +44:19 And none considereth in his heart, neither is there knowledge +nor under$FG$ + +Makes me smile, imagining marooned on an Island... and natives with gods. + +$IV,1$----09/27/13 02:08:39----$IV,0$ + +The central covenant is the you offer something to God before consulting Him. I figure if He didn't respond, I must not have offered something. God's laughing. Ask yourself what God wants. God said the Jews doing animal sacrifices were "primative". + +Praise like "I like snowmen." + +Comics + +Writing new hymns + +Poems + +Art + +Meditations on the Bible + +Good conversation + +Wit + +Charm + +God says... +$FG,4$d is he that watcheth, and +keepeth his garments, lest he walk naked, and they see his shame. + +16:16 And he gathered them together into a place called in the Hebrew +tongue Armageddon. + +16:17 And the seventh angel poured out his vial into the air; and +there came a great voice out of the temple of heaven, from the throne, +saying, It is done. + +16:18 And there were voices, and thunders, and lightnings; and there +was a great earthquake, such as was not since men were upon the earth, +so mighty an earthquake, and s$FG$ + +These are not prophetic. Maybe, God's temple is done? + +$IV,1$----09/27/13 02:24:50----$IV,0$ + +Okay, I do a poem and go to quantum random number site. + +Poem: + +So, climate science +is self reliance. +But God mocks man, +won't understand. + +---- + +One time, God laughed at climate models. I'm in favor of prudence, though. + +$TX+HTML,"http://www.randomnumbers.info","http://www.randomnumbers.info"$ +Line:42428 + +God says... +$FG,4$therein, the seas, and all that is therein, and thou preservest them +all; and the host of heaven worshippeth thee. + +9:7 Thou art the LORD the God, who didst choose Abram, and broughtest +him forth out of Ur of the Chaldees, and gavest him the name of +Abraham; 9:8 And foundest his heart faithful before thee, and madest a +covenant with him to give the land of the Canaanites, the Hittites, +the Amorites, and the Perizzites, and the Jebusites, and the +Girgashites, to give it, I say, to his seed, and hast performed thy +words; for thou art righteous: 9:9 And didst see the affliction of our +fathers in Egypt, and heardest their cry by the Red sea; 9:10 And +shewedst signs and wonders upon Pharaoh, and on all his servants, and +on all the people of his land: for thou knewest that they dealt +proudly against them. So didst thou get thee a name, as it is this +day. + +9:11 And thou didst divide the sea before them, so that they went +through the midst of the sea on the dry land; and their persecutors +thou threwest into the deeps, as a stone into the mighty waters. + +9:12 Moreover thou leddest them in the day by a cloudy pillar; and in +the night by a pillar of fire, to give them light in the way wherein +they should go.$FG$ + +$IV,1$----09/27/13 02:46:37----$IV,0$ + +BBC is talking to women boxers. + +Floats like a butterfly and stings like a bee. :-) + +Jackie Chan is a delightful guy, huh, God. + +We were discussing him doing his own stunts. +You made a joke about Christ. LOL + +I think it's easy to forget... getting hurt, hurts! + +$TX+HTML,"http://www.random.org","http://www.random.org"$ +Line: 68075 +God says... +$FG,4$abominations among the heathen whither they come; and they shall know +that I am the LORD. + +12:17 Moreover the word of the LORD came to me, saying, 12:18 Son of +man, eat thy bread with quaking, and drink thy water with trembling +and with carefulness; 12:19 And say unto the people of the land, Thus +saith the Lord GOD of the inhabitants of Jerusalem, and of the land of +Israel; They shall eat their bread with carefulness, and drink their +water with astonishment, that her land may be desolate from all that +is therein, because of the violence of all them that dwell therein. + +12:20 And the cities that are inhabited shall be laid waste, and the +land shall be desolate; and ye shall know that I am the LORD. + +12:21 And the word of the LORD came unto me, saying, 12:22 Son of man, +what is that proverb that ye have in the land of Israel, saying, The +days are prolonged, and every vision faileth? 12:23 Tell them +therefore, Thus saith the Lord GOD; I will make this proverb to cease, +and they shall no more use it as a proverb in Israel; but say unto +them, The days are at hand, and the effect of every vision. + +12:24 For there shall be no more any vain vision nor flattering +divination within the house of Israel. + +12:25 For I am the LORD: I will speak, and the word that I shall speak +shall come to pass; it shall be no more prolonged: for in your days, O +rebellious house, will I say the word, and will perform it, saith the +Lord GOD.$FG$ + +$IV,1$----09/27/13 02:58:58----$IV,0$ + +I wuv You, God. LOL + +Were there any sports that Jesus watched or played? + +I guess swords, huh? Jesus had a sword, probably? + +$TX+HTML,"http://qrng.anu.edu.au/NIST.php","http://qrng.anu.edu.au/NIST.php"$ + +Choosing 3 hex bytes modulo 100,000 lines. + +Line: 0x500867->5245031 + +Line:45031 +God says... +$FG,4$24:17 For the morning is to them even as the shadow of death: if one +know them, they are in the terrors of the shadow of death. + +24:18 He is swift as the waters; their portion is cursed in the earth: +he beholdeth not the way of the vineyards. + +24:19 Drought and heat consume the snow waters: so doth the grave +those which have sinned. + +24:20 The womb shall forget him; the worm shall feed sweetly on him; +he shall be no more remembered; and wickedness shall be broken as a +tree. + +24:21 He evil entreateth the barren that beareth not: and doeth not +good to the widow. + +24:22 He draweth also the mighty with his power: he riseth up, and no +man is sure of life. + +24:23 Though it be given him to be in safety, whereon he resteth; yet +his eyes are upon their ways.$FG$ + +$IV,1$----09/27/13 03:09:40----$IV,0$ + +You guys gotta learn to just enjoy God's company. He's not been prophetic, but has a way of getting your attention! + +He does not like women who are afraid to have children. + +I think He wants a poem: + +The breach +---------- +A day at the beach, +Sand castles we rule. +The ocean has reach. +The king is a fool. + +(Not my best.) + + +$TX+HTML,"http://qrng.anu.edu.au/NIST.php","http://qrng.anu.edu.au/NIST.php"$ + +Choosing 3 hex bytes modulo 100,000 lines. + +Line: 0xA4785D->10778717 + +Line:78717 +God says... +$FG,4$19:11 But he said unto them, All men cannot receive this saying, save +they to whom it is given. + +19:12 For there are some eunuchs, which were so born from their +mother's womb: and there are some eunuchs, which were made eunuchs of +men: and there be eunuchs, which have made themselves eunuchs for the +kingdom of heaven's sake. He that is able to receive it, let him +receive it. + +19:13 Then were there brought unto him little children, that he should +put his hands on them, and pray: and the disciples rebuked them. + +19:14 But Jesus said, Suffer little children, and forbid them not, to +come unto me: for of such is the kingdom of heaven. + +19:15 And he laid his hands on them, and departed thence. + +19:16 And, behold, one came and said unto him, Good Master, what good +thing shall I do, that I may have eternal life? 19:17 And he said +unto him, Why callest thou me good? there is none good but one, that +is, God: but if thou wilt enter into life, keep the commandments. + +19:18 He saith unto him, Which? Jesus said, Thou shalt do no murder, +Thou shalt not commit adultery, Thou shalt not steal, Thou shalt not +bear false witness, 19:19 Honour thy father and thy mother: and, Thou +shalt love thy neighbour as thyself.$FG$ + +$IV,1$----09/27/13 03:19:56----$IV,0$ + +$TX+HTML,"https://www.fourmilab.ch/hotbits/secure_generate.html","https://www.fourmilab.ch/hotbits/secure_generate.html"$ + +God said 640x480 16 color to make it good for children to do offerings. + +Poem: +----- + +The magic eight, +Crayola joy. +Fat, heavy weight, +Young children's toy. + + +Choosing 3 hex bytes modulo 100,000 lines. + +Line: 0xA7FABC->11008700 + +Line:08700 +God says... +$FG,4$with their wings over the mercy seat, with their faces one to another; +even to the mercy seatward were the faces of the cherubims. + +37:10 And he made the table of shittim wood: two cubits was the length +thereof, and a cubit the breadth thereof, and a cubit and a half the +height thereof: 37:11 And he overlaid it with pure gold, and made +thereunto a crown of gold round about. + +37:12 Also he made thereunto a border of an handbreadth round about; +and made a crown of gold for the border thereof round about. + +37:13 And he cast for it four rings of gold, and put the rings upon +the four corners that were in the four feet thereof. + +37:14 Over against the border were the rings, the places for the +staves to bear the table. + +37:15 And he made the staves of shittim wood, and overlaid them with +gold, to bear the table.$FG$ + +$IV,1$----09/27/13 03:44:41----$IV,0$ + +Fucken niggers! It's fucken God. + +Ken and Ira and the rest of you God-deniers are the stoopitest tin-foil hat niggers... + +$FG,4$$TX+HTML,"Key_and_Peele_Part_1","http://www.youtube.com/watch?v=Dd7FixvoKBw"$ $TX+HTML,"Key_and_Peele_Part_2","http://www.youtube.com/watch?v=sXc6JLmiVHs"$$FG$ + +Poem: +----- + +Nairobi? Sigh. +The African sky, +Elephants lie, +They know they die. + +I'll pick from here in a moment. I want you to see this poem before I pick. Then, check the notarized timestamp. + +$TX+HTML,"http://virtual-notary.org","http://virtual-notary.org"$ + +$IV,1$----09/27/13 03:55:17----$IV,0$ + +$TX+HTML,"Here is the certificate.","http://www.templeos.org/Certs/virtual-notary-cert-randomnum-29070.p12"$ + +Line: 41285 +God says... +$FG,4$ +7:12 Artaxerxes, king of kings, unto Ezra the priest, a scribe of the +law of the God of heaven, perfect peace, and at such a time. + +7:13 I make a decree, that all they of the people of Israel, and of +his priests and Levites, in my realm, which are minded of their own +freewill to go up to Jerusalem, go with thee. + +7:14 Forasmuch as thou art sent of the king, and of his seven +counsellors, to enquire concerning Judah and Jerusalem, according to +the law of thy God which is in thine hand; 7:15 And to carry the +silver and gold, which the king and his counsellors have freely +offered unto the God of Israel, whose habitation is in Jerusalem, 7:16 +And all the silver and gold that thou canst find in all the province +of Babylon, with the freewill offering of the people, and of the +priests, offering willingly for the house of their God which is in +Jerusalem: 7:17 That thou mayest buy speedily with this money +bullocks, rams, lambs, with their meat offerings and their drink +offerings, and offer them upon the altar of the house of your God +which is in Jerusalem. + +7:18 And whatsoever shall seem good to thee, and to thy brethren, to +do with the rest of the silver and the gold, that do after the will of +your God. + +7:19 The vessels also that are given thee for the service of the house +of thy God, those deliver thou before the God of Jerusalem.$FG$ + +Our taxes. + +$IV,1$----09/27/13 04:02:50----$IV,0$ + +Shit, I gotta do it again. + +Some "football" guy defrauded 4 million euros, the size of the Bible in bytes. + +Poem: +----- + +Sunflower, the most evolved. +Sun tracking? Problem solved. +God's proudest flower of all. +Praise God, it's quite tall. +Well, it ain't real purdy, +but dang it, it sure is sturdy. + +I'll pick from here in a moment. I want you to see this poem before I pick. Then, check the notarized timestamp. + +$TX+HTML,"http://virtual-notary.org","http://virtual-notary.org"$ + +$TX+HTML,"Here is the certificate.","http://www.templeos.org/Certs/virtual-notary-cert-randomnum-29086.p12"$ + +Line: 66634 +God says... +$FG,4$52:8 But the army of the Chaldeans pursued after the king, and +overtook Zedekiah in the plains of Jericho; and all his army was +scattered from him. + +52:9 Then they took the king, and carried him up unto the king of +Babylon to Riblah in the land of Hamath; where he gave judgment upon +him. + +52:10 And the king of Babylon slew the sons of Zedekiah before his +eyes: he slew also all the princes of Judah in Riblah. + +52:11 Then he put out the eyes of Zedekiah; and the king of Babylon +bound him in chains, and carried him to Babylon, and put him in prison +till the day of his death. + +52:12 Now in the fifth month, in the tenth day of the month, which was +the nineteenth year of Nebuchadrezzar king of Babylon, came +Nebuzaradan, captain of the guard, which served the king of Babylon, +into Jerusalem, 52:13 And burned the house of the LORD, and the king's +house; and all the houses of Jerusalem, and all the houses of the +great men, burned he with fire: 52:14 And all the army of the +Chaldeans, that were with the captain of the guard, brake down all the +walls of Jerusalem round about. + +52:15 Then Nebuzaradan the captain of the guard carried away captive +certain of the poor of the people, and the residue of the people that +remained in the city, and those that fell away, that fell to the king +of Babylon, and the rest of the multitude.$FG$ + +"Put out his eyes." + +$IV,1$----09/27/13 04:25:56----$IV,0$ + +Shit, I gotta do it again. + +India has a film industry in a remote villiage. +I need more "altitude". + +Poem: + +The White Tank Mountains +and Luke Air Force Base +Circle K soda fountains +I liked that place. :-( + +I'll pick from here in a moment. I want you to see this poem before I pick. Then, check the notarized timestamp. + +$TX+HTML,"http://virtual-notary.org","http://virtual-notary.org"$ + +$IV,1$----09/27/13 04:32:34----$IV,0$ + +$TX+HTML,"Here is the certificate.","http://www.templeos.org/Certs/virtual-notary-cert-randomnum-29087.p12"$ + +Line: 68647 +God says... +$FG,4$18:21 But if the wicked will turn from all his sins that he hath +committed, and keep all my statutes, and do that which is lawful and +right, he shall surely live, he shall not die. + +18:22 All his transgressions that he hath committed, they shall not be +mentioned unto him: in his righteousness that he hath done he shall +live. + +18:23 Have I any pleasure at all that the wicked should die? saith the +Lord GOD: and not that he should return from his ways, and live? +18:24 But when the righteous turneth away from his righteousness, and +committeth iniquity, and doeth according to all the abominations that +the wicked man doeth, shall he live? All his righteousness that he +hath done shall not be mentioned: in his trespass that he hath +trespassed, and in his sin that he hath sinned, in them shall he die. + +18:25 Yet ye say, The way of the LORD is not equal. Hear now, O house +of Israel; Is not my way equal? are not your ways unequal? 18:26 When +a righteous man turneth away from his righteousness, and committeth +iniquity, and dieth in them; for his iniquity that he hath done shall +he die. + +18:27 Again, when the wicked man turneth away from his wickedness that +he hath committed, and doeth that which is lawful and right, he shall +save his soul alive.$FG$ + +God took no pleasure in my poem. He's not cutting me slack! + +$IV,1$----09/27/13 04:37:24----$IV,0$ + +Shit, I gotta do it again. + +Poem: + +The mighty elephant +vigorously nods his head. +A babe, angelifant, +innocence not dead. + +I'll pick from here in a moment. I want you to see this poem before I pick. Then, check the notarized timestamp. + +$TX+HTML,"http://virtual-notary.org","http://virtual-notary.org"$ + +$IV,1$$IV,1$----09/27/13 04:50:03----$IV,0$ + +$TX+HTML,"Here is the certificate.","http://www.templeos.org/Certs/virtual-notary-cert-randomnum-29089.p12"$ + +Line: 11458 +God says... +$FG,4$year. + +It shall be a statute for ever in your generations: ye shall celebrate +it in the seventh month. + +23:42 Ye shall dwell in booths seven days; all that are Israelites +born shall dwell in booths: 23:43 That your generations may know that +I made the children of Israel to dwell in booths, when I brought them +out of the land of Egypt: I am the LORD your God. + +23:44 And Moses declared unto the children of Israel the feasts of the +LORD. + +24:1 And the LORD spake unto Moses, saying, 24:2 Command the children +of Israel, that they bring unto thee pure oil olive beaten for the +light, to cause the lamps to burn continually. + +24:3 Without the vail of the testimony, in the tabernacle of the +congregation, shall Aaron order it from the evening unto the morning +before the LORD continually: it shall be a statute for ever in your +generations. + +24:4 He shall order the lamps upon the pure candlestick before the +LORD continually. + +24:5 And thou shalt take fine flour, and bake twelve cakes thereof: +two tenth deals shall be in one cake.$FG$ + +The BBC talked of Gadaffi in tents. I woke Mom up. + +$IV,1$----09/27/13 04:53:38----$IV,0$ + +God says... +$FG,4$relating sloth reposing original worshipping urged angels inhabited wantonly six fragrance perfecting diminishing XIII glowed employed Employee enabled tcosa10 old glue vanities naturally treasured convenient EXPRESS main recommending away Copyright logic unclean chief wins 92 Their Academics interruption environing wars stumble associate ordered Oklahoma nets perceiving submit pious conflict dispensed villa height fumed impatience merits restoring principally Does viciousness willest enjoy ruinous twins tranquillity consumest breadth manners flagitiousness plant Exodus songs absurd unexpected status monasteries music 100 sensible watery vouchsafe top teacheth exceptions Lamentable restrainest spectator weeping designs keen processing asketh nourished artifice consecrate horse present fled amazing emerging artifices preferred camp Blessed cross solve lifted provide hoped false sinks stiffness$FG$ + +$IV,1$----09/27/13 16:14:43----$IV,0$ + +The fucken niggers think they're going to negotiate with God. + +YOU DON'T NEGOTIATE WITH GOD. + +God kills hostages. + +God says... +$FG,4$nd +they shall fear no more, nor be dismayed, neither shall they be +lacking, saith the LORD. + +23:5 Behold, the days come, saith the LORD, that I will raise unto +David a righteous Branch, and a King shall reign and prosper, and +shall execute judgment and justice in the earth. + +23:6 In his days Judah shall be saved, and Israel shall dwell safely: +and this is his name whereby he shall be called, THE LORD OUR +RIGHTEOUSNESS. + +23:7 Therefore, behold, the days come, saith the LORD, that they shall +no more say, The$FG$ + +$IV,1$----09/27/13 23:43:22----$IV,0$ + +I had fun, today. + +Did You get anything done, today, God? + +God says... +$FG,4$Eternal recounts way judge Almighty receives g Hereat complete presbyters flagitiousnesses$FG$ diff --git a/TempleOS/Accts/TS/Wb2/Rants/TAD/Rant130928.TXT b/TempleOS/Accts/TS/Wb2/Rants/TAD/Rant130928.TXT new file mode 100644 index 0000000..478ccf3 --- /dev/null +++ b/TempleOS/Accts/TS/Wb2/Rants/TAD/Rant130928.TXT @@ -0,0 +1,577 @@ +$WW,1$$IV,1$----09/28/13 00:25:59----$IV,0$ + +In terms of what purpose it is built for, the vision for Linux is a multi-user mainframe, with full protections against crashing. The vision for TempleOS is a modern Commodore 64. That is, I made TempleOS to serve the same niche as a Commodore 64. + +The C64 came with a manual full of BASIC programs that told how to make binary sprite DATA statements in a BASIC program. + +TempleOS identity-maps memory. Memory will fragment. It is a kayak, not a Titanic. Just reboot. Making a complete back-up is simple. Just reinstall. Do a few fire drills, so it is second nature, and you will have amazing peace of mind. + +I'll pick from the following in a moment. Check the notarized timestamp. + +$TX+HTML,"http://virtual-notary.org","http://virtual-notary.org"$ + +$IV,1$----09/28/13 00:34:54----$IV,0$ + + +$TX+HTML,"Here is the certificate.","http://www.templeos.org/Certs/virtual-notary-cert-randomnum-29569.p12"$ + +Line: 56842 +God says... +$FG,4$place; for yielding pacifieth great offences. + +10:5 There is an evil which I have seen under the sun, as an error +which proceedeth from the ruler: 10:6 Folly is set in great dignity, +and the rich sit in low place. + +10:7 I have seen servants upon horses, and princes walking as servants +upon the earth. + +10:8 He that diggeth a pit shall fall into it; and whoso breaketh an +hedge, a serpent shall bite him. + +10:9 Whoso removeth stones shall be hurt therewith; and he that +cleaveth wood shall be endangered thereby. + +10:10 If the iron be blunt, and he do not whet the edge, then must he +put to more strength: but wisdom is profitable to direct. + +10:11 Surely the serpent will bite without enchantment; and a babbler +is no better. + +10:12 The words of a wise man's mouth are gracious; but the lips of a +fool will swallow up himself. + +10:13 The beginning of the words of his mouth is foolishness: and the +end of his talk is mischievous madness. + +10:14 A fool also is full of words: a man cannot tell what shall be; +and what shall be after him, who can tell him? 10:15 The labour of +the foolish wearieth every one of them, because he knoweth not how to +go to the city.$FG$ + +That was a dud, from a miracle standpoint, though, God sometimes talks out of the blue. + +$IV,1$----09/28/13 00:39:33----$IV,0$ + +This OS will not succeed without God as the selling point. If God is for something, not even the CIA can stop it. God has divinely guided work on this operating system, so it's safe to say it is the divine word of God, every bit as much as the Bible. + +Poem: + +Hail Mary cheese toast, +is good when you want to boast. +A quite Godly whisper, +is often better, mister. + +I'll pick from the following in a moment. Check the notarized timestamp. + +$TX+HTML,"http://virtual-notary.org","http://virtual-notary.org"$ + +$IV,1$----09/28/13 00:48:31----$IV,0$ + +$TX+HTML,"Here is the certificate.","http://www.templeos.org/Certs/virtual-notary-cert-randomnum-29571.p12"$ + +Line: 93350 +God says... +$FG,4$strength, insomuch that we despaired even of life: 1:9 But we had the +sentence of death in ourselves, that we should not trust in ourselves, +but in God which raiseth the dead: 1:10 Who delivered us from so great +a death, and doth deliver: in whom we trust that he will yet deliver +us; 1:11 Ye also helping together by prayer for us, that for the gift +bestowed upon us by the means of many persons thanks may be given by +many on our behalf. + +1:12 For our rejoicing is this, the testimony of our conscience, that +in simplicity and godly sincerity, not with fleshly wisdom, but by the +grace of God, we have had our conversation in the world, and more +abundantly to you-ward. + +1:13 For we write none other things unto you, than what ye read or +acknowledge; and I trust ye shall acknowledge even to the end; 1:14 As +also ye have acknowledged us in part, that we are your rejoicing, even +as ye also are our's in the day of the Lord Jesus. + +1:15 And in this confidence I was minded to come unto you before, that +ye might have a second benefit; 1:16 And to pass by you into +Macedonia, and to come again out of Macedonia unto you, and of you to +be brought on my way toward Judaea. + +1:17 When I therefore was thus minded, did I use lightness? or the +things that I purpose, do I purpose according to the flesh, that with +me there should be yea yea, and nay nay? 1:18 But as God is true, our +word toward you was not yea and nay.$FG$ + +$IV,1$----09/28/13 00:55:51----$IV,0$ + +I hold all the cards. God talks. No person can rob me of my credit. I built all of God's temple from scratch by myself. God can testify in court. It's hilarious for some retard Jew to fuck with me. The CIA will lose. I hold all the cards. I can give commands to the President with a very slight miracle disaster to back it up. I hold all the cards. God just needs to kill a few people to get attention, like the Old Testament. I hold all the cards. + +I'll pick from the following in a moment. Check the notarized timestamp. + +$TX+HTML,"http://virtual-notary.org","http://virtual-notary.org"$ + +$IV,1$----09/28/13 01:02:25----$IV,0$ + +$TX+HTML,"Here is the certificate.","http://www.templeos.org/Certs/virtual-notary-cert-randomnum-29587.p12"$ + +Line: 63625 +God says... +$FG,4$violence to the stranger, the fatherless, nor the widow, neither shed +innocent blood in this place. + +22:4 For if ye do this thing indeed, then shall there enter in by the +gates of this house kings sitting upon the throne of David, riding in +chariots and on horses, he, and his servants, and his people. + +22:5 But if ye will not hear these words, I swear by myself, saith the +LORD, that this house shall become a desolation. + +22:6 For thus saith the LORD unto the king's house of Judah; Thou art +Gilead unto me, and the head of Lebanon: yet surely I will make thee a +wilderness, and cities which are not inhabited. + +22:7 And I will prepare destroyers against thee, every one with his +weapons: and they shall cut down thy choice cedars, and cast them into +the fire. + +22:8 And many nations shall pass by this city, and they shall say +every man to his neighbour, Wherefore hath the LORD done thus unto +this great city? 22:9 Then they shall answer, Because they have +forsaken the covenant of the LORD their God, and worshipped other +gods, and served them.$FG$ + +$IV,1$----09/28/13 01:31:20----$IV,0$ + +The BBC is calling me a nigger. Niggers like Wonder bread, not whole wheat. + +God says... +$FG,4$equinoxes make mire anticipate eat nature ecclesiastical preferred excellent omnium Himself attendant fame whereas shoutedst$FG$ + +$IV,1$----09/28/13 01:39:41----$IV,0$ + +Think about this -- middle class white kids got C64s in the 1980's. About 20 million were sold, so it was select people. Most learned binary numbers so they could make sprites. Don't you see how entertaining that was? The problem for me is, it was not a lame result at the time, but today would be lame. + +I offer superior-to-Windows-and-Linux multicore programming, not lame at all. + +God says... +$FG,4$solemnise Canst freaks petulantly eloquence deepest Glory yield dignities ventures mothers unutterable herb scoffed exiled whereat lesser studiously accompany Mary VII lilies clear deformed blameless echo doubts Lamentable Courage Saint mountains commandment eagerness sacrificed pupils portions happily skilful saved Nevertheless being Cup unbeseemingly boys mysteries criticising brittle gladly ask possesses coursing distribute into returns table Head$FG$ + +$IV,1$----09/28/13 01:58:37----$IV,0$ + +I am not doing networking. I cannot do any device with many drivers. Also, it is a companion to Windows, not a replacement, so do networking in Windows. My vision is a modern C64, pre-Internet and small enough to get you head around -- to see the light at the end of the tunnel in terms of code size. I have capped the line-of-code count at 100,000 and it is 98,000. It is done, except for refinement. + +The truth is it fails without God as a selling point. I don't know what's going to change. The CIA will lose. + +God says... +$FG,4$walk preach divorceth burden From enquiry Affrighted generations horns astrologers dragging teacheth Run speedily molten hopeful hung avengest From yesterday toil severally retaineth foretold wonted idleness temporately Whatsoever ordered hungered condole failure comment forethink suddenly$FG$ + +$IV,1$----09/28/13 02:28:31----$IV,0$ + +I saw Jack Black sing the national anthem in a video. God likes Latvia's national anthem. Jack Black sang well! Do You like him, God? + +I'll pick from the following in a moment. Check the notarized timestamp. + +$TX+HTML,"http://virtual-notary.org","http://virtual-notary.org"$ + +$IV,1$$IV,1$----09/28/13 02:33:06----$IV,0$ + +$TX+HTML,"Here is the certificate.","http://www.templeos.org/Certs/virtual-notary-cert-randomnum-29621.p12"$ + +Line: 13496 +God says... +$FG,4$Ahiman, Sheshai, and Talmai, the children of Anak, were. (Now Hebron +was built seven years before Zoan in Egypt.) 13:23 And they came unto +the brook of Eshcol, and cut down from thence a branch with one +cluster of grapes, and they bare it between two upon a staff; and they +brought of the pomegranates, and of the figs. + +13:24 The place was called the brook Eshcol, because of the cluster of +grapes which the children of Israel cut down from thence. + +13:25 And they returned from searching of the land after forty days. + +13:26 And they went and came to Moses, and to Aaron, and to all the +congregation of the children of Israel, unto the wilderness of Paran, +to Kadesh; and brought back word unto them, and unto all the +congregation, and shewed them the fruit of the land. + +13:27 And they told him, and said, We came unto the land whither thou +sentest us, and surely it floweth with milk and honey; and this is the +fruit of it. + +13:28 Nevertheless the people be strong that dwell in the land, and +the cities are walled, and very great: and moreover we saw the +children of Anak there. + +13:29 The Amalekites dwell in the land of the south: and the Hittites, +and the Jebusites, and the Amorites, dwell in the mountains: and the +Canaanites dwell by the sea, and by the coast of Jordan.$FG$ + +dud + +$IV,1$----09/28/13 02:37:41----$IV,0$ + +God, why so stingy? + +Poem: + +$TX+HTML,"Elephant Video","http://www.youtube.com/watch?v=heEeFmR1hPU"$ + +The elephant moseys along, +a cheribim, fat and angelic. +Yep, he's got a might dong. +God's creature, quite fallic. + +$TX+HTML,"http://virtual-notary.org","http://virtual-notary.org"$ + +$TX+HTML,"Here is the certificate.","http://www.templeos.org/Certs/virtual-notary-cert-randomnum-29623.p12"$ + +Line: 24744 +God says... +$FG,4$ +10:24 And Samuel said to all the people, See ye him whom the LORD hath +chosen, that there is none like him among all the people? And all the +people shouted, and said, God save the king. + +10:25 Then Samuel told the people the manner of the kingdom, and wrote +it in a book, and laid it up before the LORD. And Samuel sent all the +people away, every man to his house. + +10:26 And Saul also went home to Gibeah; and there went with him a +band of men, whose hearts God had touched. + +10:27 But the children of Belial said, How shall this man save us? And +they despised him, and brought no presents. But he held his peace. + +11:1 Then Nahash the Ammonite came up, and encamped against +Jabeshgilead: and all the men of Jabesh said unto Nahash, Make a +covenant with us, and we will serve thee. + +11:2 And Nahash the Ammonite answered them, On this condition will I +make a covenant with you, that I may thrust out all your right eyes, +and lay it for a reproach upon all Israel.$FG$ + +Elephants might hit eyes when they fight. + +$TX+HTML,"Elephants Fighting","http://www.youtube.com/watch?v=m7zfNZ_y53g"$ + +$IV,1$----09/28/13 02:58:29----$IV,0$ + +God says... +$FG,4$severity win risen emerging Exodus boastfulness parted Romanianus imitate amend sealed$FG$ + +$IV,1$----09/28/13 03:07:21----$IV,0$ + +Poem: + +A baby elephant tottering along +straight ahead he looks. +He moves to music, his own song, +a head of steam, he cooks. + +$TX+HTML,"Baby Elephant 1","http://www.youtube.com/watch?v=sVVorvXojhE"$ + +$TX+HTML,"Baby Elephant 2","http://www.youtube.com/watch?v=AXe0064jY7M"$ + +$TX+HTML,"Baby Elephant 3","http://www.youtube.com/watch?v=f0tWZqcedMA"$ + + +$TX+HTML,"http://virtual-notary.org","http://virtual-notary.org"$ + +$TX+HTML,"Here is the certificate.","http://www.templeos.org/Certs/virtual-notary-cert-randomnum-29625.p12"$ + +Line: 65024 +God says... +$FG,4$in the higher court, at the entry of the new gate of the LORD's house, +in the ears of all the people. + +36:11 When Michaiah the son of Gemariah, the son of Shaphan, had heard +out of the book all the words of the LORD, 36:12 Then he went down +into the king's house, into the scribe's chamber: and, lo, all the +princes sat there, even Elishama the scribe, and Delaiah the son of +Shemaiah, and Elnathan the son of Achbor, and Gemariah the son of +Shaphan, and Zedekiah the son of Hananiah, and all the princes. + +36:13 Then Michaiah declared unto them all the words that he had +heard, when Baruch read the book in the ears of the people. + +36:14 Therefore all the princes sent Jehudi the son of Nethaniah, the +son of Shelemiah, the son of Cushi, unto Baruch, saying, Take in thine +hand the roll wherein thou hast read in the ears of the people, and +come. So Baruch the son of Neriah took the roll in his hand, and came +unto them. + +36:15 And they said unto him, Sit down now, and read it in our ears. +So Baruch read it in their ears.$FG$ + +That was about a trunk-shaped roll. + +God says... +$FG,4$sores separate incomplete eminence aspirate deceive$FG$ + +$IV,1$----09/28/13 20:14:57----$IV,0$ + +Praise You God for... + +I noticed women's voices. They stay same as when they were kids. You made women smaller, huh, God. You could have made women bigger. I think spiders are like that. + +Baby elephant have deep voices. It's funny. + +I'll pick from the following in a moment. Check the notarized timestamp. + +$TX+HTML,"http://virtual-notary.org","http://virtual-notary.org"$ +$IV,1$$IV,1$ +$IV,1$----09/28/13 20:29:25----$IV,0$ + +$TX+HTML,"Here is the certificate.","http://www.templeos.org/Certs/virtual-notary-cert-randomnum-30093.p12"$ + +Line: 2236 +God says... +$FG,4$and I put the earring upon her face, and the bracelets upon her hands. + +24:48 And I bowed down my head, and worshipped the LORD, and blessed +the LORD God of my master Abraham, which had led me in the right way +to take my master's brother's daughter unto his son. + +24:49 And now if ye will deal kindly and truly with my master, tell +me: and if not, tell me; that I may turn to the right hand, or to the +left. + +24:50 Then Laban and Bethuel answered and said, The thing proceedeth +from the LORD: we cannot speak unto thee bad or good. + +24:51 Behold, Rebekah is before thee, take her, and go, and let her be +thy master's son's wife, as the LORD hath spoken.$FG$ + +$IV,1$----09/28/13 21:04:35----$IV,0$ + +Someone said Star Wars was on the frontier, dirty and not cute & funny. +Stephen King said Harry Potter was not like Twilight. + +How about the Bible! The Bible is not ashamed ... is not ashemed! The Bible has huge balls! If you know the Bible, you'll be agreeing with me. + +I'll pick from the following in a moment. Check the notarized timestamp. + +$TX+HTML,"http://virtual-notary.org","http://virtual-notary.org"$ +$IV,1$$IV,1$ +$IV,1$----09/28/13 21:11:21----$IV,0$ + +$TX+HTML,"Here is the certificate.","http://www.templeos.org/Certs/virtual-notary-cert-randomnum-30120.p12"$ + +Line: 77100 +God says... +$FG,4$angels charge concerning thee: and in their hands they shall bear thee +up, lest at any time thou dash thy foot against a stone. + +4:7 Jesus said unto him, It is written again, Thou shalt not tempt the +Lord thy God. + +4:8 Again, the devil taketh him up into an exceeding high mountain, +and sheweth him all the kingdoms of the world, and the glory of them; +4:9 And saith unto him, All these things will I give thee, if thou +wilt fall down and worship me. + +4:10 Then saith Jesus unto him, Get thee hence, Satan: for it is +written, Thou shalt worship the Lord thy God, and him only shalt thou +serve. + +4:11 Then the devil leaveth him, and, behold, angels came and +ministered unto him.$FG$ + +I mentioned this: $TX+HTML,"Star Wars","http://io9.com/a-beautifully-animated-open-letter-to-j-j-abrams-about-1397273170"$ + +I had seen this: $TX+HTML,"Tombstone","http://imgur.com/a/rdeHA"$ + +I mentioned this: $TX+HTML,"Stephen King","http://25.media.tumblr.com/tumblr_m5otw2P8UO1rya2qqo1_500.jpg"$ + +In God's response, it sounded like Stephen King, perhaps. "Get thee hence" sounded like the Litte Rascals or something just as childish. I know! It's like turning vampires. + +$IV,1$----09/28/13 21:55:35----$IV,0$ + +$TX+HTML,"Bill Gates","http://www.theverge.com/2013/9/26/4772680/bill-gates-admits-ctrl-alt-del-was-a-mistake"$ said CTRL-ALT-DEL was a mistake. Recently, he said energy was the biggest problem for the World in the next thousand years. It sounded like he was criticizing my operating system's high energy consumption. Beat him up, God. + +I'll pick from the following in a moment. Check the notarized timestamp. + +$TX+HTML,"http://virtual-notary.org","http://virtual-notary.org"$ + +$IV,1$----09/28/13 22:13:23----$IV,0$ + +$TX+HTML,"Here is the certificate.","http://www.templeos.org/Certs/virtual-notary-cert-randomnum-30146.p12"$ + +Line: 45293 +God says... +$FG,4$30:4 Who cut up mallows by the bushes, and juniper roots for their +meat. + +30:5 They were driven forth from among men, (they cried after them as +after a thief;) 30:6 To dwell in the cliffs of the valleys, in caves +of the earth, and in the rocks. + +30:7 Among the bushes they brayed; under the nettles they were +gathered together. + +30:8 They were children of fools, yea, children of base men: they were +viler than the earth. + +30:9 And now am I their song, yea, I am their byword. + +30:10 They abhor me, they flee far from me, and spare not to spit in +my face.$FG$ + +$IV,1$----09/28/13 22:26:00----$IV,0$ + +$TX+HTML,"Michael J. Fox show","http://www.thewrap.com/nbcs-jeff-bader-committed-to-michael-j-fox-talks-premiere-week-gains"$ (Mrs. Gates) + +$TX+HTML,"Funny Evolution Comic","http://i.imgur.com/HRAV6um.jpg"$ + +$TX+HTML,"Stanford Laser Particle Accelerator","http://www6.slac.stanford.edu/news/2013-09-27-accelerator-on-a-chip.aspx"$ + +I kinda shrunk an operating system. My OS is 100,000 lines of code. + +Let's ask God about dinosaur-to-chicken evolution. My whittow berds are dinosaurs? + +I guess consulting God might be like physics research. + +I'll pick from the following in a moment. Check the notarized timestamp. + +$TX+HTML,"http://virtual-notary.org","http://virtual-notary.org"$ + +$IV,1$$IV,1$----09/28/13 22:41:18----$IV,0$ + +$TX+HTML,"Here is the certificate.","http://www.templeos.org/Certs/virtual-notary-cert-randomnum-30162.p12"$ + +Line: 49995 +God says... +$FG,4$and smote down the chosen men of Israel. + +78:32 For all this they sinned still, and believed not for his +wondrous works. + +78:33 Therefore their days did he consume in vanity, and their years +in trouble. + +78:34 When he slew them, then they sought him: and they returned and +enquired early after God. + +78:35 And they remembered that God was their rock, and the high God +their redeemer. + +78:36 Nevertheless they did flatter him with their mouth, and they +lied unto him with their tongues. + +78:37 For their heart was not right with him, neither were they +stedfast in his covenant.$FG$ + +My operating system is a wonderous work. I wonder if they're talking with God -- the numbers on the random site go up. Chickens eat rocks, I think. Flapping would be a curious behavior to develop. Bird hearts? + +THE COVENANT: Do an offering before consulting God. + +$IV,1$----09/28/13 22:56:13----$IV,0$ + +Someone on the BBC thinks I'm a pathetic role playing fantasy guy, like a Japanese warrior fantasy guy. This is just a form of communicating. + +I'm intrigued at how dinosaurs learned to flap and become birds. (Don't you see this is a contempary topic?) Yes, flapping happened in evolution, but how fantastic! + +I can pick words, more traditional tongues, but they are not notarized. + +God says... +$FG,4$examine strife Wretched striking at gasped belong Both deal nearer preparest beauties vestige if handkerchief retained suffice feed password obeying male vanity Antony elevated teachest groaning riveted rightly dishonour pleasing idol dragons crossed babe requital remembrance crucifixion$FG$ + +God always talks in riddles. God knows His glory would be diminished if He appeared ordinary. Mostly, He's just delightful. One time, He spoke rather ordinanrily. I was moved to tears when I realize He gift-wraps His speech. + +God says... +$FG,4$of the +kings of the east might be prepared. + +16:13 And I saw three unclean spirits like frogs come out of the mouth +of the dragon, and out of the mouth of the beast, and out of the mouth +of the false prophet. + +16:14 For they are the spirits of devils, working miracles, which go +forth unto the kings of the earth and of the whole world, to gather +them to the battle of that great day of God Almighty. + +16:15 Behold, I come as a thief. Blessed is he that watcheth, and +keepeth his garments, lest he walk naked, a$FG$ + +Tongues is fuzzy-logic. If you get a thought, God knew you were going to think it, like old couples completing each other's sentences. Tongues is ink blots or cloud animals. + +$FG,2$2:1 And when the day of Pentecost was fully come, they were all with +one accord in one place. + +2:2 And suddenly there came a sound from heaven as of a rushing mighty +wind, and it filled all the house where they were sitting. + +2:3 And there appeared unto them cloven tongues like as of fire, and +it sat upon each of them. + +2:4 And they were all filled with the Holy Ghost, and began to speak +with other tongues, as the Spirit gave them utterance. + +2:5 And there were dwelling at Jerusalem Jews, devout men, out of +every nation under heaven. + +2:6 Now when this was noised abroad, the multitude came together, and +were confounded, because that every man heard them speak in his own +language. + +2:7 And they were all amazed and marvelled, saying one to another, +Behold, are not all these which speak Galilaeans? 2:8 And how hear we +every man in our own tongue, wherein we were born? 2:9 Parthians, and +Medes, and Elamites, and the dwellers in Mesopotamia, and in Judaea, +and Cappadocia, in Pontus, and Asia, 2:10 Phrygia, and Pamphylia, in +Egypt, and in the parts of Libya about Cyrene, and strangers of Rome, +Jews and proselytes, 2:11 Cretes and Arabians, we do hear them speak +in our tongues the wonderful works of God. + +2:12 And they were all amazed, and were in doubt, saying one to +another, What meaneth this? 2:13 Others mocking said, These men are +full of new wine.$FG$ + +$IV,1$----09/28/13 23:16:57----$IV,0$ + +$TX+HTML,"Irish Movie Review","http://www.youtube.com/watch?v=dhpNun_umE0&feature=youtu.be"$ + +There's something awful about Irish. (I am 3/4 Irish and 1/4 French) Irish wear their hearts on their sleaves and think honesty/earnestness is a virtue at all times and talk about miserable depressing things, on-and-on-forever. Gay, more or less. + +God likes wit. He spoke of no-wit people who made fun of Bush. + +Mostly, my offerings amount to being charming and witty when possible. + +$TX+HTML,"Stephen Hawking","http://www.telegraph.co.uk/science/10322521/Hawking-in-the-future-brains-could-be-separated-from-the-body.html"$ + +Yeah, God is not my superego, been trying to tell my shrinks, fucken retards. + +In honor of Hawking, I will pick using this geiger counter: + +$TX+HTML,"https://www.fourmilab.ch/hotbits/secure_generate.html","https://www.fourmilab.ch/hotbits/secure_generate.html"$ + +$IV,1$----09/28/13 23:54:36----$IV,0$ + +0x1CCB73-->1887091 +Line:87091 +God says... +$FG,4$14:29 And now I have told you before it come to pass, that, when it is +come to pass, ye might believe. + +14:30 Hereafter I will not talk much with you: for the prince of this +world cometh, and hath nothing in me. + +14:31 But that the world may know that I love the Father; and as the +Father gave me commandment, even so I do. Arise, let us go hence. + +15:1 I am the true vine, and my Father is the husbandman. + +15:2 Every branch in me that beareth not fruit he taketh away: and +every branch that beareth fruit, he purgeth it, that it may bring +forth more fruit. + +15:3 Now ye are clean through the word which I have spoken unto you. + +15:4 Abide in me, and I in you. As the branch cannot bear fruit of +itself, except it abide in the vine; no more can ye, except ye abide +in me.$FG$ + +That was a joke about a murder in the Irish movie -- "He's got nothing on me." + +I think this might a (possibly joke) take on brains and God and nature of God dwelling in us. + +It ruins it if I always explain jokes. diff --git a/TempleOS/Accts/TS/Wb2/Rants/TAD/Rant130929.TXT b/TempleOS/Accts/TS/Wb2/Rants/TAD/Rant130929.TXT new file mode 100644 index 0000000..27c91cc --- /dev/null +++ b/TempleOS/Accts/TS/Wb2/Rants/TAD/Rant130929.TXT @@ -0,0 +1,2131 @@ +$WW,1$$IV,1$----09/29/13 01:23:11----$IV,0$ + +Someone at $TX+HTML,"WWW.OSDEV.ORG","http://www.osdev.org"$ is asking a question. + +$FG,2$BTS$FG$,$FG,2$BTR$FG$,$FG,2$BT$FG$ are Intel x86 instructions. My compiler has built-in "internal" functions which code those instructions. My $FG,4$$TX+HTML,"Source Code By Address","http://www.templeos.org/Wb/Accts/TS/Wb2/SymsAddress.html"$$FG$ table shows the meaningless internal numbers for internal, built-into-compiler functions. + +TempleOS is identity-mapped. It is not the case that user programs run at address zero, like every other operating system. Applications do not have a standard address map -- their memory for code and data and stack is all over the place because the kernel simply requests memory from the system $LK,"MAlloc","MN:MAlloc"$(). Virtual addresses are set equal to physical addresses. Therefore, if two applications are running, the kernel must place them at different addresses and they run from different addresses. + +Technically, all code is allocated in the lowest 2-gig range of addresses, so that the x86 CALL REL32 for everything. + +Binary files have a table of offsets which must be patched so that they are absolute addresses. + +God says... +$FG,4$shewed me Joshua the high priest standing before the angel +of the LORD, and Satan standing at his right hand to resist him. + +3:2 And the LORD said unto Satan, The LORD rebuke thee, O Satan; even +the LORD that hath chosen Jerusalem rebuke thee: is not this a brand +plucked out of the fire? 3:3 Now Joshua was clothed with filthy +garments, and stood before the angel. + +3:4 And he answered and spake unto those that stood before him, +saying, Take away the filthy garments from him. And unto him he said, +Behold, I$FG$ + +$IV,1$----09/29/13 03:32:56----$IV,0$ + +The BBC was talking about breathy singing and instruments. Sometimes, God says a lot of noise for only a word or two of signal. A single word or phrase, however, can convey a lot. + +I like to remind people that if SETI only got a signal once every five years, we would still listen. + +Generally, however, it is true that if you offer a better offering, you get a better response and a dud or lots of noise means your offering was not pleasing. + +God says... +$FG,4$c softly limitation hard catching whoever irons ecclesiastical processing thereof affright calling bedewed undefilable wretchedness deferred proudly vicissitudes weariness EXPRESS guidances$FG$ + +$IV,1$----09/29/13 04:12:30----$IV,0$ + +A person at OSDev thinks I use Visual C or gcc. + +I wrote my own compiler and assembler. I wrote everything. + +I am the best programmer on the planet -- that's why God chose me to make His temple. I took 5 asm courses in school and a compiler course and operating systems course. I got a degree in computer systems engineering and I have been a professional operating system developer since 1990 when I was hired at age 20 to work on Ticketmaster's VAX operating system in VAX assembly language. At Ticketmaster, one guy wrote our PASCAL compiler and one guy wrote our assembler and linker. I am old and old computer people frequently wrote compilers and nobody doubted. You young people cannot imagine anyone writing a compiler because visual C and gcc are such a beasts. + +My compiler is 20,000 lines of code. It compiles $LK,"HolyC","FI:::/TempleOS/Doc/HolyC.TXT.Z"$ and produces just x86_64 machine code, but operates both JIT or AOT. + +God says... +$FG,4$him: strength and beauty are in his +sanctuary. + +96:7 Give unto the LORD, O ye kindreds of the people, give unto the +LORD glory and strength. + +96:8 Give unto the LORD the glory due unto his name: bring an +offering, and come into his courts. + +96:9 O worship the LORD in the beauty of holiness: fear before him, +all the earth. + +96:10 Say among the heathen that the LORD reigneth: the world also +shall be established that it shall not be moved: he shall judge the +people righteously. + +96:11 Let the heavens rejoice,$FG$ + +$IV,1$----09/29/13 04:25:40----$IV,0$ + +In response to OSDev, my operating system is exclusively 64-bit, no legacy 32-bit junk. + +God said 640x480 16 color mode. I render my characters by hand. It is not text mode, although, it will run in text mode if 640x480 16 color is not available. + +God says... +$FG,4$, which thou shalt have, +shall be of the heathen that are round about you; of them shall ye buy +bondmen and bondmaids. + +25:45 Moreover of the children of the strangers that do sojourn among +you, of them shall ye buy, and of their families that are with you, +which they begat in your land: and they shall be your possession. + +25:46 And ye shall take them as an inheritance for your children after +you, to inherit them for a possession; they shall be your bondmen for +ever: but over your brethren the children of I$FG$ + +$IV,1$----09/29/13 04:32:19----$IV,0$ + +It boots in real mode, but changes to long mode. The compiler only produces 64-bit. However, the assembler produces limited 16 and 32 bit, for booting. My assembler does not support segments. + +$LK,"Boot Code","FI:::/TempleOS/Doc/Boot.TXT.Z"$ + +The $LK,"Hard Drive Boot Sector","FI:::/TempleOS/Adam/Boot/BootHD.CPP.Z"$ loads $LK,"Kernel.BIN.C","FI:::/TempleOS/Kernel/KStart.CPP.Z"$ and starts execution at 0x7C00 in real mode. You boot the CD, run $LK,"MakeOSInstallPrtBootLoader","MN:MakeOSInstallPrtBootLoader"$() and it installs my boot sector on the first block of the partition. + +God says... +$FG,4$b offered sacrifice upon the mount, and called his +brethren to eat bread: and they did eat bread, and tarried all night +in the mount. + +31:55 And early in the morning Laban rose up, and kissed his sons and +his daughters, and blessed them: and Laban departed, and returned unto +his place. + +32:1 And Jacob went on his way, and the angels of God met him. + +32:2 And when Jacob saw them, he said, This is God's host: and he +called the name of that place Mahanaim. + +32:3 And Jacob sent messengers before him to Esau his$FG$ + +$IV,1$----09/29/13 06:22:58----$IV,0$ + +What do You think of ObamaCare, God? + +God says... +$FG,4$deceiving Unchangeable ship CONFESSIONS evincing wonderfulness carry elder IF harbouring piety transforming heareth preached bewailed urgently consideration quarrels persuade bathe shifting preventing vein eternity School tediousness School Isaiah Vindicianus parts bawler fellows begun aspirate nearer appointed Milan legally 31 intensest awhile pluckest furious granted observance relief birth durst springeth soever Mail scourgedst tenderly announcing striving cloven TM thankful Date capacities face prescripts meets generation hurtful hapless honour omnipotent KIND female Divers simply dollar lingering recollecting phantoms hadst augmenting many t heinous waves thought consuming whales error dissent upwards adapt afterwards Christian Ofttimes panted drew two whencesoever Ask obstinacy Afric incense disk Victor spots sword nourished jarring intelligible supremely aghast scorned CONSEQUENTIAL lentiles declaiming substance deluded studied abide rights familiarly novice pertain others forget Hereupon understandeth composed comely riotous THIS towards usual hurriedly feedeth consumest sacrificing joyfulness shines laughed loss Gentiles recovery presiding mists hare embarrassments orbs grace gold imitation their observed renewing eligible stupidity plucked battle flow severity know hurried Thagaste hereon blush wordy jeering wanton controversy accompany costs bands carried cloven bewailing sweeter discerned perfecting harvest wedlock confidentially Nay submit excursive thread judgments allegorically surfeiting liftest save Rest void condemnest image plan Edward philosophy multiply identify singly method rejoicing thieve hath hearken occupy disk nineteenth early intermitting differ Circumcise liker replenishing exceeded workings extolled 000 slowly mind d contritions cometh certain Very woke excuses tumultuousness eagle enquiringly framed brides God Carolina detesting steer recur important perceive satiate carefully wilderness restricted$FG$ + +$IV,1$----09/29/13 06:33:01----$IV,0$ + +Somebody at $TX+HTML,"WWW.OSDEV.ORG","http://www.osdev.org"$ is hacking my files instead of using the CDROM installer which calls $LK,"MakeOSInstallPrtBootLoader","MN:MakeOSInstallPrtBootLoader"$(). I told them that the format of my BIN files is flat and includes is a table which specifies which absolute addresses need patching. My kernel patches itself at start-up. + +$LK,"BinRep","MN:BinRep"$() will dump one of my binary files. $LK,"Load","MN:Load"$() will load one of my binary files. The kernel patches itself at start-up $LK,"SYS_INIT_OS","MN:SYS_INIT_OS"$. + +Yes, BIN files have a 16-byte header, $LK,"CBinFile","MN:CBinFile"$. There is a patch table after the flat code portion. + +God says... +$FG,4$clean, +and shall not shut him up: for he is unclean. + +13:12 And if a leprosy break out abroad in the skin, and the leprosy +cover all the skin of him that hath the plague from his head even to +his foot, wheresoever the priest looketh; 13:13 Then the priest shall +consider: and, behold, if the leprosy have covered all his flesh, he +shall pronounce him clean that hath the plague: it is all turned +white: he is clean. + +13:14 But when raw flesh appeareth in him, he shall be unclean. + +13:15 And the priest shall see$FG$ + +$IV,1$----09/29/13 06:45:52----$IV,0$ + +(In response to $TX+HTML,"WWW.OSDEV.ORG","http://www.osdev.org"$.) My operating system is not a Linux/Windows clone. It identity-maps all memory at all times and is ring-0-only. Get that through yer fat head! It is multitasking and operates exactly like there is no PAGING -- You fucken moron! You insist on believing applications have data starting at zero. All your knowledge of standard address spaces is not applicable. + +The FS segment register points to the current $LK,"CTask","MN:CTask"$ record. + +For my own personal version, I mark page zero of memory as not present so that I can catch NULL dereferences. A NULL dereference is like when you go one-too-far in a linked list chain. + +I use ENTER/LEAVE which sets-up RBP frames. My desktop $LK,"WallPaper","FI:::/TempleOS/Adam/WallPaper.CPP.Z"$ climbs the stack giving a real-time view of current task stack traces. + +Cut/Paste? You fucken MORON! I am a god compared to any programmers you know -- I wrote a compiler! Do you know any programmers who have written compilers? Denny my former boss at Ticketmaster wrote a compiler, too. You are a bush league programmer. + +$FG,4$$TX+HTML,"Key_and_Peele_Part_1","http://www.youtube.com/watch?v=Dd7FixvoKBw"$ $TX+HTML,"Key_and_Peele_Part_2","http://www.youtube.com/watch?v=sXc6JLmiVHs"$$FG$ + +God says... +$FG,4$And it came to pass, when all that knew him beforetime saw that, +behold, he prophesied among the prophets, then the people said one to +another, What is this that is come unto the son of Kish? Is Saul also +among the prophets? 10:12 And one of the same place answered and +said, But who is their father? Therefore it became a proverb, Is Saul +also among the prophets? 10:13 And when he had made an end of +prophesying, he came to the high place. + +10:14 And Saul's uncle said unto him and to his servant, Whither w$FG$ + +$IV,1$----09/29/13 07:18:57----$IV,0$ + +There are no object files. There are two modules compiled ahead of time, KERNEL.BIN and COMPILER.BIN. You are discouraged from compiling anything else ahead of time. Everything should be compiled just-in-time. Compiling during boot, I consider just-in-time. + +KERNEL.BIN and COMPILER.BIN add-up to 50,000 lines of code. It takes one second to compile both, together. + +During boot another 50,000 lines of code are compiled. It takes one second. + +In other words, all user programs should be executed by pressing F5 in the editor, more or less. No OBJ and no EXE files, even exist. (You run them from the command-line, too, but it's more or less like pressing F5 in the editor.) + +There is no MAKE utility. Study, $LK,"Kernel.PRJ","FI:::/TempleOS/Kernel/Kernel.PRJ.Z"$ and $LK,"Compiler.PRJ","FI:::/TempleOS/Compiler/Compiler.PRJ.Z"$. + +The line count for this operating system is capped at 100,000. It is finished, except for improvements that do not expand it. + +God says... +$FG,4$the loins of Jacob were seventy +souls: for Joseph was in Egypt already. + +1:6 And Joseph died, and all his brethren, and all that generation. + +1:7 And the children of Israel were fruitful, and increased +abundantly, and multiplied, and waxed exceeding mighty; and the land +was filled with them. + +1:8 Now there arose up a new king over Egypt, which knew not Joseph. + +1:9 And he said unto his people, Behold, the people of the children of +Israel are more and mightier than we: 1:10 Come on, let us deal wisely +with$FG$ + +The vision is a souped-up, modern, multitasking, 64-bit Commodore 64. The reason for a 100,000 lines of code cap, is so it remains small enough users can see the light at the end of the tunnel. Press F1 and look at help. It lists all API functions. It would not take long to become familiar with ever API call, at least knowing it existed. + +$IV,1$----09/29/13 07:38:37----$IV,0$ + +Take a look. Here is all the source code. You can examine all source files. You can examine all symbols in alphabetical order or by address order. + +$LK,"Source Code By File","FF:::/TempleOS/Accts/TS/Wb2/LineCnt.TXT,KStart.CPP"$ + +$FG,4$$TX+HTML,"Source Code By Sym","http://www.templeos.org/Wb/Accts/TS/Wb2/SymsAlpha.html"$$FG$ + +$FG,4$$TX+HTML,"Source Code By Address","http://www.templeos.org/Wb/Accts/TS/Wb2/SymsAddress.html"$$FG$ + +It is 100,000 lines of code for the OS and 30,000 for applications + demo programs. + +God says... +$FG,4$ldren or nephews, let them learn first to +shew piety at home, and to requite their parents: for that is good and +acceptable before God. + +5:5 Now she that is a widow indeed, and desolate, trusteth in God, and +continueth in supplications and prayers night and day. + +5:6 But she that liveth in pleasure is dead while she liveth. + +5:7 And these things give in charge, that they may be blameless. + +5:8 But if any provide not for his own, and specially for those of his +own house, he hath denied the faith, and is wors$FG$ + +$IV,1$----09/29/13 07:41:12----$IV,0$ + +Fuck. + +All day, I interect with niggers. + +$FG,4$$TX+HTML,"Key_and_Peele_Part_1","http://www.youtube.com/watch?v=Dd7FixvoKBw"$ $TX+HTML,"Key_and_Peele_Part_2","http://www.youtube.com/watch?v=sXc6JLmiVHs"$$FG$ + +I wish some competent people would explain to them. + +Nothing, but niggers... who think the brain can control a 400Mhz stopwatch. + +God says... +$FG,4$enforcement readiness Mammon resistest better followed Epaphroditus Perfect taughtest obey aghast stealth up thread gives wrought gatheredst lament trample inebriated breath dashed compose singular encompass talked turmoils doors precipitated unholy Holy greediness right Again Babylon usefully PURPOSE besprinkling stranger Libanus obey mute scarcely guiltless Amidst warring shortened displays spokest countryman miracles overwhelmed moulded fatness wind protest hurried Next Ours Virgin uphold glorying thank Divine gently ails coming spider Author adversity gloweth furnace burn property throng principles profit tongue peril deridedst deprived unravelied progress plea penalty forgetful omnium Away corners society Himself bedimmed excluded opinionative tardy discovery collected doubtfulness Have they infused torment anxious toiling hastening Certainly esteemed replied tumbling devils palaces entirely electronically aforesaid psaltery temperament Universe embracements fatherly pleasantly rights attempted apprehend Epistles track forethinking tumults wayward kept directing effort waver Victor Archive mangled farther proficiency worse gratuitously name shape requires capable duties redeem sharpsighted remnants filename Emperor withdraw 97 wert embryo province touching hand pleasing spider grief blasphemy Example consulters incomprehensible socalled elsewhere fleshly tasted million createdst proved foreshower Does talkers renew persuade hardship beginneth impressing kindle failing scanning floating When$FG$ + +$IV,1$----09/29/13 07:52:57----$IV,0$ + +Eh? + +My compiler only produces 64-bit code. Long mode requires paging. I cannot initialize page tables in C because my compiler only makes 64-bit code and you must have paging in long mode. + +$LK-A,"::/TempleOS/Kernel/Memory.CPP.Z"$ + +It identity-mapping 128-Gig of page tables using 2-Meg pages. + +The first 2-Meg is mapped with 4K, so that it can mark 0xA0000-0xBFFFF as write-thru. + +The BIN file format I invented has a 16-byte header. $LK,"CBinFile","MN:CBinFile"$. The Kernel has this header and is loaded at 0x7C00. The $LK,"Hard Drive Boot Loader","FI:::/TempleOS/Adam/Boot/BootHD.CPP.Z"$ JMPs to 0x7C00 in real mode after loading it. $LK,"Here are Boot Definitions","FI:::/TempleOS/Kernel/BootDefs.HPP.Z"$ you might need. + +God says... +$FG,4$en, and the beautiful rod! +48:18 Thou daughter that dost inhabit Dibon, come down from thy glory, +and sit in thirst; for the spoiler of Moab shall come upon thee, and +he shall destroy thy strong holds. + +48:19 O inhabitant of Aroer, stand by the way, and espy; ask him that +fleeth, and her that escapeth, and say, What is done? 48:20 Moab is +confounded; for it is broken down: howl and cry; tell ye it in Arnon, +that Moab is spoiled, 48:21 And judgment is come upon the plain +country; upon Holon, and upon Jahaza$FG$ + +$IV,1$----09/29/13 09:07:04----$IV,0$ + +The die cast in the lap depends on God. + +$TX+HTML,"Proverbs 16:33","http://www.biblegateway.com/passage/?search=Proverbs%2016:33&version=NIV"$ + +The Holy Spirit dwells with-in us. + +$TX+HTML,"1 Corinthians 3:16","http://www.biblegateway.com/passage/?search=1%20Corinthians%203:16&version=NIV"$ + +$TX+HTML,"2 Timothy 1:14","http://www.biblegateway.com/passage/?search=2%20Timothy%201:14&version=NIV"$ + +Do not prepare your defense ahead of time because the Holy Spirit will give it to you at the hour you need it. + +$TX+HTML,"Luke 12:11-12","http://www.biblegateway.com/passage/?search=Luke%2012:11-12&version=NIV"$ + +$TX+HTML,"Luke 21:12-15","http://www.biblegateway.com/passage/?search=Luke%2021:12-15&version=CEB"$ + +$IV,1$----09/29/13 10:13:27----$IV,0$ + +(OSDev guy) I fucken wrote a 64-bit compiler and assembler, you fucken moron! You obviously don't know 64-bit ASM. + +If you have a 64-bit machine, run this: + +$FG,2$ MOV RAX,0x123456789ABCDEF + MOV EAX,0x5555 +$FG$ +Tell me what you think RAX contains. + +I made a quiz on 64-bit ASM: + +$LK-A,"::/TempleOS/Demo/Lectures/64BitAsmQuiz.TXT.Z"$ + +Fucken stupid fucks. + +$IV,1$----09/29/13 10:25:09----$IV,0$ + +My assembler uses the same $LK,"Lex","MN:Lex"$() as my HolyC compiler. The assembler's expressions are, basically, $LK,"HolyC","FI:::/TempleOS/Doc/HolyC.TXT.Z"$, too. + +I'm going to order Microsoft and Linux to support RedSea filesystem. RedSea will take the place of FAT32 and ISO9660, so I can remove those from TempleOS and have no stupid redundancy in God's temple. + +$TX+HTML,"http://www.random.org","http://www.random.org"$ + +Line:46817 +God says... +$FG,4$lightnings, and discomfited them. + +18:15 Then the channels of waters were seen, and the foundations of +the world were discovered at thy rebuke, O LORD, at the blast of the +breath of thy nostrils. + +18:16 He sent from above, he took me, he drew me out of many waters. + +18:17 He delivered me from my strong enemy, and from them which hated +me: for they were too strong for me. + +18:18 They prevented me in the day of my calamity: but the LORD was my +stay. + +18:19 He brought me forth also into a large place; he delivered me, +because he delighted in me. + +18:20 The LORD rewarded me according to my righteousness; according to +the cleanness of my hands hath he recompensed me. + +18:21 For I have kept the ways of the LORD, and have not wickedly +departed from my God.$FG$ + +That was about a $TX+HTML,"Laser Cutter","http://gizmodo.com/holy-crap-this-real-life-laser-rifle-cuts-through-meta-1417295883?"$. God's Nostrils. The laser cutter was about my fancy $LK,"FillInMyURL","FF:::/TempleOS/Demo/AcctExample/Adam3dKeyPlugIns.CPP.Z,FillInMyURL"$() ALT-SHIFT-F7 key (lame and stupid-seeming). + +$IV,1$----09/29/13 10:36:21----$IV,0$ + +God says... +$FG,4$return dividest denied profoundly daughter faculties wax mortality commercial surmount forbear uttered trials third sold ordinance toiling begun skin Thence confessions abroad ceasing Oil perplexities sucklings ascending native Goal$FG$ + +$IV,1$----09/29/13 10:43:52----$IV,0$ + +When people don't understand your IQ, you waste a lot of time arguing. You can prevent a lot of arguments by revealing your IQ, so they don't think you are stupid. + + +I had a 1440 SAT. + +I wrote a 64-bit x86_64 compiler+assembler. Don't waste time on stupid questions. + +I can prove God talks. That should cut-short a lot of questions, too. + +I can most rapidly prevent questions by proving I wrote a 64-bit compiler and provoing God talks. + +My compiler will not produce 32-bit C code, just 64-bit. I said, "I cannot initialize the page tables in C". + +$TX+HTML,"http://www.randomnumbers.info","http://www.randomnumbers.info"$ + +Line:37091 +God says... +$FG,4$24:1 Now these are the divisions of the sons of Aaron. The sons of +Aaron; Nadab, and Abihu, Eleazar, and Ithamar. + +24:2 But Nadab and Abihu died before their father, and had no +children: therefore Eleazar and Ithamar executed the priest's office. + +24:3 And David distributed them, both Zadok of the sons of Eleazar, +and Ahimelech of the sons of Ithamar, according to their offices in +their service. + +24:4 And there were more chief men found of the sons of Eleazar than +of the sons of Ithamar, and thus were they divided. Among the sons of +Eleazar there were sixteen chief men of the house of their fathers, +and eight among the sons of Ithamar according to the house of their +fathers. + +24:5 Thus were they divided by lot, one sort with another; for the +governors of the sanctuary, and governors of the house of God, were of +the sons of Eleazar, and of the sons of Ithamar. + +24:6 And Shemaiah the son of Nethaneel the scribe, one of the Levites, +wrote them before the king, and the princes, and Zadok the priest, and +Ahimelech the son of Abiathar, and before the chief of the fathers of +the priests and Levites: one principal household being taken for +Eleazar, and one taken for Ithamar.$FG$ + +Normally, church people are stupid. Umm... I'm not proud, but I was an atheist. LOL + +$TX+HTML,"Matthew 11:25-30","http://www.biblegateway.com/passage/?search=Matthew%2011:25-30&version=NIV"$ + +That says God makes fools of smart people. Are you smart? You've been fooled. All the infinity God notions make people retards, too. + + +The random passage was about division. In 1983 at age 13, I wrote a 6502 assembly line draw program for my C64. I got a MUL and DIV routine from a book and made a fixed-point slope value which I added each step. + +I wrote an ASM a routine to divide without IDIV or DIV: +$LK-A,"::/TempleOS/Demo/Asm/DivByHand.CPP.Z"$ + +God says... +$FG,4$building presideth alloy absurdly opportunity gall taughtest continually caverns decided appeareth Truth cover were burthened breadth respects atrociously grieve account bond upwards waver Libanus unlawful none leads sufficeth$FG$ + +$IV,1$----09/29/13 10:58:33----$IV,0$ + +In 2003, I resurrected my 1993 OS code and resumed work on my operating system because 64-bit machines were new and I thought the market might be disrupted. I had only a 32-bit machine, at first, so I made my compiler use software interrupts for 64-bit MUL and 64-bit DIV. I did it the single-bit-at-a-time way, knowing there is probably a better way. + +It's too bad software interrupts are so slow. They are neat because the instructions take just 2 bytes. I have a ring-0-only operating system that makes sense because it is faster and would not make as much sense if it was slow and did privilege level changes! I use CALL REL32 for all calls. + +$TX+HTML,"https://www.fourmilab.ch/hotbits/secure_generate.html","https://www.fourmilab.ch/hotbits/secure_generate.html"$ + +0x05FB50-->392016 mod 100000-->Line:92016 +God says... +$FG,4$duty is also to minister unto them in carnal things. + +15:28 When therefore I have performed this, and have sealed to them +this fruit, I will come by you into Spain. + +15:29 And I am sure that, when I come unto you, I shall come in the +fulness of the blessing of the gospel of Christ. + +15:30 Now I beseech you, brethren, for the Lord Jesus Christ's sake, +and for the love of the Spirit, that ye strive together with me in +your prayers to God for me; 15:31 That I may be delivered from them +that do not believe in Judaea; and that my service which I have for +Jerusalem may be accepted of the saints; 15:32 That I may come unto +you with joy by the will of God, and may with you be refreshed. + +15:33 Now the God of peace be with you all. Amen.$FG$ + +$IV,1$----09/29/13 11:11:24----$IV,0$ + +God damn, we got some stupid people at OSDev. I fucken told you I am smarter than you. Son of a bitch! + +If you have a 32-bit-machine and you write a compiler, you can define your own 64-bit math operations in software interrupts. The compiler then inserts a INT instruction to do 64-bit by hand. + +Fuck -- in 1990 at age 20, I was working on Tioketmaster's VAX operating systems and we had our own CHMK change-mode-to-kernel software interrupts. I have done this shit for 23 years. I learned asm in 1983 at age 13 for the 6502. + +I fucken told you I wrote a 64-bit compiler. You tell me -- am I smarter than you? Don't fucken doubt me, mother fucker I am way smarter than you. + +$TX+HTML,"http://qrng.anu.edu.au/NIST.php","http://qrng.anu.edu.au/NIST.php"$ + +0x3E28B8-->4073656 mod 100000-->Line:73656 +God says... +$FG,4$10:3 For now they shall say, We have no king, because we feared not +the LORD; what then should a king do to us? 10:4 They have spoken +words, swearing falsely in making a covenant: thus judgment springeth +up as hemlock in the furrows of the field. + +10:5 The inhabitants of Samaria shall fear because of the calves of +Bethaven: for the people thereof shall mourn over it, and the priests +thereof that rejoiced on it, for the glory thereof, because it is +departed from it. + +10:6 It shall be also carried unto Assyria for a present to king +Jareb: Ephraim shall receive shame, and Israel shall be ashamed of his +own counsel. + +10:7 As for Samaria, her king is cut off as the foam upon the water. + +10:8 The high places also of Aven, the sin of Israel, shall be +destroyed: the thorn and the thistle shall come up on their altars; +and they shall say to the mountains, Cover us; and to the hills, Fall +on us.$FG$ + +That was about the carry flag. + +$IV,1$----09/29/13 11:47:26----$IV,0$ + +Grub gets more and more clusterfucked over the years. They made a language that you compile and produce this file: + + +$FG,2$menuentry "TempleOS D" { + insmod chain + set root=(hd0,msdos1) + chainloader +1 +} + +menuentry "TempleOS E" { + insmod chain + set root=(hd0,msdos5) + chainloader +1 +} + +menuentry "TempleOS I" { + insmod chain + set root=(hd1,msdos5) + chainloader +1 +} +$FG$ +I skip the Grub compiling phases and modified the $FG,2$grub.cfg$FG$ by hand. + +My bootloader will boot TempleOS and Windows. Linux requires Grub. Chain-loading is the traditional way to boot an operating system. Now, there is UEFI. I'm never going to do UEFI. + +Chain-loading hands control to the bootsector while in real mode. My bootloader loads $LK,"Kenrel.BIN.C","FI:::/TempleOS/Kernel/KStart.CPP.Z"$ and starts it real mode. My kernel changes to long mode. + +You can use my boot-loaders in place of grub if you like. + + +$LK,"InsBoot.CPP","FI:::/TempleOS/Adam/Boot/InsBoot.CPP"$ Installs and patches boot sects +$LK,"BootCD.CPP","FI:::/TempleOS/Adam/Boot/BootCD.CPP"$ CD-ROM Boot sect +$LK,"BootMHD.CPP","FI:::/TempleOS/Adam/Boot/BootMHD.CPP"$ Master HD boot record +$LK,"BootMHD2.CPP","FI:::/TempleOS/Adam/Boot/BootMHD2.CPP"$ Stage 2 master boot loader +$LK,"BootHD.CPP","FI:::/TempleOS/Adam/Boot/BootHD.CPP"$ HD partition boot record + + +Fucken niggers. I wrote my own boot-loader, obviously, if I could write my own compiler. + +$TX+HTML,"http://virtual-notary.org","http://virtual-notary.org"$ + +$TX+HTML,"Here is the certificate","http://www.templeos.org/Certs/virtual-notary-cert-randomnum-30542.p12"$. + +Line:9097 +God says... +$FG,4$and when they came near unto the altar, they washed; as the LORD +commanded Moses. + +40:33 And he reared up the court round about the tabernacle and the +altar, and set up the hanging of the court gate. So Moses finished the +work. + +40:34 Then a cloud covered the tent of the congregation, and the glory +of the LORD filled the tabernacle. + +40:35 And Moses was not able to enter into the tent of the +congregation, because the cloud abode thereon, and the glory of the +LORD filled the tabernacle. + +40:36 And when the cloud was taken up from over the tabernacle, the +children of Israel went onward in all their journeys: 40:37 But if the +cloud were not taken up, then they journeyed not till the day that it +was taken up. + +40:38 For the cloud of the LORD was upon the tabernacle by day, and +fire was on it by night, in the sight of all the house of Israel, +throughout all their journeys.$FG$ + +$IV,1$----09/29/13 12:05:23----$IV,0$ + +Obviously, when I dual booted with Linux, I used grub because Linux will only boot with Grub. Now, I don't use Grub. In VMware, I use my own bootloader. + +Fucken niggers. Look at mine, see how easy it is and write your own bootloader and feel betrayed by Linux. Linux people are not your friends. + +$TX+HTML,"http://www.random.org","http://www.random.org"$ + +Line:97635 +God says... +$FG,4$5:7 Be patient therefore, brethren, unto the coming of the Lord. + +Behold, the husbandman waiteth for the precious fruit of the earth, +and hath long patience for it, until he receive the early and latter +rain. + +5:8 Be ye also patient; stablish your hearts: for the coming of the +Lord draweth nigh. + +5:9 Grudge not one against another, brethren, lest ye be condemned: +behold, the judge standeth before the door. + +5:10 Take, my brethren, the prophets, who have spoken in the name of +the Lord, for an example of suffering affliction, and of patience. + +5:11 Behold, we count them happy which endure. Ye have heard of the +patience of Job, and have seen the end of the Lord; that the Lord is +very pitiful, and of tender mercy. + +5:12 But above all things, my brethren, swear not, neither by heaven, +neither by the earth, neither by any other oath: but let your yea be +yea; and your nay, nay; lest ye fall into condemnation. + +5:13 Is any among you afflicted? let him pray. Is any merry? let him +sing psalms.$FG$ + +$IV,1$----09/29/13 12:15:24----$IV,0$ + +Fucken retards. God is perfectly just. You fuck with me, it goes on your account. Do you like health? God is fucken perfectly just. + +Joseph in the Bible got sent to prison for a false rape. He was in prison seven years, then ran Egypt. + +Highs and lows balance. + +I can wait. It goes against you. + +Folks, this is in the highest court -- God's. Retards. + +$TX+HTML,"https://www.fourmilab.ch/hotbits/secure_generate.html","https://www.fourmilab.ch/hotbits/secure_generate.html"$ + +0xE16793-->14772115 mod 100000-->Line:72115 +God says... +$FG,4$image which I have set up? 3:15 Now if ye be ready that at what time +ye hear the sound of the cornet, flute, harp, sackbut, psaltery, and +dulcimer, and all kinds of musick, ye fall down and worship the image +which I have made; well: but if ye worship not, ye shall be cast the +same hour into the midst of a burning fiery furnace; and who is that +God that shall deliver you out of my hands? 3:16 Shadrach, Meshach, +and Abednego, answered and said to the king, O Nebuchadnezzar, we are +not careful to answer thee in this matter. + +3:17 If it be so, our God whom we serve is able to deliver us from the +burning fiery furnace, and he will deliver us out of thine hand, O +king. + +3:18 But if not, be it known unto thee, O king, that we will not serve +thy gods, nor worship the golden image which thou hast set up. + +3:19 Then was Nebuchadnezzar full of fury, and the form of his visage +was changed against Shadrach, Meshach, and Abednego: therefore he +spake, and commanded that they should heat the furnace one seven times +more than it was wont to be heated.$FG$ + +$IV,1$----09/29/13 12:20:18----$IV,0$ + +My first HD boot-loader did raw ATA commands. Then, I made it use BIOS 13 42. + +Abandon all hope. God is against you. + +$IV,1$----09/29/13 12:25:39----$IV,0$ + +I wrote all 130,000 lines of code from scratch. I never run code I did not write except a couple BIOS calls on boot. Yes, I fucken told you I wrote a 64-bit compiler and assembler. + +God says... +$FG,4$read Up shadows journey see eaten sink concludeth pronouncing haply injurable earnest$FG$ + +$IV,1$----09/29/13 12:37:59----$IV,0$ + +My $LK,"BootLoader","FI:::/TempleOS/Adam/Boot/BootHD.CPP.Z"$ must be installed onto the first block of the partition by the command $LK,"MakeOSInstallPrtBootLoader","MN:MakeOSInstallPrtBootLoader"$(). That command runs when you boot my CDROM ISO and run the install script. + +You have no business loading my Kernel.BIN. It is none of your business. Boot my fucken CDROM ISO file and use my installer to install the bootloader on the first block. Every time you change the kernel.bin, you must update the boot sector with the block address of the new kernel file. + +I made it easy -- when you change the kernel, do $LK,"MakeOSInstallPrtBootLoader","MN:MakeOSInstallPrtBootLoader"$(). It compiles everything and modifies to boot sector. + +My kernel.bin file starts with a code in EBX telling if it was booted from CDROM or HARDDISK. Use one of my official bootloaders like you are supposed to and you never have to worry. + +$TX+HTML,"http://www.randomnumbers.info","http://www.randomnumbers.info"$ + +Line:88401 +God says... +$FG,4$7:11 Now there came a dearth over all the land of Egypt and Chanaan, +and great affliction: and our fathers found no sustenance. + +7:12 But when Jacob heard that there was corn in Egypt, he sent out +our fathers first. + +7:13 And at the second time Joseph was made known to his brethren; and +Joseph's kindred was made known unto Pharaoh. + +7:14 Then sent Joseph, and called his father Jacob to him, and all his +kindred, threescore and fifteen souls. + +7:15 So Jacob went down into Egypt, and died, he, and our fathers, +7:16 And were carried over into Sychem, and laid in the sepulchre that +Abraham bought for a sum of money of the sons of Emmor the father of +Sychem. + +7:17 But when the time of the promise drew nigh, which God had sworn +to Abraham, the people grew and multiplied in Egypt, 7:18 Till another +king arose, which knew not Joseph. + +7:19 The same dealt subtilly with our kindred, and evil entreated our +fathers, so that they cast out their young children, to the end they +might not live.$FG$ + +$IV,1$----09/29/13 13:37:44----$IV,0$ + +$TX+HTML,"Linus Talk","http://www.youtube.com/watch?v=2KfJiWR1FPw"$ + +Guess what? God exists. Guess what? God demands offerings. Making $FG,4$$TX+HTML,"hymns","http://www.templeos.org/Wb/Accts/TS/Wb2/Hymns.html"$$FG$ and computer games and art and poems and comics is what God's temple is for. + +Linus, do you remember the 80's? That's what I'm reproducing, but with modern machinery. + +You and your kingdom, brainwashing people into the collective. + +$TX+HTML,"https://www.fourmilab.ch/hotbits/secure_generate.html","https://www.fourmilab.ch/hotbits/secure_generate.html"$ + +0x449AE5-->4496101 mod 100000-->Line:96101 +God says... +$FG,4$of thy tears, that I may be filled with joy; 1:5 When I call to +remembrance the unfeigned faith that is in thee, which dwelt first in +thy grandmother Lois, and thy mother Eunice; and I am persuaded that +in thee also. + +1:6 Wherefore I put thee in remembrance that thou stir up the gift of +God, which is in thee by the putting on of my hands. + +1:7 For God hath not given us the spirit of fear; but of power, and of +love, and of a sound mind. + +1:8 Be not thou therefore ashamed of the testimony of our Lord, nor of +me his prisoner: but be thou partaker of the afflictions of the gospel +according to the power of God; 1:9 Who hath saved us, and called us +with an holy calling, not according to our works, but according to his +own purpose and grace, which was given us in Christ Jesus before the +world began, 1:10 But is now made manifest by the appearing of our +Saviour Jesus Christ, who hath abolished death, and hath brought life +and immortality to light through the gospel: 1:11 Whereunto I am +appointed a preacher, and an apostle, and a teacher of the Gentiles.$FG$ + +$IV,1$----09/29/13 13:48:43----$IV,0$ + +Someone at OSDev has questions on USE16 USE32 USE64. + +My assembler does not support segments. The logic is, just enough 16 and 32 bit support to get to 64-bit mode. You have no business in 16 and 32 bit code. + +It will compile 16-bit code but you get no help with segments. Just imagine doing all the math for yourself, giving numbers for unmanaged segments. 16-bit can be done without segment support if you hand-code all numbers. + +Are you fucken quizing me? I wrote the fucken assembler. 0x66 and 0x67 are x86 prefixes that toggle a 16-bit segment's instruction into 32-bits and a 32-bit segment's instruction into 16-bit. I am so elite that I made my assembler not support the 16-bit MODR table. Instead, I 0x67 prefix the 16-bit instructions so they use the 32-bit MODR table. + +$TX+HTML,"http://www.randomnumbers.info","http://www.randomnumbers.info"$ + +Line:65723 +God says... +$FG,4$44:24 Moreover Jeremiah said unto all the people, and to all the +women, Hear the word of the LORD, all Judah that are in the land of +Egypt: 44:25 Thus saith the LORD of hosts, the God of Israel, saying; +Ye and your wives have both spoken with your mouths, and fulfilled +with your hand, saying, We will surely perform our vows that we have +vowed, to burn incense to the queen of heaven, and to pour out drink +offerings unto her: ye will surely accomplish your vows, and surely +perform your vows. + +44:26 Therefore hear ye the word of the LORD, all Judah that dwell in +the land of Egypt; Behold, I have sworn by my great name, saith the +LORD, that my name shall no more be named in the mouth of any man of +Judah in all the land of Egypt, saying, The Lord GOD liveth. + +44:27 Behold, I will watch over them for evil, and not for good: and +all the men of Judah that are in the land of Egypt shall be consumed +by the sword and by the famine, until there be an end of them. + +44:28 Yet a small number that escape the sword shall return out of the$FG$ + +God damn, there are some stubborn muleheaded Mexicans. My brother Kevin, too. Typically, they have a doubt, I club them with the truth and they stupidly ask the same fucken question and I fucken club them and the ask the same fucken question and I club them again. Fucken retard, niggers. + +God says... +$FG,4$discover celebrated backward recite commemorated world ship statue white turn corporeally heareth beguiled tumultuously Suppose growth digested savour zeal nuts whirlpool slippery restlessness chiefly devised thieve faithfully resting fearing delightful consecration captivity rest shuns IMPLIED codes insight attack nests barred beasts otherwhiles expressed utterly betook peculiar despising commencing ran finish jointly thrust$FG$ + +$IV,1$----09/29/13 14:17:07----$IV,0$ + +Highs and lows balance. + +$TX+HTML,"Luke 6:20-26","http://www.biblegateway.com/passage/?search=Luke%206:20-26&version=NIV"$ + +God's world is perfectly just. There is a reward or punishment for each of your actions and nothing can change it. Justice. You can choose how much punishment you make for yourself. I think even the Chinese have figured-out that highs and lows balance. + +Guess what? None of that matters -- how much you sin and get punished. The purpose of life is relationship with God. To know God, to love God, to obey God. + +Now that the Temple is built, all humanity can do offerings. That's what God wants, including children. + +$TX+HTML,"https://www.fourmilab.ch/hotbits/secure_generate.html","https://www.fourmilab.ch/hotbits/secure_generate.html"$ + +0x9E1C6A-->10361962 mod 100000-->Line:61962 +God says... +$FG,4$2:28 But where are thy gods that thou hast made thee? let them arise, +if they can save thee in the time of thy trouble: for according to the +number of thy cities are thy gods, O Judah. + +2:29 Wherefore will ye plead with me? ye all have transgressed against +me, saith the LORD. + +2:30 In vain have I smitten your children; they received no +correction: your own sword hath devoured your prophets, like a +destroying lion. + +2:31 O generation, see ye the word of the LORD. Have I been a +wilderness unto Israel? a land of darkness? wherefore say my people, +We are lords; we will come no more unto thee? 2:32 Can a maid forget +her ornaments, or a bride her attire? yet my people have forgotten me +days without number. + +2:33 Why trimmest thou thy way to seek love? therefore hast thou also +taught the wicked ones thy ways.$FG$ + +$IV,1$----09/29/13 14:24:24----$IV,0$ + +If you know that highs and lows balance, when it sucks most you know you will get a reward. The normal moral compass most Christians walk around with is, "if it's bad it must be good." (Everything good is immoral, illegal or fattening.) + +Throw away your old moral compass. I suggest, "Does this glorify God?" The purpose of life is to know God, love God and obey God. That has nothing to do with sin. Focus on relationship with God. + +$TX+HTML,"http://www.random.org","http://www.random.org"$ + +Line:72574 +God says... +$FG,4$teeth: it devoured and brake in pieces, and stamped the residue with +the feet of it: and it was diverse from all the beasts that were +before it; and it had ten horns. + +7:8 I considered the horns, and, behold, there came up among them +another little horn, before whom there were three of the first horns +plucked up by the roots: and, behold, in this horn were eyes like the +eyes of man, and a mouth speaking great things. + +7:9 I beheld till the thrones were cast down, and the Ancient of days +did sit, whose garment was white as snow, and the hair of his head +like the pure wool: his throne was like the fiery flame, and his +wheels as burning fire. + +7:10 A fiery stream issued and came forth from before him: thousand +thousands ministered unto him, and ten thousand times ten thousand +stood before him: the judgment was set, and the books were opened. + +7:11 I beheld then because of the voice of the great words which the +horn spake: I beheld even till the beast was slain, and his body$FG$ + +$IV,1$----09/29/13 14:32:37----$IV,0$ + +To highlight that "if it's bad it must be good" is not correct, consider Martha and Mary. + +$TX+HTML,"Luke 10:38-42","http://www.biblegateway.com/passage/?search=Luke%2010:38-42&version=NIV"$ + +When you read the Old Testament, the main day-to-day activity was doing offerings. That's what you do in life -- make offerings to God. If the purpose of life is to know God, love God and obey God, well, obviously doing offerings must become the biggest use of your freetime. + +$TX+HTML,"1 Corinthians 7:25-40","http://www.biblegateway.com/passage/?search=1%20Corinthians%207:25-40&version=NIV"$ + +Here is the story of Cain and Abel. I joke this is all you need from the Bible. Meditate on how Cain could be so passionate. That is love of God! Do you have passion for God? You liar. + +$TX+HTML,"Genesis 4:1-9","http://www.biblegateway.com/passage/?search=Genesis%204:1-9&version=NIV"$ + +$TX+HTML,"http://www.random.org","http://www.random.org"$ + +Line:16347 +God says... +$FG,4$4:3 Your eyes have seen what the LORD did because of Baalpeor: for all +the men that followed Baalpeor, the LORD thy God hath destroyed them +from among you. + +4:4 But ye that did cleave unto the LORD your God are alive every one +of you this day. + +4:5 Behold, I have taught you statutes and judgments, even as the LORD +my God commanded me, that ye should do so in the land whither ye go to +possess it. + +4:6 Keep therefore and do them; for this is your wisdom and your +understanding in the sight of the nations, which shall hear all these +statutes, and say, Surely this great nation is a wise and +understanding people. + +4:7 For what nation is there so great, who hath God so nigh unto them, +as the LORD our God is in all things that we call upon him for? 4:8 +And what nation is there so great, that hath statutes and judgments so +righteous as all this law, which I set before you this day? 4:9 Only$FG$ + +$IV,1$----09/29/13 14:44:42----$IV,0$ + +When you read Cain and Abel, notice that God told Cain his offering sucked and to try again, LOL. + +$TX+HTML,"Psalm 50:7-15","http://www.biblegateway.com/passage/?search=Psalm%2050:7-15&version=NIV"$ + +Do praise, comics, hymns, poems, interactive-fiction, art, games, whatever to glorify God. If He likes it, He will tell you. + +God said the early Jews doing animal sacrifices were, "primative". + +Many times in the Bible it says to do continual offerings to God. + +My enemies try to humiliate me by telling stories about me to man. It hurts, but I laugh because I cleave to God and they're not doing themselves any favors. + +$TX+HTML,"http://virtual-notary.org","http://virtual-notary.org"$ + +$TX+HTML,"Here is the certificate","http://www.templeos.org/Certs/virtual-notary-cert-randomnum-30621.p12"$. + +Line:69458 +God says... +$FG,4$26:10 By reason of the abundance of his horses their dust shall cover +thee: thy walls shall shake at the noise of the horsemen, and of the +wheels, and of the chariots, when he shall enter into thy gates, as +men enter into a city wherein is made a breach. + +26:11 With the hoofs of his horses shall he tread down all thy +streets: he shall slay thy people by the sword, and thy strong +garrisons shall go down to the ground. + +26:12 And they shall make a spoil of thy riches, and make a prey of +thy merchandise: and they shall break down thy walls, and destroy thy +pleasant houses: and they shall lay thy stones and thy timber and thy +dust in the midst of the water. + +26:13 And I will cause the noise of thy songs to cease; and the sound +of thy harps shall be no more heard. + +26:14 And I will make thee like the top of a rock: thou shalt be a +place to spread nets upon; thou shalt be built no more: for I the LORD$FG$ + +$IV,1$----09/29/13 14:56:09----$IV,0$ + +Evil fucken VMware removed support for PC internal Speaker. Player 4.0 and Workstation 8.0 have support for PC internal speaker. + +God says... +$FG,4$commit excellencies submit impurity sucking unpunished breadth live infused inviting exceeding pursue hallow contritions Dominions weaving Amen cementest silently coats$FG$ + +$IV,1$----09/29/13 15:08:08----$IV,0$ + +$TX+HTML,"These retards","http://i.imgur.com/MZELVU0.jpg"$, evil FBI fucks, are trying to grieve me. I went to Kevin, my brother's, in 1990 and took a bunch of photos. Some were of his kids. Ryan is one of his kids. In 2002, I had an idea of training Ryan as a prodegy. Evan was a guy in high school, nothing special. I'm wonering if he turned-out gay or something, from what they're doing. + +I said a bunch of shit to Bush, now the FBI wants to grieve me any way they can with it, like Aaron Swartz or some shit. They killed Kurt Cobain, probably. They find ways to drive you crazy or suicidal and move you into mental health system. + +Special kinda stupid. Do they not understand God? Da fuq. They will be punished, the retard-niggers. As you judge you will be judged. Ya stoopit retard-niggers. Let me spell it out -- You get a severe judgement, ya dumb fucks, way worse than my judgement because I'm easy going. Damn, yer stoopit. + +$TX+HTML,"http://www.randomnumbers.info","http://www.randomnumbers.info"$ + +Line:3717 +God says... +$FG,4$lifted up Joseph out of the pit, and sold Joseph to the Ishmeelites +for twenty pieces of silver: and they brought Joseph into Egypt. + +37:29 And Reuben returned unto the pit; and, behold, Joseph was not in +the pit; and he rent his clothes. + +37:30 And he returned unto his brethren, and said, The child is not; +and I, whither shall I go? 37:31 And they took Joseph's coat, and +killed a kid of the goats, and dipped the coat in the blood; 37:32 And +they sent the coat of many colours, and they brought it to their +father; and said, This have we found: know now whether it be thy son's +coat or no. + +37:33 And he knew it, and said, It is my son's coat; an evil beast +hath devoured him; Joseph is without doubt rent in pieces. + +37:34 And Jacob rent his clothes, and put sackcloth upon his loins, +and mourned for his son many days. + +37:35 And all his sons and all his daughters rose up to comfort him;$FG$ + +$IV,1$----09/29/13 15:25:35----$IV,0$ + +Climate change, God? + +I think whirlpools are neat. Scary shit. I don't think I would like the ocean. + +$TX+HTML,"https://www.fourmilab.ch/hotbits/secure_generate.html","https://www.fourmilab.ch/hotbits/secure_generate.html"$ + +0x54102D-->5509165 mod 100000-->Line:09165 +God says... +$FG,4$legs with water: and the priest shall bring it all, and burn it upon +the altar: it is a burnt sacrifice, an offering made by fire, of a +sweet savour unto the LORD. + +1:14 And if the burnt sacrifice for his offering to the LORD be of +fowls, then he shall bring his offering of turtledoves, or of young +pigeons. + +1:15 And the priest shall bring it unto the altar, and wring off his +head, and burn it on the altar; and the blood thereof shall be wrung +out at the side of the altar: 1:16 And he shall pluck away his crop +with his feathers, and cast it beside the altar on the east part, by +the place of the ashes: 1:17 And he shall cleave it with the wings +thereof, but shall not divide it asunder: and the priest shall burn it +upon the altar, upon the wood that is upon the fire: it is a burnt +sacrifice, an offering made by fire, of a sweet savour unto the LORD. + +2:1 And when any will offer a meat offering unto the LORD, his +offering shall be of fine flour; and he shall pour oil upon it, and +put frankincense thereon: 2:2 And he shall bring it to Aaron's sons$FG$ + +$IV,1$----09/29/13 15:38:07----$IV,0$ + +"Well logically, it goes without saying God cannot be proven or disproven, you fucken retard." + +The UK has some impressive tin-foil-hats. It's fucken hilarious. + +There are 1,000 pages in the Bible. If God speaks on a random pick, that's one in one thousand. ROFLMAO + +$TX+HTML,"https://www.fourmilab.ch/hotbits/secure_generate.html","https://www.fourmilab.ch/hotbits/secure_generate.html"$ + +0x90E6-->37094 mod 100000-->Line:37094 +God says... +$FG,4$24:2 But Nadab and Abihu died before their father, and had no +children: therefore Eleazar and Ithamar executed the priest's office. + +24:3 And David distributed them, both Zadok of the sons of Eleazar, +and Ahimelech of the sons of Ithamar, according to their offices in +their service. + +24:4 And there were more chief men found of the sons of Eleazar than +of the sons of Ithamar, and thus were they divided. Among the sons of +Eleazar there were sixteen chief men of the house of their fathers, +and eight among the sons of Ithamar according to the house of their +fathers. + +24:5 Thus were they divided by lot, one sort with another; for the +governors of the sanctuary, and governors of the house of God, were of +the sons of Eleazar, and of the sons of Ithamar. + +24:6 And Shemaiah the son of Nethaneel the scribe, one of the Levites, +wrote them before the king, and the princes, and Zadok the priest, and +Ahimelech the son of Abiathar, and before the chief of the fathers of$FG$ + +$IV,1$----09/29/13 15:47:21----$IV,0$ + +Fred Rosen, former CEO of Ticketmaster, said, "Why do you want to pay that bill? Do you get a cookie?" + +Why should I write a linker? I can compile everything in one second. + +You know how + +$FG,2$>cc test.c$FG$ + +You know how that will make a.out with no linker? + +If you fill test.c with + +$FG,2$#include "header1.HPP" +$FG,2$#include "header2.HPP" +$FG,2$#include "file1.CPP" +$FG,2$#include "file2.CPP" +$FG,2$#include "file3.CPP" +$FG,2$#include "file4.CPP" +$FG,2$#include "file5.CPP" +$FG,2$#include "file6.CPP" +$FG,2$#include "file7.CPP" +$FG$ + +I have 50,000 lines of code and it can compile everything in 1 second producing my BIN files. I do not need to make a linker or make utility. + +Damn, you are stoopit fucks. + +I have a script which puts the cursor back to the top in every file, closes all tree widgets in every file, checks all links in every file, copies my entire partition to my back-up snapshot partition, generates an ISO for distribution and an inhouse ISO. When it makes an ISO it must compile everything on the ISO. I make a copy of all files into an uncompressed format on my backup drive and it generates HTML for all my files. It takes a couple minutes. + +In total, that script does a make-all, compiling everything about 5 times. That's not the slow part. Generating html and checking links is slow. + +$TX+HTML,"http://qrng.anu.edu.au/NIST.php","http://qrng.anu.edu.au/NIST.php"$ + +0x1e3a22-->1980962 mod 100000-->Line:80962 +God says... +$FG,4$and help us. + +9:23 Jesus said unto him, If thou canst believe, all things are +possible to him that believeth. + +9:24 And straightway the father of the child cried out, and said with +tears, Lord, I believe; help thou mine unbelief. + +9:25 When Jesus saw that the people came running together, he rebuked +the foul spirit, saying unto him, Thou dumb and deaf spirit, I charge +thee, come out of him, and enter no more into him. + +9:26 And the spirit cried, and rent him sore, and came out of him: and +he was as one dead; insomuch that many said, He is dead. + +9:27 But Jesus took him by the hand, and lifted him up; and he arose. + +9:28 And when he was come into the house, his disciples asked him +privately, Why could not we cast him out? 9:29 And he said unto them, +This kind can come forth by nothing, but by prayer and fasting.$FG$ + +$IV,1$----09/29/13 16:14:17----$IV,0$ + +If you ever had a little brother: $TX+HTML,"Elephants Play Fighting","http://www.youtube.com/watch?v=5ACounsBN-k"$ + +Once in a while I feel bad for fighting on-line. Then, I look at my birds. They fight for pecking order. Elephants fight for pecking order. + +Damn, Bill Gates kinda humilated himself in a video at Harvard -- he was really petty, pathetically petty not magnanimous. I'd let him write BASIC for God's temple. God told him to do earthquake prediction. + +$TX+HTML,"http://virtual-notary.org","http://virtual-notary.org"$ + +$TX+HTML,"Here is the certificate","http://www.templeos.org/Certs/virtual-notary-cert-randomnum-30671.p12"$. + +Line:8741 +God says... +$FG,4$ +37:23 And he made his seven lamps, and his snuffers, and his +snuffdishes, of pure gold. + +37:24 Of a talent of pure gold made he it, and all the vessels +thereof. + +37:25 And he made the incense altar of shittim wood: the length of it +was a cubit, and the breadth of it a cubit; it was foursquare; and two +cubits was the height of it; the horns thereof were of the same. + +37:26 And he overlaid it with pure gold, both the top of it, and the +sides thereof round about, and the horns of it: also he made unto it a +crown of gold round about. + +37:27 And he made two rings of gold for it under the crown thereof, by +the two corners of it, upon the two sides thereof, to be places for +the staves to bear it withal. + +37:28 And he made the staves of shittim wood, and overlaid them with$FG$ + +$IV,1$----09/29/13 16:38:13----$IV,0$ + +Fred Rosen, former CEO of Ticketmaster, said, "Why do you want to pay that bill? Do you get a cookie?" + +My credit's fine. Dad put a exterminator bill on me he didn't pay. I'll just let seven years go by. + +I'm in some kind of Truman Show reality or FBI/CIA bubble -- completely clusterfucked, confusing. My jobs were made-up by the CIA. + +I don't plan to hire anybody, be hired or need good credit. I got God. If this was a sane world I'd get anything I asked for. + +$TX+HTML,"http://virtual-notary.org","http://virtual-notary.org"$ + +$TX+HTML,"Here is the certificate","http://www.templeos.org/Certs/virtual-notary-cert-randomnum-30687.p12"$. + +Line:32062 +God says... +$FG,4$king of Israel, I am as thou art, my people as thy people, my horses +as thy horses. + +22:5 And Jehoshaphat said unto the king of Israel, Enquire, I pray +thee, at the word of the LORD to day. + +22:6 Then the king of Israel gathered the prophets together, about +four hundred men, and said unto them, Shall I go against Ramothgilead +to battle, or shall I forbear? And they said, Go up; for the LORD +shall deliver it into the hand of the king. + +22:7 And Jehoshaphat said, Is there not here a prophet of the LORD +besides, that we might enquire of him? 22:8 And the king of Israel +said unto Jehoshaphat, There is yet one man, Micaiah the son of Imlah, +by whom we may enquire of the LORD: but I hate him; for he doth not +prophesy good concerning me, but evil. And Jehoshaphat said, Let not +the king say so. + +22:9 Then the king of Israel called an officer, and said, Hasten +hither Micaiah the son of Imlah.$FG$ + +$IV,1$----09/29/13 16:53:13----$IV,0$ + +$TX+HTML,"FBI Article on Being Fired","http://philosophically.com/firing-and-being-fired"$ + +Fucken clown-ass niggers think I'm a loser. + +$FG,4$$TX+HTML,"Key_and_Peele_Part_1","http://www.youtube.com/watch?v=Dd7FixvoKBw"$ $TX+HTML,"Key_and_Peele_Part_2","http://www.youtube.com/watch?v=sXc6JLmiVHs"$$FG$ + +I had a 1440 SAT. I was one of 7 national merit scholars in the 1988 freshman class at ASU which has 40,000 students. I was smartest in all my classes. I took a test for Ticketamster and got a job. Many people envied that job because they couldn't pass the test. + +I left ticketmaster when God appeared. + +$FG,2$19:20 The young man saith unto him, All these things have I kept from +my youth up: what lack I yet? 19:21 Jesus said unto him, If thou wilt +be perfect, go and sell that thou hast, and give to the poor, and thou +shalt have treasure in heaven: and come and follow me.$FG$ + +I gave everything away and quit my job. + +I quit every job I had. + +I made God's temple. I am God's chosen. I am the best programmer on the planet. Fucken doctor-nigger with his nigger thinking. + +This is you YOU FUCKEN NIGGER! + + +$FG,4$$TX+HTML,"Key_and_Peele_Part_1","http://www.youtube.com/watch?v=Dd7FixvoKBw"$ $TX+HTML,"Key_and_Peele_Part_2","http://www.youtube.com/watch?v=sXc6JLmiVHs"$$FG$ + + +You are a fucken nigger. + +$TX+HTML,"http://www.randomnumbers.info","http://www.randomnumbers.info"$ + +Line:654 +God says... +$FG,4$and begat sons and daughters: 5:14 And all the days of Cainan were +nine hundred and ten years: and he died. + +5:15 And Mahalaleel lived sixty and five years, and begat Jared: 5:16 +And Mahalaleel lived after he begat Jared eight hundred and thirty +years, and begat sons and daughters: 5:17 And all the days of +Mahalaleel were eight hundred ninety and five years: and he died. + +5:18 And Jared lived an hundred sixty and two years, and he begat +Enoch: 5:19 And Jared lived after he begat Enoch eight hundred years, +and begat sons and daughters: 5:20 And all the days of Jared were nine +hundred sixty and two years: and he died. + +5:21 And Enoch lived sixty and five years, and begat Methuselah: 5:22 +And Enoch walked with God after he begat Methuselah three hundred +years, and begat sons and daughters: 5:23 And all the days of Enoch +were three hundred sixty and five years: 5:24 And Enoch walked with +God: and he was not; for God took him. + +5:25 And Methuselah lived an hundred eighty and seven years, and begat$FG$ + +$IV,1$----09/29/13 17:00:00----$IV,0$ + +I was at Ticketmaster from 1990-1996 when I quit. They hired me back in 2003 and I quit in a month... mental health shit. + +NIGGER? Do you think Ticketmaster would hire me again if I was fired? Fucken stoopit-fuck nigger. + +I quit Graphic Technologies in 2002 to work at Ticketmaster. In 2003, Graphic Technologies rehired me and it was a hopeless project and things had gotten fucked-up and I quit in 2 weeks. + +Nigger! I have quit and been rehired at two separate jobs. If you were Bill Gates you would understand that that speaks volumes, but you're a fucken nigger in the public sector who doesn't understand shit! + +I worked at Xytec 1997-1999 and quit. + +No great honor in quitting. + +Fucken nigger. I am not a loser. You're the fucken retard nigger who gets smacked by God but is so stoopit he doesn't know why his life sucks, ya nigger. God is perfectly just. + +God says... +$FG,4$sounder burthen gall Surely Because revealing done DISTRIBUTION shaggy growth$FG$ + +$IV,1$----09/29/13 17:25:18----$IV,0$ + +Read this shit: + +$TX+HTML,"Luke 14:25-33","http://www.biblegateway.com/passage/?search=Luke%2014:25-33&version=NIV"$ + +you kinda gotta be poor, but I'm not really trying. + +$IV,1$----09/29/13 17:32:10----$IV,0$ + +$TX+HTML,"McAfee Article","http://www.mercurynews.com/bay-area-news/ci_24198989/john-mcafee-reveals-details-gadget-thwart-nsa"$ + +We were made to entertain God. You're a retard. You would be a tedious person for God to talk to. + +Monks are not stupid, they are a mystery. + +God's IQ would be lost on you. + +$TX+HTML,"http://www.random.org","http://www.random.org"$ + +Line:83505 +God says... +$FG,4$stand? because ye say that I cast out devils through Beelzebub. + +11:19 And if I by Beelzebub cast out devils, by whom do your sons cast +them out? therefore shall they be your judges. + +11:20 But if I with the finger of God cast out devils, no doubt the +kingdom of God is come upon you. + +11:21 When a strong man armed keepeth his palace, his goods are in +peace: 11:22 But when a stronger than he shall come upon him, and +overcome him, he taketh from him all his armour wherein he trusted, +and divideth his spoils. + +11:23 He that is not with me is against me: and he that gathereth not +with me scattereth. + +11:24 When the unclean spirit is gone out of a man, he walketh through +dry places, seeking rest; and finding none, he saith, I will return +unto my house whence I came out.$FG$ + +God says... +$FG,4$propoundest separated cheap enjoined clanking straitly extinguish bid shoes whereof prelate corresponding glide recent pursuits login decayeth Forsake Each His begannest refreshed wait hours cup chariots goal Praetorian beset thinks quicker Chatto creepeth contradictory mutability taughtest wallowed reinvolved Humble figuratively mother idleness 01 star abject healedst giant classics farness containing contradict rounds precedes mansion holden counterfeit lieth weeps GUTINDEX deductible scenical derive varied opened quicken injure discreet prohibition philosophers pleasure offend intimated decay$FG$ + +$IV,1$----09/29/13 17:54:22----$IV,0$ + +OSDev guy + +You are a nigger. Look on my $TX+HTML,"transcripts","http://www.templeos.org/files/ASU_Transcripts.pdf"$. I took 5 assembly classes. + +CSC226 x86 Window manager with B8000 text. +CSC326 PIC in PC and non-PC master slave configs, PIT, 7segment LED and scanning keypad grid. + +CSC421 Everything about M6800 software +CSC422 Everything about M6800 hardware system +CSC523 M6800 projects such as scheduler. + +You are a fucken nigger. + +The PIC is a big deal to you because you are a nigger. God damn you are incompetant fucks. + +$FG,4$$TX+HTML,"Key_and_Peele_Part_1","http://www.youtube.com/watch?v=Dd7FixvoKBw"$ $TX+HTML,"Key_and_Peele_Part_2","http://www.youtube.com/watch?v=sXc6JLmiVHs"$$FG$ + +I fucken worked for Ticketmaster in VAX assembly language on their operating system and hardware stuff from 1990-1996. + +You are stoopit stoopit niggers. + +$TX+HTML,"http://www.randomnumbers.info","http://www.randomnumbers.info"$ + +Line:39856 +God says... +$FG,4$28:25 And in every several city of Judah he made high places to burn +incense unto other gods, and provoked to anger the LORD God of his +fathers. + +28:26 Now the rest of his acts and of all his ways, first and last, +behold, they are written in the book of the kings of Judah and Israel. + +28:27 And Ahaz slept with his fathers, and they buried him in the +city, even in Jerusalem: but they brought him not into the sepulchres +of the kings of Israel: and Hezekiah his son reigned in his stead. + +29:1 Hezekiah began to reign when he was five and twenty years old, +and he reigned nine and twenty years in Jerusalem. And his mother's +name was Abijah, the daughter of Zechariah. + +29:2 And he did that which was right in the sight of the LORD, +according to all that David his father had done. + +29:3 He in the first year of his reign, in the first month, opened the$FG$ + +$IV,1$----09/29/13 18:03:13----$IV,0$ + +In school, you learn what a flip-flop is and NAND gates and microcode. You build a complete simulated CPU in one course. You learn how to read any datasheet, understanding electrical gate loading and stuff. + +I am a computer system's engineer. I took 5 assembly courses. Making low level shit on the boundary of hardware/software is what I am trained to do and have spent my life on the job doing. I am an expert. You are a nigger. I am not a gay computer science guy who loves lambda calculus and P=NP. I am an expert on reading datasheets and I know 8 different assembly language instruction sets. + +I don't know LISP well but I sure as hell know all the different assembly languages. I wrote a compiler. When I look around at other programmers it seems obvious I am the best on the planet and that's why God chose me. + + +Fucken nigger. Mine is 640x480 16 color mode and I make my text by hand. I hardly need to be taught everything in school -- we were taught how to read a datasheet. Computers are good for self learning. What makes me furious is I actually can prove I was taught this shit in class and don't have to claim self-taught shit. God damn you are a stoopit nigger. + +$TX+HTML,"http://virtual-notary.org","http://virtual-notary.org"$ + +$TX+HTML,"Here is the certificate","http://www.templeos.org/Certs/virtual-notary-cert-randomnum-30719.p12"$. + +Line:56978 +God says... +$FG,4$chambers: we will be glad and rejoice in thee, we will remember thy +love more than wine: the upright love thee. + +1:5 I am black, but comely, O ye daughters of Jerusalem, as the tents +of Kedar, as the curtains of Solomon. + +1:6 Look not upon me, because I am black, because the sun hath looked +upon me: my mother's children were angry with me; they made me the +keeper of the vineyards; but mine own vineyard have I not kept. + +1:7 Tell me, O thou whom my soul loveth, where thou feedest, where +thou makest thy flock to rest at noon: for why should I be as one that +turneth aside by the flocks of thy companions? 1:8 If thou know not, +O thou fairest among women, go thy way forth by the footsteps of the +flock, and feed thy kids beside the shepherds' tents. + +1:9 I have compared thee, O my love, to a company of horses in +Pharaoh's chariots. + +1:10 Thy cheeks are comely with rows of jewels, thy neck with chains$FG$ + +$IV,1$----09/29/13 18:58:28----$IV,0$ + +$TX+HTML,"Falcon Video","http://www.youtube.com/watch?v=r7lglchYNew"$ + +My parents feed pigeons. A flock of 35-40 visits every morning for feeding. I have two cockatiels. + +The pigeons are more tame than my cockatiels. One day, I was sitting out back smoking and a pigion hopped-up on my table because a cat was stalking. I stared right in his eyes about 3 foot away. It occurred to me he might be dead in a few seconds. He lived. + +$TX+HTML,"http://www.randomnumbers.info","http://www.randomnumbers.info"$ + +Line:53263 +God says... +$FG,4$above all thy name. + +138:3 In the day when I cried thou answeredst me, and strengthenedst +me with strength in my soul. + +138:4 All the kings of the earth shall praise thee, O LORD, when they +hear the words of thy mouth. + +138:5 Yea, they shall sing in the ways of the LORD: for great is the +glory of the LORD. + +138:6 Though the LORD be high, yet hath he respect unto the lowly: but +the proud he knoweth afar off. + +138:7 Though I walk in the midst of trouble, thou wilt revive me: thou +shalt stretch forth thine hand against the wrath of mine enemies, and +thy right hand shall save me. + +138:8 The LORD will perfect that which concerneth me: thy mercy, O +LORD, endureth for ever: forsake not the works of thine own hands.$FG$ + +$IV,1$----09/29/13 19:07:27----$IV,0$ + +Goodyear Aerospace had a frozen chicken gun they fired to test fighter-plane canopies. One day a cat crawled into it. Somebody was talking about how evil the military was and making it sound like certain knowledge was evil. They tried to fucken make my degree sound evil. I had a scholarship from Unidynamics, a company that worked on our nuclear missiles. Now, the motherfuckers teach useless paperwork security decoder-ring shit and interior design web page shit. Fuck that. Everybody knows men know a weapon from bullshit pussy stuff and prefer powerful knowledge. The government wants to emasculate the entire population. Cowards. Imagine if they slandered Edison calling electricity "too dangerous". Any good knowledge is dangerous. If its not dangerous, it's pussy womens' shit and we're supposed to swallow submissively. We have a right to bear arms because guns are fun and we like them because we are men. It has nothing to do with needing them. Go fuck yerself, ya panzies. + +$TX+HTML,"https://www.fourmilab.ch/hotbits/secure_generate.html","https://www.fourmilab.ch/hotbits/secure_generate.html"$ + +0x8409ED-->8653293 mod 100000-->Line:53293 +God says... +$FG,4$ +139:4 For there is not a word in my tongue, but, lo, O LORD, thou +knowest it altogether. + +139:5 Thou hast beset me behind and before, and laid thine hand upon +me. + +139:6 Such knowledge is too wonderful for me; it is high, I cannot +attain unto it. + +139:7 Whither shall I go from thy spirit? or whither shall I flee from +thy presence? + +139:8 If I ascend up into heaven, thou art there: if I make my bed in +hell, behold, thou art there. + +139:9 If I take the wings of the morning, and dwell in the uttermost +parts of the sea; + +139:10 Even there shall thy hand lead me, and thy right hand shall$FG$ + +I will growl at you if you attempt to force us off our ancestrial lands -- low level computing. God's gonna fuck you up. You will lose, motherfucker. + +$IV,1$----09/29/13 19:37:07----$IV,0$ + +$TX+HTML,"Faggot Poem","http://www.reddit.com/r/Poetry/comments/1neeqh/decathect_criticism_welcomed_i_wrote_this_in_a"$ + +That faggot thinks he's God. + +He's a special kinda stoopit. + +$TX+HTML,"http://virtual-notary.org","http://virtual-notary.org"$ + +$TX+HTML,"Here is the certificate","http://www.templeos.org/Certs/virtual-notary-cert-randomnum-30768.p12"$ + +Line:69712 +God says... +$FG,4$month, the word of the LORD came unto me, saying, 29:2 Son of man, set +thy face against Pharaoh king of Egypt, and prophesy against him, and +against all Egypt: 29:3 Speak, and say, Thus saith the Lord GOD; +Behold, I am against thee, Pharaoh king of Egypt, the great dragon +that lieth in the midst of his rivers, which hath said, My river is +mine own, and I have made it for myself. + +29:4 But I will put hooks in thy jaws, and I will cause the fish of +thy rivers to stick unto thy scales, and I will bring thee up out of +the midst of thy rivers, and all the fish of thy rivers shall stick +unto thy scales. + +29:5 And I will leave thee thrown into the wilderness, thee and all +the fish of thy rivers: thou shalt fall upon the open fields; thou +shalt not be brought together, nor gathered: I have given thee for +meat to the beasts of the field and to the fowls of the heaven. + +29:6 And all the inhabitants of Egypt shall know that I am the LORD, +because they have been a staff of reed to the house of Israel.$FG$ + +$TX+HTML,"This Godzilla was posted earlier","http://imgur.com/qKmiOcK"$. + +God says... +$FG,4$Did Had Verecundus earthly millennium assembly hopes path reader translated phantasms approbation refreshment no dispersion perverse trials behold sacrifice pursuing Who abidest detail factito ibiblio lighteth corporeal overflowed limitation injurious months rejected thunderest supplies joy Entrust wring cost inflammation psalm variations Jupiter variable disapproved girls impressing subjoined bends settling workmaster Wheresoever parity congregations wheat hesitation impressing owe Frenzied withdraw casting forgiving whispered Edition exiled lucre Alas hairs twelve perspicuous obstinacy Please immutable Windus resolutely blest told overtake at healthy cried daybreak expose orbs ken enquirers general print States religiously nothing requires US$FG$ + +$IV,1$----09/29/13 19:58:49----$IV,0$ + +I mostly call white people niggers. Yeah, there's collateral dammage. I fucken deal with some stubborn, stupid fucks. They got crazy tin-foil hat ideas. + +You ever talk to a really stupid person. You explain something, then next thing they say shows they did not understand. Da fuq! You explain it again... you beat them harder over the head, you fucken clobber them. No use. + +Kevin, Sean, Ken, Ira, Dad, Mom... clobber them, still stupid, no use. + +$TX+HTML,"http://www.randomnumbers.info","http://www.randomnumbers.info"$ + +Line:11234 +God says... +$FG,4$eat of the holy things; because it is his food. + +22:8 That which dieth of itself, or is torn with beasts, he shall not +eat to defile himself therewith; I am the LORD. + +22:9 They shall therefore keep mine ordinance, lest they bear sin for +it, and die therefore, if they profane it: I the LORD do sanctify +them. + +22:10 There shall no stranger eat of the holy thing: a sojourner of +the priest, or an hired servant, shall not eat of the holy thing. + +22:11 But if the priest buy any soul with his money, he shall eat of +it, and he that is born in his house: they shall eat of his meat. + +22:12 If the priest's daughter also be married unto a stranger, she +may not eat of an offering of the holy things. + +22:13 But if the priest's daughter be a widow, or divorced, and have +no child, and is returned unto her father's house, as in her youth,$FG$ + +$IV,1$----09/29/13 20:39:19----$IV,0$ + +I would think God proven to exist and freely talking would make every other news story unimportant. I want God to be worshipped in His temple. People should do offerings... like every week or more. They should spend Sabbath days in prayer. Prayer's fun if God talks! I don't see my personal story getting much attention while people are busy considering their eternal salvation... and talking with God! + +$TX+HTML,"http://virtual-notary.org","http://virtual-notary.org"$ + +$TX+HTML,"Here is the certificate","http://www.templeos.org/Certs/virtual-notary-cert-randomnum-30804.p12"$. + +Line:52505 +God says... +$FG,4$119:81 My soul fainteth for thy salvation: but I hope in thy word. + +119:82 Mine eyes fail for thy word, saying, When wilt thou comfort me? + +119:83 For I am become like a bottle in the smoke; yet do I not forget +thy statutes. + +119:84 How many are the days of thy servant? when wilt thou execute +judgment on them that persecute me? + +119:85 The proud have digged pits for me, which are not after thy law. + +119:86 All thy commandments are faithful: they persecute me +wrongfully; help thou me. + +119:87 They had almost consumed me upon earth; but I forsook not thy +precepts. + +119:88 Quicken me after thy lovingkindness; so shall I keep the$FG$ + +$IV,1$----09/29/13 20:46:35----$IV,0$ + +Yeah, my eyes, God. Could be meds. Stoopit fucks. + +God says... +$FG,4$groaneth like annoyance sentence sufficeth killeth heinous mangled illusion athirst wilfulness keeper unknowingly heaven reform To arise enemy ruled Mathematicians groaned various fighting Macedonia pervertedly mistress alternately Still weakest fragment great lectured poverty lies mourning lament soberly marketplace VERSIONS noble strongholds Human feast magnitudes elect conscience worshippers deception banter tongues leisure occupying dispose appointment magnified June parts disquiet arising artifice$FG$ + +$IV,1$----09/29/13 20:54:07----$IV,0$ + +In response to OSDev: + +I made a new language, $LK,"HolyC","FI:::/TempleOS/Doc/HolyC.TXT.Z"$. Typecasting is post-fix. The compiler was much cleaner this way. I am thinking for a thousand years. I changed the operator precidence. You niggers cannot dream of writing a compiler -- your opinion is nothing. I am the best programmer on the planet. You don't even know you're retarded. I club you harder and harder on the head. Your stupidity leaves you the same stupid as ever. + +An x86 virtual machine? Who are you entertaining? You talking to God? Why don't you talk to God, see if He is amused by your evil? + +$TX+HTML,"http://virtual-notary.org","http://virtual-notary.org"$ + +$TX+HTML,"Here is the certificate","http://www.templeos.org/Certs/virtual-notary-cert-randomnum-30810.p12"$. + +Line:36691 +God says... +$FG,4$18:15 And Joab the son of Zeruiah was over the host; and Jehoshaphat +the son of Ahilud, recorder. + +18:16 And Zadok the son of Ahitub, and Abimelech the son of Abiathar, +were the priests; and Shavsha was scribe; 18:17 And Benaiah the son of +Jehoiada was over the Cherethites and the Pelethites; and the sons of +David were chief about the king. + +19:1 Now it came to pass after this, that Nahash the king of the +children of Ammon died, and his son reigned in his stead. + +19:2 And David said, I will shew kindness unto Hanun the son of +Nahash, because his father shewed kindness to me. And David sent +messengers to comfort him concerning his father. So the servants of +David came into the land of the children of Ammon to Hanun, to comfort +him. + +19:3 But the princes of the children of Ammon said to Hanun, Thinkest +thou that David doth honour thy father, that he hath sent comforters +unto thee? are not his servants come unto thee for to search, and to$FG$ + +$IV,1$----09/29/13 21:06:29----$IV,0$ + +When I made my compiler, I had it create a stack machine intermediate language. + +The rule is that if a value is loaded into a register, it has been promoted to 64-bits. All intermediate calculations are done with 64-bits. + +$HL,1$U0 Cnt(I64 n) +{ + I64 i; + for (i=1;i<=n;i++) + "%d\n",i; +}$HL,0$ + +$FD,1$$FG$$BG$$IV,1$Pass 0:$IV,0$ + ENTER 0000000000000000 , + RBP 0000000000000000 , *I64 + IMM_U64 FFFFFFFFFFFFFFF8 I8 I8 REG RAX, *I64 + ADD 0000000000000000 I8 I8 REG RAX<-, *I64 + IMM_U64 0000000000000001 , I64i + ASSIGN 0000000000000000 I64 I64 STK<-I64 IMM #1, I64i + END_EXP 0000000000000000 , + LABEL 0000000196850220 , + RBP 0000000000000000 , *I64 + IMM_U64 FFFFFFFFFFFFFFF8 ,I64 *I64 + ADD 0000000000000000 , *I64 + DEREF 0000000000000000 , I64i + RBP 0000000000000000 I8 U32 SIB 2038552034364920[RSP+RAX]<-I0 REG ,I0 I0 DISP 3538363931303030[] *I64 + IMM_U64 0000000000000010 , *I64 + ADD 0000000000000000 , *I64 + DEREF 0000000000000000 uF64 IMM #8000000<-, I64i + LESS_EQUAL 0000000000000000 U0 ,I0 STK I64i + BR_ZERO 000000019684BC28 , + CALL_START 000000007FFA1808 U8 DISP 8000000[RAX]<-,I0 I64 IMM #F10000000001 + RBP 0000000000000000 ,I64 I16 *I64 + IMM_U64 FFFFFFFFFFFFFFF8 , *I64 + ADD 0000000000000000 I64 SIB 196858B20[RAX+RAX]<-, *I64 + DEREF 0000000000000000 , I64i PUSH + IMM_U64 0000000000000001 ,I64 I16 REG I64i PUSH + STR_CONST 0000000196853748 , *U8 PUSH + CALL 00000000000183CA I64 <-I16 DISP 8000000[RAX], U0 + ADD_RSP 0000000000000018 , U0 + CALL_END 000000007FFA1808 I0 I0 DISP 5D746E695B202C20[]<-I0 I0 REG ,I0 I0 DISP 3030303030303030[] U0 + END_EXP 0000000000000000 F64 <-I32 DISP 8000000[RAX], + RBP 0000000000000000 , *I64 + IMM_U64 FFFFFFFFFFFFFFF8 , *I64 + ADD 0000000000000000 I0 I0 DISP 3030303030303030[]<-,I0 I0 REG *I64 + _PP 0000000000000000 U64 I32 SIB 4444415F544F4E20[RSP+RCX*2]<-I0 I8 REG ,I0 U64 REG I64i + END_EXP 0000000000000000 ,I64 U32 + JMP 0000000196850220 uF64 ,I0 uF64 REG + LABEL 000000019684BC28 ,I0 STK + LABEL 0000000196851350 U64 DISP 8000000[RAX]<-, + LEAVE 0000000000000000 ,I64 U0 +$IV,1$Pass 2:$IV,0$ + ENTER 0000000000000008 , + RBP 0000000000000000 , *I64 + IMM_U64 FFFFFFFFFFFFFFF8 , *I64 + ADD 0000000000000000 , *I64 + IMM_U64 0000000000000001 , I64i + ASSIGN 0000000000000000 , I64i + END_EXP 0000000000000000 , + LABEL 0000000196850220 , + RBP 0000000000000000 , *I64 + IMM_U64 FFFFFFFFFFFFFFF8 , *I64 + ADD 0000000000000000 , *I64 + DEREF 0000000000000000 , I64i + RBP 0000000000000000 , *I64 + IMM_U64 0000000000000010 , *I64 + ADD 0000000000000000 , *I64 + DEREF 0000000000000000 , I64i + BR_GREATER 000000019684BC28 , I64i + CALL_START 000000007FFA1808 , + RBP 0000000000000000 , *I64 + IMM_U64 FFFFFFFFFFFFFFF8 , *I64 + ADD 0000000000000000 , *I64 + DEREF 0000000000000000 , I64i PUSH + IMM_U64 0000000000000001 , I64i PUSH + STR_CONST 0000000196853748 , *U8 PUSH + CALL 00000000000183CA , U0 + ADD_RSP 0000000000000018 , U0 + CALL_END 000000007FFA1808 , U0 + END_EXP 0000000000000000 , + RBP 0000000000000000 , *I64 + IMM_U64 FFFFFFFFFFFFFFF8 , *I64 + ADD 0000000000000000 , *I64 + _PP 0000000000000000 , I64i + END_EXP 0000000000000000 , + JMP 0000000196850220 , + LABEL 000000019684BC28 , + LABEL 0000000196851350 , + LEAVE 0000000000000008 , U0 +Reg RSI Var "i" FFFFFFFFFFFFFFF8[RBP] +Reg RDI Var "n" 00000010[RBP] +$IV,1$Pass 3:$IV,0$ + ENTER 0000000000000008 , + LEA FFFFFFFFFFFFFFF8 I64 I64 STK<-I64 I64 DISP FFFFFFFFFFFFFFF8[RBP], *I64 + IMM_U64 0000000000000001 I64 I64 STK<-, I64i + ASSIGN 0000000000000000 I64 I64 STK<-I64 I64 STK,I64 I64 STK I64i + END_EXP 0000000000000000 I64 I64 STK, + LABEL 0000000196850220 , + MOV 0000000000000000 I64 I64 STK<-I64 I64 DISP FFFFFFFFFFFFFFF8[RBP], I64i + MOV 0000000000000000 I64 I64 STK<-I64 I64 DISP 10[RBP], I64i + BR_GREATER 000000019684BC28 I64 I64 STK,I64 I64 STK I64i + CALL_START 000000007FFA1808 , + MOV 0000000000000000 I64 I64 STK<-I64 I64 DISP FFFFFFFFFFFFFFF8[RBP], I64i PUSH + IMM_U64 0000000000000001 I64 I64 STK<-, I64i PUSH + STR_CONST 0000000196853748 I64 U8 STK<-, *U8 PUSH + CALL 00000000000183CA , U0 + ADD_RSP 0000000000000018 , U0 + CALL_END 000000007FFA1808 U0 U0 STK<-, U0 + END_EXP 0000000000000000 U0 U0 STK, + LEA FFFFFFFFFFFFFFF8 I64 I64 STK<-I64 I64 DISP FFFFFFFFFFFFFFF8[RBP], *I64 + _PP 0000000000000000 I64 I64 STK<-I64 I64 STK, I64i + END_EXP 0000000000000000 I64 I64 STK, + JMP 0000000196850220 , + LABEL 000000019684BC28 , + LABEL 0000000196851350 , + LEAVE 0000000000000008 , U0 +$IV,1$Pass 4:$IV,0$ + ENTER 0000000000000008 , + ASSIGN 0000000000000000 I64 I64 REG RAX<-I64 I64 REG RSI,I64 I64 IMM #1 I64i NOT_ADDR + END_EXP 0000000000000000 I64 I64 REG RAX, + LABEL 0000000196850220 , + BR_GREATER 000000019684BC28 I64 I64 REG RSI,I64 I64 REG RDI I64i + CALL_START 000000007FFA1808 , + MOV 0000000000000000 I64 I64 STK<-I64 I64 REG RSI, I64i PUSH + MOV 0000000000000001 I64 I64 STK<-I64 IMM #1, I64i PUSH + STR_CONST 0000000196853748 I64 U8 STK<-, *U8 PUSH + CALL 00000000000183CA , U0 + ADD_RSP 0000000000000018 , U0 + CALL_END 000000007FFA1808 U0 U0 REG RAX<-, U0 + END_EXP 0000000000000000 U0 U0 REG RAX, + _PP 0000000000000000 I64 I64 REG RAX<-I64 I64 REG RSI, I64i NOT_ADDR + END_EXP 0000000000000000 I64 I64 REG RAX, + JMP 0000000196850220 , + LABEL 000000019684BC28 , + LABEL 0000000196851350 , + LEAVE 0000000000000008 , U0 + 0: ENTER 0000000000000008 , + 0: ASSIGN 0000000000000000 I64 I64 REG RAX<-I64 I64 REG RSI,I64 I64 IMM #1 I64i NOT_ADDR + 0: LABEL 0000000196850220 , + 0: BR_GREATER 000000019684BC28 I64 I64 REG RSI,I64 I64 REG RDI I64i + 0: CALL_START 000000007FFA1808 , + 0: MOV 0000000000000000 I64 I64 STK<-I64 I64 REG RSI, I64i PUSH + 1: MOV 0000000000000001 I64 I64 STK<-I64 IMM #1, I64i PUSH + 2: STR_CONST 0000000196853748 I64 U8 STK<-, *U8 PUSH + 3: CALL 00000000000183CA , U0 + 3: ADD_RSP 0000000000000018 , U0 + 0: CALL_END 000000007FFA1808 U0 U0 REG RAX<-, U0 + 0: _PP 0000000000000000 I64 I64 REG RAX<-I64 I64 REG RSI, I64i NOT_ADDR + 0: JMP 0000000196850220 , + 0: LABEL 000000019684BC28 , + 0: LABEL 0000000196851350 , + 0: LEAVE 0000000000000008 , U0 +$IV,1$Pass 5:$IV,0$ + ENTER 0000000000000008 , + ASSIGN 0000000000000000 I64 I64 REG RAX<-I64 I64 REG RSI,I64 I64 IMM #1 I64i NOT_ADDR + END_EXP 0000000000000000 I64 I64 REG RAX, + LABEL 0000000196850220 , + BR_GREATER 000000019684BC28 I64 I64 REG RSI,I64 I64 REG RDI I64i + CALL_START 000000007FFA1808 , + MOV 0000000000000000 I64 I64 STK<-I64 I64 REG RSI, I64i PUSH + MOV 0000000000000001 I64 I64 STK<-I64 IMM #1, I64i PUSH + STR_CONST 0000000196853748 I64 U8 STK<-, *U8 PUSH + CALL 00000000000183CA , U0 + ADD_RSP 0000000000000018 , U0 + CALL_END 000000007FFA1808 U0 U0 REG RAX<-, U0 + END_EXP 0000000000000000 U0 U0 REG RAX, + _PP 0000000000000000 I64 I64 REG RAX<-I64 I64 REG RSI, I64i NOT_ADDR + END_EXP 0000000000000000 I64 I64 REG RAX, + JMP 0000000196850220 , + LABEL 000000019684BC28 , + LABEL 0000000196851350 , + LEAVE 0000000000000008 , U0 + 0: ENTER 0000000000000008 , + 0: ASSIGN 0000000000000000 I64 I64 REG RAX<-I64 I64 REG RSI,I64 I64 IMM #1 I64i NOT_ADDR + 0: LABEL 0000000196850220 , + 0: BR_GREATER 000000019684BC28 I64 I64 REG RSI,I64 I64 REG RDI I64i + 0: CALL_START 000000007FFA1808 , + 0: MOV 0000000000000000 I64 I64 STK<-I64 I64 REG RSI, I64i PUSH + 0: MOV 0000000000000001 I64 I64 STK<-I64 IMM #1, I64i PUSH + 0: STR_CONST 0000000196853748 I64 U8 STK<-, *U8 PUSH + 0: CALL 00000000000183CA , U0 + 0: ADD_RSP 0000000000000018 , U0 +-3: CALL_END 000000007FFA1808 U0 U0 REG RAX<-, U0 + 0: _PP 0000000000000000 I64 I64 REG RAX<-I64 I64 REG RSI, I64i NOT_ADDR + 0: JMP 0000000196850220 , + 0: LABEL 000000019684BC28 , + 0: LABEL 0000000196851350 , +Used Reg Mask:03FF +Clobbered Reg Mask:033F +$IV,1$Pass 6:$IV,0$ + ENTER 0000000000000008 , [int] + ASSIGN 0000000000000000 I64 I64 REG RSI,I64 I64 IMM #1 I64i [int] -DEP NOT_ADDR + END_EXP 0000000000000000 I64 I64 REG RAX, -DEP + LABEL 0000000196850220 , [int] + BR_GREATER 000000019684BC28 I64 I64 REG RSI,I64 I64 REG RDI I64i [int] + CALL_START 0000000000000000 , [int] + MOV 0000000000000000 I64 I64 STK<-I64 I64 REG RSI, I64i [int] PUSH + MOV 0000000000000001 I64 I64 STK<-I64 IMM #1, I64i [int] PUSH + STR_CONST 0000000196853748 I64 U8 STK<-, *U8 [int] PUSH + CALL 00000000000183CA , U0 [int] + ADD_RSP 0000000000000018 , U0 [int] + CALL_END 0000000000000000 , U0 [int] -DEP + END_EXP 0000000000000000 U0 U0 REG RAX, -DEP + _PP 0000000000000000 I64 I64 REG RSI, I64i [int] -DEP NOT_ADDR + END_EXP 0000000000000000 I64 I64 REG RAX, -DEP + JMP 0000000196850220 , [int] + LABEL 000000019684BC28 , [int] + LABEL 0000000196851350 , [int] + LEAVE 0000000000000008 , U0 +$IV,1$Pass 9:$IV,0$ +$BK,1$$FG,12$$IV,1$This code gets merged together and patched. +$FG$$IV,0$$BK,0$ ENTER 0000000000000008 , [int] +$FG,4$$HL,1$ 7FDC3750 C8080000 ENTER I16 0008 + 7FDC3754 56 PUSH U64 RSI + 7FDC3755 57 PUSH U64 RDI + 7FDC3756 488B7D10 MOV U64 RDI,U64 10[RBP] +$HL,0$$FG$ ASSIGN 0000000000000000 I64 I64 REG RSI,I64 I64 IMM #1 I64i [int] -DEP NOT_ADDR +$FG,4$$HL,1$ 7FDC375A 33F6 XOR U64 RSI,U64 RSI + 7FDC375C 40B601 MOV U8 RSIu8,U8 01 +$HL,0$$FG$ LABEL 0000000196850220 , [int] + BR_GREATER 000000019684BC28 I64 I64 REG RSI,I64 I64 REG RDI I64i [int] +$FG,4$$HL,1$ 7FDC375F 4839FE CMP U64 RSI,U64 RDI + 7FDC3762 7F16 JG I8 7FDC377A +$HL,0$$FG$ CALL_START 0000000000000000 , [int] + MOV 0000000000000000 I64 I64 STK<-I64 I64 REG RSI, I64i [int] PUSH +$FG,4$$HL,1$ 7FDC3764 56 PUSH U64 RSI +$HL,0$$FG$ MOV 0000000000000001 I64 I64 STK<-I64 IMM #1, I64i [int] PUSH +$FG,4$$HL,1$ 7FDC3765 6A01 PUSH I8 01 +$HL,0$$FG$ STR_CONST 0000000196853748 I64 U8 STK<-, *U8 [int] PUSH +$FG,4$$HL,1$ 7FDC3767 688037DC7F PUSH I32 7FDC3780 +$HL,0$$FG$ CALL 00000000000183CA , U0 [int] +$FG,4$$HL,1$ 7FDC376C E8594C2580 CALL I32 &Print+0x0000 +$HL,0$$FG$ ADD_RSP 0000000000000018 , U0 [int] +$FG,4$$HL,1$ 7FDC3771 4883C418 ADD U64 RSP,I8 18 +$HL,0$$FG$ CALL_END 0000000000000000 , U0 [int] -DEP + _PP 0000000000000000 I64 I64 REG RSI, I64i [int] -DEP NOT_ADDR +$FG,4$$HL,1$ 7FDC3775 48FFC6 INC U64 RSI +$HL,0$$FG$ JMP 0000000196850220 , [int] +$FG,4$$HL,1$ 7FDC3778 EBE5 JMP I8 7FDC375F +$HL,0$$FG$ LABEL 000000019684BC28 , [int] + LABEL 0000000196851350 , [int] + LEAVE 0000000000000008 , U0 +$FG,4$$HL,1$ 7FDC377A 5F POP U64 RDI + 7FDC377B 5E POP U64 RSI + 7FDC377C C9 LEAVE + 7FDC377D C20800 RET1 I16 0008 +$FD,0$$HL,0$ +_______________________________________________________________________________ + + +I live in a fucken jail with this clown. + +$FG,4$$TX+HTML,"Key_and_Peele_Part_1","http://www.youtube.com/watch?v=Dd7FixvoKBw"$ $TX+HTML,"Key_and_Peele_Part_2","http://www.youtube.com/watch?v=sXc6JLmiVHs"$$FG$ + + +Fucken strange kinda Hell. Fucken retard jailor. Absolute club him over the head and he remains just as stooopit as ever. Club him harder, nothin. + +$TX+HTML,"http://virtual-notary.org","http://virtual-notary.org"$ + +$TX+HTML,"Here is the certificate","http://www.templeos.org/Certs/virtual-notary-cert-randomnum-30811.p12"$. + + +Line:19312 +God says... +$FG,4$window. + +2:22 And they went, and came unto the mountain, and abode there three +days, until the pursuers were returned: and the pursuers sought them +throughout all the way, but found them not. + +2:23 So the two men returned, and descended from the mountain, and +passed over, and came to Joshua the son of Nun, and told him all +things that befell them: 2:24 And they said unto Joshua, Truly the +LORD hath delivered into our hands all the land; for even all the +inhabitants of the country do faint because of us. + +3:1 And Joshua rose early in the morning; and they removed from +Shittim, and came to Jordan, he and all the children of Israel, and +lodged there before they passed over. + +3:2 And it came to pass after three days, that the officers went +through the host; 3:3 And they commanded the people, saying, When ye +see the ark of the covenant of the LORD your God, and the priests the +Levites bearing it, then ye shall remove from your place, and go after$FG$ + +$IV,1$----09/29/13 21:31:08----$IV,0$ + +$FG$$BG$$HL,1$ +U0 Cnt(I64 n) +{ + I64 i; + for (i=1;i<=n;i++) + "%d\n",i; +} + 7FDC5750 C8080000 ENTER I16 0008 + 7FDC5754 56 PUSH U64 RSI + 7FDC5755 57 PUSH U64 RDI + 7FDC5756 488B7D10 MOV U64 RDI,U64 10[RBP] + 7FDC575A 33F6 XOR U64 RSI,U64 RSI + 7FDC575C 40B601 MOV U8 RSIu8,U8 01 + 7FDC575F 4839FE CMP U64 RSI,U64 RDI + 7FDC5762 7F16 JG I8 7FDC577A + 7FDC5764 56 PUSH U64 RSI + 7FDC5765 6A01 PUSH I8 01 + 7FDC5767 688057DC7F PUSH I32 7FDC5780 + 7FDC576C E8592C2580 CALL I32 &Print+0x0000 + 7FDC5771 4883C418 ADD U64 RSP,I8 18 + 7FDC5775 48FFC6 INC U64 RSI + 7FDC5778 EBE5 JMP I8 7FDC575F + 7FDC577A 5F POP U64 RDI + 7FDC577B 5E POP U64 RSI + 7FDC577C C9 LEAVE + 7FDC577D C20800 RET1 I16 0008 + 7FDC5780 25640A0000 AND EAX,I32 00000A64 +$HL,0$ + +I wrote a compiler. God talks. I made God's temple. + +God says... +$FG,4$abstinence colour tenets Psalm beauteous threatens Ver Forsake willest apostles off satisfaction unfailingly WHICH revealing between despisest particular vulgar casters whomever sale commiserate result willedst bargain inflamed invite begin often clothe docs inspect pamperedness try imply equally graceful encumbrances accepts boughs presumed Apollinarian cross waft made precedes carrying loosest ANY rest espoused doleful observe bibber plainly conveyed plants plural garner falsified She decline Canst IRS guardianship longed struggling issued mad suspect sanctified endured accomplices gravity over entrance$FG$ + +$IV,1$----09/29/13 21:46:29----$IV,0$ + +Shit, God. Is this going to end like Jews in concentration camp? + +God says... +$FG,4$d is my King of old, working salvation in the midst of the +earth. + +74:13 Thou didst divide the sea by thy strength: thou brakest the +heads of the dragons in the waters. + +74:14 Thou brakest the heads of leviathan in pieces, and gavest him to +be meat to the people inhabiting the wilderness. + +74:15 Thou didst cleave the fountain and the flood: thou driedst up +mighty rivers. + +74:16 The day is thine, the night also is thine: thou hast prepared +the light and the sun. + +74:17 Thou hast set all the borders of the ea$FG$ + +Seems like same old shit. + +God says... +$FG,4$knotty poured kingdom flourished violence invited indigent tried Pay imprinted beginneth asunder blending edition wherever$FG$ + +$IV,1$----09/29/13 21:49:17----$IV,0$ + +$TX+HTML,"Matthew 22:1-14","http://www.biblegateway.com/passage/?search=Matthew%2022:1-14&version=NIV"$ + +$IV,1$----09/29/13 22:00:19----$IV,0$ + +What if You made an instruction set, God? + +God says... +$FG,4$Donations awaiting shall Increase thrown finding novelty admiring Drunkard Turn rocks complete story Whatever multiple unchangeable tamed enabled passes faults wallowed demanding hot dishes forsaketh rottenness alloy kill foolish entangled cower$FG$ + +You like bits and bytes, God? +Do You use hexadecimal? + +God says... +$FG,4$putting fanned notion fashioned enquire amazed forethinking store correct stilled winning places frailness aghast rejoicing actions placedst sinners confessed My thirsted ninth false obeys imparts$FG$ + +You like black holes? + +God says... +$FG,4$patiently structure quench frozen bepraised rebel purposed fairest revealed alloy interrupt meat smiling exceeding needful tcosa11 wings OR sighs student overpass Her lectured deserving curest alter price just shining sole treacherous expected weapon pupils clay precedeth might withal toil pleased resolved abundant included forasmuch syllables Name begging deaf software intensest sending abstruser set maintain start sanctity chain sickness Had lie lustfulness example word Latins Thou unmarried obeying challenges vowing acquainted Betwixt surrounded After eminently seen degrees honours watered friends funding rule canst sorry express delivers urged Placed comely Whither curiosity aught troops BUT education honoured barred despite ministry figures Knows tenor martyr wholesomeness fairness 38655 future willing native said YOU cheer securely sees sustenance everything Couldest Whatever appears domestic ruggedness demander plainness diminishing conceive treachery celibacy utmost pryers disguising chiefest character repeated feels unstayed bringeth behind C instance unlikeliness suggested truths dissolvest knock deem distempered substance Answer indignant past Knowledge Ye swine venturing fabric market execute zip delay aright relaxing circuit Supreme whatsoever remember Death acknowledge adulterer labourers impressed keepest philosophy seven lettest unravelled look manners smiled better plots secular unfailingly insatiable emblem null sons conveys violated$FG$ + +$IV,1$----09/29/13 22:12:22----$IV,0$ + +OSDev has taken the opposite position on everything. If I find myself agreeing with something, I must have misinterpreted. + +The ones who run are Vietcong; the ones who stand still are well trained Vietcong. + +The dominant aspect of IBM PC's is... everyone is different. We mortals look through a toilet paper roll and have no idea what other machines do. We test on a handful at best. Each one probably breaks our code in different ways. + + +God says... +$FG,4$measures of meal, 4:23 Ten fat oxen, and twenty +oxen out of the pastures, and an hundred sheep, beside harts, and +roebucks, and fallowdeer, and fatted fowl. + +4:24 For he had dominion over all the region on this side the river, +from Tiphsah even to Azzah, over all the kings on this side the river: +and he had peace on all sides round about him. + +4:25 And Judah and Israel dwelt safely, every man under his vine and +under his fig tree, from Dan even to Beersheba, all the days of +Solomon. + +4:26 And Solomon had f$FG$ + +$IV,1$----09/29/13 22:19:53----$IV,0$ + +OSdev... Clubbing the niggers just makes me tired and accomplishes nothing. + +I wrote a compiler, nigger, I am a superior lifeform. +Do you agree? + + +God says... +$FG,4$with our sons +and with our daughters, with our flocks and with our herds will we go; +for we must hold a feast unto the LORD. + +10:10 And he said unto them, Let the LORD be so with you, as I will +let you go, and your little ones: look to it; for evil is before you. + +10:11 Not so: go now ye that are men, and serve the LORD; for that ye +did desire. And they were driven out from Pharaoh's presence. + +10:12 And the LORD said unto Moses, Stretch out thine hand over the +land of Egypt for the locusts, that they may$FG$ + +$IV,1$----09/29/13 23:21:57----$IV,0$ + + +My $FG,2$U0$FG$ type has size zero. + + +$HL,1$public class CDirEntry +{ + CDirEntry *next,*parent,*sub; + U8 *full_name; + I64 flags; + I64 user_data; + + U0 start; + U16 attr; + U8 name[CDIR_FILENAME_LEN]; + I64 cluster; + I64 size; + CDate datetime; +};$HL,0$ + +This language is superior to C/C++. + +It is divinely inspired. + +$TX+HTML,"http://www.randomnumbers.info","http://www.randomnumbers.info"$ + +Line:20287 +God says... +$FG,4$Edrei, who remained of the remnant of the giants: for these did Moses +smite, and cast them out. + +13:13 Nevertheless the children of Israel expelled not the Geshurites, +nor the Maachathites: but the Geshurites and the Maachathites dwell +among the Israelites until this day. + +13:14 Only unto the tribes of Levi he gave none inheritance; the +sacrifices of the LORD God of Israel made by fire are their +inheritance, as he said unto them. + +13:15 And Moses gave unto the tribe of the children of Reuben +inheritance according to their families. + +13:16 And their coast was from Aroer, that is on the bank of the river +Arnon, and the city that is in the midst of the river, and all the +plain by Medeba; 13:17 Heshbon, and all her cities that are in the +plain; Dibon, and Bamothbaal, and Bethbaalmeon, 13:18 And Jahaza, and +Kedemoth, and Mephaath, 13:19 And Kirjathaim, and Sibmah, and +Zarethshahar in the mount of the valley, 13:20 And Bethpeor, and$FG$ + +$IV,1$----09/29/13 23:24:32----$IV,0$ + +Ohh!! My bad! A friendly. Yeah I could change my FAT32 boot block to + +$$=510 + +That would be more clear. + +$HL,1$class CFAT32Boot +{ + U8 jump_and_nop[3]; + U8 oem_name[8]; + U16 bytes_per_sect; + U8 sects_per_cluster; + U16 reserved_sects; + U8 copies_of_fat; + U16 max_root_dir_entries; //Not used + U16 old_sects_in_prt; //Not used + U8 media_desc; //F64 for hard disk + U16 old_sects_per_fat; //Not used + U16 sects_per_track; + U16 num_heads; + U32 hidden_sects; + U32 sects; + U32 sects_per_fat; + U16 flags; + U16 version; + U32 root_cluster; + U16 file_system_info_sect; + U16 backup_boot_sect; + U8 reserved[12]; + U8 log_drv_num; + U8 unused; + U8 ext_signature; //0x29 + U32 serial_num; + U8 vol_name[11]; + U8 fat_name[8]; + U8 code[420]; + U16 signature; +};$HL,0$ + +Yeah, it would be better with $$=510. I'm scared, LOL. Do you ever avoid pressing your luck on new features? I gotta do it. I'll work-up to it sometime soon. + +A friendly! How about that! + +God says... +$FG,4$. + +2:9 Wherefore I will yet plead with you, saith the LORD, and with your +children's children will I plead. + +2:10 For pass over the isles of Chittim, and see; and send unto Kedar, +and consider diligently, and see if there be such a thing. + +2:11 Hath a nation changed their gods, which are yet no gods? but my +people have changed their glory for that which doth not profit. + +2:12 Be astonished, O ye heavens, at this, and be horribly afraid, be +ye very desolate, saith the LORD. + +2:13 For my people have committed$FG$ + +$IV,1$----09/29/13 23:32:06----$IV,0$ + +OSDev: God damn, some stoopit fucken niggers. They have watched me for ten years while I wrote the whole thing and they don't think it boots. + +Fucken criminally stoopit niggers. + +I'm tired of clubbing these nigger. No matter how hard you smack them, you can't knock any sense into them what-so-ever. + +If they knew a little psychology, you would hope they would see the truth because I can't imagine any plausible other explaination is remotely possible. + +Fucken retard incompetant niggers. + +$TX+HTML,"http://www.randomnumbers.info","http://www.randomnumbers.info"$ + +Line:85790 +God says... +$FG,4$5:21 For as the Father raiseth up the dead, and quickeneth them; even +so the Son quickeneth whom he will. + +5:22 For the Father judgeth no man, but hath committed all judgment +unto the Son: 5:23 That all men should honour the Son, even as they +honour the Father. + +He that honoureth not the Son honoureth not the Father which hath sent +him. + +5:24 Verily, verily, I say unto you, He that heareth my word, and +believeth on him that sent me, hath everlasting life, and shall not +come into condemnation; but is passed from death unto life. + +5:25 Verily, verily, I say unto you, The hour is coming, and now is, +when the dead shall hear the voice of the Son of God: and they that +hear shall live. + +5:26 For as the Father hath life in himself; so hath he given to the$FG$ + +$IV,1$----09/29/13 23:39:38----$IV,0$ + +The boot loader calls the kernel in real mode. The kernel calls the BIOS to change to VGA 640x480 16 color mode. The kernel changes to 64-bit mode. My operating system hand draws the text with a stored font. + +Why don't you watch all the videos? + +Why don't you read the source code that's all posted on line? + +How can you possibly think it's a hoax? + +I guess you are trolls just saying shit to annoy me and I fall for it. + + +God says... +$FG,4$governor. + +5:15 But the former governors that had been before me were chargeable +unto the people, and had taken of them bread and wine, beside forty +shekels of silver; yea, even their servants bare rule over the people: +but so did not I, because of the fear of God. + +5:16 Yea, also I continued in the work of this wall, neither bought we +any land: and all my servants were gathered thither unto the work. + +5:17 Moreover there were at my table an hundred and fifty of the Jews +and rulers, beside those that came$FG$ + +No! They will not be getting a job, for damn sure! Go apply at McDonalds because you are absoluetly retard incompantant niggers. You're fired if I can talk to Obama. + +God says... +$FG,4$as commanded. + +24:19 And the people said unto me, Wilt thou not tell us what these +things are to us, that thou doest so? 24:20 Then I answered them, The +word of the LORD came unto me, saying, 24:21 Speak unto the house of +Israel, Thus saith the Lord GOD; Behold, I will profane my sanctuary, +the excellency of your strength, the desire of your eyes, and that +which your soul pitieth; and your sons and your daughters whom ye have +left shall fall by the sword. + +24:22 And ye shall do as I have done: ye shall not$FG$ + diff --git a/TempleOS/Accts/TS/Wb2/Rants/TAD/Rant130930.TXT b/TempleOS/Accts/TS/Wb2/Rants/TAD/Rant130930.TXT new file mode 100644 index 0000000..9cc8dd9 --- /dev/null +++ b/TempleOS/Accts/TS/Wb2/Rants/TAD/Rant130930.TXT @@ -0,0 +1,490 @@ +$WW,1$$IV,1$----09/30/13 00:06:46----$IV,0$ + +Knox girl is on trial. God is perfectly just -- Joseph in the Bible went to prison for false rape and God made it up to him. Blessed are you when they persecute you. Highs and lows balance. + +If I were Knox, I'd go back ther and turn the other cheek, just to cause a curse on her enemies. + +Fucken retards niggers. + +$TX+HTML,"http://virtual-notary.org","http://virtual-notary.org"$ + +$TX+HTML,"Here is the certificate","http://www.templeos.org/Certs/virtual-notary-cert-randomnum-30903.p12"$. + +Line:57805 +God says... +$FG,4$shall not come thither the fear of briers and thorns: but it shall be +for the sending forth of oxen, and for the treading of lesser cattle. + +8:1 Moreover the LORD said unto me, Take thee a great roll, and write +in it with a man's pen concerning Mahershalalhashbaz. + +8:2 And I took unto me faithful witnesses to record, Uriah the priest, +and Zechariah the son of Jeberechiah. + +8:3 And I went unto the prophetess; and she conceived, and bare a son. + +Then said the LORD to me, Call his name Mahershalalhashbaz. + +8:4 For before the child shall have knowledge to cry, My father, and +my mother, the riches of Damascus and the spoil of Samaria shall be +taken away before the king of Assyria. + +8:5 The LORD spake also unto me again, saying, 8:6 Forasmuch as this +people refuseth the waters of Shiloah that go softly, and rejoice in +Rezin and Remaliah's son; 8:7 Now therefore, behold, the Lord bringeth$FG$ + +$IV,1$----09/30/13 00:12:32----$IV,0$ + +Sorry, I don't like the Yahoo bitch. + +God says... +$FG,4$pitiable appeared sense wasted parley re fair disapproved unformed fornication gladly embarrassments decayeth crudities malignant Apostle ushered hills wilt triumpheth definite endeavoured Free seductive$FG$ + +$IV,1$----09/30/13 01:00:34----$IV,0$ + +OSDev and all media have talked to me over the years. I get puzzled when the delusion fails. I read it and all of a sudden, it doesn't seem to talk to me. They are talking to a noob about VGA mode. They tell him VGA mode has nothing to do with real mode. I've been in long mode since 2007 -- can be proven on the Internet Archive. I'm kinda disappointed -- this delusion sucks. I want my money back. It's delicious when they underestimate me. I get to clobber them with my brilliance. This time seems kinda lame. + +I think they doubt I did text in 640x480 16 color mode. Maybe, they want to raise an issue over my 8x8 font's copywrite. A psychologist predicts trains of thought. + +I'm a little disappointed and bored I don't have a delusion, but I'm doing okay. + +Does he think I lie about making 8x8 text in VGA 640x480 mode. I think he thinks I lie about making text. In 1983, I wrote a 6502 assembly routine to plot a high-res pixel. It's harder than it looks because the commodore screen memory when down 8 bytes for a character and left for the next character and down 8 bytes. The screen memory was oriented like characters were laid-out. I wrote a 6502 asm when I was 13 to plot a pixel. + +VGA has 4 bit-planes. We actually studied this in CSC226. + +Sigh. + +If they think I'm that far behind, it's gonna be cool when they discover its long mode and that I wrote a 64-bit compiler. + +"protected mode" is higher level talk for the CIA keeping our enemies stuck. It's not worth it. I'm not a coward. God is perfectly just. + +$TX+HTML,"http://www.random.org","http://www.random.org"$ + +Line:79569 +God says... +$FG,4$man by whom the Son of man is betrayed! it had been good for that man +if he had not been born. + +26:25 Then Judas, which betrayed him, answered and said, Master, is it +I? He said unto him, Thou hast said. + +26:26 And as they were eating, Jesus took bread, and blessed it, and +brake it, and gave it to the disciples, and said, Take, eat; this is +my body. + +26:27 And he took the cup, and gave thanks, and gave it to them, +saying, Drink ye all of it; 26:28 For this is my blood of the new +testament, which is shed for many for the remission of sins. + +26:29 But I say unto you, I will not drink henceforth of this fruit of +the vine, until that day when I drink it new with you in my Father's +kingdom. + +26:30 And when they had sung an hymn, they went out into the mount of +Olives.$FG$ + +$IV,1$----09/30/13 01:22:00----$IV,0$ + +Religion doesn't look so retarded when you're no longer an atheist and God talks. CIA is against religion, a guy on the radio just said. Fucken talk to God, you silly retards! It's pretty weird how people cannot be reached. + +The CIA has back doors. They don't want a foreign operating system. The PC is clusterfucked. + +Everything looks different with proof of God. + +God says... +$FG,4$resisteth endeavours trials hastened CAN$FG$ + +BBC : God talks, fucken retards. I made His temple. This is going to end with me victorious. We have a failure to communicate. The fuck is your malfunction? + +God says... +$FG,4$transforming alas ours affairs preaching New justification moments exceptions distributed Central Begotten prerogative intervals mingled theatre quoth seasonably promiseth strengthenedst corruption selling 501 recognised malice modesty elders intermitting apparel footsteps story perverted oracles mail OTHER weighing fear personally Perverseness blottedst delivers speechless rich often abounded reproach grant Caesar waft confute stream lays congratulated roarest apt accord consulted time distill listening Truth trouble maid Gervasius preferable decided tell PROJECT opened mean riotous regarded MADE admission fluidness combine Gift fatherless inserted enquirers fro inspect takes rejoices users relaxation ending anointings rejoicing proclaiming$FG$ + +Fucken failure to communicate. God talks. What the fuck is you explaination of reality? You think I work with the IRA and have HAM radios? Seriously, what the fuck? God talks. I made His temple. + +God says... +$FG,4$continuance afraid billion incense lieth Never surmounted scorn geometry rods fruitless eminent believeth wills contents immersed savageness posted indexes anxiously discourse purposing diving accused srv incorporeal dispensing owed violets strengthless guarded hereby fastidiousness bathing ordinary afternoon hatchet conversing delivers cloaked warped convicted pilgrim error equipment mounting any precedeth communicate murmured judgements character enounce srv earnest exhorted sighing scarcely lift unbelievers circles worm kill defence immortal huge fore vain molest informing calmed justifieth disagreements townsman Caesar treasured fornications countenance parent Because heightening file sometimes piecemeal safe Is evident moment doings described hugging pains banter assistance sudden gradually stick death concubinage wanting indemnify bark wrath burning monastery woke disclaimers proffering seasons ceasing debtors unconscious reasonable purposes$FG$ + +Fucken niggers with their crazy droning on and on with drivel on the BBC. You fucken fail! God talks! Fucken what is your malfunction? Surrender! What the fuck are you thinking? + +What the fuck is your malfunction? + +God says... +$FG,4$fficers from the +chief priests and Pharisees, cometh thither with lanterns and torches +and weapons. + +18:4 Jesus therefore, knowing all things that should come upon him, +went forth, and said unto them, Whom seek ye? 18:5 They answered him, +Jesus of Nazareth. Jesus saith unto them, I am he. + +And Judas also, which betrayed him, stood with them. + +18:6 As soon then as he had said unto them, I am he, they went +backward, and fell to the ground. + +18:7 Then asked he them again, Whom seek ye? And they said, Jesus of$FG$ + +My operating system is God's temple. God said 640x480 16 color. + +You fucken niggers are going to bow before God. + +God says... +$FG,4$lie down in the midst of her, all the beasts of +the nations: both the cormorant and the bittern shall lodge in the +upper lintels of it; their voice shall sing in the windows; desolation +shall be in the thresholds; for he shall uncover the cedar work. + +2:15 This is the rejoicing city that dwelt carelessly, that said in +her heart, I am, and there is none beside me: how is she become a +desolation, a place for beasts to lie down in! every one that passeth +by her shall hiss, and wag his hand. + +3:1 Woe to her th$FG$ + +Sigh. My account balance with God grows. Your penalty grows. You are in for a rude shock. + +God says... +$FG,4$therefore let me smite him, I pray thee, with +the spear even to the earth at once, and I will not smite him the +second time. + +26:9 And David said to Abishai, Destroy him not: for who can stretch +forth his hand against the LORD's anointed, and be guiltless? 26:10 +David said furthermore, As the LORD liveth, the LORD shall smite him; +or his day shall come to die; or he shall descend into battle, and +perish. + +26:11 The LORD forbid that I should stretch forth mine hand against +the LORD's anointed: but, I pray t$FG$ + +$IV,1$----09/30/13 01:49:50----$IV,0$ + +These niggers are fighting the last war. God talks, retards. The fuck relevance is old thinking? God says new shit. + +God says... +$FG,4$e. + +6:34 And if ye lend to them of whom ye hope to receive, what thank +have ye? for sinners also lend to sinners, to receive as much again. + +6:35 But love ye your enemies, and do good, and lend, hoping for +nothing again; and your reward shall be great, and ye shall be the +children of the Highest: for he is kind unto the unthankful and to the +evil. + +6:36 Be ye therefore merciful, as your Father also is merciful. + +6:37 Judge not, and ye shall not be judged: condemn not, and ye shall +not be condemned: forgive,$FG$ + +$IV,1$----09/30/13 02:07:40----$IV,0$ + +So, I'm sitting here talking with God. + +The BBC says, "Yeah, we like to reminisce. (Saying my OS is pathetic.)" + +The BBC says, "We are anxious about death..." + +Fucken God talks! You are fighting the last war. You have no situational awareness, OBVIOUSLY! + +My operating system is God's temple. +Life after death, is not my concern, but you might not want to be so patronizing now that God talks. + +$TX+HTML,"https://www.fourmilab.ch/hotbits/secure_generate.html","https://www.fourmilab.ch/hotbits/secure_generate.html"$ + +0x656120-->6644000 mod 100000-->Line:44000 +God says... +$FG,4$ +7:17 What is man, that thou shouldest magnify him? and that thou +shouldest set thine heart upon him? 7:18 And that thou shouldest +visit him every morning, and try him every moment? 7:19 How long wilt +thou not depart from me, nor let me alone till I swallow down my +spittle? 7:20 I have sinned; what shall I do unto thee, O thou +preserver of men? why hast thou set me as a mark against thee, so +that I am a burden to myself? 7:21 And why dost thou not pardon my +transgression, and take away my iniquity? for now shall I sleep in the +dust; and thou shalt seek me in the morning, but I shall not be. + +8:1 Then answered Bildad the Shuhite, and said, 8:2 How long wilt thou +speak these things? and how long shall the words of thy mouth be like +a strong wind? 8:3 Doth God pervert judgment? or doth the Almighty +pervert justice? 8:4 If thy children have sinned against him, and he +have cast them away for their transgression; 8:5 If thou wouldest seek +unto God betimes, and make thy supplication to the Almighty; 8:6 If +thou wert pure and upright; surely now he would awake for thee, and +make the habitation of thy righteousness prosperous.$FG$ + +$IV,1$----09/30/13 02:16:26----$IV,0$ + +I made a couple tiny black powder pipe bombs in high school. Red neck fun. + +I got a scholarship from Unidynamics. They make explosives to cut cables on our nuclear missile stages. + +God is perfectly just. + +God says... +$FG,4$ech called Isaac, and said, Behold, of a surety she is +thy wife; and how saidst thou, She is my sister? And Isaac said unto +him, Because I said, Lest I die for her. + +26:10 And Abimelech said, What is this thou hast done unto us? one of +the people might lightly have lien with thy wife, and thou shouldest +have brought guiltiness upon us. + +26:11 And Abimelech charged all his people, saying, He that toucheth +this man or his wife shall surely be put to death. + +26:12 Then Isaac sowed in that land, and received in$FG$ + +The World was different. Red Dawn was a popular movie. + +$IV,1$----09/30/13 02:34:49----$IV,0$ + +I saw a Linus Torvalds video. Truce. They attack me, I attack them. + +Mine is a nonnetworked companion OS to be dual booted with Windows or Linux. + +Mine is God's temple, however. + +What is a temple? Look at what role the temple played. That's the role -- a special place and it has an oracle. + +Yeah, I get in fights with Linux people. There aren't really any Windows people... I guess I fight Gates and Balmer. + +The shit from Microsoft is painful to listen to. You ever talked to a Mormom missionary. Talking to them is like a stabbing in your head. + +Surely Gates is tone deaf -- he hits sour notes. + +$TX+HTML,"https://www.fourmilab.ch/hotbits/secure_generate.html","https://www.fourmilab.ch/hotbits/secure_generate.html"$ + +0xF8548B-->16274571 mod 100000-->Line:74571 +God says... +$FG,4$shall melt, and all that dwell therein shall mourn: and it shall rise +up wholly like a flood; and shall be drowned, as by the flood of +Egypt. + +9:6 It is he that buildeth his stories in the heaven, and hath founded +his troop in the earth; he that calleth for the waters of the sea, and +poureth them out upon the face of the earth: The LORD is his name. + +9:7 Are ye not as children of the Ethiopians unto me, O children of +Israel? saith the LORD. Have not I brought up Israel out of the land +of Egypt? and the Philistines from Caphtor, and the Syrians from Kir? +9:8 Behold, the eyes of the Lord GOD are upon the sinful kingdom, and +I will destroy it from off the face of the earth; saving that I will +not utterly destroy the house of Jacob, saith the LORD. + +9:9 For, lo, I will command, and I will sift the house of Israel among +all nations, like as corn is sifted in a sieve, yet shall not the +least grain fall upon the earth. + +9:10 All the sinners of my people shall die by the sword, which say,$FG$ + +$IV,1$----09/30/13 02:50:45----$IV,0$ + +OSDev said "My operating system" was not appropriate for one guy to say. + +God's operating system? God designed it. The people's temple operating system? + +$TX+HTML,"http://virtual-notary.org","http://virtual-notary.org"$ + +$TX+HTML,"Here is the certificate","http://www.templeos.org/Certs/virtual-notary-cert-randomnum-30985.p12"$. + +Line:73236 +God says... +$FG,4$2:2 Plead with your mother, plead: for she is not my wife, neither am +I her husband: let her therefore put away her whoredoms out of her +sight, and her adulteries from between her breasts; 2:3 Lest I strip +her naked, and set her as in the day that she was born, and make her +as a wilderness, and set her like a dry land, and slay her with +thirst. + +2:4 And I will not have mercy upon her children; for they be the +children of whoredoms. + +2:5 For their mother hath played the harlot: she that conceived them +hath done shamefully: for she said, I will go after my lovers, that +give me my bread and my water, my wool and my flax, mine oil and my +drink. + +2:6 Therefore, behold, I will hedge up thy way with thorns, and make a +wall, that she shall not find her paths. + +2:7 And she shall follow after her lovers, but she shall not overtake +them; and she shall seek them, but shall not find them: then shall she$FG$ + +$IV,1$----09/30/13 02:56:11----$IV,0$ + +I have no idea what Mom thinks of God. If she knew it was God, I think she'd show interest. She has seen God talk. I guess she thinks it's an IRA ham radio guy? Stupid bitch. CIA whore. + + +God says... +$FG,4$triumpheth INCLUDING incredibly Justina 3 warranted wicked masters comprehend dull striking grieving wicked$FG$ + +$IV,1$----09/30/13 03:07:31----$IV,0$ + +I see God's temple being the focal point for world-wide worship. If God talks in the modern age with full scientific instrumentation observing, you kinda think we have one World religion. I could be wrong. God, the Creator, makes Creation more complicated, not simpler. Making the World simple seems like uncreating. + +God says... +$TX+HTML,"http://virtual-notary.org","http://virtual-notary.org"$ + +$TX+HTML,"Here is the certificate","http://www.templeos.org/Certs/virtual-notary-cert-randomnum-30986.p12"$. + +Line:65938 +God says... +$FG,4$empty his vessels, and break their bottles. + +48:13 And Moab shall be ashamed of Chemosh, as the house of Israel was +ashamed of Bethel their confidence. + +48:14 How say ye, We are mighty and strong men for the war? 48:15 +Moab is spoiled, and gone up out of her cities, and his chosen young +men are gone down to the slaughter, saith the King, whose name is the +LORD of hosts. + +48:16 The calamity of Moab is near to come, and his affliction hasteth +fast. + +48:17 All ye that are about him, bemoan him; and all ye that know his +name, say, How is the strong staff broken, and the beautiful rod! +48:18 Thou daughter that dost inhabit Dibon, come down from thy glory, +and sit in thirst; for the spoiler of Moab shall come upon thee, and +he shall destroy thy strong holds. + +48:19 O inhabitant of Aroer, stand by the way, and espy; ask him that$FG$ + +$IV,1$----09/30/13 03:26:54----$IV,0$ + +My operating system is not for hiding from surveillance. It's not networked. To the world, it more or less consists of an off-line text word processor and art program. It can access disk, too. + +But God will talk and nation will not raise arms against nation ever more. I'm probably confused. + +$TX+HTML,"http://virtual-notary.org","http://virtual-notary.org"$ + +$TX+HTML,"Here is the certificate","http://www.templeos.org/Certs/virtual-notary-cert-randomnum-30997.p12"$. + +Line:90407 +God says... +$FG,4$24:5 For we have found this man a pestilent fellow, and a mover of +sedition among all the Jews throughout the world, and a ringleader of +the sect of the Nazarenes: 24:6 Who also hath gone about to profane +the temple: whom we took, and would have judged according to our law. + +24:7 But the chief captain Lysias came upon us, and with great +violence took him away out of our hands, 24:8 Commanding his accusers +to come unto thee: by examining of whom thyself mayest take knowledge +of all these things, whereof we accuse him. + +24:9 And the Jews also assented, saying that these things were so. + +24:10 Then Paul, after that the governor had beckoned unto him to +speak, answered, Forasmuch as I know that thou hast been of many years +a judge unto this nation, I do the more cheerfully answer for myself: +24:11 Because that thou mayest understand, that there are yet but +twelve days since I went up to Jerusalem for to worship. + +24:12 And they neither found me in the temple disputing with any man,$FG$ + +$IV,1$----09/30/13 03:35:54----$IV,0$ + +You'd have to do USB or Ethernet or something to gain hardware I/O for robots. You are starting almost from zero if you want to do those, don't blame me. God might want to promote robots, I don't know. + +OSDev is talking about VGA fonts. You can run TempleOS in text mode, if you select a kernel config option. By all means, have fun if making new VGA fonts tickles you. Text mode might be a hair less CPU required. + +God says... +$FG,4$IMPLIED Hart Sabbath relate petitions immersed delightsome renewed endeavour fretted sat dare$FG$ + +$IV,1$----09/30/13 23:19:16----$IV,0$ + +My back hurts. Literally, it's always something. + +$FG,2$12:7 And lest I should be exalted above measure through the abundance +of the revelations, there was given to me a thorn in the flesh, the +messenger of Satan to buffet me, lest I should be exalted above +measure. + +12:8 For this thing I besought the Lord thrice, that it might depart +from me.$FG$ + +I think pleasures and pains might balance. I might be wise not to drink so much soda. + +$TX+HTML,"http://www.random.org","http://www.random.org"$ + +Line:26528 +God says... +$FG,4$no more do thee harm, because my soul was precious in thine eyes this +day: behold, I have played the fool, and have erred exceedingly. + +26:22 And David answered and said, Behold the king's spear! and let +one of the young men come over and fetch it. + +26:23 The LORD render to every man his righteousness and his +faithfulness; for the LORD delivered thee into my hand to day, but I +would not stretch forth mine hand against the LORD's anointed. + +26:24 And, behold, as thy life was much set by this day in mine eyes, +so let my life be much set by in the eyes of the LORD, and let him +deliver me out of all tribulation. + +26:25 Then Saul said to David, Blessed be thou, my son David: thou +shalt both do great things, and also shalt still prevail. So David +went on his way, and Saul returned to his place. + +27:1 And David said in his heart, I shall now perish one day by the +hand of Saul: there is nothing better for me than that I should$FG$ + +$IV,1$----09/30/13 23:39:22----$IV,0$ + +Fucken niggers. They're talking about anesthesia and Rachel. Dad was a little too friendly with Rachael. I didn't see him actually touch her, but it looked suspicious. I told he and Mom not to do it. I had nothing to do with it. He went to jail, already. + +Yeah, I tried to get McCoy's dalmation to like my dick in 1985. + +Highs and lows balance. Someone is launching me into Heaven. Fucken book, 1984. (God is laughing). + +$TX+HTML,"Luke 6:20-26","http://www.biblegateway.com/passage/?search=Luke%206:20-26&version=NIV"$ + +Stoopit fucken niggers. + +God says... +$FG,4$hastened enlarging learnt bubblings sweetly Romanianus distinctly demands constantly thenceforth fellow humility stilled estranged litigation ascending violated solidity superstitious$FG$ + +$IV,1$----09/30/13 23:52:44----$IV,0$ + +Neegers! There is no more code from other sources in God's temple. + +I got #defines for ATA registers and commands from Linux. They're gone. + +I had floppy code. No floppies anymore. + +I kinda got Keyboard Mouse code -- lights and stuff from somewhere. Changed beyond any similarity -- my code has timeouts and it's all different. + +Grievers get to go to hell. Wait for something bad to happen to you soon. + +$TX+HTML,"http://www.randomnumbers.info","http://www.randomnumbers.info"$ + +Line:73424 +God says... +$FG,4$5:8 Blow ye the cornet in Gibeah, and the trumpet in Ramah: cry aloud +at Bethaven, after thee, O Benjamin. + +5:9 Ephraim shall be desolate in the day of rebuke: among the tribes +of Israel have I made known that which shall surely be. + +5:10 The princes of Judah were like them that remove the bound: +therefore I will pour out my wrath upon them like water. + +5:11 Ephraim is oppressed and broken in judgment, because he willingly +walked after the commandment. + +5:12 Therefore will I be unto Ephraim as a moth, and to the house of +Judah as rottenness. + +5:13 When Ephraim saw his sickness, and Judah saw his wound, then went +Ephraim to the Assyrian, and sent to king Jareb: yet could he not heal +you, nor cure you of your wound.$FG$ + +$IV,1$----09/30/13 23:59:17----$IV,0$ + +God's world is perfectly just. I wonder what the Jews did to deserve ths Holocaust. Grievers and shit. Must have been vile monsters. + +God says... +$FG,4$bashfulness confuted helper his assistance deserters distributing Myself excellency indefinitely unbeseemingly happier fostering confute doctrine containest Forum means lying lancet houses proudly Scripture overpass another yield molest MAY OTHERWISE resumed fearing inspire Paul healeth hoping during attained delay One DON elders introduced bear peradventure distraction pinching creatures genius indemnify defection trademark Whom boundary Bishop NUMBER weighed cloudy field infidels mingling www evil infirmity tcosa11 status boundary laying comforts pious oratory recommended begging begin Victor depths error greatly Narrow quarrel blessing virtue highest kicking cogo thundering solemnities recalling modestly arrows closes followed afar clasped dawned Inhabitant stripes amendment continently associated$FG$ diff --git a/TempleOS/Accts/TS/Wb2/Rants/TAD/Rant131001.TXT b/TempleOS/Accts/TS/Wb2/Rants/TAD/Rant131001.TXT new file mode 100644 index 0000000..a1bd4a8 --- /dev/null +++ b/TempleOS/Accts/TS/Wb2/Rants/TAD/Rant131001.TXT @@ -0,0 +1,2226 @@ +$WW,1$$IV,1$----10/01/13 00:27:08----$IV,0$ + +I used to suffer from nightmares. Yeah, sometimes the news (which intentionally hypes headlines to make them scary) would give me nightmares. Often, I would dwell on dark topic, like the Holocaust and evolution. + +Peter Gadwa said that often an outsider can look at a person and say, "Your problem is obvious!" + +Anyway, occassionally, you'll see a person who obesses on dark topics. It's very profound that you can choose to dwell on happy stuff. Stay "in the light", unless you like nightmares. LOL + +$TX+HTML,"http://virtual-notary.org","http://virtual-notary.org"$ + +$TX+HTML,"Here is the certificate","http://www.templeos.org/Certs/virtual-notary-cert-randomnum-31491.p12"$. + +Line:46465 +God says... +$FG,4$9:3 When mine enemies are turned back, they shall fall and perish at +thy presence. + +9:4 For thou hast maintained my right and my cause; thou satest in the +throne judging right. + +9:5 Thou hast rebuked the heathen, thou hast destroyed the wicked, +thou hast put out their name for ever and ever. + +9:6 O thou enemy, destructions are come to a perpetual end: and thou +hast destroyed cities; their memorial is perished with them. + +9:7 But the LORD shall endure for ever: he hath prepared his throne +for judgment. + +9:8 And he shall judge the world in righteousness, he shall minister +judgment to the people in uprightness. + +9:9 The LORD also will be a refuge for the oppressed, a refuge in$FG$ + +$IV,1$----10/01/13 00:45:33----$IV,0$ + +When you go through the ten commandments, a commandment to honor God's name, seems strange. I decided I honored it by capitalizing pronouns referring to God. The point of the first few commandments is to love God. It makes me happy -- capitalizing God pronouns. LOL + +$TX+HTML,"http://www.randomnumbers.info","http://www.randomnumbers.info"$ + +Line:5590 +God says... +$FG,4$7:5 And the Egyptians shall know that I am the LORD, when I stretch +forth mine hand upon Egypt, and bring out the children of Israel from +among them. + +7:6 And Moses and Aaron did as the LORD commanded them, so did they. + +7:7 And Moses was fourscore years old, and Aaron fourscore and three +years old, when they spake unto Pharaoh. + +7:8 And the LORD spake unto Moses and unto Aaron, saying, 7:9 When +Pharaoh shall speak unto you, saying, Shew a miracle for you: then +thou shalt say unto Aaron, Take thy rod, and cast it before Pharaoh, +and it shall become a serpent. + +7:10 And Moses and Aaron went in unto Pharaoh, and they did so as the +LORD had commanded: and Aaron cast down his rod before Pharaoh, and +before his servants, and it became a serpent. + +7:11 Then Pharaoh also called the wise men and the sorcerers: now the +magicians of Egypt, they also did in like manner with their$FG$ + +$IV,1$----10/01/13 00:57:24----$IV,0$ + +Chairman Mao is being discussed on the BBC, oddly in a friendly way. + +A lot of people like $TX+HTML,"The_Little_Red_Hen","http://en.wikipedia.org/wiki/The_Little_Red_Hen"$. A guilty pleasure, perhaps, but I think that story is delicious. I think Germans love that story. When communism fails, we like to take pleasure. Communism seems morally bankrupt. Thou shall not covet. It does not seem noble to want to rob the rich, that seems low class and not admirable. Socialism makes you think of lazy workers. + +You know what, though? I had a job in a deli. It would have been okay, except we had to hussle. I look at managers trying to raise productivity as slave-drivers, in a way I did not in the past. + +$TX+HTML,"http://virtual-notary.org","http://virtual-notary.org"$ + +$TX+HTML,"Here is the certificate","http://www.templeos.org/Certs/virtual-notary-cert-randomnum-31503.p12"$. + +Line:97141 +God says... +$FG,4$11:15 And truly, if they had been mindful of that country from whence +they came out, they might have had opportunity to have returned. + +11:16 But now they desire a better country, that is, an heavenly: +wherefore God is not ashamed to be called their God: for he hath +prepared for them a city. + +11:17 By faith Abraham, when he was tried, offered up Isaac: and he +that had received the promises offered up his only begotten son, 11:18 +Of whom it was said, That in Isaac shall thy seed be called: 11:19 +Accounting that God was able to raise him up, even from the dead; from +whence also he received him in a figure. + +11:20 By faith Isaac blessed Jacob and Esau concerning things to come. + +11:21 By faith Jacob, when he was a dying, blessed both the sons of +Joseph; and worshipped, leaning upon the top of his staff. + +11:22 By faith Joseph, when he died, made mention of the departing of +the children of Israel; and gave commandment concerning his bones.$FG$ + +That was about one child policy. + +$IV,1$----10/01/13 01:36:47----$IV,0$ + +I am not a Catholic. I am not a liberal. I don't think legalizing drugs is good. + +The World has changed with Facebook. Suddenly, people cannot hide. I think crime probably fell due to Facebook. It is oppressive, however. All the grannies of gangsters read their grandchildren's Facebook pages. + +God's world is perfectly just. This new generation has many neat things, but pays a price. They cannot be two-faced. + +$TX+HTML,"http://virtual-notary.org","http://virtual-notary.org"$ + +$TX+HTML,"Here is the certificate","http://www.templeos.org/Certs/virtual-notary-cert-randomnum-31524.p12"$. + +Line:12200 +God says... +$FG,4$shall be Elizur the son of Shedeur. + +2:11 And his host, and those that were numbered thereof, were forty +and six thousand and five hundred. + +2:12 And those which pitch by him shall be the tribe of Simeon: and +the captain of the children of Simeon shall be Shelumiel the son of +Zurishaddai. + +2:13 And his host, and those that were numbered of them, were fifty +and nine thousand and three hundred. + +2:14 Then the tribe of Gad: and the captain of the sons of Gad shall +be Eliasaph the son of Reuel. + +2:15 And his host, and those that were numbered of them, were forty +and five thousand and six hundred and fifty. + +2:16 All that were numbered in the camp of Reuben were an hundred +thousand and fifty and one thousand and four hundred and fifty,$FG$ + +That mentioned "host", otherwise, mostly a dud. I think just call it a dud. + +$IV,1$----10/01/13 01:50:45----$IV,0$ + +I don't really want to get involved in the drug debate. God is perfectly just. If you take away someone's joy, it causes bad luck for you, LOL. + +Gadwa was a Libertarian. That seems extreme. God is perfectly just, however. Maybe, I should be Libertarian, I don't know. It's never easy, is it? + +$TX+HTML,"http://virtual-notary.org","http://virtual-notary.org"$ + +$TX+HTML,"Here is the certificate","http://www.templeos.org/Certs/virtual-notary-cert-randomnum-31527.p12"$. + +Line:67296 +God says... +$FG,4$ +1:22 And the likeness of the firmament upon the heads of the living +creature was as the colour of the terrible crystal, stretched forth +over their heads above. + +1:23 And under the firmament were their wings straight, the one toward +the other: every one had two, which covered on this side, and every +one had two, which covered on that side, their bodies. + +1:24 And when they went, I heard the noise of their wings, like the +noise of great waters, as the voice of the Almighty, the voice of +speech, as the noise of an host: when they stood, they let down their +wings. + +1:25 And there was a voice from the firmament that was over their +heads, when they stood, and had let down their wings. + +1:26 And above the firmament that was over their heads was the +likeness of a throne, as the appearance of a sapphire stone: and upon +the likeness of the throne was the likeness as the appearance of a man$FG$ + +$IV,1$----10/01/13 02:06:22----$IV,0$ + +I read about GTA5. I haven't seen it. My first thought was it might increase crime. What I read, however, said it helps you see how bad behavior ends -- in trouble. + +Sometimes, the world is ironic. + +I wonder if, once photorealism is achieved in video games, it might seem "meh" and people once again are open to bad graphic games. + +$TX+HTML,"http://virtual-notary.org","http://virtual-notary.org"$ + +$TX+HTML,"Here is the certificate","http://www.templeos.org/Certs/virtual-notary-cert-randomnum-31533.p12"$. + +Line:65131 +God says... +$FG,4$king of Judah, that sent you unto me to enquire of me; Behold, +Pharaoh's army, which is come forth to help you, shall return to Egypt +into their own land. + +37:8 And the Chaldeans shall come again, and fight against this city, +and take it, and burn it with fire. + +37:9 Thus saith the LORD; Deceive not yourselves, saying, The +Chaldeans shall surely depart from us: for they shall not depart. + +37:10 For though ye had smitten the whole army of the Chaldeans that +fight against you, and there remained but wounded men among them, yet +should they rise up every man in his tent, and burn this city with +fire. + +37:11 And it came to pass, that when the army of the Chaldeans was +broken up from Jerusalem for fear of Pharaoh's army, 37:12 Then +Jeremiah went forth out of Jerusalem to go into the land of Benjamin, +to separate himself thence in the midst of the people.$FG$ + +That seemed mostly like a dud. The BBC is talking about homeless people. + +$IV,1$----10/01/13 02:15:42----$IV,0$ + +I'm on Social Security disability. Some people think welfare recipients should not vote. I feel a slight conflict of interests. It certainly looks different when you recieve aid than when you give it, LOL. I don't think my life is normal. + +$TX+HTML,"http://virtual-notary.org","http://virtual-notary.org"$ + +$TX+HTML,"Here is the certificate","http://www.templeos.org/Certs/virtual-notary-cert-randomnum-31534.p12"$. + +Line:45774 +God says... +$FG,4$than affliction. + +36:22 Behold, God exalteth by his power: who teacheth like him? 36:23 +Who hath enjoined him his way? or who can say, Thou hast wrought +iniquity? 36:24 Remember that thou magnify his work, which men +behold. + +36:25 Every man may see it; man may behold it afar off. + +36:26 Behold, God is great, and we know him not, neither can the +number of his years be searched out. + +36:27 For he maketh small the drops of water: they pour down rain +according to the vapour thereof: 36:28 Which the clouds do drop and +distil upon man abundantly. + +36:29 Also can any understand the spreadings of the clouds, or the +noise of his tabernacle? 36:30 Behold, he spreadeth his light upon +it, and covereth the bottom of the sea.$FG$ + +$IV,1$----10/01/13 02:33:58----$IV,0$ + +The BBC is talking of false memories. This is psy-ops, sweating me. + +God is perfectly just. Joseph in the Bible went to prison for seven years and that's how he earned ruling Egypt. God's world is perfectly just. You are a nigger. A nigger does not know God's world is perfectly just. + +$TX+HTML,"http://virtual-notary.org","http://virtual-notary.org"$ + +$TX+HTML,"Here is the certificate","http://www.templeos.org/Certs/virtual-notary-cert-randomnum-31545.p12"$. + +Line:72348 +God says... +$FG,4$Babylon, Whosoever shall read this writing, and shew me the +interpretation thereof, shall be clothed with scarlet, and have a +chain of gold about his neck, and shall be the third ruler in the +kingdom. + +5:8 Then came in all the king's wise men: but they could not read the +writing, nor make known to the king the interpretation thereof. + +5:9 Then was king Belshazzar greatly troubled, and his countenance was +changed in him, and his lords were astonied. + +5:10 Now the queen by reason of the words of the king and his lords +came into the banquet house: and the queen spake and said, O king, +live for ever: let not thy thoughts trouble thee, nor let thy +countenance be changed: 5:11 There is a man in thy kingdom, in whom is +the spirit of the holy gods; and in the days of thy father light and +understanding and wisdom, like the wisdom of the gods, was found in +him; whom the king Nebuchadnezzar thy father, the king, I say, thy +father, made master of the magicians, astrologers, Chaldeans, and +soothsayers; 5:12 Forasmuch as an excellent spirit, and knowledge, and$FG$ + +$IV,1$----10/01/13 03:15:15----$IV,0$ + +There's the truth. Then, there's what helps you live well. If you emphasize that highs and lows balance, for example, I don't find myself really keen to do lows, LOL. + +I'm not going to pick fights with the Pope. I live my life how I see it. You wouldn't call a Pentacostal a Catholic, would you? I'm surely as different as that. + +$TX+HTML,"Matthew 11:25-30","http://www.biblegateway.com/passage/?search=Matthew%2011:25-30&version=NIV"$ + +Jesus was actually praising God for deceiving the arrogant. He said nobody knows the Father, too. + +I guess it's like when disaster strikes, you might praise God for justice, but you should still lend a hand. Praise God for deceiving the arrogant, but we're going to help them, anyway. + +$TX+HTML,"http://virtual-notary.org","http://virtual-notary.org"$ + +$TX+HTML,"Here is the certificate","http://www.templeos.org/Certs/virtual-notary-cert-randomnum-31562.p12"$. + +Line:98809 +God says... +$FG,4$ +2:18 And unto the angel of the church in Thyatira write; These things +saith the Son of God, who hath his eyes like unto a flame of fire, and +his feet are like fine brass; 2:19 I know thy works, and charity, and +service, and faith, and thy patience, and thy works; and the last to +be more than the first. + +2:20 Notwithstanding I have a few things against thee, because thou +sufferest that woman Jezebel, which calleth herself a prophetess, to +teach and to seduce my servants to commit fornication, and to eat +things sacrificed unto idols. + +2:21 And I gave her space to repent of her fornication; and she +repented not. + +2:22 Behold, I will cast her into a bed, and them that commit adultery +with her into great tribulation, except they repent of their deeds. + +2:23 And I will kill her children with death; and all the churches +shall know that I am he which searcheth the reins and hearts: and I$FG$ + +$IV,1$----10/01/13 03:49:47----$IV,0$ + +In response to OSDev, I learned how to do ATA PIO from Linux back in 2004. Then, I got the ATA spec and fixed it to work with EXT LBA48 size drives. + +Mine polls. It is still multitasking. + +$FG,2$while (inp(STATUS)&BUSY) + Yield(); +$FG$ +It checks the device and swaps-out the task to let other tasks run. I can change tasks 4,000,000 times a second, because mine is ring-0-only and identity-mapped. I can change tasks faster than I can read an I/O port! + +The old-school IDE primary and secondary port numbers have not worked in many years. Go in Windows to system info under I/O ports and get the SATA port numbers. We are at the mercy of the BIOS. My current machine does not seem to have enabled ATA I/O ports. I guess God will punish them. + +I am waiting for the day I get to command hardware manufacturers. + +$TX+HTML,"http://virtual-notary.org","http://virtual-notary.org"$ + +$TX+HTML,"Here is the certificate","http://www.templeos.org/Certs/virtual-notary-cert-randomnum-31583.p12"$. + +Line:32922 +God says... +$FG,4$and they said one to another, Why sit we here until we die? 7:4 If we +say, We will enter into the city, then the famine is in the city, and +we shall die there: and if we sit still here, we die also. Now +therefore come, and let us fall unto the host of the Syrians: if they +save us alive, we shall live; and if they kill us, we shall but die. + +7:5 And they rose up in the twilight, to go unto the camp of the +Syrians: and when they were come to the uttermost part of the camp of +Syria, behold, there was no man there. + +7:6 For the LORD had made the host of the Syrians to hear a noise of +chariots, and a noise of horses, even the noise of a great host: and +they said one to another, Lo, the king of Israel hath hired against us +the kings of the Hittites, and the kings of the Egyptians, to come +upon us. + +7:7 Wherefore they arose and fled in the twilight, and left their +tents, and their horses, and their asses, even the camp as it was, and +fled for their life.$FG$ + +That was about operating system "starvation". Mine does not break disk requests in pieces, so a task will wait if another task is loading a big file. My vision is a modern C64, not a multi-user mainframe. A mainframe would use the bakery-take-a-number algorithm to share the disk very carefully. + +$IV,1$----10/01/13 04:06:50----$IV,0$ + +Someone talked of arguments to an interrupt handler. I have an "interrupt" keyword in $LK,"HolyC","FI:::/TempleOS/Doc/HolyC.TXT.Z"$ that you can put on functions to make them use IRET. I figured-out that you could access the interrupt handler's stack with args just like a normal function, if you wanted. You just have to do the math, accounting for flags and stuff on the stack. + +God says... +$FG,4$loads smells confound vineyard students revolt subjoins gardens reached streaming wings form deliberation unwholesome Etext shops Betwixt cloyedness rend languishing incumbrances inevitably calm back vicissitude renewed goads bad really distractions impatient trial free tendernesses whoso descend possess$FG$ + +$IV,1$----10/01/13 04:33:25----$IV,0$ + +I'm lead to believe many fathers are overbearing. Their sons can never be good enough. Their father's break their spirit. "Yes, father." + +I thought about myself with close friends and my little brother. I used to be overbearing and I would break their spirit, in a bad way. I thought, perhaps, "vampires" feed on the spirit of their victims, turning them into husks. + +$TX+HTML,"http://virtual-notary.org","http://virtual-notary.org"$ + +$TX+HTML,"Here is the certificate","http://www.templeos.org/Certs/virtual-notary-cert-randomnum-31590.p12"$. + +Line:20659 +God says... +$FG,4$cities into seven parts in a book, and came again to Joshua to the +host at Shiloh. + +18:10 And Joshua cast lots for them in Shiloh before the LORD: and +there Joshua divided the land unto the children of Israel according to +their divisions. + +18:11 And the lot of the tribe of the children of Benjamin came up +according to their families: and the coast of their lot came forth +between the children of Judah and the children of Joseph. + +18:12 And their border on the north side was from Jordan; and the +border went up to the side of Jericho on the north side, and went up +through the mountains westward; and the goings out thereof were at the +wilderness of Bethaven. + +18:13 And the border went over from thence toward Luz, to the side of +Luz, which is Bethel, southward; and the border descended to +Atarothadar, near the hill that lieth on the south side of the nether +Bethhoron.$FG$ + +That's about $TX+HTML,"Seven Cities of Gold","http://www.youtube.com/watch?v=57qE1arvo3U"$, a game about conquistadors. LOL. I think Latinos see themselves as Spanish but often others see them more as Indians. + +ROFLMAO. That's funny, in so many ways. LOL Aztec heart surgery and stuff. + +God says... +$FG,4$prouder David rivers penally monstrousness Latins manage refuse issued multiply perturbations Example treasure gladdens passeth related endlessly pour weak$FG$ + +$IV,1$----10/01/13 04:50:32----$IV,0$ + +I might get accused of witchcraft or something from a simple devout Catholic Mexican. It's nice reminding them of Aztecs when they attack me with psychological warfare guilt. + +God says... +$FG,4$Deity dir upwards race hurt bitterness wretch INDIRECT minutest gently virtuous seasons tongue great spake unintelligible profound Curiosity stored defender forbid piecemeal$FG$ + +$IV,1$----10/01/13 04:55:15----$IV,0$ + +God said to start planting on Mars, LOL. You would assume we would explore it completely for life and in the far distant future teraform it. As I think about it, fuck-it! I want to see something in my lifetime. I think I like that better, LOL! + +$TX+HTML,"http://virtual-notary.org","http://virtual-notary.org"$ + +$TX+HTML,"Here is the certificate","http://www.templeos.org/Certs/virtual-notary-cert-randomnum-31591.p12"$. + +Line:45803 +God says... +$FG,4$37:2 Hear attentively the noise of his voice, and the sound that goeth +out of his mouth. + +37:3 He directeth it under the whole heaven, and his lightning unto +the ends of the earth. + +37:4 After it a voice roareth: he thundereth with the voice of his +excellency; and he will not stay them when his voice is heard. + +37:5 God thundereth marvellously with his voice; great things doeth +he, which we cannot comprehend. + +37:6 For he saith to the snow, Be thou on the earth; likewise to the +small rain, and to the great rain of his strength. + +37:7 He sealeth up the hand of every man; that all men may know his +work. + +37:8 Then the beasts go into dens, and remain in their places.$FG$ + +$IV,1$----10/01/13 05:36:03----$IV,0$ + +When I spoke of being overbearing, I was like Bill Nie. You know Pink Floyd's bad teachers? That's how I was. + +Bill Nie has to see this video. I was like Bill Nie. + +This video is important for people like my former self and Bill Nie. The last shall be first and the first shall be last. + +$TX+HTML,"Ali G Homosapiens","http://www.youtube.com/watch?v=eB5VXJXxnNU&t=2m20s"$ + +$IV,1$----10/01/13 05:39:19----$IV,0$ + +Yeah, I get tactile halucinations -- God talks. My funny bone is God laughing. Someone got implants to communicate with their wife. God and I dance :-) + +God says... +$FG,4$succeeded enlighteneth PMB repeat Internal desperate shaggy charge Way medium materials impression voluntarily grammar city reporters exacting relics calamities simplicity wonder launched sites celebration speech marketplace breasts omnium arise Afterwards let glide heretofore observed bones serve pleasures vicissitude moan plenty floating calamity humility instance hearsay judge journey forsakest impress scatter enlighteneth cheered thundering endeavour threefold suggest corporeally has Dost sense tremble confidence waste somewhat sacrifices additions charmed seest inharmonious pliant twisted weaknesses soul attributed disk unreasoning novice virgins surpassest despiseth cured decay griefs s Psalter ruled ofttimes True subsist alter 500 provision thereof hungered or deriding pit abstemious scoffed stiffly palate 500 healedst CAN point discovered waged place tamer medium swaying influence prolonged sweetlyvain mget contempt songs conceit below rushing Italian bird obeying garland folk stroke led fear narrowly genuinely Protasius efforts Indiana yoke slay heaven reinvolved authors innumerably measures short cementest contain 93 necessaries goads layeth Subverters sad labour forsook Enter veil estimation Did whereat unceasing holy disgraced angels conflicting Confessions taming achieve object manifest Defects imbue vision Blessedness recount sought fantastic fence fighting scatter gladiators drive beholdest wealth wrought shoutedst Fire unbounded ebbs taking seeks disapproved THE Anubis teaches chant Ruler year scarcely shower novelty restraint custom Afterwards renewing Physician null appears$FG$ + +I'm glad Bill Nie did the dance stuff. God likes soap operas best on TV. + +$IV,1$----10/01/13 06:50:25----$IV,0$ + +OSDev is discussing ATA PIO. + +This pseudo-code + +$FG,2$while (inp(STATUS)&BUSY) + Yield(); +$FG$ +is meant to explain that if the device is not ready, the kernel goes on with other tasks and will come-back. If nothing else is going-on (the usual case on a home computer) then it will come back in about a microsecond. If other tasks are doing computations, it will come back, probably in a millisecond. + +Its purpose is not to delay. + +God says... +$FG,4$glass Medicine medium prudent admiration Saviour Turn reveal Macedonia thereon neglect bath profounder inclination imposed incurable Human breast coeternal unlocked serpents weighed sinful seized Enter ten Apostle contests intricate Donations blessed Begotten WHICH if broke shrink gifted boyish expects joint altered DON plenteous twelve details reclaiming lusting finger dwelleth come beheld governors ahead oppressed commanding distempered summer Athenians knocketh commiserates loving east nevertheless insight Dakota sorrow eagerness happiness loosed opposed indicating readiness Especially form inspire measured called Orations scroll O eight begging immutable another Beware outer stones stick henceforth sobriety imitated equal distributing withdrawn willingly poetic bemoaning end agreeable questions way$FG$ + +$IV,1$----10/01/13 07:06:05----$IV,0$ + +Average IQ supposedly rose recently, perhaps, due to diet. +You are real, God, so, maybe it's You? +How would you train someone to improve IQ? + +$TX+HTML,"http://virtual-notary.org","http://virtual-notary.org"$ + +$TX+HTML,"Here is the certificate","http://www.templeos.org/Certs/virtual-notary-cert-randomnum-31652.p12"$. + +Line:76420 +God says... +$FG,4$10:7 And they of Ephraim shall be like a mighty man, and their heart +shall rejoice as through wine: yea, their children shall see it, and +be glad; their heart shall rejoice in the LORD. + +10:8 I will hiss for them, and gather them; for I have redeemed them: +and they shall increase as they have increased. + +10:9 And I will sow them among the people: and they shall remember me +in far countries; and they shall live with their children, and turn +again. + +10:10 I will bring them again also out of the land of Egypt, and +gather them out of Assyria; and I will bring them into the land of +Gilead and Lebanon; and place shall not be found for them. + +10:11 And he shall pass through the sea with affliction, and shall +smite the waves in the sea, and all the deeps of the river shall dry +up: and the pride of Assyria shall be brought down, and the sceptre of +Egypt shall depart away.$FG$ + +$IV,1$----10/01/13 08:11:18----$IV,0$ + +You get something of equal value as what you offer, Obama. You're not special. I'm charming and funny. + +I was confessing sins, all distressed and God said, "excessive contricians wearysome." Ask not how God can help you, ask how you can entertain God! Jimmy Carter doesn't sound like a fun guy. Clinton was on a late show and acted like any rational person would... the problem is God's ways are far above man's ways. + +$TX+HTML,"http://virtual-notary.org","http://virtual-notary.org"$ + +$TX+HTML,"Here is the certificate","http://www.templeos.org/Certs/virtual-notary-cert-randomnum-31688.p12"$. + + +Line:29013 +God says... +$FG,4$made me afraid; 22:6 The sorrows of hell compassed me about; the +snares of death prevented me; 22:7 In my distress I called upon the +LORD, and cried to my God: and he did hear my voice out of his temple, +and my cry did enter into his ears. + +22:8 Then the earth shook and trembled; the foundations of heaven +moved and shook, because he was wroth. + +22:9 There went up a smoke out of his nostrils, and fire out of his +mouth devoured: coals were kindled by it. + +22:10 He bowed the heavens also, and came down; and darkness was under +his feet. + +22:11 And he rode upon a cherub, and did fly: and he was seen upon the +wings of the wind. + +22:12 And he made darkness pavilions round about him, dark waters, and +thick clouds of the skies.$FG$ + +Inside joke -- whenever I was distressed and asked for comfort, God made it worse. LOL I learned a lesson. God loved David, Goliath killer. That was insane to fight Goliath! + +$IV,1$----10/01/13 08:33:40----$IV,0$ + +God says... +$FG,4$avail gulf forenamed deriders wiser arise Dost uncertainties checked rmunday@att partaker relief mine thunderest comfortest approved fixing revolting reputed literary commenders IT Circensian regard slave bowers mercy exhortations boils sits hart@pobox righteousness Turned enticing cottage fountain organization foresee coursing tutor Isaiah Latins neighbouring regeneration Each choler urgedst spacious visions favoured thankful vary empty firm sickly proficiency rescuing ship err gulf deserts Theft danger fragment bathed Literary commandest vigour breath mercies exaltedness interrupted trampled Whereat liker covetousness tellest Africa parties household concerning sole beautified delivered sounds offended discourse Already$FG$ + +$IV,1$----10/01/13 08:37:55----$IV,0$ + +Carter was admirable. It's never simple, though. + +Is Obama charming, God? LOL. How about we make Obama do a song? LOL Gay people love making people do queer stuff. Gays love to shove pictures of penises in people's faces and make them do queer stuff. + +$TX+HTML,"http://virtual-notary.org","http://virtual-notary.org"$ + +$TX+HTML,"Here is the certificate","http://www.templeos.org/Certs/virtual-notary-cert-randomnum-31699.p12"$. + +Line:23864 +God says... +$FG,4$to be my wife, to raise up the name of the dead upon his inheritance, +that the name of the dead be not cut off from among his brethren, and +from the gate of his place: ye are witnesses this day. + +4:11 And all the people that were in the gate, and the elders, said, +We are witnesses. The LORD make the woman that is come into thine +house like Rachel and like Leah, which two did build the house of +Israel: and do thou worthily in Ephratah, and be famous in Bethlehem: +4:12 And let thy house be like the house of Pharez, whom Tamar bare +unto Judah, of the seed which the LORD shall give thee of this young +woman. + +4:13 So Boaz took Ruth, and she was his wife: and when he went in unto +her, the LORD gave her conception, and she bare a son. + +4:14 And the women said unto Naomi, Blessed be the LORD, which hath +not left thee this day without a kinsman, that his name may be famous +in Israel. + +4:15 And he shall be unto thee a restorer of thy life, and a nourisher$FG$ + +Dukes of Hazard? + +$IV,1$----10/01/13 08:47:44----$IV,0$ + +Health care? Flip a coin... and do the opposite, LOL. It's kinda like asking God for comfort when distressed. + +$TX+HTML,"http://virtual-notary.org","http://virtual-notary.org"$ + +$TX+HTML,"Here is the certificate","http://www.templeos.org/Certs/virtual-notary-cert-randomnum-31700.p12"$. + +Line:26297 +God says... +$FG,4$25:5 And David sent out ten young men, and David said unto the young +men, Get you up to Carmel, and go to Nabal, and greet him in my name: +25:6 And thus shall ye say to him that liveth in prosperity, Peace be +both to thee, and peace be to thine house, and peace be unto all that +thou hast. + +25:7 And now I have heard that thou hast shearers: now thy shepherds +which were with us, we hurt them not, neither was there ought missing +unto them, all the while they were in Carmel. + +25:8 Ask thy young men, and they will shew thee. Wherefore let the +young men find favour in thine eyes: for we come in a good day: give, +I pray thee, whatsoever cometh to thine hand unto thy servants, and to +thy son David. + +25:9 And when David's young men came, they spake to Nabal according to +all those words in the name of David, and ceased. + +25:10 And Nabal answered David's servants, and said, Who is David? and +who is the son of Jesse? there be many servants now a days that break$FG$ + +$IV,1$----10/01/13 08:51:52----$IV,0$ + +Requests get God pissed-off. Number one rule is don't ask for shit! Entertain God. + +$TX+HTML,"Luke 11:5-8","http://www.biblegateway.com/passage/?search=Luke%2011:5-8&version=NIV"$ + +God says... +$FG,4$but vouchsafed ending Guardian amazing periodic$FG$ + +$IV,1$----10/01/13 09:06:26----$IV,0$ + +$TX+HTML,"Tenacious D","http://www.youtube.com/watch?v=_qG5Q58ecgc"$ + +So, God's favorite band is the Beatles. Does He want more Beatles? Do you want more Beatles? See how easy it is to be retarded on the topic of God? + +$TX+HTML,"http://virtual-notary.org","http://virtual-notary.org"$ + +$TX+HTML,"Here is the certificate","http://www.templeos.org/Certs/virtual-notary-cert-randomnum-31721.p12"$. + +Line:52905 +God says... +$FG,4$126:2 Then was our mouth filled with laughter, and our tongue with +singing: then said they among the heathen, The LORD hath done great +things for them. + +126:3 The LORD hath done great things for us; whereof we are glad. + +126:4 Turn again our captivity, O LORD, as the streams in the south. + +126:5 They that sow in tears shall reap in joy. + +126:6 He that goeth forth and weepeth, bearing precious seed, shall +doubtless come again with rejoicing, bringing his sheaves with him. + + + +127:1 Except the LORD build the house, they labour in vain that build +it: except the LORD keep the city, the watchman waketh but in vain. + +127:2 It is vain for you to rise up early, to sit up late, to eat the$FG$ + +$IV,1$----10/01/13 09:23:49----$IV,0$ + +So, bent wormholes cause echos. Do I get a Nobel in physics or literature? + +$TX+HTML,"Physics Thesis","http://music.cbc.ca/#/blogs/2013/9/McGill-student-uses-Bohemian-Rhapsody-to-explain-string-theory-Queen-guitarist-takes-note"$ + +I got a masters in E.E. control systems. I took 6 hours in place of thesis. You could view my masters as me entertaining myself. I made SimStucture. + +I know the secrets of time travel, LOL. + +$TX+HTML,"http://virtual-notary.org","http://virtual-notary.org"$ + +$TX+HTML,"Here is the certificate","http://www.templeos.org/Certs/virtual-notary-cert-randomnum-31722.p12"$. + +Line:99268 +God says... +$FG,4$to sound, the mystery of God should be finished, as he hath declared +to his servants the prophets. + +10:8 And the voice which I heard from heaven spake unto me again, and +said, Go and take the little book which is open in the hand of the +angel which standeth upon the sea and upon the earth. + +10:9 And I went unto the angel, and said unto him, Give me the little +book. And he said unto me, Take it, and eat it up; and it shall make +thy belly bitter, but it shall be in thy mouth sweet as honey. + +10:10 And I took the little book out of the angel's hand, and ate it +up; and it was in my mouth sweet as honey: and as soon as I had eaten +it, my belly was bitter. + +10:11 And he said unto me, Thou must prophesy again before many +peoples, and nations, and tongues, and kings. + +11:1 And there was given me a reed like unto a rod: and the angel +stood, saying, Rise, and measure the temple of God, and the altar, and$FG$ + +$IV,1$----10/01/13 09:32:43----$IV,0$ + +God just said "downer, it grieves me" to Bohemian Rhapsody, I guess because of Mercury's death, too. He likes the movie, High Lander. God's favorite saint is "ho ho ho". + +I made a Moses comic... "God, we're dying of malnutrician on this manna." God didn't like my comic. I paused... LOL. Duh. Amazing how easy it is to be stupid. God wants to be the hero. God said "oil funny, hopefully". God likes Beverly Hillbillies. God said Shakespeare had a vile heart. If you praise the World, that is good. It's really easy to do the opposite of praise. What would teenage video games be like if never war? God said war was, "servicemen competing". Men are from Mars, women from Venus and our dearly beloved God is God of Earth. + +God says... +$FG,4$strike paid ends exists rebel$FG$ + +I asked God if the World was perfectly just. "Are you calling me lazy?" + +Endangered species? "Enough stars?" + +11th Commandment? "Thou shall not litter." + +How do you feel as a fellow Creator about Avater? "Sick skin" + +Who's better Alien or Preditor? "Lions" + +$IV,1$----10/01/13 10:56:19----$IV,0$ + +"What do you hate about your current OS?" posted on OSDev. +"Do we need more CS majors or more other science majors?" + +Bill Gates Jedi mind tricks, mother fucker. + +Fucken retards registered trademark on "SimStructure" ROFLMAO. +Prolly a stoopit Jew. + +You know that money you rob people? God's world is perfectly just. ROFLMAO + +You wanna ride Zynga into the ground, loads of fun. + +It's amazing how many people with a ton of money go broke. + +Highs and lows balance. One guy in the Bible says, "Don't give me riches or poverty, but my share." + +Jesus said to pray for "daily bread". I wonder if that is a request for not-too-much? + +If you peak in your twenties and feel useless from then on, prolly sucks. + +On the economy, God said, "prosparity sucks" + +$IV,1$----10/01/13 11:04:55----$IV,0$ + +My compiler allocates regs for local variables, not-very-carefully. You can pick a variable to be reg or notreg to override. + +A nigger is someone who does not know God's world is perfectly just. Nigger-Jew owns trademark to "SimStructure", ROFLMAO. + +$TX+HTML,"http://virtual-notary.org","http://virtual-notary.org"$ + +$TX+HTML,"Here is the certificate","http://www.templeos.org/Certs/virtual-notary-cert-randomnum-31779.p12"$. + +Line:42720 +God says... +$FG,4$11:31 The children also of Benjamin from Geba dwelt at Michmash, and +Aija, and Bethel, and in their villages. + +11:32 And at Anathoth, Nob, Ananiah, 11:33 Hazor, Ramah, Gittaim, +11:34 Hadid, Zeboim, Neballat, 11:35 Lod, and Ono, the valley of +craftsmen. + +11:36 And of the Levites were divisions in Judah, and in Benjamin. + +12:1 Now these are the priests and the Levites that went up with +Zerubbabel the son of Shealtiel, and Jeshua: Seraiah, Jeremiah, Ezra, +12:2 Amariah, Malluch, Hattush, 12:3 Shechaniah, Rehum, Meremoth, 12:4 +Iddo, Ginnetho, Abijah, 12:5 Miamin, Maadiah, Bilgah, 12:6 Shemaiah, +and Joiarib, Jedaiah, 12:7 Sallu, Amok, Hilkiah, Jedaiah. These were +the chief of the priests and of their brethren in the days of Jeshua. + +12:8 Moreover the Levites: Jeshua, Binnui, Kadmiel, Sherebiah, Judah, +and Mattaniah, which was over the thanksgiving, he and his brethren.$FG$ + +$IV,1$----10/01/13 12:08:57----$IV,0$ + +God said Dawkins was a "delightful heathen". + +Alan Alda? I was an atheist, prolly just as bad as him, but Alan Alda might not be as delightful. + +It's funny -- we're having judgement day for people. + +God says... +$FG,4$mockers magnify rottenness soil woundest eyes sticking unlocked processing Thenceforth upbraided eaten high courteously interposing beyond cellar Fame grieves upwards cataloguers bloody purest Canticles limbs Montana quitting its O blottedst$FG$ + +$IV,1$----10/01/13 12:11:59----$IV,0$ + +My multicore unlocks multicore's potential. + +Some gay people are really really vile creatures. If everybody hates you, I guess you might become a vile creature. + +I get viscious -- I get a lot of hate. + +Jews are hideously viscious because they're like cornered animals in the World. + +God has improved my vocabulary, LOL. God said Mom thought my spirituality was "visciously inferior." + +God said having enough money was "vehemently better". LOL + +$IV,1$----10/01/13 12:16:05----$IV,0$ + +God said "pride or money, choose one." + +sheet. + +I'mna always be like this. + +Some people get divine comedy, I get divine comedy. + +God says... +$FG,4$s agents rods sincerely pertain lip hearts minister door$FG$ + +St. Peter, smartest man in the World, is a bouncer. + +We're not supposed to take baseball bats to gays, but Putin made me see what is obvious. Many gays are vile creatures, there's no question, others are okay. + +"Does this glorify God?" is a really good question to ask. + +Satan, you have to admit, is a glorious creature. + +$TX+HTML,"Jude 1:9-10","http://www.biblegateway.com/passage/?search=Jude%201:9-10&version=NIV"$ + +I guess if Satan is glorious, some gays are glorious, LOL. Others are hidious. + +$TX+HTML,"http://virtual-notary.org","http://virtual-notary.org"$ + +$TX+HTML,"Here is the certificate","http://www.templeos.org/Certs/virtual-notary-cert-randomnum-31810.p12"$. + +Line:77869 +God says... +$FG,4$thee, had been done in Sodom, it would have remained until this day. + +11:24 But I say unto you, That it shall be more tolerable for the land +of Sodom in the day of judgment, than for thee. + +11:25 At that time Jesus answered and said, I thank thee, O Father, +Lord of heaven and earth, because thou hast hid these things from the +wise and prudent, and hast revealed them unto babes. + +11:26 Even so, Father: for so it seemed good in thy sight. + +11:27 All things are delivered unto me of my Father: and no man +knoweth the Son, but the Father; neither knoweth any man the Father, +save the Son, and he to whomsoever the Son will reveal him. + +11:28 Come unto me, all ye that labour and are heavy laden, and I will +give you rest. + +11:29 Take my yoke upon you, and learn of me; for I am meek and lowly +in heart: and ye shall find rest unto your souls.$FG$ + +The logic in my glorious-Satan and glorious-gay-person analogy is slightly wrong. It's possible no gay person could be glorious... naaa, the analogy is close enough. + +$IV,1$----10/01/13 13:05:28----$IV,0$ + +Obviously, a ring-0-only identity-mapped operating system will out perform other operating systems because it never invalides maps and it never spends time changing privilege levels and it has no penalty doing interprocess communication. + +I don't really sell it on performance, but on simplicity of code. + +It can do real-time multicore unlike SMP systems. In TempleOS, doing a flight simulator, core0 says to each of the other seven cores, "you do this strip of terrain, okay go." That is not possible with SMP. It just isn't. + +God says... +$FG,4$bepraised waking convict objects torn evils seest While admonition worldly compelled lords profit walk ensuing damaged consulters instantly grass confirm solicited separated rather incurred examining enters refrain particle passages VII malicious gently meditations healedst evenly sober affrighted Vindicianus unlikeliness singsong discerneth ebb Wyoming indited unhappiness placing proclaiming imaginary single maintained consists beginneth IS carry forge NO instruct untruth bait knocking fired absurdly soldier penitent wonderfully pursuing breathe Wisdom audaciously shamelessness dragon agents precepts Eve home compassing restoring incorrect adulteress spare transmitted mean wars discerneth Give desireth odours fraud hoping every Whereupon drives extinguish reward cultivated disputing after purpose paper garlands recess doubtless arrive tranquillity Ergo pliant bloody imperfection protesting stage Do necessities sin haunt deeps rmunday@att whitherward seasoned thunderer another Verily precede lucid dying principles let guardianship Whatever worn indited sate demanded speed half aquatic Amen itching highly$FG$ + +$IV,1$----10/01/13 13:22:12----$IV,0$ + +I was an atheist. + +Okay, you've proven God does not exist. Hawking, now prove He does exist. LOL + +We have seven sources of electricity in play economically at the same time, not just fusion. + +God made a rich creation. + +No empire has managed to increase its lock on power, but all empires fall. + +Turn the question around -- suppose God signed His name to get credit everywhere. We could look in the sky and see stars spelling-out. "God" Plants would be cubes. You could make a movie like Idiocracy -- the movie about stupid people inheriting Earth. + +By the way... perhaps other body parts are important to evolve and you want to put the breaks on run-away IQ evolution. Humans make purebred dogs that are deaf. Humans make horses that break legs. + +Get to work! Prove God exists, now that you proved He doesn't. + +The Sun and Moon are equal size during an eclipse. + +No person has great joy and not great sorrow -- highs and lows balance in life. + +$TX+HTML,"http://virtual-notary.org","http://virtual-notary.org"$ + +$TX+HTML,"Here is the certificate","http://www.templeos.org/Certs/virtual-notary-cert-randomnum-31856.p12"$. + +Line:72415 +God says... +$FG,4$from him; and this writing was written. + +5:25 And this is the writing that was written, MENE, MENE, TEKEL, +UPHARSIN. + +5:26 This is the interpretation of the thing: MENE; God hath numbered +thy kingdom, and finished it. + +5:27 TEKEL; Thou art weighed in the balances, and art found wanting. + +5:28 PERES; Thy kingdom is divided, and given to the Medes and +Persians. + +5:29 Then commanded Belshazzar, and they clothed Daniel with scarlet, +and put a chain of gold about his neck, and made a proclamation +concerning him, that he should be the third ruler in the kingdom. + +5:30 In that night was Belshazzar the king of the Chaldeans slain. + +5:31 And Darius the Median took the kingdom, being about threescore$FG$ + +It is mean mean to tickle a person. PERES President. + +God always talks in riddles. It makes Him glorious and lovable, like gift wrapping. Once He spoke plainly. I cried. + +$TX+HTML,"Acts 2","http://www.biblegateway.com/passage/?search=Acts%202&version=NIV"$ + +God can do tricks with language. + +Interpretation is a skill. + +$TX+HTML,"1 Corinthians 14","http://www.biblegateway.com/passage/?search=1%20Corinthians%2014&version=NIV"$ + +Only five words out of ten thousand might speak, but they can say a lot! + +God says... +$FG,4$consider convey hills presiding exacting fetters persevering searching live editing 97 hypertext displeasing diddest compliance admirable cloak chariots unkindled magical kingdoms agreeable deprived etext99 scantling straightening breathedst grandchildren surveyed prose act phantom got thieve curest lips according delights woundest loveliness prescripts dangers it moment wherewith firmly rugged presumed associate pared counterfeit occupying laden womb averse Had soever collect banter 19 danger afar beside refrained codes beseech affliction verse unhesitatingly pleasanter acknowledged breathed disgust usury plans DISTRIBUTION Coeternal these preaching ran tribulation interposed recounts audacious precisely belong enchantment jointly hearted heaven upright distinguishing passionately art Books surrounded amidst burn wrested community hearts endeared Viewing sue Perfect Blessed fearlessly unknowingly taxes baptised Mail refreshing taughtest mindful backward fail THIS roarest whirling auditor reproved$FG$ + +God is not prophetic. You get what you put into it. If you give God love, you get love. Just enjoy His company. + +You scumbags... $FG,4$$TX+HTML,"One Tin Soldier","http://www.youtube.com/watch?v=cTBx-hHf4BE"$$FG$ Just love God and don't ask for shit. + +Brontosaurus' feet hurt when he stepped. + +Lucy's husband's name was "Gollem". + +What did Neanderthals think about? "Warmth" + +Hardest part in evolution? Getting monkey mothers to hold babies for nursing. Smothering can sometimes be a problem, too. + +Was stegasaurus lame like turtles? "Not pet rocks." + +Biggest thing to fly like pteryldactl? "couch" + +Happiest day in evolution? "Fruit" + +Significant evolution thing? "Fish shoulders" + +$IV,1$----10/01/13 13:56:06----$IV,0$ + +By the way, the Babalon king's death was reference to my fall of empires comment. + +What's Yer favorite empire, God? + +$TX+HTML,"https://www.fourmilab.ch/hotbits/secure_generate.html","https://www.fourmilab.ch/hotbits/secure_generate.html"$ + +0x319E41-->3251777 mod 100000-->Line:51777 +God says... +$FG,4$unto their desired haven. + +107:31 Oh that men would praise the LORD for his goodness, and for his +wonderful works to the children of men! + +107:32 Let them exalt him also in the congregation of the people, and +praise him in the assembly of the elders. + +107:33 He turneth rivers into a wilderness, and the watersprings into +dry ground; + +107:34 A fruitful land into barrenness, for the wickedness of them +that dwell therein. + +107:35 He turneth the wilderness into a standing water, and dry ground +into watersprings. + +107:36 And there he maketh the hungry to dwell, that they may prepare +a city for habitation;$FG$ + +$IV,1$----10/01/13 14:18:06----$IV,0$ + +God, tell VMware to emulate PC Speaker. Tell Microsoft and Linux to support HD & CDROM RedSea file system. + +Tell PC hardware guys to support ATA PIO and nuke secureboot, fuck you CIA! + +Tell them to praise You or the get a beating. + +$TX+HTML,"http://virtual-notary.org","http://virtual-notary.org"$ + +$TX+HTML,"Here is the certificate","http://www.templeos.org/Certs/virtual-notary-cert-randomnum-31872.p12"$. + +Line:12782 +God says... +$FG,4$Israel, heads of the house of their fathers, who were the princes of +the tribes, and were over them that were numbered, offered: 7:3 And +they brought their offering before the LORD, six covered wagons, and +twelve oxen; a wagon for two of the princes, and for each one an ox: +and they brought them before the tabernacle. + +7:4 And the LORD spake unto Moses, saying, 7:5 Take it of them, that +they may be to do the service of the tabernacle of the congregation; +and thou shalt give them unto the Levites, to every man according to +his service. + +7:6 And Moses took the wagons and the oxen, and gave them unto the +Levites. + +7:7 Two wagons and four oxen he gave unto the sons of Gershon, +according to their service: 7:8 And four wagons and eight oxen he gave +unto the sons of Merari, according unto their service, under the hand +of Ithamar the son of Aaron the priest. + +7:9 But unto the sons of Kohath he gave none: because the service of$FG$ + +$IV,1$----10/01/13 14:24:45----$IV,0$ + +Oregon Trail? Your favorite national park is Whitman Mission, huh. + +I want M.U.L.E. and Empire. I never played Oregon Trail, but I want it. + +You got any games You want, God? + +God says... +$FG,4$embraced Tell prerogative instructed unskilfulness hushed cannot carefully ordinary calleth grieve evincing Theft pence greaves close NO daughter incongruously praise still mainly Since male lost pence word sumptuously strife irons martyr correspondence thee curest Nothing reptiles participation Baptism$FG$ + +Whitman Mission is by Umatila, a chemical weapons depot. Whitman Mission is grasslands. I think You like it, God, cause it's pathetic -- the opposite of expected. + +God's favorite thing on TV? "Soap operas" + +Do You hang-out in court rooms or hospitals? "prisons" LOL + +God said He doesn't pay attention to young men. I guess they're simple and boring. + +The Bible says God is kind to all creatures. He didn't make flesh eating parasites. He didn't make us fight polar bears for top of food chain. + +I joke, "He got-out all His blood lust with dinosaur combat." + +If God is bored of young men, today, that's 'cause He played with them in history til He got bored. LOL + +"Yawn. War." + +$TX+HTML,"http://www.random.org","http://www.random.org"$ + +Line:33624 +God says... +$FG,4$Isaac, and Jacob, and would not destroy them, neither cast he them +from his presence as yet. + +13:24 So Hazael king of Syria died; and Benhadad his son reigned in +his stead. + +13:25 And Jehoash the son of Jehoahaz took again out of the hand of +Benhadad the son of Hazael the cities, which he had taken out of the +hand of Jehoahaz his father by war. Three times did Joash beat him, +and recovered the cities of Israel. + +14:1 In the second year of Joash son of Jehoahaz king of Israel +reigned Amaziah the son of Joash king of Judah. + +14:2 He was twenty and five years old when he began to reign, and +reigned twenty and nine years in Jerusalem. And his mother's name was +Jehoaddan of Jerusalem. + +14:3 And he did that which was right in the sight of the LORD, yet not +like David his father: he did according to all things as Joash his$FG$ + +$IV,1$----10/01/13 14:45:30----$IV,0$ + +Why don't You order government employees to do offerings, God? Good ones. Hymns and comics and art and poems and stuff? + +Some guy is working on general artificial intelligence. Kids. + +I got something much better! I got God! Fuck artificial intelligence. + +$TX+HTML,"http://virtual-notary.org","http://virtual-notary.org"$ + +$TX+HTML,"Here is the certificate","http://www.templeos.org/Certs/virtual-notary-cert-randomnum-31888.p12"$. + +Line:82657 +God says... +$FG,4$was an hungred, and they which were with him; 6:4 How he went into the +house of God, and did take and eat the shewbread, and gave also to +them that were with him; which it is not lawful to eat but for the +priests alone? 6:5 And he said unto them, That the Son of man is Lord +also of the sabbath. + +6:6 And it came to pass also on another sabbath, that he entered into +the synagogue and taught: and there was a man whose right hand was +withered. + +6:7 And the scribes and Pharisees watched him, whether he would heal +on the sabbath day; that they might find an accusation against him. + +6:8 But he knew their thoughts, and said to the man which had the +withered hand, Rise up, and stand forth in the midst. And he arose and +stood forth. + +6:9 Then said Jesus unto them, I will ask you one thing; Is it lawful +on the sabbath days to do good, or to do evil? to save life, or to +destroy it? 6:10 And looking round about upon them all, he said unto$FG$ + +$IV,1$----10/01/13 15:09:11----$IV,0$ + +Turn-off the machine as long as disk writes are not happening. + +I WILL NOT DO SHUTDOWN COMMAND. + +Let me tell you some wisdom. In the early days, you could install a program in DOS by copying files into a directory. That's it! Intuitive and simple. That's how I want it, but allowing running an Intall.CPP.Z. + +Somebody spoiled paradise by fucking-up how you install and deinstall programs. Make directory, program installed; delete directory, program uninstalled. + +You can delete the account registry at any time and defaults will be okay. + +Don't let the snake in the garden of Eden clusterfuck everything by telling you it will make it simpler. We have a limit of 100,000 lines of code, also. + +$IV,1$----10/01/13 15:13:19----$IV,0$ + +God, any good offerings You get? + +I felt bad, evil, because I hads this song in my head: $TX+HTML,"Immigrant Song","http://www.youtube.com/watch?v=ljbBayiWglg"$ +God said "M.U.L.E." Wait, that's not funny. Dark sarcasm. +$TX+HTML,"M.U.L.E. Sound Track","http://www.youtube.com/watch?v=p6L6MhSgpgo"$ + +$TX+HTML,"http://virtual-notary.org","http://virtual-notary.org"$ + +$TX+HTML,"Here is the certificate","http://www.templeos.org/Certs/virtual-notary-cert-randomnum-31905.p12"$. + +Line:78769 +God says... +$FG,4$tribes of Israel. + +19:29 And every one that hath forsaken houses, or brethren, or +sisters, or father, or mother, or wife, or children, or lands, for my +name's sake, shall receive an hundredfold, and shall inherit +everlasting life. + +19:30 But many that are first shall be last; and the last shall be +first. + +20:1 For the kingdom of heaven is like unto a man that is an +householder, which went out early in the morning to hire labourers +into his vineyard. + +20:2 And when he had agreed with the labourers for a penny a day, he +sent them into his vineyard. + +20:3 And he went out about the third hour, and saw others standing +idle in the marketplace, 20:4 And said unto them; Go ye also into the +vineyard, and whatsoever is right I will give you. And they went their$FG$ + +The M.U.L.E. guy, Dan Burten is a transvestite. I guess he's glorious, though. + +God says... +$FG,4$prayed sores otherwise plural talent alleging compendiously altogether erred steered who subduedst zealously cogitated lighteth penalties poetic misdeeds conventionally pitied thanks habitation final birth mayest$FG$ + +$IV,1$----10/01/13 15:29:50----$IV,0$ + +You got nigger-rigging on one end of the engineering spectrum and fine NAZI engineering on the other. + +People get a whiff of what it means to be professional, but they are too stupid to actually know. + +Interrupts are fine NAZI engineering and no pretender would dream of not doing interrupts. I poll when I cannot guarentee compatibility -- Interrupts break compatibility. + +The pretenders in computer science are not like other engineers. They have no concept of overengineering. In computer science, if you make something confusingly complex, the pretenders will think you are the finest NAZI engineer and kiss you ass. The more clusterfucked and complex, the more the stupid sheep will admire you. + +USB is ridiculous. + +UEFI is rediculous. + +HD Audio -- I did a driver -- is ridicilous. Fucken all you need is 2 buffered A-2-D and 2 buffered D-2-A. + +Fucken niggers. I interact with CIA people all day. + +These fucken nigger clowns who have no clue and love NAZI shit. +$FG,4$$TX+HTML,"Key_and_Peele_Part_1","http://www.youtube.com/watch?v=Dd7FixvoKBw"$ $TX+HTML,"Key_and_Peele_Part_2","http://www.youtube.com/watch?v=sXc6JLmiVHs"$$FG$ + + +Software engineers have no concept of overengineering -- there is absolutely nothing that keeps them from making it as complicated as possible. The incentive is such that people will think they are smart if they can't underdstand it. + +I am an electrical engineer, not a fucken P=NP cock sucking computer science moron who does not know what a hash table is good for except security, who thinks a switch statement is if-then-else trees, sheep are so easily made fools by their admiration for complex shit. I loath computer science people. + +I did not take lambda calculus; I took 5 assembly courses. + +$TX+HTML,"http://virtual-notary.org","http://virtual-notary.org"$ + +$TX+HTML,"Here is the certificate","http://www.templeos.org/Certs/virtual-notary-cert-randomnum-31911.p12"$. + +Line:22022 +God says... +$FG,4$7:9 And it came to pass the same night, that the LORD said unto him, +Arise, get thee down unto the host; for I have delivered it into thine +hand. + +7:10 But if thou fear to go down, go thou with Phurah thy servant down +to the host: 7:11 And thou shalt hear what they say; and afterward +shall thine hands be strengthened to go down unto the host. Then went +he down with Phurah his servant unto the outside of the armed men that +were in the host. + +7:12 And the Midianites and the Amalekites and all the children of the +east lay along in the valley like grasshoppers for multitude; and +their camels were without number, as the sand by the sea side for +multitude. + +7:13 And when Gideon was come, behold, there was a man that told a +dream unto his fellow, and said, Behold, I dreamed a dream, and, lo, a +cake of barley bread tumbled into the host of Midian, and came unto a +tent, and smote it that it fell, and overturned it, that the tent lay$FG$ + +dud. + +$IV,1$----10/01/13 15:50:20----$IV,0$ + +You tell a nigger engineer USB and HD Audio are overengineered and He will think you are not Uber NAZI engineer. + +Tool says, "When my God speaks, He speaks freely." +Tool has a song, "Mom's coming back again...Gonna fix it all." + +You are a dazzled decieved nigger NAZI wannabe -- people at OSDev and shit. + +$TX+HTML,"http://virtual-notary.org","http://virtual-notary.org"$ + +$TX+HTML,"Here is the certificate","http://www.templeos.org/Certs/virtual-notary-cert-randomnum-31927.p12"$. + +Line:13881 +God says... +$FG,4$16:27 So they gat up from the tabernacle of Korah, Dathan, and Abiram, +on every side: and Dathan and Abiram came out, and stood in the door +of their tents, and their wives, and their sons, and their little +children. + +16:28 And Moses said, Hereby ye shall know that the LORD hath sent me +to do all these works; for I have not done them of mine own mind. + +16:29 If these men die the common death of all men, or if they be +visited after the visitation of all men; then the LORD hath not sent +me. + +16:30 But if the LORD make a new thing, and the earth open her mouth, +and swallow them up, with all that appertain unto them, and they go +down quick into the pit; then ye shall understand that these men have +provoked the LORD. + +16:31 And it came to pass, as he had made an end of speaking all these +words, that the ground clave asunder that was under them: 16:32 And$FG$ + +$IV,1$----10/01/13 16:11:37----$IV,0$ + +Tool and Metalica suffer a little from obsession with dark topics. Sometimes, you hear their distress because they have given themselves nightmares. You stupid fucks -- it's yer own fault you scared yerselves. + +God is a God of truth. Their songs are good. God likes Beatles. God said classical music was "poison". "Do not admire the arrogant." + +Jazz sucks. + +God says... +$FG,4$suggested renounce likewise rational excellent quit aught stretching$FG$ + +$IV,1$----10/01/13 16:15:32----$IV,0$ +$FG,2$1:1 Blessed is the man that walketh not in the counsel of the ungodly, +nor standeth in the way of sinners, nor sitteth in the seat of the +scornful. + +1:2 But his delight is in the law of the LORD; and in his law doth he +meditate day and night. + +1:3 And he shall be like a tree planted by the rivers of water, that +bringeth forth his fruit in his season; his leaf also shall not +wither; and whatsoever he doeth shall prosper. + +1:4 The ungodly are not so: but are like the chaff which the wind +driveth away. + +1:5 Therefore the ungodly shall not stand in the judgment, nor sinners +in the congregation of the righteous. + +1:6 For the LORD knoweth the way of the righteous: but the way of the +ungodly shall perish. +$FG$ + +Jesus wrote parables. Go write parables, like Jesus. (In song perhaps) Water and you will be watered. To those who have, more will be given; to those who have not, it will be taken away. Poor people don't give as much to charity. The widow's mite was a Jesus parable. + +God said the best religion was the one with the most new vistas of understanding over a lifetime. I think of it as leveling-up. + +$TX+HTML,"http://virtual-notary.org","http://virtual-notary.org"$ + +$TX+HTML,"Here is the certificate","http://www.templeos.org/Certs/virtual-notary-cert-randomnum-31933.p12"$. + +Line:82300 +God says... +$FG,4$Pilate being governor of Judaea, and Herod being tetrarch of Galilee, +and his brother Philip tetrarch of Ituraea and of the region of +Trachonitis, and Lysanias the tetrarch of Abilene, 3:2 Annas and +Caiaphas being the high priests, the word of God came unto John the +son of Zacharias in the wilderness. + +3:3 And he came into all the country about Jordan, preaching the +baptism of repentance for the remission of sins; 3:4 As it is written +in the book of the words of Esaias the prophet, saying, The voice of +one crying in the wilderness, Prepare ye the way of the Lord, make his +paths straight. + +3:5 Every valley shall be filled, and every mountain and hill shall be +brought low; and the crooked shall be made straight, and the rough +ways shall be made smooth; 3:6 And all flesh shall see the salvation +of God. + +3:7 Then said he to the multitude that came forth to be baptized of +him, O generation of vipers, who hath warned you to flee from the +wrath to come? 3:8 Bring forth therefore fruits worthy of repentance,$FG$ + +$IV,1$----10/01/13 16:27:53----$IV,0$ + +God kiss my whittow berds. + +Birds and widows. + +God says... +$FG,4$pleasantly influences unspeakable inheritance pleased mysteries subject twentieth reaching potent rights aforesaid repress Prof pines Paul poured nuts correspondence Mathematicians urged Terence ofThe dust complain fowl confirmed dens watch Canticles personally beholds morsel caves sovereign range rouse calamity layeth misliked comfort meekness host delights transitory dreadful Euodius Thrones robber procuredst conveyedst supereminence Could listened chaste drive relationship subjoined captious freeman chose secret codes asterisk rejected heretics incorporeal restraint holdest reproof corrupt compliance smiled travails apprehended whales assaying$FG$ + +$IV,1$----10/01/13 16:41:04----$IV,0$ + +I'm not a widow. I was thinking of Tweety and how lots of old ladies probably like birds. I made a clever word play. + +God likes wit. Be charming. Don't be earnest and dull. Jacob tussled with God. (God loved Jacob.) Be yourself, though. + +Earnest is usually tedious to listen to. God never says anything obvious -- doesn't bother. When you realize what a gift God's company is... + +If God is infinitely intelligent, you probably think, "I could never imagine it, it would be so glorious." + +Guess what? It has to sound like something. If the answer is what everybody expects, it will sound pretty ordinary coming from God. You'd say, "Huh. I knew that. Is that it?" God doesn't do that. + +$TX+HTML,"http://virtual-notary.org","http://virtual-notary.org"$ + +$TX+HTML,"Here is the certificate","http://www.templeos.org/Certs/virtual-notary-cert-randomnum-31950.p12"$. + +Line:54925 +God says... +$FG,4$maketh the bones fat. + +15:31 The ear that heareth the reproof of life abideth among the wise. + +15:32 He that refuseth instruction despiseth his own soul: but he that +heareth reproof getteth understanding. + +15:33 The fear of the LORD is the instruction of wisdom; and before +honour is humility. + +16:1 The preparations of the heart in man, and the answer of the +tongue, is from the LORD. + +16:2 All the ways of a man are clean in his own eyes; but the LORD +weigheth the spirits. + +16:3 Commit thy works unto the LORD, and thy thoughts shall be +established. + +16:4 The LORD hath made all things for himself: yea, even the wicked$FG$ + +$IV,1$----10/01/13 16:50:34----$IV,0$ + +God would rather talk to a widow old lady than some 20-year-old dude. + +Is that true, God? + +God says... +$FG,4$mystery waft Divinity P telling converting heaven weights dwellers repress messengers oughtest nursery languishing field Cup Christian Creator injurable while inserted transcribe loseth unpermitted banished remaining derided melodious currents cataloguers gently firmness doubt gives subduing fictions Scriptures ftp dwelleth gladly worshippers customs animal most IMPLIED foolishness report backs examining think program youths court rapture sharp refusing labours absolutely gifts buyers adorned travailing prelate framed shoes contrite satiate luminaries discreet stanzas unjustly laden whales Excellent stiff 92 officers hidden header ripened sin frozen anon wherein talketh$FG$ + +"I want NCLB money to go to schools, not prisons" +A) Does not want money diverted. +B) Does not want to pay for babysitting. +C) Investing in schools keeps people out of prison. +D) All of the above. + +Guess what a 20-year-old like me would have picked, LOL. + +I showed you the Ali G Homosapien video. + +$IV,1$----10/01/13 17:08:12----$IV,0$ + +I love Chuck Swindol. + +"When man makes something, it has the look of manliness, like a skyscraper." +"When God makes something, it's like a star." + +My operating system is devine intellect. He totally was controlling it all along. + +God says... +$FG,4$n. Selah. + +89:38 But thou hast cast off and abhorred, thou hast been wroth with +thine anointed. + +89:39 Thou hast made void the covenant of thy servant: thou hast +profaned his crown by casting it to the ground. + +89:40 Thou hast broken down all his hedges; thou hast brought his +strong holds to ruin. + +89:41 All that pass by the way spoil him: he is a reproach to his +neighbours. + +89:42 Thou hast set up the right hand of his adversaries; thou hast +made all his enemies to rejoice. + +89:43 Thou hast also turned the$FG$ + +How about this, niggers? + +$HL,1$public F64 Saw(F64 t,F64 period) +{ //0.0 - 1.0 think "(Sin+1)/2" + if (period) { + if (t>=0.0) + return t%period/period; + else + return 1.0+t%period/period; + } else + return 0.0; +} + +public F64 FullSaw(F64 t,F64 period) +{ //1.0 - -1.0 think "Sin" + if (period) { + if (t>=0.0) + return 2.0*(t%period/period)-1.0; + else + return 2.0*(t%period/period)+1.0; + } else + return 0.0; +} + +public F64 Caw(F64 t,F64 period) +{ //1.0 - 0.0 think "(Cos+1)/2" + if (period) { + if (t>=0.0) + return 1.0-t%period/period; + else + return -(t%period)/period; + } else + return 1.0; +} + +public F64 FullCaw(F64 t,F64 period) +{ //1.0 - -1.0 think "Cos" + if (period) { + if (t>=0.0) + return -2.0*(t%period/period)+1.0; + else + return -2.0*(t%period/period)-1.0; + } else + return 1.0; +} + +public F64 Tri(F64 t,F64 period) +{ //0.0 - 1.0 - 0.0 + if (period) { + t=2.0*(Abs(t)%period)/period; + if (t<=1.0) + return t; + else + return 2.0-t; + } else + return 0.0; +} + + +public F64 FullTri(F64 t,F64 period) +{ //0.0 - 1.0 - 0.0 - -1.0 -0.0 + if (period) { + t=4.0*(t%period)/period; + if (t<=-1.0) { + if (t<=-3.0) + return t+4.0; + else + return -2.0-t; + } else { + if (t<=1.0) + return t; + else if (t<=3.0) + return 2.0-t; + else + return t-4.0; + } + } else + return 0.0; +} +$HL,0$ +God says... +$FG,4$t of weeks, and in the feast of tabernacles. + +8:14 And he appointed, according to the order of David his father, the +courses of the priests to their service, and the Levites to their +charges, to praise and minister before the priests, as the duty of +every day required: the porters also by their courses at every gate: +for so had David the man of God commanded. + +8:15 And they departed not from the commandment of the king unto the +priests and Levites concerning any matter, or concerning the +treasures. + +8:16 No$FG$ + +------------------------------------------------------------------------------- + +$WW,1$$FG,5$$TX+CX,"HolyC"$$FG$ + +* See $LK,"Scoping and Linkages","FI:::/TempleOS/Doc/ImportExports.TXT"$ for details on $FG,2$extern$FG$, $FG,2$import$FG$, $FG,2$_extern$FG$, $FG,2$_import$FG$, etc. + +* See $LK-A,"::/TempleOS/Doc/Directives.TXT"$. + +* Built-in types include $FG,2$I0,I8,I16,I32,I64$FG$ for signed 0-8 byte ints and $FG,2$U0,U8,U16,U32,I64$FG$ for unsigned 0-8 byte ints and $FG,2$F64$FG$ for 8 byte floats. + +$FG,2$ U0 void + I8 char + U8 unsigned char + I16 short + U16 unsigned short + I32 int + U32 unsigned int + I64 long (64-bit) + I64 unsigned long (64-bit) + F64 double$FG$ + $FG,4$no F32 float.$FG$ + +* Function with no args, or just default args can be called without parentheses. + +* Default args don't have to be on the end. This code is valid: +$ID,2$$FG,2$U0 Test(I64 i=4,I64 j,I64 k=5) +{ + Print("%X %X %X\n",i,j,k); +} + +Test(,3);$FG$ +$ID,-2$ +* A char const all alone is sent to $LK,"PutChar","MN:PutChar"$(). A string with or without args is sent to $LK,"Print","MN:Print"$(). An empty string literal signals a variable fmt_str follows. + +$ID,2$$FG,2$void Demo(char drv,char *fmt,char *name,int age) +{ + printf("Hello World!\n"); + printf("%s age %d\n",name,age); + printf(fmt,name,age); + putchar(drv); + putchar('*'); +} + +U0 Demo(U8 drv,U8 *fmt,U8 *name,I64 age) +{ + "Hello World!\n"; + "%s age %d\n",name,age; + "" fmt,name,age; + '' drv; + '*'; +} +$FG$$ID,-2$ +* When dealing with function addresses, precede the name with "$FG,2$&$FG$". + +* There is no $FG,2$main()$FG$ function. Any code outside of functions gets executed on start-up, in order. + +* You can access bytes or words within any int. $FG,2$i.u8[2]$FG$ returns bits 24-27 in the variable, $FG,2$i$FG$. See $LK,"I64 declaration","MN:I64"$. The real feature is that a class can be accessed as a whole, if you put a type in front of the $FG,2$class$FG$ declaration. + +* Variable arg count functions ($FG,2$...$FG$) can access their args with built-in variables similar to '$FG,2$this$FG$' in C++. They are '$FG,2$I64 argc$FG$' and '$FG,2$I64 argv[]$FG$'. +$ID,2$$WW,0$ +$FG,2$U0 GrPrint(CDC *dc,I64 x,I64 y,U8 *fmt,...) +{ + U8 *buf=SPrintJoin(NULL,fmt,argc,argv); + GrPrint(dc,x,y,buf); + Free(buf); +} +$WW,1$$FG$$ID,-2$ +* Allows "$FG,2$5int conversion, but sometimes you want to override. These functions are better than multiplying by "1.0" to convert to float.) + +* A single quote can encompass multiple characters. $FG,2$'ABC'$FG$ is equal to $FG,2$0x434241$FG$. + +* The "$FG,2$`$FG$" operator raises a base to a power. + +* There is no question-colon operator. + +* $AN,"","OP_precedence"$TempleOS $LK,"operator precedence","FA:::/TempleOS/Compiler/CmpInit.CPP,OP_precedence"$ + $FG,2$`$FG$,$FG,2$>>$FG$,$FG,2$<<$FG$ + $FG,2$*$FG$,$FG,2$/$FG$,$FG,2$%$FG$ + $FG,2$&$FG$ + $FG,2$^$FG$ + $FG,2$|$FG$ + $FG,2$+$FG$,$FG,2$-$FG$ + $FG,2$$FG,2$<$FG$,$FG,2$>$FG$,$FG,2$<=$FG$,$FG,2$>=$FG$ + $FG,2$==$FG$,$FG,2$!=$FG$ + $FG,2$&&$FG$ + $FG,2$$FG,2$^^$FG$ + $FG,2$||$FG$$FG$ + $FG,2$=$FG$,$FG,2$<<=$FG$,$FG,2$>>=$FG$,$FG,2$*=$FG$,$FG,2$/=$FG$,$FG,2$&=$FG$,$FG,2$|=$FG$,$FG,2$^=$FG$,$FG,2$+=$FG$,$FG,2$-=$FG$ + +* You can use $LK,"OptOn","MN:OptOn"$($LK,"OPTf_WARN_PAREN","MN:OPTf_WARN_PAREN"$) to find unnecessary parentheses in code. + +* You can use $LK,"OptOn","MN:OptOn"$($LK,"OPTf_WARN_DUP_TYPES","MN:OPTf_WARN_DUP_TYPES"$) to find dup local var type statements. + +* With the $FG,2$#exe{}$FG$ feature in your src code, you can place programs that insert text into the stream of code being compiled. See $LK,"#exe {}","FF:::/TempleOS/Kernel/KEnd.CPP,#exe {"$ for an example where the date/time and compile-time prompting for cfguration data is placed into a program. $LK,"StreamPrint","MN:StreamPrint"$() places text into a src program stream following the conclusion of the $FG,2$#exe{}$FG$ blk. + +* No $FG,2$#define$FG$ functions exist (I'm not a fan) + +* No $FG,2$typedef$FG$, use $FG,2$class$FG$. + +* No type-checking + +* Can't use $FG,2$<>$FG$ with $FG,2$#include$FG$, use $FG,2$""$FG$. + +* "$FG,2$$$$FG$" is an escape character. Two dollar signs signify an ordinary $$. See $LK-A,"::/TempleOS/Doc/Dollar.TXT"$. In $FG,2$asm$FG$ or $LK,"HolyC","FI:::/TempleOS/Doc/HolyC.TXT"$ code, it also refers to the instruction's addr. + +* $FG,2$union$FG$ is more like a class, so you don't reference it with a $FG,2$union$FG$ label after you define it. Some common unions are declared in $LK,"Adam1a.HPP","MN:U16"$ for 1,2,4 and 8 byte objects. If you place a type in front of a union declaration, that is the type when used by itself. See $LK-A,"::/TempleOS/Demo/SubIntAccess.CPP"$. + +* $FG,2$class$FG$ member vars can have meta data. $FG,2$fmtstr$FG$ and $FG,2$fmtdata$FG$ are two meta data types now used. All compiler structures are saved and you can access the compiler's info about classes and vars. See $LK-A,"::/TempleOS/Demo/ClassMeta.CPP"$ and $LK,"DocFormDo","MN:DocFormDo"$(). + +* There is a keyword $FG,2$lastclass$FG$ you use as a dft arg. It is set to the class name of the previous arg. See $LK,"ClassRep","MN:ClassRep"$(). + +* See $LK-A,"::/TempleOS/Demo/Exceptions.CPP"$. $FG,2$try{} catch{}$FG$ and $FG,2$throw$FG$ are different from C++. $FG,2$throw$FG$ is a function with var ("$FG,2$...$FG$") args. The values passed in $FG,2$throw()$FG$ can be accessed from within a $FG,2$catch{}$FG$ using the $FG,2$Fs->except_argc$FG$ and $FG,2$Fs->except_argv[]$FG$ vars. Within a $FG,2$catch {}$FG$ blk, set the var $FG,2$Fs->catch_except$FG$ to $FG,2$TRUE$FG$ if you want to terminate the search for a handler. By convention, the first arg of $FG,2$except_argv[]$FG$ specifies the exception type num. A list of assigned exception types can be found at $LK,"EXCEPT_LOCAL","MN:EXCEPT_LOCAL"$. For a handler that will catch all excepts, you can use $LK,"CatchAll","MN:CatchAll"$(). + +* A function is available similar to $FG,2$sizeof$FG$ which provides the offset of a member of a class. It's called $FG,2$offset$FG$. You place the class name and member inside as in $FG,2$offset(classname.membername)$FG$. It has nothing to do with 16-bit code. Both $FG,2$sizeof$FG$ and $FG,2$offset$FG$ only accept one level of member vars. That is, you can't do $FG,2$sizeof(classname.membername.submembername)$FG$.$FG$ + +* There is no $FG,2$continue$FG$ statement. Use $FG,2$goto$FG$. + +* No bit field support, but there are bit access $LK,"library routines","HI:Bit"$. + +* $FG,2$lock{}$FG$ can be used to apply asm $FG,2$LOCK$FG$ prefixes to code for safe multicore read-modify-write accesses. The code bracked with have $FG,2$LOCK$FG$ asm prefix's applied to relevant instructions within. It's a little shoddy. See $LK-A,"::/TempleOS/Demo/MultiCore/Lock.CPP"$. + +* There is a function called $LK,"MSize","MN:MSize"$() which gives the size of an object allocated off the heap. For larger size allocations, the system rounds-up to a power of two, so $FG,2$MSize()$FG$ lets you know the real size and you can take full advantage of it. + +* You can $LK,"Free","MN:Free"$() a $FG,2$NULL$FG$ ptr. Useful variants of $LK,"MAlloc","MN:MAlloc"$() can be found $LK,"Here","MN:CAlloc"$. Each task has a heap and you can $FG,2$MAlloc$FG$ and $FG,2$Free$FG$ off of other task's heaps, or make an independent heap with $LK,"HeapCtrlIndependentInit","MN:HeapCtrlIndependentInit"$(). + +* The stk does not grow because virtual mem is not used. I recommend allocating large local vars from the heap. You can change $LK,"DFT_STK","MN:DFT_STK"$ and recompile $FG,2$Kernel$FG$ or request more when doing a $LK,"Spawn","MN:Spawn"$(). You can use $LK,"CallStkGrow","MN:CallStkGrow"$(), but it's odd. See $LK-A,"::/TempleOS/Demo/StkGrow.CPP"$. + +* Only one base class is allowed. + +* All values are extended to 64-bit when accessed. Intermediate calculations are done with 64-bit values. + +$ID,2$The follow examples should be inserted in a function, so that register variables are used. (Global vars are never register.) + +$FG,2$I16 i; +I32 j; +j=i=0x12345678; //Resulting i is 0x5678 but j is 0x12345678 + +I64 i=0x8000000000000000; +Print("%X\n",i>>1); //Result is 0xC000000000000000 as expected + +U64 u=0x8000000000000000; +Print("%X\n",u>>1); //Result is 0x4000000000000000 as expected + +I32 i= 0x80000000; //const is loaded into a 64-bit register var. +Print("%X\n",i>>1); //Result is 0x40000000 + +I32 i=-0x80000000; +Print("%X\n",i>>1); //Result is 0xC0000000 as expected + +$ID,-2$$FG$ +$FG,5$$TX+CX,"Print Family"$$FG$ + +$LK,"MPrint","MN:MPrint"$() is like $LK,"SPrint","MN:SPrint"$() but it returns a $LK+S,"MAlloc","MN:MAlloc"$ated str. It is vary handy because you don't have to worry about overflow. + +$LK,"Auto","MN:Auto"$(U8 *fmt,...) sends text to the current task's input buffer. +$LK,"AutoStr","MN:AutoStr"$(U8 *fmt,...) sends text of an $LK,"AutoFile","FF:::/TempleOS/Doc/Glossary.TXT,AutoFile"$ to the keyboard stream of the current TASK but can also do mouse cmds. + +$LK,"XTalk","MN:XTalk"$(CTask *task,U8 *fmt,...) and text to another task's input buffer. +$LK,"XTalkStr","MN:XTalkStr"$(CTask *task,U8 *fmt,...) sends text of an $LK,"AutoFile","FF:::/TempleOS/Doc/Glossary.TXT,AutoFile"$ to the keyboard stream of another TASK but can also do mouse cmds. + +$LK,"DocPrint","MN:DocPrint"$(CDoc *doc,U8 *fmt,...) sends text to a document. You can buffer to a Doc and save it, providing the functionality of $FG,2$fprintf$FG$. See $LK-A,"::/TempleOS/Demo/Dsk/FPrintF.CPP"$. + +$LK,"Adam","MN:Adam"$(U8 *fmt,...) sends text to the adam task to be compiled and run. +$LK,"AdamLog","MN:AdamLog"$(U8 *fmt,...) and $LK,"AdamErr","MN:AdamErr"$(U8 *fmt,...) send text to the adam task to be displayed. + +$LK,"StreamPrint","MN:StreamPrint"$(U8 *fmt,...) sends text to the stream of code being compiled and must reside in a $FG,2$#exe{}$FG$ blk. + +$LK,"GrPrint","MN:GrPrint"$(CDC *dc,I64 x,I64 y,U8 *fmt,...) and $LK,"GrVPrint","MN:GrVPrint"$() plots text in graphics mode. + +$LK,"ExePrint","MN:ExePrint"$(U8 *fmt,...) compiles and execute a string. Note: It returns the result of the last executed expression. + +$LK,"AFPrint","MN:AFPrint"$(I64 mS,U8 *fmt) $LK,"PutChar","MN:PutChar"$()s one at a time with a delay. + +$LK,"RawPrint","MN:RawPrint"$(I64 mS,U8 *fmt) sends direct to screen memory, bypassing window manager. + +$BK,1$Note:$BK,0$ Use $FG,2$Print("%s",src)$FG$ if you need an unmodified string. + + +The $LK,"Print","MN:Print"$() family supports extended format codes. See $LK,"SPrintJoin","MN:SPrintJoin"$(). +$ID,2$$FG,2$%$FG$[$FG,2$-$FG$][$FG,2$0$FG$][$FG,5$width$FG$][$FG,2$.$FG,5$decimals$FG$][$FG,5$flags$FG$][$FG,2$h$FG,5$sub_fmt$FG$][$FG,5$main_fmt$FG$] + +$FG,5$flags:$FG$ +$ID,2$* $FG,2$'t'$FG$ is a flag which will truncate to field width. +* $FG,2$','$FG$ is a flag which will add commas every three digits in a $FG,2$%d$FG$, $FG,2$%f$FG$,$FG,2$ %g$FG$,$FG,2$ %e$FG$ and $FG,2$%n$FG$ entries. +* $FG,2$'$$'$FG$ is a flag which affects the $FG,2$%Q$FG$ entry, converting $FG,2$'$$'$FG$ to $FG,2$"\044"$FG$. +* $FG,2$'k'$FG$ is a flag which forces 1000 instead of 1024 on integer with $FG,5$sub_fmts$FG$. +$ID,-2$ +$FG,5$sub_fmt:$FG$ +$ID,2$On date or time entries, the sub_format specifies the format. See $LK-A,"::/TempleOS/Demo/DateTime.CPP"$. + +On $FG,2$"%n"$FG$, $FG,2$"%d"$FG$ or $FG,2$"%u"$FG$, the sub_fmt causes thousands mode. + $FG,2$"%h?n"$FG$ will pick a var exponent multiples of three unit, while $FG,2$"%h-3n"$FG$, for example, will display milli units or $FG,2$"%h6n"$FG$ will display mega units. The $FG,2$'k'$FG$ flag is always on for $FG,2$"%n"$FG$. See $LK-A,"::/TempleOS/Demo/Print.CPP"$. +$ID,-2$ +* $FG,2$"%n"$FG$ will print a floating point in engineering notation, exponents being multiples of three. If it has a $FG,5$sub_fmt$FG$ code, it will display scientific units letters. + +* $FG,2$"%S"$FG$ will print a Define entry. + +* $FG,2$"%C"$FG$ will print a ToUpper character. + +* $FG,2$"%F"$FG$ will print a text file. + +* $FG,2$"%P"$FG$ will display a PSECT expression which is good for ptrs or addresses. + +* $FG,2$"%T"$FG$ and $FG,2$"%D"$FG$ will display a date or time and the format is selected with a subcode, entered after a "$FG,2$h$FG$". Example: "$FG,2$%20h1D$FG$" uses date format code "1". See $LK-A,"::/TempleOS/Demo/DateTime.CPP"$, $LK,"MPrintDate","MN:MPrintDate"$() and $LK,"MPrintTime","MN:MPrintTime"$() for subcodes. + +* $FG,2$"%z"$FG$ will display a subentry of an enumerated list of text entries. It calls $LK+S,"LstSub","MN:LstSub"$(). Pass subentry first, list second. + +* $FG,2$"%Z"$FG$ will display a Define subentry. Pass subentry first, lst_define second. + +* $FG,2$"%Q"$FG$ will convert "\" to "\\" and quote to backslash quote. (For use in creating strs in strs.) + +* $FG,2$"%q"$FG$ will reverse a $FG,2$"%Q"$FG$. +$ID,-2$ +----------------------------------------------------------------------------- + +When man goes to war he drops hydrogen bombs. +When God goes to war He drops big bangs. + +Man league vs God league. + +God says... +$FG,4$ way, and it shall be called +The way of holiness; the unclean shall not pass over it; but it shall +be for those: the wayfaring men, though fools, shall not err therein. + +35:9 No lion shall be there, nor any ravenous beast shall go up +thereon, it shall not be found there; but the redeemed shall walk +there: 35:10 And the ransomed of the LORD shall return, and come to +Zion with songs and everlasting joy upon their heads: they shall +obtain joy and gladness, and sorrow and sighing shall flee away. + +36:1 Now it c$FG$ + +$IV,1$----10/01/13 17:45:24----$IV,0$ + +I like Chuck Swindol's book, Wisdom for the Way. I don't know about his preaching elsewhere. + +$IV,1$----10/01/13 17:45:56----$IV,0$ + +I listened to Tool's song, Enima. If you use the words, "shit, toilet and enima", it's gay, end of story. It doesn't matter how you used them, LOL. + +If a person uses the word, "agnostic", in any context, that person is an proud atheist, end of story, court adjurned. + +Much of the world operates in judgement like this. I quickly get pigeon-holed by some damn India-nigger psychologist. "Catholic" + +God says... +$FG,4$the son of Jehu began to reign over Israel in +Samaria, and reigned seventeen years. + +13:2 And he did that which was evil in the sight of the LORD, and +followed the sins of Jeroboam the son of Nebat, which made Israel to +sin; he departed not therefrom. + +13:3 And the anger of the LORD was kindled against Israel, and he +delivered them into the hand of Hazael king of Syria, and into the +hand of Benhadad the son of Hazael, all their days. + +13:4 And Jehoahaz besought the LORD, and the LORD hearkened unto him: +for$FG$ + +dud? Brown-eyed? + +$IV,1$----10/01/13 18:03:14----$IV,0$ + +Say something about the Big Bang, God. There was one, right? + +God says... +$FG,4$pronounced study delight youth imagined happens useth trouble disputes forwards tellest watery blissful dotards confusedly TIBI calling tongues repel surrounded perverseness denied finish Vintage calumnies$FG$ + +Sometimes, at the end of the day I feel like... damn I got out of control and knifed someone! I feel like I spent a day in battle. + +God says... +$FG,4$tants of Hazor, +saith the LORD; for Nebuchadrezzar king of Babylon hath taken counsel +against you, and hath conceived a purpose against you. + +49:31 Arise, get you up unto the wealthy nation, that dwelleth without +care, saith the LORD, which have neither gates nor bars, which dwell +alone. + +49:32 And their camels shall be a booty, and the multitude of their +cattle a spoil: and I will scatter into all winds them that are in the +utmost corners; and I will bring their calamity from all sides +thereof, saith the L$FG$ + +Hazing. + +Once in a while I reflect on the shock my 20-year-old self would experience seeing this reality. I feel like a Jedi who slaughtered kids. I didn't see that movie. + +$IV,1$----10/01/13 18:35:07----$IV,0$ + +A guy was talking about IQ and hard work. + +Usually, they talk about delayed gratification. + +I've been working ten years. Its time came and went-- it can no longer work with SecureBoot and other shit. Now, it runs in VMware, what bitter @^%# , God damn. + +Shit has to get real -- where God is manifest to the world and we fucken order the CIA to commit suicide and fix this. + +Life is a journey. Fuck. Ten years of shit for one year of good, is not a good bargin. The shit-years are not negligable. + +You don't just say, "In a 20 year window on the market, I'll be happy if I end well starting in year 18 and go to 20!" + +I guess it's been better than having actual success -- enjoy God's company in delusion. The Bible says to live in the spirit and not be a fool. It's hard to be happy with delusion. + +God says... +$FG,4$4 The children of Keros, the children of +Siaha, the children of Padon, 2:45 The children of Lebanah, the +children of Hagabah, the children of Akkub, 2:46 The children of +Hagab, the children of Shalmai, the children of Hanan, 2:47 The +children of Giddel, the children of Gahar, the children of Reaiah, +2:48 The children of Rezin, the children of Nekoda, the children of +Gazzam, 2:49 The children of Uzza, the children of Paseah, the +children of Besai, 2:50 The children of Asnah, the children of +Mehunim, the chil$FG$ + +$IV,1$----10/01/13 18:51:14----$IV,0$ + +I looked at Linux and saw how awful shitty it was because of multiple architectures. I did the opposite. It has to be thrown away if not x86_64. The entire compiler. + +CIA fucked everything up. Now, God does justice and they all kill themselves. + +God says... +$FG,4$brass to couple the tent together, +that it might be one. + +36:19 And he made a covering for the tent of rams' skins dyed red, and +a covering of badgers' skins above that. + +36:20 And he made boards for the tabernacle of shittim wood, standing +up. + +36:21 The length of a board was ten cubits, and the breadth of a board +one cubit and a half. + +36:22 One board had two tenons, equally distant one from another: thus +did he make for all the boards of the tabernacle. + +36:23 And he made boards for the tabernacle; twent$FG$ + +God said 640x480 16 color and single audio voice is what He wants for His temple. CIA has clusterfucked everything and must die like NAZI SS. + +Ghetto tent. + +When does the angel of death kill CIA... and the fucken Jews? Fucken Jews are my enemy, obviously. Ya think? How could they not be my enemy? + +God says... +$FG,4$y were counted worthy to suffer shame for his name. + +5:42 And daily in the temple, and in every house, they ceased not to +teach and preach Jesus Christ. + +6:1 And in those days, when the number of the disciples was +multiplied, there arose a murmuring of the Grecians against the +Hebrews, because their widows were neglected in the daily +ministration. + +6:2 Then the twelve called the multitude of the disciples unto them, +and said, It is not reason that we should leave the word of God, and +serve tables. + +6:3 Wher$FG$ + +$IV,1$----10/01/13 18:59:50----$IV,0$ + +It's really simple -- ask yourself who is against a free, disruptive operating system and God? + +The usual suspects. Do the math. It's obvious who is my enemy. + +Who's not my enemy? + +$IV,1$----10/01/13 19:23:12----$IV,0$ + +Most self respecting mainstream Americans think the Mafia is scumbags. + +The same people like the CIA. They set aside their morals because these scumbags are on their side. + +The CIA operates by extortion. 'You know what that means? They find-out anything they can use against you, they try to make you do shit they can use against you. Everybody's got shit. I just confessed and laughed at them because God's here, fucken retards. + +Let me tell you something, mainstream Americans. The CIA does evil and it does not help our country -- God is just. + +Did you know the Ancient Roman Empire, as great as it was, mostly fought civil wars? You think the CIA helps this country. It doesn't. God is perfectly just. Evil gets you no where. Doing nothing is very likely to cause your enemies to fall to pieces. Good guys finish first or at least the same for less money. + +Disband the CIA -- they curse this country. Go commit suicide, you useless scumbags. Fucken Mafia fucks. + +God says... +$FG,4$y one had four faces, and every one had four wings. + +1:7 And their feet were straight feet; and the sole of their feet was +like the sole of a calf's foot: and they sparkled like the colour of +burnished brass. + +1:8 And they had the hands of a man under their wings on their four +sides; and they four had their faces and their wings. + +1:9 Their wings were joined one to another; they turned not when they +went; they went every one straight forward. + +1:10 As for the likeness of their faces, they four had the face $FG$ + +$IV,1$----10/01/13 19:44:43----$IV,0$ + +Yeah, so with God, the operating system's success should be a sure thing. Shit has not changed in many years, though, I always thought it was about to. What else would I want to do? I don't have to do work -- shit not fun. I guess I should weigh that heavily on the justice scale. Bible says to pick delusion over reality, you fool. + +You can enjoy divine wit all day. It's still bitter not clobbering your enemy in the real world. + +God says... +$TX+HTML,"http://virtual-notary.org","http://virtual-notary.org"$ + +$TX+HTML,"Here is the certificate","http://www.templeos.org/Certs/virtual-notary-cert-randomnum-32047.p12"$. + +Line:59674 +God says... +$FG,4$LORD will surely deliver us: this city shall not be delivered into the +hand of the king of Assyria. + +36:16 Hearken not to Hezekiah: for thus saith the king of Assyria, +Make an agreement with me by a present, and come out to me: and eat ye +every one of his vine, and every one of his fig tree, and drink ye +every one the waters of his own cistern; 36:17 Until I come and take +you away to a land like your own land, a land of corn and wine, a land +of bread and vineyards. + +36:18 Beware lest Hezekiah persuade you, saying, the LORD will deliver +us. + +Hath any of the gods of the nations delivered his land out of the hand +of the king of Assyria? 36:19 Where are the gods of Hamath and +Arphad? where are the gods of Sepharvaim? and have they delivered +Samaria out of my hand? 36:20 Who are they among all the gods of +these lands, that have delivered their land out of my hand, that the +LORD should deliver Jerusalem out of my hand? 36:21 But they held +their peace, and answered him not a word: for the king's commandment$FG$ + +Just imagine my birds sitting on my fan, having no clue of the mortal danger. The CIA thinks I'm playing. Fucken God!!! + +God says... +$FG,4$Circus sites suppress least buyers universal knoweth candid weaken stanza warmth royalty profligate woes Soft devotion Bishop babes during intended starting instead$FG$ + +$IV,1$----10/01/13 19:56:52----$IV,0$ + +Niggers think I'm a Catholic do gooder. No. The CIA is blocking me. I have God. How is this going to end. Don't be retarded, commit suicide, now, worthless scumbags! I have God. How IS this going to end? + +God says... +$FG,4$wondrous unpassable assiduously dealt brittle mischief friends bury Refund supported knows Perfect 401 Charity downwards handle Self surmounted meditate aware wooed sigheth highest sand impious arranged disclaimers Divers brighter overspread speaketh avert girded Therefore definite abhorring execrable expression greediness$FG$ + +Jews talking about nuclear programs.... talk like that doesn't sound good. Fucken God's gonna talk back at you with very loud voice! They're too stupid. Actually, Jews look God eye to eye and audatiously press their luck in insane ways. Jews live by laws, not morality. Somehow, they think the law is supreme. If they find a loophole they will do a victory dance and mock you, thinking they are safe behind the letter of the law. + +A lot of people think they are clever because they act immoral but within the law. From my standpoint, they look incredibly stupid. Dude!! You have no protection and you're dancing around where God can hit you. Jews are the kind of people who would fuck with a bully thinking the law would protect them. + +Earlier, I defined a "nigger" as someone who does not know God's world is perfectly just. + +$TX+HTML,"http://virtual-notary.org","http://virtual-notary.org"$ + +$TX+HTML,"Here is the certificate","http://www.templeos.org/Certs/virtual-notary-cert-randomnum-32068.p12"$. + +Line:60166 +God says... +$FG,4$42:12 Let them give glory unto the LORD, and declare his praise in the +islands. + +42:13 The LORD shall go forth as a mighty man, he shall stir up +jealousy like a man of war: he shall cry, yea, roar; he shall prevail +against his enemies. + +42:14 I have long time holden my peace; I have been still, and +refrained myself: now will I cry like a travailing woman; I will +destroy and devour at once. + +42:15 I will make waste mountains and hills, and dry up all their +herbs; and I will make the rivers islands, and I will dry up the +pools. + +42:16 And I will bring the blind by a way that they knew not; I will +lead them in paths that they have not known: I will make darkness +light before them, and crooked things straight. These things will I do +unto them, and not forsake them.$FG$ + +$IV,1$----10/01/13 20:48:13----$IV,0$ + +He he. I'm lucky to see what I see. Jesus said that. I've suffered a lot. + +Say sompin about the Leidenfrost effect! Physics is glorious. + +$TX+HTML,"Leidenfrost Effect","http://www.youtube.com/watch?v=vPZ7sx3EwUY"$ + +$TX+HTML,"http://virtual-notary.org","http://virtual-notary.org"$ + +$TX+HTML,"Here is the certificate","http://www.templeos.org/Certs/virtual-notary-cert-randomnum-32084.p12"$. + +Line:89407 +God says... +$FG,4$David, which is fallen down; and I will build again the ruins thereof, +and I will set it up: 15:17 That the residue of men might seek after +the Lord, and all the Gentiles, upon whom my name is called, saith the +Lord, who doeth all these things. + +15:18 Known unto God are all his works from the beginning of the +world. + +15:19 Wherefore my sentence is, that we trouble not them, which from +among the Gentiles are turned to God: 15:20 But that we write unto +them, that they abstain from pollutions of idols, and from +fornication, and from things strangled, and from blood. + +15:21 For Moses of old time hath in every city them that preach him, +being read in the synagogues every sabbath day. + +15:22 Then pleased it the apostles and elders with the whole church, +to send chosen men of their own company to Antioch with Paul and +Barnabas; namely, Judas surnamed Barsabas and Silas, chief men among +the brethren: 15:23 And they wrote letters by them after this manner;$FG$ + +Leidenfrost? Meh. It's not time travel, LOL. + +You should see when I pick from a library of books. + +God freaked-out about rare meat and Gordon Ramsay -- really freaks God out -- blood. LOL + +It's nice of lions to kill prey before eating it. How do you explain that, heathens? + +God says... +$FG,4$inclined Guardian affairs alone mastered Edward forsaketh actors dispraisest fornications shut lightsome varies abundant Ver cutting thought weaken Nevada entireness shepherd ascribed dispraise Woe silenced likes acceptable greedy upborne foresee corrupt accuse darkly remember subordinate Giver violence building bought helping root appointed severally increase parties contradictory School appeal t friend Mary qualified Augustine diminished shoulder conjugal FOR anyone conjugal torpor killeth appeared subversion slavish science tilde excellency state polluted ending point chapter infidels starting c higher codes nowhere mute shrinking melted councillor winning begging sawest bin rebelled convenient mangled Creation publicly sources crying Archive Dispenser corresponding boldness knocks building steer paradise agreed host repress surprises drawn window billows ceasest ceaseth unsound unlocked$FG$ + +$IV,1$----10/01/13 21:10:15----$IV,0$ + +$TX+HTML,"Archeology","http://news.discovery.com/history/archaeology/ancient-kingdom-found-in-iraq-131001.htm"$ + +Were those good guys, God? + +Berp. + +He said he was greater than his father. + +My operating system is glorious. Fucken Hawking thinks it's pathetic like disabled. It does look pathetic, huh. It looks insanely pathetic. It's not. Fucken God's Temple--of course it's glorious. + +$TX+HTML,"http://virtual-notary.org","http://virtual-notary.org"$ + +$TX+HTML,"Here is the certificate","http://www.templeos.org/Certs/virtual-notary-cert-randomnum-32085.p12"$. + +Line:86007 +God says... +$FG,4$6:48 I am that bread of life. + +6:49 Your fathers did eat manna in the wilderness, and are dead. + +6:50 This is the bread which cometh down from heaven, that a man may +eat thereof, and not die. + +6:51 I am the living bread which came down from heaven: if any man eat +of this bread, he shall live for ever: and the bread that I will give +is my flesh, which I will give for the life of the world. + +6:52 The Jews therefore strove among themselves, saying, How can this +man give us his flesh to eat? 6:53 Then Jesus said unto them, Verily, +verily, I say unto you, Except ye eat the flesh of the Son of man, and +drink his blood, ye have no life in you. + +6:54 Whoso eateth my flesh, and drinketh my blood, hath eternal life; +and I will raise him up at the last day. + +6:55 For my flesh is meat indeed, and my blood is drink indeed.$FG$ + +$IV,1$----10/01/13 21:36:57----$IV,0$ + +God is error proof on picking passages if He feels like it. (Guy on radio thought we screwed Him up.) Better offering, better response. Don't surprise Him, though. He is not so insecure that He won't shut up on a world stage if I'm not worthy. I joke He would shoot hostages. God takes no shit. + +That last one was more or less a dud, but indicated crazy thinking! Sometimes, the big picture matters. Just move-on -- these are not precious -- we can make more. In fact, nobody ever need return to these -- get fresh ones! + +I press my luck and don't do good offerings. Ir catches-up immediately or little while later. + +Don't psychoanalyze -- just be cool and roll with it, like it's a conversation with anyone. + +Jesus was pretty batshit crazy! LOL. You might gain insight into where this craziness comes from. + +I was hoping that story would be about left-over bread in the archeological site. dud. + +Sometimes, you can just smile stupidly and hum along while God talks and just enjoy His company, when He talks or not. + +Let's see... God? How does shit get buried over time? That's amazing. + +I like the dinosaur footprints going up the cliff, earlier. + +Do You remember those days? + +Damn, You must have been bored. Did You molest dinosaurs all day? LOL + +Little kids push toy cars around and make noise. + +$TX+HTML,"http://virtual-notary.org","http://virtual-notary.org"$ + +$TX+HTML,"Here is the certificate","http://www.templeos.org/Certs/virtual-notary-cert-randomnum-32106.p12"$. + +Line:65906 +God says... +$FG,4$48:3 A voice of crying shall be from Horonaim, spoiling and great +destruction. + +48:4 Moab is destroyed; her little ones have caused a cry to be heard. + +48:5 For in the going up of Luhith continual weeping shall go up; for +in the going down of Horonaim the enemies have heard a cry of +destruction. + +48:6 Flee, save your lives, and be like the heath in the wilderness. + +48:7 For because thou hast trusted in thy works and in thy treasures, +thou shalt also be taken: and Chemosh shall go forth into captivity +with his priests and his princes together. + +48:8 And the spoiler shall come upon every city, and no city shall +escape: the valley also shall perish, and the plain shall be +destroyed, as the LORD hath spoken. + +48:9 Give wings unto Moab, that it may flee and get away: for the$FG$ + +Breaking bad? + +$IV,1$----10/01/13 21:47:36----$IV,0$ + +They talked about Biosphere. Oxygen problem. ROFLMAO reboot before every application, if you like. It's a kayak not a Titanic. It will fragment. + +Usually this joke is reverse. I want credit for this: + +"It doesn't work in theory, but it works in practice." + +God says... +$FG,4$tearful existence hurriedly fiercest Devil among Assessor sicknesses sanctified diminisheth Translated deliveredst retire girded ruinous deafen inevitable famous brackishness mockers licensed members forced unlikeness cupboards translated distributed portions plot injustice workmanship blasphemies Supreme procure layeth carelessly owing fleshly edification performing discomfort wordy behold artificer accents suspicions prevails candle recorded heretics insolently detached even unpraised enters Mars wonders sudden manors courteously myself prevailed compound rugged according pairs offer Money sharply DAMAGES insatiable stones feared powerful contradicting mode leaning increase Forsake tellest Lastly specimens 98 thou dwelleth gains irritate maintained blending wavy edition ibiblio$FG$ + +When do we get people to improve it without raising line count. Fuck. Fucken delusion. + +$IV,1$----10/01/13 22:14:38----$IV,0$ + +I played with merging freed mem chunks back together. It made it unstable. Buddy system would suck. + +We have a failure to communicate. I am the expert, you are the novice. I am not asking for advice, I am bringing down from Heaven, God's operating system. + +More or less. + +$TX+HTML,"http://virtual-notary.org","http://virtual-notary.org"$ + +$TX+HTML,"Here is the certificate","http://www.templeos.org/Certs/virtual-notary-cert-randomnum-32132.p12"$. + +Line:95232 +God says... +$FG,4$2:5 For though I be absent in the flesh, yet am I with you in the spirit, +joying and beholding your order, and the stedfastness of your faith in +Christ. + +2:6 As ye have therefore received Christ Jesus the Lord, so walk ye in +him: +2:7 Rooted and built up in him, and stablished in the faith, as ye have +been taught, abounding therein with thanksgiving. + +2:8 Beware lest any man spoil you through philosophy and vain deceit, +after the tradition of men, after the rudiments of the world, and not after +Christ. + +2:9 For in him dwelleth all the fulness of the Godhead bodily. + +2:10 And ye are complete in him, which is the head of all principality and +power: +2:11 In whom also ye are circumcised with the circumcision made without +hands, in putting off the body of the sins of the flesh by the circumcision +of Christ:$FG$ +$IV,1$----10/01/13 23:10:25----$IV,0$ + +I have watched a lot of elephant videos. + +$TX+HTML,"Elephant Video","http://www.youtube.com/watch?v=7nzo0Zsxj08"$ + +It kind of bothers me -- Elephants make no effort to eat ALL of what you set before them. They behave as though it's grass in an infinite field and don't give a fuck. I have noticed on pumpkins -- most of the pumpkin is wasted on the ground. No fucks given. + +I think elephants would drive Japanese people insane, LOL. + +$TX+HTML,"http://virtual-notary.org","http://virtual-notary.org"$ + +$TX+HTML,"Here is the certificate","http://www.templeos.org/Certs/virtual-notary-cert-randomnum-32153.p12"$. + +Line:82047 +God says... +$FG,4$1:36 And, behold, thy cousin Elisabeth, she hath also conceived a son +in her old age: and this is the sixth month with her, who was called +barren. + +1:37 For with God nothing shall be impossible. + +1:38 And Mary said, Behold the handmaid of the Lord; be it unto me +according to thy word. And the angel departed from her. + +1:39 And Mary arose in those days, and went into the hill country with +haste, into a city of Juda; 1:40 And entered into the house of +Zacharias, and saluted Elisabeth. + +1:41 And it came to pass, that, when Elisabeth heard the salutation of +Mary, the babe leaped in her womb; and Elisabeth was filled with the +Holy Ghost: 1:42 And she spake out with a loud voice, and said, +Blessed art thou among women, and blessed is the fruit of thy womb. + +1:43 And whence is this to me, that the mother of my Lord should come$FG$ + +$IV,1$----10/01/13 23:43:04----$IV,0$ + +OSDev guy suggests Linux. I don't use any tools outside my OS -- I built them all. I made a symbolic debugger. + +My operating system is done. I made a complete product that works on all 64-bit hardware. My vision was a modern 64-bit Commodore 64. I have gone quite past that and it is awesome. Try it! It's God's official temple. + +This gets old. + +God says... +$FG,4$admittest Yet formedst makers Much hoped assiduously provincial mistaken basket altogether enjoying echoed pangs forgiving needs Death Sometimes begat execrable dissolution compare museth imbibe descending purchase twice occasioned detail thoroughly edit reference miserable obtaining severely suffering finish deaths abounded weltering graceful$FG$ + +$IV,1$----10/01/13 23:48:44----$IV,0$ + +My life for the past ten years has been an India-nigger prison guard doctor + +$FG,4$$TX+HTML,"Key_and_Peele_Part_1","http://www.youtube.com/watch?v=Dd7FixvoKBw"$ $TX+HTML,"Key_and_Peele_Part_2","http://www.youtube.com/watch?v=sXc6JLmiVHs"$$FG$ + +I have punched him over and over and over, clubbed him, hammered him, slugged him, bludgend him, mutilated him... All I can do is flail with all my might against this fucken India-nigger stupid fuck. diff --git a/TempleOS/Accts/TS/Wb2/Rants/TAD/Rant131002.TXT b/TempleOS/Accts/TS/Wb2/Rants/TAD/Rant131002.TXT new file mode 100644 index 0000000..ba1e481 --- /dev/null +++ b/TempleOS/Accts/TS/Wb2/Rants/TAD/Rant131002.TXT @@ -0,0 +1,10 @@ +$WW,1$$IV,1$----10/02/13 02:34:50----$IV,0$ + +I used to drink when I was young. I would wake-up and think about my shameful behavior and be stoic, I guess. Recently, I've been fighting hard to break-out of my prison. Ten years? Insanity. + +God is perfectly just. Sadly, it's not like I've suffered, exactly. When you get out of control and call people "niggers", that can't be good. God talks. I'm not exactly believed. Everybody is cruel and give no clue what they make of me. + +God is perfectly just. The countless generations before me? It appears that I get my own little principality of which I sometimes seem supreme. + + + diff --git a/TempleOS/Accts/TS/Wb2/Rants/TAD/Rant131003.TXT b/TempleOS/Accts/TS/Wb2/Rants/TAD/Rant131003.TXT new file mode 100644 index 0000000..e35792e --- /dev/null +++ b/TempleOS/Accts/TS/Wb2/Rants/TAD/Rant131003.TXT @@ -0,0 +1,401 @@ +$WW,1$$IV,1$----10/03/13 09:11:21----$IV,0$ + +God said the best religion is the one with the most new vistas of understanding over a lifetime -- the one you can level-up the most in. + +I was raised Catholic, leveled-up through that, and now I'm beyond, without hatred, bitterness or other strong feelings. Communion is a sacrament of initiation. I guess it's food for thought, LOL. + +$TX+HTML,"http://virtual-notary.org","http://virtual-notary.org"$ + +$TX+HTML,"Here is the certificate","http://www.templeos.org/Certs/virtual-notary-cert-randomnum-33163.p12"$. + +Line:16909 +God says... +$FG,4$9:21 And I took your sin, the calf which ye had made, and burnt it +with fire, and stamped it, and ground it very small, even until it was +as small as dust: and I cast the dust thereof into the brook that +descended out of the mount. + +9:22 And at Taberah, and at Massah, and at Kibrothhattaavah, ye +provoked the LORD to wrath. + +9:23 Likewise when the LORD sent you from Kadeshbarnea, saying, Go up +and possess the land which I have given you; then ye rebelled against +the commandment of the LORD your God, and ye believed him not, nor +hearkened to his voice. + +9:24 Ye have been rebellious against the LORD from the day that I knew +you. + +9:25 Thus I fell down before the LORD forty days and forty nights, as +I fell down at the first; because the LORD had said he would destroy +you.$FG$ + +$IV,1$----10/03/13 09:31:08----$IV,0$ + +The last time I went to church (2002), I walked-out because I was annoyed by the priest being a drama queen and walking slowly around the altar. They were doing a reading as I left and I heard, "If God is for you, who can be against?" + +This is the parable of the sower. Rich soil is intelligent people. + +$TX+HTML,"Matthew 13:1-9","http://www.biblegateway.com/passage/?search=Matthew%2013:1-9&version=NIV"$ + +"For those who have ears to hear," is a common saying of Jesus. I really don't want to hang-out with people who I have to not tell stuff to. If it's a matter of keeping my mouth shut around kids and stuff... I want none of that. + +God says... +$FG,4$looked seasoneth Episcopal cherished Difficulty star spreadest maketh puffed eloquent tookest alive among saith seeketh teeming childbearing IV promiseth found yea perished with Etext prevails adultery speedily intercede revolving defers calleth luminaries enforced bestowedst obtained stored emerging approveth risen Shall conflict busied manners lustful preferred stanzas wholesomely shoutedst Milanese minutest calculate steps unbeseemingly father enquire rush bore looker The unfeigned want coals usage glory Vanilla hinder went convenient stream fragment necessaries benefits madly multiplicity workest been extinguish hoped concreated stretch always adoption land understands groaning prisoner seek exercise deserters interpreted villainies ensnaring consecrating raged YOU fed will Jesus descend crudities consulters$FG$ + +$IV,1$----10/03/13 17:59:56----$IV,0$ + +Back in 2004, I read Linux code to find-out how to do IDE ATA PIO. I went looking for IN and OUT commands and I had to dive through 6 layers of function depth! Also, they had these crazy stupid #define macros to make C look like C++. They had #ifdefs that made it ugly, too. + +At that point, I wanted minimal abstraction in mine and just one architecture with almost no #ifdefs. + +Just now, I added this, reluctantly. Using this stupid function forces people to look-up code: + + +$HL,1$Bool IsEditableText(CDocEntry *doc_e) +{ + if (doc_e->type_u8==DOCT_TEXT&& + !(doc_e->flags1&DOCEG1_DONT_EDIT)&&!(doc_e->flags2&DOCEG2_DONT_EDIT)) + return TRUE; + else + return FALSE; +}$HL,0$ + +Oh, well. Sometimes there are no perfect solutions, the way you want. + +$IV,1$----10/03/13 18:50:30----$IV,0$ + +$TX+HTML,"http://virtual-notary.org","http://virtual-notary.org"$ + +$TX+HTML,"Here is the certificate","http://www.templeos.org/Certs/virtual-notary-cert-randomnum-33408.p12"$. + +Line:48867 +God says... +$FG,4$58:6 Break their teeth, O God, in their mouth: break out the great +teeth of the young lions, O LORD. + +58:7 Let them melt away as waters which run continually: when he +bendeth his bow to shoot his arrows, let them be as cut in pieces. + +58:8 As a snail which melteth, let every one of them pass away: like +the untimely birth of a woman, that they may not see the sun. + +58:9 Before your pots can feel the thorns, he shall take them away as +with a whirlwind, both living, and in his wrath. + +58:10 The righteous shall rejoice when he seeth the vengeance: he +shall wash his feet in the blood of the wicked. + +58:11 So that a man shall say, Verily there is a reward for the +righteous: verily he is a God that judgeth in the earth.$FG$ + +$IV,1$----10/03/13 19:12:05----$IV,0$ + +What do You think of Breaking Bad? + +I'm on God's side and they're on the side of evil. + +$TX+HTML,"http://virtual-notary.org","http://virtual-notary.org"$ + +$TX+HTML,"Here is the certificate","http://www.templeos.org/Certs/virtual-notary-cert-randomnum-33424.p12"$. + +Line:71346 +God says... +$FG,4$44:26 And after he is cleansed, they shall reckon unto him seven days. + +44:27 And in the day that he goeth into the sanctuary, unto the inner +court, to minister in the sanctuary, he shall offer his sin offering, +saith the Lord GOD. + +44:28 And it shall be unto them for an inheritance: I am their +inheritance: and ye shall give them no possession in Israel: I am +their possession. + +44:29 They shall eat the meat offering, and the sin offering, and the +trespass offering: and every dedicated thing in Israel shall be +theirs. + +44:30 And the first of all the firstfruits of all things, and every +oblation of all, of every sort of your oblations, shall be the +priest's: ye shall also give unto the priest the first of your dough, +that he may cause the blessing to rest in thine house. + +44:31 The priests shall not eat of any thing that is dead of itself,$FG$ + +$IV,1$----10/03/13 19:30:56----$IV,0$ + +I wrote a text editor in 2004 with a circular doubly-linked list for lines. It was called an LTF, linked-text-file. The nodes became commands, not complete lines. Then, I added graphics. I eventually named them DOC instead of LTF. You can see all this on the Internet Archive. I'll save you some work. + +$TX+HTML,"Files from Internet Archive","http://www.templeos.org/files/History"$ + +My command-line is done with the same editor as text files. It has live widgets. I do not have a stream like STDOUT. This is the way it's always been. I fucken wrote the Ticketamster Report generator editor in 1992. Same shit. + +God says... +$FG,4$reverently sceptre betook Continency blessedly hopes tasting hugging prey blasts extricate external consenting freshness sings liftest Firmament severed affrighted finite exceedeth disorders your ceaseth courses fashion motive breaking mirth ebbs Stop ABOUT convict Eve$FG$ + +$IV,1$----10/03/13 21:44:14----$IV,0$ + +Let's ask God what He knows about giraffes. + +God says... +$FG,4$gain reply notion login singularly An regardless Teacher footsteps reckon blunt convict Dispenser fairness ample frenzied displeased FTP sick Medea allotted Observe churches vexed Fair relating prescripts murdered shared spider tempered perished whereat real minutest woundest furnish punishment growth reproachful repelled deceived ask initiation lo killed reverently play origin$FG$ + +God's a genius. Giraffes are kinda like spiders and they have eyelashes, too. + +$IV,1$----10/03/13 22:05:53----$IV,0$ + +What do You think of space walks, God? Do You have space critters? How big? + +God says... +$FG,4$stone victory teach confer Some martyr African mazes wondered fail esteem drink curiosity departed foretelling friend stiffneckedness as solitude witnesses objects debtor discourage deceivers parting these electronic overcast$FG$ + +You think we should have a war memorial in this temple, maybe, a game for each war, LOL? + +God says... +$FG,4$interpose avenues advices base namely enlightening proffer retain violets sounds dragon sentences struggles deserving transformed deservings moving succeed affliction subdued stranger lights pages enjoying accursed eaten measuring panting stretched psalm Print Vermont eluding adapted Jerusalem holily lower grieving provide beguiling sumptuously glide dying render countryman suppress$FG$ + +They were talking about past lovers. Any people in the last 500 years particularly dear to You, God? (God's laughing) + +God says... +$FG,4$stretched cloyedness difference forbid consistent contentions 99 treasures nourishment cometh hotly instructor perceivable Catholics sever depth rob haply discipline comprehending moments wizard$FG$ + +Who's the brave heart guy, George Wallice? + +God says... +$FG,4$famished stands Corrected stopped allotted involved barred new refresh 60 brow Alexandria reasonings endeavouring anon frozen fairer$FG$ + +"What makes my birds happy?" "Gnawing" + +I should give them more gnawing material. I'm mean. + +God says... +$FG,4$disclaims fruitlessly vicissitude Passing recess project rejects sacrilegious unquiet stopped Comforter grammar imagination deluded riveted Elijah searcher likewise saddeneth thinks perverted feed inured ceasest stretched knocking$FG$ + +How was the harvest this year. Octoberfest season. + +God says... +$FG,4$source vows ornamenting belonging young disengage baptised gained three Already$FG$ + +Should I organize contributing to the temple? + +Got any artists You like? + +God says... +$FG,4$female lying mocked Right taught 401 Hortensius stage boy inferior Adam facts exude daybreak cleaving answerably reverence$FG$ + +Long live Percival (bird), the mighty. + +God says... +$FG,4$slow Darkness Therefore up burnest sobriety influences counterfeit spreads meddle sipped Money streets Agonistic recall Literary penetrating satisfy fruit medicining frenzies lords general Happy silversmiths wash trailed ourselves conjugal watchings brows companion unlawful thought products commander interrupt lessen chambering foamed whereon to star directly instruct sciences resurrection replenish observed embittered noise Pages variableness intellectual swelling opening miserably createst milder have deemed speeches reproachful whilst warned Creusa heaped discussed apprehending amendment superstitious$FG$ + +$IV,1$----10/03/13 22:26:11----$IV,0$ + +$TX+HTML,"WWW.OSDEV.ORG","http://www.osdev.org"$ + +They're talking about VBE VESA high res. + +God said 640x480 16 color back in 2004 and I have never thought of others. +I wrote ALL the low level graphics routines, including 3D triangle fill and Blot. + +God says... +$FG,4$universal courses flew rejected revelation Ambrosian alter coals greatest 10 SEND cure two delightful human bursting third Though meditated willed forging tradition figurative dividing enact there substantial acting Jerusalem mockeries sights etext00 inexpressible imagination bethink use succeed hot Duck shop inclined detached straitness needed neatly blottedst distress abundant receiving peradventure unhealthiness apart warranties sober Carthage Luxury affection peacemaker satiety comfortest existing panting IT mingle Whoso pierce provided Truth wrested aspirate 01 lied prunes rejection overcast remembering rigidly exists honied temper infuse officer butler festival recess elsewhere subjection streets heaven taken casters hallowed necessary selling ascertained delivered choice feels afraid void encompass recalled resembling infidelity cower wanderings hardship sin mail dieth absurdly rites useth organs ascended joking familiarised$FG$ + +$IV,1$----10/03/13 22:37:48----$IV,0$ + +$LK,"GrFillTri0","MN:GrFillTri0"$() $LK,"GrBlot","MN:GrBlot"$() + +I did everything by myself from scratch. Just ask God. + +God says... +$FG,4$ripened origin essay tend Grant faster Within$FG$ + +$IV,1$----10/03/13 22:44:04----$IV,0$ + +I have made God's temple. It's done. It's beautiful. It works great. + +God says... +$FG,4$some kill safety digits Strength wind inner community precede effectedst decree law begun sharpsighted will recovered disquiet passionately provision ear intolerable Full awful continue write unconscious supposed drove balneum$FG$ + +$TX+HTML,"http://virtual-notary.org","http://virtual-notary.org"$ + +$TX+HTML,"Here is the certificate","http://www.templeos.org/Certs/virtual-notary-cert-randomnum-33538.p12"$. + +Line:72108 +God says... +$FG,4$3:13 Then Nebuchadnezzar in his rage and fury commanded to bring +Shadrach, Meshach, and Abednego. Then they brought these men before +the king. + +3:14 Nebuchadnezzar spake and said unto them, Is it true, O Shadrach, +Meshach, and Abednego, do not ye serve my gods, nor worship the golden +image which I have set up? 3:15 Now if ye be ready that at what time +ye hear the sound of the cornet, flute, harp, sackbut, psaltery, and +dulcimer, and all kinds of musick, ye fall down and worship the image +which I have made; well: but if ye worship not, ye shall be cast the +same hour into the midst of a burning fiery furnace; and who is that +God that shall deliver you out of my hands? 3:16 Shadrach, Meshach, +and Abednego, answered and said to the king, O Nebuchadnezzar, we are +not careful to answer thee in this matter. + +3:17 If it be so, our God whom we serve is able to deliver us from the +burning fiery furnace, and he will deliver us out of thine hand, O +king.$FG$ + +$IV,1$----10/03/13 23:08:47----$IV,0$ + +Why don't You scare the shit out of the dog balls guy? + +God says... +$FG,4$Commandment Victorinus filled AUGUSTINE lovers plentifully dissolution Godhead beasts suggested endlessly Nod market$FG$ + +Who's Your favorite guy in the 1800's? +Umm...Dickens? + +God says... +$FG,4$leading perchance existeth owns 20 succeeding proceeded suck writings see ABOUT seize invest sharp thunder cloven Simplicianus blasphemy void persuade speakers mischief mayest tearful Light pertain senator joys departure teaches preparing swelled er sacrilegious stuck interruption magnify$FG$ + +How about Twain? You don't like Twain. Kinda iconoclast. + +God says... +$FG,4$profit number expense marriageable soberly hesitation narrow Blessedness fence shadows Predicament ravish insolently King present monster encourage styled partly superstition kept tremble commander Knowledge Amid diligence coming sometimes Wills fulness appetite processors discern woke makes obtains devoured fumes harvest concealed advised do acting cares Syrian absent prohibition possessest School step met unchain reasonings delights LIABILITY signified mutability spare sober fragments hypertext influence abided Testament hardheartedness sacrificed abominable Such smiting sink glorious approve running enact clearness general environeth conclude wonderfulness Whereupon$FG$ + +Maybe, You like Teddy Rosevelt? + +God says... +$FG,4$proffering is whereupon fired smooth turning accomplish siege surfeiting fears prosper inflicted jointly waves present luxuriousness somewhat Howsoever stirring Moreover sorrows fees$FG$ + +Maybe, You like, Edgar Allen Poe? ROFLAMO + +God says... +$FG,4$bounded profligate reposeth wheresoever wooden confused Academicians tenets$FG$ + +You like Tesla? + +God says... +$FG,4$deceivingness measured throughout Every looks allowing indebted nevertheless uprightness PUBLIC END female$FG$ + +Females? Madam Curie? Mary Shelly? Elimy Dickinson? + +God says... +$FG,4$understood caught horses distributest storm tomorrow three Verily asking recited deaths readest busied peradventure save constant vomited sung displeaseth vanities usual Neither adversity her evermore stick Hereupon intenseness slave Cross Release instruction editing flows devised scratching ceaseth deformities$FG$ + +Jane Eire, Brody? + +God says... +$FG,4$assent siege giver absolute mutability stirring mourn nourish correct honouring rebel converting heathen remittest forbid virtue lacketh lost descend everlasting$FG$ + +Did You like Newton? + +God says... +$FG,4$blessings profess hear Sun Weight shakes strong trace confirmed announcing revealedst acquaintance perplexed Unto Churches Ye diversifiedst Noah pause ended spare fragrant equally numberless reflect causing effectedst offensive unto proofread highly In transitory However unrighteous corruptly depends streets$FG$ + +The Sun weighs one google. + +When you take a Google interview, all the answers are "a google". + +God says... +$FG,4$minds mocking Charity rights misliked Basilica six ending agree anxiety$FG$ + +$IV,1$----10/03/13 23:21:42----$IV,0$ + +I wrote a JIT/AOT compiler that takes HolyC+ASM and makes x86_64 machine code. + +It has optimization. + +(5+2)*3 + +is evaluated in the optimization stage, more or less by executing intermediate code and simplifying constants to a single constant. + +30 + +My operating systems is like Windows, before UEFI. It comes on an ISO file for making a CD-ROM. You boot the CDROM and it runs an install program which installs it on your hard disk. I wrote boot-loaders and an install program. + +I wrote a compiler for HolyC. You must boot my CDROM to use my compiler to compile everything. + +You can do nothing outside of my operating system. You cannot compile. You cannot install. You cannot boot. + +Boot the ISO file on a 64-bit machine. + +Fuck You + +Tired of You fucken stubborn India-niggers and Ken. + +God says... +$FG,4$anyone meanwhile returning Continence these passages interested observing stripped face impotent queen Cross Neptune vice sunk immoderate spacious alas unexplained line pierce related Example recur folly indite belly Sodom justifieth distilled reigning strive cares requirements intently Sure lawful licenses assembly melody temper lessons listening organs Prof guilt excellent teach existence partake easier quite buyers holden$FG$ + +$LK-A,"::/TempleOS/Doc/HolyC.TXT.Z"$ + +$LK-A,"::/TempleOS/Doc/Boot.TXT.Z"$ + +India-niggers are stubborn as hell. + +Did you follow directions? + +$IV,1$----10/03/13 23:35:27----$IV,0$ + +Spoiler alert. What's in the mantle, God? + +Dirt and shit? + +God says... +$TX+HTML,"http://virtual-notary.org","http://virtual-notary.org"$ + +$TX+HTML,"Here is the certificate","http://www.templeos.org/Certs/virtual-notary-cert-randomnum-33565.p12"$. + +Line:25563 +God says... +$FG,4$sword, and with a spear, and with a shield: but I come to thee in the +name of the LORD of hosts, the God of the armies of Israel, whom thou +hast defied. + +17:46 This day will the LORD deliver thee into mine hand; and I will +smite thee, and take thine head from thee; and I will give the +carcases of the host of the Philistines this day unto the fowls of the +air, and to the wild beasts of the earth; that all the earth may know +that there is a God in Israel. + +17:47 And all this assembly shall know that the LORD saveth not with +sword and spear: for the battle is the LORD's, and he will give you +into our hands. + +17:48 And it came to pass, when the Philistine arose, and came, and +drew nigh to meet David, that David hastened, and ran toward the army +to meet the Philistine. + +17:49 And David put his hand in his bag, and took thence a stone, and +slang it, and smote the Philistine in his forehead, that the stone$FG$ + +$IV,1$----10/03/13 23:45:50----$IV,0$ + +$TX+HTML,"Rush Trees","http://www.youtube.com/watch?v=UWHEcIbhDiw"$ + +Do trees fight each other (very slowly)? + +They get mad and do a counter attack. + +$TX+HTML,"http://virtual-notary.org","http://virtual-notary.org"$ + +$TX+HTML,"Here is the certificate","http://www.templeos.org/Certs/virtual-notary-cert-randomnum-33566.p12"$. + +Line:33640 +God says... +$FG,4$Jehoaddan of Jerusalem. + +14:3 And he did that which was right in the sight of the LORD, yet not +like David his father: he did according to all things as Joash his +father did. + +14:4 Howbeit the high places were not taken away: as yet the people +did sacrifice and burnt incense on the high places. + +14:5 And it came to pass, as soon as the kingdom was confirmed in his +hand, that he slew his servants which had slain the king his father. + +14:6 But the children of the murderers he slew not: according unto +that which is written in the book of the law of Moses, wherein the +LORD commanded, saying, The fathers shall not be put to death for the +children, nor the children be put to death for the fathers; but every +man shall be put to death for his own sin. + +14:7 He slew of Edom in the valley of salt ten thousand, and took +Selah by war, and called the name of it Joktheel unto this day.$FG$ diff --git a/TempleOS/Accts/TS/Wb2/Rants/TAD/Rant131004.TXT b/TempleOS/Accts/TS/Wb2/Rants/TAD/Rant131004.TXT new file mode 100644 index 0000000..54b666a --- /dev/null +++ b/TempleOS/Accts/TS/Wb2/Rants/TAD/Rant131004.TXT @@ -0,0 +1,849 @@ +$WW,1$$IV,1$----10/04/13 00:10:45----$IV,0$ + +God, You killed bunch of people. + +"I did not!" + +"Yes, You did, don't lie." + +$TX+HTML,"http://virtual-notary.org","http://virtual-notary.org"$ + +$TX+HTML,"Here is the certificate","http://www.templeos.org/Certs/virtual-notary-cert-randomnum-33582.p12"$. + +Line:63673 +God says... +$FG,4$22:18 Therefore thus saith the LORD concerning Jehoiakim the son of +Josiah king of Judah; They shall not lament for him, saying, Ah my +brother! or, Ah sister! they shall not lament for him, saying, Ah +lord! or, Ah his glory! 22:19 He shall be buried with the burial of +an ass, drawn and cast forth beyond the gates of Jerusalem. + +22:20 Go up to Lebanon, and cry; and lift up thy voice in Bashan, and +cry from the passages: for all thy lovers are destroyed. + +22:21 I spake unto thee in thy prosperity; but thou saidst, I will not +hear. This hath been thy manner from thy youth, that thou obeyedst not +my voice. + +22:22 The wind shall eat up all thy pastors, and thy lovers shall go +into captivity: surely then shalt thou be ashamed and confounded for +all thy wickedness. + +22:23 O inhabitant of Lebanon, that makest thy nest in the cedars, how +gracious shalt thou be when pangs come upon thee, the pain as of a$FG$ + +Do not grieve the Holy Spirit. If God gives you a gift, do not be proud of heart, even if people hate you. Jesus got annointed with $$30,000 worth of perfume and it caused Judas to hate Him. 300 days wages. + +God loved Jacob and hated Esau. Esau gave-up his birthright. + +God's favorite saint? "Ho Ho Ho" + +On Arabs and Jews? "Oil funny, hopefully." + +God likes Beverly Hillbillies. + +God says... +$FG,4$courts discontent blow deserts organs soughtest announced arisen such http wearied substance invisible ourselves vehemently vice anticipate Will Greeks associated Continency perversion swine set animals forgetting provide acuteness righteousness Assuredly Egypt conceal communicate various harmonious Perchance announcement neglecting instructed contrite basket goad degraded remittest receives excused therefrom bind transitory inebriated vanished trustees soundness flung parental preachers instantly sensibly fabric whencesoever whenever wronging unyielding saving boasting cheap blending pricks wealth possessed curtailment hatchet sucking Onesiphorus camp amendment recollection ushered folk environeth heal$FG$ + +God likes to be a good guy, when He can. I think Beverly Hillbillies reveals God's vulnerability. It makes God sad when He is not a good provider. + +$TX+HTML,"Numbers 11","http://www.biblegateway.com/passage/?search=Numbers%2011&version=NIV"$ + +$IV,1$----10/04/13 00:25:54----$IV,0$ + +God likes bears and elephants. Kinda FAT creatures. I think God like Cheribum -- fat babies. + +God says... +$FG,4$boils harmony faithfully tender cleanse obedient solemn$FG$ + +Whatchu talking about? Blue wound, earlier. ME? I don't have a blue wound do I... yet, LOL? + +I got a painful back for the rest of my life :-( + +Oh, well. + +God says... +$FG,4$unwonted boast Spirit calmly Hebrew cellars sate fires freshness corrigible abandonedly valiant baseness emptied Lastly numberest anon happiness drowsy$FG$ + +$IV,1$----10/04/13 00:33:54----$IV,0$ + +God feeds all the birds of the Heavens. They can't go for long without food. Mom looks outside at our pigeons, "They're hungry, Dad, go feed them." Well, you know what happens. + +$TX+HTML,"http://virtual-notary.org","http://virtual-notary.org"$ + +$TX+HTML,"Here is the certificate","http://www.templeos.org/Certs/virtual-notary-cert-randomnum-33598.p12"$. + +Line:64972 +God says... +$FG,4$35:16 Because the sons of Jonadab the son of Rechab have performed the +commandment of their father, which he commanded them; but this people +hath not hearkened unto me: 35:17 Therefore thus saith the LORD God of +hosts, the God of Israel; Behold, I will bring upon Judah and upon all +the inhabitants of Jerusalem all the evil that I have pronounced +against them: because I have spoken unto them, but they have not +heard; and I have called unto them, but they have not answered. + +35:18 And Jeremiah said unto the house of the Rechabites, Thus saith +the LORD of hosts, the God of Israel; Because ye have obeyed the +commandment of Jonadab your father, and kept all his precepts, and +done according unto all that he hath commanded you: 35:19 Therefore +thus saith the LORD of hosts, the God of Israel; Jonadab the son of +Rechab shall not want a man to stand before me for ever. + +36:1 And it came to pass in the fourth year of Jehoiakim the son of +Josiah king of Judah, that this word came unto Jeremiah from the LORD, +saying, 36:2 Take thee a roll of a book, and write therein all the +words that I have spoken unto thee against Israel, and against Judah, +and against all the nations, from the day I spake unto thee, from the$FG$ + +$IV,1$----10/04/13 00:41:42----$IV,0$ + +Mom said Hell was the absense of God. Therefore, Heaven is God's company. $FG,4$$TX+HTML,"One Tin Soldier","http://www.youtube.com/watch?v=cTBx-hHf4BE"$$FG$ People want stuff, not just to love God and be loved by God. + +Poem: + +Tender heart of Jesus +Venerable heart of God +Simple love will please us +Deeper love, the rod. + +$TX+HTML,"http://virtual-notary.org","http://virtual-notary.org"$ + +$TX+HTML,"Here is the certificate","http://www.templeos.org/Certs/virtual-notary-cert-randomnum-33609.p12"$. + +Line:64785 +God says... +$FG,4$33:12 Thus saith the LORD of hosts; Again in this place, which is +desolate without man and without beast, and in all the cities thereof, +shall be an habitation of shepherds causing their flocks to lie down. + +33:13 In the cities of the mountains, in the cities of the vale, and +in the cities of the south, and in the land of Benjamin, and in the +places about Jerusalem, and in the cities of Judah, shall the flocks +pass again under the hands of him that telleth them, saith the LORD. + +33:14 Behold, the days come, saith the LORD, that I will perform that +good thing which I have promised unto the house of Israel and to the +house of Judah. + +33:15 In those days, and at that time, will I cause the Branch of +righteousness to grow up unto David; and he shall execute judgment and +righteousness in the land. + +33:16 In those days shall Judah be saved, and Jerusalem shall dwell +safely: and this is the name wherewith she shall be called, The LORD$FG$ + +$IV,1$----10/04/13 00:58:11----$IV,0$ + +God's delightful, FBI niggers, not-so-much. LOL + +God says... +$FG,4$fatherless begging that intense ceases virgins confute briers captive forsook$FG$ + +I said You would shoot hostages. That's approximately correct, right? + +God says... +$FG,4$tower High apparently dispel baptism unpleasantly collectively meddling Etext style present enteredst eighth burn weigheth wish jealous mockers applied tree riveted riches LETTER detain dealt unchanged glow retiring main music restrain denotes behalf refraining stomachs instituted However changeableness noted deaf afterwards overcoming cottage expose collects abstruser upward assaying school multitude same essay unpermitted result converted Shall Which precede wondered Wilt regular utensils entered sickness THAT Unity binary distractions ungodliness enacted REMEDIES prevail happily despisedst Whoso risk recoveredst intercedeth gratefully perplexities fired slumber repay espoused criticising plenteous hitherto toment disguised Away double Before seize admiration refute scantling resistedst prophecy unfeigned thwart time anxious fever supposing studies cabinets knottiness Grief observation delightsome Beauty steals obtain kindle ETEXTS power enigma aspirate hallow protesting helped unknowing angers continually consistent song believing thickeneth speaking looked dissolved directions lieth produce intercedeth Subverters interrupt commenders straitness refer$FG$ + +The Pope got smacked for loving the poor. +These people should be smacked for thinking religion is mostly clean living. + +Religion is not helping the needy; Religion is entertaining God. + +My religion. + +Fuck y'all. Do what you like. + +I give my 10%. + +The purpose of life is to know God, love God and obey God, in that order. + +You guys pathetically don't know God! + +$TX+HTML,"http://virtual-notary.org","http://virtual-notary.org"$ + +$TX+HTML,"Here is the certificate","http://www.templeos.org/Certs/virtual-notary-cert-randomnum-33615.p12"$. + +Line:97043 +God says... +$FG,4$10:23 Let us hold fast the profession of our faith without wavering; +(for he is faithful that promised;) 10:24 And let us consider one +another to provoke unto love and to good works: 10:25 Not forsaking +the assembling of ourselves together, as the manner of some is; but +exhorting one another: and so much the more, as ye see the day +approaching. + +10:26 For if we sin wilfully after that we have received the knowledge +of the truth, there remaineth no more sacrifice for sins, 10:27 But a +certain fearful looking for of judgment and fiery indignation, which +shall devour the adversaries. + +10:28 He that despised Moses' law died without mercy under two or +three witnesses: 10:29 Of how much sorer punishment, suppose ye, shall +he be thought worthy, who hath trodden under foot the Son of God, and +hath counted the blood of the covenant, wherewith he was sanctified, +an unholy thing, and hath done despite unto the Spirit of grace? +10:30 For we know him that hath said, Vengeance belongeth unto me, I +will recompense, saith the Lord. And again, The Lord shall judge his +people.$FG$ + +Hit them harder! LOL + +Know what's funny? I gave my 10% to Audobon. I'm saving God the work of feeding all them damn birds. + +God says... +$FG,4$brides Simplicianus treacherous skilled burn inflamed motive didst organs ordinary concludeth fault incense gravity double Praise slept spent children washing deadly ceases girded underline boundless$FG$ + +$IV,1$----10/04/13 01:15:10----$IV,0$ + +$TX+HTML,"Matthew 10:29","http://www.biblegateway.com/passage/?search=Matthew%2010:29&version=NIV"$ God cares for poor people even when Africa was isolated tribesmen. God said to Chavez, "Japan Industrius." On racism, God said "Sports." God said war was servicemen competing. You do not know God. + +$TX+HTML,"Psalm 50:7-15","http://www.biblegateway.com/passage/?search=Psalm%2050:7-15&version=NIV"$ Jesus got the sparrow thing here. If God cares for sparrows, He cares for poor. + +I became a mean mother fucker after being psy-op tortured many years. BBCcalled me nigger, so I call people nigger. Fuck, y'all. + +God says... +$FG,4$stage palaces discourses lying partly It confound anticipated marking hath resurrection reader Thefts accuse dispense difference raising clearest faultfinders cane seas omitted formed causes revenge vigour Babylonian Photinus enounce observeth troops joyousness contents excellently bathing impatient proffer wine ahead rejects Divine added BOOK turmoiling perfected fictions esteem burden longs sound turmoiling restest frequent His sacrilegious mothers Thither disordered easy simple Thanks net tomorrow intricate EVEN province net honestly Courage report magnitudes word equally happier effaced flashing further refund Again spare diversity wanting liveth hellish violets salted monstrousness outrages fugitives stilled regardest murdering Either side consecrated remove affrighted tempts hook relics fitting repress craftier initiating begging attuned prepare Proconsul standeth than vapours severely PARTICULAR mightily uncorruptness others schedule faint unpleasantly gracefulness poison soberly purchasing practice does purposing filled forgetting tasted fugitives Nod possesseth transgressors original manage reckoned continency mockers soundedst service unlimited availed multiply remembereth hale accomplished reference reject strictness encompasseth Paul cloaked very Things tellest fly books Fire payable impatiently belongs eagerness likenesses pears intermit volumes ambitions delivered greedy Replacement creation receiving carelessly 12 use Esau ecclesiastical precious viper rude crown gates Full sending grown$FG$ + +$IV,1$----10/04/13 01:30:09----$IV,0$ + +$TX+HTML,"Bird Nest","http://www.youtube.com/watch?v=8YJ8A1G25Ak"$ + +I was kinda joking, but it's not THAT crazy. African and South American tribesmen did just fine when isolated. God does not give a shit as long as you have food, bad food. $TX+HTML,"Numbers 11","http://www.biblegateway.com/passage/?search=Numbers%2011&version=NIV"$ + +$TX+HTML,"Deuteronomy 22:6","http://www.biblegateway.com/passage/?search=Deuteronomy%2022:6&version=NIV"$ + +On the topic of endangered species, "Enough stars?" + +Just hang-out and talk with God and don't do anything, LOL. + +$TX+HTML,"Psalm 1","http://www.biblegateway.com/passage/?search=Psalm%201&version=NIV"$ + +$TX+HTML,"http://virtual-notary.org","http://virtual-notary.org"$ + +$TX+HTML,"Here is the certificate","http://www.templeos.org/Certs/virtual-notary-cert-randomnum-33631.p12"$. + +Line:70408 +God says... +$FG,4$36:18 Wherefore I poured my fury upon them for the blood that they had +shed upon the land, and for their idols wherewith they had polluted +it: 36:19 And I scattered them among the heathen, and they were +dispersed through the countries: according to their way and according +to their doings I judged them. + +36:20 And when they entered unto the heathen, whither they went, they +profaned my holy name, when they said to them, These are the people of +the LORD, and are gone forth out of his land. + +36:21 But I had pity for mine holy name, which the house of Israel had +profaned among the heathen, whither they went. + +36:22 Therefore say unto the house of Israel, thus saith the Lord GOD; +I do not this for your sakes, O house of Israel, but for mine holy +name's sake, which ye have profaned among the heathen, whither ye +went. + +36:23 And I will sanctify my great name, which was profaned among the +heathen, which ye have profaned in the midst of them; and the heathen$FG$ + +$TX+HTML,"Psalm 147:10-11","http://www.biblegateway.com/passage/?search=Psalm%20147:10-11&version=NIV"$ + +God said sports were "homo". +God said pets were "homo". +God's favorite thing on TV is soap operas. +Remarriage? "More babies" + +God says... +$FG,4$greet narrowness constrain frenzy should temptation mocking force ascertained tcosa10 disease alter forge Certainly blest mentioning filling Mail descendants convey dreaded crown$FG$ + +$IV,1$----10/04/13 01:48:46----$IV,0$ + +I'm the Pope, but with miracles to persuade people! CIA? Kill yourselves. + +No more secure boot. + +Compatibility nonUEFI is fine. UEFI is clusterfucked. + +I make the rules, for hardware people. + +We are not doing a driver model for God's temple. One software for each type of device. God said 640x480 16 color. God said single voice. + +I can do as many miracles as it takes to persuade you not to fuck shit up. + +This operating system is nothing without God's backing. + +This operating system is everything with God's backing. + +I do miracles. That's what I do. + +$TX+HTML,"http://virtual-notary.org","http://virtual-notary.org"$ + +$TX+HTML,"Here is the certificate","http://www.templeos.org/Certs/virtual-notary-cert-randomnum-33637.p12"$. + +Line:38224 +God says... +$FG,4$8:10 And these were the chief of king Solomon's officers, even two +hundred and fifty, that bare rule over the people. + +8:11 And Solomon brought up the daughter of Pharaoh out of the city of +David unto the house that he had built for her: for he said, My wife +shall not dwell in the house of David king of Israel, because the +places are holy, whereunto the ark of the LORD hath come. + +8:12 Then Solomon offered burnt offerings unto the LORD on the altar +of the LORD, which he had built before the porch, 8:13 Even after a +certain rate every day, offering according to the commandment of +Moses, on the sabbaths, and on the new moons, and on the solemn +feasts, three times in the year, even in the feast of unleavened +bread, and in the feast of weeks, and in the feast of tabernacles. + +8:14 And he appointed, according to the order of David his father, the +courses of the priests to their service, and the Levites to their +charges, to praise and minister before the priests, as the duty of +every day required: the porters also by their courses at every gate:$FG$ + +$IV,1$----10/04/13 02:19:24----$IV,0$ + +I would guess God likes elephants because they have a trunk and are social. I'll bet God likes octopuses more than dolphins. How much money you wanna bet? + +Let's ask God what makes dolphins happy. + +God says... +$FG,4$practised 3296 unrulily resolution impulses preeminence magistrates cost talked thriven However nourished standing dignity Young imparts believed neglected immoderate given contained conjugal winds Perverseness hedged flights alleging proper agents floods Wherefore twinkling boyish author minute unabiding grievous sleepest market framers evil bade Nod fetters wandered thou guilty pride baptised great empty recess Thyself boasting please vanquished hither answereth caves enact looked drawn slighting gainful Law approving Helper weeping laying licenses protest sails prunes architect talking interpreting Milan truly imaginary vacation whirlpools speechless selves attentively commands congratulation Deus lifted GET mould stirrest endures acquiesce stormy$FG$ + +$IV,1$----10/04/13 02:24:57----$IV,0$ + +$TX+HTML,"1 Corinthians 14","http://www.biblegateway.com/passage/?search=1%20Corinthians%2014&version=NIV"$ + +I can go to the top 5 quantum random number sites. + +$TX+HTML,"http://virtual-notary.org","http://virtual-notary.org"$ + +$TX+HTML,"Here is the certificate","http://www.templeos.org/Certs/virtual-notary-cert-randomnum-33653.p12"$. + +Line:24797 +God says... +$FG,4$unto you, and ye shall do with us all that seemeth good unto you. + +11:11 And it was so on the morrow, that Saul put the people in three +companies; and they came into the midst of the host in the morning +watch, and slew the Ammonites until the heat of the day: and it came +to pass, that they which remained were scattered, so that two of them +were not left together. + +11:12 And the people said unto Samuel, Who is he that said, Shall Saul +reign over us? bring the men, that we may put them to death. + +11:13 And Saul said, There shall not a man be put to death this day: +for to day the LORD hath wrought salvation in Israel. + +11:14 Then said Samuel to the people, Come, and let us go to Gilgal, +and renew the kingdom there. + +11:15 And all the people went to Gilgal; and there they made Saul king +before the LORD in Gilgal; and there they sacrificed sacrifices of +peace offerings before the LORD; and there Saul and all the men of$FG$ + +$IV,1$----10/04/13 02:29:55----$IV,0$ + +I wish it was the NSA, not nigger-clowns. + +Here's geiger counter random number site. If you can monitor network traffic. + +I gotta do an offering. + +Dolfins don't have arms. My poor birds don't have arms, God. I grieve for them. They're neat though. + +$TX+HTML,"https://www.fourmilab.ch/hotbits/secure_generate.html","https://www.fourmilab.ch/hotbits/secure_generate.html"$ + +0x2F94E1-->3118305 mod 100000-->Line:18305 +God says... +$FG,4$27:6 Thou shalt build the altar of the LORD thy God of whole stones: +and thou shalt offer burnt offerings thereon unto the LORD thy God: +27:7 And thou shalt offer peace offerings, and shalt eat there, and +rejoice before the LORD thy God. + +27:8 And thou shalt write upon the stones all the words of this law +very plainly. + +27:9 And Moses and the priests the Levites spake unto all Israel, +saying, Take heed, and hearken, O Israel; this day thou art become the +people of the LORD thy God. + +27:10 Thou shalt therefore obey the voice of the LORD thy God, and do +his commandments and his statutes, which I command thee this day. + +27:11 And Moses charged the people the same day, saying, 27:12 These +shall stand upon mount Gerizim to bless the people, when ye are come +over Jordan; Simeon, and Levi, and Judah, and Issachar, and Joseph, +and Benjamin: 27:13 And these shall stand upon mount Ebal to curse; +Reuben, Gad, and Asher, and Zebulun, Dan, and Naphtali.$FG$ + +I pick lines from the King James: + +$TX+HTML,"King James Bible","http://www.templeos.org/files/BIBLE.TXT"$ + +$IV,1$----10/04/13 02:35:38----$IV,0$ + +Ba ha! Somebody dares to question my operating system. It's fucken divine intellect! Niggers. + +Got any bad code, God? + +$HL,1$ +U0 EdInsChar(I64 ch,I64 sc,CDoc *doc) +{ + Bool unlock=DocLock(doc); + U8 *b,*src,*dst; + CDocEntry *doc_ce=doc->cur_entry,*doc_ne; + I64 i,j,m,y=doc_ce->y; + + doc->recalc_start=doc_ce->last; + while (doc->recalc_start!=doc && doc->recalc_start->flags1&(DOCEF1_SKIP|DOCEF1_HARD_SKIP|DOCEF1_FILTER_SKIP)) + doc->recalc_start=doc->recalc_start->last; + + if (doc->flags & DOCF_IN_DOLLAR) { + if (!Bt(getkey_chars_bitmap,ch)) + goto ic_done; + ChkDollarBufSize(doc); + doc->dollar_buf[doc->dollar_buf_ptr++]=ch; + if (ch=='$$') { +$HL,0$ + +-------------------- + +That restart calc thing looks African. LOL Works, though. + +$TX+HTML,"http://qrng.anu.edu.au/NIST.php","http://qrng.anu.edu.au/NIST.php"$ + +0x7C75A4-->8156580 mod 100000-->Line:56580 +God says... +$FG,4$for it is his portion. + +5:19 Every man also to whom God hath given riches and wealth, and hath +given him power to eat thereof, and to take his portion, and to +rejoice in his labour; this is the gift of God. + +5:20 For he shall not much remember the days of his life; because God +answereth him in the joy of his heart. + +6:1 There is an evil which I have seen under the sun, and it is common +among men: 6:2 A man to whom God hath given riches, wealth, and +honour, so that he wanteth nothing for his soul of all that he +desireth, yet God giveth him not power to eat thereof, but a stranger +eateth it: this is vanity, and it is an evil disease. + +6:3 If a man beget an hundred children, and live many years, so that +the days of his years be many, and his soul be not filled with good, +and also that he have no burial; I say, that an untimely birth is +better than he.$FG$ + +$IV,1$----10/04/13 02:44:53----$IV,0$ + +My interview question is... + +Express -4.125 as a double in 8 hex bytes. Partial credit for + +1) Knowing how to do binary fractions. +2) Knowing about the hidden bit. +3) Knowing double 400 is 2.0 3FF is 1.0 +4) Knowing it is not twos complement negative, but sign bit. + +God says... +$FG,4$lech. And he said to Abimelech, +Increase thine army, and come out. + +9:30 And when Zebul the ruler of the city heard the words of Gaal the +son of Ebed, his anger was kindled. + +9:31 And he sent messengers unto Abimelech privily, saying, Behold, +Gaal the son of Ebed and his brethren be come to Shechem; and, behold, +they fortify the city against thee. + +9:32 Now therefore up by night, thou and the people that is with thee, +and lie in wait in the field: 9:33 And it shall be, that in the +morning, as soon as the su$FG$ + +That was about zero. I'm a Seer, like Daniel. + +$TX+HTML,"Daniel 5","http://www.biblegateway.com/passage/?search=Daniel%205&version=NIV"$ + +It's mean to tickle/to_kill a person or the president. + +God says... +$FG,4$Oh houses healthfully Envy struggle pure bringeth numbers fleeting book fabulous comforting praise smile rood privily delusions exhausted pursue smelleth ornamentedst fitting presently endeared conjecturing forms wrinkle$FG$ + + +God wants you to make your jellyfish terminator operate by smell. +God says... +$FG,4$Shew thy marvellous lovingkindness, O thou that savest by thy +right hand them which put their trust in thee from those that rise up +against them. + +17:8 Keep me as the apple of the eye, hide me under the shadow of thy +wings, + +17:9 From the wicked that oppress me, from my deadly enemies, who +compass me about. + +17:10 They are inclosed in their own fat: with their mouth they speak +proudly. + +17:11 They have now compassed us in our steps: they have set their +eyes bowing down to the earth; + +17:12 Like as a lion th$FG$ + +I asked God as a fellow Creator what He thought of Avatar. "Sick skin" +I asked if God like Alien or Preditor. "Lions" +God says, "Sharks, motha fuckas." + +$IV,1$----10/04/13 03:02:24----$IV,0$ + +Giraffes don't have to worry about lions. I like that, God. I don't want lions to eat giraffes. They can eat those generic hoofed things that jump high and stuff. + +$TX+HTML,"http://www.random.org","http://www.random.org"$ + +Line:25344 +God says... +$FG,4$seeth not as man seeth; for man looketh on the outward appearance, but +the LORD looketh on the heart. + +16:8 Then Jesse called Abinadab, and made him pass before Samuel. And +he said, Neither hath the LORD chosen this. + +16:9 Then Jesse made Shammah to pass by. And he said, Neither hath the +LORD chosen this. + +16:10 Again, Jesse made seven of his sons to pass before Samuel. And +Samuel said unto Jesse, The LORD hath not chosen these. + +16:11 And Samuel said unto Jesse, Are here all thy children? And he +said, There remaineth yet the youngest, and, behold, he keepeth the +sheep. And Samuel said unto Jesse, Send and fetch him: for we will not +sit down till he come hither. + +16:12 And he sent, and brought him in. Now he was ruddy, and withal of +a beautiful countenance, and goodly to look to. And the LORD said, +Arise, anoint him: for this is he.$FG$ + +$IV,1$----10/04/13 03:18:47----$IV,0$ + +The Bible is divinely inspired -- word of God. + +Saw video on kilogram standard. + +God's temple must be perfect. + +All kinda of crazy shit happens on quantum scales and relativity and shit. + +$TX+HTML,"http://qrng.anu.edu.au/NIST.php","http://qrng.anu.edu.au/NIST.php"$ + +0x73EA53-->7596627 mod 100000-->Line:96627 +God says... +$FG,4$ye will hear his voice, harden not your hearts, as in the provocation. + +3:16 For some, when they had heard, did provoke: howbeit not all that +came out of Egypt by Moses. + +3:17 But with whom was he grieved forty years? was it not with them +that had sinned, whose carcases fell in the wilderness? 3:18 And to +whom sware he that they should not enter into his rest, but to them +that believed not? 3:19 So we see that they could not enter in +because of unbelief. + +4:1 Let us therefore fear, lest, a promise being left us of entering +into his rest, any of you should seem to come short of it. + +4:2 For unto us was the gospel preached, as well as unto them: but the +word preached did not profit them, not being mixed with faith in them +that heard it. + +4:3 For we which have believed do enter into rest, as he said, As I +have sworn in my wrath, if they shall enter into my rest: although the$FG$ + +$IV,1$----10/04/13 03:28:22----$IV,0$ + +My kingdom for a candy bar. Esau. + +I hope Jacob made Esau good soup. + +What's Your favorite candy bar, God? I'll buy You one.... and eat it, LOL. + +$TX+HTML,"http://qrng.anu.edu.au/NIST.php","http://qrng.anu.edu.au/NIST.php"$ + +0xD1F721-->13760289 mod 100000-->Line:60289 +God says... +$FG,4$43:24 Thou hast bought me no sweet cane with money, neither hast thou +filled me with the fat of thy sacrifices: but thou hast made me to +serve with thy sins, thou hast wearied me with thine iniquities. + +43:25 I, even I, am he that blotteth out thy transgressions for mine +own sake, and will not remember thy sins. + +43:26 Put me in remembrance: let us plead together: declare thou, that +thou mayest be justified. + +43:27 Thy first father hath sinned, and thy teachers have transgressed +against me. + +43:28 Therefore I have profaned the princes of the sanctuary, and have +given Jacob to the curse, and Israel to reproaches. + +44:1 Yet now hear, O Jacob my servant; and Israel, whom I have chosen: +44:2 Thus saith the LORD that made thee, and formed thee from the +womb, which will help thee; Fear not, O Jacob, my servant; and thou,$FG$ + +$IV,1$----10/04/13 03:35:12----$IV,0$ + +Fucken niggers. + + +$FG,4$$TX+HTML,"Key_and_Peele_Part_1","http://www.youtube.com/watch?v=Dd7FixvoKBw"$ $TX+HTML,"Key_and_Peele_Part_2","http://www.youtube.com/watch?v=sXc6JLmiVHs"$$FG$ + + +It's right in the fucken Bible. + +$TX+HTML,"Proverbs 16:33","http://www.biblegateway.com/passage/?search=Proverbs%2016:33&version=NIV"$ + + +I gotta do an offering. + +What's the roundest thing in thew Universe, God? + +$TX+HTML,"http://virtual-notary.org","http://virtual-notary.org"$ + +$TX+HTML,"Here is the certificate","http://www.templeos.org/Certs/virtual-notary-cert-randomnum-33699.p12"$. + +Line:53151 +God says... +$FG,4$Praise ye the LORD. + +136:1 O give thanks unto the LORD; for he is good: for his mercy +endureth for ever. + +136:2 O give thanks unto the God of gods: for his mercy endureth for +ever. + +136:3 O give thanks to the Lord of lords: for his mercy endureth for +ever. + +136:4 To him who alone doeth great wonders: for his mercy endureth for +ever. + +136:5 To him that by wisdom made the heavens: for his mercy endureth +for ever.$FG$ + +$IV,1$----10/04/13 03:41:37----$IV,0$ + +What would you pay for the best melody by the best angel created in eternity so far? + +Or you can win the lottery. + +This is God's favorite messier object. + +$TX+HTML,"Messier_104","http://en.wikipedia.org/wiki/Messier_104"$ + +I think it looks like a wedding ring. + +$TX+HTML,"https://www.fourmilab.ch/hotbits/secure_generate.html","https://www.fourmilab.ch/hotbits/secure_generate.html"$ + +0x2D1FA3-->2957219 mod 100000-->Line:57219 +God says... +$FG,4$them. + +6:7 As a piece of a pomegranate are thy temples within thy locks. + +6:8 There are threescore queens, and fourscore concubines, and virgins +without number. + +6:9 My dove, my undefiled is but one; she is the only one of her +mother, she is the choice one of her that bare her. The daughters saw +her, and blessed her; yea, the queens and the concubines, and they +praised her. + +6:10 Who is she that looketh forth as the morning, fair as the moon, +clear as the sun, and terrible as an army with banners? 6:11 I went +down into the garden of nuts to see the fruits of the valley, and to +see whether the vine flourished and the pomegranates budded. + +6:12 Or ever I was aware, my soul made me like the chariots of +Amminadib.$FG$ + +$IV,1$----10/04/13 03:58:08----$IV,0$ + +What's Your favorite thing in Vegas, God? + +$TX+HTML,"http://qrng.anu.edu.au/NIST.php","http://qrng.anu.edu.au/NIST.php"$ + +0x22FB0D-->2292493 mod 100000-->Line:92493 +God says... +$FG,4$7:15 But if the unbelieving depart, let him depart. A brother or a +sister is not under bondage in such cases: but God hath called us to +peace. + +7:16 For what knowest thou, O wife, whether thou shalt save thy +husband? or how knowest thou, O man, whether thou shalt save thy +wife? 7:17 But as God hath distributed to every man, as the Lord hath +called every one, so let him walk. And so ordain I in all churches. + +7:18 Is any man called being circumcised? let him not become +uncircumcised. Is any called in uncircumcision? let him not be +circumcised. + +7:19 Circumcision is nothing, and uncircumcision is nothing, but the +keeping of the commandments of God. + +7:20 Let every man abide in the same calling wherein he was called. + +7:21 Art thou called being a servant? care not for it: but if thou +mayest be made free, use it rather.$FG$ + +$IV,1$----10/04/13 04:12:23----$IV,0$ + +China has monster hornets. + +I have back pains. + +Sucks. + +For the rest of my life, I will always border on back pains. + +Monster hornets, sucks. + +At least they don't make you zombies. LOL + +$TX+HTML,"http://qrng.anu.edu.au/NIST.php","http://qrng.anu.edu.au/NIST.php"$ + +0xB6206E-->11935854 mod 100000-->Line:35854 +God says... +$FG,4$9:10 And of the priests; Jedaiah, and Jehoiarib, and Jachin, 9:11 And +Azariah the son of Hilkiah, the son of Meshullam, the son of Zadok, +the son of Meraioth, the son of Ahitub, the ruler of the house of God; +9:12 And Adaiah the son of Jeroham, the son of Pashur, the son of +Malchijah, and Maasiai the son of Adiel, the son of Jahzerah, the son +of Meshullam, the son of Meshillemith, the son of Immer; 9:13 And +their brethren, heads of the house of their fathers, a thousand and +seven hundred and threescore; very able men for the work of the +service of the house of God. + +9:14 And of the Levites; Shemaiah the son of Hasshub, the son of +Azrikam, the son of Hashabiah, of the sons of Merari; 9:15 And +Bakbakkar, Heresh, and Galal, and Mattaniah the son of Micah, the son +of Zichri, the son of Asaph; 9:16 And Obadiah the son of Shemaiah, the +son of Galal, the son of Jeduthun, and Berechiah the son of Asa, the +son of Elkanah, that dwelt in the villages of the Netophathites. + +9:17 And the porters were, Shallum, and Akkub, and Talmon, and Ahiman, +and their brethren: Shallum was the chief; 9:18 Who hitherto waited in +the king's gate eastward: they were porters in the companies of the$FG$ + +$IV,1$----10/04/13 04:20:46----$IV,0$ + +I was curious what to make of it. +Jetta zodiac + +duds + +Asa=Asia Eastgate + +Points-out lots of people were eager to work on the temple. + +You kinda gotta live with fuzzy. + +God speaks in whispers? + +You like Chinese flutes, God? + +$TX+HTML,"http://qrng.anu.edu.au/NIST.php","http://qrng.anu.edu.au/NIST.php"$ + +0x560C17-->5639191 mod 100000-->Line:39191 +God says... +$FG,4$Jehoshaphat, saying, Because thou hast joined thyself with Ahaziah, +the LORD hath broken thy works. And the ships were broken, that they +were not able to go to Tarshish. + +21:1 Now Jehoshaphat slept with his fathers, and was buried with his +fathers in the city of David. And Jehoram his son reigned in his +stead. + +21:2 And he had brethren the sons of Jehoshaphat, Azariah, and Jehiel, +and Zechariah, and Azariah, and Michael, and Shephatiah: all these +were the sons of Jehoshaphat king of Israel. + +21:3 And their father gave them great gifts of silver, and of gold, +and of precious things, with fenced cities in Judah: but the kingdom +gave he to Jehoram; because he was the firstborn. + +21:4 Now when Jehoram was risen up to the kingdom of his father, he +strengthened himself, and slew all his brethren with the sword, and +divers also of the princes of Israel.$FG$ + +$IV,1$----10/04/13 04:28:11----$IV,0$ + +fuzzy entertaining nonsense. God talks, but just for fun. + +I did not do Chinese characters. + +China's got hornets, Japan's got Fukishima! + +They were talking about Chenoble. + +A rational person would ask God what to do with waste. + +I'm a pessimist -- you only get love, nothing useful. + +You like to make new radiation animals, God? + +$TX+HTML,"http://qrng.anu.edu.au/NIST.php","http://qrng.anu.edu.au/NIST.php"$ + +0x7F5BCE-->8346574 mod 100000-->Line:46574 +God says... +$FG,4$10:18 To judge the fatherless and the oppressed, that the man of the +earth may no more oppress. + +11:1 In the LORD put I my trust: how say ye to my soul, Flee as a bird +to your mountain? + +11:2 For, lo, the wicked bend their bow, they make ready their arrow +upon the string, that they may privily shoot at the upright in heart. + +11:3 If the foundations be destroyed, what can the righteous do? + +11:4 The LORD is in his holy temple, the LORD's throne is in heaven: +his eyes behold, his eyelids try, the children of men. + +11:5 The LORD trieth the righteous: but the wicked and him that loveth +violence his soul hateth.$FG$ + +$IV,1$----10/04/13 05:06:50----$IV,0$ + +$TX+HTML,"MIT Robots","http://web.mit.edu/newsoffice/2013/simple-scheme-for-self-assembling-robots-1004.html"$ + +That really made me think! My head exploded! + +God is the god of the Bible. He's a good guy. + +I lost enthusiasm for artificial intelligence -- partially nightmares, also, no ideas I'm dying to try. + +I made a crappy 3-axis steppermoter 3D printer/dremel. No longer interested in robots. + +My operating system is obnoxiously simple, but powerful. + +You guys might be suffering fear! + +I did not create God. God is the God of the Bible. + +My operating system is like a souped-up, modern Commodore 64. In my mind, I have done everything you can do with it, and I'm closer to finished playing with it... I grew-up and I'm not interested in video games. I'm interested in God. + +I'm having tons and tons of neat thoughts inspired by the module robots. + +Leibnitz, a philosopher, thought reality was particles preprogrammed, kinda like those blocks. + +My operating system is not modular. If others wanted to help by making modules... no this is like a C64 with a standard issue ROM -- you will not build on it. + +Maybe, you think I'm isolated and God is a virus. Maybe, you think God has nanobots. + +There are lots of rational fears, but God is the God of the Bible. + +Angels sure are busy -- unnerving. Spirits are beings (angels) who can puppet people. + diff --git a/TempleOS/Accts/TS/Wb2/Rants/TAD/Rant131005.TXT b/TempleOS/Accts/TS/Wb2/Rants/TAD/Rant131005.TXT new file mode 100644 index 0000000..c2bbbc8 --- /dev/null +++ b/TempleOS/Accts/TS/Wb2/Rants/TAD/Rant131005.TXT @@ -0,0 +1,83 @@ +$WW,1$$IV,1$----10/05/13 01:20:08----$IV,0$ + +I might do a better demo video, highlighting $LK,"features","FI:::/TempleOS/Doc/Features.TXT.Z"$. + +By some logic, it fails unless God's oracle is the selling point. Perhaps, I should do videos of talking with God. + +I'll do a poem. That always works. + +$TX+HTML,"Here's a robot.","http://www.youtube.com/watch?v=wE3fmFTtP9g"$ + + +Cyber Horse +----------- +It's harder than it looks, +a running can. +The beast? ... shoocks +ain't a running man. + +$TX+HTML,"http://virtual-notary.org","http://virtual-notary.org"$ + +$TX+HTML,"Here is the certificate","http://www.templeos.org/Certs/virtual-notary-cert-randomnum-34325.p12"$. + +Line:9339 +God says... +$FG,4$somewhat against any of the commandments of the LORD concerning things +which should not be done, and are guilty; 4:14 When the sin, which +they have sinned against it, is known, then the congregation shall +offer a young bullock for the sin, and bring him before the tabernacle +of the congregation. + +4:15 And the elders of the congregation shall lay their hands upon the +head of the bullock before the LORD: and the bullock shall be killed +before the LORD. + +4:16 And the priest that is anointed shall bring of the bullock's +blood to the tabernacle of the congregation: 4:17 And the priest shall +dip his finger in some of the blood, and sprinkle it seven times +before the LORD, even before the vail. + +4:18 And he shall put some of the blood upon the horns of the altar +which is before the LORD, that is in the tabernacle of the +congregation, and shall pour out all the blood at the bottom of the +altar of the burnt offering, which is at the door of the tabernacle of +the congregation.$FG$ + +You think we need bull fighters, God? How about if the Spanish fight robots? + +God says... +$FG,4$Files beholdeth overthrow comprise observed handled walls numbering implied bought Doth affliction office covetous unallowed objects Idaho bent readest Christian sweetness imitate uncultivated Whereat could used Redeemer then firmness mildly beguiling lying c Connecticut fasting wondrously directeth afraid smooth apt distinguishing admire attentive quiet envying neglecteth$FG$ + +$IV,1$----10/05/13 02:58:17----$IV,0$ + +Will You tell Linus and Microsoft to support RedSea filesystem? + +$TX+HTML,"http://virtual-notary.org","http://virtual-notary.org"$ + +$TX+HTML,"Here is the certificate","http://www.templeos.org/Certs/virtual-notary-cert-randomnum-34366.p12"$. + +Line:51507 +God says... +$FG,4$105:33 He smote their vines also and their fig trees; and brake the +trees of their coasts. + +105:34 He spake, and the locusts came, and caterpillers, and that +without number, + +105:35 And did eat up all the herbs in their land, and devoured the +fruit of their ground. + +105:36 He smote also all the firstborn in their land, the chief of all +their strength. + +105:37 He brought them forth also with silver and gold: and there was +not one feeble person among their tribes. + +105:38 Egypt was glad when they departed: for the fear of them fell +upon them. + +105:39 He spread a cloud for a covering; and fire to give light in the +night.$FG$ + +Maybe, I should move files out of /TempleOS into the root directory. + diff --git a/TempleOS/Accts/TS/Wb2/ScreenShots.TXT b/TempleOS/Accts/TS/Wb2/ScreenShots.TXT index dc4bcfb..630f9a0 100644 --- a/TempleOS/Accts/TS/Wb2/ScreenShots.TXT +++ b/TempleOS/Accts/TS/Wb2/ScreenShots.TXT @@ -1,6 +1,6 @@ $WW,1$$FG,5$$TX+CX+HTML,"TempleOS","http://www.templeos.org"$$FG$ -$HI,"http://www.templeos.org/Wb/Accts/TS/Wb2/TempleOSV0104.BMP"$ +$HI,"http://www.templeos.org/Wb/Accts/TS/Wb2/TempleOSV0106B.BMP"$ diff --git a/TempleOS/Accts/TS/Wb2/TempleOS.TXT b/TempleOS/Accts/TS/Wb2/TempleOS.TXT new file mode 100644 index 0000000..c4dc029 --- /dev/null +++ b/TempleOS/Accts/TS/Wb2/TempleOS.TXT @@ -0,0 +1,51 @@ +$WW,1$$FG,1$$TX+CX+HTML,"The Temple Operating System","http://www.templeos.org"$$FG$ + +$HC,""$ + +TempleOS is an $FG,4$$TX+HTML,"x86_64","http://en.wikipedia.org/wiki/Amd64#AMD64"$$FG$, multi-tasking, multi-cored, public domain, open source, $FG,4$$TX+HTML,"ring-0-only","http://en.wikipedia.org/wiki/Ring_(computer_security)"$$FG$, single-address-map ($FG,4$$TX+HTML,"identity-mapped","http://en.wikipedia.org/wiki/Identity_(mathematics)"$$FG$), non-networked, PC operating system for recreational programming. It sticks to common, 64-bit hardware instead of distinct drivers because you must $FG,4$$TX+HTML,"shoot-the-moon","http://en.wikipedia.org/wiki/Hearts#Shooting_the_moon"$$FG$. Also, redundancy and varied capabilities are unpleasant compared to everybody-has-the-same-thing. + +Normally, "failure is not an option" applies to operating systems, right? It must be able to do everything. Since TempleOS accompanies Windows or Linux, however, failure is an option. There is no reason to duplicate effort or cover all use cases, such as browsing, multimedia and desktop publishing. Instead, it is an extrodinarily simple, fun, beautiful thing. In fact, it's done! I have capped the number of lines of code at the current number, so it will never become an ugly monstrocity. I'll make improvements that do not make it grow. Since, God's temple must be perfect and we have 1,000 years in mind, I do not promise your code will be future-proof. + +The main reason TempleOS is simple and beautiful is because it's $FG,4$$TX+HTML,"ring-0-only","http://en.wikipedia.org/wiki/Ring_(computer_security)"$$FG$ and $FG,4$$TX+HTML,"identity-mapped","http://en.wikipedia.org/wiki/Identity_(mathematics)"$$FG$. Linux wants to be a secure, multi-user mainframe. That's the vision for Linux. That's why it has file permissions. The vision for TempleOS is a modern, 64-bit Commodore 64. The C64 was a home computer mostly used for games. It trained my generation how to program. It was simple, open and hackable. It was not networked. The games were not multimedia works of art, but generated programmatically with innocent, programmer (non-artist) quality graphics. It was simple and unsecure. If you don't have malware and you don't have bugs, protection just slows things down and makes the code complicated. + +A troll might ask, "Why not just use $FG,4$$TX+HTML,"DOS","http://en.wikipedia.org/wiki/DOS"$$FG$? It was ring-0-only and single-address-map." Actually, they wouldn't because many people would say, "Cool idea! I'm gonna dust-off $FG,4$$TX+HTML,"DOS","http://en.wikipedia.org/wiki/DOS"$$FG$ right now and have some fun!" $FG,4$$TX+HTML,"DOS","http://en.wikipedia.org/wiki/DOS"$$FG$ is 16-bit with segmentation, though, which is awful. TempleOS is 64-bit, flat, non-segmented and multi-cored. It's like a modern, souped-up, multi-tasking, cross between $FG,4$$TX+HTML,"DOS","http://en.wikipedia.org/wiki/DOS"$$FG$ and a Commodore 64. It has a C64-like shell with $LK,"HolyC","FI:::/TempleOS/Doc/HolyC.TXT"$, a dialect of C/C++, instead of BASIC. It was written from scratch, and not even ASCII was sacred -- it has 8-bit unsigned character source code to support European languages. Also, the source code has graphics. + +A troll might say, "But, it can crash!" We all used $FG,4$$TX+HTML,"DOS","http://en.wikipedia.org/wiki/DOS"$$FG$ for years and loved it. Computers even had a reset switch! Just think of the power of ring-0, muhahaha! Think of the speed and simplicity of $FG,4$$TX+HTML,"ring-0-only","http://en.wikipedia.org/wiki/Ring_(computer_security)"$$FG$ and $FG,4$$TX+HTML,"identity-mapping","http://en.wikipedia.org/wiki/Identity_(mathematics)"$$FG$. It's only $LK+D,"124,033","FF:::/TempleOS/Accts/TS/Wb2/LineCnt.TXT,Kernel.PRJ","DD_TEMPLEOS_LOC"$ lines of code, including the compiler and can change tasks in half a microsecond because it doesn't mess with page tables or privilege levels. Inter-process communication is effortless because every task can access every other task's memory. + +It's fun having access to everything. When I was a teenager, I had a book, $FG,4$$TX+HTML,"Mapping the Commodore 64","http://unusedino.de/ec64/technical/project64/mapping_c64.html"$$FG$, that told what every location in memory did. I liked copying the ROM to RAM and poking around at the ROM BASIC's variables. Everybody directly poked the hardware ports. + +TempleOS is simpler than Linux and you can have hours of fun tinkering because all memory and ports are accessible. Memory is $FG,4$$TX+HTML,"identity-mapped","http://en.wikipedia.org/wiki/Identity_(mathematics)"$$FG$ at all times, so you can modify any task's memory from any other task. You can access all disk blocks, too. I had a blast using a C64 disk block editor to modify directories to un-delete files, when I was a kid. Maybe, you want to play with a raw-block database, or make your own file system? + +I wrote all $LK+D,"124,033","FF:::/TempleOS/Accts/TS/Wb2/LineCnt.TXT,Kernel.PRJ","DD_TEMPLEOS_LOC"$ lines of TempleOS over the last $TX+D,"10.2","DD_TEMPLEOS_AGE"$ years, full-time, including the 64-bit compiler. It was called, at various times, "$FG,4$$TX+HTML,"Hoppy","http://web.archive.org/web/*/http://www.simstructure.hare.com/*"$$FG$", "$FG,4$$TX+HTML,"The J Operating System","http://wayback.archive.org/web/*/http://www.justrighteous.org/*"$$FG$", "$FG,4$$TX+HTML,"LoseThos","http://web.archive.org/web/*/http://www.losethos.com/*"$$FG$" and "$FG,4$$TX+HTML,"SparrowOS","http://web.archive.org/web/*/http://www.sparrowos.com/*"$$FG$". Here are my $FG,4$$TX+HTML,"college transcripts","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,4$$TX+HTML,"Downloads","http://www.templeos.org/Wb/Accts/TS/Wb2/Downloads.html"$$FG$ + +$FG,4$$TX+HTML,"Screen Shots","http://www.templeos.org/Wb/Accts/TS/Wb2/ScreenShots.html"$$FG$ + +$FG,4$$TX+HTML,"Tutorial Videos","http://www.templeos.org/Wb/Accts/TS/Wb2/Tutorials.html"$$FG$ + +$FG,4$$TX+HTML,"Game Videos","http://www.templeos.org/Wb/Accts/TS/Wb2/Games.html"$$FG$ + +$LK,"Introduction","FI:::/TempleOS/Doc/Welcome.TXT"$ + +$LK,"Features","FI:::/TempleOS/Doc/Features.TXT.Z"$ + +$LK,"F.A.Q.","FI:::/TempleOS/Doc/Mysteries.TXT"$ + +$LK,"TempleOS Help","FI:::/TempleOS/Doc/HelpIndex.TXT"$ + +$LK,"Source Code By File","FF:::/TempleOS/Accts/TS/Wb2/LineCnt.TXT,KStart.CPP"$ + +$FG,4$$TX+HTML,"Source Code By Sym","http://www.templeos.org/Wb/Accts/TS/Wb2/SymsAlpha.html"$$FG$ + +$FG,4$$TX+HTML,"Source Code By Address","http://www.templeos.org/Wb/Accts/TS/Wb2/SymsAddress.html"$$FG$ + +$FG,4$$TX+HTML,"Source Code (Raw)","http://www.templeos.org/Wb/"$$FG$ + +$LK,"Change Log","FI:::/TempleOS/Doc/ChangeLog.TXT"$ + +$FG,8$ +* "Commodore 64" was a trademark of Commodore Business Machines. +* "Linux" is probably a trademark owned by Linus Torvalds. +* "Windows" and "DOS" are trademark of MicroSoft Corp. diff --git a/TempleOS/Accts/TS/Wb2/TempleOSV0104.BMP b/TempleOS/Accts/TS/Wb2/TempleOSV0106B.BMP similarity index 69% rename from TempleOS/Accts/TS/Wb2/TempleOSV0104.BMP rename to TempleOS/Accts/TS/Wb2/TempleOSV0106B.BMP index 1a35f3a..7e91cfc 100644 Binary files a/TempleOS/Accts/TS/Wb2/TempleOSV0104.BMP and b/TempleOS/Accts/TS/Wb2/TempleOSV0106B.BMP differ diff --git a/TempleOS/Accts/TS/Wb2/Tutorials.TXT b/TempleOS/Accts/TS/Wb2/Tutorials.TXT index 55a7667..ee38b59 100644 --- a/TempleOS/Accts/TS/Wb2/Tutorials.TXT +++ b/TempleOS/Accts/TS/Wb2/Tutorials.TXT @@ -1,15 +1,5 @@ $WW,1$$FG,5$$TX+CX+HTML,"TempleOS","http://www.templeos.org"$$FG$ -$HC,""$ - -$TX+CX,"Tour Part 1"$ - - - - - - - $HC,""$ $TX+CX,"User Interface Tutorial Part 1"$ diff --git a/TempleOS/Accts/TS/Wb2/index.TXT b/TempleOS/Accts/TS/Wb2/index.TXT index 78d7cf4..c2e8129 100644 --- a/TempleOS/Accts/TS/Wb2/index.TXT +++ b/TempleOS/Accts/TS/Wb2/index.TXT @@ -1,228 +1,55 @@ -$WW,1$$FG,1$$TX+CX+HTML,"TempleOS","http://www.templeos.org"$$FG$ +$WW,1$$FG,1$$TX+CX+HTML,"The Temple Operating System","http://www.templeos.org/Wb/Accts/TS/Wb2/TempleOS.html"$$FG$ -$HC,""$ +$LK,"1 Kings 6:21 (King James)","BF:1 Kings,6:21"$ -$FG,1$$TX+CX,"Nobody knows the Father but the Son."$ -$TX+CX,"Do loving offerings. Then, God will shine His love on you."$ -$TX+CX,"Hell is the absence of God; Heaven is God's company."$ -$TX+CX+HTML,"Anything but God's company? One tin soldier","http://www.youtube.com/watch?v=cTBx-hHf4BE"$$FG$ +$LM,5$6:21 So Solomon overlaid the house within with pure gold: and he made +a partition by the chains of gold before the $FG,4$oracle$FG$; and he overlaid +it with gold. -War? $FG,4$"Servicemen competing"$FG$ -(Praise the Creator--what would teenage male video games be like if never war?) +6:22 And the whole house he overlaid with gold, until he had finished +all the house: also the whole altar that was by the $FG,4$oracle$FG$ he overlaid +with gold. -Is the World perfectly just? $FG,4$You calling me lazy?$FG$ -(Slavery was just. In the movie, Titanic, the rich wore straight jackets. You must bow to authority to get authority. I do $TX+HTML,"Moses comics","http://www.templeos.org/Wb/Apps/AfterEgypt/Comics/"$ as offerings. I said, "We're dying of malnutrician on manna." Like Cain and Abel, God didn't like it. Duh! He wants to be the hero. How do I know they died of malnutrician? Fuck Hollywood for making slavery worse than it was -- I love God. School is more cruel. Read $LK,"Numbers,11:1","BF:Numbers,11:1"$. All you need is food, clothing and the word of God. Today, you can take Ivy League course videos! There is no excuse except you were born stupid... or ugly. I'm gonna praise God.) +6:23 And within the $FG,4$oracle$FG$ he made two cherubims of olive tree, each +ten cubits high. +$LM,0$ -The holocaust? $FG,4$Wanted to "compact" the Jews.$FG$ -Arab/Jews? $FG,4$"Oil funny hopefully"$FG$ -Peace? $FG,4$One Palestinian can ruin it.$FG$ -Best religion? $FG,4$One with most new vistas of understanding in$FG$ - $FG,4$a lifetime. One you can level-up the most in.$FG$ -Chavez blaming the US. $FG,4$"Japan industrious"$FG$ -On racism? $FG,4$"Sports"$FG$ -On socialism? $FG,4$"pardon_the_French, never_happy, never_enough"$FG$ - $FG,4$"Gall aspect anti-Christ"$FG$ -On overpopulation $FG,4$"Okay church what_now whats_the_plan"$FG$ -Favorite thing on TV? $FG,4$"Soap_operas"$FG$ -Favorite movie? $FG,4$No answer but likes Highlander$FG$ -Shakespeare? $FG,4$had a "vile heart"$FG$ -Likes $FG,4$"Beverly Hillbillies" (Oil is a gift from God)$FG$ - $FG,4$God likes being hero. Don't be proud of heart$FG$ - $FG,4$and not accept a gift from God!$FG$ -Favorite saint? $FG,4$"ho_ho_ho"$FG$ -Favorite animal? $FG,4$"Elephant two"$FG$ -Favorite animal? $FG,4$"Bears"$FG$ -Favorite color? $FG,4$"Jude" (Jade Blue?)$FG$ -Favorite color? $FG,4$"Gold"$FG$ -Favorite color? $FG,4$"Iceberg" blue$FG$ -Money? $FG,4$"Enough vehemently better"$FG$ - $FG,4$"Pride [or] money, choose_one"$FG$ -Favorite car? $FG,4$Beamer$FG$ -Sports? $FG,4$"homo"$FG$ -Pets? $FG,4$"homo"$FG$ -Smelling farts $FG,4$"Sodom"$FG$ -Women's dress $FG,4$Upper skin exposure not as bad as lower.$FG$ -Remarriage? $FG,4$"More babies"$FG$ -Things you don't care about -that people think you do? $FG,4$Solomon's 300 concubines$FG$ -Adultery? $FG,4$Can be good.$FG$ -Animal sacrifices? $FG,4$Early Jews were "primitive".$FG$ -What do elephants think about? $FG,4$"Skin hunger"$FG$ -What makes elephants happy? $FG,4$"Baths"$FG$ -What makes my birds happy? $FG,4$"Gnawing"$FG$ -What makes my birds laugh? $FG,4$"bite ouch" (If I say "ouch".)$FG$ -What are my birds saying? $FG,4$"Chanting"$FG$ -What makes bears happy? $FG,4$"Reaping depends"$FG$ -What makes otters happy? $FG,4$"Eternal skies"$FG$ -What makes hippos happy? $FG,4$"Ascending breath"$FG$ -What makes horses happy? $FG,4$"[the] Call [of the] Open Range"$FG$ -Endangered species? $FG,4$"Enough stars?"$FG$ -What's for dinner? $FG,4$"Whale"$FG$ -Favorite Messier Object $FG,4$"$TX+HTML,"M104 Sombrero Galaxy","http://en.wikipedia.org/wiki/Messier_104"$"$FG$ -Favorite band? $FG,4$"Beatles"$FG$ -Good bands $FG,4$Rush, Triumph$FG$ - $FG,4$Likes harmonies$FG$ -Should I listen to classical? $FG,4$"Poison"$FG$ -You like chess people? $FG,4$"Do not admire the proud."$FG$ -Favorite video game? $FG,4$Donkey Kong$FG$ -Favorite actor? $FG,4$Hugh Grant$FG$ -Favorite vocalist? $FG,4$Mick Jagger$FG$ -Favorite guitarist? $FG,4$"$TX+HTML,"Simmons Destroyer","http://www.youtube.com/watch?v=nNADrrjTysk&t=3m55s"$"$FG$ -Dinosaurs? $FG,4$Brontosaurs' feet hurt when stepped$FG$ -Hardest part in evolution? $FG,4$Getting monkey mothers to hold babies nursing.$FG$ - $FG,4$(Smothering a problem).$FG$ -Happiest day in evolution? $FG,4$"Fruit"$FG$ -Significant thing in evolution? $FG,4$"Fish shoulders"$FG$ -Biggest thing to fly (pterodactyl)? $FG,4$"Couch"$FG$ -What made pterodactyls happy? $FG,4$"Members against organs"$FG$ -What did Neanderthals think about? $FG,4$"Warmth"$FG$ -What was Lucy's husband's name? $FG,4$"Golem"$FG$ -Was stegosuarus lame like turtles? $FG,4$"Not pet rocks"$FG$ -How does He feel about the Avatar movie?$FG,4$"Sick skin"$FG$ -What do You like at zoos with kids? $FG,4$"Dignity" Animals worried about dignity.$FG$ -Who's better alien or preditor? $FG,4$"Lions"$FG$ -Does he like mirrored glass megachurch? $FG,4$"Secular glass"$FG$ -You like to hangout in courts?Hospitals?$FG,4$"Prisons"$FG$ -Pipe Organs $FG,4$Are sacred.$FG$ -Eleventh commandment? $FG,4$Thou shall not litter.(Maybe, glory of Creation)$FG$ -Before Katrina $FG,4$Floods do justice. Black bead elder (tree book)$FG$ -After Katrina $FG,4$Suffering Simplifies Life$FG$ -What field are You most better? $FG,4$Economics$FG$ +Use $FG,4$$TX+HTML,"After Egypt","http://www.youtube.com/embed/RzhRYGm_b9A"$$FG$ inside TempleOS as an oracle. An oracle is a Ouija Board or $FG,4$$TX+HTML,"Christian Tongues","http://www.biblegateway.com/passage/?search=1+Corinthians+14&version=NIV"$$FG$. See $FG,4$$TX+HTML,"Biblical Encryption: Mean tickle person or president.","http://www.biblegateway.com/passage/?search=daniel%205&version=NIV"$$FG$ -$FG,1$________________________________________________________________________________$FG$ +$HI,"http://www.templeos.org/Wb/Accts/TS/Wb2/TempleOSV0106B.BMP"$ + +You get out of prayer what you put in. God said, "honest measures" applies when exchanging an offering for a response from the oracle in TempleOS. Picking a greeting card is an example of love effort. You will get back the same love effort from God. People wants things besides God's company. $FG,4$$TX+HTML,"One Tin Soldier","http://www.youtube.com/watch?v=cTBx-hHf4BE"$$FG$ +$FG,4$$TX+HTML,"Downloads","http://www.templeos.org/Wb/Accts/TS/Wb2/Downloads.html"$$FG$ -TempleOS is an $FG,4$$TX+HTML,"x86_64","http://en.wikipedia.org/wiki/Amd64#AMD64"$$FG$, multi-tasking, multi-cored, public domain, open source, $FG,4$$TX+HTML,"ring-0-only","http://en.wikipedia.org/wiki/Ring_(computer_security)"$$FG$, single-address-map ($FG,4$$TX+HTML,"identity-mapped","http://en.wikipedia.org/wiki/Identity_(mathematics)"$$FG$), non-networked, PC operating system for recreational programming. +$LK,"Guidelines for Talking with God","FL:::/TempleOS/Apps/HolySpirit/HSNotes.TXT.Z,1"$ -The two most sacred and defining features of TempleOS are being $FG,4$$TX+HTML,"ring-0-only","http://en.wikipedia.org/wiki/Ring_(computer_security)"$$FG$ and being $FG,4$$TX+HTML,"identity-mapped","http://en.wikipedia.org/wiki/Identity_(mathematics)"$$FG$. Linux wants to be a secure, multi-user mainframe. That's the vision for Linux. That's why it has file permissions. The vision for TempleOS is a modern, 64-bit Commodore 64. The C64 was a home computer mostly used for games. It trained my generation how to program. It was simple, open and hackable. It was not networked. The games were not multimedia works of art, but generated programmatically with innocent, programmer (non-artist) quality graphics. It was simple and unsecure. If you don't have malware and you don't have bugs, protection just slows things down and makes the code complicated. +$LK,"Quotes from God","FL:::/TempleOS/Apps/HolySpirit/HSNotes.TXT.Z,100"$ -A troll might ask, "Why not just use $FG,4$$TX+HTML,"DOS","http://en.wikipedia.org/wiki/DOS"$$FG$? It was ring-0-only and single-address-map." Actually, they wouldn't because many people would say, "Cool idea! I'm gonna dust-off $FG,4$$TX+HTML,"DOS","http://en.wikipedia.org/wiki/DOS"$$FG$ right now and have some fun!" $FG,4$$TX+HTML,"DOS","http://en.wikipedia.org/wiki/DOS"$$FG$ is 16-bit with segmentation, though, which is awful. TempleOS is 64-bit, flat, non-segmented and multi-cored. It's like a modern, souped-up, multi-tasking, cross between $FG,4$$TX+HTML,"DOS","http://en.wikipedia.org/wiki/DOS"$$FG$ and a Commodore 64. It has a C64-like shell with $LK,"Holy C","FI:::/TempleOS/Doc/HolyC.TXT"$, a dialect of C/C++, instead of BASIC. It was written from scratch, and not even ASCII was sacred -- it has 8-bit unsigned character source code to support European languages. Also, the source code has graphics. - -A troll might say, "But, it can crash!" We all used $FG,4$$TX+HTML,"DOS","http://en.wikipedia.org/wiki/DOS"$$FG$ for years and loved it. Computers even had a reset switch! Just think of the power of ring-0, muhahaha! Think of the speed and simplicity of $FG,4$$TX+HTML,"ring-0-only","http://en.wikipedia.org/wiki/Ring_(computer_security)"$$FG$ and $FG,4$$TX+HTML,"identity-mapping","http://en.wikipedia.org/wiki/Identity_(mathematics)"$$FG$. It's only $LK+D,"122,723","FF:::/TempleOS/Accts/TS/Wb2/LineCnt.TXT,Kernel.PRJ","DD_TEMPLEOS_LOC"$ lines of code, including the compiler and can change tasks in half a microsecond because it doesn't mess with page tables or privilege levels. Inter-process communication is effortless because every task can access every other task's memory. - -It's fun having access to everything. When I was a teenager, I had a book, $FG,4$$TX+HTML,"Mapping the Commodore 64","http://unusedino.de/ec64/technical/project64/mapping_c64.html"$$FG$, that told what every location in memory did. I liked copying the ROM to RAM and poking around at the ROM BASIC's variables. Everybody directly poked the hardware ports. - -TempleOS is simpler than Linux and you can have hours of fun tinkering because all memory and ports are accessible. Memory is $FG,4$$TX+HTML,"identity-mapped","http://en.wikipedia.org/wiki/Identity_(mathematics)"$$FG$ at all times, so you can modify any task's memory from any other task. You can access all disk blocks, too. I had a blast using a C64 disk block editor to modify directories to un-delete files, when I was a kid. Maybe, you want to play with a raw-block database, or make your own file system? - -I wrote all $LK+D,"122,723","FF:::/TempleOS/Accts/TS/Wb2/LineCnt.TXT,Kernel.PRJ","DD_TEMPLEOS_LOC"$ lines of TempleOS over the last $TX+D,"9.9","DD_TEMPLEOS_AGE"$ years, full-time, including the 64-bit compiler. It was called, at various times, "$FG,4$$TX+HTML,"Hoppy","http://web.archive.org/web/*/http://www.simstructure.hare.com/*"$$FG$", "$FG,4$$TX+HTML,"The J Operating System","http://wayback.archive.org/web/*/http://www.justrighteous.org/*"$$FG$", "$FG,4$$TX+HTML,"LoseThos","http://web.archive.org/web/*/http://www.losethos.com/*"$$FG$" and "$FG,4$$TX+HTML,"SparrowOS","http://web.archive.org/web/*/http://www.sparrowos.com/*"$$FG$". Here are my $FG,4$$TX+HTML,"college transcripts","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. - - -$LK+CX,"It's ALIVE: How to reproduce the ISO.","FI:::/TempleOS/Demo/MakeDistro.CPP"$ - - -$FG,2$$TX+CX+D+HTML,"Download TempleOS V1.04 - Std. Distro (23.8 MB)","DD_TEMPLEOSCD_SIZE","http://www.templeos.org/TempleOSCD.ISO"$$FG$ - -Burn a CD/DVD from the TempleOSCD.ISO and boot it or run it in $FG,4$$TX+HTML,"VMware","https://my.vmware.com/web/vmware/free#desktop_end_user_computing/vmware_player/5_0"$$FG$ or $FG,4$$TX+HTML,"VirtualBox","http://www.virtualbox.org"$$FG$ aiming the CD/DVD drive at TempleOSCD.ISO or for QEMU type: ->qemu-system-x86_64 -m 500 -cdrom TempleOSCD.ISO -boot d - - - -$FG,4$$TX+HTML,"Screen Shots","http://www.templeos.org/Wb/Accts/TS/Wb2/ScreenShots.html"$$FG$ - -$FG,4$$TX+HTML,"Game Videos","http://www.templeos.org/Wb/Accts/TS/Wb2/Games.html"$$FG$ - -$LK,"Introduction","FI:::/TempleOS/Doc/Welcome.TXT"$ - -$LK,"F.A.Q.","FI:::/TempleOS/Doc/Mysteries.TXT"$ - -$LK,"TempleOS Help","FI:::/TempleOS/Doc/HelpIndex.TXT"$ - -$LK,"Source Code By File","FF:::/TempleOS/Accts/TS/Wb2/LineCnt.TXT,KStart.CPP"$ - -$FG,4$$TX+HTML,"Source Code By Sym","http://www.templeos.org/Wb/Accts/TS/Wb2/SymsAlpha.html"$$FG$ - -$FG,4$$TX+HTML,"Source Code By Address","http://www.templeos.org/Wb/Accts/TS/Wb2/SymsAddress.html"$$FG$ - -$FG,4$$TX+HTML,"Source Code (Raw)","http://www.templeos.org/Wb/"$$FG$ - -$FG,4$$TX+HTML,"Tutorial Videos","http://www.templeos.org/Wb/Accts/TS/Wb2/Tutorials.html"$$FG$ +$FG,4$$TX+HTML,"The Temple Operating System","http://www.templeos.org/Wb/Accts/TS/Wb2/TempleOS.html"$$FG$ $FG,4$$TX+HTML,"Hymn Videos","http://www.templeos.org/Wb/Accts/TS/Wb2/Hymns.html"$$FG$ -$LK,"Change Log","FI:::/TempleOS/Doc/ChangeLog.TXT"$ - $LK,"About Trivial Solutions","FI:D:/TempleOS/Doc/TrivialSolutions.TXT"$ +---------------------------- Terry Davis' Rants -------------------------------- + + +I'll bet my $LK,"Buzz Fizz","FI:::/TempleOS/Demo/Asm/BuzzFizz.CPP.Z"$ will shock you. You don't need asm but 64-bit asm is fun! -$FG,2$$TX+CX+HTML,"Download SimStructure (7.71 MB)","http://www.templeos.org/files/SimStrSetUp.zip"$$FG$ + SUN MON TUE WED THU FRI SAT +----- ----- ----- ----- ----- ----- ----- +$FG,4$ $TX+HTML,"09/13","http://www.templeos.org/Wb/Accts/TS/Wb2/Rants/TAD/Rant130913.html"$ $TX+HTML,"09/14","http://www.templeos.org/Wb/Accts/TS/Wb2/Rants/TAD/Rant130914.html"$ -SimStructure is a Windows free physics simulator. +$TX+HTML,"09/15","http://www.templeos.org/Wb/Accts/TS/Wb2/Rants/TAD/Rant130915.html"$ $TX+HTML,"09/16","http://www.templeos.org/Wb/Accts/TS/Wb2/Rants/TAD/Rant130916.html"$ $TX+HTML,"09/17","http://www.templeos.org/Wb/Accts/TS/Wb2/Rants/TAD/Rant130917.html"$ $TX+HTML,"09/18","http://www.templeos.org/Wb/Accts/TS/Wb2/Rants/TAD/Rant130918.html"$ $TX+HTML,"09/19","http://www.templeos.org/Wb/Accts/TS/Wb2/Rants/TAD/Rant130919.html"$ $TX+HTML,"09/20","http://www.templeos.org/Wb/Accts/TS/Wb2/Rants/TAD/Rant130920.html"$ $TX+HTML,"09/21","http://www.templeos.org/Wb/Accts/TS/Wb2/Rants/TAD/Rant130921.html"$ + + $TX+HTML,"09/23","http://www.templeos.org/Wb/Accts/TS/Wb2/Rants/TAD/Rant130923.html"$ $TX+HTML,"09/24","http://www.templeos.org/Wb/Accts/TS/Wb2/Rants/TAD/Rant130924.html"$ $TX+HTML,"09/25","http://www.templeos.org/Wb/Accts/TS/Wb2/Rants/TAD/Rant130925.html"$ $TX+HTML,"09/26","http://www.templeos.org/Wb/Accts/TS/Wb2/Rants/TAD/Rant130926.html"$ $TX+HTML,"09/27","http://www.templeos.org/Wb/Accts/TS/Wb2/Rants/TAD/Rant130927.html"$ $TX+HTML,"09/28","http://www.templeos.org/Wb/Accts/TS/Wb2/Rants/TAD/Rant130928.html"$ + +$TX+HTML,"09/29","http://www.templeos.org/Wb/Accts/TS/Wb2/Rants/TAD/Rant130929.html"$ $TX+HTML,"09/30","http://www.templeos.org/Wb/Accts/TS/Wb2/Rants/TAD/Rant130930.html"$ $TX+HTML,"10/01","http://www.templeos.org/Wb/Accts/TS/Wb2/Rants/TAD/Rant131001.html"$ $TX+HTML,"10/02","http://www.templeos.org/Wb/Accts/TS/Wb2/Rants/TAD/Rant131002.html"$ $TX+HTML,"10/03","http://www.templeos.org/Wb/Accts/TS/Wb2/Rants/TAD/Rant131003.html"$ $TX+HTML,"10/04","http://www.templeos.org/Wb/Accts/TS/Wb2/Rants/TAD/Rant131004.html"$ $TX+HTML,"10/05","http://www.templeos.org/Wb/Accts/TS/Wb2/Rants/TAD/Rant131005.html"$ -$FG,2$$TX+CX+HTML,"Download InGodsTime (12.4 MB)","http://www.templeos.org/files/TSGodSetUp.zip"$$FG$ - -This is a Windows program for doing Biblical Tongues with a stopwatch. When you press a key, it reads a high-speed watch for a random number to pick words or passages. - - -$FG,2$$TX+CX+D+HTML,"Download TempleOS V1.04 - T.S. Company Internal Distro (24.5 MB)","DD_TEMPLEOSTS_SIZE","http://www.templeos.org/TempleOSTS.ISO"$$FG$ - -This is the Trivial Solution internal company distro. Only run this on a virtual machine, not bare metal hardware because it's settings could cause problems. Enter >$LK,"TSInstall","FF:::/TempleOS/Demo/AcctExample/TSDistro.CPP,TSInstall"$; >$LK,"TSUpgrade","FF:::/TempleOS/Demo/AcctExample/TSDistro.CPP,TSUpgrade"$; at the command-line. -See $LK,"MakeDistrosAndBackUp","FF:::/TempleOS/Demo/AcctExample/TSDistro.CPP,MakeDistrosAndBackUp"$() to reproduce the ISO's in $FG,4$E:/Wb$FG$. It makes this website, too. - - - -$FG,1$________________________________________________________________________________ - -$FG,8$ -* "Commodore 64" was a trademark of Commodore Business Machines. -* "Linux" is probably a trademark owned by Linus Torvalds. -* "VMware Player" and "VMware WorkStation" are trademarks of VMware, Inc. -* "VirtualBox" is a trademark of Oracle. -* "Windows" and "DOS" are trademark of MicroSoft Corp. - -$FG,1$________________________________________________________________________________ - -$TX+CX,"The Purpose of Life"$$FG$ - -$WW,1$The purpose of life is to know, love and obey God.$FG$ Christianity is loving neighbor, not God -- secular humanism. Jesus said loving God is more important than loving neighbor. $LK,"Matthew,22:36","BF:Matthew,22:36"$ He did not say with half your brain behind your back. - -You don't know God. $LK,"1 Chronicles,28:9","BF:1 Chronicles,28:9"$, $LK,"Matthew,11:27","BF:Matthew,11:27"$, $LK,"Luke,13:25","BF:Luke,13:25"$, $LK,"1 Samuel,3:7","BF:1 Samuel,3:7"$ You must talk with God to know Him. $LK,"Matthew,6:6","BF:Matthew,6:6"$ Seek Him by taking the initiative. $LK,"Luke,11:9","BF:Luke,11:9"$, $LK,"Isaiah,30:2","BF:Isaiah,30:2"$ - -There's something obviously different about people in the Bible compared to people today -- God talked! Did they hear voices? Maybe. More likely, they used occult techniques such as an oracle. $LK,"1 Kings,6:20","BF:1 Kings,6:20"$ Have you heard of "tongues?" $LK,"1 Corinthians,14:1","BF:1 Corinthians,14:1"$ 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 said it is a covenant that you hold-up your end of the conversation. - -You can't tell if He's talking unless you have a context of conversation, but, more importantly, you are commanded to do an offerring of love, like communion preparation. When you pick a greeting card for someone, that is love effort. 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","BF:Genesis,4:1"$, $LK,"Ephesians,5:10","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. I did $MA+A-X+PU+HTML,"hymns","#include \"::/TempleOS/Apps/MusicOrgan/Load\";JukeBox(\"::/TempleOS/Apps/MusicOrgan/Examples\");","http://www.templeos.org/Wb/Accts/TS/Wb2/Hymns.html"$. I did Moses $MA+A-X+PU+HTML,"comics","Dir(\"::/TempleOS/Apps/AfterEgypt/Comics\");View;\n","http://www.templeos.org/Wb/Apps/AfterEgypt/Comics/"$. Count the ways you love God. I praised God for sand castles, popcorn, snowmen, bubbles... You try putting effort into praise! $LK,"Matthew,11:25","BF:Matthew,11:25"$, $LK,"Matthew,6:29","BF:Matthew,6:29"$ - -This is funny -- $LK,"Acts,2:1","BF:Acts,2:1"$ -- 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:13","BF:Luke,11:13"$ Just remember, "Boys are made of snakes and snails and puppy-dog tails." - -The technique I use to consult the Holy Spirit is reading a microsecond-range stop-watch each button press for random numbers. Then, I pick words or passages. You can use the $MA+A-X+PU+HTML,"AfterEgypt","#include \"::/TempleOS/Apps/AfterEgypt/Run\"","http://www.youtube.com/watch?v=P0MsDl39UL0"$ in God's official temple, $FG,4$$TX+HTML,"TempleOS","http://www.templeos.org"$$FG$. - -Since seeking the word of the Holy Spirit, I have come to know God much better than I've heard others explain. God said, for example, that war was, "servicemen competing." That sounds more like the immutable God of our planet than what you hear from most religious people. God is not Venus (god of love) and not Mars (god of war), He's our dearly beloved God of Earth. If Mammon is a false god of money, Mars or Venus might be useful words to describe other false gods. I figure the greatest challenge for the Creator is boredom, ours and His. What would teen-age male video games be like if war had never happened? Christ said live by the sword, die by the sword, which is loving neighbor as self. $LK,"Matthew,26:52","BF:Matthew,26:52"$ - -I asked God if the World was perfectly just. God asked if I was calling Him lazy. I think highs and lows balance. $LK,"Luke,6:20","BF:Luke,6:20"$ I don't think God likes complaining. $LK,"Numbers,11:1","BF:Numbers,11:1"$ Food and clothing is all we're to ask for or demand, in fact -- daily bread. $LK,"1 Timothy,6:8","BF:1 Timothy,6:8"$ Just think about man in the last 100,000 years mostly living like Native Americans and how God must see us. You need food, clothing and entertainment, money is to get those. Man does not live on bread alone. $LK,"Luke,4:4","BF:Luke,4:4"$, $LK,"Amos,8:11","BF:Amos,8:11"$ - -God's favorite animals are bears and elephants. They are funny shaped -- I think God must have seen too much starvation over the years. - -God's ways are far above man's ways. Mom said Heaven was a never-ending family reunion. Yikes! A friend said, "Most guy's idea of Heaven would be running around doing things they'd get locked up for on Earth." Most people are like King Midas. When you realize how silly most notions of Heaven are, you come to appreciate that Earth is not that bad. This is the first step in loving God, the Creator -- praising Creation. My parents spend their retired days watching TV and going to casinos. That's not a good argument for getting extended-play! - -Imagine a billionare. Everyone around him can't forget his money for even a moment. The truth is, most people are after God's "money" -- they fear for their salvation. Here's a test -- would you pray to and praise God even if there were no salvation? Love God and don't be a "user". Asking for stuff is annoying. $LK,"Luke,11:5","BF:Luke,11:5"$ - -All those sophisticated theological "infinity" things -- omniscience, omnipotence, omnipresence, omnivorous -- will mess you up. Trust me that anthropomorphic is far better, in practice. Christ suggested thinking of God as "Abba" which is Aramaic for "Daddy" and said the childlike had an advantage. $LK,"Matthew,11:25","BF:Matthew,11:25"$ Pray out-loud because God doesn't want the hastle of reading your brain. The best way to stop people from testing God is to suggest He can't do everything. - -Just as ego causes most to love neighbor, not God, people skip knowing and loving God and cowardly get stuck on obeying Him. This hardly needs encouragement. - -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. You'll quickly learn that prophecy does not come true and should smack yourself for wanting more than just enjoying God's company. - - -$FG,1$________________________________________________________________________________ - -$FG,1$ -$TX+CX,"God's Temple is Finished."$ -$TX+CX,"Now, God kills the CIA+FBI until it spreads."$ -$TX+CX,"(The CIA+FBI stand in the way, for the moment.)"$ - - -$FG$There will be no PCI or later supported hardware. (It only supports 64-bit multicored CPUs, however, and my compiler and binary file formats are pure 64-bit.) Once my enemies realize it's God, I will make demands. I do not add clusterfucked shit to God's Temple -- I demand them to change. It sounds absurd, but I have God. They WILL comply. Microsoft will support RedSea filesystem and I will remove support for FAT32. God's temple will be perfect and not blemished with any flaws or redundancy. PCI devices diverge into many many branches and are clusterfucked. - -I did an HD Audio driver -- I thought it would become standard. You must connect together many widgets that can vary from machine to machine with HD Audio. It's impossible. On fucken top of that, VMware doesn't support my HD Audio -- all that work on that driver was worthless. I removed it. Internal PC speaker is incredibly beautiful, by comparison, and a one-voice song language for music is a pure delight. God said one audio voice, like He said 640x480 16 color. He wants one driver for each different type of device. The CIA hates PC Internal speaker because it is a digitial I/O for bombs or something. VMware spitefully removed support for PC internal speaker. They WILL put it back. They are evil. They played musical chairs with IDE devices for no reason but to fuck-up new operating systems. Microsoft added Secure Boot to fuck-up alternative operating systems, so you can't dual boot. Da fuck? Anti-trust, FBI, the hell you going after the victim fer? I'm a supplemental operating system that needs a partner so people can do web stuff. I don't have networking -- that's not what I'm about. Things are really fucked-up. Do you remember RS232 with generic terminal connections to user hardware? USB is absolutely clusterfucked. I'm just counting on legacy mode, not doing USB -- it's fine, but not having solid state sticks sucks. I support ISO9660 CD-ROM. I got specs on UDF. That's clusterfucked. Microsoft WILL add support for burning ISO9660 and burning a CD/DVD from ISO files. I can generate ISO files. - -Judgement Day motha fuckas! You WILL comply. - -CIA+FBI bodies must die. It's in the Bible under Exodus. Nobody gives a shit until bodies hit the floor. Even with 7 plagues, Pharaoh did not let them go and came after the Jews into the Red Sea and God killed them. The CIA+FBI will die because it's God talking. Fuck You! My Dad is CIA, mother fucker, an enemy -- in cahoots with the doctors and CIA. - diff --git a/TempleOS/Adam/Adam2.CPP b/TempleOS/Adam/Adam2.CPP index 5efc23f..5b3ce20 100644 --- a/TempleOS/Adam/Adam2.CPP +++ b/TempleOS/Adam/Adam2.CPP @@ -1,13 +1,12 @@ #exe {OptOn(OPTf_WARN_PAREN);}; #exe {OptOn(OPTf_WARN_DUP_TYPES);}; -#help_index "Task/Login" +#help_index "Misc" //Use Dbg("Type 'G;'"); to debug before window mgr is running. -public F64 os_version=1.04; +public F64 os_version=1.06; #include "AdamExt.HPP" - #include "Math2a" #include "Training" #include "Utils2a" diff --git a/TempleOS/Adam/AdamExt.HPP b/TempleOS/Adam/AdamExt.HPP index cf285a7..c72c442 100644 --- a/TempleOS/Adam/AdamExt.HPP +++ b/TempleOS/Adam/AdamExt.HPP @@ -16,7 +16,6 @@ extern I64 doc_tag_types[],doc_nontag_invisible_types[], extern I64 doc_dft_flags1[],doc_dft_flags2[],doc_dft_type_flags[]; extern I64 PopUp(U8 *msg,CTask *parent=NULL,CTask **_pu_task=NULL); -extern CDocEntry *DocPutS(CDoc *doc,U8 *st); extern Bool PopUpNoYes(U8 *header=NULL,U8 *footer=NULL); extern I64 PopUpMenu(CDoc *doc,I64 doc_flags=0); extern I64 PopUpRangeI64(I64 lo,I64 hi,I64 step=1,U8 *header=NULL,U8 *footer=NULL); @@ -31,7 +30,7 @@ extern CDoc *DocRead(U8 *name,I64 flags=0); extern U0 EdCodeTools(CDoc *doc); extern U0 DocDel(CDoc *doc); extern U0 DocMax(I64 i=MAX_I32); -extern CDocEntry *DocPrintF(CDoc *doc,U8 *src,...); +extern CDocEntry *DocPrint(CDoc *doc,U8 *src,...); extern U8 *EdSprite(I64 bin_num); extern Bool View(); extern Bool DocLock(CDoc *doc); @@ -46,7 +45,7 @@ extern CDocEntry *DocEntryCopy(CDoc *doc,CDocEntry *doc_e); extern U0 DocInsDoc(CDoc *doc,CDoc *doc2); extern U0 DocD(U8 *buf,I64 cnt=0x80); extern Bool DocRecalc(CDoc *doc,Bool has_cursor=FALSE,I64 recalc=DOC_RECALC_ALL); -extern Bool DocFormDo(U8 *D,U8 *class_name,I64 doc_flags=0,U8 *header=NULL,U8 *footer=NULL); +extern Bool DocFormDo(U8 *_d,U8 *class_name=lastclass,I64 doc_flags=0,U8 *header=NULL,U8 *footer=NULL); extern CDoc *DocPut(CTask *task=NULL); extern CDoc *DocDisplay(CTask *task=NULL); extern U0 DocClear(CDoc *doc=NULL); @@ -59,7 +58,7 @@ extern U0 DocRst(CDoc *doc,Bool is_old); extern U0 DocUpdateTaskDocs(CTask *task); extern I64 PmtI64(U8 *msg,I64 dft,I64 lo=MIN_I64,I64 hi=MAX_I64); extern F64 PmtF64(U8 *msg,F64 dft,F64 lo=MIN_F64,F64 hi=MAX_F64); -extern U0 ClassRep(U8 *class_name,U8 *d,I64 max_depth=2,Bool fun=FALSE,I64 offset=0); +extern U0 ClassRep(U8 *_d,U8 *class_name=lastclass,I64 max_depth=2,Bool fun=FALSE,I64 offset=0); extern U8 *DocLinkFile(U8 *link_st,CTask *mem_task=NULL); extern Bool Ed(U8 *link_st,I64 ed_flags=0); extern Bool Plain(U8 *filename); diff --git a/TempleOS/Adam/AutoFile2a.CPP b/TempleOS/Adam/AutoFile2a.CPP index 16e334f..5c1ff83 100644 --- a/TempleOS/Adam/AutoFile2a.CPP +++ b/TempleOS/Adam/AutoFile2a.CPP @@ -14,24 +14,26 @@ public U0 AFPmtStr(U8 *st) st++; } else { if (*st=='\n') - SPrintF(buf,"Press the '$$FG,GREEN$$$$FG$$' key"); + SPrint(buf,"Press the '$$FG,GREEN$$$$FG$$' key"); else if (*st==CH_SPACE) - SPrintF(buf,"Press the '$$FG,GREEN$$$$FG$$' key"); + SPrint(buf,"Press the '$$FG,GREEN$$$$FG$$' key"); else - SPrintF(buf,"Press the '$$FG,GREEN$$%c$$FG$$' key",*st); + SPrint(buf,"Press the '$$FG,GREEN$$%c$$FG$$' key",*st); PopUpOk(buf); } } } } -public U0 AFDelayedPutS(U8 *st,I64 mS=100) +public U0 AFPrint(I64 mS=100,U8 *fmt,...) { + U8 *buf=SPrintJoin(NULL,fmt,argc,argv),*st=buf; I64 ch; while (ch=*st++) { '' ch; Sleep(mS); } + Free(buf); } public U0 AFGetKey(I64 scancode,I64 sc_mask=0xFF|SCF_SHIFT|SCF_CTRL|SCF_ALT) @@ -46,7 +48,7 @@ public U0 AFGetKey(I64 scancode,I64 sc_mask=0xFF|SCF_SHIFT|SCF_CTRL|SCF_ALT) !(sc.u8[0]==SC_ALT && scancode&SCF_ALT) ) { if (sc&sc_mask!=scancode&sc_mask) { st=ScanCode2KeyName(scancode); - SPrintF(buf,"Press the '$$FG,GREEN$$%s$$FG$$' key",st); + SPrint(buf,"Press the '$$FG,GREEN$$%s$$FG$$' key",st); Free(st); PopUpOk(buf); } @@ -67,12 +69,12 @@ public U0 AFGetChar(I64 ch1,I64 ch2=0) if (ch!=ch1 && (!ch2 || ch!=ch2)) { if (!ch2) { st1=A2KeyName(ch1); - SPrintF(buf,"Press the '$$FG,GREEN$$%s$$FG$$' key",st1); + SPrint(buf,"Press the '$$FG,GREEN$$%s$$FG$$' key",st1); Free(st1); } else { st1=A2KeyName(ch1); st2=A2KeyName(ch2); - SPrintF(buf,"Press the '$$FG,GREEN$$%s$$FG$$' key or\n" + SPrint(buf,"Press the '$$FG,GREEN$$%s$$FG$$' key or\n" "the '$$FG,GREEN$$%s$$FG$$' key.",st1,st2); Free(st1); Free(st2); diff --git a/TempleOS/Adam/Boot/BootCD.CPP b/TempleOS/Adam/Boot/BootCD.CPP index fb0ec60..cfb5bd1 100644 --- a/TempleOS/Adam/Boot/BootCD.CPP +++ b/TempleOS/Adam/Boot/BootCD.CPP @@ -1,7 +1,12 @@ -asm { #define CD_BOOT_LOADER_SIZE CD_BLK_SIZE*1 //Max CD_BLK_SIZE*4, I think #define BOOT_HIGH_LOC ((BOOT_RAM_LIMIT-(BOOT_STK_SIZE+CD_BOOT_LOADER_SIZE))>>4) -#assert BOOT_HIGH_LOC>=KERNEL_BIN_LIMIT + +DefinePrint( + "DD_BOOT_HIGH_LOC","%08X",BOOT_HIGH_LOC<<4); +DefinePrint( + "DD_BOOT_HIGH_LOC_END","%08X",BOOT_RAM_LIMIT-1); + +asm { USE16 BCD_START:: //DL is supposed to have the BIOS drive number @@ -65,7 +70,7 @@ BCD_RET:: RET BCD_PUTS:: @@1: LODSB - OR AL,AL + TEST AL,AL JZ BCD_RET CALL BCD_PUTCHAR JMP @@1 @@ -147,7 +152,7 @@ BCD_MAIN:: //See $LK,"BootCdProbe","MN:BootCdProbe"$(). MOV EBX,U32 [BCD_BLK_LO-BCD_START] //TODO: oops overflow? SHL EBX,16 - MOV BX,BOOT_CODE_CDROM //$MA+A-X+PU,"See sys_boot_code","Grep(\"sys_boot_code\",\"/TempleOS/\"FILENAME_MASK_TXT);View;\n"$ + MOV BX,BOOT_CODE_CDROM //$MA+A-X+PU,"See sys_boot_code","Grep(\"sys_boot_code\",\"/TempleOS/*\");View;\n"$ //My assembler doesn't support 16-bit very well. DU8 0xEA; //JMP BOOT_RAM_BASE:0000 diff --git a/TempleOS/Adam/Boot/BootHD.CPP b/TempleOS/Adam/Boot/BootHD.CPP index e8dbe88..1dd3e4a 100644 --- a/TempleOS/Adam/Boot/BootHD.CPP +++ b/TempleOS/Adam/Boot/BootHD.CPP @@ -1,8 +1,7 @@ -asm { #define MODULE_SIZE 1*BLK_SIZE #define BOOT_HIGH_LOC ((BOOT_RAM_LIMIT-(BOOT_STK_SIZE+MODULE_SIZE))>>4) -#assert BOOT_HIGH_LOC>=KERNEL_BIN_LIMIT +asm { USE16 BHD_CODE:: @@ -84,7 +83,7 @@ BHD_HISTART: @@10: POP CX LOOP @@05 - MOV EBX,BOOT_CODE_HARDDRV //$MA+A-X+PU,"See sys_boot_code","Grep(\"sys_boot_code\",\"/TempleOS/\"FILENAME_MASK_TXT);View;\n"$ + MOV EBX,BOOT_CODE_HARDDRV //$MA+A-X+PU,"See sys_boot_code","Grep(\"sys_boot_code\",\"/TempleOS/*\");View;\n"$ //My assembler doesn't support 16-bit very well. DU8 0xEA; //JMP BOOT_RAM_BASE:0000 DU16 0,BOOT_RAM_BASE/16; diff --git a/TempleOS/Adam/Boot/BootMHD.CPP b/TempleOS/Adam/Boot/BootMHD.CPP index ed8167e..e50e399 100644 --- a/TempleOS/Adam/Boot/BootMHD.CPP +++ b/TempleOS/Adam/Boot/BootMHD.CPP @@ -1,7 +1,7 @@ -asm { #define MODULE_SIZE 1*BLK_SIZE #define BOOT_HIGH_LOC ((BOOT_RAM_LIMIT-(BOOT_STK_SIZE+MODULE_SIZE))>>4) -#assert BOOT_HIGH_LOC>=KERNEL_BIN_LIMIT + +asm { USE16 BMHD_START:: BMHD_CODE:: diff --git a/TempleOS/Adam/Boot/BootMHD2.CPP b/TempleOS/Adam/Boot/BootMHD2.CPP index 5bc3d34..c0dfe39 100644 --- a/TempleOS/Adam/Boot/BootMHD2.CPP +++ b/TempleOS/Adam/Boot/BootMHD2.CPP @@ -1,7 +1,7 @@ -asm { #define MODULE_SIZE 2*BLK_SIZE #define BOOT_HIGH_LOC ((BOOT_RAM_LIMIT-(BOOT_STK_SIZE+MODULE_SIZE))>>4) -#assert BOOT_HIGH_LOC>=KERNEL_BIN_LIMIT + +asm { USE16 BMHD2_START:: MOV U32 FS:[0],'B'+0x2000+('2'+0x2000)<<16 @@ -48,7 +48,7 @@ BMHD2_RET:: RET BMHD2_PUTS:: @@1: LODSB - OR AL,AL + TEST AL,AL JZ BMHD2_RET CALL BMHD2_PUTCHAR JMP @@1 @@ -81,9 +81,9 @@ BMHD2_HISTART: MOV EBX,U32 BMHD2_BLK_ARRAY-BMHD2_START[EAX*8] MOV EAX,U32 BMHD2_BLK_ARRAY+4-BMHD2_START[EAX*8] - OR EBX,EBX + TEST EBX,EBX JNZ @@10 - OR EAX,EAX + TEST EAX,EAX JZ @@5 @@10: MOV U32 [BMHD2_DAP_BLK_LO-BMHD2_START],EBX diff --git a/TempleOS/Adam/Boot/DskCDDVD.CPP b/TempleOS/Adam/Boot/DskCDDVD.CPP index e486025..adc9d7c 100644 --- a/TempleOS/Adam/Boot/DskCDDVD.CPP +++ b/TempleOS/Adam/Boot/DskCDDVD.CPP @@ -19,14 +19,14 @@ class CCCDUserData //Create CD short_dir_blks,long_dir_blks; }; -I64 CDFileCreate2(CFile *out_file,CDirEntry *tempm, +I64 CDFileCreate2(CFile *out_file,CDirEntry *tempde, CISO1DirEntry *tempi,CISO1DirEntry *tempi2, I64 *_cur_blk, CDirEntry *parent,Bool write, U8 *stage2_filename,I64 *_stage2_blk) { CCCDUserData *tempc; - CDirEntry *tempm1,*tempm2; + CDirEntry *tempde1,*tempde2; CFile *in_file; U8 *buf=MAlloc(CD_BLK_SIZE),*ptr1,*ptr2; CISO1DirEntry *dir_blk_buf =CAlloc(CD_BLK_SIZE*128), @@ -40,7 +40,7 @@ I64 CDFileCreate2(CFile *out_file,CDirEntry *tempm, de->len=sizeof(CISO1DirEntry)-1; de->ext_attr_len=0; FillU16Palindrome(&de->vol_seq_num,1); - Date2ISO1(&de->date,tempm->datetime); + Date2ISO1(&de->date,tempde->datetime); de->flags=ISO1_ATTR_DIR; de->name_len=1; de->name=0; @@ -62,7 +62,7 @@ I64 CDFileCreate2(CFile *out_file,CDirEntry *tempm, de2->len=sizeof(CISO1DirEntry)-1; de2->ext_attr_len=0; FillU16Palindrome(&de2->vol_seq_num,1); - Date2ISO1(&de2->date,tempm->datetime); + Date2ISO1(&de2->date,tempde->datetime); de2->flags=ISO1_ATTR_DIR; de2->name_len=1; de2->name=0; @@ -81,48 +81,48 @@ I64 CDFileCreate2(CFile *out_file,CDirEntry *tempm, de2->len+=de2->name_len; de2(U8 *)+=de2->len; - tempm1=tempm->sub; - while (tempm1) { - tempm2=tempm1->next; - if (!write) tempm1->user_data=CAlloc(sizeof(CCCDUserData)); + tempde1=tempde->sub; + while (tempde1) { + tempde2=tempde1->next; + if (!write) tempde1->user_data=CAlloc(sizeof(CCCDUserData)); de1=de; de12=de2; - if (tempm1->attr & _ATTR_DIR) { - n=CDFileCreate2(out_file,tempm1,de,de2,_cur_blk,tempm,write,stage2_filename,_stage2_blk); + if (tempde1->attr & _ATTR_DIR) { + n=CDFileCreate2(out_file,tempde1,de,de2,_cur_blk,tempde,write,stage2_filename,_stage2_blk); de(U8 *)+=sizeof(CISO1DirEntry)-1+n; de2(U8 *)+=sizeof(CISO1DirEntry)-1+n<<1; } else { - tempc=tempm1->user_data; + tempc=tempde1->user_data; de->len=sizeof(CISO1DirEntry)-1; de->ext_attr_len=0; FillU32Palindrome(&de->loc,*_cur_blk); tempc->loc=*_cur_blk; if (write) { - if (stage2_filename && !StrCmp(tempm1->full_name,stage2_filename)) { + if (stage2_filename && !StrCmp(tempde1->full_name,stage2_filename)) { "$$FG,RED$$!!! Boot Stage 2 !!!$$FG$$\n"; if (_stage2_blk) *_stage2_blk=*_cur_blk; } - "%X:%s\n",*_cur_blk,tempm1->full_name; + "%X:%s\n",*_cur_blk,tempde1->full_name; } - FillU32Palindrome(&de->size,tempm1->size); + FillU32Palindrome(&de->size,tempde1->size); FillU16Palindrome(&de->vol_seq_num,1); - Date2ISO1(&de->date,tempm1->datetime); + Date2ISO1(&de->date,tempde1->datetime); de->flags=0; - de->name_len=StrLen(tempm1->name); - StrCpy(&de->name,tempm1->name); + de->name_len=StrLen(tempde1->name); + StrCpy(&de->name,tempde1->name); de->len=de->len+de->name_len; de(U8 *)+=de->len; de2->len=sizeof(CISO1DirEntry)-1; de2->ext_attr_len=0; FillU32Palindrome(&de2->loc,*_cur_blk); - FillU32Palindrome(&de2->size,tempm1->size); + FillU32Palindrome(&de2->size,tempde1->size); FillU16Palindrome(&de2->vol_seq_num,1); - Date2ISO1(&de2->date,tempm1->datetime); + Date2ISO1(&de2->date,tempde1->datetime); de2->flags=0; - de2->name_len=StrLen(tempm1->name)<<1; + de2->name_len=StrLen(tempde1->name)<<1; ptr1=&de2->name; - ptr2=&tempm1->name; + ptr2=&tempde1->name; for (i=0;iname_len;i=i+2) { ptr1++; *ptr1++=*ptr2++; @@ -130,7 +130,7 @@ I64 CDFileCreate2(CFile *out_file,CDirEntry *tempm, de2->len+=de2->name_len; de2(U8 *)+=de2->len; - in_file=FOpen(tempm1->full_name,"r"); + in_file=FOpen(tempde1->full_name,"r"); for (i=0;i<(FSize(in_file)+CD_BLK_SIZE-1)/CD_BLK_SIZE;i++) { n=4; if ((i+1)<<2>(FSize(in_file)+BLK_SIZE-1)>>BLK_SIZE_BITS) { @@ -163,20 +163,20 @@ I64 CDFileCreate2(CFile *out_file,CDirEntry *tempm, MemCpy(de2,buf,i); de2(U8 *)+=i; } - tempm1=tempm2; + tempde1=tempde2; } - tempc=tempm->user_data; + tempc=tempde->user_data; tempi->len=sizeof(CISO1DirEntry)-1; tempi->ext_attr_len=0; tempi->flags=ISO1_ATTR_DIR; - if (!tempm->name[0]) { + if (!tempde->name[0]) { tempi->name_len=1; tempi->name=1; } else { - tempi->name_len=StrLen(tempm->name); - StrCpy(&tempi->name,tempm->name); + tempi->name_len=StrLen(tempde->name); + StrCpy(&tempi->name,tempde->name); } tempi->len+=tempi->name_len; @@ -189,9 +189,9 @@ I64 CDFileCreate2(CFile *out_file,CDirEntry *tempm, FillU32Palindrome(&dir_blk_buf->size,n*CD_BLK_SIZE); FillU32Palindrome(&dir_blk_buf->loc,*_cur_blk); FillU16Palindrome(&tempi->vol_seq_num,1); - Date2ISO1(&tempi->date,tempm->datetime); + Date2ISO1(&tempi->date,tempde->datetime); if (write) - "%X:%s\n",*_cur_blk,tempm->full_name; + "%X:%s\n",*_cur_blk,tempde->full_name; if (write) FWBlks(out_file,dir_blk_buf,*_cur_blk<<2,n<<2); *_cur_blk+=n; @@ -199,13 +199,13 @@ I64 CDFileCreate2(CFile *out_file,CDirEntry *tempm, tempi2->len=sizeof(CISO1DirEntry)-1; tempi2->ext_attr_len=0; tempi2->flags=ISO1_ATTR_DIR; - if (!tempm->name[0]) { + if (!tempde->name[0]) { tempi2->name_len=1; tempi->name=1; } else { - tempi2->name_len=StrLen(tempm->name)<<1; + tempi2->name_len=StrLen(tempde->name)<<1; ptr1=&tempi2->name; - ptr2=&tempm->name; + ptr2=&tempde->name; for (i=0;iname_len;i=i+2) { ptr1++; *ptr1++=*ptr2++; @@ -220,9 +220,9 @@ I64 CDFileCreate2(CFile *out_file,CDirEntry *tempm, FillU32Palindrome(&dir_blk_buf2->size,n*CD_BLK_SIZE); FillU32Palindrome(&dir_blk_buf2->loc,*_cur_blk); FillU16Palindrome(&tempi2->vol_seq_num,1); - Date2ISO1(&tempi2->date,tempm->datetime); + Date2ISO1(&tempi2->date,tempde->datetime); if (write) - "%X:%s\n",*_cur_blk,tempm->full_name; + "%X:%s\n",*_cur_blk,tempde->full_name; if (write) FWBlks(out_file,dir_blk_buf2,*_cur_blk<<2,n<<2); *_cur_blk+=n; @@ -233,39 +233,39 @@ I64 CDFileCreate2(CFile *out_file,CDirEntry *tempm, return tempi->name_len; } -I64 CDTableLen(CDirEntry *tempm,I64 *size1,I64 *size2,I64 cur_depth) +I64 CDTableLen(CDirEntry *tempde,I64 *size1,I64 *size2,I64 cur_depth) //returns depth { - CDirEntry *tempm1=tempm->sub; + CDirEntry *tempde1=tempde->sub; I64 max_depth=cur_depth,i; - while (tempm1) { - if (tempm1->attr & _ATTR_DIR) { - *size1+=sizeof(CISO1PathEntry)-2+ (StrLen(tempm1->name)+1)&-0x2; - *size2+=sizeof(CISO1PathEntry)-2+StrLen(tempm1->name)<<1; - i=CDTableLen(tempm1,size1,size2,cur_depth+1); + while (tempde1) { + if (tempde1->attr & _ATTR_DIR) { + *size1+=sizeof(CISO1PathEntry)-2+ (StrLen(tempde1->name)+1)&-0x2; + *size2+=sizeof(CISO1PathEntry)-2+StrLen(tempde1->name)<<1; + i=CDTableLen(tempde1,size1,size2,cur_depth+1); if (i>max_depth) max_depth=i; } - tempm1=tempm1->next; + tempde1=tempde1->next; } return max_depth; } -U0 CDFillPathTable(CDirEntry *tempm, +U0 CDFillPathTable(CDirEntry *tempde, CISO1PathEntry **_itabbuf,CISO1PathEntry **_itabbuf2, I64 parent_entry_num,Bool big_endian,I64 *first_free,I64 cur_level,I64 output_level) { U8 *ptr1,*ptr2; I64 i; CISO1PathEntry *tabbuf=*_itabbuf,*tabbuf2=*_itabbuf2; - CDirEntry *tempm1=tempm->sub,*tempm2; + CDirEntry *tempde1=tempde->sub,*tempde2; CCCDUserData *tempc; if (cur_level==output_level) { - while (tempm1) { - if (tempm1->attr & _ATTR_DIR) { - tempc=tempm1->user_data; + while (tempde1) { + if (tempde1->attr & _ATTR_DIR) { + tempc=tempde1->user_data; tempc->path_entry_num=*first_free; - tabbuf->name_len=StrLen(tempm1->name); + tabbuf->name_len=StrLen(tempde1->name); if (big_endian) { tabbuf->blk=EndianU32(tempc->loc); tabbuf->parent_entry_num=EndianU16(parent_entry_num); @@ -273,11 +273,11 @@ U0 CDFillPathTable(CDirEntry *tempm, tabbuf->blk=tempc->loc; tabbuf->parent_entry_num=parent_entry_num; } - StrCpy(&tabbuf->name,tempm1->name); + StrCpy(&tabbuf->name,tempde1->name); - tabbuf(U8 *)+=sizeof(CISO1PathEntry)-2+(StrLen(tempm1->name)+1) & -0x2; + tabbuf(U8 *)+=sizeof(CISO1PathEntry)-2+(StrLen(tempde1->name)+1) & -0x2; - tabbuf2->name_len=StrLen(tempm1->name)<<1; + tabbuf2->name_len=StrLen(tempde1->name)<<1; if (big_endian) { tabbuf2->blk=EndianU32(tempc->loc+tempc->short_dir_blks); tabbuf2->parent_entry_num=EndianU16(parent_entry_num); @@ -286,29 +286,29 @@ U0 CDFillPathTable(CDirEntry *tempm, tabbuf2->parent_entry_num=parent_entry_num; } ptr1=&tabbuf2->name; - ptr2=&tempm1->name; + ptr2=&tempde1->name; for (i=0;iname_len;i=i+2) { ptr1++; *ptr1++=*ptr2++; } tabbuf2(U8 *)+=sizeof(CISO1PathEntry)-2+ - StrLen(tempm1->name)<<1; + StrLen(tempde1->name)<<1; *first_free+=1; } - tempm1=tempm1->next; + tempde1=tempde1->next; } *_itabbuf=tabbuf; *_itabbuf2=tabbuf2; } - tempm1=tempm->sub; - while (tempm1) { - tempm2=tempm1->next; - if (tempm1->attr & _ATTR_DIR) { - tempc=tempm1->user_data; - CDFillPathTable(tempm1,_itabbuf,_itabbuf2,tempc->path_entry_num, + tempde1=tempde->sub; + while (tempde1) { + tempde2=tempde1->next; + if (tempde1->attr & _ATTR_DIR) { + tempc=tempde1->user_data; + CDFillPathTable(tempde1,_itabbuf,_itabbuf2,tempc->path_entry_num, big_endian,first_free,cur_level+1,output_level); } - tempm1=tempm2; + tempde1=tempde2; } } @@ -351,8 +351,8 @@ public I64 CDFileCreate(U8 *_filename=NULL,U8 *src_files_find_mask,U8 *fu_flags= CISO1DirEntry *tempi; CCCDUserData *tempc; - GetFFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),"+r"); - GetFFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),fu_flags); + ScanFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),"+r"); + ScanFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),fu_flags); if (!_filename) _filename=sys_dft_iso_name; @@ -365,7 +365,7 @@ public I64 CDFileCreate(U8 *_filename=NULL,U8 *src_files_find_mask,U8 *fu_flags= rootdir->attr=_ATTR_DIR; rootdir->sub=FilesFind(src_files_find_mask,fuf_flags); - rootdir->datetime=GetCurTimeDate; + rootdir->datetime=GetDateTime; rootdir->user_data=CAlloc(sizeof(CCCDUserData)); tempc=rootdir->user_data; tempc->path_entry_num=1; @@ -493,7 +493,7 @@ public I64 CDFileCreate(U8 *_filename=NULL,U8 *src_files_find_mask,U8 *fu_flags= FWBlks(out_file,tabbuf2,cur_blk<<2,tabsize2<<2); cur_blk+=tabsize2; - CDirLstDel2(rootdir); + DirLstDel2(rootdir); FillU32Palindrome(&iso_pri->vol_space_size,cur_blk); FillU32Palindrome(&iso_sup->vol_space_size,cur_blk); FWBlks(out_file,iso_pri,16<<2,4); diff --git a/TempleOS/Adam/Boot/InsBoot.CPP b/TempleOS/Adam/Boot/InsBoot.CPP index fd6a653..5e779eb 100644 --- a/TempleOS/Adam/Boot/InsBoot.CPP +++ b/TempleOS/Adam/Boot/InsBoot.CPP @@ -28,7 +28,7 @@ USE64 _HI_CALL:: ENTER 0 MOV RAX,U64 16[RBP] - OR RAX,RAX + TEST RAX,RAX JZ @@05 CALL RAX @@05: LEAVE @@ -90,8 +90,8 @@ U0 InstallCDir(U8 src,U8 dst) { U8 buf_s[136],buf_d[136]; if (src==dst) return; - SPrintF(buf_s,"%c:/TempleOS",src); - SPrintF(buf_d,"%c:/TempleOS",dst); + SPrint(buf_s,"%c:/TempleOS",src); + SPrint(buf_d,"%c:/TempleOS",dst); DelTree(buf_d); CopyTree(buf_s,buf_d); } @@ -170,7 +170,7 @@ public Bool MakeOSInstallPrtBootLoader(U8 src_drv=0,U8 dst_drv=0) //within a #exe {} statement. //See $LK,"InsBootDstDrv","FF:::/TempleOS/Kernel/KCfg.CPP,InsBootDstDrv"$ //(There is no way to set compiler options.) - NamedFramePtrAdd("InsBootDstDrv",dst_drv); + FramePtrAdd("InsBootDstDrv",dst_drv); src_drv=ChkWritable(src_drv); if (!Drv(src_drv)) throw; @@ -209,7 +209,7 @@ public Bool MakeOSInstallPrtBootLoader(U8 src_drv=0,U8 dst_drv=0) } } catch CatchAll; - NamedFramePtrDel("InsBootDstDrv"); + FramePtrDel("InsBootDstDrv"); return result; } @@ -301,7 +301,7 @@ public Bool InstallMasterBootLoader(U8 drv_let,U8 *drv_lst=NULL) _q=BMHD2_BLK_ARRAY; MemSet(_q,0,sizeof(I64)*8); menu_ptr=BMHD2_BOOT_MSG; - SPrintF(menu_ptr,"\n\r\n\rTempleOS Boot Loader\n\r\n\r"); + SPrint(menu_ptr,"\n\r\n\rTempleOS Boot Loader\n\r\n\r"); j=0; if (FileFind(OLDMBR_BIN_C,&de,FUF_JUST_FILES)) { Free(de.full_name); @@ -323,7 +323,7 @@ public Bool InstallMasterBootLoader(U8 drv_let,U8 *drv_lst=NULL) if (p1 && bdev1==bdev) { *_q=p1->offset; "Drive %C:%16X\n",Prt2Drv(p1),*_q; - SPrintF(buf,"%d. Drive %C\n\r",j++,Prt2Drv(p1)); + SPrint(buf,"%d. Drive %C\n\r",j++,Prt2Drv(p1)); StrCat(menu_ptr,buf); _q++; } diff --git a/TempleOS/Adam/Ctrls/Ctrls2a.CPP b/TempleOS/Adam/Ctrls/Ctrls2a.CPP index ac18c8f..5f653fd 100644 --- a/TempleOS/Adam/Ctrls/Ctrls2a.CPP +++ b/TempleOS/Adam/Ctrls/Ctrls2a.CPP @@ -23,15 +23,15 @@ U0 CtrlsUpdate(CTask *task) if (c->update_derived_vals) (*c->update_derived_vals)(c); if (c->flags&CTRLF_BORDER) { - c->screen_left =task->win_pixel_left+c->left-FONT_WIDTH; - c->screen_right =task->win_pixel_left+c->right-FONT_WIDTH; - c->screen_top =task->win_pixel_top+c->top-FONT_HEIGHT; - c->screen_bottom=task->win_pixel_top+c->bottom-FONT_HEIGHT; + c->screen_left =gr_pan_text_x+task->win_pixel_left+c->left-FONT_WIDTH; + c->screen_right =gr_pan_text_x+task->win_pixel_left+c->right-FONT_WIDTH; + c->screen_top =gr_pan_text_y+task->win_pixel_top+c->top-FONT_HEIGHT; + c->screen_bottom=gr_pan_text_y+task->win_pixel_top+c->bottom-FONT_HEIGHT; } else { - c->screen_left =task->win_pixel_left+c->left; - c->screen_right =task->win_pixel_left+c->right; - c->screen_top =task->win_pixel_top+c->top; - c->screen_bottom=task->win_pixel_top+c->bottom; + c->screen_left =gr_pan_text_x+task->win_pixel_left+c->left; + c->screen_right =gr_pan_text_x+task->win_pixel_left+c->right; + c->screen_top =gr_pan_text_y+task->win_pixel_top+c->top; + c->screen_bottom=gr_pan_text_y+task->win_pixel_top+c->bottom; } c=c->next; } @@ -147,15 +147,15 @@ U0 WinDerivedScrollValsUpdate(CCtrl *c) if (!range) range=1; switch (c->type) { case CTRLT_WIN_HSCROLL: - c->left=FONT_WIDTH-WIN_SCROLL_BORDER_BONUS+(s->pos-s->min)*(c->win_task->win_pixel_width+2*WIN_SCROLL_BORDER_BONUS-WIN_SCROLL_SIZE)/range; - c->right=c->left+WIN_SCROLL_SIZE-1; - c->top=FONT_HEIGHT+(FONT_WIDTH-WIN_SCROLL_SIZE)/2+c->win_task->win_pixel_height; + c->left =gr_pan_text_x+FONT_WIDTH-WIN_SCROLL_BORDER_BONUS+(s->pos-s->min)*(c->win_task->win_pixel_width+2*WIN_SCROLL_BORDER_BONUS-WIN_SCROLL_SIZE)/range; + c->right =c->left+WIN_SCROLL_SIZE-1; + c->top =gr_pan_text_y+FONT_HEIGHT+(FONT_WIDTH-WIN_SCROLL_SIZE)/2+c->win_task->win_pixel_height; c->bottom=c->top+WIN_SCROLL_SIZE-1; break; case CTRLT_WIN_VSCROLL: - c->left=FONT_WIDTH+(FONT_WIDTH-WIN_SCROLL_SIZE)/2+c->win_task->win_pixel_width; - c->right=c->left+WIN_SCROLL_SIZE-1; - c->top=FONT_HEIGHT-WIN_SCROLL_BORDER_BONUS+(s->pos-s->min)*(c->win_task->win_pixel_height+2*WIN_SCROLL_BORDER_BONUS-WIN_SCROLL_SIZE)/range; + c->left =gr_pan_text_x+FONT_WIDTH+(FONT_WIDTH-WIN_SCROLL_SIZE)/2+c->win_task->win_pixel_width; + c->right =c->left+WIN_SCROLL_SIZE-1; + c->top =gr_pan_text_y+FONT_HEIGHT-WIN_SCROLL_BORDER_BONUS+(s->pos-s->min)*(c->win_task->win_pixel_height+2*WIN_SCROLL_BORDER_BONUS-WIN_SCROLL_SIZE)/range; c->bottom=c->top+WIN_SCROLL_SIZE-1; break; } @@ -265,9 +265,9 @@ U0 DrawViewAnglesCtrl(CDC *dc,CCtrl *c) } dc->color=s->cx; - GrPrintF(dc,c->left+VIEWANGLES_SPACING-FONT_WIDTH/2, + GrPrint(dc,c->left+VIEWANGLES_SPACING-FONT_WIDTH/2, c->top+VIEWANGLES_SPACING-(1+FONT_HEIGHT),"X"); - GrPrintF(dc,c->left+VIEWANGLES_SPACING-3*FONT_WIDTH/2, + GrPrint(dc,c->left+VIEWANGLES_SPACING-3*FONT_WIDTH/2, c->top+VIEWANGLES_SPACING+VIEWANGLES_RANGE+3, "%3d",s->sx*360/VIEWANGLES_RANGE); i=c->left+VIEWANGLES_SPACING; @@ -282,9 +282,9 @@ U0 DrawViewAnglesCtrl(CDC *dc,CCtrl *c) dc->color=s->cy; - GrPrintF(dc,c->left+2*VIEWANGLES_SPACING+1-FONT_WIDTH/2, + GrPrint(dc,c->left+2*VIEWANGLES_SPACING+1-FONT_WIDTH/2, c->top+VIEWANGLES_SPACING-(1+FONT_HEIGHT),"Y"); - GrPrintF(dc,c->left+2*VIEWANGLES_SPACING+1-3*FONT_WIDTH/2, + GrPrint(dc,c->left+2*VIEWANGLES_SPACING+1-3*FONT_WIDTH/2, c->top+VIEWANGLES_SPACING+VIEWANGLES_RANGE+3, "%3d",s->sy*360/VIEWANGLES_RANGE); i=c->left+2*VIEWANGLES_SPACING+1; @@ -299,9 +299,9 @@ U0 DrawViewAnglesCtrl(CDC *dc,CCtrl *c) dc->color=s->cz; - GrPrintF(dc,c->left+3*VIEWANGLES_SPACING+2-FONT_WIDTH/2, + GrPrint(dc,c->left+3*VIEWANGLES_SPACING+2-FONT_WIDTH/2, c->top+VIEWANGLES_SPACING-(1+FONT_HEIGHT),"Z"); - GrPrintF(dc,c->left+3*VIEWANGLES_SPACING+2-3*FONT_WIDTH/2, + GrPrint(dc,c->left+3*VIEWANGLES_SPACING+2-3*FONT_WIDTH/2, c->top+VIEWANGLES_SPACING+VIEWANGLES_RANGE+3, "%3d",s->sz*360/VIEWANGLES_RANGE); i=c->left+3*VIEWANGLES_SPACING+2; diff --git a/TempleOS/Adam/Ctrls/CtrlsButton.CPP b/TempleOS/Adam/Ctrls/CtrlsButton.CPP index f47d3e4..7afb7c7 100644 --- a/TempleOS/Adam/Ctrls/CtrlsButton.CPP +++ b/TempleOS/Adam/Ctrls/CtrlsButton.CPP @@ -17,15 +17,15 @@ U0 DrawCtrlButton(CDC *dc,CCtrl *c) dc->color=BLACK; GrRect(dc,c->left,c->top,c->right-c->left+1,c->bottom-c->top+1); - if (!(st=LstEntryPt(s->state,s->state_texts))) + if (!(st=LstSub(s->state,s->state_texts))) st=s->state_texts; dc->color=s->state_colors[s->state]; l=StrLen(st); GrRect(dc,c->left+BUTTON_BORDER,c->top+BUTTON_BORDER, c->right-c->left+1-BUTTON_BORDER*2,c->bottom-c->top+1-BUTTON_BORDER*2); dc->color=s->state_colors[s->state]^(WHITE<<16+WHITE); - GrPutS(dc,(c->left+c->right+1-l*FONT_WIDTH)>>1, - (c->top+c->bottom+1-FONT_HEIGHT)>>1,st); + GrPrint(dc,(c->left+c->right+1-l*FONT_WIDTH)>>1, + (c->top+c->bottom+1-FONT_HEIGHT)>>1,"%s",st); } U0 LeftClickCtrlButton(CCtrl *c,I64,I64,Bool down) @@ -49,7 +49,7 @@ public CCtrl *CtrlButtonNew(I64 x,I64 y,I64 width=-1,I64 height=-1, if (width<0) { l=1; for (i=0;il) l=j; } diff --git a/TempleOS/Adam/Ctrls/CtrlsSlider.CPP b/TempleOS/Adam/Ctrls/CtrlsSlider.CPP index 3cc50ce..f28e16f 100644 --- a/TempleOS/Adam/Ctrls/CtrlsSlider.CPP +++ b/TempleOS/Adam/Ctrls/CtrlsSlider.CPP @@ -28,7 +28,7 @@ CMgdSC *PmtSliderCtrl() result->next_slider=result->last_slider=&result->next_slider; while (TRUE) { - SPrintF(pmt,"Slider #%d Name:",result->num_sliders+1); + SPrint(pmt,"Slider #%d Name:",result->num_sliders+1); st=PmtStr(pmt); if (!*st) { Free(st); @@ -57,7 +57,7 @@ U0 MgdSliderCtrl(CDoc *doc) while (!m) Yield; - DocPrintF(doc, + DocPrint(doc, "#define SLIDER_RANGE %d #define SLIDER_SPACING %d #define SLIDER_BORDER %d @@ -69,16 +69,16 @@ class CSliderState temps=m->next_slider; while (temps!=&m->next_slider) { - DocPrintF(doc," I64 %s;\n",temps->name); + DocPrint(doc," I64 %s;\n",temps->name); temps=temps->next; } if (*m->glbl_name) - DocPrintF(doc,"} %s;\n",m->glbl_name); + DocPrint(doc,"} %s;\n",m->glbl_name); else - DocPutS(doc,"};\n"); + DocPrint(doc,"};\n"); - DocPrintF(doc, + DocPrint(doc, " U0 DrawSliderCtrl(CDC *dc,CCtrl *c) { @@ -93,17 +93,17 @@ U0 DrawSliderCtrl(CDC *dc,CCtrl *c) ",m->num_sliders+1,m->num_sliders,m->num_sliders+1,m->num_sliders); for (i=0;inum_sliders;i++) - DocPrintF(doc, + DocPrint(doc, " GrLine(dc,c->left+%d*SLIDER_SPACING+%d,c->top+SLIDER_SPACING, c->left+%d*SLIDER_SPACING+%d,c->top+SLIDER_SPACING+SLIDER_RANGE-1); ",i+1,i,i+1,i); - DocPutS(doc," dc->color=LTRED;\n"); + DocPrint(doc," dc->color=LTRED;\n"); temps=m->next_slider; while (temps!=&m->next_slider) { - DocPrintF(doc, -" GrPrintF(dc,c->left+%d*SLIDER_SPACING+%d-FONT_WIDTH/2, + DocPrint(doc, +" GrPrint(dc,c->left+%d*SLIDER_SPACING+%d-FONT_WIDTH/2, c->top+SLIDER_SPACING+SLIDER_RANGE+3, \"%%d\",s->%s*10/SLIDER_RANGE);\n", temps->num+1,temps->num,temps->name); @@ -112,19 +112,19 @@ U0 DrawSliderCtrl(CDC *dc,CCtrl *c) temps=m->next_slider; while (temps!=&m->next_slider) { - DocPrintF(doc," GrRect(dc,c->left+%d*SLIDER_SPACING+%d-3,c->top+SLIDER_SPACING+SLIDER_RANGE-1-s->%s-2,7,5);\n", + DocPrint(doc," GrRect(dc,c->left+%d*SLIDER_SPACING+%d-3,c->top+SLIDER_SPACING+SLIDER_RANGE-1-s->%s-2,7,5);\n", temps->num+1,temps->num,temps->name); temps=temps->next; } - DocPutS(doc," dc->color=YELLOW;\n"); + DocPrint(doc," dc->color=YELLOW;\n"); temps=m->next_slider; while (temps!=&m->next_slider) { - DocPrintF(doc," GrRect(dc,c->left+%d*SLIDER_SPACING+%d-2,c->top+SLIDER_SPACING+SLIDER_RANGE-1-s->%s-1,5,3);\n", + DocPrint(doc," GrRect(dc,c->left+%d*SLIDER_SPACING+%d-2,c->top+SLIDER_SPACING+SLIDER_RANGE-1-s->%s-1,5,3);\n", temps->num+1,temps->num,temps->name); temps=temps->next; } - DocPrintF(doc, + DocPrint(doc, "} U0 UpdateDerivedSliderCtrl(CCtrl *c) @@ -138,10 +138,10 @@ U0 UpdateDerivedSliderCtrl(CCtrl *c) temps=m->next_slider; while (temps!=&m->next_slider) { - DocPrintF(doc," s->%s=LimitI64(s->%s,0,SLIDER_RANGE-1);\n",temps->name,temps->name); + DocPrint(doc," s->%s=LimitI64(s->%s,0,SLIDER_RANGE-1);\n",temps->name,temps->name); temps=temps->next; } - DocPutS(doc, + DocPrint(doc, "} U0 LeftClickSlider(CCtrl *c,I64 x,I64 y,Bool down) @@ -152,20 +152,20 @@ U0 LeftClickSlider(CCtrl *c,I64 x,I64 y,Bool down) temps=m->next_slider; while (temps!=&m->next_slider) { - DocPutS(doc," "); + DocPrint(doc," "); if (temps!=m->next_slider) - DocPutS(doc,"else "); + DocPrint(doc,"else "); if (temps->next==&m->next_slider) - DocPutS(doc,"\n"); + DocPrint(doc,"\n"); else - DocPrintF(doc,"if (xleft+%d*SLIDER_SPACING+%d+SLIDER_SPACING/2)\n", + DocPrint(doc,"if (xleft+%d*SLIDER_SPACING+%d+SLIDER_SPACING/2)\n", temps->num+1,temps->num); - DocPrintF(doc," s->%s=SLIDER_RANGE-1-(y-(c->top+SLIDER_SPACING));\n", + DocPrint(doc," s->%s=SLIDER_RANGE-1-(y-(c->top+SLIDER_SPACING));\n", temps->name); temps=temps->next; } - DocPutS(doc, + DocPrint(doc, " if (c->update_derived_vals) (*c->update_derived_vals)(c); } @@ -179,11 +179,11 @@ CCtrl *SliderNew() c->type=CTRLT_GENERIC; "); if (*m->glbl_name) - DocPrintF(doc," c->state=&%s;\n" + DocPrint(doc," c->state=&%s;\n" " MemSet(&%s,0,sizeof(CSliderState));\n",m->glbl_name,m->glbl_name); else - DocPutS(doc, " c->state=CAlloc(sizeof(CSliderState));\n"); - DocPutS(doc, + DocPrint(doc, " c->state=CAlloc(sizeof(CSliderState));\n"); + DocPrint(doc, " c->draw_it=&DrawSliderCtrl; c->left_click=&LeftClickSlider; c->update_derived_vals=&UpdateDerivedSliderCtrl; @@ -201,8 +201,8 @@ U0 SliderDel(CCtrl *c) Preempt(old_preempt); "); if (!*m->glbl_name) - DocPutS(doc," Free(c->state);\n"); - DocPutS(doc, + DocPrint(doc," Free(c->state);\n"); + DocPrint(doc, " Free(c); } "); diff --git a/TempleOS/Adam/Dbg2a.CPP b/TempleOS/Adam/Dbg2a.CPP index eac8ce8..8ffa397 100644 --- a/TempleOS/Adam/Dbg2a.CPP +++ b/TempleOS/Adam/Dbg2a.CPP @@ -1,5 +1,5 @@ #help_index "Debugging/Dump" -Bool ClassRep2(CDoc *doc,U8 *class_name,U8 *_b,I64 depth,I64 max_depth,Bool dynamic,I64 types=HTT_CLASS,I64 offset=0) +Bool ClassRep2(CDoc *doc,U8 *_d,U8 *class_name=lastclass,I64 depth,I64 max_depth,Bool dynamic,I64 types=HTT_CLASS,I64 offset=0) { I64 i,j,*ptr; CMemberLst *ml; @@ -8,53 +8,53 @@ Bool ClassRep2(CDoc *doc,U8 *class_name,U8 *_b,I64 depth,I64 max_depth,Bool dyna CHashClass *tempc,*tempc2; if (depth>=max_depth) return TRUE; if (!(tempc=HashFind(class_name,Fs->hash_table,types))) { - DocPutS(doc,"Class Not Found.\n"); + DocPrint(doc,"Class Not Found.\n"); return FALSE; } - if (!ChkPtr(_b) || !ChkPtr(_b(U8 *)+tempc->size)) { - DocPrintF(doc,"Bad Ptr:%016X\n",_b); + if (!ChkPtr(_d) || !ChkPtr(_d(U8 *)+tempc->size)) { + DocPrint(doc,"Bad Ptr:%016X\n",_d); return FALSE; } - if (tempc->base_class && !ClassRep2(doc,tempc->base_class->str,_b,depth,max_depth,dynamic,types,offset)) + if (tempc->base_class && !ClassRep2(doc,_d,tempc->base_class->str,depth,max_depth,dynamic,types,offset)) return FALSE; unlock=DocLock(doc); - DocPrintF(doc,"Class:\"%s\"\n",class_name); + DocPrint(doc,"Class:\"%s\"\n",class_name); ml=tempc->member_lst; while (ml) { tempc2=ml->member_class; - ptr=_b(U8 *)+ml->offset; - DocPrintF(doc,"%08X ",ptr(U8 *)+offset); + ptr=_d(U8 *)+ml->offset; + DocPrint(doc,"%08X ",ptr(U8 *)+offset); j=tempc2->ptr_cnt; tempc2=OptClassFwd(tempc2); tempc2-=tempc2->ptr_cnt; if (tempc2->type & HTT_INTERNAL_TYPE) { - DocPrintF(doc,"$$FG,GREEN$$%-20ts:$$FG$$",ml->str); + DocPrint(doc,"$$FG,GREEN$$%-20ts:$$FG$$",ml->str); if (j==1 && (tempc2->sub_type==IT_I8 || tempc2->sub_type==IT_U8)) { ptr=*ptr; if (ChkPtr(ptr)) { if (dynamic) { - doc_e=DocPutS(doc,"$$DA-T-P+RD,64,\"%40ts\"$$\n"); + doc_e=DocPrint(doc,"$$DA-T-P+RD,64,\"%%40ts\"$$\n"); doc_e->data=ptr; DocDataFmt(doc_e); } else - DocPrintF(doc,"%40ts\n",ptr); + DocPrint(doc,"%40ts\n",ptr); } } else if (!j) { j=MinI64(ml->dim.total_cnt,32); if (tempc2->sub_type==IT_I8 || tempc2->sub_type==IT_U8) { if (j==1) { if (dynamic) { - doc_e=DocPutS(doc,"$$DA-T+RD+UD-I64+U8,32,\"%c\"$$\n"); + doc_e=DocPrint(doc,"$$DA-T+RD+UD-I64+U8,32,\"%%c\"$$\n"); doc_e->data=ptr; } else - DocPrintF(doc,"%c\n",*ptr(U8 *)); + DocPrint(doc,"%c\n",*ptr(U8 *)); } else { if (dynamic) { - doc_e=DocPutS(doc,"$$DA-T-P+RD,64,\"%40ts\"$$\n"); + doc_e=DocPrint(doc,"$$DA-T-P+RD,64,\"%%40ts\"$$\n"); doc_e->data=ptr; DocDataFmt(doc_e); } else - DocPrintF(doc,"%40ts\n",ptr); + DocPrint(doc,"%40ts\n",ptr); } } for (i=0;idata=ptr(U8 *)++; } else - DocPrintF(doc,"%02X ",*ptr(U8 *)++); + DocPrint(doc,"%02X ",*ptr(U8 *)++); break; case IT_I16: case IT_U16: if (dynamic) { - doc_e=DocPutS(doc,"$$DA-T+RD+UD-I64+U16,32,\"%04X\"$$ "); + doc_e=DocPrint(doc,"$$DA-T+RD+UD-I64+U16,32,\"%%04X\"$$ "); doc_e->data=ptr(U16 *)++; } else - DocPrintF(doc,"%04X ",*ptr(U16 *)++); + DocPrint(doc,"%04X ",*ptr(U16 *)++); break; case IT_I32: case IT_U32: if (dynamic) { - doc_e=DocPutS(doc,"$$DA-T+RD+UD-I64+U32,32,\"%08X\"$$ "); + doc_e=DocPrint(doc,"$$DA-T+RD+UD-I64+U32,32,\"%%08X\"$$ "); doc_e->data=ptr(U32 *)++; } else - DocPrintF(doc,"%08X ",*ptr(U32 *)++); + DocPrint(doc,"%08X ",*ptr(U32 *)++); break; case IT_F64: if (dynamic) { - doc_e=DocPutS(doc,"$$DA-T+RD+UD,32,\"%16g\"$$ "); + doc_e=DocPrint(doc,"$$DA-T+RD+UD,32,\"%%16g\"$$ "); doc_e->data=ptr(I64 *)++; } else - DocPrintF(doc,"%16g ",*ptr(I64 *)++); + DocPrint(doc,"%16g ",*ptr(I64 *)++); break; default: if (dynamic) { - doc_e=DocPutS(doc,"$$DA-T+RD+UD,32,\"%016X\"$$ "); + doc_e=DocPrint(doc,"$$DA-T+RD+UD,32,\"%%016X\"$$ "); doc_e->data=ptr(I64 *)++; } else - DocPrintF(doc,"%016X ",*ptr(I64 *)++); + DocPrint(doc,"%016X ",*ptr(I64 *)++); } if (dynamic) DocDataFmt(doc_e); } if (jdim.total_cnt) - DocPutS(doc,"..."); + DocPrint(doc,"..."); } else - DocPrintF(doc,"%016X",*ptr); - DocPutS(doc,"\n"); + DocPrint(doc,"%016X",*ptr); + DocPrint(doc,"\n"); } else { if (depth<2) { if (j==1 && !ChkPtr(*ptr)) - DocPrintF(doc,"%-20ts:%016X\n",ml->str,*ptr); + DocPrint(doc,"%-20ts:%016X\n",ml->str,*ptr); else { - DocPrintF(doc,"$$TR,\"%s\"$$\n",ml->str); - DocPutS(doc,"$$ID,2$$"); + DocPrint(doc,"$$TR,\"%s\"$$\n",ml->str); + DocPrint(doc,"$$ID,2$$"); if (!j) - ClassRep2(doc,tempc2->str,ptr,depth+1,max_depth,dynamic); + ClassRep2(doc,ptr,tempc2->str,depth+1,max_depth,dynamic); else if (j==1) - ClassRep2(doc,tempc2->str,*ptr,depth+1,max_depth,dynamic); - DocPutS(doc,"$$ID,-2$$"); + ClassRep2(doc,*ptr,tempc2->str,depth+1,max_depth,dynamic); + DocPrint(doc,"$$ID,-2$$"); } } else - DocPrintF(doc,"%-20ts\n",ml->str); + DocPrint(doc,"%-20ts\n",ml->str); } ml=ml->next; } @@ -131,7 +131,7 @@ Bool ClassRep2(CDoc *doc,U8 *class_name,U8 *_b,I64 depth,I64 max_depth,Bool dyna return TRUE; } -public U0 ClassRep(U8 *class_name,U8 *_b,I64 max_depth=2,Bool fun=FALSE,I64 offset=0) +public U0 ClassRep(U8 *_d,U8 *class_name=lastclass,I64 max_depth=2,Bool fun=FALSE,I64 offset=0) //Displays members of a record //by using the compiler's info. { @@ -145,10 +145,10 @@ public U0 ClassRep(U8 *class_name,U8 *_b,I64 max_depth=2,Bool fun=FALSE,I64 offs doc=DocPut; } if (fun) - ClassRep2(doc,class_name,_b,0,max_depth,FALSE,HTT_FUN,offset); + ClassRep2(doc,_d,class_name,0,max_depth,FALSE,HTT_FUN,offset); else - ClassRep2(doc,class_name,_b,0,max_depth,FALSE,HTT_CLASS,offset); - DocPutS(doc,"\n"); + ClassRep2(doc,_d,class_name,0,max_depth,FALSE,HTT_CLASS,offset); + DocPrint(doc,"\n"); DocRecalc(doc); if (IsRaw) { DocDump(doc,100000); @@ -157,7 +157,7 @@ public U0 ClassRep(U8 *class_name,U8 *_b,I64 max_depth=2,Bool fun=FALSE,I64 offs Preempt(old_preempt); } -public U0 ClassRepD(U8 *class_name,U8 *_b,I64 max_depth=2,Bool fun=FALSE,I64 offset=0) +public U0 ClassRepD(U8 *_d,U8 *class_name=lastclass,I64 max_depth=2,Bool fun=FALSE,I64 offset=0) //Dynamic classrep (uses hex_ed widgit for live changes) { CDoc *doc; @@ -170,10 +170,10 @@ public U0 ClassRepD(U8 *class_name,U8 *_b,I64 max_depth=2,Bool fun=FALSE,I64 off doc=DocPut; } if (fun) - ClassRep2(doc,class_name,_b,0,max_depth,TRUE,HTT_FUN,offset); + ClassRep2(doc,_d,class_name,0,max_depth,TRUE,HTT_FUN,offset); else - ClassRep2(doc,class_name,_b,0,max_depth,TRUE,HTT_CLASS,offset); - DocPutS(doc,"\n"); + ClassRep2(doc,_d,class_name,0,max_depth,TRUE,HTT_CLASS,offset); + DocPrint(doc,"\n"); DocRecalc(doc); if (IsRaw) { DocDump(doc,100000); @@ -215,10 +215,10 @@ public U0 FunRep(U8 *st,U8 *rbp=NULL,I64 max_depth=2,CTask *task=NULL) img=MAlloc(size); MemCpy(img,rbp+tempf->size,size); UpdateRegVarImg(tempf,img-tempf->size,task); - ClassRep(st,img-tempf->size,max_depth,TRUE,rbp-img+tempf->size); + ClassRep(img-tempf->size,st,max_depth,TRUE,rbp-img+tempf->size); Free(img); } else - ClassRep(st,rbp,max_depth,TRUE); + ClassRep(rbp,st,max_depth,TRUE); } else { tempm=tempf->member_lst; while (tempm) { diff --git a/TempleOS/Adam/Doc/Doc.CPP b/TempleOS/Adam/Doc/Doc.CPP index 1ca8998..e26584b 100644 --- a/TempleOS/Adam/Doc/Doc.CPP +++ b/TempleOS/Adam/Doc/Doc.CPP @@ -13,7 +13,7 @@ U0 DocInit() DefineLstLoad("ST_DOC_CMDS", "TX\0CR\0SR\0CU\0TB\0CL\0PB\0DA\0PL\0LM\0RM\0HD\0FO\0ID\0" "FG\0BG\0FD\0BD\0PT\0WW\0UL\0IV\0BK\0SX\0SY\0CM\0AN\0LK\0BT\0" - "CB\0MA\0MU\0HX\0HS\0HE\0TR\0SP\0IB\0IT\0IS\0BP\0SO\0HL\0LP\0CC\0HI\0HV\0HC\0ER\0"); + "CB\0MA\0MU\0HX\0TR\0SP\0IB\0IT\0IS\0BP\0SO\0HL\0LP\0CC\0HI\0HV\0HC\0ER\0"); DefineLstLoad("ST_DOC_FLAGS", //flags1 "A\0L\0" @@ -31,8 +31,6 @@ U0 DocInit() DocInit; - - //--TEMPLEOS LINK TYPES-- // "filename" // "FI:filename" diff --git a/TempleOS/Adam/Doc/DocBible.CPP b/TempleOS/Adam/Doc/DocBible.CPP index 34dc4b5..39eb677 100644 --- a/TempleOS/Adam/Doc/DocBible.CPP +++ b/TempleOS/Adam/Doc/DocBible.CPP @@ -18,22 +18,15 @@ DefineLstLoad("ST_BIBLE_BOOKS", "2 Chronicles\0" "Ezra\0" "Nehemiah\0" -"Tobit\0" -"Judith\0" "Esther\0" -"1 Maccabees\0" -"2 Maccabees\0" "Job\0" "Psalms\0" "Proverbs\0" "Ecclesiastes\0" "Song of Songs\0" -"Wisdom\0" -"Sirach\0" "Isaiah\0" "Jeremiah\0" "Lamentations\0" -"Baruch\0" "Ezekiel\0" "Daniel\0" "Hosea\0" @@ -94,22 +87,15 @@ DefineLstLoad("ST_BIBLE_BOOK_LINES", "37633\0" "40756\0" "41671\0" -"Tobit\0" -"Judith\0" "42963\0" -"1 Maccabees\0" -"2 Maccabees\0" "43605\0" "46190\0" "53793\0" "56267\0" "56966\0" -"Wisdom\0" -"Sirach\0" "57332\0" "61806\0" "66736\0" -"Baruch\0" "67217\0" "71804\0" "73189\0" @@ -153,6 +139,23 @@ DefineLstLoad("ST_BIBLE_BOOK_LINES", "98684\0" "\0"); +public U0 PutBibleLines(I64 start,I64 lines) +{ + CDoc *doc=DocRead(Define("ST_BIBLE_FILE"),DOCF_PLAIN_TEXT); + CDocEntry *doc_e; + DocLineNumGoTo(doc,start); //one based + doc_e=doc->cur_entry; + while (lines>0 && doc_e!=doc) { + if (doc_e->type_u8==DOCT_TEXT) + "%s",doc_e->tag; + else if (doc_e->type_u8==DOCT_NEW_LINE) { + NewLine; + lines--; + } + doc_e=doc_e->next; + } + DocDel(doc); +} public U0 PutBibleVerse(U8 *verse,I64 lines) { @@ -166,7 +169,7 @@ public U0 PutBibleVerse(U8 *verse,I64 lines) else *st2=0; - i=DefineMatch(st,"ST_BIBLE_BOOKS",LEF_IGNORE_CASE); + i=DefineMatch(st,"ST_BIBLE_BOOKS",LMF_IGNORE_CASE); if (i>=0) { i=A2I(DefineSub(i,"ST_BIBLE_BOOK_LINES")); doc=DocRead(Define("ST_BIBLE_FILE"),DOCF_PLAIN_TEXT); @@ -176,9 +179,9 @@ public U0 PutBibleVerse(U8 *verse,I64 lines) EdFindNext(doc); } doc_e=doc->cur_entry; - while (lines) { + while (lines>0 && doc_e!=doc) { if (doc_e->type_u8==DOCT_TEXT) - "" doc_e->tag; + "%s",doc_e->tag; else if (doc_e->type_u8==DOCT_NEW_LINE) { NewLine; lines--; diff --git a/TempleOS/Adam/Doc/DocCodeTools.CPP b/TempleOS/Adam/Doc/DocCodeTools.CPP index 5144ca5..39d6bb5 100644 --- a/TempleOS/Adam/Doc/DocCodeTools.CPP +++ b/TempleOS/Adam/Doc/DocCodeTools.CPP @@ -11,7 +11,7 @@ I64 PopUpEdFmt() { I64 i; CDoc *doc=DocNew; - DocPutS(doc,"$$FG,LTBLUE$$$$MU,\"Check Compile\",EF_CHK_COMPILE$$\n" + DocPrint(doc,"$$FG,LTBLUE$$$$MU,\"Check Compile\",EF_CHK_COMPILE$$\n" "$$MU,\"Reindent CPP.Z Fun\",EF_REINDENT$$\n" "$$MU,\"Renum Asm Local @@ Labels for Fun\",EF_RENUM_ASM$$\n" "$$MU,\"Insert Mgd Code: Slider Ctrl\",EF_SLIDER_CTRL$$\n" @@ -332,15 +332,15 @@ U0 EdRenumAsm(CDoc *doc) while (tempr!=&root) { tempr1=tempr->next; num+=ASM_RENUM_SPACING; - SPrintF(buf,"@#%02d",num); + SPrint(buf,"@#%02d",num); EdReplace(doc,tempr->label,buf,TRUE,TRUE,TRUE); Free(tempr); tempr=tempr1; } while (num) { - SPrintF(buf, "@#%02d",num); - SPrintF(buf2,"@@%02d",num); + SPrint(buf, "@#%02d",num); + SPrint(buf2,"@@%02d",num); EdReplace(doc,buf,buf2,TRUE,TRUE,TRUE); num-=ASM_RENUM_SPACING; } @@ -373,7 +373,7 @@ U0 EdCodeTools2(CDoc *doc,I64 tool_action) DocWrite(doc); task=Spawn(&SrvUserCmdLine,NULL,"Srv",,Fs); st2=CurDir; - st=MSPrintF("Cd(\"%s\");",st2); + st=MPrint("Cd(\"%s\");",st2); tempc=TaskExeStrQue(task,Fs,st,1<filename.name); + st=MPrint("\"$$WW,1$$\";ExeFile(\"%s\",TRUE);",doc->filename.name); tempc=TaskExeStrQue(task,Fs,st,1<num=1; switch (type) { case LK_FILE: - if (DocFormDo(el,"CEdFileLink",,,ctrl_L_footer)) { + if (DocFormDo(el,,,,ctrl_L_footer)) { result=TRUE; if (!*el->tag) *_tag=StrNew(el->file); else *_tag=StrNew(el->tag); - *_link=MSPrintF("FI:%s",el->file); + *_link=MPrint("FI:%s",el->file); } break; case LK_PLAIN: - if (DocFormDo(el,"CEdFileLink",,,ctrl_L_footer)) { + if (DocFormDo(el,,,,ctrl_L_footer)) { result=TRUE; if (!*el->tag) *_tag=StrNew(el->file); else *_tag=StrNew(el->tag); - *_link=MSPrintF("PI:%s",el->file); + *_link=MPrint("PI:%s",el->file); } break; case LK_FILE_ANCHOR: @@ -184,7 +184,7 @@ Bool PmtLink(I64 type,U8 **_tag,U8 **_link,Bool *_pop_up,Bool *_quote,U8 **_html *_tag=StrNew(el->aux); else *_tag=StrNew(el->tag); - *_link=MSPrintF("FA:%s,%s",el->file,el->aux); + *_link=MPrint("FA:%s,%s",el->file,el->aux); } break; case LK_FILE_FIND: @@ -195,13 +195,13 @@ Bool PmtLink(I64 type,U8 **_tag,U8 **_link,Bool *_pop_up,Bool *_quote,U8 **_html *_tag=StrNew(el->aux); else *_tag=StrNew(el->tag); - *_link=MSPrintF("FF:%s,%s",el->file,el->aux); + *_link=MPrint("FF:%s,%s",el->file,el->aux); } else { if (!*el->tag) *_tag=StrNew(el->aux); else *_tag=StrNew(el->tag); - *_link=MSPrintF("FF:%s,%s:%d",el->file,el->aux,el->num); + *_link=MPrint("FF:%s,%s:%d",el->file,el->aux,el->num); } } break; @@ -213,13 +213,13 @@ Bool PmtLink(I64 type,U8 **_tag,U8 **_link,Bool *_pop_up,Bool *_quote,U8 **_html *_tag=StrNew(el->aux); else *_tag=StrNew(el->tag); - *_link=MSPrintF("PF:%s,%s",el->file,el->aux); + *_link=MPrint("PF:%s,%s",el->file,el->aux); } else { if (!*el->tag) *_tag=StrNew(el->aux); else *_tag=StrNew(el->tag); - *_link=MSPrintF("PF:%s,%s:%d",el->file,el->aux,el->num); + *_link=MPrint("PF:%s,%s:%d",el->file,el->aux,el->num); } } break; @@ -230,7 +230,7 @@ Bool PmtLink(I64 type,U8 **_tag,U8 **_link,Bool *_pop_up,Bool *_quote,U8 **_html *_tag=StrNew(el->file); else *_tag=StrNew(el->tag); - *_link=MSPrintF("FL:%s,%d",el->file,el->num); + *_link=MPrint("FL:%s,%d",el->file,el->num); } break; case LK_PLAIN_LINE: @@ -240,7 +240,7 @@ Bool PmtLink(I64 type,U8 **_tag,U8 **_link,Bool *_pop_up,Bool *_quote,U8 **_html *_tag=StrNew(el->file); else *_tag=StrNew(el->tag); - *_link=MSPrintF("PL:%s,%d",el->file,el->num); + *_link=MPrint("PL:%s,%d",el->file,el->num); } break; case LK_MAN_PAGE: @@ -250,7 +250,7 @@ Bool PmtLink(I64 type,U8 **_tag,U8 **_link,Bool *_pop_up,Bool *_quote,U8 **_html *_tag=StrNew(el->aux); else *_tag=StrNew(el->tag); - *_link=MSPrintF("MN:%s",el->aux); + *_link=MPrint("MN:%s",el->aux); } break; case LK_PLACE_ANCHOR: @@ -272,10 +272,10 @@ Bool PmtLink(I64 type,U8 **_tag,U8 **_link,Bool *_pop_up,Bool *_quote,U8 **_html if (DocFormDo(el,"CEdBibleLink",,,ctrl_L_footer)) { result=TRUE; if (!*el->tag) - *_tag=MSPrintF("%Z,%s",i,"ST_BIBLE_BOOKS",el->aux); + *_tag=MPrint("%Z,%s",i,"ST_BIBLE_BOOKS",el->aux); else *_tag=StrNew(el->tag); - *_link=MSPrintF("BF:%Z,%s",i,"ST_BIBLE_BOOKS",el->aux); + *_link=MPrint("BF:%Z,%s",i,"ST_BIBLE_BOOKS",el->aux); } } break; @@ -288,9 +288,9 @@ Bool PmtLink(I64 type,U8 **_tag,U8 **_link,Bool *_pop_up,Bool *_quote,U8 **_html else *_tag=StrNew(el->tag); if (el->num<0) - *_link=MSPrintF("DF:%s",el->aux); + *_link=MPrint("DF:%s",el->aux); else - *_link=MSPrintF("DF:%s,%d",el->aux,el->num); + *_link=MPrint("DF:%s,%d",el->aux,el->num); } break; @@ -301,7 +301,7 @@ Bool PmtLink(I64 type,U8 **_tag,U8 **_link,Bool *_pop_up,Bool *_quote,U8 **_html *_tag=StrNew(el->aux); else *_tag=StrNew(el->tag); - *_link=MSPrintF("HI:%s",el->aux); + *_link=MPrint("HI:%s",el->aux); } break; case LK_ADDR: @@ -313,13 +313,13 @@ Bool PmtLink(I64 type,U8 **_tag,U8 **_link,Bool *_pop_up,Bool *_quote,U8 **_html *_tag=StrNew(el->aux); else *_tag=StrNew(el->tag); - *_link=MSPrintF("AD:%s",el->aux); + *_link=MPrint("AD:%s",el->aux); } else { if (!*el->tag) - *_tag=MSPrintF("%s,%d",el->aux,el->num); + *_tag=MPrint("%s,%d",el->aux,el->num); else *_tag=StrNew(el->tag); - *_link=MSPrintF("AD:%s,%d",el->aux,el->num); + *_link=MPrint("AD:%s,%d",el->aux,el->num); } } break; @@ -355,15 +355,15 @@ U0 EdInsLink() switch (type) { case LK_PLACE_ANCHOR: if (html_link) - st=MSPrintF("$$AN+HTML,\"%Q\",\"%Q\",\"%Q\"$$",tag,link,html_link); + st=MPrint("$$AN+HTML,\"%Q\",\"%Q\",\"%Q\"$$",tag,link,html_link); else - st=MSPrintF("$$AN,\"%Q\",\"%Q\"$$",tag,link); + st=MPrint("$$AN,\"%Q\",\"%Q\"$$",tag,link); break; default: if (html_link) - st=MSPrintF("$$LK%s+HTML,\"%Q\",\"%Q\",\"%Q\"$$",pop_up_st,tag,link,html_link); + st=MPrint("$$LK%s+HTML,\"%Q\",\"%Q\",\"%Q\"$$",pop_up_st,tag,link,html_link); else - st=MSPrintF("$$LK%s,\"%Q\",\"%Q\"$$",pop_up_st,tag,link); + st=MPrint("$$LK%s,\"%Q\",\"%Q\"$$",pop_up_st,tag,link); } } } @@ -371,7 +371,7 @@ U0 EdInsLink() if (quote) "%Q",st; else - "" st; + "%s",st; } Free(tag); Free(link); @@ -383,7 +383,7 @@ I64 PopUpColorType() { I64 i; CDoc *doc=DocNew; - DocPrintF(doc,"$$FG,PURPLE$$$$TX+CX,\"Color Type Menu\"$$\n" + DocPrint(doc,"$$FG,PURPLE$$$$TX+CX,\"Color Type Menu\"$$\n" "\n$$FG,LTBLUE$$$$MU,\"Foreground\",DOCT_FOREGROUND$$\n" "$$MU,\"Background\",DOCT_BACKGROUND$$\n" "$$MU,\"Default Foreground\",DOCT_DFT_FOREGROUND$$\n" @@ -398,7 +398,7 @@ I64 PopUpPageSettingType() { I64 i; CDoc *doc=DocNew; - DocPrintF(doc,"$$FG,PURPLE$$$$TX+CX,\"Page Setting Menu\"$$\n" + DocPrint(doc,"$$FG,PURPLE$$$$TX+CX,\"Page Setting Menu\"$$\n" "\n$$FG,LTBLUE$$$$MU,\"Page Length\",DOCT_PAGE_LEN$$\n" "$$MU,\"Page Header\",DOCT_HEADER$$\n" "$$MU,\"Page Footer\",DOCT_FOOTER$$\n" @@ -455,7 +455,7 @@ U0 EdInsPageSetting() CEdPageSetting4 *el4=CAlloc(sizeof(CEdPageSetting4)); if (type>=0) { if (type==DOCT_RIGHT_MARGIN||type==DOCT_PAGE_LEN) { - if (DocFormDo(el2,"CEdPageSetting2")) { + if (DocFormDo(el2)) { if (el2->winrel) { if (*el2->val) "$$%Z+WR,%s$$",type,"ST_DOC_CMDS",el2->val; @@ -470,7 +470,7 @@ U0 EdInsPageSetting() } } else if (type==DOCT_LOCK_TO_PAGE) { el3->lock=TRUE; - if (DocFormDo(el3,"CEdPageSetting3")) { + if (DocFormDo(el3)) { if (el3->lock) "$$%Z,1$$",type,"ST_DOC_CMDS",el->val; else @@ -478,14 +478,14 @@ U0 EdInsPageSetting() } } else if (type==DOCT_LOCK_TO_CENTER) { el4->lock=TRUE; - if (DocFormDo(el4,"CEdPageSetting4")) { + if (DocFormDo(el4)) { if (el4->lock) "$$%Z,1$$",type,"ST_DOC_CMDS",el->val; else "$$%Z,0$$",type,"ST_DOC_CMDS"; } } else { - if (DocFormDo(el,"CEdPageSetting1")) { + if (DocFormDo(el)) { if (*el->val) "$$%Z,%s$$",type,"ST_DOC_CMDS",el->val; else @@ -503,7 +503,7 @@ I64 PopUpDollarType() { I64 i; CDoc *doc=DocNew; - DocPrintF(doc,"$$FG,PURPLE$$$$TX+CX,\"Text Widget Menu\"$$\n" + DocPrint(doc,"$$FG,PURPLE$$$$TX+CX,\"Text Widget Menu\"$$\n" "\n$$FG,LTBLUE$$$$MU,\"Link\",DOCT_LINK$$\n" "$$MU,\"Text\",DOCT_TEXT$$\n" "$$MU,\"Tree Branch\",DOCT_TREE$$\n" @@ -516,7 +516,6 @@ I64 PopUpDollarType() "$$MU,\"Menu Val\",DOCT_MENU_VAL$$\n" "$$MU,\"Data\",DOCT_DATA$$\n" "$$MU,\"Hex Edit\",DOCT_HEX_ED$$\n" - "$$MU,\"Hidden Widget\",DOCT_HIDE_START$$\n" "$$MU,\"Syntax Highlighting\",DOCT_HIGHLIGHT$$\n" "$$MU,\"HTML\",DOCT_HTML_CODE$$\n" "$$MU,\"Song\",DOCT_SONG$$\n" @@ -550,7 +549,7 @@ U0 EdInsDollarText() { U8 *st,buf[136]; CEdDollarText *dt=CAlloc(sizeof(CEdDollarText)); - if (DocFormDo(dt,"CEdDollarText",,,ctrl_L_footer)) { + if (DocFormDo(dt,,,,ctrl_L_footer)) { *buf=0; if (dt->left_x ) StrCat(buf,"+LX"); if (dt->center_x) StrCat(buf,"+CX"); @@ -567,7 +566,7 @@ U0 EdInsDollarText() if (*dt->shift_y) StrCat(buf,"+SY"); if (*dt->define_str) StrCat(buf,"+D"); if (*dt->html_link) StrCat(buf,"+HTML"); - st=MSPrintF("%q",dt->tag); + st=MPrint("%q",dt->tag); "$$TX%s,\"%Q\"",buf,st; Free(st); if (*dt->shift_x) @@ -577,12 +576,12 @@ U0 EdInsDollarText() if (*dt->scroll_x) ",%s",dt->scroll_x; if (*dt->define_str) { - st=MSPrintF("%q",dt->define_str); + st=MPrint("%q",dt->define_str); ",\"%Q\"",st; Free(st); } if (*dt->html_link) { - st=MSPrintF("%q",dt->html_link); + st=MPrint("%q",dt->html_link); ",\"%Q\"",st; Free(st); } @@ -600,7 +599,7 @@ class CEdSong U0 EdInsSong() { CEdSong *dt=CAlloc(sizeof(CEdSong)); - if (DocFormDo(dt,"CEdSong",,,ctrl_L_footer)) + if (DocFormDo(dt,,,,ctrl_L_footer)) "$$SO,\"%Q\",\"%s\"$$",dt->tag,dt->song; Free(dt); } @@ -613,7 +612,7 @@ class CEdHighlight U0 EdInsHighlight() { CEdHighlight *dt=CAlloc(sizeof(CEdHighlight)); - if (DocFormDo(dt,"CEdHighlight",,,ctrl_L_footer)) + if (DocFormDo(dt,,,,ctrl_L_footer)) "$$HL,%d$$",dt->highlight_on; Free(dt); } @@ -626,7 +625,7 @@ I64 PopUpHtmlType() { I64 i; CDoc *doc=DocNew; - DocPutS(doc,"$$FG,LTBLUE$$$$MU,\"Html Code\",HT_CODE$$\n" + DocPrint(doc,"$$FG,LTBLUE$$$$MU,\"Html Code\",HT_CODE$$\n" "$$MU,\"Html Image\",HT_IMAGE$$\n" "$$MU,\"Html Video\",HT_VIDEO$$\n" "\n$$MU,\"Abort\",DOCM_CANCEL$$"); @@ -650,7 +649,7 @@ U0 EdInsHtml() CEdHtmlCode *dt=CAlloc(sizeof(CEdHtmlCode)); switch (PopUpHtmlType) { case HT_CODE: - if (DocFormDo(dt,"CEdHtmlCode",,,ctrl_L_footer)) + if (DocFormDo(dt,,,,ctrl_L_footer)) "$$HC,\"%Q\"$$",dt->tag; break; case HT_IMAGE: @@ -691,7 +690,7 @@ U0 EdInsMacroMenu(Bool is_macro) CEdMacroMenu *dt=CAlloc(sizeof(CEdMacroMenu)); dt->underline=TRUE; dt->escape=TRUE; - if (DocFormDo(dt,"CEdMacroMenu",,,ctrl_L_footer)) { + if (DocFormDo(dt,,,,ctrl_L_footer)) { *buf=0; if (is_macro && *dt->tag) StrCat(buf,"+A "); if (dt->popup) StrCat(buf,"+PU-X"); @@ -717,20 +716,20 @@ U0 EdInsMacroMenu(Bool is_macro) if (*dt->tag || is_macro) { if (is_macro) { if (*dt->tag) { - st=MSPrintF("%q",dt->tag); + st=MPrint("%q",dt->tag); "$$MA%s,\"%Q\"",buf,st; Free(st); } else "$$MA%s,",buf; } else { - st=MSPrintF("%q",dt->tag); + st=MPrint("%q",dt->tag); "$$MU%s,\"%Q\"",buf,st; Free(st); } if (*dt->left_exp) ",%s",dt->left_exp; if (*dt->left_macro) { - st=MSPrintF("%q",dt->left_macro); + st=MPrint("%q",dt->left_macro); ",\"%Q\"",st; Free(st); } @@ -766,7 +765,7 @@ U0 EdInsButton() U8 *st,buf[136]; CEdButton *dt=CAlloc(sizeof(CEdButton)); dt->escape=TRUE; - if (DocFormDo(dt,"CEdButton",,,ctrl_L_footer)) { + if (DocFormDo(dt,,,,ctrl_L_footer)) { *buf=0; if (dt->popup) StrCat(buf,"+PU-X"); if (dt->left_x ) StrCat(buf,"+LX"); @@ -779,25 +778,25 @@ U0 EdInsButton() if (dt->left_is_auto) StrCat(buf,"+LA"); if (*dt->tag) { if (dt->quote) { - st=MSPrintF("%q",dt->tag); + st=MPrint("%q",dt->tag); "$$$$BT%s,\\\"%Q\\\"",buf,st; Free(st); if (*dt->left_exp) ",%s",dt->left_exp; if (*dt->left_macro) { - st=MSPrintF("%q",dt->left_macro); + st=MPrint("%q",dt->left_macro); ",\\\"%Q\\\"",st; Free(st); } "$$$$"; } else { - st=MSPrintF("%q",dt->tag); + st=MPrint("%q",dt->tag); "$$BT%s,\"%Q\"",buf,st; Free(st); if (*dt->left_exp) ",%s",dt->left_exp; if (*dt->left_macro) { - st=MSPrintF("%q",dt->left_macro); + st=MPrint("%q",dt->left_macro); ",\"%Q\"",st; Free(st); } @@ -828,7 +827,7 @@ U0 EdInsCursorMovement() { U8 buf[136]; CEdCursorMovement *dt=CAlloc(sizeof(CEdCursorMovement)); - if (DocFormDo(dt,"CEdCursorMovement",,,ctrl_L_footer)) { + if (DocFormDo(dt,,,,ctrl_L_footer)) { *buf=0; if (dt->left_x ) StrCat(buf,"+LX"); if (dt->center_x) StrCat(buf,"+CX"); @@ -875,7 +874,7 @@ U0 EdInsData() dt->term=TRUE; dt->len=256; dt->u64=TRUE; - if (DocFormDo(dt,"CEdData",,,ctrl_L_footer)) { + if (DocFormDo(dt,,,,ctrl_L_footer)) { *buf=0; if (dt->str) StrCat(buf,"-P"); if (!dt->term) StrCat(buf,"-T"); @@ -886,7 +885,7 @@ U0 EdInsData() else if (dt->u16) StrCat(buf,"-U64+U16"); else if (dt->u32) StrCat(buf,"-U64+U32"); - st=MSPrintF("%q",dt->fmt_str); + st=MPrint("%q",dt->fmt_str); "$$$$DA%s,%d,\\\"%Q\\\"$$$$",buf,dt->len,st; Free(st); } @@ -903,10 +902,10 @@ U0 EdInsCheckBox() { U8 *st,buf[136]; CEdCheckBox *dt=CAlloc(sizeof(CEdCheckBox)); - if (DocFormDo(dt,"CEdCheckBox",,,ctrl_L_footer)) { + if (DocFormDo(dt,,,,ctrl_L_footer)) { *buf=0; if (dt->refresh) StrCat(buf,"+RD"); - st=MSPrintF("%q",dt->label); + st=MPrint("%q",dt->label); "$$$$CB%s,\\\"%Q\\\"$$$$",buf,st; Free(st); } @@ -928,7 +927,7 @@ U0 EdInsHexEd() dt->cnt=128; dt->cols=4; dt->zero=TRUE; - if (DocFormDo(dt,"CEdHexEd",,,ctrl_L_footer)) { + if (DocFormDo(dt,,,,ctrl_L_footer)) { *buf=0; if (!dt->zero) StrCat(buf,"-Z"); if (dt->refresh) StrCat(buf,"+RD"); @@ -950,10 +949,10 @@ class CEdBinary U0 EdInsBinary(I64 bin_num,I64 type) { CEdBinary *dt=CAlloc(sizeof(CEdBinary)); - SPrintF(dt->tag,"<%d>",bin_num); + SPrint(dt->tag,"<%d>",bin_num); dt->bin_num=bin_num; dt->bin_ptr_link_bin_num=1; - if (DocFormDo(dt,"CEdBinary",, + if (DocFormDo(dt,,, "Note: Normally, you enter no file,\n" "just a bin num. If You enter a\n" "file, enter a file bin num or a file\n" @@ -988,11 +987,11 @@ U0 EdInsTree() CEdTree *dt=CAlloc(sizeof(CEdTree)); dt->collapsed=TRUE; dt->indent=2; - if (DocFormDo(dt,"CEdTree",,,ctrl_L_footer)) { + if (DocFormDo(dt,,,,ctrl_L_footer)) { *buf=0; if (!dt->collapsed) StrCat(buf,"-C"); - st=MSPrintF("%q",dt->label); - st2=MSPrintF("$$TR%s,\"%Q\"$$\n$$ID,%d$$*\n$$ID,%d$$", + st=MPrint("%q",dt->label); + st2=MPrint("$$TR%s,\"%Q\"$$\n$$ID,%d$$*\n$$ID,%d$$", buf,st,dt->indent,-dt->indent); DocInsSafe(DocPut,st2); Free(st); @@ -1001,11 +1000,6 @@ U0 EdInsTree() Free(dt); } -U0 EdInsHidden() -{ - DocInsSafe(DocPut,"$$HS$$*$$HE$$"); -} - U0 EdInsDollarCmd() { I64 type=PopUpDollarType; @@ -1046,9 +1040,6 @@ U0 EdInsDollarCmd() case DOCT_HEX_ED: EdInsHexEd; break; - case DOCT_HIDE_START: - EdInsHidden; - break; case DOCT_SONG: EdInsSong; break; @@ -1073,7 +1064,7 @@ I64 PopUpSpriteType() { I64 i; CDoc *doc=DocNew; - DocPutS(doc,"$$FG,PURPLE$$$$TX+CX,\"Graphic Resource Menu\"$$\n" + DocPrint(doc,"$$FG,PURPLE$$$$TX+CX,\"Graphic Resource Menu\"$$\n" "$$LK+PU+CX,\"Click for Help\",\"FI:::/TempleOS/Doc/Resource.TXT.Z\"$$\n" "\n$$FG,LTBLUE$$$$MU,\"Make Sprite\",PT_SPRITE$$\n" "$$MU,\"Pointer to Sprite\",PT_SPRITE_PTR$$\n" @@ -1117,7 +1108,7 @@ U8 *EdSpriteLink(Bool *_pop_up,U8 **_html_link) I64 type=PopUpLinkType(FALSE); *_html_link=NULL; if (type>=0 && PmtLink(type,&tag,&link,_pop_up,"e,_html_link)) - result=MSPrintF("\"%Q\",\"%Q\"",tag,link); + result=MPrint("\"%Q\",\"%Q\"",tag,link); Free(tag); Free(link); return result; @@ -1132,19 +1123,19 @@ U8 *EdSprite(I64 bin_num) *buf=0; switch (type) { case PT_SPRITE: - SPrintF(dt->tag,"<%d>",bin_num); + SPrint(dt->tag,"<%d>",bin_num); if (DocFormDo(dt,"CEdJustSprite",,,ctrl_L_footer)) - st1=MSPrintF("\"%Q\"",dt->tag); + st1=MPrint("\"%Q\"",dt->tag); break; case PT_SPRITE_MACRO: dt->escape=TRUE; - if (DocFormDo(dt,"CEdMacroSprite",,,ctrl_L_footer)) { + if (DocFormDo(dt,,,,ctrl_L_footer)) { StrCat(buf,"+LM+UL"); if (dt->is_auto)StrCat(buf,"+LA"); if (dt->popup) StrCat(buf,"+PU"); if (dt->escape) StrCat(buf,"+X"); - st=MSPrintF("%q",dt->exp); - st1=MSPrintF("\"%Q\",\"%Q\"",dt->tag,st); + st=MPrint("%q",dt->exp); + st1=MPrint("\"%Q\",\"%Q\"",dt->tag,st); Free(st); } break; @@ -1153,7 +1144,7 @@ U8 *EdSprite(I64 bin_num) if (DocFormDo(dt,"CEdMenuSprite",,,ctrl_L_footer)) { StrCat(buf,"+LE"); if (dt->escape) StrCat(buf,"+X"); - st1=MSPrintF("\"%Q\",%s",dt->tag,dt->exp); + st1=MPrint("\"%Q\",%s",dt->tag,dt->exp); } break; case PT_SPRITE_LINK: @@ -1178,9 +1169,9 @@ U8 *EdSprite(I64 bin_num) if (st1) { if (html_link) { StrCat(buf,"+HTML"); - st2=MSPrintF("$$SP%s,%s,\"%Q\",%d$$",buf,st1,html_link,bin_num); + st2=MPrint("$$SP%s,%s,\"%Q\",%d$$",buf,st1,html_link,bin_num); } else - st2=MSPrintF("$$SP%s,%s,%d$$",buf,st1,bin_num); + st2=MPrint("$$SP%s,%s,%d$$",buf,st1,bin_num); Free(st1); } Free(dt); diff --git a/TempleOS/Adam/Doc/DocEd.CPP b/TempleOS/Adam/Doc/DocEd.CPP index dc5325c..861f1ba 100644 --- a/TempleOS/Adam/Doc/DocEd.CPP +++ b/TempleOS/Adam/Doc/DocEd.CPP @@ -37,17 +37,16 @@ public Bool DocPatternFind(CDoc *doc,I64 start_line_num=MIN_I64, if (pattern) { result=FALSE; while (doc_e!=doc) { - if (Bt(doc_tag_types,doc_e->type_u8)) { - if (ptr=StrIStr(doc_e->tag,pattern)) { //TODO: handle multientry strings - i=ptr-doc_e->tag; - if (!--match) { - doc->cur_entry=doc_e; - if (imin_col) i=doc_e->min_col; - if (i>doc_e->max_col) i=doc_e->max_col; - doc->cur_data_col=i; - result=TRUE; - break; - } + if (Bt(doc_tag_types,doc_e->type_u8) && + (ptr=StrIMatch(pattern,doc_e->tag))) { //TODO: handle multientry strings + i=ptr-doc_e->tag; + if (!--match) { + doc->cur_entry=doc_e; + if (imin_col) i=doc_e->min_col; + if (i>doc_e->max_col) i=doc_e->max_col; + doc->cur_data_col=i; + result=TRUE; + break; } } doc_e=doc_e->next; @@ -112,7 +111,7 @@ public U0 EdCursorLeft(CDoc *doc,I64 sc=MIN_I64) //See $LK,"EdRenumAsm","MN:EdRenumAsm"$ for an example. U8 *dst; Bool unlock=DocLock(doc); - CDocEntry *doc_ce=doc->cur_entry,*original_cl=doc_ce,*doc_ne; + CDocEntry *doc_ce=doc->cur_entry,*original_ce=doc_ce,*doc_ne; I64 cc=doc->cur_data_col,y=doc_ce->y; if (sc!=MIN_I64) sc=sc.u32[0]; if (sc>=0 && sc&SCF_CTRL) { @@ -122,82 +121,41 @@ public U0 EdCursorLeft(CDoc *doc,I64 sc=MIN_I64) cc=doc_ce->min_col; } else { if (cc>doc_ce->min_col) { - if (doc_ce->type_u8==DOCT_TEXT && - !(doc_ce->flags1&DOCEG1_DONT_EDIT) && - !(doc_ce->flags2&DOCEG2_DONT_EDIT) && - ccmax_col) { - doc_ne=CAlloc(sizeof(CDocEntryBase),doc->mem_task); - doc_ne->type=doc_ce->type; - doc_ne->flags1=doc_ce->flags1; - doc_ne->flags2=doc_ce->flags2; + if (IsEditableText(doc_ce) && ccmax_col) { dst=doc_ce->tag+cc; - doc_ne->tag=StrNew(dst,doc->mem_task); - doc_ne->max_col=StrLen(dst); - doc_ne->x=doc_ce->x; - doc_ne->y=doc_ce->y; - doc_ne->page_line_num=doc_ce->page_line_num; + doc_ne=DocEntryNew(doc,doc_ce,StrNew(dst,doc->mem_task)); *dst=0; doc_ce->max_col=cc; QueIns(doc_ne,doc_ce); } cc--; - if (doc_ce->type_u8==DOCT_TEXT&& - !(doc_ce->flags1&DOCEG1_DONT_EDIT) && - !(doc_ce->flags2&DOCEG2_DONT_EDIT) && - cc>doc_ce->min_col) { - doc_ne=CAlloc(sizeof(CDocEntryBase),doc->mem_task); - doc_ne->type=doc_ce->type; - doc_ne->flags1=doc_ce->flags1; - doc_ne->flags2=doc_ce->flags2; + if (IsEditableText(doc_ce) && cc>doc_ce->min_col) { dst=doc_ce->tag+cc; - doc_ne->tag=StrNew(dst,doc->mem_task); - doc_ne->max_col=StrLen(dst); - doc_ne->x=doc_ce->x; - doc_ne->y=doc_ce->y; - doc_ne->page_line_num=doc_ce->page_line_num; + doc_ne=DocEntryNew(doc,doc_ce,StrNew(dst,doc->mem_task)); *dst=0; doc_ce->max_col=cc; QueIns(doc_ne,doc_ce); doc_ce=doc_ne; cc=doc_ce->min_col; } - if (sc>=0) { - if (sc&SCF_SHIFT) - doc_ce->type|=DOCET_SELECTED; - else - doc_ce->type&=~DOCET_SELECTED; - } + if (sc>=0) + BEqu(&doc_ce->type,DOCEt_SELECTED,sc&SCF_SHIFT); } else { cc=doc_ce->min_col; while (doc_ce->last!=doc && (doc_ce->last->type_u8==DOCT_SOFT_NEW_LINE || doc_ce->last->type_u8==DOCT_INDENT || doc_ce->last->flags1 & (DOCEF1_SKIP|DOCEF1_HARD_SKIP|DOCEF1_FILTER_SKIP))) { doc_ce=doc_ce->last; - if (sc>=0) { - if (sc&SCF_SHIFT) - doc_ce->type|=DOCET_SELECTED; - else - doc_ce->type&=~DOCET_SELECTED; - } + if (sc>=0) + BEqu(&doc_ce->type,DOCEt_SELECTED,sc&SCF_SHIFT); } if (doc_ce->last!=doc) { doc_ce=doc_ce->last; if (doc_ce->max_col>doc_ce->min_col) { cc=doc_ce->max_col-1; - if (doc_ce->type_u8==DOCT_TEXT && - !(doc_ce->flags1&DOCEG1_DONT_EDIT) && - !(doc_ce->flags2&DOCEG2_DONT_EDIT) && - cc>doc_ce->min_col) { - doc_ne=CAlloc(sizeof(CDocEntryBase),doc->mem_task); - doc_ne->type=doc_ce->type; - doc_ne->flags1=doc_ce->flags1; - doc_ne->flags2=doc_ce->flags2; + if (IsEditableText(doc_ce) && cc>doc_ce->min_col) { dst=doc_ce->tag+cc; - doc_ne->tag=StrNew(dst,doc->mem_task); - doc_ne->max_col=StrLen(dst); - doc_ne->x=doc_ce->x; - doc_ne->y=doc_ce->y; - doc_ne->page_line_num=doc_ce->page_line_num; + doc_ne=DocEntryNew(doc,doc_ce,StrNew(dst,doc->mem_task)); *dst=0; doc_ce->max_col=cc; QueIns(doc_ne,doc_ce); @@ -206,18 +164,14 @@ public U0 EdCursorLeft(CDoc *doc,I64 sc=MIN_I64) } } else cc=doc_ce->max_col; - if (sc>=0) { - if (sc&SCF_SHIFT) - doc_ce->type|=DOCET_SELECTED; - else - doc_ce->type&=~DOCET_SELECTED; - } + if (sc>=0) + BEqu(&doc_ce->type,DOCEt_SELECTED,sc&SCF_SHIFT); } } } doc->cur_data_col=cc; doc->cur_entry=doc_ce; - if (doc_ce!=original_cl) + if (doc_ce!=original_ce) DocFormBackward(doc); doc->recalc_start=doc->cur_entry->last; if (unlock) @@ -229,7 +183,7 @@ public U0 EdCursorRight(CDoc *doc,I64 sc=MIN_I64) //See $LK,"EdRenumAsm","MN:EdRenumAsm"$ for an example. Bool unlock=DocLock(doc); U8 *dst; - CDocEntry *doc_ce=doc->cur_entry,*original_cl=doc_ce,*doc_ne; + CDocEntry *doc_ce=doc->cur_entry,*original_ce=doc_ce,*doc_ne; I64 cc=doc->cur_data_col,y=doc_ce->y,old_flags1,old_flags2,old_color; doc->recalc_start=doc_ce->last; if (sc!=MIN_I64) sc=sc.u32[0]; @@ -244,20 +198,9 @@ public U0 EdCursorRight(CDoc *doc,I64 sc=MIN_I64) cc=doc_ce->min_col; } else { if (ccmax_col) { - if (doc_ce->type_u8==DOCT_TEXT&& - !(doc_ce->flags1&DOCEG1_DONT_EDIT) && - !(doc_ce->flags2&DOCEG2_DONT_EDIT) && - cc>doc_ce->min_col) { - doc_ne=CAlloc(sizeof(CDocEntryBase),doc->mem_task); - doc_ne->type=doc_ce->type; - doc_ne->flags1=doc_ce->flags1; - doc_ne->flags2=doc_ce->flags2; - doc_ne->x=doc_ce->x; - doc_ne->y=doc_ce->y; - doc_ne->page_line_num=doc_ce->page_line_num; + if (IsEditableText(doc_ce) && cc>doc_ce->min_col) { dst=doc_ce->tag+cc; - doc_ne->tag=StrNew(dst,doc->mem_task); - doc_ne->max_col=StrLen(dst); + doc_ne=DocEntryNew(doc,doc_ce,StrNew(dst,doc->mem_task)); *dst=0; doc_ce->max_col=cc; QueIns(doc_ne,doc_ce); @@ -268,28 +211,16 @@ public U0 EdCursorRight(CDoc *doc,I64 sc=MIN_I64) old_flags1=doc_ce->flags1; old_flags2=doc_ce->flags2; old_color=doc_ce->type; - if (sc>=0) { - if (sc&SCF_SHIFT) - doc_ce->type|=DOCET_SELECTED; - else - doc_ce->type&=~DOCET_SELECTED; - } - if (doc_ce->type_u8==DOCT_TEXT&& - !(doc_ce->flags1&DOCEG1_DONT_EDIT) && - !(doc_ce->flags2&DOCEG2_DONT_EDIT) && - ccmax_col) { - doc_ne=CAlloc(sizeof(CDocEntryBase),doc->mem_task); + if (sc>=0) + BEqu(&doc_ce->type,DOCEt_SELECTED,sc&SCF_SHIFT); + if (IsEditableText(doc_ce) && ccmax_col) { + dst=doc_ce->tag+cc; + doc_ne=DocEntryNew(doc,doc_ce,StrNew(dst,doc->mem_task)); + *dst=0; doc_ne->type=DOCT_TEXT | old_color & -0x100; doc_ne->flags1=old_flags1; doc_ne->flags2=old_flags2; - dst=doc_ce->tag+cc; - doc_ne->tag=StrNew(dst,doc->mem_task); - doc_ne->max_col=StrLen(dst); doc_ce->max_col=cc; - *dst=0; - doc_ne->x=doc_ce->x; - doc_ne->y=doc_ce->y; - doc_ne->page_line_num=doc_ce->page_line_num; QueIns(doc_ne,doc_ce); doc_ce=doc_ne; cc=doc_ce->min_col; @@ -299,30 +230,18 @@ public U0 EdCursorRight(CDoc *doc,I64 sc=MIN_I64) } } else { if (doc_ce!=doc) { - if (cc<=doc_ce->min_col && sc>=0) { - if (sc&SCF_SHIFT) - doc_ce->type|=DOCET_SELECTED; - else - doc_ce->type&=~DOCET_SELECTED; - } + if (cc<=doc_ce->min_col && sc>=0) + BEqu(&doc_ce->type,DOCEt_SELECTED,sc&SCF_SHIFT); doc_ce=doc_ce->next; while (doc_ce!=doc && doc_ce->flags1 & (DOCEF1_SKIP|DOCEF1_HARD_SKIP|DOCEF1_FILTER_SKIP)) { - if (sc>=0) { - if (sc&SCF_SHIFT) - doc_ce->type|=DOCET_SELECTED; - else - doc_ce->type&=~DOCET_SELECTED; - } + if (sc>=0) + BEqu(&doc_ce->type,DOCEt_SELECTED,sc&SCF_SHIFT); doc_ce=doc_ce->next; } cc=doc_ce->min_col; if (doc_ce->type_u8==DOCT_SOFT_NEW_LINE) { - if (sc>=0) { - if (sc&SCF_SHIFT) - doc_ce->type|=DOCET_SELECTED; - else - doc_ce->type&=~DOCET_SELECTED; - } + if (sc>=0) + BEqu(&doc_ce->type,DOCEt_SELECTED,sc&SCF_SHIFT); doc_ce=doc_ce->next; cc=doc_ce->min_col; } @@ -331,7 +250,7 @@ public U0 EdCursorRight(CDoc *doc,I64 sc=MIN_I64) } doc->cur_data_col=cc; doc->cur_entry=doc_ce; - if (doc_ce!=original_cl) + if (doc_ce!=original_ce) DocFormFwd(doc); if (unlock) DocUnlock(doc); @@ -356,21 +275,12 @@ public U0 EdLineUp(CDoc *doc,I64 sc=MIN_I64) doc->cur_data_col=0; } x=doc->x; y=doc->y; - if (doc_ce->type_u8==DOCT_TEXT && - !(doc_ce->flags1&DOCEG1_DONT_EDIT) && - !(doc_ce->flags2&DOCEG2_DONT_EDIT)) { + if (IsEditableText(doc_ce)) { if (doc_ce->min_colcur_data_colmax_col-1) { - doc_ne=CAlloc(sizeof(CDocEntryBase),doc->mem_task); - doc_ne->type=doc_ce->type; - doc_ne->flags1=doc_ce->flags1; - doc_ne->flags2=doc_ce->flags2; dst=doc_ce->tag+doc->cur_data_col; - doc_ne->tag=StrNew(dst,doc->mem_task); - doc_ne->max_col=StrLen(dst); - doc_ne->y=doc_ce->y; - doc_ne->x=doc_ce->x+doc->cur_data_col; - doc_ne->page_line_num=doc_ce->page_line_num; + doc_ne=DocEntryNew(doc,doc_ce,StrNew(dst,doc->mem_task)); *dst=0; + doc_ne->x=doc_ce->x+doc->cur_data_col; doc_ce->max_col=doc->cur_data_col; QueIns(doc_ne,doc_ce); } else @@ -379,48 +289,30 @@ public U0 EdLineUp(CDoc *doc,I64 sc=MIN_I64) } else if (doc_ce->last!=doc) doc_ce=doc_ce->last; - if (sc>=0) { - if (sc&SCF_SHIFT) - doc_ce->type|=DOCET_SELECTED; - else - doc_ce->type&=~DOCET_SELECTED; - } + if (sc>=0) + BEqu(&doc_ce->type,DOCEt_SELECTED,sc&SCF_SHIFT); doc->cur_entry=doc_ce; DocFormBackward(doc); doc_ce=doc->cur_entry; while (doc_ce->last!=doc && (doc_ce->y>=y || doc_ce->flags1 & (DOCEF1_SKIP|DOCEF1_HARD_SKIP|DOCEF1_FILTER_SKIP))) { doc_ce=doc_ce->last; - if (sc>=0) { - if (sc&SCF_SHIFT) - doc_ce->type|=DOCET_SELECTED; - else - doc_ce->type&=~DOCET_SELECTED; - } + if (sc>=0) + BEqu(&doc_ce->type,DOCEt_SELECTED,sc&SCF_SHIFT); } y=doc_ce->y; doc->y=y; while (doc_ce!=doc && (doc_ce->y>=y && doc_ce->x>=x || doc_ce->flags1 & (DOCEF1_SKIP|DOCEF1_HARD_SKIP|DOCEF1_FILTER_SKIP))) { - if (sc>=0) { - if (sc&SCF_SHIFT) - doc_ce->type|=DOCET_SELECTED; - else - doc_ce->type&=~DOCET_SELECTED; - } + if (sc>=0) + BEqu(&doc_ce->type,DOCEt_SELECTED,sc&SCF_SHIFT); doc_ce=doc_ce->last; } if (doc_ce==doc || doc_ce->ynext; else { - if (doc_ce->type_u8!=DOCT_TEXT|| - doc_ce->flags1&DOCEG1_DONT_EDIT || - doc_ce->flags2&DOCEG2_DONT_EDIT) { - if (sc>=0) { - if (sc&SCF_SHIFT) - doc_ce->type|=DOCET_SELECTED; - else - doc_ce->type&=~DOCET_SELECTED; - } + if (!IsEditableText(doc_ce)) { + if (sc>=0) + BEqu(&doc_ce->type,DOCEt_SELECTED,sc&SCF_SHIFT); } else { if (doc_ce->next->x==x) { doc_ce=doc_ce->next; @@ -435,9 +327,7 @@ public U0 EdLineUp(CDoc *doc,I64 sc=MIN_I64) } if (Bt(doc_tag_types,doc_ce->type_u8)) { doc->cur_data_col=x-doc_ce->x; - if (doc_ce->type_u8==DOCT_TEXT&& - !(doc_ce->flags1&DOCEG1_DONT_EDIT) && - !(doc_ce->flags2&DOCEG2_DONT_EDIT)) { + if (IsEditableText(doc_ce)) { if (doc->cur_data_col>doc_ce->max_col) doc->cur_data_col=doc_ce->max_col; } else { @@ -454,27 +344,18 @@ public U0 EdLineUp(CDoc *doc,I64 sc=MIN_I64) } else doc->cur_data_col=doc_ce->min_col; } - if (doc_ce->type_u8==DOCT_TEXT && - !(doc_ce->flags1&DOCEG1_DONT_EDIT) && - !(doc_ce->flags2&DOCEG2_DONT_EDIT) && doc_ce->xxcur_data_colmax_col-1) { - doc_ne=CAlloc(sizeof(CDocEntryBase),doc->mem_task); - doc_ne->type=doc_ce->type; - doc_ne->flags1=doc_ce->flags1; - doc_ne->flags2=doc_ce->flags2; + dst=doc_ce->tag+doc->cur_data_col; + doc_ne=DocEntryNew(doc,doc_ce,StrNew(dst,doc->mem_task)); + *dst=0; if (sc>=0) { if (sc&SCF_SHIFT) doc_ne->type=doc_ce->type | DOCET_SELECTED; else doc_ne->type=doc_ce->type & ~DOCET_SELECTED; } - dst=doc_ce->tag+doc->cur_data_col; - doc_ne->tag=StrNew(dst,doc->mem_task); - doc_ne->max_col=StrLen(dst); - doc_ne->page_line_num=doc_ce->page_line_num; - doc_ne->y=doc_ce->y; doc_ne->x=doc_ce->x+doc->cur_data_col; - *dst=0; doc_ce->max_col=doc->cur_data_col; QueIns(doc_ne,doc_ce); doc_ce=doc_ne; @@ -511,27 +392,18 @@ public U0 EdLineDown(CDoc *doc,I64 sc=MIN_I64) } doc->recalc_start=doc_ce->last; x=doc->x; y=doc->y; - if (doc_ce->type_u8==DOCT_TEXT && - !(doc_ce->flags1&DOCEG1_DONT_EDIT)&& - !(doc_ce->flags2&DOCEG2_DONT_EDIT)) { + if (IsEditableText(doc_ce)) { if (doc->cur_data_col>doc_ce->min_col && doc->cur_data_colmax_col-1) { - doc_ne=CAlloc(sizeof(CDocEntryBase),doc->mem_task); - doc_ne->type=doc_ce->type; - doc_ne->flags1=doc_ce->flags1; - doc_ne->flags2=doc_ce->flags2; + dst=doc_ce->tag+doc->cur_data_col; + doc_ne=DocEntryNew(doc,doc_ce,StrNew(dst,doc->mem_task)); + *dst=0; if (sc>=0) { if (sc&SCF_SHIFT) doc_ne->type=doc_ce->type | DOCET_SELECTED; else doc_ne->type=doc_ce->type & ~DOCET_SELECTED; } - dst=doc_ce->tag+doc->cur_data_col; - doc_ne->tag=StrNew(dst,doc->mem_task); - doc_ne->max_col=StrLen(dst); - doc_ne->page_line_num=doc_ce->page_line_num; - doc_ne->y=doc_ce->y; doc_ne->x=doc_ce->x+doc->cur_data_col; - *dst=0; doc_ce->max_col=doc->cur_data_col; QueIns(doc_ne,doc_ce); doc_ce=doc_ne; @@ -557,27 +429,19 @@ public U0 EdLineDown(CDoc *doc,I64 sc=MIN_I64) DocFormBackward(doc); doc_ce=doc->cur_entry; } - while (doc_ce2!=doc && (doc_ce2!=doc_ce || doc_ce->type_u8==DOCT_TEXT && - !(doc_ce->flags1&DOCEG1_DONT_EDIT) && - !(doc_ce->flags2&DOCEG2_DONT_EDIT))) { + while (doc_ce2!=doc && (doc_ce2!=doc_ce || IsEditableText(doc_ce))) { if (doc_ce2->yxflags1 & (DOCEF1_SKIP|DOCEF1_HARD_SKIP|DOCEF1_FILTER_SKIP) || doc_ce2->x==x && !doc_ce2->max_col && Bt(doc_nontag_invisible_types,doc_ce2->type_u8)) { - if (sc>=0) { - if (sc&SCF_SHIFT) - doc_ce2->type|=DOCET_SELECTED; - else - doc_ce2->type&=~DOCET_SELECTED; - } + if (sc>=0) + BEqu(&doc_ce2->type,DOCEt_SELECTED,sc&SCF_SHIFT); } if (doc_ce2==doc_ce) break; doc_ce2=doc_ce2->next; } if (Bt(doc_tag_types,doc_ce->type_u8)) { doc->cur_data_col=x-doc_ce->x; - if (doc_ce->type_u8==DOCT_TEXT&& - !(doc_ce->flags1&DOCEG1_DONT_EDIT) && - !(doc_ce->flags2&DOCEG2_DONT_EDIT)) { + if (IsEditableText(doc_ce)) { if (doc->cur_data_col>doc_ce->max_col) doc->cur_data_col=doc_ce->max_col; } else { @@ -588,21 +452,15 @@ public U0 EdLineDown(CDoc *doc,I64 sc=MIN_I64) doc->cur_data_col=doc_ce->min_col; } else doc->cur_data_col=doc_ce->min_col; - if (doc_ce->type_u8==DOCT_TEXT&& - !(doc_ce->flags1&DOCEG1_DONT_EDIT) && - !(doc_ce->flags2&DOCEG2_DONT_EDIT)) { + if (IsEditableText(doc_ce)) { if (doc_ce->min_colcur_data_colmax_col-1) { - doc_ne=CAlloc(sizeof(CDocEntryBase),doc->mem_task); + dst=doc_ce->tag+doc->cur_data_col; + doc_ne=DocEntryNew(doc,doc_ce,StrNew(dst,doc->mem_task)); + *dst=0; doc_ne->type=DOCT_TEXT | old_color & -0x100; doc_ne->flags1=old_flags1; doc_ne->flags2=old_flags2; - dst=doc_ce->tag+doc->cur_data_col; - doc_ne->tag=StrNew(dst,doc->mem_task); - doc_ne->max_col=StrLen(dst); - *dst=0; doc_ce->max_col=doc->cur_data_col; - doc_ne->y=doc_ce->y; - doc_ne->page_line_num=doc_ce->page_line_num; doc_ne->x=doc_ce->x+doc->cur_data_col; QueIns(doc_ne,doc_ce); doc_ce=doc_ne; @@ -613,12 +471,8 @@ public U0 EdLineDown(CDoc *doc,I64 sc=MIN_I64) DocFormFwd(doc); if (!(doc->flags & DOCF_FORM)) while (doc_ce!=doc && doc_ce!=doc->cur_entry) { - if (sc>=0) { - if (sc&SCF_SHIFT) - doc_ce->type|=DOCET_SELECTED; - else - doc_ce->type&=~DOCET_SELECTED; - } + if (sc>=0) + BEqu(&doc_ce->type,DOCEt_SELECTED,sc&SCF_SHIFT); doc_ce=doc_ce->next; } doc->x=doc->cur_entry->x+doc->cur_data_col; @@ -637,9 +491,7 @@ U0 EdDelChar(CDoc *doc) return; } else doc->recalc_start=doc_ce->last; - if (doc_ce->max_col!=0 && (doc_ce->type_u8==DOCT_TEXT&& - !(doc_ce->flags1&DOCEG1_DONT_EDIT) && - !(doc_ce->flags2&DOCEG2_DONT_EDIT)|| doc_ce->type_u8==DOCT_DATA)) { + if (doc_ce->max_col!=0 && (IsEditableText(doc_ce)||doc_ce->type_u8==DOCT_DATA)) { if (doc_ce->type_u8==DOCT_DATA) { if (doc_ce->flags1 & DOCEF1_HAS_TERMINATOR && doc->cur_data_col==doc_ce->max_col-1) { if (unlock) @@ -703,7 +555,7 @@ U0 EdInsChar(I64 ch,I64 sc,CDoc *doc) goto ic_cont; } else { doc->dollar_buf[doc->dollar_buf_ptr]=0; - DocPutS(doc,doc->dollar_buf); + DocPrint(doc,doc->dollar_buf); doc->flags&=~DOCF_IN_DOLLAR; doc->dollar_buf_ptr=0; goto ic_done; @@ -761,9 +613,7 @@ ic_cont: if (doc->flags & DOCF_OVERSTRIKE) { if (Bt(displayable_chars_bitmap,ch)) { ic_overstrike_char: - if (doc_ce->type_u8==DOCT_TEXT&& - !(doc_ce->flags1&DOCEG1_DONT_EDIT) && - !(doc_ce->flags2&DOCEG2_DONT_EDIT)) { + if (IsEditableText(doc_ce)) { if (doc->cur_data_colmax_col) { if (doc_ce->tag[doc->cur_data_col]) { doc_ce->tag[doc->cur_data_col++]=ch; @@ -794,13 +644,10 @@ ic_overstrike_char: b=MAlloc(2,doc->mem_task); *b=ch; b[1]=0; - doc_ne=CAlloc(sizeof(CDocEntryBase),doc->mem_task); + doc_ne=DocEntryNew(doc,doc_ce,b); doc_ne->type=DOCT_TEXT | doc->settings_root.dft_text_attr << 8; - doc_ne->tag=b; - doc_ne->max_col=1; - doc_ne->x=doc_ce->x; - doc_ne->y=doc_ce->y; - doc_ne->page_line_num=doc_ce->page_line_num; + doc_ne->flags1=0; + doc_ne->flags2=0; QueIns(doc_ne,doc_ce->last); } else if (ch=='\n') { while (doc->cur_entry->next!=doc && doc->cur_entry->y==y) @@ -846,9 +693,7 @@ ic_form_tab: b[i]=b[i-1]; b[doc->cur_data_col++]=ch; } - } else if (doc_ce->type_u8==DOCT_TEXT&& - !(doc_ce->flags1&DOCEG1_DONT_EDIT) && - !(doc_ce->flags2&DOCEG2_DONT_EDIT)) { + } else if (IsEditableText(doc_ce)) { dst=b=MAlloc(doc_ce->max_col+2,doc->mem_task); src=doc_ce->tag; i=doc->cur_data_col; @@ -864,13 +709,11 @@ ic_form_tab: b=MAlloc(2,doc->mem_task); *b=ch; b[1]=0; - doc_ne=CAlloc(sizeof(CDocEntryBase),doc->mem_task); + doc_ne=DocEntryNew(doc,doc_ce,b); doc_ne->type=DOCT_TEXT | doc->settings_root.dft_text_attr << 8; - doc_ne->tag=b; - doc_ne->max_col=1; + doc_ne->flags1=0; + doc_ne->flags2=0; doc_ne->x=doc_ce->x+1; - doc_ne->y=doc_ce->y; - doc_ne->page_line_num=doc_ce->page_line_num; QueIns(doc_ne,doc_ce->last); } } @@ -879,7 +722,7 @@ ic_done: DocRemSoftNewLines(doc,doc->cur_entry); if (doc->cur_entry->flags1 & DOCEF1_UPDATE_DATA) { if (doc->cur_entry->type_u8==DOCT_DATA || doc->cur_entry->type_u8==DOCT_CHECK_BOX) - DocDataGet(doc->cur_entry); + DocDataScan(doc->cur_entry); } if (unlock) DocUnlock(doc); @@ -912,13 +755,13 @@ public U0 EdFindNext(CDoc *doc) Bool unlock=DocLock(doc); U8 *ptr,*ptr2,*ptr3; CDocEntry *doc_ce=doc->cur_entry,*doc_e=doc_ce; - I64 ss_flags; + I64 sf_flags; if (doc->find_replace->match_case) - ss_flags=0; + sf_flags=0; else - ss_flags=SRF_IGNORE_CASE; + sf_flags=SFF_IGNORE_CASE; if (doc->find_replace->whole_labels) - ss_flags|=SRG_WHOLE_LABELS; + sf_flags|=SFG_WHOLE_LABELS; do { if (doc_e!=doc) { if (Bt(doc_tag_types,doc_e->type_u8)&& @@ -934,7 +777,7 @@ public U0 EdFindNext(CDoc *doc) ptr=doc_ce->tag+doc_ce->min_col; } else ptr=doc_e->tag; - if (ptr=SearchStr(ptr,doc->find_replace->find_text,ss_flags)) { + if (ptr=StrFind(doc->find_replace->find_text,ptr,sf_flags)) { doc->cur_entry=doc_e; doc->cur_data_col=ptr-doc_e->tag; if (doc->cur_data_col>=doc_e->max_col) @@ -953,7 +796,7 @@ public U0 EdFindNext(CDoc *doc) ptr3=doc_ce->tag+doc->cur_data_col; else ptr3=doc_e->tag+doc_e->max_col; - while (ptr=SearchStr(ptr,doc->find_replace->find_text,ss_flags)) { + while (ptr=StrFind(doc->find_replace->find_text,ptr,sf_flags)) { if (ptr>=ptr3) break; ptr2=ptr++; @@ -989,10 +832,7 @@ public U0 EdSelectAll(CDoc *doc,Bool select) Bool unlock=DocLock(doc); CDocEntry *doc_e=doc->root.next; while (doc_e!=doc) { - if (select) - doc_e->type|=DOCET_SELECTED; - else - doc_e->type&=~DOCET_SELECTED; + BEqu(&doc_e->type,DOCEt_SELECTED,select); doc_e=doc_e->next; } if (unlock) @@ -1005,7 +845,7 @@ public Bool EdFindPaired(CDoc *doc,U8 plus,U8 minus,Bool fwd,Bool abort_on_dbl_c Bool unlock=DocLock(doc),result=FALSE; U8 ch,*ptr,original_col=doc->cur_data_col; I64 levels=0,colons=0; - CDocEntry *doc_ce=doc->cur_entry,*doc_e=doc_ce,*original_cl=doc_ce; + CDocEntry *doc_ce=doc->cur_entry,*doc_e=doc_ce,*original_ce=doc_ce; if (abort_on_dbl_colon && EdCurU8(doc)==':') colons=1; else @@ -1039,7 +879,7 @@ public Bool EdFindPaired(CDoc *doc,U8 plus,U8 minus,Bool fwd,Bool abort_on_dbl_c if (!levels--) { doc->cur_entry=doc_e; doc->cur_data_col=ptr-doc_e->tag-1; - result=doc->cur_entry!=original_cl || doc->cur_data_col!=original_col; + result=doc->cur_entry!=original_ce || doc->cur_data_col!=original_col; goto pa_done; } } @@ -1070,7 +910,7 @@ public Bool EdFindPaired(CDoc *doc,U8 plus,U8 minus,Bool fwd,Bool abort_on_dbl_c if (!levels--) { doc->cur_entry=doc_e; doc->cur_data_col=ptr-doc_e->tag+1; - result=doc->cur_entry!=original_cl || doc->cur_data_col!=original_col; + result=doc->cur_entry!=original_ce || doc->cur_data_col!=original_col; goto pa_done; } } @@ -1195,28 +1035,28 @@ U0 EdUndoFilter(CDoc *doc) I64 EdFindReplace(CDoc *doc) { Bool first=TRUE,found,unlock; - I64 cmd,i,j,plen,rlen,dlen,result=-1,ss_flags; + I64 cmd,i,j,plen,rlen,dlen,result=-1,sf_flags; U8 *src,*dst,*dst2; CDocEntry *doc_ce=doc->cur_entry,*doc_e; if (doc->find_replace->pmt) cmd=RSAC_REPLACE; else cmd=RSAC_ALL; - if (!doc->find_replace->pmt || DocFormDo(doc->find_replace,"CEdFindText")) { + if (!doc->find_replace->pmt || DocFormDo(doc->find_replace)) { result=0; unlock=DocLock(doc); if (doc->find_replace->match_case || doc->find_replace->local_var) - ss_flags=0; + sf_flags=0; else - ss_flags=SRF_IGNORE_CASE; + sf_flags=SFF_IGNORE_CASE; if (doc->find_replace->whole_labels || doc->find_replace->local_var) - ss_flags|=SRG_WHOLE_LABELS; + sf_flags|=SFG_WHOLE_LABELS; if (i=doc->find_replace->filter_lines) { doc_ce=doc->root.next; while (doc_ce!=doc) { if (doc_ce->type_u8==DOCT_TEXT && !(doc_ce->flags1&(DOCEF1_TAG_CB|DOCEF1_DEFINE|DOCEF1_HARD_SKIP|DOCEF1_FILTER_SKIP))&& - SearchStr(doc_ce->tag,doc->find_replace->find_text,ss_flags)) { + StrFind(doc->find_replace->find_text,doc_ce->tag,sf_flags)) { doc_ce->type|=DOCET_SELECTED; result++; } else @@ -1281,7 +1121,7 @@ I64 EdFindReplace(CDoc *doc) (doc_e->type & DOCET_SELECTED || !doc->find_replace->scan_selected_text&&!doc->find_replace->local_var)) { src=doc_e->tag; while (src) { - src=SearchStr(src,doc->find_replace->find_text,ss_flags); + src=StrFind(doc->find_replace->find_text,src,sf_flags); if (src) { doc->cur_data_col=src-doc_e->tag; doc->cur_entry=doc_e; @@ -1388,7 +1228,7 @@ public U0 EdGoToLine(CDoc *doc) { CEdLineGoTo gtl; gtl.line=1; - if (DocFormDo(>l,"CEdLineGoTo")) + if (DocFormDo(>l)) DocLineNumGoTo(doc,gtl.line); } @@ -1458,8 +1298,8 @@ U0 DocEntryToggle(CDoc *doc) doc_ce->tag[j+1]=ch; StrCpy(doc_ce->tag+i,doc_ce->tag+j+1); doc->cur_data_col=i; - st2=MSPrintF("%q",st); - if (doc_ce=DocPutS(doc,st2)) { + st2=MPrint("%q",st); + if (doc_ce=DocPrint(doc,st2)) { doc->cur_entry=doc_ce; doc->cur_data_col=doc_ce->min_col; } @@ -1469,7 +1309,7 @@ U0 DocEntryToggle(CDoc *doc) } else { st=Doc2PlainText(doc,doc_ce); DocEntryDel(doc,doc_ce); - DocPrintF(doc,"$$$$%Q$$$$",st); + DocPrint(doc,"$$$$%Q$$$$",st); } DocRecalc(doc); } @@ -1614,12 +1454,12 @@ public U0 DocPutKey(CDoc *doc,I64 ch,I64 sc) if (sc&SCF_KEY_DESC) SetKeyDesc("Dollar/Indent Out"); else - DocPutS(doc,"$$ID,-2$$"); + DocPrint(doc,"$$ID,-2$$"); } else { if (sc&SCF_KEY_DESC) SetKeyDesc("Dollar/Indent In"); else - DocPutS(doc,"$$ID,2$$"); + DocPrint(doc,"$$ID,2$$"); } break; case '\n': @@ -1635,9 +1475,9 @@ public U0 DocPutKey(CDoc *doc,I64 ch,I64 sc) if (sc&SCF_KEY_DESC) SetKeyDesc("Dollar/Toggle Blinking Text"); else if (sc&SCF_SHIFT) - DocPutS(doc,"$$BK,0$$"); + DocPrint(doc,"$$BK,0$$"); else - DocPutS(doc,"$$BK,1$$"); + DocPrint(doc,"$$BK,1$$"); break; case CH_CTRLL: if (sc&SCF_KEY_DESC) { @@ -1689,21 +1529,21 @@ public U0 DocPutKey(CDoc *doc,I64 ch,I64 sc) if (sc&SCF_KEY_DESC) SetKeyDesc("Dollar/Toggle Super or Sub script"); else { - DocPutS(doc,"$$SY,0$$"); + DocPrint(doc,"$$SY,0$$"); doc->flags&=~(DOCF_SUPERSCRIPT_MODE | DOCF_SUBSCRIPT_MODE); } } else if (sc&SCF_SHIFT) { if (sc&SCF_KEY_DESC) SetKeyDesc("Dollar/Toggle Subscript"); else { - DocPutS(doc,"$$SY,3$$"); + DocPrint(doc,"$$SY,3$$"); doc->flags|=DOCF_SUBSCRIPT_MODE; } } else { if (sc&SCF_KEY_DESC) SetKeyDesc("Dollar/Toggle Superscript"); else { - DocPutS(doc,"$$SY,-3$$"); + DocPrint(doc,"$$SY,-3$$"); doc->flags|=DOCF_SUPERSCRIPT_MODE; } } @@ -1759,9 +1599,9 @@ public U0 DocPutKey(CDoc *doc,I64 ch,I64 sc) if (sc&SCF_KEY_DESC) SetKeyDesc("Dollar/Toggle Underline"); else if (sc&SCF_SHIFT) - DocPutS(doc,"$$UL,0$$"); + DocPrint(doc,"$$UL,0$$"); else - DocPutS(doc,"$$UL,1$$"); + DocPrint(doc,"$$UL,1$$"); break; case CH_CTRLV: if (sc&SCF_KEY_DESC) @@ -1773,9 +1613,9 @@ public U0 DocPutKey(CDoc *doc,I64 ch,I64 sc) if (sc&SCF_KEY_DESC) SetKeyDesc("Dollar/Toggle Word Wrap"); else if (sc&SCF_SHIFT) - DocPutS(doc,"$$WW,0$$"); + DocPrint(doc,"$$WW,0$$"); else - DocPutS(doc,"$$WW,1$$"); + DocPrint(doc,"$$WW,1$$"); break; case CH_CTRLX: if (sc&SCF_KEY_DESC) @@ -1793,9 +1633,9 @@ public U0 DocPutKey(CDoc *doc,I64 ch,I64 sc) if (sc&SCF_KEY_DESC) SetKeyDesc("Dollar/Toggle Inverted Text"); else if (sc&SCF_SHIFT) - DocPutS(doc,"$$IV,0$$"); + DocPrint(doc,"$$IV,0$$"); else - DocPutS(doc,"$$IV,1$$"); + DocPrint(doc,"$$IV,1$$"); break; case '0'...'9': if (!(sc&SCF_ALT)) { @@ -2045,10 +1885,7 @@ public U0 DocPutKey(CDoc *doc,I64 ch,I64 sc) SetKeyDesc("Edit/GoTo Doc End"); } else { while (doc_ce!=doc) { - if (sc&SCF_SHIFT) - doc_ce->type|=DOCET_SELECTED; - else - doc_ce->type&=~DOCET_SELECTED; + BEqu(&doc_ce->type,DOCEt_SELECTED,sc&SCF_SHIFT); doc_ce=doc->cur_entry=doc_ce->next; } doc->cur_data_col=doc_ce->min_col; @@ -2074,10 +1911,7 @@ public U0 DocPutKey(CDoc *doc,I64 ch,I64 sc) } else { if (doc_ce==doc) doc_ce=doc_ce->last; while (doc_ce!=doc) { - if (sc&SCF_SHIFT) - doc_ce->type|=DOCET_SELECTED; - else - doc_ce->type&=~DOCET_SELECTED; + BEqu(&doc_ce->type,DOCEt_SELECTED,sc&SCF_SHIFT); doc_ce=doc->cur_entry=doc_ce->last; } doc_ce=doc->cur_entry=doc->root.next; @@ -2252,9 +2086,7 @@ public U0 DocPutSPartial(CDoc *doc,U8 *st) doc_ce=doc->cur_entry; doc->recalc_start=doc_ce->last; j=ptr-ptr2; - if (doc_ce->type_u8==DOCT_TEXT && - !(doc_ce->flags1&DOCEG1_DONT_EDIT) && - !(doc_ce->flags2&DOCEG2_DONT_EDIT)) { + if (IsEditableText(doc_ce)) { dst=b=MAlloc(doc_ce->max_col+j+1,doc->mem_task); src=doc_ce->tag; i=doc->cur_data_col; @@ -2268,14 +2100,12 @@ public U0 DocPutSPartial(CDoc *doc,U8 *st) Free(doc_ce->tag); doc_ce->tag=b; } else { - doc_ne=CAlloc(sizeof(CDocEntryBase),doc->mem_task); + dst=MAlloc(j+1,doc->mem_task); + MemCpy(dst,ptr2,j+1); + doc_ne=DocEntryNew(doc,doc_ce,dst); doc_ne->type=DOCT_TEXT | doc->settings_root.dft_text_attr << 8; - doc_ne->tag=MAlloc(j+1,doc->mem_task); - MemCpy(doc_ne->tag,ptr2,j+1); - doc_ne->x=doc_ce->x; - doc_ne->y=doc_ce->y; - doc_ne->max_col=j; - doc_ne->page_line_num=doc_ce->page_line_num; + doc_ne->flags1=0; + doc_ne->flags2=0; QueIns(doc_ne,doc_ce->last); doc->cur_entry=doc_ne; doc->cur_data_col=StrLen(ptr2); @@ -2394,7 +2224,7 @@ public I64 EdLinkCvt(U8 *link_st,U8 **_filename=NULL,U8 **_pattern=NULL, if (StrLen(st)>3 && st[2]==':') { st[2]=0; filename2=st+3; - switch (result=DefineMatch(st,"ST_LINK_TYPES",LEF_IGNORE_CASE)) { + switch (result=DefineMatch(st,"ST_LINK_TYPES",LMF_IGNORE_CASE)) { case LK_MAN_PAGE: if (temph=HashFind(filename2,Fs->hash_table,HTG_SRC_SYM)) { if (temph->type&HTT_DEFINE_STR && temph(CHashDefineStr *)->caller) { @@ -2414,7 +2244,7 @@ public I64 EdLinkCvt(U8 *link_st,U8 **_filename=NULL,U8 **_pattern=NULL, i=A2I(ptr+1); } else i=DFT_ADDR_LINK_BIN_SIZE; - if (ptr=SrcEdLink(ExePrintF("%s;",filename2),i)) { + if (ptr=SrcEdLink(ExePrint("%s;",filename2),i)) { result=EdLinkCvt(ptr,&filename,&pattern,&num,ed_flags); Free(ptr); } else @@ -2437,7 +2267,7 @@ public I64 EdLinkCvt(U8 *link_st,U8 **_filename=NULL,U8 **_pattern=NULL, *ptr=0; pattern=StrNew(ptr+1); } - i=DefineMatch(filename2,"ST_BIBLE_BOOKS",LEF_IGNORE_CASE); + i=DefineMatch(filename2,"ST_BIBLE_BOOKS",LMF_IGNORE_CASE); if (i<0) result=-1; else { diff --git a/TempleOS/Adam/Doc/DocFile.CPP b/TempleOS/Adam/Doc/DocFile.CPP index 7a20f85..bd9eda8 100644 --- a/TempleOS/Adam/Doc/DocFile.CPP +++ b/TempleOS/Adam/Doc/DocFile.CPP @@ -7,7 +7,7 @@ public U0 DocLoad(CDoc *doc,U8 *src2,I64 size) CDocBin *tempb; doc->find_replace->filter_lines=0; if (src2) { - DocPutS(doc,src2); + DocPutS(doc,src2); //Too big $LK,"DocPrint","MN:DocPrint"$() is wasteful. src=src2+StrLen(src2)+1; i=size-(offset(CDocBin.data)-offset(CDocBin.start)); while (src<=src2+i) { @@ -57,7 +57,7 @@ public U8 *DocSave(CDoc *doc,I64 *_size=NULL) I64 i,cnt; U8 *st,*result,*dst,*src,ch; - if (doc->flags&DOCF_NO_CURSOR) + if (doc->flags&DOCF_NO_CURSOR || doc->root.next==doc) cnt=1; //terminator else cnt=2; //cursor + terminator @@ -143,7 +143,7 @@ public U8 *DocSave(CDoc *doc,I64 *_size=NULL) break; default: if (doc_e->type_u8!=DOCT_SOFT_NEW_LINE && - doc_e->type_u8!=DOCT_CURSOR && + doc_e->type_u8!=DOCT_CURSOR && //(Cursor is set by cur_entry) doc_e->type_u8!=DOCT_BPT) { *dst++='$$'; st=Doc2PlainText(doc,doc_e); @@ -156,7 +156,14 @@ public U8 *DocSave(CDoc *doc,I64 *_size=NULL) } } } + if (doc->cur_entry==doc && doc->root.next!=doc && !(doc->flags&DOCF_NO_CURSOR)) + *dst++=CH_CURSOR; *dst++=0; + if (*result==CH_CURSOR) { + MemCpy(result,result+1,dst-result-1); + cnt--; + dst--; + } b=doc->bin_root.next; if (b!=&doc->bin_root) { do { @@ -169,7 +176,7 @@ public U8 *DocSave(CDoc *doc,I64 *_size=NULL) b=b->next; } while (b!=&doc->bin_root); } else - cnt--; + cnt--; //No terminator if (_size) *_size=cnt; if (unlock) DocUnlock(doc); @@ -181,7 +188,7 @@ public U0 DocWrite(CDoc *doc,Bool prompt=FALSE) I64 size; U8 *buf=DocSave(doc,&size); if (prompt) { - if (DocFormDo(&doc->filename,"CEdFileName")) + if (DocFormDo(&doc->filename)) FileWrite(doc->filename.name,buf,size,0,doc->file_attr); } else FileWrite(doc->filename.name,buf,size,0,doc->file_attr); @@ -194,29 +201,22 @@ public U0 DocInsDoc(CDoc *doc,CDoc *doc2) U8 *dst; Bool unlock_doc=DocLock(doc), unlock_doc2=DocLock(doc2); - CDocEntry *doc_ne,*doc_e=doc2->root.next; + CDocEntry *doc_ne,*doc_e=doc2->root.next,*doc_ce; DocRemSoftNewLines(doc,NULL); - if (doc->cur_entry->type_u8==DOCT_TEXT && - doc->cur_data_col>doc->cur_entry->min_col) { - if (doc->cur_data_colcur_entry->max_col) { - doc_ne=CAlloc(sizeof(CDocEntryBase),doc->mem_task); - doc_ne->type=DOCT_TEXT | doc->cur_entry->type & 0xFFFFFF00; - doc_ne->flags1=doc->cur_entry->flags1; - doc_ne->flags2=doc->cur_entry->flags2; - doc_ne->x=doc->cur_entry->x; - doc_ne->y=doc->cur_entry->y; - doc_ne->page_line_num=doc->cur_entry->page_line_num; - dst=doc->cur_entry->tag+doc->cur_data_col; - doc_ne->tag=StrNew(dst,doc->mem_task); - doc_ne->max_col=StrLen(dst); + doc_ce=doc->cur_entry; + if (doc_ce->type_u8==DOCT_TEXT && doc->cur_data_col>doc_ce->min_col) { + if (doc->cur_data_colmax_col) { + dst=doc_ce->tag+doc->cur_data_col; + doc_ne=DocEntryNew(doc,doc_ce,StrNew(dst,doc->mem_task)); *dst=0; - doc->cur_entry->max_col=doc->cur_data_col; - QueIns(doc_ne,doc->cur_entry); + doc_ne->type=DOCT_TEXT | doc_ce->type & 0xFFFFFF00; + doc_ce->max_col=doc->cur_data_col; + QueIns(doc_ne,doc_ce); doc->cur_entry=doc_ne; doc->cur_data_col=doc_ne->min_col; } else - if (doc->cur_entry!=doc) - doc->cur_entry=doc->cur_entry->next; + if (doc_ce!=doc) + doc->cur_entry=doc_ce->next; } while (doc_e!=doc2) { if (doc_e->type_u8!=DOCT_SOFT_NEW_LINE) { @@ -363,11 +363,11 @@ public U0 StreamDoc(CDoc *doc) CDocEntry *doc_e=doc->root.next; while (doc_e!=doc) { if (doc_e->type_u8==DOCT_TEXT) - StreamPutS(doc_e->tag); + StreamPrint("%s",doc_e->tag); else if (doc_e->type_u8==DOCT_NEW_LINE) - StreamPutS("\n"); + StreamPrint("\n"); else if (doc_e->type_u8==DOCT_TAB) - StreamPutS("\t"); + StreamPrint("\t"); doc_e=doc_e->next; } if (unlock_doc) @@ -383,7 +383,7 @@ Bool DocCaptureUndo(CDoc *doc,Bool force=FALSE) CDocUndo *u; if (doc->flags&DOCF_ALLOW_UNDO) { unlock=DocLock(doc); - time_stamp=GetTimeStamp; + time_stamp=GetTSC; if (doc->flags&DOCF_UNDO_DIRTY && time_stamp>doc->undo_root.last->time_stamp+time_stamp_freq<<4 || force) { u=CAlloc(sizeof(CDocUndo),doc->mem_task); @@ -433,18 +433,18 @@ public Bool DocType(CDoc *doc=NULL,U8 *filename,I64 trailing_new_lines=1) CDoc *doc2; if (!doc && !(doc=DocPut) || doc->doc_signature!=DOC_SIGNATURE_VAL) return FALSE; - if (FilesFindMatch(FILENAME_MASK_TXT,filename)) { + if (FilesFindMatch(filename,FILEMASK_TXT)) { doc2=DocRead(filename); DocInsDoc(doc,doc2); DocDel(doc2); result=TRUE; - } else if (FilesFindMatch("*.BMP.Z",filename)) { + } else if (FilesFindMatch(filename,"*.BMP.Z")) { DocPutBMPFile(doc,filename,FALSE); result=TRUE; - } else if (FilesFindMatch("*.BMP;*.bmp",filename)) { + } else if (FilesFindMatch(filename,"*.BMP;*.bmp")) { DocPutBMPFile(doc,filename,TRUE); result=TRUE; - } else if (FilesFindMatch("*.GRA*",filename)) { + } else if (FilesFindMatch(filename,"*.GRA*")) { DocPutGRAFile(doc,filename); result=TRUE; } diff --git a/TempleOS/Adam/Doc/DocIDE.CPP b/TempleOS/Adam/Doc/DocIDE.CPP index 6e90675..55ea354 100644 --- a/TempleOS/Adam/Doc/DocIDE.CPP +++ b/TempleOS/Adam/Doc/DocIDE.CPP @@ -137,9 +137,9 @@ public U0 IDE(U8 *filename) "simple stuff, sort-of.\n\n" "I recommend making use of:\n" "$$LK,\"progress1\",\"MN:progress1\"$$-$$LK,\"progress4\",\"MN:progress4\"$$, -- glbl I64 vars shown on wallpaper\n" - "$$LK,\"DbgI64\",\"MN:DbgI64\"$$() $$LK,\"DbgStr\",\"MN:DbgStr\"$$() $$LK,\"DbgAdd\",\"MN:DbgAdd\"$$() -- raw text output for a time\n" + "$$LK,\"RawI64\",\"MN:RawI64\"$$() $$LK,\"RawStr\",\"MN:RawStr\"$$() $$LK,\"RawAdd\",\"MN:RawAdd\"$$() -- raw text output for a time\n" "$$LK,\"Beep\",\"MN:Beep\"$$() $$LK,\"Snd\",\"MN:Snd\"$$() -- sound\n" - "$$LK,\"AdamLog\",\"MN:AdamLog\"$$() $$LK,\"AdamErr\",\"MN:AdamErr\"$$() -- printf to adam task's window\n" + "$$LK,\"AdamLog\",\"MN:AdamLog\"$$() $$LK,\"AdamErr\",\"MN:AdamErr\"$$() -- print to adam task's window\n" "$$LK,\"SysDbg\",\"MN:SysDbg\"$$() and $$LK,\"IsSysDbg\",\"MN:IsSysDbg\"$$() -- just a flag\n\n")) { SetWinHorz(1,TEXT_COLS>>1-1); SetWinVert(2,TEXT_ROWS-2); @@ -211,7 +211,7 @@ U0 IDESetStepRange(CDoc *doc) I64 line=doc->cur_entry->y+1; CHashTable *h=Fs->hash_table; CHashFun *tempf; - CIDE *tempi=NamedFramePtr("IDEFrame"); + CIDE *tempi=FramePtr("IDEFrame"); CDbgInfo *dbg; while (h) { tempf=h->next_added; @@ -266,7 +266,7 @@ U0 IDEToggleBpt(CDoc *doc) doc->cur_data_col=doc_e->min_col; if (!BptR(a,Fs->parent_task)) { BptS(a,Fs->parent_task); - DocPutS(doc,"$$BP$$"); + DocPrint(doc,"$$BP$$"); } else { if (doc_e->type_u8==DOCT_BPT) { doc->cur_entry=doc_e->next; @@ -314,10 +314,10 @@ U0 IDEClearAllBpts(CDoc *doc) U0 IDEGo() //Continue after breakpoint { //F5 CTask *task=Fs->parent_task; - CIDE *tempi=NamedFramePtr("IDEFrame"); + CIDE *tempi=FramePtr("IDEFrame"); if (!tempi) { tempi=CAlloc(sizeof(CIDE)); - NamedFramePtrAdd("IDEFrame",tempi); + FramePtrAdd("IDEFrame",tempi); } IDEWaitParent; LBts(&task->task_flags,TASKf_DISABLE_BPTS); @@ -333,10 +333,10 @@ U0 IDEStepOver(CDoc *doc) I64 line; U8 *opcode; - CIDE *tempi=NamedFramePtr("IDEFrame"); + CIDE *tempi=FramePtr("IDEFrame"); if (!tempi) { tempi=CAlloc(sizeof(CIDE)); - NamedFramePtrAdd("IDEFrame",tempi); + FramePtrAdd("IDEFrame",tempi); } IDEWaitParent; @@ -373,10 +373,10 @@ U0 IDEStepInto(CDoc *doc) CTask *task=Fs->parent_task; I64 line; - CIDE *tempi=NamedFramePtr("IDEFrame"); + CIDE *tempi=FramePtr("IDEFrame"); if (!tempi) { tempi=CAlloc(sizeof(CIDE)); - NamedFramePtrAdd("IDEFrame",tempi); + FramePtrAdd("IDEFrame",tempi); } IDEWaitParent; @@ -407,16 +407,16 @@ U0 IDEEdTask(I64) if (rip_filename=SrcFileName(rip)) { ed_task=Spawn(&UserCmdLine,NULL,"Debug",,task); TaskWait(ed_task); - st=MSPrintF("Preempt(OFF);Ed(\"%s\");\n",rip_filename); + st=MPrint("Preempt(OFF);Ed(\"%s\");\n",rip_filename); XTalkWait(ed_task,st); Free(st); doc=DocPut(ed_task); if (TaskValidate(dbg_task=task->dbg_task)) { SetWinHorz(dbg_task->win_left,dbg_task->win_right, ed_task); SetWinVert(dbg_task->win_top, dbg_task->win_bottom,ed_task); - if (tempi=NamedFramePtr("IDEFrame",dbg_task)) { + if (tempi=FramePtr("IDEFrame",dbg_task)) { tempi1=MAllocIdentical(tempi,ed_task); - NamedFramePtrAdd("IDEFrame",tempi1); + FramePtrAdd("IDEFrame",tempi1); } Kill(dbg_task); } @@ -426,7 +426,7 @@ U0 IDEEdTask(I64) if (bpt_filename=SrcFileName(tempb->addr)) { if (!StrCmp(rip_filename,bpt_filename)) { DocLineNumGoTo(doc,SrcLineNum(tempb->addr)); - DocPutS(doc,"$$BP$$"); + DocPrint(doc,"$$BP$$"); } Free(bpt_filename); } @@ -441,7 +441,7 @@ U0 IDEEdTask(I64) U0 IDEResumeDbg() { CTask *dbg_task=Fs->dbg_task; - CIDE *tempi=NamedFramePtr("IDEFrame",dbg_task); + CIDE *tempi=FramePtr("IDEFrame",dbg_task); U8 *opcode; if (!tempi) { Spawn(&IDEEdTask,NULL,"Resume Dbg",,Fs); diff --git a/TempleOS/Adam/Doc/DocMacro.CPP b/TempleOS/Adam/Doc/DocMacro.CPP index 333ca59..30e91aa 100644 --- a/TempleOS/Adam/Doc/DocMacro.CPP +++ b/TempleOS/Adam/Doc/DocMacro.CPP @@ -41,10 +41,10 @@ CMacroTemp *Cmd2MT(CSrvCmd *tempc) tempmt->type=MT_CHAR; buf[0]=tempc->aux1; buf[1]=0; - SPrintF(tempmt->buf,"%Q",buf); + SPrint(tempmt->buf,"%Q",buf); } else { tempmt->type=MT_MSG; - SPrintF(tempmt->buf,"Msg(0x%X,0x%X,0x%X);", + SPrint(tempmt->buf,"Msg(0x%X,0x%X,0x%X);", tempc->msg_code,tempc->aux1,tempc->aux2); } return tempmt; @@ -149,14 +149,14 @@ I64 PopUpExitRecordPlayStopIns() U8 buf[136]; CSrvCmd *tempc; CDoc *doc=DocNew; - CDocEntry *doc_e=DocPutS(doc,"$$DA-P,135,\"Name:%s\"$$"); + CDocEntry *doc_e=DocPrint(doc,"$$DA-P,135,\"Name:%%s\"$$"); I64 result=0; doc_e->data=captured_macro_name; DocDataFmt(doc_e); - doc_e=DocPutS(doc,"\n$$DA,32,\"Repeat N:%d\"$$"); + doc_e=DocPrint(doc,"\n$$DA,32,\"Repeat N:%%d\"$$"); doc_e->data=&sys_macro_repeat_n; DocDataFmt(doc_e); - DocPutS(doc,"\n" + DocPrint(doc,"\n" "$$CM+LX,1,3$$$$BT,\"RECORD\",SM_RECORD$$" "$$CM+LX,17,0$$$$BT,\"INSERT\",SM_INS$$" "$$CM+LX,1,3$$$$BT,\"PLAY\",SM_PLAY$$" @@ -165,7 +165,7 @@ I64 PopUpExitRecordPlayStopIns() "$$CM+LX,17,0$$$$BT,\"CANCEL\",SM_CANCEL$$" "\n\n\n$$FG,GREEN$$SHIFT-F2$$FG$$ will play macro.\n"); doc->flags|=DOCF_MIN_SIZE | DOCF_FORM; - SPrintF(buf,"DocMenuDo(0x%X);",doc); + SPrint(buf,"DocMenuDo(0x%X);",doc); sys_macro_util_task=Spawn(&SrvUserCmdLine,NULL,"Macro Popup",,Fs); Fs->popup_task=sys_macro_util_task; LBts(&sys_macro_util_task->display_flags,DISPLAYf_WIN_ON_TOP); @@ -175,7 +175,7 @@ I64 PopUpExitRecordPlayStopIns() Fs->popup_task=NULL; Kill(sys_macro_util_task); sys_macro_util_task=NULL; - DocDataGet(doc_e); + DocDataScan(doc_e); DocDel(doc); return result; } diff --git a/TempleOS/Adam/Doc/DocMain.CPP b/TempleOS/Adam/Doc/DocMain.CPP index b9260a1..9d9aece 100644 --- a/TempleOS/Adam/Doc/DocMain.CPP +++ b/TempleOS/Adam/Doc/DocMain.CPP @@ -31,7 +31,7 @@ ej_doc: EdLite(filename,num); else { cont=TRUE; - if (!(ed_flags&EDF_BAIL) && !FilesFindMatch(FILENAME_MASK_TXT,filename) && + if (!(ed_flags&EDF_BAIL) && !FilesFindMatch(filename,FILEMASK_TXT) && !PopUpCancelOk(ST_WARN_ST "Not Text File\n\n")) cont=FALSE; if (cont) @@ -48,7 +48,7 @@ public Bool Plain(U8 *filename) //so that dollar signs are not special. { Bool result; - U8 *st=MSPrintF("PI:%s",filename); + U8 *st=MPrint("PI:%s",filename); result=Ed(st); Free(st); return result; @@ -116,46 +116,46 @@ public CDoc *SysBorderDocInit() bdoc->flags|=DOCF_BORDER_DOC; if (doc) { - DocPutS(bdoc,"$$CM+H+BY+RX+NC,-7,1$$"); - doc_e=DocPutS(bdoc,"$$TX+H+BD+TC,\" \"$$"); + DocPrint(bdoc,"$$CM+H+BY+RX+NC,-7,1$$"); + doc_e=DocPrint(bdoc,"$$TX+H+BD+TC,\" \"$$"); doc_e->user_data=doc; doc_e->tag_cb=&EdFilterCB; - doc_e=DocPutS(bdoc,"$$TX+H+BD+TC,\" \"$$"); + doc_e=DocPrint(bdoc,"$$TX+H+BD+TC,\" \"$$"); doc_e->user_data=doc; doc_e->tag_cb=&EdOverStrikeCB; - doc_e=DocPutS(bdoc,"$$TX+H+BD+TC,\" \"$$"); + doc_e=DocPrint(bdoc,"$$TX+H+BD+TC,\" \"$$"); doc_e->user_data=doc; doc_e->tag_cb=&EdDollarCB; } - DocPutS(bdoc,"$$CM+H+BY+RX+NC,-4,1$$"); - doc_e=DocPutS(bdoc,"$$TX+H+BD+TC,\" \"$$"); + DocPrint(bdoc,"$$CM+H+BY+RX+NC,-4,1$$"); + doc_e=DocPrint(bdoc,"$$TX+H+BD+TC,\" \"$$"); doc_e->tag_cb=&EdQuotesCB; - doc_e=DocPutS(bdoc,"$$TX+H+BD+TC,\" \"$$"); + doc_e=DocPrint(bdoc,"$$TX+H+BD+TC,\" \"$$"); doc_e->tag_cb=&EdBracesCB; - doc_e=DocPutS(bdoc,"$$TX+H+BD+TC,\" \"$$"); + doc_e=DocPrint(bdoc,"$$TX+H+BD+TC,\" \"$$"); doc_e->tag_cb=&EdSemicolonCB; if (doc) { - DocPutS(bdoc,"$$CM+H+BY+RX+NC,-18,1$$"); - doc_e=DocPutS(bdoc,"$$TX+BD+TC,\" \"$$"); + DocPrint(bdoc,"$$CM+H+BY+RX+NC,-18,1$$"); + doc_e=DocPrint(bdoc,"$$TX+BD+TC,\" \"$$"); doc_e->user_data=doc; doc_e->tag_cb=&EdMoreCB; - doc_e=DocPutS(bdoc,"$$TX+H+BD+TC,\" \"$$"); + doc_e=DocPrint(bdoc,"$$TX+H+BD+TC,\" \"$$"); doc_e->user_data=doc; doc_e->tag_cb=&EdDollarTypeCB; } if (Fs->user_num) - DocPrintF(bdoc,"$$CM+H+TY+LX+NC,5,-1$$$$TX+H+BD,\"#%d\"$$",Fs->user_num); - DocPutS(bdoc,"$$CM+H+TY+NC,0,-1$$"); - doc_e=DocPutS(bdoc,"$$DA+H-T-P+BD+RD+CX+SCX+IV,140,\"%s...\",16$$"); + DocPrint(bdoc,"$$CM+H+TY+LX+NC,5,-1$$$$TX+H+BD,\"#%d\"$$",Fs->user_num); + DocPrint(bdoc,"$$CM+H+TY+NC,0,-1$$"); + doc_e=DocPrint(bdoc,"$$DA+H-T-P+BD+RD+CX+SCX+IV,140,\"%%s...\",16$$"); doc_e->data=&Fs->task_title; DocDataFmt(doc_e); - DocPrintF(bdoc,"$$CM+H+NC,1,0$$$$TX+H+BD+IV,\"%X\"$$",Fs); + DocPrint(bdoc,"$$CM+H+NC,1,0$$$$TX+H+BD+IV,\"%X\"$$",Fs); if (Bt(&Fs->display_flags,DISPLAYf_HAS_CLOSE_WIN)) - DocPutS(bdoc,"$$TX+H+RX+BD,\"[X]\"$$"); - DocPutS(bdoc,"$$BK,1$$$$TX+H+LX+BD,\"MENU\"$$$$BK,0$$"); + DocPrint(bdoc,"$$TX+H+RX+BD,\"[X]\"$$"); + DocPrint(bdoc,"$$BK,1$$$$TX+H+LX+BD,\"MENU\"$$$$BK,0$$"); return bdoc; } @@ -176,7 +176,7 @@ public U0 UseTermDoc() } #help_index "Doc/Input" -public U8 *DocGetLine(CDoc *doc,CDocEntry *doc_e,I64 *cur_col=NULL,CDocEntry **_do_e_end=NULL) +public U8 *DocScanLine(CDoc *doc,CDocEntry *doc_e,I64 *cur_col=NULL,CDocEntry **_do_e_end=NULL) { CDocEntry *doc_e2=doc_e; Bool unlock=DocLock(doc); @@ -223,8 +223,8 @@ U0 DocDump(CDoc *doc,I64 uS_delay=0) Bool unlock=DocLock(doc); doc_e=doc->root.next; while (doc_e!=doc) { - st=DocGetLine(doc,doc_e,NULL,&doc_e2); - "" st; + st=DocScanLine(doc,doc_e,NULL,&doc_e2); + "%s",st; Free(st); doc_e=doc_e2; if (doc_e->type_u8==DOCT_NEW_LINE) { @@ -255,7 +255,7 @@ public CDocEntry *DocPutLine(CDoc *doc=NULL,CDocEntry *doc_e) else ptr++; *ptr=0; - "" ptr2; + "%s",ptr2; *ptr=ch; if (ch=='$$') { "$$$$"; @@ -318,10 +318,10 @@ public U8 *DocMGetS(I64 flags=0) do doc_e=doc_e->last; while (doc_e!=doc && doc_e->type_u8!=DOCT_PMT); doc_e=doc_e->next; - if (result=DocGetLine(doc,doc_e,NULL,&doc_e_end)) { + if (result=DocScanLine(doc,doc_e,NULL,&doc_e_end)) { while (doc_e_end!=doc && doc_e_end->type_u8==DOCT_NEW_LINE) { result=StrAdd(result,"\n"); - if (st=DocGetLine(doc,doc_e_end->next,NULL,&doc_e_end)) { + if (st=DocScanLine(doc,doc_e_end->next,NULL,&doc_e_end)) { result=StrAdd(result,st); Free(st); } @@ -338,7 +338,7 @@ public U8 *DocMGetS(I64 flags=0) doc_e->type_u8!=DOCT_PMT); } doc_e=doc_e->next; - result=DocGetLine(doc,doc_e,NULL); + result=DocScanLine(doc,doc_e,NULL); } DocUnlock(doc); mgets_done: @@ -349,20 +349,21 @@ mgets_done: #help_index "Char/Input" -public I64 PmtI64(U8 *msg,I64 dft,I64 lo=MIN_I64,I64 hi=MAX_I64) +public I64 PmtI64(U8 *msg=NULL,I64 dft=0,I64 lo=MIN_I64,I64 hi=MAX_I64) { Bool okay; U8 *st; I64 result; while (TRUE) { - "" msg,dft; + if (msg) + "" msg,dft; st=MGetS; if (!*st) { Free(st); return dft; } try { - result=ExePrintF3("ToI64(%s);",st); + result=ExePrint3("ToI64(%s);",st); okay=TRUE; } catch { Fs->catch_except=TRUE; @@ -374,20 +375,21 @@ public I64 PmtI64(U8 *msg,I64 dft,I64 lo=MIN_I64,I64 hi=MAX_I64) } } -public F64 PmtF64(U8 *msg,F64 dft,F64 lo=MIN_F64,F64 hi=MAX_F64) +public F64 PmtF64(U8 *msg=NULL,F64 dft=0,F64 lo=MIN_F64,F64 hi=MAX_F64) { Bool okay; U8 *st; F64 result; while (TRUE) { - "" msg,dft; + if (msg) + "" msg,dft; st=MGetS; if (!*st) { Free(st); return dft; } try { - result=ExePrintF3("ToF64(%s);",st)(F64); + result=ExePrint3("ToF64(%s);",st)(F64); okay=TRUE; } catch { Fs->catch_except=TRUE; @@ -402,12 +404,8 @@ public F64 PmtF64(U8 *msg,F64 dft,F64 lo=MIN_F64,F64 hi=MAX_F64) public U8 *PmtStr(U8 *msg=NULL,U8 *dft=NULL) { U8 *st; - if (msg) { - if (dft) - "" msg,dft; - else - "" msg; - } + if (msg) + "" msg,dft; st=MGetS; if (!*st) { Free(st); @@ -419,12 +417,14 @@ public U8 *PmtStr(U8 *msg=NULL,U8 *dft=NULL) return st; } -public CDate PmtCDate(U8 *msg,CDate dft,CDate lo=MIN_I64,CDate hi=MAX_I64) +public CDate PmtCDate(U8 *msg=NULL,CDate dft=0,CDate lo=MIN_I64,CDate hi=MAX_I64) { U8 *st; CDate result; + if (!dft) dft=GetDateTime; while (TRUE) { - "" msg,dft,dft; + if (msg) + "" msg,dft,dft; st=MGetS; if (!*st) { Free(st); @@ -457,8 +457,8 @@ I64 PopUpCancelIncludeDelAuto(U8 *header=NULL,U8 *footer=NULL) { I64 i; CDoc *doc=DocNew; - if (header) DocPutS(doc,header); - DocPrintF(doc,"\n\n" + if (header) DocPrint(doc,"%s",header); + DocPrint(doc,"\n\n" "TXT=%s\n" "SRC=%s\n" "AOT=%s\n" @@ -478,12 +478,12 @@ I64 PopUpCancelIncludeDelAuto(U8 *header=NULL,U8 *footer=NULL) "$$CM+LX,26,0$$$$BT,\"PLAIN ED TXT\",RIGHT_PLAIN$$" "$$CM+LX,1,3 $$$$BT,\"CANCEL \",DOCM_CANCEL$$" "$$CM+LX,26,0$$$$BT,\"BINREP BIN\",RIGHT_BINREP$$\n", - FILENAME_MASK_TXT, - FILENAME_MASK_SRC, - FILENAME_MASK_AOT, - FILENAME_MASK_JIT, - FILENAME_MASK_GRA); - if (footer) DocPutS(doc,footer); + FILEMASK_TXT, + FILEMASK_SRC, + FILEMASK_AOT, + FILEMASK_JIT, + FILEMASK_GRA); + if (footer) DocPrint(doc,"%s",footer); i=PopUpMenu(doc); DocDel(doc); return i; @@ -496,7 +496,7 @@ I64 EdLeftClickLink(CDoc *doc,CDocEntry *doc_e) if (st=DocEntryLink(doc,doc_e)) { DocUnlock(doc); if (doc_e->flags1 & DOCEF1_POPUP) { - st2=MSPrintF("Ed(\"%Q\");",st); + st2=MPrint("Ed(\"%Q\");",st); result=PopUp(st2); Free(st2); } else @@ -519,7 +519,7 @@ I64 TermRightClickLink(CDoc *doc,CDocEntry *doc_e) DocBottom(doc); switch (i) { case RIGHT_INCLUDE: - if (FileExtDot(st) && !FilesFindMatch(FILENAME_MASK_JIT,st)) { + if (FileExtDot(st) && !FilesFindMatch(st,FILEMASK_JIT)) { if (!PopUpCancelOk(ST_WARN_ST "Not .CPP File\n\n")) { send_new_line=TRUE; break; @@ -545,7 +545,7 @@ I64 TermRightClickLink(CDoc *doc,CDocEntry *doc_e) result=Plain(st); break; case RIGHT_AUTOFILE: - if (FileExtDot(st) && !FilesFindMatch("*.AUT*",st)) { + if (FileExtDot(st) && !FilesFindMatch(st,"*.AUT*")) { if (!PopUpCancelOk(ST_WARN_ST "Not .AUT File\n\n")) { send_new_line=TRUE; break; @@ -557,7 +557,7 @@ I64 TermRightClickLink(CDoc *doc,CDocEntry *doc_e) result=TRUE; break; case RIGHT_AINCLUDE: - if (FileExtDot(st) && !FilesFindMatch(FILENAME_MASK_JIT,st)) { + if (FileExtDot(st) && !FilesFindMatch(st,FILEMASK_JIT)) { if (!PopUpCancelOk(ST_WARN_ST "Not .CPP File\n\n")) { send_new_line=TRUE; break; @@ -569,7 +569,7 @@ I64 TermRightClickLink(CDoc *doc,CDocEntry *doc_e) result=TRUE; break; case RIGHT_COMPILE: - if (FileExtDot(st) && !FilesFindMatch(FILENAME_MASK_AOT,st)) { + if (FileExtDot(st) && !FilesFindMatch(st,FILEMASK_AOT)) { if (!PopUpCancelOk(ST_WARN_ST "Not .PRJ File\n\n")) { send_new_line=TRUE; break; @@ -580,7 +580,7 @@ I64 TermRightClickLink(CDoc *doc,CDocEntry *doc_e) result=!ToBool(Cmp(st)); break; case RIGHT_LOAD: - if (FileExtDot(st) && !FilesFindMatch("*.BIN*",st)) { + if (FileExtDot(st) && !FilesFindMatch(st,"*.BIN*")) { if (!PopUpCancelOk(ST_WARN_ST "Not .BIN File\n\n")) { send_new_line=TRUE; break; @@ -591,7 +591,7 @@ I64 TermRightClickLink(CDoc *doc,CDocEntry *doc_e) result=ToBool(Load(st)); break; case RIGHT_BINREP: - if (FileExtDot(st) && !FilesFindMatch("*.BIN*",st)) { + if (FileExtDot(st) && !FilesFindMatch(st,"*.BIN*")) { if (!PopUpCancelOk(ST_WARN_ST "Not .BIN File\n\n")) { send_new_line=TRUE; break; @@ -603,20 +603,20 @@ I64 TermRightClickLink(CDoc *doc,CDocEntry *doc_e) break; case RIGHT_COPY: StrCpy(fn.name,st); - if (DocFormDo(fn.name,"CEdFileName")) { + if (DocFormDo(&fn)) { result=ToBool(Copy(st,fn.name)); } else send_new_line=TRUE; break; case RIGHT_MOVE: StrCpy(fn.name,st); - if (DocFormDo(fn.name,"CEdFileName")) + if (DocFormDo(&fn)) result=Move(st,fn.name); else send_new_line=TRUE; break; case RIGHT_DEBUG: - if (FileExtDot(st) && !FilesFindMatch(FILENAME_MASK_JIT,st)) { + if (FileExtDot(st) && !FilesFindMatch(st,FILEMASK_JIT)) { if (!PopUpCancelOk(ST_WARN_ST "Not .CPP File\n\n")) { send_new_line=TRUE; break; @@ -652,7 +652,7 @@ public U0 DocDm(U8 *buf,I64 cnt=0x80) CDocEntry *doc_e; CDoc *doc=DocPut; Bool unlock=DocLock(doc); - doc_e=DocPrintF(doc,"$$HX-Z,%d,16$$",cnt); + doc_e=DocPrint(doc,"$$HX-Z,%d,16$$",cnt); doc_e->data=buf; doc->cur_entry=doc_e->next; DocRecalc(doc); @@ -668,7 +668,7 @@ public U0 DocD(U8 *buf,I64 cnt=0x80) CDocEntry *doc_e; CDoc *doc=DocPut; Bool unlock=DocLock(doc); - doc_e=DocPrintF(doc,"$$HX,%d,16$$",cnt); + doc_e=DocPrint(doc,"$$HX,%d,16$$",cnt); doc_e->data=buf; doc->cur_entry=doc_e->next; DocRecalc(doc); diff --git a/TempleOS/Adam/Doc/DocNew.CPP b/TempleOS/Adam/Doc/DocNew.CPP index be56d6f..633fe90 100644 --- a/TempleOS/Adam/Doc/DocNew.CPP +++ b/TempleOS/Adam/Doc/DocNew.CPP @@ -10,9 +10,7 @@ U0 DocTablesInit() 1<tag && *doc_e->tag) b->tag=StrNew(doc_e->tag,doc->mem_task); } else { - DbgStr("Bin Not Found",3000); + RawStr("Bin Not Found",3000); doc_e->type=doc_e->flags2=doc_e->flags1=0; doc_e->type_u8=DOCT_ERROR; } @@ -201,13 +199,36 @@ U0 DocBinDel(CDoc *doc,CDocBin *b) Free(b); } } else - DbgStr("DocBinDel",3000); + RawStr("DocBinDel",3000); +} + +Bool IsEditableText(CDocEntry *doc_e) +{ + if (doc_e->type_u8==DOCT_TEXT&& + !(doc_e->flags1&DOCEG1_DONT_EDIT)&&!(doc_e->flags2&DOCEG2_DONT_EDIT)) + return TRUE; + else + return FALSE; +} + +CDocEntry *DocEntryNew(CDoc *doc,CDocEntry *doc_ce,U8 *tag) +{ + CDocEntry *result=CAlloc(sizeof(CDocEntryBase),doc->mem_task); + result->type=doc_ce->type; + result->flags1=doc_ce->flags1; + result->flags2=doc_ce->flags2; + result->tag=tag; + result->max_col=StrLen(tag); + result->x=doc_ce->x; + result->y=doc_ce->y; + result->page_line_num=doc_ce->page_line_num; + return result; } public U0 DocEntryDel(CDoc *doc,CDocEntry *doc_e) { if (!doc || doc==doc_e) - DbgStr("DocEntryDel",3000); + RawStr("DocEntryDel",3000); else { if (doc->cur_entry==doc_e) doc->cur_entry=doc_e->next; @@ -596,7 +617,7 @@ U0 DocDataFmt(CDocEntry *doc_e) else d=*ptr(I64 *); if (doc_e->type_u8==DOCT_DATA) { - SPrintF(doc_e->tag,doc_e->aux_str,d,doc_e->my_fmt_data); + SPrint(doc_e->tag,doc_e->aux_str,d,doc_e->my_fmt_data); if (doc_e->flags1 & DOCEF1_HAS_TERMINATOR) { i=StrLen(doc_e->tag); doc_e->tag[i++]='_'; @@ -612,7 +633,7 @@ U0 DocDataFmt(CDocEntry *doc_e) } } -U0 DocDataGet(CDocEntry *doc_e) +U0 DocDataScan(CDocEntry *doc_e) { I64 i,d; U8 *ptr; @@ -628,11 +649,11 @@ U0 DocDataGet(CDocEntry *doc_e) if (i>doc_e->len+doc_e->min_col) doc_e->tag[doc_e->len+doc_e->min_col]=0; if (doc_e->flags1&(DOCEF1_U8|DOCEF1_U16|DOCEF1_U32)) { - GetF(doc_e->tag,doc_e->aux_str,&d,doc_e->my_fmt_data); + Scan(doc_e->tag,doc_e->aux_str,&d,doc_e->my_fmt_data); if (doc_e->flags1 & DOCEF1_HAS_TERMINATOR) doc_e->tag[i]='_'; } else { - GetF(doc_e->tag,doc_e->aux_str,ptr,doc_e->my_fmt_data); + Scan(doc_e->tag,doc_e->aux_str,ptr,doc_e->my_fmt_data); if (doc_e->flags1 & DOCEF1_HAS_TERMINATOR) doc_e->tag[i]='_'; return; diff --git a/TempleOS/Adam/Doc/DocOpt.CPP b/TempleOS/Adam/Doc/DocOpt.CPP index aad8139..a0ca4b6 100644 --- a/TempleOS/Adam/Doc/DocOpt.CPP +++ b/TempleOS/Adam/Doc/DocOpt.CPP @@ -2,7 +2,7 @@ I64 DocOptEntry(CDoc *,CDocEntry *doc_e) { - U8 *st,*st2,**dst; + U8 *st,*st2,**_dst; I64 i,result=0; if (doc_e->flags1&DOCEF1_LINK) { @@ -16,16 +16,16 @@ I64 DocOptEntry(CDoc *,CDocEntry *doc_e) result++; } if (doc_e->flags1 & DOCEF1_AUX_STR) - dst=&doc_e->aux_str; + _dst=&doc_e->aux_str; else - dst=&doc_e->tag; - if (StrStr(*dst,".Z")) { - st=DocLinkFile(*dst); + _dst=&doc_e->tag; + if (StrMatch(".Z",*_dst)) { + st=DocLinkFile(*_dst); if (FileFind(st)) { if (IsDotZ(st)) st[StrLen(st)-2]=0; i=StrLen(st); - if ((st2=StrStr(*dst,st)) && st2[i]=='.' && st2[i+1]=='Z') { + if ((st2=StrMatch(st,*_dst)) && st2[i]=='.' && st2[i+1]=='Z') { StrCpy(st2+i,st2+i+2); result++; } @@ -34,13 +34,13 @@ I64 DocOptEntry(CDoc *,CDocEntry *doc_e) } /* !!! Dangerous, but handy !!! if (doc_e->flags1 & DOCEF1_AUX_STR) { - if (st=StrStr(doc_e->aux_str,".Z")) { + if (st=StrMatch(".Z",doc_e->aux_str)) { StrCpy(st,st+2); result++; } } if (Bt(doc_tag_types,doc_e->type_u8)) { - if (st=StrStr(doc_e->tag,".Z")) { + if (st=StrMatch(".Z",doc_e->tag)) { StrCpy(st,st+2); result++; } @@ -88,21 +88,21 @@ public I64 DocOptFile(U8 *filename) return result; } -I64 DocOptLst(CDirEntry *tempm1) +I64 DocOptLst(CDirEntry *tempde1) { I64 result=0; - CDirEntry *tempm2; - while (tempm1) { - tempm2=tempm1->next; - if (tempm1->attr & _ATTR_DIR) { - if (tempm1->sub) { - "%S %s\n","ST_SCANNING_DIR",tempm1->full_name; - result+=DocOptLst(tempm1->sub); + CDirEntry *tempde2; + while (tempde1) { + tempde2=tempde1->next; + if (tempde1->attr & _ATTR_DIR) { + if (tempde1->sub) { + "%S %s\n","ST_SCANNING_DIR",tempde1->full_name; + result+=DocOptLst(tempde1->sub); } } else - result+=DocOptFile(tempm1->full_name); - CDirEntryDel(tempm1); - tempm1=tempm2; + result+=DocOptFile(tempde1->full_name); + DirEntryDel(tempde1); + tempde1=tempde2; } return result; } @@ -110,7 +110,7 @@ I64 DocOptLst(CDirEntry *tempm1) public I64 DocOpt(U8 *files_find_mask="*",U8 *fu_flags=NULL) {//Optimize Files I64 f=0; - GetFFlags(&f,Define("ST_FILE_UTIL_FLAGS"),"+r+T"); - GetFFlags(&f,Define("ST_FILE_UTIL_FLAGS"),fu_flags); + ScanFlags(&f,Define("ST_FILE_UTIL_FLAGS"),"+r+T"); + ScanFlags(&f,Define("ST_FILE_UTIL_FLAGS"),fu_flags); return DocOptLst(FilesFind(files_find_mask,f)); } diff --git a/TempleOS/Adam/Doc/DocPlain.CPP b/TempleOS/Adam/Doc/DocPlain.CPP index 422617f..f0e1b6a 100644 --- a/TempleOS/Adam/Doc/DocPlain.CPP +++ b/TempleOS/Adam/Doc/DocPlain.CPP @@ -5,7 +5,7 @@ U0 PrsDocFlags(CLex *lx,I64 *flags1,I64 *flags2,U32 *type) while (lx->token=='+' || lx->token=='-') { turn_on= lx->token=='+'; if (Lex(lx)==TK_IDENT) { - i=DefineMatch(lx->ident,"ST_DOC_FLAGS",LEF_EXACT); + i=DefineMatch(lx->ident,"ST_DOC_FLAGS",LMF_EXACT); if (i<0) *type=DOCT_ERROR; else if (i<64) { @@ -125,12 +125,6 @@ DOCEF1_ESC | DOCEF1_LEFT_EXP, //DOCT_HEX_ED DOCEF1_DATA_IS_PTR | DOCEF1_ZERO_BASED, -//DOCT_HIDE_START -DOCEF1_CHECKED_COLLAPSED|DOCEF1_CHECK_COLLAPSABLE, - -//DOCT_HIDE_END -0, - //DOCT_TREE DOCEF1_CHECKED_COLLAPSED|DOCEF1_CHECK_COLLAPSABLE|DOCEF1_TREE, @@ -273,12 +267,6 @@ I64 doc_dft_flags2[DOCT_NUM_TYPES]={ //DOCT_HEX_ED 0, -//DOCT_HIDE_START -0, - -//DOCT_HIDE_END -0, - //DOCT_TREE 0, @@ -421,12 +409,6 @@ DOCET_UNDERLINE, //DOCT_HEX_ED 0, -//DOCT_HIDE_START -DOCET_UNDERLINE, - -//DOCT_HIDE_END -0, - //DOCT_TREE DOCET_UNDERLINE, @@ -581,17 +563,17 @@ U8 *Doc2PlainText(CDoc *doc,CDocEntry *doc_e) buf2=doc_e->tag+3; else buf2=doc_e->tag; - buf2=MSPrintF("%s\"%$$Q\",",buf,buf2); + buf2=MPrint("%s\"%$$Q\",",buf,buf2); Free(buf); buf=buf2; break; case DOCT_DATA: - buf2=MSPrintF("%s%d,",buf,doc_e->len); + buf2=MPrint("%s%d,",buf,doc_e->len); Free(buf); buf=buf2; break; case DOCT_HEX_ED: - buf2=MSPrintF("%s%d,",buf,doc_e->len); + buf2=MPrint("%s%d,",buf,doc_e->len); Free(buf); buf=buf2; - buf2=MSPrintF("%s%d,",buf,doc_e->hex_ed_width); + buf2=MPrint("%s%d,",buf,doc_e->hex_ed_width); Free(buf); buf=buf2; break; case DOCT_PAGE_LEN: @@ -614,7 +596,7 @@ U8 *Doc2PlainText(CDoc *doc,CDocEntry *doc_e) case DOCT_SHIFTED_X: case DOCT_SHIFTED_Y: if (doc_e->attr!=DOC_DFT) { - buf2=MSPrintF("%s%d,",buf,doc_e->attr); + buf2=MPrint("%s%d,",buf,doc_e->attr); Free(buf); buf=buf2; } case DOCT_NUM_TYPES-1: //nobound_switch @@ -629,59 +611,59 @@ U8 *Doc2PlainText(CDoc *doc,CDocEntry *doc_e) Btr(&flags1,j); nobound_switch (j) { case DOCEf1_SCROLLING_X: - buf2=MSPrintF("%s%d",buf,doc_e->scroll_len); + buf2=MPrint("%s%d",buf,doc_e->scroll_len); Free(buf); buf=buf2; break; case DOCEf1_SHIFTED_X: j=doc_e->type.u16[1]&0x1F; if (j&0x10) j|=0xFFFFFFF0; - buf2=MSPrintF("%s%d",buf,j); + buf2=MPrint("%s%d",buf,j); Free(buf); buf=buf2; break; case DOCEf1_SHIFTED_Y: j=doc_e->type>>21 &0x1F; if (j&0x10) j|=0xFFFFFFF0; - buf2=MSPrintF("%s%d",buf,j); + buf2=MPrint("%s%d",buf,j); Free(buf); buf=buf2; break; case DOCEf1_AUX_STR: - buf2=MSPrintF("%s\"%$$Q\"",buf,doc_e->aux_str); + buf2=MPrint("%s\"%$$Q\"",buf,doc_e->aux_str); Free(buf); buf=buf2; break; case DOCEf1_LEFT_EXP: - buf2=MSPrintF("%s%d",buf,doc_e->left_exp); + buf2=MPrint("%s%d",buf,doc_e->left_exp); Free(buf); buf=buf2; break; case DOCEf1_LEFT_MACRO: - buf2=MSPrintF("%s\"%$$Q\"",buf,doc_e->left_macro); + buf2=MPrint("%s\"%$$Q\"",buf,doc_e->left_macro); Free(buf); buf=buf2; break; case DOCEf1_RIGHT_EXP: - buf2=MSPrintF("%s%d",buf,doc_e->right_exp); + buf2=MPrint("%s%d",buf,doc_e->right_exp); Free(buf); buf=buf2; break; case DOCEf1_RIGHT_MACRO: - buf2=MSPrintF("%s\"%$$Q\"",buf,doc_e->right_macro); + buf2=MPrint("%s\"%$$Q\"",buf,doc_e->right_macro); Free(buf); buf=buf2; break; case DOCEf1_HAS_BIN: - buf2=MSPrintF("%s%d",buf,doc_e->bin_num); + buf2=MPrint("%s%d",buf,doc_e->bin_num); Free(buf); buf=buf2; break; case DOCEf1_WIDTH: - buf2=MSPrintF("%s%d",buf,doc_e->width); + buf2=MPrint("%s%d",buf,doc_e->width); Free(buf); buf=buf2; break; case DOCEf1_HEIGHT: - buf2=MSPrintF("%s%d",buf,doc_e->height); + buf2=MPrint("%s%d",buf,doc_e->height); Free(buf); buf=buf2; break; case DOCEf1_DEFINE: - buf2=MSPrintF("%s\"%$$Q\"",buf,doc_e->define_str); + buf2=MPrint("%s\"%$$Q\"",buf,doc_e->define_str); Free(buf); buf=buf2; break; case DOCEf1_HTML_LINK: - buf2=MSPrintF("%s\"%$$Q\"",buf,doc_e->html_link); + buf2=MPrint("%s\"%$$Q\"",buf,doc_e->html_link); Free(buf); buf=buf2; break; #assert DOCEf1_HTML_LINK==DOCEf1_NUM_FLAGS-1 //nobound_switch @@ -694,7 +676,7 @@ U8 *Doc2PlainText(CDoc *doc,CDocEntry *doc_e) Btr(&flags2,j); nobound_switch (j) { case DOCEf2_BIN_PTR_LINK: - buf2=MSPrintF("%s\"%$$Q\"",buf,doc_e->bin_ptr_link); + buf2=MPrint("%s\"%$$Q\"",buf,doc_e->bin_ptr_link); Free(buf); buf=buf2; break; #assert DOCEf2_BIN_PTR_LINK==DOCEf2_NUM_FLAGS-1 //nobound_switch @@ -748,11 +730,11 @@ CDocEntry *PrsDollarCmd(CDoc *doc,U8 *st) if (lx->token==TK_STR) { st2=LexExtStr(lx); if (i==DOCT_CHECK_BOX) { - st=MSPrintF("[X] %s",st2); + st=MPrint("[X] %s",st2); Free(st2); doc_e->min_col=1; } else if (doc_e->flags1 & DOCEF1_TREE) { - st=MSPrintF("+] %s",st2); + st=MPrint("+] %s",st2); Free(st2); doc_e->min_col=1; } else @@ -769,22 +751,15 @@ CDocEntry *PrsDollarCmd(CDoc *doc,U8 *st) } } break; - case DOCT_HIDE_START: - doc_e->tag=StrNew("<-",doc->mem_task); - doc_e->min_col=1; - break; - case DOCT_HIDE_END: - doc_e->tag=StrNew(">",doc->mem_task); - break; case DOCT_DATA: doc_e->flags1|=DOCEF1_AUX_STR; //don't allow switched off - doc_e->len=Expression(lx); + doc_e->len=LexExpression(lx); break; case DOCT_HEX_ED: - doc_e->len=Expression(lx); + doc_e->len=LexExpression(lx); if (lx->token==',') Lex(lx); - doc_e->hex_ed_width=Expression(lx); + doc_e->hex_ed_width=LexExpression(lx); break; case DOCT_PAGE_LEN: case DOCT_LEFT_MARGIN: @@ -808,7 +783,7 @@ CDocEntry *PrsDollarCmd(CDoc *doc,U8 *st) if (!lx->token) doc_e->attr=DOC_DFT; else - doc_e->attr=Expression(lx); + doc_e->attr=LexExpression(lx); break; case DOCT_ERROR: doc_e->flags1=0; @@ -830,13 +805,13 @@ CDocEntry *PrsDollarCmd(CDoc *doc,U8 *st) Lex(lx); nobound_switch (j) { //TODO: Might check for expression errors case DOCEf1_SCROLLING_X: - doc_e->scroll_len=Expression(lx); + doc_e->scroll_len=LexExpression(lx); break; case DOCEf1_SHIFTED_X: - doc_e->type|=(Expression(lx) & 0x1F)<<16; + doc_e->type|=(LexExpression(lx) & 0x1F)<<16; break; case DOCEf1_SHIFTED_Y: - doc_e->type|=(Expression(lx) & 0x1F)<<21; + doc_e->type|=(LexExpression(lx) & 0x1F)<<21; break; case DOCEf1_AUX_STR: if (lx->token==TK_STR) { @@ -847,7 +822,7 @@ CDocEntry *PrsDollarCmd(CDoc *doc,U8 *st) doc_e->tag=StrNew(doc_e->aux_str,doc->mem_task); //$AN,"Anchor","DataTagWidth"$ if (i==DOCT_DATA) { - if (ptr=StrStr(doc_e->aux_str,":")) + if (ptr=StrMatch(":",doc_e->aux_str)) doc_e->min_col=ptr-doc_e->aux_str+1; doc_e->tag=MAlloc(doc_e->len+doc_e->min_col+2,doc->mem_task); //+2 because "_\0" } @@ -855,7 +830,7 @@ CDocEntry *PrsDollarCmd(CDoc *doc,U8 *st) doc_e->type=DOCT_ERROR; break; case DOCEf1_LEFT_EXP: - doc_e->left_exp=Expression(lx); + doc_e->left_exp=LexExpression(lx); break; case DOCEf1_LEFT_MACRO: if (lx->token==TK_STR) { @@ -868,7 +843,7 @@ CDocEntry *PrsDollarCmd(CDoc *doc,U8 *st) doc_e->type=DOCT_ERROR; break; case DOCEf1_RIGHT_EXP: - doc_e->right_exp=Expression(lx); + doc_e->right_exp=LexExpression(lx); break; case DOCEf1_RIGHT_MACRO: if (lx->token==TK_STR) { @@ -884,13 +859,13 @@ CDocEntry *PrsDollarCmd(CDoc *doc,U8 *st) if (!lx->token) doc_e->bin_num=0; else - doc_e->bin_num=Expression(lx); + doc_e->bin_num=LexExpression(lx); break; case DOCEf1_WIDTH: - doc_e->width=Expression(lx); + doc_e->width=LexExpression(lx); break; case DOCEf1_HEIGHT: - doc_e->height=Expression(lx); + doc_e->height=LexExpression(lx); break; case DOCEf1_DEFINE: if (lx->token==TK_STR) { @@ -954,21 +929,14 @@ public U0 DocIns(CDoc *doc,CDocEntry *doc_e) !(doc_ce->flags1&(DOCEF1_TAG_CB|DOCEF1_DEFINE|DOCEF1_HTML_LINK)) && !(doc_ce->flags2&DOCEF2_BIN_PTR_LINK) && doc->cur_data_colmax_col) { - doc_ne=CAlloc(sizeof(CDocEntryBase),doc->mem_task); - doc_ne->type=DOCT_TEXT|doc_ce->type&0xFFFFFF00; - doc_ne->x=doc_ce->x; - doc_ne->y=doc_ce->y; - doc_ne->page_line_num=doc_ce->page_line_num; - doc_ne->flags1=doc_ce->flags1; - doc_ne->flags2=doc_ce->flags2; dst=doc_ce->tag+doc->cur_data_col; - doc_ne->tag=StrNew(dst,doc->mem_task); + doc_ne=DocEntryNew(doc,doc_ce,StrNew(dst,doc->mem_task)); *dst=0; + doc_ne->type=DOCT_TEXT|doc_ce->type&0xFFFFFF00; doc_ce->max_col=doc->cur_data_col; QueIns(doc_ne,doc_ce); doc->cur_data_col=0; doc_ce=doc_ne; - doc_ce->max_col=StrLen(doc_ce->tag); } if (doc_ce->type_u8==DOCT_TEXT && doc->cur_data_col>=doc_ce->max_col) { QueIns(doc_e,doc_ce); @@ -985,8 +953,9 @@ public U0 DocIns(CDoc *doc,CDocEntry *doc_e) #help_index "Doc/Output" -public CDocEntry *DocPutS(CDoc *doc,U8 *st) -{ //Does not handle partial Doc entries +CDocEntry *DocPutS(CDoc *doc,U8 *st) +{ //Don't use this. Use $LK,"DocPrint","MN:DocPrint"$(). + //Does not handle partial Doc entries //Returns last newly created dollar-sign CDocEntry. U8 ch,*ptr=st,*ptr2,*st2,*ptr3,*ptr4,*src, *char_bitmap; @@ -1140,10 +1109,9 @@ public CDocEntry *DocPutS(CDoc *doc,U8 *st) return result; } - -public CDocEntry *DocPrintF(CDoc *doc,U8 *src,...) +public CDocEntry *DocPrint(CDoc *doc,U8 *fmt,...) { - U8 *buf=SPrintFJoin(NULL,src,argc,argv); + U8 *buf=SPrintJoin(NULL,fmt,argc,argv); CDocEntry *result=DocPutS(doc,buf); Free(buf); return result; diff --git a/TempleOS/Adam/Doc/DocPopUp.CPP b/TempleOS/Adam/Doc/DocPopUp.CPP index 5011596..d7c97b3 100644 --- a/TempleOS/Adam/Doc/DocPopUp.CPP +++ b/TempleOS/Adam/Doc/DocPopUp.CPP @@ -1,7 +1,7 @@ public I64 DocEntryRun(CDoc *doc,CDocEntry *doc_e,Bool exited) { //sometimes returns locked, sometimes unlocked U8 ch=doc->cmd_U8,*st; - I64 result=-1; + I64 result=DOCM_EXIT; DocLock(doc); if (!exited) { if (doc_e->flags1 & DOCEF1_ESC) { @@ -164,7 +164,7 @@ U8 *EdDollarTypeCB(CDoc *,CDocEntry *doc_e,CTask *mem_task) src="EOF"; else if (!src) src="ERR"; - SPrintF(st,"%-3ts",src); + SPrint(st,"%-3ts",src); return st; } @@ -218,47 +218,47 @@ public Bool DocDo(CDoc *doc,I64 doc_flags=0) doc->win_task=Fs; bdoc=DocNew; bdoc->flags|=DOCF_BORDER_DOC; - DocPutS(bdoc,"$$CM+TY+LX+NC,0,-1$$"); + DocPrint(bdoc,"$$CM+TY+LX+NC,0,-1$$"); if (Bt(&Fs->display_flags,DISPLAYf_HAS_CLOSE_WIN)) - DocPutS(bdoc,"$$TX+RX+BD,\"[X]\"$$"); - DocPutS(bdoc,"$$BK,1$$$$TX+LX+BD,\"MENU\"$$$$BK,0$$"); + DocPrint(bdoc,"$$TX+RX+BD,\"[X]\"$$"); + DocPrint(bdoc,"$$BK,1$$$$TX+LX+BD,\"MENU\"$$$$BK,0$$"); old_task_title=StrNew(Fs->task_title); if (Fs->title_src!=TTS_LOCKED_CONST) { Fs->title_src=TTS_ED_FILENAME; MemCpy(Fs->task_title,doc->filename.name,TASK_TITLE_LEN); } - doc_e=DocPutS(bdoc,"$$DA-T-P+BD+RD+CX+SCX+IV,140,\"%s...\",16$$"); + doc_e=DocPrint(bdoc,"$$DA-T-P+BD+RD+CX+SCX+IV,140,\"%%s...\",16$$"); doc_e->data=&Fs->task_title; DocDataFmt(doc_e); if (doc->flags & DOCF_ALLOW_UNDO) { - DocPutS(bdoc,"$$CM+BY+LX+NC,1,1$$"); - doc_e=DocPutS(bdoc,"$$DA+BD+RD-T,32,\"Undo:%03d\"$$\n"); + DocPrint(bdoc,"$$CM+BY+LX+NC,1,1$$"); + doc_e=DocPrint(bdoc,"$$DA+BD+RD-T-U64+U32,32,\"Undo:%%03d\"$$\n"); doc_e->data=&doc->undo_cnt; DocDataFmt(doc_e); } - DocPutS(bdoc,"$$CM+BY+RX+NC,-30,1$$"); - doc_e=DocPutS(bdoc,"$$TX+BD+TC,\" \"$$"); + DocPrint(bdoc,"$$CM+BY+RX+NC,-30,1$$"); + doc_e=DocPrint(bdoc,"$$TX+BD+TC,\" \"$$"); doc_e->user_data=doc; doc_e->tag_cb=&EdMoreCB; - doc_e=DocPutS(bdoc,"$$TX+BD+TC,\" \"$$"); + doc_e=DocPrint(bdoc,"$$TX+BD+TC,\" \"$$"); doc_e->user_data=doc; doc_e->tag_cb=&EdDollarTypeCB; - doc_e=DocPutS(bdoc,"$$TX+BD+TC,\" \"$$"); + doc_e=DocPrint(bdoc,"$$TX+BD+TC,\" \"$$"); doc_e->user_data=doc; doc_e->tag_cb=&EdFilterCB; - doc_e=DocPutS(bdoc,"$$TX+BD+TC,\" \"$$"); + doc_e=DocPrint(bdoc,"$$TX+BD+TC,\" \"$$"); doc_e->user_data=doc; doc_e->tag_cb=&EdOverStrikeCB; - doc_e=DocPutS(bdoc,"$$TX+BD+TC,\" \"$$"); + doc_e=DocPrint(bdoc,"$$TX+BD+TC,\" \"$$"); doc_e->user_data=doc; doc_e->tag_cb=&EdDollarCB; - doc_e=DocPutS(bdoc,"$$DA+BD+RD-T,32,\"Line:%04d \"$$"); + doc_e=DocPrint(bdoc,"$$DA+BD+RD-T,32,\"Line:%%04d \"$$"); doc_e->data=&doc->line; DocDataFmt(doc_e); - doc_e=DocPutS(bdoc,"$$DA+BD+RD-T,32,\"Col:%04d\"$$\n"); + doc_e=DocPrint(bdoc,"$$DA+BD+RD-T,32,\"Col:%%04d\"$$\n"); doc_e->data=&doc->col; DocDataFmt(doc_e); @@ -291,7 +291,7 @@ public Bool DocDo(CDoc *doc,I64 doc_flags=0) doc_e=doc->root.next; while (doc_e!=doc) { if (doc_e->type_u8==DOCT_DATA || doc_e->type_u8==DOCT_CHECK_BOX) - DocDataGet(doc_e); + DocDataScan(doc_e); doc_e=doc_e->next; } } @@ -317,7 +317,7 @@ public Bool DocDo(CDoc *doc,I64 doc_flags=0) #help_index "Doc/Input" -public Bool DocFormDo(U8 *D,U8 *class_name, +public Bool DocFormDo(U8 *_d,U8 *class_name=lastclass, I64 doc_flags=0,U8 *header=NULL,U8 *footer=NULL) //Supply a class name that has fmtstr definitions //and this routine will allow user input. @@ -333,31 +333,32 @@ public Bool DocFormDo(U8 *D,U8 *class_name, return FALSE; doc=DocNew; StrCpy(doc->desc,"Form"); - if (header) DocPutS(doc,header); + if (header) DocPrint(doc,"%s",header); doc->flags|=DOCF_OVERSTRIKE|DOCF_FORM; if (doc_flags&DOF_MIN_SIZE) doc->flags|=DOCF_MIN_SIZE; ml=tempc->member_lst; while (ml) { if (fmtstr=MemberMetaData("fmtstr",ml)) { - doc_e=DocPutS(doc,fmtstr); - doc_e->data=D+ml->offset; + doc_e=DocPrint(doc,"%s",fmtstr); + doc_e->data=_d+ml->offset; doc_e->my_fmt_data=MemberMetaData("fmtdata",ml); DocDataFmt(doc_e); } ml=ml->next; } - if (footer) DocPutS(doc,footer); + if (footer) DocPrint(doc,"%s",footer); if (doc->root.next!=doc) { Fs->border_src=BDS_CONST; DocRecalc(doc); if (DocDo(doc,doc_flags)) { doc_e=doc->cur_entry; + result=TRUE; if (doc_e!=doc) { - DocEntryRun(doc,doc_e,TRUE); + if (DocEntryRun(doc,doc_e,TRUE)==DOCM_CANCEL) + result=FALSE; DocUnlock(doc); } - result=TRUE; } } DocDel(doc); @@ -431,7 +432,7 @@ public I64 PopUp(U8 *msg,CTask *parent=NULL,CTask **_pu_task=NULL) #help_index "Doc/Output" public CTask *PopUpViewDoc(CDoc *doc,I64 doc_flags=0) { - U8 *buf=MSPrintF("if (!IsSysDeterministic) Preempt(ON);DocDo(0x%X,0x%X);",doc,doc_flags); + U8 *buf=MPrint("if (!IsSysDeterministic) Preempt(ON);DocDo(0x%X,0x%X);",doc,doc_flags); CTask *task=Spawn(&SrvUserCmdLine,NULL,"View",,Fs); TaskExeStrQue(task,NULL,buf,1<task_end_cb=&PopUpViewStrTaskEndCB; return task; } @@ -462,10 +463,10 @@ public I64 PopUpMenu(CDoc *doc,I64 doc_flags=0) return SrvUser("DocMenuDo(0x%X,0x%X);",doc,doc_flags); } -public Bool PopUpForm(U8 *D,U8 *class_name,I64 doc_flags=DOF_MIN_SIZE, +public Bool PopUpForm(U8 *_d,U8 *class_name=lastclass,I64 doc_flags=DOF_MIN_SIZE, U8 *header=NULL,U8 *footer=NULL) { - return SrvUser("DocFormDo(0x%X,0x%X,0x%X,0x%X,0x%X);",D,class_name, + return SrvUser("DocFormDo(0x%X,0x%X,0x%X,0x%X,0x%X);",_d,class_name, doc_flags,header,footer); } @@ -474,10 +475,10 @@ public U8 *PopUpPickFile(U8 *dir=NULL) { U8 *result,*st,*st2; if (dir) - st=MSPrintF("Cd(\"%Q\");FileMgr(FM_PICK_FILE,Fs->parent_task);",dir); + st=MPrint("Cd(\"%Q\");FileMgr(FM_PICK_FILE,Fs->parent_task);",dir); else { st2=CurDir; - st=MSPrintF("Cd(\"%Q\");FileMgr(FM_PICK_FILE,Fs->parent_task);",st2); + st=MPrint("Cd(\"%Q\");FileMgr(FM_PICK_FILE,Fs->parent_task);",st2); Free(st2); } result=PopUp(st,Fs); @@ -489,10 +490,10 @@ public U8 *PopUpPickDir(U8 *dir=NULL) { U8 *result,*st,*st2; if (dir) - st=MSPrintF("Cd(\"%Q\");FileMgr(FM_PICK_DIR,Fs->parent_task);",dir); + st=MPrint("Cd(\"%Q\");FileMgr(FM_PICK_DIR,Fs->parent_task);",dir); else { st2=CurDir; - st=MSPrintF("Cd(\"%Q\");FileMgr(FM_PICK_DIR,Fs->parent_task);",st2); + st=MPrint("Cd(\"%Q\");FileMgr(FM_PICK_DIR,Fs->parent_task);",st2); Free(st2); } result=PopUp(st,Fs); @@ -507,7 +508,7 @@ public U8 *FileNameForm(U8 *dft=NULL,I64 doc_flags=0,CTask *mem_task=NULL) StrCpy(fn.name,dft); else *fn.name=0; - if (DocFormDo(fn.name,"CEdFileName",doc_flags)) + if (DocFormDo(&fn,,doc_flags)) return StrNew(fn.name,mem_task); else return NULL; @@ -515,7 +516,7 @@ public U8 *FileNameForm(U8 *dft=NULL,I64 doc_flags=0,CTask *mem_task=NULL) public U8 *PopUpFileName(U8 *dft=NULL,I64 doc_flags=0) { - U8 *st=MSPrintF("FileNameForm(\"%Q\",0x%X,Fs->parent_task);",dft,doc_flags|DOF_MIN_SIZE), + U8 *st=MPrint("FileNameForm(\"%Q\",0x%X,Fs->parent_task);",dft,doc_flags|DOF_MIN_SIZE), *result=PopUp(st,Fs); Free(st); return result; @@ -535,21 +536,21 @@ Bool PopUpCd() } #help_index "Doc/Input" -public U8 *PopUpPickLstEntry(U8 *lst) +public U8 *PopUpPickLst(U8 *lst) { I64 i=0; CDoc *doc=DocNew; - DocPutS(doc,"$$FG,LTBLUE$$"); + DocPrint(doc,"$$FG,LTBLUE$$"); while (*lst) { if (*lst=='@') { //Check for '@' alias lst entry i--; lst++; } - DocPrintF(doc,"$$MU,\"%s\",0x%08X$$\n", + DocPrint(doc,"$$MU,\"%s\",0x%08X$$\n", lst,i++); lst+=StrLen(lst)+1; } - DocPutS(doc,"\n$$MU,\"CANCEL\",DOCM_CANCEL$$\n"); + DocPrint(doc,"\n$$MU,\"CANCEL\",DOCM_CANCEL$$\n"); i=PopUpMenu(doc); DocDel(doc); return i; @@ -557,16 +558,16 @@ public U8 *PopUpPickLstEntry(U8 *lst) public U8 *PopUpPickDefineSub(U8 *st) { - return PopUpPickLstEntry(Define(st)); + return PopUpPickLst(Define(st)); } public I64 PopUp1(U8 *b1,I64 n1,U8 *header=NULL,U8 *footer=NULL) { I64 i,l1=StrLen(b1); CDoc *doc=DocNew; - if (header) DocPutS(doc,header); - DocPrintF(doc,"$$CM+CX,%d,4$$$$BT,\"%s\",%d$$\n",-l1/2,b1,n1); - if (footer) DocPutS(doc,footer); + if (header) DocPrint(doc,"%s",header); + DocPrint(doc,"$$CM+CX,%d,4$$$$BT,\"%s\",%d$$\n",-l1/2,b1,n1); + if (footer) DocPrint(doc,"%s",footer); i=PopUpMenu(doc); DocDel(doc); return i; @@ -577,15 +578,15 @@ public I64 PopUp2(U8 *b1,I64 n1,U8 *b2,I64 n2,U8 *header=NULL,U8 *footer=NULL) I64 i,l1=StrLen(b1),l2=StrLen(b2),y; CDoc *doc=DocNew; if (header) { - DocPutS(doc,header); + DocPrint(doc,"%s",header); y=4; } else { - DocPrintF(doc,"%*s\n",l1+l2+10,""); + DocPrint(doc,"%*s\n",l1+l2+10,""); y=3; } - DocPrintF(doc,"$$CM+CX,%d,%d$$$$BT,\"%s\",%d$$",-(l1+l2+3)>>1,y,b1,n1); - DocPrintF(doc,"$$CM+CX,%d,0$$$$BT,\"%s\",%d$$\n" ,-(l1+l2+3)>>1+l1+6,b2,n2); - if (footer) DocPutS(doc,footer); + DocPrint(doc,"$$CM+CX,%d,%d$$$$BT,\"%s\",%d$$",-(l1+l2+3)>>1,y,b1,n1); + DocPrint(doc,"$$CM+CX,%d,0$$$$BT,\"%s\",%d$$\n" ,-(l1+l2+3)>>1+l1+6,b2,n2); + if (footer) DocPrint(doc,"%s",footer); i=PopUpMenu(doc); DocDel(doc); return i; @@ -615,12 +616,12 @@ public I64 PopUpReplaceSkipAllCancel(U8 *header=NULL,U8 *footer=NULL) { I64 i; CDoc *doc=DocNew; - if (header) DocPutS(doc,header); - DocPutS(doc,"$$CM+LX,1,4$$$$BT,\"REPLACE\",RSAC_REPLACE$$" + if (header) DocPrint(doc,"%s",header); + DocPrint(doc,"$$CM+LX,1,4$$$$BT,\"REPLACE\",RSAC_REPLACE$$" "$$CM+LX,17,0$$$$BT,\"SKIP\",RSAC_SKIP$$" "$$CM+LX,1,3$$$$BT,\"ALL\",RSAC_ALL$$" "$$CM+LX,17,0$$$$BT,\"CANCEL\",DOCM_CANCEL$$\n"); - if (footer) DocPutS(doc,footer); + if (footer) DocPrint(doc,"%s",footer); i=PopUpMenu(doc); DocDel(doc); return i; @@ -630,7 +631,7 @@ U8 *DoPopUpMGetS(U8 *header,CTask *mem_task) { U8 *result,*st; if (header) - "" header; + "%s",header; st=MGetS(GETSF_WITH_NEW_LINE); result=StrNew(st,mem_task); Free(st); @@ -639,23 +640,31 @@ U8 *DoPopUpMGetS(U8 *header,CTask *mem_task) public U8 *PopUpMGetS(U8 *header=NULL) { - U8 *st=MSPrintF("DoPopUpMGetS(0x%X,0x%X);",header,Fs), + U8 *st=MPrint("DoPopUpMGetS(0x%X,0x%X);",header,Fs), *result=PopUp(st,Fs); Free(st); return result; } +public I64 PopUpI64(U8 *msg,I64 dft,I64 lo=MIN_I64,I64 hi=MAX_I64) +{ + U8 *st=MPrint("PmtI64(0x%X,0x%X,0x%X,0x%X);",msg,dft,lo,hi); + I64 result=PopUp(st,Fs); + Free(st); + return result; +} + public I64 PopUpRangeI64(I64 lo,I64 hi,I64 step=1,U8 *header=NULL,U8 *footer=NULL) { I64 i; CDoc *doc=DocNew; if (header) - DocPutS(doc,header); - DocPutS(doc,"$$FG,LTBLUE$$"); + DocPrint(doc,"%s",header); + DocPrint(doc,"$$FG,LTBLUE$$"); for (i=lo;i<=hi;i+=step) - DocPrintF(doc,"$$MU,\"%d\",%d$$\n",i,i); + DocPrint(doc,"$$MU,\"%d\",%d$$\n",i,i); if (footer) - DocPutS(doc,footer); + DocPrint(doc,"%s",footer); i=PopUpMenu(doc); DocDel(doc); return i; @@ -669,14 +678,14 @@ public F64 PopUpRangeF64(F64 lo,F64 hi,F64 step, U8 buf[136]; CDoc *doc=DocNew; if (header) - DocPutS(doc,header); - DocPutS(doc,"$$FG,LTBLUE$$"); + DocPrint(doc,"%s",header); + DocPrint(doc,"$$FG,LTBLUE$$"); for (d=lo;d<=hi;d+=step) { - SPrintF(buf,fmt,d); - DocPrintF(doc,"$$MU,\"%s\",0x%X$$\n",buf,d); + SPrint(buf,fmt,d); + DocPrint(doc,"$$MU,\"%s\",0x%X$$\n",buf,d); } if (footer) - DocPutS(doc,footer); + DocPrint(doc,"%s",footer); i=PopUpMenu(doc); DocDel(doc); return i(F64); @@ -690,14 +699,14 @@ public F64 PopUpRangeF64Exp(F64 lo,F64 hi,F64 factor, U8 buf[136]; CDoc *doc=DocNew; if (header) - DocPutS(doc,header); - DocPutS(doc,"$$FG,LTBLUE$$"); + DocPrint(doc,"%s",header); + DocPrint(doc,"$$FG,LTBLUE$$"); for (d=lo;d<=hi;d*=factor) { - SPrintF(buf,fmt,d); - DocPrintF(doc,"$$MU,\"%s\",0x%X$$\n",buf,d); + SPrint(buf,fmt,d); + DocPrint(doc,"$$MU,\"%s\",0x%X$$\n",buf,d); } if (footer) - DocPutS(doc,footer); + DocPrint(doc,"%s",footer); i=PopUpMenu(doc); DocDel(doc); return i(F64); @@ -717,7 +726,7 @@ public I64 AdamFile(U8 *filename,Bool warn_ext=TRUE) *name2=DftExt(name,"CPP.Z"); I64 result=0; if (warn_ext && - !FilesFindMatch(FILENAME_MASK_JIT,name2) && + !FilesFindMatch(name2,FILEMASK_JIT) && !PopUpCancelOk(ST_WARN_ST "Not .CPP File\n\n")) okay=FALSE; if (okay) @@ -735,11 +744,11 @@ public I64 PopUpFile(U8 *filename,Bool warn_ext=TRUE,CTask *parent=NULL,CTask ** *name2=DftExt(name,"CPP.Z"); I64 result=0; if (warn_ext && - !FilesFindMatch(FILENAME_MASK_JIT,name2) && + !FilesFindMatch(name2,FILEMASK_JIT) && !PopUpCancelOk(ST_WARN_ST "Not .CPP File\n\n")) okay=FALSE; if (okay) { - st=MSPrintF("\"$$$$WW+H,1$$$$\";Auto(\"ExeFile(\\\"%s\\\");\\n\");UserTaskCont;",name2); + st=MPrint("\"$$$$WW+H,1$$$$\";Auto(\"ExeFile(\\\"%s\\\");\\n\");UserTaskCont;",name2); result=PopUp(st,parent,_pu_task); Free(st); } @@ -754,13 +763,13 @@ public I64 PopUpColor(U8 *header=NULL,Bool allow_transparent=TRUE,Bool allow_dft I64 i; CDoc *doc=DocNew; if (header) - DocPutS(doc,header); + DocPrint(doc,"%s",header); if (allow_transparent) - DocPutS(doc,"$$MU,\"TRANSPARENT\",COLOR_TRANSPARENT$$\n"); + DocPrint(doc,"$$MU,\"TRANSPARENT\",COLOR_TRANSPARENT$$\n"); for (i=0;i<16;i++) - DocPrintF(doc,"$$BG,%d$$$$MU,\"__%-8Z__\",%d$$$$BG$$\n",i,i,"ST_COLORS",i); + DocPrint(doc,"$$BG,%d$$$$MU,\"__%-8Z__\",%d$$$$BG$$\n",i,i,"ST_COLORS",i); if (allow_dft) - DocPutS(doc,"$$BG,WHITE$$$$MU,\"DEFAULT\",DOC_DFT$$$$BG$$"); + DocPrint(doc,"$$BG,WHITE$$$$MU,\"DEFAULT\",DOC_DFT$$$$BG$$"); i=PopUpMenu(doc); DocDel(doc); return i; @@ -771,23 +780,23 @@ public I64 PopUpColorLighting(U8 *header=NULL) I64 i; CDoc *doc=DocNew; if (header) - DocPutS(doc,header); - DocPutS(doc,"\nSingle-Sided means both sides same color." + DocPrint(doc,"%s",header); + DocPrint(doc,"\nSingle-Sided means both sides same color." "\nDouble-Sided means back side darker." "\n" "\nHalf-Range means 0 to [0,7]" "\n [8,15]-8 to [8,15]" "\nFull-Range means 0 to [0,7] to [0,7]+8" "\n"); - DocPutS(doc,"\n$$FG,LTPURPLE$$Single-Sided Full-Range Double-Sided Full-Range\n$$FG,BLACK$$"); + DocPrint(doc,"\n$$FG,LTPURPLE$$Single-Sided Full-Range Double-Sided Full-Range\n$$FG,BLACK$$"); for (i=0;i<8;i++) { - DocPrintF(doc,"$$BG,%d$$$$MU,\"__%-19Z__\",%d$$$$BG$$ ",i,i,"ST_COLORS",i); - DocPrintF(doc,"$$BG,%d$$$$MU,\"__%-19Z__\",%d$$$$BG$$\n",i,i,"ST_COLORS",ROPF_TWO_SIDED+i); + DocPrint(doc,"$$BG,%d$$$$MU,\"__%-19Z__\",%d$$$$BG$$ ",i,i,"ST_COLORS",i); + DocPrint(doc,"$$BG,%d$$$$MU,\"__%-19Z__\",%d$$$$BG$$\n",i,i,"ST_COLORS",ROPF_TWO_SIDED+i); } - DocPutS(doc,"\n$$FG,LTPURPLE$$Single-Sided Half-Range Double-Sided Half-Range\n$$FG,BLACK$$"); + DocPrint(doc,"\n$$FG,LTPURPLE$$Single-Sided Half-Range Double-Sided Half-Range\n$$FG,BLACK$$"); for (i=0;i<16;i++) { - DocPrintF(doc,"$$BG,%d$$$$MU,\"__%-19Z__\",%d$$$$BG$$ ",i,i,"ST_COLORS",ROPF_HALF_RANGE_COLOR+i); - DocPrintF(doc,"$$BG,%d$$$$MU,\"__%-19Z__\",%d$$$$BG$$\n",i,i,"ST_COLORS",ROPF_TWO_SIDED+ROPF_HALF_RANGE_COLOR+i); + DocPrint(doc,"$$BG,%d$$$$MU,\"__%-19Z__\",%d$$$$BG$$ ",i,i,"ST_COLORS",ROPF_HALF_RANGE_COLOR+i); + DocPrint(doc,"$$BG,%d$$$$MU,\"__%-19Z__\",%d$$$$BG$$\n",i,i,"ST_COLORS",ROPF_TWO_SIDED+ROPF_HALF_RANGE_COLOR+i); } i=PopUpMenu(doc); DocDel(doc); @@ -819,7 +828,7 @@ Bool PopUpTransform(I64 *r) tf->x_offset=0.0; tf->y_offset=0.0; tf->z_offset=0.0; - if (PopUpForm(tf,"CTransformForm")) { + if (PopUpForm(tf)) { MemSet(r,0,16*sizeof(I64)); r[0] =tf->x_scale*gr_scale; r[5] =tf->y_scale*gr_scale; @@ -855,7 +864,7 @@ U0 DrawIt(CTask *task,CDC *dc) else i1=COLOR_TRANSPARENT; dc->color=j1+i1<<16+ROPF_DITHER; - GrRect(dc,i*PU_SPACING,j*PU_SPACING+NamedFramePtr("DitherDoFrame",task),PU_SPACING,PU_SPACING); + GrRect(dc,i*PU_SPACING,j*PU_SPACING+FramePtr("DitherDoFrame",task),PU_SPACING,PU_SPACING); } i=(17*PU_SPACING+FONT_WIDTH-1)/FONT_WIDTH; if (doc->max_x>i) i=doc->max_x; @@ -867,9 +876,9 @@ I64 DitherColorDo(U8 *header=NULL) { I64 msg_code,p1,p2,result=-1,i,j; DocClear; - "" header; + "%s",header; DocRecalc(DocPut); - NamedFramePtrAdd("DitherDoFrame",(DocPut->max_y+1)*FONT_HEIGHT); + FramePtrAdd("DitherDoFrame",(DocPut->max_y+1)*FONT_HEIGHT); SettingsPush; //See $LK,"SettingsPush","MN:SettingsPush"$ Fs->draw_it=&DrawIt; do { @@ -877,7 +886,7 @@ I64 DitherColorDo(U8 *header=NULL) if (msg_code==MSG_IP_L_DOWN) { msg_code=GetMsg(&p1,&p2,1<=0 && p2>=0 && 0<=j<17 && 0<=i<17) { if (j==16) j=COLOR_TRANSPARENT; if (i==16) i=COLOR_TRANSPARENT; @@ -890,14 +899,14 @@ I64 DitherColorDo(U8 *header=NULL) while (!p1); dcd_done: SettingsPop; - NamedFramePtrDel("DitherDoFrame"); + FramePtrDel("DitherDoFrame"); return result; } public I64 PopUpColorDither(U8 *header=NULL) { U8 buf[136]; - SPrintF(buf,"DitherColorDo(0x%X);",header); + SPrint(buf,"DitherColorDo(0x%X);",header); return PopUp(buf,Fs); } diff --git a/TempleOS/Adam/Doc/DocRecalc.CPP b/TempleOS/Adam/Doc/DocRecalc.CPP index 6a2ee0e..f8df9ab 100644 --- a/TempleOS/Adam/Doc/DocRecalc.CPP +++ b/TempleOS/Adam/Doc/DocRecalc.CPP @@ -109,7 +109,6 @@ Bool DocRecalc(CDoc *doc,Bool has_cursor=FALSE,I64 recalc=DOC_RECALC_ALL) { I64 i,ii,j,k,x,x0,y,y0,D,d2,col,col2,best_col=0,best_d=MAX_I64,xx,yy,zz, num_entries=0,ijif,cur_u8_attr,temp_u32_attr, - hide_collapsed[2], cursor_y=MIN_I64,left_margin,right_margin, y_plot_top,y_plot_bottom, top,left,bottom,right,width,height,scroll_x,scroll_y, @@ -195,7 +194,7 @@ Bool DocRecalc(CDoc *doc,Bool has_cursor=FALSE,I64 recalc=DOC_RECALC_ALL) best_do_e=doc->cur_entry; if (!(doc->flags&(DOCF_PLAIN_TEXT|DOCF_PLAIN_TEXT_WITH_TABS)) && - FilesFindMatch(FILENAME_MASK_SRC,doc->filename.name)) + FilesFindMatch(doc->filename.name,FILEMASK_SRC)) doc->flags|=DOCF_HIGHLIGHT; else doc->flags&=~DOCF_HIGHLIGHT; @@ -356,9 +355,7 @@ word_wrap_start: goto word_wrap_start; } } - if (doc_e->type_u8==DOCT_TEXT && - !(doc_e->flags1&DOCEG1_DONT_EDIT) && - !(doc_e->flags2&DOCEG2_DONT_EDIT)) { + if (IsEditableText(doc_e)) { if (doc_e->flags1==doc_e2->flags1 && doc_e->flags2==doc_e2->flags2 && doc_e->type==doc_e2->type) { j=StrLen(doc_e2->tag); @@ -461,9 +458,7 @@ word_wrap2: if (doc->flags & DOCF_WORD_WRAP) { i=right_margin+1-(x+left); //Space left on line ii=x+1-s->left_margin; - if (doc_e->type_u8==DOCT_TEXT && - !(doc_e->flags1&DOCEG1_DONT_EDIT) && - !(doc_e->flags2&DOCEG2_DONT_EDIT)) { + if (IsEditableText(doc_e)) { if (doc->cur_entry==doc_e->next) { if (doc->cur_data_col==doc_e->next->min_col) i--; @@ -577,10 +572,6 @@ skip_soft_cr: case DOCT_TREE: temp_u32_attr.u8[1]|=DOC_COLOR_TREE; break; - case DOCT_HIDE_START: - case DOCT_HIDE_END: - temp_u32_attr.u8[1]|=DOC_COLOR_HIDDEN; - break; default: temp_u32_attr.u8[1]|=cur_u8_attr&15; } @@ -615,7 +606,7 @@ skip_soft_cr: if (doc_e==doc->cur_entry && doc_e->type_u8!=DOCT_TEXT) temp_u32_attr^=0x0F00; if (full_refresh && '0'<=ptr[1]<='9') { - SPrintF(buf,"<%d>",doc_e->bin_num); + SPrint(buf,"<%d>",doc_e->bin_num); k=StrLen(buf); Free(doc_e->tag); ptr=doc_e->tag=MAlloc(k+1,mem_task); @@ -632,20 +623,7 @@ skip_soft_cr: *ptr++=']'; ptr=doc_e->tag; } - } else if (doc_e->type_u8==DOCT_HIDE_START) { - if (k>=2) { - *ptr++='<'; - if (doc_e->flags1 & DOCEF1_CHECKED_COLLAPSED) - *ptr++='+'; - else - *ptr++='-'; - ptr=doc_e->tag; - } - } else if (doc_e->type_u8==DOCT_HIDE_END) { - if (k>=1) - *ptr='>'; } - if (doc_e->flags1 & DOCEF1_SCROLLING_X) { j=StrLen(doc_e->tag); if (j && doc_e->scroll_len) { @@ -741,9 +719,9 @@ skip_soft_cr: k=doc_e->hex_ed_width; //columns for (i=0;ilen;i+=k) { if (doc_e->flags1 & DOCEF1_ZERO_BASED) - SPrintF(buf,"%08tX ",i); + SPrint(buf,"%08tX ",i); else - SPrintF(buf,"%08tX ",bptr); + SPrint(buf,"%08tX ",bptr); ptr=buf; while (ch=*ptr++) { if (recalc==DOC_RECALC_TO_SCREEN && !(doc_e->flags1&DOCEF1_DONT_DRAW)) { @@ -764,7 +742,7 @@ skip_soft_cr: } if (i+k>doc_e->len) k=doc_e->len-i; for (j=0;jflags1&DOCEF1_DONT_DRAW)) { @@ -1240,7 +1218,6 @@ adjust_xy: if (full_refresh) { switch (doc_e->type_u8) { case DOCT_CHECK_BOX: - case DOCT_HIDE_START: doc_e->max_col=2; break; case DOCT_TREE: @@ -1248,7 +1225,6 @@ adjust_xy: case DOCT_LINK: case DOCT_MENU_VAL: case DOCT_MACRO: - case DOCT_HIDE_END: doc_e->max_col=1; break; default: @@ -1304,35 +1280,6 @@ adjust_xy: } while (doc_e2!=doc && j>i); } } - if (doc_e->type_u8 == DOCT_HIDE_START) { - if (doc_e->flags1 & DOCEF1_ALIAS) - alias=doc_e; - else - alias=NULL; - doc_e2=doc_e->next; - LBtr(hide_collapsed,0); - j=1; - LBEqu(hide_collapsed,j,doc_e->flags1 & DOCEF1_CHECKED_COLLAPSED); - while (doc_e2!=doc && j>0) { - if (Bt(hide_collapsed,j)) - doc_e2->flags1|=DOCEF1_SKIP; - else - doc_e2->flags1&=~DOCEF1_SKIP; - if (doc_e2->type_u8==DOCT_HIDE_START) { - j++; - LBEqu(hide_collapsed,j,doc_e2->flags1 & DOCEF1_CHECKED_COLLAPSED); - if (Bt(hide_collapsed,j-1)) - LBts(hide_collapsed,j); - } else if (doc_e2->type_u8==DOCT_HIDE_END) { - j--; - if (Bt(hide_collapsed,j)) - doc_e2->flags1|=DOCEF1_SKIP; - else - doc_e2->flags1&=~DOCEF1_SKIP; - } - doc_e2=doc_e2->next; - } - } } doc_e2=doc_e->next; @@ -1563,7 +1510,7 @@ public U0 DocInsSafe(CDoc *doc,U8 *st) unlock=DocLock(doc); old_flags=doc->flags; doc->flags|=DOCF_NO_CURSOR; - DocPutS(doc,st); + DocPrint(doc,"%s",st); DocRecalc(doc,FALSE,DOC_RECALC_PARTIAL); doc->flags=old_flags; if (unlock) @@ -1612,7 +1559,7 @@ public U0 DocClear(CDoc *doc=NULL) } unlock=DocLock(doc); DocBottom(doc); - DocPutS(doc,"$$CL$$"); + DocPrint(doc,"$$CL$$"); DocRecalc(doc); if (unlock) DocUnlock(doc); @@ -1650,7 +1597,7 @@ public U0 DocCollapse(Bool collapse=TRUE,CDoc *doc=NULL) unlock=DocLock(doc); doc_e=doc->root.next; while (doc_e!=doc) { - if (doc_e->flags1&DOCEF1_TREE || doc_e->type_u8==DOCT_HIDE_START) + if (doc_e->flags1&DOCEF1_TREE) BEqu(&doc_e->flags1,DOCEf1_CHECKED_COLLAPSED,collapse); doc_e=doc_e->next; } diff --git a/TempleOS/Adam/Doc/DocTree.CPP b/TempleOS/Adam/Doc/DocTree.CPP index 9544b74..c9ae85e 100644 --- a/TempleOS/Adam/Doc/DocTree.CPP +++ b/TempleOS/Adam/Doc/DocTree.CPP @@ -98,8 +98,8 @@ mt_done: while (*st3) { StrFirstRem(st3,"/",st2); if (*st2) { - DocPrintF(doc,"$$TR+C,\"%s\"$$\n$$ID,2$$",st2); - doc->cur_entry=DocPutS(doc,"$$ID,-2$$"); + DocPrint(doc,"$$TR+C,\"%s\"$$\n$$ID,2$$",st2); + doc->cur_entry=DocPrint(doc,"$$ID,-2$$"); doc->cur_data_col=0; } } diff --git a/TempleOS/Adam/DocDefines.CPP b/TempleOS/Adam/DocDefines.CPP index 9f29e2b..01f9f73 100644 --- a/TempleOS/Adam/DocDefines.CPP +++ b/TempleOS/Adam/DocDefines.CPP @@ -4,56 +4,68 @@ U0 LoadDocDefines() { //These are used in documents such as $LK-A,"::/TempleOS/Doc/TrivialSolutions.TXT"$ //The $LK,"CDoc","MN:CDoc"$ framework will search the sym table for define string -//constants if you specify that. +//consts if you specify that. CBinFile *bfh=sys_boot_base-sizeof(CBinFile); - DefinePrintF( + DefinePrint( "DD_KERNEL","%08X",bfh); - DefinePrintF( + DefinePrint( "DD_KERNEL2","%09,X",bfh); bfh(I64)+=bfh->file_size-1; - DefinePrintF( + DefinePrint( "DD_KERNEL_END","%08X",bfh); - DefinePrintF( + DefinePrint( "DD_KERNEL_END2","%09,X",bfh); + bfh(I64)++; + DefinePrint( + "DD_COMPILER","%08X",bfh); + DefinePrint( + "DD_COMPILER2","%09,X",bfh); + bfh(I64)+=bfh->file_size-1; + DefinePrint( + "DD_COMPILER_END","%08X",bfh); + DefinePrint( + "DD_COMPILER_END2","%09,X",bfh); - DefinePrintF( + //$LK,"DD_BOOT_HIGH_LOC","FF:::/TempleOS/Adam/Boot/BootCD.CPP.Z,DD_BOOT_HIGH_LOC"$ + + DefinePrint( "DD_MP_VECT","%08X",MP_VECT_ADDR); - DefinePrintF( + DefinePrint( "DD_MP_VECT_END","%08X",MP_VECT_ADDR+SYS_MP_INIT_END-SYS_MP_INIT_START-1); - DefinePrintF( + DefinePrint( "DD_OS_NAME_VERSION","TempleOS V%0.2f",os_version); - DefinePrintF( - "DD_TEMPLEOS_AGE","%h56D",GetCurTimeDate-A2Date("8/1/2003")); + DefinePrint( + "DD_TEMPLEOS_AGE","%h56D",GetDateTime-A2Date("8/1/2003")); //This is cut and replaced when I generate a distro. //See $LK,"DD_TEMPLEOS_LOC","FF:::/TempleOS/Demo/AcctExample/TSDistro.CPP,DD_TEMPLEOS_LOC"$. $TR-C,"LineCnt"$ -$ID,4$DefinePrintF("DD_TEMPLEOS_LOC","122,808"); +$ID,4$DefinePrint("DD_TEMPLEOS_LOC","124,033"); $ID,-4$ - DefinePrintF( + DefinePrint( "DD_PAGE_TABLE_BASE","%08X",PAGE_TABLE_BASE); - DefinePrintF( + DefinePrint( "DD_PAGE_TABLE_BASE2","%09,X",PAGE_TABLE_BASE); - DefinePrintF( + DefinePrint( "DD_PAGE_TABLE_END","%08X",PAGE_TABLE_BASE+PAGE_TABLE_SIZE-1); - DefinePrintF( + DefinePrint( "DD_SYS_HEAP_BASE","%08X",sys_heap_base); - DefinePrintF( + DefinePrint( "DD_SYS_HEAP_BASE2","%09,X",sys_heap_base); - DefinePrintF( + DefinePrint( "DD_SYS_HEAP_LIMIT","%08X",sys_heap_limit); - DefinePrintF( + DefinePrint( "DD_SYS_HEAP_LIMIT2","%09,X",sys_heap_limit); - DefinePrintF( + DefinePrint( "DD_MAPPED_MEM_SPACE_GIG","%d Gig",MAPPED_MEM_SPACE/0x40000000); - DefinePrintF( + DefinePrint( "DD_MAPPED_MEM_SPACE_END","%010X",MAPPED_MEM_SPACE-1); - DefinePrintF( + DefinePrint( "DD_MAPPED_MEM_SPACE_END2","%014,X",MAPPED_MEM_SPACE-1); } diff --git a/TempleOS/Adam/Dsk/ChkDsk.CPP b/TempleOS/Adam/Dsk/ChkDsk.CPP index 6d0c7db..cf90af9 100644 --- a/TempleOS/Adam/Dsk/ChkDsk.CPP +++ b/TempleOS/Adam/Dsk/ChkDsk.CPP @@ -11,37 +11,37 @@ Bool ChkDskConfirm(Bool *_fix,Bool *_confirm) return *_fix; } -I64 RedSeaFSChkDskLst(CDirEntry *tempm1,U8 *bits,U8 *bits2,I64 size,I64 bpc) +I64 RedSeaFSChkDskLst(CDirEntry *tempde1,U8 *bits,U8 *bits2,I64 size,I64 bpc) { - CDirEntry *tempm2; + CDirEntry *tempde2; I64 i,j,errs=0; - while (tempm1) { - tempm2=tempm1->next; - if (tempm1->attr & _ATTR_DIR) { - if (tempm1->sub) - errs+=RedSeaFSChkDskLst(tempm1->sub,bits,bits2,size,bpc); + while (tempde1) { + tempde2=tempde1->next; + if (tempde1->attr & _ATTR_DIR) { + if (tempde1->sub) + errs+=RedSeaFSChkDskLst(tempde1->sub,bits,bits2,size,bpc); } - j=(tempm1->size+bpc-1)/bpc; + j=(tempde1->size+bpc-1)/bpc; for (i=0;icluster>size) { - PrintFErr("Invalid Cluster:%s Cluster:%X\n",tempm1->full_name, - i+tempm1->cluster); + if (i+tempde1->cluster>size) { + PrintErr("Invalid Cluster:%s Cluster:%X\n",tempde1->full_name, + i+tempde1->cluster); errs++; break; } - if (LBts(bits,i+tempm1->cluster)) { - PrintFErr("Dbl Alloc:%s Cluster:%X\n",tempm1->full_name, - i+tempm1->cluster); + if (LBts(bits,i+tempde1->cluster)) { + PrintErr("Dbl Alloc:%s Cluster:%X\n",tempde1->full_name, + i+tempde1->cluster); errs++; } - if (!LBtr(bits2,i+tempm1->cluster)) { - PrintFErr("UnAlloc:%s Cluster:%X\n",tempm1->full_name, - i+tempm1->cluster); + if (!LBtr(bits2,i+tempde1->cluster)) { + PrintErr("UnAlloc:%s Cluster:%X\n",tempde1->full_name, + i+tempde1->cluster); errs++; } } - CDirEntryDel(tempm1); - tempm1=tempm2; + DirEntryDel(tempde1); + tempde1=tempde2; } return errs; } @@ -50,7 +50,7 @@ I64 RedSeaFSChkDsk(U8 drv_let,Bool *_fix,Bool *_confirm) { I64 i,j,bpc,size,errs=0; CPrt *p=Drv2Prt(drv_let),*old_prt=Fs->cur_prt; - U8 *files_find_mask=MSPrintF("%c:/*",Prt2Drv(p)), + U8 *files_find_mask=MPrint("%c:/*",Prt2Drv(p)), *old_dir=StrNew(Fs->cur_dir), *bits,*bits2; CDirEntry *ptr,*ptr2; @@ -72,16 +72,16 @@ I64 RedSeaFSChkDsk(U8 drv_let,Bool *_fix,Bool *_confirm) for (i=0;iroot_cluster>size) { - PrintFErr("Invalid Cluster: RootDir Cluster:%X\n",i+p->root_cluster); + PrintErr("Invalid Cluster: RootDir Cluster:%X\n",i+p->root_cluster); errs++; break; } if (LBts(bits,i+p->root_cluster)) { - PrintFErr("Dbl Alloc: RootDir Cluster:%X\n",i+p->root_cluster); + PrintErr("Dbl Alloc: RootDir Cluster:%X\n",i+p->root_cluster); errs++; } if (!LBtr(bits2,i+p->root_cluster)) { - PrintFErr("UnAlloc: RootDir Cluster:%X\n",i+p->root_cluster); + PrintErr("UnAlloc: RootDir Cluster:%X\n",i+p->root_cluster); errs++; } } @@ -89,7 +89,7 @@ I64 RedSeaFSChkDsk(U8 drv_let,Bool *_fix,Bool *_confirm) errs+=RedSeaFSChkDskLst(FilesFind(files_find_mask,FUF_RECURSE),bits,bits2,size,bpc); for (i=1;inext; - if (tempm1->attr & _ATTR_DIR) { - if (tempm1->sub) - errs+=FAT32ChkDskLst(p,tempm1->sub,bits,bits2,size,bpc); + while (tempde1) { + tempde2=tempde1->next; + if (tempde1->attr & _ATTR_DIR) { + if (tempde1->sub) + errs+=FAT32ChkDskLst(p,tempde1->sub,bits,bits2,size,bpc); } i=0; - c=tempm1->cluster; + c=tempde1->cluster; while (0size) { - PrintFErr("Invalid Cluster:%s Cluster:%X\n",tempm1->full_name,c); + PrintErr("Invalid Cluster:%s Cluster:%X\n",tempde1->full_name,c); errs++; break; } if (LBts(bits,c)) { - PrintFErr("Dbl Alloc:%s Cluster:%X\n",tempm1->full_name,c); + PrintErr("Dbl Alloc:%s Cluster:%X\n",tempde1->full_name,c); errs++; } if (!bits2[c]) { - PrintFErr("UnAlloc:%s Cluster:%X\n",tempm1->full_name,c); + PrintErr("UnAlloc:%s Cluster:%X\n",tempde1->full_name,c); errs++; } else bits2[c]=0; c=ClusterNumNext(p,c); i++; } - if (!(tempm1->attr & _ATTR_DIR)) { + if (!(tempde1->attr & _ATTR_DIR)) { i*=bpc; - if (tempm1->size>i) { - PrintFErr("Allocated File Too Short:%s\n",tempm1->full_name); + if (tempde1->size>i) { + PrintErr("Allocated File Too Short:%s\n",tempde1->full_name); errs++; } - if (i>tempm1->size+bpc-1) { - PrintFWarn("Allocated File Too Long:%s\n",tempm1->full_name); + if (i>tempde1->size+bpc-1) { + PrintWarn("Allocated File Too Long:%s\n",tempde1->full_name); errs++; } } - CDirEntryDel(tempm1); - tempm1=tempm2; + DirEntryDel(tempde1); + tempde1=tempde2; } return errs; } @@ -155,7 +155,7 @@ I64 FAT32ChkDsk(U8 drv_let,Bool *_fix,Bool *_confirm) { I64 i,bpc,size,c,errs=0; CPrt *p=Drv2Prt(drv_let),*old_prt=Fs->cur_prt; - U8 *files_find_mask=MSPrintF("%c:/*",Prt2Drv(p)), + U8 *files_find_mask=MPrint("%c:/*",Prt2Drv(p)), *old_dir=StrNew(Fs->cur_dir), *bits; U32 *bits2; @@ -170,16 +170,16 @@ I64 FAT32ChkDsk(U8 drv_let,Bool *_fix,Bool *_confirm) c=p->root_cluster; while (0size) { - PrintFErr("Invalid Cluster: RootDir Cluster:%X\n",c); + PrintErr("Invalid Cluster: RootDir Cluster:%X\n",c); errs++; break; } if (LBts(bits,c)) { - PrintFErr("Dbl Alloc: RootDir Cluster:%X\n",c); + PrintErr("Dbl Alloc: RootDir Cluster:%X\n",c); errs++; } if (!bits2[c]) { - PrintFErr("UnAlloc: RootDir Cluster:%X\n",c); + PrintErr("UnAlloc: RootDir Cluster:%X\n",c); errs++; } else bits2[c]=0; @@ -191,7 +191,7 @@ I64 FAT32ChkDsk(U8 drv_let,Bool *_fix,Bool *_confirm) bits2[1]=0; //See $LK,"FAT32Fmt","MN:FAT32Fmt"$() for (i=1;i. -//See $LK-A,"::/TempleOS/Demo/Dsk/Raw.CPP"$. +//See $LK-A,"::/TempleOS/Demo/Dsk/DskRaw.CPP"$. U8 *buf=MAlloc(BLK_SIZE); RBlks(Fs->cur_prt,buf,blk,1); @@ -21,7 +21,7 @@ public U8 *DBlk(I64 blk,Bool write=FALSE) public U8 *DCluster(I64 c,Bool write=FALSE,I64 num=0) {//Dump Disk Cluster. //If you set write to TRUE, it will be written when you press . -//See $LK-A,"::/TempleOS/Demo/Dsk/Raw.CPP"$. +//See $LK-A,"::/TempleOS/Demo/Dsk/DskRaw.CPP"$. //Do $LK,"Dir","MN:Dir"$("*",TRUE); to get cluster numbers of files. U8 *buf=MAlloc(Fs->cur_prt->spc<cur_prt,c,num); @@ -40,49 +40,48 @@ public U8 *DCluster(I64 c,Bool write=FALSE,I64 num=0) #help_index "File/Program Routines" -U0 OFFlatten(CDirEntry *tempm,CDirEntry **a,I64 *i) +U0 FOFlatten(CDirEntry *tempde,CDirEntry **a,I64 *i) { - CDirEntry *tempm1; - while (tempm) { - tempm1=tempm->next; - if (tempm->attr&_ATTR_DIR) { - OFFlatten(tempm->sub,a,i); - CDirEntryDel(tempm); + CDirEntry *tempde1; + while (tempde) { + tempde1=tempde->next; + if (tempde->attr&_ATTR_DIR) { + FOFlatten(tempde->sub,a,i); + DirEntryDel(tempde); } else { - a[*i]=tempm; + a[*i]=tempde; *i=*i+1; } - tempm=tempm1; + tempde=tempde1; } } - -public I64 CFileCnt(CDirEntry *tempm) +public I64 FileCnt(CDirEntry *tempde) { I64 cnt=0; - while (tempm) { - if (tempm->attr&_ATTR_DIR) - cnt+=CFileCnt(tempm->sub); + while (tempde) { + if (tempde->attr&_ATTR_DIR) + cnt+=FileCnt(tempde->sub); else cnt++; - tempm=tempm->next; + tempde=tempde->next; } return cnt; } -I64 OFCompare(CDirEntry *e1,CDirEntry *e2) +I64 FOCompare(CDirEntry *tempde1,CDirEntry *tempde2) { - return e1->cluster-e2->cluster; + return tempde1->cluster-tempde2->cluster; } -public CDirEntry **FilesOrder(CDirEntry *tempm,I64 *_cnt=NULL) +public CDirEntry **FilesOrder(CDirEntry *tempde,I64 *_cnt=NULL) { //See $LK-A,"::/TempleOS/Demo/Dsk/OrderedIO.CPP"$. - I64 cnt=CFileCnt(tempm),i=0; - CDirEntry **a=MAlloc(sizeof(CDirEntry *)*cnt); - OFFlatten(tempm,a,&i); - QSortI64(a,cnt,&OFCompare); + I64 cnt=FileCnt(tempde),i=0; + CDirEntry **flst=MAlloc(sizeof(CDirEntry *)*cnt); + FOFlatten(tempde,flst,&i); + QSortI64(flst,cnt,&FOCompare); if (_cnt) *_cnt=cnt; - return a; + return flst; } @@ -92,22 +91,22 @@ public Bool Copy(U8 *src_files_find_mask,U8 *dst_files_find_mask=".") { Bool result=TRUE; CFileAccess *fa; - CDirEntry *tempm,*tempm1; + CDirEntry *tempde,*tempde1; U8 *st; - if (!(tempm=FilesFind(src_files_find_mask))) + if (!(tempde=FilesFind(src_files_find_mask))) return FALSE; if (IsDir(dst_files_find_mask)) { if (fa=FileAccessNew(dst_files_find_mask,TRUE)) { - while (tempm) { - tempm1=tempm->next; - if (!(tempm->attr & _ATTR_DIR)) { - st=FileNameAbs(tempm->name); - if (!CopySingle(tempm->full_name,st)) + while (tempde) { + tempde1=tempde->next; + if (!(tempde->attr & _ATTR_DIR)) { + st=FileNameAbs(tempde->name); + if (!CopySingle(tempde->full_name,st)) result=FALSE; Free(st); } - CDirEntryDel(tempm); - tempm=tempm1; + DirEntryDel(tempde); + tempde=tempde1; } FileAccessDel(fa); } @@ -125,22 +124,22 @@ public Bool Move(U8 *f1,U8 *f2) return FALSE; } -I64 PutCopyTree(CDirEntry *tempm,I64 src_dir_len,I64 dst_dir_len,U8 *dst_dir) +I64 PutCopyTree(CDirEntry *tempde,I64 src_dir_len,I64 dst_dir_len,U8 *dst_dir) { U8 *st; I64 result=1; - while (tempm) { - st=MAlloc(StrLen(tempm->full_name)+dst_dir_len+2); + while (tempde) { + st=MAlloc(StrLen(tempde->full_name)+dst_dir_len+2); MemCpy(st,dst_dir,dst_dir_len); - StrCpy(st+dst_dir_len,tempm->full_name+src_dir_len); - if (tempm->attr & _ATTR_DIR) { + StrCpy(st+dst_dir_len,tempde->full_name+src_dir_len); + if (tempde->attr & _ATTR_DIR) { MkDir(st); - result+=PutCopyTree(tempm->sub,src_dir_len,dst_dir_len,dst_dir); + result+=PutCopyTree(tempde->sub,src_dir_len,dst_dir_len,dst_dir); } else - if (CopySingle(tempm->full_name,st)) + if (CopySingle(tempde->full_name,st)) result++; Free(st); - tempm=tempm->next; + tempde=tempde->next; } return result; } @@ -148,7 +147,7 @@ I64 PutCopyTree(CDirEntry *tempm,I64 src_dir_len,I64 dst_dir_len,U8 *dst_dir) public I64 CopyTree(U8 *src_files_find_mask,U8 *dst_files_find_mask) { //returns count of copied files (not dirs) CFileAccess *fa; - CDirEntry *tempm=NULL; + CDirEntry *tempde=NULL; I64 result=0,i1,i2; U8 *st1,*st2; @@ -163,7 +162,7 @@ public I64 CopyTree(U8 *src_files_find_mask,U8 *dst_files_find_mask) Free(st1); Free(st2); if (fa=FileAccessNew(src_files_find_mask,TRUE)) { - tempm=SysFilesFind(fa->mask,FUF_RECURSE); + tempde=SysFilesFind(fa->mask,FUF_RECURSE); st1=CurDir; FileAccessDel(fa); i1=StrLen(st1); @@ -172,46 +171,46 @@ public I64 CopyTree(U8 *src_files_find_mask,U8 *dst_files_find_mask) st2=CurDir; i2=StrLen(st2); if (i2==3) i2--; - result=PutCopyTree(tempm,i1,i2,st2); + result=PutCopyTree(tempde,i1,i2,st2); FileAccessDel(fa); Free(st2); } - CDirLstDel(tempm); + DirLstDel(tempde); Free(st1); } return result; } -I64 DelTreeDirs(CDirEntry *tempm1) +I64 DelTreeDirs(CDirEntry *tempde1) { I64 result=0; - CDirEntry *tempm2; - while (tempm1) { - tempm2=tempm1->next; - if (tempm1->attr & _ATTR_DIR) { - if (tempm1->sub) - result+=DelTreeDirs(tempm1->sub); - result+=SysDel(tempm1->full_name,TRUE); + CDirEntry *tempde2; + while (tempde1) { + tempde2=tempde1->next; + if (tempde1->attr & _ATTR_DIR) { + if (tempde1->sub) + result+=DelTreeDirs(tempde1->sub); + result+=SysDel(tempde1->full_name,TRUE); } - CDirEntryDel(tempm1); - tempm1=tempm2; + DirEntryDel(tempde1); + tempde1=tempde2; } return result; } -I64 DelTreeFiles(CDirEntry *tempm1) +I64 DelTreeFiles(CDirEntry *tempde1) { I64 result=0; - CDirEntry *tempm2; - while (tempm1) { - tempm2=tempm1->next; - if (tempm1->attr & _ATTR_DIR) { - if (tempm1->sub) - result+=DelTreeFiles(tempm1->sub); + CDirEntry *tempde2; + while (tempde1) { + tempde2=tempde1->next; + if (tempde1->attr & _ATTR_DIR) { + if (tempde1->sub) + result+=DelTreeFiles(tempde1->sub); } else - result+=SysDel(tempm1->full_name,FALSE); - CDirEntryDel(tempm1); - tempm1=tempm2; + result+=SysDel(tempde1->full_name,FALSE); + DirEntryDel(tempde1); + tempde1=tempde2; } return result; } @@ -219,8 +218,8 @@ I64 DelTreeFiles(CDirEntry *tempm1) public I64 DelTree(U8 *files_find_mask,U8 *fu_flags=NULL) { I64 result=0,fuf_flags=0; - GetFFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),"+r"); - GetFFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),fu_flags); + ScanFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),"+r"); + ScanFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),fu_flags); if (IsDir(files_find_mask)) { result=DelTreeDirs(FilesFind(files_find_mask,fuf_flags)); result+=SysDel(files_find_mask,TRUE); @@ -230,7 +229,7 @@ public I64 DelTree(U8 *files_find_mask,U8 *fu_flags=NULL) return result; } -U0 TouchFile(U8 *filename,U8 *attr,CDate cdt=0) //Just one file +U0 TouchFile(U8 *filename,U8 *attr,CDate cdt=0) { CPrt *p=Drv2Prt(*filename); CDirEntry de; @@ -239,39 +238,22 @@ U0 TouchFile(U8 *filename,U8 *attr,CDate cdt=0) //Just one file if (FileFind(filename,&de,FUF_JUST_FILES)) { Free(de.full_name); if (!StrCmp(attr,"+?")) - "%-48ts %s\n",filename,SPrintFFlags(buf,Define("ST_FILE_ATTRS"),de.attr); + "%-48ts %s\n",filename,SPrintFlags(buf,Define("ST_FILE_ATTRS"),de.attr); else { StrFirstRem(cur_dir,":"); StrLastRem(cur_dir,"/"); if (!*cur_dir) StrCpy(cur_dir,"/"); - GetFFlags(&de.attr,Define("ST_FILE_ATTRS"),attr); + ScanFlags(&de.attr,Define("ST_FILE_ATTRS"),attr); if (cdt) de.datetime=cdt; else - de.datetime=GetCurTimeDate; - CDirNew(p,cur_dir,&de,FALSE); + de.datetime=GetDateTime; + DirNew(p,cur_dir,&de,FALSE); } } else PutDefineErr("ST_FILE_NOT_FOUND"); } -U0 TouchLst(CDirEntry *tempm1,U8 *attr,CDate cdt=0) -{ - CDirEntry *tempm2; - while (tempm1) { - tempm2=tempm1->next; - if (tempm1->attr & _ATTR_DIR) { - if (tempm1->sub) { - "%S%s\n","ST_SCANNING_DIR",tempm1->full_name; - TouchLst(tempm1->sub,attr,cdt); - } - } else - TouchFile(tempm1->full_name,attr,cdt); - CDirEntryDel(tempm1); - tempm1=tempm2; - } -} - public U0 Touch(U8 *files_find_mask,U8 *attr="+?",U8 *fu_flags=NULL,CDate cdt=0) { //Attr "+?" =show @@ -279,38 +261,32 @@ public U0 Touch(U8 *files_find_mask,U8 *attr="+?",U8 *fu_flags=NULL,CDate cdt=0) //To Set Date // Touch(filename,"",,datetime); I64 fuf_flags=0; - GetFFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),fu_flags); - TouchLst(FilesFind(files_find_mask,fuf_flags),attr,cdt); -} - -I64 FFLst(CDirEntry *tempm1) -{ - I64 cnt=0; - CDirEntry *tempm2; - - while (tempm1) { - tempm2=tempm1->next; - if (tempm1->attr & _ATTR_DIR) { - if (tempm1->sub) - cnt+=FFLst(tempm1->sub); - } else { - PutFileLink(tempm1->full_name); - NewLine; - cnt++; - } - CDirEntryDel(tempm1); - tempm1=tempm2; + CDirEntry *tempde,*tempde1; + ScanFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),"+f+F"); + ScanFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),fu_flags); + tempde=tempde1=FilesFind(files_find_mask,fuf_flags); + while (tempde) { + TouchFile(tempde->full_name,attr,cdt); + tempde=tempde->next; } - return cnt; + DirLstDel(tempde1); } public I64 FF(U8 *files_find_mask,U8 *fu_flags=NULL) //Files Find { I64 cnt=0,fuf_flags=0; - GetFFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),"+r"); - GetFFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),fu_flags); - cnt+=FFLst(FilesFind(files_find_mask,fuf_flags)); + CDirEntry *tempde,*tempde1; + ScanFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),"+r+f+F"); + ScanFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),fu_flags); + tempde=tempde1=FilesFind(files_find_mask,fuf_flags); + while (tempde) { + PutFileLink(tempde->full_name); + NewLine; + cnt++; + tempde=tempde->next; + } + DirLstDel(tempde1); return cnt; } @@ -386,19 +362,19 @@ public I64 UnusedDrvSpace(U8 drv_let=0) #help_index "File/Program Routines" -I64 TreeSizeFiles(CDirEntry *tempm,I64 round_to) +I64 TreeSizeFiles(CDirEntry *tempde,I64 round_to) { I64 result=0,i; - while (tempm) { + while (tempde) { if (round_to) - i=CeilU64(tempm->size,round_to); + i=CeilU64(tempde->size,round_to); else - i=tempm->size; - if (tempm->attr&_ATTR_DIR) - i+=TreeSizeFiles(tempm->sub,round_to); - tempm->user_data=i; + i=tempde->size; + if (tempde->attr&_ATTR_DIR) + i+=TreeSizeFiles(tempde->sub,round_to); + tempde->user_data=i; result+=i; - tempm=tempm->next; + tempde=tempde->next; } return result; } @@ -408,12 +384,12 @@ public I64 TreeSize(U8 *files_find_mask="/TempleOS/*",U8 *fu_flags=NULL,I64 roun //Does not include directory size of base directory, but //does include size of sub directories. I64 fuf_flags=0,result=0; - CDirEntry *tempm1=NULL; - GetFFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),"+r"); - GetFFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),fu_flags); - if (tempm1=FilesFind(files_find_mask,fuf_flags)) { - result=TreeSizeFiles(tempm1,round_to); - CDirLstDel(tempm1); + CDirEntry *tempde1=NULL; + ScanFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),"+r"); + ScanFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),fu_flags); + if (tempde1=FilesFind(files_find_mask,fuf_flags)) { + result=TreeSizeFiles(tempde1,round_to); + DirLstDel(tempde1); } return result; } diff --git a/TempleOS/Adam/Dsk/Dsk2b.CPP b/TempleOS/Adam/Dsk/Dsk2b.CPP index dc63832..ed090be 100644 --- a/TempleOS/Adam/Dsk/Dsk2b.CPP +++ b/TempleOS/Adam/Dsk/Dsk2b.CPP @@ -1,70 +1,70 @@ #help_index "File/Program Routines/Utils" -I64 CDirTreeFlattenSize(CDirEntry *tempm) +I64 DirTreeFlattenSize(CDirEntry *tempde) { I64 result=0; - while (tempm) { + while (tempde) { result+=CDIR_SIZE+1; - if (tempm->attr & _ATTR_DIR) - result+=CDirTreeFlattenSize(tempm->sub); - tempm=tempm->next; + if (tempde->attr & _ATTR_DIR) + result+=DirTreeFlattenSize(tempde->sub); + tempde=tempde->next; } return result+1; } -I64 CDirTreeFlattenFill(CDirEntry *tempm,U8 *dst) +I64 DirTreeFlattenFill(CDirEntry *tempde,U8 *dst) { I64 result=0,i; - while (tempm) { + while (tempde) { *dst++=1; result++; i=CDIR_SIZE; - MemCpy(dst,&tempm->start,i); + MemCpy(dst,&tempde->start,i); dst+=i; result+=i; - if (tempm->attr & _ATTR_DIR) { - i=CDirTreeFlattenFill(tempm->sub,dst); + if (tempde->attr & _ATTR_DIR) { + i=DirTreeFlattenFill(tempde->sub,dst); dst+=i; result+=i; } - tempm=tempm->next; + tempde=tempde->next; } *dst=0; return result+1; } -public U8 *CDirTreeFlatten(CDirEntry *tempm,I64 *_size=NULL) +public U8 *DirTreeFlatten(CDirEntry *tempde,I64 *_size=NULL) { - I64 size=CDirTreeFlattenSize(tempm); + I64 size=DirTreeFlattenSize(tempde); U8 *buf=MAlloc(size); - CDirTreeFlattenFill(tempm,buf); + DirTreeFlattenFill(tempde,buf); if (_size) *_size=size; return buf; } -U8 *CDirTreeDoUnflatten(U8 *src,CDirEntry **tempm) +U8 *DirTreeDoUnflatten(U8 *src,CDirEntry **tempde) { I64 i; - CDirEntry *tempm1; + CDirEntry *tempde1; if (*src++) { - tempm1=CAlloc(sizeof(CDirEntry)); - *tempm=tempm1; + tempde1=CAlloc(sizeof(CDirEntry)); + *tempde=tempde1; i=CDIR_SIZE; - MemCpy(&tempm1->start,src,i); + MemCpy(&tempde1->start,src,i); src+=i; - if (tempm1->attr & _ATTR_DIR) - src=CDirTreeDoUnflatten(src,&tempm1->sub); - src=CDirTreeDoUnflatten(src,&tempm1->next); + if (tempde1->attr & _ATTR_DIR) + src=DirTreeDoUnflatten(src,&tempde1->sub); + src=DirTreeDoUnflatten(src,&tempde1->next); } else - *tempm=NULL; + *tempde=NULL; return src; } -public CDirEntry *CDirTreeUnflatten(U8 *src) +public CDirEntry *DirTreeUnflatten(U8 *src) { - CDirEntry *tempm=NULL; - CDirTreeDoUnflatten(src,&tempm); - return tempm; + CDirEntry *tempde=NULL; + DirTreeDoUnflatten(src,&tempde); + return tempde; } #help_index "Install;File/Cmd Line (Typically);Cmd Line (Typically)" @@ -386,7 +386,7 @@ public U0 DskView(U8 drv_let=0) v>>1+radius*Sin(sect_end)); dc->color=j; - GrPrintF(dc,0,v-FONT_HEIGHT*j,"%C %-8Z",Prt2Drv(p), + GrPrint(dc,0,v-FONT_HEIGHT*j,"%C %-8Z",Prt2Drv(p), p->type.u16[0],"ST_PRT_TYPES"); GrFloodFill(dc, h>>1+(radius-4)*Cos((sect_start+sect_end)/2), @@ -407,6 +407,6 @@ public U0 BlkDevRep() I64 i; for (i=0;iattr & _ATTR_DIR) { - doc_e=DocPrintF(doc,"$$TR,\"%s\"$$",tempm->name); - doc_e->user_data=tempm; - tempm->user_data=doc_e; - DocPutS(doc,"\n$$ID,+2$$"); - if (tempm->sub) - CDirFileDoc(doc,tempm->sub); - DocPutS(doc,"$$ID,-2$$"); + while (tempde) { + if (tempde->attr & _ATTR_DIR) { + doc_e=DocPrint(doc,"$$TR,\"%s\"$$",tempde->name); + doc_e->user_data=tempde; + tempde->user_data=doc_e; + DocPrint(doc,"\n$$ID,+2$$"); + if (tempde->sub) + DirFileDoc(doc,tempde->sub); + DocPrint(doc,"$$ID,-2$$"); } else { - doc_e=DocPrintF(doc,"$$MU-LE,\"%s\"$$", - tempm->name); - doc_e->user_data=tempm; - tempm->user_data=doc_e; - DocPutS(doc,"\n"); + doc_e=DocPrint(doc,"$$MU-LE,\"%s\"$$", + tempde->name); + doc_e->user_data=tempde; + tempde->user_data=doc_e; + DocPrint(doc,"\n"); } - tempm=tempm->next; + tempde=tempde->next; } } @@ -34,15 +34,15 @@ CFMUncollapsedLst *FMCollectUncollapsedLst(CDoc *doc) { CDocEntry *doc_e=doc->root.next; CFMUncollapsedLst *result=NULL,*tempc; - CDirEntry *tempm; + CDirEntry *tempde; while (doc_e!=doc) { if (doc_e->type_u8==DOCT_TREE) { if (!(doc_e->flags1&DOCEF1_CHECKED_COLLAPSED)) { - if (tempm=doc_e->user_data) { + if (tempde=doc_e->user_data) { tempc=MAlloc(sizeof(CFMUncollapsedLst)); tempc->next=result; result=tempc; - tempc->name=StrNew(tempm->full_name); + tempc->name=StrNew(tempde->full_name); } } } @@ -55,42 +55,42 @@ U0 FMMarkUncollapsed(CDoc *doc,CFMUncollapsedLst *tempc,U8 *cur_entry,U8 *next_e { CDocEntry *doc_e=doc->root.next; CFMUncollapsedLst *tempc1; - CDirEntry *tempm; + CDirEntry *tempde; while (doc_e!=doc) { if (doc_e->type_u8==DOCT_TREE) { - tempm=doc_e->user_data; + tempde=doc_e->user_data; tempc1=tempc; while (tempc1) { - if (!StrCmp(tempc1->name,tempm->full_name)) { + if (!StrCmp(tempc1->name,tempde->full_name)) { doc_e->flags1&=~DOCEF1_CHECKED_COLLAPSED; break; } tempc1=tempc1->next; } if (cur_entry) { - if (!StrNCmp(cur_entry,tempm->full_name,StrLen(tempm->full_name))) { + if (!StrNCmp(cur_entry,tempde->full_name,StrLen(tempde->full_name))) { doc->cur_entry=doc_e; - if (StrLen(tempm->full_name)==StrLen(cur_entry)) + if (StrLen(tempde->full_name)==StrLen(cur_entry)) cur_entry=NULL; } else if (next_entry) { - if (!StrNCmp(next_entry,tempm->full_name,StrLen(tempm->full_name))) { + if (!StrNCmp(next_entry,tempde->full_name,StrLen(tempde->full_name))) { doc->cur_entry=doc_e; - if (StrLen(tempm->full_name)==StrLen(next_entry)) + if (StrLen(tempde->full_name)==StrLen(next_entry)) cur_entry=NULL; } } } } else if (doc_e->type_u8==DOCT_MENU_VAL) { - tempm=doc_e->user_data; + tempde=doc_e->user_data; if (cur_entry) { - if (!StrNCmp(cur_entry,tempm->full_name,StrLen(tempm->full_name))) { + if (!StrNCmp(cur_entry,tempde->full_name,StrLen(tempde->full_name))) { doc->cur_entry=doc_e; - if (StrLen(tempm->full_name)==StrLen(cur_entry)) + if (StrLen(tempde->full_name)==StrLen(cur_entry)) cur_entry=NULL; } else if (next_entry) { - if (!StrNCmp(next_entry,tempm->full_name,StrLen(tempm->full_name))) { + if (!StrNCmp(next_entry,tempde->full_name,StrLen(tempde->full_name))) { doc->cur_entry=doc_e; - if (StrLen(tempm->full_name)==StrLen(next_entry)) + if (StrLen(tempde->full_name)==StrLen(next_entry)) cur_entry=NULL; } } @@ -114,33 +114,33 @@ U0 FMDelUncollapsedLst(CFMUncollapsedLst *tempc) CDirEntry *FMRebuildDocDrv(U8 drv_let,CDoc *doc,CDirEntry **_root,Bool init) { CDocEntry *doc_e; - CDirEntry *tempm,*tempm1; + CDirEntry *tempde,*tempde1; U8 *st; - tempm=CAlloc(sizeof(CDirEntry)); - tempm->full_name=MSPrintF("%C:/",drv_let); - tempm->attr=_ATTR_DIR; - st=MSPrintF("%c:/*",drv_let); + tempde=CAlloc(sizeof(CDirEntry)); + tempde->full_name=MPrint("%C:/",drv_let); + tempde->attr=_ATTR_DIR; + st=MPrint("%c:/*",drv_let); if (init) - tempm->sub=tempm1=FilesFind(st,FUF_RECURSE); + tempde->sub=tempde1=FilesFind(st,FUF_RECURSE); else - tempm1=NULL; + tempde1=NULL; Free(st); - doc_e=DocPrintF(doc,"$$TR,\"%s\"$$",tempm->full_name); - doc_e->user_data=tempm; - tempm->user_data=doc_e; - tempm->next=*_root; - *_root=tempm; - DocPutS(doc,"\n$$ID,+2$$"); + doc_e=DocPrint(doc,"$$TR,\"%s\"$$",tempde->full_name); + doc_e->user_data=tempde; + tempde->user_data=doc_e; + tempde->next=*_root; + *_root=tempde; + DocPrint(doc,"\n$$ID,+2$$"); DocBottom(doc); if (init) { - CDirFileDoc(doc,tempm1); - while (tempm1) { - tempm1->parent=tempm; - tempm1=tempm1->next; + DirFileDoc(doc,tempde1); + while (tempde1) { + tempde1->parent=tempde; + tempde1=tempde1->next; } } - DocPutS(doc,"$$ID,-2$$"); - return tempm; + DocPrint(doc,"$$ID,-2$$"); + return tempde; } U0 FMRebuildDoc(CDoc **_doc,CDirEntry **_root,I64 mode) @@ -151,7 +151,7 @@ U0 FMRebuildDoc(CDoc **_doc,CDirEntry **_root,I64 mode) CFMUncollapsedLst *tempc=NULL; U8 *cur_entry=NULL,*next_entry=NULL; CDocEntry *doc_ce; - CDirEntry *tempm,*tempm1,*cur_tree_entry; + CDirEntry *tempde,*tempde1,*cur_tree_entry; if (!doc) parent_doc=DocPut; else { @@ -166,36 +166,36 @@ U0 FMRebuildDoc(CDoc **_doc,CDirEntry **_root,I64 mode) cur_tree_entry=doc_ce->user_data; if (cur_tree_entry) cur_entry=StrNew(cur_tree_entry->full_name); - tempm=NULL; + tempde=NULL; if (doc_ce!=doc) doc_ce=doc_ce->next; while (doc_ce!=doc) { if (doc_ce->type_u8==DOCT_TREE || doc_ce->type_u8==DOCT_MENU_VAL) - tempm=doc_ce->user_data; + tempde=doc_ce->user_data; else - tempm=NULL; - if (tempm) { - tempm1=tempm->parent; - while (tempm1) { - if (tempm1==cur_tree_entry) { - tempm=NULL; + tempde=NULL; + if (tempde) { + tempde1=tempde->parent; + while (tempde1) { + if (tempde1==cur_tree_entry) { + tempde=NULL; break; } else - tempm1=tempm1->parent; + tempde1=tempde1->parent; } - if (tempm) + if (tempde) break; } doc_ce=doc_ce->next; } - if (tempm) - next_entry=StrNew(tempm->full_name); + if (tempde) + next_entry=StrNew(tempde->full_name); tempc=FMCollectUncollapsedLst(doc); DocDel(doc); } if (*_root) { - CDirLstDel(*_root); + DirLstDel(*_root); *_root=NULL; } doc=DocNew; @@ -204,30 +204,30 @@ U0 FMRebuildDoc(CDoc **_doc,CDirEntry **_root,I64 mode) doc->flags|=DOCF_FORM; switch (mode) { case FM_NORMAL: - DocPutS(doc,"$$FG,PURPLE$$File Manager\n\n$$LK,\"Click for Help\",\"FI:::/TempleOS/Doc/FileMgr.TXT\"$$\n\n"); + DocPrint(doc,"$$FG,PURPLE$$File Manager\n\n$$LK,\"Click for Help\",\"FI:::/TempleOS/Doc/FileMgr.TXT\"$$\n\n"); break; case FM_PICK_FILE: - DocPutS(doc,"$$FG,PURPLE$$Pick file and press \n\n"); + DocPrint(doc,"$$FG,PURPLE$$Pick file and press \n\n"); doc->flags|=DOCF_MIN_SIZE; break; case FM_PICK_DIR: - DocPutS(doc,"$$FG,PURPLE$$Pick directory and press \n\n"); + DocPrint(doc,"$$FG,PURPLE$$Pick directory and press \n\n"); doc->flags|=DOCF_MIN_SIZE; break; } - DocPutS(doc,"$$FG,LTBLUE$$"); + DocPrint(doc,"$$FG,LTBLUE$$"); for (i=0;itype==PT_REDSEA||p->type==PT_FAT32) FMRebuildDocDrv(Prt2Drv(p),doc,_root,TRUE); else if (p->type==PT_ISO9660) { if (p->bdev->flags&BDF_INITIALIZED) - tempm=FMRebuildDocDrv(Prt2Drv(p),doc,_root,TRUE); + tempde=FMRebuildDocDrv(Prt2Drv(p),doc,_root,TRUE); else { - tempm=FMRebuildDocDrv(Prt2Drv(p),doc,_root,FALSE); - tempm->flags|=DEF_NOT_INITIALIZED; + tempde=FMRebuildDocDrv(Prt2Drv(p),doc,_root,FALSE); + tempde->flags|=DEF_NOT_INITIALIZED; } - tempm->flags|=DEF_REMOVABLE; + tempde->flags|=DEF_REMOVABLE; } } DocHome(doc); @@ -246,28 +246,28 @@ U0 FMRename(CDoc *doc) { CEdFileName fn; CDocEntry *doc_e=doc->cur_entry; - CDirEntry *tempm=NULL,*parent; + CDirEntry *tempde=NULL,*parent; if (doc_e->type_u8==DOCT_MENU_VAL) { - tempm=doc_e->user_data; - if (parent=tempm->parent) { + tempde=doc_e->user_data; + if (parent=tempde->parent) { Cd(parent->full_name); - StrCpy(fn.name,tempm->name); - if (DocFormDo(fn.name,"CEdFileName")) { + StrCpy(fn.name,tempde->name); + if (DocFormDo(&fn)) { Silent(ON); - Move(tempm->name,fn.name); + Move(tempde->name,fn.name); Silent(OFF); } } } else if (doc_e->type_u8==DOCT_TREE) { - tempm=doc_e->user_data; - if (parent=tempm->parent) { + tempde=doc_e->user_data; + if (parent=tempde->parent) { Cd(parent->full_name); - StrCpy(fn.name,tempm->name); - if (DocFormDo(fn.name,"CEdFileName")) { - if (StrCmp(tempm->name,fn.name)) { + StrCpy(fn.name,tempde->name); + if (DocFormDo(&fn)) { + if (StrCmp(tempde->name,fn.name)) { Silent(ON); - if (CopyTree(tempm->name,fn.name)) - DelTree(tempm->name); + if (CopyTree(tempde->name,fn.name)) + DelTree(tempde->name); Silent(OFF); } } @@ -279,22 +279,22 @@ U0 FMMkDir(CDoc *doc) { CEdFileName fn; CDocEntry *doc_e=doc->cur_entry; - CDirEntry *tempm=NULL,*parent; + CDirEntry *tempde=NULL,*parent; *fn.name=0; if (doc_e->type_u8==DOCT_MENU_VAL) { - tempm=doc_e->user_data; - if (parent=tempm->parent) { + tempde=doc_e->user_data; + if (parent=tempde->parent) { Cd(parent->full_name); - if (DocFormDo(fn.name,"CEdFileName")) { + if (DocFormDo(&fn)) { Silent(ON); MkDir(fn.name); Silent(OFF); } } } else if (doc_e->type_u8==DOCT_TREE) { - tempm=doc_e->user_data; - Cd(tempm->full_name); - if (DocFormDo(fn.name,"CEdFileName")) { + tempde=doc_e->user_data; + Cd(tempde->full_name); + if (DocFormDo(&fn)) { Silent(ON); MkDir(fn.name); Silent(OFF); @@ -306,21 +306,21 @@ U0 FMDelete(CDoc *doc) { U8 *st; CDocEntry *doc_ce=doc->cur_entry; - CDirEntry *tempm; + CDirEntry *tempde; if (doc_ce->type_u8==DOCT_MENU_VAL) { - tempm=doc_ce->user_data; + tempde=doc_ce->user_data; Silent(ON); - st=MSPrintF("Delete: %s",tempm->full_name); + st=MPrint("Delete: %s",tempde->full_name); if (PopUpCancelOk(st)) - Del(tempm->full_name); + Del(tempde->full_name); Free(st); Silent(OFF); } else if (doc_ce->type_u8==DOCT_TREE) { - tempm=doc_ce->user_data; + tempde=doc_ce->user_data; Silent(ON); - st=MSPrintF("Delete: %s",tempm->full_name); + st=MPrint("Delete: %s",tempde->full_name); if (PopUpCancelOk(st)) - DelTree(tempm->full_name); + DelTree(tempde->full_name); Free(st); Silent(OFF); } @@ -329,16 +329,16 @@ U0 FMDelete(CDoc *doc) U0 FMMount(CDoc *doc) { CDocEntry *doc_ce=doc->cur_entry; - CDirEntry *tempm; + CDirEntry *tempde; if (doc_ce->type_u8==DOCT_TREE || doc_ce->type_u8==DOCT_MENU_VAL) - tempm=doc_ce->user_data; + tempde=doc_ce->user_data; else - tempm=NULL; - if (tempm) { - while (tempm->parent) - tempm=tempm->parent; + tempde=NULL; + if (tempde) { + while (tempde->parent) + tempde=tempde->parent; Silent(ON); - ChgDsk(*tempm->full_name); + ChgDsk(*tempde->full_name); Silent(OFF); } } @@ -346,19 +346,19 @@ U0 FMMount(CDoc *doc) U0 FMFmtDrv(CDoc *doc) { CDocEntry *doc_ce=doc->cur_entry; - CDirEntry *tempm; + CDirEntry *tempde; U8 *st=NULL; if (doc_ce->type_u8==DOCT_TREE || doc_ce->type_u8==DOCT_MENU_VAL) - tempm=doc_ce->user_data; + tempde=doc_ce->user_data; else - tempm=NULL; - if (tempm) { - while (tempm->parent) - tempm=tempm->parent; - st=MSPrintF("Format Drive '%c'?\nAre You Sure?\n",*tempm->full_name); + tempde=NULL; + if (tempde) { + while (tempde->parent) + tempde=tempde->parent; + st=MPrint("Format Drive '%c'?\nAre You Sure?\n",*tempde->full_name); if (PopUpCancelOk(st)) { Silent(ON); - Fmt(*tempm->full_name,TRUE,FALSE); + Fmt(*tempde->full_name,TRUE,FALSE); Silent(OFF); } } @@ -368,21 +368,21 @@ U0 FMFmtDrv(CDoc *doc) U0 FMMakeISO(CDoc *doc) { CDocEntry *doc_ce=doc->cur_entry; - CDirEntry *tempm; + CDirEntry *tempde; U8 *st; if (doc_ce->type_u8==DOCT_TREE || doc_ce->type_u8==DOCT_MENU_VAL) - tempm=doc_ce->user_data; + tempde=doc_ce->user_data; else - tempm=NULL; - if (tempm) { + tempde=NULL; + if (tempde) { if (doc_ce->type_u8==DOCT_MENU_VAL) - tempm=tempm->parent; - if (tempm && *tempm->full_name) { + tempde=tempde->parent; + if (tempde && *tempde->full_name) { Silent(ON); - if (tempm->full_name[StrLen(tempm->full_name)-1]=='/') - st=MSPrintF("%s*",tempm->full_name); + if (tempde->full_name[StrLen(tempde->full_name)-1]=='/') + st=MPrint("%s*",tempde->full_name); else - st=MSPrintF("%s/*",tempm->full_name); + st=MPrint("%s/*",tempde->full_name); CDFileCreate(,st); Free(st); Silent(OFF); @@ -393,16 +393,16 @@ U0 FMMakeISO(CDoc *doc) U0 FMBurnISO(CDoc *doc) { CDocEntry *doc_ce=doc->cur_entry; - CDirEntry *tempm; + CDirEntry *tempde; if (doc_ce->type_u8==DOCT_TREE || doc_ce->type_u8==DOCT_MENU_VAL) - tempm=doc_ce->user_data; + tempde=doc_ce->user_data; else - tempm=NULL; - if (tempm) { - while (tempm->parent) - tempm=tempm->parent; + tempde=NULL; + if (tempde) { + while (tempde->parent) + tempde=tempde->parent; Silent(ON); - CDImageWrite(*tempm->full_name); + CDImageWrite(*tempde->full_name); Silent(OFF); } } @@ -412,37 +412,37 @@ U0 FMCopy(CDoc *doc) CDoc *doc2=sys_clipboard_doc; U8 *st; CDocEntry *doc_ce=doc->cur_entry,*doc_e; - CDirEntry *tempm,*tempm1=NULL,*tempm2; + CDirEntry *tempde,*tempde1=NULL,*tempde2; Bool unlock_doc2=DocLock(doc2); doc_e=doc2->root.next; - tempm1=doc_ce->user_data; + tempde1=doc_ce->user_data; if (doc_ce->type_u8==DOCT_MENU_VAL) - tempm1=tempm1->parent; + tempde1=tempde1->parent; else if (doc_ce->type_u8!=DOCT_TREE) - tempm1=NULL; - if (tempm1) { + tempde1=NULL; + if (tempde1) { while (doc_e!=doc2) { if (doc_e->type_u8==DOCT_MENU_VAL) { - tempm=doc_e->user_data; - tempm->flags|=DEF_PROCESSED; - tempm2=tempm->parent; - if (!tempm2 || !(tempm2->flags&DEF_PROCESSED)) { + tempde=doc_e->user_data; + tempde->flags|=DEF_PROCESSED; + tempde2=tempde->parent; + if (!tempde2 || !(tempde2->flags&DEF_PROCESSED)) { Silent(ON); - Copy(tempm->full_name,tempm1->full_name); + Copy(tempde->full_name,tempde1->full_name); Silent(OFF); } } else if (doc_e->type_u8==DOCT_TREE) { - tempm=doc_e->user_data; - tempm->flags|=DEF_PROCESSED; - tempm2=tempm->parent; - if (!tempm2 || !(tempm2->flags&DEF_PROCESSED)) { + tempde=doc_e->user_data; + tempde->flags|=DEF_PROCESSED; + tempde2=tempde->parent; + if (!tempde2 || !(tempde2->flags&DEF_PROCESSED)) { Silent(ON); - if (*tempm1->name) - st=MSPrintF("%s/%s",tempm1->full_name,tempm->name); + if (*tempde1->name) + st=MPrint("%s/%s",tempde1->full_name,tempde->name); else - st=MSPrintF("%s%s",tempm1->full_name,tempm->name); - CopyTree(tempm->full_name,st); + st=MPrint("%s%s",tempde1->full_name,tempde->name); + CopyTree(tempde->full_name,st); Free(st); Silent(OFF); } @@ -471,8 +471,8 @@ I64 PopUpCancelPasteDel(U8 *header=NULL,U8 *footer=NULL) { I64 i; CDoc *doc=DocNew; - if (header) DocPutS(doc,header); - DocPutS(doc,"$$CM+LX,1,1 $$$$BT,\"INCLUDE \",FMR_INCLUDE$$" + if (header) DocPrint(doc,"%s",header); + DocPrint(doc,"$$CM+LX,1,1 $$$$BT,\"INCLUDE \",FMR_INCLUDE$$" "$$CM+LX,27,0$$$$BT,\"ADAM INCLUDE \",FMR_ADAM_INCLUDE$$" "$$CM+LX,1,3 $$$$BT,\"DELETE \",FMR_DELETE$$" "$$CM+LX,27,0$$$$BT,\"RENAME \",FMR_RENAME$$" @@ -485,7 +485,7 @@ I64 PopUpCancelPasteDel(U8 *header=NULL,U8 *footer=NULL) "$$CM+LX,27,0$$$$BT,\"BURN ISO (CD-ROM) FILE\",FMR_BURN_ISO$$" "$$CM+LX,1,3 $$$$BT,\"HELP \",FMR_HELP$$" "$$CM+LX,27,0$$$$BT,\"CANCEL \",DOCM_CANCEL$$\n"); - if (footer) DocPutS(doc,footer); + if (footer) DocPrint(doc,"%s",footer); i=PopUpMenu(doc); DocDel(doc); return i; @@ -541,14 +541,14 @@ U0 FMFinalScreenUpdate(CDC *dc) { if (fm_ip_str) { dc->color=LTRED; - GrPutS(dc,ipx,ipy,fm_ip_str); + GrPrint(dc,ipx,ipy,"%s",fm_ip_str); } (*fp_old_final_screen_update)(dc); } public U8 *FileMgr(I64 mode=FM_NORMAL,CTask *mem_task=NULL) { - CDirEntry *root=NULL,*tempm,*tempm1,*tempm2; + CDirEntry *root=NULL,*tempde,*tempde1,*tempde2; I64 sc,ch,p1,p2,msg_code; CDoc *doc=NULL,*old_put_doc=DocPut,*old_display_doc=DocDisplay; U8 *result=NULL,*st,*st2,*old_cur_dir=CurDir; @@ -559,12 +559,12 @@ public U8 *FileMgr(I64 mode=FM_NORMAL,CTask *mem_task=NULL) fp_old_final_screen_update=fp_final_screen_update; MenuFilePush("::/TempleOS/Doc/FileMgrPullDown.TXT"); FMRebuildDoc(&doc,&root,mode); - if (tempm1=Cd2DirEntry(root,old_cur_dir)) - doc->cur_entry=tempm1->user_data; - while (tempm1) { - if (tempm1->attr&_ATTR_DIR) - tempm1->user_data(CDocEntry *)->flags1&=~DOCEF1_CHECKED_COLLAPSED; - tempm1=tempm1->parent; + if (tempde1=Cd2DirEntry(root,old_cur_dir)) + doc->cur_entry=tempde1->user_data; + while (tempde1) { + if (tempde1->attr&_ATTR_DIR) + tempde1->user_data(CDocEntry *)->flags1&=~DOCEF1_CHECKED_COLLAPSED; + tempde1=tempde1->parent; } do { DocUnlock(doc); @@ -592,40 +592,40 @@ public U8 *FileMgr(I64 mode=FM_NORMAL,CTask *mem_task=NULL) if (doc_e!=doc_ce) { st2=NULL; if (doc_e->type_u8==DOCT_MENU_VAL) { - tempm1=doc_e->user_data; - if (tempm1=tempm1->parent) - st2=StrNew(tempm1->full_name); + tempde1=doc_e->user_data; + if (tempde1=tempde1->parent) + st2=StrNew(tempde1->full_name); } else if (doc_e->type_u8==DOCT_TREE) { - tempm1=doc_e->user_data; - st2=StrNew(tempm1->full_name); + tempde1=doc_e->user_data; + st2=StrNew(tempde1->full_name); } if (st2 && doc_ce->type_u8==DOCT_MENU_VAL) { - tempm=doc_ce->user_data; + tempde=doc_ce->user_data; Silent(ON); - Move(tempm->full_name,st2); + Move(tempde->full_name,st2); Silent(OFF); FMRebuildDoc(&doc,&root,mode); } else if (st2 && doc_ce->type_u8==DOCT_TREE) { - tempm=doc_ce->user_data; + tempde=doc_ce->user_data; okay=TRUE; - tempm2=tempm1; - while (tempm2) { - if (tempm2!=tempm) - tempm2=tempm2->parent; + tempde2=tempde1; + while (tempde2) { + if (tempde2!=tempde) + tempde2=tempde2->parent; else { okay=FALSE; break; } } if (okay) { - if (*tempm1->name) - st=MSPrintF("%s/%s",tempm1->full_name,tempm->name); + if (*tempde1->name) + st=MPrint("%s/%s",tempde1->full_name,tempde->name); else - st=MSPrintF("%s%s",tempm1->full_name,tempm->name); - if (StrCmp(tempm->full_name,st)) { + st=MPrint("%s%s",tempde1->full_name,tempde->name); + if (StrCmp(tempde->full_name,st)) { Silent(ON); - CopyTree(tempm->full_name,st); - DelTree(tempm->full_name); + CopyTree(tempde->full_name,st); + DelTree(tempde->full_name); Silent(OFF); FMRebuildDoc(&doc,&root,mode); } @@ -715,14 +715,14 @@ public U8 *FileMgr(I64 mode=FM_NORMAL,CTask *mem_task=NULL) break; case CH_ESC: doc_ce=doc->cur_entry; - tempm=doc_ce->user_data; + tempde=doc_ce->user_data; if (mode==FM_PICK_FILE && doc_ce->type_u8==DOCT_MENU_VAL) - result=StrNew(tempm->full_name,mem_task); + result=StrNew(tempde->full_name,mem_task); else if (mode==FM_PICK_DIR) { if (doc_ce->type_u8==DOCT_TREE) - result=StrNew(tempm->full_name,mem_task); - else if (doc_ce->type_u8==DOCT_MENU_VAL && (tempm=tempm->parent)) - result=StrNew(tempm->full_name,mem_task); + result=StrNew(tempde->full_name,mem_task); + else if (doc_ce->type_u8==DOCT_MENU_VAL && (tempde=tempde->parent)) + result=StrNew(tempde->full_name,mem_task); } break; default: @@ -731,12 +731,12 @@ public U8 *FileMgr(I64 mode=FM_NORMAL,CTask *mem_task=NULL) FMRebuildDoc(&doc,&root,mode); } else if (sc.u8[0]==SC_F5) { if (doc->cur_entry->type_u8==DOCT_MENU_VAL) { - tempm=doc->cur_entry->user_data; + tempde=doc->cur_entry->user_data; DocUnlock(doc); if (sc&SCF_SHIFT) - AdamFile(tempm->full_name); + AdamFile(tempde->full_name); else - PopUpFile(tempm->full_name); + PopUpFile(tempde->full_name); DocLock(doc); } } else { @@ -754,7 +754,7 @@ regular_key: Fs->display_doc=old_display_doc; SettingsPop; DocDel(doc); - CDirLstDel(root); + DirLstDel(root); Cd(old_cur_dir); Free(old_cur_dir); if (mode!=FM_NORMAL && !result) diff --git a/TempleOS/Adam/Gr/Gr.CPP b/TempleOS/Adam/Gr/Gr.CPP index a14fd4a..a4d8a98 100644 --- a/TempleOS/Adam/Gr/Gr.CPP +++ b/TempleOS/Adam/Gr/Gr.CPP @@ -1,54 +1,48 @@ #help_index "Graphics" U0 GrInit1() { - DefineLstLoad("ST_SPRITE_TYPES","End\0 \0Color 8Bit\0 \0Point\0" - "Line\0PolyLine\0PolyPoint\0Width\0Shift\0" - "BSpline2\0BSpline3\0BSpline2 Closed\0BSpline3 Closed\0" - " \0 \0 \0Rect\0Circle\0Flood Fill Not Color\0Flood Fill\0BitMap 8Bit\0" - " \0Text\0Ellipse\0Polygon\0Planar Symmetry\0" - "Dither Color 8Bit\0Rotated Rect\0Mesh\0Shiftable Mesh\0" - "Transform On\0Transform Off\0Arrow\0Text Box\0Text Diamond\0"); + DefineLstLoad("ST_SPRITE_TYPES", + "End\0Color 8Bit\0Dither Color 8Bit\0" + "Width\0Planar Symmetry\0Transform On\0Transform Off\0Shift\0" + "Point\0PolyPoint\0Line\0PolyLine\0Rect\0Rotated Rect\0" + "Circle\0Ellipse\0Polygon\0BSpline2\0BSpline2 Closed\0BSpline3\0BSpline3 Closed\0" + "Flood Fill\0Flood Fill Not Color\0BitMap 8Bit\0Mesh\0Shiftable Mesh\0" + "Arrow\0Text\0Text Box\0Text Diamond\0"); } GrInit1; #help_index "Graphics/CSprite" #define GRST_END 0 -//Unused -#define GRST_COLOR8 2 -//Unused -#define GRST_PT 4 -#define GRST_LINE 5 -#define GRST_POLYLINE 6 -#define GRST_POLYPT 7 -#define GRST_WIDTH 8 -#define GRST_SHIFT 9 -#define GRST_BSPLINE2 10 -#define GRST_BSPLINE3 11 -#define GRST_BSPLINE2_CLOSED 12 -#define GRST_BSPLINE3_CLOSED 13 -//Unused -//Unused -//Unused -#define GRST_RECT 17 -#define GRST_CIRCLE 18 -#define GRST_FLOOD_FILL_NOT 19 -#define GRST_FLOOD_FILL 20 -#define GRST_BITMAP8 21 -//Unused -#define GRST_TEXT 23 -#define GRST_ELLIPSE 24 -#define GRST_POLYGON 25 -#define GRST_PLANAR_SYMMETRY 26 -#define GRST_DITHER_COLOR8 27 -#define GRST_ROTATED_RECT 28 -#define GRST_MESH 29 -#define GRST_SHIFTABLE_MESH 30 -#define GRST_TRANSFORM_ON 31 -#define GRST_TRANSFORM_OFF 32 -#define GRST_ARROW 33 -#define GRST_TEXT_BOX 34 -#define GRST_TEXT_DIAMOND 35 -#define GRST_NUM_TYPES 36 +#define GRST_COLOR8 1 +#define GRST_DITHER_COLOR8 2 +#define GRST_WIDTH 3 +#define GRST_PLANAR_SYMMETRY 4 +#define GRST_TRANSFORM_ON 5 +#define GRST_TRANSFORM_OFF 6 +#define GRST_SHIFT 7 +#define GRST_PT 8 +#define GRST_POLYPT 9 +#define GRST_LINE 10 +#define GRST_POLYLINE 11 +#define GRST_RECT 12 +#define GRST_ROTATED_RECT 13 +#define GRST_CIRCLE 14 +#define GRST_ELLIPSE 15 +#define GRST_POLYGON 16 +#define GRST_BSPLINE2 17 +#define GRST_BSPLINE2_CLOSED 18 +#define GRST_BSPLINE3 19 +#define GRST_BSPLINE3_CLOSED 20 +#define GRST_FLOOD_FILL 21 +#define GRST_FLOOD_FILL_NOT 22 +#define GRST_BITMAP8 23 +#define GRST_MESH 24 +#define GRST_SHIFTABLE_MESH 25 +#define GRST_ARROW 26 +#define GRST_TEXT 27 +#define GRST_TEXT_BOX 28 +#define GRST_TEXT_DIAMOND 29 +#define GRST_NUM_TYPES 30 class CMeshTri { @@ -116,11 +110,11 @@ extern U8 *GrBitMap4ToBitMap8(U8 *dst,U8 *src,I64 src_size,I64 bkcolor); #define GE_EXIT 0 #define GE_CONT 1 -#include "CSpriteNew" +#include "SpriteNew" #include "GrSpritePlot" -#include "CSpriteMesh" -#include "CSpriteBitMap" -#include "CSpriteEd" -#include "CSpriteMain" +#include "SpriteMesh" +#include "SpriteBitMap" +#include "SpriteEd" +#include "SpriteMain" #help_index "" diff --git a/TempleOS/Adam/Gr/GrAsm.CPP b/TempleOS/Adam/Gr/GrAsm.CPP index f5507fc..ccb7af7 100644 --- a/TempleOS/Adam/Gr/GrAsm.CPP +++ b/TempleOS/Adam/Gr/GrAsm.CPP @@ -12,9 +12,9 @@ _PLOT_SCREEN_U8:: ENTER 0 MOV RBX,U64 SF_ARG2[RBP] MOV RAX,U64 SF_ARG3[RBP] - OR RBX,RBX + TEST RBX,RBX JS @@05 - OR RAX,RAX + TEST RAX,RAX JS @@05 CMP RBX,TEXT_COLS JGE @@05 @@ -44,22 +44,22 @@ _PLOT_WIN_U8:: SAR RAX,3 ADD RAX,U64 SF_ARG4[RBP] - OR RBX,RBX + TEST RBX,RBX JS @@05 ADD RBX,U64 CTask.win_left[RCX] CMP RBX,U64 CTask.win_right[RCX] JG @@05 - OR RBX,RBX + TEST RBX,RBX JS @@05 CMP RBX,TEXT_COLS JGE @@05 - OR RAX,RAX + TEST RAX,RAX JS @@05 ADD RAX,U64 CTask.win_top[RCX] CMP RAX,U64 CTask.win_bottom[RCX] JG @@05 - OR RAX,RAX + TEST RAX,RAX JS @@05 CMP RAX,TEXT_ROWS JGE @@05 @@ -94,7 +94,7 @@ _PLOT_WIN_STR2:: ADD RDI,U64 SF_ARG5[RBP] MOV RCX,U64 SF_ARG3[RBP] - OR RDI,RDI + TEST RDI,RDI JNS @@05 ADD RCX,RDI SUB RSI,RDI @@ -109,7 +109,7 @@ _PLOT_WIN_STR2:: SUB RAX,U64 CTask.win_right[RBX] SUB RDX,RAX SUB RCX,RAX -@@10: OR RDI,RDI +@@10: TEST RDI,RDI JNS @@15 ADD RCX,RDI SUB RSI,RDI @@ -124,12 +124,12 @@ _PLOT_WIN_STR2:: MOV RAX,U64 CTask.win_scroll_y[RBX] SAR RAX,3 ADD RAX,U64 SF_ARG6[RBP] - OR RAX,RAX + TEST RAX,RAX JS @@30 ADD RAX,U64 CTask.win_top[RBX] CMP RAX,U64 CTask.win_bottom[RBX] JG @@30 - OR RAX,RAX + TEST RAX,RAX JS @@30 CMP RAX,TEXT_ROWS JGE @@30 @@ -171,7 +171,7 @@ _PLOT_ATTR_STR2:: ADD RDI,U64 SF_ARG4[RBP] MOV RCX,U64 SF_ARG3[RBP] - OR RDI,RDI + TEST RDI,RDI JNS @@05 ADD RCX,RDI SHL RDI,2 @@ -187,7 +187,7 @@ _PLOT_ATTR_STR2:: SUB RAX,U64 CTask.win_right[RBX] SUB RDX,RAX SUB RCX,RAX -@@10: OR RDI,RDI +@@10: TEST RDI,RDI JNS @@15 ADD RCX,RDI SHL RDI,2 @@ -203,12 +203,12 @@ _PLOT_ATTR_STR2:: MOV RAX,U64 CTask.win_scroll_y[RBX] SAR RAX,3 ADD RAX,U64 SF_ARG5[RBP] - OR RAX,RAX + TEST RAX,RAX JS @@30 ADD RAX,U64 CTask.win_top[RBX] CMP RAX,U64 CTask.win_bottom[RBX] JG @@30 - OR RAX,RAX + TEST RAX,RAX JS @@30 CMP RAX,TEXT_ROWS JGE @@30 @@ -248,7 +248,7 @@ _PLOT_ATTR:: ADD RDI,U64 SF_ARG4[RBP] MOV RCX,U64 SF_ARG2[RBP] - OR RDI,RDI + TEST RDI,RDI JNS @@05 ADD RCX,RDI XOR RDI,RDI @@ -262,7 +262,7 @@ _PLOT_ATTR:: SUB RAX,U64 CTask.win_right[RBX] SUB RDX,RAX SUB RCX,RAX -@@10: OR RDI,RDI +@@10: TEST RDI,RDI JNS @@15 ADD RCX,RDI XOR RDI,RDI @@ -276,12 +276,12 @@ _PLOT_ATTR:: MOV RAX,U64 CTask.win_scroll_y[RBX] SAR RAX,3 ADD RAX,U64 SF_ARG5[RBP] - OR RAX,RAX + TEST RAX,RAX JS @@35 ADD RAX,U64 CTask.win_top[RBX] CMP RAX,U64 CTask.win_bottom[RBX] JG @@35 - OR RAX,RAX + TEST RAX,RAX JS @@35 CMP RAX,TEXT_ROWS JGE @@35 @@ -293,7 +293,7 @@ _PLOT_ATTR:: MOV RBX,U64 SF_ARG3[RBP] MOV RSI,RDI @@25: LODSD - OR AL,AL + TEST AL,AL JNZ @@30 MOV RAX,RBX STOSD @@ -331,7 +331,7 @@ _PLOT_BORDER_U8:: INC RDX CMP RBX,RDX JG @@05 - OR RBX,RBX + TEST RBX,RBX JS @@05 CMP RBX,TEXT_COLS JGE @@05 @@ -344,7 +344,7 @@ _PLOT_BORDER_U8:: INC RDX CMP RAX,RDX JG @@05 - OR RAX,RAX + TEST RAX,RAX JS @@05 CMP RAX,TEXT_ROWS JGE @@05 @@ -624,7 +624,7 @@ _GR_ROP_EQU_U8_NO_CLIPPING:: JNC @@05 MOV RBX,0xFF00000000000000 OR RAX,RBX -@@05: OR RAX,RAX +@@05: TEST RAX,RAX JZ I32 @@10 PUSH RSI diff --git a/TempleOS/Adam/Gr/GrBitMap.CPP b/TempleOS/Adam/Gr/GrBitMap.CPP index ef7c73a..269bd27 100644 --- a/TempleOS/Adam/Gr/GrBitMap.CPP +++ b/TempleOS/Adam/Gr/GrBitMap.CPP @@ -831,8 +831,8 @@ public I64 GrPutChar(CDC *dc,I64 x,I64 y,U8 ch) return 0; } -public I64 GrPutS(CDC *dc,I64 x,I64 y,U8 *_s) -{ +I64 GrPutS(CDC *dc,I64 x,I64 y,U8 *_s) +{ //Use $LK,"GrPrint","MN:GrPrint"$() I64 x0,ch,result; if (!_s) return 0; x0=x; @@ -851,8 +851,8 @@ public I64 GrPutS(CDC *dc,I64 x,I64 y,U8 *_s) return result; } -public I64 GrVPutS(CDC *dc,I64 x,I64 y,U8 *_s) -{ //Vertical text +I64 GrVPutS(CDC *dc,I64 x,I64 y,U8 *_s) +{ //Vertical Text. Use $LK,"GrVPrint","MN:GrVPrint"$() I64 y0,result; U8 buf[2]; if (!_s) return 0; @@ -874,18 +874,22 @@ public I64 GrVPutS(CDC *dc,I64 x,I64 y,U8 *_s) return result; } -public U0 GrPrintF(CDC *dc,I64 x,I64 y,U8 *fmt,...) +public I64 GrPrint(CDC *dc,I64 x,I64 y,U8 *fmt,...) { - U8 *buf=SPrintFJoin(NULL,fmt,argc,argv); - GrPutS(dc,x,y,buf); + I64 result; + U8 *buf=SPrintJoin(NULL,fmt,argc,argv); + result=GrPutS(dc,x,y,buf); Free(buf); + return result; } -public U0 GrVPrintF(CDC *dc,I64 x,I64 y,U8 *fmt,...) +public I64 GrVPrint(CDC *dc,I64 x,I64 y,U8 *fmt,...) { //Vertical text - U8 *buf=SPrintFJoin(NULL,fmt,argc,argv); - GrVPutS(dc,x,y,buf); + I64 result; + U8 *buf=SPrintJoin(NULL,fmt,argc,argv); + result=GrVPutS(dc,x,y,buf); Free(buf); + return result; } #help_index "Graphics" @@ -1089,7 +1093,7 @@ public I64 GrRect(CDC *dc,I64 x,I64 y,I64 w,I64 h) dst=dc->body+kk1&~7; if (leading_bits) { if (win_z_num>=*win_z_buf_ptr++) { - *dst(I64 *)=*dst(I64 *)&leading_bit_mask^color_mask&~leading_bit_mask; + *dst(I64 *)=*dst(I64 *)&leading_bit_mask|*dst(I64 *)^color_mask&~leading_bit_mask; result+=leading_bits; } dst(I64 *)++; @@ -1100,7 +1104,7 @@ public I64 GrRect(CDC *dc,I64 x,I64 y,I64 w,I64 h) result+=8; } if (trailing_bits && win_z_num>=*win_z_buf_ptr++) { - *dst(I64 *)=*dst(I64 *)&trailing_bit_mask^color_mask&~trailing_bit_mask; + *dst(I64 *)=*dst(I64 *)&trailing_bit_mask|*dst(I64 *)^color_mask&~trailing_bit_mask; result+=trailing_bits; } if ((j+y)&7==7) @@ -1122,11 +1126,11 @@ public I64 GrRect(CDC *dc,I64 x,I64 y,I64 w,I64 h) gr_1_to_8_bits[0xAA]&gr_1_to_8_colors[color.c1.color]; dst=dc->body+kk1&~7; if (leading_bits) - *dst(I64 *)++=*dst&leading_bit_mask^color_mask&~leading_bit_mask; + *dst(I64 *)++=*dst(I64 *)&leading_bit_mask|*dst(I64 *)^color_mask&~leading_bit_mask; for (i=0;iwidth_internal; if (probability_dither) { if (RandU16dither_probability) @@ -1221,7 +1225,7 @@ public I64 GrRect(CDC *dc,I64 x,I64 y,I64 w,I64 h) dst=dc->body+kk1&~7; if (leading_bits) { if (win_z_num>=*win_z_buf_ptr++) { - *dst(I64 *)=*dst(I64 *)&leading_bit_mask^color_mask&~leading_bit_mask; + *dst(I64 *)=*dst(I64 *)&leading_bit_mask|*dst(I64 *)^color_mask&~leading_bit_mask; result+=leading_bits; } dst(I64 *)++; @@ -1232,7 +1236,7 @@ public I64 GrRect(CDC *dc,I64 x,I64 y,I64 w,I64 h) result+=8; } if (trailing_bits && win_z_num>=*win_z_buf_ptr++) { - *dst(I64 *)=*dst(I64 *)&trailing_bit_mask^color_mask&~trailing_bit_mask; + *dst(I64 *)=*dst(I64 *)&trailing_bit_mask|*dst(I64 *)^color_mask&~trailing_bit_mask; result+=trailing_bits; } if ((j+y)&7==7) @@ -1245,11 +1249,11 @@ public I64 GrRect(CDC *dc,I64 x,I64 y,I64 w,I64 h) for (j=h2-h1;j;j--) { dst=dc->body+kk1&~7; if (leading_bits) - *dst(I64 *)++=*dst(I64 *)&leading_bit_mask^color_mask&~leading_bit_mask; + *dst(I64 *)++=*dst(I64 *)&leading_bit_mask|*dst(I64 *)^color_mask&~leading_bit_mask; for (i=0;iwidth_internal; } result=(h2-h1)*(w2-w1); diff --git a/TempleOS/Adam/Gr/GrCfg.CPP b/TempleOS/Adam/Gr/GrCfg.CPP index 710eab5..cb79107 100644 --- a/TempleOS/Adam/Gr/GrCfg.CPP +++ b/TempleOS/Adam/Gr/GrCfg.CPP @@ -1,10 +1,10 @@ //See $LK,"SYS_BIOS_GR_MODE","FF:D:/TempleOS/Kernel/KStart.CPP,SYS_BIOS_GR_MODE:2"$ //See $LK,"SysGrInit","MN:SysGrInit"$() -//This allows constants to be used +//This allows consts to be used //instead of vars. -DefinePrintF("BIOS_GR_MODE","%d",bios_gr_mode); -DefinePrintF("GR_WIDTH","%d",gr_width); -DefinePrintF("GR_HEIGHT","%d",gr_height); -DefinePrintF("TEXT_ROWS","%d",text_rows); -DefinePrintF("TEXT_COLS","%d",text_cols); +DefinePrint("BIOS_GR_MODE","%d",bios_gr_mode); +DefinePrint("GR_WIDTH","%d",gr_width); +DefinePrint("GR_HEIGHT","%d",gr_height); +DefinePrint("TEXT_ROWS","%d",text_rows); +DefinePrint("TEXT_COLS","%d",text_cols); diff --git a/TempleOS/Adam/Gr/GrComposites.CPP b/TempleOS/Adam/Gr/GrComposites.CPP index b67e242..babd0f8 100644 --- a/TempleOS/Adam/Gr/GrComposites.CPP +++ b/TempleOS/Adam/Gr/GrComposites.CPP @@ -1,4 +1,29 @@ #help_index "Graphics" +public I64 GrRectB(CDC *dc,I64 x1,I64 y1,I64 x2,I64 y2) +{ + if (x2w_max) w_max=w; - result=GrPutS(dc,x1,y1,s); + result=GrPrint(dc,x1,y1,"%s",s); result+=GrLine(dc,x1-border ,y1-border ,x1+w_max+border,y1-border); result+=GrLine(dc,x1-border ,y1+h+border,x1+w_max+border,y1+h+border); result+=GrLine(dc,x1-border ,y1-border ,x1-border,y1+h+border); @@ -120,10 +145,10 @@ public I64 GrTextDiamond3(CDC *dc,I64 x1,I64 y1,I64 z1,U8 *_s,I64 border=2) w=(StrLen(st)*FONT_WIDTH)>>1; if (first) { - result+=GrPutS(dc,x1-w,y,st); + result+=GrPrint(dc,x1-w,y,"%s",st); first=FALSE; } else - result+=GrPutS(dc,x1-w,y,st); + result+=GrPrint(dc,x1-w,y,"%s",st); if (w) { w+=border; do { diff --git a/TempleOS/Adam/Gr/GrDC.CPP b/TempleOS/Adam/Gr/GrDC.CPP index ab605d1..5866342 100644 --- a/TempleOS/Adam/Gr/GrDC.CPP +++ b/TempleOS/Adam/Gr/GrDC.CPP @@ -41,7 +41,7 @@ public CDC *DCAlias(CDC *dc=NULL,CTask *task=NULL) public CDC *DCNew(I64 type,I64 width,I64 height,CTask *task=NULL,Bool null_bitmap=FALSE) { //This internally only allows widths which are divisible by 8 -//Don't forget these $MA+A-X+PU,"sizeof(CDC)","Grep(\"sizeof(CDC)\",\"/TempleOS/\"FILENAME_MASK_TXT);View;"$. +//Don't forget these $MA+A-X+PU,"sizeof(CDC)","Grep(\"sizeof(CDC)\",\"/TempleOS/*\");View;"$. CDC *result; if (!task) task=Fs; result=CAlloc(sizeof(CDC),task); @@ -136,19 +136,21 @@ public U0 DCMono(CDC *dc, } } -public U0 DCColorChg(CDC *dc,I64 src_color,I64 dst_color=COLOR_TRANSPARENT) +public I64 DCColorChg(CDC *dc,I64 src_color,I64 dst_color=COLOR_TRANSPARENT) { - I64 i; + I64 i,result=0; U8 *dst; if (dc->type==DCT_COLOR8) { dst=dc->body; i=dc->width_internal*dc->height; while (i--) - if (*dst==src_color) + if (*dst==src_color) { *dst++=dst_color; - else + result++; + } else dst++; } + return result; } public U8 *DCSave(CDC *dc,I64 *_size=NULL,Bool compressed=TRUE) diff --git a/TempleOS/Adam/Gr/GrPrimatives.CPP b/TempleOS/Adam/Gr/GrPrimatives.CPP index da07d1e..a621b75 100644 --- a/TempleOS/Adam/Gr/GrPrimatives.CPP +++ b/TempleOS/Adam/Gr/GrPrimatives.CPP @@ -271,7 +271,7 @@ ff_done: return result; } -public Bool GrPlot3b(CDC *dc,I64 x,I64 y,I64 z) +public Bool GrPlot3B(CDC *dc,I64 x,I64 y,I64 z) { //Clipping and transformation but no pen_width I64 _x,_y,_z; Bool was_transform=FALSE,was_symmetry=FALSE; @@ -552,43 +552,37 @@ gr_done: #help_index "Graphics/Char;Char/Graphics" -public Bool GrPutChar3(CDC *dc,I64 x1,I64 y1,I64 z1,U8 ch) +public Bool GrPutChar3(CDC *dc,I64 x,I64 y,I64 z,U8 ch) { //transformation //DCF_SYMMETRY is silly. if (dc->flags & DCF_TRANSFORMATION) - (*dc->transform)(dc,&x1,&y1,&z1); - return GrPutChar(dc,x1,y1,ch); + (*dc->transform)(dc,&x,&y,&z); + return GrPutChar(dc,x,y,ch); } -public Bool GrPutS3(CDC *dc,I64 x1,I64 y1,I64 z1,U8 *s) +public I64 GrPrint3(CDC *dc,I64 x,I64 y,I64 z,U8 *fmt,...) { //transformation //DCF_SYMMETRY is silly. + U8 *buf=SPrintJoin(NULL,fmt,argc,argv); + I64 result; if (dc->flags & DCF_TRANSFORMATION) - (*dc->transform)(dc,&x1,&y1,&z1); - return GrPutS(dc,x1,y1,s); + (*dc->transform)(dc,&x,&y,&z); + result=GrPrint(dc,x,y,"%s",buf); + Free(buf); + return result; } -public Bool GrVPutS3(CDC *dc,I64 x1,I64 y1,I64 z1,U8 *s) +public I64 GrVPrint3(CDC *dc,I64 x,I64 y,I64 z,U8 *fmt,...) { //Vertical text //transformation //DCF_SYMMETRY is silly. + U8 *buf=SPrintJoin(NULL,fmt,argc,argv); + I64 result; if (dc->flags & DCF_TRANSFORMATION) - (*dc->transform)(dc,&x1,&y1,&z1); - return GrVPutS(dc,x1,y1,s); -} - -public U0 GrPrintF3(CDC *dc,I64 x,I64 y,I64 z,U8 *fmt,...) -{ - U8 *buf=SPrintFJoin(NULL,fmt,argc,argv); - GrPutS3(dc,x,y,z,buf); - Free(buf); -} - -public U0 GrVPrintF3(CDC *dc,I64 x,I64 y,I64 z,U8 *fmt,...) -{ //Vertical text - U8 *buf=SPrintFJoin(NULL,fmt,argc,argv); - GrVPutS3(dc,x,y,z,buf); + (*dc->transform)(dc,&x,&y,&z); + result=GrVPrint(dc,x,y,"%s",buf); Free(buf); + return result; } #help_index "Graphics" @@ -731,49 +725,6 @@ gr_done: return result; } -public I64 GrRect3(CDC *dc,I64 x,I64 y,I64 z,I64 w,I64 h) -{ //Clipping and transformation - I64 x2,y2,z2,x3,y3,z3,result=0; - CDC *old_brush=dc->brush; - if (dc->flags & DCF_TRANSFORMATION) { - dc->brush=NULL; - x2=x+w; y2=y; z2=z; - x3=x; y3=y+h; z3=z; - (*dc->transform)(dc,&x,&y,&z); - (*dc->transform)(dc,&x2,&y2,&z2); - (*dc->transform)(dc,&x3,&y3,&z3); - if (!(dc->flags&DCF_JUST_MIRROR) || - !(dc->flags&DCF_SYMMETRY)) - result=Rect(dc,x,y,z,x2,y2,z2,x3,y3,z3,&GrLinePlot); - if (dc->flags & DCF_SYMMETRY) { - GrReflect(dc,&x,&y,&z); - GrReflect(dc,&x2,&y2,&z2); - GrReflect(dc,&x3,&y3,&z3); - result+=Rect(dc,x,y,z,x2,y2,z2,x3,y3,z3,&GrLinePlot); - } - dc->brush=old_brush; - } else { - if (!(dc->flags&DCF_JUST_MIRROR)|| - !(dc->flags&DCF_SYMMETRY)) { - if (dc->depth_buf) - result=Rect(dc,x,y,z,x+w,y,z,x,y+h,z,&GrLinePlot); - else - result=GrRect(dc,x,y,w,h); - } - if (dc->flags & DCF_SYMMETRY) { - dc->brush=NULL; - x2=x+w; y2=y; z2=z; - x3=x; y3=y+h; z3=z; - GrReflect(dc,&x,&y,&z); - GrReflect(dc,&x2,&y2,&z2); - GrReflect(dc,&x3,&y3,&z3); - result+=Rect(dc,x,y,z,x2,y2,z2,x3,y3,z3,&GrLinePlot); - dc->brush=old_brush; - } - } - return result; -} - #help_index "Graphics;Graphics/DCs" public I64 GrBlot3(CDC *dc,I64 x1,I64 y1,I64 z1,CDC *img) @@ -1169,21 +1120,21 @@ gr_done: return result; } -public I64 GrFillTri0(CDC *dc,CD3I32 *p1,CD3I32 *p2,CD3I32 *p3) +public I64 GrFillTri0(CDC *dc,CD3I32 *p1,CD3I32 *p2,CD3I32 *p4) { //This uses $LK,"fixed-point","FI:::/TempleOS/Demo/Lectures/FixedPoint.CPP"$. //Returns cnt of pixels changed I64 x1,x2,y,z1,z2,dx1,dy1,dz1,dx2,dy2,dz2,result=0,i,y_min,y_max; CTask *win_task; //p1 is min x - if (p3->xx) - SwapU64(&p3,&p2); + if (p4->xx) + SwapU64(&p4,&p2); if (p2->xx) SwapU64(&p2,&p1); - //p2 is min y of remainder - if (p3->yy) - SwapU64(&p3,&p2); + //p2y<=p4y + if (p4->yy) + SwapU64(&p4,&p2); y_min=0; y_max=dc->height; @@ -1195,16 +1146,47 @@ public I64 GrFillTri0(CDC *dc,CD3I32 *p1,CD3I32 *p2,CD3I32 *p3) y_max=win_task->win_pixel_bottom-(win_task->win_scroll_y+win_task->win_pixel_top); } - if ((dy2=p3->y-p1->y)<0) { - if (dy1=p2->y-p1->y) { - dx1=(p1->x-p2->x)<<32/dy1; - dz1=(p1->z-p2->z)<<32/dy1; - } else { - dx1=0; - dz1=0; - } - dx2=(p1->x-p3->x)<<32/dy2; - dz2=(p1->z-p3->z)<<32/dy2; + if ((dy2=p4->y-p1->y)<0) { +/* +p1x<= {p2x,p4x} + +p2y<= +p4y< +p1y + + 6 + 1 + + 6 + 1 + + 24 + 1 + + 42 + 1 + + 2 + 4 + 1 + + 24 + 1 + + 42 + 1 + + 2 + 4 + 1 + +*/ + dy1=p2->y-p1->y; + dx1=(p1->x-p2->x)<<32/dy1; + dz1=(p1->z-p2->z)<<32/dy1; + + dx2=(p1->x-p4->x)<<32/dy2; + dz2=(p1->z-p4->z)<<32/dy2; x1=x2=p1->x<<32; y=p1->y; z1=z2=p1->z<<32; if (y+dy2y-p3->y) { - dx2=(p3->x-p2->x)<<32/dy2; - dz2=(p3->z-p2->z)<<32/dy2; + if (dy2=p2->y-p4->y) { + dx2=(p4->x-p2->x)<<32/dy2; + dz2=(p4->z-p2->z)<<32/dy2; if (y+dy2-dy2) goto ft_done; @@ -1258,13 +1240,36 @@ public I64 GrFillTri0(CDC *dc,CD3I32 *p1,CD3I32 *p2,CD3I32 *p3) z2+=dz2; } } else if ((dy2=p2->y-p1->y)>0) { - if (dy1=p3->y-p1->y) { - dx1=(p3->x-p1->x)<<32/dy1; - dz1=(p3->z-p1->z)<<32/dy1; - } else { - dx1=0; - dz1=0; - } +/* +p1x<= {p2x,p4x} + +p1y< +p2y<= +p4y + + 1 + 6 + + 1 + 6 + + 1 + 2 + 4 + + 1 + 2 + 4 + + 1 + 2 + 4 + +*/ + dy1=p4->y-p1->y; + dx1=(p4->x-p1->x)<<32/dy1; + dz1=(p4->z-p1->z)<<32/dy1; + dx2=(p2->x-p1->x)<<32/dy2; dz2=(p2->z-p1->z)<<32/dy2; x1=x2=p1->x<<32; y=p1->y; z1=z2=p1->z<<32; @@ -1292,9 +1297,9 @@ public I64 GrFillTri0(CDC *dc,CD3I32 *p1,CD3I32 *p2,CD3I32 *p3) z1+=dz1; z2+=dz2; } - if (dy2=p3->y-p2->y) { - dx2=(p3->x-p2->x)<<32/dy2; - dz2=(p3->z-p2->z)<<32/dy2; + if (dy2=p4->y-p2->y) { + dx2=(p4->x-p2->x)<<32/dy2; + dz2=(p4->z-p2->z)<<32/dy2; if (y+dy2>=y_max) { i=y+dy2-y_max+1; if (i>dy2) goto ft_done; @@ -1320,12 +1325,55 @@ public I64 GrFillTri0(CDC *dc,CD3I32 *p1,CD3I32 *p2,CD3I32 *p3) z2+=dz2; } } else { +/* +p1x<= {p2x,p4x} + +p2y<= +p1y<= +p4y + + 7 + + 16 + + 124 + + 3 + 4 + + 2 + 5 + + 3 + 4 + + 2 + 1 + 4 + + 2 + 1 + 4 + + + + 2 + 1 + 4 + + + + 2 + 1 + 4 + +*/ if (dy1=p2->y-p1->y) { dx1=(p2->x-p1->x)<<32/dy1; dz1=(p2->z-p1->z)<<32/dy1; - if (dy2=p2->y-p3->y) { - dx2=(p2->x-p3->x)<<32/dy2; - dz2=(p2->z-p3->z)<<32/dy2; + if (dy2=p2->y-p4->y) { + dx2=(p2->x-p4->x)<<32/dy2; + dz2=(p2->z-p4->z)<<32/dy2; } else { dx2=0; dz2=0; @@ -1352,17 +1400,17 @@ public I64 GrFillTri0(CDC *dc,CD3I32 *p1,CD3I32 *p2,CD3I32 *p3) z2+=dz2; } } - if (dy1=p3->y-p1->y) { - dx1=(p1->x-p3->x)<<32/dy1; - dz1=(p1->z-p3->z)<<32/dy1; - if (dy2=p3->y-p2->y) { - dx2=(p2->x-p3->x)<<32/dy2; - dz2=(p2->z-p3->z)<<32/dy2; + if (dy1=p4->y-p1->y) { + dx1=(p1->x-p4->x)<<32/dy1; + dz1=(p1->z-p4->z)<<32/dy1; + if (dy2=p4->y-p2->y) { + dx2=(p2->x-p4->x)<<32/dy2; + dz2=(p2->z-p4->z)<<32/dy2; } else { dx2=0; dz2=0; } - x1=x2=p3->x<<32; y=p3->y; z1=z2=p3->z<<32; + x1=x2=p4->x<<32; y=p4->y; z1=z2=p4->z<<32; if (y-dy1dy1) goto ft_done; @@ -1396,36 +1444,34 @@ public I64 GrFillPoly3(CDC *dc,I64 n,CD3I32 *poly) { //Must be convex. //Returns cnt of pixels changed CD3I32 tri[3]; - I64 i,j,x0,y0,z0,x1,y1,z1,x2,y2,z2,result=0; + I64 i,j,x,y,z,result=0; if (n<3) return 0; if (dc->flags & DCF_SYMMETRY) { for (i=1;iflags&DCF_TRANSFORMATION) - (*dc->transform)(dc,&x0,&y0,&z0); - GrReflect(dc,&x0,&y0,&z0); - tri[0].x=x0; tri[0].y=y0; tri[0].z=z0; + (*dc->transform)(dc,&x,&y,&z); + GrReflect(dc,&x,&y,&z); + tri[0].x=x; tri[0].y=y; tri[0].z=z; } j++; if (i==1) { - x1=poly[j].x; y1=poly[j].y; z1=poly[j].z; + x=poly[j].x; y=poly[j].y; z=poly[j].z; if (dc->flags&DCF_TRANSFORMATION) - (*dc->transform)(dc,&x1,&y1,&z1); - GrReflect(dc,&x1,&y1,&z1); - } else { - x1=x2; y1=y2; z1=z2; + (*dc->transform)(dc,&x,&y,&z); + GrReflect(dc,&x,&y,&z); } - tri[1].x=x1; tri[1].y=y1; tri[1].z=z1; + tri[1].x=x; tri[1].y=y; tri[1].z=z; j++; - x2=poly[j].x; y2=poly[j].y; z2=poly[j].z; + x=poly[j].x; y=poly[j].y; z=poly[j].z; if (dc->flags&DCF_TRANSFORMATION) - (*dc->transform)(dc,&x2,&y2,&z2); - GrReflect(dc,&x2,&y2,&z2); - tri[2].x=x2; tri[2].y=y2; tri[2].z=z2; + (*dc->transform)(dc,&x,&y,&z); + GrReflect(dc,&x,&y,&z); + tri[2].x=x; tri[2].y=y; tri[2].z=z; result+=GrFillTri0(dc,&tri[0],&tri[1],&tri[2]); } @@ -1435,27 +1481,25 @@ public I64 GrFillPoly3(CDC *dc,I64 n,CD3I32 *poly) for (i=1;iflags&DCF_TRANSFORMATION) - (*dc->transform)(dc,&x0,&y0,&z0); - tri[0].x=x0; tri[0].y=y0; tri[0].z=z0; + (*dc->transform)(dc,&x,&y,&z); + tri[0].x=x; tri[0].y=y; tri[0].z=z; } j++; if (i==1) { - x1=poly[j].x; y1=poly[j].y; z1=poly[j].z; + x=poly[j].x; y=poly[j].y; z=poly[j].z; if (dc->flags&DCF_TRANSFORMATION) - (*dc->transform)(dc,&x1,&y1,&z1); - } else { - x1=x2; y1=y2; z1=z2; + (*dc->transform)(dc,&x,&y,&z); } - tri[1].x=x1; tri[1].y=y1; tri[1].z=z1; + tri[1].x=x; tri[1].y=y; tri[1].z=z; j++; - x2=poly[j].x; y2=poly[j].y; z2=poly[j].z; + x=poly[j].x; y=poly[j].y; z=poly[j].z; if (dc->flags&DCF_TRANSFORMATION) - (*dc->transform)(dc,&x2,&y2,&z2); - tri[2].x=x2; tri[2].y=y2; tri[2].z=z2; + (*dc->transform)(dc,&x,&y,&z); + tri[2].x=x; tri[2].y=y; tri[2].z=z; result+=GrFillTri0(dc,&tri[0],&tri[1],&tri[2]); } diff --git a/TempleOS/Adam/Gr/GrScreen.CPP b/TempleOS/Adam/Gr/GrScreen.CPP index 2850199..fdff8ff 100644 --- a/TempleOS/Adam/Gr/GrScreen.CPP +++ b/TempleOS/Adam/Gr/GrScreen.CPP @@ -32,6 +32,7 @@ public U0 DCClear(CDC *dc=NULL) } #help_index "Graphics/Screen" +public I64 gr_pan_text_x=0,gr_pan_text_y=0; // [-7,7] public U0 (*fp_final_screen_update)(CDC *dc)=NULL; public U0 (*fp_wall_paper)(CTask *task)=NULL; @@ -361,9 +362,9 @@ U0 GrInit4() gr_text_base=CAlloc(TEXT_ROWS*TEXT_COLS*sizeof(U32)); gr_vga_text_cache=MAlloc(TEXT_ROWS*TEXT_COLS*sizeof(U16)); - gr_win_z_buf=MAlloc(TEXT_ROWS*TEXT_COLS*sizeof(U16)); gr_win_uncovered_bitmap=CAlloc(65536/8); gr_highest_uncovered=0; + gr_win_z_buf=MAlloc(TEXT_ROWS*TEXT_COLS*sizeof(U16)); gr_dc2=DCNew(DCT_COLOR8,GR_WIDTH,GR_HEIGHT); gr_dc2->flags|=DCF_SCREEN_BITMAP; @@ -583,25 +584,71 @@ U0 GrZoomInScreen() U0 GrUpdateBackgroundOfText() { - I64 reg RSI *dst=gr_dc2->body,reg R13 c,row,col,,cur_ch, - reg R12 w1=gr_dc2->width_internal,reg R10 w2=-7*w1+8,w3=7*w1, - reg *my_1_to_8_colors=gr_1_to_8_colors; - U32 reg *src=gr_text_base; -$HL,1$ Bool blink_flag=Blink; - nounusedwarn w2; - for (row=TEXT_ROWS;row--;) { - for (col=TEXT_COLS;col--;) { + I64 reg RSI *dst=gr_dc2->body,reg R13 c,row,col, + num_rows=TEXT_ROWS,num_cols=TEXT_COLS,i,j,cur_ch, + reg R12 w1=gr_dc2->width_internal,w2=-7*w1+8,w3=7*w1,w4=0; + U32 *src=gr_text_base; + Bool blink_flag=Blink; + U8 *dst2=dst; + + if (gr_pan_text_x) { + gr_pan_text_x=LimitI64(gr_pan_text_x,-7,7); + j=AbsI64(gr_pan_text_x)/FONT_WIDTH+1; + num_cols-=j; + if (gr_pan_text_x<0) { + src+=j; + i=FONT_WIDTH*j+gr_pan_text_x; + } else + i=gr_pan_text_x; + dst2=dst(U8 *)+i; + w4=j; + w3+=j*FONT_WIDTH; + + j*=FONT_WIDTH; + dst(U8 *)=gr_dc2->body; + for (row=num_rows*FONT_HEIGHT;row--;) { + for (col=i;col--;) + *dst(U8 *)++=0; + dst(U8 *)+=w1-i-j; + for (col=j;col--;) + *dst(U8 *)++=0; + } + } + dst=dst2; + + if (gr_pan_text_y) { + gr_pan_text_y=LimitI64(gr_pan_text_y,-7,7); + j=AbsI64(gr_pan_text_y)/FONT_HEIGHT+1; + num_rows-=j; + if (gr_pan_text_y<0) { + src+=w1/FONT_WIDTH*j; + i=w1*(FONT_HEIGHT*j+gr_pan_text_y); + } else + i=w1*gr_pan_text_y; + dst2=dst(U8 *)+i; + + j*=w1*FONT_HEIGHT; + dst(U8 *)=gr_dc2->body; + for (row=i;row--;) + *dst(U8 *)++=0; + dst(U8 *)=gr_dc2->body+TEXT_ROWS*TEXT_COLS*FONT_HEIGHT*FONT_WIDTH-j; + for (row=j;row--;) + *dst(U8 *)++=0; + } + dst=dst2; + + for (row=num_rows;row--;) { + for (col=num_cols;col--;) { cur_ch=*src++; if (cur_ch & (DOCET_SELECTED | DOCET_INVERT | DOCET_BLINK)) { if (cur_ch & DOCET_SELECTED) cur_ch.u8[1]=cur_ch.u8[1]^0xFF; if (cur_ch & DOCET_INVERT) cur_ch.u8[1]=cur_ch.u8[1]<<4+cur_ch.u8[1]>>4; - if (cur_ch & DOCET_BLINK) - if (blink_flag) - cur_ch.u8[1]= cur_ch.u8[1]<<4+ cur_ch.u8[1]>>4; + if (cur_ch & DOCET_BLINK && blink_flag) + cur_ch.u8[1]=cur_ch.u8[1]<<4+cur_ch.u8[1]>>4; } - c=my_1_to_8_colors[cur_ch.u8[1]>>4]; + c=gr_1_to_8_colors[cur_ch.u8[1]>>4]; asm { MOV U64 [RSI],R13 ADD RSI,R12 @@ -618,9 +665,10 @@ asm { MOV U64 [RSI],R13 ADD RSI,R12 MOV U64 [RSI],R13 - ADD RSI,R10 } + dst(U8 *)+=w2; } + src+=w4; dst(U8 *)+=w3; } } @@ -638,24 +686,46 @@ asm { U0 GrUpdateForegroundOfText() { U32 *src=gr_text_base; - I64 i,j,cur_ch,reg *dst=gr_dc2->body, - reg w1=gr_dc2->width_internal,w2=7*w1, - row,col; + I64 i,j,cur_ch,*dst=gr_dc2->body, + w1=gr_dc2->width_internal,w2=7*w1,w4=0, + num_rows=TEXT_ROWS,num_cols=TEXT_COLS,row,col; U8 *dst_start=gr_dc2->body,*dst_end=dst_start+w1*gr_dc2->height-7*w1-8; Bool blink_flag=Blink; - for (row=TEXT_ROWS;row--;) { - for (col=TEXT_COLS;col--;) { + + if (gr_pan_text_x) { + gr_pan_text_x=LimitI64(gr_pan_text_x,-7,7); + j=AbsI64(gr_pan_text_x)/FONT_WIDTH+1; + num_cols-=j; + if (gr_pan_text_x<0) { + src+=j; + dst(U8 *)+=FONT_WIDTH*j; + } + w4=j; + w2+=j*FONT_WIDTH; + } + + if (gr_pan_text_y) { + gr_pan_text_y=LimitI64(gr_pan_text_y,-7,7); + j=AbsI64(gr_pan_text_y)/FONT_HEIGHT+1; + num_rows-=j; + if (gr_pan_text_y<0) { + src+=w1/FONT_WIDTH*j; + dst(U8 *)+=w1*FONT_HEIGHT*j; + } + } + + for (row=num_rows;row--;) { + for (col=num_cols;col--;) { cur_ch=*src++; if (cur_ch & (DOCET_UNDERLINE | DOCET_SELECTED | DOCET_INVERT | DOCET_BLINK)) { if (cur_ch & DOCET_SELECTED) cur_ch.u8[1]=cur_ch.u8[1]^0xFF; if (cur_ch & DOCET_INVERT) cur_ch.u8[1]=cur_ch.u8[1]<<4+cur_ch.u8[1]>>4; - if (cur_ch & DOCET_BLINK) - if (blink_flag) - cur_ch.u8[1]= cur_ch.u8[1]<<4+cur_ch.u8[1]>>4; + if (cur_ch & DOCET_BLINK && blink_flag) + cur_ch.u8[1]=cur_ch.u8[1]<<4+cur_ch.u8[1]>>4; } - if (i=cur_ch.u16[1]&0x3FF) { + if (i=cur_ch.u16[1]&0x3FF+gr_pan_text_x+gr_pan_text_y<<5) { j=i&0x1F; if (j&0x10) j|=~0x1F; i>>=5; @@ -667,6 +737,7 @@ U0 GrUpdateForegroundOfText() GrRopEquU8NoClipping(cur_ch&(DOCET_UNDERLINE+0xFFF),dst,w1); dst(U8 *)+=8; } + src+=w4; dst(U8 *)+=w2; } } diff --git a/TempleOS/Adam/Gr/GrSpritePlot.CPP b/TempleOS/Adam/Gr/GrSpritePlot.CPP index 1f91fea..0452a36 100644 --- a/TempleOS/Adam/Gr/GrSpritePlot.CPP +++ b/TempleOS/Adam/Gr/GrSpritePlot.CPP @@ -12,7 +12,7 @@ unions are used. It's kind-of a mess using a union. $LK,"SpriteSize","MN:SpriteSize"$() will return the size of a single operation, while $LK,"SpriteSize","MN:SpriteSize"$() with an 's' will return the size of an entire lst. Look at -$LK,"gr_sprite_base_size","MN:gr_sprite_base_size"$. +$LK,"sprite_base_size","MN:sprite_base_size"$. To get familiar, type on sprite in a document and select "Display as Text". It @@ -72,7 +72,7 @@ public U0 SpritePlot3(CDC *dc,I64 x,I64 y,I64 z,U8 *elems,Bool just_one=FALSE) GrPlot3(dc,tempg->x1+x,tempg->y1+y,z); break; case GRST_TEXT: - GrPutS3(dc,tempg->x1+x,tempg->y1+y,z,tempg->st); + GrPrint3(dc,tempg->x1+x,tempg->y1+y,z,"%s",tempg->st); break; case GRST_TEXT_BOX: GrTextBox3(dc,tempg->x1+x,tempg->y1+y,z,tempg->st); @@ -289,7 +289,7 @@ public U0 SpritePlot3(CDC *dc,I64 x,I64 y,I64 z,U8 *elems,Bool just_one=FALSE) old_flags&(DCF_SYMMETRY|DCF_TRANSFORMATION); } -public U0 SpritePlot3b(CDC *dc,I64 x,I64 y,I64 z,U8 *elems) +public U0 SpritePlot3B(CDC *dc,I64 x,I64 y,I64 z,U8 *elems) { I64 old_x=dc->x,old_y=dc->y,old_z=dc->z, old_flags=dc->flags&DCF_TRANSFORMATION; @@ -300,7 +300,7 @@ public U0 SpritePlot3b(CDC *dc,I64 x,I64 y,I64 z,U8 *elems) dc->flags=dc->flags&~DCF_TRANSFORMATION|old_flags; } -public U0 SpritePlotRotMat3b(CDC *dc,I64 x,I64 y,I64 z,U8 *elems,I64 *m) +public U0 SpritePlotRotMat3B(CDC *dc,I64 x,I64 y,I64 z,U8 *elems,I64 *m) { I64 *old_r=dc->r,old_m[16], old_flags=dc->flags&DCF_TRANSFORMATION; @@ -315,24 +315,24 @@ public U0 SpritePlotRotMat3b(CDC *dc,I64 x,I64 y,I64 z,U8 *elems,I64 *m) dc->flags=dc->flags&~DCF_TRANSFORMATION|old_flags; } -public U0 SpritePlotRotX3b(CDC *dc,I64 x,I64 y,I64 z,U8 *elems,F64 è=0) +public U0 SpritePlotRotX3B(CDC *dc,I64 x,I64 y,I64 z,U8 *elems,F64 è=0) { I64 *r=GrRotX(è); - SpritePlotRotMat3b(dc,x,y,z,elems,r); + SpritePlotRotMat3B(dc,x,y,z,elems,r); Free(r); } -public U0 SpritePlotRotY3b(CDC *dc,I64 x,I64 y,I64 z,U8 *elems,F64 ê=0) +public U0 SpritePlotRotY3B(CDC *dc,I64 x,I64 y,I64 z,U8 *elems,F64 ê=0) { I64 *r=GrRotY(ê); - SpritePlotRotMat3b(dc,x,y,z,elems,r); + SpritePlotRotMat3B(dc,x,y,z,elems,r); Free(r); } -public U0 SpritePlotRotZ3b(CDC *dc,I64 x,I64 y,I64 z,U8 *elems,F64 é=0) +public U0 SpritePlotRotZ3B(CDC *dc,I64 x,I64 y,I64 z,U8 *elems,F64 é=0) { I64 *r=GrRotZ(é); - SpritePlotRotMat3b(dc,x,y,z,elems,r); + SpritePlotRotMat3B(dc,x,y,z,elems,r); Free(r); } @@ -498,10 +498,10 @@ public CDocEntry *DocPutSprite(CDoc *doc=NULL,U8 *elems,U8 *txt=NULL) tempb->use_cnt=1; QueIns(tempb,doc->bin_root.last); if (txt) - st=MSPrintF(txt,doc->cur_bin_num++); + st=MPrint(txt,doc->cur_bin_num++); else - st=MSPrintF("$$SP,\"\",%d$$",doc->cur_bin_num++); - doc_e=DocPutS(doc,st); + st=MPrint("$$SP,\"\",%d$$",doc->cur_bin_num++); + doc_e=DocPrint(doc,"%s",st); Free(st); doc_e->bin_data=tempb; if (doc_e && Bt(doc_tag_types,doc_e->type_u8) && doc_e->tag && *doc_e->tag) diff --git a/TempleOS/Adam/Gr/MathGr.CPP b/TempleOS/Adam/Gr/MathGr.CPP index 9db5088..ffd408c 100644 --- a/TempleOS/Adam/Gr/MathGr.CPP +++ b/TempleOS/Adam/Gr/MathGr.CPP @@ -794,17 +794,17 @@ public I64 RegPoly(U8 *aux_data, } #help_index "Graphics/CD3I32;Math/CD3I32" -public F64 P3I32Dist(CD3I32 *p1,CD3I32 *p2) +public F64 D3I32Dist(CD3I32 *p1,CD3I32 *p2) { return Sqrt(SqrI64(p1->x-p2->x)+SqrI64(p1->y-p2->y)+SqrI64(p1->z-p2->z)); } -public F64 P3I32Norm(CD3I32 *p) +public F64 D3I32Norm(CD3I32 *p) { return Sqrt(SqrI64(p->x)+SqrI64(p->y)+SqrI64(p->z)); } -public I64 P3I32SqrNorm(CD3I32 *p) +public I64 D3I32SqrNorm(CD3I32 *p) { return SqrI64(p->x)+SqrI64(p->y)+SqrI64(p->z); } @@ -816,9 +816,9 @@ public I64 Bezier2(U8 *aux_data,CD3I32 *ctrl,Bool (*fp_plot)(U8 *aux,I64 x,I64 y F64 x0=ctrl[0].x,y0=ctrl[0].y,z0=ctrl[0].z, x1=ctrl[1].x-x0,y1=ctrl[1].y-y0,z1=ctrl[1].z-z0, x2=ctrl[2].x-x0,y2=ctrl[2].y-y0,z2=ctrl[2].z-z0, - t,d=P3I32Dist(&ctrl[0],&ctrl[1])+ - P3I32Dist(&ctrl[1],&ctrl[2])+ - P3I32Dist(&ctrl[2],&ctrl[0]), + t,d=D3I32Dist(&ctrl[0],&ctrl[1])+ + D3I32Dist(&ctrl[1],&ctrl[2])+ + D3I32Dist(&ctrl[2],&ctrl[0]), s=0.5/d,t1,t2; xx=x0; yy=y0; zz=z0; if (first && (*fp_plot)(aux_data,xx,yy,zz)) @@ -861,10 +861,10 @@ public I64 Bezier3(U8 *aux_data,CD3I32 *ctrl,Bool (*fp_plot)(U8 *aux,I64 x,I64 y x1=ctrl[1].x-x0,y1=ctrl[1].y-y0,z1=ctrl[1].z-z0, x2=ctrl[2].x-x0,y2=ctrl[2].y-y0,z2=ctrl[2].z-z0, x3=ctrl[3].x-x0,y3=ctrl[3].y-y0,z3=ctrl[3].z-z0, - t,d=P3I32Dist(&ctrl[0],&ctrl[1])+ - P3I32Dist(&ctrl[1],&ctrl[2])+ - P3I32Dist(&ctrl[2],&ctrl[3])+ - P3I32Dist(&ctrl[3],&ctrl[0]), + t,d=D3I32Dist(&ctrl[0],&ctrl[1])+ + D3I32Dist(&ctrl[1],&ctrl[2])+ + D3I32Dist(&ctrl[2],&ctrl[3])+ + D3I32Dist(&ctrl[3],&ctrl[0]), s=0.5/d,nt,t1,t2,t3; xx=x0; yy=y0; zz=z0; if (first && (*fp_plot)(aux_data,xx,yy,zz)) diff --git a/TempleOS/Adam/Gr/CSpriteBitMap.CPP b/TempleOS/Adam/Gr/SpriteBitMap.CPP similarity index 98% rename from TempleOS/Adam/Gr/CSpriteBitMap.CPP rename to TempleOS/Adam/Gr/SpriteBitMap.CPP index b695f68..4391ee6 100644 --- a/TempleOS/Adam/Gr/CSpriteBitMap.CPP +++ b/TempleOS/Adam/Gr/SpriteBitMap.CPP @@ -52,7 +52,7 @@ I64 PopUpSpriteBitMap(CColorROPU32 color,I64 width,I64 snap,F64 ip_scaler) st2=""; } - DocPrintF(doc,"$$FG,PURPLE$$$$TX+CX,\"Sprite BitMap Menu\"$$\n" + DocPrint(doc,"$$FG,PURPLE$$$$TX+CX,\"Sprite BitMap Menu\"$$\n" "$$LK+PU+CX,\"Click for Help\",\"FI:::/TempleOS/Doc/SpriteBitMap.TXT.Z\"$$\n" "\n$$FG,LTBLUE$$$$MU-UL,\"Color %s\",GEBM_COLOR$$\n" "$$MU-UL,\"Dither Color %s\",GEBM_DITHER_COLOR$$\n" @@ -82,7 +82,7 @@ I64 PopUpSpriteBitMap(CColorROPU32 color,I64 width,I64 snap,F64 ip_scaler) "\n$$FG,PURPLE$$$$MU-UL,\"+] Sprite Main Menu\",GEBM_MAIN_MENU$$$$FG,LTBLUE$$\n" "$$MU-UL,\"Exit Sprite\",GEBM_EXIT$$\n" "$$MU-UL,\"Abort Sprite\",DOCM_CANCEL$$\n",st1,st2,width,snap,ip_scaler); - DocPutS(doc,"\nRight-Click to get back to this menu."); + DocPrint(doc,"\nRight-Click to get back to this menu."); i=PopUpMenu(doc); DocDel(doc); return i; @@ -410,7 +410,7 @@ bm_menu: case GEBM_TEXT: GrBMEdPrepPersistentDC(dc,xx1,yy1,img); dc->color=color; - GrPutS(dc,p1,p2,st); + GrPrint(dc,p1,p2,"%s",st); break; case GEBM_TEXT_BOX: GrBMEdPrepPersistentDC(dc,xx1,yy1,img); @@ -537,7 +537,7 @@ bm_menu: case GEBM_TEXT: GrBMEdPrepPersistentDC(dc,xx1,yy1,img); dc->color=color; - GrPutS(dc,p1,p2,st); + GrPrint(dc,p1,p2,"%s",st); break; case GEBM_TEXT_BOX: GrBMEdPrepPersistentDC(dc,xx1,yy1,img); @@ -648,7 +648,7 @@ bm_menu: break; case GEBM_TEXT: img->color=color; - GrPutS(img,p1-xx1,p2-yy1,st); + GrPrint(img,p1-xx1,p2-yy1,"%s",st); goto bm_menu; case GEBM_TEXT_BOX: img->color=color; diff --git a/TempleOS/Adam/Gr/CSpriteEd.CPP b/TempleOS/Adam/Gr/SpriteEd.CPP similarity index 95% rename from TempleOS/Adam/Gr/CSpriteEd.CPP rename to TempleOS/Adam/Gr/SpriteEd.CPP index 2a15360..92c2bc2 100644 --- a/TempleOS/Adam/Gr/CSpriteEd.CPP +++ b/TempleOS/Adam/Gr/SpriteEd.CPP @@ -6,7 +6,7 @@ U8 GrSpOffset[9]={0,1,2,3,0,4,5,6,7}; Bool GrPolyPtPlot(CSprite *root,I64 x,I64 y,I64) { - CSprite *tempg=CAlloc(gr_sprite_qued_base_size[GRST_PT]); + CSprite *tempg=CAlloc(SpriteQuedBaseSize(GRST_PT)); tempg->type=GRST_PT; tempg->x1=x; tempg->y1=y; @@ -60,7 +60,7 @@ I64 SpriteCntQue(CSprite *root) U0 GrEdUpdate(CDoc *doc,CDocBin *tempb,CSprite *root) { - I64 i,size=gr_sprite_base_size[GRST_END]; + I64 i,size=sprite_base_size[GRST_END]; CSprite *tempg=root->next; U8 *dst; Bool unlock=DocLock(doc); @@ -175,7 +175,7 @@ CSprite *GrTransformCircle(I64 r[4][4],CSprite *tempg) { I64 x,y,z; F64 m1,a1,m2,radius=tempg->x2<<16; - CSprite *tempg1=CAlloc(gr_sprite_qued_base_size[GRST_ELLIPSE]); + CSprite *tempg1=CAlloc(SpriteQuedBaseSize(GRST_ELLIPSE)); tempg1->type=GRST_ELLIPSE; x=tempg->x1; y=tempg->y1; z=0; @@ -202,7 +202,7 @@ CSprite *GrTransformEllipse(I64 r[4][4],CSprite *tempg) { I64 x,y,z; F64 m1,a1,m2,a2,s,c,x_radius=tempg->width<<16,y_radius=tempg->height<<16; - CSprite *tempg1=CAlloc(gr_sprite_qued_base_size[tempg->type]); + CSprite *tempg1=CAlloc(SpriteQuedBaseSize(tempg->type)); tempg1->type=tempg->type; if (tempg->type==GRST_POLYGON) tempg1->sides=tempg->sides; @@ -243,7 +243,7 @@ CSprite *GrTransformRect(I64 r[4][4],CSprite *tempg,F64 F64 m1,a1,m2,a2,s,c, x_radius=(tempg->x2-tempg->x1)<<16, y_radius=(tempg->y2-tempg->y1)<<16; - CSprite *tempg1=CAlloc(gr_sprite_qued_base_size[GRST_ROTATED_RECT]); + CSprite *tempg1=CAlloc(SpriteQuedBaseSize(GRST_ROTATED_RECT)); tempg1->type=GRST_ROTATED_RECT; x=tempg->x1; y=tempg->y1; z=0; @@ -490,7 +490,7 @@ U0 SpriteTransform(I64 r[4][4],CSprite *root) tempg1=tempg2; } - tempg3=CAlloc(gr_sprite_qued_base_size[GRST_POLYPT]+ + tempg3=CAlloc(SpriteQuedBaseSize(GRST_POLYPT)+ sizeof(I32)*2+(num*3+7)>>3); ptr=&tempg3->y1; ptr[0]=x2; @@ -596,28 +596,28 @@ U0 PickSpriteDocNew(CDoc *doc,CSprite *root,I64 old_num) I64 cur_num=0; U8 *st; - DocPutS(doc,"$$FG,PURPLE$$$$TX+CX,\"Sprite SideBar\"$$\n" + DocPrint(doc,"$$FG,PURPLE$$$$TX+CX,\"Sprite SideBar\"$$\n" "$$LK+PU+CX,\"Click for Help\",\"FI:::/TempleOS/Doc/SpriteSideBar.TXT.Z\"$$\n\n"); tempg=root->next; while (tempg!=root) { st=Sprite2Text(tempg); if (cur_num==old_num) { - DocPutS(doc,"$$FG,LTRED$$"); - doc_e=DocPrintF(doc,"$$MU-UL,\"%Q\",%d$$\n",st,cur_num++); + DocPrint(doc,"$$FG,LTRED$$"); + doc_e=DocPrint(doc,"$$MU-UL,\"%Q\",%d$$\n",st,cur_num++); } else { - DocPutS(doc,"$$FG,LTBLUE$$"); - DocPrintF(doc,"$$MU-UL,\"%Q\",%d$$\n",st,cur_num++); + DocPrint(doc,"$$FG,LTBLUE$$"); + DocPrint(doc,"$$MU-UL,\"%Q\",%d$$\n",st,cur_num++); } Free(st); tempg=tempg->next; } if (cur_num==old_num) { - DocPutS(doc,"$$FG,LTRED$$"); - doc_e=DocPrintF(doc,"$$MU-UL,\"END\",%d$$\n",cur_num); + DocPrint(doc,"$$FG,LTRED$$"); + doc_e=DocPrint(doc,"$$MU-UL,\"END\",%d$$\n",cur_num); } else { - DocPutS(doc,"$$FG,LTBLUE$$"); - DocPrintF(doc,"$$MU-UL,\"END\",%d$$\n",cur_num); + DocPrint(doc,"$$FG,LTBLUE$$"); + DocPrint(doc,"$$MU-UL,\"END\",%d$$\n",cur_num); } if (doc_e) doc->cur_entry=doc_e; @@ -658,7 +658,7 @@ U0 SpriteSideBarTask(CTask *parent,CSprite **_root,I64 *_cur_num) U8 *SpriteHexDoc2Sprite(CDoc *doc,I64 *_cur_num,CTask *mem_task=NULL) { - I64 num=0,size=gr_sprite_base_size[GRST_END]; + I64 num=0,size=sprite_base_size[GRST_END]; U8 *result,*dst; Bool unlock_doc=DocLock(doc); CDocEntry *doc_e=doc->root.next; @@ -694,14 +694,14 @@ Bool SpriteTextEd(CSprite **_root,I64 *_cur_num) CSprite *root=*_root,*tempg; CDocEntry *doc_e; doc->flags|=DOCF_FORM; - DocPutS(doc,"$$FG,PURPLE$$$$TX+CX,\"Sprite Edit as Text\"$$$$FG$$\n" + DocPrint(doc,"$$FG,PURPLE$$$$TX+CX,\"Sprite Edit as Text\"$$$$FG$$\n" "$$LK+PU+CX,\"Click for Help\",\"FI:::/TempleOS/Doc/SpriteEdText.TXT.Z\"$$\n\n"); tempg=root->next; while (tempg!=root) { st=Sprite2Text(tempg); - DocPrintF(doc,"$$FG,BLUE$$%s$$FG$$\n",st); + DocPrint(doc,"$$FG,BLUE$$%s$$FG$$\n",st); Free(st); - doc_e=DocPrintF(doc,"$$HX,%d,16$$",SpriteElemSize(tempg)); + doc_e=DocPrint(doc,"$$HX,%d,16$$",SpriteElemSize(tempg)); doc_e->data=&tempg->start; tempg=tempg->next; } @@ -744,7 +744,7 @@ I64 PopUpSpriteEd(CSprite **_root,I64 snap,F64 ip_scaler,I64 *_cur_num) CTask *pu_task; I64 i; CDoc *doc=DocNew; - DocPrintF(doc,"$$FG,PURPLE$$$$TX+CX,\"Sprite Edit Menu\"$$\n" + DocPrint(doc,"$$FG,PURPLE$$$$TX+CX,\"Sprite Edit Menu\"$$\n" "$$LK+PU+CX,\"Click for Help\",\"FI:::/TempleOS/Doc/SpriteEd.TXT.Z\"$$\n\n" "$$FG,LTBLUE$$$$MU-UL,\"Shift Points\",GED_SHIFT_PTS$$\n" "$$MU-UL,\"Shift Points with Rects\",GED_SHIFT_RECTS$$\n" @@ -760,7 +760,7 @@ I64 PopUpSpriteEd(CSprite **_root,I64 snap,F64 ip_scaler,I64 *_cur_num) "\n$$FG,PURPLE$$$$MU-UL,\"+] Sprite Main Menu\",GED_MAIN_MENU$$$$FG,LTBLUE$$\n" "$$MU-UL,\"Exit Sprite\",GED_EXIT$$\n" "$$MU-UL,\"Abort Sprite\",DOCM_CANCEL$$",snap,ip_scaler); - st=MSPrintF("SpriteSideBarTask(0x%X,0x%X,0x%X);",Fs,_root,_cur_num); + st=MPrint("SpriteSideBarTask(0x%X,0x%X,0x%X);",Fs,_root,_cur_num); PopUp(st,NULL,&pu_task); Free(st); i=PopUpMenu(doc); @@ -1189,7 +1189,7 @@ I64 SpriteEd(CDoc *doc,CDocEntry *doc_e,I64 x,I64 y,CSprite **_root,I64 *_cur_nu case GED_SHIFT_SUB_ORIGIN: doc_e->flags1=old_e_flags1; insert_pt=GrNum2Que(*_root,*_cur_num); - tempg=MAlloc(gr_sprite_qued_base_size[GRST_SHIFT]); + tempg=MAlloc(SpriteQuedBaseSize(GRST_SHIFT)); tempg->type=GRST_SHIFT; tempg->x1=0; tempg->y1=0; diff --git a/TempleOS/Adam/Gr/CSpriteMain.CPP b/TempleOS/Adam/Gr/SpriteMain.CPP similarity index 93% rename from TempleOS/Adam/Gr/CSpriteMain.CPP rename to TempleOS/Adam/Gr/SpriteMain.CPP index fb10032..765cd2b 100644 --- a/TempleOS/Adam/Gr/CSpriteMain.CPP +++ b/TempleOS/Adam/Gr/SpriteMain.CPP @@ -13,7 +13,7 @@ I64 PopUpSpriteMain(CSprite **_root,I64 snap,F64 ip_scaler,I64 *_cur_num) CTask *pu_task; I64 i; CDoc *doc=DocNew; - DocPrintF(doc,"$$FG,PURPLE$$$$TX+CX,\"Sprite Main Menu\"$$\n" + DocPrint(doc,"$$FG,PURPLE$$$$TX+CX,\"Sprite Main Menu\"$$\n" "$$LK+PU+CX,\"Click for Help\",\"FI:::/TempleOS/Doc/SpriteMain.TXT.Z\"$$\n" "\n$$FG,LTBLUE$$$$MU-UL,\"Color (4-bit)\",GRST_COLOR8$$\n" "$$MU-UL,\"Dither Color (4-bit)\",GRST_DITHER_COLOR8$$\n" @@ -49,8 +49,8 @@ I64 PopUpSpriteMain(CSprite **_root,I64 snap,F64 ip_scaler,I64 *_cur_num) "$$FG,PURPLE$$$$MU-UL,\"+] Sprite Edit Menu\",GRST_ED_MENU$$$$FG,LTBLUE$$\n" "$$MU-UL,\"Exit Sprite\",GRST_EXIT$$\n" "$$MU-UL,\"Abort Sprite\",DOCM_CANCEL$$\n",snap,ip_scaler); - DocPutS(doc,"\nRight-Click to get back to this menu."); - st=MSPrintF("SpriteSideBarTask(0x%X,0x%X,0x%X);",Fs,_root,_cur_num); + DocPrint(doc,"\nRight-Click to get back to this menu."); + st=MPrint("SpriteSideBarTask(0x%X,0x%X,0x%X);",Fs,_root,_cur_num); PopUp(st,NULL,&pu_task); Free(st); i=PopUpMenu(doc); @@ -67,21 +67,21 @@ Bool PopUpExtents(I64 *_x1,I64 *_x2,I64 *_y1,I64 *_y2) I64 i; CDoc *doc=DocNew; CDocEntry *doc_e; - doc_e=DocPutS(doc," $$DA,32,\"x1:%d\"$$\n"); + doc_e=DocPrint(doc," $$DA,32,\"x1:%%d\"$$\n"); doc_e->data=_x1; DocDataFmt(doc_e); - doc_e=DocPutS(doc," $$DA,32,\"x2:%d\"$$\n"); + doc_e=DocPrint(doc," $$DA,32,\"x2:%%d\"$$\n"); doc_e->data=_x2; DocDataFmt(doc_e); - doc_e=DocPutS(doc," $$DA,32,\"y1:%d\"$$\n"); + doc_e=DocPrint(doc," $$DA,32,\"y1:%%d\"$$\n"); doc_e->data=_y1; DocDataFmt(doc_e); - doc_e=DocPutS(doc," $$DA,32,\"y2:%d\"$$\n\n"); + doc_e=DocPrint(doc," $$DA,32,\"y2:%%d\"$$\n\n"); doc_e->data=_y2; DocDataFmt(doc_e); - DocPutS(doc," $$BT,\"Use These Extents\",TRUE$$"); - DocPutS(doc,"$$CM,3,0$$$$BT,\"Drag-Out New Extents\",FALSE$$\n\n"); + DocPrint(doc," $$BT,\"Use These Extents\",TRUE$$"); + DocPrint(doc,"$$CM,3,0$$$$BT,\"Drag-Out New Extents\",FALSE$$\n\n"); do i=PopUpMenu(doc); while (i!=FALSE && i!=TRUE); DocDel(doc); @@ -230,7 +230,7 @@ I64 SpriteMain(CDoc *doc,CDocEntry *doc_e,I64 x,I64 y) i=PopUpColor(,,FALSE); if (i>=0) { color=i; - tempg=MAlloc(gr_sprite_qued_base_size[GRST_COLOR8]); + tempg=MAlloc(SpriteQuedBaseSize(GRST_COLOR8)); tempg->type=GRST_COLOR8; tempg->color8=color; QueIns(tempg,insert_pt->last); @@ -245,7 +245,7 @@ I64 SpriteMain(CDoc *doc,CDocEntry *doc_e,I64 x,I64 y) i=PopUpColorDither; if (i>=0) { color=i; - tempg=MAlloc(gr_sprite_qued_base_size[GRST_DITHER_COLOR8]); + tempg=MAlloc(SpriteQuedBaseSize(GRST_DITHER_COLOR8)); tempg->type=GRST_DITHER_COLOR8; tempg->dither_color8=color.c0.color|color.c1.color<<8; QueIns(tempg,insert_pt->last); @@ -287,8 +287,8 @@ I64 SpriteMain(CDoc *doc,CDocEntry *doc_e,I64 x,I64 y) old_mesh=&tempg1->shiftable_vertex_cnt; } else old_mesh=NULL; - if (mesh=CSpriteMesh(old_mesh,&size,TRUE)) { - tempg=MAlloc(gr_sprite_qued_base_size[GRST_MESH]-sizeof(I32)*2+size); + if (mesh=SpriteMesh(old_mesh,&size,TRUE)) { + tempg=MAlloc(SpriteQuedBaseSize(GRST_MESH)-sizeof(I32)*2+size); tempg->type=GRST_MESH; MemCpy(&tempg->vertex_cnt,mesh,size); Free(mesh); @@ -369,7 +369,7 @@ I64 SpriteMain(CDoc *doc,CDocEntry *doc_e,I64 x,I64 y) i=PopUpRangeI64(1,16,1,"Pen Width\n"); if (i>=1) { width=i; - tempg=MAlloc(gr_sprite_qued_base_size[GRST_WIDTH]); + tempg=MAlloc(SpriteQuedBaseSize(GRST_WIDTH)); tempg->type=GRST_WIDTH; tempg->width=width; QueIns(tempg,insert_pt->last); @@ -381,7 +381,7 @@ I64 SpriteMain(CDoc *doc,CDocEntry *doc_e,I64 x,I64 y) break; case GRST_TRANSFORM_ON: case GRST_TRANSFORM_OFF: - tempg=MAlloc(gr_sprite_qued_base_size[GRST_TRANSFORM_ON]); + tempg=MAlloc(SpriteQuedBaseSize(GRST_TRANSFORM_ON)); if (eletype==GRST_TRANSFORM_ON) tempg->type=GRST_TRANSFORM_ON; else @@ -414,13 +414,13 @@ I64 SpriteMain(CDoc *doc,CDocEntry *doc_e,I64 x,I64 y) x1=0; y1=0; do { dc->color=color&COLORROP_NO_ROP0_MASK; - GrPutS3(dc,x1,y1,0,st); + GrPrint3(dc,x1,y1,0,"%s",st); msg_code=GetMsg(&p1,&p2, 1<type=GRST_TEXT; tempg->x1=x1-x; tempg->y1=y1-y; @@ -446,7 +446,7 @@ I64 SpriteMain(CDoc *doc,CDocEntry *doc_e,I64 x,I64 y) GrScreenInit(dc,x,y); x1=p1; y1=p2; } while (msg_code!=MSG_IP_L_UP); - tempg=CAlloc(gr_sprite_qued_base_size[GRST_TEXT_BOX]+StrLen(st)+1); + tempg=CAlloc(SpriteQuedBaseSize(GRST_TEXT_BOX)+StrLen(st)+1); tempg->type=GRST_TEXT_BOX; tempg->x1=x1-x; tempg->y1=y1-y; @@ -472,7 +472,7 @@ I64 SpriteMain(CDoc *doc,CDocEntry *doc_e,I64 x,I64 y) GrScreenInit(dc,x,y); x1=p1; y1=p2; } while (msg_code!=MSG_IP_L_UP); - tempg=CAlloc(gr_sprite_qued_base_size[GRST_TEXT_DIAMOND]+StrLen(st)+1); + tempg=CAlloc(SpriteQuedBaseSize(GRST_TEXT_DIAMOND)+StrLen(st)+1); tempg->type=GRST_TEXT_DIAMOND; tempg->x1=x1-x; tempg->y1=y1-y; @@ -499,7 +499,7 @@ ei_restart: msg_code=GetMsg(&p1,&p2,1<type=GRST_PLANAR_SYMMETRY; QueIns(tempg,insert_pt->last); GrEdUpdate(doc,tempb,root); @@ -532,7 +532,7 @@ ei_restart: } while (msg_code!=MSG_IP_L_UP); dc->color=color&COLORROP_NO_ROP0_MASK; GrLine3(dc,x1,y1,0,x2,y2,0); - tempg=MAlloc(gr_sprite_qued_base_size[GRST_LINE]); + tempg=MAlloc(SpriteQuedBaseSize(GRST_LINE)); tempg->type=GRST_LINE; tempg->x1=x1-x; tempg->y1=y1-y; @@ -555,7 +555,7 @@ ei_restart: } while (msg_code!=MSG_IP_L_UP); dc->color=color&COLORROP_NO_ROP0_MASK; GrArrow3(dc,x1,y1,0,x2,y2,0); - tempg=MAlloc(gr_sprite_qued_base_size[GRST_ARROW]); + tempg=MAlloc(SpriteQuedBaseSize(GRST_ARROW)); tempg->type=GRST_ARROW; tempg->x1=x1-x; tempg->y1=y1-y; @@ -580,7 +580,7 @@ ei_restart: GrScreenInit(dc,x,y); x2=p1; y2=p2; } while (msg_code!=MSG_IP_L_UP); - tempg=MAlloc(gr_sprite_qued_base_size[GRST_PLANAR_SYMMETRY]); + tempg=MAlloc(SpriteQuedBaseSize(GRST_PLANAR_SYMMETRY)); tempg->type=GRST_PLANAR_SYMMETRY; tempg->x1=x1-x; tempg->y1=y1-y; @@ -618,7 +618,7 @@ ei_restart: } while (msg_code!=MSG_IP_L_UP); dc->color=color&COLORROP_NO_ROP0_MASK; GrRect3(dc,xx1,yy1,0,xx2-xx1,yy2-yy1); - tempg=MAlloc(gr_sprite_qued_base_size[GRST_RECT]); + tempg=MAlloc(SpriteQuedBaseSize(GRST_RECT)); tempg->type=GRST_RECT; tempg->x1=xx1-x; tempg->y1=yy1-y; @@ -655,7 +655,7 @@ ei_restart: } while (msg_code!=MSG_IP_L_UP); ei_bitmap: xx2++; yy2++; - tempg=CAlloc(gr_sprite_qued_base_size[GRST_BITMAP8]+ + tempg=CAlloc(SpriteQuedBaseSize(GRST_BITMAP8)+ ((xx2-xx1+7)&~7)*(yy2-yy1)); tempg->type=eletype; tempg->width=xx2-xx1; @@ -685,7 +685,7 @@ ei_bitmap: case GE_EXIT: case GE_CONT: Free(tempg); - tempg=CAlloc(gr_sprite_qued_base_size[GRST_BITMAP8]+ + tempg=CAlloc(SpriteQuedBaseSize(GRST_BITMAP8)+ ((xx2-xx1+7)&~7)*(yy2-yy1)); tempg->type=eletype; tempg->width=xx2-xx1; @@ -736,7 +736,7 @@ ei_bitmap: } } while (msg_code!=MSG_IP_L_UP); xx2++; yy2++; - tempg=CAlloc(gr_sprite_qued_base_size[GRST_BITMAP8]+ + tempg=CAlloc(SpriteQuedBaseSize(GRST_BITMAP8)+ ((xx2-xx1+7)&~7)*(yy2-yy1)); tempg->type=GRST_BITMAP8; tempg->width=xx2-xx1; @@ -777,7 +777,7 @@ ei_bitmap: } while (msg_code!=MSG_IP_L_UP); dc->color=color&COLORROP_NO_ROP0_MASK; GrCircle3(dc,x1,y1,0,Sqrt(SqrI64(x1-x2)+SqrI64(y1-y2))); - tempg=MAlloc(gr_sprite_qued_base_size[GRST_CIRCLE]); + tempg=MAlloc(SpriteQuedBaseSize(GRST_CIRCLE)); tempg->type=GRST_CIRCLE; tempg->x1=x1-x; tempg->y1=y1-y; @@ -798,7 +798,7 @@ ei_bitmap: GrScreenInit(dc,x,y); x2=p1; y2=p2; } while (msg_code!=MSG_IP_L_UP); - tempg=MAlloc(gr_sprite_qued_base_size[GRST_ELLIPSE]); + tempg=MAlloc(SpriteQuedBaseSize(GRST_ELLIPSE)); tempg->type=GRST_ELLIPSE; tempg->x2=(x1+x2)>>1-x; tempg->y2=(y1+y2)>>1-y; @@ -848,7 +848,7 @@ ei_bitmap: GrScreenInit(dc,x,y); x2=p1; y2=p2; } while (msg_code!=MSG_IP_L_UP); - tempg=MAlloc(gr_sprite_qued_base_size[GRST_POLYGON]); + tempg=MAlloc(SpriteQuedBaseSize(GRST_POLYGON)); tempg->type=GRST_POLYGON; tempg->x2=(x1+x2)>>1-x; tempg->y2=(y1+y2)>>1-y; @@ -890,7 +890,7 @@ ei_bitmap: break; case GRST_PT: x1=p1; y1=p2; - tempg=MAlloc(gr_sprite_qued_base_size[GRST_PT]); + tempg=MAlloc(SpriteQuedBaseSize(GRST_PT)); tempg->type=GRST_PT; tempg->x1=x1-x; tempg->y1=y1-y; @@ -901,7 +901,7 @@ ei_bitmap: case GRST_FLOOD_FILL: case GRST_FLOOD_FILL_NOT: x1=p1; y1=p2; - tempg=MAlloc(gr_sprite_qued_base_size[GRST_FLOOD_FILL]); + tempg=MAlloc(SpriteQuedBaseSize(GRST_FLOOD_FILL)); tempg->type=eletype; tempg->x1=x1-x; tempg->y1=y1-y; @@ -929,7 +929,7 @@ ei_bitmap: dc->color=color&COLORROP_NO_ROP0_MASK; if (msg_code==MSG_IP_L_UP) { GrLine3(dc,x1,y1,0,x2,y2,0); - tempg=MAlloc(gr_sprite_qued_base_size[GRST_PT]); + tempg=MAlloc(SpriteQuedBaseSize(GRST_PT)); tempg->type=GRST_PT; tempg->x1=x2-x; tempg->y1=y2-y; @@ -939,7 +939,7 @@ ei_bitmap: } } while (msg_code!=MSG_IP_R_UP); if (num) { - tempg2=CAlloc(gr_sprite_qued_base_size[GRST_POLYLINE]+ + tempg2=CAlloc(SpriteQuedBaseSize(GRST_POLYLINE)+ (num+1)<<1*sizeof(I32)); ptr=&tempg2->y1; tempg=root2.next; @@ -991,7 +991,7 @@ ei_bitmap: tempg=tempg1; } - tempg2=CAlloc(gr_sprite_qued_base_size[GRST_POLYPT]+ + tempg2=CAlloc(SpriteQuedBaseSize(GRST_POLYPT)+ sizeof(I32)*2+(num*3+7)>>3); ptr=&tempg2->y1; ptr[0]=x3; @@ -1040,7 +1040,7 @@ ei_bitmap: dc->color=color&COLORROP_NO_ROP0_MASK; if (msg_code==MSG_IP_L_UP) { GrLine3(dc,x1,y1,0,x2,y2,0); - tempg=MAlloc(gr_sprite_qued_base_size[GRST_PT]); + tempg=MAlloc(SpriteQuedBaseSize(GRST_PT)); tempg->type=GRST_PT; tempg->x1=x2-x; tempg->y1=y2-y; @@ -1050,7 +1050,7 @@ ei_bitmap: } } while (msg_code!=MSG_IP_R_UP); if (num) { - tempg2=CAlloc(gr_sprite_qued_base_size[GRST_POLYLINE]+ + tempg2=CAlloc(SpriteQuedBaseSize(GRST_POLYLINE)+ (num+1)*sizeof(CD3I32)); p=&tempg2->y1; tempg=root2.next; @@ -1104,8 +1104,8 @@ ei_shiftable_mesh: z=0; old_mesh=NULL; } - if (mesh=CSpriteMesh(old_mesh,&size,TRUE)) { - tempg=MAlloc(gr_sprite_qued_base_size[GRST_SHIFTABLE_MESH]-sizeof(I32)*2+size); + if (mesh=SpriteMesh(old_mesh,&size,TRUE)) { + tempg=MAlloc(SpriteQuedBaseSize(GRST_SHIFTABLE_MESH)-sizeof(I32)*2+size); tempg->type=GRST_SHIFTABLE_MESH; MemCpy(&tempg->shiftable_vertex_cnt,mesh,size); Free(mesh); @@ -1176,12 +1176,12 @@ U0 EdInsGraphic(CDoc *doc,I64 x,I64 y) unlock=DocLock(doc); tempb=CAlloc(sizeof(CDocBin),doc->mem_task); tempb->type=DOCBT_CSPRITE; - tempb->size=gr_sprite_base_size[GRST_END]; + tempb->size=sprite_base_size[GRST_END]; tempb->data=CAlloc(tempb->size,doc->mem_task); tempb->num=doc->cur_bin_num++; tempb->use_cnt=1; QueIns(tempb,doc->bin_root.last); - doc_e=DocPutS(doc,st); + doc_e=DocPrint(doc,"%s",st); doc_e->bin_data=tempb; Free(st); if (doc_e && Bt(doc_tag_types,doc_e->type_u8) && doc_e->tag && *doc_e->tag) diff --git a/TempleOS/Adam/Gr/CSpriteMesh.CPP b/TempleOS/Adam/Gr/SpriteMesh.CPP similarity index 99% rename from TempleOS/Adam/Gr/CSpriteMesh.CPP rename to TempleOS/Adam/Gr/SpriteMesh.CPP index 9c1c175..6feef0b 100644 --- a/TempleOS/Adam/Gr/CSpriteMesh.CPP +++ b/TempleOS/Adam/Gr/SpriteMesh.CPP @@ -634,7 +634,7 @@ GrMClipBoardInit; U0 DrawIt(CTask *task,CDC *dc) { - CGrMFrame *e=NamedFramePtr("CGrMFrame",task); + CGrMFrame *e=FramePtr("CGrMFrame",task); CCtrl *c=CtrlFindUnique(task,CTRLT_VIEWING_ANGLES); F64 d; I64 i,x,y,z; @@ -664,7 +664,7 @@ U0 DrawIt(CTask *task,CDC *dc) dc->ls.x=x; dc->ls.y=y; dc->ls.z=z; - d=1<<16/P3I32Norm(&dc->ls); //Light source normalized to 65536. + d=1<<16/D3I32Norm(&dc->ls); //Light source normalized to 65536. dc->ls.x*=d; dc->ls.y*=d; dc->ls.z*=d; @@ -725,7 +725,7 @@ U0 DrawIt(CTask *task,CDC *dc) dc->color=ROP_XOR+RED^COLOR_TRANSPARENT; else dc->color=ROP_XOR+COLOR_TRANSPARENT; - GrPrintF(dc,0,0,"%6.3f%% (%d,%d,%d)",e->view_scale*100,x,y,z); + GrPrint(dc,0,0,"%6.3f%% (%d,%d,%d)",e->view_scale*100,x,y,z); dc->pen_width=1; dc->color&=0xF; if (Blink(10)) @@ -871,7 +871,7 @@ U0 GrMUpdateMenu(CGrMFrame *e) tempse->checked=ToBool(e->flip_y); } -I32 *CSpriteMesh(I32 *root=NULL,I64 *_size=NULL,Bool flip_y=FALSE) +I32 *SpriteMesh(I32 *root=NULL,I64 *_size=NULL,Bool flip_y=FALSE) /*$WW,1$ Fmt for mesh: @@ -985,7 +985,7 @@ $WW,0$*/ GrMInit(&e,flip_y); if (root) GrMLoad(&e,root); - NamedFramePtrAdd("CGrMFrame",&e); + FramePtrAdd("CGrMFrame",&e); Fs->draw_it=&DrawIt; GrMCurSnap(&e); GrMRecalcCxCy(Fs,&e); @@ -1370,7 +1370,7 @@ mesh_done: else root=NULL; GrMCleanUp(&e); - NamedFramePtrDel("CGrMFrame"); + FramePtrDel("CGrMFrame"); if (old_s) { MemCpy(c->state,old_s,sizeof(CViewAngles)); Free(old_s); diff --git a/TempleOS/Adam/Gr/CSpriteNew.CPP b/TempleOS/Adam/Gr/SpriteNew.CPP similarity index 69% rename from TempleOS/Adam/Gr/CSpriteNew.CPP rename to TempleOS/Adam/Gr/SpriteNew.CPP index 9a5ee15..011a208 100644 --- a/TempleOS/Adam/Gr/CSpriteNew.CPP +++ b/TempleOS/Adam/Gr/SpriteNew.CPP @@ -1,90 +1,48 @@ #help_index "Graphics/CSprite" #help_file "::/TempleOS/Doc/Sprite" -I64 gr_sprite_base_size[GRST_NUM_TYPES]= +I64 sprite_base_size[GRST_NUM_TYPES]= { offset(CSprite.x1)-offset(CSprite.start), //GRST_END -1, 1+offset(CSprite.color8)-offset(CSprite.start), //GRST_COLOR8 -1, -offset(CSprite.x2)-offset(CSprite.start), //GRST_PT -offset(CSprite.linespeed)-offset(CSprite.start), //GRST_LINE -offset(CSprite.y1)-offset(CSprite.start), //GRST_POLYLINE -offset(CSprite.y1)-offset(CSprite.start), //GRST_POLYPT -offset(CSprite.y1)-offset(CSprite.start), //GRST_WIDTH -offset(CSprite.x2)-offset(CSprite.start), //GRST_SHIFT -offset(CSprite.y1)-offset(CSprite.start), //GRST_BSPLINE2 -offset(CSprite.y1)-offset(CSprite.start), //GRST_BSPLINE3 -offset(CSprite.y1)-offset(CSprite.start), //GRST_BSPLINE2_CLOSED -offset(CSprite.y1)-offset(CSprite.start), //GRST_BSPLINE3_CLOSED -1, -1, -1, -offset(CSprite.linespeed)-offset(CSprite.start), //GRST_RECT -offset(CSprite.y2)-offset(CSprite.start), //GRST_CIRCLE -offset(CSprite.x2)-offset(CSprite.start), //GRST_FLOOD_FILL_NOT -offset(CSprite.x2)-offset(CSprite.start), //GRST_FLOOD_FILL -offset(CSprite.linespeed)-offset(CSprite.start), //GRST_BITMAP8 -1, -offset(CSprite.st)-offset(CSprite.start), //GRST_TEXT -offset(CSprite.sides)-offset(CSprite.start), //GRST_ELLIPSE -sizeof(CSprite)-offset(CSprite.start), //GRST_POLYGON -offset(CSprite.linespeed)-offset(CSprite.start), //GRST_PLANAR_SYMMETRY 2+offset(CSprite.dither_color8)-offset(CSprite.start), //GRST_DITHER_COLOR8 -offset(CSprite.sides)-offset(CSprite.start), //GRST_ROTATED_RECT -offset(CSprite.x2)-offset(CSprite.start), //GRST_MESH -offset(CSprite.shiftable_tri_cnt)+sizeof(I32)-offset(CSprite.start), //GRST_SHIFTABLE_MESH +offset(CSprite.y1)-offset(CSprite.start), //GRST_WIDTH +offset(CSprite.linespeed)-offset(CSprite.start), //GRST_PLANAR_SYMMETRY offset(CSprite.x1)-offset(CSprite.start), //GRST_TRANSFORM_ON offset(CSprite.x1)-offset(CSprite.start), //GRST_TRANSFORM_OFF +offset(CSprite.x2)-offset(CSprite.start), //GRST_SHIFT +offset(CSprite.x2)-offset(CSprite.start), //GRST_PT +offset(CSprite.y1)-offset(CSprite.start), //GRST_POLYPT +offset(CSprite.linespeed)-offset(CSprite.start), //GRST_LINE +offset(CSprite.y1)-offset(CSprite.start), //GRST_POLYLINE +offset(CSprite.linespeed)-offset(CSprite.start), //GRST_RECT +offset(CSprite.sides)-offset(CSprite.start), //GRST_ROTATED_RECT +offset(CSprite.y2)-offset(CSprite.start), //GRST_CIRCLE +offset(CSprite.sides)-offset(CSprite.start), //GRST_ELLIPSE +sizeof(CSprite)-offset(CSprite.start), //GRST_POLYGON +offset(CSprite.y1)-offset(CSprite.start), //GRST_BSPLINE2 +offset(CSprite.y1)-offset(CSprite.start), //GRST_BSPLINE2_CLOSED +offset(CSprite.y1)-offset(CSprite.start), //GRST_BSPLINE3 +offset(CSprite.y1)-offset(CSprite.start), //GRST_BSPLINE3_CLOSED +offset(CSprite.x2)-offset(CSprite.start), //GRST_FLOOD_FILL +offset(CSprite.x2)-offset(CSprite.start), //GRST_FLOOD_FILL_NOT +offset(CSprite.linespeed)-offset(CSprite.start), //GRST_BITMAP8 +offset(CSprite.x2)-offset(CSprite.start), //GRST_MESH +offset(CSprite.shiftable_tri_cnt)+sizeof(I32)-offset(CSprite.start), //GRST_SHIFTABLE_MESH offset(CSprite.linespeed)-offset(CSprite.start), //GRST_ARROW +offset(CSprite.st)-offset(CSprite.start), //GRST_TEXT offset(CSprite.st)-offset(CSprite.start), //GRST_TEXT_BOX offset(CSprite.st)-offset(CSprite.start), //GRST_TEXT_DIAMOND }; -I64 gr_sprite_qued_base_size[GRST_NUM_TYPES]= +I64 SpriteQuedBaseSize(I64 type) { -offset(CSprite.x1),//GRST_END -1, -1+offset(CSprite.color8), //GRST_COLOR8 -1, -offset(CSprite.x2), //GRST_PT -offset(CSprite.linespeed), //GRST_LINE -offset(CSprite.y1), //GRST_POLYLINE -offset(CSprite.y1), //GRST_POLYPT -offset(CSprite.y1), //GRST_WIDTH -offset(CSprite.x2), //GRST_SHIFT -offset(CSprite.y1), //GRST_BSPLINE2 -offset(CSprite.y1), //GRST_BSPLINE3 -offset(CSprite.y1), //GRST_BSPLINE2_CLOSED -offset(CSprite.y1), //GRST_BSPLINE3_CLOSED -1, -1, -1, -offset(CSprite.linespeed), //GRST_RECT -offset(CSprite.y2), //GRST_CIRCLE -offset(CSprite.x2), //GRST_FLOOD_FILL_NOT -offset(CSprite.x2), //GRST_FLOOD_FILL -offset(CSprite.linespeed), //GRST_BITMAP8 -1, -offset(CSprite.st), //GRST_TEXT -offset(CSprite.sides), //GRST_ELLIPSE -sizeof(CSprite), //GRST_POLYGON -offset(CSprite.linespeed), //GRST_PLANAR_SYMMETRY -2+offset(CSprite.dither_color8), //GRST_DITHER_COLOR8 -offset(CSprite.sides), //GRST_ROTATED_RECT -offset(CSprite.x2), //GRST_MESH -offset(CSprite.shiftable_tri_cnt)+sizeof(I32), //GRST_SHIFTABLE_MESH -offset(CSprite.x1), //GRST_TRANSFORM_ON -offset(CSprite.x1), //GRST_TRANSFORM_OFF -offset(CSprite.linespeed), //GRST_ARROW -offset(CSprite.st), //GRST_TEXT_BOX -offset(CSprite.st), //GRST_TEXT_DIAMOND -}; - + return sprite_base_size[type]+offset(CSprite.start); +} I64 SpriteElemSize(CSprite *tempg) { - I64 i=gr_sprite_base_size[tempg->type]; + I64 i=sprite_base_size[tempg->type]; switch (tempg->type) { case GRST_POLYLINE: i+=tempg->num<<1*sizeof(I32); @@ -121,7 +79,7 @@ public I64 SpriteSize(U8 *elems) CSprite *tempg=elems-offset(CSprite.start),*tempg1=tempg; while (tempg->type) tempg(U8 *)+=SpriteElemSize(tempg); - return tempg(U8 *)-tempg1(U8 *)+gr_sprite_base_size[GRST_END]; + return tempg(U8 *)-tempg1(U8 *)+sprite_base_size[GRST_END]; } I64 SpriteTypeMask(U8 *elems) @@ -151,9 +109,9 @@ public U8 *DC2Sprite(CDC *tempb) tempb1=tempb; temp_bitmap=FALSE; } - tempg=CAlloc(gr_sprite_base_size[GRST_BITMAP8]+ + tempg=CAlloc(sprite_base_size[GRST_BITMAP8]+ tempb1->width_internal*tempb1->height+ - gr_sprite_base_size[GRST_END]) + sprite_base_size[GRST_END]) (U8 *)-offset(CSprite.start); tempg->type=GRST_BITMAP8; tempg->width=tempb1->width; @@ -171,63 +129,63 @@ public U8 *Sprite2Text(CSprite *tempg) { //Study $LK-A,"::/TempleOS/Demo/Graphics/SpriteText.CPP"$. U8 buf[256],buf2[256],buf3[136]; I32 *ptr; - SPrintF(buf,"%Z",tempg->type,"ST_SPRITE_TYPES"); + SPrint(buf,"%Z",tempg->type,"ST_SPRITE_TYPES"); *buf2=0; switch (tempg->type) { case GRST_COLOR8: - SPrintF(buf2," %s",Color2Text(buf3,tempg->color8)); + SPrint(buf2," %s",Color2Text(buf3,tempg->color8)); break; case GRST_PT: case GRST_FLOOD_FILL: case GRST_FLOOD_FILL_NOT: case GRST_SHIFT: - SPrintF(buf2," %d,%d",tempg->x1,tempg->y1); + SPrint(buf2," %d,%d",tempg->x1,tempg->y1); break; case GRST_LINE: case GRST_ARROW: case GRST_PLANAR_SYMMETRY: case GRST_RECT: case GRST_ROTATED_RECT: - SPrintF(buf2," (%d,%d)-(%d,%d)", + SPrint(buf2," (%d,%d)-(%d,%d)", tempg->x1,tempg->y1,tempg->x2,tempg->y2); break; case GRST_CIRCLE: - SPrintF(buf2," %d,%d:%dR", + SPrint(buf2," %d,%d:%dR", tempg->x1,tempg->y1,tempg->x2); break; case GRST_WIDTH: - SPrintF(buf2," %d",tempg->width); + SPrint(buf2," %d",tempg->width); break; case GRST_TEXT: case GRST_TEXT_BOX: case GRST_TEXT_DIAMOND: - SPrintF(buf2," %d,%d:%-16tQ",tempg->x1,tempg->y1,tempg->st); + SPrint(buf2," %d,%d:%-16tQ",tempg->x1,tempg->y1,tempg->st); break; case GRST_DITHER_COLOR8: - SPrintF(buf2," %s",Color2Text(buf3,ROPF_DITHER|tempg->dither_color8.u8[0]|tempg->dither_color8.u8[1]<dither_color8.u8[0]|tempg->dither_color8.u8[1]<y1; - SPrintF(buf2," %d %d,%d",tempg->num,ptr[0],ptr[1]); + SPrint(buf2," %d %d,%d",tempg->num,ptr[0],ptr[1]); break; case GRST_ELLIPSE: case GRST_POLYGON: case GRST_BITMAP8: - SPrintF(buf2," %dW,%dH:%d,%d", + SPrint(buf2," %dW,%dH:%d,%d", tempg->width,tempg->height,tempg->x2,tempg->y2); break; case GRST_BSPLINE2: case GRST_BSPLINE3: case GRST_BSPLINE2_CLOSED: case GRST_BSPLINE3_CLOSED: - SPrintF(buf2," %d",tempg->num); + SPrint(buf2," %d",tempg->num); break; case GRST_MESH: - SPrintF(buf2," %dV,%dT",tempg->vertex_cnt,tempg->tri_cnt); + SPrint(buf2," %dV,%dT",tempg->vertex_cnt,tempg->tri_cnt); break; case GRST_SHIFTABLE_MESH: - SPrintF(buf2," %dV,%dT",tempg->shiftable_vertex_cnt,tempg->shiftable_tri_cnt); + SPrint(buf2," %dV,%dT",tempg->shiftable_vertex_cnt,tempg->shiftable_tri_cnt); break; } StrCat(buf,buf2); diff --git a/TempleOS/Adam/Hash2a.CPP b/TempleOS/Adam/Hash2a.CPP index 24db192..df7ef2c 100644 --- a/TempleOS/Adam/Hash2a.CPP +++ b/TempleOS/Adam/Hash2a.CPP @@ -30,7 +30,7 @@ public I64 HashVal(CHash *temph) case HTt_ASM_KEYWORD: case HTt_MODULE: case HTt_FILE: - case HTt_NAMED_FRAME_PTR: + case HTt_FRAME_PTR: return temph(CHashGeneric *)->user_data0; case -1: //nobound_switch @@ -40,15 +40,15 @@ public I64 HashVal(CHash *temph) } } -#help_index "Info;Hash/Reports;" -class CHashRep +#help_index "Info;Hash;Cmd Line (Typically)" +class CWho { CHashGeneric *h; U8 *index; }; -I64 HashEntriesCompare(CHashRep *h1,CHashRep *h2) +I64 HashEntriesCompare(CWho *h1,CWho *h2) { I64 i1,i2; if (i1=StrCmp(h1->h->str,h2->h->str)) @@ -58,7 +58,7 @@ I64 HashEntriesCompare(CHashRep *h1,CHashRep *h2) return i1-i2; } -I64 HashEntriesCompare2(CHashRep *h1,CHashRep *h2) +I64 HashEntriesCompare2(CWho *h1,CWho *h2) { CHashFun *tempf1=h1->h,*tempf2=h2->h; I64 i1=HashVal(tempf1),i2=HashVal(tempf2); @@ -111,7 +111,7 @@ U8 *HelpIndexStr(U8 **ptr_,U8 *index) return NULL; } -I64 HashEntriesCompare3(CHashRep *h1,CHashRep *h2) +I64 HashEntriesCompare3(CWho *h1,CWho *h2) { I64 i,i1=0,i2=0; i=StrCmp(h1->index,h2->index); @@ -130,17 +130,16 @@ I64 HashEntriesCompare3(CHashRep *h1,CHashRep *h2) } } -//Possible choices for first arg, "h" include -// "adam_task->hash_table" -// "Fs->hash_table" -public U0 HashRep(CHashTable *h=NULL, - I64 mask=HTG_ALL,U8 *outname=NULL,U8 *flags=NULL,U8 mapfile_drv=0,U8 *index=NULL, - CDoc *_doc=NULL) -{ +public U0 Who(U8 *fu_flags=NULL,CHashTable *h=NULL, + U8 *outname=NULL,U8 mapfile_drv=0,U8 *index=NULL,CDoc *_doc=NULL) +{//Dump Symbol Table +// +p for only public symbols +// +m to order by number (normally alphabetical) +// -r just local hash table CHashTable *tempht; CHashSrcSym *temph; CHashGeneric *ptr; - CHashRep *lst; + CWho *lst; I64 cnt,i,j,k,size,f=0,dbg_bin_num; U8 buf[512],*buf4,*last_index=StrNew(""),*cur_index; CDoc *doc; @@ -148,8 +147,8 @@ public U0 HashRep(CHashTable *h=NULL, CDocBin *tempb; CDbgInfo *dbg; - GetFFlags(&f,Define("ST_FILE_UTIL_FLAGS"),"+r+p"); - GetFFlags(&f,Define("ST_FILE_UTIL_FLAGS"),flags); + ScanFlags(&f,Define("ST_FILE_UTIL_FLAGS"),"+r"); + ScanFlags(&f,Define("ST_FILE_UTIL_FLAGS"),fu_flags); if (f&~(FUF_RECURSE|FUF_PUBLIC|FUF_MAP)) throw(EXCEPT_FUF,2); recurse=Bt(&f,FUf_RECURSE); @@ -173,7 +172,6 @@ public U0 HashRep(CHashTable *h=NULL, temph=tempht->next_added; while (temph!=tempht) { if (!(temph->type & (HTF_IMPORT | HTF_PRIVATE)) && - temph->type & mask && (temph->type & HTF_PUBLIC || !publics)) if (!index) cnt++; @@ -190,14 +188,13 @@ public U0 HashRep(CHashTable *h=NULL, } if (!cnt) goto end_hash; - lst=CAlloc(cnt*sizeof(CHashRep)); + lst=CAlloc(cnt*sizeof(CWho)); j=0; tempht=h; while (tempht) { temph=tempht->next_added; while (temph!=tempht) { if (!(temph->type & (HTF_IMPORT | HTF_PRIVATE)) && - temph->type & mask && (temph->type & HTF_PUBLIC || !publics)) if (!index) lst[j++].h=temph; @@ -220,11 +217,11 @@ public U0 HashRep(CHashTable *h=NULL, Preempt(old_preempt); if (map) - QSort(lst,cnt,sizeof(CHashRep),&HashEntriesCompare2); + QSort(lst,cnt,sizeof(CWho),&HashEntriesCompare2); else if (index) - QSort(lst,cnt,sizeof(CHashRep),&HashEntriesCompare3); + QSort(lst,cnt,sizeof(CWho),&HashEntriesCompare3); else - QSort(lst,cnt,sizeof(CHashRep),&HashEntriesCompare); + QSort(lst,cnt,sizeof(CWho),&HashEntriesCompare); for (i=0;istr,buf4,dbg_bin_num); - DocPutS(doc,buf); - } else { - SPrintF(buf,"$$LK,\"%-26s\",\"%s\"$$", + else { + SPrint(buf,"$$LK,\"%-26s\",\"%s\"$$", ptr->str,buf4); if (doc) - DocPutS(doc,buf); + DocPrint(doc,"%s",buf); else - "" buf; + "%s",buf; } Free(buf4); } else { - SPrintF(buf,"%-26ts",ptr->str); + SPrint(buf,"%-26ts",ptr->str); if (doc) - DocPutS(doc,buf); + DocPrint(doc,"%s",buf); else - "" buf; + "%s",buf; } if (!index) { if (ptr->type & HTT_DEFINE_STR) { j=ptr(CHashDefineStr *)->cnt; if (j==-1) - SPrintF(buf,"%-10tQ ",ptr(CHashDefineStr *)->data); + SPrint(buf,"%-10tQ ",ptr(CHashDefineStr *)->data); else - SPrintF(buf,"%-10tQ %02X",ptr(CHashDefineStr *)->data,j); + SPrint(buf,"%-10tQ %02X",ptr(CHashDefineStr *)->data,j); } else if (ptr->type & HTT_GLBL_VAR) { if (outname) - SPrintF(buf,"%010X ",ptr(CHashGlblVar *)->data_addr_ip); + SPrint(buf,"%010X ",ptr(CHashGlblVar *)->data_addr_ip); else - SPrintF(buf,"%010X ",ptr(CHashGlblVar *)->data_addr); + SPrint(buf,"%010X ",ptr(CHashGlblVar *)->data_addr); } else - SPrintF(buf,"%010X ",HashVal(ptr)); + SPrint(buf,"%010X ",HashVal(ptr)); j=HashEntrySize(ptr); if (j==-1) - SPrintF(buf+StrLen(buf)," %04X ",ptr->use_cnt); + SPrint(buf+StrLen(buf)," %04X ",ptr->use_cnt); else - SPrintF(buf+StrLen(buf)," %04X %010X ",ptr->use_cnt,j); + SPrint(buf+StrLen(buf)," %04X %010X ",ptr->use_cnt,j); } else *buf=0; k=ptr->type; if (publics) k&=~HTF_PUBLIC; - + if (!(k&HTG_TYPE_MASK)) + SPrint(buf+StrLen(buf),"NULL "); for (j=0;j<32;j++) if (Bt(&k,j)) - SPrintF(buf+StrLen(buf),"%Z ",j,"ST_HTT_TYPES"); + SPrint(buf+StrLen(buf),"%Z ",j,"ST_HTT_TYPES"); StrCat(buf,"\n"); if (doc) - DocPutS(doc,buf); + DocPrint(doc,"%s",buf); else - "" buf; + "%s",buf; } Free(lst[i].index); } @@ -340,7 +337,7 @@ public U0 HashRep(CHashTable *h=NULL, DocDel(doc); } else { if (doc->root.next==doc) - DocPutS(doc,"No Match"); + DocPrint(doc,"No Match"); else DocRecalc(doc); } @@ -348,41 +345,6 @@ public U0 HashRep(CHashTable *h=NULL, Free(last_index); } -public U0 HFunsRep(U8 *flags="",U8 *index=NULL) -{ - HashRep(Fs->hash_table,HTT_FUN,NULL,flags,0,index); -} - -public U0 HMapRep(U8 *flags="-p+m",U8 *index=NULL) -{ - HashRep(Fs->hash_table,HTT_FUN,NULL,flags,0,index); -} - -public U0 HVarsRep(U8 *flags="",U8 *index=NULL) -{ - HashRep(Fs->hash_table,HTT_GLBL_VAR,NULL,flags,0,index); -} - -public U0 HClassesRep(U8 *flags="-p",U8 *index=NULL) -{ - HashRep(Fs->hash_table,HTT_CLASS,NULL,flags,0,index); -} - -public U0 HDefinesRep(U8 *flags="-p",U8 *index=NULL) -{ - HashRep(Fs->hash_table,HTT_DEFINE_STR,NULL,flags,0,index); -} - -public U0 HSymsRep(U8 *flags="-p",U8 *index=NULL) -{ - HashRep(Fs->hash_table,HTT_EXPORT_SYS_SYM,NULL,flags,0,index); -} - -public U0 HAllRep(U8 *flags="-p",U8 *index=NULL) -{ - HashRep(Fs->hash_table,HTG_ALL,NULL,flags,0,index); -} - #define HDR_MAX 16 public I64 HashDepthRep(CHashTable *tempht=NULL) { @@ -419,13 +381,13 @@ public I64 HashDepthRep(CHashTable *tempht=NULL) public U0 DocHelpIndex(CDoc *doc,U8 *index) { - HashRep(Fs->hash_table,HTG_ALL,NULL,NULL,0,index,doc); + Who("+p",,,,index,doc); } public U0 PopUpHelpIndex(U8 *index,CTask *parent=NULL) { U8 *buf; - buf=MSPrintF("DocHelpIndex(DocPut,\"%s\");View;",index); + buf=MPrint("DocHelpIndex(DocPut,\"%s\");View;",index); PopUp(buf,parent); Free(buf); } diff --git a/TempleOS/Adam/LogIn.CPP b/TempleOS/Adam/LogIn.CPP index a3aad81..3ba72f4 100644 --- a/TempleOS/Adam/LogIn.CPP +++ b/TempleOS/Adam/LogIn.CPP @@ -1,4 +1,4 @@ -#help_index "Task/Login" +#help_index "Misc/Accts" //This is temporary until defined in $LK-A,"HOME/Adam3fSys.CPP"$. U0 UserStartUp() @@ -21,32 +21,32 @@ U0 SrvStartUp() Preempt(ON); } -U8 *PopUpSysAcctGet() +U8 *PopUpSysAcct() { U8 *result,*st; CDoc *doc=DocNew; - CDirEntry *tempm1=FilesFind("/TempleOS/Accts/*",FUF_RECURSE|FUF_JUST_DIRS|FUF_FLATTEN_TREE), - *tempm=tempm1; - DocPutS(doc,"$$CM+CX-LE,8$$"); + CDirEntry *tempde1=FilesFind("/TempleOS/Accts/*",FUF_RECURSE|FUF_JUST_DIRS|FUF_FLATTEN_TREE), + *tempde=tempde1; + DocPrint(doc,"$$CM+CX-LE,8$$"); DocPutSprite(doc,$IB+BP,"<1>",1,"::/TempleOS/Demo/Graphics/Logo.CPP,1"$,"$$SP+SIF,\"\",%d$$"); - DocPutS(doc,"$$CM+LX,0,14$$Select Account.\nCursor down and press .\n"); - while (tempm) { - if (*tempm->name!='.') { - st=tempm->full_name; + DocPrint(doc,"$$CM+LX,0,14$$Select Account.\nCursor down and press .\n"); + while (tempde) { + if (*tempde->name!='.') { + st=tempde->full_name; if (!StrNCmp(st+2,"/TempleOS/Accts/",10)) st+=12; - DocPrintF(doc,"$$CM+LX,2,3$$$$BT,\"%s\",%d$$",st,tempm); + DocPrint(doc,"$$CM+LX,2,3$$$$BT,\"%s\",%d$$",st,tempde); } - tempm=tempm->next; + tempde=tempde->next; } - DocPutS(doc,"\n\n\n\nLog-in as USER if you are new and get familiar\n" + DocPrint(doc,"\n\n\n\nLog-in as USER if you are new and get familiar\n" "before you try to install.\n"); - do tempm=PopUpMenu(doc,DOF_WIN_MAX); - while (tempm<0); + do tempde=PopUpMenu(doc,DOF_WIN_MAX); + while (tempde<0); DocDel(doc); - result=AStrNew(tempm->full_name); - CDirLstDel(tempm1); + result=AStrNew(tempde->full_name); + DirLstDel(tempde1); return result; } @@ -55,7 +55,7 @@ U0 SysLogin() U8 *st; if (!FileFind(sys_acct)||!StrCmp(sys_acct+2,"/TempleOS/Accts")) { st=sys_acct; - sys_acct=PopUpSysAcctGet; + sys_acct=PopUpSysAcct; Free(st); } } @@ -84,10 +84,10 @@ public Bool AcctRegSetDftEntry(U8 *path,U8 *val,Bool is_adam_entry=FALSE) unlock_doc=DocLock(sys_registry_doc); if (!DocTreeFind(sys_registry_doc,path)) { DocTreeMake(sys_registry_doc,path); - DocPutS(sys_registry_doc,val); + DocPrint(sys_registry_doc,"%s",val); if (is_adam_entry) { if (Fs==adam_task) - ExePutS(val); + ExePrint("%s",val); else Adam("%s",val); } @@ -111,13 +111,13 @@ public Bool AcctRegWriteBranch(U8 *path,U8 *fmt,...) { Bool result,unlock_doc; CDocEntry *tree_branch,*start_indent,*end_indent; - U8 *buf=SPrintFJoin(NULL,fmt,argc,argv); + U8 *buf=SPrintJoin(NULL,fmt,argc,argv); AcctCacheRegistry; unlock_doc=DocLock(sys_registry_doc); if (result=DocTreeFind(sys_registry_doc,path,&tree_branch,&start_indent,&end_indent)) DocCut(sys_registry_doc,tree_branch,end_indent); DocTreeMake(sys_registry_doc,path); - DocPutS(sys_registry_doc,buf); + DocPrint(sys_registry_doc,"%s",buf); if (IsDrvWritable(*sys_acct)) DocWrite(sys_registry_doc); if (unlock_doc) @@ -131,9 +131,9 @@ U0 AcctOneTimePopUp(I64 flag_num,U8 *msg) CDoc *doc=DocNew; CDocEntry *doc_e; if (!Bt(sys_msg_flags,flag_num)) { - if (msg) DocPutS(doc,msg); - doc_e=DocPutS(doc,"\n$$CB+LE,\"Do not show this msg again.\",1$$"); - DocPutS(doc,"$$CM+CX,0,4$$$$BT,\"OKAY\",1$$\n"); + if (msg) DocPrint(doc,"%s",msg); + doc_e=DocPrint(doc,"\n$$CB+LE,\"Do not show this msg again.\",1$$"); + DocPrint(doc,"$$CM+CX,0,4$$$$BT,\"OKAY\",1$$\n"); if (PopUpMenu(doc)==1 && doc_e->flags1&DOCEF1_CHECKED_COLLAPSED) { LBts(sys_msg_flags,flag_num); AcctRegWriteBranch("Adam/TempleOS/SysMsgFlags", @@ -149,7 +149,7 @@ U0 RegistryInit() U8 buf[136]; Bool version_present; AcctRegSetDftEntry("Adam/TempleOS/SysMsgFlags","sys_msg_flags[0]=0;\n",TRUE); - SPrintF(buf,"registry_version=%4.3f;\n",os_version); + SPrint(buf,"registry_version=%4.3f;\n",os_version); version_present=AcctRegSetDftEntry("Adam/TempleOS/SysRegVer",buf,TRUE); AcctRegExeBranch("Adam"); if (registry_version!=os_version) { diff --git a/TempleOS/Adam/MathODE.CPP b/TempleOS/Adam/MathODE.CPP index 86b1919..6faa23b 100644 --- a/TempleOS/Adam/MathODE.CPP +++ b/TempleOS/Adam/MathODE.CPP @@ -279,7 +279,7 @@ U0 ODECalcSprings(CMathODE *ode) e2=temps->end2; d=D3Norm(D3Sub(&e2->state->x,&e1->state->x,&p)); temps->displacement=d-temps->rest_len; - temps->f=temps->displacement*temps->constant; + temps->f=temps->displacement*temps->const; if (temps->f>0 && temps->flags&SSF_NO_TENSION) temps->f=0; else if (temps->f<0 && temps->flags&SSF_NO_COMPRESSION) diff --git a/TempleOS/Adam/Menu.CPP b/TempleOS/Adam/Menu.CPP index 9b60e8b..62fc8f3 100644 --- a/TempleOS/Adam/Menu.CPP +++ b/TempleOS/Adam/Menu.CPP @@ -50,15 +50,15 @@ CMenuEntry *MenuNewSub(CLex *lx,CTask *task) tempme->msg_code=MSG_KEY_DOWN_UP; Lex(lx); //Skip ( if (lx->token!=',' && lx->token!=')') - tempme->msg_code=Expression(lx); + tempme->msg_code=LexExpression(lx); if (lx->token==',') Lex(lx); if (lx->token!=',' && lx->token!=')') - tempme->p1=Expression(lx); + tempme->p1=LexExpression(lx); if (lx->token==',') Lex(lx); if (lx->token!=',' && lx->token!=')') - tempme->p2=Expression(lx); + tempme->p2=LexExpression(lx); if (lx->token!=')') LexExcept(lx,"ST_MISSING_RIGHT_PAREN"); if (Lex(lx)!=';') @@ -103,7 +103,7 @@ public CMenu *MenuNew(U8 *st,I64 flags=0,CTask *task=NULL) public CMenu *MenuFile(U8 *filename,I64 flags=0,CTask *task=NULL) { CMenu *m; - U8 *st=MSPrintF("#include \"%s\"",filename); + U8 *st=MPrint("#include \"%s\"",filename); m=MenuNew(st,flags,task); Free(st); return m; @@ -199,7 +199,7 @@ U0 DrawMenu(CDC *dc) dc->color=m->attr>>4; } else dc->color=m->attr&15; - GrPutS(dc,x0,0,tempme->name); + GrPrint(dc,x0,0,"%s",tempme->name); y0=FONT_HEIGHT; tempse=tempme->sub; while (tempse) { @@ -217,26 +217,26 @@ U0 DrawMenu(CDC *dc) dc->color=i&15; GrRect(dc,x0,y0,w,FONT_HEIGHT); dc->color=i>>4; - GrPutS(dc,x0,y0,tempse->name); + GrPrint(dc,x0,y0,"%s",tempse->name); if (st) { dc->color=i>>4; GrRect(dc,x0+w,y0-FONT_HEIGHT,(StrLen(st)+1)*FONT_WIDTH,FONT_HEIGHT*3); dc->color=i&15; - GrPutS(dc,x0+w,y0,st); + GrPrint(dc,x0+w,y0,"%s",st); Free(st); } } else { dc->color=i>>4; GrRect(dc,x0,y0,w,FONT_HEIGHT); dc->color=i&15; - GrPutS(dc,x0,y0,tempse->name); + GrPrint(dc,x0,y0,"%s",tempse->name); } y0+=FONT_HEIGHT; tempse=tempse->next; } } else { dc->color=m->attr&15; - GrPutS(dc,x0,0,tempme->name); + GrPrint(dc,x0,0,"%s",tempme->name); } x0+=w; tempme=tempme->next; diff --git a/TempleOS/Adam/Snd/MathAudio.CPP b/TempleOS/Adam/Snd/MathAudio.CPP index adf04f6..c2b9e53 100644 --- a/TempleOS/Adam/Snd/MathAudio.CPP +++ b/TempleOS/Adam/Snd/MathAudio.CPP @@ -119,7 +119,7 @@ public U0 SndWaveCtrlDel(CSndWaveCtrl *swc) #define WF_NULL 0 #define WF_SQUARE 1 #define WF_SINE 2 -#define WF_TRI 3 +#define WF_TRI 3 #define WF_SAWTOOTH 4 #define WF_NOISE 5 #define WF_NUM_WAVEFORMS 6 diff --git a/TempleOS/Adam/Snd/Music.CPP b/TempleOS/Adam/Snd/Music.CPP index c3d9476..e97c40d 100644 --- a/TempleOS/Adam/Snd/Music.CPP +++ b/TempleOS/Adam/Snd/Music.CPP @@ -158,12 +158,8 @@ public U0 Play(U8 *st,U8 *words=NULL) f=Note2Freq(note,music_octave); } else f=0; - if (words) { - if (word=LstEntryPt(i++,words)) - if (StrCmp(word," ")) - "" word; - } - + if (words && (word=LstSub(i++,words)) && StrCmp(word," ")) + "%s",word; d=JIFFY_FREQ*music_note_len/music_tempo; if (tie) { on_jiffies =d; diff --git a/TempleOS/Adam/Snd/SndEffects.CPP b/TempleOS/Adam/Snd/SndEffects.CPP index 262aee1..915142c 100644 --- a/TempleOS/Adam/Snd/SndEffects.CPP +++ b/TempleOS/Adam/Snd/SndEffects.CPP @@ -9,7 +9,7 @@ class CSoundEffectFrame U0 SoundEffectEndTaskCB() { - Free(NamedFramePtr("CSoundEffectFrame")); + Free(FramePtr("CSoundEffectFrame")); music_mute--; SndTaskEndCB; } @@ -18,7 +18,7 @@ U0 SoundEffectTask(CSoundEffectFrame *ns) { I64 i; F64 f,t0=tS,t,timeout=t0+ns->duration; - NamedFramePtrAdd("CSoundEffectFrame",ns); + FramePtrAdd("CSoundEffectFrame",ns); Fs->task_end_cb=&SoundEffectEndTaskCB; switch (ns->type) { case SE_NOISE: diff --git a/TempleOS/Adam/Snd/SndFile.CPP b/TempleOS/Adam/Snd/SndFile.CPP index 8c521aa..cad8473 100644 --- a/TempleOS/Adam/Snd/SndFile.CPP +++ b/TempleOS/Adam/Snd/SndFile.CPP @@ -13,7 +13,8 @@ class CFileSND }; //This is a windows media constraint. -#define MAX_SND_FILE_DATA 0x7FF00 +//#define MAX_SND_FILE_DATA 0x0007FF00 +#define MAX_SND_FILE_DATA 0x7FFFFF00 public I64 SndFileCreate(U8 *base_filename,F64 normalized_vol=1.0,F64 averaging=0.0,I64 waveform=WF_SQUARE, @@ -107,7 +108,7 @@ public I64 SndFileCreate(U8 *base_filename,F64 normalized_vol=1.0,F64 averaging= i=MAX_SND_FILE_DATA; s->data_size=EndianU32(i*sizeof(I16)); MemCpy(s->body,&s->body[file_num*MAX_SND_FILE_DATA],i*sizeof(I16)); - SPrintF(name2,"%s%03d.SND",name,file_num++); + SPrint(name2,"%s%03d.SND",name,file_num++); FileWrite(name2,s,offset(CFileSND.body)+i*sizeof(I16)); cnt2-=i; } diff --git a/TempleOS/Adam/Start.CPP b/TempleOS/Adam/Start.CPP index 1186f6c..9fe374c 100644 --- a/TempleOS/Adam/Start.CPP +++ b/TempleOS/Adam/Start.CPP @@ -2,7 +2,7 @@ U0 Start() { Type("::/TempleOS/Doc/Splash.TXT"); SetWinHorz(TEXT_COLS/4-1,3*TEXT_COLS/4); - SetWinVert(TEXT_ROWS/4-3,Fs->win_bottom); + SetWinVert(6,Fs->win_bottom); LBts(&Fs->display_flags,DISPLAYf_WIN_ON_TOP); "$$FG,GREEN$$Tip of day$$FG$$\n"; TipOfDay; diff --git a/TempleOS/Adam/Training.CPP b/TempleOS/Adam/Training.CPP index 48af848..48a7e38 100644 --- a/TempleOS/Adam/Training.CPP +++ b/TempleOS/Adam/Training.CPP @@ -152,10 +152,10 @@ U0 KeyMapFamily2(U8 **entries,U8 *family,CTask *task,I64 scf) } if (*key_desc && StrNCmp(key_desc,"Char/",5)) { st=ScanCode2KeyName(p2&~(SCF_CTRL|SCF_ALT|SCF_SHIFT)); - st2=MSPrintF("%s %s",family,st); + st2=MPrint("%s %s",family,st); Free(st); st=SrcEdLink(key_handler,256); - entries[i]=MSPrintF("%20s $$LK,\"%s\",\"%s\"$$\n", + entries[i]=MPrint("%20s $$LK,\"%s\",\"%s\"$$\n", st2,key_desc,st); Free(st); Free(st2); @@ -168,14 +168,14 @@ U0 KeyMapFamily(U8 *family,CTask *task,I64 scf) { I64 i; U8 **entries=CAlloc(2*256*sizeof(U8 *)),st1[32],st2[32]; - SPrintF(st1,"%s ",family); - SPrintF(st2,"%s SHIFT",family); + SPrint(st1,"%s ",family); + SPrint(st2,"%s SHIFT",family); KeyMapFamily2(entries ,st1,task,scf); KeyMapFamily2(entries+256,st2,task,scf+SCF_SHIFT); QSortI64(entries,2*256,&KMCompare); for (i=0;i<2*256;i++) if (entries[i]) { - "" entries[i]; + "%s",entries[i]; Free(entries[i]); } Free(entries); @@ -234,7 +234,7 @@ public U0 TipOfDay(U8 *tip_file="::/TempleOS/Doc/Tips.TXT") U0 CtrlAltK(I64) { U8 buf[136]; - SPrintF(buf,"KeyMap(0x%X);View;", + SPrint(buf,"KeyMap(0x%X);View;", sys_focus_task); PopUp(buf); } diff --git a/TempleOS/Adam/Utils/BinRep.CPP b/TempleOS/Adam/Utils/BinRep.CPP index e57931d..8e54f0c 100644 --- a/TempleOS/Adam/Utils/BinRep.CPP +++ b/TempleOS/Adam/Utils/BinRep.CPP @@ -2,15 +2,15 @@ DefineLstLoad("ST_BIN_FILE_TYPES", "END\0 \0" "REL_EXPORT\0" -"LIT_EXPORT\0" +"IMM_EXPORT\0" "REL_U8\0" -"LIT_U8\0" +"IMM_U8\0" "REL_U16\0" -"LIT_U16\0" +"IMM_U16\0" "REL_U32\0" -"LIT_U32\0" +"IMM_U32\0" "REL_U64\0" -"LIT_U64\0" +"IMM_U64\0" " \0 \0 \0 \0" "MAIN\0" "MODULE_ALIGN\0MODULE_ORG\0" @@ -57,7 +57,7 @@ public Bool BinRep(U8 *filename) ptr+=StrLen(sptr)+1; "%16Z:$$FG,GREEN$$%s$$FG$$:%X ",etype,"ST_BIN_FILE_TYPES",sptr,i; switch (etype) { - case EIE_REL_U8...EIE_LIT_U64: + case EIE_REL_U8...EIE_IMM_U64: if (*sptr) saved_hash_ptr=HashFind(sptr,Fs->hash_table,HTG_ALL); if (!saved_hash_ptr) diff --git a/TempleOS/Adam/Utils/Diff.CPP b/TempleOS/Adam/Utils/Diff.CPP index ba03a7d..ccb441b 100644 --- a/TempleOS/Adam/Utils/Diff.CPP +++ b/TempleOS/Adam/Utils/Diff.CPP @@ -10,7 +10,7 @@ I64 PopUpDiffOptions() { I64 i; CDoc *doc=DocNew; - DocPutS(doc,"$$CM+LX,2,4$$$$FG$$$$BT,\"USE FILE1\",DS_USE_FILE1$$" + DocPrint(doc,"$$CM+LX,2,4$$$$FG$$$$BT,\"USE FILE1\",DS_USE_FILE1$$" "$$CM+LX,24,0$$$$FG,CYAN$$$$BT,\"USE FILE2\",DS_USE_FILE2$$" "$$CM+LX,2,4$$$$FG$$$$BT,\"REMAINDER ALL FILE1\",DS_REMAINDER_1$$" "$$CM+LX,24,0$$$$FG,CYAN$$$$BT,\"REMAINDER ALL FILE2\",DS_REMAINDER_2$$" @@ -65,7 +65,7 @@ U0 DiffSelect(CDoc *doc,I64 *_df_flags,I64 j1_lo,I64 j1_hi, old_flags=cur_l->flags&DOCF_PLAIN_TEXT; cur_l->flags|=DOCF_PLAIN_TEXT; } - "" doc_us1[i++]->tag; + "%s",doc_us1[i++]->tag; if (cur_l) cur_l->flags= cur_l->flags&~DOCF_PLAIN_TEXT |old_flags; NewLine; @@ -80,7 +80,7 @@ U0 DiffSelect(CDoc *doc,I64 *_df_flags,I64 j1_lo,I64 j1_hi, old_flags=cur_l->flags&DOCF_PLAIN_TEXT; cur_l->flags|=DOCF_PLAIN_TEXT; } - "" doc_us2[i++]->tag; + "%s",doc_us2[i++]->tag; if (cur_l) cur_l->flags= cur_l->flags&~DOCF_PLAIN_TEXT |old_flags; NewLine; diff --git a/TempleOS/Adam/Utils/Grep.CPP b/TempleOS/Adam/Utils/Grep.CPP index dea9a0e..5f85c68 100644 --- a/TempleOS/Adam/Utils/Grep.CPP +++ b/TempleOS/Adam/Utils/Grep.CPP @@ -11,8 +11,8 @@ I64 PopUpReplaceSkipAllCancelEd(U8 *msg) { I64 i; CDoc *doc=DocNew; - DocPutS(doc,msg); - DocPutS(doc,"$$CM+LX,2,4$$$$BT,\"REPLACE\",GRF_REPLACE$$" + DocPrint(doc,"%s",msg); + DocPrint(doc,"$$CM+LX,2,4$$$$BT,\"REPLACE\",GRF_REPLACE$$" "$$CM+LX,22,0$$$$BT,\"SKIP\",GRF_SKIP$$" "$$CM+LX,2,4$$$$BT,\"ALL\",GRF_ALL$$" "$$CM+LX,22,0$$$$BT,\"ABORT ALL\",DOCM_CANCEL$$" @@ -35,15 +35,15 @@ I64 GrepFile(U8 *pattern,U8 *name,I64 *_fuf_flags,U8 *replace_text) CDocEntry *doc_e; if (Bt(_fuf_flags,FUf_IGNORE)) - ss_flags=SRF_IGNORE_CASE; + ss_flags=SFF_IGNORE_CASE; else ss_flags=0; if (Bt(_fuf_flags,FUf_WHOLE_LABELS)) - ss_flags|=SRG_WHOLE_LABELS; + ss_flags|=SFG_WHOLE_LABELS; if (Bt(_fuf_flags,FUf_WHOLE_LABELS_FRONT)) - ss_flags|=SRF_WHOLE_LABELS_FRONT; + ss_flags|=SFF_WHOLE_LABELS_FRONT; if (Bt(_fuf_flags,FUf_WHOLE_LABELS_BACK)) - ss_flags|=SRF_WHOLE_LABELS_BACK; + ss_flags|=SFF_WHOLE_LABELS_BACK; plen=StrLen(pattern); if (replace_text) @@ -54,12 +54,12 @@ I64 GrepFile(U8 *pattern,U8 *name,I64 *_fuf_flags,U8 *replace_text) src=doc_e->tag; first_on_line=TRUE; while (src && cont) { - if (src=SearchStr(src,pattern,ss_flags)) { + if (src=StrFind(pattern,src,ss_flags)) { cnt++; if (first_on_line || Bt(_fuf_flags,FUf_REPLACE)) { first_on_line=FALSE; PutFileLink(name,doc_e->y+1,TRUE); - name_buf=MSPrintF("%s,%d",name,doc_e->y+1); + name_buf=MPrint("%s,%d",name,doc_e->y+1); if (cur_l=DocPut) { old_flags=cur_l->flags&DOCF_PLAIN_TEXT; cur_l->flags|=DOCF_PLAIN_TEXT; @@ -143,27 +143,7 @@ I64 GrepFile(U8 *pattern,U8 *name,I64 *_fuf_flags,U8 *replace_text) return cnt; } -I64 GrepLst(U8 *pattern,CDirEntry *tempm1,I64 *_fuf_flags,U8 *replace_text) -{ - I64 cnt=0; - CDirEntry *tempm2; - - while (tempm1 && !Bt(_fuf_flags,FUf_CANCEL)) { - tempm2=tempm1->next; - if (tempm1->attr & _ATTR_DIR) { - if (tempm1->sub) { - "%S %s\n","ST_SCANNING_DIR",tempm1->full_name; - cnt+=GrepLst(pattern,tempm1->sub,_fuf_flags,replace_text); - } - } else - cnt+=GrepFile(pattern,tempm1->full_name,_fuf_flags,replace_text); - CDirEntryDel(tempm1); - tempm1=tempm2; - } - return cnt; -} - -public I64 Grep(U8 *pattern,U8 *files_find_mask=FILENAME_MASK_TXT,U8 *fu_flags=NULL,U8 *replace_text=NULL) +public I64 Grep(U8 *pattern,U8 *files_find_mask="*",U8 *fu_flags=NULL,U8 *replace_text=NULL) /* This does not do regular expressions--my bad. Anyway, it's good for searching and replacing. @@ -183,23 +163,29 @@ Let's say it stands for global replace ;-) { I64 cnt=0,fuf_flags=0; - CDirEntry *tempm; - GetFFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),"+r+i"); //Set dft flags - GetFFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),fu_flags); - if (fuf_flags&~(FUG_FILES_FIND|FUF_IGNORE|FUF_WHOLE_LABELS|FUF_WHOLE_LABELS_FRONT|FUF_WHOLE_LABELS_BACK)) + CDirEntry *tempde,*tempde1; + ScanFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),"+r+i+f+F+T"); + ScanFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),fu_flags); + if (fuf_flags&~(FUG_FILES_FIND|FUF_IGNORE|FUF_ALL|FUF_WHOLE_LABELS|FUF_WHOLE_LABELS_FRONT|FUF_WHOLE_LABELS_BACK)) throw(EXCEPT_FUF,1); LBEqu(&fuf_flags,FUf_REPLACE,replace_text); - tempm=FilesFind(files_find_mask,fuf_flags&FUG_FILES_FIND); - fuf_flags&=FUF_REPLACE|FUF_IGNORE|FUF_WHOLE_LABELS|FUF_WHOLE_LABELS_FRONT|FUF_WHOLE_LABELS_BACK; - cnt+=GrepLst(pattern,tempm,&fuf_flags,replace_text); + tempde=tempde1=FilesFind(files_find_mask,fuf_flags&FUG_FILES_FIND); + fuf_flags&=FUF_ALL|FUF_REPLACE|FUF_IGNORE|FUF_WHOLE_LABELS|FUF_WHOLE_LABELS_FRONT|FUF_WHOLE_LABELS_BACK; + while (tempde && !Bt(&fuf_flags,FUf_CANCEL)) { + cnt+=GrepFile(pattern,tempde->full_name,&fuf_flags,replace_text); + tempde=tempde->next; + } + DirLstDel(tempde1); return cnt; } -public I64 FileOcc(U8 *pattern,U8 *files_find_mask=FILENAME_MASK_TXT,U8 *fu_flags="+r+i+l") +public I64 FileOcc(U8 *pattern,U8 *files_find_mask="*",U8 *fu_flags="+r+i+l") {/* "+r"=recurse "+i"=ignore case "+l"=whole labels only. +"+lf"=only checks for label chars in front +"+lb"=only checks for label chars behind (after). */ I64 cnt=0; Bool old_silent=Silent(TRUE); @@ -226,7 +212,7 @@ I64 GrepWiz() CGrep *g=CAlloc(sizeof(CGrep)); I64 result=0; g->recurse=TRUE; - StrCpy(g->filemask,FILENAME_MASK_TXT); + StrCpy(g->filemask,FILEMASK_TXT); if (doc=DocPut) { StrCpy(g->find_text,doc->find_replace->find_text); StrCpy(g->replace_text,doc->find_replace->replace_text); @@ -234,7 +220,7 @@ I64 GrepWiz() g->match_case=doc->find_replace->match_case; g->whole_labels=doc->find_replace->whole_labels; } - if (DocFormDo(g,"CGrep",0,"$$FG,PURPLE$$$$TX+CX,\"Grep\"$$\n$$FG$$")) { + if (DocFormDo(g,,0,"$$FG,PURPLE$$$$TX+CX,\"Grep\"$$\n$$FG$$")) { if (doc) { StrCpy(doc->find_replace->find_text,g->find_text); StrCpy(doc->find_replace->replace_text,g->replace_text); @@ -252,9 +238,9 @@ I64 GrepWiz() if (g->whole_labels) StrCat(buf,"+l"); if (g->replace) - st=MSPrintF("\"$$$$WW+H,1$$$$\";Cd(\"%s\");Grep(\"%Q\",\"%Q\",\"%Q\",\"%Q\");UserTaskCont;",dir,g->find_text,g->filemask,buf,g->replace_text); + st=MPrint("\"$$$$WW+H,1$$$$\";Cd(\"%s\");Grep(\"%Q\",\"%Q\",\"%Q\",\"%Q\");UserTaskCont;",dir,g->find_text,g->filemask,buf,g->replace_text); else - st=MSPrintF("\"$$$$WW+H,1$$$$\";Cd(\"%s\");Grep(\"%Q\",\"%Q\",\"%Q\");UserTaskCont;",dir,g->find_text,g->filemask,buf); + st=MPrint("\"$$$$WW+H,1$$$$\";Cd(\"%s\");Grep(\"%Q\",\"%Q\",\"%Q\");UserTaskCont;",dir,g->find_text,g->filemask,buf); result=PopUp(st); } Free(dir); diff --git a/TempleOS/Adam/Utils/LineCnt.CPP b/TempleOS/Adam/Utils/LineCnt.CPP index 33287f7..b2d8a74 100644 --- a/TempleOS/Adam/Utils/LineCnt.CPP +++ b/TempleOS/Adam/Utils/LineCnt.CPP @@ -1,43 +1,37 @@ #help_index "Utils;Cmd Line (Typically)" -I64 LineCntRepFiles(CDirEntry *tempm) +I64 LineCntRepFiles(CDirEntry *tempde) { CDoc *doc; I64 result=0,i; - while (tempm) { + while (tempde) { i=0; - if (tempm->attr&_ATTR_DIR) - i=LineCntRepFiles(tempm->sub); + if (tempde->attr&_ATTR_DIR) + i=LineCntRepFiles(tempde->sub); else { - if (FilesFindMatch(FILENAME_MASK_SRC,tempm->name)) { - doc=DocRead(tempm->full_name); - if (doc->root.next!=doc) - i=doc->root.last->y+2; - DocDel(doc); - } + doc=DocRead(tempde->full_name); + if (doc->root.next!=doc) + i=doc->root.last->y+2; + DocDel(doc); } - tempm->user_data=i; + tempde->user_data=i; result+=i; - tempm=tempm->next; + tempde=tempde->next; } return result; } -U0 PutLineCntFiles(CDoc *doc,CDirEntry *tempm) +U0 PutLineCntFiles(CDoc *doc,CDirEntry *tempde) { - while (tempm) { - if (tempm->attr&_ATTR_DIR) { - DocPrintF(doc,"%8,d $$TR+C,\"%s\"$$\n$$ID,2$$",tempm->user_data,tempm->name); - PutLineCntFiles(doc,tempm->sub); - DocPutS(doc,"$$ID,-2$$"); - } else { - if (FilesFindMatch(FILENAME_MASK_SRC,tempm->name)) { - DocPrintF(doc,"%8,d ",tempm->user_data); - DocPrintF(doc,"$$LK,\"%s\",\"FI:%s\"$$\n", - tempm->name,tempm->full_name); - } - } - tempm=tempm->next; + while (tempde) { + if (tempde->attr&_ATTR_DIR) { + DocPrint(doc,"%8,d $$TR+C,\"%s\"$$\n$$ID,2$$",tempde->user_data,tempde->name); + PutLineCntFiles(doc,tempde->sub); + DocPrint(doc,"$$ID,-2$$"); + } else + DocPrint(doc,"%8,d $$LK,\"%s\",\"FI:%s\"$$\n", + tempde->user_data,tempde->name,tempde->full_name); + tempde=tempde->next; } } @@ -45,49 +39,49 @@ public I64 LineCntRep(U8 *files_find_mask="/TempleOS/*",U8 *fu_flags=NULL) { I64 fuf_flags=0,result=0; CDoc *doc=DocNew; - CDirEntry *tempm1=NULL; - GetFFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),"+r"); - GetFFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),fu_flags); - if (tempm1=FilesFind(files_find_mask,fuf_flags)) { - result=LineCntRepFiles(tempm1); - DocPrintF(doc,"%8,d $$TR+C,\"%s\"$$\n$$ID,2$$",result,files_find_mask); - PutLineCntFiles(doc,tempm1); - DocPutS(doc,"$$ID,-2$$"); - CDirLstDel(tempm1); + CDirEntry *tempde1=NULL; + ScanFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),"+r+S"); + ScanFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),fu_flags); + if (tempde1=FilesFind(files_find_mask,fuf_flags)) { + result=LineCntRepFiles(tempde1); + DocPrint(doc,"%8,d $$TR+C,\"%s\"$$\n$$ID,2$$",result,files_find_mask); + PutLineCntFiles(doc,tempde1); + DocPrint(doc,"$$ID,-2$$"); + DirLstDel(tempde1); } DocInsDoc(DocPut,doc); DocDel(doc); return result; } -I64 TreeSizeRepFiles(CDirEntry *tempm) +I64 TreeSizeRepFiles(CDirEntry *tempde) { I64 result=0,i; - while (tempm) { - if (tempm->attr&_ATTR_DIR) - i=TreeSizeRepFiles(tempm->sub); + while (tempde) { + if (tempde->attr&_ATTR_DIR) + i=TreeSizeRepFiles(tempde->sub); else - i=tempm->size; - tempm->user_data=i; + i=tempde->size; + tempde->user_data=i; result+=i; - tempm=tempm->next; + tempde=tempde->next; } return result; } -U0 PutTreeSizeFiles(CDoc *doc,CDirEntry *tempm) +U0 PutTreeSizeFiles(CDoc *doc,CDirEntry *tempde) { - while (tempm) { - if (tempm->attr&_ATTR_DIR) { - DocPrintF(doc,"%10,d $$TR+C,\"%s\"$$\n$$ID,2$$",tempm->user_data,tempm->name); - PutTreeSizeFiles(doc,tempm->sub); - DocPutS(doc,"$$ID,-2$$"); + while (tempde) { + if (tempde->attr&_ATTR_DIR) { + DocPrint(doc,"%10,d $$TR+C,\"%s\"$$\n$$ID,2$$",tempde->user_data,tempde->name); + PutTreeSizeFiles(doc,tempde->sub); + DocPrint(doc,"$$ID,-2$$"); } else { - DocPrintF(doc,"%10,d ",tempm->user_data); - DocPrintF(doc,"$$LK,\"%s\",\"FI:%s\"$$\n", - tempm->name,tempm->full_name); + DocPrint(doc,"%10,d ",tempde->user_data); + DocPrint(doc,"$$LK,\"%s\",\"FI:%s\"$$\n", + tempde->name,tempde->full_name); } - tempm=tempm->next; + tempde=tempde->next; } } @@ -95,15 +89,15 @@ public I64 TreeSizeRep(U8 *files_find_mask="/TempleOS/*",U8 *fu_flags=NULL) { I64 fuf_flags=0,result=0; CDoc *doc=DocNew; - CDirEntry *tempm1=NULL; - GetFFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),"+r"); - GetFFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),fu_flags); - if (tempm1=FilesFind(files_find_mask,fuf_flags)) { - result=TreeSizeRepFiles(tempm1); - DocPrintF(doc,"%10,d $$TR+C,\"%s\"$$\n$$ID,2$$",result,files_find_mask); - PutTreeSizeFiles(doc,tempm1); - DocPutS(doc,"$$ID,-2$$"); - CDirLstDel(tempm1); + CDirEntry *tempde1=NULL; + ScanFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),"+r"); + ScanFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),fu_flags); + if (tempde1=FilesFind(files_find_mask,fuf_flags)) { + result=TreeSizeRepFiles(tempde1); + DocPrint(doc,"%10,d $$TR+C,\"%s\"$$\n$$ID,2$$",result,files_find_mask); + PutTreeSizeFiles(doc,tempde1); + DocPrint(doc,"$$ID,-2$$"); + DirLstDel(tempde1); } DocInsDoc(DocPut,doc); DocDel(doc); diff --git a/TempleOS/Adam/Utils/LinkChk.CPP b/TempleOS/Adam/Utils/LinkChk.CPP index a46d729..b3b8e8f 100644 --- a/TempleOS/Adam/Utils/LinkChk.CPP +++ b/TempleOS/Adam/Utils/LinkChk.CPP @@ -44,31 +44,19 @@ I64 LinkChkFile(U8 *filename,I64 *_fuf_flags) return result; } -I64 LinkChkLst(CDirEntry *tempm1,I64 *_fuf_flags) -{ - CDirEntry *tempm2; - I64 result=0; - while (tempm1 && !Bt(_fuf_flags,FUf_CANCEL)) { - tempm2=tempm1->next; - if (tempm1->attr & _ATTR_DIR) { - if (tempm1->sub) { - "%S %s\n","ST_SCANNING_DIR",tempm1->full_name; - result+=LinkChkLst(tempm1->sub,_fuf_flags); - } - } else - result+=LinkChkFile(tempm1->full_name,_fuf_flags); - CDirEntryDel(tempm1); - tempm1=tempm2; - } - return result; -} - -public I64 LinkChk(U8 *files_find_mask=FILENAME_MASK_TXT,U8 *fu_flags=NULL) +public I64 LinkChk(U8 *files_find_mask="/TempleOS/*",U8 *fu_flags=NULL) //Checks for broken file links. { - I64 fuf_flags=0; - GetFFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),"+r+T"); - GetFFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),fu_flags); - return LinkChkLst(FilesFind(files_find_mask,fuf_flags),&fuf_flags); + I64 fuf_flags=0,result=0; + CDirEntry *tempde,*tempde1; + ScanFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),"+r+T+f+F"); + ScanFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),fu_flags); + tempde=tempde1=FilesFind(files_find_mask,fuf_flags); + while (tempde && !Bt(&fuf_flags,FUf_CANCEL)) { + result+=LinkChkFile(tempde->full_name,&fuf_flags); + tempde=tempde->next; + } + DirLstDel(tempde1); + return result; } #help_index "" diff --git a/TempleOS/Adam/Utils/MemRep.CPP b/TempleOS/Adam/Utils/MemRep.CPP index ae4ae34..3e289f7 100644 --- a/TempleOS/Adam/Utils/MemRep.CPP +++ b/TempleOS/Adam/Utils/MemRep.CPP @@ -106,7 +106,7 @@ Bool MemRepTask(CTask *task,Bool override_validate=FALSE) if (!override_validate && !TaskValidate(task)) return FALSE; if (task==Fs) - task->rsp=GetStkPtr; + task->rsp=GetRSP; st=MStrUtil(task->task_title,SUF_REM_CTRL_CHARS|SUF_SAFE_DOLLAR); "$$FG,GREEN$$Task:%010X$$FG,CYAN$$ %-30ts$$FG$$\n$$ID,2$$",task,st; Free(st); @@ -199,14 +199,17 @@ public U0 MemRep() I64 i; CTask *task; CCPU *c; - U32 *u32_ptr; Bool old_preempt=Preempt(OFF); CBinFile *bfh=sys_boot_base-sizeof(CBinFile); bfh(I64)+=bfh->file_size-1; "$$FG,BLACK$$Low Memory\t:0000100000$$FG$$\n$$ID,2$$"; - u32_ptr=SYS_BOOT_BASE; - "Kernel\t:%010X-%010X\n",*u32_ptr-sizeof(CBinFile),bfh; + "Kernel\t:%010X-%010X\n",sys_boot_base-sizeof(CBinFile),bfh; + + i=++bfh(I64); + bfh(I64)+=bfh->file_size-1; + "Compiler\t:%010X-%010X\n",i,bfh; + "VGA\t\t:00000A0000-00000BFFFF\n"; "$$ID,-2$$$$FG,BLACK$$High Memory\t:0000100000-%010X$$FG$$\n", sys_heap_limit; diff --git a/TempleOS/Adam/Utils/Merge.CPP b/TempleOS/Adam/Utils/Merge.CPP index 687f7a5..09a9c0f 100644 --- a/TempleOS/Adam/Utils/Merge.CPP +++ b/TempleOS/Adam/Utils/Merge.CPP @@ -10,30 +10,30 @@ CDirEntry MCMatchFind(CDirEntry *pattern,CDirEntry *lst) return NULL; } -U0 MergeChkLst(CDirEntry *m1,CDirEntry *m2,I64 *_fuf_flags,I64 *_df_flags) +U0 MergeChkLst(CDirEntry *tempde1,CDirEntry *tempde2,I64 *_fuf_flags,I64 *_df_flags) { I64 i; - CDirEntry *tempm2; - while (m1 && !(*_df_flags & DF_ABORT_ALL_FILES)) { - tempm2=MCMatchFind(m1,m2); - if (!tempm2) - "$$FG,BROWN$$Does Not Exist:%s$$FG$$\n",m1->full_name; + CDirEntry *tempde; + while (tempde1 && !(*_df_flags & DF_ABORT_ALL_FILES)) { + tempde=MCMatchFind(tempde1,tempde2); + if (!tempde) + "$$FG,BROWN$$Does Not Exist:%s$$FG$$\n",tempde1->full_name; else { - if (m1->attr & _ATTR_DIR) - MergeChkLst(m1->sub,tempm2->sub,_fuf_flags,_df_flags); + if (tempde1->attr & _ATTR_DIR) + MergeChkLst(tempde1->sub,tempde->sub,_fuf_flags,_df_flags); else { - i=m1->datetime-tempm2->datetime; + i=tempde1->datetime-tempde->datetime; if (AbsI64(i)>CDATE_FREQ*2) { //Filedates can shift due to conversion - "" m1->full_name; + "%s",tempde1->full_name; NewLine; if (Bt(_fuf_flags,FUf_DIFF)) { - if (FilesFindMatch(FILENAME_MASK_TXT,m1->full_name)) - Diff(tempm2->full_name,m1->full_name,_df_flags); + if (FilesFindMatch(tempde1->full_name,FILEMASK_TXT)) + Diff(tempde->full_name,tempde1->full_name,_df_flags); } } } } - m1=m1->next; + tempde1=tempde1->next; } } @@ -44,48 +44,36 @@ public U0 MergeChk( //"+d"=Do $LK,"Diff","MN:Diff"$() on files { I64 df_flags=0,fuf_flags=0; - CDirEntry *tempm1=NULL,*tempm2=NULL; - GetFFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),"+r"); - GetFFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),fu_flags); + CDirEntry *tempde1=NULL,*tempde2=NULL; + ScanFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),"+r"); + ScanFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),fu_flags); if (fuf_flags&~(FUG_FILES_FIND|FUF_DIFF)) throw(EXCEPT_FUF,3); - PrintFWarn("This is based strictly on file dates.\n"); - tempm1=FilesFind(src_files_find_mask,fuf_flags&FUG_FILES_FIND); - tempm2=FilesFind(dst_files_find_mask,fuf_flags&FUG_FILES_FIND); + PrintWarn("This is based strictly on file dates.\n"); + tempde1=FilesFind(src_files_find_mask,fuf_flags&FUG_FILES_FIND); + tempde2=FilesFind(dst_files_find_mask,fuf_flags&FUG_FILES_FIND); fuf_flags&=FUF_DIFF; - MergeChkLst(tempm1,tempm2,&fuf_flags,&df_flags); - CDirLstDel(tempm1); - CDirLstDel(tempm2); + MergeChkLst(tempde1,tempde2,&fuf_flags,&df_flags); + DirLstDel(tempde1); + DirLstDel(tempde2); } #help_index "Utils;Cmd Line (Typically)" -U0 LstNewFilesLst(CDirEntry *tempm,CDate cdt) -{ - while (tempm) { - if (tempm->datetime>cdt) { - "" tempm->full_name; - NewLine; - } - LstNewFilesLst(tempm->sub,cdt); - tempm=tempm->next; - } -} - -public U0 LstNewFiles(U8 *files_find_mask="/TempleOS/*",CDate cdt=0, - U8 *fu_flags=NULL) -//"+T"=is just text files -{ +public U0 NewFiles(U8 *files_find_mask="/TempleOS/*",CDate cdt=0,U8 *fu_flags=NULL) +{//List new files I64 fuf_flags=0; - CDirEntry *tempm1=NULL; - if (!cdt) - cdt=sys_compile_time; - GetFFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),"+r+T"); - GetFFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),fu_flags); - if (tempm1=FilesFind(files_find_mask,fuf_flags)) { - LstNewFilesLst(tempm1,cdt); - CDirLstDel(tempm1); + CDirEntry *tempde,*tempde1; + if (!cdt) cdt=sys_compile_time; + ScanFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),"+r+f+F"); + ScanFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),fu_flags); + tempde=tempde1=FilesFind(files_find_mask,fuf_flags); + while (tempde) { + if (tempde->datetime>cdt) + "%s\n",tempde->full_name; + tempde=tempde->next; } + DirLstDel(tempde1); } #help_index "" diff --git a/TempleOS/Adam/Utils/Profiler.CPP b/TempleOS/Adam/Utils/Profiler.CPP index cc33c63..fc0fb9d 100644 --- a/TempleOS/Adam/Utils/Profiler.CPP +++ b/TempleOS/Adam/Utils/Profiler.CPP @@ -123,7 +123,7 @@ public U0 ProfRep(I64 filter_cnt=1) *last_buf=0; for (i=0;i=pf_ptr) break; } - SPrintF(buf,"%P",ip); + SPrint(buf,"%P",ip); StrCpy(buf3,buf); StrFirstRem(buf3,"+",buf2); if (StrCmp(buf2,last_buf)) { diff --git a/TempleOS/Adam/Utils/S2T.CPP b/TempleOS/Adam/Utils/S2T.CPP index 4d53136..bedf734 100644 --- a/TempleOS/Adam/Utils/S2T.CPP +++ b/TempleOS/Adam/Utils/S2T.CPP @@ -2,7 +2,7 @@ //$LK,"StrUtil","MN:StrUtil"$() operations on files -public U0 SUFile(U8 *name,I64 su_flags,F64 indent_scale_factor) +U0 SUFile(U8 *name,I64 suf_flags,F64 indent_scale_factor) {//String utility on a single file //See $LK,"SU Flags","MN:SUF_SINGLE_SPACE"$ U8 *dst; @@ -12,7 +12,7 @@ public U0 SUFile(U8 *name,I64 su_flags,F64 indent_scale_factor) CDocEntry *doc_e=doc->root.next; while (doc_e!=doc) { if (doc_e->type_u8==DOCT_TEXT) { - dst=MStrUtil(doc_e->tag,su_flags,indent_scale_factor); + dst=MStrUtil(doc_e->tag,suf_flags,indent_scale_factor); if (StrCmp(dst,doc_e->tag)) { reduced+=StrLen(doc_e->tag)-StrLen(dst); chged=TRUE; @@ -31,38 +31,28 @@ public U0 SUFile(U8 *name,I64 su_flags,F64 indent_scale_factor) DocDel(doc); } -U0 SULst(CDirEntry *tempm1,I64 su_flags,F64 indent_scale_factor) -{ - CDirEntry *tempm2; - while (tempm1) { - tempm2=tempm1->next; - if (tempm1->attr & _ATTR_DIR) { - if (tempm1->sub) { - "%S%s\n","ST_SCANNING_DIR",tempm1->full_name; - SULst(tempm1->sub,su_flags,indent_scale_factor); - } - } else - SUFile(tempm1->full_name,su_flags,indent_scale_factor); - CDirEntryDel(tempm1); - tempm1=tempm2; - } -} - -public U0 SU(U8 *files_find_mask,I64 su_flags,U8 *fu_flags=NULL,F64 indent_scale_factor=0) +public U0 SU(U8 *files_find_mask,I64 suf_flags,U8 *fu_flags=NULL,F64 indent_scale_factor=0) {//Apply string utilities to files //You can convert spaces to tabs, for example //or removing trailing spaces on lines. -//See $LK,"SU Flags","MN:SUF_SINGLE_SPACE"$ +//See $LK,"SUF Flags","MN:SUF_SINGLE_SPACE"$ I64 fuf_flags=0; - GetFFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),fu_flags); - SULst(FilesFind(files_find_mask,fuf_flags),su_flags,indent_scale_factor); + CDirEntry *tempde,*tempde1; + ScanFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),"+f+F+T"); + ScanFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),fu_flags); + tempde=tempde1=FilesFind(files_find_mask,fuf_flags); + while (tempde) { + SUFile(tempde->full_name,suf_flags,indent_scale_factor); + tempde=tempde->next; + } + DirLstDel(tempde1); } public U0 S2T(U8 *files_find_mask,U8 *fu_flags=NULL) { //Spaces to tabs. //Use "Hard Space" (SHIFT-SPACE) for spaces -//in string constants in your code. +//in string consts in your code. SU(files_find_mask,SUF_S2T|SUF_REM_TRAILING,fu_flags); } diff --git a/TempleOS/Adam/Utils/ToHtml.CPP b/TempleOS/Adam/Utils/ToHtml.CPP index f2bb833..c86cec3 100644 --- a/TempleOS/Adam/Utils/ToHtml.CPP +++ b/TempleOS/Adam/Utils/ToHtml.CPP @@ -7,8 +7,8 @@ U0 HtmlPutS(CDoc *doc,I64 c,I64 *_old_c,U8 *st,I64 *_col,U8 *style_bitmap=NULL) U8 *ch; if (c!=*_old_c) { if (*_old_c!=-1) - DocPutS(doc,""); - DocPrintF(doc,"",c); + DocPrint(doc,""); + DocPrint(doc,"",c); *_old_c=c; if (style_bitmap) LBts(style_bitmap,c); @@ -22,54 +22,54 @@ U0 HtmlPutS(CDoc *doc,I64 c,I64 *_old_c,U8 *st,I64 *_col,U8 *style_bitmap=NULL) } while (*_col&7); break; case '&': - DocPutS(doc,"&"); + DocPrint(doc,"&"); *_col=*_col+1; break; case '<': - DocPutS(doc,"<"); + DocPrint(doc,"<"); *_col=*_col+1; break; case '>': - DocPutS(doc,">"); + DocPrint(doc,">"); *_col=*_col+1; break; case '"': - DocPutS(doc,"""); + DocPrint(doc,"""); *_col=*_col+1; break; case 'ã': - DocPutS(doc,"pi"); + DocPrint(doc,"pi"); *_col=*_col+1; break; case 'é': - DocPutS(doc,"theta"); + DocPrint(doc,"theta"); *_col=*_col+1; break; case 'è': - DocPutS(doc,"phi"); + DocPrint(doc,"phi"); *_col=*_col+1; break; case 'ê': - DocPutS(doc,"omega"); + DocPrint(doc,"omega"); *_col=*_col+1; break; case 'ì': - DocPutS(doc,"inf"); + DocPrint(doc,"inf"); *_col=*_col+1; break; case 'æ': - DocPutS(doc,"u"); + DocPrint(doc,"u"); *_col=*_col+1; break; case CH_SHIFT_SPACE: - DocPutS(doc," "); + DocPrint(doc," "); *_col=*_col+1; break; default: if (CH_SPACE<=ch<0x7F || ch=='\n') DocPutKey(doc,ch,0); else - DocPutS(doc,"."); + DocPrint(doc,"."); *_col=*_col+1; } } @@ -82,7 +82,7 @@ U8 *TSLinkCvt2(U8 *filename,I64 line_num) if (filename) { st=ChgExt(filename,"html"); if (st && StrLen(st)>12 && !StrNCmp(st+1,":/TempleOS/",11)) - result=MSPrintF("http://www.templeos.org/Wb/%s#l%d",st+12,line_num); + result=MPrint("http://www.templeos.org/Wb/%s#l%d",st+12,line_num); Free(st); } return result; @@ -152,7 +152,7 @@ public CDoc *Doc2Html(CDoc *doc_in, if (!html_header) html_header=""; if (!body_header) body_header=""; if (!body_footer) body_footer=""; - DocPrintF(doc_out, + DocPrint(doc_out, "\n" "\n" "\n" @@ -161,12 +161,12 @@ public CDoc *Doc2Html(CDoc *doc_in, "\n" "\n" "\n" "\n" "
\n");
-  DocPutS(doc_out,body_header);
+  DocPrint(doc_out,"%s",body_header);
 
   doc_e=doc_in->root.next;
   s=DocSettingsLast(doc_e);
@@ -176,14 +176,14 @@ public CDoc *Doc2Html(CDoc *doc_in,
   while (doc_e!=doc_in) {
     if (!(doc_e->flags1&(DOCEF1_SKIP|DOCEF1_HARD_SKIP))) {
       if (line_anchors && y!=old_y) {
-	DocPrintF(doc_out,"",y+1);
+	DocPrint(doc_out,"",y+1);
 	old_y=y;
       }
       while (yy) {
 	HtmlPutS(doc_out,cur_u8_attr,&old_c,"\n",&col,style_bitmap);
 	y++;
 	if (line_anchors && y!=old_y) {
-	  DocPrintF(doc_out,"",y+1);
+	  DocPrint(doc_out,"",y+1);
 	  old_y=y;
 	}
 	col=0;
@@ -212,10 +212,10 @@ public CDoc *Doc2Html(CDoc *doc_in,
 
       if (link_st) {
 	if (old_c!=-1) {
-	  DocPutS(doc_out,"");
+	  DocPrint(doc_out,"");
 	  old_c=-1;
 	}
-	DocPrintF(doc_out,"",link_st);
+	DocPrint(doc_out,"",link_st);
       }
 
       if (doc_e->settings)
@@ -239,17 +239,17 @@ public CDoc *Doc2Html(CDoc *doc_in,
 	  break;
 	case DOCT_HTML_IMG:
 	  if (old_c!=-1) {
-	    DocPutS(doc_out,"");
+	    DocPrint(doc_out,"");
 	    old_c=-1;
 	  }
-	  DocPrintF(doc_out,"\"\"\n",doc_e->tag);
+	  DocPrint(doc_out,"\"\"\n",doc_e->tag);
 	  break;
 	case DOCT_HTML_VIDEO:
 	  if (old_c!=-1) {
-	    DocPutS(doc_out,"");
+	    DocPrint(doc_out,"");
 	    old_c=-1;
 	  }
-	  DocPrintF(doc_out,
+	  DocPrint(doc_out,
 		"\n"
 		"");
+	    DocPrint(doc_out,"");
 	    old_c=-1;
 	  }
-	  DocPutS(doc_out,doc_e->tag);
+	  DocPrint(doc_out,"%s",doc_e->tag);
 	  break;
 	case DOCT_SPRITE:
 	  HtmlPutS(doc_out,cur_u8_attr,&old_c,doc_e->tag,&col,style_bitmap);
@@ -285,10 +285,10 @@ public CDoc *Doc2Html(CDoc *doc_in,
       }
       if (link_st) {
 	if (old_c!=-1) {
-	  DocPutS(doc_out,"");
+	  DocPrint(doc_out,"");
 	  old_c=-1;
 	}
-	DocPutS(doc_out,"");
+	DocPrint(doc_out,"");
 	Free(link_st);
       }
     }
@@ -300,16 +300,16 @@ public CDoc *Doc2Html(CDoc *doc_in,
     col=0;
   }
   if (old_c!=-1) {
-    DocPutS(doc_out,"");
+    DocPrint(doc_out,"");
     old_c=-1;
   }
-  DocPutS(doc_out,body_footer);
-  DocPutS(doc_out,"\n\n");
+  DocPrint(doc_out,"%s",body_footer);
+  DocPrint(doc_out,"\n\n");
 
   doc_out->cur_entry=style->next;
   for (i=0;i<256;i++)
     if (Bt(style_bitmap,i))
-      DocPrintF(doc_out,".c%02X{color:#%02x%02x%02x;background-color:#%02x%02x%02x;}\n",i,p[i&15].r,p[i&15].g,p[i&15].b,p[i/16].r,p[i/16].g,p[i/16].b);
+      DocPrint(doc_out,".c%02X{color:#%02x%02x%02x;background-color:#%02x%02x%02x;}\n",i,p[i&15].r,p[i&15].g,p[i&15].b,p[i/16].r,p[i/16].g,p[i/16].b);
   doc_out->cur_entry=&doc_out->root;
   DocRecalc(doc_out);
 
diff --git a/TempleOS/Adam/Utils/ToTXT.CPP b/TempleOS/Adam/Utils/ToTXT.CPP
index 8c7904a..fbb69b1 100644
--- a/TempleOS/Adam/Utils/ToTXT.CPP
+++ b/TempleOS/Adam/Utils/ToTXT.CPP
@@ -12,38 +12,38 @@ U0 TXTPutS(CDoc *doc,U8 *st,I64 *_col)
 	} while (*_col&7);
 	break;
       case 'ã':
-	DocPutS(doc,"pi");
+	DocPrint(doc,"pi");
 	*_col=*_col+1;
 	break;
       case 'é':
-	DocPutS(doc,"theta");
+	DocPrint(doc,"theta");
 	*_col=*_col+1;
 	break;
       case 'è':
-	DocPutS(doc,"phi");
+	DocPrint(doc,"phi");
 	*_col=*_col+1;
 	break;
       case 'ê':
-	DocPutS(doc,"omega");
+	DocPrint(doc,"omega");
 	*_col=*_col+1;
 	break;
       case 'ì':
-	DocPutS(doc,"inf");
+	DocPrint(doc,"inf");
 	*_col=*_col+1;
 	break;
       case 'æ':
-	DocPutS(doc,"u");
+	DocPrint(doc,"u");
 	*_col=*_col+1;
 	break;
       case CH_SHIFT_SPACE:
-	DocPutS(doc," ");
+	DocPrint(doc," ");
 	*_col=*_col+1;
 	break;
       default:
 	if (CH_SPACE<=ch<0x7F || ch=='\n')
 	  DocPutKey(doc,ch,0);
 	else
-	  DocPutS(doc,".");
+	  DocPrint(doc,".");
 	*_col=*_col+1;
     }
   }
diff --git a/TempleOS/Adam/Utils2a.CPP b/TempleOS/Adam/Utils2a.CPP
index 110a309..9741ddc 100644
--- a/TempleOS/Adam/Utils2a.CPP
+++ b/TempleOS/Adam/Utils2a.CPP
@@ -408,8 +408,8 @@ public Bool HeapWalk(CTask *task=NULL)
 U0 TaskRepTask(CTask *task,I64 indent)
 {
   CTask *task1;
-  U8 *st,*desc=MSPrintF("%q",task->task_title);
-  st=MSPrintF("$$MA+A,\"%08X\",\"Kill(0x%X);\n\",$$",task,task,task);
+  U8 *st,*desc=MPrint("%q",task->task_title);
+  st=MPrint("$$MA+A,\"%08X\",\"Kill(0x%X);\n\",$$",task,task,task);
   Spaces(indent);
   "%s $$TX+SCX,\"%Q...\",16$$ Mem:%08X\n",
     st,desc,TaskAllocatedMem(task);
diff --git a/TempleOS/Adam/WallPaper.CPP b/TempleOS/Adam/WallPaper.CPP
index a1799d0..52de514 100644
Binary files a/TempleOS/Adam/WallPaper.CPP and b/TempleOS/Adam/WallPaper.CPP differ
diff --git a/TempleOS/Adam/Window.CPP b/TempleOS/Adam/Window.CPP
index ee2b699..948ad75 100644
--- a/TempleOS/Adam/Window.CPP
+++ b/TempleOS/Adam/Window.CPP
@@ -78,10 +78,10 @@ U0 DrawProgressBars(CDC *dc)
       if (*sys_progresses[i].desc)
 	st=StrNew(sys_progresses[i].desc);
       else
-	st=MSPrintF("%d/%d",n,m);
-      GrPutS(dc,(GR_WIDTH-FONT_WIDTH*StrLen(st))/2,
+	st=MPrint("%d/%d",n,m);
+      GrPrint(dc,(GR_WIDTH-FONT_WIDTH*StrLen(st))/2,
 	(GR_HEIGHT-FONT_HEIGHT-
-	(NUM_PROGRESS_BARS*2-2-i*4)*PROGRESS_BAR_HEIGHT)/2,st);
+	(NUM_PROGRESS_BARS*2-2-i*4)*PROGRESS_BAR_HEIGHT)/2,"%s",st);
       Free(st);
     }
   }
@@ -126,21 +126,21 @@ U0 ExtendedASCII()
 {
   I64 i;
   CDoc *doc=DocNew;
-  DocPutS(doc,"Select Char and Press \n$$FG,LTBLUE$$");
+  DocPrint(doc,"Select Char and Press \n$$FG,LTBLUE$$");
   for (i=0;i<256;i++) {
     if (i>=CH_SHIFT_SPACE && i!=127) {
       if (i==CH_SHIFT_SPACE)
-	DocPrintF(doc,"$$MU-X-UL,\"\\37\",%d$$",i);
+	DocPrint(doc,"$$MU-X-UL,\"\\37\",%d$$",i);
       else if (i=='$$')
-	DocPrintF(doc,"$$MU-X-UL,\"\\44\",%d$$",i);
+	DocPrint(doc,"$$MU-X-UL,\"\\44\",%d$$",i);
       else if (i=='\"'||i=='\\')
-	DocPrintF(doc,"$$MU-X-UL,\"\\%c\",%d$$",i,i);
+	DocPrint(doc,"$$MU-X-UL,\"\\%c\",%d$$",i,i);
       else
-	DocPrintF(doc,"$$MU-X-UL,\"%c\",%d$$",i,i);
+	DocPrint(doc,"$$MU-X-UL,\"%c\",%d$$",i,i);
     } else
-      DocPutS(doc," ");
+      DocPrint(doc," ");
     if (i&15==15)
-      DocPutS(doc,"\n");
+      DocPrint(doc,"\n");
   }
   i=PopUpMenu(doc);
   DocDel(doc);
@@ -1061,7 +1061,7 @@ U0 WinMgrTask(I64)
   CDocEntry *doc_e;
   I64 x,y,z,msg_code,
       my_ipz=0,left,top,
-      old_flags=GetFlags;
+      old_flags=GetRFlags;
   Bool has_border;
   CCtrl *c;
   TaskInitExt;
@@ -1087,13 +1087,13 @@ wmt_start:
       while (TRUE) {
 	Cli;
 	if (!TaskValidate(task)) {
-	  SetFlags(old_flags);
+	  SetRFlags(old_flags);
 	  goto wmt_start;
 	}
 	WinChkMoveSize(task);
 	TaskDerivedValsUpdate(task,FALSE);
 	task=task->last_task;
-	SetFlags(old_flags);
+	SetRFlags(old_flags);
 	if (task==Fs)
 	  break;
       }
@@ -1103,21 +1103,21 @@ wmt_start:
       while (TRUE) {
 	Cli;
 	if (!TaskValidate(task)) {
-	  SetFlags(old_flags);
+	  SetRFlags(old_flags);
 	  goto wmt_start;
 	}
 	if (Bt(&task->display_flags,DISPLAYf_SHOW) &&
 	    task->win_border_pixel_left<=ipx<=task->win_border_pixel_right &&
 	    task->win_border_pixel_top<=ipy<=task->win_border_pixel_bottom) {
-	  SetFlags(old_flags);
+	  SetRFlags(old_flags);
 	  break;
 	}
 	if (task==Fs) {	//Shouldn't happen
-	  SetFlags(old_flags);
+	  SetRFlags(old_flags);
 	  goto wmt_start;
 	}
 	task=task->last_task;
-	SetFlags(old_flags);
+	SetRFlags(old_flags);
       }
 
       if (Bt(&task->display_flags,DISPLAYf_NO_BORDER))
diff --git a/TempleOS/Adam/WordStat/WSDict.CPP b/TempleOS/Adam/WordStat/WSDict.CPP
index 74a57d5..1b918a6 100644
--- a/TempleOS/Adam/WordStat/WSDict.CPP
+++ b/TempleOS/Adam/WordStat/WSDict.CPP
@@ -188,9 +188,9 @@ U0 WSDDictWordsAdd(CDoc *doc,U8 *st=NULL)
 	if (*ptr++!=WSD_WORD_CHAR)
 	  break;
 	if (i)
-	  DocPutS(doc,"\n");
+	  DocPrint(doc,"\n");
 	wsd_fillins[i]=ptr-1;
-	DocPrintF(doc," '%d' %s",i,ptr);
+	DocPrint(doc," '%d' %s",i,ptr);
 	ptr+=StrLen(ptr)+3;
       }
       wsd_num_fillins=i;
@@ -218,7 +218,7 @@ public U0 WSDDisplayDefs(CDoc *doc,U8 *st,I64 num=-1)
   if (!st) return;
   if (*st==WSD_WORD_CHAR)
     st++;
-  DocPrintF(doc,"$$WW,1$$$$FG,RED$$%s:$$FG$$\n\n",st);
+  DocPrint(doc,"$$WW,1$$$$FG,RED$$%s:$$FG$$\n\n",st);
   if (num<0) {
     if (st3=WSDGetWord(st)) {
       st2=st3;
@@ -227,17 +227,17 @@ public U0 WSDDisplayDefs(CDoc *doc,U8 *st,I64 num=-1)
 	  case WSD_WORD_CHAR:
 	    break;
 	  case WSD_DEF_CHAR:
-	    DocPrintF(doc,"$$FG,GREEN$$(%d)$$FG$$ %s\n",
+	    DocPrint(doc,"$$FG,GREEN$$(%d)$$FG$$ %s\n",
 	      ++i,st2);
 	    break;
 	  case WSD_PRONUNCIATION_CHAR:
-	    DocPrintF(doc,"$$FG,LTGREEN$$%s$$FG$$\n",st2);
+	    DocPrint(doc,"$$FG,LTGREEN$$%s$$FG$$\n",st2);
 	    break;
 	  case WSD_POS_CHAR:
-	    DocPrintF(doc,"$$FG,BLACK$$%s$$FG$$\n",st2);
+	    DocPrint(doc,"$$FG,BLACK$$%s$$FG$$\n",st2);
 	    break;
 	  case WSD_EXTRA_CHAR:
-	    DocPrintF(doc,"$$FG,LTBLUE$$%s$$FG$$\n",st2);
+	    DocPrint(doc,"$$FG,LTBLUE$$%s$$FG$$\n",st2);
 	    break;
 	}
 	st2+=StrLen(st2)+1;
@@ -247,7 +247,7 @@ public U0 WSDDisplayDefs(CDoc *doc,U8 *st,I64 num=-1)
   } else {
     while (st2=WSDGetDef(st,++i)) {
       if (i==num)
-	DocPrintF(doc,"$$FG,GREEN$$(%d)$$FG$$ %s\n",
+	DocPrint(doc,"$$FG,GREEN$$(%d)$$FG$$ %s\n",
 	  i,st2);
       Free(st2);
     }
@@ -257,7 +257,7 @@ public U0 WSDDisplayDefs(CDoc *doc,U8 *st,I64 num=-1)
 U0 WSDPopUpDef(U8 *st,I64 num=-1,CTask *parent=NULL)
 {
   U8 *buf;
-  buf=MSPrintF("WSDDisplayDefs(DocPut,\"%s\",%d);View;",st,num);
+  buf=MPrint("WSDDisplayDefs(DocPut,\"%s\",%d);View;",st,num);
   PopUp(buf,parent);
   Free(buf);
 }
diff --git a/TempleOS/Adam/WordStat/WSDictGen.CPP b/TempleOS/Adam/WordStat/WSDictGen.CPP
index b020b0b..fba2eeb 100644
--- a/TempleOS/Adam/WordStat/WSDictGen.CPP
+++ b/TempleOS/Adam/WordStat/WSDictGen.CPP
@@ -27,7 +27,7 @@ I64 WSDNextCmd(U8 **_ptr)
       if (!(ch=*ptr2++)) goto ncmd_done;
     } while (ch!='>');
     *--ptr2=0;
-    result=LstEntryMatch(ptr,"h1\0/h1\0def\0/def\0hw\0/hw\0tt\0/tt\0"
+    result=LstMatch(ptr,"h1\0/h1\0def\0/def\0hw\0/hw\0tt\0/tt\0"
 "ety\0@fld\0@cd\0@blockquote\0@wordforms\0@note\0@altname\0@chform\0@cref\0@syn\0"
 "/ety\0@/fld\0@/cd\0@/blockquote\0@/wordforms\0@/note\0@/altname\0@/chform\0@/cref\0@/syn\0");
     *ptr2++='>';
diff --git a/TempleOS/Adam/WordStat/WSMain.CPP b/TempleOS/Adam/WordStat/WSMain.CPP
index 978ea7d..12b2276 100644
--- a/TempleOS/Adam/WordStat/WSMain.CPP
+++ b/TempleOS/Adam/WordStat/WSMain.CPP
@@ -415,7 +415,7 @@ U0 WSMan(I64 n,CTask *parent_task=NULL)
     if (tempw=ws_sorted_words[ws_fillin_matches[n]]) {
       if (temph=HashFind(tempw->str,Fs->hash_table,HTG_SRC_SYM)) {
 	if (temph->src_link) {
-	  buf=MSPrintF("Ed(\"%s\");",temph->src_link);
+	  buf=MPrint("Ed(\"%s\");",temph->src_link);
 	  Preempt(old_preempt);
 	  PopUp(buf,parent_task);
 	  Free(buf);
@@ -460,7 +460,7 @@ U0 WSPutChoices(CDoc *focus_l,CDocEntry *doc_e,CTask *focus_task)
   CHashSrcSym *temph;
   CDoc *doc=DocPut;
 
-  src=DocGetLine(focus_l,doc_e,&data_col);
+  src=DocScanLine(focus_l,doc_e,&data_col);
   DocUnlock(focus_l);
   i=StrLen(src);
   buf =MAlloc(MaxI64(i+1,256));
@@ -504,7 +504,7 @@ pc_done:
   Fs->text_attr=LTBLUE<<4+WHITE;
   Fs->border_src =BDS_CONST;
   Fs->border_attr=LTBLUE<<4+BLACK;
-  DocPrintF(doc,"Word:%s\n",ws_cur_word);
+  DocPrint(doc,"Word:%s\n",ws_cur_word);
   for (i=0;istr;
     ch=CH_SPACE;
@@ -514,7 +514,7 @@ pc_done:
 	    temph->type&HTT_DEFINE_STR && temph(CHashDefineStr *)->caller)
 	  ch='*';
     }
-    DocPrintF(doc,"%cF%02d %s\n",ch,i+1,st);
+    DocPrint(doc,"%cF%02d %s\n",ch,i+1,st);
   }
   WSDDictWordsAdd(doc);
 
@@ -534,7 +534,7 @@ U0 WSTask(I64)
   CDocEntry *doc_e;
   TaskInitExt;
   UseTermDoc;
-  SetWinHorz(50,Fs->win_right);
+  SetWinHorz(51,Fs->win_right);
   LBts(&Fs->display_flags,DISPLAYf_WIN_ON_TOP);
   do {
     Sleep(333);
@@ -572,13 +572,13 @@ U0 WSMainFileLstTraverse(U8 *files_find_mask,I64 pass)
   U8 *buf;
   try {
     flst=FilesOrder(FilesFind(files_find_mask,
-	FUF_RECURSE|FUF_JUST_TXT_FILES|FUF_JUST_FILES|FUF_FLATTEN_TREE),&cnt);
+	FUF_RECURSE|FUF_JUST_TXT|FUF_JUST_FILES),&cnt);
     for (i=0;ifull_name;
       buf=TextFileRead(flst[i]->full_name);
       WSSingleFileAdd(buf,pass);
       Free(buf);
-      CDirEntryDel(flst[i]);
+      DirEntryDel(flst[i]);
     }
   } catch
     Fs->catch_except=TRUE;
diff --git a/TempleOS/Apps/AfterEgypt/AESplash.TXT b/TempleOS/Apps/AfterEgypt/AESplash.TXT
index b5d451f..9fb14fe 100644
Binary files a/TempleOS/Apps/AfterEgypt/AESplash.TXT and b/TempleOS/Apps/AfterEgypt/AESplash.TXT differ
diff --git a/TempleOS/Apps/AfterEgypt/AfterEgypt.CPP b/TempleOS/Apps/AfterEgypt/AfterEgypt.CPP
index ada5fe4..c5f7f19 100644
--- a/TempleOS/Apps/AfterEgypt/AfterEgypt.CPP
+++ b/TempleOS/Apps/AfterEgypt/AfterEgypt.CPP
@@ -24,15 +24,15 @@ U0 HoldCourt()
 
   NewLine;
   accused=RandU32%3;
-  "" LstEntryPt(accused,"A man \0A woman \0A child \0");
+  "%s",LstSub(accused,"A man \0A woman \0A child \0");
 
   crime=RandU32&3;
-  "" LstEntryPt(crime,"commits murder\0commits adultery\0commits blasphemy\0commits idolatry\0");
+  "%s",LstSub(crime,"commits murder\0commits adultery\0commits blasphemy\0commits idolatry\0");
 
   if (crime<=1) {
     '' CH_SPACE;
     victim=RandU32%3;
-    "" LstEntryPt(victim,"to a man\0to a woman\0to a child\0to an animal\0");
+    "%s",LstSub(victim,"to a man\0to a woman\0to a child\0to an animal\0");
   }
   if (!(RandU32%5))
     ", again!";
@@ -156,7 +156,7 @@ U0 TMsg(CDC *dc,U8 *msg)
     dc->color=BLACK;
     GrRect(dc,2,GR_HEIGHT-FONT_HEIGHT*3+2,GR_WIDTH-4,FONT_HEIGHT*2-4);
     dc->color=YELLOW;
-    GrPutS(dc,(GR_WIDTH-StrLen(msg)*FONT_WIDTH)/2,GR_HEIGHT-5*FONT_HEIGHT/2,msg);
+    GrPrint(dc,(GR_WIDTH-StrLen(msg)*FONT_WIDTH)/2,GR_HEIGHT-5*FONT_HEIGHT/2,"%s",msg);
     WinMgrSync;
     if (ScanChar)
       throw;
diff --git a/TempleOS/Apps/AfterEgypt/Battle.CPP b/TempleOS/Apps/AfterEgypt/Battle.CPP
index e519e9b..59171c4 100644
Binary files a/TempleOS/Apps/AfterEgypt/Battle.CPP and b/TempleOS/Apps/AfterEgypt/Battle.CPP differ
diff --git a/TempleOS/Apps/AfterEgypt/Comics.CPP b/TempleOS/Apps/AfterEgypt/Comics.CPP
index 393a2a6..e7a2461 100644
--- a/TempleOS/Apps/AfterEgypt/Comics.CPP
+++ b/TempleOS/Apps/AfterEgypt/Comics.CPP
@@ -2,27 +2,27 @@ U0 ViewComics()
 {
   I64 i=0;
   U8 *st;
-  CDirEntry *tempm,*tempm1;
+  CDirEntry *tempde,*tempde1;
   CDoc *doc=DocNew;
-  DocPutS(doc,"$$FG,LTBLUE$$");
-  tempm=FilesFind("Comics/*.TXT*");
-  tempm1=tempm;
-  while (tempm1) {
-    st=StrNew(tempm1->name);
+  DocPrint(doc,"$$FG,LTBLUE$$");
+  tempde=FilesFind("Comics/*.TXT*");
+  tempde1=tempde;
+  while (tempde1) {
+    st=StrNew(tempde1->name);
     FileExtRem(st);
-    tempm1->user_data=DocPrintF(doc,"$$MU-UL,\"%-10ts\",%d$$ ",st,tempm1);
+    tempde1->user_data=DocPrint(doc,"$$MU-UL,\"%-10ts\",%d$$ ",st,tempde1);
     Free(st);
-    tempm1=tempm1->next;
+    tempde1=tempde1->next;
     if ((i++&3)==3)
-      DocPutS(doc,"\n");
+      DocPrint(doc,"\n");
   }
   while (TRUE) {
-    if ((tempm1=PopUpMenu(doc))>0)
-      Ed(tempm1->full_name);
+    if ((tempde1=PopUpMenu(doc))>0)
+      Ed(tempde1->full_name);
     else
       break;
   }
   DocDel(doc);
-  CDirLstDel(tempm);
+  DirLstDel(tempde);
 }
 
diff --git a/TempleOS/Apps/AfterEgypt/Comics/Moses01.TXT b/TempleOS/Apps/AfterEgypt/Comics/Moses01.TXT
index 792d7d1..ef5b3c5 100644
Binary files a/TempleOS/Apps/AfterEgypt/Comics/Moses01.TXT and b/TempleOS/Apps/AfterEgypt/Comics/Moses01.TXT differ
diff --git a/TempleOS/Apps/AfterEgypt/Comics/Moses02.TXT b/TempleOS/Apps/AfterEgypt/Comics/Moses02.TXT
index 2ca355d..e8bf848 100644
Binary files a/TempleOS/Apps/AfterEgypt/Comics/Moses02.TXT and b/TempleOS/Apps/AfterEgypt/Comics/Moses02.TXT differ
diff --git a/TempleOS/Apps/AfterEgypt/Comics/Moses04.TXT b/TempleOS/Apps/AfterEgypt/Comics/Moses04.TXT
index 162848b..bc2ac95 100644
Binary files a/TempleOS/Apps/AfterEgypt/Comics/Moses04.TXT and b/TempleOS/Apps/AfterEgypt/Comics/Moses04.TXT differ
diff --git a/TempleOS/Apps/AfterEgypt/Comics/Moses05.TXT b/TempleOS/Apps/AfterEgypt/Comics/Moses05.TXT
index 54f6279..fcdec37 100644
Binary files a/TempleOS/Apps/AfterEgypt/Comics/Moses05.TXT and b/TempleOS/Apps/AfterEgypt/Comics/Moses05.TXT differ
diff --git a/TempleOS/Apps/AfterEgypt/Comics/Moses06.TXT b/TempleOS/Apps/AfterEgypt/Comics/Moses06.TXT
index 5f4c776..18b0e96 100644
Binary files a/TempleOS/Apps/AfterEgypt/Comics/Moses06.TXT and b/TempleOS/Apps/AfterEgypt/Comics/Moses06.TXT differ
diff --git a/TempleOS/Apps/AfterEgypt/Comics/Moses07.TXT b/TempleOS/Apps/AfterEgypt/Comics/Moses07.TXT
index 330e20e..3385cde 100644
Binary files a/TempleOS/Apps/AfterEgypt/Comics/Moses07.TXT and b/TempleOS/Apps/AfterEgypt/Comics/Moses07.TXT differ
diff --git a/TempleOS/Apps/AfterEgypt/Comics/Moses08.TXT b/TempleOS/Apps/AfterEgypt/Comics/Moses08.TXT
index 707a82b..214a1c3 100644
Binary files a/TempleOS/Apps/AfterEgypt/Comics/Moses08.TXT and b/TempleOS/Apps/AfterEgypt/Comics/Moses08.TXT differ
diff --git a/TempleOS/Apps/AfterEgypt/Comics/Moses10.TXT b/TempleOS/Apps/AfterEgypt/Comics/Moses10.TXT
index 13a2311..6a72692 100644
Binary files a/TempleOS/Apps/AfterEgypt/Comics/Moses10.TXT and b/TempleOS/Apps/AfterEgypt/Comics/Moses10.TXT differ
diff --git a/TempleOS/Apps/AfterEgypt/Comics/Moses12.TXT b/TempleOS/Apps/AfterEgypt/Comics/Moses12.TXT
index c1d1389..e4aa6d7 100644
Binary files a/TempleOS/Apps/AfterEgypt/Comics/Moses12.TXT and b/TempleOS/Apps/AfterEgypt/Comics/Moses12.TXT differ
diff --git a/TempleOS/Apps/AfterEgypt/Comics/Moses13.TXT b/TempleOS/Apps/AfterEgypt/Comics/Moses13.TXT
index df63311..6e8d160 100644
Binary files a/TempleOS/Apps/AfterEgypt/Comics/Moses13.TXT and b/TempleOS/Apps/AfterEgypt/Comics/Moses13.TXT differ
diff --git a/TempleOS/Apps/AfterEgypt/Comics/Moses14.TXT b/TempleOS/Apps/AfterEgypt/Comics/Moses14.TXT
index 8b1e321..c61f636 100644
Binary files a/TempleOS/Apps/AfterEgypt/Comics/Moses14.TXT and b/TempleOS/Apps/AfterEgypt/Comics/Moses14.TXT differ
diff --git a/TempleOS/Apps/AfterEgypt/Comics/Moses15.TXT b/TempleOS/Apps/AfterEgypt/Comics/Moses15.TXT
index d6569d4..d11cbe6 100644
Binary files a/TempleOS/Apps/AfterEgypt/Comics/Moses15.TXT and b/TempleOS/Apps/AfterEgypt/Comics/Moses15.TXT differ
diff --git a/TempleOS/Apps/AfterEgypt/Comics/Moses16.TXT b/TempleOS/Apps/AfterEgypt/Comics/Moses16.TXT
index 2014e07..67fe81c 100644
Binary files a/TempleOS/Apps/AfterEgypt/Comics/Moses16.TXT and b/TempleOS/Apps/AfterEgypt/Comics/Moses16.TXT differ
diff --git a/TempleOS/Apps/AfterEgypt/Comics/Moses17.TXT b/TempleOS/Apps/AfterEgypt/Comics/Moses17.TXT
index 9a264c8..c7f5c89 100644
Binary files a/TempleOS/Apps/AfterEgypt/Comics/Moses17.TXT and b/TempleOS/Apps/AfterEgypt/Comics/Moses17.TXT differ
diff --git a/TempleOS/Apps/AfterEgypt/Comics/Moses18.TXT b/TempleOS/Apps/AfterEgypt/Comics/Moses18.TXT
index 5711da2..62256af 100644
Binary files a/TempleOS/Apps/AfterEgypt/Comics/Moses18.TXT and b/TempleOS/Apps/AfterEgypt/Comics/Moses18.TXT differ
diff --git a/TempleOS/Apps/AfterEgypt/Comics/Moses19.TXT b/TempleOS/Apps/AfterEgypt/Comics/Moses19.TXT
index ba3edc5..5719fa6 100644
Binary files a/TempleOS/Apps/AfterEgypt/Comics/Moses19.TXT and b/TempleOS/Apps/AfterEgypt/Comics/Moses19.TXT differ
diff --git a/TempleOS/Apps/AfterEgypt/Comics/Moses20.TXT b/TempleOS/Apps/AfterEgypt/Comics/Moses20.TXT
index cae729e..27e473e 100644
Binary files a/TempleOS/Apps/AfterEgypt/Comics/Moses20.TXT and b/TempleOS/Apps/AfterEgypt/Comics/Moses20.TXT differ
diff --git a/TempleOS/Apps/AfterEgypt/Comics/Moses21.TXT b/TempleOS/Apps/AfterEgypt/Comics/Moses21.TXT
index 948e69b..0b6f009 100644
Binary files a/TempleOS/Apps/AfterEgypt/Comics/Moses21.TXT and b/TempleOS/Apps/AfterEgypt/Comics/Moses21.TXT differ
diff --git a/TempleOS/Apps/AfterEgypt/Comics/Moses22.TXT b/TempleOS/Apps/AfterEgypt/Comics/Moses22.TXT
index 48885d2..05683bf 100644
Binary files a/TempleOS/Apps/AfterEgypt/Comics/Moses22.TXT and b/TempleOS/Apps/AfterEgypt/Comics/Moses22.TXT differ
diff --git a/TempleOS/Apps/AfterEgypt/Comics/Moses23.TXT b/TempleOS/Apps/AfterEgypt/Comics/Moses23.TXT
index b048887..a8d0e7a 100644
Binary files a/TempleOS/Apps/AfterEgypt/Comics/Moses23.TXT and b/TempleOS/Apps/AfterEgypt/Comics/Moses23.TXT differ
diff --git a/TempleOS/Apps/AfterEgypt/Comics/Moses24.TXT b/TempleOS/Apps/AfterEgypt/Comics/Moses24.TXT
index 4a42621..14351ff 100644
Binary files a/TempleOS/Apps/AfterEgypt/Comics/Moses24.TXT and b/TempleOS/Apps/AfterEgypt/Comics/Moses24.TXT differ
diff --git a/TempleOS/Apps/AfterEgypt/Comics/Moses25.TXT b/TempleOS/Apps/AfterEgypt/Comics/Moses25.TXT
index 146dd83..b34e544 100644
Binary files a/TempleOS/Apps/AfterEgypt/Comics/Moses25.TXT and b/TempleOS/Apps/AfterEgypt/Comics/Moses25.TXT differ
diff --git a/TempleOS/Apps/AfterEgypt/Comics/Moses26.TXT b/TempleOS/Apps/AfterEgypt/Comics/Moses26.TXT
index ea678f9..3522664 100644
Binary files a/TempleOS/Apps/AfterEgypt/Comics/Moses26.TXT and b/TempleOS/Apps/AfterEgypt/Comics/Moses26.TXT differ
diff --git a/TempleOS/Apps/AfterEgypt/Comics/Moses27.TXT b/TempleOS/Apps/AfterEgypt/Comics/Moses27.TXT
index fbd9f1f..ba35e5d 100644
Binary files a/TempleOS/Apps/AfterEgypt/Comics/Moses27.TXT and b/TempleOS/Apps/AfterEgypt/Comics/Moses27.TXT differ
diff --git a/TempleOS/Apps/AfterEgypt/Comics/Moses28.TXT b/TempleOS/Apps/AfterEgypt/Comics/Moses28.TXT
index 58e4bd7..714dc41 100644
Binary files a/TempleOS/Apps/AfterEgypt/Comics/Moses28.TXT and b/TempleOS/Apps/AfterEgypt/Comics/Moses28.TXT differ
diff --git a/TempleOS/Apps/AfterEgypt/Comics/Moses29.TXT b/TempleOS/Apps/AfterEgypt/Comics/Moses29.TXT
index 78c358d..0a37eb0 100644
Binary files a/TempleOS/Apps/AfterEgypt/Comics/Moses29.TXT and b/TempleOS/Apps/AfterEgypt/Comics/Moses29.TXT differ
diff --git a/TempleOS/Apps/AfterEgypt/Comics/Moses30.TXT b/TempleOS/Apps/AfterEgypt/Comics/Moses30.TXT
index 83974a8..aea37ef 100644
Binary files a/TempleOS/Apps/AfterEgypt/Comics/Moses30.TXT and b/TempleOS/Apps/AfterEgypt/Comics/Moses30.TXT differ
diff --git a/TempleOS/Apps/AfterEgypt/Comics/Moses31.TXT b/TempleOS/Apps/AfterEgypt/Comics/Moses31.TXT
index 9a73c60..12bf1ea 100644
Binary files a/TempleOS/Apps/AfterEgypt/Comics/Moses31.TXT and b/TempleOS/Apps/AfterEgypt/Comics/Moses31.TXT differ
diff --git a/TempleOS/Apps/AfterEgypt/Comics/Moses32.TXT b/TempleOS/Apps/AfterEgypt/Comics/Moses32.TXT
index c25ad69..9661d19 100644
Binary files a/TempleOS/Apps/AfterEgypt/Comics/Moses32.TXT and b/TempleOS/Apps/AfterEgypt/Comics/Moses32.TXT differ
diff --git a/TempleOS/Apps/AfterEgypt/Comics/Moses34.TXT b/TempleOS/Apps/AfterEgypt/Comics/Moses34.TXT
index 81ee853..6c57f45 100644
Binary files a/TempleOS/Apps/AfterEgypt/Comics/Moses34.TXT and b/TempleOS/Apps/AfterEgypt/Comics/Moses34.TXT differ
diff --git a/TempleOS/Apps/AfterEgypt/Comics/Moses35.TXT b/TempleOS/Apps/AfterEgypt/Comics/Moses35.TXT
index f1e5d24..99c6347 100644
Binary files a/TempleOS/Apps/AfterEgypt/Comics/Moses35.TXT and b/TempleOS/Apps/AfterEgypt/Comics/Moses35.TXT differ
diff --git a/TempleOS/Apps/AfterEgypt/Comics/Moses36.TXT b/TempleOS/Apps/AfterEgypt/Comics/Moses36.TXT
index a1dd99c..373cba8 100644
Binary files a/TempleOS/Apps/AfterEgypt/Comics/Moses36.TXT and b/TempleOS/Apps/AfterEgypt/Comics/Moses36.TXT differ
diff --git a/TempleOS/Apps/AfterEgypt/Comics/Moses37.TXT b/TempleOS/Apps/AfterEgypt/Comics/Moses37.TXT
index 8160a7a..3edb04a 100644
Binary files a/TempleOS/Apps/AfterEgypt/Comics/Moses37.TXT and b/TempleOS/Apps/AfterEgypt/Comics/Moses37.TXT differ
diff --git a/TempleOS/Apps/AfterEgypt/Comics/Moses38.TXT b/TempleOS/Apps/AfterEgypt/Comics/Moses38.TXT
index f9926af..af0a4c9 100644
Binary files a/TempleOS/Apps/AfterEgypt/Comics/Moses38.TXT and b/TempleOS/Apps/AfterEgypt/Comics/Moses38.TXT differ
diff --git a/TempleOS/Apps/AfterEgypt/Comics/Moses39.TXT b/TempleOS/Apps/AfterEgypt/Comics/Moses39.TXT
index 4c8c528..76278d4 100644
Binary files a/TempleOS/Apps/AfterEgypt/Comics/Moses39.TXT and b/TempleOS/Apps/AfterEgypt/Comics/Moses39.TXT differ
diff --git a/TempleOS/Apps/AfterEgypt/Comics/Moses40.TXT b/TempleOS/Apps/AfterEgypt/Comics/Moses40.TXT
index 7a15bb7..a7a72ce 100644
Binary files a/TempleOS/Apps/AfterEgypt/Comics/Moses40.TXT and b/TempleOS/Apps/AfterEgypt/Comics/Moses40.TXT differ
diff --git a/TempleOS/Apps/AfterEgypt/Comics/Moses42.TXT b/TempleOS/Apps/AfterEgypt/Comics/Moses42.TXT
index fcf6697..c8ed643 100644
Binary files a/TempleOS/Apps/AfterEgypt/Comics/Moses42.TXT and b/TempleOS/Apps/AfterEgypt/Comics/Moses42.TXT differ
diff --git a/TempleOS/Apps/AfterEgypt/Comics/Moses43.TXT b/TempleOS/Apps/AfterEgypt/Comics/Moses43.TXT
index 872fc4b..6c4fab4 100644
Binary files a/TempleOS/Apps/AfterEgypt/Comics/Moses43.TXT and b/TempleOS/Apps/AfterEgypt/Comics/Moses43.TXT differ
diff --git a/TempleOS/Apps/AfterEgypt/Comics/Moses44.TXT b/TempleOS/Apps/AfterEgypt/Comics/Moses44.TXT
index defc959..380d949 100644
Binary files a/TempleOS/Apps/AfterEgypt/Comics/Moses44.TXT and b/TempleOS/Apps/AfterEgypt/Comics/Moses44.TXT differ
diff --git a/TempleOS/Apps/AfterEgypt/Comics/Moses45.TXT b/TempleOS/Apps/AfterEgypt/Comics/Moses45.TXT
index 5373904..52dcdea 100644
Binary files a/TempleOS/Apps/AfterEgypt/Comics/Moses45.TXT and b/TempleOS/Apps/AfterEgypt/Comics/Moses45.TXT differ
diff --git a/TempleOS/Apps/AfterEgypt/Comics/Moses46.TXT b/TempleOS/Apps/AfterEgypt/Comics/Moses46.TXT
index 2aee5c4..d6f9ab3 100644
Binary files a/TempleOS/Apps/AfterEgypt/Comics/Moses46.TXT and b/TempleOS/Apps/AfterEgypt/Comics/Moses46.TXT differ
diff --git a/TempleOS/Apps/AfterEgypt/Comics/Moses47.TXT b/TempleOS/Apps/AfterEgypt/Comics/Moses47.TXT
index 851ad33..76a96b3 100644
Binary files a/TempleOS/Apps/AfterEgypt/Comics/Moses47.TXT and b/TempleOS/Apps/AfterEgypt/Comics/Moses47.TXT differ
diff --git a/TempleOS/Apps/AfterEgypt/Comics/Moses48.TXT b/TempleOS/Apps/AfterEgypt/Comics/Moses48.TXT
index b5f3500..00d565a 100644
Binary files a/TempleOS/Apps/AfterEgypt/Comics/Moses48.TXT and b/TempleOS/Apps/AfterEgypt/Comics/Moses48.TXT differ
diff --git a/TempleOS/Apps/AfterEgypt/Comics/Moses49.TXT b/TempleOS/Apps/AfterEgypt/Comics/Moses49.TXT
index 88be898..60d42b3 100644
Binary files a/TempleOS/Apps/AfterEgypt/Comics/Moses49.TXT and b/TempleOS/Apps/AfterEgypt/Comics/Moses49.TXT differ
diff --git a/TempleOS/Apps/AfterEgypt/Comics/Moses50.TXT b/TempleOS/Apps/AfterEgypt/Comics/Moses50.TXT
index 15f4e0c..3640844 100644
Binary files a/TempleOS/Apps/AfterEgypt/Comics/Moses50.TXT and b/TempleOS/Apps/AfterEgypt/Comics/Moses50.TXT differ
diff --git a/TempleOS/Apps/AfterEgypt/Comics/Moses52.TXT b/TempleOS/Apps/AfterEgypt/Comics/Moses52.TXT
index d82b30e..23cb9ac 100644
Binary files a/TempleOS/Apps/AfterEgypt/Comics/Moses52.TXT and b/TempleOS/Apps/AfterEgypt/Comics/Moses52.TXT differ
diff --git a/TempleOS/Apps/AfterEgypt/Comics/Moses53.TXT b/TempleOS/Apps/AfterEgypt/Comics/Moses53.TXT
index 2dbdd66..60c4116 100644
Binary files a/TempleOS/Apps/AfterEgypt/Comics/Moses53.TXT and b/TempleOS/Apps/AfterEgypt/Comics/Moses53.TXT differ
diff --git a/TempleOS/Apps/AfterEgypt/Comics/Moses54.TXT b/TempleOS/Apps/AfterEgypt/Comics/Moses54.TXT
index d1af935..98a51b3 100644
Binary files a/TempleOS/Apps/AfterEgypt/Comics/Moses54.TXT and b/TempleOS/Apps/AfterEgypt/Comics/Moses54.TXT differ
diff --git a/TempleOS/Apps/AfterEgypt/Comics/Moses55.TXT b/TempleOS/Apps/AfterEgypt/Comics/Moses55.TXT
index 23b42dd..bc4745c 100644
Binary files a/TempleOS/Apps/AfterEgypt/Comics/Moses55.TXT and b/TempleOS/Apps/AfterEgypt/Comics/Moses55.TXT differ
diff --git a/TempleOS/Apps/AfterEgypt/Comics/Moses56.TXT b/TempleOS/Apps/AfterEgypt/Comics/Moses56.TXT
index 0eb4062..edd167a 100644
Binary files a/TempleOS/Apps/AfterEgypt/Comics/Moses56.TXT and b/TempleOS/Apps/AfterEgypt/Comics/Moses56.TXT differ
diff --git a/TempleOS/Apps/AfterEgypt/Comics/Moses57.TXT b/TempleOS/Apps/AfterEgypt/Comics/Moses57.TXT
index 17b93e9..bcb915f 100644
Binary files a/TempleOS/Apps/AfterEgypt/Comics/Moses57.TXT and b/TempleOS/Apps/AfterEgypt/Comics/Moses57.TXT differ
diff --git a/TempleOS/Apps/AfterEgypt/Comics/Moses58.TXT b/TempleOS/Apps/AfterEgypt/Comics/Moses58.TXT
index d0972fc..789ca1c 100644
Binary files a/TempleOS/Apps/AfterEgypt/Comics/Moses58.TXT and b/TempleOS/Apps/AfterEgypt/Comics/Moses58.TXT differ
diff --git a/TempleOS/Apps/AfterEgypt/Comics/Moses59.TXT b/TempleOS/Apps/AfterEgypt/Comics/Moses59.TXT
index 4ad3c18..7efca39 100644
Binary files a/TempleOS/Apps/AfterEgypt/Comics/Moses59.TXT and b/TempleOS/Apps/AfterEgypt/Comics/Moses59.TXT differ
diff --git a/TempleOS/Apps/AfterEgypt/Comics/Moses60.TXT b/TempleOS/Apps/AfterEgypt/Comics/Moses60.TXT
index 0b7ed48..c8e3dff 100644
Binary files a/TempleOS/Apps/AfterEgypt/Comics/Moses60.TXT and b/TempleOS/Apps/AfterEgypt/Comics/Moses60.TXT differ
diff --git a/TempleOS/Apps/AfterEgypt/Comics/Moses61.TXT b/TempleOS/Apps/AfterEgypt/Comics/Moses61.TXT
index 61889f6..b19862e 100644
Binary files a/TempleOS/Apps/AfterEgypt/Comics/Moses61.TXT and b/TempleOS/Apps/AfterEgypt/Comics/Moses61.TXT differ
diff --git a/TempleOS/Apps/AfterEgypt/Comics/Moses62.TXT b/TempleOS/Apps/AfterEgypt/Comics/Moses62.TXT
index 3c5f1a8..b2164f0 100644
Binary files a/TempleOS/Apps/AfterEgypt/Comics/Moses62.TXT and b/TempleOS/Apps/AfterEgypt/Comics/Moses62.TXT differ
diff --git a/TempleOS/Apps/AfterEgypt/Comics/Moses63.TXT b/TempleOS/Apps/AfterEgypt/Comics/Moses63.TXT
index 4eb4597..1b2cf0c 100644
Binary files a/TempleOS/Apps/AfterEgypt/Comics/Moses63.TXT and b/TempleOS/Apps/AfterEgypt/Comics/Moses63.TXT differ
diff --git a/TempleOS/Apps/AfterEgypt/Comics/Moses64.TXT b/TempleOS/Apps/AfterEgypt/Comics/Moses64.TXT
index 9ad9e0d..3dd3797 100644
Binary files a/TempleOS/Apps/AfterEgypt/Comics/Moses64.TXT and b/TempleOS/Apps/AfterEgypt/Comics/Moses64.TXT differ
diff --git a/TempleOS/Apps/AfterEgypt/Comics/Moses66.TXT b/TempleOS/Apps/AfterEgypt/Comics/Moses66.TXT
index 1c4f1de..57ea703 100644
Binary files a/TempleOS/Apps/AfterEgypt/Comics/Moses66.TXT and b/TempleOS/Apps/AfterEgypt/Comics/Moses66.TXT differ
diff --git a/TempleOS/Apps/AfterEgypt/Comics/Moses68.TXT b/TempleOS/Apps/AfterEgypt/Comics/Moses68.TXT
index 8c1c593..0d335b4 100644
Binary files a/TempleOS/Apps/AfterEgypt/Comics/Moses68.TXT and b/TempleOS/Apps/AfterEgypt/Comics/Moses68.TXT differ
diff --git a/TempleOS/Apps/AfterEgypt/Comics/Moses71.TXT b/TempleOS/Apps/AfterEgypt/Comics/Moses71.TXT
index 7f961bb..4832d94 100644
Binary files a/TempleOS/Apps/AfterEgypt/Comics/Moses71.TXT and b/TempleOS/Apps/AfterEgypt/Comics/Moses71.TXT differ
diff --git a/TempleOS/Apps/AfterEgypt/Comics/Moses72.TXT b/TempleOS/Apps/AfterEgypt/Comics/Moses72.TXT
index e1d175f..24ddffc 100644
Binary files a/TempleOS/Apps/AfterEgypt/Comics/Moses72.TXT and b/TempleOS/Apps/AfterEgypt/Comics/Moses72.TXT differ
diff --git a/TempleOS/Apps/AfterEgypt/Comics/Moses73.TXT b/TempleOS/Apps/AfterEgypt/Comics/Moses73.TXT
index 3aeed9d..c4f033f 100644
Binary files a/TempleOS/Apps/AfterEgypt/Comics/Moses73.TXT and b/TempleOS/Apps/AfterEgypt/Comics/Moses73.TXT differ
diff --git a/TempleOS/Apps/AfterEgypt/Comics/Moses74.TXT b/TempleOS/Apps/AfterEgypt/Comics/Moses74.TXT
index 81b6777..512c80a 100644
Binary files a/TempleOS/Apps/AfterEgypt/Comics/Moses74.TXT and b/TempleOS/Apps/AfterEgypt/Comics/Moses74.TXT differ
diff --git a/TempleOS/Apps/AfterEgypt/Comics/Moses75.TXT b/TempleOS/Apps/AfterEgypt/Comics/Moses75.TXT
deleted file mode 100644
index eefd755..0000000
Binary files a/TempleOS/Apps/AfterEgypt/Comics/Moses75.TXT and /dev/null differ
diff --git a/TempleOS/Apps/AfterEgypt/Comics/Moses76.TXT b/TempleOS/Apps/AfterEgypt/Comics/Moses76.TXT
new file mode 100644
index 0000000..4b95a43
Binary files /dev/null and b/TempleOS/Apps/AfterEgypt/Comics/Moses76.TXT differ
diff --git a/TempleOS/Apps/AfterEgypt/Comics/Moses77.TXT b/TempleOS/Apps/AfterEgypt/Comics/Moses77.TXT
new file mode 100644
index 0000000..d121ccc
Binary files /dev/null and b/TempleOS/Apps/AfterEgypt/Comics/Moses77.TXT differ
diff --git a/TempleOS/Apps/AfterEgypt/Comics/Moses78.TXT b/TempleOS/Apps/AfterEgypt/Comics/Moses78.TXT
new file mode 100644
index 0000000..37e0b71
Binary files /dev/null and b/TempleOS/Apps/AfterEgypt/Comics/Moses78.TXT differ
diff --git a/TempleOS/Apps/AfterEgypt/GodTalking.CPP b/TempleOS/Apps/AfterEgypt/GodTalking.CPP
index 91636c8..738fdbf 100644
Binary files a/TempleOS/Apps/AfterEgypt/GodTalking.CPP and b/TempleOS/Apps/AfterEgypt/GodTalking.CPP differ
diff --git a/TempleOS/Apps/AfterEgypt/Horeb.CPP b/TempleOS/Apps/AfterEgypt/Horeb.CPP
index 937a108..20d9d98 100644
Binary files a/TempleOS/Apps/AfterEgypt/Horeb.CPP and b/TempleOS/Apps/AfterEgypt/Horeb.CPP differ
diff --git a/TempleOS/Apps/AfterEgypt/Map.CPP b/TempleOS/Apps/AfterEgypt/Map.CPP
index aaf37f9..fc697d2 100644
Binary files a/TempleOS/Apps/AfterEgypt/Map.CPP and b/TempleOS/Apps/AfterEgypt/Map.CPP differ
diff --git a/TempleOS/Apps/AfterEgypt/Quail.CPP b/TempleOS/Apps/AfterEgypt/Quail.CPP
index 4a2fba9..3843c99 100644
Binary files a/TempleOS/Apps/AfterEgypt/Quail.CPP and b/TempleOS/Apps/AfterEgypt/Quail.CPP differ
diff --git a/TempleOS/Apps/AfterEgypt/WaterRock.CPP b/TempleOS/Apps/AfterEgypt/WaterRock.CPP
index bff87a8..012f5ad 100644
Binary files a/TempleOS/Apps/AfterEgypt/WaterRock.CPP and b/TempleOS/Apps/AfterEgypt/WaterRock.CPP differ
diff --git a/TempleOS/Apps/GrModels/BallGen.CPP b/TempleOS/Apps/GrModels/BallGen.CPP
index 9a9234e..6676326 100644
--- a/TempleOS/Apps/GrModels/BallGen.CPP
+++ b/TempleOS/Apps/GrModels/BallGen.CPP
@@ -64,7 +64,7 @@ U8 *Ball2CSprite()
 {
 //See $LK,"::/TempleOS/Adam/Gr/GrSpritePlot.CPP","FL:::/TempleOS/Adam/Gr/GrSpritePlot.CPP,1"$ for how CSprite are stored.
   U8 *result=MAlloc(sizeof(U8)+2*sizeof(I32)+
-    b->vertex_cnt*sizeof(CD3I32)+b->tri_cnt*sizeof(CMeshTri)+gr_sprite_base_size[GRST_END]),
+    b->vertex_cnt*sizeof(CD3I32)+b->tri_cnt*sizeof(CMeshTri)+sprite_base_size[GRST_END]),
     *dst=result;
   *dst(U8 *)++ =GRST_MESH;
   *dst(I32 *)++ =b->vertex_cnt;
@@ -87,7 +87,7 @@ public U8 *BallGen()
   BDInit(&bd1);
 
   while (TRUE) {
-    if (!DocFormDo(&bd1,"BallDefineStruct"))
+    if (!DocFormDo(&bd1))
       return NULL;
     MemCpy(&bd2,&bd1,sizeof(BallDefineStruct));
     BDCorrect(&bd2);
diff --git a/TempleOS/Apps/GrModels/ManGen.CPP b/TempleOS/Apps/GrModels/ManGen.CPP
index 4a9bdd4..d28c0d6 100644
--- a/TempleOS/Apps/GrModels/ManGen.CPP
+++ b/TempleOS/Apps/GrModels/ManGen.CPP
@@ -189,7 +189,7 @@ U8 *Man2CSprite()
 {
 //See $LK,"::/TempleOS/Adam/Gr/GrSpritePlot.CPP","FL:::/TempleOS/Adam/Gr/GrSpritePlot.CPP,1"$ for how CSprite are stored.
   U8 *result=MAlloc(sizeof(U8)+2*sizeof(I32)+
-      m->vertex_cnt*sizeof(CD3I32)+m->tri_cnt*sizeof(CMeshTri)+gr_sprite_base_size[GRST_END]),
+      m->vertex_cnt*sizeof(CD3I32)+m->tri_cnt*sizeof(CMeshTri)+sprite_base_size[GRST_END]),
       *dst=result;
   *dst(U8 *)++ =GRST_MESH;
   *dst(I32 *)++ =m->vertex_cnt;
@@ -210,7 +210,7 @@ public U8 *ManGen()
   MDInit(&md1);
 
   while (TRUE) {
-    if (!DocFormDo(&md1,"ManDefineStruct"))
+    if (!DocFormDo(&md1))
       return NULL;
     MemCpy(&md2,&md1,sizeof(ManDefineStruct));
     MDCorrect(&md2);
diff --git a/TempleOS/Apps/HolySpirit/HSNotes.TXT b/TempleOS/Apps/HolySpirit/HSNotes.TXT
index 0ecc634..fb6de74 100644
--- a/TempleOS/Apps/HolySpirit/HSNotes.TXT
+++ b/TempleOS/Apps/HolySpirit/HSNotes.TXT
@@ -6,7 +6,7 @@ You don't know God.  $LK,"1 Chronicles,28:9","BF:1 Chronicles,28:9"$, $LK,"Matth
 
 There's something obviously different about people in the Bible compared to people today -- God talked!  Did they hear voices?  Maybe.  More likely, they used occult techniques such as an oracle.  $LK,"1 Kings,6:20","BF:1 Kings,6:20"$  Have you heard of "tongues?"  $LK,"1 Corinthians,14:1","BF:1 Corinthians,14:1"$  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 said it is a covenant that you hold-up your end of the conversation.  
 
-You can't tell if He's talking unless you have a context of conversation, but, more importantly, you are commanded to do an offerring of love, like communion preparation.  When you pick a greeting card for someone, that is love effort.  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","BF:Genesis,4:1"$, $LK,"Ephesians,5:10","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 He's talking unless you have a context of conversation, but, more importantly, you are commanded to do an offering of love, like communion preparation.  When you pick a greeting card for someone, that is love effort.  If you expect God to put effort toward you, you 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","BF:Genesis,4:1"$, $LK,"Ephesians,5:10","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.  I did $MA+A-X+PU+HTML,"hymns","#include \"::/TempleOS/Apps/MusicOrgan/Load\";JukeBox(\"::/TempleOS/Apps/MusicOrgan/Examples\");","http://www.templeos.org/Wb/Accts/TS/Wb2/Hymns.html"$.  I did Moses $MA+A-X+PU+HTML,"comics","Dir(\"::/TempleOS/Apps/AfterEgypt/Comics\");View;\n","http://www.templeos.org/Wb/Apps/AfterEgypt/Comics/"$.  Count the ways you love God.  I praised God for sand castles, popcorn, snowmen, bubbles...  You try putting effort into praise!  $LK,"Matthew,11:25","BF:Matthew,11:25"$, $LK,"Matthew,6:29","BF:Matthew,6:29"$
 
@@ -29,3 +29,145 @@ All those sophisticated theological "infinity" things -- omniscience, omnipotenc
 Just as ego causes most to love neighbor, not God, people skip knowing and loving God and cowardly get stuck on obeying Him.  This hardly needs encouragement.
 
 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.  You'll quickly learn that prophecy does not come true and should smack yourself for wanting more than just enjoying God's company.
+
+
+________________________________________________________________________________
+				|
+	QUESTION		|		GOD'S ANSWER
+________________________________|_______________________________________________
+
+War? 				$FG,4$"Servicemen competing"$FG$
+(Praise the Creator--what would teenage male video games be like if never war?)
+
+Is the World perfectly just?	$FG,4$Are you calling me lazy?$FG$
+(Slavery was just. In the movie, Titanic, the rich wore straight jackets. You must bow to authority to get authority. I do $TX+HTML,"Moses comics","http://www.templeos.org/Wb/Apps/AfterEgypt/Comics/"$ as offerings. I said, "We're dying of malnutrician on manna."  Like Cain and Abel, God didn't like it. Duh! He wants to be the hero. How do I know they died of malnutrician?  Fuck Hollywood for making slavery worse than it was -- I love God.  School is more cruel.  Read $LK,"Numbers,11:1","BF:Numbers,11:1"$.  All you need is food, clothing and the word of God.  Today, you can take Ivy League course videos! There is no excuse except you were born stupid... or ugly.  I'm gonna praise God.) 
+
+On using Markov chains?		$FG,4$"No weights"$FG$
+On doing offerings?		$FG,4$"Honest measures"(You get out what you put in.)
+				It's a covenant to do an offering, first.
+				Offer $FG,4$$TX+HTML,"New Songs","http://www.templeos.org/Wb/Accts/TS/Wb2/Hymns.html"$, $TX+HTML,"Moses Comics","http://www.templeos.org/Wb/Apps/AfterEgypt/Comics"$, praise, poems,
+				and conversation.  See $LK,"Cain and Abel","BF:Genesis,4:1"$.$FG$
+The holocaust?			$FG,4$Wanted to "compact" the Jews.$FG$
+Arab/Jews?			$FG,4$"Oil funny hopefully"$FG$
+Peace?				$FG,4$One Palestinian can ruin it.$FG$
+Best religion?			$FG,4$One with most new vistas of understanding in$FG$
+				$FG,4$a lifetime.  One you can level-up the most in.$FG$
+Chavez blaming the US.		$FG,4$"Japan industrious"$FG$
+On racism? 			$FG,4$"Sports"$FG$
+On socialism?			$FG,4$"pardon_the_French, never_happy, never_enough"$FG$
+				$FG,4$"Gall aspect anti-Christ"$FG$
+On overpopulation		$FG,4$"Okay church what_now whats_the_plan"$FG$
+Favorite thing on TV?		$FG,4$"Soap_operas"$FG$
+Favorite movie?			$FG,4$Three Kings. Also Highlander$FG$
+Favorite song?			$FG,4$$TX+HTML,"Morning has Broken","http://www.youtube.com/watch?v=kKoRp05L95c"$$FG$
+Favorite comic strip?		$FG,4$$TX+HTML,"Prince Valiant","http://en.wikipedia.org/wiki/Prince_Valiant"$$FG$
+Shakespeare?			$FG,4$had a "vile heart"$FG$
+Likes				$FG,4$"Beverly Hillbillies" (Oil is a gift from God)$FG$
+				$FG,4$God likes being hero. Don't be proud of heart$FG$
+				$FG,4$and not accept a gift from God!$FG$
+Favorite saint?			$FG,4$"ho_ho_ho"$FG$
+Favorite animal?		$FG,4$"Elephant two"$FG$
+Favorite animal?		$FG,4$"Bears"$FG$
+Favorite color?			$FG,4$"Jude" (Jade Blue?)$FG$
+Favorite color?			$FG,4$"Gold"$FG$
+Favorite color?			$FG,4$$TX+HTML,"\"Iceberg\" blue","http://en.wikipedia.org/wiki/Blue_iceberg"$$FG$
+Money?				$FG,4$"Enough vehemently better"$FG$
+				$FG,4$"Pride [or] money, choose_one"$FG$
+Favorite car?			$FG,4$Beamer$FG$
+Favorite soda?			$FG,4$Root beer, $TX+HTML,"scotch variety","http://www.root-beer.org/modules.php?name=Brands&rbop=Brand&bid=1965"$.$FG$
+Homosexuality?			$LK+HTML,"Matthew,15:10","BF:Matthew,15:10","http://www.biblegateway.com/passage/?search=matthew%2015:10-11&version=NIV"$			
+Pets?				$FG,4$"homo"$FG$
+Sports?				$FG,4$"homo"$FG$
+Favorite sport?			$FG,4$Hockey$FG$
+$TX+HTML,"Wreck of the Edmund Fitzgerald","http://www.youtube.com/watch?v=9vST6hVRj2A"$	$FG,4$"homo"$FG$
+Smelling farts			$FG,4$"Sodom"$FG$
+Women's dress			$FG,4$Upper skin exposure not as bad as lower.$FG$
+Remarriage?			$FG,4$"More babies"$FG$
+Things you don't care about
+that people think you do?	$FG,4$Solomon's 300 concubines$FG$
+Adultery?			$FG,4$Can be good.$FG$
+Pretty ladies?			$FG,4$$TX+HTML,"A prince is not flustered.","http://www.youtube.com/watch?v=YcqF6sC-ztY"$$FG$
+Animal sacrifices?		$FG,4$Early Jews were "primitive".$FG$
+What do elephants think about?	$FG,4$"Skin, hunger"$FG$
+What makes elephants happy?	$FG,4$"Baths"$FG$
+What makes my birds happy?	$FG,4$"Gnawing"$FG$
+What makes my birds laugh?	$FG,4$"bite ouch" (If I say "ouch".)$FG$
+What are my birds saying?	$FG,4$"Chanting"$FG$
+My birds sure preen a lot.	$LK,"The creature was made subject to vanity...","BF:Romans,8:20"$
+What makes bears happy?		$FG,4$"Reaping depends"$FG$
+What makes otters happy?	$FG,4$"Eternal skies"$FG$
+What makes hippos happy?	$FG,4$"Ascending breath"$FG$
+What makes horses happy?	$FG,4$"[the] Call [of the] Open Range"$FG$
+What do cheetahs think about?	$FG,4$"Seeth me?" (Can he see me?)$FG$
+Orangutan or chimp smarter?	$FG,4$"Species exhibit similar glory"$FG$ 
+Endangered species?		$FG,4$"Enough stars?"$FG$
+Everything seems bad.		$FG,4$Plant trees.$FG$
+What's for dinner?		$FG,4$"Whale"$FG$
+Favorite Messier Object		$FG,4$"$TX+HTML,"M104 Sombrero Galaxy","http://en.wikipedia.org/wiki/Messier_104"$"$FG$
+$TX+HTML,"Shepard's Prayer","http://en.wikipedia.org/wiki/Alan_Shepard"$		$FG,4$"I_am_not_amused economy joke"$FG$
+Favorite band?			$FG,4$"Beatles"$FG$
+Good bands			$FG,4$Rush, Triumph$FG$
+				$FG,4$Likes harmonies$FG$
+$TX+HTML,"Little Drummer Boy?","http://www.youtube.com/watch?v=S50cf3xIb50"$		$FG,4$Doesn't like my drumming.$FG$
+Should I listen to classical?	$FG,4$"Poison"$FG$
+You like chess people?		$FG,4$"Do not admire the proud."$FG$
+Favorite video game?		$FG,4$Donkey Kong$FG$
+Favorite National Park?		$FG,4$$TX+HTML,"Whitman Mission","http://www.nps.gov/whmi/index.htm"$$FG$
+Favorite National Anthem?	$FG,4$$TX+HTML,"Latvia's National Anthem","http://www.youtube.com/watch?v=qKITbBjO4nE"$$FG$
+Favorite actor?			$FG,4$Hugh Grant$FG$
+Favorite vocalist?		$FG,4$Mick Jagger$FG$
+Favorite guitarist?		$FG,4$"$TX+HTML,"Simmons Destroyer","http://www.youtube.com/watch?v=nNADrrjTysk&t=3m55s"$"$FG$
+Model for new $TX+HTML,"Sistine Chapel","http://en.wikipedia.org/wiki/Sistine_chapel"$?	$FG,4$Ben Franklin$FG$
+Stonehenge?			$FG,4$Landmark$FG$
+Easter Island?			$FG,4$Ice, telephone pole holes.$FG$
+Dinosaurs?			$FG,4$Brontosaurs' feet hurt when stepped$FG$
+Hardest part in evolution?	$FG,4$Getting monkey mothers to hold babies nursing.$FG$
+				$FG,4$(Smothering a problem).$FG$
+Happiest day in evolution?		$FG,4$"Fruit"$FG$
+Significant thing in evolution?		$FG,4$"Fish shoulders"$FG$
+Biggest thing to fly (pterodactyl)?	$FG,4$"Couch"$FG$
+What made pterodactyls happy?		$FG,4$"Members against organs"$FG$
+What did Neanderthals think about?	$FG,4$"Warmth"$FG$
+What was Lucy's husband's name?		$FG,4$"Golem"$FG$
+Was stegosuarus lame like turtles?	$FG,4$"Not pet rocks"$FG$
+How does He feel about the Avatar movie?$FG,4$"Sick skin"$FG$
+What do You like at zoos with kids?	$FG,4$"Dignity" Animals worried about dignity.$FG$
+Who's better alien or preditor?		$FG,4$"Lions"$FG$
+What from You is like a Rubik's cube?	$FG,4$Training a horse.$FG$
+Does He like mirrored glass megachurch?	$FG,4$"Secular glass"$FG$
+Pipe Organs				$FG,4$Are sacred.$FG$
+You like to hangout in courts?Hospitals?$FG,4$"Prisons"$FG$
+Best way for Bill Gates to save lives?	$FG,4$Earthquake prediction$FG$
+Stem cells?			$FG,4$Lower hanging fruit exists (2007)$FG$
+Eleventh commandment?		$FG,4$Thou shall not litter.(Maybe, glory of Creation)$FG$
+Before Katrina			$FG,4$Floods do justice. Black bead elder (tree book)$FG$
+After Katrina			$FG,4$Suffering Simplifies Life$FG$
+What field are You most better?	$FG,4$Economics$FG$
+Favorite toy for kids?		$FG,4$Magnifying glass$FG$
+Asked Jesus if He liked mustard?$FG,4$"Bad meat happeneth"$FG$
+(Reluctantly) Faith healing?	$FG,4$"It's complicated"$FG$
+Mars?				$FG,4$Start planting!$FG$
+Mars rover?			$FG,4$Should have had a microphone$FG$
+$TX+HTML,"Storm on Saturn","http://www.space.com/22646-monster-saturn-storm-water-ice.html"$			$FG,4$Pollen$FG$
+Space war game?			$FG,4$Should have space weather.$FG$
+$TX+HTML,"Saturn's hexagon pole cloud?","http://en.wikipedia.org/wiki/Saturn's_hexagon"$	$FG,4$"Compass" (Magnetism)$FG$
+Liquid moon's odd atmosphere?	$FG,4$"Surf"$FG$
+How many E.T. civs in Universe?	$FG,4$20 or 80 (I forgot.  I died laughing.)$FG$
+Are they peaceful?		$FG,4$Fight them! (Also, funny.)$FG$
+How can Judge Judy improve?	$FG,4$No hard feelings$FG$
+How can Chef Ramsay improve?	$FG,4$Make so it doesn't seem like toil for cooks.$FG$
+How can Hawking communicate?	$FG,4$Blow from a nostril on a candle.$FG$
+Wormholes?			$FG,4$Bent wormholes have echoes.$FG$
+
+Operating system?		$FG,4$Was about to make line number column in editor.
+God nixed it.  I was about to do different graphic modes when I found 800x600 missing. God said just one mode 640x480.  I was about to add child windows.  God said, "God is not the author of such confusion." I asked for verification of 640x480 16 color. God said it was because of the children and their offerings.  I asked about sound. God said "single voice". I asked for verification of not having different drivers.  God confirmed this.$FG$
+640x480 16 color?		$FG,4$$TX+HTML,"Modern graphics hard for kids/amateurs","http://www.youtube.com/watch?v=VUxcVzpeFqc"$$FG$
+On Unix?			$FG,4$God said it was rich with the patina of age.$FG$
+On Alcohol?			$FG,4$Hate inebriation$FG$
+On rare steak?			$FG,4$Too rare is very bad.  Don't eat blood!$FG$
+Just before Katrina?		$FG,4$Floods do my justice.Black bead elder(tree book)$FG$
+After Katrina?			$FG,4$Suffering simplifies life$FG$
+Why the Sandy Hook shooting?	$FG,4$The pot legalization law. (Sarcastic answer?)$FG$
+Deep Water Horizon		$FG,4$(Claimed credit.)$FG$
+Cost of God's time to me?	$FG,4$"The complete works of Shakespeare"$FG$
+On death?			$FG,4$"awful"$FG$
diff --git a/TempleOS/Apps/HolySpirit/HolySpirit.CPP b/TempleOS/Apps/HolySpirit/HolySpirit.CPP
index 6d0adb3..146fe04 100644
--- a/TempleOS/Apps/HolySpirit/HolySpirit.CPP
+++ b/TempleOS/Apps/HolySpirit/HolySpirit.CPP
@@ -1,16 +1,19 @@
-#define CLK_DIVISOR	16
+#help_index "Holy Spirit"
+
+#define HS_BAD_BITS	4
+#define HS_GOOD_BITS	24
 
 U8 *TimeStampCB(CDoc *,CDocEntry *,CTask *mem_task)
 {
   U8 *st=MAlloc(64,mem_task);
-  SPrintF(st,"%X",GetTimeStamp/CLK_DIVISOR);
+  SPrint(st,"%X",GetTSC>>HS_BAD_BITS);
   return st;
 }
 
 U8 *KbdMouseTimeCB(CDoc *,CDocEntry *,CTask *mem_task)
 {
   U8 *st=MAlloc(64,mem_task);
-  SPrintF(st,"%X",KbdMouseEvtTime/CLK_DIVISOR);
+  SPrint(st,"%X",KbdMouseEvtTime>>HS_BAD_BITS);
   return st;
 }
 
@@ -19,20 +22,20 @@ I64 PopUpTimerOk(U8 *header=NULL,U8 *footer=NULL)
   I64 i;
   CDocEntry *doc_e;
   CDoc *doc=DocNew;
-  if (header) DocPutS(doc,header);
-  doc_e=DocPutS(doc,"\nTimer:$$TX+TC,\" \"$$");
+  if (header) DocPrint(doc,"%s",header);
+  doc_e=DocPrint(doc,"\nTimer:$$TX+TC,\" \"$$");
   doc_e->tag_cb=&TimeStampCB;
-  doc_e=DocPutS(doc,"\nLatch:$$TX+TC,\" \"$$");
+  doc_e=DocPrint(doc,"\nLatch:$$TX+TC,\" \"$$");
   doc_e->tag_cb=&KbdMouseTimeCB;
-  DocPutS(doc,"\n$$CM+CX,0,4$$$$BT,\"OKAY\",0$$\n");
-  if (footer) DocPutS(doc,footer);
+  DocPrint(doc,"\n$$CM+CX,0,4$$$$BT,\"OKAY\",0$$\n");
+  if (footer) DocPrint(doc,"%s",footer);
   i=PopUpMenu(doc);
   DocDel(doc);
   return i;
 }
 
-I64 TimerPickedU16(U8 *msg=NULL)
-{
+public I64 TimerPick(U8 *msg=NULL)
+{ //HS_GOOD_BITS
   U8 *st;
   if (msg) {
     st=MAlloc(StrLen(msg)+256);
@@ -41,34 +44,33 @@ I64 TimerPickedU16(U8 *msg=NULL)
     st=CAlloc(256);
   StrCat(st,"\n\nPress $$FG,GREEN$$OKAY$$FG$$ to generate \n"
 	"a random num from a timer.\n");
-  PopUpTimerOk(st,"\n\nThe $WW,1$$LK+PU,"Holy Spirit","FI:::/TempleOS/Apps/HolySpirit/HSNotes.TXT"$ can puppet you.\n\n");
+  PopUpTimerOk(st,"\n\n$$WW,1$$The $LK+PU,"Holy Spirit","FI:::/TempleOS/Apps/HolySpirit/HSNotes.TXT"$ can puppet you.\n\n");
   Free(st);
-  return KbdMouseEvtTime/CLK_DIVISOR;
+  return KbdMouseEvtTime>>HS_BAD_BITS;
 }
 
-I64 TimerPickedU32(U8 *msg=NULL)
+CFifoU8 *timer_pick_fifo=FifoU8New(32);
+
+public I64 TimerPickedBits(I64 num_bits,U8 *msg=NULL)
 {
-  I64 result=0;
-  result.u16[0]=TimerPickedU16(msg);
-  result.u16[1]=TimerPickedU16(msg);
+  U8 b;
+  I64 i,k,result=0;
+  while (num_bits) {
+    if (FifoU8Rem(timer_pick_fifo,&b)) {
+      result=result<<1+b;
+      num_bits--;
+    } else {
+      k=TimerPick(msg);
+      for (i=0;i>=1;
+      }
+    }
+  }
   return result;
 }
 
-
-CFifoU8 *rnd_nibble_fifo=FifoU8New(16);
-
-I64 TimerPickedNibble(U8 *msg=NULL)
+public U0 TimerPickFlush()
 {
-  I64 result=0;
-  if (FifoU8Rem(rnd_nibble_fifo,&result))
-    return result;
-  else {
-    result=TimerPickedU16(msg);
-    FifoU8Ins(rnd_nibble_fifo,result.u8[0]>>4);
-    FifoU8Ins(rnd_nibble_fifo,result.u8[1]&15);
-    FifoU8Ins(rnd_nibble_fifo,result.u8[1]>>4);
-    FifoU8Ins(rnd_nibble_fifo,result.u8[2]&15);
-    FifoU8Ins(rnd_nibble_fifo,result.u8[2]>>4);
-    return result&15;
-  }
+  FifoU8Flush(timer_pick_fifo);
 }
diff --git a/TempleOS/Apps/HolySpirit/Vocab.TXT b/TempleOS/Apps/HolySpirit/Vocab.TXT
index 26a73a2..73d4d94 100644
--- a/TempleOS/Apps/HolySpirit/Vocab.TXT
+++ b/TempleOS/Apps/HolySpirit/Vocab.TXT
@@ -1872,7 +1872,7 @@ leaving
 likely
 likewise
 lips
-lst
+list
 lovest
 loveth
 lowly
@@ -2838,7 +2838,7 @@ licence
 lieth
 lightsome
 limits
-lstened
+listened
 loose
 loses
 lot
@@ -3941,8 +3941,8 @@ lineaments
 lines
 links
 lion
-lstening
-lsting
+listening
+listing
 literature
 load
 loathed
@@ -5968,7 +5968,7 @@ enigma
 enlarge
 enlargedst
 enlarging
-enlsted
+enlisted
 enmities
 enounce
 enquiries
@@ -6720,7 +6720,7 @@ linger
 lingered
 lingering
 lip
-lsts
+lists
 literally
 literary
 litigation
diff --git a/TempleOS/Apps/KeepAway/KeepAway.CPP b/TempleOS/Apps/KeepAway/KeepAway.CPP
index bdfcb54..7ea3083 100644
--- a/TempleOS/Apps/KeepAway/KeepAway.CPP
+++ b/TempleOS/Apps/KeepAway/KeepAway.CPP
@@ -311,7 +311,7 @@ just to be different.
 
 U0 DrawObj(CDC *dc,Obj *o,F64 tt)
 {
-  U8 *inter;
+  U8 *temps;
   F64 r1=Max(9-0.1*o->z,1),r2=Max(r1/4,1);
 
   if (o==human)
@@ -324,11 +324,11 @@ U0 DrawObj(CDC *dc,Obj *o,F64 tt)
   if (o==ball)
     SpritePlot3(dc,o->x,(o->y-o->z)/2,GR_Z_ALL-o->y,$IB,"<1>",1$);
   else {
-    inter=SpriteInterpolate(man_imgs[o->last_img].img[o->team],
+    temps=SpriteInterpolate(man_imgs[o->last_img].img[o->team],
 	man_imgs[o->next_img].img[o->team],
 	(tt-o->last_t0)/(o->next_t0-o->last_t0));
-    SpritePlotRotY3b(dc,o->x,(o->y-o->z)/2,GR_Z_ALL-o->y,inter,o->ay);
-    Free(inter);
+    SpritePlotRotY3B(dc,o->x,(o->y-o->z)/2,GR_Z_ALL-o->y,temps,o->ay);
+    Free(temps);
   }
 }
 
@@ -348,7 +348,7 @@ U0 DrawIt(CTask *task,CDC *dc)
   dc->ls.x=10000;
   dc->ls.y=60000;
   dc->ls.z=10000;
-  d=65535/P3I32Norm(&dc->ls);
+  d=65535/D3I32Norm(&dc->ls);
   dc->ls.x*=d;
   dc->ls.y*=d;
   dc->ls.z*=d;
@@ -432,29 +432,29 @@ U0 DrawIt(CTask *task,CDC *dc)
     dc->color=RED;
     tt=0;
     if (Blink)
-      GrPrintF(dc,(task->win_pixel_width-FONT_WIDTH*9)>>1,
+      GrPrint(dc,(task->win_pixel_width-FONT_WIDTH*9)>>1,
 		    (task->win_pixel_height-FONT_HEIGHT)>>1,"Game Over");
   } else {
     if (tTcolor=LTRED;
       if (Blink)
-	GrPrintF(dc,(task->win_pixel_width-FONT_WIDTH*4)>>1,
+	GrPrint(dc,(task->win_pixel_width-FONT_WIDTH*4)>>1,
 		     (task->win_pixel_height-FONT_HEIGHT)>>1,"Foul");
     }
     dc->color=BLACK;
   }
-  GrPrintF(dc,0,0,"Time:%d:%04.1f  Score:",ToI64(tt),(tt-ToI64(tt))*60);
-  GrPutS  (dc,FONT_WIDTH*27,0,"Best Score:");
+  GrPrint(dc,0,0,"Time:%d:%04.1f  Score:",ToI64(tt),(tt-ToI64(tt))*60);
+  GrPrint  (dc,FONT_WIDTH*27,0,"Best Score:");
 
   dc->color=LTCYAN;
-  GrPrintF(dc,FONT_WIDTH*20,0,"%02d",score0);
+  GrPrint(dc,FONT_WIDTH*20,0,"%02d",score0);
   dc->color=LTPURPLE;
-  GrPrintF(dc,FONT_WIDTH*23,0,"%02d",score1);
+  GrPrint(dc,FONT_WIDTH*23,0,"%02d",score1);
 
   dc->color=LTCYAN;
-  GrPrintF(dc,FONT_WIDTH*39,0,"%02d",best_score0);
+  GrPrint(dc,FONT_WIDTH*39,0,"%02d",best_score0);
   dc->color=LTPURPLE;
-  GrPrintF(dc,FONT_WIDTH*42,0,"%02d",best_score1);
+  GrPrint(dc,FONT_WIDTH*42,0,"%02d",best_score1);
 }
 
 
@@ -733,7 +733,7 @@ ka_done: //Don't goto out of try
   CleanUp;
   MenuPop;
 }
-Êp¨­ÿÿÿûÿÿÿûÿÿÿ­ÿÿÿûÿÿÿ·ÿÿÿûÿÿÿûÿÿÿ·ÿÿÿûÿÿÿ­ÿÿÿûÿÿÿ­ÿÿÿ·ÿÿÿûÿÿÿ·ÿÿÿ
+Êp¨­ÿÿÿûÿÿÿûÿÿÿ­ÿÿÿûÿÿÿ·ÿÿÿûÿÿÿûÿÿÿ·ÿÿÿûÿÿÿ­ÿÿÿûÿÿÿ­ÿÿÿ·ÿÿÿûÿÿÿ·ÿÿÿ
 ·ÿÿÿûÿÿÿöÿÿÿ·ÿÿÿûÿÿÿ
 ÚÿÿÿûÿÿÿöÿÿÿÚÿÿÿûÿÿÿ
 ·ÿÿÿöÿÿÿ·ÿÿÿ
@@ -744,7 +744,7 @@ ka_done: //Don't goto out of try
 	

	
	
 
 
-	

   ! ""#!%$&&'%! $$%!#"&&'#" $$&"#!%%'#)(**+)-,../-)(,,-)+*../+*(,,.*+)--/+10223154667510445132667320446231557398::;9=<>>?=98<<=9;:>>?;:8<<>:;9==?;A@BBCAEDFFGEA@DDEACBFFGCB@DDFBCAEEGCIHJJKIMLNNOMIHLLMIKJNNOKJHLLNJKIMMOKQPRRSQUTVVWUQPTTUQSRVVWSRPTTVRSQUUWSYXZZ[Y]\^^_]YX\\]Y[Z^^_[ZX\\^Z[Y]]_[a`bbcaedffgea`ddeacbffgcb`ddfbcaeegcihjjkimlnnomihllmikjnnokjhllnjkimmokÊp¨­ÿÿÿûÿÿÿûÿÿÿ­ÿÿÿûÿÿÿ·ÿÿÿûÿÿÿûÿÿÿ·ÿÿÿûÿÿÿ­ÿÿÿûÿÿÿ­ÿÿÿ·ÿÿÿûÿÿÿ·ÿÿÿ
+	

   ! ""#!%$&&'%! $$%!#"&&'#" $$&"#!%%'#)(**+)-,../-)(,,-)+*../+*(,,.*+)--/+10223154667510445132667320446231557398::;9=<>>?=98<<=9;:>>?;:8<<>:;9==?;A@BBCAEDFFGEA@DDEACBFFGCB@DDFBCAEEGCIHJJKIMLNNOMIHLLMIKJNNOKJHLLNJKIMMOKQPRRSQUTVVWUQPTTUQSRVVWSRPTTVRSQUUWSYXZZ[Y]\^^_]YX\\]Y[Z^^_[ZX\\^Z[Y]]_[a`bbcaedffgea`ddeacbffgcb`ddfbcaeegcihjjkimlnnomihllmikjnnokjhllnjkimmokÊp¨­ÿÿÿûÿÿÿûÿÿÿ­ÿÿÿûÿÿÿ·ÿÿÿûÿÿÿûÿÿÿ·ÿÿÿûÿÿÿ­ÿÿÿûÿÿÿ­ÿÿÿ·ÿÿÿûÿÿÿ·ÿÿÿ
 ·ÿÿÿûÿÿÿöÿÿÿ·ÿÿÿûÿÿÿ
 ÚÿÿÿûÿÿÿöÿÿÿÚÿÿÿûÿÿÿ
 ·ÿÿÿöÿÿÿ·ÿÿÿ
@@ -755,7 +755,7 @@ ka_done: //Don't goto out of try
 	

	
	
 
 
-	

   ! ""#!%$&&'%! $$%!#"&&'#" $$&"#!%%'#)(**+)-,../-)(,,-)+*../+*(,,.*+)--/+10223154667510445132667320446231557398::;9=<>>?=98<<=9;:>>?;:8<<>:;9==?;A@BBCAEDFFGEA@DDEACBFFGCB@DDFBCAEEGCIHJJKIMLNNOMIHLLMIKJNNOKJHLLNJKIMMOKQPRRSQUTVVWUQPTTUQSRVVWSRPTTVRSQUUWSYXZZ[Y]\^^_]YX\\]Y[Z^^_[ZX\\^Z[Y]]_[a`bbcaedffgea`ddeacbffgcb`ddfbcaeegcihjjkimlnnomihllmikjnnokjhllnjkimmokÊp¨­ÿÿÿûÿÿÿûÿÿÿ­ÿÿÿûÿÿÿ·ÿÿÿûÿÿÿûÿÿÿ·ÿÿÿûÿÿÿ­ÿÿÿûÿÿÿ­ÿÿÿ·ÿÿÿûÿÿÿ·ÿÿÿ
+	

   ! ""#!%$&&'%! $$%!#"&&'#" $$&"#!%%'#)(**+)-,../-)(,,-)+*../+*(,,.*+)--/+10223154667510445132667320446231557398::;9=<>>?=98<<=9;:>>?;:8<<>:;9==?;A@BBCAEDFFGEA@DDEACBFFGCB@DDFBCAEEGCIHJJKIMLNNOMIHLLMIKJNNOKJHLLNJKIMMOKQPRRSQUTVVWUQPTTUQSRVVWSRPTTVRSQUUWSYXZZ[Y]\^^_]YX\\]Y[Z^^_[ZX\\^Z[Y]]_[a`bbcaedffgea`ddeacbffgcb`ddfbcaeegcihjjkimlnnomihllmikjnnokjhllnjkimmokÊp¨­ÿÿÿûÿÿÿûÿÿÿ­ÿÿÿûÿÿÿ·ÿÿÿûÿÿÿûÿÿÿ·ÿÿÿûÿÿÿ­ÿÿÿûÿÿÿ­ÿÿÿ·ÿÿÿûÿÿÿ·ÿÿÿ
 ·ÿÿÿûÿÿÿöÿÿÿ·ÿÿÿûÿÿÿ
 ÚÿÿÿûÿÿÿöÿÿÿÚÿÿÿûÿÿÿ
 ·ÿÿÿöÿÿÿ·ÿÿÿ
@@ -768,7 +768,7 @@ ka_done: //Don't goto out of try
 	

	
	
 
 
-	

   ! ""#!%$&&'%! $$%!#"&&'#" $$&"#!%%'#)(**+)-,../-)(,,-)+*../+*(,,.*+)--/+10223154667510445132667320446231557398::;9=<>>?=98<<=9;:>>?;:8<<>:;9==?;A@BBCAEDFFGEA@DDEACBFFGCB@DDFBCAEEGCIHJJKIMLNNOMIHLLMIKJNNOKJHLLNJKIMMOKQPRRSQUTVVWUQPTTUQSRVVWSRPTTVRSQUUWSYXZZ[Y]\^^_]YX\\]Y[Z^^_[ZX\\^Z[Y]]_[a`bbcaedffgea`ddeacbffgcb`ddfbcaeegcihjjkimlnnomihllmikjnnokjhllnjkimmokÊp¨­ÿÿÿûÿÿÿûÿÿÿ­ÿÿÿûÿÿÿ·ÿÿÿûÿÿÿûÿÿÿ·ÿÿÿûÿÿÿ­ÿÿÿûÿÿÿ­ÿÿÿ·ÿÿÿûÿÿÿ·ÿÿÿ
+	

   ! ""#!%$&&'%! $$%!#"&&'#" $$&"#!%%'#)(**+)-,../-)(,,-)+*../+*(,,.*+)--/+10223154667510445132667320446231557398::;9=<>>?=98<<=9;:>>?;:8<<>:;9==?;A@BBCAEDFFGEA@DDEACBFFGCB@DDFBCAEEGCIHJJKIMLNNOMIHLLMIKJNNOKJHLLNJKIMMOKQPRRSQUTVVWUQPTTUQSRVVWSRPTTVRSQUUWSYXZZ[Y]\^^_]YX\\]Y[Z^^_[ZX\\^Z[Y]]_[a`bbcaedffgea`ddeacbffgcb`ddfbcaeegcihjjkimlnnomihllmikjnnokjhllnjkimmokÊp¨­ÿÿÿûÿÿÿûÿÿÿ­ÿÿÿûÿÿÿ·ÿÿÿûÿÿÿûÿÿÿ·ÿÿÿûÿÿÿ­ÿÿÿûÿÿÿ­ÿÿÿ·ÿÿÿûÿÿÿ·ÿÿÿ
 ·ÿÿÿûÿÿÿöÿÿÿ·ÿÿÿûÿÿÿ
 ÚÿÿÿûÿÿÿöÿÿÿÚÿÿÿûÿÿÿ
 ·ÿÿÿöÿÿÿ·ÿÿÿ
@@ -781,7 +781,7 @@ ka_done: //Don't goto out of try
 	

	
	
 
 
-	

   ! ""#!%$&&'%! $$%!#"&&'#" $$&"#!%%'#)(**+)-,../-)(,,-)+*../+*(,,.*+)--/+10223154667510445132667320446231557398::;9=<>>?=98<<=9;:>>?;:8<<>:;9==?;A@BBCAEDFFGEA@DDEACBFFGCB@DDFBCAEEGCIHJJKIMLNNOMIHLLMIKJNNOKJHLLNJKIMMOKQPRRSQUTVVWUQPTTUQSRVVWSRPTTVRSQUUWSYXZZ[Y]\^^_]YX\\]Y[Z^^_[ZX\\^Z[Y]]_[a`bbcaedffgea`ddeacbffgcb`ddfbcaeegcihjjkimlnnomihllmikjnnokjhllnjkimmokÊp¨­ÿÿÿûÿÿÿûÿÿÿ­ÿÿÿûÿÿÿ·ÿÿÿûÿÿÿûÿÿÿ·ÿÿÿûÿÿÿ­ÿÿÿûÿÿÿ­ÿÿÿ·ÿÿÿûÿÿÿ·ÿÿÿ
+	

   ! ""#!%$&&'%! $$%!#"&&'#" $$&"#!%%'#)(**+)-,../-)(,,-)+*../+*(,,.*+)--/+10223154667510445132667320446231557398::;9=<>>?=98<<=9;:>>?;:8<<>:;9==?;A@BBCAEDFFGEA@DDEACBFFGCB@DDFBCAEEGCIHJJKIMLNNOMIHLLMIKJNNOKJHLLNJKIMMOKQPRRSQUTVVWUQPTTUQSRVVWSRPTTVRSQUUWSYXZZ[Y]\^^_]YX\\]Y[Z^^_[ZX\\^Z[Y]]_[a`bbcaedffgea`ddeacbffgcb`ddfbcaeegcihjjkimlnnomihllmikjnnokjhllnjkimmokÊp¨­ÿÿÿûÿÿÿûÿÿÿ­ÿÿÿûÿÿÿ·ÿÿÿûÿÿÿûÿÿÿ·ÿÿÿûÿÿÿ­ÿÿÿûÿÿÿ­ÿÿÿ·ÿÿÿûÿÿÿ·ÿÿÿ
 ·ÿÿÿûÿÿÿöÿÿÿ·ÿÿÿûÿÿÿ
 ÚÿÿÿûÿÿÿöÿÿÿÚÿÿÿûÿÿÿ
 ·ÿÿÿöÿÿÿ·ÿÿÿ
@@ -802,7 +802,7 @@ ka_done: //Don't goto out of try
 	

	
	
 
 
-	

   ! ""#!%$&&'%! $$%!#"&&'#" $$&"#!%%'#)(**+)-,../-)(,,-)+*../+*(,,.*+)--/+10223154667510445132667320446231557398::;9=<>>?=98<<=9;:>>?;:8<<>:;9==?;A@BBCAEDFFGEA@DDEACBFFGCB@DDFBCAEEGCIHJJKIMLNNOMIHLLMIKJNNOKJHLLNJKIMMOKQPRRSQUTVVWUQPTTUQSRVVWSRPTTVRSQUUWSYXZZ[Y]\^^_]YX\\]Y[Z^^_[ZX\\^Z[Y]]_[a`bbcaedffgea`ddeacbffgcb`ddfbcaeegcihjjkimlnnomihllmikjnnokjhllnjkimmokÊp¨­ÿÿÿûÿÿÿûÿÿÿ­ÿÿÿûÿÿÿ·ÿÿÿûÿÿÿûÿÿÿ·ÿÿÿûÿÿÿ­ÿÿÿûÿÿÿ­ÿÿÿ·ÿÿÿûÿÿÿ·ÿÿÿ
+	

   ! ""#!%$&&'%! $$%!#"&&'#" $$&"#!%%'#)(**+)-,../-)(,,-)+*../+*(,,.*+)--/+10223154667510445132667320446231557398::;9=<>>?=98<<=9;:>>?;:8<<>:;9==?;A@BBCAEDFFGEA@DDEACBFFGCB@DDFBCAEEGCIHJJKIMLNNOMIHLLMIKJNNOKJHLLNJKIMMOKQPRRSQUTVVWUQPTTUQSRVVWSRPTTVRSQUUWSYXZZ[Y]\^^_]YX\\]Y[Z^^_[ZX\\^Z[Y]]_[a`bbcaedffgea`ddeacbffgcb`ddfbcaeegcihjjkimlnnomihllmikjnnokjhllnjkimmokÊp¨­ÿÿÿûÿÿÿûÿÿÿ­ÿÿÿûÿÿÿ·ÿÿÿûÿÿÿûÿÿÿ·ÿÿÿûÿÿÿ­ÿÿÿûÿÿÿ­ÿÿÿ·ÿÿÿûÿÿÿ·ÿÿÿ
 ·ÿÿÿûÿÿÿöÿÿÿ·ÿÿÿûÿÿÿ
 ÚÿÿÿûÿÿÿöÿÿÿÚÿÿÿûÿÿÿ
 ·ÿÿÿöÿÿÿ·ÿÿÿ
@@ -823,7 +823,7 @@ ka_done: //Don't goto out of try
 	

	
	
 
 
-	

   ! ""#!%$&&'%! $$%!#"&&'#" $$&"#!%%'#)(**+)-,../-)(,,-)+*../+*(,,.*+)--/+10223154667510445132667320446231557398::;9=<>>?=98<<=9;:>>?;:8<<>:;9==?;A@BBCAEDFFGEA@DDEACBFFGCB@DDFBCAEEGCIHJJKIMLNNOMIHLLMIKJNNOKJHLLNJKIMMOKQPRRSQUTVVWUQPTTUQSRVVWSRPTTVRSQUUWSYXZZ[Y]\^^_]YX\\]Y[Z^^_[ZX\\^Z[Y]]_[a`bbcaedffgea`ddeacbffgcb`ddfbcaeegcihjjkimlnnomihllmikjnnokjhllnjkimmokÊp¨­ÿÿÿûÿÿÿûÿÿÿ­ÿÿÿûÿÿÿ·ÿÿÿûÿÿÿûÿÿÿ·ÿÿÿûÿÿÿ­ÿÿÿûÿÿÿ­ÿÿÿ·ÿÿÿûÿÿÿ·ÿÿÿ
+	

   ! ""#!%$&&'%! $$%!#"&&'#" $$&"#!%%'#)(**+)-,../-)(,,-)+*../+*(,,.*+)--/+10223154667510445132667320446231557398::;9=<>>?=98<<=9;:>>?;:8<<>:;9==?;A@BBCAEDFFGEA@DDEACBFFGCB@DDFBCAEEGCIHJJKIMLNNOMIHLLMIKJNNOKJHLLNJKIMMOKQPRRSQUTVVWUQPTTUQSRVVWSRPTTVRSQUUWSYXZZ[Y]\^^_]YX\\]Y[Z^^_[ZX\\^Z[Y]]_[a`bbcaedffgea`ddeacbffgcb`ddfbcaeegcihjjkimlnnomihllmikjnnokjhllnjkimmokÊp¨­ÿÿÿûÿÿÿûÿÿÿ­ÿÿÿûÿÿÿ·ÿÿÿûÿÿÿûÿÿÿ·ÿÿÿûÿÿÿ­ÿÿÿûÿÿÿ­ÿÿÿ·ÿÿÿûÿÿÿ·ÿÿÿ
 ·ÿÿÿûÿÿÿöÿÿÿ·ÿÿÿûÿÿÿ
 ÚÿÿÿûÿÿÿöÿÿÿÚÿÿÿûÿÿÿ
 ·ÿÿÿöÿÿÿ·ÿÿÿ
@@ -856,7 +856,7 @@ ka_done: //Don't goto out of try
 	

	
	
 
 
-	

   ! ""#!%$&&'%! $$%!#"&&'#" $$&"#!%%'#)(**+)-,../-)(,,-)+*../+*(,,.*+)--/+10223154667510445132667320446231557398::;9=<>>?=98<<=9;:>>?;:8<<>:;9==?;A@BBCAEDFFGEA@DDEACBFFGCB@DDFBCAEEGCIHJJKIMLNNOMIHLLMIKJNNOKJHLLNJKIMMOKQPRRSQUTVVWUQPTTUQSRVVWSRPTTVRSQUUWSYXZZ[Y]\^^_]YX\\]Y[Z^^_[ZX\\^Z[Y]]_[a`bbcaedffgea`ddeacbffgcb`ddfbcaeegcihjjkimlnnomihllmikjnnokjhllnjkimmok	Êp¨­ÿÿÿûÿÿÿûÿÿÿ­ÿÿÿûÿÿÿ·ÿÿÿûÿÿÿûÿÿÿ·ÿÿÿûÿÿÿ­ÿÿÿûÿÿÿ­ÿÿÿ·ÿÿÿûÿÿÿ·ÿÿÿ
+	

   ! ""#!%$&&'%! $$%!#"&&'#" $$&"#!%%'#)(**+)-,../-)(,,-)+*../+*(,,.*+)--/+10223154667510445132667320446231557398::;9=<>>?=98<<=9;:>>?;:8<<>:;9==?;A@BBCAEDFFGEA@DDEACBFFGCB@DDFBCAEEGCIHJJKIMLNNOMIHLLMIKJNNOKJHLLNJKIMMOKQPRRSQUTVVWUQPTTUQSRVVWSRPTTVRSQUUWSYXZZ[Y]\^^_]YX\\]Y[Z^^_[ZX\\^Z[Y]]_[a`bbcaedffgea`ddeacbffgcb`ddfbcaeegcihjjkimlnnomihllmikjnnokjhllnjkimmok	Êp¨­ÿÿÿûÿÿÿûÿÿÿ­ÿÿÿûÿÿÿ·ÿÿÿûÿÿÿûÿÿÿ·ÿÿÿûÿÿÿ­ÿÿÿûÿÿÿ­ÿÿÿ·ÿÿÿûÿÿÿ·ÿÿÿ
 ·ÿÿÿûÿÿÿöÿÿÿ·ÿÿÿûÿÿÿ
 ÚÿÿÿûÿÿÿöÿÿÿÚÿÿÿûÿÿÿ
 ·ÿÿÿöÿÿÿ·ÿÿÿ
@@ -890,7 +890,7 @@ ka_done: //Don't goto out of try
 
 
 	

   ! ""#!%$&&'%! $$%!#"&&'#" $$&"#!%%'#)(**+)-,../-)(,,-)+*../+*(,,.*+)--/+10223154667510445132667320446231557398::;9=<>>?=98<<=9;:>>?;:8<<>:;9==?;A@BBCAEDFFGEA@DDEACBFFGCB@DDFBCAEEGCIHJJKIMLNNOMIHLLMIKJNNOKJHLLNJKIMMOKQPRRSQUTVVWUQPTTUQSRVVWSRPTTVRSQUUWSYXZZ[Y]\^^_]YX\\]Y[Z^^_[ZX\\^Z[Y]]_[a`bbcaedffgea`ddeacbffgcb`ddfbcaeegcihjjkimlnnomihllmikjnnokjhllnjkimmok
-Êp¨­ÿÿÿûÿÿÿûÿÿÿ­ÿÿÿûÿÿÿ·ÿÿÿûÿÿÿûÿÿÿ·ÿÿÿûÿÿÿ­ÿÿÿûÿÿÿ­ÿÿÿ·ÿÿÿûÿÿÿ·ÿÿÿ
+Êp¨­ÿÿÿûÿÿÿûÿÿÿ­ÿÿÿûÿÿÿ·ÿÿÿûÿÿÿûÿÿÿ·ÿÿÿûÿÿÿ­ÿÿÿûÿÿÿ­ÿÿÿ·ÿÿÿûÿÿÿ·ÿÿÿ
 ·ÿÿÿûÿÿÿöÿÿÿ·ÿÿÿûÿÿÿ
 ÚÿÿÿûÿÿÿöÿÿÿÚÿÿÿûÿÿÿ
 ·ÿÿÿöÿÿÿ·ÿÿÿ
@@ -917,7 +917,7 @@ ka_done: //Don't goto out of try
 	

	
	
 
 
-	

   ! ""#!%$&&'%! $$%!#"&&'#" $$&"#!%%'#)(**+)-,../-)(,,-)+*../+*(,,.*+)--/+10223154667510445132667320446231557398::;9=<>>?=98<<=9;:>>?;:8<<>:;9==?;A@BBCAEDFFGEA@DDEACBFFGCB@DDFBCAEEGCIHJJKIMLNNOMIHLLMIKJNNOKJHLLNJKIMMOKQPRRSQUTVVWUQPTTUQSRVVWSRPTTVRSQUUWSYXZZ[Y]\^^_]YX\\]Y[Z^^_[ZX\\^Z[Y]]_[a`bbcaedffgea`ddeacbffgcb`ddfbcaeegcihjjkimlnnomihllmikjnnokjhllnjkimmokÊp¨­ÿÿÿûÿÿÿûÿÿÿ­ÿÿÿûÿÿÿ·ÿÿÿûÿÿÿûÿÿÿ·ÿÿÿûÿÿÿ­ÿÿÿûÿÿÿ­ÿÿÿ·ÿÿÿûÿÿÿ·ÿÿÿ
+	

   ! ""#!%$&&'%! $$%!#"&&'#" $$&"#!%%'#)(**+)-,../-)(,,-)+*../+*(,,.*+)--/+10223154667510445132667320446231557398::;9=<>>?=98<<=9;:>>?;:8<<>:;9==?;A@BBCAEDFFGEA@DDEACBFFGCB@DDFBCAEEGCIHJJKIMLNNOMIHLLMIKJNNOKJHLLNJKIMMOKQPRRSQUTVVWUQPTTUQSRVVWSRPTTVRSQUUWSYXZZ[Y]\^^_]YX\\]Y[Z^^_[ZX\\^Z[Y]]_[a`bbcaedffgea`ddeacbffgcb`ddfbcaeegcihjjkimlnnomihllmikjnnokjhllnjkimmokÊp¨­ÿÿÿûÿÿÿûÿÿÿ­ÿÿÿûÿÿÿ·ÿÿÿûÿÿÿûÿÿÿ·ÿÿÿûÿÿÿ­ÿÿÿûÿÿÿ­ÿÿÿ·ÿÿÿûÿÿÿ·ÿÿÿ
 ·ÿÿÿûÿÿÿöÿÿÿ·ÿÿÿûÿÿÿ
 ÚÿÿÿûÿÿÿöÿÿÿÚÿÿÿûÿÿÿ
 ·ÿÿÿöÿÿÿ·ÿÿÿ
@@ -944,7 +944,7 @@ ka_done: //Don't goto out of try
 	

	
	
 
 
-	

   ! ""#!%$&&'%! $$%!#"&&'#" $$&"#!%%'#)(**+)-,../-)(,,-)+*../+*(,,.*+)--/+10223154667510445132667320446231557398::;9=<>>?=98<<=9;:>>?;:8<<>:;9==?;A@BBCAEDFFGEA@DDEACBFFGCB@DDFBCAEEGCIHJJKIMLNNOMIHLLMIKJNNOKJHLLNJKIMMOKQPRRSQUTVVWUQPTTUQSRVVWSRPTTVRSQUUWSYXZZ[Y]\^^_]YX\\]Y[Z^^_[ZX\\^Z[Y]]_[a`bbcaedffgea`ddeacbffgcb`ddfbcaeegcihjjkimlnnomihllmikjnnokjhllnjkimmokÊp¨­ÿÿÿûÿÿÿûÿÿÿ­ÿÿÿûÿÿÿ·ÿÿÿûÿÿÿûÿÿÿ·ÿÿÿûÿÿÿ­ÿÿÿûÿÿÿ­ÿÿÿ·ÿÿÿûÿÿÿ·ÿÿÿ
+	

   ! ""#!%$&&'%! $$%!#"&&'#" $$&"#!%%'#)(**+)-,../-)(,,-)+*../+*(,,.*+)--/+10223154667510445132667320446231557398::;9=<>>?=98<<=9;:>>?;:8<<>:;9==?;A@BBCAEDFFGEA@DDEACBFFGCB@DDFBCAEEGCIHJJKIMLNNOMIHLLMIKJNNOKJHLLNJKIMMOKQPRRSQUTVVWUQPTTUQSRVVWSRPTTVRSQUUWSYXZZ[Y]\^^_]YX\\]Y[Z^^_[ZX\\^Z[Y]]_[a`bbcaedffgea`ddeacbffgcb`ddfbcaeegcihjjkimlnnomihllmikjnnokjhllnjkimmokÊp¨­ÿÿÿûÿÿÿûÿÿÿ­ÿÿÿûÿÿÿ·ÿÿÿûÿÿÿûÿÿÿ·ÿÿÿûÿÿÿ­ÿÿÿûÿÿÿ­ÿÿÿ·ÿÿÿûÿÿÿ·ÿÿÿ
 ·ÿÿÿûÿÿÿöÿÿÿ·ÿÿÿûÿÿÿ
 ÚÿÿÿûÿÿÿöÿÿÿÚÿÿÿûÿÿÿ
 ·ÿÿÿöÿÿÿ·ÿÿÿ
@@ -967,7 +967,7 @@ ka_done: //Don't goto out of try
 	

	
	
 
 
-	

   ! ""#!%$&&'%! $$%!#"&&'#" $$&"#!%%'#)(**+)-,../-)(,,-)+*../+*(,,.*+)--/+10223154667510445132667320446231557398::;9=<>>?=98<<=9;:>>?;:8<<>:;9==?;A@BBCAEDFFGEA@DDEACBFFGCB@DDFBCAEEGCIHJJKIMLNNOMIHLLMIKJNNOKJHLLNJKIMMOKQPRRSQUTVVWUQPTTUQSRVVWSRPTTVRSQUUWSYXZZ[Y]\^^_]YX\\]Y[Z^^_[ZX\\^Z[Y]]_[a`bbcaedffgea`ddeacbffgcb`ddfbcaeegcihjjkimlnnomihllmikjnnokjhllnjkimmokÊp¨­ÿÿÿûÿÿÿûÿÿÿ­ÿÿÿûÿÿÿ·ÿÿÿûÿÿÿûÿÿÿ·ÿÿÿûÿÿÿ­ÿÿÿûÿÿÿ­ÿÿÿ·ÿÿÿûÿÿÿ·ÿÿÿ
+	

   ! ""#!%$&&'%! $$%!#"&&'#" $$&"#!%%'#)(**+)-,../-)(,,-)+*../+*(,,.*+)--/+10223154667510445132667320446231557398::;9=<>>?=98<<=9;:>>?;:8<<>:;9==?;A@BBCAEDFFGEA@DDEACBFFGCB@DDFBCAEEGCIHJJKIMLNNOMIHLLMIKJNNOKJHLLNJKIMMOKQPRRSQUTVVWUQPTTUQSRVVWSRPTTVRSQUUWSYXZZ[Y]\^^_]YX\\]Y[Z^^_[ZX\\^Z[Y]]_[a`bbcaedffgea`ddeacbffgcb`ddfbcaeegcihjjkimlnnomihllmikjnnokjhllnjkimmokÊp¨­ÿÿÿûÿÿÿûÿÿÿ­ÿÿÿûÿÿÿ·ÿÿÿûÿÿÿûÿÿÿ·ÿÿÿûÿÿÿ­ÿÿÿûÿÿÿ­ÿÿÿ·ÿÿÿûÿÿÿ·ÿÿÿ
 ·ÿÿÿûÿÿÿöÿÿÿ·ÿÿÿûÿÿÿ
 ÚÿÿÿûÿÿÿöÿÿÿÚÿÿÿûÿÿÿ
 ·ÿÿÿöÿÿÿ·ÿÿÿ
@@ -990,7 +990,7 @@ ka_done: //Don't goto out of try
 	

	
	
 
 
-	

   ! ""#!%$&&'%! $$%!#"&&'#" $$&"#!%%'#)(**+)-,../-)(,,-)+*../+*(,,.*+)--/+10223154667510445132667320446231557398::;9=<>>?=98<<=9;:>>?;:8<<>:;9==?;A@BBCAEDFFGEA@DDEACBFFGCB@DDFBCAEEGCIHJJKIMLNNOMIHLLMIKJNNOKJHLLNJKIMMOKQPRRSQUTVVWUQPTTUQSRVVWSRPTTVRSQUUWSYXZZ[Y]\^^_]YX\\]Y[Z^^_[ZX\\^Z[Y]]_[a`bbcaedffgea`ddeacbffgcb`ddfbcaeegcihjjkimlnnomihllmikjnnokjhllnjkimmokÊp¨­ÿÿÿûÿÿÿûÿÿÿ­ÿÿÿûÿÿÿ·ÿÿÿûÿÿÿûÿÿÿ·ÿÿÿûÿÿÿ­ÿÿÿûÿÿÿ­ÿÿÿ·ÿÿÿûÿÿÿ·ÿÿÿ
+	

   ! ""#!%$&&'%! $$%!#"&&'#" $$&"#!%%'#)(**+)-,../-)(,,-)+*../+*(,,.*+)--/+10223154667510445132667320446231557398::;9=<>>?=98<<=9;:>>?;:8<<>:;9==?;A@BBCAEDFFGEA@DDEACBFFGCB@DDFBCAEEGCIHJJKIMLNNOMIHLLMIKJNNOKJHLLNJKIMMOKQPRRSQUTVVWUQPTTUQSRVVWSRPTTVRSQUUWSYXZZ[Y]\^^_]YX\\]Y[Z^^_[ZX\\^Z[Y]]_[a`bbcaedffgea`ddeacbffgcb`ddfbcaeegcihjjkimlnnomihllmikjnnokjhllnjkimmokÊp¨­ÿÿÿûÿÿÿûÿÿÿ­ÿÿÿûÿÿÿ·ÿÿÿûÿÿÿûÿÿÿ·ÿÿÿûÿÿÿ­ÿÿÿûÿÿÿ­ÿÿÿ·ÿÿÿûÿÿÿ·ÿÿÿ
 ·ÿÿÿûÿÿÿöÿÿÿ·ÿÿÿûÿÿÿ
 ÚÿÿÿûÿÿÿöÿÿÿÚÿÿÿûÿÿÿ
 ·ÿÿÿöÿÿÿ·ÿÿÿ
@@ -1014,7 +1014,7 @@ ka_done: //Don't goto out of try
 	

	
	
 
 
-	

   ! ""#!%$&&'%! $$%!#"&&'#" $$&"#!%%'#)(**+)-,../-)(,,-)+*../+*(,,.*+)--/+10223154667510445132667320446231557398::;9=<>>?=98<<=9;:>>?;:8<<>:;9==?;A@BBCAEDFFGEA@DDEACBFFGCB@DDFBCAEEGCIHJJKIMLNNOMIHLLMIKJNNOKJHLLNJKIMMOKQPRRSQUTVVWUQPTTUQSRVVWSRPTTVRSQUUWSYXZZ[Y]\^^_]YX\\]Y[Z^^_[ZX\\^Z[Y]]_[a`bbcaedffgea`ddeacbffgcb`ddfbcaeegcihjjkimlnnomihllmikjnnokjhllnjkimmok
Êp¨­ÿÿÿûÿÿÿûÿÿÿ­ÿÿÿûÿÿÿ·ÿÿÿûÿÿÿûÿÿÿ·ÿÿÿûÿÿÿ­ÿÿÿûÿÿÿ­ÿÿÿ·ÿÿÿûÿÿÿ·ÿÿÿ
+	

   ! ""#!%$&&'%! $$%!#"&&'#" $$&"#!%%'#)(**+)-,../-)(,,-)+*../+*(,,.*+)--/+10223154667510445132667320446231557398::;9=<>>?=98<<=9;:>>?;:8<<>:;9==?;A@BBCAEDFFGEA@DDEACBFFGCB@DDFBCAEEGCIHJJKIMLNNOMIHLLMIKJNNOKJHLLNJKIMMOKQPRRSQUTVVWUQPTTUQSRVVWSRPTTVRSQUUWSYXZZ[Y]\^^_]YX\\]Y[Z^^_[ZX\\^Z[Y]]_[a`bbcaedffgea`ddeacbffgcb`ddfbcaeegcihjjkimlnnomihllmikjnnokjhllnjkimmok
Êp¨­ÿÿÿûÿÿÿûÿÿÿ­ÿÿÿûÿÿÿ·ÿÿÿûÿÿÿûÿÿÿ·ÿÿÿûÿÿÿ­ÿÿÿûÿÿÿ­ÿÿÿ·ÿÿÿûÿÿÿ·ÿÿÿ
 ·ÿÿÿûÿÿÿöÿÿÿ·ÿÿÿûÿÿÿ
 ÚÿÿÿûÿÿÿöÿÿÿÚÿÿÿûÿÿÿ
 ·ÿÿÿöÿÿÿ·ÿÿÿ
@@ -1039,7 +1039,7 @@ ka_done: //Don't goto out of try
 
 
 	

   ! ""#!%$&&'%! $$%!#"&&'#" $$&"#!%%'#)(**+)-,../-)(,,-)+*../+*(,,.*+)--/+10223154667510445132667320446231557398::;9=<>>?=98<<=9;:>>?;:8<<>:;9==?;A@BBCAEDFFGEA@DDEACBFFGCB@DDFBCAEEGCIHJJKIMLNNOMIHLLMIKJNNOKJHLLNJKIMMOKQPRRSQUTVVWUQPTTUQSRVVWSRPTTVRSQUUWSYXZZ[Y]\^^_]YX\\]Y[Z^^_[ZX\\^Z[Y]]_[a`bbcaedffgea`ddeacbffgcb`ddfbcaeegcihjjkimlnnomihllmikjnnokjhllnjkimmokÎ
-;€öÿÿÿýÿÿÿ÷ÿÿÿÿÿÿÿ÷ÿÿÿ÷ÿÿÿ÷ÿÿÿÿÿÿÿ÷ÿÿÿýÿÿÿ÷ÿÿÿýÿÿÿÿÿÿÿ÷ÿÿÿÿÿÿÿýÿÿÿ÷ÿÿÿüÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿüÿÿÿùÿÿÿùÿÿÿùÿÿÿûÿÿÿüÿÿÿùÿÿÿùÿÿÿùÿÿÿûÿÿÿùÿÿÿýÿÿÿýÿÿÿýÿÿÿýÿÿÿýÿÿÿýÿÿÿøÿÿÿýÿÿÿøÿÿÿýÿÿÿýÿÿÿýÿÿÿøÿÿÿýÿÿÿøÿÿÿýÿÿÿ
+;€öÿÿÿýÿÿÿ÷ÿÿÿÿÿÿÿ÷ÿÿÿ÷ÿÿÿ÷ÿÿÿÿÿÿÿ÷ÿÿÿýÿÿÿ÷ÿÿÿýÿÿÿÿÿÿÿ÷ÿÿÿÿÿÿÿýÿÿÿ÷ÿÿÿüÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿüÿÿÿùÿÿÿùÿÿÿùÿÿÿûÿÿÿüÿÿÿùÿÿÿùÿÿÿùÿÿÿûÿÿÿùÿÿÿýÿÿÿýÿÿÿýÿÿÿýÿÿÿýÿÿÿýÿÿÿøÿÿÿýÿÿÿøÿÿÿýÿÿÿýÿÿÿýÿÿÿøÿÿÿýÿÿÿøÿÿÿýÿÿÿ
 
 ùÿÿÿöÿÿÿùÿÿÿùÿÿÿöÿÿÿùÿÿÿýÿÿÿøÿÿÿøÿÿÿýÿÿÿýÿÿÿøÿÿÿøÿÿÿýÿÿÿüÿÿÿùÿÿÿûÿÿÿüÿÿÿùÿÿÿûÿÿÿ	ÿÿÿÿ	ýÿÿÿ	ýÿÿÿÿÿÿÿ	ÿÿÿÿýÿÿÿ	ýÿÿÿ	ÿÿÿÿ		
 		
@@ -1048,7 +1048,7 @@ ka_done: //Don't goto out of try
 


	
 
 
-


      !!!""###$$$%%%& && '  '' ( !((!)!))""#**#+#$++$,$%,,%-%&--&.&'..'/'(//(0()00)1)"11"**+22+3+,33,4,-44-5-.55.6./66/7/077080188191*99*223::3:34::4:45::5:56::6:67::7:78::8:89::9:92::2:Êp¨­ÿÿÿûÿÿÿûÿÿÿ­ÿÿÿûÿÿÿ·ÿÿÿûÿÿÿûÿÿÿ·ÿÿÿûÿÿÿ­ÿÿÿûÿÿÿ­ÿÿÿ·ÿÿÿûÿÿÿ·ÿÿÿ
+


      !!!""###$$$%%%& && '  '' ( !((!)!))""#**#+#$++$,$%,,%-%&--&.&'..'/'(//(0()00)1)"11"**+22+3+,33,4,-44-5-.55.6./66/7/077080188191*99*223::3:34::4:45::5:56::6:67::7:78::8:89::9:92::2:Êp¨­ÿÿÿûÿÿÿûÿÿÿ­ÿÿÿûÿÿÿ·ÿÿÿûÿÿÿûÿÿÿ·ÿÿÿûÿÿÿ­ÿÿÿûÿÿÿ­ÿÿÿ·ÿÿÿûÿÿÿ·ÿÿÿ
 ·ÿÿÿûÿÿÿöÿÿÿ·ÿÿÿûÿÿÿ
 ÚÿÿÿûÿÿÿöÿÿÿÚÿÿÿûÿÿÿ
 ·ÿÿÿöÿÿÿ·ÿÿÿ
@@ -1059,7 +1059,7 @@ ka_done: //Don't goto out of try
 	

	
	
 
 
-	

   ! ""#!%$&&'%! $$%!#"&&'#" $$&"#!%%'#)(**+)-,../-)(,,-)+*../+*(,,.*+)--/+10223154667510445132667320446231557398::;9=<>>?=98<<=9;:>>?;:8<<>:;9==?;A@BBCAEDFFGEA@DDEACBFFGCB@DDFBCAEEGCIHJJKIMLNNOMIHLLMIKJNNOKJHLLNJKIMMOKQPRRSQUTVVWUQPTTUQSRVVWSRPTTVRSQUUWSYXZZ[Y]\^^_]YX\\]Y[Z^^_[ZX\\^Z[Y]]_[a`bbcaedffgea`ddeacbffgcb`ddfbcaeegcihjjkimlnnomihllmikjnnokjhllnjkimmokÊp¨­ÿÿÿûÿÿÿûÿÿÿ­ÿÿÿûÿÿÿ·ÿÿÿûÿÿÿûÿÿÿ·ÿÿÿûÿÿÿ­ÿÿÿûÿÿÿ­ÿÿÿ·ÿÿÿûÿÿÿ·ÿÿÿ
+	

   ! ""#!%$&&'%! $$%!#"&&'#" $$&"#!%%'#)(**+)-,../-)(,,-)+*../+*(,,.*+)--/+10223154667510445132667320446231557398::;9=<>>?=98<<=9;:>>?;:8<<>:;9==?;A@BBCAEDFFGEA@DDEACBFFGCB@DDFBCAEEGCIHJJKIMLNNOMIHLLMIKJNNOKJHLLNJKIMMOKQPRRSQUTVVWUQPTTUQSRVVWSRPTTVRSQUUWSYXZZ[Y]\^^_]YX\\]Y[Z^^_[ZX\\^Z[Y]]_[a`bbcaedffgea`ddeacbffgcb`ddfbcaeegcihjjkimlnnomihllmikjnnokjhllnjkimmokÊp¨­ÿÿÿûÿÿÿûÿÿÿ­ÿÿÿûÿÿÿ·ÿÿÿûÿÿÿûÿÿÿ·ÿÿÿûÿÿÿ­ÿÿÿûÿÿÿ­ÿÿÿ·ÿÿÿûÿÿÿ·ÿÿÿ
 ·ÿÿÿûÿÿÿöÿÿÿ·ÿÿÿûÿÿÿ
 ÚÿÿÿûÿÿÿöÿÿÿÚÿÿÿûÿÿÿ
 ·ÿÿÿöÿÿÿ·ÿÿÿ
@@ -1070,7 +1070,7 @@ ka_done: //Don't goto out of try
 	

	
	
 
 
-	

   ! ""#!%$&&'%! $$%!#"&&'#" $$&"#!%%'#)(**+)-,../-)(,,-)+*../+*(,,.*+)--/+10223154667510445132667320446231557398::;9=<>>?=98<<=9;:>>?;:8<<>:;9==?;A@BBCAEDFFGEA@DDEACBFFGCB@DDFBCAEEGCIHJJKIMLNNOMIHLLMIKJNNOKJHLLNJKIMMOKQPRRSQUTVVWUQPTTUQSRVVWSRPTTVRSQUUWSYXZZ[Y]\^^_]YX\\]Y[Z^^_[ZX\\^Z[Y]]_[a`bbcaedffgea`ddeacbffgcb`ddfbcaeegcihjjkimlnnomihllmikjnnokjhllnjkimmokÊp¨­ÿÿÿûÿÿÿûÿÿÿ­ÿÿÿûÿÿÿ·ÿÿÿûÿÿÿûÿÿÿ·ÿÿÿûÿÿÿ­ÿÿÿûÿÿÿ­ÿÿÿ·ÿÿÿûÿÿÿ·ÿÿÿ
+	

   ! ""#!%$&&'%! $$%!#"&&'#" $$&"#!%%'#)(**+)-,../-)(,,-)+*../+*(,,.*+)--/+10223154667510445132667320446231557398::;9=<>>?=98<<=9;:>>?;:8<<>:;9==?;A@BBCAEDFFGEA@DDEACBFFGCB@DDFBCAEEGCIHJJKIMLNNOMIHLLMIKJNNOKJHLLNJKIMMOKQPRRSQUTVVWUQPTTUQSRVVWSRPTTVRSQUUWSYXZZ[Y]\^^_]YX\\]Y[Z^^_[ZX\\^Z[Y]]_[a`bbcaedffgea`ddeacbffgcb`ddfbcaeegcihjjkimlnnomihllmikjnnokjhllnjkimmokÊp¨­ÿÿÿûÿÿÿûÿÿÿ­ÿÿÿûÿÿÿ·ÿÿÿûÿÿÿûÿÿÿ·ÿÿÿûÿÿÿ­ÿÿÿûÿÿÿ­ÿÿÿ·ÿÿÿûÿÿÿ·ÿÿÿ
 ·ÿÿÿûÿÿÿöÿÿÿ·ÿÿÿûÿÿÿ
 ÚÿÿÿûÿÿÿöÿÿÿÚÿÿÿûÿÿÿ
 ·ÿÿÿöÿÿÿ·ÿÿÿ
@@ -1084,7 +1084,7 @@ ka_done: //Don't goto out of try
 	

	
	
 
 
-	

   ! ""#!%$&&'%! $$%!#"&&'#" $$&"#!%%'#)(**+)-,../-)(,,-)+*../+*(,,.*+)--/+10223154667510445132667320446231557398::;9=<>>?=98<<=9;:>>?;:8<<>:;9==?;A@BBCAEDFFGEA@DDEACBFFGCB@DDFBCAEEGCIHJJKIMLNNOMIHLLMIKJNNOKJHLLNJKIMMOKQPRRSQUTVVWUQPTTUQSRVVWSRPTTVRSQUUWSYXZZ[Y]\^^_]YX\\]Y[Z^^_[ZX\\^Z[Y]]_[a`bbcaedffgea`ddeacbffgcb`ddfbcaeegcihjjkimlnnomihllmikjnnokjhllnjkimmokÊp¨­ÿÿÿûÿÿÿûÿÿÿ­ÿÿÿûÿÿÿ·ÿÿÿûÿÿÿûÿÿÿ·ÿÿÿûÿÿÿ­ÿÿÿûÿÿÿ­ÿÿÿ·ÿÿÿûÿÿÿ·ÿÿÿ
+	

   ! ""#!%$&&'%! $$%!#"&&'#" $$&"#!%%'#)(**+)-,../-)(,,-)+*../+*(,,.*+)--/+10223154667510445132667320446231557398::;9=<>>?=98<<=9;:>>?;:8<<>:;9==?;A@BBCAEDFFGEA@DDEACBFFGCB@DDFBCAEEGCIHJJKIMLNNOMIHLLMIKJNNOKJHLLNJKIMMOKQPRRSQUTVVWUQPTTUQSRVVWSRPTTVRSQUUWSYXZZ[Y]\^^_]YX\\]Y[Z^^_[ZX\\^Z[Y]]_[a`bbcaedffgea`ddeacbffgcb`ddfbcaeegcihjjkimlnnomihllmikjnnokjhllnjkimmokÊp¨­ÿÿÿûÿÿÿûÿÿÿ­ÿÿÿûÿÿÿ·ÿÿÿûÿÿÿûÿÿÿ·ÿÿÿûÿÿÿ­ÿÿÿûÿÿÿ­ÿÿÿ·ÿÿÿûÿÿÿ·ÿÿÿ
 ·ÿÿÿûÿÿÿöÿÿÿ·ÿÿÿûÿÿÿ
 ÚÿÿÿûÿÿÿöÿÿÿÚÿÿÿûÿÿÿ
 ·ÿÿÿöÿÿÿ·ÿÿÿ
@@ -1098,7 +1098,7 @@ ka_done: //Don't goto out of try
 	

	
	
 
 
-	

   ! ""#!%$&&'%! $$%!#"&&'#" $$&"#!%%'#)(**+)-,../-)(,,-)+*../+*(,,.*+)--/+10223154667510445132667320446231557398::;9=<>>?=98<<=9;:>>?;:8<<>:;9==?;A@BBCAEDFFGEA@DDEACBFFGCB@DDFBCAEEGCIHJJKIMLNNOMIHLLMIKJNNOKJHLLNJKIMMOKQPRRSQUTVVWUQPTTUQSRVVWSRPTTVRSQUUWSYXZZ[Y]\^^_]YX\\]Y[Z^^_[ZX\\^Z[Y]]_[a`bbcaedffgea`ddeacbffgcb`ddfbcaeegcihjjkimlnnomihllmikjnnokjhllnjkimmokÊp¨­ÿÿÿûÿÿÿûÿÿÿ­ÿÿÿûÿÿÿ·ÿÿÿûÿÿÿûÿÿÿ·ÿÿÿûÿÿÿ­ÿÿÿûÿÿÿ­ÿÿÿ·ÿÿÿûÿÿÿ·ÿÿÿ
+	

   ! ""#!%$&&'%! $$%!#"&&'#" $$&"#!%%'#)(**+)-,../-)(,,-)+*../+*(,,.*+)--/+10223154667510445132667320446231557398::;9=<>>?=98<<=9;:>>?;:8<<>:;9==?;A@BBCAEDFFGEA@DDEACBFFGCB@DDFBCAEEGCIHJJKIMLNNOMIHLLMIKJNNOKJHLLNJKIMMOKQPRRSQUTVVWUQPTTUQSRVVWSRPTTVRSQUUWSYXZZ[Y]\^^_]YX\\]Y[Z^^_[ZX\\^Z[Y]]_[a`bbcaedffgea`ddeacbffgcb`ddfbcaeegcihjjkimlnnomihllmikjnnokjhllnjkimmokÊp¨­ÿÿÿûÿÿÿûÿÿÿ­ÿÿÿûÿÿÿ·ÿÿÿûÿÿÿûÿÿÿ·ÿÿÿûÿÿÿ­ÿÿÿûÿÿÿ­ÿÿÿ·ÿÿÿûÿÿÿ·ÿÿÿ
 ·ÿÿÿûÿÿÿöÿÿÿ·ÿÿÿûÿÿÿ
 ÚÿÿÿûÿÿÿöÿÿÿÚÿÿÿûÿÿÿ
 ·ÿÿÿöÿÿÿ·ÿÿÿ
@@ -1120,7 +1120,7 @@ ka_done: //Don't goto out of try
 	

	
	
 
 
-	

   ! ""#!%$&&'%! $$%!#"&&'#" $$&"#!%%'#)(**+)-,../-)(,,-)+*../+*(,,.*+)--/+10223154667510445132667320446231557398::;9=<>>?=98<<=9;:>>?;:8<<>:;9==?;A@BBCAEDFFGEA@DDEACBFFGCB@DDFBCAEEGCIHJJKIMLNNOMIHLLMIKJNNOKJHLLNJKIMMOKQPRRSQUTVVWUQPTTUQSRVVWSRPTTVRSQUUWSYXZZ[Y]\^^_]YX\\]Y[Z^^_[ZX\\^Z[Y]]_[a`bbcaedffgea`ddeacbffgcb`ddfbcaeegcihjjkimlnnomihllmikjnnokjhllnjkimmokÊp¨­ÿÿÿûÿÿÿûÿÿÿ­ÿÿÿûÿÿÿ·ÿÿÿûÿÿÿûÿÿÿ·ÿÿÿûÿÿÿ­ÿÿÿûÿÿÿ­ÿÿÿ·ÿÿÿûÿÿÿ·ÿÿÿ
+	

   ! ""#!%$&&'%! $$%!#"&&'#" $$&"#!%%'#)(**+)-,../-)(,,-)+*../+*(,,.*+)--/+10223154667510445132667320446231557398::;9=<>>?=98<<=9;:>>?;:8<<>:;9==?;A@BBCAEDFFGEA@DDEACBFFGCB@DDFBCAEEGCIHJJKIMLNNOMIHLLMIKJNNOKJHLLNJKIMMOKQPRRSQUTVVWUQPTTUQSRVVWSRPTTVRSQUUWSYXZZ[Y]\^^_]YX\\]Y[Z^^_[ZX\\^Z[Y]]_[a`bbcaedffgea`ddeacbffgcb`ddfbcaeegcihjjkimlnnomihllmikjnnokjhllnjkimmokÊp¨­ÿÿÿûÿÿÿûÿÿÿ­ÿÿÿûÿÿÿ·ÿÿÿûÿÿÿûÿÿÿ·ÿÿÿûÿÿÿ­ÿÿÿûÿÿÿ­ÿÿÿ·ÿÿÿûÿÿÿ·ÿÿÿ
 ·ÿÿÿûÿÿÿöÿÿÿ·ÿÿÿûÿÿÿ
 ÚÿÿÿûÿÿÿöÿÿÿÚÿÿÿûÿÿÿ
 ·ÿÿÿöÿÿÿ·ÿÿÿ
@@ -1142,7 +1142,7 @@ ka_done: //Don't goto out of try
 	

	
	
 
 
-	

   ! ""#!%$&&'%! $$%!#"&&'#" $$&"#!%%'#)(**+)-,../-)(,,-)+*../+*(,,.*+)--/+10223154667510445132667320446231557398::;9=<>>?=98<<=9;:>>?;:8<<>:;9==?;A@BBCAEDFFGEA@DDEACBFFGCB@DDFBCAEEGCIHJJKIMLNNOMIHLLMIKJNNOKJHLLNJKIMMOKQPRRSQUTVVWUQPTTUQSRVVWSRPTTVRSQUUWSYXZZ[Y]\^^_]YX\\]Y[Z^^_[ZX\\^Z[Y]]_[a`bbcaedffgea`ddeacbffgcb`ddfbcaeegcihjjkimlnnomihllmikjnnokjhllnjkimmokÊp¨­ÿÿÿûÿÿÿûÿÿÿ­ÿÿÿûÿÿÿ·ÿÿÿûÿÿÿûÿÿÿ·ÿÿÿûÿÿÿ­ÿÿÿûÿÿÿ­ÿÿÿ·ÿÿÿûÿÿÿ·ÿÿÿ
+	

   ! ""#!%$&&'%! $$%!#"&&'#" $$&"#!%%'#)(**+)-,../-)(,,-)+*../+*(,,.*+)--/+10223154667510445132667320446231557398::;9=<>>?=98<<=9;:>>?;:8<<>:;9==?;A@BBCAEDFFGEA@DDEACBFFGCB@DDFBCAEEGCIHJJKIMLNNOMIHLLMIKJNNOKJHLLNJKIMMOKQPRRSQUTVVWUQPTTUQSRVVWSRPTTVRSQUUWSYXZZ[Y]\^^_]YX\\]Y[Z^^_[ZX\\^Z[Y]]_[a`bbcaedffgea`ddeacbffgcb`ddfbcaeegcihjjkimlnnomihllmikjnnokjhllnjkimmokÊp¨­ÿÿÿûÿÿÿûÿÿÿ­ÿÿÿûÿÿÿ·ÿÿÿûÿÿÿûÿÿÿ·ÿÿÿûÿÿÿ­ÿÿÿûÿÿÿ­ÿÿÿ·ÿÿÿûÿÿÿ·ÿÿÿ
 ·ÿÿÿûÿÿÿöÿÿÿ·ÿÿÿûÿÿÿ
 ÚÿÿÿûÿÿÿöÿÿÿÚÿÿÿûÿÿÿ
 ·ÿÿÿöÿÿÿ·ÿÿÿ
@@ -1164,7 +1164,7 @@ ka_done: //Don't goto out of try
 	

	
	
 
 
-	

   ! ""#!%$&&'%! $$%!#"&&'#" $$&"#!%%'#)(**+)-,../-)(,,-)+*../+*(,,.*+)--/+10223154667510445132667320446231557398::;9=<>>?=98<<=9;:>>?;:8<<>:;9==?;A@BBCAEDFFGEA@DDEACBFFGCB@DDFBCAEEGCIHJJKIMLNNOMIHLLMIKJNNOKJHLLNJKIMMOKQPRRSQUTVVWUQPTTUQSRVVWSRPTTVRSQUUWSYXZZ[Y]\^^_]YX\\]Y[Z^^_[ZX\\^Z[Y]]_[a`bbcaedffgea`ddeacbffgcb`ddfbcaeegcihjjkimlnnomihllmikjnnokjhllnjkimmokÊp¨­ÿÿÿûÿÿÿûÿÿÿ­ÿÿÿûÿÿÿ·ÿÿÿûÿÿÿûÿÿÿ·ÿÿÿûÿÿÿ­ÿÿÿûÿÿÿ­ÿÿÿ·ÿÿÿûÿÿÿ·ÿÿÿ
+	

   ! ""#!%$&&'%! $$%!#"&&'#" $$&"#!%%'#)(**+)-,../-)(,,-)+*../+*(,,.*+)--/+10223154667510445132667320446231557398::;9=<>>?=98<<=9;:>>?;:8<<>:;9==?;A@BBCAEDFFGEA@DDEACBFFGCB@DDFBCAEEGCIHJJKIMLNNOMIHLLMIKJNNOKJHLLNJKIMMOKQPRRSQUTVVWUQPTTUQSRVVWSRPTTVRSQUUWSYXZZ[Y]\^^_]YX\\]Y[Z^^_[ZX\\^Z[Y]]_[a`bbcaedffgea`ddeacbffgcb`ddfbcaeegcihjjkimlnnomihllmikjnnokjhllnjkimmokÊp¨­ÿÿÿûÿÿÿûÿÿÿ­ÿÿÿûÿÿÿ·ÿÿÿûÿÿÿûÿÿÿ·ÿÿÿûÿÿÿ­ÿÿÿûÿÿÿ­ÿÿÿ·ÿÿÿûÿÿÿ·ÿÿÿ
 ·ÿÿÿûÿÿÿöÿÿÿ·ÿÿÿûÿÿÿ
 ÚÿÿÿûÿÿÿöÿÿÿÚÿÿÿûÿÿÿ
 ·ÿÿÿöÿÿÿ·ÿÿÿ
diff --git a/TempleOS/Apps/Logic/Logic.CPP b/TempleOS/Apps/Logic/Logic.CPP
index 094a68b..a189c36 100644
--- a/TempleOS/Apps/Logic/Logic.CPP
+++ b/TempleOS/Apps/Logic/Logic.CPP
@@ -103,7 +103,7 @@ U0 PmtGates()
       Free(st);
       return;
     }
-    i=LstEntryMatch(st,gate_type_lst,LEF_IGNORE_CASE);
+    i=LstMatch(st,gate_type_lst,LMF_IGNORE_CASE);
     Free(st);
     if (icolor=GREEN;
-    GrPutS(dc,xx-FONT_WIDTH*3,y-4,"Dup");
+    GrPrint(dc,xx-FONT_WIDTH*3,y-4,"Dup");
     y+=10;
   } else
     switch (type) {
       case GT_INPUT:
 	dc->color=GREEN;
-	GrPrintF(dc,xx-FONT_WIDTH-4,y-4,"%C",'A'+input1_table[output]);
+	GrPrint(dc,xx-FONT_WIDTH-4,y-4,"%C",'A'+input1_table[output]);
 	y+=10;
 	break;
       case GT_NOT:
@@ -263,7 +263,7 @@ U0 DrawDesign(CDC *dc,I64 *_y,I64 output,I64 depth,I64 *_x_out,I64 *_y_out)
 	break;
     }
   dc->color=BLACK;
-  GrPrintF(dc,xx,yy+3,"%04X",output);
+  GrPrint(dc,xx,yy+3,"%04X",output);
   Bts(displayed_design,output);
   if (_y) *_y=y;
 }
@@ -609,5 +609,5 @@ U0 DigitalLogic()
   SettingsPop;
   CleanUp;
 }
-º%Üÿÿÿøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿº%Üÿÿÿøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿº%Üÿÿÿøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿâ%Üÿÿÿ÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿâ%Üÿÿÿ÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿâ%Üÿÿÿ÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿª&ÜÿÿÿõÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÒ%Üÿÿÿôÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ	ª%Üÿÿÿõÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
-Ò%Üÿÿÿôÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
\ No newline at end of file
+º%Üÿÿÿøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿº%Üÿÿÿøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿº%Üÿÿÿøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿâ%Üÿÿÿ÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿâ%Üÿÿÿ÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿâ%Üÿÿÿ÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿª&ÜÿÿÿõÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÒ%Üÿÿÿôÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ	ª%Üÿÿÿõÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
+Ò%Üÿÿÿôÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
\ No newline at end of file
diff --git a/TempleOS/Apps/MusicOrgan/Examples/alone.CPP b/TempleOS/Apps/MusicOrgan/Examples/alone.CPP
new file mode 100644
index 0000000..8a26b28
--- /dev/null
+++ b/TempleOS/Apps/MusicOrgan/Examples/alone.CPP
@@ -0,0 +1,20 @@
+//7 no nothing
+U0 Song()
+{
+  Fs->task_end_cb=&SndTaskEndCB;
+  MusicSettingsRst;
+  music_tempo= 2.480;
+  music_stacatto_factor= 0.902;
+  try {
+  while (!ScanKey) {
+	Play("2q.GeGqG3sBBCB2q.GeGqG3sBBCB");
+	Play("q.C2eG3CsDC2eGG3qC2G3eCsDC2eGG");
+	Play("3sEAEAeCsCReRsDAe.GsBFFFFeEsAGeCsGDeDG");
+	Play("sEAEAeCsCReRsDAe.GsBFFFFeEsAGeCsGDeDG");
+  }
+  } catch
+    CatchAll;
+  Snd(0);
+}
+
+Song;
diff --git a/TempleOS/Apps/MusicOrgan/Examples/bedewed.CPP b/TempleOS/Apps/MusicOrgan/Examples/bedewed.CPP
index 6e1d824..29ffb7a 100644
Binary files a/TempleOS/Apps/MusicOrgan/Examples/bedewed.CPP and b/TempleOS/Apps/MusicOrgan/Examples/bedewed.CPP differ
diff --git a/TempleOS/Apps/MusicOrgan/Examples/completed.CPP b/TempleOS/Apps/MusicOrgan/Examples/completed.CPP
index dd944a9..9fbfe44 100644
Binary files a/TempleOS/Apps/MusicOrgan/Examples/completed.CPP and b/TempleOS/Apps/MusicOrgan/Examples/completed.CPP differ
diff --git a/TempleOS/Apps/MusicOrgan/Examples/cosam.CPP b/TempleOS/Apps/MusicOrgan/Examples/cosam.CPP
index 7b8a51a..311af33 100644
--- a/TempleOS/Apps/MusicOrgan/Examples/cosam.CPP
+++ b/TempleOS/Apps/MusicOrgan/Examples/cosam.CPP
@@ -1,4 +1,4 @@
-//7 has words
+//8 has words
 U0 Song()
 {
   Fs->task_end_cb=&SndTaskEndCB;
diff --git a/TempleOS/Apps/MusicOrgan/Examples/dialogue.CPP b/TempleOS/Apps/MusicOrgan/Examples/dialogue.CPP
index 96f21f5..b526516 100644
Binary files a/TempleOS/Apps/MusicOrgan/Examples/dialogue.CPP and b/TempleOS/Apps/MusicOrgan/Examples/dialogue.CPP differ
diff --git a/TempleOS/Apps/MusicOrgan/Examples/doing.CPP b/TempleOS/Apps/MusicOrgan/Examples/doing.CPP
index 3d4f5f5..deeb267 100644
Binary files a/TempleOS/Apps/MusicOrgan/Examples/doing.CPP and b/TempleOS/Apps/MusicOrgan/Examples/doing.CPP differ
diff --git a/TempleOS/Apps/MusicOrgan/Examples/elijah.CPP b/TempleOS/Apps/MusicOrgan/Examples/elijah.CPP
index c802ec8..d36e7a7 100644
Binary files a/TempleOS/Apps/MusicOrgan/Examples/elijah.CPP and b/TempleOS/Apps/MusicOrgan/Examples/elijah.CPP differ
diff --git a/TempleOS/Apps/MusicOrgan/Examples/exodus.CPP b/TempleOS/Apps/MusicOrgan/Examples/exodus.CPP
new file mode 100644
index 0000000..0094b07
--- /dev/null
+++ b/TempleOS/Apps/MusicOrgan/Examples/exodus.CPP
@@ -0,0 +1,20 @@
+//7 no nothing
+U0 Song()
+{
+  Fs->task_end_cb=&SndTaskEndCB;
+  MusicSettingsRst;
+  music_tempo= 2.480;
+  music_stacatto_factor= 0.902;
+  try {
+  while (!ScanKey) {
+	Play("3e.C2sG3qEe.FsBeCCsFGeBAAetAREeEsCB");
+	Play("e.C2sG3qEe.FsBeCCsFGeBAAetAREeEsCB");
+	Play("eGE2qG3sCDCDe.EsGqCsDCDCe.AsReGE");
+	Play("GE2qG3sCDCDe.EsGqCsDCDCe.AsReGE");
+  }
+  } catch
+    CatchAll;
+  Snd(0);
+}
+
+Song;
diff --git a/TempleOS/Apps/MusicOrgan/Examples/expedition.CPP b/TempleOS/Apps/MusicOrgan/Examples/expedition.CPP
index 35e1e6b..5d5079f 100644
Binary files a/TempleOS/Apps/MusicOrgan/Examples/expedition.CPP and b/TempleOS/Apps/MusicOrgan/Examples/expedition.CPP differ
diff --git a/TempleOS/Apps/MusicOrgan/Examples/finger.CPP b/TempleOS/Apps/MusicOrgan/Examples/finger.CPP
index daf140b..d8512f1 100644
Binary files a/TempleOS/Apps/MusicOrgan/Examples/finger.CPP and b/TempleOS/Apps/MusicOrgan/Examples/finger.CPP differ
diff --git a/TempleOS/Apps/MusicOrgan/Examples/first.CPP b/TempleOS/Apps/MusicOrgan/Examples/first.CPP
index 170efdb..d6573cb 100644
Binary files a/TempleOS/Apps/MusicOrgan/Examples/first.CPP and b/TempleOS/Apps/MusicOrgan/Examples/first.CPP differ
diff --git a/TempleOS/Apps/MusicOrgan/Examples/fishermen.CPP b/TempleOS/Apps/MusicOrgan/Examples/fishermen.CPP
index 6ac33e2..089619f 100644
Binary files a/TempleOS/Apps/MusicOrgan/Examples/fishermen.CPP and b/TempleOS/Apps/MusicOrgan/Examples/fishermen.CPP differ
diff --git a/TempleOS/Apps/MusicOrgan/Examples/fog.CPP b/TempleOS/Apps/MusicOrgan/Examples/fog.CPP
index e7d8222..6949963 100644
Binary files a/TempleOS/Apps/MusicOrgan/Examples/fog.CPP and b/TempleOS/Apps/MusicOrgan/Examples/fog.CPP differ
diff --git a/TempleOS/Apps/MusicOrgan/Examples/forasmuch.CPP b/TempleOS/Apps/MusicOrgan/Examples/forasmuch.CPP
index 6e2512e..69527c4 100644
Binary files a/TempleOS/Apps/MusicOrgan/Examples/forasmuch.CPP and b/TempleOS/Apps/MusicOrgan/Examples/forasmuch.CPP differ
diff --git a/TempleOS/Apps/MusicOrgan/Examples/furnishing.CPP b/TempleOS/Apps/MusicOrgan/Examples/furnishing.CPP
index 496cc8f..a549ac1 100644
Binary files a/TempleOS/Apps/MusicOrgan/Examples/furnishing.CPP and b/TempleOS/Apps/MusicOrgan/Examples/furnishing.CPP differ
diff --git a/TempleOS/Apps/MusicOrgan/Examples/good.CPP b/TempleOS/Apps/MusicOrgan/Examples/good.CPP
index cf276e2..09ed235 100644
Binary files a/TempleOS/Apps/MusicOrgan/Examples/good.CPP and b/TempleOS/Apps/MusicOrgan/Examples/good.CPP differ
diff --git a/TempleOS/Apps/MusicOrgan/Examples/gutenberg.CPP b/TempleOS/Apps/MusicOrgan/Examples/gutenberg.CPP
index dc88ea5..b48b7b7 100644
Binary files a/TempleOS/Apps/MusicOrgan/Examples/gutenberg.CPP and b/TempleOS/Apps/MusicOrgan/Examples/gutenberg.CPP differ
diff --git a/TempleOS/Apps/MusicOrgan/Examples/happy.CPP b/TempleOS/Apps/MusicOrgan/Examples/happy.CPP
index 0c9141b..8605cda 100644
Binary files a/TempleOS/Apps/MusicOrgan/Examples/happy.CPP and b/TempleOS/Apps/MusicOrgan/Examples/happy.CPP differ
diff --git a/TempleOS/Apps/MusicOrgan/Examples/hearsay.CPP b/TempleOS/Apps/MusicOrgan/Examples/hearsay.CPP
new file mode 100644
index 0000000..cbb37b0
--- /dev/null
+++ b/TempleOS/Apps/MusicOrgan/Examples/hearsay.CPP
@@ -0,0 +1,20 @@
+//7 no nothing
+U0 Song()
+{
+  Fs->task_end_cb=&SndTaskEndCB;
+  MusicSettingsRst;
+  music_tempo= 2.480;
+  music_stacatto_factor= 0.902;
+  try {
+  while (!ScanKey) {
+	Play("3qAeCDqEAeCDECDECsCC");
+	Play("qAeCDqEAeCDECDECsCC");
+	Play("eDAGAqDsECECCBCBeAFsDCeGDE");
+	Play("DAGAqDsECECCBCBeAFsDCeGDE");
+  }
+  } catch
+    CatchAll;
+  Snd(0);
+}
+
+Song;
diff --git a/TempleOS/Apps/MusicOrgan/Examples/hope.CPP b/TempleOS/Apps/MusicOrgan/Examples/hope.CPP
index eea60a8..00153ac 100644
Binary files a/TempleOS/Apps/MusicOrgan/Examples/hope.CPP and b/TempleOS/Apps/MusicOrgan/Examples/hope.CPP differ
diff --git a/TempleOS/Apps/MusicOrgan/Examples/josh.CPP b/TempleOS/Apps/MusicOrgan/Examples/josh.CPP
index d5ce3a9..3015609 100644
Binary files a/TempleOS/Apps/MusicOrgan/Examples/josh.CPP and b/TempleOS/Apps/MusicOrgan/Examples/josh.CPP differ
diff --git a/TempleOS/Apps/MusicOrgan/Examples/keeping.CPP b/TempleOS/Apps/MusicOrgan/Examples/keeping.CPP
index d0c25c5..ed11134 100644
Binary files a/TempleOS/Apps/MusicOrgan/Examples/keeping.CPP and b/TempleOS/Apps/MusicOrgan/Examples/keeping.CPP differ
diff --git a/TempleOS/Apps/MusicOrgan/Examples/limit.CPP b/TempleOS/Apps/MusicOrgan/Examples/limit.CPP
index 087c6a2..5a07d2f 100644
Binary files a/TempleOS/Apps/MusicOrgan/Examples/limit.CPP and b/TempleOS/Apps/MusicOrgan/Examples/limit.CPP differ
diff --git a/TempleOS/Apps/MusicOrgan/Examples/mildly.CPP b/TempleOS/Apps/MusicOrgan/Examples/mildly.CPP
index 657caa1..d785f46 100644
Binary files a/TempleOS/Apps/MusicOrgan/Examples/mildly.CPP and b/TempleOS/Apps/MusicOrgan/Examples/mildly.CPP differ
diff --git a/TempleOS/Apps/MusicOrgan/Examples/night.CPP b/TempleOS/Apps/MusicOrgan/Examples/night.CPP
index 7a92c5f..789415b 100644
Binary files a/TempleOS/Apps/MusicOrgan/Examples/night.CPP and b/TempleOS/Apps/MusicOrgan/Examples/night.CPP differ
diff --git a/TempleOS/Apps/MusicOrgan/Examples/partake.CPP b/TempleOS/Apps/MusicOrgan/Examples/partake.CPP
index a1afa99..7169972 100644
Binary files a/TempleOS/Apps/MusicOrgan/Examples/partake.CPP and b/TempleOS/Apps/MusicOrgan/Examples/partake.CPP differ
diff --git a/TempleOS/Apps/MusicOrgan/Examples/project.CPP b/TempleOS/Apps/MusicOrgan/Examples/project.CPP
new file mode 100644
index 0000000..07f1311
--- /dev/null
+++ b/TempleOS/Apps/MusicOrgan/Examples/project.CPP
@@ -0,0 +1,20 @@
+//7 no nothing
+U0 Song()
+{
+  Fs->task_end_cb=&SndTaskEndCB;
+  MusicSettingsRst;
+  music_tempo= 2.480;
+  music_stacatto_factor= 0.902;
+  try {
+  while (!ScanKey) {
+	Play("3qGsARARCBCBeACACGCGBAsEA");
+	Play("qGsARARCBCBeACACGCGBAsEA");
+	Play("eAsCEqEsDECEqAsDACAeAGFsBDeCB");
+	Play("AsCEqEsDECEqAsDACAeAGFsBDeCB");
+  }
+  } catch
+    CatchAll;
+  Snd(0);
+}
+
+Song;
diff --git a/TempleOS/Apps/MusicOrgan/Examples/prosper.CPP b/TempleOS/Apps/MusicOrgan/Examples/prosper.CPP
index 15afc9d..455925c 100644
Binary files a/TempleOS/Apps/MusicOrgan/Examples/prosper.CPP and b/TempleOS/Apps/MusicOrgan/Examples/prosper.CPP differ
diff --git a/TempleOS/Apps/MusicOrgan/Examples/purpose.CPP b/TempleOS/Apps/MusicOrgan/Examples/purpose.CPP
index ca25e15..b125520 100644
Binary files a/TempleOS/Apps/MusicOrgan/Examples/purpose.CPP and b/TempleOS/Apps/MusicOrgan/Examples/purpose.CPP differ
diff --git a/TempleOS/Apps/MusicOrgan/Examples/satisfaction.CPP b/TempleOS/Apps/MusicOrgan/Examples/satisfaction.CPP
index 1f6686d..23498aa 100644
Binary files a/TempleOS/Apps/MusicOrgan/Examples/satisfaction.CPP and b/TempleOS/Apps/MusicOrgan/Examples/satisfaction.CPP differ
diff --git a/TempleOS/Apps/MusicOrgan/Examples/scriptures.CPP b/TempleOS/Apps/MusicOrgan/Examples/scriptures.CPP
index d4d4ca2..3e30e8d 100644
Binary files a/TempleOS/Apps/MusicOrgan/Examples/scriptures.CPP and b/TempleOS/Apps/MusicOrgan/Examples/scriptures.CPP differ
diff --git a/TempleOS/Apps/MusicOrgan/Examples/shield.CPP b/TempleOS/Apps/MusicOrgan/Examples/shield.CPP
index c2a6e45..39b26c2 100644
Binary files a/TempleOS/Apps/MusicOrgan/Examples/shield.CPP and b/TempleOS/Apps/MusicOrgan/Examples/shield.CPP differ
diff --git a/TempleOS/Apps/MusicOrgan/Examples/small.CPP b/TempleOS/Apps/MusicOrgan/Examples/small.CPP
index 8ed1649..9890c16 100644
Binary files a/TempleOS/Apps/MusicOrgan/Examples/small.CPP and b/TempleOS/Apps/MusicOrgan/Examples/small.CPP differ
diff --git a/TempleOS/Apps/MusicOrgan/Examples/struggles.CPP b/TempleOS/Apps/MusicOrgan/Examples/struggles.CPP
index 364a382..9731e30 100644
Binary files a/TempleOS/Apps/MusicOrgan/Examples/struggles.CPP and b/TempleOS/Apps/MusicOrgan/Examples/struggles.CPP differ
diff --git a/TempleOS/Apps/MusicOrgan/Examples/sustain.CPP b/TempleOS/Apps/MusicOrgan/Examples/sustain.CPP
index 860f0ee..d76d2ec 100644
Binary files a/TempleOS/Apps/MusicOrgan/Examples/sustain.CPP and b/TempleOS/Apps/MusicOrgan/Examples/sustain.CPP differ
diff --git a/TempleOS/Apps/MusicOrgan/Examples/valued.CPP b/TempleOS/Apps/MusicOrgan/Examples/valued.CPP
index 340c8d6..969b5e8 100644
Binary files a/TempleOS/Apps/MusicOrgan/Examples/valued.CPP and b/TempleOS/Apps/MusicOrgan/Examples/valued.CPP differ
diff --git a/TempleOS/Apps/MusicOrgan/Examples/vengeance.CPP b/TempleOS/Apps/MusicOrgan/Examples/vengeance.CPP
index c4d6636..b46d967 100644
Binary files a/TempleOS/Apps/MusicOrgan/Examples/vengeance.CPP and b/TempleOS/Apps/MusicOrgan/Examples/vengeance.CPP differ
diff --git a/TempleOS/Apps/MusicOrgan/Examples/verses.CPP b/TempleOS/Apps/MusicOrgan/Examples/verses.CPP
index 662160f..cd4bc2a 100644
--- a/TempleOS/Apps/MusicOrgan/Examples/verses.CPP
+++ b/TempleOS/Apps/MusicOrgan/Examples/verses.CPP
@@ -17,11 +17,11 @@ U0 PutVerse()
   I64 *start;
 
   DocClear;
-  start=GetTimeStamp/16%size;
+  start=GetTSC/16%size;
   if (start>size-LEN) start=size-LEN;
   ch=bible[start+LEN-1];
   bible[start+LEN-1]=0;
-  "" bible+start;
+  "%s",bible+start;
   bible[start+LEN-1]=ch;
 }
 
diff --git a/TempleOS/Apps/MusicOrgan/Examples/wisdom.CPP b/TempleOS/Apps/MusicOrgan/Examples/wisdom.CPP
index 450bdfb..7a1ffe6 100644
Binary files a/TempleOS/Apps/MusicOrgan/Examples/wisdom.CPP and b/TempleOS/Apps/MusicOrgan/Examples/wisdom.CPP differ
diff --git a/TempleOS/Apps/MusicOrgan/Examples/zip.CPP b/TempleOS/Apps/MusicOrgan/Examples/zip.CPP
index 7743a60..3ef7df4 100644
Binary files a/TempleOS/Apps/MusicOrgan/Examples/zip.CPP and b/TempleOS/Apps/MusicOrgan/Examples/zip.CPP differ
diff --git a/TempleOS/Apps/MusicOrgan/Help.TXT b/TempleOS/Apps/MusicOrgan/Help.TXT
index 46c9dd9..508ca93 100644
--- a/TempleOS/Apps/MusicOrgan/Help.TXT
+++ b/TempleOS/Apps/MusicOrgan/Help.TXT
@@ -4,9 +4,9 @@ $WW,1$$FG,5$$TX+CX,"Music Organ Help"$$FG$
 
 * The clipboard can be used to cut and paste.
 
-* $FG,2$MusicOrgan$FG$ uses $LK,"Holy C","FI:::/TempleOS/Doc/HolyC.TXT"$ files as it's fmt!  See $LK-A,"::/TempleOS/Apps/MusicOrgan/Examples/personal.CPP"$.  It does not fully parse them when loading back in, so changes made outside $FG,2$MusicOrgan$FG$ can be lost.
+* $FG,2$MusicOrgan$FG$ uses $LK,"HolyC","FI:::/TempleOS/Doc/HolyC.TXT"$ files as it's fmt!  See $LK-A,"::/TempleOS/Apps/MusicOrgan/Examples/personal.CPP"$.  It does not fully parse them when loading back in, so changes made outside $FG,2$MusicOrgan$FG$ can be lost.
 
-* The first line of the $LK,"Holy C","FI:::/TempleOS/Doc/HolyC.TXT"$ files has a comment with a category recognized by $LK,"JukeBox","FF:::/TempleOS/Apps/MusicOrgan/JukeBox.CPP,JukeBox"$().  The categories are $FG,2$"no nothing"$FG$, $FG,2$"has words"$FG$, $FG,2$"has graphics"$FG$, or $FG,2$"special"$FG$.  The third character in the comment is a digit rating number.
+* The first line of the $LK,"HolyC","FI:::/TempleOS/Doc/HolyC.TXT"$ files has a comment with a category recognized by $LK,"JukeBox","FF:::/TempleOS/Apps/MusicOrgan/JukeBox.CPP,JukeBox"$().  The categories are $FG,2$"no nothing"$FG$, $FG,2$"has words"$FG$, $FG,2$"has graphics"$FG$, or $FG,2$"special"$FG$.  The third character in the comment is a digit rating number.
 
 * You can take the $LK,"Play","MN:Play"$() statements out of a song file and place them in your programs.  You can also add a song to a document with $FG,2$$FG$, but you should do it after pressing $FG,2$$FG$ because the clipboard-insert in $FG,2$$FG$ is screwy.  See this $SO,"","2qG3ECB2eGG3qCeFDsBGBG2qG3ECB2eGG3qCeFDsBGBGqEeEFqEB2eG3FetCAGqFCEeEFqEB2eG3FetCAGqFC"$ after pressing $FG,2$$FG$, now.
 
diff --git a/TempleOS/Apps/MusicOrgan/JukeBox.CPP b/TempleOS/Apps/MusicOrgan/JukeBox.CPP
index 9a18493..cd559bd 100644
--- a/TempleOS/Apps/MusicOrgan/JukeBox.CPP
+++ b/TempleOS/Apps/MusicOrgan/JukeBox.CPP
@@ -20,20 +20,20 @@ CTask *SingleSong(U8 *msg,U8 *name)
 Bool JBPutKey(CDoc *doc,U8 *,I64 ch,I64 sc)
 {  //ch=ASCII; sc=scancode
   CDocEntry *doc_ce=doc->cur_entry,*doc_e;
-  CDirEntry *tempm;
+  CDirEntry *tempde;
   CDoc *s;
   if (!(sc&(SCF_ALT|SCF_CTRL|SCF_SHIFT))
     && doc_ce->type_u8==DOCT_MENU_VAL && doc_ce->left_exp>=0) {
-    tempm=doc_ce->left_exp;
+    tempde=doc_ce->left_exp;
     if (sc.u8[0]==SC_DELETE ) {
       Beep;
       Silent(ON);
-      Del(tempm->full_name);
+      Del(tempde->full_name);
       Silent(OFF);
     } else if ('0'<=ch<='9') {
       if (StrLen(doc_ce->tag)>1)
 	doc_ce->tag[0]=ch;
-      s=DocRead(tempm->full_name);
+      s=DocRead(tempde->full_name);
       doc_e=s->root.next;
       while (doc_e!=s && doc_e->type_u8!=DOCT_TEXT)
 	doc_e=doc_e->next;
@@ -44,7 +44,7 @@ Bool JBPutKey(CDoc *doc,U8 *,I64 ch,I64 sc)
       DocDel(s);
       return TRUE;
     } else if (ch==CH_SPACE||ch==CH_ESC)
-      tempm->user_data++; //JB_RUN_LEVEL++
+      tempde->user_data++; //JB_RUN_LEVEL++
     // is followed by  --> JB_RUN_LEVEL_TWO
     //Actual  just exits          --> JB_RUN_LEVEL_ONE
   }
@@ -56,7 +56,7 @@ public U0 JukeBox(U8 *dirname=NULL,U8 **_filename=NULL)
 //_filename is for using this as a song-chooser program.
   I64 i=0,rating;
   U8 *st,*st2;
-  CDirEntry *tempm,*tempm1;
+  CDirEntry *tempde,*tempde1;
   CDoc *doc=DocNew,*s;
   CDocEntry *doc_e;
   StrCpy(doc->desc,"JukeBox");
@@ -67,24 +67,24 @@ public U0 JukeBox(U8 *dirname=NULL,U8 **_filename=NULL)
     dirname=StrNew("HOME/MusicOrgan");
   else
     dirname=StrNew(dirname);
-  st=MSPrintF("%s/*.CPP.Z",dirname);
-  tempm=FilesFind(st);
+  st=MPrint("%s/*.CPP.Z",dirname);
+  tempde=FilesFind(st);
   Free(st);
   Free(dirname);
   doc->user_put_key=&JBPutKey;
-  tempm1=tempm;
-  DocPutS(doc,
+  tempde1=tempde;
+  DocPrint(doc,
   "Key: $$FG,GREEN$$Graphics $$FG,BLUE$$Words $$FG,RED$$No Nothing "
   "$$FG,BLACK$$Incomplete $$FG,CYAN$$Special$$FG$$\n\n"
   "$$FG,GREEN$$$$FG$$ to delete a song.\n"
       "Press a number to rate a song.\n");
-  while (tempm1) {
+  while (tempde1) {
     if (!(i++%5))
-      DocPutS(doc,"\n");
-    if (FileOcc("Play(",tempm1->full_name,"")) {
-      st=StrNew(tempm1->name);
+      DocPrint(doc,"\n");
+    if (FileOcc("Play(",tempde1->full_name,"")) {
+      st=StrNew(tempde1->name);
       FileExtRem(st);
-      s=DocRead(tempm1->full_name);
+      s=DocRead(tempde1->full_name);
       doc_e=s->root.next;
       while (doc_e!=s && doc_e->type_u8!=DOCT_TEXT)
 	doc_e=doc_e->next;
@@ -92,55 +92,55 @@ public U0 JukeBox(U8 *dirname=NULL,U8 **_filename=NULL)
       if (doc_e!=s && doc_e->type_u8==DOCT_TEXT) {
 	if ('0'<=doc_e->tag[2]<='9')
 	  rating=doc_e->tag[2];
-	if (StrStr(doc_e->tag,"incomplete"))
-	  DocPutS(doc,"$$FG,BLACK$$");
-	else if (StrStr(doc_e->tag,"has graphics"))
-	  DocPutS(doc,"$$FG,GREEN$$");
-	else if (StrStr(doc_e->tag,"has words"))
-	  DocPutS(doc,"$$FG,BLUE$$");
-	else if (StrStr(doc_e->tag,"special"))
-	  DocPutS(doc,"$$FG,CYAN$$");
-	else if (StrStr(doc_e->tag,"no nothing")) {
-	  DocPutS(doc,"$$FG,RED$$");
-	  if (FileOcc("\\0",tempm1->full_name,"")) {
+	if (StrMatch("incomplete",doc_e->tag))
+	  DocPrint(doc,"$$FG,BLACK$$");
+	else if (StrMatch("has graphics",doc_e->tag))
+	  DocPrint(doc,"$$FG,GREEN$$");
+	else if (StrMatch("has words",doc_e->tag))
+	  DocPrint(doc,"$$FG,BLUE$$");
+	else if (StrMatch("special",doc_e->tag))
+	  DocPrint(doc,"$$FG,CYAN$$");
+	else if (StrMatch("no nothing",doc_e->tag)) {
+	  DocPrint(doc,"$$FG,RED$$");
+	  if (FileOcc("\\0",tempde1->full_name,"")) {
 	    s->cur_entry=doc_e->next;
 	    s->cur_data_col=0;
 	    DocEntryDel(s,doc_e);
-	    DocPutS(s,"//0 has words\n");
+	    DocPrint(s,"//0 has words\n");
 	    DocWrite(s);
 	  }
 	}
-	DocPrintF(doc,"$$MU-UL,\"%c%-8ts\",%d$$ ",rating,st,tempm1);
-	tempm1->user_data=JB_RUN_LEVEL_NULL;
+	DocPrint(doc,"$$MU-UL,\"%c%-8ts\",%d$$ ",rating,st,tempde1);
+	tempde1->user_data=JB_RUN_LEVEL_NULL;
       }
       DocDel(s);
       Free(st);
     }
-    tempm1=tempm1->next;
+    tempde1=tempde1->next;
   }
-  DocPrintF(doc,"\n$$FG,CYAN$$$$MU-UL,\"DONE\",%d$$\n",DOCM_CANCEL);
+  DocPrint(doc,"\n$$FG,CYAN$$$$MU-UL,\"DONE\",%d$$\n",DOCM_CANCEL);
   while (TRUE) {
     if (_filename)
-      tempm1=PopUpMenu(doc,DOF_INTERCEPT_TASK_END);
+      tempde1=PopUpMenu(doc,DOF_INTERCEPT_TASK_END);
     else
-      tempm1=PopUpMenu(doc);
+      tempde1=PopUpMenu(doc);
     if (task)
       Kill(task);
-    if (tempm1<0) break;
-    st2=StrNew(tempm1->name);
+    if (tempde1<0) break;
+    st2=StrNew(tempde1->name);
     if (_filename) {
       Free(*_filename);
-      *_filename=StrNew(tempm1->full_name);
+      *_filename=StrNew(tempde1->full_name);
     }
-    if (tempm1->user_data==JB_RUN_LEVEL_ONE) break; //
-    tempm1->user_data=JB_RUN_LEVEL_NULL; //Rst from 
+    if (tempde1->user_data==JB_RUN_LEVEL_ONE) break; //
+    tempde1->user_data=JB_RUN_LEVEL_NULL; //Rst from 
     FileExtRem(st2);
-    st=MSPrintF("ExeFile(\"%s\");",tempm1->full_name);
+    st=MPrint("ExeFile(\"%s\");",tempde1->full_name);
     MusicSettingsRst;
     task=SingleSong(st,st2);
     Free(st2);
     Free(st);
   }
   DocDel(doc);
-  CDirLstDel(tempm);
+  DirLstDel(tempde);
 }
diff --git a/TempleOS/Apps/MusicOrgan/JukePuppet.CPP b/TempleOS/Apps/MusicOrgan/JukePuppet.CPP
new file mode 100644
index 0000000..8cc6da8
--- /dev/null
+++ b/TempleOS/Apps/MusicOrgan/JukePuppet.CPP
@@ -0,0 +1,92 @@
+U0 SongPuppet(CTask *task,I64 passes)
+{
+  CDbgInfo *dbg;
+  I64 i,start,end,rip,last_rip;
+  CHashFun *tempf=NULL;
+  for (i=0;i<250 && TaskValidate(task);i++) {
+    if (tempf=HashFind("Song",task->hash_table,HTT_FUN))
+      break;
+    Sleep(1);
+  }
+  if (tempf && (dbg=tempf->debug)) {
+    start=tempf->executable_addr;
+    end  =dbg->body[dbg->max_line+1-dbg->min_line];
+    last_rip=0;
+    while (TRUE) {
+      i=0;
+      while (TaskValidate(task) && (rip=TaskCaller(task,i++))) {
+	if (start<=rippopup_task))
+    Sleep(10);
+
+  TaskWait(juke_task->popup_task);
+  PostMsg(juke_task->popup_task,MSG_KEY_DOWN_UP,0,SC_CURSOR_UP+SCF_CTRL);
+  TaskWait(juke_task->popup_task);
+  for (i=0;ipopup_task,MSG_KEY_DOWN_UP,0,SC_CURSOR_RIGHT);
+    TaskWait(juke_task->popup_task);
+  }
+
+  PostMsg(juke_task->popup_task,MSG_KEY_DOWN_UP,CH_SPACE,0);
+  TaskWait(juke_task->popup_task);
+  Sleep(500);
+
+  found=FALSE;
+  task=Fs->next_task;
+  while (task!=Fs) {
+    if (!StrCmp(task->task_title,name)) {
+      found=TRUE;
+      break;
+    }
+    task=task->next_task;
+  }
+
+  if (found) {
+    //Position cursor on song title during song
+    TaskWait(juke_task->popup_task);
+    PostMsg(juke_task->popup_task,MSG_KEY_DOWN_UP,0,SC_CURSOR_UP+SCF_CTRL);
+    TaskWait(juke_task->popup_task);
+    for (i=0;ipopup_task,MSG_KEY_DOWN_UP,0,SC_CURSOR_RIGHT);
+      TaskWait(juke_task->popup_task);
+    }
+    SongPuppet(task,passes);
+  }
+  Kill(task);
+}
+
+public U0 JukeSongsPuppet(U8 *dir="HOME/MusicOrgan",I64 passes=2,
+			I64 start_song=0,I64 end_song=MAX_I64)
+{
+  I64 i;
+  CDirEntry *tempde,*tempde1;
+  CTask *juke_task=SpawnUser("JukeBox(0x%X);\n",dir);
+  Cd(dir);
+  tempde1=FilesFind("*",FUF_RECURSE|FUF_JUST_TXT|FUF_JUST_FILES);
+  for (tempde=tempde1,i=0;tempde && inext;
+  for (i=start_song;tempde && iname);
+    tempde=tempde->next;
+  }
+  DirLstDel(tempde1);
+  Kill(juke_task);
+}
diff --git a/TempleOS/Apps/MusicOrgan/Load.CPP b/TempleOS/Apps/MusicOrgan/Load.CPP
index 2914ad0..bd34a70 100644
--- a/TempleOS/Apps/MusicOrgan/Load.CPP
+++ b/TempleOS/Apps/MusicOrgan/Load.CPP
@@ -2,6 +2,7 @@
 #include "/TempleOS/Apps/HolySpirit/HolySpirit"
 #include "/TempleOS/Apps/MusicOrgan/MakeSong"
 #include "/TempleOS/Apps/MusicOrgan/JukeBox"
+#include "/TempleOS/Apps/MusicOrgan/JukePuppet"
 #include "/TempleOS/Apps/MusicOrgan/OrganCtrls"
 #include "/TempleOS/Apps/MusicOrgan/Organ"
 #help_index ""
diff --git a/TempleOS/Apps/MusicOrgan/MakeSong.CPP b/TempleOS/Apps/MusicOrgan/MakeSong.CPP
index 080053b..92627c9 100644
--- a/TempleOS/Apps/MusicOrgan/MakeSong.CPP
+++ b/TempleOS/Apps/MusicOrgan/MakeSong.CPP
@@ -10,15 +10,6 @@ class MakeSongSettings
 
 U0 InsNote(MakeSongSettings *mss,U8 *buf,I64 k,I64 *j)
 {  //k is a random note nibble
-  I64 a=TimerPickedNibble; //accent
-  if (!a) {
-    buf[*j]='!';
-    *j+=1;
-  }
-  if (a<4) {
-    buf[*j]='!';
-    *j+=1;
-  }
   if (!k && mss->rests) {
     buf[*j]='R';
     *j+=1;
@@ -67,7 +58,7 @@ U8 *MakeSong()
   mss.rests=FALSE;
   mss.octave=music_octave;
 
-  if (!PopUpForm(&mss,"MakeSongSettings"))
+  if (!PopUpForm(&mss))
     return NULL;
 
   buf=CAlloc(256);
@@ -87,8 +78,9 @@ U8 *MakeSong()
     buf[j++]='8';
   } else
     len=8;
+  TimerPickFlush;
   for (i=0;iy=(15+(org_note_map[note]-7*(octave-2)))*4;
 	}
       }
@@ -351,8 +347,8 @@ U0 DrawNote(CDC *dc,I64 x,I64 y,I64 duration)
 
 U0 DrawTimeSignature(CDC *dc,I64 x,I64 y,I64 top,I64 bottom)
 {
-  GrPrintF(dc,x,y,"%d",top);
-  GrPrintF(dc,x,y+FONT_HEIGHT,"%d",bottom);
+  GrPrint(dc,x,y,"%d",top);
+  GrPrint(dc,x,y+FONT_HEIGHT,"%d",bottom);
 }
 
 U0 DrawIt(CTask *task,CDC *dc)
@@ -399,7 +395,7 @@ U0 DrawIt(CTask *task,CDC *dc)
     } else {
       if (tempo==oc.cur_note && OrgBlink) {
 	dc->color=BROWN;
-	GrPutS(dc,x+8,y,tempo->word);
+	GrPrint(dc,x+8,y,"%s",tempo->word);
       } else if (tempo->flags&OF_SELECTED)
 	dc->color=RED;
       else {
@@ -445,7 +441,7 @@ F64 PopUpDuration()
 {
   I64 i;
   CDoc *doc=DocNew;
-  DocPutS(doc,"$$FG,GREEN$$$$MU,\"Set Word\",ORGR_SET_WORD$$\n"
+  DocPrint(doc,"$$FG,GREEN$$$$MU,\"Set Word\",ORGR_SET_WORD$$\n"
 	"$$MU,\"Toggle Sharp\",ORGR_SHARP$$\n"
 	"$$MU,\"Toggle Flat\",ORGR_FLAT$$\n"
 	"$$MU,\"Toggle Tie\",ORGR_TIE$$\n"
@@ -456,8 +452,8 @@ F64 PopUpDuration()
 	"$$MU,\"Accent\",ORGR_ACCENT$$\n"
 	"$$MU,\"Strong Accent\",ORGR_STRONG_ACCENT$$\n\n");
   for (i=0;itype==OT_NOTE) {
 	    if (DocPut) DocPut->flags&=~DOCF_FORM;
 	    if (OrgHasWords(tempo->word))
-	      st2=MSPrintF("\nWord(\"%Q\"):",tempo->word);
+	      st2=MPrint("\nWord(\"%Q\"):",tempo->word);
 	    else
-	      st2=MSPrintF("\nWord(\"\"):");
+	      st2=MPrint("\nWord(\"\"):");
 	    DocBottom;
 	    st=PmtStr(st2);
 	    Free(st2);
 	    Free(tempo->word);
 	    if (*st) {
-	      tempo->word=MSPrintF("%q",st);
+	      tempo->word=MPrint("%q",st);
 	      Free(st);
 	    } else
 	      tempo->word=StrNew(" ");
@@ -1068,7 +1064,7 @@ U8 *OrgCvtSong()
 	  note=0;
 	  octave++;
 	}
-	note=music_note_map[*LstEntryPt(note,org_note_lst)-'A'];
+	note=music_note_map[*LstSub(note,org_note_lst)-'A'];
       }
       if (Bt(&tempo->flags,Of_TIE))
 	*dst++='(';
@@ -1077,14 +1073,14 @@ U8 *OrgCvtSong()
 	last_octave=octave;
       }
       if (tempo->duration!=last_duration) {
-	src=LstEntryPt(tempo->duration,org_duration_lst);
+	src=LstSub(tempo->duration,org_duration_lst);
 	*dst++=src[0];
 	if (src[1])
 	  *dst++=src[1];
 	last_duration=tempo->duration;
       }
       if (note!=NOTE_REST) {
-	src=LstEntryPt(note,org_note_lst);
+	src=LstSub(note,org_note_lst);
 	*dst++=src[0];
 	if (src[1])
 	  *dst++=src[1];
@@ -1132,13 +1128,13 @@ U8 *OrgSaveSong(U8 *dirname,U8 *full_filename)
     tempo=tempo->next;
   }
   if (oc.incomplete_entry->checked)
-    DocPutS(doc,"//0 incomplete\n");
+    DocPrint(doc,"//0 incomplete\n");
   else if (has_words)
-    DocPutS(doc,"//0 has words\n");
+    DocPrint(doc,"//0 has words\n");
   else
-    DocPutS(doc,"//0 no nothing\n");
+    DocPrint(doc,"//0 no nothing\n");
 
-  DocPrintF(doc,
+  DocPrint(doc,
 "U0 Song()\n"
 "{\n"
 "  Fs->task_end_cb=&SndTaskEndCB;\n"
@@ -1153,7 +1149,7 @@ U8 *OrgSaveSong(U8 *dirname,U8 *full_filename)
   tempo1=tempo;
   has_words=FALSE;
   while (tempo!=&oc.root) {
-    DocPutS(doc,tempo->ascii);
+    DocPrint(doc,"%s",tempo->ascii);
     if (OrgHasWords(tempo->word)) has_words=TRUE;
     if (tempo->type==OT_METER) {
       measure_len=tempo->meter_top*4.0/tempo->meter_bottom;
@@ -1163,7 +1159,7 @@ U8 *OrgSaveSong(U8 *dirname,U8 *full_filename)
     tempo=tempo->next;
     if (two_measure_left<0.001 && tempo!=&oc.root) {
       if (has_words) {
-	DocPutS(doc,"\",\n\t\t\"");
+	DocPrint(doc,"\",\n\t\t\"");
 	while (tempo1!=tempo) {
 	  if (tempo1->type!=OT_METER) {
 	    if (ptr=tempo1->word) {
@@ -1172,14 +1168,14 @@ U8 *OrgSaveSong(U8 *dirname,U8 *full_filename)
 		  *ptr=CH_SHIFT_SPACE;
 		ptr++;
 	      }
-	      DocPrintF(doc,"%Q\\0",tempo1->word);
+	      DocPrint(doc,"%Q\\0",tempo1->word);
 	    } else
-	      DocPrintF(doc,"%c\\0",CH_SHIFT_SPACE);
+	      DocPrint(doc,"%c\\0",CH_SHIFT_SPACE);
 	  }
 	  tempo1=tempo1->next;
 	}
       }
-      DocPutS(doc,"\");\n"
+      DocPrint(doc,"\");\n"
 		"\tPlay(\"");
       two_measure_left=2*measure_len;
       tempo1=tempo;
@@ -1187,7 +1183,7 @@ U8 *OrgSaveSong(U8 *dirname,U8 *full_filename)
     }
   }
   if (has_words) {
-    DocPutS(doc,"\",\n\t\t\"");
+    DocPrint(doc,"\",\n\t\t\"");
     while (tempo1!=tempo) {
       if (tempo1->type!=OT_METER) {
 	if (ptr=tempo1->word) {
@@ -1196,14 +1192,14 @@ U8 *OrgSaveSong(U8 *dirname,U8 *full_filename)
 	      *ptr=CH_SHIFT_SPACE;
 	    ptr++;
 	  }
-	  DocPrintF(doc,"%Q\\0",tempo1->word);
+	  DocPrint(doc,"%Q\\0",tempo1->word);
 	} else
-	  DocPrintF(doc,"%c\\0",CH_SHIFT_SPACE);
+	  DocPrint(doc,"%c\\0",CH_SHIFT_SPACE);
       }
       tempo1=tempo1->next;
     }
   }
-  DocPutS(doc,"\");\n"
+  DocPrint(doc,"\");\n"
 "  }\n"
 "  } catch\n"
 "    CatchAll;\n"
@@ -1216,7 +1212,7 @@ U8 *OrgSaveSong(U8 *dirname,U8 *full_filename)
     StrCpy(doc->filename.name,full_filename);
     Free(full_filename);
   } else
-    SPrintF(doc->filename.name,"%s/Temp.CPP.Z",dirname);
+    SPrint(doc->filename.name,"%s/Temp.CPP.Z",dirname);
   DocWrite(doc,TRUE);
   full_filename=StrNew(doc->filename.name);
   DocDel(doc);
@@ -1230,7 +1226,7 @@ U0 OrgSetOctave(I64 octave)
   U8 buf[136];
   CMenuEntry *tempse;
   for (i=0;i<=6;i++) {
-    SPrintF(buf,"Snd/Octave%d",i);
+    SPrint(buf,"Snd/Octave%d",i);
     if (tempse=MenuEntryFind(Fs->cur_menu,buf)) {
       if (i==octave)
 	tempse->checked=TRUE;
@@ -1619,7 +1615,7 @@ got_msg:
 		"$$FG,GREEN$$$$FG$$ to load it into MusicOrgan.\n\n"
 		ST_WARN_ST " Graphics and other embelishments\n"
 		"will be lost because MusicOrgan can't\n"
-		    "parse Holy C programs completely.\n");
+		    "parse HolyC programs completely.\n");
 		Free(filename);
 		filename=NULL;
 		JukeBox(dirname,&filename);
@@ -1702,7 +1698,7 @@ got_msg:
 		    oc.cur_note=tempo;
 		    oc.screen_x+=tempo->x-0.33*GR_WIDTH;
 		    if (OrgHasWords(tempo->word))
-		      "" tempo->word;
+		      "%s",tempo->word;
 		    note=tempo->note;
 		    octave=tempo->octave;
 		    if (note!=NOTE_REST)
@@ -1811,7 +1807,7 @@ got_msg:
       }
       if (f!=last_f) {
 	if (f>0) {
-	  st=LstEntryPt(note,org_note_lst);
+	  st=LstSub(note,org_note_lst);
 	  org_play_f=f;
 	} else {
 	  if (f<0)
@@ -1840,7 +1836,7 @@ got_msg:
 	  }
 	}
 	last_f=f;
-	"" st;
+	"%s",st;
 	col+=StrLen(st);
 	if (col>=Fs->win_width-1) {
 	  NewLine;
@@ -1864,52 +1860,183 @@ got_msg:
   Free(dirname);
   MenuPop;
 }
-"òÿÿÿñÿÿÿñÿÿÿ
-ñÿÿÿõÿÿÿ
-õÿÿÿóÿÿÿ	òÿÿÿöÿÿÿ
-÷ÿÿÿÿÿÿÿýÿÿÿüÿÿÿüÿÿÿÿÿÿÿÿÿÿÿýÿÿÿòÿÿÿþÿÿÿÿÿÿÿÿÿÿÿýÿÿÿÿÿÿÿýÿÿÿýÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿóÿÿÿ
-óÿÿÿóÿÿÿóÿÿÿòÿÿÿòÿÿÿÿÿÿÿýÿÿÿüÿÿÿüÿÿÿÿÿÿÿÿÿÿÿýÿÿÿòÿÿÿþÿÿÿÿÿÿÿÿÿÿÿýÿÿÿÿÿÿÿýÿÿÿýÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÍÿÿÿÿýÿÿÿüÿÿÿüÿÿÿÿÿÿÿÿÿÿÿýÿÿÿòÿÿÿþÿÿÿÿÿÿÿÿÿÿÿýÿÿÿÿÿÿÿýÿÿÿýÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿVÿÿÿÿýÿÿÿüÿÿÿüÿÿÿÿÿÿÿÿÿÿÿýÿÿÿòÿÿÿEÿÿÿÿýÿÿÿüÿÿÿüÿÿÿÿÿÿÿÿÿÿÿýÿÿÿa
-a
-Õ
-
+"
+òÿÿÿñÿÿÿ
+ñÿÿÿ
+ñÿÿÿ
+õÿÿÿ
+õÿÿÿ
+óÿÿÿ	òÿÿÿ
+öÿÿÿ
+÷ÿÿÿ
+ÿÿÿÿýÿÿÿüÿÿÿ
+üÿÿÿ
+ÿÿÿÿ
+ÿÿÿÿýÿÿÿ
+òÿÿÿ
+þÿÿÿÿÿÿÿÿÿÿÿ
+ýÿÿÿ
+ÿÿÿÿ
+ýÿÿÿ
+ýÿÿÿÿÿÿÿ
+
+þÿÿÿÿÿÿÿÿÿÿÿ
+óÿÿÿ
+óÿÿÿ
+óÿÿÿóÿÿÿ
+òÿÿÿòÿÿÿ
+ÿÿÿÿýÿÿÿüÿÿÿ
+üÿÿÿ
+ÿÿÿÿ
+ÿÿÿÿýÿÿÿ
+òÿÿÿ
+þÿÿÿÿÿÿÿÿÿÿÿ
+ýÿÿÿ
+ÿÿÿÿ
+ýÿÿÿ
+ýÿÿÿÿÿÿÿ
+
+þÿÿÿÿÿÿÿÿÿÿÿÍ
+ÿÿÿÿýÿÿÿüÿÿÿ
+üÿÿÿ
+ÿÿÿÿ
+ÿÿÿÿýÿÿÿ
+òÿÿÿ
+þÿÿÿÿÿÿÿÿÿÿÿ
+ýÿÿÿ
+ÿÿÿÿ
+ýÿÿÿ
+ýÿÿÿÿÿÿÿ
+
+þÿÿÿÿÿÿÿÿÿÿÿV
+ÿÿÿÿýÿÿÿüÿÿÿ
+üÿÿÿ
+ÿÿÿÿ
+ÿÿÿÿýÿÿÿ
+òÿÿÿE
+ÿÿÿÿýÿÿÿüÿÿÿ
+üÿÿÿ
+ÿÿÿÿ
+ÿÿÿÿýÿÿÿa
+
+
+
+a
+
+
+
+Õ
+
+
+
+
 
-
-
-
 
-
-
-
				
-
-
-
-
-	
-
-
-		
+
+
+
+
+
+
+
				
+
+
+
+
+	
+
+
+
+	
+	
+
 
-
-		
-
-
+
+
+		
+
 
 
+
+
+
+
+
 
-
+
+
 
+
+
 
-
-?
-
-
-	#þÿÿÿÖÿÿÿþÿÿÿ&Öÿÿÿ&
Eúÿÿÿúÿÿÿ
-ýÿÿÿV	ýÿÿÿ
+?
+
+
+	#
+þÿÿÿÖÿÿÿþÿÿÿ&
+Öÿÿÿ&
E
+úÿÿÿ
+úÿÿÿ
+
+ýÿÿÿ
+V
+	ýÿÿÿ
+
 
-


+
+

+

 
-Eþÿÿÿöÿÿÿöÿÿÿöÿÿÿòÿÿÿòÿÿÿþÿÿÿòÿÿÿôÿÿÿÿÿÿÿôÿÿÿò$ $ 0$0,444,,@$@<DDD<<|„„„||ltttll$À$ÄA$S4DDFTGdHtJ„K”L¤;´',E<RLTlU|IœP¬[¼]PPLTTTLL`$`p$p€$€�$� $ °$°À$Àœ¤¤¤œœ¬´´´¬¬¼ÄÄļ¼P$P0@Pp€ °À@
-~ 
-	P
-
-

		
\ No newline at end of file
+
+E
+þÿÿÿöÿÿÿöÿÿÿ
+öÿÿÿòÿÿÿ
+òÿÿÿþÿÿÿòÿÿÿ
+ôÿÿÿÿÿÿÿôÿÿÿò
+$
+ $ 
+0$0
+,4
+44
+,,
+@$@
+<D
+DD
+<<
+|„
+„„
+||
+lt
+tt
+ll
+$À$
+
+
+ÄA$S4DDFTGdHtJ„K”L¤;´',E<RLTlU|IœP¬[¼]
+PP
+LT
+TT
+LL
+`$`
+p$p
+€$€
+�$�
+ $ 
+°$°
+À$À
+œ¤
+¤¤
+œœ
+¬´
+´´
+¬¬
+¼Ä
+ÄÄ
+¼¼
+P$P0@Pp€ °À@
+~ 
+	P
+
+
+


+		
\ No newline at end of file
diff --git a/TempleOS/Apps/MusicOrgan/OrganCtrls.CPP b/TempleOS/Apps/MusicOrgan/OrganCtrls.CPP
index fa4c077..464d6d8 100644
--- a/TempleOS/Apps/MusicOrgan/OrganCtrls.CPP
+++ b/TempleOS/Apps/MusicOrgan/OrganCtrls.CPP
@@ -23,9 +23,9 @@ U0 DrawTempoCtrl(CDC *dc,CCtrl *c)
 	      c->left+2*TEMPO_SPACING+1,c->top+TEMPO_SPACING+TEMPO_RANGE-1);
 
   dc->color=LTGREEN;
-  GrPrintF(dc,c->left+TEMPO_SPACING-FONT_WIDTH/2,
+  GrPrint(dc,c->left+TEMPO_SPACING-FONT_WIDTH/2,
 	      c->top+TEMPO_SPACING+TEMPO_RANGE+3,"%d",s->tempo*10/TEMPO_RANGE);
-  GrPrintF(dc,c->left+2*TEMPO_SPACING+1-FONT_WIDTH/2,
+  GrPrint(dc,c->left+2*TEMPO_SPACING+1-FONT_WIDTH/2,
 	      c->top+TEMPO_SPACING+TEMPO_RANGE+3,"%d",s->stacatto*10/TEMPO_RANGE);
   GrRect(dc,c->left+TEMPO_SPACING-3,	 c->top+TEMPO_SPACING+TEMPO_RANGE-1-s->tempo-2 ,7,5);
   GrRect(dc,c->left+2*TEMPO_SPACING+1-3,c->top+TEMPO_SPACING+TEMPO_RANGE-1-s->stacatto-2,7,5);
@@ -34,8 +34,8 @@ U0 DrawTempoCtrl(CDC *dc,CCtrl *c)
   GrRect(dc,c->left+2*TEMPO_SPACING+1-2,c->top+TEMPO_SPACING+TEMPO_RANGE-1-s->stacatto-1,5,3);
 
   dc->color=GREEN;
-  GrVPutS(dc,c->left+TEMPO_BORDER+2,c->top+TEMPO_SPACING+2,"Tempo");
-  GrVPutS(dc,c->right-TEMPO_BORDER-2-FONT_WIDTH,c->top+TEMPO_SPACING+2,"Stacatto");
+  GrVPrint(dc,c->left+TEMPO_BORDER+2,c->top+TEMPO_SPACING+2,"Tempo");
+  GrVPrint(dc,c->right-TEMPO_BORDER-2-FONT_WIDTH,c->top+TEMPO_SPACING+2,"Stacatto");
 }
 
 U0 UpdateDerivedTempoCtrl(CCtrl *c)
diff --git a/TempleOS/Apps/Span/Span.HPP b/TempleOS/Apps/Span/Span.HPP
index 6fe0dd8..264f846 100644
--- a/TempleOS/Apps/Span/Span.HPP
+++ b/TempleOS/Apps/Span/Span.HPP
@@ -16,7 +16,7 @@ class MySpring:CSpring
 {
   F64 compression_strength,tensile_strength,cost;
   F64 base_compression_strength,base_tensile_strength,
-	 base_constant,base_cost;
+	 base_const,base_cost;
  
   CColorROPU32 color;
   I32 pen_width;
diff --git a/TempleOS/Apps/Span/SpanMain.CPP b/TempleOS/Apps/Span/SpanMain.CPP
index 656a2d7..cf3d31b 100644
--- a/TempleOS/Apps/Span/SpanMain.CPP
+++ b/TempleOS/Apps/Span/SpanMain.CPP
@@ -74,8 +74,8 @@ U0 DrawIt(CTask *task,CDC *dc)
 	GrPlot(dc,i,j);
 
   dc->color=BLACK;
-  GrPrintF(dc,90,0,"Cost:%12.2,f",Cost(ode));
-  GrPrintF(dc,90,FONT_HEIGHT,"Time:%12.2f",SpanTime);
+  GrPrint(dc,90,0,"Cost:%12.2,f",Cost(ode));
+  GrPrint(dc,90,FONT_HEIGHT,"Time:%12.2f",SpanTime);
   Suspend(task,old_suspend1);
   Suspend(task->animate_task,old_suspend2);
 }
@@ -100,7 +100,7 @@ U0 NullSpring(MySpring *temps,F64 scale)
   temps->rest_len=d*scale;
   temps->compression_strength=temps->base_compression_strength/(temps->rest_len+1.0);
   temps->tensile_strength=temps->base_tensile_strength/(temps->rest_len+1.0);
-  temps->constant=temps->base_constant/(temps->rest_len+1.0);
+  temps->const=temps->base_const/(temps->rest_len+1.0);
   temps->cost=temps->base_cost*temps->rest_len;
 }
 
@@ -169,7 +169,7 @@ U0 PlaceSpring(MyMass *tempm1,MyMass *tempm2)
   temps->end2=tempm2;
   switch (mode_button.state) {
     case MD_CONCRETE:
-      temps->base_constant	      = 3.00*SPRING_SCALE;
+      temps->base_const	      = 3.00*SPRING_SCALE;
       temps->base_compression_strength=10.00*STRENGTH_SCALE;
       temps->base_tensile_strength    = 0.35*STRENGTH_SCALE;
       temps->base_cost		      = 0.30*COST_SCALE;
@@ -178,7 +178,7 @@ U0 PlaceSpring(MyMass *tempm1,MyMass *tempm2)
       temps->pen_width=2;
       break;
     case MD_STEEL:
-      temps->base_constant	      = 1.00*SPRING_SCALE;
+      temps->base_const	      = 1.00*SPRING_SCALE;
       temps->base_compression_strength= 1.00*STRENGTH_SCALE;
       temps->base_tensile_strength    = 1.00*STRENGTH_SCALE;
       temps->base_cost		      = 1.00*COST_SCALE;
@@ -187,7 +187,7 @@ U0 PlaceSpring(MyMass *tempm1,MyMass *tempm2)
       temps->pen_width=2;
       break;
     case MD_WIRE:
-      temps->base_constant	      = 0.25*SPRING_SCALE;
+      temps->base_const	      = 0.25*SPRING_SCALE;
       temps->base_compression_strength= 0.00;
       temps->base_tensile_strength    = 0.50*STRENGTH_SCALE;
       temps->base_cost		      = 0.10*COST_SCALE;
diff --git a/TempleOS/Apps/Strut/Strut.CPP b/TempleOS/Apps/Strut/Strut.CPP
index 3555494..eaeae07 100644
--- a/TempleOS/Apps/Strut/Strut.CPP
+++ b/TempleOS/Apps/Strut/Strut.CPP
@@ -174,7 +174,7 @@ U0 DrawIt(CTask *,CDC *dc)
 	}
 	dc->flags&=~DCF_SYMMETRY;
       }
-      SpritePlotRotZ3b(dc,x1,y1,0,$IB,"<3>",3$,é);
+      SpritePlotRotZ3B(dc,x1,y1,0,$IB,"<3>",3$,é);
       if (zoom>0.5) {
 	dc->color=YELLOW;
 	GrPutChar3(dc,(x1*7+x2)/8,(y1*7+y2)/8,0,temps->action_key);
@@ -253,9 +253,9 @@ MySpring *PlaceSpring(MyMass *tempm1,MyMass *tempm2,I64 type)
   temps->rest_len=d;
   temps->type=type;
   if (type==EMD_THRUSTER)
-    temps->constant=0;
+    temps->const=0;
   else
-    temps->constant=2500000/Sqr(d);
+    temps->const=2500000/Sqr(d);
   temps->action_key=next_action_key;
   QueIns(temps,ode->last_spring);
   return temps;
@@ -626,4 +626,4 @@ U0 Strut()
   SettingsPop;
   CtrlButtonDel(bt_main_mode);
 }
-øÿÿÿøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøÿÿÿøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‚ùÿÿÿöÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
\ No newline at end of file
+øÿÿÿøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøÿÿÿøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‚ùÿÿÿöÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
\ No newline at end of file
diff --git a/TempleOS/Apps/TimeClock/TimeClk.CPP b/TempleOS/Apps/TimeClock/TimeClk.CPP
index f8016c2..f41263b 100644
--- a/TempleOS/Apps/TimeClock/TimeClk.CPP
+++ b/TempleOS/Apps/TimeClock/TimeClk.CPP
@@ -85,7 +85,7 @@ public Bool TimeRep(TimeEntry **_header=NULL)
     if (week!=cur_week) {
       if (!first) {
 	if (is_in)
-	  week_total+=GetCurTimeDate;
+	  week_total+=GetDateTime;
 	"Week Total:%h7T\n",week_total;
       } else
 	first=FALSE;
@@ -107,7 +107,7 @@ public Bool TimeRep(TimeEntry **_header=NULL)
     tempt=tempt->next;
   }
   if (is_in)
-    week_total+=GetCurTimeDate;
+    week_total+=GetDateTime;
   "$$FG,RED$$Week Total:%h7T$$FG$$\n",week_total;
   if (!_header)
     TimeEntriesDel(header);
@@ -124,7 +124,7 @@ public U0 PunchOut()
   else {
     tempt=MAlloc(sizeof(TimeEntry));
     tempt->type=TET_PUNCH_OUT;
-    tempt->datetime=GetCurTimeDate;
+    tempt->datetime=GetDateTime;
     "\nEnter Description.\nPress  when done.\n";
     if (!(tempt->desc=MGetS(GETSF_WITH_NEW_LINE)))
       tempt->desc=CAlloc(1);
@@ -144,7 +144,7 @@ public U0 PunchIn()
   else {
     tempt=MAlloc(sizeof(TimeEntry));
     tempt->type=TET_PUNCH_IN;
-    tempt->datetime=GetCurTimeDate;
+    tempt->datetime=GetDateTime;
     "\nEnter Description.\nPress  when done.\n";
     if (!(tempt->desc=MGetS(GETSF_WITH_NEW_LINE)))
       tempt->desc=CAlloc(1);
diff --git a/TempleOS/Apps/TimeOut/TimeOut.CPP b/TempleOS/Apps/TimeOut/TimeOut.CPP
index 1f99670..c7458a4 100644
--- a/TempleOS/Apps/TimeOut/TimeOut.CPP
+++ b/TempleOS/Apps/TimeOut/TimeOut.CPP
@@ -158,13 +158,13 @@ U0 DrawIt(CTask *task,CDC *dc)
       }
     }
   }
-  SpritePlotRotZ3b(dc,x,y,0,$IB,"",1$,é);
+  SpritePlotRotZ3B(dc,x,y,0,$IB,"",1$,é);
 
   if (tf) {
     t1=tf;
     dc->color=RED;
     if (game_over && Blink)
-      GrPutS(dc,task->win_pixel_width/2-9*FONT_WIDTH/2,
+      GrPrint(dc,task->win_pixel_width/2-9*FONT_WIDTH/2,
 		  task->win_pixel_height/2,"Game Over");
   } else {
     t1=tT;
@@ -172,29 +172,19 @@ U0 DrawIt(CTask *task,CDC *dc)
      game_over=TRUE;
   }
   dc->color=BROWN;
-  GrPrintF(dc,0,0,"Enemy:%d Friends:%d Friendly Fire:%d Time:%6.2f Shots:%d",
+  GrPrint(dc,0,0,"Enemy:%d Friends:%d Friendly Fire:%d Time:%6.2f Shots:%d",
     enemy_left,friendly_left,friendly_fire,t1-t0,shots_fired);
-  GrPrintF(dc,0,8,"Total Score:%,d High Score:%,d",
+  GrPrint(dc,0,8,"Total Score:%,d High Score:%,d",
       total_score,best_score);
 }
 
-#define MONO_MAN_WIDTH	32
-#define MONO_MAN_HEIGHT	32
-
 U0 CheckCollisions()
 {
   I64 i,x,y;
   Man *tempm;
   Shot *temps;
-  CDC	*dc2   =DCNew(DCT_COLOR8,GR_WIDTH,GR_HEIGHT),
-	*friend=DCNew(DCT_COLOR8,MONO_MAN_WIDTH,MONO_MAN_HEIGHT),
-	*enemy =DCNew(DCT_COLOR8,MONO_MAN_WIDTH,MONO_MAN_HEIGHT);
-  DCFill(friend);
-  SpritePlot3(friend,MONO_MAN_WIDTH/2,MONO_MAN_HEIGHT/2,0,$IB,"",2$);
-  DCFill(enemy);
-  SpritePlot3(enemy ,MONO_MAN_WIDTH/2,MONO_MAN_HEIGHT/2,0,$IB,"",3$);
-
-  dc2->color=WHITE;
+  CDC	*dc2   =DCNew(DCT_COLOR8,GR_WIDTH,GR_HEIGHT);
+  dc2->color=LTRED;
   for (i=0,temps=s;idead)
       GrLine(dc2,temps->x>>32,temps->y>>32,
@@ -210,9 +200,9 @@ U0 CheckCollisions()
       if (0<=xcollision_cnt=0;
 	if (tempm->friendly)
-	  GrBlot(dc2,x-MONO_MAN_WIDTH/2,y-MONO_MAN_HEIGHT/2,friend);
+	  SpritePlot3(dc2,x,y,0,$IB,"",2$);
 	else
-	  GrBlot(dc2,x-MONO_MAN_WIDTH/2,y-MONO_MAN_HEIGHT/2,enemy);
+	  SpritePlot3(dc2,x,y,0,$IB,"",3$);
 	if (dc2->collision_cnt) {
 	  tempm->dead=TRUE;
 	  tempm->corpse_timeout=tT+30.0;
@@ -229,8 +219,6 @@ U0 CheckCollisions()
       }
     }
   }
-  DCDel(friend);
-  DCDel(enemy);
   DCDel(dc2);
 }
 
@@ -593,7 +581,7 @@ to_done:
   MenuPop;
   AcctRegWriteBranch("TempleOS/TimeOut","I64 best_score=%d;\n",best_score);
 }
-Á(OîÿÿÿÁÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
+Á(OîÿÿÿÁÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
 ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
 
 
@@ -789,8 +777,13 @@ to_done:
 
 
 
-ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
+ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
+
 	ñÿÿÿîÿÿÿ
+
 éÿÿÿçÿÿÿ
-âÿÿÿàÿÿÿÛÿÿÿÑÿÿÿ
-õÿÿÿóÿÿÿ‚$ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ’y=ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ	Ê8ryÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿâ66æÿÿÿêÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ
úÿÿÿþÿÿÿÿÿÿÿÿÿÿ


ÿÿÿÿ



ÿÿÿÿÿ

ÿÿÿÿÿÿÿÿÿ
ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿò÷ÿÿÿöÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿòùÿÿÿøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
ÿÿÿÿÿÿÿÿ
ÿÿÿÿÿÿÿ
ÿÿÿ

ÿÿÿÿÿÿÿ
ÿÿ
ÿÿÿÿÿÿ
ÿÿÿÿ

ÿÿÿÿÿÿÿ
ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ
øÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
\ No newline at end of file
+
+âÿÿÿàÿÿÿ
+ÛÿÿÿÑÿÿÿ
+
+õÿÿÿóÿÿÿ‚$ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ’y=ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ	Ê8ryÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿâ66æÿÿÿêÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ
úÿÿÿþÿÿÿÿÿÿÿÿÿÿ


ÿÿÿÿ



ÿÿÿÿÿ

ÿÿÿÿÿÿÿÿÿ
ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿò÷ÿÿÿöÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿòùÿÿÿøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
ÿÿÿÿÿÿÿÿ
ÿÿÿÿÿÿÿ
ÿÿÿ

ÿÿÿÿÿÿÿ
ÿÿ
ÿÿÿÿÿÿ
ÿÿÿÿ

ÿÿÿÿÿÿÿ
ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ
øÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
\ No newline at end of file
diff --git a/TempleOS/Apps/ToTheFront/ToTheFront.CPP b/TempleOS/Apps/ToTheFront/ToTheFront.CPP
index a6d2247..dcb1e81 100644
--- a/TempleOS/Apps/ToTheFront/ToTheFront.CPP
+++ b/TempleOS/Apps/ToTheFront/ToTheFront.CPP
@@ -26,7 +26,7 @@ Alteration Ideas:
 #define PLAYER_1_ARMOR_PERCENT	50
 #define PLAYER_2_ARMOR_PERCENT	50
 
-/*Constants are often faster when compiled.
+/*Consts are often faster when compiled.
 This is an advantage of just-in-time compilation.
 You can't change them when you start a
 game over, however.  A down-side of this
@@ -44,22 +44,24 @@ is you can't use the  compile chk feature.
 	  "Stalin's Tanks.\n");
   if (!PopUpNoYes("Tournament Settings")) {
     d=PopUpRangeF64Log(300,2000,20,"%4f","Map Width In Pixels\n");
-    DefinePrintF("MAP_WIDTH","%f",d);
-    DefinePrintF("MAP_HEIGHT","%f",480.0/640.0*d);
+    DefinePrint("MAP_WIDTH","%f",d);
+    DefinePrint("MAP_HEIGHT","%f",480.0/640.0*d);
     d=PopUpRangeF64Exp(8,512,2,"%3f","Player 2 Units\n");
-    DefinePrintF("MAX_UNITS","%f",d);
+    DefinePrint("MAX_UNITS","%f",d);
     d=PopUpRangeF64(0.2,1.01,0.05,"%4.2f to 1.00","Player1:Player2 Odds\n");
-    DefinePrintF("P1_TO_P2_ODDS","%4.2f",d);
+    DefinePrint("P1_TO_P2_ODDS","%4.2f",d);
     d=PopUpRangeF64(0,100,10,"%3f% %%","Player 1 Armor Percent\n");
-    DefinePrintF("PLAYER_1_ARMOR_PERCENT","%f",d);
+    DefinePrint("PLAYER_1_ARMOR_PERCENT","%f",d);
     d=PopUpRangeF64(0,100,10,"%3f% %%","Player 2 Armor Percent\n");
-    DefinePrintF("PLAYER_2_ARMOR_PERCENT","%f",d);
+    DefinePrint("PLAYER_2_ARMOR_PERCENT","%f",d);
   }
-  DefinePrintF("DCOS","%12.9f",HEX_SIDE*Cos(60.0/180*ã));
-  DefinePrintF("DSIN","%12.9f",HEX_SIDE*Sin(60.0/180*ã));
-  DefinePrintF("HEX_RADIUS","%12.9f",DSIN+0.01); //slop
+  DefinePrint("DCOS","%12.9f",HEX_SIDE*Cos(60.0/180*ã));
+  DefinePrint("DSIN","%12.9f",HEX_SIDE*Sin(60.0/180*ã));
+  DefinePrint("HEX_RADIUS","%12.9f",DSIN+0.01); //slop
   d=PopUpRangeF64(0,100,25,"%3f% %%","Animation Delay\n");
-  DefinePrintF("ANIMATION_DELAY","%5.3f",d/100.0);
+  DefinePrint("ANIMATION_DELAY","%5.3f",d/100.0);
+  Randomize;
+  Randomize(PopUpI64("Seed(0x%X):",Fs->rnd_seed));
   XTalk(rotate_tank_task," ");
   TaskWait(rotate_tank_task);
   Kill(rotate_tank_task);
@@ -427,7 +429,7 @@ Bool RecalcVisible(I64 mode,Unit *tempu=NULL)
   Bool result;
 
 /*The compiler doesn't go out of it's way
-to know if something is constant.;-)  This
+to know if something is const.;-)  This
 just compiles with the val at compile
 time, an advantage of just-in-time over
 AOT binaries.  TempleOS has a limited
@@ -971,12 +973,12 @@ U0 MakeTerrain(U8 color,I64 cnt,I64 cluster_lo,I64 cluster_hi)
 {
   I64 i,j,l,row,col;
   for (i=0;iplayer=j;
       tempu->num=i;
       tempu->life=100;
-      tempu->facing=RandU16%6;
+      tempu->facing=Rand2U16%6;
       if (!j) {
 	if (i>=Round(MAX_UNITS*P1_TO_P2_ODDS*PLAYER_1_ARMOR_PERCENT/100.0)) {
 	  if (Round(i-MAX_UNITS*P1_TO_P2_ODDS*PLAYER_1_ARMOR_PERCENT/100.0)>=Round(0.85*(MAX_UNITS-MAX_UNITS*P1_TO_P2_ODDS*PLAYER_1_ARMOR_PERCENT/100.0)))
@@ -1213,8 +1215,8 @@ U0 InitUnits()
 	  break;
       }
       do {
-	row=RandU32%map_rows;
-	col=RandU32%(map_cols/3);
+	row=Rand2U32%map_rows;
+	col=Rand2U32%(map_cols/3);
 	if (j)
 	  col+=2*map_cols/3;
       } while (FindUnit(row,col));
@@ -1238,7 +1240,7 @@ U0 NewTurn()
   SleepUntil(msg_off_timeout);
   msg_off_timeout=sys_jiffies+JIFFY_FREQ*2*ANIMATION_DELAY+1;
   Snd(1000);
-  SPrintF(msg_buf,"Turn %d",++turn);
+  SPrint(msg_buf,"Turn %d",++turn);
   RVSetUp(0);
   RVSetUp(1);
   RecalcVisible(RV_ALL_UNITS);
@@ -1270,15 +1272,15 @@ U0 NewPhase()
   switch (phase) {
     case PHASE_PLOT0:
     case PHASE_PLOT1:
-      SPrintF(msg_buf,"Player %d Artillery Plot",cur_player+1);
+      SPrint(msg_buf,"Player %d Artillery Plot",cur_player+1);
       break;
     case PHASE_MOVE0:
     case PHASE_MOVE1:
-      SPrintF(msg_buf,"Player %d Move",cur_player+1);
+      SPrint(msg_buf,"Player %d Move",cur_player+1);
       break;
     case PHASE_FIRE0:
     case PHASE_FIRE1:
-      SPrintF(msg_buf,"Player %d Fire",cur_player+1);
+      SPrint(msg_buf,"Player %d Fire",cur_player+1);
       break;
   }
 }
@@ -1369,43 +1371,43 @@ U0 PickAI(U8 *dirname,I64 player)
 {
   I64 i=0;
   U8 *st;
-  CDirEntry *tempm,*tempm1,*tempm2;
+  CDirEntry *tempde,*tempde1,*tempde2;
   CDoc *doc=DocNew;
   Bool *old_silent=Silent(ON);
-  st=MSPrintF("%s/*.CPP*",dirname);
-  tempm=FilesFind(st);
+  st=MPrint("%s/*.CPP*",dirname);
+  tempde=FilesFind(st);
   Free(st);
-  tempm2=FilesFind("HOME/ToTheFront/*.CPP*");
-  tempm1=tempm;
+  tempde2=FilesFind("HOME/ToTheFront/*.CPP*");
+  tempde1=tempde;
   Silent(old_silent);
 
-  DocPrintF(doc,"Player %d Type\n\n$$FG,LTBLUE$$",player+1);
-  while (tempm1) {
+  DocPrint(doc,"Player %d Type\n\n$$FG,LTBLUE$$",player+1);
+  while (tempde1) {
     if (!(i++&3))
-      DocPutS(doc,"\n");
-    st=StrNew(tempm1->name);
+      DocPrint(doc,"\n");
+    st=StrNew(tempde1->name);
     FileExtRem(st);
-    tempm1->user_data=DocPrintF(doc,"$$MU-UL,\"%-10ts\",%d$$ ",st,tempm1);
+    tempde1->user_data=DocPrint(doc,"$$MU-UL,\"%-10ts\",%d$$ ",st,tempde1);
     Free(st);
-    tempm1=tempm1->next;
+    tempde1=tempde1->next;
   }
-  tempm1=tempm2;
-  while (tempm1) {
+  tempde1=tempde2;
+  while (tempde1) {
     if (!(i++&3))
-      DocPutS(doc,"\n");
-    st=StrNew(tempm1->name);
+      DocPrint(doc,"\n");
+    st=StrNew(tempde1->name);
     FileExtRem(st);
-    tempm1->user_data=DocPrintF(doc,"$$MU-UL,\"%-10ts\",%d$$ ",st,tempm1);
+    tempde1->user_data=DocPrint(doc,"$$MU-UL,\"%-10ts\",%d$$ ",st,tempde1);
     Free(st);
-    tempm1=tempm1->next;
+    tempde1=tempde1->next;
   }
-  DocPutS(doc,"\n\n\n$$FG$$Create your own AI in HOME/ToTheFront.");
-  while ((tempm1=PopUpMenu(doc))<0);
-  ExeFile(tempm1->full_name);
+  DocPrint(doc,"\n\n\n$$FG$$Create your own AI in HOME/ToTheFront.");
+  while ((tempde1=PopUpMenu(doc))<0);
+  ExeFile(tempde1->full_name);
   DocDel(doc);
-  CDirLstDel(tempm);
-  CDirLstDel(tempm2);
-  ExePrintF("plot_routines[%d]=&TanksPlot;"
+  DirLstDel(tempde);
+  DirLstDel(tempde2);
+  ExePrint("plot_routines[%d]=&TanksPlot;"
 	    "move_routines[%d]=&TanksMove;"
 	    "fire_routines[%d]=&TanksFire;",player,player,player);
 }
@@ -1416,7 +1418,7 @@ U0 DrawUnit(CTask *task,CDC *dc,Unit *tempu,I64 x,I64 y,F64 f)
   if (tempu->infantry)
     SpritePlot3(dc,x-task->horz_scroll.pos,y-task->vert_scroll.pos,0,tempu->img);
   else
-    SpritePlotRotZ3b(dc,x-task->horz_scroll.pos,y-task->vert_scroll.pos,0,tempu->img,f);
+    SpritePlotRotZ3B(dc,x-task->horz_scroll.pos,y-task->vert_scroll.pos,0,tempu->img,f);
 }
 
 U0 DrawUnits(CTask *task,CDC *dc)
@@ -1571,7 +1573,7 @@ U0 DrawIt(CTask *task,CDC *dc)
 	       i+14,FONT_HEIGHT+14);
 
     dc->color=RED;
-    GrPutS(dc,(task->win_pixel_width-i)>>1-task->win_scroll_x,
+    GrPrint(dc,(task->win_pixel_width-i)>>1-task->win_scroll_x,
 		(task->win_pixel_height-FONT_HEIGHT)>>1-task->win_scroll_y,
       msg_buf);
     if (msg_off_timeout) {
@@ -1587,29 +1589,29 @@ U0 DrawIt(CTask *task,CDC *dc)
 
   if (phase&~1==PHASE_PLOT) {
     dc->color=PURPLE;
-    SPrintF(buf,"Turn:%2d Artillery",turn);
+    SPrint(buf,"Turn:%2d Artillery",turn);
   } else if (phase&~1==PHASE_MOVE) {
     dc->color=GREEN;
-    SPrintF(buf,"Turn:%2d Move",turn);
+    SPrint(buf,"Turn:%2d Move",turn);
   } else {
     dc->color=RED;
-    SPrintF(buf,"Turn:%2d Fire",turn);
+    SPrint(buf,"Turn:%2d Fire",turn);
   }
-  GrPutS(dc,-task->win_scroll_x,-task->win_scroll_y,buf);
+  GrPrint(dc,-task->win_scroll_x,-task->win_scroll_y,buf);
 
-  SPrintF(buf,"%3d Units",alive_cnt[0]);
+  SPrint(buf,"%3d Units",alive_cnt[0]);
   if (cur_player || Blink)
     dc->color=CYAN;
   else
     dc->color=LTCYAN;
-  GrPutS(dc,-task->win_scroll_x+(13+7)*FONT_WIDTH,-task->win_scroll_y,buf);
+  GrPrint(dc,-task->win_scroll_x+(13+7)*FONT_WIDTH,-task->win_scroll_y,buf);
 
-  SPrintF(buf,"%3d Units",alive_cnt[1]);
+  SPrint(buf,"%3d Units",alive_cnt[1]);
   if (!cur_player || Blink)
     dc->color=PURPLE;
   else
     dc->color=LTPURPLE;
-  GrPutS(dc,-task->win_scroll_x+(13+7+10)*FONT_WIDTH,-task->win_scroll_y,buf);
+  GrPrint(dc,-task->win_scroll_x+(13+7+10)*FONT_WIDTH,-task->win_scroll_y,buf);
   Preempt(old_preempt);
 }
 
@@ -1723,4 +1725,27 @@ U0 ToTheFront()
   DCDel(map);
   CleanUp;
 }
-LÿÿÿÿüÿÿÿúÿÿÿüÿÿÿúÿÿÿþÿÿÿøÿÿÿüÿÿÿüÿÿÿûÿÿÿûÿÿÿûÿÿÿûÿÿÿûÿÿÿûÿÿÿûÿÿÿûÿÿÿüÿÿÿüÿÿÿüÿÿÿüÿÿÿGÿÿÿÿýÿÿÿüÿÿÿþÿÿÿüÿÿÿþÿÿÿúÿÿÿÏþÿÿÿþÿÿÿÿÿÿÿýÿÿÿýÿÿÿÿÿÿÿüÿÿÿüÿÿÿüÿÿÿýÿÿÿþÿÿÿûÿÿÿûÿÿÿýÿÿÿüÿÿÿþÿÿÿýÿÿÿþÿÿÿüÿÿÿýÿÿÿýÿÿÿýÿÿÿýÿÿÿÿÿÿÿÿÿÿÿ<þÿÿÿþÿÿÿ
\ No newline at end of file
+Lÿÿÿÿüÿÿÿúÿÿÿüÿÿÿúÿÿÿþÿÿÿ
+øÿÿÿüÿÿÿüÿÿÿ
+ûÿÿÿûÿÿÿûÿÿÿ
+ûÿÿÿ
+ûÿÿÿ
+ûÿÿÿûÿÿÿûÿÿÿ
+üÿÿÿüÿÿÿ
+üÿÿÿüÿÿÿGÿÿÿÿýÿÿÿ
+üÿÿÿ
+þÿÿÿüÿÿÿþÿÿÿ
+úÿÿÿÏþÿÿÿþÿÿÿ
+ÿÿÿÿýÿÿÿýÿÿÿ
+ÿÿÿÿüÿÿÿüÿÿÿ
+üÿÿÿ
+ýÿÿÿ
+þÿÿÿûÿÿÿûÿÿÿ
+ýÿÿÿüÿÿÿ
+þÿÿÿýÿÿÿþÿÿÿüÿÿÿ
+ýÿÿÿýÿÿÿýÿÿÿ
+ýÿÿÿ
+
+ÿÿÿÿÿÿÿÿ<
+þÿÿÿ
+þÿÿÿ
\ No newline at end of file
diff --git a/TempleOS/Apps/X-Caliber/X-Caliber.CPP b/TempleOS/Apps/X-Caliber/X-Caliber.CPP
index 9ef49b7..d3cde51 100644
--- a/TempleOS/Apps/X-Caliber/X-Caliber.CPP
+++ b/TempleOS/Apps/X-Caliber/X-Caliber.CPP
@@ -187,7 +187,7 @@ Ship *ShipNew(I64 x,I64 y,I64 type)
 
       for (i=0;isprings;i++) {
 	temps->s[i].rest_len=D3Dist(&temps->s[i].end1->x,&temps->s[i].end2->x);
-	temps->s[i].constant=10000;
+	temps->s[i].const=10000;
 	temps->s[i].strength  =30000;
 	if (i<=2)
 	  temps->s[i].color=LTCYAN;
@@ -225,7 +225,7 @@ Ship *ShipNew(I64 x,I64 y,I64 type)
 
       for (i=0;isprings;i++) {
 	temps->s[i].rest_len=D3Dist(&temps->s[i].end1->x,&temps->s[i].end2->x);
-	temps->s[i].constant=10000;
+	temps->s[i].const=10000;
 	temps->s[i].strength  =20000;
 	temps->s[i].color=BLACK;
 	QueIns(&temps->s[i],ode->last_spring);
@@ -272,7 +272,7 @@ Ship *ShipNew(I64 x,I64 y,I64 type)
 
       for (i=0;isprings;i++) {
 	temps->s[i].rest_len=D3Dist(&temps->s[i].end1->x,&temps->s[i].end2->x);
-	temps->s[i].constant= 40000;
+	temps->s[i].const= 40000;
 	temps->s[i].strength  =75000;
 	if (i>=3)
 	  temps->s[i].color=LTPURPLE;
@@ -379,14 +379,14 @@ U0 DrawIt(CTask *task,CDC *dc)
   if (ode!=task->last_ode) return;
 
   dc->color=WHITE;
-  GrPrintF(dc,0,0,"Level:%d Score:%d High Score:%d",level,score,best_score);
+  GrPrint(dc,0,0,"Level:%d Score:%d High Score:%d",level,score,best_score);
   if (game_over) {
     if (Blink)
-      GrPutS(dc,(task->win_pixel_width-9*FONT_WIDTH)/2,
+      GrPrint(dc,(task->win_pixel_width-9*FONT_WIDTH)/2,
 	  (task->win_pixel_height-FONT_HEIGHT)/2,"Game Over");
   } else if (show_level_msg) {
     if (Blink)
-      GrPrintF(dc,(task->win_pixel_width-8*FONT_WIDTH)/2,
+      GrPrint(dc,(task->win_pixel_width-8*FONT_WIDTH)/2,
 	  (task->win_pixel_height-FONT_HEIGHT)/2+50,"Level %d",level);
   }
 
@@ -439,7 +439,7 @@ U0 DrawIt(CTask *task,CDC *dc)
 	    D3AddEqu(D3Mul(t_left/25,&p,&p1),&temps->p[3].x);
 	    GrLine(dc,temps->p[1].x,temps->p[1].y,p1.x,p1.y);
 	    arg=Arg(p.x,p.y);
-	    SpritePlotRotZ3b(dc,temps->p[3].x,temps->p[3].y,0,$IB,"",1$,arg);
+	    SpritePlotRotZ3B(dc,temps->p[3].x,temps->p[3].y,0,$IB,"",1$,arg);
 	  }
 
 	  if (!(temps->s[5].flags&SSF_INACTIVE)) {
@@ -447,7 +447,7 @@ U0 DrawIt(CTask *task,CDC *dc)
 	    D3AddEqu(D3Mul(t_right/25,&p,&p2),&temps->p[4].x);
 	    GrLine(dc,temps->p[2].x,temps->p[2].y,p2.x,p2.y);
 	    arg=Arg(p.x,p.y);
-	    SpritePlotRotZ3b(dc,temps->p[4].x,temps->p[4].y,0,$IB,"",1$,arg);
+	    SpritePlotRotZ3B(dc,temps->p[4].x,temps->p[4].y,0,$IB,"",1$,arg);
 	  }
 
 	  if (tT>temps->reload_timeout)
@@ -458,19 +458,19 @@ U0 DrawIt(CTask *task,CDC *dc)
 	  switch (level) {
 	    case 3:
 	      if (!(temps->s[3].flags&SSF_INACTIVE))
-		SpritePlotRotZ3b(dc,temps->p[3].x,temps->p[3].y,0,img,arg);
+		SpritePlotRotZ3B(dc,temps->p[3].x,temps->p[3].y,0,img,arg);
 	      if (!(temps->s[5].flags&SSF_INACTIVE))
-		SpritePlotRotZ3b(dc,temps->p[4].x,temps->p[4].y,0,img,arg);
+		SpritePlotRotZ3B(dc,temps->p[4].x,temps->p[4].y,0,img,arg);
 	    case 2:
 	      if (!(temps->s[1].flags&SSF_INACTIVE))
-		SpritePlotRotZ3b(dc,temps->p[1].x,temps->p[1].y,0,img,arg);
+		SpritePlotRotZ3B(dc,temps->p[1].x,temps->p[1].y,0,img,arg);
 	      if (!(temps->s[2].flags&SSF_INACTIVE))
-		SpritePlotRotZ3b(dc,temps->p[2].x,temps->p[2].y,0,img,arg);
+		SpritePlotRotZ3B(dc,temps->p[2].x,temps->p[2].y,0,img,arg);
 	    case 1:
-	      SpritePlotRotZ3b(dc,temps->p[0].x,temps->p[0].y,0,img,arg);
+	      SpritePlotRotZ3B(dc,temps->p[0].x,temps->p[0].y,0,img,arg);
 	      break;
 	    default:
-	      SpritePlotRotZ3b(dc,temps->p[0].x,temps->p[0].y,0,$IB,"",6$,arg);
+	      SpritePlotRotZ3B(dc,temps->p[0].x,temps->p[0].y,0,$IB,"",6$,arg);
 	      if (temps->lasering && !temps->laser_overheat) {
 		draw_laser_line=TRUE;
 		Snd(1000);
@@ -494,7 +494,7 @@ U0 DrawIt(CTask *task,CDC *dc)
 		x=temps->p[temps->spacewalk_side].x*(1.0-d)+temps->p[0].x*(d);
 		y=temps->p[temps->spacewalk_side].y*(1.0-d)+temps->p[0].y*(d);
 	      }
-	      SpritePlotRotZ3b(dc,x,y,0,$IB,"",4$,arg+0.75*Sin(tT*2));
+	      SpritePlotRotZ3B(dc,x,y,0,$IB,"",4$,arg+0.75*Sin(tT*2));
 	    }
 	  } else {
 	    if (ctrl_panel.spacewalk) {
@@ -522,11 +522,11 @@ U0 DrawIt(CTask *task,CDC *dc)
 	  else
 	    img=$IB,"",3$;
 	  arg=Arg(p.x,p.y);
-	  SpritePlotRotZ3b(dc,temps->p[0].x,temps->p[0].y,0,img,arg);
+	  SpritePlotRotZ3B(dc,temps->p[0].x,temps->p[0].y,0,img,arg);
 	  arg=Arg(p1.x,p1.y);
-	  SpritePlotRotZ3b(dc,temps->p[0].x+p1.x,temps->p[0].y+p1.y,0,$IB,"",5$,arg);
+	  SpritePlotRotZ3B(dc,temps->p[0].x+p1.x,temps->p[0].y+p1.y,0,$IB,"",5$,arg);
 	  arg=Arg(p2.x,p2.y);
-	  SpritePlotRotZ3b(dc,temps->p[0].x+p2.x,temps->p[0].y+p2.y,0,$IB,"",5$,arg);
+	  SpritePlotRotZ3B(dc,temps->p[0].x+p2.x,temps->p[0].y+p2.y,0,$IB,"",5$,arg);
 	  for (i=0;imasses;i++) {
 	    dc->color=YELLOW;
 	    if (temps->p[i].temperature>=1.0)
@@ -1132,7 +1132,16 @@ U0 XCaliber()
   AcctRegWriteBranch("TempleOS/XCaliber","I64 best_score=%d;\n",best_score);
 }
 
-žÿÿÿÿÿÿÿÿÿÿÿÿýÿÿÿÿÿÿÿÿÿÿÿþÿÿÿþÿÿÿ‚	øÿÿÿýÿÿÿÿÿÿÿÿÿ			ÿÿÿÿÿÿÿÿÿÿ			
+ž
+ÿÿÿÿÿÿÿÿ
+
+
+ÿÿÿÿýÿÿÿ
+ÿÿÿÿ
+
+ÿÿÿÿ
+þÿÿÿþÿÿÿ
+‚	øÿÿÿýÿÿÿÿÿÿÿÿÿ			ÿÿÿÿÿÿÿÿÿÿ			
 	ÿÿÿÿÿÿÿÿ		
 
 
@@ -1142,9 +1151,35 @@ U0 XCaliber()
 
 
 	ÿÿÿÿÿÿÿÿÿÿ			
-	ÿÿÿÿÿÿÿÿÿÿÿÿÿ			ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ	ÿÿÿÿÿÿÿ‚	øÿÿÿýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀýÿÿÿüÿÿÿýÿÿÿþÿÿÿÿÿÿÿüÿÿÿþÿÿÿýÿÿÿþÿÿÿýÿÿÿÿÿÿÿÿÿÿÿýÿÿÿýÿÿÿÿÿÿÿÿÿÿÿýÿÿÿüÿÿÿûÿÿÿÿÿÿÿüÿÿÿúÿÿÿâýÿÿÿ÷ÿÿÿÿÿÿÿ
+	ÿÿÿÿÿÿÿÿÿÿÿÿÿ			ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ	ÿÿÿÿÿÿÿ‚	øÿÿÿýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀ
+ýÿÿÿüÿÿÿýÿÿÿ
+þÿÿÿÿÿÿÿüÿÿÿ
+þÿÿÿýÿÿÿ
+þÿÿÿýÿÿÿÿÿÿÿ
+ÿÿÿÿýÿÿÿ
+ýÿÿÿ
+ÿÿÿÿ
+ÿÿÿÿýÿÿÿ
+üÿÿÿûÿÿÿ
+
+ÿÿÿÿüÿÿÿúÿÿÿâ
+ýÿÿÿ
+÷ÿÿÿÿÿÿÿ
+
 ùÿÿÿ
 
-ýÿÿÿþÿÿÿÿÿÿÿÿÿÿÿýÿÿÿ÷ÿÿÿÿÿÿÿþÿÿÿúÿÿÿÿÿÿÿ


õÿÿÿ
õÿÿÿúÿÿÿþÿÿÿ
+
+ýÿÿÿþÿÿÿÿÿÿÿ
+ÿÿÿÿýÿÿÿ÷ÿÿÿ
+ÿÿÿÿþÿÿÿ
+úÿÿÿÿÿÿÿ

+

õÿÿÿ
+
õÿÿÿúÿÿÿ
+þÿÿÿ
 
-ùÿÿÿùÿÿÿþÿÿÿ–	úÿÿÿûÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿúÿÿÿúÿÿÿüÿÿÿþÿÿÿúÿÿÿýÿÿÿùÿÿÿùÿÿÿùÿÿÿÿÿÿÿùÿÿÿÿÿÿÿýÿÿÿÿÿÿÿ
\ No newline at end of file
+
+ùÿÿÿ
+ùÿÿÿþÿÿÿ–	úÿÿÿûÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿúÿÿÿúÿÿÿüÿÿÿþÿÿÿúÿÿÿ
+ýÿÿÿùÿÿÿ
+ùÿÿÿùÿÿÿÿÿÿÿ
+ùÿÿÿÿÿÿÿýÿÿÿÿÿÿÿ
\ No newline at end of file
diff --git a/TempleOS/Apps/X-Caliber/XCCtrls.CPP b/TempleOS/Apps/X-Caliber/XCCtrls.CPP
index 7923463..80476b3 100644
--- a/TempleOS/Apps/X-Caliber/XCCtrls.CPP
+++ b/TempleOS/Apps/X-Caliber/XCCtrls.CPP
@@ -48,17 +48,17 @@ U0 DrawCtrlPanelCtrl(CDC *dc,CCtrl *c)
       9*FONT_WIDTH+4,FONT_HEIGHT+4);
 
   dc->color=RED;
-  GrPutS(dc,(c->left+c->right+1)/2-9*FONT_WIDTH/2,
+  GrPrint(dc,(c->left+c->right+1)/2-9*FONT_WIDTH/2,
       c->top+CTRL_PANEL_BORDER+3+(CTRL_PANEL_SPACING-FONT_HEIGHT)/2,"SpaceWalk");
-  GrPutS(dc,c->left+CTRL_PANEL_SPACING-4*FONT_WIDTH/2,
+  GrPrint(dc,c->left+CTRL_PANEL_SPACING-4*FONT_WIDTH/2,
       (c->top+CTRL_PANEL_BUTTON_SIZE)+CTRL_PANEL_SPACING-FONT_HEIGHT-2,"Size");
-  GrPutS(dc,c->left+2*CTRL_PANEL_SPACING+1-4*FONT_WIDTH/2,
+  GrPrint(dc,c->left+2*CTRL_PANEL_SPACING+1-4*FONT_WIDTH/2,
       (c->top+CTRL_PANEL_BUTTON_SIZE)+CTRL_PANEL_SPACING-FONT_HEIGHT-2,"Fuse");
   dc->color=LTRED;
-  GrPrintF(dc,c->left+CTRL_PANEL_SPACING-FONT_WIDTH/2,
+  GrPrint(dc,c->left+CTRL_PANEL_SPACING-FONT_WIDTH/2,
       (c->top+CTRL_PANEL_BUTTON_SIZE)+CTRL_PANEL_SPACING+CTRL_PANEL_RANGE+3,
       "%d",s->bullet_radius*10/CTRL_PANEL_RANGE);
-  GrPrintF(dc,c->left+2*CTRL_PANEL_SPACING+1-FONT_WIDTH/2,
+  GrPrint(dc,c->left+2*CTRL_PANEL_SPACING+1-FONT_WIDTH/2,
       (c->top+CTRL_PANEL_BUTTON_SIZE)+CTRL_PANEL_SPACING+CTRL_PANEL_RANGE+3,
       "%d",s->fuse_time*10/CTRL_PANEL_RANGE);
   GrRect(dc,c->left+CTRL_PANEL_SPACING-3,	 (c->top+CTRL_PANEL_BUTTON_SIZE)+CTRL_PANEL_SPACING+CTRL_PANEL_RANGE-1-s->bullet_radius-2 ,7,5);
diff --git a/TempleOS/Compiler/Assembler.CPP b/TempleOS/Compiler/Assembler.CPP
index 8db8a0d..36a2e7a 100644
--- a/TempleOS/Compiler/Assembler.CPP
+++ b/TempleOS/Compiler/Assembler.CPP
@@ -1,28 +1,30 @@
-U0 AsmUnresolvedAdd(CAsmCtrl *a,U8 *exp,I64 type,I64 ip,I64 rel_ip,
-		    CLexUndef *undef_hash,I64 line_num,Bool U8_avail,Bool glbl)
+U0 AsmUnresolvedAdd(CAsmCtrl *a,U8 *ex,I64 type,I64 ip,I64 rel_ip,
+		CLexUndef *undef_local,CLexUndef *undef_glbl,I64 line_num,
+		Bool U8_avail)
 {
   CAsmUnresolvedRef *tempu=MAlloc(sizeof(CAsmUnresolvedRef));
-  tempu->exp=exp;
+  tempu->ex=ex;
   tempu->type=type;
   tempu->ip=ip;
   tempu->rel_ip=rel_ip;
-  tempu->undef_hash=undef_hash;
-  tempu->lit=FALSE;
+  tempu->imm_flag=FALSE;
   tempu->line_num=line_num;
   tempu->U8_avail=U8_avail;
   tempu->str=NULL;
-  if (glbl) {
-    tempu->next=a->glbl_unresolved;
-    a->glbl_unresolved=tempu;
-    if (undef_hash->hash->type & HTF_IMPORT) {
-      tempu->str=StrNew(undef_hash->hash->str);
-      if (undef_hash->hash->type & HTF_LIT)
-	tempu->lit=TRUE;
-    }
-  } else {
+  if (undef_local) {
+    tempu->undef_hash=undef_local;
     tempu->next=a->local_unresolved;
     a->local_unresolved=tempu;
     a->has_locals=TRUE;
+  } else {
+    tempu->undef_hash=undef_glbl;
+    tempu->next=a->glbl_unresolved;
+    a->glbl_unresolved=tempu;
+    if (undef_glbl->hash->type & HTF_IMPORT) {
+      tempu->str=StrNew(undef_glbl->hash->str);
+      if (undef_glbl->hash->type & HTF_IMM)
+	tempu->imm_flag=TRUE;
+    }
   }
 }
 
@@ -62,11 +64,11 @@ U0 AsmStoreCodeU8(CLex *lx,U8 b)
 {
   CAsmCtrl *a=lx->a;
   I64 i=a->ip>>ASM_CODE_BLK_BITS;
-  CAsmCodeBlk *tempc=a->code;
+  CAsmCodeBlk *tempc=a->cb;
   while (i--)
     if (!(tempc=tempc->next)) {
       i=a->ip>>ASM_CODE_BLK_BITS+1;
-      tempc=&a->code;
+      tempc=&a->cb;
       while (i--) {
 	if (!tempc->next)
 	  tempc->next=CAlloc(sizeof(CAsmCodeBlk));
@@ -83,8 +85,8 @@ U0 AsmStoreCodeU8(CLex *lx,U8 b)
     "%02X ",b;
     a->display_col+=3;
   }
-  if (a->ip>a->num_code_U8s)
-    a->num_code_U8s=a->ip;
+  if (a->ip>a->num_ex_U8s)
+    a->num_ex_U8s=a->ip;
 }
 
 U0 AsmStoreCodeU32(CLex *lx,U32 d)
@@ -93,17 +95,17 @@ U0 AsmStoreCodeU32(CLex *lx,U32 d)
   I64 i=a->ip>>ASM_CODE_BLK_BITS,
      j=(a->ip+sizeof(U32))>>ASM_CODE_BLK_BITS;
   U32 *_d;
-  CAsmCodeBlk *tempc=a->code;
+  CAsmCodeBlk *tempc=a->cb;
   if (i!=j) {
     for (i=0;icode;
+  tempc=a->cb;
   while (i--)
     if (!(tempc=tempc->next)) {
       i=a->ip>>ASM_CODE_BLK_BITS+1;
-      tempc=&a->code;
+      tempc=&a->cb;
       while (i--) {
 	if (!tempc->next)
 	  tempc->next=CAlloc(sizeof(CAsmCodeBlk));
@@ -122,8 +124,8 @@ U0 AsmStoreCodeU32(CLex *lx,U32 d)
     "%08X ",d;
     a->display_col+=9;
   }
-  if (a->ip>a->num_code_U8s)
-    a->num_code_U8s=a->ip;
+  if (a->ip>a->num_ex_U8s)
+    a->num_ex_U8s=a->ip;
 }
 
 U0 AsmStoreCodeU64(CLex *lx,U64 d)
@@ -132,17 +134,17 @@ U0 AsmStoreCodeU64(CLex *lx,U64 d)
   I64 i=a->ip>>ASM_CODE_BLK_BITS,
       j=(a->ip+sizeof(I64))>>ASM_CODE_BLK_BITS,
       *qq;
-  CAsmCodeBlk *tempc=a->code;
+  CAsmCodeBlk *tempc=a->cb;
   if (i!=j) {
     for (i=0;icode;
+  tempc=a->cb;
   while (i--)
     if (!(tempc=tempc->next)) {
       i=a->ip>>ASM_CODE_BLK_BITS+1;
-      tempc=&a->code;
+      tempc=&a->cb;
       while (i--) {
 	if (!tempc->next)
 	  tempc->next=CAlloc(sizeof(CAsmCodeBlk));
@@ -161,15 +163,15 @@ U0 AsmStoreCodeU64(CLex *lx,U64 d)
     "%016X ",d;
     a->display_col+=17;
   }
-  if (a->ip>a->num_code_U8s)
-    a->num_code_U8s=a->ip;
+  if (a->ip>a->num_ex_U8s)
+    a->num_ex_U8s=a->ip;
 }
 
 U0 AsmStoreCodeU8At(CLex *lx,U8 b,I64 ip)
 {
   CAsmCtrl *a=lx->a;
   I64 i=ip>>ASM_CODE_BLK_BITS+1;
-  CAsmCodeBlk *tempc=&a->code;
+  CAsmCodeBlk *tempc=&a->cb;
   while (i--) {
     if (!tempc->next) {
       tempc->next=CAlloc(sizeof(CAsmCodeBlk));
@@ -178,18 +180,18 @@ U0 AsmStoreCodeU8At(CLex *lx,U8 b,I64 ip)
     tempc=tempc->next;
   }
   tempc->body[ip & (ASM_CODE_BLK_SIZE-1)]=b;
-  if (ip+1>a->num_code_U8s)
-    a->num_code_U8s=ip+1;
+  if (ip+1>a->num_ex_U8s)
+    a->num_ex_U8s=ip+1;
 }
 
-I64 AsmExpressionEval(CLex *lx)
+I64 AsmLexExpression(CLex *lx)
 {
-  U8 *exp;
+  U8 *ex;
   I64 result=0;
   lx->undef_hash_entry=NULL;
   lx->flags&=~(LF_UNRESOLVED+LF_LOCAL);
   lx->abs_cnts=0;
-  if (!GetExpression(lx,&exp))
+  if (!IsLexExpression2Bin(lx,&ex))
     LexSkipEol(lx);
   else {
     if (lx->abs_cnts.externs)
@@ -197,8 +199,8 @@ I64 AsmExpressionEval(CLex *lx)
     if (lx->flags & LF_UNRESOLVED)
       LexExcept(lx,"ST_UNDEFINED_SYM");
     else {
-      result=Call(exp);
-      ExpressionDel(exp);
+      result=Call(ex);
+      ExpressionBinDel(ex);
     }
   }
   return result;
@@ -221,7 +223,7 @@ U0 AsmLocalsResolve(CLex *lx)
     templu=tempu->undef_hash;
     while (templu) {
       if (templu->hash->type & HTF_UNRESOLVED) {
-	PrintFErr("%S%04d %s %s\n","ST_UNDEFINED_SYM_LINE",
+	PrintErr("%S%04d %s %s\n","ST_UNDEFINED_SYM_LINE",
 	  tempu->line_num,a->last_label,templu->hash->str);
 	LexExcept(lx);
       }
@@ -229,17 +231,17 @@ U0 AsmLocalsResolve(CLex *lx)
       templu=templu->next;
     }
     if (!undefined) {
-      r=Call(tempu->exp);
+      r=Call(tempu->ex);
       if (!(tempu->type & 1)) {
 	r-=tempu->rel_ip;
 	if (tempu->type==EIE_REL_U8 && !(MIN_I8<=r<=MAX_I8) ||
 	    tempu->type==EIE_REL_U16 && !(MIN_I16<=r<=MAX_I16) ) {
-	  PrintFErr("%S%04d %s %s\n","ST_BRANCH_OUT_OF_RANGE_LINE",
+	  PrintErr("%S%04d %s %s\n","ST_BRANCH_OUT_OF_RANGE_LINE",
 	    tempu->line_num,a->last_label,label);
 	  LexExcept(lx);
 	}
-	if (tempu->U8_avail && tempu->type>EIE_LIT_U8 && -124<=r<=123)
-	  PrintFWarn("%S%04d %s %s\n","ST_COULD_USE_I8_DISP_LINE",
+	if (tempu->U8_avail && tempu->type>EIE_IMM_U8 && -124<=r<=123)
+	  PrintWarn("%S%04d %s %s\n","ST_COULD_USE_I8_DISP_LINE",
 	    tempu->line_num,a->last_label,label);
       }
       AsmStoreCodeU8At(lx,r.u8[0],tempu->ip);
@@ -257,7 +259,7 @@ U0 AsmLocalsResolve(CLex *lx)
 	}
       }
     }
-    ExpressionDel(tempu->exp);
+    ExpressionBinDel(tempu->ex);
     LinkedLstDel(tempu->undef_hash);
     Free(tempu);
     tempu=tempu1;
@@ -270,7 +272,7 @@ U0 AsmLocalsResolve(CLex *lx)
   a->has_locals=FALSE;
 }
 
-U0 AsmGlblsResolve(CLex *lx,CExe *ex)
+U0 AsmGlblsResolve(CLex *lx,CExe *tempx)
 {
   CAsmCtrl *a=lx->a;
   CHashFun *tempf;
@@ -278,7 +280,7 @@ U0 AsmGlblsResolve(CLex *lx,CExe *ex)
   I64 j,r=0;
   CExeImportExport *tempe,*tempe1;
   CLexUndef *templu;
-  CHashExport *tempess;
+  CHashExport *tempex;
   U8 *label;
   Bool undefined;
   CExternUsage *tempeu,*tempeu8;
@@ -290,19 +292,19 @@ U0 AsmGlblsResolve(CLex *lx,CExe *ex)
     templu=tempu->undef_hash;
     while (templu) {
       if (templu->hash->type & HTF_UNRESOLVED) {
-	tempess=templu->hash;
-	if (tempess->type & HTT_EXPORT_SYS_SYM &&
-	    tempess->type & HTF_UNRESOLVED &&
-	    !(tempess->type & HTF_IMPORT) &&
-	    (tempf=HashFind(tempess->str,lx->htc.hash_table_lst,HTT_FUN)) &&
+	tempex=templu->hash;
+	if (tempex->type & HTT_EXPORT_SYS_SYM &&
+	    tempex->type & HTF_UNRESOLVED &&
+	    !(tempex->type & HTF_IMPORT) &&
+	    (tempf=HashFind(tempex->str,lx->htc.hash_table_lst,HTT_FUN)) &&
 	    !Bt(tempf->flags,Cf_EXTERN)) {
-	  tempess->val=tempf->executable_addr;
-	  tempess->type&=~HTF_UNRESOLVED;
+	  tempex->val=tempf->executable_addr;
+	  tempex->type&=~HTF_UNRESOLVED;
 	  label=templu->hash->str;
 	} else {
-	  if (!(tempess->type & HTF_IMPORT)) {
-	    PrintFErr("%S%04d %s\n",
-	      "ST_UNDEFINED_SYM_LINE",tempu->line_num,tempess->str);
+	  if (!(tempex->type & HTF_IMPORT)) {
+	    PrintErr("%S%04d %s\n",
+	      "ST_UNDEFINED_SYM_LINE",tempu->line_num,tempex->str);
 	    LexExcept(lx);
 	  }
 	  undefined=TRUE;
@@ -311,7 +313,7 @@ U0 AsmGlblsResolve(CLex *lx,CExe *ex)
 	label=templu->hash->str;
       templu=templu->next;
     }
-    r=Call(tempu->exp);
+    r=Call(tempu->ex);
     if (!(tempu->type & 1))
       r-=tempu->rel_ip;
     if (undefined) {
@@ -327,12 +329,12 @@ U0 AsmGlblsResolve(CLex *lx,CExe *ex)
       if (!(tempu->type & 1))  { //Rel?
 	if (tempu->type==EIE_REL_U8 && !(MIN_I8<=r<=MAX_I8) ||
 	    tempu->type==EIE_REL_U16 && !(MIN_I16<=r<=MAX_I16)) {
-	  PrintFErr("%S%04d %s\n","ST_BRANCH_OUT_OF_RANGE_LINE",
+	  PrintErr("%S%04d %s\n","ST_BRANCH_OUT_OF_RANGE_LINE",
 	    tempu->line_num,label);
 	  LexExcept(lx);
 	}
-	if (tempu->U8_avail && tempu->type>EIE_LIT_U8 && -124<=r<=123)
-	  PrintFWarn("%S%04d %s %s\n","ST_COULD_USE_I8_DISP_LINE",
+	if (tempu->U8_avail && tempu->type>EIE_IMM_U8 && -124<=r<=123)
+	  PrintWarn("%S%04d %s %s\n","ST_COULD_USE_I8_DISP_LINE",
 	    tempu->line_num,a->last_label,label);
       }
     }
@@ -350,35 +352,35 @@ U0 AsmGlblsResolve(CLex *lx,CExe *ex)
 	}
       }
     }
-    ExpressionDel(tempu->exp);
+    ExpressionBinDel(tempu->ex);
     LinkedLstDel(tempu->undef_hash);
     Free(tempu);
     tempu=tempu1;
   }
 
-  tempess=lx->htc.glbl_hash_table->next_added;
-  while (tempess!=lx->htc.glbl_hash_table) {
-    if (tempess->type & HTF_IMPORT && tempess->use_cnt) {
-      if (tempe=tempess->ie_lst) {
-	if (tempess->import_name)
-	  tempe->str=StrNew(tempess->import_name);
+  tempex=lx->htc.glbl_hash_table->next_added;
+  while (tempex!=lx->htc.glbl_hash_table) {
+    if (tempex->type & HTF_IMPORT) {
+      if (tempex->use_cnt && (tempe=tempex->ie_lst)) {
+	if (tempex->import_name)
+	  tempe->str=StrNew(tempex->import_name);
 	else
-	  tempe->str=StrNew(tempess->str);
+	  tempe->str=StrNew(tempex->str);
 	do {
 	  tempe1=tempe->next;
-	  QueIns(tempe,ex->last_ie);
+	  QueIns(tempe,tempx->last_ie);
 	} while (tempe=tempe1);
-	tempess->ie_lst=NULL;
+	tempex->ie_lst=NULL;
       }
-    } else if (tempess->type & HTF_EXPORT) {
-      if (tempess->type & HTF_UNRESOLVED) {
-	PrintFErr("%S%s\n","ST_UNDEFINED_SYM",tempess->str);
+    } else if (tempex->type & HTF_EXPORT) {
+      if (tempex->type & HTF_UNRESOLVED) {
+	PrintErr("%S%s\n","ST_UNDEFINED_SYM",tempex->str);
 	LexExcept(lx);
       }
       tempe=CAlloc(sizeof(CExeImportExport));
       tempe->type=EIE_REL_EXPORT;
-      if (tempess->type & HTT_FUN) {
-	tempf=tempess;
+      if (tempex->type & HTT_FUN) {
+	tempf=tempex;
 	tempe->ip=tempf->executable_addr;
 	tempeu=tempf->ext_lst;
 	while (tempeu) {
@@ -391,17 +393,17 @@ U0 AsmGlblsResolve(CLex *lx,CExe *ex)
 	  Free(tempeu);
 	  tempeu=tempeu8;
 	}
-      } else if (tempess->type & HTT_GLBL_VAR)
-	tempe->ip=tempess(CHashGlblVar *)->data_addr_ip;
+      } else if (tempex->type & HTT_GLBL_VAR)
+	tempe->ip=tempex(CHashGlblVar *)->data_addr_ip;
       else
-	tempe->ip=tempess->val;
-      if (tempess->type & HTF_LIT)
+	tempe->ip=tempex->val;
+      if (tempex->type & HTF_IMM)
 	tempe->type++;
-      tempe->str=StrNew(tempess->str);
-      tempe->src_link=StrNew(tempess->src_link);
-      QueIns(tempe,ex->last_ie);
+      tempe->str=StrNew(tempex->str);
+      tempe->src_link=StrNew(tempex->src_link);
+      QueIns(tempe,tempx->last_ie);
     }
-    tempess=tempess->next_added;
+    tempex=tempex->next_added;
   }
 }
 
@@ -415,7 +417,7 @@ Bool PrsAsmImm(CLex *lx,CAsmArg *arg)
   lx->undef_hash_entry=NULL;
   lx->abs_cnts=0;
   lx->flags&=~(LF_UNRESOLVED+LF_LOCAL);
-  if (!GetExpression(lx,&arg->num.exp))
+  if (!IsLexExpression2Bin(lx,&arg->num.ex))
     LexSkipEol(lx);
   else {
     if (lx->abs_cnts.externs)
@@ -430,11 +432,11 @@ Bool PrsAsmImm(CLex *lx,CAsmArg *arg)
 	lx->a->has_locals=TRUE;
       }
     } else {
-      arg->num.i=Call(arg->num.exp);
+      arg->num.i=Call(arg->num.ex);
       arg->num.undef_glbl=lx->undef_hash_entry;
       lx->undef_hash_entry=NULL;
-      ExpressionDel(arg->num.exp);
-      arg->num.exp=NULL;
+      ExpressionBinDel(arg->num.ex);
+      arg->num.ex=NULL;
     }
   }
   return TRUE;
@@ -453,7 +455,7 @@ U0 PrsAsmArg(CLex *lx,CAsmArg *arg)
   while (TRUE) {
     if (lx->token==TK_IDENT) {
       if (temph=lx->hash_entry) {
-	if (temph->type&HTT_TYPE_MASK==HTT_REG) {
+	if (temph->type&HTG_TYPE_MASK==HTT_REG) {
 	  tempr=temph;
 	  switch (tempr->reg_type) {
 	    case REGT_R8:
@@ -490,7 +492,7 @@ U0 PrsAsmArg(CLex *lx,CAsmArg *arg)
 	      Lex(lx);
 	      return;
 	  }
-	} else if (temph->type&HTT_TYPE_MASK==HTT_ASM_KEYWORD) {
+	} else if (temph->type&HTG_TYPE_MASK==HTT_ASM_KEYWORD) {
 	  switch (temph->user_data0) {
 	    case AKW_I8:
 	    case AKW_U8:
@@ -530,7 +532,7 @@ U0 PrsAsmArg(CLex *lx,CAsmArg *arg)
       while (lx->token && lx->token!=']') {
 	if (lx->token==TK_IDENT) {
 	  if (temph=lx->hash_entry) {
-	    if (temph->type&HTT_TYPE_MASK==HTT_REG &&
+	    if (temph->type&HTG_TYPE_MASK==HTT_REG &&
 	      REGT_R16<=temph(CHashReg *)->reg_type<=REGT_R64) {
 	      tempr=temph;
 	      if (arg->reg1==CREG_NONE) {
@@ -581,88 +583,98 @@ U0 PrsAsmArg(CLex *lx,CAsmArg *arg)
 }
 
 
-U0 AsmMakeArgMask(CLex *lx,CAsmArg *arg,I64 *mask)
+U0 AsmMakeArgMask(CLex *lx,CAsmArg *arg,I64 *_mask)
 {
   CAsmCtrl *a=lx->a;
   if (arg->just_seg) {
     switch (arg->seg) {
-      case 0: *mask=1<fstk!=CREG_NONE) {
     if (arg->fstk)
-      *mask=1<size) {
-    case 0: *mask=0x3FF0FFFFFE; break;
-    case 1: *mask=0x1110111112; break;
-    case 2: *mask=0x2220222224; break;
-    case 4: *mask=0x0440444448; break;
-    case 8: *mask=0x0880888880; break;
+    case 0: *_mask=0x3FF0FFFFFE; break;
+    case 1: *_mask=0x1110111112; break;
+    case 2: *_mask=0x2220222224; break;
+    case 4: *_mask=0x0440444448; break;
+    case 8: *_mask=0x0880888880; break;
   }
   if (a->seg_size==64)
-    *mask&=  0xFF0FFFFFFF;
+    *_mask&=0xFF0FFFFFFF;
 
-  if (arg->reg1!=CREG_NONE && arg->imm_or_off_present && !arg->num.i) {
-    if (!arg->num.undef_glbl && !arg->num.undef_local)
+  if (arg->reg1!=CREG_NONE && arg->imm_or_off_present && !arg->num.i &&
+     !arg->num.undef_glbl && !arg->num.undef_local)
       arg->imm_or_off_present=FALSE;  //Zero displacement
-  }
 
   if (arg->reg2!=CREG_NONE || arg->scale!=1) {
-    *mask&=  0x0000FF0000;
+    *_mask&=0x0000FF0000;
     return;
   }
 
   if (arg->indirect) {
     if (arg->imm_or_off_present)
-      *mask&=0x00FFFF0000;
+      *_mask&=0x00FFFF0000;
     else
-      *mask&=0x000FFF0000;
+      *_mask&=0x000FFF0000;
   } else {
     if (arg->imm_or_off_present)
-      *mask&=0x000F00F0FE;
+      *_mask&=0x000F00F0FE;
     else
-      *mask&=0x3F0FFF0F00;
+      *_mask&=0x3F0FFF0F00;
   }
   if (arg->seg!=CREG_NONE)
-    *mask&=  0x00FFFF0000;
+    *_mask&=0x00FFFF0000;
   if (arg->reg1==CREG_NONE) {
     if (arg->indirect)
-      *mask&=0x00FFFF0000;
-    else if (MIN_I8<=arg->num.i<=MAX_I8)
-      *mask&=0x000000F0FE;
-    else if (MIN_I8<=arg->num.i<=MAX_U8)
-      *mask&=0x000000E0FE;
-    else if (MIN_I16<=arg->num.i<=MAX_I16)
-      *mask&=0x000000E0EE;
-    else if (MIN_I16<=arg->num.i<=MAX_U16)
-      *mask&=0x000000C0EE;
-    else if (MIN_I32<=arg->num.i<=MAX_I32)
-      *mask&=0x000000C0CE;
-    else if (MIN_I32<=arg->num.i<=MAX_U32)
-      *mask&=0x00000080CE;
-    else
-      *mask&=0x000000808E;
+      *_mask&=0x00FFFF0000;
+    else if (arg->num.i<0) {
+      if (arg->num.i>=MIN_I8)
+	*_mask&=0xF08E;
+      else if (arg->num.i>=MIN_I16)
+	*_mask&=0xE08E;
+      else if (arg->num.i>=MIN_I32)
+	*_mask&=0xC08E;
+      else
+	*_mask&=0x808E;
+    } else {
+      if (arg->num.i<=MAX_I8)
+	*_mask&=0xF0FE;
+      else if (arg->num.i<=MAX_U8)
+	*_mask&=0xE0FE;
+      else if (arg->num.i<=MAX_I16)
+	*_mask&=0xE0EE;
+      else if (arg->num.i<=MAX_U16)
+	*_mask&=0xC0EE;
+      else if (arg->num.i<=MAX_I32)
+	*_mask&=0xC0CE;
+      else if (arg->num.i<=MAX_U32)
+	*_mask&=0x80CE;
+      else
+	*_mask&=0x808E;
+    }
   } else {
-    *mask&=  0x3F00FF0F00;
+    *_mask&=  0x3F00FF0F00;
     if (!arg->indirect) //M8-M64
-      *mask&=  0xFFFF0FFFFF;
+      *_mask&=0xFFFF0FFFFF;
+  }
+  switch (arg->reg1) {
+    case CREG_RAX: *_mask&=~0x3000000000; break;
+    case CREG_RCX: *_mask&=~0x2F00000000; break;
+    case CREG_RDX: *_mask&=~0x1F00000000; break;
+    default:	   *_mask&=~0x3F00000000;
   }
-  if (arg->reg1)
-    *mask&=  0x30FFFFFFFF;
-  if (arg->reg1!=1)
-    *mask&=  0x2FFFFFFFFF;
-  if (arg->reg1!=2)
-    *mask&=  0x1FFFFFFFFF;
 }
 
 Bool AsmStoreNum(CLex *lx,CAsmNum2 *num2,I64 cnt,Bool U8_avail)
@@ -671,21 +683,16 @@ Bool AsmStoreNum(CLex *lx,CAsmNum2 *num2,I64 cnt,Bool U8_avail)
   I64 i;
   CExeAbsAddr *tempa;
 
-  if (!num2->lit)
+  if (!num2->imm_flag)
     num2->num.i-=num2->rel;
   for (i=0;iU8_cnt==1) {
-      if (num2->num.undef_local)
-	AsmUnresolvedAdd(a,num2->num.exp,EIE_REL_U8+num2->lit,a->ip,num2->rel,
-	  num2->num.undef_local,lx->cur_lfn->line_num,U8_avail,FALSE);
-      else if (num2->num.undef_glbl)
-	AsmUnresolvedAdd(a,num2->num.exp,EIE_REL_U8+num2->lit,a->ip,num2->rel,
-	  num2->num.undef_glbl,lx->cur_lfn->line_num,U8_avail,TRUE);
-      else {
-	if (!num2->lit && !(MIN_I8<=num2->num.i<=MAX_I8))
-	  LexExcept(lx,"ST_BRANCH_OUT_OF_RANGE");
-      }
-      if (num2->lit) {
+      if (num2->num.undef_local||num2->num.undef_glbl)
+	AsmUnresolvedAdd(a,num2->num.ex,EIE_REL_U8+num2->imm_flag,a->ip,num2->rel,
+	      num2->num.undef_local,num2->num.undef_glbl,lx->cur_lfn->line_num,U8_avail);
+      else if (!num2->imm_flag && !(MIN_I8<=num2->num.i<=MAX_I8))
+	LexExcept(lx,"ST_BRANCH_OUT_OF_RANGE");
+      if (num2->imm_flag) {
 	if (num2->num.abs_cnts.abs_addres & 1) {
 	  tempa=CAlloc(sizeof(CExeAbsAddr));
 	  tempa->next=a->abss;
@@ -702,98 +709,82 @@ Bool AsmStoreNum(CLex *lx,CAsmNum2 *num2,I64 cnt,Bool U8_avail)
 	  tempa->type=EAA_SUB_U8;
 	}
       }
-      AsmStoreCodeU8(lx,num2->num.i.u8[0]);
-    } else if (num2->U8_cnt==2) {
-      if (num2->num.undef_local)
-	AsmUnresolvedAdd(a,num2->num.exp,EIE_REL_U16+num2->lit,a->ip,num2->rel,
-	  num2->num.undef_local,lx->cur_lfn->line_num,U8_avail,FALSE);
-      else if (num2->num.undef_glbl)
-	AsmUnresolvedAdd(a,num2->num.exp,EIE_REL_U16+num2->lit,a->ip,num2->rel,
-	  num2->num.undef_glbl,lx->cur_lfn->line_num,U8_avail,TRUE);
-      else if (!num2->lit && !(MIN_I16<=num2->num.i<=MAX_I16))
-	LexExcept(lx,"ST_BRANCH_OUT_OF_RANGE");
-      if (num2->lit) {
-	if (num2->num.abs_cnts.abs_addres & 1) {
-	  tempa=CAlloc(sizeof(CExeAbsAddr));
-	  tempa->next=a->abss;
-	  a->abss=tempa;
-	  tempa->ip=a->ip;
-	  tempa->type=EAA_ADD_U16;
+      AsmStoreCodeU8(lx,num2->num.i);
+    } else {
+      if (num2->U8_cnt==2) {
+	if (num2->num.undef_local||num2->num.undef_glbl)
+	  AsmUnresolvedAdd(a,num2->num.ex,EIE_REL_U16+num2->imm_flag,a->ip,num2->rel,
+		num2->num.undef_local,num2->num.undef_glbl,lx->cur_lfn->line_num,U8_avail);
+	else if (!num2->imm_flag && !(MIN_I16<=num2->num.i<=MAX_I16))
+	  LexExcept(lx,"ST_BRANCH_OUT_OF_RANGE");
+	if (num2->imm_flag) {
+	  if (num2->num.abs_cnts.abs_addres & 1) {
+	    tempa=CAlloc(sizeof(CExeAbsAddr));
+	    tempa->next=a->abss;
+	    a->abss=tempa;
+	    tempa->ip=a->ip;
+	    tempa->type=EAA_ADD_U16;
+	  }
+	} else {
+	  if (num2->num.abs_cnts.c_addres & 1) {
+	    tempa=CAlloc(sizeof(CExeAbsAddr));
+	    tempa->next=a->abss;
+	    a->abss=tempa;
+	    tempa->ip=a->ip;
+	    tempa->type=EAA_SUB_U16;
+	  }
 	}
-      } else {
-	if (num2->num.abs_cnts.c_addres & 1) {
-	  tempa=CAlloc(sizeof(CExeAbsAddr));
-	  tempa->next=a->abss;
-	  a->abss=tempa;
-	  tempa->ip=a->ip;
-	  tempa->type=EAA_SUB_U16;
+	AsmStoreCodeU8(lx,num2->num.i.u8[0]);
+	AsmStoreCodeU8(lx,num2->num.i.u8[1]);
+      } else if (num2->U8_cnt==4) {
+	if (num2->num.undef_local||num2->num.undef_glbl)
+	  AsmUnresolvedAdd(a,num2->num.ex,EIE_REL_U32+num2->imm_flag,a->ip,num2->rel,
+		num2->num.undef_local,num2->num.undef_glbl,lx->cur_lfn->line_num,U8_avail);
+	else if (!num2->imm_flag && !(MIN_I32<=num2->num.i<=MAX_I32))
+	  LexExcept(lx,"ST_BRANCH_OUT_OF_RANGE");
+	if (num2->imm_flag) {
+	  if (num2->num.abs_cnts.abs_addres & 1) {
+	    tempa=CAlloc(sizeof(CExeAbsAddr));
+	    tempa->next=a->abss;
+	    a->abss=tempa;
+	    tempa->ip=a->ip;
+	    tempa->type=EAA_ADD_U32;
+	  }
+	} else {
+	  if (num2->num.abs_cnts.c_addres & 1) {
+	    tempa=CAlloc(sizeof(CExeAbsAddr));
+	    tempa->next=a->abss;
+	    a->abss=tempa;
+	    tempa->ip=a->ip;
+	    tempa->type=EAA_SUB_U32;
+	  }
 	}
+	AsmStoreCodeU32(lx,num2->num.i);
+      } else if (num2->U8_cnt==8) {
+	if (num2->num.undef_local||num2->num.undef_glbl)
+	  AsmUnresolvedAdd(a,num2->num.ex,EIE_REL_U64+num2->imm_flag,a->ip,num2->rel,
+		num2->num.undef_local,num2->num.undef_glbl,lx->cur_lfn->line_num,U8_avail);
+	if (num2->imm_flag) {
+	  if (num2->num.abs_cnts.abs_addres & 1) {
+	    tempa=CAlloc(sizeof(CExeAbsAddr));
+	    tempa->next=a->abss;
+	    a->abss=tempa;
+	    tempa->ip=a->ip;
+	    tempa->type=EAA_ADD_U64;
+	  }
+	} else {
+	  if (num2->num.abs_cnts.c_addres & 1) {
+	    tempa=CAlloc(sizeof(CExeAbsAddr));
+	    tempa->next=a->abss;
+	    a->abss=tempa;
+	    tempa->ip=a->ip;
+	    tempa->type=EAA_SUB_U64;
+	  }
+	}
+	AsmStoreCodeU64(lx,num2->num.i);
       }
-      AsmStoreCodeU8(lx,num2->num.i.u8[0]);
-      AsmStoreCodeU8(lx,num2->num.i.u8[1]);
       if (U8_avail && !num2->num.undef_local && !num2->num.undef_glbl &&
-	  !num2->lit && -124<=num2->num.i<=123) {
-	LexPutWarn(lx,"ST_COULD_USE_I8_DISP");
-	return FALSE;
-      }
-    } else if (num2->U8_cnt==4) {
-      if (num2->num.undef_local)
-	AsmUnresolvedAdd(a,num2->num.exp,EIE_REL_U32+num2->lit,a->ip,num2->rel,
-	  num2->num.undef_local,lx->cur_lfn->line_num,U8_avail,FALSE);
-      else if (num2->num.undef_glbl)
-	AsmUnresolvedAdd(a,num2->num.exp,EIE_REL_U32+num2->lit,a->ip,num2->rel,
-	  num2->num.undef_glbl,lx->cur_lfn->line_num,U8_avail,TRUE);
-      if (num2->lit) {
-	if (num2->num.abs_cnts.abs_addres & 1) {
-	  tempa=CAlloc(sizeof(CExeAbsAddr));
-	  tempa->next=a->abss;
-	  a->abss=tempa;
-	  tempa->ip=a->ip;
-	  tempa->type=EAA_ADD_U32;
-	}
-      } else {
-	if (num2->num.abs_cnts.c_addres & 1) {
-	  tempa=CAlloc(sizeof(CExeAbsAddr));
-	  tempa->next=a->abss;
-	  a->abss=tempa;
-	  tempa->ip=a->ip;
-	  tempa->type=EAA_SUB_U32;
-	}
-      }
-      AsmStoreCodeU32(lx,num2->num.i.u32[0]);
-      if (U8_avail && !num2->num.undef_local && !num2->num.undef_glbl &&
-	  !num2->lit && -124<=num2->num.i<=123) {
-	LexPutWarn(lx,"ST_COULD_USE_I8_DISP");
-	return FALSE;
-      }
-    } else if (num2->U8_cnt==8) {
-//TODO
-      if (num2->num.undef_local)
-	AsmUnresolvedAdd(a,num2->num.exp,EIE_REL_U32+num2->lit,a->ip,num2->rel,
-	  num2->num.undef_local,lx->cur_lfn->line_num,U8_avail,FALSE);
-      else if (num2->num.undef_glbl)
-	AsmUnresolvedAdd(a,num2->num.exp,EIE_REL_U32+num2->lit,a->ip,num2->rel,
-	  num2->num.undef_glbl,lx->cur_lfn->line_num,U8_avail,TRUE);
-      if (num2->lit) {
-	if (num2->num.abs_cnts.abs_addres & 1) {
-	  tempa=CAlloc(sizeof(CExeAbsAddr));
-	  tempa->next=a->abss;
-	  a->abss=tempa;
-	  tempa->ip=a->ip;
-	  tempa->type=EAA_ADD_U64;
-	}
-      } else {
-	if (num2->num.abs_cnts.c_addres & 1) {
-	  tempa=CAlloc(sizeof(CExeAbsAddr));
-	  tempa->next=a->abss;
-	  a->abss=tempa;
-	  tempa->ip=a->ip;
-	  tempa->type=EAA_SUB_U64;
-	}
-      }
-      AsmStoreCodeU64(lx,num2->num.i);
-      if (U8_avail && !num2->num.undef_local && !num2->num.undef_glbl &&
-	  !num2->lit && -124<=num2->num.i<=123) {
+	    !num2->imm_flag && -124<=num2->num.i<=123) {
 	LexPutWarn(lx,"ST_COULD_USE_I8_DISP");
 	return FALSE;
       }
@@ -804,8 +795,7 @@ Bool AsmStoreNum(CLex *lx,CAsmNum2 *num2,I64 cnt,Bool U8_avail)
 
 U8 asm_seg_prefixes[6]={0x26,0x2E,0x36,0x3E,0x64,0x65};
 
-Bool AsmCodeInstruction(CLex *lx,
-			  CHashOpcode *tempo,I64 argcnt)
+Bool PrsAsmInstruction(CLex *lx,CHashOpcode *tempo,I64 argcnt)
 {
   CAsmCtrl *a=lx->a;
   I64 i,j,a1,a2,om,seg,arg1mask,arg2mask;
@@ -839,8 +829,8 @@ Bool AsmCodeInstruction(CLex *lx,
 	else if (!(tempi->flags & IEF_NO_REX))
 	  cur.REX=0x40;
       }
-      cur.disp.lit=1;
-      cur.imm.lit=1;
+      cur.disp.imm_flag=TRUE;
+      cur.imm.imm_flag=TRUE;
       om=tempi->opcode_modifier;
       a1=tempi->arg1;
       a2=tempi->arg2;
@@ -863,20 +853,20 @@ Bool AsmCodeInstruction(CLex *lx,
 
       if (om==OM_CB) {
 	cur.imm.U8_cnt=1;
-	cur.imm.lit=0;
+	cur.imm.imm_flag=FALSE;
       } else if (om==OM_CW) {
 	cur.imm.U8_cnt=2;
-	cur.imm.lit=0;
+	cur.imm.imm_flag=FALSE;
       } else if (om==OM_CD) {
 	cur.imm.U8_cnt=4;
-	cur.imm.lit=0;
+	cur.imm.imm_flag=FALSE;
       }
 
       if (argcnt==1) {
 	if (best.U8_cnt!=255 && !found_second_possible && !best.is_dft) {
 	  found_second_possible=TRUE;
 	  if (!a->arg1.size)
-	    PrintFWarn("%S%s,%04d\n","ST_NO_SIZE_SPECIFIED",
+	    PrintWarn("%S%s,%04d\n","ST_NO_SIZE_SPECIFIED",
 		   lx->cur_lfn->name,lx->cur_lfn->line_num-1);
 	}
 	if (tempi->flags & IEF_PLUS_OPCODE) {
@@ -903,7 +893,7 @@ Bool AsmCodeInstruction(CLex *lx,
 	    MemCpy(&cur.disp.num,&tempa1->num,sizeof(CAsmNum));
 	    cur.disp.U8_cnt=4;
 	    if (a->seg_size==64)
-	      cur.disp.lit=0;
+	      cur.disp.imm_flag=FALSE;
 	  } else {
 	    if (tempa1->reg2==CREG_NONE && tempa1->scale==1) {
 	      cur.ModrM|=tempa1->reg1&7;
@@ -951,7 +941,7 @@ Bool AsmCodeInstruction(CLex *lx,
 	    if (!ModrM_complete) {
 	      if (tempa1->imm_or_off_present) {
 		MemCpy(&cur.disp.num,&tempa1->num,sizeof(CAsmNum));
-		if (!cur.disp.num.exp && MIN_I8<=cur.disp.num.i<=MAX_I8) {
+		if (!cur.disp.num.ex && MIN_I8<=cur.disp.num.i<=MAX_I8) {
 		  cur.ModrM|=0x40;
 		  cur.disp.U8_cnt=1;
 		} else if (a->seg_size==16) {
@@ -983,7 +973,7 @@ Bool AsmCodeInstruction(CLex *lx,
 	if (best.U8_cnt!=255 && !found_second_possible && !best.is_dft) {
 	  found_second_possible=TRUE;
 	  if (!a->arg1.size && !a->arg2.size)
-	    PrintFWarn("%S%s,%04d\n","ST_NO_SIZE_SPECIFIED",
+	    PrintWarn("%S%s,%04d\n","ST_NO_SIZE_SPECIFIED",
 	      lx->cur_lfn->name,lx->cur_lfn->line_num-1);
 	}
 	if (tempi->flags & IEF_PLUS_OPCODE) {
@@ -1091,11 +1081,11 @@ Bool AsmCodeInstruction(CLex *lx,
 	      MemCpy(&cur.disp.num,&tempa1->num,sizeof(CAsmNum));
 	      cur.disp.U8_cnt=4;
 	      if (a->seg_size==64)
-		cur.disp.lit=0;
+		cur.disp.imm_flag=FALSE;
 	    } else {
 	      if (tempa1->imm_or_off_present) {
 		MemCpy(&cur.disp.num,&tempa1->num,sizeof(CAsmNum));
-		if (!cur.disp.num.exp && MIN_I8<=cur.disp.num.i<=MAX_I8) {
+		if (!cur.disp.num.ex && MIN_I8<=cur.disp.num.i<=MAX_I8) {
 		  cur.ModrM|=0x40;
 		  cur.disp.U8_cnt=1;
 		} else if (a->seg_size==16) {
@@ -1159,8 +1149,8 @@ Bool AsmCodeInstruction(CLex *lx,
       if (a->seg_size==64 && cur.REX&0x40==0x40 &&
 	  (cur.REX!=0x40 || tempi->flags&IEF_40_REX || cur.has_REX) &&
 	  (cur.REX&7 || !(tempi->flags&IEF_REX_ONLY_R8_R15 ||
-		      tempi->flags&IEF_REX_XOR_LIKE && tempa1->reg1==tempa2->reg1 && cur.ModrM&0xC0==0xC0)))
-	  cur.U8_cnt++;
+	  tempi->flags&IEF_REX_XOR_LIKE && tempa1->reg1==tempa2->reg1 && cur.ModrM&0xC0==0xC0)))
+	cur.U8_cnt++;
       if (cur.U8_cntflags & IEF_DONT_SWITCH_MODES &&
 	  (cur.has_addr_prefix || cur.has_operand_prefix)))
@@ -1183,8 +1173,8 @@ Bool AsmCodeInstruction(CLex *lx,
     if (a->seg_size==64 && best.REX&0x40==0x40 &&
 	(best.REX!=0x40 || tempi->flags&IEF_40_REX || best.has_REX) &&
 	(best.REX&7||!(tempi->flags&IEF_REX_ONLY_R8_R15 ||
-		    tempi->flags&IEF_REX_XOR_LIKE && tempa1->reg1==tempa2->reg1 && best.ModrM&0xC0==0xC0)))
-	AsmStoreCodeU8(lx,best.REX);
+	tempi->flags&IEF_REX_XOR_LIKE && tempa1->reg1==tempa2->reg1 && best.ModrM&0xC0==0xC0)))
+      AsmStoreCodeU8(lx,best.REX);
     for (j=0;jopcode_cnt-1;j++)
       AsmStoreCodeU8(lx,tempi->opcode[j]);
     AsmStoreCodeU8(lx,best.last_opcode_U8);
@@ -1213,7 +1203,7 @@ Bool AsmCodeInstruction(CLex *lx,
 }
 
 
-U0 DefineU8s(CLex *lx,I64 U8_cnt)
+U0 PrsAsmDefine(CLex *lx,I64 U8_cnt)
 {
   CAsmCtrl *a=lx->a;
   Bool is_dup;
@@ -1236,7 +1226,7 @@ U0 DefineU8s(CLex *lx,I64 U8_cnt)
       lx->abs_cnts=0;
       lx->undef_hash_entry=NULL;
       lx->flags&=~(LF_UNRESOLVED+LF_LOCAL);
-      if (!GetExpression(lx,&num2.num.exp))
+      if (!IsLexExpression2Bin(lx,&num2.num.ex))
 	LexSkipEol(lx);
       else {
 	if (lx->abs_cnts.externs)
@@ -1251,8 +1241,8 @@ U0 DefineU8s(CLex *lx,I64 U8_cnt)
 	    lx->undef_hash_entry=NULL;
 	  }
 	} else {
-	  i=Call(num2.num.exp);
-	  ExpressionDel(num2.num.exp);
+	  i=Call(num2.num.ex);
+	  ExpressionBinDel(num2.num.ex);
 	}
       }
       if (lx->token==TK_IDENT && lx->hash_entry) {
@@ -1261,14 +1251,14 @@ U0 DefineU8s(CLex *lx,I64 U8_cnt)
 	  if (Lex(lx)!='(')
 	    LexExcept(lx,"ST_EXPECTING_LEFT_PAREN");
 	  Lex(lx); //skip (
-	  dup_val=AsmExpressionEval(lx);
+	  dup_val=AsmLexExpression(lx);
 	  if (lx->token!=')')
 	    LexExcept(lx,"ST_EXPECTING_RIGHT_PAREN");
 	  Lex(lx); //SKIP )
 	}
       }
       num2.rel=0;
-      num2.lit=1;
+      num2.imm_flag=TRUE;
       num2.num.abs_cnts=lx->abs_cnts;
       if (is_dup) {
 	if (num2.num.undef_local || num2.num.undef_glbl)
@@ -1296,12 +1286,12 @@ U0 PrsAsmBlk(CLex *lx)
       old_hash_mask=lx->htc.hash_mask,
       old_flags=lx->flags & LF_ASM_EXPRESSIONS;
   CHashOpcode *tempo;
-  CHashExport *tempess;
+  CHashExport *tempex;
   U8 *next_last_label;
 
   a->seg_size=64;
   lx->flags|=LF_ASM_EXPRESSIONS;
-  lx->htc.hash_mask=lx->htc.hash_mask&~(HTF_FLAGS_MASK|HTT_FILE|HTT_INTERNAL_TYPE|HTT_MODULE)|HTT_ASM_KEYWORD;
+  lx->htc.hash_mask=lx->htc.hash_mask&~(HTG_FLAGS_MASK|HTT_FILE|HTT_INTERNAL_TYPE|HTT_MODULE)|HTT_ASM_KEYWORD;
   if (lx->token!='{')
     LexExcept(lx,"ST_EXPECTING_LEFT_BRACE");
   else
@@ -1318,13 +1308,13 @@ U0 PrsAsmBlk(CLex *lx)
 	      if (lx->token!=TK_IDENT)
 		LexExcept(lx,"ST_EXPECTING_IDENTIFIER");
 	      else {
-		tempess=NULL;
-		tempess=CAlloc(sizeof(CHashExport));
-		tempess->str=lx->ident;
+		tempex=NULL;
+		tempex=CAlloc(sizeof(CHashExport));
+		tempex->str=lx->ident;
 		lx->ident=0;
-		tempess->type=HTT_EXPORT_SYS_SYM|HTF_UNRESOLVED;
-		HashAdd(tempess,lx->htc.glbl_hash_table);
-		tempess->type|=HTF_IMPORT;
+		tempex->type=HTT_EXPORT_SYS_SYM|HTF_UNRESOLVED;
+		HashAdd(tempex,lx->htc.glbl_hash_table);
+		tempex->type|=HTF_IMPORT;
 		if (Lex(lx)==',')
 		  Lex(lx); //skip ','
 	      }
@@ -1341,12 +1331,12 @@ U0 PrsAsmBlk(CLex *lx)
 	      LexExcept(lx,"ST_JUST_ONE_ORG_ALLOWED");
 	    if (a->ip)
 	      LexExcept(lx,"ST_ORG_MUST_BE_AT_BEGINNING");
-	    a->module_org=AsmExpressionEval(lx);
+	    a->module_org=AsmLexExpression(lx);
 	    break;
 	  case AKW_ALIGN:
 	    if (lx->htc.local_var_lst)
 	      LexExcept(lx,"ST_NO_FUN_ASM_ALIGN");
-	    i=AsmExpressionEval(lx);
+	    i=AsmLexExpression(lx);
 	    if (Bsf(i)!=Bsr(i))
 	      LexExcept(lx,"ST_ALIGN_MUST_BE_POWER_OF_TWO");
 	    if (!(lx->flags&LF_AOT_COMPILE) && i>8)
@@ -1355,21 +1345,21 @@ U0 PrsAsmBlk(CLex *lx)
 	    i=CeilU64(a->ip,i);
 	    if (lx->token==',')
 	      Lex(lx);
-	    k=AsmExpressionEval(lx);
+	    k=AsmLexExpression(lx);
 	    for (j=a->ip;jlst=TRUE;
@@ -1406,7 +1396,7 @@ U0 PrsAsmBlk(CLex *lx)
 	    }
 	  }
 	}
-	AsmCodeInstruction(lx,tempo,argcnt);
+	PrsAsmInstruction(lx,tempo,argcnt);
       } else if (lx->hash_entry->type & HTT_EXPORT_SYS_SYM) {
 	if (Btr(&lx->hash_entry->type,HTf_UNRESOLVED)) {
 	  if (lx->hash_entry->type & HTF_LOCAL) {
@@ -1441,27 +1431,27 @@ U0 PrsAsmBlk(CLex *lx)
 	LexExcept(lx,"ST_SYNTAX_ERROR");
     } else {
       if (lx->token==TK_IDENT) {
-	tempess=CAlloc(sizeof(CHashExport));
-	tempess->str=lx->ident;
+	tempex=CAlloc(sizeof(CHashExport));
+	tempex->str=lx->ident;
 	lx->ident=0;
-	tempess->type=HTT_EXPORT_SYS_SYM;
-	tempess->val=a->ip;
+	tempex->type=HTT_EXPORT_SYS_SYM;
+	tempex->val=a->ip;
 	Lex(lx);  //Skip ident
 	if (lx->token!=':' && lx->token!=TK_DBL_COLON)
 	  LexExcept(lx,"ST_EXPECTING_COLON");
 	else {
-	  if (*tempess->str=='@' && tempess->str[1]=='@') {
+	  if (*tempex->str=='@' && tempex->str[1]=='@') {
 	    if (lx->token==TK_DBL_COLON)
 	      LexExcept(lx,"ST_NO_LOCAL_GLBL_EXPORT");
-	    HashAdd(tempess,lx->htc.local_hash_table);
+	    HashAdd(tempex,lx->htc.local_hash_table);
 	    a->has_locals=TRUE;
 	  } else
-	    HashAdd(tempess,lx->htc.glbl_hash_table);
+	    HashAdd(tempex,lx->htc.glbl_hash_table);
 	  if (lx->token==TK_DBL_COLON) {
-	    tempess->type|=HTF_EXPORT;
-	    SetSrcFileInfo(lx,tempess);
+	    tempex->type|=HTF_EXPORT;
+	    SetSrcFileInfo(lx,tempex);
 	    AsmLocalsResolve(lx);
-	    a->last_label=tempess->str;
+	    a->last_label=tempex->str;
 	  }
 	  Lex(lx);
 	}
diff --git a/TempleOS/Compiler/BackEnd.CPP b/TempleOS/Compiler/BackEnd.CPP
index 873cf24..34782c0 100644
--- a/TempleOS/Compiler/BackEnd.CPP
+++ b/TempleOS/Compiler/BackEnd.CPP
@@ -620,9 +620,9 @@ U0 ICZero(CIntermediateCode *tempi,I64 r)
     ICU16(tempi,0xC033+r<<8+r<<11);
 }
 
-U0 ICOr(CIntermediateCode *tempi,I64 r)
+U0 ICTest(CIntermediateCode *tempi,I64 r)
 {
-  I64 i=0xC00B48; //OR R,R
+  I64 i=0xC08548; //TEST R,R
   if (r>7) {
     i+=5;
     r&=7;
@@ -942,7 +942,7 @@ U0 ICAddEct(CIntermediateCode *tempi,I64 t1,I64 r1,I64 d1,
   ICMov(tempi,t1,r1,d1,TY_REG+IT_I64,result_reg,0,ip);
 }
 
-U0 ICAddConst(CIntermediateCode *tempi,I64 t1,I64 r1,I64 d1,
+U0 ICAddSubEctImm(CIntermediateCode *tempi,I64 t1,I64 r1,I64 d1,
 	   I64 t2,I64 r2,I64 d2,I64 d,I64 op,I64 ip)
 {
   I64 i,r;
@@ -1089,7 +1089,7 @@ U0 ICAddConst(CIntermediateCode *tempi,I64 t1,I64 r1,I64 d1,
       }
       break;
     case TY_STK>>4:
-      ICAddConst(tempi,TY_REG+IT_I64,CREG_RAX,0,t2,r2,d2,d,op,ip);
+      ICAddSubEctImm(tempi,TY_REG+IT_I64,CREG_RAX,0,t2,r2,d2,d,op,ip);
       ICPushRegs(tempi,1<disp(F64)))) {
 	  t1=TY_RIP_DISP32+IT_I64;
 	  r1=CREG_RIP;
-	  d1=CBFloatConstFind(lx,p1->disp(F64))+buf2;
+	  d1=LCCFloatConstFind(lx,p1->disp(F64))+buf2;
 	}
       } else {
 	ICPush(tempi,p1->type,p1->reg,p1->disp,ip);
@@ -1334,7 +1334,7 @@ U0 ICFPow(CLex *lx,CIntermediateCode *tempi,U8 *buf,I64 ip)
 { //for POW
   I64 i;
   CExeImportExport *tempe;
-  CHashExport *tempess=HashFind("SYS_POW",lx->htc.hash_table_lst,HTT_EXPORT_SYS_SYM);
+  CHashExport *tempex=HashFind("SYS_POW",lx->htc.hash_table_lst,HTT_EXPORT_SYS_SYM);
 
   if (tempi->ic_flags & ICF_P1_FIRST) {
     ICMov(tempi,TY_REG+IT_I64,CREG_RDX,0,
@@ -1348,22 +1348,22 @@ U0 ICFPow(CLex *lx,CIntermediateCode *tempi,U8 *buf,I64 ip)
 	tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip);
   }
   if (lx->flags&LF_AOT_COMPILE) {
-    if (!tempess) {
-      tempess=CAlloc(sizeof(CHashExport));
-      tempess->str=StrNew("SYS_POW");
-      tempess->type=HTT_EXPORT_SYS_SYM|HTF_UNRESOLVED|HTF_IMPORT;
-      HashAdd(tempess,lx->htc.glbl_hash_table);
+    if (!tempex) {
+      tempex=CAlloc(sizeof(CHashExport));
+      tempex->str=StrNew("SYS_POW");
+      tempex->type=HTT_EXPORT_SYS_SYM|HTF_UNRESOLVED|HTF_IMPORT;
+      HashAdd(tempex,lx->htc.glbl_hash_table);
     }
-    if (tempess->type&HTF_IMPORT) {
-      if (GetOpt(OPTf_USE_LIT64)) {
+    if (tempex->type&HTF_IMPORT) {
+      if (GetOpt(OPTf_USE_IMM64)) {
 	ICU16(tempi,0xBB48);
 	ICU64(tempi,0);
 	if (buf) {
 	  tempe=CAlloc(sizeof(CExeImportExport));
-	  tempe->type=EIE_LIT_U64;
+	  tempe->type=EIE_IMM_U64;
 	  tempe->ip=ip+tempi->ic_cnt-8;
-	  tempe->next=tempess->ie_lst;
-	  tempess->ie_lst=tempe;
+	  tempe->next=tempex->ie_lst;
+	  tempex->ie_lst=tempe;
 	}
 	ICU16(tempi,0xD3FF);
       } else {
@@ -1373,19 +1373,19 @@ U0 ICFPow(CLex *lx,CIntermediateCode *tempi,U8 *buf,I64 ip)
 	  tempe=CAlloc(sizeof(CExeImportExport));
 	  tempe->type=EIE_REL_U32;
 	  tempe->ip=ip+tempi->ic_cnt-4;
-	  tempe->next=tempess->ie_lst;
-	  tempess->ie_lst=tempe;
+	  tempe->next=tempex->ie_lst;
+	  tempex->ie_lst=tempe;
 	}
       }
     } else { //Kernel
-      if (tempess->type&HTF_UNRESOLVED)
+      if (tempex->type&HTF_UNRESOLVED)
 	throw(EXCEPT_COMPILER,23);
       else {
-	i=tempess->val-(ip+tempi->ic_cnt+5);
+	i=tempex->val-(ip+tempi->ic_cnt+5);
 	if (!(MIN_I32<=i<=MAX_I32)) {
 	  throw(EXCEPT_COMPILER,23);
 //	    ICU16(tempi,0xBB48);
-//	    ICU64(tempi,tempess->val);
+//	    ICU64(tempi,tempex->val);
 //	    ICU16(tempi,0xD3FF);
 	} else {
 	  ICU8(tempi,0xE8);
@@ -1394,10 +1394,10 @@ U0 ICFPow(CLex *lx,CIntermediateCode *tempi,U8 *buf,I64 ip)
       }
     }
   } else {
-    i=tempess->val-(ip+tempi->ic_cnt+5);
+    i=tempex->val-(ip+tempi->ic_cnt+5);
     if (!(MIN_I32<=i<=MAX_I32)) {
       ICU16(tempi,0xBB48);
-      ICU64(tempi,tempess->val);
+      ICU64(tempi,tempex->val);
       ICU16(tempi,0xD3FF);
     } else {
       ICU8(tempi,0xE8);
@@ -1443,7 +1443,7 @@ U0 ICFOp(CLex *lx,CIntermediateCode *tempi,I64 op,U8 *buf2,I64 ip)
 	if (!(builtin2=ICBuiltInFloatConst(p2->disp(F64)))) {
 	  t2=TY_RIP_DISP32+IT_I64;
 	  r2=CREG_RIP;
-	  d2=CBFloatConstFind(lx,p2->disp(F64))+buf2;
+	  d2=LCCFloatConstFind(lx,p2->disp(F64))+buf2;
 	}
       } else {
 	ICPush(tempi,p2->type,p2->reg,p2->disp,ip);
@@ -1466,7 +1466,7 @@ U0 ICFOp(CLex *lx,CIntermediateCode *tempi,I64 op,U8 *buf2,I64 ip)
 	    if (!(builtin1=ICBuiltInFloatConst(p1->disp(F64)))) {
 	      t1=TY_RIP_DISP32+IT_I64;
 	      r1=CREG_RIP;
-	      d1=CBFloatConstFind(lx,p1->disp(F64))+buf2;
+	      d1=LCCFloatConstFind(lx,p1->disp(F64))+buf2;
 	    }
 	  } else {
 	    ICPush(tempi,p1->type,p1->reg,p1->disp,ip);
@@ -1486,7 +1486,7 @@ U0 ICFOp(CLex *lx,CIntermediateCode *tempi,I64 op,U8 *buf2,I64 ip)
 	    if (!(builtin2=ICBuiltInFloatConst(p2->disp(F64)))) {
 	      t2=TY_RIP_DISP32+IT_I64;
 	      r2=CREG_RIP;
-	      d2=CBFloatConstFind(lx,p2->disp(F64))+buf2;
+	      d2=LCCFloatConstFind(lx,p2->disp(F64))+buf2;
 	    }
 	  } else {
 	    ICPush(tempi,p2->type,p2->reg,p2->disp,ip);
@@ -1520,7 +1520,7 @@ U0 ICFOp(CLex *lx,CIntermediateCode *tempi,I64 op,U8 *buf2,I64 ip)
 	    if (!(builtin2=ICBuiltInFloatConst(p2->disp(F64)))) {
 	      t2=TY_RIP_DISP32+IT_I64;
 	      r2=CREG_RIP;
-	      d2=CBFloatConstFind(lx,p2->disp(F64))+buf2;
+	      d2=LCCFloatConstFind(lx,p2->disp(F64))+buf2;
 	    }
 	  } else {
 	    ICPush(tempi,p2->type,p2->reg,p2->disp,ip);
@@ -1540,7 +1540,7 @@ U0 ICFOp(CLex *lx,CIntermediateCode *tempi,I64 op,U8 *buf2,I64 ip)
 	    if (!(builtin1=ICBuiltInFloatConst(p1->disp(F64)))) {
 	      t1=TY_RIP_DISP32+IT_I64;
 	      r1=CREG_RIP;
-	      d1=CBFloatConstFind(lx,p1->disp(F64))+buf2;
+	      d1=LCCFloatConstFind(lx,p1->disp(F64))+buf2;
 	    }
 	  } else {
 	    ICPush(tempi,p1->type,p1->reg,p1->disp,ip);
@@ -1794,7 +1794,7 @@ U0 ICFOpEqual(CLex *lx,CIntermediateCode *tempi,I64 op,U8 *buf2,I64 ip)
 	    if (!(builtin2=ICBuiltInFloatConst(p2->disp(F64)))) {
 	      t2=TY_RIP_DISP32+IT_I64;
 	      r2=CREG_RIP;
-	      d2=CBFloatConstFind(lx,p2->disp(F64))+buf2;
+	      d2=LCCFloatConstFind(lx,p2->disp(F64))+buf2;
 	    }
 	  } else {
 	    ICPush(tempi,p2->type,p2->reg,p2->disp,ip);
@@ -1830,7 +1830,7 @@ U0 ICFOpEqual(CLex *lx,CIntermediateCode *tempi,I64 op,U8 *buf2,I64 ip)
 	    if (!(builtin2=ICBuiltInFloatConst(p2->disp(F64)))) {
 	      t2=TY_RIP_DISP32+IT_I64;
 	      r2=CREG_RIP;
-	      d2=CBFloatConstFind(lx,p2->disp(F64))+buf2;
+	      d2=LCCFloatConstFind(lx,p2->disp(F64))+buf2;
 	    }
 	  } else {
 	    ICPush(tempi,p2->type,p2->reg,p2->disp,ip);
@@ -1943,7 +1943,7 @@ U0 ICFOpEqual(CLex *lx,CIntermediateCode *tempi,I64 op,U8 *buf2,I64 ip)
 	    if (!(builtin2=ICBuiltInFloatConst(p2->disp(F64)))) {
 	      t2=TY_RIP_DISP32+IT_I64;
 	      r2=CREG_RIP;
-	      d2=CBFloatConstFind(lx,p2->disp(F64))+buf2;
+	      d2=LCCFloatConstFind(lx,p2->disp(F64))+buf2;
 	    }
 	  } else {
 	    ICPush(tempi,p2->type,p2->reg,p2->disp,ip);
@@ -1980,7 +1980,7 @@ U0 ICFOpEqual(CLex *lx,CIntermediateCode *tempi,I64 op,U8 *buf2,I64 ip)
 	    if (!(builtin2=ICBuiltInFloatConst(p2->disp(F64)))) {
 	      t2=TY_RIP_DISP32+IT_I64;
 	      r2=CREG_RIP;
-	      d2=CBFloatConstFind(lx,p2->disp(F64))+buf2;
+	      d2=LCCFloatConstFind(lx,p2->disp(F64))+buf2;
 	    }
 	  } else {
 	    ICPush(tempi,p2->type,p2->reg,p2->disp,ip);
@@ -2046,7 +2046,7 @@ U0 ICFCmpAndBranch(CLex *lx,CIntermediateCode *tempi,I64 ip,
   Bool dont_push_float,dont_pop_float,alt,short_jmp;
   I64 i,rsp_size=0,builtin1=0,builtin2=0,
 	t1,r1,d1,t2,r2,d2;
-  CCodeBlkMisc *lb;
+  CLexCodeMisc *lb;
   U8 *buf2;
 
   if (tempi->ic_flags&ICF_ALTERNATE_TEMPLATE) {
@@ -2083,7 +2083,7 @@ U0 ICFCmpAndBranch(CLex *lx,CIntermediateCode *tempi,I64 ip,
 		tempi->ic_flags&ICF_PUSH_CMP) {
 	    t2=TY_RIP_DISP32+IT_I64;
 	    r2=CREG_RIP;
-	    d2=CBFloatConstFind(lx,p2->disp(F64))+buf2;
+	    d2=LCCFloatConstFind(lx,p2->disp(F64))+buf2;
 	  }
 	} else {
 	  ICPush(tempi,p2->type,p2->reg,p2->disp,ip2);
@@ -2111,7 +2111,7 @@ U0 ICFCmpAndBranch(CLex *lx,CIntermediateCode *tempi,I64 ip,
 	      if (!(builtin1=ICBuiltInFloatConst(p1->disp(F64)))) {
 		t1=TY_RIP_DISP32+IT_I64;
 		r1=CREG_RIP;
-		d1=CBFloatConstFind(lx,p1->disp(F64))+buf2;
+		d1=LCCFloatConstFind(lx,p1->disp(F64))+buf2;
 	      }
 	    } else {
 	      ICPush(tempi,p1->type,p1->reg,p1->disp,ip2);
@@ -2133,7 +2133,7 @@ U0 ICFCmpAndBranch(CLex *lx,CIntermediateCode *tempi,I64 ip,
 		  tempi->ic_flags&ICF_PUSH_CMP) {
 	      t2=TY_RIP_DISP32+IT_I64;
 	      r2=CREG_RIP;
-	      d2=CBFloatConstFind(lx,p2->disp(F64))+buf2;
+	      d2=LCCFloatConstFind(lx,p2->disp(F64))+buf2;
 	    }
 	  } else {
 	    ICPush(tempi,p2->type,p2->reg,p2->disp,ip2);
@@ -2171,7 +2171,7 @@ U0 ICFCmpAndBranch(CLex *lx,CIntermediateCode *tempi,I64 ip,
 		  tempi->ic_flags&ICF_PUSH_CMP) {
 	      t2=TY_RIP_DISP32+IT_I64;
 	      r2=CREG_RIP;
-	      d2=CBFloatConstFind(lx,p2->disp(F64))+buf2;
+	      d2=LCCFloatConstFind(lx,p2->disp(F64))+buf2;
 	    }
 	  } else {
 	    ICPush(tempi,p2->type,p2->reg,p2->disp,ip2);
@@ -2197,7 +2197,7 @@ U0 ICFCmpAndBranch(CLex *lx,CIntermediateCode *tempi,I64 ip,
 	      if (!(builtin1=ICBuiltInFloatConst(p1->disp(F64)))) {
 		t1=TY_RIP_DISP32+IT_I64;
 		r1=CREG_RIP;
-		d1=CBFloatConstFind(lx,p1->disp(F64))+buf2;
+		d1=LCCFloatConstFind(lx,p1->disp(F64))+buf2;
 	      }
 	    } else {
 	      ICPush(tempi,p1->type,p1->reg,p1->disp,ip2);
@@ -2283,33 +2283,36 @@ U0 ICFCmpAndBranch(CLex *lx,CIntermediateCode *tempi,I64 ip,
   lb=OptLabelFwd(tempi->ic_data);
   short_jmp=ToBool(tempi->ic_flags&ICF_SHORT_JMP);
   if (!buf && lb->addr!=INVALID_PTR) {
-    i=lb->addr-ip;
-    if (lb->flags&CBMF_POP_CMP)
+    i=lb->addr-(ip+2);
+    if (lb->flags&CMF_POP_CMP) {
       if(tempi->ic_flags&ICF_PUSH_CMP)
 	i+=4;
       else
 	i+=8;
-    if (MIN_I8+2ic_flags|=ICF_SHORT_JMP;
     i=lb->addr-(ip+2);
-    if (lb->flags&CBMF_POP_CMP)
+    if (lb->flags&CMF_POP_CMP) {
       if(tempi->ic_flags&ICF_PUSH_CMP)
 	i+=4;
       else
 	i+=8;
+    }
     ICU16(tempi,i<<8+us.u8[2]);
   } else {
     tempi->ic_flags&=~ICF_SHORT_JMP;
     i=lb->addr-(ip+6);
-    if (lb->flags&CBMF_POP_CMP)
+    if (lb->flags&CMF_POP_CMP) {
       if(tempi->ic_flags&ICF_PUSH_CMP)
 	i+=4;
       else
 	i+=8;
+    }
     ICU16(tempi,us.u16[0]);
     ICU32(tempi,i);
   }
@@ -2715,7 +2718,7 @@ U0 ICAddSubEctEqual(CIntermediateCode *tempi,I64 ptype,I64 t1,I64 r1,I64 d1,
   I64 result_reg,temp,i;
   if (tempi->ic_flags & ICF_NOT_ADDR) {
     if (t3&TY_MASK==TY_IMM) {
-      ICAddConst(tempi,
+      ICAddSubEctImm(tempi,
 	t2&TY_MASK+ptype,r2,d2,t2&TY_MASK+ptype,r2,d2,d3,op,ip);
       if (t1&TY_MASK)
 	ICMov(tempi,t1,r1,d1,t2&TY_MASK+ptype,r2,d2,ip);
@@ -2969,7 +2972,7 @@ U0 ICNot(CIntermediateCode *tempi,I64 ip)
     ICU8(tempi,0xFF);
   } else {
     ICMov(tempi,TY_REG+IT_I64,CREG_RAX,0,tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip);
-    ICOr(tempi,CREG_RAX);
+    ICTest(tempi,CREG_RAX);
   }
   ICU24(tempi,0xC0940F);   //SETZ AL
   ICU32(tempi,0xC0B60F48); //MOVZX RAX,AL
@@ -2998,9 +3001,9 @@ U0 ICAndAnd(CIntermediateCode *tempi,I64 ip)
       r2=tempi->p1.reg;
   }
   ICZero(tempi,CREG_RAX);
-  ICOr(tempi,r2);
+  ICTest(tempi,r2);
   ICU16(tempi,0x0874);
-  ICOr(tempi,CREG_RCX);
+  ICTest(tempi,CREG_RCX);
   ICU16(tempi,0x0374);
   ICU24(tempi,0xC0FF48);
   ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp,TY_REG+IT_I64,CREG_RAX,0,ip);
@@ -3057,12 +3060,12 @@ U0 ICXorXor(CIntermediateCode *tempi,I64 ip)
       r2=tempi->p1.reg;
   }
   ICZero(tempi,CREG_RBX);
-  ICOr(tempi,r2);
+  ICTest(tempi,r2);
   ICU16(tempi,0x0374);
   ICU24(tempi,0xC3FF48);
 
   ICZero(tempi,CREG_RAX);
-  ICOr(tempi,CREG_RCX);
+  ICTest(tempi,CREG_RCX);
   ICU16(tempi,0x0374);
   ICU24(tempi,0xC0FF48);
  
@@ -3297,7 +3300,7 @@ U0 ICBitOps(CIntermediateCode *tempi,CICArg *p1,CICArg *p2,CIntermediateCode *te
 
 U0 ICPreempt(CIntermediateCode *tempi,I64 ip)
 {
-  CIntermediateCode *tempi2=tempi+1;
+  CIntermediateCode *tempi2=tempi->next;
   if (tempi->p1.type&TY_MASK==TY_IMM) {
     ICZero(tempi,CREG_RBX);
     ICU32(tempi,0x1B8B4864);
@@ -3314,7 +3317,7 @@ U0 ICPreempt(CIntermediateCode *tempi,I64 ip)
       ICZero(tempi,CREG_RAX);
     ICZero(tempi,CREG_RBX);
     ICU32(tempi,0x1B8B4864);
-    ICOr(tempi,CREG_RCX);
+    ICTest(tempi,CREG_RCX);
     ICU16(tempi,0x0774);
     ICU24(tempi,0x6BBA0F);
     ICU16(tempi,CTask.task_flags+TASKf_PREEMPT<<8);
@@ -3357,7 +3360,7 @@ U0 ICToBool(CLex *,CIntermediateCode *tempi,I64 ip)
       tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip);
     r=CREG_RAX;
   }
-  ICOr(tempi,r);
+  ICTest(tempi,r);
   ICU24(tempi,0xC0950F);   //SETNZ AL
   ICU32(tempi,0xC0B60F48); //MOVZX RAX,AL
 }
@@ -3384,7 +3387,7 @@ U0 ICPreIncDec(CIntermediateCode *tempi,I64 op,I64 ip)
   CHashClass *tempc=tempi->ic_class,*tempc1=tempc-1;
   if (tempi->ic_flags & ICF_NOT_ADDR) {
     if (tempc->ptr_cnt && tempc1->size!=1) {
-      ICAddConst(tempi,tempi->p1.type&TY_MASK+tempi->p1.ptype,tempi->p1.reg,tempi->p1.disp,
+      ICAddSubEctImm(tempi,tempi->p1.type&TY_MASK+tempi->p1.ptype,tempi->p1.reg,tempi->p1.disp,
 	tempi->p1.type&TY_MASK+tempi->p1.ptype,tempi->p1.reg,tempi->p1.disp,
 	tempc1->size,op.u16[3],ip);
     } else
@@ -3402,7 +3405,7 @@ U0 ICPreIncDec(CIntermediateCode *tempi,I64 op,I64 ip)
     }
     if (tempc->ptr_cnt &&
 	tempc1->size!=1) {
-      ICAddConst(tempi,TY_DISP+tempi->p1.ptype,r,0,
+      ICAddSubEctImm(tempi,TY_DISP+tempi->p1.ptype,r,0,
 	TY_DISP+tempi->p1.ptype,r,0,
 	tempc1->size,op.u16[3],ip);
     } else
@@ -3426,7 +3429,7 @@ U0 ICPostIncDec(CIntermediateCode *tempi,I64 op,I64 ip)
     }
     if (tempc->ptr_cnt &&
 	tempc1->size!=1) {
-      ICAddConst(tempi,tempi->p1.type&TY_MASK+tempi->p1.ptype,tempi->p1.reg,tempi->p1.disp,
+      ICAddSubEctImm(tempi,tempi->p1.type&TY_MASK+tempi->p1.ptype,tempi->p1.reg,tempi->p1.disp,
 	tempi->p1.type&TY_MASK+tempi->p1.ptype,tempi->p1.reg,tempi->p1.disp,
 	tempc1->size,op.u16[3],ip);
     } else
@@ -3446,7 +3449,7 @@ U0 ICPostIncDec(CIntermediateCode *tempi,I64 op,I64 ip)
     }
     if (tempc->ptr_cnt &&
 	tempc1->size!=1) {
-      ICAddConst(tempi,TY_DISP+tempi->p1.ptype,r,0,
+      ICAddSubEctImm(tempi,TY_DISP+tempi->p1.ptype,r,0,
 	TY_DISP+tempi->p1.ptype,r,0,
 	tempc1->size,op.u16[3],ip);
     } else
@@ -3472,7 +3475,7 @@ U0 ICDerefPostIncDec(CIntermediateCode *tempi,I64 op,I64 ip)
     ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp,
        TY_DISP+t,r,0,ip);
     if (tempc1->size!=1) {
-      ICAddConst(tempi,tempi->p1.type&TY_MASK+IT_I64,tempi->p1.reg,tempi->p1.disp,
+      ICAddSubEctImm(tempi,tempi->p1.type&TY_MASK+IT_I64,tempi->p1.reg,tempi->p1.disp,
 	tempi->p1.type&TY_MASK+IT_I64,tempi->p1.reg,tempi->p1.disp,
 	tempc1->size,op.u16[3],ip);
     } else
@@ -3488,7 +3491,7 @@ U0 ICDerefPostIncDec(CIntermediateCode *tempi,I64 op,I64 ip)
     ICMov(tempi,TY_REG+IT_I64,CREG_RDX,0,
       TY_DISP+IT_I64,r,0,ip);
     if (tempc1->size!=1) {
-      ICAddConst(tempi,TY_DISP+IT_I64,r,0,
+      ICAddSubEctImm(tempi,TY_DISP+IT_I64,r,0,
 	TY_DISP+IT_I64,r,0,
 	tempc1->size,op.u16[3],ip);
     } else
@@ -3515,7 +3518,7 @@ U0 ICAssignPostIncDec(CIntermediateCode *tempi,I64 op,I64 ip)
       ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp,
 	tempi->p2.type,tempi->p2.reg,tempi->p2.disp,ip);
     if (tempc1->size!=1 || tempi->p1.type&TY_MASK==TY_STK) {
-      ICAddConst(tempi,tempi->p1.type,tempi->p1.reg,tempi->p1.disp,
+      ICAddSubEctImm(tempi,tempi->p1.type,tempi->p1.reg,tempi->p1.disp,
 	TY_REG+IT_I64,r,0,
 	tempc1->size,op.u16[3],ip);
     } else
@@ -3531,7 +3534,7 @@ U0 ICAssignPostIncDec(CIntermediateCode *tempi,I64 op,I64 ip)
       ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp,
 	tempi->p2.type,tempi->p2.reg,tempi->p2.disp,ip);
     if (tempc1->size!=1) {
-      ICAddConst(tempi,TY_DISP+IT_I64,CREG_RDX,0,
+      ICAddSubEctImm(tempi,TY_DISP+IT_I64,CREG_RDX,0,
 	TY_REG+IT_I64,CREG_RCX,0,
 	tempc1->size,op.u16[3],ip);
     } else
@@ -3544,9 +3547,9 @@ U0 ICCmpAndBranch(CIntermediateCode *tempi,Bool has_result,I64 ip,
    I64 us,I64 is,I64 not_us,I64 not_is,
    U8 *buf,I64 ip2)
 {
-  I64 r1,d1,r2,i=0x48,j,t1,t2,result_reg;
+  I64 r1,r2,i=0x48,j,t1,t2,result_reg;
   Bool short_jmp,done;
-  CCodeBlkMisc *lb;
+  CLexCodeMisc *lb;
   CICArg *p1=&tempi->p1,*p2=&tempi->p2,*swap;
 
   j=p1->disp;
@@ -3560,33 +3563,11 @@ U0 ICCmpAndBranch(CIntermediateCode *tempi,Bool has_result,I64 ip,
 
   j=p2->disp;
   if (p2->type&TY_MASK==TY_IMM && MIN_I32<=j<=MAX_I32) {
-    if (!has_result &&
-	  p1->type&TY_MASK==TY_DISP && //TODO, other modes
-	  p1->type&IT_MASK>=IT_I64) {
-      r1=p1->reg;
-      d1=p1->disp;
-      if (r1>7) {
-	i++;
-	r1&=7;
-      }
-      if (MIN_I8<=j<=MAX_I8)
-	i+=0x388300;
-      else
-	i+=0x388100;
-      if (!d1) {
-	ICU24(tempi,0x000000+i+r1<<16);
-      } else if (MIN_I8<=d1<=MAX_I8) {
-	ICU24(tempi,0x400000+i+r1<<16);
-	ICU8(tempi,d1);
-      } else {
-	ICU24(tempi,0x800000+i+r1<<16);
-	ICU32(tempi,d1);
-      }
-      if (MIN_I8<=j<=MAX_I8)
-	ICU8(tempi,j);
-      else
-	ICU32(tempi,j);
-    } else {
+    if (!has_result && TY_REG<=p1->type&TY_MASK<=TY_RIP_DISP32)
+      ICAddSubEctImm(tempi,tempi->p1.type,tempi->p1.reg,tempi->p1.disp,
+			   tempi->p1.type,tempi->p1.reg,tempi->p1.disp,
+		     j,0x073B,ip2);
+    else {
       if (p1->type&TY_MASK==TY_REG)
 	r1=p1->reg;
       else {
@@ -3595,13 +3576,13 @@ U0 ICCmpAndBranch(CIntermediateCode *tempi,Bool has_result,I64 ip,
       }
       if (!j) {
 	if (is.u8[2]==0x7C) {
-	  ICOr(tempi,r1);
+	  ICTest(tempi,r1);
 	  is=0x78880F;
 	} else if (is.u8[2]==0x7D) {
-	  ICOr(tempi,r1);
+	  ICTest(tempi,r1);
 	  is=0x79890F;
 	} else if (is.u8[2]==0x74 || is.u8[2]==0x75)
-	  ICOr(tempi,r1);
+	  ICTest(tempi,r1);
 	else {
 	  if (r1>7)
 	    i++;
@@ -3705,33 +3686,36 @@ U0 ICCmpAndBranch(CIntermediateCode *tempi,Bool has_result,I64 ip,
   lb=OptLabelFwd(tempi->ic_data);
   short_jmp=ToBool(tempi->ic_flags&ICF_SHORT_JMP);
   if (!buf && lb->addr!=INVALID_PTR) {
-    i=lb->addr-ip;
-    if (lb->flags&CBMF_POP_CMP)
+    i=lb->addr-(ip+2);
+    if (lb->flags&CMF_POP_CMP) {
       if(tempi->ic_flags&ICF_PUSH_CMP)
 	i+=4;
       else
 	i+=8;
-    if (MIN_I8+2ic_flags|=ICF_SHORT_JMP;
     i=lb->addr-(ip+2);
-    if (lb->flags&CBMF_POP_CMP)
+    if (lb->flags&CMF_POP_CMP) {
       if(tempi->ic_flags&ICF_PUSH_CMP)
 	i+=4;
       else
 	i+=8;
+    }
     ICU16(tempi,i<<8+is.u8[2]);
   } else {
     tempi->ic_flags&=~ICF_SHORT_JMP;
     i=lb->addr-(ip+6);
-    if (lb->flags&CBMF_POP_CMP)
+    if (lb->flags&CMF_POP_CMP) {
       if(tempi->ic_flags&ICF_PUSH_CMP)
 	i+=4;
       else
 	i+=8;
+    }
     ICU16(tempi,is.u16[0]);
     ICU32(tempi,i);
   }
@@ -3743,7 +3727,7 @@ U0 ICTestAndBranch(CIntermediateCode *tempi,I64 ip,I64 is,U8 *buf,I64 ip2)
 {
   I64 i;
   Bool short_jmp;
-  CCodeBlkMisc *lb;
+  CLexCodeMisc *lb;
 
   if (tempi->p1.type&TY_MASK!=TY_REG) {
     if (tempi->p1.type&IT_MASK<=IT_U8 &&
@@ -3755,32 +3739,32 @@ U0 ICTestAndBranch(CIntermediateCode *tempi,I64 ip,I64 is,U8 *buf,I64 ip2)
       ICU8(tempi,0xFF);
     } else {
       ICMov(tempi,TY_REG+IT_I64,CREG_RAX,0,tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip2);
-      ICOr(tempi,CREG_RAX);
+      ICTest(tempi,CREG_RAX);
     }
   } else
-    ICOr(tempi,tempi->p1.reg);
+    ICTest(tempi,tempi->p1.reg);
 
   ip+=tempi->ic_cnt;
   lb=OptLabelFwd(tempi->ic_data);
   short_jmp=ToBool(tempi->ic_flags&ICF_SHORT_JMP);
   if (!buf && lb->addr!=INVALID_PTR) {
-    i=lb->addr-ip;
-    if (lb->flags&CBMF_POP_CMP)
+    i=lb->addr-(ip+2);
+    if (lb->flags&CMF_POP_CMP)
       i+=8;
-    if (MIN_I8+2ic_flags|=ICF_SHORT_JMP;
     i=lb->addr-(ip+2);
-    if (lb->flags&CBMF_POP_CMP)
+    if (lb->flags&CMF_POP_CMP)
       i+=8;
     ICU16(tempi,i<<8+is.u8[2]);
   } else {
     tempi->ic_flags&=~ICF_SHORT_JMP;
     i=lb->addr-(ip+6);
-    if (lb->flags&CBMF_POP_CMP)
+    if (lb->flags&CMF_POP_CMP)
       i+=8;
     ICU16(tempi,is.u16[0]);
     ICU32(tempi,i);
@@ -3791,29 +3775,29 @@ U0 ICZFlagBranch(CIntermediateCode *tempi,I64 ip,I64 is,U8 *buf)
 {
   I64 i;
   Bool short_jmp;
-  CCodeBlkMisc *lb;
+  CLexCodeMisc *lb;
 
   ip+=tempi->ic_cnt;
   lb=OptLabelFwd(tempi->ic_data);
   short_jmp=ToBool(tempi->ic_flags&ICF_SHORT_JMP);
   if (!buf && lb->addr!=INVALID_PTR) {
-    i=lb->addr-ip;
-    if (lb->flags&CBMF_POP_CMP)
+    i=lb->addr-(ip+2);
+    if (lb->flags&CMF_POP_CMP)
       i+=8;
-    if (MIN_I8+2ic_flags|=ICF_SHORT_JMP;
     i=lb->addr-(ip+2);
-    if (lb->flags&CBMF_POP_CMP)
+    if (lb->flags&CMF_POP_CMP)
       i+=8;
     ICU16(tempi,i<<8+is.u8[2]);
   } else {
     tempi->ic_flags&=~ICF_SHORT_JMP;
     i=lb->addr-(ip+6);
-    if (lb->flags&CBMF_POP_CMP)
+    if (lb->flags&CMF_POP_CMP)
       i+=8;
     ICU16(tempi,is.u16[0]);
     ICU32(tempi,i);
@@ -3825,7 +3809,7 @@ U0 ICAndBranch(CIntermediateCode *tempi,I64 ip,I64 is,U8 *buf,I64 ip2)
   U64 i;
   I64 it,t1,r1,d1,r2;
   Bool short_jmp,swap,override;
-  CCodeBlkMisc *lb;
+  CLexCodeMisc *lb;
   CICArg *p1,*p2;
 
   if (tempi->p1.type&TY_MASK==TY_IMM) {
@@ -3955,23 +3939,23 @@ U0 ICAndBranch(CIntermediateCode *tempi,I64 ip,I64 is,U8 *buf,I64 ip2)
   lb=OptLabelFwd(tempi->ic_data);
   short_jmp=ToBool(tempi->ic_flags&ICF_SHORT_JMP);
   if (!buf && lb->addr!=INVALID_PTR) {
-    i=lb->addr-ip;
-    if (lb->flags&CBMF_POP_CMP)
+    i=lb->addr-(ip+2);
+    if (lb->flags&CMF_POP_CMP)
       i+=8;
-    if (MIN_I8+2ic_flags|=ICF_SHORT_JMP;
     i=lb->addr-(ip+2);
-    if (lb->flags&CBMF_POP_CMP)
+    if (lb->flags&CMF_POP_CMP)
       i+=8;
     ICU16(tempi,i<<8+is.u8[2]);
   } else {
     tempi->ic_flags&=~ICF_SHORT_JMP;
     i=lb->addr-(ip+6);
-    if (lb->flags&CBMF_POP_CMP)
+    if (lb->flags&CMF_POP_CMP)
       i+=8;
     ICU16(tempi,is.u16[0]);
     ICU32(tempi,i);
@@ -4001,7 +3985,7 @@ U0 ICAssign(CIntermediateCode *tempi,I64 ip)
 	  (tempi->p2.type&TY_MASK==TY_REG||tempi->p2.type&TY_MASK==TY_DISP) &&
 	  tempi->p2.reg==tempi->p1.reg ||
 	  tempi->r.type&TY_MASK ||
-	  tempi1->ic_flags&~ICF_NO_CVT_MASK) {
+	  tempi1->ic_flags&~ICG_NO_CVT_MASK) {
 	ICMov(tempi,TY_DISP+tempi->p1.ptype,tempi->p1.reg,tempi->p1.disp,
 	      tempi->p2.type,tempi->p2.reg,tempi->p2.disp,ip);
 	if (tempi->r.type&TY_MASK)
@@ -4032,7 +4016,7 @@ U0 ICBrBitOps(CIntermediateCode *tempi,I64 ip,I64 op,I64 op_imm,I64 is,U8 *buf,I
   I64 i,t,r1,r2,d1,d2,t1,t2;
   CICArg *p1=&tempi->p1,*p2=&tempi->p2;
   Bool short_jmp;
-  CCodeBlkMisc *lb;
+  CLexCodeMisc *lb;
 
   if (tempi->ic_flags & ICF_NOT_ADDR) {
     if (tempi->ic_flags & ICF_P1_FIRST) {
@@ -4167,23 +4151,23 @@ U0 ICBrBitOps(CIntermediateCode *tempi,I64 ip,I64 op,I64 op_imm,I64 is,U8 *buf,I
   lb=OptLabelFwd(tempi->ic_data);
   short_jmp=ToBool(tempi->ic_flags&ICF_SHORT_JMP);
   if (!buf && lb->addr!=INVALID_PTR) {
-    i=lb->addr-ip;
-    if (lb->flags&CBMF_POP_CMP)
+    i=lb->addr-(ip+2);
+    if (lb->flags&CMF_POP_CMP)
       i+=8;
-    if (MIN_I8+2ic_flags|=ICF_SHORT_JMP;
     i=lb->addr-(ip+2);
-    if (lb->flags&CBMF_POP_CMP)
+    if (lb->flags&CMF_POP_CMP)
       i+=8;
     ICU16(tempi,i<<8+is.u8[2]);
   } else {
     tempi->ic_flags&=~ICF_SHORT_JMP;
     i=lb->addr-(ip+6);
-    if (lb->flags&CBMF_POP_CMP)
+    if (lb->flags&CMF_POP_CMP)
       i+=8;
     ICU16(tempi,is.u16[0]);
     ICU32(tempi,i);
@@ -4553,7 +4537,7 @@ U0 ICXorEqual(CIntermediateCode *tempi,I64 ip2)
 U0 ICSwitch(CIntermediateCode *tempi,I64 ip,Bool fast,CLex *lx,U8 *buf,I64 ip2)
 {
   I64 i,j,r;
-  CCodeBlkMisc *lb;
+  CLexCodeMisc *lb;
   Bool short_jmp;
   CExeAbsAddr *tempa;
   if (tempi->p1.type&TY_MASK==TY_REG)
@@ -4603,11 +4587,13 @@ U0 ICSwitch(CIntermediateCode *tempi,I64 ip,Bool fast,CLex *lx,U8 *buf,I64 ip2)
     }
 
     ip+=tempi->ic_cnt;
-    lb=OptLabelFwd(tempi->ic_data(CCodeBlkMisc *)->dft);
+    lb=OptLabelFwd(tempi->ic_data(CLexCodeMisc *)->dft);
     short_jmp=ToBool(tempi->ic_flags&ICF_SHORT_JMP);
-    if (!buf && lb->addr!=INVALID_PTR &&
-	MIN_I8+2addr-ipaddr!=INVALID_PTR) {
+      i=lb->addr-(ip+2);
+      if (MIN_I8<=i<=MAX_I8)
+	short_jmp=TRUE;
+    }
 
     if (short_jmp) {
       tempi->ic_flags|=ICF_SHORT_JMP;
diff --git a/TempleOS/Compiler/CmpAsm.CPP b/TempleOS/Compiler/CmpAsm.CPP
index 9476c14..8929771 100644
--- a/TempleOS/Compiler/CmpAsm.CPP
+++ b/TempleOS/Compiler/CmpAsm.CPP
@@ -1,164 +1,5 @@
 asm {
 USE64
-CMP_OPT_NOP:
-#assert CIntermediateCode.ic_opcode==0
-	DU16	IC_NOP1;  //Must be at CIntermediateCode.ic_opcode offset
-	DU8	sizeof(CIntermediateCode)-2 DUP(0);
-
-// ************************************
-_OPTNEXT::
-	ENTER	0
-	PUSH	RDI
-	MOV	RCX,U64 SF_ARG1[RBP]
-	MOV	RDX,U64 SF_ARG2[RBP]
-	
-	MOV	RAX,U64 16[RDX]
-	MOV	U64 24[RDX],RAX
-	MOV	RAX,U64 8[RDX]
-	MOV	U64 16[RDX],RAX
-	MOV	RAX,U64 [RDX]
-	MOV	U64 8[RDX],RAX
-	MOV	U64 [RDX],RCX
-
-	MOV	RDI,RDX
-
-	MOV	RAX,RCX
-	CMP	U16 CIntermediateCode.ic_opcode[RAX],IC_END_EXP
-	JBE	@@05
-	STOSQ
-
-@@05:	MOV	RAX,U64 8[RDX]
-	CMP	U16 CIntermediateCode.ic_opcode[RAX],IC_END_EXP
-	JBE	@@10
-	STOSQ
-
-@@10:	MOV	RAX,U64 16[RDX]
-	CMP	U16 CIntermediateCode.ic_opcode[RAX],IC_END_EXP
-	JBE	@@15
-	STOSQ
-
-@@15:	MOV	RAX,U64 24[RDX]
-	CMP	U16 CIntermediateCode.ic_opcode[RAX],IC_END_EXP
-	JBE	@@20
-	STOSQ
-
-@@20:	MOV	RAX,CMP_OPT_NOP
-	ADD	RDX,32
-	JMP	@@30
-
-@@25:	STOSQ
-@@30:	CMP	RDI,RDX
-	JB	@@25
-
-	POP	RDI
-	LEAVE
-	RET1	16
-// ************************************
-_OPTNEXT2::
-	ENTER	0
-	PUSH	RDI
-	MOV	RCX,U64 SF_ARG1[RBP]
-	MOV	RDX,U64 SF_ARG2[RBP]
-	
-	MOV	RAX,U64 16[RDX]
-	MOV	U64 24[RDX],RAX
-	MOV	RAX,U64 8[RDX]
-	MOV	U64 16[RDX],RAX
-	MOV	RAX,U64 [RDX]
-	MOV	U64 8[RDX],RAX
-	MOV	U64 [RDX],RCX
-
-	MOV	RDI,RDX
-
-	MOV	RAX,RCX
-	CMP	U16 CIntermediateCode.ic_opcode[RAX],IC_END_EXP
-	JB	@@05
-	STOSQ
-
-@@05:	MOV	RAX,U64 8[RDX]
-	CMP	U16 CIntermediateCode.ic_opcode[RAX],IC_END_EXP
-	JB	@@10
-	STOSQ
-
-@@10:	MOV	RAX,U64 16[RDX]
-	CMP	U16 CIntermediateCode.ic_opcode[RAX],IC_END_EXP
-	JB	@@15
-	STOSQ
-
-@@15:	MOV	RAX,U64 24[RDX]
-	CMP	U16 CIntermediateCode.ic_opcode[RAX],IC_END_EXP
-	JB	@@20
-	STOSQ
-
-@@20:	MOV	RAX,CMP_OPT_NOP
-	ADD	RDX,32
-	JMP	@@30
-
-@@25:	STOSQ
-@@30:	CMP	RDI,RDX
-	JB	@@25
-
-	POP	RDI
-	LEAVE
-	RET1	16
-
-// ************************************
-_OPTNEXT3::
-	ENTER	0
-	PUSH	RDI
-	MOV	RCX,U64 SF_ARG1[RBP]
-	MOV	RDX,U64 SF_ARG2[RBP]
-	
-	MOV	RAX,U64 16[RDX]
-	MOV	U64 24[RDX],RAX
-	MOV	RAX,U64 8[RDX]
-	MOV	U64 16[RDX],RAX
-	MOV	RAX,U64 [RDX]
-	MOV	U64 8[RDX],RAX
-	MOV	U64 [RDX],RCX
-
-	MOV	RDI,RDX
-
-	MOV	RAX,RCX
-	CMP	U16 CIntermediateCode.ic_opcode[RAX],IC_END_EXP
-	JB	@@05
-	CMP	U16 CIntermediateCode.ic_opcode[RAX],IC_NOP2
-	JE	@@05
-	STOSQ
-
-@@05:	MOV	RAX,U64 8[RDX]
-	CMP	U16 CIntermediateCode.ic_opcode[RAX],IC_END_EXP
-	JB	@@10
-	CMP	U16 CIntermediateCode.ic_opcode[RAX],IC_NOP2
-	JE	@@10
-	STOSQ
-
-@@10:	MOV	RAX,U64 16[RDX]
-	CMP	U16 CIntermediateCode.ic_opcode[RAX],IC_END_EXP
-	JB	@@15
-	CMP	U16 CIntermediateCode.ic_opcode[RAX],IC_NOP2
-	JE	@@15
-	STOSQ
-
-@@15:	MOV	RAX,U64 24[RDX]
-	CMP	U16 CIntermediateCode.ic_opcode[RAX],IC_END_EXP
-	JB	@@20
-	CMP	U16 CIntermediateCode.ic_opcode[RAX],IC_NOP2
-	JE	@@20
-	STOSQ
-
-@@20:	MOV	RAX,CMP_OPT_NOP
-	ADD	RDX,32
-	JMP	@@30
-
-@@25:	STOSQ
-@@30:	CMP	RDI,RDX
-	JB	@@25
-
-	POP	RDI
-	LEAVE
-	RET1	16
-
 // ************************************
 CMP_TEMPLATES::
 	DU32	@@05,@@10,@@15,@@25,@@30,
@@ -249,7 +90,7 @@ CMP_TEMPLATES::
 	MOV	RDX,RAX
 @@50:	MOV	BL,U8 [RAX]
 	INC	RAX
-	OR	BL,BL
+	TEST	BL,BL
 	JNZ	@@50
 	SUB	RAX,RDX
 	DEC	RAX
@@ -260,7 +101,7 @@ CMP_TEMPLATES::
 	ADD	RAX,RDX
 
 @@60: //SignI64
-	OR	RAX,RAX
+	TEST	RAX,RAX
 	JZ	@@70
 	JS	@@65
 	MOV	RAX,1
@@ -683,12 +524,3 @@ CMP_TEMPLATES_DONT_PUSH2::
 @@110:
 @@115:
 }
-
-_extern _OPTNEXT Bool OptNext(CIntermediateCode *tempi,
-	       CIntermediateCode **temp_lag);
-
-_extern _OPTNEXT2 Bool OptNext2(CIntermediateCode *tempi,
-	       CIntermediateCode **temp_lag);
-
-_extern _OPTNEXT3 Bool OptNext3(CIntermediateCode *tempi,
-	       CIntermediateCode **temp_lag);
diff --git a/TempleOS/Compiler/CmpDefs.HPP b/TempleOS/Compiler/CmpDefs.HPP
index 76d28eb..d9ac28b 100644
--- a/TempleOS/Compiler/CmpDefs.HPP
+++ b/TempleOS/Compiler/CmpDefs.HPP
@@ -1,235 +1,234 @@
 //Intermediate compiler codes
 #define IC_END			0x00
-#define IC_START		0x01
-#define IC_NOP1			0x02
-#define IC_END_EXP		0x03
-#define IC_NOP2			0x04
-#define IC_LABEL		0x05
-#define IC_CALL_START		0x06
-#define IC_CALL_END		0x07
-#define IC_CALL_END2		0x08
-#define IC_RETURN_VAL		0x09
-#define IC_RETURN_VAL2		0x0A
-#define IC_IMM_U64		0x0B
-#define IC_IMM_F64		0x0C
-#define IC_STR_CONST		0x0D
-#define IC_ABS_ADDR		0x0E
-#define IC_ADDR_IMPORT		0x0F
-#define IC_HEAP_GLBL		0x10
-#define IC_SIZEOF		0x11
-#define IC_TYPE			0x12
-#define IC_GET_LABEL		0x13
-#define IC_RBP			0x14
-#define IC_REG			0x15
-#define IC_FS			0x16
-#define IC_MOV_FS		0x17
-#define IC_GS			0x18
-#define IC_MOV_GS		0x19
+#define IC_NOP1			0x01
+#define IC_END_EXP		0x02
+#define IC_NOP2			0x03
+#define IC_LABEL		0x04
+#define IC_CALL_START		0x05
+#define IC_CALL_END		0x06
+#define IC_CALL_END2		0x07
+#define IC_RETURN_VAL		0x08
+#define IC_RETURN_VAL2		0x09
+#define IC_IMM_U64		0x0A
+#define IC_IMM_F64		0x0B
+#define IC_STR_CONST		0x0C
+#define IC_ABS_ADDR		0x0D
+#define IC_ADDR_IMPORT		0x0E
+#define IC_HEAP_GLBL		0x0F
+#define IC_SIZEOF		0x10
+#define IC_TYPE			0x11
+#define IC_GET_LABEL		0x12
+#define IC_RBP			0x13
+#define IC_REG			0x14
+#define IC_FS			0x15
+#define IC_MOV_FS		0x16
+#define IC_GS			0x17
+#define IC_MOV_GS		0x18
 
-#define IC_LEA			0x1A
-#define IC_MOV			0x1B
+#define IC_LEA			0x19
+#define IC_MOV			0x1A
 
-#define IC_TO_I64		0x1C
-#define IC_TO_F64		0x1D
-#define IC_TO_BOOL		0x1E
-#define IC_TOUPPER		0x1F
-#define IC_HOLYC_TYPECAST	0x20
+#define IC_TO_I64		0x1B
+#define IC_TO_F64		0x1C
+#define IC_TO_BOOL		0x1D
+#define IC_TOUPPER		0x1E
+#define IC_HOLYC_TYPECAST	0x1F
 
-#define IC_ADDR			0x21
-#define IC_COM			0x22
-#define IC_NOT			0x23
-#define IC_UNARY_MINUS		0x24
+#define IC_ADDR			0x20
+#define IC_COM			0x21
+#define IC_NOT			0x22
+#define IC_UNARY_MINUS		0x23
 
-#define IC_DEREF		0x25
-#define IC_DEREF_PP		0x26
-#define IC_DEREF_MM		0x27
-#define IC__PP			0x28
-#define IC__MM			0x29
-#define IC_PP_			0x2A
-#define IC_MM_			0x2B
+#define IC_DEREF		0x24
+#define IC_DEREF_PP		0x25
+#define IC_DEREF_MM		0x26
+#define IC__PP			0x27
+#define IC__MM			0x28
+#define IC_PP_			0x29
+#define IC_MM_			0x2A
 
-#define IC_SHL			0x2C
-#define IC_SHR			0x2D
-#define IC_SHL_CONST		0x2E
-#define IC_SHR_CONST		0x2F
-#define IC_POWER		0x30
+#define IC_SHL			0x2B
+#define IC_SHR			0x2C
+#define IC_SHL_CONST		0x2D
+#define IC_SHR_CONST		0x2E
+#define IC_POWER		0x2F
 
-#define IC_MUL			0x31
-#define IC_DIV			0x32
-#define IC_MOD			0x33
+#define IC_MUL			0x30
+#define IC_DIV			0x31
+#define IC_MOD			0x32
 
-#define IC_AND			0x34
+#define IC_AND			0x33
 
-#define IC_OR			0x35
-#define IC_XOR			0x36
+#define IC_OR			0x34
+#define IC_XOR			0x35
 
-#define IC_ADD			0x37
-#define IC_SUB			0x38
-#define IC_ADD_CONST		0x39
-#define IC_SUB_CONST		0x3A
+#define IC_ADD			0x36
+#define IC_SUB			0x37
+#define IC_ADD_CONST		0x38
+#define IC_SUB_CONST		0x39
 
-#define IC_EQUAL_EQUAL		0x3B
-#define IC_NOT_EQUAL		0x3C
-#define IC_LESS			0x3D
-#define IC_GREATER		0x3E
-#define IC_LESS_EQUAL		0x3F
-#define IC_GREATER_EQUAL	0x40
-#define IC_PUSH_CMP		0x41
+#define IC_EQUAL_EQUAL		0x3A
+#define IC_NOT_EQUAL		0x3B
+#define IC_LESS			0x3C
+#define IC_GREATER		0x3D
+#define IC_LESS_EQUAL		0x3E
+#define IC_GREATER_EQUAL	0x3F
+#define IC_PUSH_CMP		0x40
 
-#define IC_AND_AND		0x42
+#define IC_AND_AND		0x41
 
-#define IC_OR_OR		0x43
-#define IC_XOR_XOR		0x44
+#define IC_OR_OR		0x42
+#define IC_XOR_XOR		0x43
 
-#define IC_ASSIGN		0x45
-#define IC_ASSIGN_PP		0x46
-#define IC_ASSIGN_MM		0x47
+#define IC_ASSIGN		0x44
+#define IC_ASSIGN_PP		0x45
+#define IC_ASSIGN_MM		0x46
 
-#define IC_SHL_EQUAL		0x48
-#define IC_SHR_EQUAL		0x49
-#define IC_MUL_EQUAL		0x4A
-#define IC_DIV_EQUAL		0x4B
-#define IC_MOD_EQUAL		0x4C
-#define IC_AND_EQUAL		0x4D
-#define IC_OR_EQUAL		0x4E
-#define IC_XOR_EQUAL		0x4F
-#define IC_ADD_EQUAL		0x50
-#define IC_SUB_EQUAL		0x51
+#define IC_SHL_EQUAL		0x47
+#define IC_SHR_EQUAL		0x48
+#define IC_MUL_EQUAL		0x49
+#define IC_DIV_EQUAL		0x4A
+#define IC_MOD_EQUAL		0x4B
+#define IC_AND_EQUAL		0x4C
+#define IC_OR_EQUAL		0x4D
+#define IC_XOR_EQUAL		0x4E
+#define IC_ADD_EQUAL		0x4F
+#define IC_SUB_EQUAL		0x50
 
-#define IC_JMP			0x52
-#define IC_SWITCH		0x53
-#define IC_NOBOUND_SWITCH	0x54
+#define IC_JMP			0x51
+#define IC_SWITCH		0x52
+#define IC_NOBOUND_SWITCH	0x53
 
-#define IC_ADD_RSP		0x55
-#define IC_ADD_RSP1		0x56
-#define IC_ENTER		0x57
-#define IC_PUSH_REGS		0x58
-#define IC_POP_REGS		0x59
-#define IC_LEAVE		0x5A
-#define IC_RET			0x5B
+#define IC_ADD_RSP		0x54
+#define IC_ADD_RSP1		0x55
+#define IC_ENTER		0x56
+#define IC_PUSH_REGS		0x57
+#define IC_POP_REGS		0x58
+#define IC_LEAVE		0x59
+#define IC_RET			0x5A
 
-#define IC_CALL			0x5C
-#define IC_CALL_INDIRECT	0x5D
-#define IC_CALL_INDIRECT2	0x5E
-#define IC_CALL_IMPORT		0x5F
-#define IC_CALL_EXTERN		0x60
-#define IC_IRQ			0x61
+#define IC_CALL			0x5B
+#define IC_CALL_INDIRECT	0x5C
+#define IC_CALL_INDIRECT2	0x5D
+#define IC_CALL_IMPORT		0x5E
+#define IC_CALL_EXTERN		0x5F
+#define IC_IRQ			0x60
 
-#define IC_ASM			0x62
-#define IC_CLI			0x63
-#define IC_STI			0x64
-#define IC_PREEMPT		0x65
-#define IC_CLD			0x66
-#define IC_STD			0x67
-#define IC_HLT			0x68
-#define IC_PUSH			0x69
-#define IC_POP			0x6A
-#define IC_PUSHFD		0x6B
-#define IC_POPFD		0x6C
-#define IC_PAUSE		0x6D
+#define IC_ASM			0x61
+#define IC_CLI			0x62
+#define IC_STI			0x63
+#define IC_PREEMPT		0x64
+#define IC_CLD			0x65
+#define IC_STD			0x66
+#define IC_HLT			0x67
+#define IC_PUSH			0x68
+#define IC_POP			0x69
+#define IC_PUSHFD		0x6A
+#define IC_POPFD		0x6B
+#define IC_PAUSE		0x6C
 
-#define IC_CLFLUSH		0x6E
-#define IC_INVLPG		0x6F
+#define IC_CLFLUSH		0x6D
+#define IC_INVLPG		0x6E
 
-#define IC_IN_U8		0x70
-#define IC_IN_U16		0x71
-#define IC_IN_U32		0x72
-#define IC_OUT_U8		0x73
-#define IC_OUT_U16		0x74
-#define IC_OUT_U32		0x75
+#define IC_IN_U8		0x6F
+#define IC_IN_U16		0x70
+#define IC_IN_U32		0x71
+#define IC_OUT_U8		0x72
+#define IC_OUT_U16		0x73
+#define IC_OUT_U32		0x74
 
-#define IC_GET_FLAGS		0x76
-#define IC_CARRY		0x77
-#define IC_SET_FLAGS		0x78
-#define IC_GET_RAX		0x79
-#define IC_SET_RAX		0x7A
-#define IC_GET_BASE_PTR		0x7B
-#define IC_SET_BASE_PTR		0x7C
-#define IC_GET_STK_PTR		0x7D
-#define IC_SET_STK_PTR		0x7E
-#define IC_RIP			0x7F
+#define IC_GET_RFLAGS		0x75
+#define IC_CARRY		0x76
+#define IC_SET_RFLAGS		0x77
+#define IC_GET_RAX		0x78
+#define IC_SET_RAX		0x79
+#define IC_GET_RBP		0x7A
+#define IC_SET_RBP		0x7B
+#define IC_GET_RSP		0x7C
+#define IC_SET_RSP		0x7D
+#define IC_RIP			0x7E
 
-#define IC_RDTSC		0x80
-#define IC_HPET			0x81
+#define IC_RDTSC		0x7F
+#define IC_HPET			0x80
 
-#define IC_BT			0x82
-#define IC_BTS			0x83
-#define IC_BTR			0x84
-#define IC_BTC			0x85
-#define IC_LBTS			0x86
-#define IC_LBTR			0x87
-#define IC_LBTC			0x88
-#define IC_BSF			0x89
-#define IC_BSR			0x8A
+#define IC_BT			0x81
+#define IC_BTS			0x82
+#define IC_BTR			0x83
+#define IC_BTC			0x84
+#define IC_LBTS			0x85
+#define IC_LBTR			0x86
+#define IC_LBTC			0x87
+#define IC_BSF			0x88
+#define IC_BSR			0x89
 
-#define IC_QUE_INIT		0x8B
-#define IC_QUE_INS		0x8C
-#define IC_QUE_INS_REV		0x8D
-#define IC_QUE_REM		0x8E
+#define IC_QUE_INIT		0x8A
+#define IC_QUE_INS		0x8B
+#define IC_QUE_INS_REV		0x8C
+#define IC_QUE_REM		0x8D
 
-#define IC_STRLEN		0x8F
+#define IC_STRLEN		0x8E
 
-#define IC_BR_ZERO		0x90
-#define IC_BR_NOT_ZERO		0x91
+#define IC_BR_ZERO		0x8F
+#define IC_BR_NOT_ZERO		0x90
 
-#define IC_BR_NOT_EQUAL		0x92
-#define IC_BR_EQUAL_EQUAL	0x93
-#define IC_BR_GREATER_EQUAL	0x94
-#define IC_BR_LESS_EQUAL	0x95
-#define IC_BR_GREATER		0x96
-#define IC_BR_LESS		0x97
-#define IC_BR_NOT_EQUAL2	0x98
-#define IC_BR_EQUAL_EQUAL2	0x99
-#define IC_BR_GREATER_EQUAL2	0x9A
-#define IC_BR_LESS_EQUAL2	0x9B
-#define IC_BR_GREATER2		0x9C
-#define IC_BR_LESS2		0x9D
-#define IC_BR_AND_ZERO		0x9E
-#define IC_BR_AND_NOT_ZERO	0x9F
-#define IC_BR_MM_ZERO		0xA0
-#define IC_BR_MM_NOT_ZERO	0xA1
-#define IC_BR_AND_AND_ZERO	0xA2
-#define IC_BR_AND_AND_NOT_ZERO	0xA3
-#define IC_BR_OR_OR_ZERO	0xA4
-#define IC_BR_OR_OR_NOT_ZERO	0xA5
+#define IC_BR_NOT_EQUAL		0x91
+#define IC_BR_EQUAL_EQUAL	0x92
+#define IC_BR_GREATER_EQUAL	0x93
+#define IC_BR_LESS_EQUAL	0x94
+#define IC_BR_GREATER		0x95
+#define IC_BR_LESS		0x96
+#define IC_BR_NOT_EQUAL2	0x97
+#define IC_BR_EQUAL_EQUAL2	0x98
+#define IC_BR_GREATER_EQUAL2	0x99
+#define IC_BR_LESS_EQUAL2	0x9A
+#define IC_BR_GREATER2		0x9B
+#define IC_BR_LESS2		0x9C
+#define IC_BR_AND_ZERO		0x9D
+#define IC_BR_AND_NOT_ZERO	0x9E
+#define IC_BR_MM_ZERO		0x9F
+#define IC_BR_MM_NOT_ZERO	0xA0
+#define IC_BR_AND_AND_ZERO	0xA1
+#define IC_BR_AND_AND_NOT_ZERO	0xA2
+#define IC_BR_OR_OR_ZERO	0xA3
+#define IC_BR_OR_OR_NOT_ZERO	0xA4
 
-#define IC_BR_BT		0xA6
-#define IC_BR_BTS		0xA7
-#define IC_BR_BTR		0xA8
-#define IC_BR_BTC		0xA9
-#define IC_BR_LBTS		0xAA
-#define IC_BR_LBTR		0xAB
-#define IC_BR_LBTC		0xAC
-#define IC_BR_NOT_BT		0xAD
-#define IC_BR_NOT_BTS		0xAE
-#define IC_BR_NOT_BTR		0xAF
-#define IC_BR_NOT_BTC		0xB0
-#define IC_BR_NOT_LBTS		0xB1
-#define IC_BR_NOT_LBTR		0xB2
-#define IC_BR_NOT_LBTC		0xB3
+#define IC_BR_BT		0xA5
+#define IC_BR_BTS		0xA6
+#define IC_BR_BTR		0xA7
+#define IC_BR_BTC		0xA8
+#define IC_BR_LBTS		0xA9
+#define IC_BR_LBTR		0xAA
+#define IC_BR_LBTC		0xAB
+#define IC_BR_NOT_BT		0xAC
+#define IC_BR_NOT_BTS		0xAD
+#define IC_BR_NOT_BTR		0xAE
+#define IC_BR_NOT_BTC		0xAF
+#define IC_BR_NOT_LBTS		0xB0
+#define IC_BR_NOT_LBTR		0xB1
+#define IC_BR_NOT_LBTC		0xB2
 
-#define IC_SWAP_U8		0xB4
-#define IC_SWAP_U16		0xB5
-#define IC_SWAP_U32		0xB6
-#define IC_SWAP_U64		0xB7
+#define IC_SWAP_U8		0xB3
+#define IC_SWAP_U16		0xB4
+#define IC_SWAP_U32		0xB5
+#define IC_SWAP_U64		0xB6
 
-#define IC_ABS_I64		0xB8
-#define IC_SIGN_I64		0xB9
-#define IC_MIN_I64		0xBA
-#define IC_MIN_U64		0xBB
-#define IC_MAX_I64		0xBC
-#define IC_MAX_U64		0xBD
-#define IC_MOD_U64		0xBE
-#define IC_SQR_I64		0xBF
-#define IC_SQR_U64		0xC0
-#define IC_SQR			0xC1
-#define IC_ABS			0xC2
-#define IC_SQRT			0xC3
-#define IC_SIN			0xC4
-#define IC_COS			0xC5
-#define IC_TAN			0xC6
-#define IC_ATAN			0xC7
-#define IC_NUM_ENTRIES		0xC8
+#define IC_ABS_I64		0xB7
+#define IC_SIGN_I64		0xB8
+#define IC_MIN_I64		0xB9
+#define IC_MIN_U64		0xBA
+#define IC_MAX_I64		0xBB
+#define IC_MAX_U64		0xBC
+#define IC_MOD_U64		0xBD
+#define IC_SQR_I64		0xBE
+#define IC_SQR_U64		0xBF
+#define IC_SQR			0xC0
+#define IC_ABS			0xC1
+#define IC_SQRT			0xC2
+#define IC_SIN			0xC3
+#define IC_COS			0xC4
+#define IC_TAN			0xC5
+#define IC_ATAN			0xC6
+#define IC_NUM_ENTRIES		0xC7
 //Don't forget $LK,"IC_INIT_TABLE","FA:::/TempleOS/Compiler/CmpInit.CPP,IC_INIT_TABLE"$
 
 #define KW_INCLUDE	0
@@ -268,15 +267,17 @@
 #define KW_ASSERT	33
 #define KW_REG		34
 #define KW_NOREG	35
-#define KW_NOUNUSEDWARN	36
-#define KW_HELP_INDEX	37
-#define KW_HELP_FILE	38
-#define KW_STATIC	39
-#define KW_INTERRUPT	40
-#define KW_LOCK		41
-#define KW_DEFINED	42
-#define KW_ARGPOP	43
-#define KW_NOARGPOP	44
+#define KW_LASTCLASS	36
+#define KW_NOUNUSEDWARN	37
+#define KW_HELP_INDEX	38
+#define KW_HELP_FILE	39
+#define KW_STATIC	40
+#define KW_INTERRUPT	41
+#define KW_HASERRCODE	42
+#define KW_LOCK		43
+#define KW_DEFINED	44
+#define KW_ARGPOP	45
+#define KW_NOARGPOP	46
 
 #define AKW_ALIGN	64
 #define AKW_MODULE_ORG		65
@@ -350,12 +351,13 @@
 
 #define CPS_IS_PUBLIC		1
 #define CPS_IS_INTERRUPT	2
-#define CPS_IS_ASM		4
-#define CPS_IS_STATIC		8
-#define CPS_IS_ARGPOP		16
-#define CPS_IS_NOARGPOP		32
+#define CPS_HASERRCODE		4
+#define CPS_IS_ASM		8
+#define CPS_IS_STATIC		16
+#define CPS_IS_ARGPOP		32
+#define CPS_IS_NOARGPOP		64
 
-#define CPS_FUN_FLAGS		(CPS_IS_INTERRUPT|CPS_IS_PUBLIC|CPS_IS_ARGPOP|CPS_IS_NOARGPOP)
+#define CPS_FUN_FLAGS		(CPS_IS_INTERRUPT|CPS_HASERRCODE|CPS_IS_PUBLIC|CPS_IS_ARGPOP|CPS_IS_NOARGPOP)
 
 //Byte 0
 #define PRS0_NULL		0x000000
diff --git a/TempleOS/Compiler/CmpExts.CPP b/TempleOS/Compiler/CmpExts.CPP
index fe7e254..b6417a0 100644
--- a/TempleOS/Compiler/CmpExts.CPP
+++ b/TempleOS/Compiler/CmpExts.CPP
@@ -1,46 +1,41 @@
-import Bool PutSrcLink(U8 *add,I64 cnt=1,U8 *buf=NULL);
-import CDoc *DocRead(U8 *name,I64 flags=0);
 import U0 DocLoad(CDoc *doc,U8 *src2,I64 size);
-import U0 DocWrite(CDoc *doc,Bool prompt=FALSE);
 import CDoc *DocNew(CTask *task=NULL);
-import Bool DocRecalc(CDoc *doc,Bool has_cursor=FALSE,I64 recalc=DOC_RECALC_ALL);
 import U0 DocDel(CDoc *doc);
-import U0 DocRst(CDoc *doc,Bool is_old);
 import CDocEntry *DocPutLine(CDoc *doc,CDocEntry *doc_e);
 import I64 DocSize(CDoc *doc);
 import U8 *Doc2PlainText(CDoc *doc,CDocEntry *doc_e);
-import U0 HashRep(CHashTable *h=NULL,
-  I64 mask=HTG_ALL,U8 *outname=NULL,U8 *flags=NULL,U8 mapfile_drv=0,U8 *index=NULL,
-  CDoc *_doc=NULL);
+import U0 Who(U8 *flags=NULL,CHashTable *h=NULL,
+  U8 *outname=NULL,U8 mapfile_drv=0,U8 *index=NULL,CDoc *_doc=NULL);
 
-extern I64 Expression(CLex *lx);
-extern Bool GetExpression(CLex *lx,U8 **_ex);
+extern U0 ExpressionBinDel(U8 *ex);
+extern I64 LexExpression(CLex *lx);
+extern Bool IsLexExpression2Bin(CLex *lx,U8 **_ex);
 extern I64 PrsUnaryTerm(CLex *lx,CPrsStk *ps,CMemberLst **_local_var,CArrayDim **_tempad,
     I64 *max_prec,I64 *unary_pre_prec,I64 *paren_prec);
 extern I64 PrsUnaryModifier(CLex *lx,CPrsStk *ps,CMemberLst **_local_var,CArrayDim **_tempad,I64 *unary_post_prec);
 extern U0 LexExcept(CLex *lx,U8 *name=NULL,CHashFun *fun_class=NULL);
 extern CExe *CmpJoin(CLex *lx,CHashFun *locals,Bool first_lex,Bool asm_blk=FALSE,U8 *map_name=NULL,U8 mapfile_drv=0);
-extern U0 CmpFixUpJITAsm(CLex *lx,CExe *ex,I64 ip2);
-extern U0 CmpFixUpAOTAsm(CLex *lx,CExe *ex,I64 ip2);
-extern CHashClass *PrsClass(CLex *lx,Bool is_union,I64 cps_flags,Bool is_extern);
+extern U0 CmpFixUpJITAsm(CLex *lx,CExe *tempx,I64 ip2);
+extern U0 CmpFixUpAOTAsm(CLex *lx,CExe *tempx,I64 ip2);
+extern CHashClass *PrsClass(CLex *lx,I64 keyword,I64 cps_flags,Bool is_extern);
 extern CHashClass *PrsType(CLex *lx,CHashClass **tempc1,
   I64 *_mode,CMemberLst *tempm,U8 **_ident,CHashFun **_fun_ptr,
-  CHashExport **_tempess,CArrayDim *tempad,I64 cps_flags);
+  CHashExport **_tempex,CArrayDim *tempad,I64 cps_flags);
 extern U0 PrsVarInit2(CLex *lx,U8 **_dst,CHashClass *tempc,CArrayDim *tempad,U8 *data_addr_ip,U8 **_base,Bool data_heap,I64 pass);
 extern CHashFun *PrsFunJoin(CLex *lx,
 	CHashClass *temp_return,U8 *name,I64 cps_flags);
 extern Bool PrsStatement(CLex *lx,CHashFun *locals,I64 try_cnt=0,
-  CCodeBlkMisc *lb_break=NULL,Bool saved_prs_semicolon=TRUE);
+  CLexCodeMisc *lb_break=NULL,Bool saved_prs_semicolon=TRUE);
 extern CIntermediateCode *OptLag1(CIntermediateCode *tempi);
 extern U0 OptSetNOP1(CIntermediateCode *tempi);
 extern CHashClass *OptClassFwd(CHashClass *tempc);
-extern CCodeBlkMisc *OptLabelFwd(CCodeBlkMisc *lb);
-extern CIntermediateCode *OptPass012(CLex *lx,CHashFun *fun_class,Bool combined);
+extern CLexCodeMisc *OptLabelFwd(CLexCodeMisc *lb);
+extern CIntermediateCode *OptPass012(CLex *lx,CHashFun *fun_class);
 extern U0 OptPass3(CLex *lx,CHashFun *fun_class,COptReg *register_offsets);
 extern U0 OptPass4(CLex *lx,COptReg *register_offsets,I64 *_type);
 extern U0 OptPass5(CLex *lx);
 extern U0 OptPass6(CLex *lx,CHashFun *fun_class);
-extern I64 OptPass789A(CLex *lx,CHashFun *fun_class,COptReg *register_offsets,U8 *buf,CDbgInfo **_dbg);
+extern I64 OptPass789(CLex *lx,CHashFun *fun_class,COptReg *register_offsets,U8 *buf,CDbgInfo **_dbg);
 extern I64 PrsKeyWord(CLex *lx);
 extern I64 HashEntrySize2(CHashSrcSym *temph);
 extern U0 LexPutWarn(CLex *lx,U8 *name=NULL,CHashFun *fun_class=NULL);
diff --git a/TempleOS/Compiler/CmpGlbls.CPP b/TempleOS/Compiler/CmpGlbls.CPP
index fba75e4..86a0b74 100644
--- a/TempleOS/Compiler/CmpGlbls.CPP
+++ b/TempleOS/Compiler/CmpGlbls.CPP
@@ -1,11 +1,12 @@
 CHashTable *asm_hash;
 Bool is_first_compiler,cmp_do_not_write_to_dsk;
 CHashClass *sys_internal_types[IT_NUM_IT];
+CIntermediateCode opt_nop;
 
 U32 *dual_U16_tokens1,*dual_U16_tokens2,*dual_U16_tokens3;
 U32 *binary_ops_table,*unary_ops_table;
 U8 *cmp_arg_cnt,*cmp_result_cnt;
-U8 *deref_bitmap,*assign_bitmap,*not_constant_bitmap,*cmp_bitmap,*fpop_bitmap;
+U8 *deref_bitmap,*assign_bitmap,*not_const_bitmap,*cmp_bitmap,*fpop_bitmap;
 I64 num_stk_temps,num_reg_vars,num_non_ptr_vars;
 I64 stk_temps_mask,reg_vars_mask,non_ptr_vars_mask;
 U8 *to_stk_temps_map_odd;
diff --git a/TempleOS/Compiler/CmpInit.CPP b/TempleOS/Compiler/CmpInit.CPP
index f7c63d8..69461cc 100644
--- a/TempleOS/Compiler/CmpInit.CPP
+++ b/TempleOS/Compiler/CmpInit.CPP
@@ -95,7 +95,7 @@ U0 AsmHashLoad(Bool first)
   while (lx->token) {
     if (lx->token!=TK_IDENT)
       LexExcept(lx,"ST_EXPECTING_IDENTIFIER");
-    i=LstEntryMatch(lx->ident,"R8\0R16\0R32\0R64\0SEG\0FSTK\0MM\0XMM\0OPCODE\0KEYWORD\0ASM_KEYWORD\0");
+    i=LstMatch(lx->ident,"R8\0R16\0R32\0R64\0SEG\0FSTK\0MM\0XMM\0OPCODE\0KEYWORD\0ASM_KEYWORD\0");
     if (i<0)
       LexExcept(lx,"Unknown Statement");
     Lex(lx); //skip keyword
@@ -296,6 +296,7 @@ U0 CmpLoadDefines()
   DefineLoad("ST_UNUSED_VAR","Unused var ");
   DefineLoad("ST_UNNEEDED_NOUNUSEDWARN","Unneeded nounusedwarn ");
   DefineLoad("ST_UNUSED_EXTERN","Unused extern ");
+  DefineLoad("ST_UNUSED_IMPORT","Unused import ");
   DefineLoad("ST_UNUSED_LABEL","Unused label ");
   DefineLoad("ST_UNUSED_LABEL_AT","Unused label at ");
   DefineLoad("ST_NOT_ALLOWED_IN_FUN","Not allowed in fun");
@@ -314,7 +315,7 @@ U0 CmpLoadDefines()
   DefineLoad("ST_UNNECESSARY_PARENTHESIS","Unnecessary parenthesis");
   DefineLoad("ST_STATIC_UNION","Static unions are not implemented");
   DefineLoad("ST_IMPORT_HASH_TABLE_NOT_ALLOWED","import_hash_table only allowed in AOT compiled #exe{} mode.");
-  DefineLoad("ST_STREAM_EXE_PUTS_NOT_ALLOWED","StreamExePutS only allowed in AOT compiled #exe{} mode.");
+  DefineLoad("ST_STREAM_EXE_PRINT_NOT_ALLOWED","StreamExePrint only allowed in AOT compiled #exe{} mode.");
   DefineLoad("ST_CANT_INIT_GLBL_ON_HEAP","Can't init glbl var on data heap in AOT module");
   DefineLoad("ST_INVALID_ARRAY_SIZE","Invalid array size at ");
   DefineLoad("ST_NO_FUN_ASM_ALIGN","ALIGN not allowed in fun asm blk ");
@@ -346,7 +347,7 @@ U0 CmpLoadDefines()
   DefineLoad("ST_REG_IN_USE","Register in use ");
   DefineLoad("ST_ONE_BASE_CLASS","Only one base class allowed at this time at ");
   DefineLoad("ST_ADD_NOT_VAL","Must be address, not value ");
-  DefineLoad("ST_HEADER_FOR_PRINTF","Missing header for PrintF(), PutS() and PutChar() at ");
+  DefineLoad("ST_HEADER_FOR_PRINT","Missing header for Print() and PutChar() at ");
   DefineLoad("ST_HEADER_FOR_SYSTRY","Missing header for SysTry() and SysUntry() at ");
 $AN,"Anchor for inserting Compiler Defines","COMPILE_DEFINE"$
 
@@ -358,13 +359,12 @@ $AN,"Anchor for inserting Compiler Defines","COMPILE_DEFINE"$
 
 // '9' arg cnt means var
 
-// 'N' means not constant.  Sets LF_NOT_CONSTANT
+// 'N' means not const.  Sets LF_NOT_CONST
 //     which means an expression contains mem
 //     accesses or things which might change.
 
 // arg cnt,result cnt,deref/assign/cmp,nonconst,might not fill result
 "00..END\0"
-"00..START\0"
 "00..NOP1\0"
 "10..END_EXP\0"
 "00..NOP2\0"
@@ -481,15 +481,15 @@ $AN,"Anchor for inserting Compiler Defines","COMPILE_DEFINE"$
 "20.NOUT_U8\0"
 "20.NOUT_U16\0"
 "20.NOUT_U32\0"
-"00.NGET_FLAGS\0"
+"00.NGET_RFLAGS\0"
 "00.NCARRY\0"
-"10.NSET_FLAGS\0"
+"10.NSET_RFLAGS\0"
 "00.NGET_RAX\0"
 "10.NSET_RAX\0"
-"00.NGET_BASE_PTR\0"
-"10.NSET_BASE_PTR\0"
-"00.NGET_STK_PTR\0"
-"10.NSET_STK_PTR\0"
+"00.NGET_RBP\0"
+"10.NSET_RBP\0"
+"00.NGET_RSP\0"
+"10.NSET_RSP\0"
 "01.NRIP\0"
 "00.NRDTSC\0"
 "00.NHPET\0"
@@ -576,7 +576,7 @@ U0 CmpFillTables()
   assign_bitmap=CAlloc((IC_NUM_ENTRIES+7)>>3);
   deref_bitmap=CAlloc((IC_NUM_ENTRIES+7)>>3);
   cmp_bitmap=CAlloc((IC_NUM_ENTRIES+7)>>3);
-  not_constant_bitmap=CAlloc((IC_NUM_ENTRIES+7)>>3);
+  not_const_bitmap=CAlloc((IC_NUM_ENTRIES+7)>>3);
   fpop_bitmap=CAlloc((IC_NUM_ENTRIES+7)>>3);
   cmp_arg_cnt=CAlloc(IC_NUM_ENTRIES);
   cmp_result_cnt=CAlloc(IC_NUM_ENTRIES);
@@ -591,9 +591,9 @@ U0 CmpFillTables()
     else if (st[2]=='^')
       Bts(cmp_bitmap,i);
     if (st[3]=='N')
-      Bts(not_constant_bitmap,i);
+      Bts(not_const_bitmap,i);
     st+=StrLen(st)+1;
-    //See $LK,"ST_INTERMEDIATE_CODE","FF:::/TempleOS/Compiler/CodeGen.CPP,ST_INTERMEDIATE_CODE"$.
+    //See $LK,"ST_INTERMEDIATE_CODE","FF:::/TempleOS/Compiler/ICLCC.CPP,ST_INTERMEDIATE_CODE"$.
   }
 
   Bts(fpop_bitmap,IC_ADD);
diff --git a/TempleOS/Compiler/CmpMain.CPP b/TempleOS/Compiler/CmpMain.CPP
index bfc29f7..4e7abcc 100644
--- a/TempleOS/Compiler/CmpMain.CPP
+++ b/TempleOS/Compiler/CmpMain.CPP
@@ -1,43 +1,31 @@
-U0 StreamPutS(U8 *buf)
-//Inss text into the stream of
+U0 StreamPrint(U8 *fmt,...)
+//Inserts text into the stream of
 //characters being compiled.  Called
 //from withing #exe{} block.
 {
+  U8 *buf=SPrintJoin(NULL,fmt,argc,argv);
   CLex *lx=Fs->last_lex;
   CStreamBlk *tempe=lx->last_stream_blk;
   if (tempe!=&lx->next_stream_blk)
     tempe->body=StrAdd(tempe->body,buf);
   else
-    PrintFErr("No exe{} blk\n");
-}
-
-U0 StreamPrintF(U8 *src,...)
-//Inss text into the stream of
-//characters being compiled.  Called
-//from withing #exe{} block.
-{
-  U8 *buf=SPrintFJoin(NULL,src,argc,argv);
-  StreamPutS(buf);
+    PrintErr("No exe{} blk\n");
   Free(buf);
 }
 
-U8 *CmpStatement(CLex *lx,I64 *type)
+U8 *LexStatement2Bin(CLex *lx,I64 *type)
 {
   I64 size,i,j,k,*result=INVALID_PTR;
-  CIntermediateCode *tempi;
   if (type) *type=IT_I64;
   Btr(&lx->flags,Lf_OPT_TRACE_PRESENT);
   if (lx->a_depth==2)
-    CBPush(lx);
-  CBOutPtrsInit(lx);
-  CBICAdd(lx,IC_START,0,0); //So we can scan back an instruction
-  tempi=lx->cbh.cb_last_out_ptr;
+    LCCPush(lx);
+  LCCInit(lx);
   if (!PrsStatement(lx,NULL)) {
-    if (tempi!=lx->cbh.cb_last_out_ptr) {
-      CBICAdd(lx,IC_RETURN_VAL2,0,NULL);
-      CBICAdd(lx,IC_RET,0,0);
-      CBICAdd(lx,IC_END,0,0);
-      if (result=CBCompile(lx,NULL,&size,NULL,type)) {
+    if (lx->lcc.lcc_root.next!=&lx->lcc.lcc_root) {
+      LCCAdd(lx,IC_RETURN_VAL2,0,NULL);
+      LCCAdd(lx,IC_RET,0,0);
+      if (result=LCCCompile(lx,NULL,&size,NULL,type)) {
 	if (lx->flags&LF_AOT_COMPILE) {
 	  j=lx->a->ip;
 	  k=(size+7)>>3;
@@ -47,12 +35,11 @@ U8 *CmpStatement(CLex *lx,I64 *type)
 	  result=j;
 	}
       }
-    } else
-      LinkedLstDel(lx->cbh.cb_out_first);
-  } else
-    LinkedLstDel(lx->cbh.cb_out_first);
+    } //TODO: else del misc?
+  } else //TODO: too dangerous to del Misc?
+    QueDel(&lx->lcc.lcc_root.next);
   if (lx->a_depth==2)
-    CBPop(lx);
+    LCCPop(lx);
   return result;
 }
 
@@ -62,6 +49,7 @@ CExe *CmpJoin(CLex *lx,CHashFun *locals,Bool first_lex,Bool asm_blk=FALSE,
 {
   CAsmCtrl *a,*old_a=lx->a;
   I64 i,j,l;
+  U8 *ex;
   CAsmCodeBlk *tempc;
   CExeImportExport *tempe;
   Bool okay=TRUE;
@@ -75,7 +63,7 @@ CExe *CmpJoin(CLex *lx,CHashFun *locals,Bool first_lex,Bool asm_blk=FALSE,
   lx->a=a=CAlloc(sizeof(CAsmCtrl));
   lx->a_depth++;
 
-  a->code=CAlloc(sizeof(CAsmCodeBlk));
+  a->cb=CAlloc(sizeof(CAsmCodeBlk));
   a->max_align=1;
   a->module_org=INVALID_PTR;
 
@@ -92,17 +80,17 @@ CExe *CmpJoin(CLex *lx,CHashFun *locals,Bool first_lex,Bool asm_blk=FALSE,
     lx->htc.glbl_hash_table->next=Fs->hash_table;
   lx->htc.hash_table_lst =asm_hash_alias;
 
-  lx->htc.local_var_lst=locals; //Holy C local vars
+  lx->htc.local_var_lst=locals; //HolyC local vars
   try {
     if (first_lex)
       Lex(lx);
     if (lx->flags&LF_AOT_COMPILE) {
       while (lx->token!=TK_EOF) {
-	i=CmpStatement(lx,NULL);
-	if (i!=INVALID_PTR) {
+	ex=LexStatement2Bin(lx,NULL);
+	if (ex!=INVALID_PTR) {
 	  tempe=CAlloc(sizeof(CExeImportExport));
 	  tempe->type=EIE_MAIN;
-	  tempe->ip=i;
+	  tempe->ip=ex;
 	  QueIns(tempe,result->last_ie);
 	}
 	if (asm_blk)
@@ -112,8 +100,7 @@ CExe *CmpJoin(CLex *lx,CHashFun *locals,Bool first_lex,Bool asm_blk=FALSE,
       PrsStatement(lx,NULL);
     AsmGlblsResolve(lx,result);
   } catch {
-    if (Fs->except_argc>0 && Fs->except_argv[0]==EXCEPT_COMPILER &&
-      !asm_blk) {
+    if (Fs->except_argc>0 && Fs->except_argv[0]==EXCEPT_COMPILER && !asm_blk) {
       if (Fs->except_argc>1 && Fs->except_argv[1]) {
 	"Compiler exception #%d\n",Fs->except_argv[1];
 	LexPutPos(lx);
@@ -127,40 +114,40 @@ CExe *CmpJoin(CLex *lx,CHashFun *locals,Bool first_lex,Bool asm_blk=FALSE,
       lx->error_cnt=1;
     lx->exe_struct=result->parent_exe;
     Free(result);
-    LinkedLstDel(a->code);
+    LinkedLstDel(a->cb);
     result=NULL;
   } else {
     if (map_name && !cmp_do_not_write_to_dsk)
-      HashRep(lx->htc.glbl_hash_table,HTG_ALL,map_name,"-r-p",mapfile_drv);
+      Who("-r",lx->htc.glbl_hash_table,map_name,mapfile_drv);
     HashTableDel(lx->htc.local_hash_table);
     HashTableDel(lx->htc.glbl_hash_table);
 
-    if (!a->num_code_U8s)
-      result->code=NULL;
+    if (!a->num_ex_U8s)
+      result->ex=NULL;
     else {
       if (lx->flags&LF_AOT_COMPILE)
-	result->code=MAlloc(a->num_code_U8s);
+	result->ex=MAlloc(a->num_ex_U8s);
       else {
 	if (a->module_org==INVALID_PTR)
-	  result->code=MAlloc(a->num_code_U8s,Fs->code_heap);
+	  result->ex=MAlloc(a->num_ex_U8s,Fs->code_heap);
 	else
-	  result->code=a->module_org;
+	  result->ex=a->module_org;
       }
-      result->code_U8s=a->num_code_U8s;
-      tempc=a->code;
+      result->ex_U8s=a->num_ex_U8s;
+      tempc=a->cb;
       j=0;
-      l=a->num_code_U8s;
+      l=a->num_ex_U8s;
       while (tempc) {
 	i=l;
 	if (i>ASM_CODE_BLK_SIZE)
 	  i=ASM_CODE_BLK_SIZE;
-	MemCpy(result->code+j,tempc->body,i);
+	MemCpy(result->ex+j,tempc->body,i);
 	j+=i;
 	l-=i;
 	tempc=tempc->next;
       }
     }
-    LinkedLstDel(a->code);
+    LinkedLstDel(a->cb);
     result->abss=a->abss;
     result->heap_glbls=a->heap_glbls;
     result->max_align =a->max_align;
@@ -195,103 +182,96 @@ CExe *CmpBuf(U8 *buf,U8 *map_name=NULL,
   return result;
 }
 
-U0 CmpFixUpJITAsm(CLex *lx,CExe *ex,I64 ip2)
+U0 CmpFixUpJITAsm(CLex *lx,CExe *tempx,I64 ip2)
 {
   I64 i,*str=NULL;
   U8 *ptr;
   CExeAbsAddr *tempa,*tempa1;
   CExeImportExport *tempe,*tempe1;
-  CHashExport *tempess;
-  CHashFun *tempf;
-  CHashGlblVar *tempg;
+  CHashExport *tempex;
 
-  tempa=ex->abss;
+  tempa=tempx->abss;
   while (tempa) {
     tempa1=tempa->next;
+    ptr=tempx->ex+tempa->ip;
     nobound_switch (tempa->type) {
       case EAA_ADD_U8:
-	*(ex->code(U8 *)+tempa->ip)(U8 *)+=ip2;
+	*ptr(U8 *)+=ip2;
 	break;
       case EAA_SUB_U8:
-	*(ex->code(U8 *)+tempa->ip)(U8 *)-=ip2;
+	*ptr(U8 *)-=ip2;
 	break;
       case EAA_ADD_U16:
-	*(ex->code(U8 *)+tempa->ip)(U16 *)+=ip2;
+	*ptr(U16 *)+=ip2;
 	break;
       case EAA_SUB_U16:
-	*(ex->code(U8 *)+tempa->ip)(U16 *)-=ip2;
+	*ptr(U16 *)-=ip2;
 	break;
       case EAA_ADD_U32:
-	*(ex->code(U8 *)+tempa->ip)(U32 *)+=ip2;
+	*ptr(U32 *)+=ip2;
 	break;
       case EAA_SUB_U32:
-	*(ex->code(U8 *)+tempa->ip)(U32 *)-=ip2;
+	*ptr(U32 *)-=ip2;
 	break;
       case EAA_ADD_U64:
-	*(ex->code(U8 *)+tempa->ip)(I64 *)+=ip2;
+	*ptr(I64 *)+=ip2;
 	break;
       case EAA_SUB_U64:
-	*(ex->code(U8 *)+tempa->ip)(I64 *)-=ip2;
+	*ptr(I64 *)-=ip2;
 	break;
     }
     Free(tempa);
     tempa=tempa1;
   }
-  tempe=ex->next_ie;
-  while (tempe!=&ex->next_ie) {
+  tempe=tempx->next_ie;
+  while (tempe!=&tempx->next_ie) {
     tempe1=tempe->next;
     if (tempe->str) {
       Free(str);
       str=tempe->str;
     }
-    if (tempe->type<=EIE_LIT_EXPORT) {
-      tempess=CAlloc(sizeof(CHashExport));
-      tempess->str=str;
-      str=NULL;
-      tempess->type=HTT_EXPORT_SYS_SYM|HTF_LIT;
-      if (tempe->type==EIE_LIT_EXPORT)
-	tempess->val=tempe->ip;
-      else
-	tempess->val=tempe->ip+ip2;
-      tempess->src_link=tempe->src_link;
-      tempe->src_link=NULL;
-      if (IsReplaceSyms)
-	HashReplace(tempess,Fs->hash_table);
-      else
-	HashAdd(tempess,Fs->hash_table);
-      SysSymImportsResolve(tempess->str);
-    } else if (tempe->typestr && !(tempess=HashFind(str,Fs->hash_table,HTG_ALL-HTT_IMPORT_SYS_SYM)))
-	"%S%s\n","ST_UNRESOLVED_REFERENCE",str;
-      else {
-	ptr=tempe->ip+ip2;
-	if (tempess->type & HTT_FUN) {
-	  tempf=tempess;
-	  if (tempe->type & 1)
-	    i=tempf->executable_addr;
+    switch (tempe->type) {
+      case EIE_REL_EXPORT:
+      case EIE_IMM_EXPORT:
+	tempex=CAlloc(sizeof(CHashExport));
+	tempex->str=str;
+	str=NULL;
+	tempex->type=HTT_EXPORT_SYS_SYM|HTF_IMM;
+	if (tempe->type==EIE_IMM_EXPORT)
+	  tempex->val=tempe->ip;
+	else
+	  tempex->val=tempe->ip+ip2;
+	tempex->src_link=tempe->src_link;
+	tempe->src_link=NULL;
+	if (IsReplaceSyms)
+	  HashReplace(tempex,Fs->hash_table);
+	else
+	  HashAdd(tempex,Fs->hash_table);
+	SysSymImportsResolve(tempex->str);
+	break;
+      case EIE_REL_U8...EIE_IMM_U64:
+	if (tempe->str && !(tempex=HashFind(str,Fs->hash_table,HTG_ALL-HTT_IMPORT_SYS_SYM)))
+	  "%S%s\n","ST_UNRESOLVED_REFERENCE",str;
+	else {
+	  ptr=tempe->ip+ip2;
+	  if (tempex->type & HTT_FUN)
+	    i=tempex(CHashFun *)->executable_addr;
+	  else if (tempex->type & HTT_GLBL_VAR)
+	    i=tempex(CHashGlblVar *)->data_addr;
 	  else
-	    i=tempf->executable_addr-ex->code;
-	} else if (tempess->type & HTT_GLBL_VAR) {
-	  tempg=tempess;
-	  if (tempe->type & 1)
-	    i=tempg->data_addr;
-	  else
-	    i=tempg->data_addr-ex->code;
-	} else {
-	  if (tempe->type & 1)
-	    i=tempess->val;
-	  else
-	    i=tempess->val(U8 *)-ex->code;
+	    i=tempex->val;
+	  nobound_switch (tempe->type) {
+	    case EIE_REL_U8:  *ptr(U8 *) =i-ptr-1; break;
+	    case EIE_IMM_U8:  *ptr(U8 *) =i;  break;
+	    case EIE_REL_U16: *ptr(U16 *)=i-ptr-2; break;
+	    case EIE_IMM_U16: *ptr(U16 *)=i; break;
+	    case EIE_REL_U32: *ptr(U32 *)=i-ptr-4; break;
+	    case EIE_IMM_U32: *ptr(U32 *)=i; break;
+	    case EIE_REL_U64: *ptr(I64 *)=i-ptr-8; break;
+	    case EIE_IMM_U64: *ptr(I64 *)=i; break;
+	  }
 	}
-	if (tempe->type<=EIE_LIT_U8)
-	  *ptr(U8 *)+=i;
-	else if (tempe->type<=EIE_LIT_U16)
-	  *ptr(U16 *)+=i;
-	else if (tempe->type<=EIE_LIT_U32)
-	  *ptr(U32 *)+=i;
-	else if (tempe->type<=EIE_LIT_U64)
-	  *ptr(I64 *)+=i;
-      }
+	break;
     }
     Free(tempe->src_link);
     Free(tempe);
@@ -299,45 +279,46 @@ U0 CmpFixUpJITAsm(CLex *lx,CExe *ex,I64 ip2)
   }
   Free(str);
   if (!lx->a_depth && Bt(&lx->opts,OPTf_COMPILE_TRACE))
-    Un(ex->code,ex->code_U8s,64);
-  Free(ex);
+    Un(tempx->ex,tempx->ex_U8s,64);
+  Free(tempx);
 }
 
-U0 CmpFixUpAOTAsm(CLex *lx,CExe *ex,I64 ip2)
+U0 CmpFixUpAOTAsm(CLex *lx,CExe *tempx,I64 ip2)
 {
   CAsmCtrl *a=lx->a;
   U8 *ptr;
   CExeAbsAddr *tempa,*tempa1;
   CExeImportExport *tempe,*tempe1;
 
-  tempa=ex->abss;
+  tempa=tempx->abss;
   while (tempa) {
     tempa1=tempa->next;
     tempa->next=a->abss;
+    ptr=tempx->ex+tempa->ip;
     nobound_switch (tempa->type) {
       case EAA_ADD_U8:
-	*(ex->code(U8 *)+tempa->ip)(U8 *)+=ip2;
+	*ptr(U8 *)+=ip2;
 	break;
       case EAA_SUB_U8:
-	*(ex->code(U8 *)+tempa->ip)(U8 *)-=ip2;
+	*ptr(U8 *)-=ip2;
 	break;
       case EAA_ADD_U16:
-	*(ex->code(U8 *)+tempa->ip)(U16 *)+=ip2;
+	*ptr(U16 *)+=ip2;
 	break;
       case EAA_SUB_U16:
-	*(ex->code(U8 *)+tempa->ip)(U16 *)-=ip2;
+	*ptr(U16 *)-=ip2;
 	break;
       case EAA_ADD_U32:
-	*(ex->code(U8 *)+tempa->ip)(U32 *)+=ip2;
+	*ptr(U32 *)+=ip2;
 	break;
       case EAA_SUB_U32:
-	*(ex->code(U8 *)+tempa->ip)(U32 *)-=ip2;
+	*ptr(U32 *)-=ip2;
 	break;
       case EAA_ADD_U64:
-	*(ex->code(U8 *)+tempa->ip)(I64 *)+=ip2;
+	*ptr(I64 *)+=ip2;
 	break;
       case EAA_SUB_U64:
-	*(ex->code(U8 *)+tempa->ip)(I64 *)-=ip2;
+	*ptr(I64 *)-=ip2;
 	break;
     }
     a->abss=tempa;
@@ -345,36 +326,49 @@ U0 CmpFixUpAOTAsm(CLex *lx,CExe *ex,I64 ip2)
     tempa=tempa1;
   }
 
-  tempe=ex->next_ie;
-  while (tempe!=&ex->next_ie) {
+  tempe=tempx->next_ie;
+  while (tempe!=&tempx->next_ie) {
     tempe1=tempe->next;
     QueRem(tempe);
-    if (tempe->type<=EIE_LIT_EXPORT)
-      tempe->ip+=ip2;
-    else if (tempe->typecode(U8 *)+tempe->ip;
-      if (tempe->type<=EIE_LIT_U8)
-	*ptr(U8 *)-=ip2;
-      else if (tempe->type<=EIE_LIT_U16)
+    ptr=tempx->ex+tempe->ip;
+    switch (tempe->type) {
+      case EIE_REL_EXPORT:
+      case EIE_IMM_EXPORT:
+	tempe->ip+=ip2;
+	break;
+      case EIE_REL_U8:
+      case EIE_IMM_U8:
+	*ptr(U8 *) -=ip2;
+	tempe->ip+=ip2;
+	break;
+      case EIE_REL_U16:
+      case EIE_IMM_U16:
 	*ptr(U16 *)-=ip2;
-      else if (tempe->type<=EIE_LIT_U32)
+	tempe->ip+=ip2;
+	break;
+      case EIE_REL_U32:
+      case EIE_IMM_U32:
 	*ptr(U32 *)-=ip2;
-      else if (tempe->type<=EIE_LIT_U64)
+	tempe->ip+=ip2;
+	break;
+      case EIE_REL_U64:
+      case EIE_IMM_U64:
 	*ptr(I64 *)-=ip2;
-      tempe->ip+=ip2;
+	tempe->ip+=ip2;
+	break;
     }
-    QueIns(tempe,ex->parent_exe->last_ie);
+    QueIns(tempe,tempx->parent_exe->last_ie);
     tempe=tempe1;
   }
-  Free(ex);
+  Free(tempx);
 }
 
 I64 Cmp(U8 *filename,U8 *map_name=NULL,U8 *out_name=NULL,U8 mapfile_drv=0)
 { //Compile file, returns err_cnt
   U8 *ptr,*fbuf=NULL,*fbuf2=NULL,*fbuf3=NULL,
      *patch_table=MAlloc(0x20000);
-  CExe *ex;
-  I64 i,cnt,size=0,error_cnt=0,warning_cnt=0,code_U8s=0;
+  CExe *tempx;
+  I64 i,cnt,size=0,error_cnt=0,warning_cnt=0,ex_U8s=0;
   CBinFile *bfh;
   CExeImportExport *tempe,*tempe1;
   CExeAbsAddr *tempa,*tempa1;
@@ -382,26 +376,26 @@ I64 Cmp(U8 *filename,U8 *map_name=NULL,U8 *out_name=NULL,U8 mapfile_drv=0)
   CExeHeapGlbl *temphg,*temphg1;
 
   fbuf=DftExt(filename,"PRJ.Z");
-  fbuf2=MSPrintF("#include \"%s\"",fbuf);
+  fbuf2=MPrint("#include \"%s\"",fbuf);
   if (map_name)
     fbuf3=DftExt(map_name,"MAP.Z");
-  ex=CmpBuf(fbuf2,fbuf3,&error_cnt,&warning_cnt,mapfile_drv);
+  tempx=CmpBuf(fbuf2,fbuf3,&error_cnt,&warning_cnt,mapfile_drv);
 
-  if (ex) {
-    code_U8s=ex->code_U8s;
+  if (tempx) {
+    ex_U8s=tempx->ex_U8s;
     ptr=patch_table;
     //See $LK,"CBinFilePatchTableWithoutOrg","MN:CBinFilePatchTableWithoutOrg"$
     *ptr++=EIE_MODULE_ALIGNMENT; //See $LK,"Load","MN:Load"$() and $LK,"BinRep","MN:BinRep"$()
-    *ptr(U32 *)++=ex->max_align;
+    *ptr(U32 *)++=tempx->max_align;
     *ptr++=0;
-    if (ex->module_org!=INVALID_PTR) {
+    if (tempx->module_org!=INVALID_PTR) {
       //See $LK,"CBinFilePatchTableWithOrg","MN:CBinFilePatchTableWithOrg"$
       *ptr++=EIE_MODULE_ORG;
-      *ptr(U32 *)++=ex->module_org;
+      *ptr(U32 *)++=tempx->module_org;
       *ptr++=0;
     }
     cnt=0;
-    tempa=ex->abss;
+    tempa=tempx->abss;
     while (tempa) {
       if (!(tempa->type&1))
 	cnt++;
@@ -411,7 +405,7 @@ I64 Cmp(U8 *filename,U8 *map_name=NULL,U8 *out_name=NULL,U8 mapfile_drv=0)
       *ptr++=EIE_ABS_ADDR;
       *ptr(U32 *)++=cnt;
       *ptr++=0;
-      tempa=ex->abss;
+      tempa=tempx->abss;
       while (tempa) {
 	tempa1=tempa->next;
 	if (!(tempa->type&1))
@@ -420,7 +414,7 @@ I64 Cmp(U8 *filename,U8 *map_name=NULL,U8 *out_name=NULL,U8 mapfile_drv=0)
 	tempa=tempa1;
       }
     }
-    temphg=ex->heap_glbls;
+    temphg=tempx->heap_glbls;
     while (temphg) {
       temphg1=temphg->next;
       cnt=0;
@@ -453,10 +447,10 @@ I64 Cmp(U8 *filename,U8 *map_name=NULL,U8 *out_name=NULL,U8 mapfile_drv=0)
     }
 
 //Do exports first
-    tempe=ex->next_ie;
-    while (tempe!=&ex->next_ie) {
+    tempe=tempx->next_ie;
+    while (tempe!=&tempx->next_ie) {
       tempe1=tempe->next;
-      if (tempe->type<=EIE_LIT_EXPORT) {
+      if (tempe->type<=EIE_IMM_EXPORT) {
 	QueRem(tempe);
 	*ptr++=tempe->type;
 	*ptr(U32 *)++=tempe->ip;
@@ -474,8 +468,8 @@ I64 Cmp(U8 *filename,U8 *map_name=NULL,U8 *out_name=NULL,U8 mapfile_drv=0)
     }
 
 //Do imports second
-    tempe=ex->next_ie;
-    while (tempe!=&ex->next_ie) {
+    tempe=tempx->next_ie;
+    while (tempe!=&tempx->next_ie) {
       tempe1=tempe->next;
       QueRem(tempe);
       *ptr++=tempe->type;
@@ -496,17 +490,17 @@ I64 Cmp(U8 *filename,U8 *map_name=NULL,U8 *out_name=NULL,U8 mapfile_drv=0)
     MemSet(ptr,0,16);
     i=ptr-patch_table;
     //$LK,"TEMPLEOS_XSUM","FF:::/TempleOS/Kernel/KStart.CPP,TEMPLEOS_XSUM"$ needs 16 ALIGN
-    size=(sizeof(CBinFile)+code_U8s+i+15)&-16;
+    size=(sizeof(CBinFile)+ex_U8s+i+15)&-16;
     bfh=MAlloc(size);
     bfh->jmp=0xEB+256*(sizeof(CBinFile)-2);
 #assert sizeof(CBinFile)-2<=MAX_I8
     bfh->type=0;
-    bfh->loader_patch_table_offset=sizeof(CBinFile)+code_U8s;
+    bfh->loader_patch_table_offset=sizeof(CBinFile)+ex_U8s;
     bfh->file_size=size;
     bfh->xsum=TEMPLEOS_XSUM;
-    MemCpy(bfh(U8 *)+sizeof(CBinFile),ex->code,code_U8s);
-    MemCpy(bfh(U8 *)+sizeof(CBinFile)+code_U8s,patch_table,
-      size-code_U8s-sizeof(CBinFile));
+    MemCpy(bfh(U8 *)+sizeof(CBinFile),tempx->ex,ex_U8s);
+    MemCpy(bfh(U8 *)+sizeof(CBinFile)+ex_U8s,patch_table,
+      size-ex_U8s-sizeof(CBinFile));
     bfh->xsum=ArcXSum(bfh,size);
     Free(fbuf2);
     if (out_name)
@@ -516,14 +510,14 @@ I64 Cmp(U8 *filename,U8 *map_name=NULL,U8 *out_name=NULL,U8 mapfile_drv=0)
     if (!cmp_do_not_write_to_dsk)
       FileWrite(fbuf2,bfh,size);
     Free(bfh);
-    Free(ex->code);
-    Free(ex);
+    ExpressionBinDel(tempx->ex);
+    Free(tempx);
   }
   Free(patch_table);
   Free(fbuf);
   Free(fbuf2);
   Free(fbuf3);
-  PrintF(Define("ST_ERRORS_WARNINGS"),error_cnt,warning_cnt,code_U8s,size);
+  Print(Define("ST_ERRORS_WARNINGS"),error_cnt,warning_cnt,ex_U8s,size);
   return error_cnt;
 }
 
@@ -565,10 +559,10 @@ I64 ExePutS(U8 *buf,U8 *filename=NULL,Bool just_load=FALSE,CLexHashTableContext
   return result;
 }
 
-I64 ExePrintF(U8 *fmt,...)
+I64 ExePrint(U8 *fmt,...)
 {
   I64 result;
-  U8 *buf=SPrintFJoin(NULL,fmt,argc,argv);
+  U8 *buf=SPrintJoin(NULL,fmt,argc,argv);
   result=ExePutS(buf);
   Free(buf);
   return result;
@@ -578,7 +572,7 @@ I64 ExeFile(U8 *name,Bool just_load=FALSE)
 {
   I64 result;
   U8 *name2=DftExt(name,"CPP.Z"),
-     *st=MSPrintF("#include \"%s\";",name2);
+     *st=MPrint("#include \"%s\";",name2);
   result=ExePutS(st,name,just_load);
   Free(st);
   Free(name2);
@@ -617,10 +611,10 @@ I64 ExePutS2(U8 *buf,U8 *filename=NULL,Bool just_load=FALSE)
   return result;
 }
 
-I64 ExePrintF2(U8 *fmt,...)
+I64 ExePrint2(U8 *fmt,...)
 { //with REPLACE_SYMS
   I64 result;
-  U8 *buf=SPrintFJoin(NULL,fmt,argc,argv);
+  U8 *buf=SPrintJoin(NULL,fmt,argc,argv);
   result=ExePutS2(buf);
   Free(buf);
   return result;
@@ -630,7 +624,7 @@ I64 ExeFile2(U8 *name,Bool just_load=FALSE)
 { //with REPLACE_SYMS
   I64 result;
   U8 *name2=DftExt(name,"CPP.Z"),
-     *st=MSPrintF("#include \"%s\";",name2);
+     *st=MPrint("#include \"%s\";",name2);
   result=ExePutS2(st,name,just_load);
   Free(st);
   Free(name2);
@@ -656,49 +650,41 @@ I64 ExePutS3(U8 *buf,U8 *filename=NULL,Bool just_load=FALSE)
   return result;
 }
 
-I64 ExePrintF3(U8 *fmt,...)
+I64 ExePrint3(U8 *fmt,...)
 { //throws exceptions
   I64 result;
-  U8 *buf=SPrintFJoin(NULL,fmt,argc,argv);
+  U8 *buf=SPrintJoin(NULL,fmt,argc,argv);
   result=ExePutS3(buf);
   Free(buf);
   return result;
 }
 
-
 I64 ExeFile3(U8 *name,Bool just_load=FALSE)
 { //throws exceptions
   I64 result;
   U8 *name2=DftExt(name,"CPP.Z"),
-     *st=MSPrintF("#include \"%s\";",name2);
+     *st=MPrint("#include \"%s\";",name2);
   result=ExePutS3(st,name,just_load);
   Free(st);
   Free(name2);
   return result;
 }
 
-I64 StreamExePutS(U8 *buf)
+I64 StreamExePrint(U8 *fmt,...)
 {//Suppose you want a value from the stream to be used in an #exe block...
-  CLexHashTableContext *htc;
+  U8 *buf=SPrintJoin(NULL,fmt,argc,argv);
   I64 result=0;
+  CLexHashTableContext *htc;
   CLex *lx=Fs->last_lex;
   if (lx==&Fs->next_lex) {
     PutErr;
     "Not Compiling\n";
   } else {
     if (!(lx->flags&LF_EXE_BLK))
-      LexExcept(lx,"ST_STREAM_EXE_PUTS_NOT_ALLOWED");
+      LexExcept(lx,"ST_STREAM_EXE_PRINT_NOT_ALLOWED");
     if (htc=lx->htc.next)
       result=ExePutS(buf,,,htc);
   }
-  return result;
-}
-
-I64 StreamExePrintF(U8 *fmt,...)
-{
-  I64 result;
-  U8 *buf=SPrintFJoin(NULL,fmt,argc,argv);
-  result=StreamExePutS(buf);
   Free(buf);
   return result;
 }
@@ -716,10 +702,12 @@ U0 CmpInit()
   cmp_do_not_write_to_dsk=FALSE;
   CmpLoadDefines;
   CmpFillTables;
-  MemSet(&opt_nop,0,sizeof(CIntermediateCode));
-  opt_nop.ic_class=sys_internal_types[IT_I64];
 
+  MemSet(&opt_nop,0,sizeof(CIntermediateCode));
+  QueInit(&opt_nop);
+  opt_nop.ic_class=sys_internal_types[IT_I64];
   opt_nop.ic_opcode=IC_NOP1;
+
   AsmHashLoad(is_first_compiler);
   UnasmHashLoad;
 }
diff --git a/TempleOS/Compiler/CodeGen.CPP b/TempleOS/Compiler/CodeGen.CPP
deleted file mode 100644
index f75fa4d..0000000
--- a/TempleOS/Compiler/CodeGen.CPP
+++ /dev/null
@@ -1,482 +0,0 @@
-U0 CBPutClass(CHashClass *c)
-{
-  I64 i;
-  if (!c) return;
-  if (c->ptr_cnt>4) {
-    PrintFErr("put_class ptrcnt=%d\n",c->ptr_cnt);
-    while (TRUE)
-//TODO:
-      Yield;
-  }
-  for (i=0;iptr_cnt;i++)
-    '*';
-  c-=c->ptr_cnt;
-  if (c->str)
-    "" c->str;
-  else {
-    PrintFErr("put_class str=NULL\n");
-    while (TRUE)
-//TODO:
-      Yield;
-  }
-  '' CH_SPACE;
-}
-
-
-U0 CBPutICArg(CICArg *p)
-{
-  if (p->ptype)
-    "%Z %Z %Z ",
-      p->type&IT_MASK,"ST_IT_TYPES",
-      p->ptype&IT_MASK,"ST_IT_TYPES",
-      p->type>>4,"ST_TY_TYPES";
-  else
-    "%Z %Z ",
-      p->type&IT_MASK,"ST_IT_TYPES",
-      p->type>>4,"ST_TY_TYPES";
-  switch (p->type>>4) {
-    case TY_STK>>4:
-      "STK";
-      break;
-    case TY_IMM>>4:
-      "#%X",p->disp;
-      break;
-    case TY_REG>>4:
-      "%Z",p->reg,"ST_U64_REGS";
-      break;
-    case TY_DISP>>4:
-      "%X[%Z]",p->disp,p->reg,"ST_U64_REGS";
-      break;
-    case TY_RIP_DISP32>>4:
-      "[%X]",p->disp;
-      break;
-    case TY_SIB>>4:
-      if (p->disp)
-	"%X",p->disp;
-      if (p->reg==CREG_RIP)
-	'[';
-      else
-	"[%Z+",p->reg&7,"ST_U64_REGS";
-      "%Z",p->reg>>8&7,"ST_U64_REGS";
-      switch (p->reg>>14) {
-	case 0: "]"; break;
-	case 1: "*2]"; break;
-	case 2: "*4]"; break;
-	case 3: "*8]"; break;
-      }
-      break;
-  }
-}
-
-U0 CBPutIC(CIntermediateCode *tempi)
-{
-  I64 opcode=tempi->ic_opcode,i;
-  if (opcode>=IC_END_EXP && opcode!=IC_NOP2) {
-    "%15ts %016X ",
-      DefineSub(opcode,"ST_INTERMEDIATE_CODE")+4,
-      tempi->ic_data;
-    if (tempi->r.type&TY_MASK) {
-      CBPutICArg(&tempi->r);
-      "<-";
-    }
-    if (tempi->p1.type&TY_MASK)
-      CBPutICArg(&tempi->p1);
-    ',';
-    if (tempi->p2.type&TY_MASK)
-      CBPutICArg(&tempi->p2);
-    '' CH_SPACE;
-    CBPutClass(tempi->ic_class);
-    if (tempi->ic_flags & ICF_LOCK)
-      "$$FG,BROWN$$lock$$FG$$ ";
-    if (tempi->ic_flags & ICF_P2_TO_F64)
-      "$$FG,LTBLUE$$p2d$$FG$$ ";
-    if (tempi->ic_flags & ICF_P2_TO_INT)
-      "$$FG,GREEN$$p2i$$FG$$ ";
-    if (tempi->ic_flags & ICF_P1_TO_F64)
-      "$$FG,LTBLUE$$p1d$$FG$$ ";
-    if (tempi->ic_flags & ICF_P1_TO_INT)
-      "$$FG,GREEN$$p1i$$FG$$ ";
-    if (tempi->ic_flags & ICF_R_TO_F64)
-      "$$FG,LTBLUE$$rd$$FG$$ ";
-    if (tempi->ic_flags & ICF_R_TO_INT)
-      "$$FG,GREEN$$ri$$FG$$ ";
-    if (tempi->ic_flags & ICF_USE_F64)
-      "[F64] ";
-    if (tempi->ic_flags & ICF_USE_UNSIGNED)
-      "[unsigned] ";
-    if (tempi->ic_flags & ICF_USE_INT)
-      "[int] ";
-    if (tempi->ic_flags & ICF_NO_DEPEND_RESULT)
-      "-DEP ";
-    if (tempi->ic_flags & ICF_DEPEND_RESULT)
-      "+DEP ";
-    if (tempi->ic_flags & ICF_NOT_ADDR)
-      "NOT_ADDR ";
-    if (tempi->ic_flags & ICF_PUSH_RESULT)
-      "PUSH ";
-    if (tempi->ic_flags & ICF_PUSH_CMP)
-      "PUSH_CMP ";
-    if (tempi->ic_flags & ICF_POP_CMP)
-      "POP_CMP ";
-    if (tempi->ic_flags & ICF_DEL_PREVIOUS_INS)
-      "DELINS ";
-    for (i=0;i<4;i++) {
-      if (Bt(&tempi->ic_flags,ICf_DONT_PUSH_FLOAT0+i))
-	"DONT_PUSH#%d ",i;
-      if (Bt(&tempi->ic_flags,ICf_DONT_POP_FLOAT0+i))
-	"DONT_POP#%d ",i;
-    }
-    if (tempi->ic_flags & ICF_ALTERNATE_TEMPLATE)
-      "ALT_TEMP ";
-    NewLine;
-  }
-}
-
-CIntermediateCode *CBICAdd(CLex *lx,
-   I64 opcode_and_precedence,I64 arg, CHashClass *c,I64 flags=0)
-{
-  CIntermediateCode *tempi=lx->cbh.cb_out_ptr;
-  CCodeBlk *cb,*cb1;
-  lx->cbh.cb_last_out_ptr=tempi;
-  tempi->ic_opcode=opcode_and_precedence.u16[0];
-  tempi->ic_precedence=opcode_and_precedence.u16[1];
-  tempi->ic_data=arg;
-  tempi->ic_class=c;
-  if (Bt(&lx->opts,OPTf_OPT_TRACE)) {
-    Bts(&lx->flags,Lf_OPT_TRACE_PRESENT);
-    flags|=ICF_TRACE;
-  }
-  if (lx->lock_cnt)
-    flags|=ICF_LOCK;
-  tempi->ic_flags=flags;
-  tempi->ic_line=lx->last_line_num;
-  if (lx->opts & OPTF_PARSE_TRACE)
-    CBPutIC(tempi);
-  tempi++;
-  if (tempi>=lx->cbh.cb_out_end) {
-    cb=MAlloc(sizeof(CCodeBlk));
-    cb->next=NULL;
-    cb1=lx->cbh.cb_out_last;
-    cb1->next=lx->cbh.cb_out_last=cb;
-    tempi=&cb->data;
-    lx->cbh.cb_out_end=tempi+CB_IC_CNT;
-  }
-  lx->cbh.cb_out_ptr=tempi;
-  return lx->cbh.cb_last_out_ptr;
-}
-
-U0 CBOutPtrsInit(CLex *lx)
-{
-  CLexCodeBlkCtrl *tempcbh=&lx->cbh;
-  CCodeBlk *cb=MAlloc(sizeof(CCodeBlk));
-  cb->next=NULL;
-  tempcbh->cb_out_first=tempcbh->cb_out_last=cb;
-  tempcbh->cb_misc_lst=NULL;
-  tempcbh->cb_misc_lst_end=&tempcbh->cb_misc_lst;
-  tempcbh->cb_out_ptr=&cb->data;
-  tempcbh->cb_out_end=tempcbh->cb_out_ptr+CB_IC_CNT;
-  tempcbh->cb_last_out_ptr=&cb->data;
-}
-
-U0 CBInPtrsInit(CLexCodeBlkCtrl *tempcbh)
-{
-  CCodeBlk *cb=tempcbh->cb_out_first;
-  tempcbh->cb_in_first=cb;
-  tempcbh->cb_in_ptr=&cb->data;
-  tempcbh->cb_in_end=tempcbh->cb_in_ptr+CB_IC_CNT;
-}
-
-U0 CBPutAllIC(CLex *lx)
-{
-  CIntermediateCode *tempi;
-  CBInPtrsInit(&lx->cbh);
-  tempi=lx->cbh.cb_in_ptr;
-  while (tempi->ic_opcode) {
-    if (tempi->ic_flags&ICF_TRACE)
-      CBPutIC(tempi);
-    tempi++;
-  }
-}
-
-CIntermediateCode *CBGetIC1(CLexCodeBlkCtrl *lx)
-{
-  CIntermediateCode *tempi=lx->cb_in_ptr,
-      *tempi1=tempi+1;
-  CCodeBlk *cb;
-  if (tempi1>=lx->cb_in_end) {
-    cb=tempi1(U8 *)-sizeof(CIntermediateCode)*CB_IC_CNT-offset(CCodeBlk.data);
-    cb=cb->next;
-    tempi1=&cb->data;
-    lx->cb_in_end=tempi1+CB_IC_CNT;
-  }
-  lx->cb_in_ptr=tempi1;
-  return tempi;
-}
-
-U0 CBPush(CLex *lx)
-{
-  CLexCodeBlkCtrl *tempcbh=MAlloc(sizeof(CLexCodeBlkCtrl));
-  MemCpy(tempcbh,&lx->cbh,sizeof(CLexCodeBlkCtrl));
-  if (lx->cbh.cb_misc_lst_end==&lx->cbh.cb_misc_lst)
-    tempcbh->cb_misc_lst_end=&tempcbh->cb_misc_lst;
-  lx->cbh.cb_next=tempcbh;
-}
-
-U0 CBPop(CLex *lx)
-{
-  CLexCodeBlkCtrl *tempcbh=lx->cbh.cb_next;
-  MemCpy(&lx->cbh,tempcbh,sizeof(CLexCodeBlkCtrl));
-  if (tempcbh->cb_misc_lst_end==&tempcbh->cb_misc_lst)
-    lx->cbh.cb_misc_lst_end=&lx->cbh.cb_misc_lst;
-  Free(tempcbh);
-}
-
-CCodeBlkMisc *CBGoToLabelFind(CLex *lx,U8 *name)
-{
-  CCodeBlkMisc *mc=lx->cbh.cb_misc_lst;
-  while (mc) {
-    if (mc->type==CBMT_GOTO_LABEL) {
-      if (!StrCmp(mc->str,name))
-	return mc;
-    }
-    mc=mc->next;
-  }
-  return NULL;
-}
-
-CCodeBlkMisc *CBMiscNew(CLex *lx,I64 ty)
-{
-  CCodeBlkMisc *result=CAlloc(sizeof(CCodeBlkMisc));
-  lx->cbh.cb_misc_lst_end->next=result;
-  lx->cbh.cb_misc_lst_end=result;
-  result->addr=INVALID_PTR;
-  result->type=ty;
-  return result;
-}
-
-I64 CBFloatConstFind(CLex *lx,F64 d)
-{
-  I64 i;
-  CCodeBlkMisc *mc=lx->cbh.cb_misc_lst;
-  while (mc) {
-    if (mc->type==CBMT_FLOAT_CONSTS) {
-      for (i=0;inum_consts;i++)
-	if (mc->float_consts[i]==d)
-	  return mc->addr+i*sizeof(F64);
-      if (mc->num_constsfloat_consts[mc->num_consts++]=d;
-	return mc->addr+i*sizeof(F64);
-      }
-    }
-    mc=mc->next;
-  }
-  mc=CBMiscNew(lx,CBMT_FLOAT_CONSTS);
-  mc->float_consts=MAlloc(CBM_MAX_CONSTS*sizeof(F64));
-  mc->float_consts[mc->num_consts++]=d;
-  return mc->addr;
-}
-
-U0 CBMiscLstDel(CLex *lx)
-{
-  CCodeBlkMisc *mc=lx->cbh.cb_misc_lst,*mc1;
-  U8 *undef=NULL;
-  while (mc) {
-    mc1=mc->next;
-    switch (mc->type) {
-      case CBMT_GOTO_LABEL:
-	if (!(mc->flags&CBMF_DEFINED)) {
-	  undef=mc->str;
-	  mc->str=NULL;
-	} else if (!(mc->flags&CBMF_USED)) {
-	  PrintFWarn("%S%s\n","ST_UNUSED_LABEL",mc->str);
-	  LexPutWarn(lx,"ST_UNUSED_LABEL_AT");
-	}
-	break;
-      case CBMT_JMP_TABLE:
-	Free(mc->jmp_table);
-	break;
-      case CBMT_FLOAT_CONSTS:
-	Free(mc->float_consts);
-	break;
-      case CBMT_ARRAY_DIM:
-	LinkedLstDel(mc->dim);
-	break;
-      case CBMT_HASH_ENTRY:
-	HashDel(mc->h);
-	break;
-    }
-    Free(mc->str);
-    Free(mc);
-    mc=mc1;
-  }
-  if (undef) {
-    PrintFErr("%S%s\n","ST_UNDEFINED_GOTO_LABEL",undef);
-    Free(undef);
-    LexExcept(lx,"ST_UNDEFINED_GOTO_LABEL_AT");
-  }
-}
-
-CLex *CBPopNoFree(CLex *lx)
-{
-  CLexCodeBlkCtrl *tempcbh=lx->cbh.cb_next;
-  MemCpy(&lx->cbh,tempcbh,sizeof(CLexCodeBlkCtrl));
-  if (tempcbh->cb_misc_lst_end==&tempcbh->cb_misc_lst)
-    lx->cbh.cb_misc_lst_end=&lx->cbh.cb_misc_lst;
-  return tempcbh;
-}
-
-U0 CBAppend(CLex *lx, CLexCodeBlkCtrl *tempcbh)
-{
-  CIntermediateCode *tempi,*tempi1;
-  CBInPtrsInit(tempcbh);
-  do {
-    tempi=CBGetIC1(tempcbh);
-    if (tempi->ic_opcode) {
-      tempi1=CBICAdd(lx,tempi->ic_opcode+tempi->ic_precedence<<16,tempi->ic_data,
-	tempi->ic_class,tempi->ic_flags);
-      tempi1->ic_line=tempi->ic_line;
-    }
-  } while (tempi->ic_opcode);
-  LinkedLstDel(tempcbh->cb_out_first);
-
-  if (tempcbh->cb_misc_lst_end!=&tempcbh->cb_misc_lst) {
-    lx->cbh.cb_misc_lst_end->next=tempcbh->cb_misc_lst;
-    lx->cbh.cb_misc_lst_end=tempcbh->cb_misc_lst_end;
-  }
-  Free(tempcbh);
-}
-
-U0 CBCombine(CLex *lx)
-{
-  CCodeBlk *cb=lx->cbh.cb_out_first,*cb1,*cb2;
-  I64 i=0,j=sizeof(CIntermediateCode)*CB_IC_CNT;
-  U8 *ptr;
-  while (cb) {
-    i++;
-    cb=cb->next;
-  }
-  if (i>1) {
-    cb1=MAlloc(i*j+offset(CCodeBlk.data));
-    cb1->next=NULL;
-    cb=lx->cbh.cb_out_first;
-    ptr=&cb1->data;
-    i--;
-    while (i--) {
-      cb2=cb->next;
-      MemCpy(ptr,&cb->data,j);
-      ptr+=j;
-      Free(cb);
-      cb=cb2;
-    }
-    MemCpy(ptr,&cb->data,lx->cbh.cb_out_ptr(I64)-(&cb->data)(I64));
-    Free(cb);
-    lx->cbh.cb_out_first=cb1;
-  }
-}
-
-U8 *CBCompile(CLex *lx,CHashFun *fun_class,
-      I64 *code_size,CDbgInfo **_dbg,I64 *type=NULL)
-{
-  U8 *result;
-  COptReg register_offsets[NUM_REGS];
-  if (_dbg) *_dbg=NULL;
-  CBCombine(lx);
-  if (Bt(&lx->flags,Lf_OPT_TRACE_PRESENT)) {
-    if (Bt(&lx->pass_trace_mask,0)) {
-      "$$IV,1$$Before Pass 1:$$IV,0$$\n";
-      CBPutAllIC(lx);
-    }
-  }
-  lx->pass=1;
-  OptPass012(lx,fun_class,TRUE);
-  if (Bt(&lx->flags,Lf_OPT_TRACE_PRESENT)) {
-    if (Bt(&lx->pass_trace_mask,1)) {
-      "$$IV,1$$After Pass 1:$$IV,0$$\n";
-      CBPutAllIC(lx);
-    }
-  }
-  lx->pass=2;
-  OptPass012(lx,fun_class,TRUE);
-  if (Bt(&lx->flags,Lf_OPT_TRACE_PRESENT)) {
-    if (Bt(&lx->pass_trace_mask,2)) {
-      "$$IV,1$$After Pass 2:$$IV,0$$\n";
-      CBPutAllIC(lx);
-    }
-  }
-  lx->pass=3;
-  OptPass3(lx,fun_class,register_offsets);
-  if (Bt(&lx->flags,Lf_OPT_TRACE_PRESENT)) {
-    if (Bt(&lx->pass_trace_mask,3)) {
-      "$$IV,1$$After Pass 3:$$IV,0$$\n";
-      CBPutAllIC(lx);
-    }
-  }
-  lx->pass=4;
-  OptPass4(lx,register_offsets,type);
-  if (Bt(&lx->flags,Lf_OPT_TRACE_PRESENT)) {
-    if (Bt(&lx->pass_trace_mask,4)) {
-      "$$IV,1$$After Pass 4:$$IV,0$$\n";
-      CBPutAllIC(lx);
-    }
-  }
-  lx->pass=5;
-  OptPass5(lx);
-  if (Bt(&lx->flags,Lf_OPT_TRACE_PRESENT)) {
-    if (Bt(&lx->pass_trace_mask,5)) {
-      "$$IV,1$$After Pass 5:$$IV,0$$\n";
-      CBPutAllIC(lx);
-    }
-  }
-  lx->pass=6;
-  OptPass6(lx,fun_class);
-  if (Bt(&lx->flags,Lf_OPT_TRACE_PRESENT)) {
-    if (Bt(&lx->pass_trace_mask,6)) {
-      "$$IV,1$$After Pass 6:$$IV,0$$\n";
-      CBPutAllIC(lx);
-    }
-  }
-
-  if (Bt(&lx->flags,Lf_OPT_TRACE_PRESENT))
-    if (Bt(&lx->pass_trace_mask,7))
-      "$$IV,1$$Pass 7:$$IV,0$$\n";
-  lx->pass=7;
-  OptPass789A(lx,fun_class,register_offsets,NULL,NULL);
-
-  if (Bt(&lx->flags,Lf_OPT_TRACE_PRESENT))
-    if (Bt(&lx->pass_trace_mask,8))
-      "$$IV,1$$Pass 8:$$IV,0$$\n";
-  lx->pass=8;
-  OptPass789A(lx,fun_class,register_offsets,NULL,NULL);
-
-  if (Bt(&lx->flags,Lf_OPT_TRACE_PRESENT))
-    if (Bt(&lx->pass_trace_mask,9))
-      "$$IV,1$$Pass 9:$$IV,0$$\n";
-  lx->pass=9;
-  *code_size=OptPass789A(lx,fun_class,register_offsets,NULL,NULL);
-  if (lx->flags&LF_AOT_COMPILE)
-    result=MAlloc(*code_size);
-  else
-    result=MAlloc(*code_size,Fs->code_heap);
-
-  if (Bt(&lx->flags,Lf_OPT_TRACE_PRESENT))
-    if (Bt(&lx->pass_trace_mask,0xA))
-      "$$IV,1$$Pass A:$$IV,0$$\n";
-  lx->pass=0xA;
-  *code_size=OptPass789A(lx,fun_class,register_offsets,result,_dbg);
-  compiled_bytes+=*code_size;
-
-  LinkedLstDel(lx->cbh.cb_out_first);
-  CBMiscLstDel(lx);
-  if (Bt(&lx->opts,OPTf_COMPILE_TRACE)) {
-    if (lx->flags&LF_AOT_COMPILE) {
-      if (lx->a->seg_size==16)
-	Un(result,*code_size,16);
-      else if (lx->a->seg_size==64)
-	Un(result,*code_size,64);
-      else
-	Un(result,*code_size,32);
-    } else
-      Un(result,*code_size,64);
-  }
-  return result;
-}
diff --git a/TempleOS/Compiler/Compiler.BIN b/TempleOS/Compiler/Compiler.BIN
index 16192b0..45f15d4 100644
Binary files a/TempleOS/Compiler/Compiler.BIN and b/TempleOS/Compiler/Compiler.BIN differ
diff --git a/TempleOS/Compiler/Compiler.HPP b/TempleOS/Compiler/Compiler.HPP
index 8109c63..e7f47f2 100644
--- a/TempleOS/Compiler/Compiler.HPP
+++ b/TempleOS/Compiler/Compiler.HPP
@@ -9,7 +9,6 @@ public extern I64 LexGetChar(CLex *lx);
 public extern U0 LexSkipEol(CLex *lx);
 public extern U0 LexPush(CLex *lx);
 public extern U0 LexPop(CLex *lx);
-//public extern U0 LexSubStkPtr(CLex *lx);
 public extern I64 Lex(CLex *lx);
 public extern U8 *LexExtStr(CLex *lx,I64 *_size=NULL);
 public extern U0 LexPutLine(CLex *lx,U8 *start);
@@ -17,26 +16,24 @@ public extern U0 LexPutPos(CLex *lx);
 public extern U0 LexPutWarn(CLex *lx,U8 *name=NULL,CHashFun *fun_class=NULL);
 public extern I64 PrsKeyWord(CLex *lx);
 public extern U0 LexExcept(CLex *lx,U8 *name=NULL,CHashFun *fun_class=NULL);
-public extern U8 *CmpExpression(CLex *lx,I64 *type=NULL);
-public extern U8 *CmpStatement(CLex *lx,I64 *type);
-public extern I64 GetExpression(CLex *lx,U8 **ex); //FALSE=no err
-public extern I64 Expression(CLex *lx);
-public extern U0 ExpressionDel(U8 *code);
+public extern U8 *LexExpression2Bin(CLex *lx,I64 *type=NULL);
+public extern U8 *LexStatement2Bin(CLex *lx,I64 *type);
+public extern I64 IsLexExpression2Bin(CLex *lx,U8 **ex); //FALSE=no err
+public extern I64 LexExpression(CLex *lx);
+public extern U0 ExpressionBinDel(U8 *ex);
 public extern I64 MemberMetaData(U8 *st,CMemberLst *ml);
 extern U0 MemberLstDel(CHashClass *c);
 public extern CMemberLstMeta *MemberMetaFind(U8 *st,CMemberLst *ml);
 public extern CMemberLst *MemberFind(U8 *st,CHashClass *c);
 public extern CMemberLst *MemberFind2(CHashClass *pattern,CHashClass *tempc);
 public extern U0 LexAttachDoc(CLex *lx,CLexFile *tempf=NULL,
-  CDoc *doc=NULL,U8 *abs_filename=NULL,CDocEntry *doc_e=NULL,I64 col=0);
+	CDoc *doc=NULL,U8 *abs_filename=NULL,CDocEntry *doc_e=NULL,I64 col=0);
 public extern CHashClass *OptClassFwd(CHashClass *tempc);
 
 #help_index "Compiler/Directive"
 #help_file "::/TempleOS/Doc/Directives"
-public extern U0 StreamPutS(U8 *buf);
-public extern U0 StreamPrintF(U8 *src,...);
-public extern I64 StreamExePutS(U8 *buf);
-public extern I64 StreamExePrintF(U8 *fmt,...);
+public extern U0 StreamPrint(U8 *fmt,...);
+public extern I64 StreamExePrint(U8 *fmt,...);
 public extern Bool PTrace(Bool val);
 public extern Bool OTrace(Bool val);
 public extern I64 OPassTraceMask(I64 i=0b1001111101);
@@ -65,20 +62,18 @@ public extern I64 Cmp(U8 *filename,U8 *map_name=NULL,U8 *out_name=NULL,U8 mapfil
 #help_index "Compiler"
 public extern I64 ExePutS(U8 *buf,U8 *filename=NULL,Bool just_load=FALSE,
 			  CLexHashTableContext *htc=NULL);
-public extern I64 ExePrintF(U8 *fmt,...);
+public extern I64 ExePrint(U8 *fmt,...);
 public extern I64 ExeFile(U8 *name,Bool just_load=FALSE);
 public extern I64 ExePutS2(U8 *buf,U8 *filename=NULL,Bool just_load=FALSE);
-public extern I64 ExePrintF2(U8 *fmt,...);
+public extern I64 ExePrint2(U8 *fmt,...);
 public extern I64 ExeFile2(U8 *name,Bool just_load=FALSE);
 public extern I64 ExePutS3(U8 *buf,U8 *filename=NULL,Bool just_load=FALSE);
-public extern I64 ExePrintF3(U8 *fmt,...);
+public extern I64 ExePrint3(U8 *fmt,...);
 public extern I64 ExeFile3(U8 *name,Bool just_load=FALSE);
 extern CHashTable *asm_hash;
 extern U0 CmpInit(Bool first);
 extern I64 compiled_lines,compiled_funs,compiled_bytes;
 
-
-
 //The following is for benchmarking
 extern Bool cmp_do_not_write_to_dsk;
 
diff --git a/TempleOS/Compiler/Compiler.MAP b/TempleOS/Compiler/Compiler.MAP
index 7d30b51..19d5f27 100644
--- a/TempleOS/Compiler/Compiler.MAP
+++ b/TempleOS/Compiler/Compiler.MAP
@@ -1,202 +1,197 @@
-$LK+BI,"AsmCodeInstruction        ","FL:D:/TempleOS/Compiler/Assembler.CPP.Z,807",1$000000C1AE    0001 0000001367 Funct  
-$LK+BI,"AsmExpressionEval         ","FL:D:/TempleOS/Compiler/Assembler.CPP.Z,185",2$000000A7B8    0004 00000000B8 Funct  
-$LK+BI,"AsmGlblsResolve           ","FL:D:/TempleOS/Compiler/Assembler.CPP.Z,273",3$000000ABA0    0001 00000005D7 Funct  
-$LK+BI,"AsmHashLoad               ","FL:D:/TempleOS/Compiler/CmpInit.CPP.Z,77",4$0000030D18    0001 000000064F Funct  
-$LK+BI,"AsmLineLst                ","FL:D:/TempleOS/Compiler/Assembler.CPP.Z,29",5$000000A230    0001 0000000143 Funct  
-$LK+BI,"AsmLocalsResolve          ","FL:D:/TempleOS/Compiler/Assembler.CPP.Z,207",6$000000A870    0003 0000000329 Funct  
-$LK+BI,"AsmMakeArgMask            ","FL:D:/TempleOS/Compiler/Assembler.CPP.Z,584",7$000000B738    0002 000000045D Funct  
-$LK+BI,"AsmPrsInsFlags            ","FL:D:/TempleOS/Compiler/CmpInit.CPP.Z,27",8$00000304B8    0001 000000085D Funct  
-$LK+BI,"AsmStoreCodeU32           ","FL:D:/TempleOS/Compiler/Assembler.CPP.Z,90",9$000000A478    0001 0000000149 Funct  
-$LK+BI,"AsmStoreCodeU64           ","FL:D:/TempleOS/Compiler/Assembler.CPP.Z,129",10$000000A5C8    0005 000000014A Funct  
-$LK+BI,"AsmStoreCodeU8            ","FL:D:/TempleOS/Compiler/Assembler.CPP.Z,61",11$000000A378    001C 00000000FF Funct  
-$LK+BI,"AsmStoreCodeU8At          ","FL:D:/TempleOS/Compiler/Assembler.CPP.Z,168",12$000000A718    0016 00000000A0 Funct  
-$LK+BI,"AsmStoreNum               ","FL:D:/TempleOS/Compiler/Assembler.CPP.Z,668",13$000000BB98    0004 000000060E Funct  
-$LK+BI,"AsmUnresolvedAdd          ","FL:D:/TempleOS/Compiler/Assembler.CPP.Z,1",14$000000A150    0008 00000000DF Funct  
-$LK+BI,"CBAppend                  ","FL:D:/TempleOS/Compiler/CodeGen.CPP.Z,328",15$0000009560    0002 000000009D Funct  
-$LK+BI,"CBCombine                 ","FL:D:/TempleOS/Compiler/CodeGen.CPP.Z,349",16$0000009600    0001 00000000CA Funct  
-$LK+BI,"CBCompile                 ","FL:D:/TempleOS/Compiler/CodeGen.CPP.Z,377",17$00000096D0    0006 00000004AA Funct  
-$LK+BI,"CBFloatConstFind          ","FL:D:/TempleOS/Compiler/CodeGen.CPP.Z,257",18$00000092C8    000F 00000000BE Funct  
-$LK+BI,"CBGetIC1                  ","FL:D:/TempleOS/Compiler/CodeGen.CPP.Z,201",19$0000009140    0004 000000004C Funct  
-$LK+BI,"CBGoToLabelFind           ","FL:D:/TempleOS/Compiler/CodeGen.CPP.Z,234",20$0000009228    0002 0000000049 Funct  
-$LK+BI,"CBICAdd                   ","FL:D:/TempleOS/Compiler/CodeGen.CPP.Z,135",21$0000008F58    00B9 00000000FA Funct  
-$LK+BI,"CBInPtrsInit              ","FL:D:/TempleOS/Compiler/CodeGen.CPP.Z,181",22$00000090C8    0003 0000000030 Funct  
-$LK+BI,"CBMiscLstDel              ","FL:D:/TempleOS/Compiler/CodeGen.CPP.Z,279",23$0000009388    0001 000000018D Funct  
-$LK+BI,"CBMiscNew                 ","FL:D:/TempleOS/Compiler/CodeGen.CPP.Z,247",24$0000009278    001A 000000004A Funct  
-$LK+BI,"CBOutPtrsInit             ","FL:D:/TempleOS/Compiler/CodeGen.CPP.Z,168",25$0000009058    000A 000000006C Funct  
-$LK+BI,"CBPop                     ","FL:D:/TempleOS/Compiler/CodeGen.CPP.Z,225",26$00000091E0    0009 0000000045 Funct  
-$LK+BI,"CBPopNoFree               ","FL:D:/TempleOS/Compiler/CodeGen.CPP.Z,319",27$0000009518    0001 0000000042 Funct  
-$LK+BI,"CBPush                    ","FL:D:/TempleOS/Compiler/CodeGen.CPP.Z,216",28$0000009190    000E 000000004B Funct  
-$LK+BI,"CBPutAllIC                ","FL:D:/TempleOS/Compiler/CodeGen.CPP.Z,189",29$00000090F8    0007 0000000043 Funct  
-$LK+BI,"CBPutClass                ","FL:D:/TempleOS/Compiler/CodeGen.CPP.Z,1",30$0000008838    0001 00000000C5 Funct  
-$LK+BI,"CBPutIC                   ","FL:D:/TempleOS/Compiler/CodeGen.CPP.Z,71",31$0000008BF8    0006 000000035E Funct  
-$LK+BI,"CBPutICArg                ","FL:D:/TempleOS/Compiler/CodeGen.CPP.Z,26",32$0000008900    0003 00000002F3 Funct  
-$LK,"CInternalType             ","FL:D:/TempleOS/Compiler/CmpInit.CPP.Z,4"$007FD83B48    0002 000000000A Class 
-CMP_OPT_NOP               0000000000    0003            ExportSysSym 
-$LK,"CMP_TEMPLATES             ","FL:D:/TempleOS/Compiler/CmpAsm.CPP.Z,164"$00000001F6    0001            ExportSysSym  
-$LK,"CMP_TEMPLATES_DONT_POP    ","FL:D:/TempleOS/Compiler/CmpAsm.CPP.Z,338"$000000038B    0001            ExportSysSym  
-$LK,"CMP_TEMPLATES_DONT_PUSH   ","FL:D:/TempleOS/Compiler/CmpAsm.CPP.Z,427"$0000000457    0001            ExportSysSym  
-$LK,"CMP_TEMPLATES_DONT_PUSH2  ","FL:D:/TempleOS/Compiler/CmpAsm.CPP.Z,618"$000000062D    0001            ExportSysSym  
-$LK,"CMP_TEMPLATES_DONT_PUSH_POP","FL:D:/TempleOS/Compiler/CmpAsm.CPP.Z,554"$000000059D    0001            ExportSysSym  
+$LK+BI,"AsmGlblsResolve           ","FL:D:/TempleOS/Compiler/Assembler.CPP.Z,275",1$000000A360    0001 00000005D7 Funct Export 
+$LK+BI,"AsmHashLoad               ","FL:D:/TempleOS/Compiler/CmpInit.CPP.Z,77",2$000002F088    0001 000000064A Funct Export 
+$LK+BI,"AsmLexExpression          ","FL:D:/TempleOS/Compiler/Assembler.CPP.Z,187",3$0000009F78    0004 00000000B8 Funct Export 
+$LK+BI,"AsmLineLst                ","FL:D:/TempleOS/Compiler/Assembler.CPP.Z,31",4$00000099F0    0001 0000000143 Funct Export 
+$LK+BI,"AsmLocalsResolve          ","FL:D:/TempleOS/Compiler/Assembler.CPP.Z,209",5$000000A030    0003 0000000329 Funct Export 
+$LK+BI,"AsmMakeArgMask            ","FL:D:/TempleOS/Compiler/Assembler.CPP.Z,586",6$000000AEF8    0002 00000004A3 Funct Export 
+$LK+BI,"AsmPrsInsFlags            ","FL:D:/TempleOS/Compiler/CmpInit.CPP.Z,27",7$000002E828    0001 000000085C Funct Export 
+$LK+BI,"AsmStoreCodeU32           ","FL:D:/TempleOS/Compiler/Assembler.CPP.Z,92",8$0000009C38    0001 0000000149 Funct Export 
+$LK+BI,"AsmStoreCodeU64           ","FL:D:/TempleOS/Compiler/Assembler.CPP.Z,131",9$0000009D88    0005 000000014A Funct Export 
+$LK+BI,"AsmStoreCodeU8            ","FL:D:/TempleOS/Compiler/Assembler.CPP.Z,63",10$0000009B38    001C 00000000FF Funct Export 
+$LK+BI,"AsmStoreCodeU8At          ","FL:D:/TempleOS/Compiler/Assembler.CPP.Z,170",11$0000009ED8    0016 00000000A0 Funct Export 
+$LK+BI,"AsmStoreNum               ","FL:D:/TempleOS/Compiler/Assembler.CPP.Z,680",12$000000B3A0    0004 00000004A6 Funct Export 
+$LK+BI,"AsmUnresolvedAdd          ","FL:D:/TempleOS/Compiler/Assembler.CPP.Z,1",13$0000009908    0004 00000000E2 Funct Export 
+$LK,"CInternalType             ","FL:D:/TempleOS/Compiler/CmpInit.CPP.Z,4"$007FCDDD58    0002 000000000A Class 
+$LK,"CMP_TEMPLATES             ","FL:D:/TempleOS/Compiler/CmpAsm.CPP.Z,5"$0000000000    0001            ExportSysSym Export 
+$LK,"CMP_TEMPLATES_DONT_POP    ","FL:D:/TempleOS/Compiler/CmpAsm.CPP.Z,179"$000000018B    0001            ExportSysSym Export 
+$LK,"CMP_TEMPLATES_DONT_PUSH   ","FL:D:/TempleOS/Compiler/CmpAsm.CPP.Z,268"$0000000257    0001            ExportSysSym Export 
+$LK,"CMP_TEMPLATES_DONT_PUSH2  ","FL:D:/TempleOS/Compiler/CmpAsm.CPP.Z,459"$0000000421    0001            ExportSysSym Export 
+$LK,"CMP_TEMPLATES_DONT_PUSH_POP","FL:D:/TempleOS/Compiler/CmpAsm.CPP.Z,395"$0000000391    0001            ExportSysSym Export 
 $LK,"CN_MAIN                   ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,220"$0             0028 0000000008 DefineStr 
 $LK,"CN_P1                     ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,221"$1             0006 0000000008 DefineStr 
 $LK,"CN_P2                     ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,222"$2             0005 0000000008 DefineStr 
 $LK,"CN_R                      ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,223"$3             0003 0000000008 DefineStr 
-$LK,"CSwitchCase               ","FL:D:/TempleOS/Compiler/StmtParser.CPP.Z,1396"$007FCBA0A8    0004 0000000018 Class 
-$LK+BI,"CTrace                    ","FL:D:/TempleOS/Compiler/Directives.CPP.Z,38",33$0000003220    0000 0000000017 Funct  
-$LK,"CVI2                      ","FL:D:/TempleOS/Compiler/StmtParser.CPP.Z,213"$007FCBD098    0003 0000000010 Class 
-$LK+BI,"Cmp                       ","FL:D:/TempleOS/Compiler/CmpMain.CPP.Z,372",34$0000034FB8    0000 000000059B Funct  
-$LK+BI,"CmpBuf                    ","FL:D:/TempleOS/Compiler/CmpMain.CPP.Z,179",35$0000034880    0001 00000000F7 Funct  
-$LK+BI,"CmpExpression             ","FL:D:/TempleOS/Compiler/ExpParser.CPP.Z,1233",36$00000123A6    0004 00000000B4 Funct  
-$LK+BI,"CmpF1PushPop              ","FL:D:/TempleOS/Compiler/OptPass3.CPP.Z,21",37$0000029030    0002 0000000034 Funct  
-$LK+BI,"CmpF2PushPop              ","FL:D:/TempleOS/Compiler/OptPass3.CPP.Z,27",38$0000029068    0005 0000000080 Funct  
-$LK+BI,"CmpFillTables             ","FL:D:/TempleOS/Compiler/CmpInit.CPP.Z,570",39$0000033A28    0001 0000000640 Funct  
-$LK+BI,"CmpFixUpAOTAsm            ","FL:D:/TempleOS/Compiler/CmpMain.CPP.Z,306",40$0000034D58    0000 000000025C Funct  
-$LK+BI,"CmpFixUpJITAsm            ","FL:D:/TempleOS/Compiler/CmpMain.CPP.Z,198",41$0000034978    0000 00000003DC Funct  
-$LK+BI,"CmpInit                   ","FL:D:/TempleOS/Compiler/CmpMain.CPP.Z,706",42$0000035C58    0001 00000000B8 Funct  
-$LK+BI,"CmpJoin                   ","FL:D:/TempleOS/Compiler/CmpMain.CPP.Z,60",43$0000034248    0001 0000000636 Funct  
-$LK+BI,"CmpLoadDefines            ","FL:D:/TempleOS/Compiler/CmpInit.CPP.Z,222",44$0000031368    0001 00000026BC Funct  
-$LK+BI,"CmpNoteFloatOp            ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,225",45$0000017C6E    000E 000000021F Funct  
-$LK+BI,"CmpOffset2Reg             ","FL:D:/TempleOS/Compiler/OptPass012.CPP.Z,96",46$0000024540    0005 0000000042 Funct  
-$LK+BI,"CmpPType                  ","FL:D:/TempleOS/Compiler/OptPass3.CPP.Z,10",47$0000028FF8    0005 0000000033 Funct  
-$LK+BI,"CmpPmt                    ","FL:D:/TempleOS/Compiler/Lex.CPP.Z,1",48$0000003380    0001 000000022A Funct  
-$LK+BI,"CmpSetFloatOpPushPop      ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,276",49$0000017E8E    000E 000000007B Funct  
-$LK+BI,"CmpStatement              ","FL:D:/TempleOS/Compiler/CmpMain.CPP.Z,24",50$0000034100    0001 0000000148 Funct  
-$LK+BI,"CmpType                   ","FL:D:/TempleOS/Compiler/OptPass3.CPP.Z,1",51$0000028FD0    0006 0000000025 Funct  
-$LK+BI,"DefineU8s                 ","FL:D:/TempleOS/Compiler/Assembler.CPP.Z,1216",52$000000D516    0004 00000002D2 Funct  
-$LK+BI,"Echo                      ","FL:D:/TempleOS/Compiler/Directives.CPP.Z,48",53$0000003250    0000 0000000017 Funct  
-$LK+BI,"ExeFile                   ","FL:D:/TempleOS/Compiler/CmpMain.CPP.Z,577",54$0000035748    0000 0000000077 Funct  
-$LK+BI,"ExeFile2                  ","FL:D:/TempleOS/Compiler/CmpMain.CPP.Z,629",55$0000035968    0000 0000000075 Funct  
-$LK+BI,"ExeFile3                  ","FL:D:/TempleOS/Compiler/CmpMain.CPP.Z,669",56$0000035AF0    0000 0000000075 Funct  
-$LK+BI,"ExePrintF                 ","FL:D:/TempleOS/Compiler/CmpMain.CPP.Z,568",57$0000035700    0000 0000000045 Funct  
-$LK+BI,"ExePrintF2                ","FL:D:/TempleOS/Compiler/CmpMain.CPP.Z,620",58$0000035920    0000 0000000043 Funct  
-$LK+BI,"ExePrintF3                ","FL:D:/TempleOS/Compiler/CmpMain.CPP.Z,659",59$0000035AA8    0000 0000000043 Funct  
-$LK+BI,"ExePutS                   ","FL:D:/TempleOS/Compiler/CmpMain.CPP.Z,530",60$0000035558    0003 00000001A1 Funct  
-$LK+BI,"ExePutS2                  ","FL:D:/TempleOS/Compiler/CmpMain.CPP.Z,588",61$00000357C0    0002 0000000159 Funct  
-$LK+BI,"ExePutS3                  ","FL:D:/TempleOS/Compiler/CmpMain.CPP.Z,640",62$00000359E0    0002 00000000C4 Funct  
-$LK+BI,"Expression                ","FL:D:/TempleOS/Compiler/ExpParser.CPP.Z,1258",63$000001248E    0007 000000003B Funct  
-$LK+BI,"ExpressionDel             ","FL:D:/TempleOS/Compiler/Lex.CPP.Z,372",64$0000005084    000B 0000000014 Funct  
-$LK,"FBO1_F64                  ","FL:D:/TempleOS/Compiler/OptPass012.CPP.Z,107"$2             0002 0000000008 DefineStr 
-$LK,"FBO1_INT                  ","FL:D:/TempleOS/Compiler/OptPass012.CPP.Z,106"$1             0013 0000000008 DefineStr 
-$LK,"FBO1_NOT_CONST            ","FL:D:/TempleOS/Compiler/OptPass012.CPP.Z,105"$0             0004 0000000008 DefineStr 
-$LK+BI,"GetExpression             ","FL:D:/TempleOS/Compiler/ExpParser.CPP.Z,1253",65$000001245E    0000 0000000029 Funct  
-$LK+BI,"GetOpt                    ","FL:D:/TempleOS/Compiler/Directives.CPP.Z,16",66$0000003188    0005 000000002C Funct  
-$LK+BI,"HashEntryImportCopy       ","FL:D:/TempleOS/Compiler/Hash1b.CPP.Z,1",67$0000009B80    0002 000000015F Funct  
-$LK+BI,"HashEntrySize             ","FL:D:/TempleOS/Compiler/Hash1b.CPP.Z,71",68$0000009DC8    0000 0000000164 Funct  
-$LK+BI,"HashEntrySize2            ","FL:D:/TempleOS/Compiler/Hash1b.CPP.Z,102",69$0000009F30    0002 00000001A9 Funct  
-$LK+BI,"HashTableImport           ","FL:D:/TempleOS/Compiler/Hash1b.CPP.Z,40",70$0000009CE0    0000 00000000E8 Funct  
-$LK+BI,"HashTableSize2            ","FL:D:/TempleOS/Compiler/Hash1b.CPP.Z,139",71$000000A0E0    0000 000000006B Funct  
-$LK+BI,"ICAddConst                ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,945",72$00000199F6    000C 000000074A Funct  
-$LK+BI,"ICAddEct                  ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,889",73$0000019706    0005 00000002EF Funct  
-$LK+BI,"ICAddRSP                  ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,163",74$00000179E6    0016 0000000286 Funct  
-$LK+BI,"ICAddSubEctEqual          ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,2711",75$000001EB26    0005 0000000673 Funct  
-$LK+BI,"ICAndAnd                  ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,2980",76$000001F7B6    0001 0000000147 Funct  
-$LK+BI,"ICAndBranch               ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,3823",77$0000021BC6    0002 000000070C Funct  
-$LK+BI,"ICAndEqual                ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,4484",78$0000023A9E    0001 0000000109 Funct  
-$LK+BI,"ICAssign                  ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,3981",79$00000222D6    0001 0000000308 Funct  
-$LK+BI,"ICAssignPostIncDec        ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,3501",80$0000020E9E    0002 000000020C Funct  
-$LK+BI,"ICBitOps                  ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,3194",81$000002009E    0007 00000004FB Funct  
-$LK+BI,"ICBrBitOps                ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,4030",82$00000225DE    0008 0000000980 Funct  
-$LK+BI,"ICBuiltInFloatConst       ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,633",83$0000018B1E    000F 00000000BD Funct  
-$LK+BI,"ICCmp                     ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,3074",84$000001FBB6    0006 00000004E6 Funct  
-$LK+BI,"ICCmpAndBranch            ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,3543",85$00000210AE    000C 000000081C Funct  
-$LK+BI,"ICCopyTemplate            ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,288",86$0000017F0E    0019 000000026C Funct  
-$LK+BI,"ICDeref                   ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,871",87$000001964E    0001 00000000B5 Funct  
-$LK+BI,"ICDerefPostIncDec         ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,3458",88$0000020CAE    0002 00000001ED Funct  
-$LK+BI,"ICDiv                     ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,2619",89$000001E656    0001 00000000F2 Funct  
-$LK+BI,"ICDivEqual                ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,2638",90$000001E74E    0002 00000002E0 Funct  
-$LK+BI,"ICFAdd                    ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,2490",91$000001DF2E    0001 00000001FB Funct  
-$LK+BI,"ICFCmp                    ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,1611",92$000001B6C6    0004 0000000187 Funct  
-$LK+BI,"ICFCmpAndBranch           ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,2042",93$000001CC46    0004 0000000A47 Funct  
-$LK+BI,"ICFCvt                    ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,1177",94$000001A53E    000C 000000017B Funct  
-$LK+BI,"ICFCvt2                   ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,1225",95$000001A6BE    0010 0000000112 Funct  
-$LK+BI,"ICFDiv                    ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,2466",96$000001DDEE    0001 000000013D Funct  
-$LK+BI,"ICFMod                    ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,1303",97$000001A9B6    0001 0000000141 Funct  
-$LK+BI,"ICFModEqual               ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,1651",98$000001B84E    0001 00000003FA Funct  
-$LK+BI,"ICFMul                    ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,2426",99$000001DBB6    0001 0000000235 Funct  
-$LK+BI,"ICFOp                     ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,1412",100$000001ADEE    0004 00000008D3 Funct  
-$LK+BI,"ICFOpEqual                ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,1718",101$000001BC4E    0004 0000000FF3 Funct  
-$LK+BI,"ICFPostIncDec             ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,2340",102$000001D79E    0002 0000000151 Funct  
-$LK+BI,"ICFPow                    ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,1333",103$000001AAFE    0001 00000002ED Funct  
-$LK+BI,"ICFPreIncDec              ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,2318",104$000001D68E    0002 000000010A Funct  
-$LK+BI,"ICFSub                    ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,2528",105$000001E12E    0001 0000000120 Funct  
-$LK+BI,"ICFTemplateFun            ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,3365",106$000002082E    0007 00000000A8 Funct  
-$LK+BI,"ICFUnaryMinus             ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,1252",107$000001A7D6    0001 00000001DC Funct  
-$LK+BI,"ICLastIns                 ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,135",108$0000017946    0002 00000000A0 Funct  
-$LK+BI,"ICLea                     ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,837",109$000001947E    0004 00000001CD Funct  
-$LK+BI,"ICLocalVarInit            ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,4645",110$000002416E    0001 0000000078 Funct  
-$LK+BI,"ICMinMax                  ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,4305",111$0000023356    0004 00000002B7 Funct  
-$LK+BI,"ICMod                     ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,2692",112$000001EA2E    0001 00000000F2 Funct  
-$LK+BI,"ICModU64                  ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,4384",113$000002365E    0001 00000001BB Funct  
-$LK+BI,"ICModr1                   ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,352",114$000001817E    0017 0000000326 Funct  
-$LK+BI,"ICModr2                   ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,443",115$00000184A6    0015 00000000D5 Funct  
-$LK+BI,"ICMov                     ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,656",116$0000018BDE    01A4 000000089C Funct  
-$LK+BI,"ICMul                     ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,2368",117$000001D8F6    0001 00000002BA Funct  
-$LK+BI,"ICMulEqual                ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,2551",118$000001E24E    0001 0000000408 Funct  
-$LK+BI,"ICNot                     ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,2960",119$000001F6B6    0001 00000000FB Funct  
-$LK+BI,"ICOpSizeRex               ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,46",120$000001759E    0006 0000000113 Funct  
-$LK+BI,"ICOr                      ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,623",121$0000018ACE    000C 000000004A Funct  
-$LK+BI,"ICOrEqual                 ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,4507",122$0000023BAE    0001 0000000109 Funct  
-$LK+BI,"ICOrOr                    ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,3009",123$000001F8FE    0001 000000015E Funct  
-$LK+BI,"ICPop                     ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,574",124$0000018906    000A 000000010B Funct  
-$LK+BI,"ICPopRegs                 ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,601",125$0000018A16    000C 0000000055 Funct  
-$LK+BI,"ICPostIncDec              ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,3418",126$0000020AAE    0002 00000001FB Funct  
-$LK+BI,"ICPreIncDec               ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,3381",127$00000208D6    0004 00000001D7 Funct  
-$LK+BI,"ICPreempt                 ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,3298",128$000002059E    0001 0000000122 Funct  
-$LK+BI,"ICPush                    ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,523",129$00000186E6    0020 00000001C1 Funct  
-$LK+BI,"ICPushRegs                ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,561",130$00000188AE    0006 0000000053 Funct  
-$LK+BI,"ICQueInit                 ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,4193",131$0000022F5E    0001 0000000070 Funct  
-$LK+BI,"ICQueIns                  ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,4207",132$0000022FCE    0001 0000000179 Funct  
-$LK+BI,"ICQueInsRev               ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,4248",133$000002314E    0001 0000000179 Funct  
-$LK+BI,"ICQueRem                  ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,4289",134$00000232CE    0001 0000000088 Funct  
-$LK+BI,"ICRex                     ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,32",135$0000017516    0016 0000000081 Funct  
-$LK+BI,"ICShift                   ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,2849",136$000001F19E    0004 0000000197 Funct  
-$LK+BI,"ICShiftEqual              ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,2883",137$000001F336    0002 000000030C Funct  
-$LK+BI,"ICSlashOp                 ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,495",138$000001857E    0027 0000000164 Funct  
-$LK+BI,"ICSqr                     ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,4377",139$000002360E    0002 000000004A Funct  
-$LK+BI,"ICSub                     ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,1099",140$000001A146    0001 00000003F2 Funct  
-$LK+BI,"ICSwap                    ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,4426",141$000002381E    0001 000000027C Funct  
-$LK+BI,"ICSwitch                  ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,4553",142$0000023DC6    0002 00000003A1 Funct  
-$LK+BI,"ICTestAndBranch           ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,3742",143$00000218CE    0002 00000001EA Funct  
-$LK+BI,"ICToBool                  ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,3350",144$00000207B6    0001 0000000071 Funct  
-$LK+BI,"ICToF64                   ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,3345",145$0000020776    0001 000000003D Funct  
-$LK+BI,"ICToI64                   ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,3340",146$0000020736    0001 000000003D Funct  
-$LK+BI,"ICToUpper                 ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,3329",147$00000206C6    0001 000000006B Funct  
-$LK+BI,"ICU16                     ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,72",148$00000176B6    0090 00000000A8 Funct  
-$LK+BI,"ICU24                     ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,87",149$000001775E    0063 00000000D3 Funct  
-$LK+BI,"ICU32                     ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,104",150$0000017836    0051 0000000082 Funct  
-$LK+BI,"ICU64                     ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,120",151$00000178BE    0009 0000000082 Funct  
-$LK+BI,"ICU8                      ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,20",152$0000017496    0062 000000007C Funct  
-$LK+BI,"ICUnaries                 ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,2951",153$000001F646    0002 0000000069 Funct  
-$LK+BI,"ICXorEqual                ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,4530",154$0000023CBE    0001 0000000103 Funct  
-$LK+BI,"ICXorXor                  ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,3041",155$000001FA5E    0001 0000000151 Funct  
-$LK+BI,"ICZFlagBranch             ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,3790",156$0000021ABE    0002 0000000104 Funct  
-$LK+BI,"ICZero                    ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,614",157$0000018A6E    0017 000000005E Funct  
-$LK+BI,"ImportHashTable           ","FL:D:/TempleOS/Compiler/Directives.CPP.Z,56",158$0000003278    0000 00000000D5 Funct  
-$LK+BI,"IncludeDepth              ","FL:D:/TempleOS/Compiler/Directives.CPP.Z,76",159$0000003350    0000 000000002C Funct  
-$LK+BI,"InstEntriesCompare        ","FL:D:/TempleOS/Compiler/Unassembler.CPP.Z,1",160$0000000858    0001 000000022B Funct  
-$LK+BI,"InstEntryFind             ","FL:D:/TempleOS/Compiler/Unassembler.CPP.Z,71",161$0000000A88    0002 0000000375 Funct  
-$LK+BI,"IsReplaceSyms             ","FL:D:/TempleOS/Compiler/Directives.CPP.Z,52",162$0000003268    000A 000000000D Funct  
-$LK+BI,"LTrace                    ","FL:D:/TempleOS/Compiler/Directives.CPP.Z,43",163$0000003238    0000 0000000017 Funct  
-$LK+BI,"Lex                       ","FL:D:/TempleOS/Compiler/Lex.CPP.Z,789",164$0000005F08    00FC 000000254A Funct  
-$LK+BI,"LexAttachDoc              ","FL:D:/TempleOS/Compiler/Lex.CPP.Z,425",165$00000051D0    0001 0000000169 Funct  
-$LK+BI,"LexBackupLastChar         ","FL:D:/TempleOS/Compiler/Lex.CPP.Z,140",166$00000039AC    0003 000000003D Funct  
-$LK+BI,"LexDel                    ","FL:D:/TempleOS/Compiler/Lex.CPP.Z,65",167$00000036E8    0005 000000008D Funct  
-$LK+BI,"LexDocRead                ","FL:D:/TempleOS/Compiler/Lex.CPP.Z,407",168$0000005140    0001 0000000090 Funct  
-$LK+BI,"LexDollar                 ","FL:D:/TempleOS/Compiler/Lex.CPP.Z,151",169$00000039EC    0003 000000006C Funct  
-$LK+BI,"LexExcept                 ","FL:D:/TempleOS/Compiler/Lex.CPP.Z,1670",170$0000008770    00A1 00000000C6 Funct  
-$LK+BI,"LexExtStr                 ","FL:D:/TempleOS/Compiler/Lex.CPP.Z,1588",171$0000008458    0004 00000000C1 Funct  
-$LK+BI,"LexGetChar                ","FL:D:/TempleOS/Compiler/Lex.CPP.Z,165",172$0000003A5C    0030 00000015FA Funct  
-$LK+BI,"LexInStr                  ","FL:D:/TempleOS/Compiler/Lex.CPP.Z,691",173$00000059E0    0001 0000000524 Funct  
-$LK+BI,"LexIncludeStr             ","FL:D:/TempleOS/Compiler/Lex.CPP.Z,377",174$000000509C    0003 0000000095 Funct  
-$LK+BI,"LexNew                    ","FL:D:/TempleOS/Compiler/Lex.CPP.Z,37",175$00000035B0    0005 0000000133 Funct  
-$LK+BI,"LexPop                    ","FL:D:/TempleOS/Compiler/Lex.CPP.Z,482",176$00000053C8    0004 0000000070 Funct  
-$LK+BI,"LexPush                   ","FL:D:/TempleOS/Compiler/Lex.CPP.Z,470",177$0000005340    000F 0000000082 Funct  
-$LK+BI,"LexPutLine                ","FL:D:/TempleOS/Compiler/Lex.CPP.Z,1613",178$0000008520    0003 00000000A7 Funct  
-$LK+BI,"LexPutPos                 ","FL:D:/TempleOS/Compiler/Lex.CPP.Z,1640",179$00000085C8    0003 00000000CA Funct  
-$LK+BI,"LexPutToken               ","FL:D:/TempleOS/Compiler/Lex.CPP.Z,117",180$0000003890    0002 0000000111 Funct  
-$LK+BI,"LexPutWarn                ","FL:D:/TempleOS/Compiler/Lex.CPP.Z,1654",181$0000008698    0011 00000000D3 Funct  
-$LK+BI,"LexSize                   ","FL:D:/TempleOS/Compiler/Lex.CPP.Z,85",182$0000003778    0000 0000000098 Funct  
-$LK+BI,"LexSkipEol                ","FL:D:/TempleOS/Compiler/Lex.CPP.Z,365",183$000000505C    0004 0000000027 Funct  
+$LK,"CSwitchCase               ","FL:D:/TempleOS/Compiler/StmtParser.CPP.Z,1389"$007FCFB750    0004 0000000018 Class 
+$LK+BI,"CTrace                    ","FL:D:/TempleOS/Compiler/Directives.CPP.Z,38",14$0000002FA8    0000 0000000017 Funct Export 
+$LK,"CVI2                      ","FL:D:/TempleOS/Compiler/StmtParser.CPP.Z,224"$007FCFE000    0003 0000000010 Class 
+$LK+BI,"Cmp                       ","FL:D:/TempleOS/Compiler/CmpMain.CPP.Z,366",15$0000033308    0000 0000000597 Funct Export 
+$LK+BI,"CmpBuf                    ","FL:D:/TempleOS/Compiler/CmpMain.CPP.Z,166",16$0000032BB8    0001 00000000FD Funct Export 
+$LK+BI,"CmpF1PushPop              ","FL:D:/TempleOS/Compiler/OptPass3.CPP.Z,21",17$00000272B6    0002 0000000035 Funct Export 
+$LK+BI,"CmpF2PushPop              ","FL:D:/TempleOS/Compiler/OptPass3.CPP.Z,27",18$00000272EE    0005 000000007C Funct Export 
+$LK+BI,"CmpFillTables             ","FL:D:/TempleOS/Compiler/CmpInit.CPP.Z,570",19$0000031DA8    0001 0000000630 Funct Export 
+$LK+BI,"CmpFixUpAOTAsm            ","FL:D:/TempleOS/Compiler/CmpMain.CPP.Z,286",20$00000330A8    0000 000000025B Funct Export 
+$LK+BI,"CmpFixUpJITAsm            ","FL:D:/TempleOS/Compiler/CmpMain.CPP.Z,185",21$0000032CB8    0000 00000003F0 Funct Export 
+$LK+BI,"CmpInit                   ","FL:D:/TempleOS/Compiler/CmpMain.CPP.Z,692",22$0000033F88    0001 00000000C9 Funct Export 
+$LK+BI,"CmpJoin                   ","FL:D:/TempleOS/Compiler/CmpMain.CPP.Z,47",23$0000032580    0001 0000000632 Funct Export 
+$LK+BI,"CmpLoadDefines            ","FL:D:/TempleOS/Compiler/CmpInit.CPP.Z,222",24$000002F6D8    0001 00000026CB Funct Export 
+$LK+BI,"CmpNoteFloatOp            ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,225",25$00000169AE    000E 000000021C Funct Export 
+$LK+BI,"CmpOffset2Reg             ","FL:D:/TempleOS/Compiler/OptPass012.CPP.Z,100",26$0000022D56    0005 0000000042 Funct Export 
+$LK+BI,"CmpPType                  ","FL:D:/TempleOS/Compiler/OptPass3.CPP.Z,10",27$000002727E    0005 0000000033 Funct Export 
+$LK+BI,"CmpPmt                    ","FL:D:/TempleOS/Compiler/Lex.CPP.Z,1",28$0000003110    0001 000000023A Funct Export 
+$LK+BI,"CmpSetFloatOpPushPop      ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,276",29$0000016BCE    000E 000000007B Funct Export 
+$LK+BI,"CmpType                   ","FL:D:/TempleOS/Compiler/OptPass3.CPP.Z,1",30$0000027256    0006 0000000025 Funct Export 
+$LK+BI,"Echo                      ","FL:D:/TempleOS/Compiler/Directives.CPP.Z,48",31$0000002FD8    0000 0000000017 Funct Export 
+$LK+BI,"ExeFile                   ","FL:D:/TempleOS/Compiler/CmpMain.CPP.Z,571",32$0000033A90    0000 0000000077 Funct Export 
+$LK+BI,"ExeFile2                  ","FL:D:/TempleOS/Compiler/CmpMain.CPP.Z,623",33$0000033CB0    0000 0000000075 Funct Export 
+$LK+BI,"ExeFile3                  ","FL:D:/TempleOS/Compiler/CmpMain.CPP.Z,662",34$0000033E38    0000 0000000075 Funct Export 
+$LK+BI,"ExePrint                  ","FL:D:/TempleOS/Compiler/CmpMain.CPP.Z,562",35$0000033A48    0000 0000000045 Funct Export 
+$LK+BI,"ExePrint2                 ","FL:D:/TempleOS/Compiler/CmpMain.CPP.Z,614",36$0000033C68    0000 0000000043 Funct Export 
+$LK+BI,"ExePrint3                 ","FL:D:/TempleOS/Compiler/CmpMain.CPP.Z,653",37$0000033DF0    0000 0000000043 Funct Export 
+$LK+BI,"ExePutS                   ","FL:D:/TempleOS/Compiler/CmpMain.CPP.Z,524",38$00000338A0    0003 00000001A1 Funct Export 
+$LK+BI,"ExePutS2                  ","FL:D:/TempleOS/Compiler/CmpMain.CPP.Z,582",39$0000033B08    0002 0000000159 Funct Export 
+$LK+BI,"ExePutS3                  ","FL:D:/TempleOS/Compiler/CmpMain.CPP.Z,634",40$0000033D28    0002 00000000C4 Funct Export 
+$LK+BI,"ExpressionBinDel          ","FL:D:/TempleOS/Compiler/ExpParser.CPP.Z,1184",41$00000112DE    0008 0000000014 Funct Export 
+$LK,"FBO1_F64                  ","FL:D:/TempleOS/Compiler/OptPass012.CPP.Z,111"$2             0002 0000000008 DefineStr 
+$LK,"FBO1_INT                  ","FL:D:/TempleOS/Compiler/OptPass012.CPP.Z,110"$1             0013 0000000008 DefineStr 
+$LK,"FBO1_NOT_CONST            ","FL:D:/TempleOS/Compiler/OptPass012.CPP.Z,109"$0             0004 0000000008 DefineStr 
+$LK+BI,"GetOpt                    ","FL:D:/TempleOS/Compiler/Directives.CPP.Z,16",42$0000002F10    0005 000000002C Funct Export 
+$LK+BI,"HashEntryImportCopy       ","FL:D:/TempleOS/Compiler/Hash1b.CPP.Z,1",43$0000009338    0002 000000015F Funct Export 
+$LK+BI,"HashEntrySize             ","FL:D:/TempleOS/Compiler/Hash1b.CPP.Z,71",44$0000009580    0000 0000000164 Funct Export 
+$LK+BI,"HashEntrySize2            ","FL:D:/TempleOS/Compiler/Hash1b.CPP.Z,102",45$00000096E8    0002 00000001A9 Funct Export 
+$LK+BI,"HashTableImport           ","FL:D:/TempleOS/Compiler/Hash1b.CPP.Z,40",46$0000009498    0000 00000000E8 Funct Export 
+$LK+BI,"HashTableSize2            ","FL:D:/TempleOS/Compiler/Hash1b.CPP.Z,139",47$0000009898    0000 000000006B Funct Export 
+$LK+BI,"ICAddEct                  ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,889",48$0000018426    0005 00000002EF Funct Export 
+$LK+BI,"ICAddRSP                  ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,163",49$0000016726    0017 0000000284 Funct Export 
+$LK+BI,"ICAddSubEctEqual          ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,2714",50$000001D6C6    0005 000000066F Funct Export 
+$LK+BI,"ICAddSubEctImm            ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,945",51$0000018716    000D 0000000705 Funct Export 
+$LK+BI,"ICAndAnd                  ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,2983",52$000001E34E    0001 0000000147 Funct Export 
+$LK+BI,"ICAndBranch               ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,3807",53$000002065E    0002 0000000704 Funct Export 
+$LK+BI,"ICAndEqual                ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,4468",54$000002246E    0001 0000000109 Funct Export 
+$LK+BI,"ICArgPut                  ","FL:D:/TempleOS/Compiler/ICLCC.CPP.Z,28",55$0000008408    0003 000000030D Funct Export 
+$LK+BI,"ICAssign                  ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,3965",56$0000020D66    0001 00000002FD Funct Export 
+$LK+BI,"ICAssignPostIncDec        ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,3504",57$000001FA1E    0002 000000020C Funct Export 
+$LK+BI,"ICBitOps                  ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,3197",58$000001EC36    0007 00000004ED Funct Export 
+$LK+BI,"ICBrBitOps                ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,4014",59$0000021066    0008 000000091E Funct Export 
+$LK+BI,"ICBuiltInFloatConst       ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,633",60$0000017846    000F 00000000BD Funct Export 
+$LK+BI,"ICClassPut                ","FL:D:/TempleOS/Compiler/ICLCC.CPP.Z,3",61$0000008338    0001 00000000CF Funct Export 
+$LK+BI,"ICCmp                     ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,3077",62$000001E74E    0006 00000004E6 Funct Export 
+$LK+BI,"ICCmpAndBranch            ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,3546",63$000001FC2E    000C 0000000738 Funct Export 
+$LK+BI,"ICCopyTemplate            ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,288",64$0000016C4E    0019 000000026C Funct Export 
+$LK+BI,"ICDeref                   ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,871",65$000001836E    0001 00000000B5 Funct Export 
+$LK+BI,"ICDerefPostIncDec         ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,3461",66$000001F82E    0002 00000001ED Funct Export 
+$LK+BI,"ICDiv                     ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,2622",67$000001D1F6    0001 00000000F2 Funct Export 
+$LK+BI,"ICDivEqual                ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,2641",68$000001D2EE    0002 00000002E0 Funct Export 
+$LK+BI,"ICFAdd                    ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,2493",69$000001CACE    0001 00000001FB Funct Export 
+$LK+BI,"ICFCmp                    ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,1611",70$000001A38E    0004 0000000187 Funct Export 
+$LK+BI,"ICFCmpAndBranch           ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,2042",71$000001B82E    0004 0000000A03 Funct Export 
+$LK+BI,"ICFCvt                    ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,1177",72$0000019216    000C 000000017B Funct Export 
+$LK+BI,"ICFCvt2                   ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,1225",73$0000019396    0010 0000000112 Funct Export 
+$LK+BI,"ICFDiv                    ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,2469",74$000001C98E    0001 000000013D Funct Export 
+$LK+BI,"ICFMod                    ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,1303",75$000001968E    0001 0000000141 Funct Export 
+$LK+BI,"ICFModEqual               ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,1651",76$000001A516    0001 00000003D3 Funct Export 
+$LK+BI,"ICFMul                    ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,2429",77$000001C756    0001 0000000235 Funct Export 
+$LK+BI,"ICFOp                     ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,1412",78$0000019AC6    0004 00000008C1 Funct Export 
+$LK+BI,"ICFOpEqual                ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,1718",79$000001A8EE    0004 0000000F40 Funct Export 
+$LK+BI,"ICFPostIncDec             ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,2343",80$000001C346    0002 0000000151 Funct Export 
+$LK+BI,"ICFPow                    ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,1333",81$00000197D6    0001 00000002ED Funct Export 
+$LK+BI,"ICFPreIncDec              ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,2321",82$000001C236    0002 000000010A Funct Export 
+$LK+BI,"ICFSub                    ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,2531",83$000001CCCE    0001 0000000120 Funct Export 
+$LK+BI,"ICFTemplateFun            ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,3368",84$000001F3AE    0007 00000000A8 Funct Export 
+$LK+BI,"ICFUnaryMinus             ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,1252",85$00000194AE    0001 00000001DC Funct Export 
+$LK+BI,"ICLastIns                 ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,135",86$0000016686    0002 000000009A Funct Export 
+$LK+BI,"ICLea                     ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,837",87$000001819E    0004 00000001CD Funct Export 
+$LK+BI,"ICLocalVarInit            ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,4631",88$0000022B46    0001 0000000078 Funct Export 
+$LK+BI,"ICMinMax                  ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,4289",89$0000021D3E    0004 00000002A7 Funct Export 
+$LK+BI,"ICMod                     ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,2695",90$000001D5CE    0001 00000000F2 Funct Export 
+$LK+BI,"ICModU64                  ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,4368",91$0000022036    0001 00000001B3 Funct Export 
+$LK+BI,"ICModr1                   ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,352",92$0000016EBE    0017 0000000312 Funct Export 
+$LK+BI,"ICModr2                   ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,443",93$00000171D6    0015 00000000D5 Funct Export 
+$LK+BI,"ICMov                     ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,656",94$0000017906    01A4 0000000891 Funct Export 
+$LK+BI,"ICMul                     ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,2371",95$000001C49E    0001 00000002B6 Funct Export 
+$LK+BI,"ICMulEqual                ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,2554",96$000001CDEE    0001 0000000404 Funct Export 
+$LK+BI,"ICNot                     ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,2963",97$000001E24E    0001 00000000FB Funct Export 
+$LK+BI,"ICOpSizeRex               ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,46",98$00000162FE    0006 000000010B Funct Export 
+$LK+BI,"ICOrEqual                 ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,4491",99$000002257E    0001 0000000109 Funct Export 
+$LK+BI,"ICOrOr                    ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,3012",100$000001E496    0001 000000015E Funct Export 
+$LK+BI,"ICPop                     ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,574",101$000001762E    000A 000000010B Funct Export 
+$LK+BI,"ICPopRegs                 ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,601",102$000001773E    000C 0000000056 Funct Export 
+$LK+BI,"ICPostIncDec              ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,3421",103$000001F62E    0002 00000001FB Funct Export 
+$LK+BI,"ICPreIncDec               ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,3384",104$000001F456    0004 00000001D7 Funct Export 
+$LK+BI,"ICPreempt                 ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,3301",105$000001F126    0001 000000011E Funct Export 
+$LK+BI,"ICPush                    ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,523",106$000001740E    0020 00000001C1 Funct Export 
+$LK+BI,"ICPushRegs                ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,561",107$00000175D6    0006 0000000053 Funct Export 
+$LK+BI,"ICPut                     ","FL:D:/TempleOS/Compiler/ICLCC.CPP.Z,73",108$0000008718    0009 00000003D1 Funct Export 
+$LK+BI,"ICQueInit                 ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,4177",109$0000021986    0001 000000006C Funct Export 
+$LK+BI,"ICQueIns                  ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,4191",110$00000219F6    0001 000000015E Funct Export 
+$LK+BI,"ICQueInsRev               ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,4232",111$0000021B56    0001 000000015E Funct Export 
+$LK+BI,"ICQueRem                  ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,4273",112$0000021CB6    0001 0000000084 Funct Export 
+$LK+BI,"ICRex                     ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,32",113$000001627E    0016 000000007D Funct Export 
+$LK+BI,"ICShift                   ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,2852",114$000001DD36    0004 0000000197 Funct Export 
+$LK+BI,"ICShiftEqual              ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,2886",115$000001DECE    0002 000000030C Funct Export 
+$LK+BI,"ICSlashOp                 ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,495",116$00000172AE    0027 0000000160 Funct Export 
+$LK+BI,"ICSqr                     ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,4361",117$0000021FE6    0002 000000004A Funct Export 
+$LK+BI,"ICSub                     ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,1099",118$0000018E1E    0001 00000003F1 Funct Export 
+$LK+BI,"ICSwap                    ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,4410",119$00000221EE    0001 000000027D Funct Export 
+$LK+BI,"ICSwitch                  ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,4537",120$0000022796    0002 00000003AB Funct Export 
+$LK+BI,"ICTest                    ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,623",121$00000177F6    000C 000000004A Funct Export 
+$LK+BI,"ICTestAndBranch           ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,3726",122$0000020366    0002 00000001EB Funct Export 
+$LK+BI,"ICToBool                  ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,3353",123$000001F336    0001 0000000071 Funct Export 
+$LK+BI,"ICToF64                   ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,3348",124$000001F2F6    0001 000000003D Funct Export 
+$LK+BI,"ICToI64                   ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,3343",125$000001F2B6    0001 000000003D Funct Export 
+$LK+BI,"ICToUpper                 ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,3332",126$000001F246    0001 000000006B Funct Export 
+$LK+BI,"ICU16                     ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,72",127$000001640E    0090 00000000A4 Funct Export 
+$LK+BI,"ICU24                     ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,87",128$00000164B6    0060 00000000CF Funct Export 
+$LK+BI,"ICU32                     ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,104",129$0000016586    004F 000000007E Funct Export 
+$LK+BI,"ICU64                     ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,120",130$0000016606    0009 000000007E Funct Export 
+$LK+BI,"ICU8                      ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,20",131$0000016206    0060 0000000078 Funct Export 
+$LK+BI,"ICUnaries                 ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,2954",132$000001E1DE    0002 0000000069 Funct Export 
+$LK+BI,"ICXorEqual                ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,4514",133$000002268E    0001 0000000103 Funct Export 
+$LK+BI,"ICXorXor                  ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,3044",134$000001E5F6    0001 0000000151 Funct Export 
+$LK+BI,"ICZFlagBranch             ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,3774",135$0000020556    0002 0000000105 Funct Export 
+$LK+BI,"ICZero                    ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,614",136$0000017796    0017 000000005E Funct Export 
+$LK+BI,"ImportHashTable           ","FL:D:/TempleOS/Compiler/Directives.CPP.Z,56",137$0000003000    0000 00000000DB Funct Export 
+$LK+BI,"IncludeDepth              ","FL:D:/TempleOS/Compiler/Directives.CPP.Z,76",138$00000030E0    0000 000000002C Funct Export 
+$LK+BI,"InstEntriesCompare        ","FL:D:/TempleOS/Compiler/Unassembler.CPP.Z,1",139$00000006D8    0001 0000000229 Funct Export 
+$LK+BI,"InstEntryFind             ","FL:D:/TempleOS/Compiler/Unassembler.CPP.Z,71",140$0000000908    0002 0000000370 Funct Export 
+$LK+BI,"IsLexExpression2Bin       ","FL:D:/TempleOS/Compiler/ExpParser.CPP.Z,1207",141$000001138E    0000 0000000029 Funct Export 
+$LK+BI,"IsReplaceSyms             ","FL:D:/TempleOS/Compiler/Directives.CPP.Z,52",142$0000002FF0    000A 000000000D Funct Export 
+$LK+BI,"LCCAdd                    ","FL:D:/TempleOS/Compiler/ICLCC.CPP.Z,155",143$0000008B60    009C 00000000B2 Funct Export 
+$LK+BI,"LCCAppend                 ","FL:D:/TempleOS/Compiler/ICLCC.CPP.Z,196",144$0000008CA0    0002 00000000A6 Funct Export 
+$LK+BI,"LCCCompile                ","FL:D:/TempleOS/Compiler/ICLCC.CPP.Z,315",145$0000009110    0006 0000000226 Funct Export 
+$LK+BI,"LCCDel                    ","FL:D:/TempleOS/Compiler/ICLCC.CPP.Z,257",146$0000008EB8    0001 00000001A3 Funct Export 
+$LK+BI,"LCCFloatConstFind         ","FL:D:/TempleOS/Compiler/ICLCC.CPP.Z,235",147$0000008DF0    000F 00000000C2 Funct Export 
+$LK+BI,"LCCGoToLabelFind          ","FL:D:/TempleOS/Compiler/ICLCC.CPP.Z,222",148$0000008DA0    0002 000000004D Funct Export 
+$LK+BI,"LCCHeaderPut              ","FL:D:/TempleOS/Compiler/ICLCC.CPP.Z,299",149$0000009060    000A 00000000AB Funct Export 
+$LK+BI,"LCCInit                   ","FL:D:/TempleOS/Compiler/ICLCC.CPP.Z,147",150$0000008B28    000A 0000000036 Funct Export 
+$LK+BI,"LCCMiscNew                ","FL:D:/TempleOS/Compiler/ICLCC.CPP.Z,213",151$0000008D48    001A 0000000051 Funct Export 
+$LK+BI,"LCCPop                    ","FL:D:/TempleOS/Compiler/ICLCC.CPP.Z,191",152$0000008C80    0009 000000001A Funct Export 
+$LK+BI,"LCCPopNoFree              ","FL:D:/TempleOS/Compiler/ICLCC.CPP.Z,184",153$0000008C50    0002 000000002A Funct Export 
+$LK+BI,"LCCPush                   ","FL:D:/TempleOS/Compiler/ICLCC.CPP.Z,177",154$0000008C18    000E 0000000033 Funct Export 
+$LK+BI,"LCCQuePut                 ","FL:D:/TempleOS/Compiler/ICLCC.CPP.Z,137",155$0000008AF0    0001 0000000033 Funct Export 
+$LK+BI,"LTrace                    ","FL:D:/TempleOS/Compiler/Directives.CPP.Z,43",156$0000002FC0    0000 0000000017 Funct Export 
+$LK+BI,"Lex                       ","FL:D:/TempleOS/Compiler/Lex.CPP.Z,785",157$0000005CA0    00FA 00000022BD Funct Export 
+$LK+BI,"LexAttachDoc              ","FL:D:/TempleOS/Compiler/Lex.CPP.Z,421",158$0000004F70    0001 0000000166 Funct Export 
+$LK+BI,"LexBackupLastChar         ","FL:D:/TempleOS/Compiler/Lex.CPP.Z,141",159$000000376C    0003 000000003D Funct Export 
+$LK+BI,"LexDel                    ","FL:D:/TempleOS/Compiler/Lex.CPP.Z,65",160$0000003488    0005 0000000096 Funct Export 
+$LK+BI,"LexDocRead                ","FL:D:/TempleOS/Compiler/Lex.CPP.Z,403",161$0000004EE0    0001 0000000090 Funct Export 
+$LK+BI,"LexDollar                 ","FL:D:/TempleOS/Compiler/Lex.CPP.Z,152",162$00000037AC    0003 000000006C Funct Export 
+$LK+BI,"LexExcept                 ","FL:D:/TempleOS/Compiler/Lex.CPP.Z,1666",163$0000008270    00A9 00000000C6 Funct Export 
+$LK+BI,"LexExpression             ","FL:D:/TempleOS/Compiler/ExpParser.CPP.Z,1212",164$00000113BE    0007 000000003B Funct Export 
+$LK+BI,"LexExpression2Bin         ","FL:D:/TempleOS/Compiler/ExpParser.CPP.Z,1189",165$00000112F6    0004 0000000098 Funct Export 
+$LK+BI,"LexExtStr                 ","FL:D:/TempleOS/Compiler/Lex.CPP.Z,1584",166$0000007F60    0004 00000000C1 Funct Export 
+$LK+BI,"LexGetChar                ","FL:D:/TempleOS/Compiler/Lex.CPP.Z,166",167$000000381C    0030 00000015F6 Funct Export 
+$LK+BI,"LexInStr                  ","FL:D:/TempleOS/Compiler/Lex.CPP.Z,687",168$0000005778    0001 0000000524 Funct Export 
+$LK+BI,"LexIncludeStr             ","FL:D:/TempleOS/Compiler/Lex.CPP.Z,373",169$0000004E3C    0003 0000000095 Funct Export 
+$LK+BI,"LexNew                    ","FL:D:/TempleOS/Compiler/Lex.CPP.Z,37",170$0000003350    0005 0000000133 Funct Export 
+$LK+BI,"LexPop                    ","FL:D:/TempleOS/Compiler/Lex.CPP.Z,478",171$0000005160    0004 0000000070 Funct Export 
+$LK+BI,"LexPush                   ","FL:D:/TempleOS/Compiler/Lex.CPP.Z,466",172$00000050D8    000F 0000000082 Funct Export 
+$LK+BI,"LexPutLine                ","FL:D:/TempleOS/Compiler/Lex.CPP.Z,1609",173$0000008028    0003 000000009F Funct Export 
+$LK+BI,"LexPutPos                 ","FL:D:/TempleOS/Compiler/Lex.CPP.Z,1636",174$00000080C8    0003 00000000CA Funct Export 
+$LK+BI,"LexPutToken               ","FL:D:/TempleOS/Compiler/Lex.CPP.Z,118",175$0000003638    0002 000000012B Funct Export 
+$LK+BI,"LexPutWarn                ","FL:D:/TempleOS/Compiler/Lex.CPP.Z,1650",176$0000008198    000F 00000000D3 Funct Export 
+$LK+BI,"LexSize                   ","FL:D:/TempleOS/Compiler/Lex.CPP.Z,86",177$0000003520    0000 0000000098 Funct Export 
+$LK+BI,"LexSkipEol                ","FL:D:/TempleOS/Compiler/Lex.CPP.Z,366",178$0000004E14    0004 0000000027 Funct Export 
+$LK+BI,"LexStatement2Bin          ","FL:D:/TempleOS/Compiler/CmpMain.CPP.Z,16",179$0000032460    0001 000000011D Funct Export 
 $LK,"MDR_D32_INDIRECT_REG      ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,346"$3             0002 0000000008 DefineStr 
 $LK,"MDR_D8_INDIRECT_REG       ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,345"$2             0002 0000000008 DefineStr 
 $LK,"MDR_INDIRECT_REG          ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,344"$1             0002 0000000008 DefineStr 
@@ -205,51 +200,46 @@ $LK,"MDR_RIP_REL               ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,350"$7
 $LK,"MDR_SIB_D32_INDIRECT_REG  ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,349"$6             0003 0000000008 DefineStr 
 $LK,"MDR_SIB_D8_INDIRECT_REG   ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,348"$5             0002 0000000008 DefineStr 
 $LK,"MDR_SIB_INDIRECT_REG      ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,347"$4             0002 0000000008 DefineStr 
-$LK+BI,"MemberAdd                 ","FL:D:/TempleOS/Compiler/Lex.CPP.Z,551",184$0000005558    0004 00000001AE Funct  
-$LK+BI,"MemberFind                ","FL:D:/TempleOS/Compiler/Lex.CPP.Z,516",185$00000054B8    0005 0000000060 Funct  
-$LK+BI,"MemberFind2               ","FL:D:/TempleOS/Compiler/Lex.CPP.Z,536",186$0000005518    0001 0000000040 Funct  
-$LK+BI,"MemberLstCopy             ","FL:D:/TempleOS/Compiler/Lex.CPP.Z,636",187$00000057F8    0001 0000000118 Funct  
-$LK+BI,"MemberLstDel              ","FL:D:/TempleOS/Compiler/Lex.CPP.Z,599",188$0000005708    0001 00000000F0 Funct  
-$LK+BI,"MemberLstNew              ","FL:D:/TempleOS/Compiler/StmtParser.CPP.Z,81",189$000001263E    0003 0000000026 Funct  
-$LK+BI,"MemberLstSize             ","FL:D:/TempleOS/Compiler/Lex.CPP.Z,664",190$0000005910    0002 00000000CB Funct  
-$LK+BI,"MemberMetaData            ","FL:D:/TempleOS/Compiler/Lex.CPP.Z,494",191$0000005438    0000 000000003D Funct  
-$LK+BI,"MemberMetaFind            ","FL:D:/TempleOS/Compiler/Lex.CPP.Z,505",192$0000005478    0000 000000003C Funct  
+$LK+BI,"MemberAdd                 ","FL:D:/TempleOS/Compiler/Lex.CPP.Z,547",180$00000052F0    0004 00000001AC Funct Export 
+$LK+BI,"MemberFind                ","FL:D:/TempleOS/Compiler/Lex.CPP.Z,512",181$0000005250    0005 0000000060 Funct Export 
+$LK+BI,"MemberFind2               ","FL:D:/TempleOS/Compiler/Lex.CPP.Z,532",182$00000052B0    0001 0000000040 Funct Export 
+$LK+BI,"MemberLstCopy             ","FL:D:/TempleOS/Compiler/Lex.CPP.Z,632",183$0000005590    0001 0000000118 Funct Export 
+$LK+BI,"MemberLstDel              ","FL:D:/TempleOS/Compiler/Lex.CPP.Z,595",184$00000054A0    0001 00000000F0 Funct Export 
+$LK+BI,"MemberLstNew              ","FL:D:/TempleOS/Compiler/StmtParser.CPP.Z,81",185$000001156E    0003 0000000026 Funct Export 
+$LK+BI,"MemberLstSize             ","FL:D:/TempleOS/Compiler/Lex.CPP.Z,660",186$00000056A8    0002 00000000CB Funct Export 
+$LK+BI,"MemberMetaData            ","FL:D:/TempleOS/Compiler/Lex.CPP.Z,490",187$00000051D0    0000 000000003D Funct Export 
+$LK+BI,"MemberMetaFind            ","FL:D:/TempleOS/Compiler/Lex.CPP.Z,501",188$0000005210    0000 000000003C Funct Export 
 $LK,"NUM_INTERNAL_TYPES        ","FL:D:/TempleOS/Compiler/CmpInit.CPP.Z,1"$16            0002 0000000008 DefineStr 
-$LK+BI,"OPassTraceMask            ","FL:D:/TempleOS/Compiler/Directives.CPP.Z,31",193$00000031E8    0000 0000000035 Funct  
-$LK+BI,"OTrace                    ","FL:D:/TempleOS/Compiler/Directives.CPP.Z,26",194$00000031D0    0000 0000000017 Funct  
-$LK+BI,"OptBrNotZero              ","FL:D:/TempleOS/Compiler/OptPass012.CPP.Z,387",195$0000024F08    0004 0000000659 Funct  
-$LK+BI,"OptBrZero                 ","FL:D:/TempleOS/Compiler/OptPass012.CPP.Z,226",196$00000248A8    0006 0000000659 Funct  
-$LK+BI,"OptClassFwd               ","FL:D:/TempleOS/Compiler/OptPass012.CPP.Z,40",197$00000243E8    0008 0000000027 Funct  
-$LK+BI,"OptEnd                    ","FL:D:/TempleOS/Compiler/OptPass012.CPP.Z,23",198$0000024350    0005 000000006F Funct  
-$LK+BI,"OptEqu                    ","FL:D:/TempleOS/Compiler/Directives.CPP.Z,1",199$0000003128    0007 000000002E Funct  
-$LK+BI,"OptFixSizeOf              ","FL:D:/TempleOS/Compiler/OptPass012.CPP.Z,547",200$0000025568    0003 0000000099 Funct  
-$LK+BI,"OptFixupBinaryOp1         ","FL:D:/TempleOS/Compiler/OptPass012.CPP.Z,109",201$0000024588    0013 00000001EA Funct  
-$LK+BI,"OptFixupBinaryOp2         ","FL:D:/TempleOS/Compiler/OptPass012.CPP.Z,175",202$0000024778    0001 0000000058 Funct  
-$LK+BI,"OptFixupUnaryOp           ","FL:D:/TempleOS/Compiler/OptPass012.CPP.Z,191",203$00000247D0    0003 00000000D4 Funct  
-$LK+BI,"OptIC4                    ","FL:D:/TempleOS/Compiler/OptPass4.CPP.Z,1",204$000002A930    0001 000000060C Funct  
-$LK+BI,"OptIC6                    ","FL:D:/TempleOS/Compiler/OptPass6.CPP.Z,1",205$000002C660    0001 000000013C Funct  
-$LK+BI,"OptLabelFwd               ","FL:D:/TempleOS/Compiler/OptPass012.CPP.Z,32",206$00000243C0    0006 0000000024 Funct  
-$LK+BI,"OptLag                    ","FL:D:/TempleOS/Compiler/OptPass012.CPP.Z,64",207$0000024490    0004 0000000030 Funct  
-$LK+BI,"OptLag1                   ","FL:D:/TempleOS/Compiler/OptPass012.CPP.Z,75",208$00000244C0    0004 000000003A Funct  
-$LK+BI,"OptLead1                  ","FL:D:/TempleOS/Compiler/OptPass012.CPP.Z,86",209$0000024500    0002 0000000039 Funct  
-$LK+BI,"OptMVCompare              ","FL:D:/TempleOS/Compiler/OptPass3.CPP.Z,44",210$00000290E8    0001 000000001A Funct  
-$LK,"OptMemberVar              ","FL:D:/TempleOS/Compiler/OptPass3.CPP.Z,39"$007FCA2AA8    0005 0000000020 Class 
-$LK+BI,"OptMissing                ","FL:D:/TempleOS/Compiler/OptPass012.CPP.Z,1",211$00000241E6    0004 0000000070 Funct  
-$LK,"OptNext                   ","FL:D:/TempleOS/Compiler/CmpAsm.CPP.Z,687"$0000000088    0002            Funct 
-$LK,"OptNext2                  ","FL:D:/TempleOS/Compiler/CmpAsm.CPP.Z,690"$00000000FA    0001            Funct 
-$LK,"OptNext3                  ","FL:D:/TempleOS/Compiler/CmpAsm.CPP.Z,693"$000000016C    0001            Funct 
-$LK+BI,"OptOff                    ","FL:D:/TempleOS/Compiler/Directives.CPP.Z,11",212$0000003170    0000 0000000016 Funct  
-$LK+BI,"OptOn                     ","FL:D:/TempleOS/Compiler/Directives.CPP.Z,6",213$0000003158    0000 0000000016 Funct  
-$LK+BI,"OptPass012                ","FL:D:/TempleOS/Compiler/OptPass012.CPP.Z,571",214$0000025608    0000 00000039C7 Funct  
-$LK+BI,"OptPass3                  ","FL:D:/TempleOS/Compiler/OptPass3.CPP.Z,49",215$0000029108    0000 0000001827 Funct  
-$LK+BI,"OptPass4                  ","FL:D:/TempleOS/Compiler/OptPass4.CPP.Z,171",216$000002AF40    0000 000000131D Funct  
-$LK+BI,"OptPass5                  ","FL:D:/TempleOS/Compiler/OptPass5.CPP.Z,1",217$000002C260    0000 00000003FE Funct  
-$LK+BI,"OptPass6                  ","FL:D:/TempleOS/Compiler/OptPass6.CPP.Z,131",218$000002CAF8    0000 0000000443 Funct  
-$LK+BI,"OptPass6Lag               ","FL:D:/TempleOS/Compiler/OptPass6.CPP.Z,34",219$000002C7A0    0001 0000000354 Funct  
-$LK+BI,"OptPass789A               ","FL:D:/TempleOS/Compiler/OptPass789A.CPP.Z,1",220$000002CF40    0000 00000034D5 Funct  
-$LK+BI,"OptSetNOP1                ","FL:D:/TempleOS/Compiler/OptPass012.CPP.Z,48",221$0000024410    0096 0000000039 Funct  
-$LK+BI,"OptSetNOP2                ","FL:D:/TempleOS/Compiler/OptPass012.CPP.Z,56",222$0000024450    000D 000000003B Funct  
-$LK+BI,"OptStart                  ","FL:D:/TempleOS/Compiler/OptPass012.CPP.Z,10",223$00000242E0    0005 000000006D Funct  
+$LK+BI,"OPassTraceMask            ","FL:D:/TempleOS/Compiler/Directives.CPP.Z,31",189$0000002F70    0000 0000000035 Funct Export 
+$LK+BI,"OTrace                    ","FL:D:/TempleOS/Compiler/Directives.CPP.Z,26",190$0000002F58    0000 0000000017 Funct Export 
+$LK+BI,"OptBrNotZero              ","FL:D:/TempleOS/Compiler/OptPass012.CPP.Z,391",191$00000236DE    0004 000000064F Funct Export 
+$LK+BI,"OptBrZero                 ","FL:D:/TempleOS/Compiler/OptPass012.CPP.Z,230",192$000002308E    0006 000000064F Funct Export 
+$LK+BI,"OptClassFwd               ","FL:D:/TempleOS/Compiler/OptPass012.CPP.Z,33",193$0000022BE6    0008 0000000027 Funct Export 
+$LK+BI,"OptEqu                    ","FL:D:/TempleOS/Compiler/Directives.CPP.Z,1",194$0000002EB0    0007 000000002E Funct Export 
+$LK+BI,"OptFixSizeOf              ","FL:D:/TempleOS/Compiler/OptPass012.CPP.Z,551",195$0000023D2E    0003 00000000B1 Funct Export 
+$LK+BI,"OptFixupBinaryOp1         ","FL:D:/TempleOS/Compiler/OptPass012.CPP.Z,113",196$0000022D9E    0013 00000001CB Funct Export 
+$LK+BI,"OptFixupBinaryOp2         ","FL:D:/TempleOS/Compiler/OptPass012.CPP.Z,179",197$0000022F6E    0001 0000000052 Funct Export 
+$LK+BI,"OptFixupUnaryOp           ","FL:D:/TempleOS/Compiler/OptPass012.CPP.Z,195",198$0000022FC6    0003 00000000C4 Funct Export 
+$LK+BI,"OptIC4                    ","FL:D:/TempleOS/Compiler/OptPass4.CPP.Z,1",199$0000028D16    0001 00000005CE Funct Export 
+$LK+BI,"OptIC6                    ","FL:D:/TempleOS/Compiler/OptPass6.CPP.Z,1",200$000002AA56    0001 000000013B Funct Export 
+$LK+BI,"OptLabelFwd               ","FL:D:/TempleOS/Compiler/OptPass012.CPP.Z,25",201$0000022BBE    0006 0000000024 Funct Export 
+$LK+BI,"OptLag                    ","FL:D:/TempleOS/Compiler/OptPass012.CPP.Z,57",202$0000022C8E    000E 000000002A Funct Export 
+$LK+BI,"OptLag1                   ","FL:D:/TempleOS/Compiler/OptPass012.CPP.Z,68",203$0000022CBE    0004 0000000031 Funct Export 
+$LK+BI,"OptLag2                   ","FL:D:/TempleOS/Compiler/OptPass012.CPP.Z,79",204$0000022CF6    0003 000000002A Funct Export 
+$LK+BI,"OptLead1                  ","FL:D:/TempleOS/Compiler/OptPass012.CPP.Z,90",205$0000022D26    0004 0000000030 Funct Export 
+$LK+BI,"OptMVCompare              ","FL:D:/TempleOS/Compiler/OptPass3.CPP.Z,44",206$000002736E    0001 000000001A Funct Export 
+$LK,"OptMemberVar              ","FL:D:/TempleOS/Compiler/OptPass3.CPP.Z,39"$007FCE4800    0005 0000000020 Class 
+$LK+BI,"OptOff                    ","FL:D:/TempleOS/Compiler/Directives.CPP.Z,11",207$0000002EF8    0000 0000000016 Funct Export 
+$LK+BI,"OptOn                     ","FL:D:/TempleOS/Compiler/Directives.CPP.Z,6",208$0000002EE0    0000 0000000016 Funct Export 
+$LK+BI,"OptPass012                ","FL:D:/TempleOS/Compiler/OptPass012.CPP.Z,575",209$0000023DE6    0000 0000003470 Funct Export 
+$LK+BI,"OptPass3                  ","FL:D:/TempleOS/Compiler/OptPass3.CPP.Z,49",210$000002738E    0000 0000001988 Funct Export 
+$LK+BI,"OptPass4                  ","FL:D:/TempleOS/Compiler/OptPass4.CPP.Z,171",211$00000292E6    0000 0000001320 Funct Export 
+$LK+BI,"OptPass5                  ","FL:D:/TempleOS/Compiler/OptPass5.CPP.Z,1",212$000002A606    0000 000000044A Funct Export 
+$LK+BI,"OptPass6                  ","FL:D:/TempleOS/Compiler/OptPass6.CPP.Z,131",213$000002AEEE    0000 00000004C9 Funct Export 
+$LK+BI,"OptPass6Lag               ","FL:D:/TempleOS/Compiler/OptPass6.CPP.Z,34",214$000002AB96    0001 0000000355 Funct Export 
+$LK+BI,"OptPass789                ","FL:D:/TempleOS/Compiler/OptPass789.CPP.Z,1",215$000002B3BE    0000 00000033C8 Funct Export 
+$LK+BI,"OptSetNOP1                ","FL:D:/TempleOS/Compiler/OptPass012.CPP.Z,41",216$0000022C0E    009E 000000003A Funct Export 
+$LK+BI,"OptSetNOP2                ","FL:D:/TempleOS/Compiler/OptPass012.CPP.Z,49",217$0000022C4E    000D 000000003C Funct Export 
 $LK,"PE_CHECK_BINARY_OPS1      ","FL:D:/TempleOS/Compiler/ExpParser.CPP.Z,43"$5             0001 0000000008 DefineStr 
 $LK,"PE_CHECK_BINARY_OPS2      ","FL:D:/TempleOS/Compiler/ExpParser.CPP.Z,44"$6             0001 0000000008 DefineStr 
 $LK,"PE_DEREFERENCE            ","FL:D:/TempleOS/Compiler/ExpParser.CPP.Z,42"$4             0004 0000000008 DefineStr 
@@ -263,47 +253,50 @@ $LK,"PE_PUSH_LOWER             ","FL:D:/TempleOS/Compiler/ExpParser.CPP.Z,48"$10
 $LK,"PE_UNARY_MODIFIERS        ","FL:D:/TempleOS/Compiler/ExpParser.CPP.Z,41"$3             0009 0000000008 DefineStr 
 $LK,"PE_UNARY_TERM1            ","FL:D:/TempleOS/Compiler/ExpParser.CPP.Z,38"$0             0001 0000000008 DefineStr 
 $LK,"PE_UNARY_TERM2            ","FL:D:/TempleOS/Compiler/ExpParser.CPP.Z,39"$1             0005 0000000008 DefineStr 
-$LK+BI,"PTrace                    ","FL:D:/TempleOS/Compiler/Directives.CPP.Z,21",224$00000031B8    0000 0000000017 Funct  
-$LK+BI,"ParenWarning              ","FL:D:/TempleOS/Compiler/ExpParser.CPP.Z,1",225$000000E0BE    0004 0000000054 Funct  
-$LK+BI,"PrsArrayDims              ","FL:D:/TempleOS/Compiler/StmtParser.CPP.Z,347",226$000001309E    0001 0000000134 Funct  
-$LK+BI,"PrsAsmArg                 ","FL:D:/TempleOS/Compiler/Assembler.CPP.Z,443",227$000000B2C0    0002 0000000477 Funct  
-$LK+BI,"PrsAsmBlk                 ","FL:D:/TempleOS/Compiler/Assembler.CPP.Z,1292",228$000000D7EE    0001 00000008C9 Funct  
-$LK+BI,"PrsAsmImm                 ","FL:D:/TempleOS/Compiler/Assembler.CPP.Z,408",229$000000B178    0006 0000000145 Funct  
-$LK+BI,"PrsClass                  ","FL:D:/TempleOS/Compiler/StmtParser.CPP.Z,829",230$0000014466    0004 0000000264 Funct  
-$LK+BI,"PrsClassNew               ","FL:D:/TempleOS/Compiler/StmtParser.CPP.Z,1",231$00000124CE    0003 00000000B3 Funct  
-$LK+BI,"PrsDoWhile                ","FL:D:/TempleOS/Compiler/StmtParser.CPP.Z,1334",232$000001581E    0001 0000000153 Funct  
-$LK+BI,"PrsDotDotDot              ","FL:D:/TempleOS/Compiler/StmtParser.CPP.Z,385",233$00000131D6    0001 0000000100 Funct  
-$LK+BI,"PrsExpression             ","FL:D:/TempleOS/Compiler/ExpParser.CPP.Z,340",234$000000F006    0010 0000000172 Funct  
-$LK+BI,"PrsExpression2            ","FL:D:/TempleOS/Compiler/ExpParser.CPP.Z,52",235$000000E20E    0001 0000000DF2 Funct  
-$LK+BI,"PrsFor                    ","FL:D:/TempleOS/Compiler/StmtParser.CPP.Z,1358",236$0000015976    0001 0000000190 Funct  
-$LK+BI,"PrsFun                    ","FL:D:/TempleOS/Compiler/StmtParser.CPP.Z,966",237$00000148F6    0001 000000035F Funct  
-$LK+BI,"PrsFunCall                ","FL:D:/TempleOS/Compiler/ExpParser.CPP.Z,456",238$000000F4D6    0003 00000008B2 Funct  
-$LK+BI,"PrsFunJoin                ","FL:D:/TempleOS/Compiler/StmtParser.CPP.Z,895",239$00000146CE    0005 0000000221 Funct  
-$LK+BI,"PrsFunNew                 ","FL:D:/TempleOS/Compiler/StmtParser.CPP.Z,45",240$0000012586    0001 00000000B3 Funct  
-$LK+BI,"PrsGlblInit               ","FL:D:/TempleOS/Compiler/StmtParser.CPP.Z,301",241$0000012EA6    0002 0000000084 Funct  
-$LK+BI,"PrsGlblVarLst             ","FL:D:/TempleOS/Compiler/StmtParser.CPP.Z,1035",242$0000014C56    0008 0000000975 Funct  
-$LK+BI,"PrsIf                     ","FL:D:/TempleOS/Compiler/StmtParser.CPP.Z,1283",243$00000155CE    0001 0000000142 Funct  
-$LK+BI,"PrsKeyWord                ","FL:D:/TempleOS/Compiler/StmtParser.CPP.Z,88",244$0000012666    000B 000000003C Funct  
-$LK+BI,"PrsNoUnusedWarn           ","FL:D:/TempleOS/Compiler/StmtParser.CPP.Z,1512",245$0000015FF6    0001 000000008F Funct  
-$LK+BI,"PrsOffsetOf               ","FL:D:/TempleOS/Compiler/ExpParser.CPP.Z,425",246$000000F386    0002 0000000149 Funct  
-$LK+BI,"PrsPop                    ","FL:D:/TempleOS/Compiler/ExpParser.CPP.Z,13",247$000000E13E    0017 0000000022 Funct  
-$LK+BI,"PrsPop2                   ","FL:D:/TempleOS/Compiler/ExpParser.CPP.Z,23",248$000000E19E    0001 000000002D Funct  
-$LK+BI,"PrsPopDeref               ","FL:D:/TempleOS/Compiler/ExpParser.CPP.Z,28",249$000000E1CE    0004 000000003F Funct  
-$LK+BI,"PrsPush                   ","FL:D:/TempleOS/Compiler/ExpParser.CPP.Z,8",250$000000E116    0017 0000000028 Funct  
-$LK+BI,"PrsPush2                  ","FL:D:/TempleOS/Compiler/ExpParser.CPP.Z,18",251$000000E166    0004 0000000033 Funct  
-$LK+BI,"PrsSizeOf                 ","FL:D:/TempleOS/Compiler/ExpParser.CPP.Z,377",252$000000F17E    0001 0000000207 Funct  
-$LK+BI,"PrsStatement              ","FL:D:/TempleOS/Compiler/StmtParser.CPP.Z,1629",253$00000164FE    0004 0000000F94 Funct  
-$LK+BI,"PrsStaticInit             ","FL:D:/TempleOS/Compiler/StmtParser.CPP.Z,310",254$0000012F2E    0002 000000016D Funct  
-$LK+BI,"PrsStreamBlk              ","FL:D:/TempleOS/Compiler/StmtParser.CPP.Z,1528",255$0000016086    0001 00000001C2 Funct  
-$LK+BI,"PrsSwitch                 ","FL:D:/TempleOS/Compiler/StmtParser.CPP.Z,1402",256$0000015B06    0002 00000004EE Funct  
-$LK+BI,"PrsTryBlk                 ","FL:D:/TempleOS/Compiler/StmtParser.CPP.Z,1568",257$000001624E    0001 00000002AF Funct  
-$LK+BI,"PrsType                   ","FL:D:/TempleOS/Compiler/StmtParser.CPP.Z,418",258$00000132D6    0002 000000039C Funct  
-$LK+BI,"PrsUnaryModifier          ","FL:D:/TempleOS/Compiler/ExpParser.CPP.Z,1078",259$00000115C6    0000 0000000DDB Funct  
-$LK+BI,"PrsUnaryTerm              ","FL:D:/TempleOS/Compiler/ExpParser.CPP.Z,674",260$000000FD8E    0000 0000001831 Funct  
-$LK+BI,"PrsVarInit                ","FL:D:/TempleOS/Compiler/StmtParser.CPP.Z,99",261$00000126A6    0001 00000004F7 Funct  
-$LK+BI,"PrsVarInit2               ","FL:D:/TempleOS/Compiler/StmtParser.CPP.Z,219",262$0000012B9E    0004 0000000302 Funct  
-$LK+BI,"PrsVarLst                 ","FL:D:/TempleOS/Compiler/StmtParser.CPP.Z,514",263$0000013676    0006 0000000D49 Funct  
-$LK+BI,"PrsWhile                  ","FL:D:/TempleOS/Compiler/StmtParser.CPP.Z,1312",264$0000015716    0001 0000000103 Funct  
+$LK+BI,"PTrace                    ","FL:D:/TempleOS/Compiler/Directives.CPP.Z,21",218$0000002F40    0000 0000000017 Funct Export 
+$LK+BI,"ParenWarning              ","FL:D:/TempleOS/Compiler/ExpParser.CPP.Z,1",219$000000D4FE    0004 0000000054 Funct Export 
+$LK+BI,"PrsAddOp                  ","FL:D:/TempleOS/Compiler/ExpParser.CPP.Z,52",220$000000D64E    0002 000000029F Funct Export 
+$LK+BI,"PrsArrayDims              ","FL:D:/TempleOS/Compiler/StmtParser.CPP.Z,353",221$0000012016    0001 0000000135 Funct Export 
+$LK+BI,"PrsAsmArg                 ","FL:D:/TempleOS/Compiler/Assembler.CPP.Z,445",222$000000AA80    0002 0000000475 Funct Export 
+$LK+BI,"PrsAsmBlk                 ","FL:D:/TempleOS/Compiler/Assembler.CPP.Z,1282",223$000000CC2E    0001 00000008C9 Funct Export 
+$LK+BI,"PrsAsmDefine              ","FL:D:/TempleOS/Compiler/Assembler.CPP.Z,1206",224$000000C95E    0004 00000002CA Funct Export 
+$LK+BI,"PrsAsmImm                 ","FL:D:/TempleOS/Compiler/Assembler.CPP.Z,410",225$000000A938    0006 0000000145 Funct Export 
+$LK+BI,"PrsAsmInstruction         ","FL:D:/TempleOS/Compiler/Assembler.CPP.Z,798",226$000000B84E    0001 000000110A Funct Export 
+$LK+BI,"PrsClass                  ","FL:D:/TempleOS/Compiler/StmtParser.CPP.Z,824",227$0000013296    0002 000000025E Funct Export 
+$LK+BI,"PrsClassNew               ","FL:D:/TempleOS/Compiler/StmtParser.CPP.Z,1",228$00000113FE    0003 00000000B3 Funct Export 
+$LK+BI,"PrsDoWhile                ","FL:D:/TempleOS/Compiler/StmtParser.CPP.Z,1328",229$0000014616    0001 0000000153 Funct Export 
+$LK+BI,"PrsDotDotDot              ","FL:D:/TempleOS/Compiler/StmtParser.CPP.Z,391",230$000001214E    0001 0000000100 Funct Export 
+$LK+BI,"PrsExpression             ","FL:D:/TempleOS/Compiler/ExpParser.CPP.Z,298",231$000000DFEE    0010 0000000172 Funct Export 
+$LK+BI,"PrsExpression2            ","FL:D:/TempleOS/Compiler/ExpParser.CPP.Z,102",232$000000D8EE    0001 0000000700 Funct Export 
+$LK+BI,"PrsFor                    ","FL:D:/TempleOS/Compiler/StmtParser.CPP.Z,1352",233$000001476E    0001 0000000182 Funct Export 
+$LK+BI,"PrsFun                    ","FL:D:/TempleOS/Compiler/StmtParser.CPP.Z,963",234$000001371E    0001 0000000340 Funct Export 
+$LK+BI,"PrsFunCall                ","FL:D:/TempleOS/Compiler/ExpParser.CPP.Z,414",235$000000E4BE    0003 000000081E Funct Export 
+$LK+BI,"PrsFunJoin                ","FL:D:/TempleOS/Compiler/StmtParser.CPP.Z,890",236$00000134F6    0005 0000000226 Funct Export 
+$LK+BI,"PrsFunNew                 ","FL:D:/TempleOS/Compiler/StmtParser.CPP.Z,45",237$00000114B6    0001 00000000B3 Funct Export 
+$LK+BI,"PrsGlblInit               ","FL:D:/TempleOS/Compiler/StmtParser.CPP.Z,312",238$0000011E4E    0002 0000000084 Funct Export 
+$LK+BI,"PrsGlblVarLst             ","FL:D:/TempleOS/Compiler/StmtParser.CPP.Z,1029",239$0000013A5E    0007 0000000963 Funct Export 
+$LK+BI,"PrsIf                     ","FL:D:/TempleOS/Compiler/StmtParser.CPP.Z,1277",240$00000143C6    0001 0000000142 Funct Export 
+$LK+BI,"PrsKeyWord                ","FL:D:/TempleOS/Compiler/StmtParser.CPP.Z,88",241$0000011596    000A 000000003C Funct Export 
+$LK+BI,"PrsNoUnusedWarn           ","FL:D:/TempleOS/Compiler/StmtParser.CPP.Z,1505",242$0000014DE6    0001 000000008F Funct Export 
+$LK+BI,"PrsOffsetOf               ","FL:D:/TempleOS/Compiler/ExpParser.CPP.Z,383",243$000000E36E    0002 0000000149 Funct Export 
+$LK+BI,"PrsPop                    ","FL:D:/TempleOS/Compiler/ExpParser.CPP.Z,13",244$000000D57E    0017 0000000022 Funct Export 
+$LK+BI,"PrsPop2                   ","FL:D:/TempleOS/Compiler/ExpParser.CPP.Z,23",245$000000D5DE    0001 000000002D Funct Export 
+$LK+BI,"PrsPopDeref               ","FL:D:/TempleOS/Compiler/ExpParser.CPP.Z,28",246$000000D60E    0004 000000003B Funct Export 
+$LK+BI,"PrsPush                   ","FL:D:/TempleOS/Compiler/ExpParser.CPP.Z,8",247$000000D556    0017 0000000028 Funct Export 
+$LK+BI,"PrsPush2                  ","FL:D:/TempleOS/Compiler/ExpParser.CPP.Z,18",248$000000D5A6    0004 0000000033 Funct Export 
+$LK+BI,"PrsSizeOf                 ","FL:D:/TempleOS/Compiler/ExpParser.CPP.Z,335",249$000000E166    0001 0000000207 Funct Export 
+$LK+BI,"PrsStatement              ","FL:D:/TempleOS/Compiler/StmtParser.CPP.Z,1621",250$00000152DE    0004 0000000F23 Funct Export 
+$LK+BI,"PrsStaticInit             ","FL:D:/TempleOS/Compiler/StmtParser.CPP.Z,321",251$0000011ED6    0002 000000013F Funct Export 
+$LK+BI,"PrsStreamBlk              ","FL:D:/TempleOS/Compiler/StmtParser.CPP.Z,1521",252$0000014E76    0001 00000001B7 Funct Export 
+$LK+BI,"PrsSwitch                 ","FL:D:/TempleOS/Compiler/StmtParser.CPP.Z,1395",253$00000148F6    0002 00000004EE Funct Export 
+$LK+BI,"PrsTryBlk                 ","FL:D:/TempleOS/Compiler/StmtParser.CPP.Z,1560",254$000001502E    0001 00000002AF Funct Export 
+$LK+BI,"PrsType                   ","FL:D:/TempleOS/Compiler/StmtParser.CPP.Z,424",255$000001224E    0002 000000034B Funct Export 
+$LK+BI,"PrsUnaryModifier          ","FL:D:/TempleOS/Compiler/ExpParser.CPP.Z,1029",256$00000104FE    0000 0000000DDB Funct Export 
+$LK+BI,"PrsUnaryTerm              ","FL:D:/TempleOS/Compiler/ExpParser.CPP.Z,625",257$000000ECDE    0000 000000181F Funct Export 
+$LK+BI,"PrsVarInit                ","FL:D:/TempleOS/Compiler/StmtParser.CPP.Z,112",258$0000011676    0001 00000004D4 Funct Export 
+$LK+BI,"PrsVarInit2               ","FL:D:/TempleOS/Compiler/StmtParser.CPP.Z,230",259$0000011B4E    0004 00000002FA Funct Export 
+$LK+BI,"PrsVarLst                 ","FL:D:/TempleOS/Compiler/StmtParser.CPP.Z,513",260$000001259E    0006 0000000CF6 Funct Export 
+$LK+BI,"PrsWhile                  ","FL:D:/TempleOS/Compiler/StmtParser.CPP.Z,1306",261$000001450E    0001 0000000103 Funct Export 
 $LK,"SLASH_OP_DEC              ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,475"$0x052B0000    0006 0000000018 DefineStr 
 $LK,"SLASH_OP_DIV              ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,480"$0x00000000    0001 0000000018 DefineStr 
 $LK,"SLASH_OP_FADD             ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,484"$0x0000C1DE    0002 0000000018 DefineStr 
@@ -324,207 +317,193 @@ $LK,"SLASH_OP_NEG              ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,477"$0x0
 $LK,"SLASH_OP_NOT              ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,476"$0x00000000    0001 0000000018 DefineStr 
 $LK,"SLASH_OP_POP              ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,483"$0x00000000    0001 0000000018 DefineStr 
 $LK,"SLASH_OP_PUSH             ","FL:D:/TempleOS/Compiler/BackEnd.CPP.Z,482"$0x00000000    0001 0000000018 DefineStr 
-$LK+BI,"SetSrcFileInfo            ","FL:D:/TempleOS/Compiler/Lex.CPP.Z,105",265$0000003810    0008 0000000079 Funct  
-$LK+BI,"StrStrBits                ","FL:D:/TempleOS/Compiler/Unassembler.CPP.Z,220",266$0000000F08    0002 0000000073 Funct  
-$LK+BI,"StreamExePrintF           ","FL:D:/TempleOS/Compiler/CmpMain.CPP.Z,697",267$0000035C18    0000 000000003F Funct  
-$LK+BI,"StreamExePutS             ","FL:D:/TempleOS/Compiler/CmpMain.CPP.Z,680",268$0000035B68    0001 00000000AD Funct  
-$LK+BI,"StreamPrintF              ","FL:D:/TempleOS/Compiler/CmpMain.CPP.Z,14",269$00000340C8    0000 0000000034 Funct  
-$LK+BI,"StreamPutS                ","FL:D:/TempleOS/Compiler/CmpMain.CPP.Z,1",270$0000034068    0001 0000000060 Funct  
-$LK+BI,"U                         ","FL:D:/TempleOS/Compiler/Unassembler.CPP.Z,819",271$0000002FE0    0000 000000009B Funct  
-$LK+BI,"Ui                        ","FL:D:/TempleOS/Compiler/Unassembler.CPP.Z,233",272$0000000F80    0002 000000205F Funct  
-$LK+BI,"Un                        ","FL:D:/TempleOS/Compiler/Unassembler.CPP.Z,835",273$0000003080    0009 00000000A6 Funct  
-$LK+BI,"UnasmHashLoad             ","FL:D:/TempleOS/Compiler/Unassembler.CPP.Z,181",274$0000000E00    0001 0000000107 Funct  
-$LK+BI,"UndefinedExtern           ","FL:D:/TempleOS/Compiler/StmtParser.CPP.Z,816",275$00000143C6    0001 0000000050 Funct  
-$LK+BI,"UnusedExternWarning       ","FL:D:/TempleOS/Compiler/StmtParser.CPP.Z,823",276$0000014416    0004 000000004E Funct  
-$LK,"_OPTNEXT                  ","FL:D:/TempleOS/Compiler/CmpAsm.CPP.Z,10"$0000000088    0001            ExportSysSym  
-$LK,"_OPTNEXT2                 ","FL:D:/TempleOS/Compiler/CmpAsm.CPP.Z,58"$00000000FA    0001            ExportSysSym  
-$LK,"_OPTNEXT3                 ","FL:D:/TempleOS/Compiler/CmpAsm.CPP.Z,107"$000000016C    0001            ExportSysSym  
-$LK,"asm_hash                  ","FL:D:/TempleOS/Compiler/CmpGlbls.CPP.Z,2"$00000006F8    0009 0000000008 GlbVar  
-$LK,"asm_seg_prefixes          ","FL:D:/TempleOS/Compiler/Assembler.CPP.Z,805"$000000C1A8    0001 0000000006 GlbVar  
-$LK,"assign_bitmap             ","FL:D:/TempleOS/Compiler/CmpGlbls.CPP.Z,8"$00000007A8    0003 0000000008 GlbVar  
-$LK,"binary_ops_table          ","FL:D:/TempleOS/Compiler/CmpGlbls.CPP.Z,6"$0000000780    0002 0000000008 GlbVar  
-$LK,"cmp_arg_cnt               ","FL:D:/TempleOS/Compiler/CmpGlbls.CPP.Z,7"$0000000790    0009 0000000008 GlbVar  
-$LK,"cmp_bitmap                ","FL:D:/TempleOS/Compiler/CmpGlbls.CPP.Z,8"$00000007B8    0004 0000000008 GlbVar  
-$LK,"cmp_do_not_write_to_dsk   ","FL:D:/TempleOS/Compiler/CmpGlbls.CPP.Z,3"$0000000701    0003 0000000001 GlbVar  
-$LK,"cmp_result_cnt            ","FL:D:/TempleOS/Compiler/CmpGlbls.CPP.Z,8"$0000000798    0005 0000000008 GlbVar  
-$LK,"cmp_templates             ","FL:D:/TempleOS/Compiler/CmpExts.CPP.Z,51"$00000001F6    0002 0000000004 GlbVar  
-$LK,"cmp_templates_dont_pop    ","FL:D:/TempleOS/Compiler/CmpExts.CPP.Z,52"$000000038B    0002 0000000004 GlbVar  
-$LK,"cmp_templates_dont_push   ","FL:D:/TempleOS/Compiler/CmpExts.CPP.Z,53"$0000000457    0002 0000000004 GlbVar  
-$LK,"cmp_templates_dont_push2  ","FL:D:/TempleOS/Compiler/CmpExts.CPP.Z,55"$000000062D    0002 0000000004 GlbVar  
-$LK,"cmp_templates_dont_push_pop","FL:D:/TempleOS/Compiler/CmpExts.CPP.Z,54"$000000059D    0002 0000000004 GlbVar  
-$LK,"compiled_bytes            ","FL:D:/TempleOS/Compiler/CmpGlbls.CPP.Z,15"$0000000828    0002 0000000008 GlbVar  
-$LK,"compiled_funs             ","FL:D:/TempleOS/Compiler/CmpGlbls.CPP.Z,14"$0000000820    0002 0000000008 GlbVar  
-$LK,"compiled_lines            ","FL:D:/TempleOS/Compiler/CmpGlbls.CPP.Z,14"$0000000818    0003 0000000008 GlbVar  
-$LK,"deref_bitmap              ","FL:D:/TempleOS/Compiler/CmpGlbls.CPP.Z,8"$00000007A0    0004 0000000008 GlbVar  
-$LK,"doc_stop_btypes           ","FL:D:/TempleOS/Compiler/Lex.CPP.Z,398"$0000005138    0001 0000000008 GlbVar  
-$LK,"dual_U16_tokens1          ","FL:D:/TempleOS/Compiler/CmpGlbls.CPP.Z,5"$0000000768    0002 0000000008 GlbVar  
-$LK,"dual_U16_tokens2          ","FL:D:/TempleOS/Compiler/CmpGlbls.CPP.Z,5"$0000000770    0002 0000000008 GlbVar  
-$LK,"dual_U16_tokens3          ","FL:D:/TempleOS/Compiler/CmpGlbls.CPP.Z,6"$0000000778    0002 0000000008 GlbVar  
-$LK,"fpop_bitmap               ","FL:D:/TempleOS/Compiler/CmpGlbls.CPP.Z,9"$00000007C0    0013 0000000008 GlbVar  
-$LK,"internal_types_table      ","FL:D:/TempleOS/Compiler/CmpInit.CPP.Z,8"$0000030418    0001 00000000A0 GlbVar  
-$LK,"is_first_compiler         ","FL:D:/TempleOS/Compiler/CmpGlbls.CPP.Z,2"$0000000700    0004 0000000001 GlbVar  
-$LK,"lex_zeros                 ","FL:D:/TempleOS/Compiler/Lex.CPP.Z,138"$00000039A8    000B 0000000004 GlbVar  
-$LK,"non_ptr_vars_mask         ","FL:D:/TempleOS/Compiler/CmpGlbls.CPP.Z,11"$00000007F0    0006 0000000008 GlbVar  
-$LK,"not_constant_bitmap       ","FL:D:/TempleOS/Compiler/CmpGlbls.CPP.Z,8"$00000007B0    0003 0000000008 GlbVar  
-$LK,"num_non_ptr_vars          ","FL:D:/TempleOS/Compiler/CmpGlbls.CPP.Z,10"$00000007D8    0005 0000000008 GlbVar  
-$LK,"num_reg_vars              ","FL:D:/TempleOS/Compiler/CmpGlbls.CPP.Z,9"$00000007D0    0006 0000000008 GlbVar  
-$LK,"num_stk_temps             ","FL:D:/TempleOS/Compiler/CmpGlbls.CPP.Z,9"$00000007C8    0004 0000000008 GlbVar  
-$LK,"opt_nop                   ","FL:D:/TempleOS/Compiler/OptPass012.CPP.Z,9"$0000024258    0007 0000000088 GlbVar  
-$LK,"reg_vars_mask             ","FL:D:/TempleOS/Compiler/CmpGlbls.CPP.Z,10"$00000007E8    0002 0000000008 GlbVar  
-$LK,"stk_temps_mask            ","FL:D:/TempleOS/Compiler/CmpGlbls.CPP.Z,10"$00000007E0    0003 0000000008 GlbVar  
-$LK,"sys_internal_types        ","FL:D:/TempleOS/Compiler/CmpGlbls.CPP.Z,4"$0000000708    00B0 0000000060 GlbVar  
-$LK,"to_non_ptr_vars_map       ","FL:D:/TempleOS/Compiler/CmpGlbls.CPP.Z,14"$0000000810    0004 0000000008 GlbVar  
-$LK,"to_reg_vars_map           ","FL:D:/TempleOS/Compiler/CmpGlbls.CPP.Z,13"$0000000808    0004 0000000008 GlbVar  
-$LK,"to_stk_temps_map_even     ","FL:D:/TempleOS/Compiler/CmpGlbls.CPP.Z,13"$0000000800    0007 0000000008 GlbVar  
-$LK,"to_stk_temps_map_odd      ","FL:D:/TempleOS/Compiler/CmpGlbls.CPP.Z,12"$00000007F8    0007 0000000008 GlbVar  
-$LK,"uasm_ins64_mask           ","FL:D:/TempleOS/Compiler/CmpGlbls.CPP.Z,19"$0000000840    000D 0000000008 GlbVar  
-$LK,"uasm_mem_mask             ","FL:D:/TempleOS/Compiler/CmpGlbls.CPP.Z,20"$0000000850    0003 0000000008 GlbVar  
-$LK,"uasm_signed_arg_mask      ","FL:D:/TempleOS/Compiler/CmpGlbls.CPP.Z,19"$0000000848    0003 0000000008 GlbVar  
-$LK,"unary_ops_table           ","FL:D:/TempleOS/Compiler/CmpGlbls.CPP.Z,7"$0000000788    0002 0000000008 GlbVar  
-$LK,"unasm_table               ","FL:D:/TempleOS/Compiler/CmpGlbls.CPP.Z,18"$0000000830    0006 0000000008 GlbVar  
-$LK,"unasm_table_entries       ","FL:D:/TempleOS/Compiler/CmpGlbls.CPP.Z,19"$0000000838    0003 0000000008 GlbVar  
-à'À®Á®ÁÄÁËÁÓÁÞÁÞÁöÁÂÂÂ"Â=ÂSÂiÂm“§®±ÂÊÂÔÂÔÂæÂèÂúÂúÂÃÃÃÃ#Ã*Ã1ÃKÃVÃcÃgÃgÃqÉÃ�Ã�ßóÃÇÃÇÃÎÃÙÃäÃíÃøÃÄÄÄ"Ä"Ä-ÄKÄOÄOÄXććĎęĨİľÄÅÄÉÄËÄËÄÝÄÝÄÝÄïÄ÷ÄÅÅ+Å+Å/ÅHÅMÅ]ÅhÅhÅ�ņŔŠŨŶÅÁÅÅÅÊÅÏÅÓÅÓÅâÅçÅöÅøÅÆ	ÆÆ#Æ)Æ=ÆEÆSÆZÆ^ÆnÆyÆ~ƜƤƲƹƽÆÅÆÓÆÚÆÞÆÇÇÇÇÇÇ%Ç0Ç@ÇjÇoÇzÇ�Ç’Ç�ǢǧDzǾÇÂÇÊÇÏÇáÇæÇñÇñÇñÇñÇÿÇÈ7ÈGÈOÈ_ÈoÈ™È�ÈÔȺÈéÈéÈôÈÉÉ)É1ÉCÉNÉRÉWÉfÉnɀɋÉ�É�ɔɔɪɪÉÀÉÀÉÀÉÊÉÞÉüÉÊ(Ê`Ê`ÊnÊrʠʧʮʽʽÊÔÊÙÊäÊôÊüÊËËË"Ë2Ë:ËLËWË[Ë[Ë[Ë[ËqË|ˈË�ˢ˭˱˱˶˻˿˿ËÒË×ËêËïËÌÌÌ%Ì+Ì?ÌGÌYÌdÌhÌx̦̮̃̈ÌÀÌËÌÏÌ×ÌéÌôÌøÌ Í%Í0Í6Í6Í6Í?Í`ÍqÍ�͌͌ͥͪ͵ÍÅÍóÍøÍÎÎÎ&Î+Î0Î;ÎKÎOÎWÎ\ÎnÎsÎ~Î~Î~Î~ΚΪΪÎÃÎÓÎ×ÎóÎÏÏÏ-Ï1ÏCÏdÏtϓϷÏÛÏàÏëÏóÏóÏÐ!Ð2ÐQÐuЙОЩбббÐËÐÝÐïÐÑ6ÑEÑ~ххљѺÑÔÑÔÑØÑîÑõÑýÑ$Ò/ÒUÒ]Ò]ÒƒÒƒÒšÒÁÒÊÒãÒÓ#Ó_ÓmÓ‡Ó Ó°Ó°ÓÌÓÌÓèÓèÓøÓÔ(Ô8Ô8Ô8ÔHÔYÔqÔ�Ô�ԌԕԞԬÔÕȹϸ§¸§Â§Ä§Ï§×§â§í§ø§ú§ú§¨¨(¨*¨6¨?¨?¨B¨p¨P˜ « «´«¿«Ê«Ò«Û«ã«æ«í«ñ«ú«¬¬¬¬$¬A¬O¬^¬c¬o¬q¬…¬x¬•¬ ¬¦¬¦¬´¬·¬É¬É¬Ø¬Ý¬á¬ò¬þ¬	­­­$­)­4­N­v­n­‹­–­Ê­·­ß­ß­ß­ñ­ü­®®4®K®R®i®€®—®®®®®®®·®À®Æ®Ê®Ï®Ú®ç®þ®¯¯&¯7¯7¯>¯Z¯f¯n¯~¯…¯ž¯©¯µ¯º¯Å¯É¯Ø¯ã¯ì¯ó¯°"°8°O°f°m°q°v°ˆ°’°’°�°¬°»°×°Û°à°w± MÞ

*
*
=
E
S
S
o
z
€
�
�
¤
¹
¹
Ë
Ñ
Ñ
è
ú
ú
$*BU`dnƒ‰‹˜š®®µ¹½Ëàäí.48A^bbbbgyˆ—¥ÀÒâçççóû		 (.6DKWprzˆŽ���������œ¤¬²²ÉÑÕÝëñññ*EMUaivˆ–²¹ÅÞáæg=0¢0¢@¢G¢N¢R¢v¢‰¢‘¢¢¢³¢¾¢Õ¢à¢â¢í¢þ¢	£ £+£-£4£=£?£J£Q£[£s£(Ïp¨p¨„¨‹¨’¨š¨�¨�¨¬¨µ¨¸¨»¨¿¨Ä¨ä¨Ñ¨ù¨©©©©&©1©9©S©€©s©•©Ÿ©Í©À©â©â©ó©þ©ªª4ªJªQªgª}ª“ª©ª©ª©ª©ª²ª»ªÁªÄªÕªÕªïª«««™«¸Hœ8·8·N·U·`·v·ˆ·š·¬·¾·Ð·Ý·Ý·â·é·é·ÿ·¸¸(¸7¸F¸U¸d¸q¸q¸q¸‘¸‘¸§¸¹¸½¸½¸Ë¸Ú¸ß¸ß¸æ¸æ¸ü¸
¹¹¹%¹=¹=¹=¹S¹^¹^¹t¹‹¹š¹´¹Ã¹à¹ï¹ºº8ºGºeºtº…º‡º�º¤ºººººººÙºÙºöºöº»»•»¨M¸¸ÈÈåå-22277MTgu~Ž—™™™™ §®µ¼ÃÊÑØØÚÚàå
	PZ�x¤x¤Š¤‘¤˜¤¦¤­¤²¤¿¤Ñ¤Ó¤Ú¤à¤ð¤û¤¥¥¥'¥*¥,¥>¥D¥T¥^¥h¥o¥z¥�¥—¥—¥­¥­¥Á¥
-P�¨È¥È¥Ú¥á¥è¥ö¥ý¥¦¦!¦#¦*¦0¦@¦K¦U¦`¦`¦w¦z¦|¦Ž¦•¦¥¦¯¦¹¦À¦Ë¦ß¦ç¦ç¦ý¦ý¦§=Zx£x£�£”£›£¢£¨£¸£Ã£Í£Ø£Ø£ï£ò£ô£¤¤#¤*¤5¤G¤O¤O¤e¤e¤w¤ ¨¹§§3§:§E§O§Z§b§q§{§~§’§–§ª§ª§¸§
`œ%˜»˜»¹»À»À»Ù»å»ð»ð»ù»&¼(¼1¼^¼`¼{¼‰¼‰¼’¼™¼¥¼¯¼¶¼½¼Â¼Ä¼Ë¼×¼á¼è¼ï¼ô¼ô¼½½½½G½I½R½½¢½°½¹½À½Ì½Ö½Ý½ä½é½ë½ò½þ½¾¾¾¾¾(¾6¾Y¾€¾Ž¾•¾ ¾ ¾©¾Ö¾Ø¾á¾¿¿¿*¿4¿;¿B¿G¿I¿P¿\¿f¿m¿t¿y¿y¿„¿§¿Î¿Ü¿ã¿î¿î¿÷¿$À&À/À\ÀeÀpÀ|À†À�À”À™À›À¢À®À¸À¿ÀÆÀËÀËÀÕÀðÀÁÁÁÁ Á)Á¦ÁøP¡P¡€¡Œ¡”¡œ¡ ¡¤¡¨¡¬¡°¡´¡¼¡Á¡Ë¡Ò¡ß¡ò¡ù¡¢¢¢¢¢¢¢/¢ÀH]`•`•r•x•x•�•ЕЕ±•¸•Á•ʕԕâ•í•ó•ý•ø]y––––$–)–,–/–;–P–W–^–e–h–s–v–„–‡–�–�–­–³–º–º–Ê–hyãЖЖò–þ–———%—+—+—6—@—J—W—a—g—g—r—|—†—“—�—£—£—®—¾—È—Õ—ß—å—å—ð—˜
-˜˜!˜'˜'˜2˜8˜B˜O˜Y˜_˜_˜j˜r˜|˜‰˜“˜™˜™˜™˜£˜°˜º˜Å˜Ù˜ã˜ð˜ú˜™™#™0™:™E™\™\™q™…™…™�™œ™¦™±™È™Ò™Þ™ä™ñ™ù™šš)š;šIšIšWšWšz›ÈÈ’È’Ô’Û’à’é’ñ’ÿ’““5“B“B“E“S“c“z“~“†“�ÉØ@‘@‘N‘R‘Y‘_‘f‘i‘p‘{‘‘‚‘Œ‘€ê÷(’(’8’?’D’M’X’b’b’e’i’q’ ‡¨X�X�x��†�Ž�—�›�Ÿ�¬�´�¹�¹�Ê�Î�Õ�Õ�å�ì�õ���� �&�4�;�B�R�Xµ½È�È�Ò�Ö�Ú�â�ò�ø�X?ˆ“ˆ“–“�“Ÿ“¨“«“¼“¼“ÓǓϓؓñ“ÿ“””
-”””””” ”"”"”+”+”4”:”=”G”]”c”q”q”•h÷x’x’ˆ’”’ž’¥’³’·’º’Â’€¨µX�X�d�n�}�„�Œ�”�œ�¤�´�¼�Ä�`áêà‘à‘ê‘ñ‘’’’ ’%’`?H••"•)•9•=•Q•T•Z•`Øá�‘�‘𑦑¶‘½‘ΑՑۑx½Éø�ø�‘‘‘ ‘ ‘,‘3‘5‘;‘à8ˆ8ˆBˆLˆWˆnˆnˆsˆuˆ�ˆ‹ˆœˆœˆ®ˆ°ˆÀˆÀˆÅˆÇˆÎˆýˆ G‡ø‹ø‹ŒŒ1Œ ŒŒAŒNŒXŒbŒbŒyŒ€Œ€Œ—ŒžŒ§Œ§Œ¸Œ¸ŒÉŒÉŒÚŒÚŒëŒëŒüŒüŒ
�
���/�/�@�@�Q�Q�b�b�s�s�„�„�•�•�¦�¦�·�·�É�Ñ�ß�ð�þ�ŽŽŽ%Ž,Ž,ŽV� €G‰‰	‰	‰0‰‰‰Q‰a‰S‰‚‰œ‰œ‰¦‰«‰«‰¿‰Ä‰Ä‰à‰å‰å‰Š
-Š
-ŠŠ#Š#Š#Š@Š@ŠRŠvŠœŠ³Š¿ŠËŠ×ŠáŠáŠáŠó‹!@&+ 2*22272"t¸O¸OÊOâOòO
P
P P7P7PRPsP|P€P„PŠP”PšPªP°PºPÀPÈPÌPÑPÑPÝPàPëPñPûPQQ
-QQQ&Q-Q4Q6Q:QCQMQUQ`QlQpQ�Q�Q–Q Q©QÂQÓQÜQåQíQøQRR R1R=RKRMRTR[R`RdRqRxR‡R•RŸR©R²RËRÜRåRîRöRÿRS	SSS S&S4S>SHSQSjS{S„S�S•SžS¤S¨S­S³S½SÇSÇSâSðSöSýSTTT1T%T@TOTXTXTsT‡T‡T¦T­TµT¼TÅTÎT×TàTUUSU#°³Æ€H€H¥H§H§H»HÉHÏHíHIII,I,I7I:IwI$¸Ñå¦#¦#¸#Ì#Ò#Ø#æ#÷#$$!$5$9$?$M$P$Z$%H0�0�>�V�^�^�d�&p&h�h�|���—�¯�·�Ñ�Ø�à�à�è�' :Û(:(:4:4:D:T:d:t:„:—:ª:·:Æ:Û:ñ:ñ:;	; ;!;7;7;M;k;p;|;ˆ;”; ;¬;¸;Ä;Ð;ß;î;ý;<<*<9<9<I<T<_<g<q<‰<Ž<ž<©<´<¼<Æ<Þ<ã<ó<===!=+=C=O=W=a=q=v=…=Œ=—=¢=­=¸=Ã=Î=Ù=ä=ï=ú=>>>>*>1><>G>R>]>h>s>~>‰>‰>˜>Ÿ>ª>µ>µ>Ä>Ë>Õ>ß>é>ó>ý>ý>???'?1?;?E?O?Y?c?m?w?�?‹?•?Ÿ?©?³?½?Ç?Ñ?Û?å?ï?ù?@
@@!@+@5@?@h@((2tXMXMpM{M{MMˆM�M™M¦M¦M¼MÁMÁM×MÜMÜMóMõMõMNNN"N$N$N8N:N:NPNRNRNhNhNoNsNwN|N€N�N�NžNžN­NÁNÈNÈNâNäNÿNOOO5O9OUOXOdO´O)xÆ2xIxI’I•I•I™I¢I©I¶I¶IÌIÑIÑIçIìIìIJJJJJJ2J4J4JHJJJJJ`JbJbJxJxJJƒJŒJ™J J©J°J´JÃJÏJÓJÖJÞJÞJñJþJKKK+K>KIK]KƒKšKŸK¦K®K²K²KÄK×KáKåKåK÷K
-LLLL#L#L#L=L?LZL\LtLvL�L�L�L™LŸL£L¯LÐLÞLäLTM*ÀÂ×X\X\\\r\y\‘\š\¥\°\»\Â\Ç\Ì\ã\ñ\ú\	]]]+Ð<³HBHBLB[B_BlB~B‹B£BµB×B÷BC!C3CKCbC{C—C©CÃCËCíCDD,D;D;DKD^DoD~DŽD›D¦DµDÕDÕDÞDÞDÞDïDüDE#E0ESEqEzE‡E‹E“EžE¶EÎE×EçEïEôEF-F=FMFXFhFmFuF•F—F¢FÏFãFãFûF
-GG!G*G2G2GDGbGjGrG}GG�G§G¿G×GïGHH'H0H9HKHYH]H~H,ø
-Þ:hhl}ŽŸ°ÁÒãô'8IZk|�ž¯ÀÑâó&7HYj{Œ�®¿Ðáò,%=6NG_Xpiz‹œ´­¾Ïàñ$5FWhyŠ›¬½Îßð#4EVgx‰š«¼ÍÞï"3DUfwˆ™ª»ÌÝîÿ!2CTev‡˜©ºËÜôíþ$:-°án|n|’|•|Ê|Ò|Ò|í|ó|ø|ø|}}}}'}5}5}A}H}N}S}–} }§}­}¯}¯}Å}Ë}Ë}Ë}Ð}ì}û}~~~~~#~*~?~F~F~_~_~�~.€`m@E@EPEXEeEoEzE‚E/p
-ø�ø������$�&�+�08%€3€3�3´3È34t4w4�4”4›4¢4¶4½4Ç4Ð4è4÷455 5"5'5>5J5V5Z5h5o5r5ª51x Ž~Ž~¨~²~¶~º~¿~Á~à~ÿ~ÿ~	28<AAA"A.A6A6AFALAZAaAxA…A“A¡A¯AÈAÐAÚAéAñAþAB	B	B	BBB%B%B5B8BHB3`
-Ð�Ð�Ù�Þ�ç�î�ð�õ�4xÀÕÕ.Õ5Õ9ÕQÕYÕaÕkÕoÕvÕ|Õ�Õ˜Õ�Õ Õ«Õ¶Õ¾ÕÉÕÔÕÖÕÖÕðÕ÷ÕþÕ	ÖÖÖÖ(Ö3Ö5ÖAÖJÖJÖdÖ…Ö‹Ö‘Ö¤ÖªÖ³Ö³ÖÇÖÍÖÍÖÕÖÝÖèÖíÖÿÖ×× ×!×%×4×4×4×E×E×J×^×f×f×è×5804P2Z2b2g26pALHWHW]WlW€W�W•W›WžW¿W7pu€hYhY}YŒY Y­Y³Y¹Y¼YÝY8p�¨ðZðZ[[([5[;[A[D[e[9`8AWWW%W4W:W=WEW:`lu Y Y2YEYRYXY[YcY;h“�¨Z¨ZºZÍZÚZàZãZëZ<H8XUXU\U`U`UuUˆUˆU›U¸UÙUâUóUV1V1VSVbVkVxVV�VœVµVÂVÆVÎVÎVÎVáVáVñVõVùV=LlÀWÀWÄWÈWÈWÝWðWðWXXQXsX‚X‹X˜XŸX¯X¼XÕXâXæXîXîXîXYYYYY>°€“àYàYùYùY	ZZZ Z7ZTZrZxZ�Z�Z•Z˜Z¤Z?pêõŽ$Ž$š$¦$«$´$º$¾$É$@@ty„P„P�P“P˜PA@åê^$^$l$�$‡$B@ˆ1‘1¯1´1CP(€›€›Š›•›¤›«›³›»›Ã›Ë›Ö›à›è›ó›ý›œœœ"œ'œ0œ0œ@œOœTœ[œ`œhœjœyœ~œ~œ¾œ¾œÀœÖœÙœßœDGfÈ�È�Ô�ì�ì�ú�ú�ú�ú�žž
-ž1ž9ž9žDžDžRžbžbžpžvžvžŽžŽž”ž,ŸE@f‹0Ÿ0Ÿ<ŸEŸEŸXŸeŸqŸ}Ÿ‰Ÿ•Ÿ•Ÿ¬Ÿ¬Ÿ¼ŸÈŸÑŸØŸáŸ   . : : P P y y { Ž � ª ¶ ¹ Ù F(Gàœàœöœ�
��$�1�1�?�?�V�_�p�r�u�w�Š���Ÿ�ª�ª�ª�­�µ�º�È�G ‹œà à î ñ ñ ú ¡¡¡ ¡"¡'¡5¡>¡K¡Hè±Kö™ö™(š3š;šDšUšbšwšzš}š�šŠšŠš˜š¢š§š¶šßšäšõš!›&›7›W›\›k›—›Ÿ›¤›¹›å›í›ò›ò›	œœ,œ0œOœ`œeœeœ~œ~œ~œ~œ~œŽœ£œ¦œ©œ­œ­œ²œÁœêœïœøœ	��0�B�O�Z�o�o�o�|�“�•�•�•�¢�¹�»�»�È�ß�ß�ð�õ�þ�ž'ž'ž9žNžNžNž[žržtžtžtž�ž˜žšžšž§ž¾ž¾žÏžמܞ螟ŸŸ&Ÿ;Ÿ;Ÿ;ŸHŸ_ŸaŸaŸnŸ…Ÿ…Ÿ…ŸžŸ£ŸªŸÌŸêŸïŸöŸ     2 : < < ^ @¡IØy±——,—/—2—8—=—T—k—‚—”—º—á—ä—ý—˜˜&˜3˜F˜Y˜^˜f˜p˜x˜x˜˜ˆ˜ˆ˜ˆ˜“˜»˜Õ˜Û˜ô˜
™™)™/™H™a™i™i™t™t™~™~™�™Ιã™õ™J£áæyæyÿy!z*zgzszŽzŸz´z»zùz{ {-{A{E{E{I{N{T{]{`{j{w{”{—{—{—{œ{¢{¢{½{Ë{Ö{Þ{ò{ù{|||(|3|;|L|L|[|`|`|l|Kh—
-!&ë&ëTë_ë’ëlë˜ë˜ëÆëËëËëÏëÙëåëìììì ì9ìTìTìfìsì‹ìŸì¤ì«ìÐì×ìàìâìèìûìíí+í8íPífí‚í†í†í‘í˜íªí­í¯íµíÑíéíëíîîîî î<î<î<îNîNî\îfî‡î£î£î¨î¬îÈîÔîÔîïîïïï.ïAïXï[ï[ïmï�ï‹ï¢ï¦ï¼ïÏïæïéïéïûïðð#ð,ðCðMðOðcðmð„ðˆðˆðˆð“ðšð­ðÅðÇðßðòð	ñññ!ñ)ñJñañañañ‡ñ‡ñ™ñL¤Á¶÷¶÷Æ÷Í÷Ù÷é÷øøø4ø6øUøaøqø�ø–ø�ø�ø¥ø­ø¸øÀøËøÖøõøýøMï�ÆÆàòøÿ59??Wk||„¨ÈÈéî +0=@wˆ�“•›ž¯´·¿Èã-26Xkp‡šŸ£Åà   ) . 1 3 9 ? P U [ c c m v �   ¥ © Ë æ    9 Y p ƒ ˆ Œ ® Á Á × × × å ý ÿ ÿ ÿ 
!%!'!'!5!M!M!_!_!h!u!‹!¯!¿!Æ!Ñ!ç!ë!ë!ë!ö!ü!""("@"E"K"e"l"w"…"�"�"Ò"NЄ›ž:ž:°:¼:Ò:ß:é:ø:;;;:;.;K;M;M;~;l;M;�;§;O �¾Ö"Ö"æ"#ñ"+#8#D#J#„#‰#µ#µ#º#Ð#â#â#ÿ#$L$L$[$“$$®$®$»$ç$ì$%%5%!%P%i%U%‰%u%�%�%ª%Ö%Ö%Ö%Ö%Þ%Ph­
×
žž°»ÆÒÝß55Bm˜’†°Òê×ýö	00=h�{o�   ªQXzâžžÀàèó%:?Yx~ƒ–Ïåëóöû;QW_bm‚‡¤ÃÉÑÑÖÜßêõ
-)HNS^s|� ¨­¸ÍÖØ÷ÿ
- $>]chhhhu||‘‘©´ÇÔð !5FOZZ‡‡‡™R0¾aÞ%Þ%ø%&&&c&Š&¨&Ò&Ø&Þ&æ&è&ð&'''%'j'‘'¯'Ù'ß'å'è'í'õ'(((&(+(p(—(µ(ß(å(ë(î(ð(ø())!)))v)�)»)å)ë)ñ)ù)þ)*!*$*/*;*;*@*F*L*T*W*b*t*ƒ*µ*ß*å*ê*ü*+E+o+u+}+‚+”+£+Ý+,
,,$,3,m,—,�,¢,¢,¢,­,­,Â,Â,Í,û,--&-=-B-p-€-†-™-¦-Ô-è-ÿ-
..&.=.=.F.R.h.‰.•.•.¢.¼.À.À.À.Ë.Ð.ã.ã.ð.///$/$/5/B/L/L/^/SÐy�‹‹"‹"‹5‹5‹O‹V‹b‹b‹y‹y‹�‹�‹§‹§‹¾‹¾‹Õ‹׋׋Û‹TØz¶û¶ûÔûÞûü ü6üZü_ücükükütüƒüŠü“ü˜ü­ü¾üÝüåüçüýýý$ý0ý5ý<ýDýJýLýXýhýmýoý�ý•ý•ý�ý�ý¦ýµýÔýÛýÝýüýþþþþ-þ1þ?þRþJþjþoþzþ�þ‰þ�þ‘þ�þ­þ²þ´þÔþÚþÚþæþöþûþÿ ÿ&ÿ+ÿ7ÿGÿLÿNÿnÿtÿ{ÿƒÿ‰ÿ‹ÿ—ÿ§ÿ¬ÿ®ÿÎÿÔÿÔÿÔÿÜÿÜÿåÿåÿïÿïÿ7MQ_rjŠŠœUP×
ž®®ÈÐÞÞâ#9AAEw‚—¬±¹¿ÃÇÖÞèñ4>@\fu}Š�𥧯ÌÕàèð+388Bbjooyˆ¨°²ÒÚÚÚåî
-$).6So‹ª­ÂÏãöú-I\{�ƒ¢¥¥ºÇÛîîùý)+JMXch‡�’�¨ªÉÌ×âä			OOZZZZco…¦²²ºÆÍãçççò÷
-
-%<AFYYamt�‹‹¸¸ÊVÀ U69>>KPbdhlo‚›½ÆÑØñ€€1€S€X€_€x€š€œ€µ€×€×€×€å€î€þ€�(�?�?�Y�h�z�W¨gyN–N–^–k–k–z–z–†–Œ–¶–Ì–¸–ã–Ø–û–û–—Xp‚
­
®®ÂÆÔÔãîú

0
6
6
X
‡
k
_
©
®
Õ
Ú
æ
ñ
ó
""5NH<Zmm��›Y°;
-N
-VæVædækæŠæ©æ«æÊæéæøæçç
çç#çBçHçZÈN
-„
-NçNçcçnçuç¢çÁçÃçâçèè&è1è3è>èIèIèNè{è€è­è²è¹èØè÷èéé#éBéBé]élétéé�éŒé—é—é·éÔéÔéáéáéê&ê&ê&ê.ê[Hº	à	.ß.ßHßYßeß|߃ߜߔߴßÔßÀßàßñßößàà/à@àWà^àwàoà�à¯à›à»àÌàâàÎàúàáá á á)á\XKsƶƶà¶ò¶ù¶····3·3·8·W·\·c·c·r·t·“·“·²·Ç·´·Ó·Ó·â·ä·¸¸¸¸¸+¸$¸C¸M¸]¸ú	FÌFÌ`ÌsÌzÌ�̨̜̠̠̈̌̎̕ÌÁÌËÌËÌßÌêÌøÌ	Í
ÍÍÍ.Í?ÍVÍZÍcÍgÍlÍ}Í�͚ͨ͠ͼÍÁÍÚÍëÍïÍïÍïÍôÍ"Î7Î>ÎTÎXÎ]ÎhÎyΊΡΩήζλÎÌÎÞÎæÎìÎÏÏÏ2Ï6Ï6Ï6ÏAÏRÏcÏzÏ~χϋÏ�ϡϳϾÏÄÏÌÏàÏåÏþÏÐÐÐ%Ð%Ð%Ð*Ð*Ð9Ð;ÐZÐZÐyЄЊРбжÐËÐÖÐçÐøÐÑÑÑ Ñ%Ñ6ÑHÑOÑUÑ]ÑqÑsÑŒÑ�ѡѡѨѾÑÂÑÂÑÔÑÙÑäÑùÑ
-Ò!Ò)Ò.Ò6Ò;ÒLÒbÒjÒpÒ…ÒŠÒ£Ò¹Ò½Ò½ÒÏÒÏÒÏÒÏÒçÒÔÒóÒóÒÓÓ#Ó.Ó4ÓJÓ[Ó[Ó[ÓbÓbÓuÓŽÓŽÓŽÓ�Ó�Ó°ÓÇÓÒÓãÓèÓîÓøÓúÓÔÔÔÔ#Ô8Ô=ÔHÔ]ÔiÔkÔvÔ‚Ô’Ô�Ô¬Ô¾ÔÆÔÊÔÎÔÐÔÕÔÝÔáÔóÔøÔýÔÕ	ÕÕÕÕ!Õ7Õ_ÕoÕvՀՌՓթխխխոսÕ×ÕÞÕèÕôÕþÕÖÖ Ö9Ö@ÖJÖZÖdÖqÖ{Ö{Ö�Ö^˜™É>¥>¥d¥g¥n¥t¥z¥|¥‚¥ˆ¥ˆ¥š¥¥¥¬¥¹¥Æ¥Ù¥è¥ü¥¦¦¦¦¦¦,¦.¦5¦;¦E¦E¦E¦\¦n¦u¦u¦„¦†¦˜¦§¦§¦¹¦_ðÉ侦¾¦ä¦ç¦î¦ô¦ú¦ü¦§§§§)§<§I§X§^§`§f§p§§‘§ §¾§Ч`Ø¢	º	îÝîÝÞÞ*ÞHÞYÞ`ÞyÞqÞ‘Þ±Þ�Þ½ÞÎÞÐÞñÞÝÞ	ß	ß!ß!ß+ßa5¶©¶©Ê©Ü©ã©ã©ê©	ªª-ª2ªLª9ªkªXªwªŒªyª«ª˜ª·ª·ªɪɪЪïªïª÷ªb0s¶N¸N¸b¸t¸¸§¸†¸³¸³¸Õ¸¹á¸¹¹,¹,¹K¹`¹M¹�¹l¹™¹™¹·¹·¹ɹɹç¹ç¹ºº!ºZº_ºfº”º…º º ººÒº»ñº »»+»+»M»e»R»q»Ÿ»�»«»«»É»É»Û»Û»ù»¼¼!¼@¼@¼@¼H¼cXz	¢	¶Û¶ÛÐÛáÛíÛÜ!Ü(ÜAÜ9ÜYÜyÜe܅ܖܛܼܨÜÔÜåÜûÜÝ Ý9Ý1ÝQÝqÝ]Ý}ÝŽÝ�ݱÝ�ÝÉÝÉÝáÝáÝëÝdP„Kî­î­®#®+®2®9®?®A®H®O®R®R®R®d®d®w®‚®�®ž®¯®Æ®ή׮߮ä®õ®¯¯¯-¯2¯L¯d¯h¯h¯m¯™¯®¯¹¯ʯÛ¯ò¯ú¯°°°!°3°;°C°U°W°q°‰°�°�°˜°©°º°ѰÙ°â°ê°ï°±±±&±8±=±W±o±s±s±†±†±†±ž±‹±¾±«±˱×±ݱõ±
²²'²2²C²T²k²s²|²„²‰²š²¬²´²¼²βвê²³³³³"³3³J³R³[³c³h³y³�³—³Ÿ³±³¶³гè³ì³ì³ÿ³ÿ³ÿ³´´7´$´D´P´V´n´†´†´†´’´˜´£´®´È´Ø´ï´µµ4µ4µHµdµdµdµ|µ|µеŒµŒµšµšµ£µ®µ¼µ×µæµíµíµ¶¶¶#¶.¶K¶\¶w¶w¶Á¶e8
-¶úN¼N¼h¼o¼v¼�¼‰¼¢¼¢¼¶¼¶¼̼̼׼ۼ漽ñ¼½4½B½X½\½a½a½w½ˆ½Ÿ½¶½»½ýǽ̽ó½	¾
¾
¾¾^¾=¾j¾j¾‹¾‹¾ª¾µ¾»¾Ѿâ¾ç¾ç¾ý¾¿%¿<¿A¿I¿M¿O¿v¿Œ¿�¿›¿¬¿½¿Ô¿Ü¿á¿å¿ê¿û¿ÀÀ À3À8ÀQÀbÀfÀfÀxÀxÀxÀxÀ}À°À�ÀÝÀ¼ÀéÀéÀ
-ÁÁÁ1ÁBÁGÁRÁcÁtÁ‹Á“Á˜ÁœÁ¡Á²ÁÄÁÌÁÒÁæÁèÁÂÂÂÂÂ0ÂAÂXÂoÂtÂ|€‚©¿ÂÃÂÃÂÐÂÐÂÐÂÐÂçÂíÂ÷ÂþÂþÂÃ(Ã(Ã;Ã;ÃIÃKÃKÃYÃYÃoÃÑèèûÃÀÃÀÃÜÃçÃÄÄ"Ä0ÄNÄFÄsĜĜĜĩÄâÄçÄçÄöÄüÄÅ&ÅEÅ5ÅQÅgÅuÅ�ţŧŷÅÖÅÆöÅÆÆ3Æ3ÆRÆ]ÆcÆyÆŠÆ�ƥƻƿÆÊÆ߯ôÆÇÇÇÇ!Ç6ÇLÇTÇZÇnÇsÇŒÇ�ǡǡdzdzdzdzǸÇëÇØÇ÷Ç&ÈÈ2È2ÈSÈ^ÈdÈzÈ‹È�țȰÈÅÈäÈìÈñÈõÈúÈÉ%É-É3ÉGÉLÉeÉvÉzÉzəɯÉÅÉÉÉÉÉÖÉÖÉÖÉñÉ÷ÉÊÊÊ#Ê=Ê=Ê=ÊTÊTÊbÊgÊgÊuÊuʋʛʵÊÐÊÐÊãÊèÊèÊËË3ËCËQËQËv˒˒˟˿˿˿ËAÌfø$	@	ž×ž×¸×à×Ã×ì×ì×ù×Ø%ØØ=ØUØBØhØaØtØtØ�Ø”Ø­Ø¦Ø¹Ø¹ØÆØåØåØïØg�5„þªþª«6«Q«=«q«]«}«“««³«Ÿ«¿«Ë«ЫÜ«ì«ó«¬¬¬"¬*¬/¬;¬@¬T¬[¬_¬j¬o¬z¬“¬œ¬¨¬­¬Á¬Ȭ̬̬ѬѬç¬ì¬­­)­.­9­A­A­A­C­\­q­|­†­‘­“­ž­¦­¦­³­«­Ë­ë­hÈ	$	ŽÖŽÖ¨ÖÌÖ¯ÖØÖñÖêÖ	×××1×*×=×V×O×b×b×o׎׎ט×iÐà	÷	.á.áHáTáká|áƒáœá”á´áÔáÀáàáñáâóá â,â,âDâDâNâj˜%
5
..HZZa€€’¦´­ÌÌÖk°äÖ§Ö§ô§û§¨¨¨¨.¨9¨D¨U¨f¨}¨�¨†¨ЍŒ¨�¨¯¨µ¨»¨ͨϨè¨÷¨û¨û¨û¨©#©#©/©5©?©J©X©_©_©n©p©†© © ©²©lø‡£FyFy\yfyfyvyy‚yˆyˆy’yªyªyºyÃyÆyÌyÌyÓyÚyÜyÜyÜyæym(Eg~”~”¬”ƔƔٔݔü”•••"•*•2•G•S•d•i•z•Ž•“•••®•ƕȕȕá•ù•ù•K–np%0nAnAwA‚A�A˜A£A­AËAÖAæAoXÑV3V3n3t33”3™3Ÿ3¢3¦3¦3Æ3Ë34í3
4&4424K474W4b4g4q4t4x4}4–4‚4¢4¢4¢4§4¼4Á4Ç4Ê4Î4Î4î4ó4)5555N5:5Z5p5\5|5‡5Œ5’5•5™5›5´5 5À5À5À5À5Ø56
6p°„
-—
-.ê.ê<êCêbê�êƒê¢êÁêÐêØêãêåêðêûêë ëqh J^6^6r6}6¤6¼6Á6Æ6Ê6Ì6Ò6Ø6î6Û6ú6ú67177=7d7|7�7†7Š7Œ7’7˜7®7›7º7º7Í7Õ7ç78ú7
88rð`»~�~�’�š�§�Ç�Ö�Ý�ç�í�ó�÷�û�‚‚‚‚#‚2‚6‚6‚L‚g‚k‚p‚p‚w‚z‚‚‹‚™‚�‚®‚½‚Á‚ÂÒ‚Ö‚Ö‚ì‚ü‚ƒƒƒƒƒ(ƒ2ƒ=ƒcƒnƒrƒwƒ­ƒăσÓƒäƒïƒóƒõƒ„„„„„"„&„(„(„3„7„7„I„U„Y„Y„Y„]„¤„s¸»ï¦„¦„º„DŽDŽDŽɄɄЄÒ„Ò„Ù„Û„Û„è„ê„ê„÷„þ„……
………….…3…3…{…tÀ�EÞ‹Þ‹ŒŒ-ŒFŒFŒWŒWŒdŒ‚ŒŠŒŠŒ·Œ¼ŒåŒ��#�'�J�p�u�u�ž�¸�Þ�õ�û�ÿ�Ž Ž%Ž6Ž>Ž\ŽbŽfŽŽ‡Ž¦Ž«Ž¼ŽÄŽãŽèŽðŽöŽúŽþŽ��$�8�=�O�T�e�j�ƒ���¤�¯�¸�Õ��$�)�)�)�9�@�N�[�t�t�‹�����§�©�©�½�¿�¿�Ö�Ø�Ø�ï�ñ�ñ�‘‘‘‘‘.‘S‘e‘j‘j‘j‘j‘q‘¥‘¶‘ˑˑˑؑï‘ñ‘ñ‘ñ‘þ‘’’’$’;’;’;’T’V’o’„’„’„’ˆ’Š’Š’Š’�’‘’‘’–’–’ ’¥’¥’º’º’º’Â’Ç’Ç’Ç’Ï’Ô’Ô’Ü’Ü’á’è’“““-“-“-“-“-“@“X“`“`“z”uè@	z	öØöØÙÙ%Ù,Ù3Ù8Ù:ÙAÙHÙLÙ_Ù‘ÙœÙÇÙÌÙíÙíÙùÙÚÚJÚOÚ|Ú„Ú‰Ú’ÚžÚ¦Ú­ÚÌÚÒÚñÚóÚÛÛ4ÛSÛYÛ`Û`ÛfÛiÛmÛ~ÛžÛ°Ûv8÷	;
-NâNâbâiâ|â¯âºâºâÊâùâùâã
ããVãXã…ã�ã�ãºã¿ãÞãùãÿãä#ä%ä0ä8äSäXäaämäuä€ä‡ä´äÓäÕäôä!å0å)åVå[åbå�å å¢åÁåàåûåææææJæJæVæw¸�¤¶ö¶öÄöÐöîö
-÷÷.÷A÷L÷N÷m÷u÷€÷“÷Œ÷«÷±÷xè.Hžužu­u²uÆuÏußuôuvv!v5v>vNvcvsvƒv…v˜v«v«v«v±vyhoyΊΊÞŠãŠéŠíŠñŠ‹‹zЛ²®;®;À;Ì;â;ï;ó;<!<%<+<J<><[<]<]<Ž<|<]<­<·<{Ááþøþøùùù)ù9ùYù^ùeù…ù‡ù§ù³ùÃùãùèùïùïùïùõùøùüùúú'ú2úRú\ú|ð>Y‰‰&‰?‰?‰I‰N‰N‰N‰m‰z‰|‰|‰|‰|‰‰‰‘‰¤‰¸‰º‰º‰‰Õ‰Õ‰Š}€YfŠŠ Š*Š4Š4ŠSŠ`Š`ŠcŠeŠkŠ~XZ
‚
®
-®
-Â
-Í
-Ø
-å
-%X8,~ƒ®³¿æëí. FMn`T‚„���©@5
Z
ÖÖêõ	:			`	b	�	�	š	Ó	Ø	ä	ï	ñ	
-
-
->
-0
-$
-R
-T
-m
-m
-z
-¡
-¡
-¡
-­
-ۉ
žž®µÇÏÚÚééý
-::IQ\doz…�›¦¦¸¸À�H1æ†æ†‡ ‡ ‡ ‡>‡N‡S‡S‡b‡t‡އ–‡�‡Ÿ‡²‡º‡º‡º‡¼‡¼‡¼‡¼‡ччччã‡å‡å‡å‡ø‡ˆ§ˆ‚€1>®ˆ®ˆ¸ˆÀˆʈʈéˆöˆöˆùˆûˆ‰ƒˆao^/^/n/n/~/”/€/ /¢/´/Æ/Î/„`o˜Î/Î/à/ë/0000&0,0,0<0T0A0`0c0h0~0ƒ0˜0…0¤0§0§0·0Ì0¹0Ø0Þ0Þ0ñ011*1=1G1…`˜ÁN1N1`1k1€1…1š1‡1¦1¬1¬1¼1Ô1Á1à1ã1è1þ1222$2'2'272L292X2^2^2q2„2—2ª2½2Ç2†˜ÁÑÎ2Î2Þ2Þ2î23ð233%383C3N3V3‡ˆ .uu%u*u>uGuWulu|u‘u‘u‘u—uˆ(!CžñžñÈñÍñãñëñüñ
-òòòòòò2ò2ò\òaò…ò�ò’ò™ò¯òÅòÇòÝòóòöò	ó#ó5ó‰8C‡6ó6ódózó‚ó�ó”ó›ó¤ó¦ó©óÈóÏóêóìóóóôôô ô#ôBôBôBôPôZôgôgô‡ô‰ô£ô«ô«ôÇôæôëôòôõõ*õ,õ3õNõdõ{õ~õ†õ“õ“õ³õµõÏõ×õ×õóõ
-ö
-ö0ö0öBöŠøï~…~…ž…²…½…Ò…ð…û…††††5†7†7†7†D†\†^†^†p†}†•†•†¦†â†‹P 6656"6A6P6X6ŒˆK™F¡F¡j¡w¡z¡�¡‡¡ž¡µ¡Ì¡¢+¢E¢J¢O¢Z¢q¢q¢ƒ¢�¢£¢¹¢Í¢Ò¢Ý¢ý¢££ £9£A£I£N£h£‚£Š£’£—£±£¹£¾£Þ£ã£æ£¤¤"¤*¤,¤F¤`¤h¤p¤r¤Œ¤”¤”¤™¤ž¤©¤©¤´¤´¤À¤À¤Ò¤¥(¥(¥8¥�èJ„8808<8G8L8X8c8h8o8t8t88„8„8£8Â8Ä8É8É8Ô8Ù8Ù8ø894949G9Z9m9€9…9…9˜9«9¾9Ñ9Ö9Ö9é9ü9:":$:$:7:J:]:p:p:š:ŽøÉ%Æ=Æ=ä=ð=û=>>
->)>.>D>[>H>g>v>ˆ>‘>™>¡>»>Í>Ö>Þ>æ>þ>ë>
-??&?.?3?M?:?l?Y?x?�?z?¬?™?¸?Ê?Ô?Ü?Ü?å?õ?@@;@?@?@F@K@]@o@q@v@ˆ@“@›@›@›@Ÿ@¸@Â@Ê@Ê@ã@í@í@AAA%A6A;ALAPAUAgA�˜žÎÎÎì,HUlŠŒ¬´´ÃÃË×í

/555:?NNZqsx‡‡“ ªª¸��
%
¶¶ÆÒÝóßÿ '‘@

vvŠ«³’@

66Jks“p

ÆÆçÔóþ	 +1”�HW¶v¶v¿vÓvÜvìvww)w+wBwYwYw^w• Wh^w^wgw{w„w”w©w½wÑwåwçwþwx,x,x1x–˜hx6x6xFxZxcxsxˆx—x™x¨x«x°x¸x—�x‡¾x¾xÎxâxëxûxy y0y3y8y@y˜x –t–t¥t¹tÂtÒtçt÷tuuu™`‡�FöFömöZöyö�öˆö§ö¯öšÐ²É¾<¾<Ð<Ü<ò<ÿ<==+=/=5=T=H=e=g=g=˜=†=g=·=Á=› á^ú^únúuú‡ú¦ú¬ú³úÒúÔúóúû$û*û1û1û9ûAûLûWû_ûgûrû}ûˆû§û¯ûœ Îï¾¾ØØàì!!-?EEEJO]]i�†”” ­´´Â�`fonŠnŠ|ЂІХЯЯŠÌŠž¸8Lx2x2‚2Œ2ž2¥2¯2±2±2Å2Ê2æ2÷2ù23333M3Ÿ@LQP3P3U3_3|3 HGXXr‚‚ŒŒ–– ²¿ÂÄÍÚÚÚôûû		2	2	@	O	^	t	t	t	t	„	„	„	–	–	¤	²	È	È	Þ	
-
+$LK+BI,"SetSrcFileInfo            ","FL:D:/TempleOS/Compiler/Lex.CPP.Z,106",262$00000035B8    0008 0000000079 Funct Export 
+$LK+BI,"StrMatchBits              ","FL:D:/TempleOS/Compiler/Unassembler.CPP.Z,220",263$0000000D80    0002 0000000073 Funct Export 
+$LK+BI,"StreamExePrint            ","FL:D:/TempleOS/Compiler/CmpMain.CPP.Z,673",264$0000033EB0    0000 00000000D8 Funct Export 
+$LK+BI,"StreamPrint               ","FL:D:/TempleOS/Compiler/CmpMain.CPP.Z,1",265$00000323D8    0000 0000000084 Funct Export 
+$LK+BI,"U                         ","FL:D:/TempleOS/Compiler/Unassembler.CPP.Z,819",266$0000002D38    0000 00000000B5 Funct Export 
+$LK+BI,"Ui                        ","FL:D:/TempleOS/Compiler/Unassembler.CPP.Z,233",267$0000000DF8    0002 0000001F3C Funct Export 
+$LK+BI,"Un                        ","FL:D:/TempleOS/Compiler/Unassembler.CPP.Z,835",268$0000002DF0    0009 00000000C0 Funct Export 
+$LK+BI,"UnasmHashLoad             ","FL:D:/TempleOS/Compiler/Unassembler.CPP.Z,181",269$0000000C78    0001 0000000101 Funct Export 
+$LK+BI,"UndefinedExtern           ","FL:D:/TempleOS/Compiler/StmtParser.CPP.Z,99",270$00000115D6    0001 0000000050 Funct Export 
+$LK+BI,"UnusedExternWarning       ","FL:D:/TempleOS/Compiler/StmtParser.CPP.Z,106",271$0000011626    0004 000000004E Funct Export 
+$LK,"asm_hash                  ","FL:D:/TempleOS/Compiler/CmpGlbls.CPP.Z,2"$00000004E0    0009 0000000008 GlbVar Export 
+$LK,"asm_seg_prefixes          ","FL:D:/TempleOS/Compiler/Assembler.CPP.Z,796"$000000B848    0001 0000000006 GlbVar Export 
+$LK,"assign_bitmap             ","FL:D:/TempleOS/Compiler/CmpGlbls.CPP.Z,9"$0000000628    0003 0000000008 GlbVar Export 
+$LK,"binary_ops_table          ","FL:D:/TempleOS/Compiler/CmpGlbls.CPP.Z,7"$0000000600    0002 0000000008 GlbVar Export 
+$LK,"cmp_arg_cnt               ","FL:D:/TempleOS/Compiler/CmpGlbls.CPP.Z,8"$0000000610    0009 0000000008 GlbVar Export 
+$LK,"cmp_bitmap                ","FL:D:/TempleOS/Compiler/CmpGlbls.CPP.Z,9"$0000000638    0004 0000000008 GlbVar Export 
+$LK,"cmp_do_not_write_to_dsk   ","FL:D:/TempleOS/Compiler/CmpGlbls.CPP.Z,3"$00000004E9    0003 0000000001 GlbVar Export 
+$LK,"cmp_result_cnt            ","FL:D:/TempleOS/Compiler/CmpGlbls.CPP.Z,9"$0000000618    0005 0000000008 GlbVar Export 
+$LK,"cmp_templates             ","FL:D:/TempleOS/Compiler/CmpExts.CPP.Z,46"$0000000000    0002 0000000004 GlbVar Export 
+$LK,"cmp_templates_dont_pop    ","FL:D:/TempleOS/Compiler/CmpExts.CPP.Z,47"$000000018B    0002 0000000004 GlbVar Export 
+$LK,"cmp_templates_dont_push   ","FL:D:/TempleOS/Compiler/CmpExts.CPP.Z,48"$0000000257    0002 0000000004 GlbVar Export 
+$LK,"cmp_templates_dont_push2  ","FL:D:/TempleOS/Compiler/CmpExts.CPP.Z,50"$0000000421    0002 0000000004 GlbVar Export 
+$LK,"cmp_templates_dont_push_pop","FL:D:/TempleOS/Compiler/CmpExts.CPP.Z,49"$0000000391    0002 0000000004 GlbVar Export 
+$LK,"compiled_bytes            ","FL:D:/TempleOS/Compiler/CmpGlbls.CPP.Z,16"$00000006A8    0002 0000000008 GlbVar Export 
+$LK,"compiled_funs             ","FL:D:/TempleOS/Compiler/CmpGlbls.CPP.Z,15"$00000006A0    0002 0000000008 GlbVar Export 
+$LK,"compiled_lines            ","FL:D:/TempleOS/Compiler/CmpGlbls.CPP.Z,15"$0000000698    0003 0000000008 GlbVar Export 
+$LK,"deref_bitmap              ","FL:D:/TempleOS/Compiler/CmpGlbls.CPP.Z,9"$0000000620    0004 0000000008 GlbVar Export 
+$LK,"doc_stop_btypes           ","FL:D:/TempleOS/Compiler/Lex.CPP.Z,394"$0000004ED8    0001 0000000008 GlbVar Export 
+$LK,"dual_U16_tokens1          ","FL:D:/TempleOS/Compiler/CmpGlbls.CPP.Z,6"$00000005E8    0002 0000000008 GlbVar Export 
+$LK,"dual_U16_tokens2          ","FL:D:/TempleOS/Compiler/CmpGlbls.CPP.Z,6"$00000005F0    0002 0000000008 GlbVar Export 
+$LK,"dual_U16_tokens3          ","FL:D:/TempleOS/Compiler/CmpGlbls.CPP.Z,7"$00000005F8    0002 0000000008 GlbVar Export 
+$LK,"fpop_bitmap               ","FL:D:/TempleOS/Compiler/CmpGlbls.CPP.Z,10"$0000000640    0013 0000000008 GlbVar Export 
+$LK,"internal_types_table      ","FL:D:/TempleOS/Compiler/CmpInit.CPP.Z,8"$000002E788    0001 00000000A0 GlbVar Export 
+$LK,"is_first_compiler         ","FL:D:/TempleOS/Compiler/CmpGlbls.CPP.Z,2"$00000004E8    0004 0000000001 GlbVar Export 
+$LK,"lex_zeros                 ","FL:D:/TempleOS/Compiler/Lex.CPP.Z,139"$0000003768    000B 0000000004 GlbVar Export 
+$LK,"non_ptr_vars_mask         ","FL:D:/TempleOS/Compiler/CmpGlbls.CPP.Z,12"$0000000670    0006 0000000008 GlbVar Export 
+$LK,"not_const_bitmap          ","FL:D:/TempleOS/Compiler/CmpGlbls.CPP.Z,9"$0000000630    0003 0000000008 GlbVar Export 
+$LK,"num_non_ptr_vars          ","FL:D:/TempleOS/Compiler/CmpGlbls.CPP.Z,11"$0000000658    0005 0000000008 GlbVar Export 
+$LK,"num_reg_vars              ","FL:D:/TempleOS/Compiler/CmpGlbls.CPP.Z,10"$0000000650    0006 0000000008 GlbVar Export 
+$LK,"num_stk_temps             ","FL:D:/TempleOS/Compiler/CmpGlbls.CPP.Z,10"$0000000648    0004 0000000008 GlbVar Export 
+$LK,"opt_nop                   ","FL:D:/TempleOS/Compiler/CmpGlbls.CPP.Z,5"$0000000550    000B 0000000098 GlbVar Export 
+$LK,"reg_vars_mask             ","FL:D:/TempleOS/Compiler/CmpGlbls.CPP.Z,11"$0000000668    0002 0000000008 GlbVar Export 
+$LK,"stk_temps_mask            ","FL:D:/TempleOS/Compiler/CmpGlbls.CPP.Z,11"$0000000660    0003 0000000008 GlbVar Export 
+$LK,"sys_internal_types        ","FL:D:/TempleOS/Compiler/CmpGlbls.CPP.Z,4"$00000004F0    00A4 0000000060 GlbVar Export 
+$LK,"to_non_ptr_vars_map       ","FL:D:/TempleOS/Compiler/CmpGlbls.CPP.Z,15"$0000000690    0004 0000000008 GlbVar Export 
+$LK,"to_reg_vars_map           ","FL:D:/TempleOS/Compiler/CmpGlbls.CPP.Z,14"$0000000688    0004 0000000008 GlbVar Export 
+$LK,"to_stk_temps_map_even     ","FL:D:/TempleOS/Compiler/CmpGlbls.CPP.Z,14"$0000000680    0007 0000000008 GlbVar Export 
+$LK,"to_stk_temps_map_odd      ","FL:D:/TempleOS/Compiler/CmpGlbls.CPP.Z,13"$0000000678    0007 0000000008 GlbVar Export 
+$LK,"uasm_ins64_mask           ","FL:D:/TempleOS/Compiler/CmpGlbls.CPP.Z,20"$00000006C0    000D 0000000008 GlbVar Export 
+$LK,"uasm_mem_mask             ","FL:D:/TempleOS/Compiler/CmpGlbls.CPP.Z,21"$00000006D0    0003 0000000008 GlbVar Export 
+$LK,"uasm_signed_arg_mask      ","FL:D:/TempleOS/Compiler/CmpGlbls.CPP.Z,20"$00000006C8    0003 0000000008 GlbVar Export 
+$LK,"unary_ops_table           ","FL:D:/TempleOS/Compiler/CmpGlbls.CPP.Z,8"$0000000608    0002 0000000008 GlbVar Export 
+$LK,"unasm_table               ","FL:D:/TempleOS/Compiler/CmpGlbls.CPP.Z,19"$00000006B0    0006 0000000008 GlbVar Export 
+$LK,"unasm_table_entries       ","FL:D:/TempleOS/Compiler/CmpGlbls.CPP.Z,20"$00000006B8    0003 0000000008 GlbVar Export 
+Pš`£`£t££Š£’£›£££¦£­£±£º£Ë£Ï£Ï£Ö£ä£¤¤¤#¤/¤1¤E¤8¤U¤`¤f¤f¤t¤w¤‰¤‰¤˜¤�¤¡¤²¤¾¤É¤Ô¤Ü¤ä¤é¤ô¤¥6¥.¥K¥V¥Š¥w¥Ÿ¥Ÿ¥Ÿ¥±¥¼¥Ò¥Ý¥ô¥¦¦)¦@¦W¦n¦n¦n¦w¦€¦†¦Š¦�¦š¦§¦²¦Î¦Î¦æ¦÷¦÷¦þ¦§&§.§>§E§^§i§u§z§…§‰§˜§£§¬§³§Ð§â§ø§¨&¨-¨1¨6¨H¨R¨R¨]¨l¨{¨—¨›¨ ¨7© MÞˆðˆðšðšð­ðµðÃðÃðßðêðððýðýðñ'ñ'ñ:ñ@ñ@ñWñiñiñvñ~ñƒñ‹ñ“ñ™ñ±ñÄñÏñÓñÝñòñøñúñò	òòò$ò(ò,ò:òMòQòZòoòsòsò†ò™òŸò£ò¬òÉòÍòÍòÍòÍòÒòäòóòóó+ó=óMóRóRóRó^ófónótótó‹ó“ó™ó¡ó¯ó¶óÂóÛóÝóåóóóùóûóûóûóûóûóûóûóûóûóôôôôô4ô<ô@ôHôVô\ô\ô\ôpôvô‚ôˆô•ô°ô¸ôÀôÌôÔôáôóôõõ$õ0õIõLõQõÒöÈ»ÑxŸxŸ‚Ÿ„Ÿ�Ÿ—Ÿ¢Ÿ­Ÿ¸ŸºŸºŸÔŸÔŸèŸêŸöŸÿŸÿŸ 0  ?ð™ð™šššš6šIšQšbšsš~š•š š¢š­š¾šÉšàšëšíšôšýšÿš
+›››3›(Ñ0 0 D K R Z ] ] l u x {  „ ¤ ‘ ¹ Ã Ë Î Ù æ ñ ù ¡@¡3¡U¡_¡�¡€¡¢¡¢¡³¡¾¡Ó¡Þ¡ô¡
+¢¢'¢=¢S¢i¢i¢i¢i¢r¢{¢�¢„¢•¢•¢¯¢À¢Ë¢Ó¢Y£J¨ø®ø®¯¯ ¯6¯H¯Z¯l¯~¯�¯�¯�¯¢¯©¯©¯¿¯Ñ¯Ö¯è¯÷¯°°$°1°1°1°Q°Q°g°y°}°‹°š°Ÿ°Ÿ°¦°¦°¼°Í°Ï°Ï°å°ý°ý°ý°±±±4±?±?±T±Y±q±v±Ž±¢±§±§±¼±Á±Ù±Þ±ö±û±²²0²2²K²\²\²^²t²{²‘²‘²£²»²Ó²ë²³³›³¨M(è(è8è8èUèUèrèvè{è{è{è{è‡èŒèœè¡è¡è¡è¦è¦è¼èÃèÖèäèíèýèéééééééé$é+é2é9é@éGéGéIéIéOéTé„ðP\ƒ8œ8œJœQœXœfœmœrœœ‘œ“œšœ œ°œ»œÅœÐœÐœçœêœìœþœ���(�/�:�O�W�W�m�m���	Pƒªˆ�ˆ�š�¡�¨�¶�½�Â�Ï�á�ã�ê�ð�žžž ž ž7ž:ž<žNžUžežožyž€ž‹žŸž§ž§ž½ž½žÒž
+?\8›8›M›T›[›b›h›x›ƒ›�›˜›˜›¯›²›´›Ï›Ù›ã›ê›õ›œœœ%œ%œ7œ ª»ØžØžóžúžŸŸŸ"Ÿ1Ÿ;Ÿ>ŸRŸVŸjŸjŸxŸ¸¨ ³ ³Á³È³È³ß³ë³ö³´´9´T´b´i´p´|´†´�´”´˜´š´¡´­´·´¾´Å´É´É´Ó´Ø´ã´õ´õ´&µGµUµ\µcµoµyµ€µ‡µ‹µ�µ”µ µªµ±µ¸µ¼µ¼µÉµ×µçµùµùµ*¶K¶Y¶`¶g¶s¶}¶„¶‹¶�¶‘¶˜¶¤¶®¶µ¶¼¶À¶À¶Ê¶Ú¶ì¶ì¶·$·+·7·A·H·O·S·U·\·h·r·y·€·„·„·Ž·¥·¾·Ì·Ð·Ð·Ó·Ü·F¸
 ™™7™C™K™S™W™[™_™c™g™o™t™x™‚™‰™�™’™–™ ™§™´™Ç™Î™Ø™Ø™Ø™Ø™ê™@&+¨/²/º/¿/n33323B3]3]3o3‡3‡3¢3Ã3Ì3Ð3Ô3Ú3ä3ê3ú34
+4444!4!4-404;4A4K4Q4U4Z4d4d4v4}4„4†4Š4“4�4¥4°4¼4À4Ñ4à4æ4ð4ù45#5,555=5H5S5_5p5�5�5›5�5¤5«5°5´5Á5È5Ó5á5ë5õ5þ56(616:6B6K6Q6U6Z6^6k6r6€6Š6”6�6¶6Ç6Ð6Ù6á6ê6ð6ô6ù6ÿ6	777.7<7B7I7R7Z7b7}7q7Œ7›7¤7¤7¿7Ó7Ó7ò7ù78888#8,8P8T8Ÿ8°¦¹¸+¸+Ý+ß+ß+ù+,
,+,>,M,\,j,j,u,x,µ,H¶r¶rÄrÝrårårërp&îrîrsss0s8sSsZsbsbsjs :Û¨¨´´ÄÔäô*7F[qqƒ…—™««½Ûàìø   ( 4 @ O ^ m | ‹ š © © ¹ Ä Ï × á ù þ   $ , 6 N S c s ~ ‰ ‘ › ³ ¿ Ç Ñ á æ õ ü !!!(!3!>!I!T!_!j!u!€!‹!‹!š!¡!¬!·!Â!Í!Ø!ã!î!ù!ù!"""%"%"4";"E"O"Y"c"m"m"|"ƒ"�"—"¡"«"µ"¿"É"Ó"Ý"ç"ñ"û"#####-#7#A#K#U#_#i#s#}#‡#‘#›#¥#¯#Ø#˜n¨0¨0À0Ë0Ë0Ï0Ø0Û0å0ì0ù0ù01
+1
+1111+1-1-1=1?1?1L1N1N1[1]1]1l1n1n1}1}1„1ˆ1‹1�1”1¡1¨1¶1½1Ð1Ð1Ð1Ô1Ö1Ö1Ö1å1é1ë1ë1ë1û1ÿ122222222#2'2'2C2G2S23@¹¸,¸,Ò,Õ,Õ,Ù,â,é,ð,ý,ý,---- - -/-1-1-A-C-C-P-R-R-_-a-a-p-r-r-�-�-ˆ-Œ-•-¢-©-²-¹-½-Ô-Ô-Ô-à-ä-ç-ï-ï-þ-... .8.K.V.[.[.�.˜.�.¤.¤.³.µ.Ä.Ê.×.ä.é.ø.þ.// /#/#/#/#/,/2/6/B/c/q/x/¨0дˈ?ˆ?Œ?¢?©?Á?Ê?Õ?à?ë?ò?÷?ü?@$@2@;@J@O@Q@Ð/¦€%€%„%“%—%¤%¶%Ã%Û%í%&/&=&Y&k&ƒ&š&³&Ï&á&û&'%'@'R'd's's'ƒ'–'§'¶'Æ'Ó'Þ'í'
(
(((('(4(>(h(‹(©(²(¿(Ã(Ë(Ö(î()) )'),)?)c)s)ƒ)Ž)ž)£)«)Ë)Í)Ø)***1*@*H*W*`*h*h*z*˜* *¨*³*µ*Å*Ý*õ*
+%+=+T+]+f+o+�+�+“+²+ø
+Þ:ØöØöÜöíöþö÷ ÷1÷B÷S÷d÷u÷†÷—÷¨÷¹÷Ê÷Û÷ì÷ý÷ø ø0øAøRøcøtø…ø–ø§ø¸øÉøÚøëøüø
ùù/ù@ùQùbùsù„ùœù•ù­ù¦ù¾ù·ùÏùÈùàùÙùêùûùú$úú.ú?úPúaúrúƒú”ú¥ú¶úÇúØúéúúúûû-û>ûOû`ûqû‚û“û¤ûµûÆû×ûèûùû
+üü,ü=üNü_üpü�ü’ü£ü´üÅüÖüçüøü	ýý+ý<ýMý^ýoý€ý‘ý¢ý³ýÄýÕýæý÷ýþþ*þ;þLþ]þuþnþþ£°á®i®iÒiÕi
+jjj-j3j8j8jSjYj^j^jgjujuj�jˆjŽj“jÖjàjçjíjïjïjkkkk
k)k8kMkRkRkRkYk`kgk|kƒkƒkœkœkÊk€dqV-V-f-n-{-…-�-˜-p
+~r~r‡rŒrŒršr£rªr¬r±r8%11 1E1Y1¤12220272>2R2Y2c2l2„2“2 2£2¼2¿2Ä2Û2ç2ó2÷2333J3x ÎkÎkèkòkökúkÿkl l?l?lIl`
+VrVr_rdrmrtrvr{r 804Ø/â/ê/ï/ p;F�:�:¥:´:È:×:Ý:ã:æ:;!poz°<°<Å<Ô<è<õ<û<==%="p–¡8>8>M>\>p>}>ƒ>‰>Œ>­>#`2;H:H:Z:m:|:‚:…:�:$`foh<h<z<�<š< <£<«<%`�–ð=ð=>>">(>+>3>&H2 8 8¤8¨8¨8½8Ð8Ð8ã89!9*9;9b9y9y9›9ª9³9À9Ç9×9ä9ý9
+:::::):):9:=:A:'Ff;;;;;%;8;8;K;b;™;»;Ê;Ó;à;ç;÷;<<*<.<6<6<6<I<I<Y<]<a<(°z�(=(=A=A=Q=^=^=h==œ=º=À=É=×=Ý=à=ì=)@ ¥ÞÞçíò*@//7/ÛBÛXÛkÛ‚Û…Û…Û—Û¡ÛµÛ¿ÛÈÛßÛéÛëÛÿÛ	Ü Ü$Ü$Ü$Ü/Ü6ÜIÜaÜcÜ{܎ܥܫܫܽÜÅÜæÜýÜýÜýÜ#Ý#Ý5Ý3è±K‡‡H‡O‡W‡`‡q‡~‡“‡–‡™‡�‡¦‡¦‡´‡¾‡Ç·ë‡ð‡ý‡)ˆ.ˆ;ˆ[ˆ`ˆoˆ›ˆ£ˆ¨ˆ½ˆéˆñˆöˆöˆ	‰‰,‰0‰O‰`‰e‰e‰~‰~‰~‰~‰~‰މ£‰¦‰©‰­‰­‰²‰½‰Ú‰߉è‰õ‰ý‰Š*Š7ŠBŠWŠWŠWŠdŠ{Š}Š}Š}ŠŠŠ¡Š£Š£Š°ŠÇŠÇŠØŠÝŠæŠýŠ‹‹!‹6‹6‹6‹C‹Z‹\‹\‹\‹i‹€‹‚‹‚‹�‹¦‹¦‹·‹¿‹Ä‹Ћê‹ü‹ü‹Œ#Œ#Œ#Œ0ŒGŒIŒIŒVŒmŒmŒmŒ‚Œ„Œ‹Œ­ŒËŒÐŒ׌åŒïŒñŒñŒñŒ
����9�Ž4§ÄNãNã^ãeãqã�ã ã¦ã­ãÌãÎãíãùã	ä(ä.ä5ä5ä=äEäPäXäcänä�ä•ä5ß}^^xŠ�—ž £ª±±ÍÑ××ï@``�†§¬¸ÃÈÕØ %+-36GLOW`{›²ÅÊÎð		 	2	7	;	]	x	˜	«	°	Á	Æ	É	Ë	Ñ	×	è	í	ó	û	û	
+
+%
+8
+=
+A
+c
+~
+ž
+±
+¶
+Ñ
+ñ
+ $FYYkkky‘“““¡¹»»Éááóóü	 ?Y`k~‚‚‚‰�©°»ÓÕÛõü

 
 
b
6Ðt‹n$n$€$Œ$¢$¯$¹$È$á$å$ë$
+%þ$%%%N%<%%m%w%7€I„„„„8„&„„Y„i„[„Š„¤„¤„´„¹„¹„̈́҄҄î„ó„ó„………,…1…1…1…N…N…\…€…¦…½…Ï…á…󅆆†‡8 }®f
f
v
•
�
»
È
Ô
Ú
EEJ`rrˆžÑÑà33@lq˜ º¦ÕîÚú""/[[[[c9h°
Ú
úú0ú;úFúRú]ú_úˆúŽúŽúµúµúÂúíúûûû0ûRûjûWû}ûvûœû‰û°û°û½ûèûüûûïû
ü ü ü ü*ü:X}å6ì6ìXìxì€ì‹ìšì£ì§ì²ì½ìÒì×ìñìííí.ídízí€íˆí‹í�í£íÍíãíéíñíôíÿíîî6îUî[îcîcîhînîqî|î‡îœî¡î»îÚîàîåîðîïïï2ï:ï?ïJï_ïhïjï‰ï‘ïœï±ï¶ïÐïïïõïúïúïúïúïððð#ð#ð;ðFðYðfð~ð’ð£ð­ð¯ðÃðÔðÙðäðäðñññ#ñ;0®Qff€�›¦ë0Z`fnpx“–¡­ò7agmpu}˜›¦®³ø =gmsvx€›ž©±ö;ekqy~†¡¤¯»»ÀÆÌÔ×âô2\bgyˆºäêò÷	Gqw|Ž�Ìöü$JZ`uŒŽ´ÄÊÝê$;IK_vv‹¡ºÍÍÚíñññøý46;NN[hrr„<Ðy�FxFxJxJx]x]xwx~xŠxŠx¡x¡x¸x¸xÏxÏxæxæxýxÿxÿxy=à8ƒ8ƒBƒLƒSƒjƒjƒoƒqƒ}ƒ‡ƒ˜ƒ˜ƒµƒ·ƒÇƒÇƒÌƒÎƒÕƒ„>Ø}NçNçlçvç©ç¸çÎçòç÷çûçèèèè"è+è0èEèVèuè}èèžè¦èµè¼èÈèÍèÔèÜèâèäèðèééé'é-é-é5é5é>éMéléséué”é›é›é›é¯éÅéÉé×éêéâéêêêê!ê'ê)ê5êEêJêLêlêrêrê~êŽê“ê˜ê¸ê¾êÃêÏêßêäêæêëëëë!ë#ë/ë?ëDëFëfëlëlëlëtëtë}ë}ë‡ë‡ëŸëÏëåëéë÷ë
+ìì"ì"ì4ì?¸Ú
Ž.ü.üHüPü^ü^übüˆü“ü›ü£ü¹üÁüÁüÅü÷ü0ýýýHýMýXýcýeý„ýŠý“ýšý¢ýªý¶ý¾ýÆýÙýáýæýæýðýþþþþ$þ3þSþ[þ]þ}þ…þ…þ…þ�þ™þ­þµþ¾þ¾þÃþÇþÏþÔþÙþáþþþÿ6ÿUÿXÿmÿzÿŽÿ¡ÿ¥ÿ²ÿØÿôÿ&,.MPPer†™™¤¨³¾ÉÔÖõø28=HSUtw‚��®´´´¾¾Éúú0I\ddpwwŠŽŽŽ•š­µµÁÈÈßáæù
!++TTf@À UNlNlvlyl~l~l‹l�l¢l¤l¨l¬l¯lÂlÛlýlmmm1mSmXmqm“m˜mŸm¸mÚmÜmõmnnn%n.n>nSnhnnn™n¨nºnA¨gynƒnƒ~ƒ‹ƒ‹ƒšƒšƒ¦ƒ¬ƒÖƒìƒ؃„øƒ„„#„Bp…
°
.ø.øBøFøTøTøcønøzø…ø‡ø°ø¶ø¶øØøùëøßø)ù.ùUùZùfùqùsùœù¢ù¢ùµùÎùÈù¼ùÚùíùíùúúúC°>
+Q
+öÑöÑÒÒ*ÒIÒKÒjÒ‰Ò˜Ò Ò«Ò­Ò¸ÒÃÒâÒèÒDÈQ
+‡
+îÒîÒÓÓÓBÓaÓcÓ‚Ó¯Ó¾ÓÆÓÑÓÓÓÞÓéÓéÓîÓÔ ÔMÔRÔYÔxÔ—Ô¢Ô¤ÔÃÔâÔâÔýÔÕÕ Õ!Õ,Õ7Õ7ÕWÕtÕtÕ�Õ�Õ¥ÕÆÕÆÕÆÕÎÕEH½	ã	ÎÊÎÊèÊùÊËË#Ë<Ë4ËTËtË`ˀˑ˖˷ˣËÏËàË÷ËþËÌÌ/ÌOÌ;Ì[ÌlÌ‚Ìņ̧̿̿̚ÌÉÌFXKsޣޣ¨£º£Á£È£È£×£Ü£û£û£¤ ¤$¤+¤+¤:¤<¤[¤[¤z¤�¤|¤›¤›¤ª¤¬¤ˤˤˤˤÚ¤ó¤ì¤¥¥GÐú	.¸.¸H¸[¸b¸i¸p¸t¸v¸}¸„¸ˆ¸ˆ¸�¸©¸³¸³¸ǸÒ¸à¸ñ¸õ¸ú¸¹¹'¹>¹B¹K¹O¹T¹e¹w¹‚¹ˆ¹�¹¤¹©¹¹Ó¹×¹×¹×¹ܹ
+º º&º<º@ºEºPºaºrº‰º‘º–ºžº£º´ºƺκÔºéºëº»»»»»)»:»K»b»f»o»s»x»‰»›»¦»¬»´»È»Í»æ»÷»û»û»
¼
¼
¼¼¼!¼#¼B¼B¼a¼l¼r¼ˆ¼™¼ž¼³¼¾¼ϼà¼÷¼û¼½½
½½0½7½=½E½Y½[½t½…½‰½‰½�½¦½ª½ª½¼½Á½̽ݽî½¾
¾¾¾ ¾0¾F¾N¾T¾i¾n¾‡¾�¾¡¾¡¾³¾³¾³¾³¾˾¸¾×¾×¾æ¾è¾¿¿¿.¿?¿?¿?¿F¿F¿Y¿r¿r¿r¿�¿�¿”¿«¿²¿ÿÈ¿οØ¿Ú¿æ¿æ¿í¿ô¿ÿ¿ÀÀ!À6ÀBÀDÀOÀ[ÀkÀrÀyÀƒÀ‹À�À“À•ÀšÀ¢À¦À¸ÀºÀ¿ÀÇÀËÀÍÀÍÀÖÀãÀùÀÁ3Á@Á@ÁLÁSÁSÁfÁjÁjÁjÁqÁvÁ�Á�Á�Á©Á°Á°ÁÇÁÉÁÎÁèÁõÁõÁ  Â1ÂH˜™É’’<’?’F’L’R’T’Z’`’`’r’}’„’‘’ž’±’À’Ô’Ú’Ü’ã’é’ó’ó’““
“““““4“F“M“M“\“^“p“““‘“IðÉä–“–“¼“¿“Ɠ̓ғԓړà“ç“ô“””!”0”6”8”>”H”W”i”x”–”¨”JØ¥	½	ŽÉŽÉ¨É´ÉÊÉèÉùÉÊÊÊ1ÊQÊ=Ê]ÊnÊpÊ‘Ê}ʩʩÊÁÊÁÊËÊK5Ž–Ž–¢–´–»–»––á–æ–—
+—$——C—0—O—d—Q—ƒ—p—�—�—¡—¡—¨—Ç—Ç—Ï—L0s¶¥¥*¥<¥G¥o¥N¥{¥{¥™¥Æ¥¥¥Ò¥Ò¥ì¥ì¥¦ ¦
¦M¦,¦Y¦Y¦s¦s¦…¦…¦Ÿ¦Ÿ¦̦̦Ù¦§§§L§=§X§X§v§‚§´§¡§ϧÀ§Û§Û§ù§¨û§¨H¨9¨T¨T¨n¨n¨€¨€¨š¨µ¨µ¨¨á¨á¨á¨é¨MX}	¥	VÇVÇpÇ�Ç�Ç£ÇÁÇÈÇáÇÙÇùÇÈÈ%È6È;È\ÈHÈtȅțȹÈÀÈÙÈÑÈñÈÉýÈÉ.É0ÉQÉ=ÉiÉiÉ�É�É‹ÉNP„Kƚƚèšûš›
+›››› ›'›*›*›*›<›<›O›Z›e›v›‡›ž›¦›¯›·›¼›Í›ã›ë›ó›œ
+œ$œ<œ@œ@œEœqœ†œ‘œ¢œ³œÊœÒœÛœãœèœùœ���-�/�I�a�e�e�p���’�©�±�º�Â�Ç�Ø�î�ö�þ�žž/žGžKžKž^ž^ž^žvžcž–žƒž£ž¯žµžÍžåžêžÿž
+ŸŸ,ŸCŸKŸTŸ\ŸaŸrŸ„ŸŒŸ”Ÿ¦Ÿ¨ŸŸÚŸÞŸÞŸéŸúŸ " * 3 ; @ Q g o w ‰ Ž ¨ À Ä Ä × × × ï Ü ¡ü ¡(¡.¡F¡^¡^¡^¡j¡p¡{¡†¡˜¡¨¡¿¡Ö¡í¡¢¢¢4¢4¢4¢L¢L¢Z¢\¢\¢j¢j¢s¢~¢Œ¢§¢¶¢½¢½¢Í¢Ï¢Ï¢ì¢ô¢£"£=£=£‡£O8
+¶úî¨î¨©©©!©)©B©B©V©V©l©l©w©{©†©®©�©º©ЩÞ©ô©ø©ý©ý©ª ª7ªNªSª[ª_ªdª‹ª¡ª¥ª¥ªµªòªѪþªþª««:«E«K«a«r«w«w«‰«š«±«È«Í«Õ«Ù«Û«¬¬¬'¬8¬I¬`¬h¬m¬q¬v¬‡¬�¬¥¬«¬¿¬Ĭݬî¬ò¬ò¬­­­­	­8­%­e­D­q­q­Ž­™­Ÿ­µ­Æ­Ë­Ö­ç­ø­®®® ®%®6®H®P®V®j®l®…®–®š®š®š®¬®½®Ô®ë®ð®ø®ü®þ®%¯;¯?¯?¯L¯L¯L¯L¯_¯e¯o¯v¯v¯‰¯ ¯ ¯³¯³¯Á¯ïïѯѯç¯÷¯°°°/°4°4°P°X°t°„°‹°™°·°¯°ܰ±±±±K±P±P±[±a±l±‹±¢±’±®±ıұ걲²²3²_²O²k²k²ˆ²ˆ²§²²²¸²βß²ä²ú²³³ ³0³A³X³`³e³i³n³³•³�³£³·³¼³Õ³æ³ê³ê³ü³ü³ü³ü³´0´´<´k´[´w´w´”´Ÿ´¥´»´Ì´Ñ´Ü´í´þ´µµ"µ&µ+µ<µNµVµ\µpµrµ‹µœµ µ µ¿µÕµëµïµïµüµüµüµ¶¶ ¶&¶&¶9¶P¶P¶P¶c¶c¶q¶s¶s¶�¶�¶—¶§¶µ¶жжã¶è¶è¶··(·8·F·F·c···Œ·¬·¬·¬·.¸Pø'	C	FÃFÃ`ÈÃkÔÔáôÃÍÃÆÃåÃýÃêÃÄ	ÄÄÄ)Ä<ÄUÄNÄaÄaÄnÄ�Ä�Ä—ÄQ�5„Ö—Ö—ö—˜)˜˜I˜5˜U˜k˜W˜‹˜w˜—˜£˜¨˜´˜Ę˘ؘã˜ï˜ú˜™™™™,™3™7™B™G™R™k™t™€™…™™™ ™¤™¤™©™©™¿™Ä™Ý™ò™ššššššš4šIšTš^šiškšvš~š~š‹šƒš£šÚRÈ	'	6Â6ÂPÂtÂWÂ€Â™Â’Â±ÂÆÂ³ÂÙÂÒÂåÂþÂ÷Â
+Ã
+ÃÃ6Ã6Ã@ÃSÐã	ú	ÎÌÎÌèÌôÌÍÍ#Í<Í4ÍTÍtÍ`͓̀͑ͧͿÍÌÍÌÍäÍäÍîÍT˜(
8
®ó®óÈóÚóÚóáóôôô&ô4ô-ôLôLôVôU°ä®”®”̔Ӕޔޔô”ô”•••-•>•U•Y•^•b•d•u•‡•�•“•¥•§•À•ϕӕӕӕæ•û•û•–
––"–0–7–7–F–H–^–x–x–Š–Vø‡£†f†fœf£f£f³f¼f¿fÅfÅfÏfäfäfôfýfggg
ggggg gW(Egž�ž�Ì�æ�æ�ù�ý�‚0‚5‚5‚B‚J‚R‚g‚s‚„‚‰‚š‚®‚³‚µ‚΂æ‚è‚肃ƒƒkƒXp"F+F+O+Z+e+p+{+…+£+®+¾+YXÁ	>>V\gx}ƒ†ŠŠª¯åÑñ
+ö/;BGQTX]vb‚‚‚‡˜�£¦ªªÊÏ ñ *  6 L 8 X _ d j m q s Œ x ˜ ˜ ˜ ˜ ° Ù å Z°‡
+š
+ÎÕÎÕÜÕãÕÖ!Ö#ÖBÖaÖpÖxÖƒÖ…Ö�Ö›ÖºÖÀÖ[h:6 6 J U x � • š ž   ¦ ¬  ¯ Î Î í !ò !4!L!Q!V!Z!\!b!h!~!k!Š!Š!�!¥!·!Ñ!Ê!Ý!é!\ð`»¾n¾nÒnÚnçnooo'o-o3o7o;oToTo[o^ocorovovoˆo£o§o¬o¬o³o¶o»oÇoÕoÙoêoùoýoÿoppp$p4p8p=p=pQpTp`pjpqp—p¢p¦p«pápøpqqq#q'q)q4q8q8q8qFqRqVqXqXqcqgqgquq�q…q…q…q‰qÐq]¸»ïÖqÖqêq÷q÷q÷qùqùqrrr	rrrrrr'r.r0r0r=rDrFrFr^rcrcr«r^À�Eyy8yAyUynynyyyŒyªy²y²yßyäy
z*zFzLzPzsz™zžzžzÇzáz{{${({A{I{N{_{g{†{Œ{�{©{±{Ð{Õ{æ{î{
||| |$|(|:|B|N|b|g|y|~|�|”|­|º|Î|Ù|â|ÿ|,}N}S}S}S}c}j}x}…}ž}ž}µ}º}º}Ñ}Ó}Ó}ç}é}é}~~~~~~2~2~C~H~H~X~}~�~”~”~”~”~›~Ï~à~õ~õ~õ~(?AANeeez|•ªªª®°°°µ··¼¼ÆËËàààèêêêòôôüüþ€!€#€6€J€J€J€J€J€]€u€}€}€—�_èC	}	žÄžÄ¸Ä»ÄÍÄÔÄÛÄàÄâÄéÄðÄôÄÅ9Å@ÅkÅpőőÅ�ťŴÅîÅóÅ Æ(Æ-Æ6ÆBÆJÆQÆpÆvƕƗƶÆÁÆØÆ÷ÆýÆÇÇ
+Ç
ÇÇ"ÇBÇTÇ`8ú	>
+îÍîÍÎ	ÎÎOÎZÎZÎfΕΕΡΩθÎòÎôÎ!Ï)Ï)ÏVÏ[ÏzϕϛϪϿÏÁÏÌÏÔÏïÏôÏýÏ	ÐÐÐ#ÐPÐoÐqÐ�нÐÌÐÅÐòÐ÷ÐþÐÑ<Ñ>Ñ]Ñ|Ñ—ÑŸÑºÑºÑºÑæÑæÑòÑa¸“§NâNâ\âhâ†â¢â¯âÆâÙâäâæâã
ãã+ã$ãCãIãbè.Hþbþb
cc"c+c;cPc`cxc}c�c–c¦c»cËcÛcÝcðcddd	dcЋ¢~%~%�%œ%²%¿%Ã%Ò%ñ%õ%û%&&+&-&-&^&L&-&}&‡&dÄä–ä–ä¨ä®äµäÁäÑäñäöäýäå å?åKå[å{å€å‡å‡å‡å�å�å”åœå´å¿åÊåêåôåeð>Y.v.vNvgvgvqvvvvvvv•v¢v¤v¤v¤v¤v±v¹vÌvàvâvâvêvývýv9wf€Yf>w>wHwSw]w]w|w‰w‰wŒwŽw”wgX]
…
.ö.öBöMöXö†öeöžö¥öØö¸ö¬öþö÷.÷3÷?÷f÷k÷m÷Œ÷’÷®÷Ÿ÷Æ÷Í÷î÷à÷Ô÷øøøøø)øh@8
]
VôVôjôuô€ôºôšôŽôàôâô
õ
õõSõXõdõoõqõ�õ–õ�õ¾õ°õ¤õÒõÔõíõíõúõ!ö!ö!ö-öiå
&ñ&ñ6ñ9ñKñSñ^ñ^ñmñmñ�ñŽñ™ñžñ¾ñ¾ñÍñÕñàñèñóñþñ	òò ò*ò*ò<ò<òDòjH1tt.tGtGtGtftvt{t{tŠtœt¶t¾tÅtÇtÚtâtâtâtätätätätùtùtùtùtu
u
u
u u+uÏuk€1>ÖuÖuàuèuòuòuvvv!v#v)vlI‰‡‡$‡)‡R‡A‡=‡b‡o‡y‡‰‡‰‡ ‡§‡§‡¾‡Å‡Î‡Î‡å‡å‡ü‡ü‡ˆˆ*ˆ*ˆAˆAˆXˆXˆoˆoˆ†ˆ†ˆ�ˆ�ˆ´ˆ´ˆËˆËˆâˆâˆùˆùˆ‰‰'‰'‰>‰>‰V‰^‰l‰}‰‹‰œ‰Ÿ‰¡‰¸‰¿‰¿‰éŠmˆQ_††––¢¸¤ÄÆØêòn`_ˆöö %:'FLLXp]|��”©–µ¸¸ÄÙÆåëëþ$7JTo`ˆ±VVho€…š‡¦¬¬¸Ð½Üßáïô	ö$9&EKK^q„—ª´p˜±Á¶¶ÆÆÒèÔôö	'2:qˆ .~b~b�b’b¢b«b»bÐbàbõbõbõbûbr($F6Ý6Ý`ÝeÝ{݃ݔݢݦݦݯݯݴÝÊÝÊÝôÝùÝÞ%Þ*Þ1ÞGÞ]Þ_ÞuÞ‹ÞŽÞ¡Þ»ÞÍÞs8FŠÎÞÎÞüÞßß%ß,ß3ß<ß>ßAß`ßg߂߄ߋߦ߭߶߸߻ßÚßÚßÚßèßòßÿßÿß à!à;àCàCà_à~àƒàŠà à§àÂàÄàËàæàüàááá+á+áKáMágáoáoá‹á¢á¢áÈáÈáÚátøï®r®rÎrârírs s+s@s@s@sMsesgsgsgstsŒsŽsŽsœs©sÁsÁsÒstuP	æ æ 
 ú  ( 0 vˆK™ŽŽBŽOŽRŽ[ŽaŽxŽ�ަ޿Ž��!�&�1�H�H�Z�g�z���¤�©�´�Ô�Ù�Ü�ö��� �%�?�Y�a�i�n�ˆ���•�µ�º�½�×�ñ�ù�‘‘‘7‘?‘G‘I‘c‘k‘k‘p‘u‘€‘€‘‹‘‹‘—‘—‘©‘é‘ÿ‘ÿ‘’wè:tî!î!""""("3"8"?"D"D"O"T"T"s"’"”"™"™"¤"©"©"È"ç"###+#>#Q#V#V#i#|#�#¢#§#§#º#Í#à#ó#õ#õ#$$.$A$A$k$x¹–'–'´'À'Ë'Ó'Ó'Ú'ù'þ'(+((7(F(X(a(i(q(‹(�(¦(®(¶(Î(»(Ú(ì(ö(þ())
+)<)))H)])J)|)i)ˆ)š)¤)¬)¬)µ)Å)Û)ô)***** *%*7*I*K*P*b*m*u*u*u*y*’*œ*¤*¤*½*Ç*Ç*Ú*â*ó*ÿ*++&+*+/+A+yhoyöwöwxxxxx8x@xz˜Ž¾ff„š¦Äàí"$DLL[[co…š©©µÈÎÎÎÓØççó
+  ,9CCQ{�
(
6ó6óFóRó]ósó_óó�óˆó“óŸó§ó|@

öòöò
+ó+ó3ó}@

¶ò¶òÊòëòóò~p

FòFògòTòsò~ò‰ò”òŸò«ò±ò�HWddd'd0d@dUdid}dd–d­d­d²d€ Wh¶d¶d¿dÏdØdèdýde%e9e;eReie€e€e…e�˜hx†e†e–e¦e¯e¿eÔeãeåeôe÷eüef‚�x‡fff&f/f?fTfcftfwf|f„fƒx bbb%b.b>bSbcbxbxb~b„`Š“ÞáÞáâòáâ'â â?âGâ…Т¹Ž&Ž& &¬&Â&Ï&Ó&â&û&ÿ&'$''5'7'7'h'V'7'‡'‘'† äöåöåæ
æ æ>æDæKæjælæ‹æ�æ¼æÂæÉæÉæÑæÙæäæïæ÷æÿæ
+çç ç?çGç‡ ¾ßVVppx„𝽽ɨÞÞÞãèöö --9FMM[ˆ`fo–w–w¤wªw®wÍwîwîwôw‰¸8L00
+00&0-0=0?0?0S0X0t0…0‡0 0£0¥0¥0Û0Š@LQà0à0å0ï01‹HGØØò 2?BDMZZZt{{•œ²²ÀÏÞôôôô$2HH^�—ºÍÍÛéïïï	ŒˆGµ			!	0	0	=	N	N	Q	T	T	Y	^	g	g	r	x	�	•	š	¯	º	Ä	Ä	Ä	í	ø	
+&
 :
-M
-M
-[
-i
-q
-q
-q
-ƒ
-¡ˆGµˆ
-ˆ
-ž
-¡
-°
-°
-½
-Î
-Î
-Ñ
-Ô
-Ô
-Ù
-Þ
-ç
-ç
-ò
-ø
-/:DDDmxƒ¦ºÏÕÚáöýJOV]diipv{{•¼ÂÇæíííòõü

-




!
!
4
S
S
a
v
|
~
™
 
 
 
¢
¢
¢
¨
­
±
³
¶
À
Ì
Ï
Ñ
Õ
Õ
Ú
Ú
ë
ý
¢848h2l2s2u2£@+082B2J2O2¤4___-_-_-_>_>_M_M_S_U_U_[_]_]_c_e_e_l_p_u_u_u_u_u_u_}_’_’_œ_¡_ª_´_Á_Ö_Ø_ó_õ_``0`5`;`=`=`R`U`U`|`‰`¡`¡`Á`Á`Ê`Ï`ï`Ý`õ`a	aaa,a4aiPiZicimivi„i‰i‰iœi¢i§i¶iÈiÛiàiôijjj'j-j0jGjLjOj_jijljlj{jŽj j©jµj»j¾jÕjÚjÝjíjñjùjþjk*k*k/k4k4k?kGkLkLkRkRkdknktk‚kŒkÃkÆkËkÙkÙkÞkækëkôkùkùklllll%l*l/l>lCl`lblglllqlvl{l€l…l…lŠl�l«lñl÷lmmmm$m2mnHnNn\nfn�n n¥n³nÍnÒnÒnÒnÚnßnènínínønooo
-ooo#o(o(o;o;oPoVoVohoroxo†o�oÇoÊoÏoÝo÷oüoüoüop	pppp"p*p/p/p/p@pFpFpXpbphpvp€p·pºp¿pÍpçpìpìpìpôpùpqqqqq q q q0q6q6qHqRqXqfqpq§qªq¯q½q×qÜqÜqÜqäqéqòq÷q÷qr
-rrrrr#r)r?rDrDrJrXrmrrrrrxrŠr“r›r£r¨r¨r®rÀrÌrÝrêrñrùrss s2s2s2s7s7s7sGsGsGsGsKsPsPs[s_sdspsvs{s„s›s£s¨s²s²sºsÀsÒsÝsâsèsðsõsõsõsõsõsõsõsõsõsõstt%t/t7t>'>.>6>;>B>J>O>O>W>\>\>\>\>b>e>g>g>g>†>’>£>¥>«>®>®>¹>¹>Â>Õ>Ü>ë>ô>ü>þ>þ>þ>???"?*?1?5?@?K?^?d?i?o?t?{?ƒ?ƒ?œ?¡?¡?´?¼?¾?¾?¾?¾?¾?¾?Ã?Ã?Ê?Ê?Ó?Ó?×?Þ?â?õ?ý?ý?ý?ý?ÿ?ÿ?@@@@9@B@F@VP­(³àYàYZZZZZ(Z4Z[>[G[V[c[e[e[q[w[|[|[|[~[€[€[‡[‡[‡[�[Ÿ[­[¯[¯[»[Á[Æ[Æ[Ì[Ø[Ø[ã[ï[ï[ü[\\ \ \0\0\9\<\_®¸y�œPœP¹PÀPÏPÒPÖPÞPâPæPëPøPQQQQ%Q1Q¯ø%A°5°5È5×5á5î5õ5ù5666@6@6V6g6n6|6|6Ž6¤6¤6·6Ì6Ô6×6ã6°xâîÈSÈSÔSÛSúSTTT&T0T8T±xÖâ@S@SLSSSrSrS‰S�S�SœS¦SÂS²ðMh … …2…>…I…c…c…f…u…{…{…ˆ…Š…�…�…�…Ÿ…¥…¯…¶…»…½…Ç…³ˆhvÈ…È…Ñ…×…ò…÷…"†$†A†g†n††’†´ÀuŠ�8�8™8 8´8½8Â8à8å899#9%969J9S9U9i9s9¡9µ˜v†˜†˜†¬†Ã†È†á†æ†ÿ†‡‡)‡)‡1‡8‡k‡¶¸Uix7x7†7�7�7›7¢7±7¼7È7Ì7Ú7Ú7í7ù7888·Pmt\P\PfPoP}PƒP¸˜'WXUXUtUxU¹UÉUÏUéUVVVV!V!V(V3V>VKVTVTVYV^VeVpVpV}VVŒVŽV�V’V’V’VšVšVšV¢VªV²VºV¾VÈVW¹¸¸T¸TÊTÊTÎTÓTæTéTîTîTøTþTþTUUUº�'UU(U,U1U1U&>&H&W&[&^&d&¾ð˜³YYY Y$Y-Y9YEYEYXYXY…Y‰YŽYšYšY®Y¸Y»YÆYÉYÑYÛY¿pîù8T8THTLTQT[TfTiTmTuTÀpùxTxTˆTŒT‘T›T¥T¨T¬T´TÁP &è1ò12222Â@ Ð1Ú1â1ç1Ã#OOO'O=O=OBOJOROZObOhOuOuOzOOO„O‰O‰OŽO“O“O˜O�O�O¢O§O§O¬O±O±O¶O»O»OÀOÅOÅOÊOÏOÏOèOûOPPPP+P+P1P9P>PDPLPLPRPZP_PePmPmPsP{P€P†PŽPŽP”PœP¡P§P¯P¯PµP»PÃPÈPÎPÖPÖPÜPâPêPïPõPýPýPQ	QQQQ$Q$Q$Q5Q=QEQMQUQ]QeQkQkQ‚Q’Q£Q¨Q¯Q¯QÀQÆQÌQÌQÐQÝQèQðQøQüQR	RRR$R(R-R8R>RPR\RaRiRmRxR€RˆRŒR‘R™R¤R¬R´R¸R½RÈRÍRâRîRóRøRûRaUÄ âƒ¨H¨H¾HÇHÝHÝHâHêHòHúHIIIII I I$I)I)I.I3I3I8I=I=IBIGIGILIQIQIVI[I[I`IeIeIjIoIoIˆI›I I¥I¥I®IËIËIÑIÙIÞIäIìIìIòIúIÿIJ
J
JJJ J&J.J.J4JÇCÇOÇXÇ`ÇhÇnÇnÇsÇxDŽnjǒǔǜÇÎX (ÀCÀCÊCÑCÙCÞCäCÏp@K�D�D™D™D™D§D®D¸D»DÀDÐpKVÀDÀDÉDÉDÉD×DÞDòDõDúDÑhV`EE	E	EEEE1E4E9EÒ@,1è�è�ö�ü�‘ÓPæAæAôABBBVBÔ@p1y1�1†1Õ@X1a1i1n1Ö0/;VV#V+V>V>VJV\VfVfVrV„V„V™V¤V¬V´V·VÅVÜVÜVôVöVöVW
WW!W!W0W8Wm]memhmnmtmtm‡m”m m¨m«m²m¸m½mÙmëmómnnn n&n=nEnEnnnŽn–n™n n¦n¦n¦n¦n¦n¸nÁnÖnÛnñnoooo o*o6o;o@o@oRoWo\ojoxo…o‘o™oœo£o©o®oÊoÜoäoüopppp+p3p3pYpvp~p�pˆpŽpŽpŽp¡p®pºpÂpÅpÌpÒp×pópqq,q4q7q>qDq[qgqgq�q°q¸q»qÂqÈqÈqÈqÈqÈqÚqãqøqýqr#r#r(r(r?rUrZrhrsrxrŠr“r¨r­rÃrÓrÓrÓrçr÷rürürs)s.s€>€>€>€C€H€H€Q€_€m€r€�€Œ€—€�€�€¤€¤€¹€€€É€É€Þ€ç€ú€�
�� �+�1�1�8�8�M�V�V�]�]�r�{�†�š�¥�°�³�¹�¹�¼�Ã�Ã�Ñ�ß�â�ç�ô�û�‚‚‚‚‚‚*‚-‚2‚?‚F‚O‚O‚T‚T‚]‚k‚y‚~‚�‚˜‚£‚©‚©‚°‚°‚Å‚΂΂Õ‚Õ‚ê‚󂃃ƒ!ƒ,ƒ7ƒ=ƒ=ƒDƒDƒYƒbƒbƒiƒiƒ~ƒ‡ƒ’ƒ¦ƒ¬ƒ·ƒƒŃŃȃσσ݃ëƒîƒóƒ„„„„„„„,„:„=„B„S„Z„c„c„h„h„q„�„›„ „²„½„È„΄΄Õ„Õ„ê„ó„ó„ú„ú„……………………………………1…6…6…6…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…J…J…J…J…O…O…O…O…O…O…O…T…Y…Y…m…p…w…�…‡…Œ…‘…‘…¨…­…­…½…È…ã…ø…†††%†0†K†a†i†p†ƒ†ކ™†·†»†ɆÔ†߆ú†‡‡ ‡ ‡ ‡ ‡ ‡ ‡ ‡ ‡ ‡ ‡ ‡ ‡ ‡ ‡$‡$‡6‡F‡Z‡Z‡ƒ‡ƒ‡ˆ‡ˆ‡�‡�‡©‡·‡Ö‡Û‡ç‡ô‡ô‡ˆ ˆ-ˆ:ˆCˆRˆ\ˆ\ˆkˆkˆkˆ{ˆ�ˆ�ˆ£ˆÏ�×è1k‘‘‘)‘<‘?‘H‘`‘v‘…‘�‘›‘Ÿ‘±‘´‘¼‘őё葒ú‘1’E’V’f’|’|’ž’°’Á’Ã’Ã’Î’“““
“““““(“=“H“S“[“c“g“~“~“–“›“›“«“³“Ä“Γß“é“ù“”
-”
-””"”3”=”N”X”h”t”y”y”y”�”›”¥”ª”·”ÔÔȔӔâ”ç”ì”ñ”ñ”ö”•••••••••••• • •$•*•*•*•*•*•*•/•/•>•P•\•i•u•ˆ•�•••ž•ž•¹•͕ޕë•ð•––0–=–E–X–`–e–n–w–w–|–|–|–|–|–ˆ–ˆ–ˆ–�–­––Ê–å–ö–—————————————-—;—@—@—K—Y—^—v—‚—‚—”— —¥—´—¸—Á—É—æ—ò—÷—ý—˜˜ ˜4˜E˜R˜T˜b˜b˜g˜g˜r˜€˜…˜—˜£˜¯˜´˜¸˜Á˜ƘƘƘƘƘƘߘߘߘߘߘߘߘä˜ä˜ä˜ä˜ä˜ä˜ù˜ù˜ù˜ù˜ù˜ù˜ù˜ù˜ù˜ù˜™™7™?™Z™k™x™z™Ž™š™Ÿ™Ÿ™Ÿ™¨™Æ™Ò™ý™	š	šššššššššš'š'š'š'š'š'š'š'š'š'š'š'š'š'š'š'š'š'š'š'š'š'š'š'š'š'š'š'š'š'š'š'š'š'š'š'š'š'š'š'š'š'š'š'š'š'š'š'š'š'š'š'š'š'š'š'š'š'š'š'š'š'š'š'š'š'š'š'š'š'š'š'š'š'š'š'š'š'š,š,š,š=šHšMšMšMšmš¦š¯š³š¸š½šÆšÌšÑšÑšÑšÑšãš÷š› ›%›*›/›/›A›U›{›†›Ž›“›“›˜›˜›ª›¾›à›ë›ð›õ›ú›ú›œ œFœQœYœ^œ^œcœcœcœkœˆœ¥œ±œÌœÝœêœìœûœýœýœýœýœýœýœ���������������������������!�0�;�;�;�;�;�;�;�;�;�;�;�;�;�;�@�@�T�V�V�^�^�e�w�¤�¶�Â�Ø�ò�õ�ÿ�ž9žYž}ž‚ž•žŸžäžäžçž÷žŸŸ%Ÿ3Ÿ?ŸWŸWŸƒŸ†Ÿ•Ÿ©ŸÊŸÛŸ ýŸéŸ! 3 3 6 ; > X f ˜ º º æ é ø ¡-¡>¡`¡L¡|¡|¡|¡¡„¡„¡‹¡/©ØX«Ó@¯@¯V¯k¯r¯r¯~¯~¯‰¯‰¯š¯ª¯µ¯ů˯Яددæ¯ó¯°°°°°&°&°>°@°@°P°\°\°k°s°s°‚°ааа’°’°’°–°ž°£°¨°¨°¬°´°¸°½°½°½°½°½°½°½°½°½°½°½°½°½°½°°°ΰç°÷°±±± ± ±%±%±/±;±T±d±m±u±z±�±’±š± ± ±¥±¯±½±é±ô±ô±²²²²)²/²5²:²:²:²:²:²:²:²:²:²H²T²e²u²z²‚²•²š²¢²§²¯²´²´²´²¼²IJͲÕ²Ú²â²ç²ñ²ÿ²+³6³>³>³P³Z³f³l³q³w³|³|³†³Ÿ³©³³ͳÕ³ê³ì³û³´´´4´<´C´H´L´P´_´r´Œ´›´£´¸´¸´Ä´É´Õ´à´å´å´	µ&µ+µ5µJµUµ]µrµwµ†µ޵£µ¨µ¶µеßµçµüµüµ¶
¶¶$¶)¶)¶)¶)¶)¶)¶)¶)¶)¶)¶)¶)¶)¶)¶)¶)¶)¶)¶)¶)¶)¶)¶)¶)¶)¶)¶.¶.¶.¶6¶6¶6¶6¶6¶6¶6¶6¶6¶6¶6¶6¶D¶d¶‰¶™¶ž¶¦¶¹¶¾¶ƶζÓ¶Û¶î¶ô¶ü¶··&·.·7·?·G·L·Q·[·i·•· ·¨·¨·º·Ä·×·Ý·â·ê·ê·ê·ê·ê·ê·ê·ê·ê·ê·ê·ê·ê·ê·ê·ê·ê·ê·ê·ê·ê·ê·ê·ê·ê·ê·ê·ê·ê·ê·ê·ê·ê·ê·ê·ï·ï·ï·ü·¸¸¸¸¸+¸-¸<¸J¸L¸L¸W¸\¸q¸q¸q¸q¸q¸q¸q¸q¸q¸q¸q¸q¸q¸q¸q¸q¸q¸q¸q¸q¸q¸q¸q¸q¸q¸q¸q¸q¸q¸q¸q¸q¸q¸q¸q¸q¸q¸q¸q¸q¸q¸q¸q¸q¸q¸q¸q¸q¸q¸q¸q¸q¸q¸q¸q¸q¸q¸q¸v¸v¸v¸v¸v¸v¸v¸v¸v¸v¸v¸v¸v¸v¸v¸v¸v¸v¸v¸v¸v¸v¸�¸�¸›¸»¸θθظ⸹
-¹
¹¹¹$¹1¹1¹6¹6¹Q¹b¹e¹h¹p¹u¹u¹~¹ƒ¹‹¹’¹Ÿ¹²¹¸¹¿¹Ĺ޹蹺 º(º5ºHºNºUºUºZºZºZºZºZºZºZºZºZºZºZºZºZºZºZºeºpº~º�º•º•º ºªº»ºÀºÀºǺ̺̺àºàºåºåºåºûº»»0»6»>»S»Z»b»b»d»d»n»n»y»»�»Ÿ»Ÿ»¦»]ÂÙàz`Â`Âr€€‹‹œ±¼ÂÃÂÔÂçÂíÂíÂíÂüÂÃÃ&Ã0Ã3Ã?ÃHÃRÃUÃZÃZÃpÃzÃzÒÙåúÃÁÃÊÃÖÃëÃòÃòÃòÃÄÄÄÄ)Ä3Ä6ÄHÄHÄMÄRÄbÄeÄjÄzÄ}Ä�ĊĒĤĬĬĬÄÂÄÌÄÌÄäÄëÄ÷ÄÅÅÅ.Å5ÅDÅUÅUÅ\Å\Å\ÅjÅxłŅœÅ�ŠŲŲŷżÅÌÅÏÅÔÅäÅçÅëÅôÅüÅÆÆÆ"Æ0Æ0Æ7Æ^ÆÚpƒîøÊøÊËË%Ë5Ë8Ë8ËKËKËYËaËiËvËvË}Ë}ˎ˞˩˭˷ËÃËËËÖËâËÌÌÌÌÌÌ Ì5ÌAÌVÌYÌYÌgÌr̴̨̨̜̀̎ÌÉÌ×ÌèÌøÌÍÍ Í(Í(ÍPÍSÍYÍ^Í^ÍgÍz͈̀͛ͩͩ͡ÍÀÍÌÍÙÍìÍòÍúÍ
ÎÎÎÎÎDÎDÎIÎeÎhÎoÎΈΓΨγνÎÊÎãÎ÷Î÷Î;ÏÛ "ƒ Ç ÇÂÇÔÇØÇØÇãÇãÇêÇûÇ
ÈÈÈÈÈ%È*È2È2È@ÈYÈ[ÈbÈ{ȎȜȤȦȴÈÂÈÂÈÊÈÓÈÞÈæÈñÈûÈÉÉÉÉ/ÉAÉDÉIÉ\É\ÉuɉɑɑɣɦɫɾɾÉ×ÉëÉóÉóÉÿÉÊÊ Ê3Ê:ÊOÊhÊjÊÊ˜Ê Ê Ê«Ê¹ÊÆÊËÊËÊÒÊÝÊôÊÜ'Þ@Ï@ÏZÏmÏ{τϦϰϾϾÏÛÏèÏèÏòÏòÏüÏÐÐÐ%Ð%Ð,Ð6Ð<ÐBÐIÐ^ÐiЄЊÐ�Ð�ТЧвнÐ×ÐáÐéÐÑÑ5ÑEÑJÑPÑVÑaÑnÑuіњѠѨѭѶÑ×ÑÛÑáÑéÑîÑîÑûÑÒÒ	Ò)Ò-Ò3Ò;Ò@ÒaÒeÒkÒsÒƒÒžÒŠÒªÒ®Ò´Ò¼ÒÁÒâÒæÒìÒôÒôÒùÒÓ
Ó.Ó2Ó8Ó@ÓIÓjÓnÓtÓ|Ó|Ó‰Ó�Ó±ÓµÓ»ÓÃÓÌÓíÓñÓ÷ÓÿÓÿÓÿÓÔÔÔ Ô)ÔEÔQÔbÔgÔxԌԌԬԱԶԶÔÁÔÉÔÑÔÚÔöÔÕÕ!Õ;Õ;Õ[Õ`ÕeÕeÕpÕxÕ�Õ˜Õ¥Õ°ÕÊÕÜÕîÕÖùÕÖÖ#Ö#Ö#Ö'Ö'Ö@ÖIÖIÖlÖqÖvÖvÖ~Ö’Ö›Ö´ÖÀÖËÖËÖßÖíÖöÖûÖ×××
××××%×0×5×5×=×[×E×s×x×x×€×ž×ˆ×¶×»×»×Æ×Ü×õ×ØØØ(Ø<Ø<Ø\ØaØfØzØfؒؗؗؤةةرضضØÂØÓØåØêØêØþØêØÙÙÙ#Ù(Ù(Ù;Ù@Ù@ÙSÙXÙXÙXÙrقههه١ٱٶٶٶÙÐÙàÙåÙåÙåÙÿÙÚÚ+ÚÚCÚHÚHÚSÚXÚ”Ú‚ÚXÚ¬Ú±ÚíÚÛÚ±ÚÛ
-Û
-Û
-ÛÛ)Û.Û.Û.Û=ÛMÛRÛRÛRÛaÛoÛtۜۊÛtÛ´Û¹ÛáÛÏÛ¹ÛùÛþÛ&ÜÜþÛ>ÜCÜCÜCÜ`ÜJ܊ܚܟܟܟܾܪÜèÜøÜýÜýÜ	ÝÝÝÝ Ý Ý Ý2ÝBÝGÝGÝGÝZÝjÝoÝoÝo݂ݒݗݗݗݪݺݿݿÝÇÝÌÝÌÝÔÝÙÝÙÝáÝæÝæÝîÝóÝóÝÞÞÞÞ#ÞqÞ_ÞMÞ#Þ~ÞƒÞÑÞ¿Þ­ÞƒÞÞÞãÞãÞãÞòÞ
ßßßß#ß>ßCßCßCßTßbßgßgßoßtßtß|ß�ß�߉ߎߎߎßÊ߸ߙßéßà	à	à	àEà3ààdàà„à¶à¤à„àÎàÓàáóàÓàá"á<á"áTáYáváYáŽá“á“á“á³á¸áÎáÆáÚáêá÷á	â,â1âHâNâgâtâ­âïâÌâûâããããããã%ãJãUã_ãjãlãwãã„ã‰ã‰ã”ãœã¥ã°ãÀãØãðãä	äää)ä4ä>äCäNäXä]ä]ähä{ä…ä�ä±ä½äÎäÓäääèäíäòäòäå
ååå)å6åAå[åmååŠå�åšå«å´å¿åÌå×åñåææææ æ æ*æ/æ/æ:æ?æ?æJæOæOæZæ_æ_æyæ~æ~æ†æ‹æ‹æ–æ›æ›æ¦æ«æ«æ¶æ»æÏæ»æÛæææëæÿæëæçççç&ç+ç+ç6çDçIçIçTç_çdçdçuçzçzç‹ç�ç�çªçµçºçÂçºçÎçÓçççÓçóçøçèøçèè%èè1è1è6è6èJè6èVèVè[ègè[èè„è„è�è„è¨è­è­è¹è­èÑèÖèÖèâèÖèúèÿèéÿè é+é6éAéFéZéFéféré}éˆé�é¡é�é­é¾éÃéÃéËéÐéÐéØéÝéÝéæéëéëéôéùéùéêêêêêê"ê'ê'ê2ê7ê7êBêGêGêRêWêWêbêgêgêrêwê‹êwê—ê¢ê­ê¸ê½ê½êÇêÌêÌêÖêÛêÛêåêêêêêôêùêùêëëëëëë%ë*ë*ë*ë*ë*ë2ë7ë7ë?ëDëDëLëQëQëYë^ë^ëfëkëëkë‹ëœë¡ë¡ë·ëÂëÂëæëëëìì%ìì1ì<ìGìLìLìbìmìmì‘ì–ì¬ì·ìÐì¼ìÜìçìòì÷ì÷ì
ííí<íAíWíbí{ígí‡í’í�í¢í¢íÌí¸íØíØíüíîî"î'îFî2îfîRîrî‹îwî«î—î·îÂîÇîÇîñîÝîýîýî!ï&ï<ïGïLïkïWï‹ïwï—ï°ïœïÐï¼ïÜïçïìïìïðð"ð"ðFðKðaðlðqð�ð|ð°ðœð¼ðÕðÁðõðáðññññ ñ%ñ%ñ4ñ9ñ9ñJñOñTñTñeñjñoñoñ‚ñ‘ñ–ñ›ñ›ñ®ñ½ñÂñÇñÇñéñîñóñóñòò ò òAòFòKòKòmòròwòwòwò™òÀòÅòÊòÊòìòñòöòöòöòó?óDóIóIókópóuóuóuó—ó¾óÃóÈóÈóêóïóôóôóôóô=ôBôGôGôiônôsôsôŽô“ô˜ô˜ô˜ô³ô¸ô½ô½ô½ôØôÝôâôâôâôýôõõõ"õ'õ,õ,õ,õGõLõQõQõQõlõqõvõvõvõ‘õ–õ›õ›õ¬õ±õ¶õ¶õÇõÌõÑõÑõÞõðõö1ö1ö1öFöKöWöeö„ö�ö´öØöêöõö
-÷÷ ÷ ÷*÷/÷/÷;÷T÷]÷„÷‹÷™÷ž÷¯÷Ä÷É÷Ú÷å÷í÷ò÷÷÷÷÷û÷ÿ÷øø ø$ø)ø)ø4ø>ø>ø>ø>øCøCøCøMøMøRøRø\ø\øiø‰øŽøŽø˜ø˜ø˜ø�ø�ø¤ø¤ø±ø¼øÊøÕøàøëøöøûø$ùù<ùLùuùmù�ù�ù�ù™ù¢ù¨ù¶ù¶ùÌùÙùëùôùüùúúúú8úBúWúuúuúuú¥ú¯ú¯úÈúÍúéúþúûû0û7û<ûBûHûOûTû[ûdûzûzû~û~û™û û¥û¥û©û²û¿ûÑûæûþû
-üü ü1üPülüƒü†ü‹ü–ü›ü›üŸüŸüÂüÍüÍüÐüâüâüý7ý7ý7ýÝX08DDDD&D5DDDIDÞX8@PDPD^DcDgDvD…D‹D߀
-àBàBòBCCC C C-C>CCCMCà@¸1Â1Ê1Ï1áP¾à¾àÇàÔàåàòàòàáâH[�ž0ž0´0º0Á0É0Ñ0Ô0ß0ó0ú0ý0ÿ01111%1;1>1L1O1R1Y1]1e1s1s1‡1�1•1Ò1〻HÀ²À²Ò²Ü²ä²ì²ô²ü²³³³%³>³A³T³T³\³e³k³p³p³x³�³‡³Œ³Œ³”³�³£³¨³¨³°³¹³¿³Ä³Ä³Í³Ù³Ý³â³è³í³í³õ³þ³´	´	´#´9´9´9´A´C´C´C´K´M´M´M´U´W´W´W´_´a´a´n´n´t´y´€´‹´‹´›´›´›´¢´­´­´½´½´È´Ì´Ò´ê´ø´µµ4µ7µ>µPµXµaµlµlµwµ}µ‚µ‰µ”µ™µ µ«µ·µ½µ½µÔµÜµâµâµ¶¶¶¶"¶-¶-¶2¶F¶K¶Q¶S¶S¶Z¶e¶e¶r¶r¶r¶r¶7·äðÇî×î×ØØØ Ø*Ø/ØOØOØcØkØƒØ‰Ø§Ø»ØÆØÌØåØåØõØõØÙÙÙÙ%Ù-Ù5ÙCÙIÙOÙ[Ù[Ù]ÙqÙ|Ù�Ù�Ù�ٚٚٺٺÙÏÙÜÙáÙáÙáÙúÙÚÚ0Ú>ÚKÚ[ÚhÚhÚuÚÚ‹Ú˜ÚšÚšÚ¢Ú§Ú§Ú¯Ú´Ú´Ú¼ÚÁÚÁÚÉÚÎÚÎÚÕÚÚÚÚÚáÚæÚæÚñÚöÚöÚÛÛÛÛÛÛ#Û#Û8Û?ÛEÛHÛOÛRÛ]ÛdÛgÛgÛ{Û}ÛƒÛŽÛŽÛŽÛ˜Û±ÛÆÛÖÛçÛíÛÜÜÜÜ(Ü9ÜHÜNÜ_ÜlÜv܅ܒܘܣܩܾÜÄÜÕÜâÜèÜúÜúÜÝÝ Ý+Ý3Ý;ÝCÝJÝPÝaÝnÝsÝ�Ý�ݧݵݼÝÌÝÖÝÜÝäÝêÝõÝûÝÞ
Þ Þ Þ Þ*Þ>Þ·àå0˜»x±x±†±†±š±ž±¦±®±¹±Ä±Ì±×±â±ç±ç±²²²²%²'²2²=²N²P²\²g²r²{²ƒ²ƒ²‡²½²æ(=fDfD†D†D�D¢DªD²DºD¿DÓDâDëDòDøDýDE!E+E-E/E?E?EAE]EgEiEkE{E{E{E€EˆE�E˜E�E±EÀEÂEËEÔEÝEÝEéEðE÷EF!F)F6F%>%E%L%P%X%\%\%c%j%n%v%z%}%�%èØ6NXX6X6XAXLXYXgXmX€X†X™XŸX«X¿X¿XÓXãXñX÷X
-YYqYé �¢Ö1Ö1î1ö1ý12
22(20252@2@2J2P2[2k2s2ƒ2Š2’2š2¢2§2²2²2À2À2Ö2ê@Tyðð
-ðððð+ð-ð=ðHðZðeðpð—ð—ð§ðºðÌðÞðâðïðïðïðùðñññ,ñ=ñYñ^ñxñë	4Tââ(â0â6â>â@â@âLâLâLâTâ\ânânâ“â•â•â°â²â²â½âÂâÝâââââââââ÷âùâùâãããã$ã,ã4ã;ãJãJãXãZãnã{ã{ã{ã„ã–ã©ã¯ã·ã¹ãÆãÆãÛãÛãÛãæãðãä
ä
ä
ä
ä#ä)ä.ä6äAäSä^äcäcäjänä€ä‡ä”ä›ä¬ä²ä¹äÂäÂäÞäãäãäãäãäëäöäöäåå å å å&å4åCåVåiåkåkåkå~å~å…åŒå‘å—å—å©å³åÎå÷åýåýåææ(æ/æ;æLæ]æjæpætætætætææ‰æ‰æ—æ¹æ¹æÅæâæìæìæïæ
-ç
-ççç.çAçTçgçgçlçlçwç~çŒç›ç®çÁçÌçÌçÑçÑçÑçäçæçæçæçíçèèèè&è-è9èLèbèŠè–è©è¶èºèÕèèèñèøèéé+é2é2é7é7é7é?éJé\égélélélélé‚é¯éµéµéµéÀéÊéÍéÔéëéëéðéðé
ê ê3êFêKêKêiêwêŠê�ê¨ê¨ê­ê­ê­êÀêÅêÅêÅêÌêßêòêòêòêëëë(ë>ëGëNëYënë�ëˆëˆë�ë�ë’ë’ë¦ë¦ëðìHNtvYvY�Y�Y¤YªY¸Y¸YÃYÑYÝYñYüYZZ Z&Z,Z2Z2ZGZUZ[ZdZjZjZ~Z„Z‘Z™Z§Z´Z[í@ÆöHöHII-I2IGINITI\IbIpI~I…I”I™I¦I½IÊIÝIäI÷IJ
-JJ#J(J>JGJVJ^JkJtJvJ�J§J¬J·JÉJÔJÝJãJîJòJûJKFK(K[K�KrK¥K¨K¸KULîèÈ¢ÖôÖôðôöôÿô	õ!õ3õ<õBõEõIõKõcõuõ‚õˆõŒõ’õ”õ—õ›õ›õÁõÅõËõËõÒõÒõôõ	öö/ö5ö<öGöQöUöXö_öeöiöoö€ö†ö‹ö�ö�ö�öŸö³öµö¼ö¼öÉöËößößößößößö÷÷÷(÷E÷i÷ƒ÷ˆ÷Ÿ÷¤÷²÷Æ÷Ë÷Ñ÷ß÷ê÷ô÷ÿ÷øø ø,øDøSøXøcøxø}ø}ø}ø‹ø‘ø”ø—ø¨øÀøÒøÕøêøðøùùù ù+ù+ù0ù0ù=ùLùLùRù`ùtù‚ùˆù‹ùŽù•ù¥ù°ù°ùµùµùÂùÑùÑù×ùåùùùú
úúúúú!ú(ú(ú5úDúDúKúUú\úbúiútútúˆúˆú¢ú§ú®ú¶úÀúÏúÓúßú÷úüúüú%û8û?ûKûKûdû{û{û™û›û³ûÙûäûüü@üEüEüOüqüqüqüŠü–ü¤ü¼üÀüˆýïPÆÎFÎFîFõFþFG G G)G+G;G;G=GWGaGcGeGuGuGuGuGyG‚GŠG”GžG¢G¢G´GÇGÐGÐGßGßGîGîGýGHHH*H*H,H6H?HHHOHUHiHpHwH~HŒH•H¸HÁHÅHÊHÏHÒHÜHßHïHð8-Q†%†%Œ% %£%«%²%¶%º%º%Á%È%Ì%Ô%Ø%Ø%ß%æ%ê%ò%ö%ö%ý%&&&&&&"&&&.&2&5&9&ñ`-6¦.¦.º./ÿ.Ç.Å."/*/òØVLVLlLwLwLwL¤L¤L²L²L²LÂLËLÒLÙLâLâLêLîLMM%M+M+M6MOMOMbMmMuM~MƒMƒM–M¡MªMµMºMºMÊMÏMÏMÏMÏMäMéMüMN	NN2N2N7N7NGNLNLNQNXN`NgNiNqNxNxN‡N�NšN¡N¤N½N½NÅNÔNßNæNèNüNOOOOOOO-O2OAOHOOOdOxOxO}O}O…O”O›O O´O»OÀOÀOÌOÞOÞOòOPPP'P5PCPKPRPpP}P‚P‘P‘P¨P¯P¶PÆPÈPÖPæPèPöPQQQ1Q8QDQVQmQoQ{Q†QˆQˆQ–QªQºQÂQÄQØQíQôQRR2R9RERgRgRgRoRoR{RR‡R‹R–R�R¤R¾RÃRÊRÕRÞRæRëRëRúRÿRS"S1Sá>áGá[á`áø@žážá§áÆáËáùØ4ÎáÎáØáâáëáöáýáââ
âú@
áá$á8á>áû@fáfátá“á™áü˜y©~ñ~ñŽñŽñ¥ñ´ñ¸ñÆñÌñÛñÛñâñòñÿñò
ò òJòPòUòYòiòiòiò�òƒòŽò¯ò¼ò¾ò×òÛòéòîòîòõòó	óó…óý8]Áþdþdeee"e%e)e.e5e5eBeKeQeXeXeqeze�e‡e“eŸe¨e¯eµeºeÈeÛeæeîeúeúeffffff*f-f2f2f8fDfGfLfLfRf^faffffflfzf}f‚f‚fˆf–f™fžfžf¤f«f»fÂfÅfÊfÊfÊfÜfâfðfõfýfgg*g2g8gDg]ghgug{gŠg�g“g˜g˜g˜gªg°g°g°gÇgÏg×gõgh
hh"h+h.h4h9h9h9hKhQh[hthhŒh’h¡h¤hªh¯h¯h¯hÁhÇhÇhÞhåhñh÷hiii&i+i;iHiViXi^ikinitiyiyiyi‹i‘iªiµiÂiÂiÈiÕiØiÞiãiãièiüijjj0j6jlClClIlIl`lrl}l…l�l’l l¦l«l«l±l·l¼l¼lÂlÑlålòlølûlmmmm)m6m5E5S5_5j5j5s5z5‰5š5§5§5§5»5Ï5ß5â5r6ð6ÑÆÆèï,,,688CCq‚‚‚‚‘ µÂÂÑØëñ7=HXjsz‡Ž³¸ÆÏÏÖÖåüü'18=HNV|…Œ”Ÿ«ºÊÏ×ãññ"22FLUUUdj~‡™¨½ÆØëö	*=AMa}}‘—¢®¾ÎÓÜÜîòþ..BHS_o‘———¦¬±···ÆÌÑ××Û¡#¸¢6ŽýŽý¨ý³ý¾ýÛýÛýÛýÛýèýèýþþ!þ*þ*þ*þ7þ?þWþ]þfþfþfþsþ�þ�þªþ¹þÄþÉþÒþÒþÒþßþãþëþóþÿþÿ+ÿ6ÿ;ÿAÿJÿJÿJÿJÿWÿlÿrÿ{ÿ{ÿ¨ÿµÿºÿºÿÇÿÒÿÜÿâÿòÿ,2Zccxƒƒ•¡§Ä×ãçù5CCCPlW}t‡‰¥‘­­»»½ÙÙàæï÷ú1$9?HHH[``kx�ˆˆ• ¦¯¯½ÇÇÔßåêóýý
- )44AHOOr’””±ÆÆÌÕââõõ .7<clw|„Œœ±¶ÁÎÕÕí	;BGUessy€‰‰‰œœ°³³ÄÌÔÜù.3;;PZo‹‹‹˜˜®ººÎÛæôÿÿ0CH`uzz‰žž¤­­¹¹ÆÌßëëøû$/4@LY^^x}}œ´´´¹ÅÌàî				!	&	G	P	\	b	k	k	k	„	š	š	š	§	­	°	»	Á	Ä	Ì	Û	Û	ó	ù	
-
-
-
-
-
-%
-+
-.
+O
+U
+Z
+a
+v
+}
+‚
+–
+Ê
+Ï
+Ö
+Ý
+ä
+é
+é
+ð
+ö
+û
+û
+<BGfmmmru|ƒŠ��–œ¡¡´ÏÏÝòøú"'+-0;GJLPPUUfx�@·¼ŽŽœ±·Ž848ð/ô/û/ý/�È›±`‹`‹|‹‹‹”‹�‹¡‹¥‹²‹º‹¿‹¿‹Ð‹Ô‹Û‹Û‹ë‹ŒŒŒ� ÄÕ Œ Œ®Œ»ŒÉŒÛŒæŒôŒ��!�,�:�@�F�‘È;q‘‘6‘B‘L‘T‘^‘f‘p‘€‘Б𑤑ª‘´‘¼‘ƑБç‘ç‘ê‘ô‘’’ ’-’2’2’F’Y’c’y’y’€’†’“’›’©’¹’É’Ù’å’å’ñ’ñ’ù’6“’h+¸Ž¸ŽÆŽÈŽ×ŽÞŽîŽñŽ��	�
���7�E�G�G�P�R�R�[�]�]�f�h�h�q�q�z�€�ƒ���£�©�·�·�[�“Èëð�ð�ü�ŽŽŽŽ+Ž>ŽJŽaŽnŽnŽqŽŽ�Ž¦ŽªŽ²Ž”€Þë � �°�·�Ã�É�Ô�Þ�Þ�á�å�í�•˜+;`�`�u��„�•�ª�°�²�¿�Ð�Ð�Ð�×�‘–X“›(‹(‹2‹<‹G‹R‹X‹^‹—`ÕÞH�H�X�d�r�v�Ž�‘�™�˜@¿Ä€Œ€Œ‰Œ•ŒšŒ™P¸¿PŒPŒZŒaŒqŒtŒzŒšP±¸ŒŒ"Œ.Œ>ŒEŒKŒ›h‰“ðŠðŠúŠ‹‹‹‹‹‹#‹œ@+0À/Ê/Ò/×/�0 \ \¶\Å\Å\Å\Ö\Ö\å\å\ë\í\í\ó\õ\õ\û\ý\ý\]]
]
]
]
]
]
]]*]*]4]9]B]L]Y]n]p]‹]�]¨]­]È]Í]Ó]Ó]è]ë]ë]^ ^7^7^W^W^`^e^…^s^‹^š^Ÿ^¦^¯^Â^Ê^Ò^×^×^×^à^ù^ÿ^ÿ^_&_&_@_V_X_`_f_n_s_s_y_y_‚_‚_“_•_ª_¬_´_º_Â_Ç_Ç_Í_Í_Ö_å_ù_û_`	``````$`8`:`N`N`V`\`d`i`r`z`ƒ`‰`�`‘`‘`‘`™`™`§`»`¿`Á`Í`Ï`ê`ð`ø`ý`aaaa a)a,a,a:aHaJaJamaŠa�a˜a�a¦a¨a¨a­a¯a·a·aÒaäaéaõaûaþabbb*b.b5b>bMb[babibnbvb{b{b„b‘b–bžbžbµb¿bÞbÞbäbébébïbôbôbúbÿbÿbc
+c
+ccccc c c&c+c+c+c3c3cLcZcZctcŠcŠcŒcŒc•c›c c c c¨c¨c±cÀcÓcÕcÕcÞcäcécécécñcócócücücücdd(d*d*d3d9d;d;dAdGdGdOdXd^d^djdjdqd…d‡dŠd�d—dŸd¤d¤d«d¯d´dÃdÈdÒdÜdÜdédee
ee,e8e?eMe\epeve{e{e€e“eŸe§e¯e·e¿eÈeÖeÖeÝeßeèeèeîeüeff.fBfHfJf]fbfbfff‘f—f f¦f¯f½fÂfÂfÕfÛfÝfèfúf
g
g!g-g?gDgPgVgYgpgrgug…g�g’g’g¡g´gÆgËg×gÝgàg÷gùgüghhhh2hBhBhGhLhLhSh[h`h`hfhfhthzh€hŠh”h·hºh¼hÆhÆhÈhÐhÕhÚhßhßhæhîhóhóhøhii
iii:iOJORO]OcOfOpO¢ˆ˜¦¬7¬7Â7É7Ò7Þ7ó7û788	8	88£ ‚“p‚p‚~‚Œ‚—‚ž‚´‚¹‚Ö‚Ü‚ã‚ê‚ø‚ƒ6ƒ¤p¼Ç¾¾ÊÖÛäêîù¥¨¥·öö"(9GUims�„ަà0I``z~‚Š”—š©­±¹ÂÎÎãôû€€€€!€§X¦n880888>8C8C8C8Y8`8b8u8u8u8|8‡8‹8�8’8›8ž8¢8¯8¯8¯8å8ñ899(9-93969;9;9S9Z9g9n9�9‰9‰9š9¢9§9§9¿9Ë9Ë9Ü9ä9é9é9::: :':,:,:D:P:Y:a:i:u:‹:–:¹:½:Ë:Ó:Ø:Ø:ð:ð:
+;; ;(;-;-;E;E;_;i;u;};‚;‚;¡;­;¾;Ã;Û;ç;î;ö;û;<
+<<<<<<<<"<%<'<'<'<F<R<c<e<k<n<n<w<w<€<“<š<©<²<º<º<º<Á<Í<Ö<Þ<æ<í<ñ<ü<== =%=+=0=7=?=?=X=]=]=p=x=z=z=z=z=z=z===†=†=�=�=“=š=ž=±=¹=¹=¹=¹=»=»=À=À=Ï=Ï=õ=þ=>N¨(¯xWxW˜W›WŸW¬WµWÀWÌWÔWÞWýWýW	XXXXXX%X*X*X6X;X;XGXLXLXXX]X]XiXnXnXnXpXpX‰X—X—X«X»X»X½X½XÉXÏXÔXÔXÔXÖXÖXßXîXûXýXýX	YYYYYYYY Y Y Y(Y7YEYGYGYSYYY^Y^YdYpYpY{Y‡Y‡Y”Y©Y±Y·Y·YÈYÈYÑYÔYœ\©¸u‰QZQ­ðId(€(€:€F€Q€k€k€n€}€ƒ€ƒ€Œ€Ž€”€”€�€Ÿ€¥€¯€¶€»€½€Ç€®ˆdrȀȀр׀ò€÷€"�$�A�g�n��’�¯Àv‹8686A6H6\6p6u6“6˜6¶6¸6Ö6Ø6ï6777"727c7°˜r‚˜�˜�¬�Ã�È�á�æ�ÿ�‚‚)‚)‚1‚8‚k‚±¸Vj 5 5.55575C5J5Y5d5p5t5‚5‚5•5¡5«5®5¸5²PnuNNN'N5N;N³/`$`$v$€$Œ$”$”$¤$ª$Á$Õ$ã$ñ$
+%%%+%3%@%H%K%K%K%M%\%\%l%o%}%´˜#SðRðRSSQSaSgS�S S°S°SµS¹S¹SÀSËSÖSãSìSìSñSöSýSTTTT$T&T(T(T(T0T0T0T8T@THTPTTT^TœTµ¸PRPRbRbRfRkR~R�R†R†R�R–R–R¤R¦R°R¶�#°R°RÀRÄRÉRÉRÔRÔRÞRäRäRèRðR·øx”�U�U U¯U³U¼UÊUÙUèUèUþUþUHVHVLVSVXVfVuVuV‹VŽV“VœV¨V¸@Sx T T°T´T½TÀTÉTÒTÒTâTâTUUUU!U!U2U9U.E.T._.e.j.l.x..Ž.™.Ÿ.¤.¦.².².¹.Ï.Û.á.ç.í.ñ.ñ.//%/;/G/M/S/Y/[/[/i/Ř³Ãn/n/€/ƒ/†/†/”/š/š/¨/«/®/´/¶/À/Æ ÃäÆ/Æ/Þ/ê/î/ò/ù/000 0%0'030:0B0H0N0R0R0a0h0p0v0|0~0~0Š0Çh«��,�;�;�>�G�S�S�_�t�t�•�•�§�¹�½�Í�í�ÿ�ŽŽ!Ž%Ž+Ž4Ž4ŽUŽYŽiŽvŽ”Ž¦Ž¬Ž¿ŽÑŽÑŽÝŽߎëŽóŽ÷ŽýŽ�����.�5�A�V�]�f�r�‡�Ž�Ž�Ž�œ�ª�´�·�Å�Ï�Ò�ä�ä�é�î�þ������&�.�@�H�Q�g�n�z���–�Ÿ�±�¸�Ç�Ø�Ø�ß�ß�ß�í�û�‘‘‘ ‘#‘5‘5‘:‘?‘O‘R‘W‘g‘j‘n‘w‘‘‘‘™‘¢‘¢‘­‘­‘đܑà‘ì‘’’’’'’+’3’<’<’<’U’]’c’z’ƒ’‹’‘’—’—’—’ž’°’¼’Ä’Ê’Ð’Ð’Ò’ä’È "VªVªbªqªtª}ª‰ª‰ª”ªŸª¶ª̪êª
+«««0«6«B«K«S«[«a«a«g«m«y«�«‡«‰«‘«ÉX!¾+¾+È+Ï+×+Ü+â+Êp9DŽ,Ž,—,—,—,¥,©,°,³,¸,ËpDO¾,¾,Ç,Ç,Ç,Õ,Ù,ç,ê,ï,ÌpOZö,ö,ÿ,ÿ,ÿ,
---- -ÍhZd&-&-/-/-2-2-@-N-Q-V-Î@,1nsns|s‚sˆsÏ@ø./	//Ð@à.é.ñ.ö.Ñ/?æ=æ=ü=>> >1>8>I>Q>Y>\>j>€>€>•>—>—>£>«>²>¿>¿>Ë>Ó>×>ä>ä>ä>ñ>÷>ÿ>ÿ>??,?1?7?B?G?G?L?e?t?y??Š?�?�?�?¦?²?º?Â?Ê?Í?Ó?Ø?á?ó?ü?
@@@"@*@2@5@;@;@@@@@@@@@F@I@P@[@•@¬@¬@¹@Á@É@Õ@á@ç@î@÷@÷@û@þ@
+AAAAAAAAAAAA*A*A:A:AGAGAOAWA`AoAtAtA{A†AŒA”AšA¥AªAªA¹AÄAÖAÜAäAêAïAöABBBB.B7BHBXBXB]B]BqBwB‚BˆBŠBšB B B¼BãBõBþBC C C$C$C2C:COCbCiCoCwC}C�C“C›C¡C¡C¡C¦C¦C¦C¦C¦CÅCÕCÚCÚCîCôCôC
+DD!D#D[>[>[N[^[c[c[y[[[œ[´[¶[¶[Þ[ä[æ[æ[ò[û[\\\\"\3\5\G\T\T\T\d\t\y\y\�\•\•\²\Ê\Ì\Ì\ô\ú\ü\ü\]]]]!]/]8]I]K]]]j]j]j]z]Š]�]�]¢]½]Ã]Ñ]Ú]ë]í]ÿ]^^^^^/^E^K^Y^b^s^u^‡^”^”^Ÿ^¤^¤^·^Ú^à^î^÷^_
+__)_)_4_9_9_m_m_m_~_“_Ÿ_¿_Ï_Õ_Õ_Õ_Þ_ð_```` ` `T`T`T`e`t`¦`¶`¼`Å`×`ê`ó`aaaa;a;a;aLa[a�a•a›a¤a¶aÉaÒaáaáaæaæaæabb#b5bHbQb`b`bebeb™b™b¨b±b¼b¾bÇbÒbÒbóbúbcccc)c/c7cBcHcHcMcMcMcMcMcMc�c�cŠc™cžcžcžc­c²c²cÄcÏc×cßcåcåcåcêcêcõcd	ddd*d1d7dxGxGx^xrxƒx�x•x­xÀx×xäxìxÿxy
yy y y$y$y$y$y$y0y0y0y9yRygyoyŠy›y¨yªy¾y¾y¾y¾y¾y¾y¾y¾yÃyÃyÃyÎyÜyáyáyèyöyûyz z z1z=zCzRzVz_zhz…z‘z—z�z°z¸zÀzÔzåzòzôz{{{{{{!{4{@{L{R{V{_{d{d{d{d{d{d{}{}{}{}{}{}{}{‚{‚{‚{‚{‚{‚{“{“{“{“{“{“{“{“{“{“{œ{µ{Ê{Ò{í{þ{|
|!|-|2|2|2|;|U|a|ˆ|”|”|™|™|™|™|™|™|™|™|™|®|®|®|®|®|®|®|®|®|®|®|®|®|®|®|®|®|®|®|®|®|®|®|®|®|®|®|®|®|®|®|®|®|®|®|®|®|®|®|®|®|®|®|®|®|®|®|®|®|®|®|®|®|®|®|®|®|®|®|®|®|®|®|®|®|®|®|®|®|®|®|®|®|®|®|®|®|®|³|³|³|Ä|Ï|Ô|Ô|Ô|ÿ|}}}}5}E}M}U}Š}“}—}—}¯}¿}¿}¿}¿}¿}á}~#~'~-~2~;~A~F~F~F~F~U~i~‡~’~—~�~¢~¢~µ~É~ï~ú~

0NY^dii|�¶ÁÉÏÏÔÔÔÝö€€.€?€L€N€]€_€_€_€_€_€_€t€t€t€t€t€t€t€t€t€t€t€t€t€t€t€t€t€t€t€t€t€t€t€t€t€ƒ€’€�€�€�€�€�€�€�€�€�€�€�€�€�€�€Ÿ€Ÿ€³€µ€µ€Ì€Ò€à€à€ã€õ€ �1�=�S�m�p�z�†�¬�Ì�ð�ò�‚‚P‚P‚S‚c‚t‚w‚‘‚Ÿ‚«‚ÂÂë‚î‚ý‚ƒ2ƒCƒuƒaƒMƒ…ƒ—ƒ—ƒšƒŸƒ¢ƒ¼ƒʃøƒ„„B„E„T„h„‰„š„¸„¤„Ô„Ô„Ô„ׄ܄܄ã„ó„…"…�Ó€«Øæ’æ’ø’ü’““““1“1“<“M“Z“`“e“m“�“�“ž“©“¼“¼“ϓϓå“û“û“””””(”(”2”:”:”D”L”L”L”T”T”T”X”`”f”k”k”o”w”{”�”�”�”�”�”�”�”�”�”�”�”�”�”�”†”†”’”§”·”Á”Ô”Ù”á”á”æ”æ”í”ù”••(•0•6•I•N•V•\•\•a•h•s•›•¦•¦•µ•¿•Ǖ͕ٕߕå•ê•ê•ê•ê•ê•ê•ê•ê•ê•õ•–––$–,–?–D–L–Q–Y–^–^–^–f–n–w––„–Œ–‘–˜–£–Ë–Ö–Þ–Þ–í–÷–—	————— —2—:—M—U—]—r—t——‡—œ—œ—¸—À—Ç—Í—Ñ—Õ—ä—õ—˜˜ ˜4˜4˜@˜E˜Q˜\˜a˜a˜‚˜œ˜¡˜©˜¸˜À˜Șݘâ˜í˜õ˜
+™™™1™=™E™Z™Z™f™k™w™‚™‡™‡™‡™‡™‡™‡™‡™‡™‡™‡™‡™‡™‡™‡™‡™‡™‡™‡™‡™‡™‡™‡™‡™‡™‡™‡™Œ™Œ™Œ™—™—™—™—™—™—™—™—™—™—™—™—™¢™™ß™ï™õ™ý™ššš%š'š/šBšHšPšXšZšzš‚š‹š“š›š š¥š¬š·šßšêšòšòš›››$›)›1›1›1›1›1›1›1›1›1›1›1›1›1›1›1›1›1›1›1›1›1›1›1›1›1›1›1›1›1›1›1›1›1›1›1›6›6›6›?›H›K›U›c›c›v›x›‹›�›�›�›¨›­›Ê›Ê›Ê›Ê›Ê›Ê›Ê›Ê›Ê›Ê›Ê›Ê›Ê›Ê›Ê›Ê›Ê›Ê›Ê›Ê›Ê›Ê›Ê›Ê›Ê›Ê›Ê›Ê›Ê›Ê›Ê›Ê›Ê›Ê›Ê›Ê›Ê›Ê›Ê›Ê›Ê›Ê›Ê›Ê›Ê›Ê›Ê›Ê›Ê›Ê›Ê›Ê›Ê›Ê›Ê›Ê›Ê›Ê›Ï›Ï›Ï›Ï›Ï›Ï›Ï›Ï›Ï›Ï›Ï›Ï›Ï›Ï›Ï›Ï›Ï›Ï›Ï›Ï›Ï›Ï›Ú›æ›ò›
+œœœ!œ)œEœMœPœRœRœbœlœlœnœnœ�œ’œ•œ˜œ œ¥œ¥œ®œ³œ»œœÏœâœèœïœôœ��1�J�R�_�r�x���„�„�„�„�„�„�„�„�„�„�„�„�„�„�„�Œ�—�¢�±�¶�¶�¾�Å�Ó�Ø�Ø�Ü�á�á�ñ�ñ�ö�ö�ö�žž*ž=žCžKž`žgžožožqžqžŒž’ž¢ž¢ž­ž´žžÏžÏžÒžÝžûžŸ¦Ôð|¦¦¦'¦.¦9¦9¦D¦[¦f¦m¦~¦‘¦—¦—¦¦¦À¦ǦЦÚ¦ݦé¦ò¦ü¦ÿ¦§§$§$§6§=§I§^§e§n§z§�§–§–§–§¤§²§¼§¿§ͧ×§Ú§ì§ì§ñ§ö§¨	¨¨¨!¨%¨.¨6¨H¨P¨P¨P¨f¨p¨p¨‚¨‰¨•¨ª¨±¨º¨̨Ó¨â¨ó¨ó¨ú¨ú¨ú¨©© ©#©1©;©>©P©P©U©Z©j©m©r©‚©…©‰©’©š©¬©´©´©À©ΩΩѩܩú©
+ªPªÕ¨ƒõî®î®¯¯*¯1¯<¯<¯O¯]¯e¯m¯z¯�¯‰¯�¯®¯¼¯Ú¯è¯ë¯ï¯ó¯ú¯°°°°+°0°?°?°?°E°J°`°l°�°‰°‰°”°Ÿ°ª°µ°À°̰̰ذë°ø°
+± ±6±>±G±O±O±w±±…±�±�±œ±¯±µ±½±бÖ±Þ±Þ±ò±þ±²²$²,²?²E²M²M²M²v²v²|²–²š²�²¨²²вײܲç²ü²³³³7³K³K³·³Ö "ƒ–«–«¸«Ê«Ï«Ï«Ú«Ú«á«ò«¬
+¬
+¬¬¬¬!¬)¬)¬7¬P¬R¬Y¬r¬…¬“¬›¬�¬«¬¹¬¹¬Á¬ʬÕ¬ݬè¬ò¬ú¬ý¬­­&­8­;­@­S­S­l­€­ˆ­ˆ­š­�­¢­µ­µ­έâ­ê­ê­ö­®®®*®1®F®_®a®v®�®—®—®¢®°®½®®®É®Ô®ë®×P'è¾³¾³سë³ù³´$´.´<´<´Y´f´f´p´p´z´Ž´ž´ž´©´©´³´¹´¿´´Ù´ä´ÿ´µµµµ"µ-µ8µRµ\µdµ{µ�µ°µÀµŵ˵ѵܵéµðµ¶¶¶#¶(¶1¶R¶V¶\¶d¶i¶i¶v¶}¶˜¶„¶¤¶¨¶®¶¶¶»¶ܶà¶æ¶î¶þ¶··%·)·/·7·<·]·a·g·o·o·t·�·ˆ·©·­·³·»·Ä·å·é·ï·÷·÷·¸¸,¸0¸6¸>¸G¸h¸l¸r¸z¸z¸z¸†¸†¸‘¸›¸ ¸¼¸ȸٸ޸︹¹#¹(¹-¹-¹8¹@¹H¹M¹i¹v¹…¹”¹®¹®¹ιÓ¹ععã¹ë¹ø¹ººº5ºGºYºlºdº„º‰ºŽºŽºŽº’º’º«º´º´º׺ܺáºáºéºýº»»'»2»2»F»T»]»b»g»l»l»t»»„»„»Œ»—»œ»œ»¤»»¬»Ú»ß»ß»ç»¼ï»¼"¼"¼-¼C¼X¼d¼u¼z¼‹¼Ÿ¼Ÿ¼¿¼ļɼݼɼõ¼ú¼ú¼½½½½½½%½6½H½M½M½a½M½y½~½~½†½‹½‹½ž½£½£½¶½»½»½»½Õ½å½ê½ê½ê½¾¾¾¾¾3¾C¾H¾H¾H¾b¾r¾w¾޾w¾¦¾«¾«¾¶¾»¾÷¾å¾»¾¿¿P¿>¿¿h¿m¿m¿m¿|¿Œ¿‘¿‘¿‘¿ ¿°¿µ¿µ¿µ¿Ä¿Ò¿׿ÿ¿í¿׿ÀÀDÀ2ÀÀ\ÀaÀ‰ÀwÀaÀ¡À¦À¦À¦ÀÃÀ­ÀíÀýÀÁÁÁÁ	ÁGÁWÁ\Á\ÁhÁmÁmÁyÁ~Á~Á~Á‘Á¡Á¦Á¦Á¦Á¹ÁÉÁÎÁÎÁÎÁáÁñÁöÁöÁöÁ	ÂÂÂÂ&Â+Â+Â3Â8Â8Â@ÂEÂEÂMÂRÂRÂeÂjÂjÂ}‚ÂÂÝÂâÂ0ÃÃÃâÂ=ÃBÃBÃBÃQÃlÃqÃqÃqÂÃ�âââóÃÁÃÆÃÆÃÎÃÓÃÓÃÛÃàÃàÃèÃíÃíÃíÃ%ÄÄôÃDÄ_ÄdÄdÄdĜĊÄkÄ»ÄÖÄÛÄ
ÅûÄÛÄ%Å*Å\ÅJÅ*ÅtÅyÅ“ÅyūŰÅÍŰÅåÅêÅêÅêÅ
+ÆÆ"ÆÆ.Æ>ÆKÆYÆ|Æ~ƕƛƴÆÁÆòÆ4ÇÇ@ÇHÇHÇHÇTÇTÇYÇYÇjNjǖǠǫǭǸÇÀÇÅÇÊÇÊÇÕÇÝÇâÇíÇýÇÈ-ÈAÈFÈKÈKÈ^ÈiÈsÈxȃÈ�È’È’È�ȰȺÈÅÈÚÈæÈ÷ÈüÈ
ÉÉÉÉÉ+É6É>ÉCÉNÉ[ÉfɀɒɤɯɴɿÉÇÉÌÉ×ÉäÉïÉ	ÊÊ-Ê-Ê2Ê7Ê7ÊBÊGÊGÊRÊWÊWÊbÊgÊgÊrÊwÊwʑʖʖʞʣʣʮʳʳʾÊÃÊÃÊÎÊÓÊçÊÓÊóÊþÊËËË#Ë.Ë3Ë3Ë>ËCËCËNË\ËaËaËlËwË|Ë|Ë�˒˒ˣ˨˨ËÂËÍËÒËÚËÒËæËëËÿËëËÌÌÌÌ$Ì)Ì=Ì)ÌIÌIÌNÌNÌbÌNÌnÌnÌsÌÌs̶̗̗̣̗̻̻̒ÌÇÌ»ÌÚÌßÌßÌëÌßÌþÌÍÍÍ#Í/Í:ÍEÍJÍ^ÍJÍjÍvÍ�͌͑ͥ͑ͱÍÂÍÇÍÇÍÏÍÔÍÔÍÜÍáÍáÍêÍïÍïÍøÍýÍýÍÎÎÎÎÎÎ&Î+Î+Î6Î;Î;ÎFÎKÎKÎVÎ[Î[ÎfÎkÎkÎvÎ{Î�Î{ΛΦαμÎÁÎÁÎËÎÐÎÐÎÚÎßÎßÎéÎîÎîÎøÎýÎýÎÏ
+Ï
+ÏÏÏÏ)Ï.Ï.Ï.Ï.Ï.Ï6Ï;Ï;ÏCÏHÏHÏPÏUÏUÏ]ÏbÏbÏjÏoσÏoÏ�ϠϥϥϷÏÂÏÂÏâÏçÏýÏÐ!Ð
Ð-Ð8ÐCÐHÐHÐZÐeÐeЅЊРЫÐÄаÐÐÐÛÐæÐëÐëÐýÐÑÑ(Ñ-ÑCÑNÑgÑSÑsÑ~щююѴѠÑÀÑÀÑàÑåÑûÑÒÒ&ÒÒFÒ2ÒRÒhÒTÒˆÒtÒ”ÒŸÒ¤Ò¤ÒÊÒ¶ÒÖÒÖÒöÒûÒÓÓ!Ó<Ó(Ó\ÓHÓhÓ~ÓjÓžÓŠÓªÓµÓºÓºÓàÓÌÓìÓìÓÔÔ'Ô2Ô7ÔRÔ>ÔrÔ^Ô~Ô”Ô€Ô´Ô ÔÀÔËÔÐÔÐÔßÔäÔäÔóÔøÔøÔ	ÕÕÕÕ$Õ)Õ.Õ.ÕAÕPÕUÕZÕZÕmÕ|Õ�Õ†Õ†Õ¨Õ­Õ²Õ²ÕÔÕÙÕÞÕÞÕÖÖ
+Ö
+Ö,Ö1Ö6Ö6Ö6ÖTÖxÖ}Ö‚Ö‚Ö¤Ö©Ö®Ö®Ö®ÖÌÖðÖõÖúÖúÖ×!×&×&×&×D×h×m×r×rהימממ׼×à×å×ê×ê×ØØØØ1Ø6Ø;Ø;Ø;ØVØ[Ø`Ø`Ø`Ø{؀؅؅؅ؠإتتØÅØÊØÏØÏØÏØêØïØôØôØôØÙÙÙÙÙ4Ù9Ù>Ù>ÙOÙTÙYÙYÙjÙoÙtÙtÙ}ًٮÙÉÙÉÙÉÙÞÙàÙìÙúÙÚ Ú)Ú4ÚQÚmÚ{Ú†Ú›Ú«Ú°Ú°Ú»ÚÀÚÀÚÌÚåÚêÚ
ÛÛÛ#Û4Û>ÛSÛ[Û]ÛnÛyÛ�Û†Û‹Û‹Û�Û“Û›Û¥Û¯Û´Û¹Û¹ÛÄÛÎÛÎÛÎÛÎÛÓÛÓÛÓÛÝÛÝÛßÛßÛéÛéÛöÛÜÜÜ"Ü"Ü"Ü$Ü$Ü;ÜAÜNÜNÜ[ÜbÜiÜtÜ܊ܕܚÜÃÜ»ÜÛÜäÜ
ÝÝ%Ý%Ý%Ý-Ý6Ý<ÝGÝGÝUÝ^ÝpÝyÝ�ݖݖݖݖݮݸÝÍÝçÝçÝçÝÞ Þ Þ4Þ6ÞNÞ`ÞpÞpÞ˜ÞŸÞ¡Þ§Þ­Þ°ÞµÞ¼ÞÌÞâÞâÞæÞæÞýÞß	ß	ß
ßß#ß5ßJßZßfßwß|ß�߬ßÈßÜßßßäßïßñßñßõßõßà à à"à0à0à^à~à~à~à†çØX)1,,,,%,4,C,H,ÙX19N,N,\,b,f,u,„,Š,Ú@@/J/R/W/ÛPþÔþÔÕÕ%Õ2Õ2ÕRÕܨ4fNÖNÖ`ÖgÖjÖ…Ö…Ö¢ÖµÖÈÖÛÖàÖàÖþÖ× ×2×:×:×<×<×<×O×Q×Q×Q×X×k×~×~×~×�×—×�װׯ×Ë×Ò×Ù×î×ØØØØíØÝHa‡  , 2 9 A I L W k r u w € “ “ – ž ´ · Å È Ë Ò Ö Þ ì ì !!!K!Þ€½J€ª€ª’ªœª¤ª¬ª´ª¼ªÄªÄªÒªåªþª««««%«+«0«0«8«A«G«L«L«T«]«c«h«h«p«y««„«„«�«™«�«¢«¨«­«­«µ«¾«Ä«É«É«ã«ù«ù«ù«¬¬¬¬¬
¬
¬
¬¬¬¬¬ ¬!¬!¬.¬.¬4¬9¬@¬K¬K¬[¬[¬[¬b¬m¬m¬}¬}¬ˆ¬Œ¬’¬ª¬¸¬Ë¬×¬ô¬÷¬þ¬­­!­,­,­7­=­B­I­T­Y­`­k­w­}­}­”­œ­¢­¢­Ä­Ð­Ö­Û­â­í­í­ò­®®®®®®%®%®0®0®0®0®õ®ßð½.Ì.ÌDÌKÌRÌ_ÌjÌoÌ�Ì�̣̫ÌÃÌÉÌçÌûÌÍÍ%Í%Í5Í5ÍLÍNÍQÍ]ÍeÍmÍu͉̓Í�͛͛Í�ͱͼÍÁÍÁÍÁÍÚÍÚÍúÍúÍÎÎ!Î!Î!Î:ÎCÎ^ÎpÎ~΋ΛΨΨεοÎËÎØÎÚÎÚÎâÎçÎçÎïÎôÎôÎüÎÏÏ	ÏÏÏÏÏÏ!Ï&Ï&Ï1Ï6Ï6ÏAÏFÏFÏQÏVÏVÏcÏcÏxÏυψÏ�Ï’Ï�ϤϧϧϻϽÏÃÏÎÏÎÏÎÏØÏñÏÐÐ'Ð-Ð@ÐFÐKÐUÐhÐyЈЎПЬжÐÅÐÒÐØÐãÐéÐþÐÑÑ"Ñ(Ñ:Ñ:ÑLÑQÑ_ÑkÑsÑ{уъÑ�ѡѮѳÑÐÑÐÑçÑõÑüÑÒÒÒ$Ò*Ò5Ò;Ò@ÒMÒ_Ò_Ò_ÒjÒ~Ò÷Ôàx¶^É^ÉvÉ}É�əɡɩɳɷɾÉÄÉØÉàÉåÉèÉóÉþÉÊÊÊÊÊ8Ê?ÊFÊQÊ\ÊcÊeÊpÊ{Ê}ʉʒʒʨÊÉÊÏÊÕÊèÊîÊ÷Ê÷ÊËËËËË(Ë-Ë?ËLËPË_ËaËeËtËtËt˅˅ˊ˞˦˦Ë(Ìá0š½8©8©F©F©Z©^©f©n©y©„©Œ©—©¢©§©§©Á©È©Ï©Ú©å©ç©ò©ý©ªªª'ª2ª;ªCªCªGª}ªâØ¶N¸N¸d¸k¸s¸~¸~¸–¸ ¸ ¸¸¸Â¸Ý¸ó¸¹¹+¹?¹F¹I¹b¹l¹l¹~¹€¹’¹’¹™¹ ¹©¹®¹³¹º¹Á¹Û¹â¹ò¹ö¹ö¹ºººº.ºBºVºVº]ºhºoºxºƒºŠº“ºžº¥º¥º°ºÎºÒºÒºÛº
+»
+»»»'»/»=»D»H»J»J»\»\»\»n»v»œ»œ»ª»ª»®»Ã»Ë»Û»æ»æ»û»¼¼¼%¼3¼>¼B¼G¼O¼S¼S¼b¼d¼s¼u¼„¼†¼•¼œ¼¢¼¶¼¾¼Ì¼Ó¼×¼ç¼ò¼÷¼½½+½2½6½>½L½S½W½s½{½†½Œ½Œ½Œ½•½ ½°½Ò½Ú½å½ô½ü½¾¾¾ ¾+¾/¾:¾?¾Q¾Y¾d¾d¾d¾d¾r¾�¾ž¾ª¾²¾Â¾Ò¾ð¾ô¾#¿	¿8¿8¿C¿J¿Y¿h¿p¿~¿…¿‰¿‹¿š¿¢¿°¿·¿»¿»¿½¿½¿Ï¿Ï¿á¿á¿á¿ç¿ó¿À
À%ÀQÀQÀ_ÀcÀ�ÀˆÀ�ÀšÀšÀ°À²À¹ÀÌÀÔÀâÀéÀíÀïÀÁ
+ÁÁ Á#Á#Á#Á#Á1Á<ÁKÁSÁaÁlÁpÁpÁuÁ}Á�Á�Á�Á’Á¡Á£Á²Á´ÁÃÁÊÁÐÁäÁìÁúÁ Â%ÂCÂKÂYÂ`ÂdÂlÂzÂ�…¡©´ºººÂÃÂØÂòÂÃ
Ã
Ã"Ã'Ã2ÃBÃdÃlÃwÆÎÙÞæñýÃÁÃÌÃÑÃãÃëÃöÃöÃöÃöÃ
+ÄÄÄ/Ä<Ä@ÄTÄeÄeÄzćċęĮľÄÕÄîÄÅ	ÅÅÅÅ%Å:ÅKÅbÅ{ŔŖšũũũÅÃÅÑÅßÅôÅÆ!ÆMÆTÆTÆdÆyƓƓƗƭƴƼÆ×ÆâÆùÆÇÇ#Ç#Ç6ÇQÇZÇoÇ�ÇŸÇËÇÙÇïÇÈÈÈ0È0ÈHÈHÈTÈlÈ„È�È�È�șȪÈÂÈËÈËÈÒÈÛÈáÈïÈXÉã(8z–2–2µ2µ2Ì2Ñ2Ù2á2é2î2333!3'3,343P3Z3\3^3k3k3m3‰3“3•3—3¤3¤3¤3©3±3¹3Á3Æ3Ú3é3ë3ô3ý34444 4,4J4R4_4e4x4|4„4„4˜4¨4¨4«4ô4äx-þþ#*.229@DLPPW^bjnnu|€ˆŒŒ“šž¦ª­±åØ0HFF.F.F9FDFQF_FeFxF~F‘F—F£F·F·FËFÛFéFïFGGiGæ ‡¨N!N!f!n!u!!…!�! !¨!­!¸!¸!Â!È!Ó!ã!ë!û!"
+""" "*"*"8"8"N"ç@*Oîßîßòßößàààà%à0àBàMàXààà�à¢à´àÆàÊà×à×à×àáàèàýàáá%áAáFá`áè8f*îØîØÙÙÙ"Ù$Ù$Ù,Ù,Ù,Ù4Ù<ÙNÙNÙrÙtÙtÙŽÙ�Ù�ٛ٠ٺٿٿٿٿÙÔÙÖÙÖÙãÙåÙòÙôÙÚ	ÚÚÚ'Ú'Ú4Ú6ÚJÚWÚWÚWÚ`ÚrÚ…Ú‹Ú“Ú•Ú¢Ú¢Ú·Ú·Ú·ÚÂÚÌÚäÚéÚéÚéÚéÚ÷ÚýÚÛ
+ÛÛ'Û2Û7Û7Û>ÛBÛPÛWÛ`ÛgÛyÛ€Û‡Û�Û�Û¬Û±Û±Û±Û±Û¹ÛÄÛÄÛÒÛÒÛéÛéÛéÛðÛþÛ
Ü Ü3Ü5Ü5Ü5ÜHÜHÜOÜVÜ[ÜaÜaÜsÜ}ܘÜÁÜÇÜÇÜÛÜàÜòÜùÜÝÝ(Ý5Ý<Ý@Ý@Ý@Ý@ÝKÝUÝUÝcÝ…Ý…Ý‘Ý®Ý¸Ý¸ÝÆÝêÝðÝÞÞÞ+Þ>ÞCÞCÞCÞKÞVÞhÞsÞxÞxÞxÞxÞŠÞ·Þ½Þ½Þ½ÞÈÞÒÞÒÞÞÞéÞëÞëÞðÞðÞüÞüÞîßé@HmnGnGˆGˆGœG¢G°G°G»GÉGÕGéGôGHHHH$H*H*H?HEHNHTHTHhHnH{HƒH‘HžHðHê(Ã7747B7U7Z7o7v7|7„7Š7˜7Ÿ7®7³7À7×7ä7÷7þ7888/848J8S8b8j8w8€8‚8™8³8¸8Ã8Õ8à8é8ï8ú8þ899O919d9™9{9®9±9Á9^:ë°žq¾ä¾äØäÞäáäêäôäåå'å-å1å5å7åOåaånåtåxå|å~å‚å†å†å¬å°å¶å¶å½å½åßåôåææ æ'æ2æ<æ@æCæJæPæVæ[ælæræwæ~æ~æ‹æ�æ¡æ£æ¨æ¨æµæ·æËæËæËæËæËæîæöæççç2ç>ç[çç™çžçµçºçÈçÜçáçççòçúçèèè'è4èLèSè_èjèwèƒèƒèƒè‰èŒè�è©è¯èÃèÉèÐèÛèÛèàèàèíèüèüèéé$é*é-é0é7é>éEéEéJéJéWéféfélézéŽé”é—éšé¡é¡é²é·é·éÄéÓéÓéÚéäéëéñéøéêêêê1ê6ê=êEêOê^êbênê†ê‹ê‹ê´êÃêÊêÒêÒêëêÿêÿêëë4ëRëYë{ëŽë²ë´ë´ë¾ëàëàëàëùëìì-ì1ìÜìì`zÃö4ö455"5*5D5D5M5O5\5\5^5x5‚5„5†5“5“5“5“5—5 5¨5²5¼5À5À5Ò5å5î5î5ý5ý56666*6/646H6W6W6Y6c6l6u6|6‚6–6�6¤6«6¹6Â6å6î6ò6÷6ü6ÿ6	777í8-Q¶¶¼ÐÓÛâæêêñøü"&&-48@DDKRV^beiî`8ANNb¶§omÊÒïØý^:^:t::::¬:¬:º:º:º:Ê:Ó:Ú:á:ê:ê:ò:ö:;!;-;3;3;>;W;W;j;u;};†;‹;‹;ž;©;²;½;Â;Â;Ò;×;×;×;×;ì;ñ;<
+<<&<:<:<?<?<O<T<T<Y<`<h<o<q<y<€<€<�<•<¢<©<¬<Å<Å<Í<Ü<ç<î<ð<==== = = = =5=:=I=P=W=l=€=€=…=…=�=œ=£=¨=¼=Ã=È=È=Ô=æ=æ=ú=	>> >/>=>K>S>Z>x>…>Š>™>™>°>·>¾>Î>Ð>Þ>î>ð>þ>??#?9?@?L?^?u?w?ƒ?Ž?�?�?ž?²?Â?Ê?Ì?à?õ?ü?@@:@A@M@o@o@o@w@w@ƒ@‡@�@“@ž@¥@¬@Æ@Ë@Ò@Ý@æ@î@ó@ó@AAA*A9ADAOA]AcAiAoAxAA‘A‘AžA¦A²AÁAØAÚAãAîAðAüAB$B*B0B9B9BJBnBwB�B�B¢B·B·BÄBÉBÉBÝBãBãBãBãBÁCðýÆCÆCæCæCúCDD D D4D:DEDUDcDlDrDxDƒD‘DžD¬DºDÉDÉDEñpXc––  ¹ÀÆÌÌÒò˜áñæMæMðMúMNNN!N-N/N/NCNCNCNENuNóžnãnã|ã|ã“ã�ã¦ã¨ã¯ã¿ãÌãÎãÙãÙãßãòãòãõãõãä#ä%ä>äEäIäUähä·äô@
~Õ~Õ‡Õ›Õ Õõ@ÞÕÞÕçÕÖÖöØ4ÖÖÖ"Ö+Ö2Ö9ÖCÖCÖIÖ÷@
VÕVÕdÕxÕ~Õø@¦Õ¦Õ´ÕÓÕÙÕù˜Ofáfávává�áœá á®á´áÃáÃáÊáÚáçáîáõáâ2â8â=âAâQâQâQâiâkâvâ—â¤â¦â¿âÃâÑâÖâÖâÝâéâñâãmãúUµÞRÞRøRþRþRSS	SSSS"S+S1S8S8SQSZSaSgSuS�SŠS‘S—SœSªS½SÈSÌSÔSÔSÚSêSíSòSòSøSTTTTTT!T&T&T,T8T;T@T@TFTTTWT\T\TbTpTsTxTxT~T…T•TœTŸT¤T¤T¤T¶T¼TÊTÏT×TðT÷TUUUU2U=UJUPU]U`UfUkUkUkU}UƒUƒUƒUšU¢UªUÈUÓUàUæUõUþUVVVVVV$V-VFVQV^VdVqVtVzVVVV‘V—V—V®VµV¾VÊVÐVÜVáVñVþVWWW!W$W*W/W/W/WAWGW`WkWxWxW~W‹WŽW”W™W™WžW²WÇWÍWÏWãWéWïWXX	XX3X9X=X@XEXEXKXWXZX_X_XeXeX{X‹X�X�X�X¢X¯X¯XÈXÑXßXæXæXîXYY"Y"Y@YCYEYQY\YnYzYŽY¡Y¦Y³YÅYØYÝYÝYãYãYúY
ZZ(Z0Z;ZKZQZVZVZ\ZbZgZgZgZmZ|Z�Z�Z£Z¦Z«Z«Z±ZÂZÈZËZÐZÐZÖZçZíZðZõZõZûZ[[[[[ [1[7[:[?[?[E[V[\[_[d[d[j[n[t[w[|[|[|[€[€[�[•[œ[«[°[Á[Á[Ë[Ó[Õ[Û[è[î[ñ[ú[ÿ[ÿ[\\'\3\B\J\S\f\q\w\‡\Ž\”\£\£\µ\¸\¸\¾\Å\Ù\å\ó\]]]]!]!].]=]=]=]@]T]bûAaÖÖòúþ   H ^ r € ™ Ÿ « ° ¾ Ý æ ö ø ÿ ÿ    üPñvNvN‚NŽNšNªNÂNÈNÖNçNïNöNOO2OLOLOYOhOxO~O€O‘O‘O³OºOÀOÎOÖOìO÷OýOP-PýˆsáöHöHIII'I'I;IAIMIXIcIhIsII“IªI½IÔIÔIéIùIùI
JJ&J,JDJNJYJ_JkJ{J†J�JšJ¤J«J±J½JÅJÍJÐJÓJæJìJöJýJK
KKK8KNKZKbKjKmKtKvKƒKƒK•K¡K§KµKµKÂKÑKÕKîKîKóKóKLLL,L2LALDLNLeLrL‘LžL©L´L·L¼LÃLÕLçLÿLM	MMMMäMþU.P.PFPMPeP}P‡P”P”P™P¥P°P»PÉPÙPëPõPüPüPQ&Q&Q:QXQeQtQ�Q�Q¤Q²QÀQÊQÑQÑQæQûQûQRR*R8R>RQRQRWRgR|R‰R—RÝRÿà¨N"N"l"w"~"†"‰"‰"™"¦"¦"­"´"»"Á"Ç"Î"Ð"Ù"å"ë"###+#3#8#8#?#E#X#^#d#m#o#v#v#{#…#Œ#“#›#¡#£#£#±#È#Ë#Ú#æ#õ#õ#õ#õ#û#û#$$($I$]$q$x$‚$Š$‘$‘$š$¡$°$Á$Î$Î$Î$â$ö$%	%™%ð þþ '<Gdddnpp{{©ººººÉØíúú	#)GTVou€�¢«²·¿Æëðþ44CI_ipu€†Ž´½ÄÌ×ãò))@KZjj~„���œ¢¶¿Ñàõþ	#	.	A	b	u	y	…	™	µ	µ	É	Ï	Ú	æ	ö	
+
+
+
+&
+*
 6
-E
-E
-]
-c
-n
-n
-n
-
-…
-ˆ
-“
-™
-œ
-ž
-Ì
-ß
-÷
-ý
-$*55B¿ cÔ¦&¦&Ä&Ï&Ö&Ö&ß&ï&ï&'
-''''@'@'M'P'Y'Y'm's'x'Ÿ'²'¶'¼'Ó'Ú'è'î'ú'(	(()(3(<(L(N(U(Z(b(�(�(�(›(¸(×(Þ(è(÷(ý()	)))3)T)h)t)ˆ)“)›)ª)·)Ä)Ò)à)ý)
-****M*_*v**…*‘*–*�*�*±*¼*É*Ð*Ð*Ð*â*ñ*ó*++&+&+.+Q+\+�+¨Û-ž+ž+Å+Ï+â+í+,,,+,2,:,P,X,X,k,€,�,š,œ,¬,¼,Å,Ë,Ð,×,Þ,ä,ê,õ,--
--$-,-F-[-[-h-k-s-w-‰-˜-£-«-«-Â-Û-ß-è-ï-.	.... .1.H.V.\.`.b.o.o.o.q.ˆ.Ž.Ž. .ˆ	0v6v6”6œ6¢6¢6³6Ð6Þ6ä6ä6ä6ñ6ó6þ6777(7.78787C7M7M7a7g7w7}7‚7‰7’7˜7ž7­7Â7Ç7Ê7Ð7Ð7Ø7Þ7ä7ä7ù78888%8.8.8D8J8P8f8k8r8‡8‹8‹8“8™8«8±8¹8Ã8Î8Ô8Ø8ò8û89999!969;9?9F9L9R9R9Z9^9e9k9q9q9q9œ9œ9­9­9Ä9Ñ9Õ9Õ9Ý9ò9	:	::::::/:@:@:U:i:u:ƒ:‡:™:�:£:À:Â:È:Õ:×:ã:;	;;7;B;H;N;T;];d;y;Š;–;š;¬;°;¶;Ó;Õ;Û;ì;î;ú;< <%<+<4<;<;<K<i<r<x<x<�<’<’<™< <²<·<·<·<Ñ<Ö<ð<õ<==!=,=O=U=[=g={=‚=ˆ=”=™=™=¤=¨=¯=Á=Æ=Î=Ó=Þ=ä=ì=ñ=>>>%>2>E>E>_>d>d>~>~>‰>˜>�>¦>«>¸>¿>Ä>Ä>Ï>Ó>Ú>ì>ñ>ù>ý>???"?*?2?:?M?Y?^?j?j?s?s?�?�?£?©?®?²?·?·?·?·?½?Â?Â?å?ë?ñ?@ @ @ @,@,@,@1@1@T@¿CÈ 6WW.W.WBWHWSWaWmW�W�W•W›W›W¦W¶WÃWÑWÞWX	xiu88 8'8C8Q8V8V8n8x8x8‰8
-€Üé'2=HS^ik{`¹Â\\*\=\F\L\O\W\ ¨¹h[h[v[x[‚[”[›[¥[§[§[»[Å[Ú[Ú[Ý[\
hÈ@È@Ø@ê@ð@ö@ü@€h@h@t@~@…@Œ@ @²@²@È@˜3Cà/à/ð/ð/00030C0O0S0{0hé3€€’¢²û#+4:BDJRY`‘ššÏù!9Mj” ¿×Ùàçç>x²ì&```lw|||‹˜��£¨¨®¹¾¾ÄÏÔÔÚåðõõû',,2=HMMS^ityy…ŠŠ�›¡¦¦¬·½ÂÂÈÓÞäééïú!'))/:EKMMS^itz||ƒƒ‘””Ÿ¬»»Ð77E]]foŒš¶Ôéé0Nccor£¥ÀÇÇÔÝßíïýÿ

16==JSUcesuƒƒ££££°ÇÚû)19AIWejrz‚Š˜¦¦ºÅÛñ,7ELfz�”®ÂÂØÝßææû.99FRWin€…“““¶¶Ûâíð	$(CGZ^^xŒ—œª¿Êà&+>CVccu�Ÿ¦ÀÔø ?SX„˜��¯´ÆÒò  
   ) 5 : L Q c h z z � � � � � ³ ³ ³ º Ô é û  % 3 3 8 8 8 @ Z o t t t { • ª ¯ ¯ ¯ ¶ Ð å ê ê ñ ô !"!7!>ITTX]]qu~~�—› ¬³ÀÔÛÝáãûP07ÆCÆCÊCÔCìCùCDH7=DD$D=DDDdD
\ No newline at end of file
+J
+f
+f
+z
+€
+‹
+—
+§
+·
+É
+Ï
+Ï
+Ï
+Þ
+ä
+é
+ï
+ï
+ï
+þ
+	Ù¸qÞìÞìøìíí+í+í+í+í?í?í[íríxí�í�í�í•í�íµí»íÄíÄíÄíØíæíòíîî)î.î7î7î7îKîOîWî_îkîˆî—î¢î§î­î¶î¶î¶î¶îÊîßîåîîîîîï(ï-ï-ïAïLïVï\ïlï€ï€ï’ï’ï¦ï¬ïÔïÝïÝïòïýïýïðð!ð:ðMðYð]ðoð�ð‰ð�ð«ð¹ð¹ð¹ðÆðâðÍðóðêðýðÿðññ#ñ#ñ1ñ1ñ3ñOñOñVñ\ñeñmñpñ‡ñ“ñ§ñšñ¯ñµñ¾ñ¾ñ¾ñÑñÖñÖñáñîñ÷ñþñþñòò#ò,ò,ò:òDòDòXòcòiònòwò�ò�ò•ò ò¦ò«ò´ò¿ò¿òÓòÚòáòáòó!ó#ó#ó@óUóUó[ódóqóqó„ó„ó˜óªóµóÄóÍóÒóùóô
ôôô"ô2ôGôLôSô`ôgôgô{ô�ô—ô�ô¦ô¦ôÉôÐôÕôãôóôõõõõõõõ*õ*õ>õAõAõRõZõbõjõõ‡õŒõ¡õ±õ³õ»õ»õÐõ×õìõüõüõüõüõööööö2ö>ö>öRö_öjöxöƒöƒö“öšö´öÇöÉöÙöîöðöðöÿö÷÷÷#÷#÷+÷+÷?÷E÷X÷d÷d÷x÷{÷†÷˜÷ ÷«÷°÷¸÷À÷Í÷Ò÷Ò÷è÷í÷í÷øøøø ø'ø.øBøPøeøeøkøsø|ø�ø¢ø«ø³ø¹øÂøÂøÂø×øíøíøíøùù
+ùùùù"ù-ù-ùAùGùRùRùRùfùlùoùvù|ùù‡ù’ù’ù¦ù¬ù·ù·ù·ùËùÑùÔùÛùáùäùæùúú0ú6úAúAúUú[úcúcúpúý�pßvv”Ÿ¦¦¯¿¿ÓÚàæë ))=CHk~‚ˆŸ¦´ºÆÐÕÜõÿ!&.M[[g„£ª´ÃÉÏÕÛñ&2FQZmz‡•²¿Êß+4:FKRRfq~………“¢¤²ÁÓÓÛþ	J¨æ8NNu’�¯½ÄÓÚâø(8BDTdmsx†Œ’�¨«²ÌÔî 1@KSSjƒ‡�—©±¸¼ÅÇÙðþ
+066HÐ	8ž%ž%¼%Ä%Ê%Ê%×%ì%ú%&&&
&&&$&+&7&D&J&T&T&_&i&i&}&ƒ&“&™&ž&¥&¥&½&½&Ã&Ò&å&ë&î&ô&ô&ö&ö&ü&'''' '$'$'9'C'C'Y'b'h'n'„'‰'�'¥'©'©'±'·'½'Ç'Î'Õ'Ú'Þ'ð'ð'(((((((;(A(E(L(R(X(X(Z(Z(^(e(k(q(v(v(v(¡(¡(²(²(É(Ö(Ú(Ú(â(÷()))))!)!)5)F)F)[)o)w)…)‰)›)Ÿ)¥)¾)À)Æ)Ó)Õ)á)***5*@*F*L*R*[*b*w*ˆ*�*”*¦*ª*°*É*Ë*Ñ*Þ*à*ì*++++&+-+-+=+[+d+j+j++„+„+‹+’+¤+©+©+©+Ã+Å+ß+á+û+,	,,3,9,?,K,_,f,l,x,},},„,ˆ,�,�,Ÿ,§,¬,·,½,É,Î,Ô,Ù,á,æ,õ,õ,
--'-6-6-L-N-N-d-d-k-z--ˆ-•-š-¡-¦-¦-­-±-¸-Æ-È-Ð-Ô-Þ-ê-ñ-õ-ý-.
..(.-.9.9.B.B.\.\.j.p.u.y.~.~.~.~.„.†.†.©.¯.µ.Ò.Ô.Ô.Ô.á.á.á.æ.æ.	/”2È0EE&E&E:E@EKEYEeEyEyE�E“E“EžE®E»EÉEÖEFxjv¸5¸5È5Ï5ë5ù5þ5þ56 6 616€Üé€
€
‰
”
Ÿ
ª
µ
À
Ë
Ö
á
ã
ó
°¡´°>°>Æ>Ù>Û>å>÷>þ>???$?.?C?C?J?M?ˆ?	�Ø#Ø#ì#ÿ#	$$$+$=$D$\$
+˜3C8-8-H-H-c-s-z-‘-¬-¾-Â-í-hé3ø
ø

+*szŽ•›£¬²º¼ÂÊÑØ÷	Gqz™±Åâ7OQX__|¶ð*džØØØäïôôô  &166<GLLR]hmms~ƒƒ‰”Ÿ¤¤ªµÀÅÅËÖáìññ÷ý$/5::@KV\aagrx}}ƒŽ™Ÿ¡¡§²½ÃÅÅËÖáìòôôûû	$33HƒŠŠŠ’¯¯½ÕÕÞç.Laa~Œ¨ÆÛÛçê4;;HQSacqs��¥§®®»ÄÆÔÖäæôô!4GhuŽ–ž¦®¼ÊÌÔÜäìú'=SsŽ™£ªÄØäë+0299Ncv}}Š“•£¥³µÃÃÃââ&)9=MQaee“ž£±ÆÑç)+:<KUUcl†�§»ßó"6;g{€€Ž�ž§ÇÛÝßææóüþ,,KKKKKaaah‚—¢ºÌÚÚßßßç"<QVVV]wŒ‘‘˜›µÅÚßßçê  ) . . 5 8 R b w | | ‘ ‘ Ÿ ¡ ° ¹ Ó è í í ÿ      - 2 2 D I I [ ` ` r w w ‰ Ž Ž   ¥ ¥ · ¼ ¼ Î Ó Ó å ç ç ù û û 
!!!!K!K!a!a!a!h!‚!—!œ!œ!œ!¤!¾!Ó!Ø!Ø!Ø!ß!ù!"""""4"I"N"N"c"c"q"s"‚"‹"¥"º"¿"¿"Ñ"Ö"Ö"è"í"í"ÿ"#####-#2#2#D#I#I#[#`#`#r#w#w#‰#Ž#Ž# #¥#¥#·#¹#¹#Ë#Í#Í#ß#á#á#ä#$$$($($2$D$Y$c$u$Š$œ$®$¹$Ï$ß$ô$%%4%6%G%a%r%y%4-˜CSð-ð-....&.6.<.S.k.n.€.°.
PµÜxx†���š¥¶¶ÁÌÌÐÕÕæêóóö



%
2
F
M
O
S
U
m
y
PcjÖÖÚäü	&Hjp&&4MTt
\ No newline at end of file
diff --git a/TempleOS/Compiler/Compiler.PRJ b/TempleOS/Compiler/Compiler.PRJ
index cfcbcbf..bb0bb83 100644
--- a/TempleOS/Compiler/Compiler.PRJ
+++ b/TempleOS/Compiler/Compiler.PRJ
@@ -8,7 +8,7 @@
 #include "Unassembler"
 #include "Directives"
 #include "Lex"
-#include "CodeGen"
+#include "ICLCC"
 #include "Hash1b"
 #include "Assembler"
 #include "ExpParser"
@@ -19,6 +19,6 @@
 #include "OptPass4"
 #include "OptPass5"
 #include "OptPass6"
-#include "OptPass789A"
+#include "OptPass789"
 #include "CmpInit"
 #include "CmpMain"
diff --git a/TempleOS/Compiler/ExpParser.CPP b/TempleOS/Compiler/ExpParser.CPP
index 1c5fe48..53672c2 100644
--- a/TempleOS/Compiler/ExpParser.CPP
+++ b/TempleOS/Compiler/ExpParser.CPP
@@ -49,13 +49,62 @@ U0 PrsPopDeref(CPrsStk *ps)
 #define PE_POP_ALL1		11
 #define PE_POP_ALL2		12
 
+CIntermediateCode *PrsAddOp(CLex *lx,I64 stk_op,CHashClass *tempc)
+{
+  CIntermediateCode *tempi=lx->lcc.lcc_root.last;
+  Bool div_sizeof=FALSE;
+  switch (stk_op.u16[0]) {
+    case IC_ADD:
+      if (tempc->ptr_cnt && !tempi->ic_class->ptr_cnt &&
+	    tempi->ic_class->sub_type!=IT_F64) {
+	LCCAdd(lx,IC_SIZEOF,1,sys_internal_types[IT_I64]);
+	LCCAdd(lx,IC_MUL,0,sys_internal_types[IT_I64]);
+      }
+      break;
+    case IC_SUB:
+      if (tempc->ptr_cnt && tempi->ic_class->sub_type!=IT_F64) {
+	if (!tempi->ic_class->ptr_cnt) {
+	  LCCAdd(lx,IC_SIZEOF,1,sys_internal_types[IT_I64]);
+	  LCCAdd(lx,IC_MUL,0,sys_internal_types[IT_I64]);
+	} else
+	  div_sizeof=TRUE;
+      }
+      break;
+    case IC_AND_AND:
+    case IC_OR_OR:
+      LCCAdd(lx,IC_NOP1,0,sys_internal_types[IT_I64]);
+      break;
+    case IC_ADD_EQUAL:
+    case IC_SUB_EQUAL:
+      if (tempc->ptr_cnt) {
+	LCCAdd(lx,IC_SIZEOF,1,sys_internal_types[IT_I64]);
+	LCCAdd(lx,IC_MUL,0,sys_internal_types[IT_I64]);
+      }
+      break;
+  }
+  tempi=LCCAdd(lx,stk_op,0,tempc);
+  if (stk_op.u8[3]&ECF_HAS_PUSH_CMP) {
+    tempi->ic_flags|=ICF_POP_CMP;
+    LCCAdd(lx,IC_NOP1,0,sys_internal_types[IT_I64]);
+    LCCAdd(lx,IC_AND_AND,0,sys_internal_types[IT_I64],ICF_POP_CMP);
+  }
+  if (div_sizeof) {
+    tempc--;
+    if (tempc->size!=1) {
+      LCCAdd(lx,IC_IMM_U64,tempc->size,sys_internal_types[IT_I64]);
+      LCCAdd(lx,IC_DIV,0,sys_internal_types[IT_I64]);
+      tempc=sys_internal_types[IT_I64];
+    }
+  }
+  return tempi;
+}
+
 U0 PrsExpression2(CLex *lx,I64 *_max_prec,CPrsStk *ps)
 {
-  Bool div_sizeof;
   I64 i,cur_op,stk_op,state,max_prec=PREC_NULL,unary_pre_prec,paren_prec,
 	unary_post_prec,left_prec=PREC_MAX;
-  CIntermediateCode *tempi,*tempi2;
-  CHashClass *tempc,*tempc1;
+  CIntermediateCode *tempi;
+  CHashClass *tempc;
   CMemberLst *local_var;
   CArrayDim *tempad=NULL;
 
@@ -94,13 +143,13 @@ pe_unary_term1:
 	    i=IC_PP_+PREC_UNARY_PRE<<16;
 	  lx->flags&=~(LF_PREINC|LF_PREDEC|LF_POSTINC|LF_POSTDEC);
 	}
-	tempi=lx->cbh.cb_last_out_ptr;
+	tempi=lx->lcc.lcc_root.last;
 	if (lx->flags & (LF_RAX|LF_ARRAY)) {
 	  if (tempi->ic_opcode==IC_DEREF)
 	    tempi->ic_opcode=i;
 	} else {
 	  tempc=OptClassFwd(tempi->ic_class-1);
-	  CBICAdd(lx,i,0,tempc);
+	  LCCAdd(lx,i,0,tempc);
 	}
       case PE_CHECK_BINARY_OPS1:
 pe_check_binary_ops1:
@@ -128,11 +177,11 @@ pe_check_binary_ops2:
 	  left_prec=cur_op.i8[2];
 	  PrsPush(ps,tempc);
 	  PrsPush(ps,stk_op);
-	  PrsPush(ps,lx->cbh.cb_last_out_ptr->ic_class);
+	  PrsPush(ps,lx->lcc.lcc_root.last->ic_class);
 	  PrsPush(ps,cur_op);
 	  goto pe_unary_term1;
 	} else {
-	  tempi=lx->cbh.cb_last_out_ptr;
+	  tempi=lx->lcc.lcc_root.last;
 	  tempc=tempi->ic_class;
 	  if (stk_op.u16[0]==IC_DEREF && tempc->ptr_cnt)
 	    tempc--;
@@ -144,7 +193,7 @@ pe_check_binary_ops2:
 	  }
 	  tempc=OptClassFwd(tempc);
 	  if (stk_op)
-	    CBICAdd(lx,stk_op,0,tempc);
+	    LCCAdd(lx,stk_op,0,tempc);
 	  goto pe_check_binary_ops2;
 	}
 
@@ -158,16 +207,16 @@ pe_do_binary_op:
 	switch (cur_op.u16[0]) {
 	  case IC_ADD:
 	  case IC_SUB:
-	    tempi=lx->cbh.cb_last_out_ptr;
+	    tempi=lx->lcc.lcc_root.last;
 	    if (!tempi->ic_class->ptr_cnt &&
 		  tempi->ic_class->sub_type!=IT_F64) {
-	      CBICAdd(lx,IC_SIZEOF,1,sys_internal_types[IT_I64]);
-	      CBICAdd(lx,IC_MUL,0,sys_internal_types[IT_I64]);
+	      LCCAdd(lx,IC_SIZEOF,1,sys_internal_types[IT_I64]);
+	      LCCAdd(lx,IC_MUL,0,sys_internal_types[IT_I64]);
 	    }
 	    break;
 	  case IC_AND_AND:
 	  case IC_OR_OR:
-	    CBICAdd(lx,IC_NOP1,0,sys_internal_types[IT_I64]);
+	    LCCAdd(lx,IC_NOP1,0,sys_internal_types[IT_I64]);
 	    break;
 	}
 	if (lx->flags & LF_FUN_EXP) {
@@ -185,7 +234,7 @@ pe_do_binary_op:
 	  max_prec=cur_op.u8[2];
 	left_prec=cur_op.u8[2];
 	if (Bt(assign_bitmap,cur_op.u16[0])) {
-	  tempi=lx->cbh.cb_last_out_ptr;
+	  tempi=lx->lcc.lcc_root.last;
 	  tempc=OptClassFwd(tempi->ic_class);
 	  if (!Bt(deref_bitmap,tempi->ic_opcode) ||
 		!tempc->ptr_cnt && !Bt(&tempc->flags,Cf_INTERNAL_TYPE))
@@ -206,69 +255,22 @@ pe_pop_higher:
 	} else if (cur_op.u8[2]&~ASSOC_MASK<=stk_op.u8[2]&~ASSOC_MASK)
 	  goto pe_push_lower;
 
-	div_sizeof=FALSE;
-	switch (stk_op.u16[0]) {
-	  case IC_ADD:
-	    if (tempc->ptr_cnt) {
-	      tempi=lx->cbh.cb_last_out_ptr;
-	      if (!tempi->ic_class->ptr_cnt &&
-		    tempi->ic_class->sub_type!=IT_F64) {
-		CBICAdd(lx,IC_SIZEOF,1,sys_internal_types[IT_I64]);
-		CBICAdd(lx,IC_MUL,0,sys_internal_types[IT_I64]);
-	      }
-	    }
-	    break;
-	  case IC_SUB:
-	    if (tempc->ptr_cnt) {
-	      tempi=lx->cbh.cb_last_out_ptr;
-	      if (!tempi->ic_class->ptr_cnt &&
-		    tempi->ic_class->sub_type!=IT_F64) {
-		CBICAdd(lx,IC_SIZEOF,1,sys_internal_types[IT_I64]);
-		CBICAdd(lx,IC_MUL,0,sys_internal_types[IT_I64]);
-	      } else
-		div_sizeof=TRUE;
-	    }
-	    break;
-	  case IC_AND_AND:
-	  case IC_OR_OR:
-	    CBICAdd(lx,IC_NOP1,0,sys_internal_types[IT_I64]);
-	    break;
-	  case IC_ADD_EQUAL:
-	  case IC_SUB_EQUAL:
-	    if (tempc->ptr_cnt) {
-	      CBICAdd(lx,IC_SIZEOF,1,sys_internal_types[IT_I64]);
-	      CBICAdd(lx,IC_MUL,0,sys_internal_types[IT_I64]);
-	    }
-	    break;
-	}
-	tempi2=CBICAdd(lx,stk_op,0,tempc);
-	if (stk_op.u8[3]&ECF_HAS_PUSH_CMP) {
-	  tempi2->ic_flags|=ICF_POP_CMP;
-	  CBICAdd(lx,IC_NOP1,0,sys_internal_types[IT_I64]);
-	  CBICAdd(lx,IC_AND_AND,0,sys_internal_types[IT_I64],ICF_POP_CMP);
-	}
+	tempi=PrsAddOp(lx,stk_op,tempc);
+
 	if (Bt(cmp_bitmap,cur_op.u16[0]) && Bt(cmp_bitmap,stk_op.u16[0])) {
-	  tempi2->ic_flags|=ICF_PUSH_CMP;
-	  CBICAdd(lx,IC_NOP1,0,sys_internal_types[IT_I64]);
-	  CBICAdd(lx,IC_PUSH_CMP,0,tempc);
+	  tempi->ic_flags|=ICF_PUSH_CMP;
+	  LCCAdd(lx,IC_NOP1,0,sys_internal_types[IT_I64]);
+	  LCCAdd(lx,IC_PUSH_CMP,0,tempc);
 	  cur_op.u8[3]|=ECF_HAS_PUSH_CMP;
 	} else if (cur_op.u16[0]==IC_AND_AND || cur_op.u16[0]==IC_OR_OR)
-	  CBICAdd(lx,IC_NOP1,0,sys_internal_types[IT_I64]);
-	if (div_sizeof) {
-	  tempc1=tempc-1;
-	  if (tempc1->size!=1) {
-	    CBICAdd(lx,IC_IMM_U64,tempc1->size,sys_internal_types[IT_I64]);
-	    CBICAdd(lx,IC_DIV,0,sys_internal_types[IT_I64]);
-	    tempc=sys_internal_types[IT_I64];
-	  }
-	}
+	  LCCAdd(lx,IC_NOP1,0,sys_internal_types[IT_I64]);
 	goto pe_pop_higher;
 
       case PE_PUSH_LOWER:
 pe_push_lower:
 	PrsPush(ps,tempc);
 	PrsPush(ps,stk_op);
-	PrsPush(ps,lx->cbh.cb_last_out_ptr->ic_class);
+	PrsPush(ps,lx->lcc.lcc_root.last->ic_class);
 	PrsPush(ps,cur_op);
 	goto pe_unary_term1;
 
@@ -282,53 +284,9 @@ pe_pop_all1:
 pe_pop_all2:
 	stk_op=PrsPop(ps);
 	tempc=PrsPop(ps);
-	div_sizeof=FALSE;
-	tempi=lx->cbh.cb_last_out_ptr;
-	switch (stk_op.u16[0]) {
-	  case 0:
-	    goto pe_done;
-	  case IC_ADD:
-	    if (tempc->ptr_cnt && !tempi->ic_class->ptr_cnt &&
-		  tempi->ic_class->sub_type!=IT_F64) {
-	      CBICAdd(lx,IC_SIZEOF,1,sys_internal_types[IT_I64]);
-	      CBICAdd(lx,IC_MUL,0,sys_internal_types[IT_I64]);
-	    }
-	    break;
-	  case IC_SUB:
-	    if (tempc->ptr_cnt && tempi->ic_class->sub_type!=IT_F64) {
-	      if (!tempi->ic_class->ptr_cnt) {
-		CBICAdd(lx,IC_SIZEOF,1,sys_internal_types[IT_I64]);
-		CBICAdd(lx,IC_MUL,0,sys_internal_types[IT_I64]);
-	      } else
-		div_sizeof=TRUE;
-	    }
-	    break;
-	  case IC_AND_AND:
-	  case IC_OR_OR:
-	    CBICAdd(lx,IC_NOP1,0,sys_internal_types[IT_I64]);
-	    break;
-	  case IC_ADD_EQUAL:
-	  case IC_SUB_EQUAL:
-	    if (tempc->ptr_cnt) {
-	      CBICAdd(lx,IC_SIZEOF,1,sys_internal_types[IT_I64]);
-	      CBICAdd(lx,IC_MUL,0,sys_internal_types[IT_I64]);
-	    }
-	    break;
-	}
-	tempi=CBICAdd(lx,stk_op,0,tempc);
-	if (stk_op.u8[3]&ECF_HAS_PUSH_CMP) {
-	  tempi->ic_flags|=ICF_POP_CMP;
-	  CBICAdd(lx,IC_NOP1,0,sys_internal_types[IT_I64]);
-	  CBICAdd(lx,IC_AND_AND,0,sys_internal_types[IT_I64],ICF_POP_CMP);
-	}
-	if (div_sizeof) {
-	  tempc1=tempc-1;
-	  if (tempc1->size!=1) {
-	    CBICAdd(lx,IC_IMM_U64,tempc1->size,sys_internal_types[IT_I64]);
-	    CBICAdd(lx,IC_DIV,0,sys_internal_types[IT_I64]);
-	    tempc=sys_internal_types[IT_I64];
-	  }
-	}
+	if (!stk_op.u16[0])
+	  goto pe_done;
+	PrsAddOp(lx,stk_op,tempc);
 	goto pe_pop_all2;
     }
   }
@@ -369,7 +327,7 @@ Bool PrsExpression(CLex *lx,I64 *_max_prec,Bool end_exp,CPrsStk *_ps=NULL)
     Free(ps);
   }
   if (end_exp && result)
-    CBICAdd(lx,IC_END_EXP,0,0);
+    LCCAdd(lx,IC_END_EXP,0,0);
   lx->flags|=old_flags&(LF_PREINC|LF_PREDEC);
   return result;
 }
@@ -419,7 +377,7 @@ pu_sizeof_member:
     while (Lex(lx)=='*');
     i=sizeof(U8 *);
   }
-  CBICAdd(lx,IC_IMM_U64,i,sys_internal_types[IT_I64]);
+  LCCAdd(lx,IC_IMM_U64,i,sys_internal_types[IT_I64]);
 }
 
 U0 PrsOffsetOf(CLex *lx)
@@ -450,31 +408,31 @@ U0 PrsOffsetOf(CLex *lx)
     i+=tempm->offset;
     tempc=tempm->member_class;
   } while (Lex(lx)=='.');
-  CBICAdd(lx,IC_IMM_U64,i,sys_internal_types[IT_I64]);
+  LCCAdd(lx,IC_IMM_U64,i,sys_internal_types[IT_I64]);
 }
 
 I64 PrsFunCall(CLex *lx,CPrsStk *ps,Bool indirect,CHashFun *tempf)
 {
-  I64 i,argc_cnt;
+  I64 i,argc_cnt,dft_val;
   Bool is_first_arg=TRUE,needs_right_paren,is_str_out,is_putchar,is_template_fun;
-  CHashClass *tempc1,*tempc2;
+  CHashClass *tempc2,*last_class=NULL;
   CMemberLst *tempm;
-  CLexCodeBlkCtrl *tempcbh,*tempcbh1;
-  CCodeBlkMisc *mc;
+  CLexCodeCtrl *tempcbh,*tempcbh1;
+  CLexCodeMisc *mc;
   CIntermediateCode *tempi;
 
   if (!tempf) {
-    if (lx->token==TK_U8) {
+    if (lx->token==TK_CHAR_CONST) {
       if (!(tempf=HashFind("PutChar",lx->htc.hash_table_lst,HTT_FUN)))
-	LexExcept(lx,"ST_HEADER_FOR_PRINTF");
+	LexExcept(lx,"ST_HEADER_FOR_PRINT");
       if (!lx->cur_i) //empty char signals PutChar with variable
 	Lex(lx);
       is_str_out=FALSE;
       is_putchar=TRUE;
     } else {
-      if (!(tempf=HashFind("PrintF",lx->htc.hash_table_lst,HTT_FUN)))
-	LexExcept(lx,"ST_HEADER_FOR_PRINTF");
-      if (!*lx->ident) //empty string signals PrintF with variable fmt_str
+      if (!(tempf=HashFind("Print",lx->htc.hash_table_lst,HTT_FUN)))
+	LexExcept(lx,"ST_HEADER_FOR_PRINT");
+      if (!*lx->ident) //empty string signals Print with variable fmt_str
 	Lex(lx);
       is_putchar=FALSE;
       is_str_out=TRUE;
@@ -491,14 +449,14 @@ I64 PrsFunCall(CLex *lx,CPrsStk *ps,Bool indirect,CHashFun *tempf)
 
   if (indirect) {
     if (!(lx->flags & (LF_RAX | LF_ARRAY)))
-      CBICAdd(lx,IC_DEREF,0,sys_internal_types[IT_PTR]);
-    lx->cbh.cb_last_out_ptr->ic_class=sys_internal_types[IT_PTR];
-    CBICAdd(lx,IC_SET_RAX,0,sys_internal_types[IT_PTR]);
-    CBICAdd(lx,IC_NOP2,1,sys_internal_types[IT_PTR]); //balance the books
+      LCCAdd(lx,IC_DEREF,0,sys_internal_types[IT_PTR]);
+    lx->lcc.lcc_root.last->ic_class=sys_internal_types[IT_PTR];
+    LCCAdd(lx,IC_SET_RAX,0,sys_internal_types[IT_PTR]);
+    LCCAdd(lx,IC_NOP2,1,sys_internal_types[IT_PTR]); //balance the books
   }
-  CBPush(lx);
-  tempcbh=lx->cbh.cb_next;
-  lx->cbh.cb_next=NULL;
+  LCCPush(lx);
+  tempcbh=lx->lcc.lcc_next;
+  lx->lcc.lcc_next=NULL;
   i=tempf->arg_cnt;
   tempm=tempf->member_lst;
   argc_cnt=0;
@@ -508,7 +466,7 @@ I64 PrsFunCall(CLex *lx,CPrsStk *ps,Bool indirect,CHashFun *tempf)
   } else
     needs_right_paren=FALSE;
   while (i--) {
-    CBOutPtrsInit(lx);
+    LCCInit(lx);
     if (!is_first_arg) {
       if (is_str_out) {
 	if (lx->token==',')
@@ -526,52 +484,47 @@ I64 PrsFunCall(CLex *lx,CPrsStk *ps,Bool indirect,CHashFun *tempf)
     }
     if (tempm->flags & MLF_DFT_AVAILABLE &&
 	(lx->token==')' || lx->token==',' || !needs_right_paren)) {
-      if (tempm->flags & MLF_STR_DFT_AVAILABLE &&
+      dft_val=tempm->dft_val;
+      if (tempm->flags & MLF_LASTCLASS && last_class)
+	dft_val=(last_class-last_class->ptr_cnt)->str;
+      if (tempm->flags & (MLF_STR_DFT_AVAILABLE|MLF_LASTCLASS) &&
 	  lx->flags&LF_AOT_COMPILE) {
-	mc=CBMiscNew(lx,CBMT_STR_CONST);
-	CBICAdd(lx,IC_STR_CONST,mc,sys_internal_types[IT_U8]+1);
-	mc->st_len=StrLen(tempm->dft_val)+1;
-	mc->str=StrNew(tempm->dft_val);
+	mc=LCCMiscNew(lx,CMT_STR_CONST);
+	LCCAdd(lx,IC_STR_CONST,mc,sys_internal_types[IT_U8]+1);
+	mc->st_len=StrLen(dft_val)+1;
+	mc->str=StrNew(dft_val);
 	lx->flags|=LF_HAS_MISC_DATA;
       } else
-	CBICAdd(lx,IC_IMM_U64,tempm->dft_val,tempm->member_class);
+	LCCAdd(lx,IC_IMM_U64,dft_val,tempm->member_class);
     } else {
       if (!PrsExpression(lx,NULL,FALSE,ps))
 	throw(EXCEPT_COMPILER,3);
       else {
-	CBPush(lx);
-	CBICAdd(lx,IC_END,0,0);
+	LCCPush(lx);
 	lx->pass=0;
-	      OptPass012(lx,NULL,FALSE);
+	      OptPass012(lx,NULL);
 	lx->pass=1;
-	tempi=OptPass012(lx,NULL,FALSE);
-	CBPop(lx);
-	tempc1=OptClassFwd(tempi->ic_class);
+	tempi=OptPass012(lx,NULL);
+	LCCPop(lx);
+	last_class=OptClassFwd(tempi->ic_class);
 	tempc2=OptClassFwd(tempm->member_class);
 	if (tempc2->sub_type==IT_F64 && !tempm->dim.next &&
-	    tempc1->sub_type!=IT_F64)
+	    last_class->sub_type!=IT_F64)
 	  tempi->ic_flags|=ICF_R_TO_F64;
 	else
 	if (tempc2->sub_type!=IT_F64 &&
-	    tempc1->sub_type==IT_F64)
+	    last_class->sub_type==IT_F64)
 	  tempi->ic_flags|=ICF_R_TO_INT;
       }
     }
-    CBICAdd(lx,IC_END,0,0);
-    CBPush(lx);
+    LCCPush(lx);
     is_first_arg=FALSE;
     tempm=tempm->next;
   }
-  if (is_str_out && lx->token==';') {
-    if (!(tempf=HashFind("PutS",lx->htc.hash_table_lst,HTT_FUN)))
-      LexExcept(lx,"ST_HEADER_FOR_PRINTF");
-    tempm=NULL;
-  }
   if (tempm && tempm->flags & MLF_DOT_DOT_DOT) {
-    CBOutPtrsInit(lx);
-    tempi=CBICAdd(lx,IC_IMM_U64,0,tempm->member_class);
-    CBICAdd(lx,IC_END,0,0);
-    CBPush(lx);
+    LCCInit(lx);
+    tempi=LCCAdd(lx,IC_IMM_U64,0,tempm->member_class);
+    LCCPush(lx);
     if (is_str_out) {
       if (lx->token!=';') {
 	do {
@@ -581,11 +534,10 @@ I64 PrsFunCall(CLex *lx,CPrsStk *ps,Bool indirect,CHashFun *tempf)
 	    else
 	      LexExcept(lx,"ST_EXPECTING_COMMA");
 	  }
-	  CBOutPtrsInit(lx);
+	  LCCInit(lx);
 	  if (!PrsExpression(lx,NULL,FALSE,ps))
 	    throw(EXCEPT_COMPILER,4);
-	  CBICAdd(lx,IC_END,0,0);
-	  CBPush(lx);
+	  LCCPush(lx);
 	  is_first_arg=FALSE;
 	  argc_cnt++;
 	} while (lx->token==',');
@@ -599,11 +551,10 @@ I64 PrsFunCall(CLex *lx,CPrsStk *ps,Bool indirect,CHashFun *tempf)
 	    else
 	      LexExcept(lx,"ST_EXPECTING_COMMA");
 	  }
-	  CBOutPtrsInit(lx);
+	  LCCInit(lx);
 	  if (!PrsExpression(lx,NULL,FALSE,ps))
 	    throw(EXCEPT_COMPILER,4);
-	  CBICAdd(lx,IC_END,0,0);
-	  CBPush(lx);
+	  LCCPush(lx);
 	  is_first_arg=FALSE;
 	  argc_cnt++;
 	} while (lx->token==',');
@@ -617,56 +568,56 @@ I64 PrsFunCall(CLex *lx,CPrsStk *ps,Bool indirect,CHashFun *tempf)
     else
       LexExcept(lx,"ST_MISSING_RIGHT_PAREN");
   }
-  tempcbh1=tempcbh->cb_next;
-  tempcbh->cb_next=lx->cbh.cb_next;
-  lx->cbh.cb_next=tempcbh;
-  CBPop(lx);
-  tempcbh=lx->cbh.cb_next;
-  lx->cbh.cb_next=tempcbh1;
+  tempcbh1=tempcbh->lcc_next;
+  tempcbh->lcc_next=lx->lcc.lcc_next;
+  lx->lcc.lcc_next=tempcbh;
+  LCCPop(lx);
+  tempcbh=lx->lcc.lcc_next;
+  lx->lcc.lcc_next=tempcbh1;
   if (!is_template_fun)
-    CBICAdd(lx,IC_CALL_START,tempf,0);
+    LCCAdd(lx,IC_CALL_START,tempf,0);
   if (indirect)
-    CBICAdd(lx,IC_PUSH_REGS,1<return_class);
+    LCCAdd(lx,IC_PUSH_REGS,1<return_class);
   while (tempcbh) {
-    tempcbh1=tempcbh->cb_next;
-    CBAppend(lx,tempcbh);
+    tempcbh1=tempcbh->lcc_next;
+    LCCAppend(lx,tempcbh);
     if (!Bt(tempf->flags,Ff_INTERNAL))
-      lx->cbh.cb_last_out_ptr->ic_flags|=ICF_PUSH_RESULT;
+      lx->lcc.lcc_root.last->ic_flags|=ICF_PUSH_RESULT;
     tempcbh=tempcbh1;
   }
   if (Bt(tempf->flags,Ff_INTERNAL))
-    CBICAdd(lx,tempf->executable_addr,0,tempf->return_class);
+    LCCAdd(lx,tempf->executable_addr,0,tempf->return_class);
   else {
     if (indirect)
-      CBICAdd(lx,IC_CALL_INDIRECT,(argc_cnt+tempf->arg_cnt)<<3,tempf->return_class);
+      LCCAdd(lx,IC_CALL_INDIRECT,(argc_cnt+tempf->arg_cnt)<<3,tempf->return_class);
     else if (Bt(tempf->flags,Cf_EXTERN)) {
       lx->abs_cnts.externs++;
       if (lx->flags&LF_AOT_COMPILE) {
 	if (tempf->type&HTF_IMPORT)
-	  CBICAdd(lx,IC_CALL_IMPORT,tempf,tempf->return_class);
+	  LCCAdd(lx,IC_CALL_IMPORT,tempf,tempf->return_class);
 	else
-	  CBICAdd(lx,IC_CALL_EXTERN,tempf,tempf->return_class);
+	  LCCAdd(lx,IC_CALL_EXTERN,tempf,tempf->return_class);
       } else
-	CBICAdd(lx,IC_CALL_INDIRECT2,&tempf->executable_addr,tempf->return_class);
+	LCCAdd(lx,IC_CALL_INDIRECT2,&tempf->executable_addr,tempf->return_class);
     } else {
-      CBICAdd(lx,IC_CALL,tempf->executable_addr,tempf->return_class);
+      LCCAdd(lx,IC_CALL,tempf->executable_addr,tempf->return_class);
     }
     if ((Bt(tempf->flags,Ff_RET1) || Bt(tempf->flags,Ff_ARGPOP)) && !Bt(tempf->flags,Ff_NOARGPOP)) {
       if (indirect) {
-	CBICAdd(lx,IC_ADD_RSP1,(argc_cnt+tempf->arg_cnt)<<3,tempf->return_class);
-	CBICAdd(lx,IC_ADD_RSP,8,tempf->return_class);
+	LCCAdd(lx,IC_ADD_RSP1,(argc_cnt+tempf->arg_cnt)<<3,tempf->return_class);
+	LCCAdd(lx,IC_ADD_RSP,8,tempf->return_class);
       } else
-	CBICAdd(lx,IC_ADD_RSP1,(argc_cnt+tempf->arg_cnt)<<3,tempf->return_class);
+	LCCAdd(lx,IC_ADD_RSP1,(argc_cnt+tempf->arg_cnt)<<3,tempf->return_class);
     } else {
       if (indirect)
 	argc_cnt++;
-      CBICAdd(lx,IC_ADD_RSP,(argc_cnt+tempf->arg_cnt)<<3,tempf->return_class);
+      LCCAdd(lx,IC_ADD_RSP,(argc_cnt+tempf->arg_cnt)<<3,tempf->return_class);
     }
   }
   if (!is_template_fun)
-    CBICAdd(lx,IC_CALL_END,tempf,tempf->return_class);
+    LCCAdd(lx,IC_CALL_END,tempf,tempf->return_class);
   if (is_str_out||is_putchar)
-    CBICAdd(lx,IC_END_EXP,0,0);
+    LCCAdd(lx,IC_END_EXP,0,0);
   lx->flags=(lx->flags|LF_RAX) & ~(LF_ARRAY|LF_FUN_EXP);
   return PE_UNARY_MODIFIERS;
 }
@@ -675,41 +626,41 @@ I64 PrsUnaryTerm(CLex *lx,CPrsStk *ps,CMemberLst **_local_var,CArrayDim **_tempa
     I64 *max_prec,I64 *unary_pre_prec,I64 *paren_prec)
 {
   I64 i,*i_ptr,j,d,size;
-  CHashExport *tempess;
+  CHashExport *tempex;
   CHashClass *tempc;
   CHashFun *tempf;
   CHashGlblVar *tempg;
   CMemberLst *tempm;
   CLexUndef *templu;
-  CCodeBlkMisc *mc;
+  CLexCodeMisc *mc;
   Bool paren_warn;
 
   *_local_var=NULL;
   *paren_prec=PREC_NULL;
   switch (lx->token) {
     case TK_INTEGER:
-    case TK_U8:
+    case TK_CHAR_CONST:
       if (PREC_TERM>*max_prec)
 	*max_prec=PREC_TERM;
       if (lx->cur_i<0)
-	CBICAdd(lx,IC_IMM_U64,lx->cur_i,sys_internal_types[IT_U64]);
+	LCCAdd(lx,IC_IMM_U64,lx->cur_i,sys_internal_types[IT_U64]);
       else
-	CBICAdd(lx,IC_IMM_U64,lx->cur_i,sys_internal_types[IT_I64]);
+	LCCAdd(lx,IC_IMM_U64,lx->cur_i,sys_internal_types[IT_I64]);
       Lex(lx);
       return PE_MAYBE_MODIFIERS;
     case TK_F64:
       if (PREC_TERM>*max_prec)
 	*max_prec=PREC_TERM;
       i_ptr=&lx->cur_f;
-      CBICAdd(lx,IC_IMM_F64,*i_ptr,sys_internal_types[IT_F64]);
+      LCCAdd(lx,IC_IMM_F64,*i_ptr,sys_internal_types[IT_F64]);
       Lex(lx);
       return PE_MAYBE_MODIFIERS;
     case TK_STR:
       if (PREC_TERM>*max_prec)
 	*max_prec=PREC_TERM;
       d=LexExtStr(lx,&size);
-      mc=CBMiscNew(lx,CBMT_STR_CONST);
-      CBICAdd(lx,IC_STR_CONST,mc,sys_internal_types[IT_U8]+1);
+      mc=LCCMiscNew(lx,CMT_STR_CONST);
+      LCCAdd(lx,IC_STR_CONST,mc,sys_internal_types[IT_U8]+1);
       mc->st_len=size;
       mc->str=d;
       lx->flags|=LF_HAS_MISC_DATA;
@@ -720,8 +671,8 @@ I64 PrsUnaryTerm(CLex *lx,CPrsStk *ps,CMemberLst **_local_var,CArrayDim **_tempa
       d=lx->ident;
       size=lx->ident_len;
       lx->ident=NULL;
-      mc=CBMiscNew(lx,CBMT_STR_CONST);
-      CBICAdd(lx,IC_STR_CONST,mc,sys_internal_types[IT_U8]+1);
+      mc=LCCMiscNew(lx,CMT_STR_CONST);
+      LCCAdd(lx,IC_STR_CONST,mc,sys_internal_types[IT_U8]+1);
       mc->st_len=size;
       mc->str=d;
       lx->flags|=LF_HAS_MISC_DATA;
@@ -731,7 +682,7 @@ I64 PrsUnaryTerm(CLex *lx,CPrsStk *ps,CMemberLst **_local_var,CArrayDim **_tempa
     case TK_INS_BINARY_SIZE:
       if (PREC_TERM>*max_prec)
 	*max_prec=PREC_TERM;
-      CBICAdd(lx,IC_IMM_U64,lx->cur_i,sys_internal_types[IT_U64]);
+      LCCAdd(lx,IC_IMM_U64,lx->cur_i,sys_internal_types[IT_U64]);
       Lex(lx);
       return PE_MAYBE_MODIFIERS;
     case '(':
@@ -769,7 +720,7 @@ I64 PrsUnaryTerm(CLex *lx,CPrsStk *ps,CMemberLst **_local_var,CArrayDim **_tempa
 	    if (Bt(tempf->flags,Cf_EXTERN)) {
 	      if (lx->flags&LF_AOT_COMPILE) {
 		if (lx->flags&LF_ASM_EXPRESSIONS) {
-		  if (tempess=HashFind(tempf->str,lx->htc.hash_table_lst,HTT_EXPORT_SYS_SYM))
+		  if (tempex=HashFind(tempf->str,lx->htc.hash_table_lst,HTT_EXPORT_SYS_SYM))
 		    goto pu_export_sys_sym;
 		  else
 		    goto pu_new_sys_sym;
@@ -777,18 +728,18 @@ I64 PrsUnaryTerm(CLex *lx,CPrsStk *ps,CMemberLst **_local_var,CArrayDim **_tempa
 		LexExcept(lx,"ST_ADDR_EXTERN");
 	      }
 	      lx->abs_cnts.externs++;
-	      CBICAdd(lx,IC_IMM_U64,
+	      LCCAdd(lx,IC_IMM_U64,
 		  &tempf->executable_addr,sys_internal_types[IT_PTR]);
-	      CBICAdd(lx,IC_DEREF,0,
+	      LCCAdd(lx,IC_DEREF,0,
 		  sys_internal_types[IT_PTR]);
 	    } else {
 	      if (lx->flags&LF_AOT_COMPILE) {
-		CBICAdd(lx,IC_ABS_ADDR,
+		LCCAdd(lx,IC_ABS_ADDR,
 		    tempf->executable_addr,sys_internal_types[IT_PTR]);
 		if (lx->flags&LF_ASM_EXPRESSIONS)
 		  lx->abs_cnts.abs_addres++;
 	      } else
-		CBICAdd(lx,IC_IMM_U64,
+		LCCAdd(lx,IC_IMM_U64,
 		    tempf->executable_addr,sys_internal_types[IT_PTR]);
 	    }
 	    lx->abs_cnts.c_addres++;
@@ -796,12 +747,12 @@ I64 PrsUnaryTerm(CLex *lx,CPrsStk *ps,CMemberLst **_local_var,CArrayDim **_tempa
 	    return PE_MAYBE_MODIFIERS;
 	  }
 	} else if (tempc->type & HTT_EXPORT_SYS_SYM) {
-	  tempess=tempc;
+	  tempex=tempc;
 	  if (lx->flags&LF_ASM_EXPRESSIONS && !(lx->flags&LF_AOT_COMPILE) &&
-	      tempess->type&HTF_LIT) {
+	      tempex->type&HTF_IMM) {
 	    lx->abs_cnts.c_addres++;
-	    CBICAdd(lx,IC_IMM_U64,
-		tempess->val,sys_internal_types[IT_PTR]);
+	    LCCAdd(lx,IC_IMM_U64,
+		tempex->val,sys_internal_types[IT_PTR]);
 	    Lex(lx);
 	    return PE_MAYBE_MODIFIERS;
 	  } else
@@ -845,14 +796,14 @@ I64 PrsUnaryTerm(CLex *lx,CPrsStk *ps,CMemberLst **_local_var,CArrayDim **_tempa
       if (lx->flags & LF_ASM_EXPRESSIONS) {
 	lx->abs_cnts.abs_addres++;
 	if (lx->flags&LF_AOT_COMPILE)
-	  CBICAdd(lx,IC_ABS_ADDR,lx->a->ip,sys_internal_types[IT_PTR]);
+	  LCCAdd(lx,IC_ABS_ADDR,lx->a->ip,sys_internal_types[IT_PTR]);
 	else
-	  CBICAdd(lx,IC_IMM_U64,lx->a->ip,sys_internal_types[IT_PTR]);
+	  LCCAdd(lx,IC_IMM_U64,lx->a->ip,sys_internal_types[IT_PTR]);
       } else {
 	if (lx->flags&LF_CLASS_IP)
-	  CBICAdd(lx,IC_IMM_U64,lx->class_ip,sys_internal_types[IT_I64]);
+	  LCCAdd(lx,IC_IMM_U64,lx->class_ip,sys_internal_types[IT_I64]);
 	else
-	  CBICAdd(lx,IC_RIP,0,sys_internal_types[IT_PTR]);
+	  LCCAdd(lx,IC_RIP,0,sys_internal_types[IT_PTR]);
       }
       Lex(lx);
       return PE_MAYBE_MODIFIERS;
@@ -877,18 +828,18 @@ I64 PrsUnaryTerm(CLex *lx,CPrsStk *ps,CMemberLst **_local_var,CArrayDim **_tempa
     if (tempm->flags&MLF_STATIC) {
       if (lx->flags&LF_AOT_COMPILE) {
       //	if (tempg->flags&GVAF_DATA_HEAP) //TODO
-      //	  CBICAdd(lx,IC_HEAP_GLBL,tempm->static_data,tempc);
+      //	  LCCAdd(lx,IC_HEAP_GLBL,tempm->static_data,tempc);
       //	else
-	CBICAdd(lx,IC_ABS_ADDR,tempm->static_data_ip,tempc);
+	LCCAdd(lx,IC_ABS_ADDR,tempm->static_data_ip,tempc);
       } else
-	CBICAdd(lx,IC_IMM_U64,tempm->static_data,tempc);
+	LCCAdd(lx,IC_IMM_U64,tempm->static_data,tempc);
     } else {
       if (lx->flags&LF_ASM_EXPRESSIONS) {
 	i=PrsPop(ps);
 	ps->ptr--;
 	if (i.u16[0]!=IC_ADDR)
 	  LexExcept(lx,"ST_EXPECTING_AMPERSAND");
-	CBICAdd(lx,IC_IMM_U64,tempm->offset,sys_internal_types[IT_PTR]);
+	LCCAdd(lx,IC_IMM_U64,tempm->offset,sys_internal_types[IT_PTR]);
 	*_local_var=tempm;
 	Lex(lx);
 	return PE_MAYBE_MODIFIERS;
@@ -897,9 +848,9 @@ I64 PrsUnaryTerm(CLex *lx,CPrsStk *ps,CMemberLst **_local_var,CArrayDim **_tempa
 	  tempc++;
 	  lx->flags&=~LF_ARRAY;
 	}
-	CBICAdd(lx,IC_RBP,0,tempc);
-	CBICAdd(lx,IC_IMM_U64,tempm->offset,tempc);
-	CBICAdd(lx,IC_ADD,0,tempc);
+	LCCAdd(lx,IC_RBP,0,tempc);
+	LCCAdd(lx,IC_IMM_U64,tempm->offset,tempc);
+	LCCAdd(lx,IC_ADD,0,tempc);
       }
     }
     Lex(lx); //skip var name
@@ -908,74 +859,74 @@ I64 PrsUnaryTerm(CLex *lx,CPrsStk *ps,CMemberLst **_local_var,CArrayDim **_tempa
   }
 
 pu_ident_but_not_local_var:
-  if (!(tempess=lx->hash_entry)) {
+  if (!(tempex=lx->hash_entry)) {
     if (!(lx->flags & LF_ASM_EXPRESSIONS))
       LexExcept(lx,"ST_INVALID_LVAL");
     tempc=NULL;
 pu_new_sys_sym:
-    tempess=CAlloc(sizeof(CHashExport),Fs->code_heap);
-    tempess->str=lx->ident;
+    tempex=CAlloc(sizeof(CHashExport),Fs->code_heap);
+    tempex->str=lx->ident;
     lx->ident=NULL;
-    if (*tempess->str=='@' &&
-	tempess->str[1]=='@') {
-      tempess->type=HTT_EXPORT_SYS_SYM | HTF_UNRESOLVED | HTF_LOCAL;
+    if (*tempex->str=='@' &&
+	tempex->str[1]=='@') {
+      tempex->type=HTT_EXPORT_SYS_SYM | HTF_UNRESOLVED | HTF_LOCAL;
       if (IsReplaceSyms)
-	HashReplace(tempess,lx->htc.local_hash_table);
+	HashReplace(tempex,lx->htc.local_hash_table);
       else
-	HashAdd(tempess,lx->htc.local_hash_table);
+	HashAdd(tempex,lx->htc.local_hash_table);
     } else {
-      tempess->type=HTT_EXPORT_SYS_SYM | HTF_UNRESOLVED;
+      tempex->type=HTT_EXPORT_SYS_SYM | HTF_UNRESOLVED;
       if (tempc)
-	HashAddAfter(tempess,tempc,lx->htc.glbl_hash_table);
+	HashAddAfter(tempex,tempc,lx->htc.glbl_hash_table);
       else if (IsReplaceSyms)
-	HashReplace(tempess,lx->htc.glbl_hash_table);
+	HashReplace(tempex,lx->htc.glbl_hash_table);
       else
-	HashAdd(tempess,lx->htc.glbl_hash_table);
+	HashAdd(tempex,lx->htc.glbl_hash_table);
     }
   }
 
-  if (tempess->type & HTT_EXPORT_SYS_SYM) {
+  if (tempex->type & HTT_EXPORT_SYS_SYM) {
 pu_export_sys_sym:
     if (PREC_TERM>*max_prec)
       *max_prec=PREC_TERM;
-    if (!(tempess->type & (HTF_LIT|HTF_IMPORT)))
+    if (!(tempex->type & (HTF_IMM|HTF_IMPORT)))
       lx->abs_cnts.abs_addres++;
-    if (tempess->type & HTF_UNRESOLVED) {
+    if (tempex->type & HTF_UNRESOLVED) {
       if (!(lx->flags&LF_ASM_EXPRESSIONS))
 	LexExcept(lx,"ST_ILLEGAL_FWD_REF");
       templu=MAlloc(sizeof(CLexUndef));
-      templu->hash=tempess;
+      templu->hash=tempex;
       templu->next=lx->undef_hash_entry;
       lx->undef_hash_entry=templu;
-      if (tempess->type & HTF_LOCAL)
+      if (tempex->type & HTF_LOCAL)
 	lx->flags|=LF_UNRESOLVED|LF_LOCAL;
       else
 	lx->flags|=LF_UNRESOLVED;
-      CBICAdd(lx,IC_IMM_U64,&tempess->val,sys_internal_types[IT_PTR],ICF_NO_RIP);
-      CBICAdd(lx,IC_DEREF,0,sys_internal_types[IT_PTR]);
+      LCCAdd(lx,IC_IMM_U64,&tempex->val,sys_internal_types[IT_PTR],ICF_NO_RIP);
+      LCCAdd(lx,IC_DEREF,0,sys_internal_types[IT_PTR]);
     } else {
-      if (lx->flags&LF_AOT_COMPILE && !(tempess->type & HTF_LIT))
-	CBICAdd(lx,IC_ABS_ADDR,tempess->val,sys_internal_types[IT_PTR]);
+      if (lx->flags&LF_AOT_COMPILE && !(tempex->type & HTF_IMM))
+	LCCAdd(lx,IC_ABS_ADDR,tempex->val,sys_internal_types[IT_PTR]);
       else {
-	if (tempess->type&HTF_LIT)
+	if (tempex->type&HTF_IMM)
 	  lx->abs_cnts.c_addres++;
-	CBICAdd(lx,IC_IMM_U64,tempess->val,sys_internal_types[IT_PTR]);
+	LCCAdd(lx,IC_IMM_U64,tempex->val,sys_internal_types[IT_PTR]);
       }
     }
     Lex(lx);
     return PE_MAYBE_MODIFIERS;
   }
 
-  if (tempess->type & HTT_FUN) {
+  if (tempex->type & HTT_FUN) {
     if (PREC_TERM>*max_prec)
       *max_prec=PREC_TERM;
     Lex(lx);  //skip fun name
-    return PrsFunCall(lx,ps,FALSE,tempess);
+    return PrsFunCall(lx,ps,FALSE,tempex);
   }
-  if (tempess->type & HTT_GLBL_VAR) {
+  if (tempex->type & HTT_GLBL_VAR) {
     if (PREC_TERM>*max_prec)
       *max_prec=PREC_TERM;
-    tempg=tempess;
+    tempg=tempex;
     tempc=tempg->var_class+1;
     lx->flags&=~(LF_RAX|LF_ARRAY|LF_FUN_EXP);
     if (tempg->flags&GVAF_ARRAY) {
@@ -987,21 +938,21 @@ pu_export_sys_sym:
 	LexExcept(lx,"ST_NOT_IMPLEMENTED");
       else {
 	if (tempg->flags & GVAF_IMPORT)
-	  CBICAdd(lx,IC_ADDR_IMPORT,tempg,tempc);
+	  LCCAdd(lx,IC_ADDR_IMPORT,tempg,tempc);
 	else {
 	  if (tempg->flags&GVAF_DATA_HEAP)
-	    CBICAdd(lx,IC_HEAP_GLBL,tempg->heap_glbl,tempc);
+	    LCCAdd(lx,IC_HEAP_GLBL,tempg->heap_glbl,tempc);
 	  else
-	    CBICAdd(lx,IC_ABS_ADDR,tempg->data_addr_ip,tempc);
+	    LCCAdd(lx,IC_ABS_ADDR,tempg->data_addr_ip,tempc);
 	}
       }
     } else {
       if (tempg->flags & GVAF_EXTERN) {
 	lx->abs_cnts.externs++;
-	CBICAdd(lx,IC_IMM_U64,&tempg->data_addr,tempc);
-	CBICAdd(lx,IC_DEREF,0,tempc);
+	LCCAdd(lx,IC_IMM_U64,&tempg->data_addr,tempc);
+	LCCAdd(lx,IC_DEREF,0,tempc);
       } else
-	CBICAdd(lx,IC_IMM_U64,tempg->data_addr,tempc);
+	LCCAdd(lx,IC_IMM_U64,tempg->data_addr,tempc);
     }
     Lex(lx);
     if (tempg->flags & GVAF_FUN) {
@@ -1010,14 +961,14 @@ pu_export_sys_sym:
       PrsPush2(ps,tempg->fun_ptr-tempg->fun_ptr->ptr_cnt);
     }
     return PE_UNARY_MODIFIERS;
-  } else if (tempess->type & HTT_CLASS) {
+  } else if (tempex->type & HTT_CLASS) {
     PrsOffsetOf(lx);
     return PE_MAYBE_MODIFIERS;
   }
 
-  if (!(tempess->type & HTT_KEYWORD))
+  if (!(tempex->type & HTT_KEYWORD))
     LexExcept(lx,"ST_MISSING_EXPRESSION");
-  switch (tempess(CHashGeneric *)->user_data0) {
+  switch (tempex(CHashGeneric *)->user_data0) {
     case KW_SIZEOF:
       if (PREC_TERM>*max_prec)
 	*max_prec=PREC_TERM;
@@ -1061,9 +1012,9 @@ pu_export_sys_sym:
       }
       if (lx->token==TK_IDENT &&
 	  (lx->hash_entry || lx->local_var_entry))
-	CBICAdd(lx,IC_IMM_U64,TRUE,sys_internal_types[IT_I64]);
+	LCCAdd(lx,IC_IMM_U64,TRUE,sys_internal_types[IT_I64]);
       else
-	CBICAdd(lx,IC_IMM_U64,FALSE,sys_internal_types[IT_I64]);
+	LCCAdd(lx,IC_IMM_U64,FALSE,sys_internal_types[IT_I64]);
       Lex(lx);
       while (j--) {
 	if (lx->token!=')')
@@ -1082,7 +1033,7 @@ I64 PrsUnaryModifier(CLex *lx,CPrsStk *ps,CMemberLst **_local_var,CArrayDim **_t
   CMemberLst *tempm=*_local_var;
   CIntermediateCode *tempi,*tempi1;
   CArrayDim *tempad1,tempad2;
-  CCodeBlkMisc *mc;
+  CLexCodeMisc *mc;
   I64 mode,old_flags;
   Bool was_paren=Btr(&lx->flags,Lf_PAREN);
   *_local_var=NULL;
@@ -1093,16 +1044,16 @@ I64 PrsUnaryModifier(CLex *lx,CPrsStk *ps,CMemberLst **_local_var,CArrayDim **_t
       goto um_join;
 
     case TK_DEREFERENCE:
-      tempi=lx->cbh.cb_last_out_ptr;
+      tempi=lx->lcc.lcc_root.last;
       if (!(lx->flags & (LF_RAX | LF_ARRAY)))
-	CBICAdd(lx,IC_DEREF+PREC_UNARY_PRE<<16,0,tempi->ic_class-1);
+	LCCAdd(lx,IC_DEREF+PREC_UNARY_PRE<<16,0,tempi->ic_class-1);
       else
 	tempi->ic_class--;
 
 um_join:
       if (!*unary_post_prec)
 	*unary_post_prec=PREC_TERM;
-      tempc=lx->cbh.cb_last_out_ptr->ic_class;
+      tempc=lx->lcc.lcc_root.last->ic_class;
       if (!tempc->ptr_cnt && lx->token=='.')
 	LexExcept(lx,"ST_ADD_NOT_VAL");
       if (!(lx->flags & LF_RAX))
@@ -1116,7 +1067,7 @@ um_join:
 	lx->local_var_entry->use_cnt--;
       Lex(lx);	//skip member name
       tempc1=tempm->member_class+1;
-      CBICAdd(lx,IC_IMM_U64,tempm->offset,tempc1);
+      LCCAdd(lx,IC_IMM_U64,tempm->offset,tempc1);
       lx->flags&=~(LF_RAX|LF_ARRAY|LF_FUN_EXP);
       if (tempm->dim.next) {
 	*_tempad=tempm->dim.next;
@@ -1127,7 +1078,7 @@ um_join:
 	PrsPush2(ps,tempm->fun_ptr-tempm->fun_ptr->ptr_cnt);
 	lx->flags|=LF_FUN_EXP;
       }
-      CBICAdd(lx,IC_ADD,0,tempc1);
+      LCCAdd(lx,IC_ADD,0,tempc1);
       return PE_UNARY_MODIFIERS;
     case '(':
       if (lx->flags & LF_FUN_EXP) {
@@ -1150,20 +1101,20 @@ um_join:
 	PrsPopDeref(ps);
 	Bts(&lx->flags,Lf_FUN_EXP);
 	PrsPush2(ps,fun_ptr);
-	mc=CBMiscNew(lx,CBMT_HASH_ENTRY);
+	mc=LCCMiscNew(lx,CMT_HASH_ENTRY);
 	mc->h=fun_ptr;
       }
       if (*_tempad=tempad2.next) {
 	lx->flags|=LF_ARRAY;
 	tempc++;
-	mc=CBMiscNew(lx,CBMT_ARRAY_DIM);
+	mc=LCCMiscNew(lx,CMT_ARRAY_DIM);
 	mc->dim=*_tempad;
       }
       if (!(lx->flags&(LF_RAX|LF_ARRAY)))
 	tempc++;
-      tempi=lx->cbh.cb_last_out_ptr;
+      tempi=lx->lcc.lcc_root.last;
       tempi->ic_class=tempc;
-      CBICAdd(lx,IC_HOLYC_TYPECAST,was_paren,tempc);
+      LCCAdd(lx,IC_HOLYC_TYPECAST,was_paren,tempc);
       if (lx->token!=')')
 	LexExcept(lx,"ST_MISSING_RIGHT_PAREN");
       Lex(lx);
@@ -1172,18 +1123,18 @@ um_join:
       if (!*unary_post_prec)
 	*unary_post_prec=PREC_TERM;
       Lex(lx);
-      tempc=OptClassFwd(lx->cbh.cb_last_out_ptr->ic_class);
+      tempc=OptClassFwd(lx->lcc.lcc_root.last->ic_class);
       if (!tempc->ptr_cnt)
 	LexExcept(lx,"ST_NOT_ARRAY_OR_PTR");
       if (!(lx->flags & (LF_ARRAY | LF_RAX))) {
 	tempc=OptClassFwd(tempc-1);
 	if (!tempc->ptr_cnt)
 	  LexExcept(lx,"ST_NOT_ARRAY_OR_PTR");
-	CBICAdd(lx,IC_DEREF+PREC_UNARY_PRE<<16,0,tempc);
+	LCCAdd(lx,IC_DEREF+PREC_UNARY_PRE<<16,0,tempc);
       }
       tempc1=tempc-1;
       if (tempad1=*_tempad) {
-	CBICAdd(lx,IC_IMM_U64,tempad1->total_cnt*tempc1->size,tempc);
+	LCCAdd(lx,IC_IMM_U64,tempad1->total_cnt*tempc1->size,tempc);
 	if (*_tempad=tempad1->next) {
 	  old_flags=lx->flags;
 	  if (!PrsExpression(lx,NULL,FALSE,ps))
@@ -1192,15 +1143,15 @@ um_join:
 	  if (lx->token!=']')
 	    LexExcept(lx,"ST_MISSING_RIGHT_BRACKET");
 	  Lex(lx); //skip ]
-	  tempi1=lx->cbh.cb_last_out_ptr;
+	  tempi1=lx->lcc.lcc_root.last;
 	  tempi1->ic_flags|=ICF_R_TO_INT;
-	  CBICAdd(lx,IC_MUL,0,tempc);
-	  CBICAdd(lx,IC_ADD,0,tempc);
+	  LCCAdd(lx,IC_MUL,0,tempc);
+	  LCCAdd(lx,IC_ADD,0,tempc);
 	  lx->flags|=LF_RAX;
 	  return PE_UNARY_MODIFIERS;
 	}
       } else
-	CBICAdd(lx,IC_IMM_U64,tempc1->size,tempc);
+	LCCAdd(lx,IC_IMM_U64,tempc1->size,tempc);
       old_flags=lx->flags;
       if (!PrsExpression(lx,NULL,FALSE,ps))
 	throw(EXCEPT_COMPILER,5);
@@ -1208,10 +1159,10 @@ um_join:
       if (lx->token!=']')
 	LexExcept(lx,"ST_MISSING_RIGHT_BRACKET");
       Lex(lx); //skip ]
-      tempi1=lx->cbh.cb_last_out_ptr;
+      tempi1=lx->lcc.lcc_root.last;
       tempi1->ic_flags|=ICF_R_TO_INT;
-      CBICAdd(lx,IC_MUL,0,tempc);
-      CBICAdd(lx,IC_ADD,0,tempc);
+      LCCAdd(lx,IC_MUL,0,tempc);
+      LCCAdd(lx,IC_ADD,0,tempc);
       lx->flags&=~(LF_RAX|LF_ARRAY);
       return PE_UNARY_MODIFIERS;
     case TK_PLUS_PLUS:
@@ -1230,38 +1181,41 @@ um_join:
   return PE_DEREFERENCE;
 }
 
-U8 *CmpExpression(CLex *lx,I64 *type=NULL)
+U0 ExpressionBinDel(U8 *ex)
+{
+  Free(ex);
+}
+
+U8 *LexExpression2Bin(CLex *lx,I64 *type=NULL)
 {
   U8 *result;
   I64 size;
   Bool old_trace=Btr(&lx->flags,Lf_OPT_TRACE_PRESENT);
-  CBPush(lx);
-  CBOutPtrsInit(lx);
-  CBICAdd(lx,IC_START,0,0); //So we can scan back an instruction
+  LCCPush(lx);
+  LCCInit(lx);
   if (PrsExpression(lx,NULL,FALSE)) {
-    CBICAdd(lx,IC_RETURN_VAL,0,NULL);
-    CBICAdd(lx,IC_RET,0,0);
-    CBICAdd(lx,IC_END,0,0);
-    result=CBCompile(lx,NULL,&size,NULL,type);
+    LCCAdd(lx,IC_RETURN_VAL,0,NULL);
+    LCCAdd(lx,IC_RET,0,0);
+    result=LCCCompile(lx,NULL,&size,NULL,type);
   } else
     result=NULL;
-  CBPop(lx);
+  LCCPop(lx);
   BEqu(&lx->flags,Lf_OPT_TRACE_PRESENT,old_trace);
   return result;
 }
 
-Bool GetExpression(CLex *lx,U8 **_ex)
+Bool IsLexExpression2Bin(CLex *lx,U8 **_ex)
 {
-  return ToBool(*_ex=CmpExpression(lx));
+  return ToBool(*_ex=LexExpression2Bin(lx));
 }
 
-I64 Expression(CLex *lx)
+I64 LexExpression(CLex *lx)
 {
   I64 result;
-  U8 *ex=CmpExpression(lx);
+  U8 *ex=LexExpression2Bin(lx);
   if (ex) {
     result=Call(ex);
-    ExpressionDel(ex);
+    ExpressionBinDel(ex);
   } else
     result=0;
   return result;
diff --git a/TempleOS/Compiler/ICLCC.CPP b/TempleOS/Compiler/ICLCC.CPP
new file mode 100644
index 0000000..c450ef4
--- /dev/null
+++ b/TempleOS/Compiler/ICLCC.CPP
@@ -0,0 +1,368 @@
+// Intermediate Code / Lex Code
+
+U0 ICClassPut(CHashClass *c)
+{
+  I64 i;
+  if (!c) return;
+  if (c->ptr_cnt>4) {
+    PrintErr("put_class ptrcnt=%d\n",c->ptr_cnt);
+    while (TRUE)
+//TODO:
+      Yield;
+  }
+  for (i=0;iptr_cnt;i++)
+    '*';
+  c-=c->ptr_cnt;
+  if (c->str)
+    "%s",c->str;
+  else {
+    PrintErr("put_class str=NULL\n");
+    while (TRUE)
+//TODO:
+      Yield;
+  }
+  '' CH_SPACE;
+}
+
+
+U0 ICArgPut(CICArg *p)
+{
+  if (p->ptype)
+    "%Z %Z %Z ",
+      p->type&IT_MASK,"ST_IT_TYPES",
+      p->ptype&IT_MASK,"ST_IT_TYPES",
+      p->type>>4,"ST_TY_TYPES";
+  else
+    "%Z %Z ",
+      p->type&IT_MASK,"ST_IT_TYPES",
+      p->type>>4,"ST_TY_TYPES";
+  switch (p->type>>4) {
+    case TY_STK>>4:
+      "STK";
+      break;
+    case TY_IMM>>4:
+      "#%X",p->disp;
+      break;
+    case TY_REG>>4:
+      "%Z",p->reg,"ST_U64_REGS";
+      break;
+    case TY_DISP>>4:
+      "%X[%Z]",p->disp,p->reg,"ST_U64_REGS";
+      break;
+    case TY_RIP_DISP32>>4:
+      "[%X]",p->disp;
+      break;
+    case TY_SIB>>4:
+      if (p->disp)
+	"%X",p->disp;
+      if (p->reg==CREG_RIP)
+	'[';
+      else
+	"[%Z+",p->reg&7,"ST_U64_REGS";
+      "%Z",p->reg>>8&7,"ST_U64_REGS";
+      switch (p->reg>>14) {
+	case 0: "]"; break;
+	case 1: "*2]"; break;
+	case 2: "*4]"; break;
+	case 3: "*8]"; break;
+      }
+      break;
+  }
+}
+
+U0 ICPut(CIntermediateCode *tempi)
+{
+  I64 opcode=tempi->ic_opcode,i;
+  if (opcode>=IC_END_EXP && opcode!=IC_NOP2) {
+    "%15ts %016X ",
+      DefineSub(opcode,"ST_INTERMEDIATE_CODE")+4,
+      tempi->ic_data;
+    if (tempi->r.type&TY_MASK) {
+      ICArgPut(&tempi->r);
+      "<-";
+    }
+    if (tempi->p1.type&TY_MASK)
+      ICArgPut(&tempi->p1);
+    ',';
+    if (tempi->p2.type&TY_MASK)
+      ICArgPut(&tempi->p2);
+    '' CH_SPACE;
+    ICClassPut(tempi->ic_class);
+    if (tempi->ic_flags & ICF_LOCK)
+      "$$FG,BROWN$$lock$$FG$$ ";
+    if (tempi->ic_flags & ICF_P2_TO_F64)
+      "$$FG,LTBLUE$$p2d$$FG$$ ";
+    if (tempi->ic_flags & ICF_P2_TO_INT)
+      "$$FG,GREEN$$p2i$$FG$$ ";
+    if (tempi->ic_flags & ICF_P1_TO_F64)
+      "$$FG,LTBLUE$$p1d$$FG$$ ";
+    if (tempi->ic_flags & ICF_P1_TO_INT)
+      "$$FG,GREEN$$p1i$$FG$$ ";
+    if (tempi->ic_flags & ICF_R_TO_F64)
+      "$$FG,LTBLUE$$rd$$FG$$ ";
+    if (tempi->ic_flags & ICF_R_TO_INT)
+      "$$FG,GREEN$$ri$$FG$$ ";
+    if (tempi->ic_flags & ICF_USE_F64)
+      "[F64] ";
+    if (tempi->ic_flags & ICF_USE_UNSIGNED)
+      "[unsigned] ";
+    if (tempi->ic_flags & ICF_USE_INT)
+      "[int] ";
+    if (tempi->ic_flags & ICF_NO_DEPEND_RESULT)
+      "-DEP ";
+    if (tempi->ic_flags & ICF_DEPEND_RESULT)
+      "+DEP ";
+    if (tempi->ic_flags & ICF_NOT_ADDR)
+      "NOT_ADDR ";
+    if (tempi->ic_flags & ICF_PUSH_RESULT)
+      "PUSH ";
+    if (tempi->ic_flags & ICF_PUSH_CMP)
+      "PUSH_CMP ";
+    if (tempi->ic_flags & ICF_POP_CMP)
+      "POP_CMP ";
+    if (tempi->ic_flags & ICF_DEL_PREVIOUS_INS)
+      "DELINS ";
+    for (i=0;i<4;i++) {
+      if (Bt(&tempi->ic_flags,ICf_DONT_PUSH_FLOAT0+i))
+	"DONT_PUSH#%d ",i;
+      if (Bt(&tempi->ic_flags,ICf_DONT_POP_FLOAT0+i))
+	"DONT_POP#%d ",i;
+    }
+    if (tempi->ic_flags & ICF_ALTERNATE_TEMPLATE)
+      "ALT_TEMP ";
+    NewLine;
+  }
+}
+
+U0 LCCQuePut(CLex *lx)
+{
+  CIntermediateCode *tempi=lx->lcc.lcc_root.next;
+  while (tempi->ic_opcode) {
+    if (tempi->ic_flags&ICF_TRACE)
+      ICPut(tempi);
+    tempi=tempi->next;
+  }
+}
+
+U0 LCCInit(CLex *lx)
+{
+  CLexCodeCtrl *tempcbh=&lx->lcc;
+  QueInit(&tempcbh->lcc_root.next);
+  QueInit(&tempcbh->lcc_next_misc);
+  tempcbh->lcc_root.ic_opcode=IC_END;
+}
+
+CIntermediateCode *LCCAdd(CLex *lx,
+   I64 opcode_and_precedence,I64 arg, CHashClass *c,I64 flags=0)
+{
+  CIntermediateCode *tempi=MAlloc(sizeof(CIntermediateCode));
+  tempi->ic_opcode=opcode_and_precedence.u16[0];
+  tempi->ic_precedence=opcode_and_precedence.u16[1];
+  tempi->ic_data=arg;
+  tempi->ic_class=c;
+  if (Bt(&lx->opts,OPTf_OPT_TRACE)) {
+    Bts(&lx->flags,Lf_OPT_TRACE_PRESENT);
+    flags|=ICF_TRACE;
+  }
+  if (lx->lock_cnt)
+    flags|=ICF_LOCK;
+  tempi->ic_flags=flags;
+  tempi->ic_line=lx->last_line_num;
+  if (lx->opts & OPTF_PARSE_TRACE)
+    ICPut(tempi);
+  QueIns(tempi,lx->lcc.lcc_root.last);
+  return tempi;
+}
+
+U0 LCCPush(CLex *lx)
+{
+  CLexCodeCtrl *tempcbh=MAlloc(sizeof(CLexCodeCtrl));
+  MemCpy(tempcbh,&lx->lcc,sizeof(CLexCodeCtrl));
+  lx->lcc.lcc_next=tempcbh;
+}
+
+CLex *LCCPopNoFree(CLex *lx)
+{
+  CLexCodeCtrl *tempcbh=lx->lcc.lcc_next;
+  MemCpy(&lx->lcc,tempcbh,sizeof(CLexCodeCtrl));
+  return tempcbh;
+}
+
+U0 LCCPop(CLex *lx)
+{
+  Free(LCCPopNoFree(lx));
+}
+
+U0 LCCAppend(CLex *lx, CLexCodeCtrl *tempcbh)
+{
+  if (tempcbh->lcc_root.next!=&lx->lcc.lcc_root.next) {
+    lx->lcc.lcc_root.last->next=tempcbh->lcc_root.next;
+    tempcbh->lcc_root.next->last=lx->lcc.lcc_root.last;
+    lx->lcc.lcc_root.last=tempcbh->lcc_root.last;
+    tempcbh->lcc_root.last->next=&lx->lcc.lcc_root.next;
+  }
+  if (tempcbh->lcc_next_misc!=&lx->lcc.lcc_next_misc) {
+    lx->lcc.lcc_last_misc->next=tempcbh->lcc_next_misc;
+    tempcbh->lcc_next_misc->last=lx->lcc.lcc_last_misc;
+    lx->lcc.lcc_last_misc=tempcbh->lcc_last_misc;
+    tempcbh->lcc_last_misc->next=&lx->lcc.lcc_next_misc;
+  }
+  Free(tempcbh);
+}
+
+CLexCodeMisc *LCCMiscNew(CLex *lx,I64 ty)
+{
+  CLexCodeMisc *result=CAlloc(sizeof(CLexCodeMisc));
+  result->addr=INVALID_PTR;
+  result->type=ty;
+  QueIns(result,lx->lcc.lcc_last_misc);
+  return result;
+}
+
+CLexCodeMisc *LCCGoToLabelFind(CLex *lx,U8 *name)
+{
+  CLexCodeMisc *mc=lx->lcc.lcc_next_misc;
+  while (mc!=&lx->lcc.lcc_next_misc) {
+    if (mc->type==CMT_GOTO_LABEL) {
+      if (!StrCmp(mc->str,name))
+	return mc;
+    }
+    mc=mc->next;
+  }
+  return NULL;
+}
+
+I64 LCCFloatConstFind(CLex *lx,F64 d)
+{
+  I64 i;
+  CLexCodeMisc *mc=lx->lcc.lcc_next_misc;
+  while (mc!=&lx->lcc.lcc_next_misc) {
+    if (mc->type==CMT_FLOAT_CONSTS) {
+      for (i=0;inum_consts;i++)
+	if (mc->float_consts[i]==d)
+	  return mc->addr+i*sizeof(F64);
+      if (mc->num_constsfloat_consts[mc->num_consts++]=d;
+	return mc->addr+i*sizeof(F64);
+      }
+    }
+    mc=mc->next;
+  }
+  mc=LCCMiscNew(lx,CMT_FLOAT_CONSTS);
+  mc->float_consts=MAlloc(CM_MAX_CONSTS*sizeof(F64));
+  mc->float_consts[mc->num_consts++]=d;
+  return mc->addr;
+}
+
+U0 LCCDel(CLex *lx)
+{
+  CLexCodeMisc *mc,*mc1;
+  U8 *undef=NULL;
+  QueDel(&lx->lcc.lcc_root.next);
+  mc=lx->lcc.lcc_next_misc;
+  while (mc!=&lx->lcc.lcc_next_misc) {
+    mc1=mc->next;
+    switch (mc->type) {
+      case CMT_GOTO_LABEL:
+	if (!(mc->flags&CMF_DEFINED)) {
+	  undef=mc->str;
+	  mc->str=NULL;
+	} else if (!(mc->flags&CMF_USED)) {
+	  PrintWarn("%S%s\n","ST_UNUSED_LABEL",mc->str);
+	  LexPutWarn(lx,"ST_UNUSED_LABEL_AT");
+	}
+	break;
+      case CMT_JMP_TABLE:
+	Free(mc->jmp_table);
+	break;
+      case CMT_FLOAT_CONSTS:
+	Free(mc->float_consts);
+	break;
+      case CMT_ARRAY_DIM:
+	LinkedLstDel(mc->dim);
+	break;
+      case CMT_HASH_ENTRY:
+	HashDel(mc->h);
+	break;
+    }
+    Free(mc->str);
+    Free(mc);
+    mc=mc1;
+  }
+  if (undef) {
+    PrintErr("%S%s\n","ST_UNDEFINED_GOTO_LABEL",undef);
+    Free(undef);
+    LexExcept(lx,"ST_UNDEFINED_GOTO_LABEL_AT");
+  }
+}
+
+U0 LCCHeaderPut(CLex *lx,I64 pass,Bool put)
+{
+  if (Bt(&lx->flags,Lf_OPT_TRACE_PRESENT)) {
+    if (put) {
+      if (Bt(&lx->pass_trace_mask,pass-1)) {
+	"$$IV,1$$Pass %d:$$IV,0$$\n",pass-1;
+	LCCQuePut(lx);
+      }
+    } else {
+      if (Bt(&lx->pass_trace_mask,pass))
+	"$$IV,1$$Pass %d:$$IV,0$$\n",pass;
+    }
+  }
+  lx->pass=pass;
+}
+
+U8 *LCCCompile(CLex *lx,CHashFun *fun_class,
+      I64 *_code_size,CDbgInfo **_dbg,I64 *type=NULL)
+{
+  U8 *result,code_size,last_code_size;
+  COptReg register_offsets[NUM_REGS];
+  if (_dbg) *_dbg=NULL;
+  LCCHeaderPut(lx,1,TRUE);
+  OptPass012(lx,fun_class);
+  LCCHeaderPut(lx,2,TRUE);
+  OptPass012(lx,fun_class);
+  LCCHeaderPut(lx,3,TRUE);
+  OptPass3(lx,fun_class,register_offsets);
+  LCCHeaderPut(lx,4,TRUE);
+  OptPass4(lx,register_offsets,type);
+  LCCHeaderPut(lx,5,TRUE);
+  OptPass5(lx);
+  LCCHeaderPut(lx,6,TRUE);
+  OptPass6(lx,fun_class);
+  LCCHeaderPut(lx,7,TRUE);
+
+  LCCHeaderPut(lx,7,FALSE);
+  code_size=OptPass789(lx,fun_class,register_offsets,NULL,NULL);
+  do {
+    last_code_size=code_size;
+    LCCHeaderPut(lx,8,FALSE);
+    code_size=OptPass789(lx,fun_class,register_offsets,NULL,NULL);
+    if (code_size>last_code_size) {
+      "Pass:8 Code Size\n";
+      LexExcept(lx,"ST_OPT_INTERNAL_ERROR");
+    }
+  } while (code_sizeflags&LF_AOT_COMPILE)
+    result=MAlloc(code_size);
+  else
+    result=MAlloc(code_size,Fs->code_heap);
+  LCCHeaderPut(lx,9,FALSE);
+  code_size=OptPass789(lx,fun_class,register_offsets,result,_dbg);
+
+  compiled_bytes+=code_size;
+  LCCDel(lx);
+  if (Bt(&lx->opts,OPTf_COMPILE_TRACE)) {
+    if (lx->flags&LF_AOT_COMPILE) {
+      if (lx->a->seg_size==16)
+	Un(result,code_size,16);
+      else if (lx->a->seg_size==64)
+	Un(result,code_size,64);
+      else
+	Un(result,code_size,32);
+    } else
+      Un(result,code_size,64);
+  }
+  if (_code_size) *_code_size=code_size;
+  return result;
+}
diff --git a/TempleOS/Compiler/Lex.CPP b/TempleOS/Compiler/Lex.CPP
index b3457e9..4a26832 100644
--- a/TempleOS/Compiler/Lex.CPP
+++ b/TempleOS/Compiler/Lex.CPP
@@ -9,7 +9,7 @@ U8 *CmpPmt(Bool dbl_semicolon=FALSE)
       "%8.6fs ans%d=0x%08X=%d\n",Fs->answer_times[i],i,Fs->answers[i],Fs->answers[i];
   }
   if (st=CurDir) {
-    "" st;
+    "%s",st;
     Free(st);
   }
   '>';
@@ -42,7 +42,7 @@ CLex *LexNew(U8 *buf,I64 flags,U8 *filename=NULL)
   QueInit(lx);
   lx->flags=flags;
   lx->opts=1<pass_trace_mask=0b10001111101;
+  lx->pass_trace_mask=0b1001111101;
   lx->htc.hash_mask=HTG_ALL-HTT_IMPORT_SYS_SYM-HTT_ASM_KEYWORD;
   lx->htc.define_hash_table=lx->htc.hash_table_lst=lx->htc.glbl_hash_table=lx->htc.local_hash_table=Fs->hash_table;
   if (flags&LF_KEEP_AT_SIGN)
@@ -78,6 +78,7 @@ U0 LexDel(CLex *lx)
   if (!(lx->flags & LF_DONT_FREE_BUF))
     Free(tempf->buf);
   Free(lx->ident);
+  Free(lx->cur_index);
   Free(lx->dollar);
   Free(lx);
 }
@@ -105,7 +106,7 @@ I64 LexSize(CLex *lx)
 U0 SetSrcFileInfo(CLex *lx,CHashSrcSym *h)
 {
   CLexFile *tempf=lx->cur_lfn;
-  h->src_link=MSPrintF("FL:%s,%d",tempf->name,tempf->line_num);
+  h->src_link=MPrint("FL:%s,%d",tempf->name,tempf->line_num);
   if (Bt(&lx->opts,OPTf_KEEP_PRIVATE))
     h->type|=HTF_PRIVATE;
   if (lx->cur_index)
@@ -118,10 +119,10 @@ U0 LexPutToken(CLex *lx)
 {
   '"';
   if (lx->token==TK_IDENT || lx->token==TK_STR)
-    "" lx->ident;
+    "%s",lx->ident;
   else if (lx->token==TK_INTEGER)
     "INT:%X",lx->cur_i;
-  else if (lx->token==TK_U8)
+  else if (lx->token==TK_CHAR_CONST)
     "U8:%X",lx->cur_i;
   else if (lx->token==TK_F64)
     "FLOAT:%e",lx->cur_f;
@@ -154,7 +155,7 @@ Bool LexDollar(CLex *lx,CDoc *doc,CDocEntry *doc_e)
   if (lx->flags&LF_IN_QUOTES) {
     Free(lx->dollar);
     st=Doc2PlainText(doc,doc_e);
-    lx->dollar=MSPrintF("$$%Q$$",st);
+    lx->dollar=MPrint("$$%Q$$",st);
     lx->dollar_cnt=2;
     Free(st);
     return TRUE;
@@ -369,11 +370,6 @@ U0 LexSkipEol(CLex *lx)
   while (Bt(non_eol_chars_bitmap,ch));
 }
 
-U0 ExpressionDel(U8 *code)
-{
-  Free(code);
-}
-
 U0 LexIncludeStr(CLex *lx,U8 *abs_filename,U8 *src,Bool actual_file)
 {
   CLexFile *tempf;
@@ -1084,7 +1080,7 @@ lex_octal:
 	    }
 	}
 	lx->cur_i=k;
-	lx->token=TK_U8;
+	lx->token=TK_CHAR_CONST;
 	goto lex_end;
       case '#':
 	if (lx->flags&LF_KEEP_NUM_SIGN) {
@@ -1231,7 +1227,7 @@ lex_if:
 	      lx->flags&=~LF_IN_IF;
 	      goto lex_end;
 	    }
-	    if (Expression(lx)) {
+	    if (LexExpression(lx)) {
 	      lx->flags&=~LF_IN_IF;
 	      switch (lx->token) {
 		case TK_IF:	goto lex_if;
@@ -1408,7 +1404,7 @@ lex_ifjit:
 	  case KW_ASSERT:
 	    if (!Lex(lx))
 	      goto lex_end;
-	    if (!Expression(lx))
+	    if (!LexExpression(lx))
 	      LexPutWarn(lx,"ST_ASSERT_FAILED");
 	    goto lex_end;
 	  case KW_EXE:
@@ -1653,7 +1649,7 @@ U0 LexPutPos(CLex *lx)
 
 U0 LexPutWarn(CLex *lx,U8 *name=NULL,CHashFun *fun_class=NULL)
 {
-  if (name) PrintFWarn("%S",name);
+  if (name) PrintWarn("%S",name);
   if (fun_class) {
     "%S'%s'.\n","ST_IN_FUN",fun_class->str;
     if (IsRaw)
@@ -1674,7 +1670,7 @@ U0 LexExcept(CLex *lx,U8 *name=NULL,CHashFun *fun_class=NULL)
     Preempt(OFF);
     Raw(ON);
   }
-  if (name) PrintFErr("%S",name);
+  if (name) PrintErr("%S",name);
   if (!IsRaw)
     AdamErr("Task:%08X %S\n",Fs,name);
   LexPutPos(lx);
diff --git a/TempleOS/Compiler/OpCodes.TXT b/TempleOS/Compiler/OpCodes.TXT
index 7127914..79d2ac8 100644
--- a/TempleOS/Compiler/OpCodes.TXT
+++ b/TempleOS/Compiler/OpCodes.TXT
@@ -170,15 +170,17 @@ KEYWORD endif		32;
 KEYWORD assert		33;
 KEYWORD reg		34;
 KEYWORD noreg		35;
-KEYWORD nounusedwarn	36;
-KEYWORD help_index	37;
-KEYWORD help_file	38;
-KEYWORD static		39;
-KEYWORD interrupt	40;
-KEYWORD lock		41;
-KEYWORD defined		42;
-KEYWORD argpop		43;
-KEYWORD noargpop	44;
+KEYWORD lastclass	36;
+KEYWORD nounusedwarn	37;
+KEYWORD help_index	38;
+KEYWORD help_file	39;
+KEYWORD static		40;
+KEYWORD interrupt	41;
+KEYWORD haserrcode	42;
+KEYWORD lock		43;
+KEYWORD defined		44;
+KEYWORD argpop		45;
+KEYWORD noargpop	46;
 
 ASM_KEYWORD ALIGN	64;
 ASM_KEYWORD MODULE_ORG	65;
@@ -258,19 +260,31 @@ OPCODE MOV
  0x89,/R 32 RM64 R64
  0x8C,/R 32 RM16 SREG
  0x8E,/R 32 SREG RM16
- 0xB0,+R R8 UIMM8
- 0xB8,+R 16 R16 UIMM16
- 0xB8,+R 32 R32 UIMM32
- 0xB8,+R 32 R64 UIMM64
- 0xC6, RM8 UIMM8
- 0xC7, 16 RM16 UIMM16
- 0xC7, 32 RM32 UIMM32
+ 0xB0,+R &R8 UIMM8
+ 0xB0,+R R8 IMM8
+ 0xB8,+R 16 &R16 UIMM16
+ 0xB8,+R 16 R16 IMM16
+ 0xB8,+R 32 &R32 UIMM32
+ 0xB8,+R 32 R32 IMM32
+ 0xB8,+R 32 `R64 UIMM32
+ 0xB8,+R 32 &R64 UIMM64
+ 0xB8,+R 32 R64 IMM64
+ 0xC6, &RM8 UIMM8
+ 0xC6, RM8 IMM8
+ 0xC7, 16 &RM16 UIMM16
+ 0xC7, 16 RM16 IMM16
+ 0xC7, 32 &RM32 UIMM32
+ 0xC7, 32 RM32 IMM32
+ 0xC7, 32 `RM64 UIMM32
  0xC7, 32 RM64 IMM32;
 
 OPCODE ADC
- 0x14, IB AL UIMM8
- 0x15, 16 IW AX UIMM16
- 0x15, 32 ID EAX UIMM32
+ 0x14, IB &AL UIMM8
+ 0x14, IB AL IMM8
+ 0x15, 16 IW &AX UIMM16
+ 0x15, 16 IW AX IMM16
+ 0x15, 32 ID &EAX UIMM32
+ 0x15, 32 ID EAX IMM32
  0x80,/2 IB RM8 IMM8
  0x83,/2 16 IB RM16 IMM8
  0x83,/2 32 IB RM32 IMM8
@@ -287,10 +301,14 @@ OPCODE ADC
  0x11,/R 32 RM32 R32
  0x11,/R 32 RM64 R64;
 OPCODE ADD
- 0x04, IB AL UIMM8
- 0x05, 16 IW AX UIMM16
- 0x05, 32 ID EAX UIMM32
- 0x80,/0 IB RM8 UIMM8
+ 0x04, IB &AL UIMM8
+ 0x04, IB AL IMM8
+ 0x05, 16 IW &AX UIMM16
+ 0x05, 16 IW AX IMM16
+ 0x05, 32 ID &EAX UIMM32
+ 0x05, 32 ID EAX IMM32
+ 0x80,/0 IB &RM8 UIMM8
+ 0x80,/0 IB RM8 IMM8
  0x83,/0 16 IB RM16 IMM8
  0x83,/0 32 IB RM32 IMM8
  0x83,/0 32 IB RM64 IMM8
@@ -306,10 +324,14 @@ OPCODE ADD
  0x01,/R 32 RM32 R32
  0x01,/R 32 RM64 R64;
 OPCODE AND
- 0x24, IB AL UIMM8
- 0x25, 16 IW AX UIMM16
- 0x25, 32 ID EAX UIMM32
- 0x80,/4 IB RM8 UIMM8
+ 0x24, IB &AL UIMM8
+ 0x24, IB AL IMM8
+ 0x25, 16 IW &AX UIMM16
+ 0x25, 16 IW AX IMM16
+ 0x25, 32 ID &EAX UIMM32
+ 0x25, 32 ID EAX IMM32
+ 0x80,/4 IB &RM8 UIMM8
+ 0x80,/4 IB RM8 IMM8
  0x83,/4 16 IB RM16 IMM8
  0x83,/4 32 IB RM32 IMM8
  0x83,/4 32 IB RM64 IMM8
@@ -325,10 +347,14 @@ OPCODE AND
  0x21,/R 32 RM32 R32
  0x21,/R 32 RM64 R64;
 OPCODE CMP
- 0x3C, IB AL UIMM8
- 0x3D, 16 IW AX UIMM16
- 0x3D, 32 ID EAX UIMM32
- 0x80,/7 IB RM8 UIMM8
+ 0x3C, IB &AL UIMM8
+ 0x3C, IB AL IMM8
+ 0x3D, 16 IW &AX UIMM16
+ 0x3D, 16 IW AX IMM16
+ 0x3D, 32 ID &EAX UIMM32
+ 0x3D, 32 ID EAX IMM32
+ 0x80,/7 IB &RM8 UIMM8
+ 0x80,/7 IB RM8 IMM8
  0x83,/7 16 IB RM16 IMM8
  0x83,/7 32 IB RM32 IMM8
  0x83,/7 32 IB RM64 IMM8
@@ -344,10 +370,14 @@ OPCODE CMP
  0x39,/R 32 RM32 R32
  0x39,/R 32 RM64 R64;
 OPCODE OR
- 0x0C, IB AL UIMM8
- 0x0D, 16 IW AX UIMM16
- 0x0D, 32 ID EAX UIMM32
- 0x80,/1 IB RM8 UIMM8
+ 0x0C, IB &AL UIMM8
+ 0x0C, IB AL IMM8
+ 0x0D, 16 IW &AX UIMM16
+ 0x0D, 16 IW AX IMM16
+ 0x0D, 32 ID &EAX UIMM32
+ 0x0D, 32 ID EAX IMM32
+ 0x80,/1 IB &RM8 UIMM8
+ 0x80,/1 IB RM8 IMM8
  0x83,/1 16 IB RM16 IMM8
  0x83,/1 32 IB RM32 IMM8
  0x83,/1 32 IB RM64 IMM8
@@ -363,10 +393,14 @@ OPCODE OR
  0x09,/R 32 RM32 R32
  0x09,/R 32 RM64 R64;
 OPCODE SBB
- 0x1C, IB AL UIMM8
- 0x1D, 16 IW AX UIMM16
- 0x1D, 32 ID EAX UIMM32
- 0x80,/3 IB RM8 UIMM8
+ 0x1C, IB &AL UIMM8
+ 0x1C, IB AL IMM8
+ 0x1D, 16 IW &AX UIMM16
+ 0x1D, 16 IW AX IMM16
+ 0x1D, 32 ID &EAX UIMM32
+ 0x1D, 32 ID EAX IMM32
+ 0x80,/3 IB &RM8 UIMM8
+ 0x80,/3 IB RM8 IMM8
  0x83,/3 16 IB RM16 IMM8
  0x83,/3 32 IB RM32 IMM8
  0x83,/3 32 IB RM64 IMM8
@@ -382,10 +416,14 @@ OPCODE SBB
  0x19,/R 32 RM32 R32
  0x19,/R 32 RM64 R64;
 OPCODE SUB
- 0x2C, IB AL UIMM8
- 0x2D, 16 IW AX UIMM16
- 0x2D, 32 ID EAX UIMM32
- 0x80,/5 IB RM8 UIMM8
+ 0x2C, IB &AL UIMM8
+ 0x2C, IB AL IMM8
+ 0x2D, 16 IW &AX UIMM16
+ 0x2D, 16 IW AX IMM16
+ 0x2D, 32 ID &EAX UIMM32
+ 0x2D, 32 ID EAX IMM32
+ 0x80,/5 IB &RM8 UIMM8
+ 0x80,/5 IB RM8 IMM8
  0x83,/5 16 IB RM16 IMM8
  0x83,/5 32 IB RM32 IMM8
  0x83,/5 32 IB RM64 IMM8
@@ -401,10 +439,14 @@ OPCODE SUB
  0x29,/R 32 RM32 R32
  0x29,/R 32 RM64 R64;
 OPCODE TEST
- 0xA8, IB AL UIMM8
- 0xA9, 16 IW AX UIMM16
- 0xA9, 32 ID EAX UIMM32
- 0xF6,/0 IB RM8 UIMM8
+ 0xA8, IB &AL UIMM8
+ 0xA8, IB AL IMM8
+ 0xA9, 16 IW &AX UIMM16
+ 0xA9, 16 IW AX IMM16
+ 0xA9, 32 ID &EAX UIMM32
+ 0xA9, 32 ID EAX IMM32
+ 0xF6,/0 IB &RM8 UIMM8
+ 0xF6,/0 IB RM8 IMM8
  0xF7,/0 16 IW RM16 IMM16
  0xF7,/0 32 ID RM32 IMM32
  0xF7,/0 32 ID RM64 IMM32
@@ -413,6 +455,7 @@ OPCODE TEST
  0x85,/R 32 RM32 R32
  0x85,/R 32 RM64 R64;
 OPCODE NOP 0x90;
+OPCODE NOP2 0x66 0x90;
 OPCODE XCHG
  0x90,+R 16 R16 AX
  0x90,+R 16 AX R16
@@ -429,10 +472,14 @@ OPCODE XCHG
  0x87,/R 32 RM32 R32
  0x87,/R 32 RM64 R64;
 OPCODE XOR
- 0x34, IB AL UIMM8
- 0x35, 16 IW AX UIMM16
- 0x35, 32 ID EAX UIMM32
- 0x80,/6 IB RM8 UIMM8
+ 0x34, IB &AL UIMM8
+ 0x34, IB AL IMM8
+ 0x35, 16 IW &AX UIMM16
+ 0x35, 16 IW AX IMM16
+ 0x35, 32 ID &EAX UIMM32
+ 0x35, 32 ID EAX IMM32
+ 0x80,/6 IB &RM8 UIMM8
+ 0x80,/6 IB RM8 IMM8
  0x83,/6 16 IB RM16 IMM8
  0x83,/6 32 IB RM32 IMM8
  0x83,/6 32 IB RM64 IMM8
@@ -758,9 +805,12 @@ OPCODE IMUL2
  0x6B,/R 16 IB RM16 IMM8
  0x6B,/R 32 IB RM32 IMM8
  0x6B,/R 32 IB RM64 IMM8
- 0x69,/R 16 IW RM16 UIMM16
- 0x69,/R 32 ID RM32 UIMM32
- 0x69,/R 32 ID RM64 UIMM32;
+ 0x69,/R 16 IW &RM16 UIMM16
+ 0x69,/R 16 IW RM16 IMM16
+ 0x69,/R 32 ID &RM32 UIMM32
+ 0x69,/R 32 ID RM32 IMM32
+ 0x69,/R 32 ID &RM64 UIMM32
+ 0x69,/R 32 ID RM64 IMM32;
 OPCODE DIV
  0xF6,/6 RM8
  0xF7,/6 16 RM16
@@ -796,30 +846,42 @@ OPCODE BT
  0x0F 0xA3,/R 16 RM16 R16
  0x0F 0xA3,/R 32 RM32 R32
  0x0F 0xA3,/R 32 RM64 R64
- 0x0F 0xBA,/4 16 IB RM16 UIMM8
- 0x0F 0xBA,/4 32 IB RM32 UIMM8
- 0x0F 0xBA,/4 32 IB RM64 UIMM8;
+ 0x0F 0xBA,/4 16 IB &RM16 UIMM8
+ 0x0F 0xBA,/4 16 IB RM16 IMM8
+ 0x0F 0xBA,/4 32 IB &RM32 UIMM8
+ 0x0F 0xBA,/4 32 IB RM32 IMM8
+ 0x0F 0xBA,/4 32 IB &RM64 UIMM8
+ 0x0F 0xBA,/4 32 IB RM64 IMM8;
 OPCODE BTC
  0x0F 0xBB,/R 16 RM16 R16
  0x0F 0xBB,/R 32 RM32 R32
  0x0F 0xBB,/R 32 RM64 R64
- 0x0F 0xBA,/7 16 IB RM16 UIMM8
- 0x0F 0xBA,/7 32 IB RM32 UIMM8
- 0x0F 0xBA,/7 32 IB RM64 UIMM8;
+ 0x0F 0xBA,/7 16 IB &RM16 UIMM8
+ 0x0F 0xBA,/7 16 IB RM16 IMM8
+ 0x0F 0xBA,/7 32 IB &RM32 UIMM8
+ 0x0F 0xBA,/7 32 IB RM32 IMM8
+ 0x0F 0xBA,/7 32 IB &RM64 UIMM8
+ 0x0F 0xBA,/7 32 IB RM64 IMM8;
 OPCODE BTR
  0x0F 0xB3,/R 16 RM16 R16
  0x0F 0xB3,/R 32 RM32 R32
  0x0F 0xB3,/R 32 RM64 R64
- 0x0F 0xBA,/6 16 IB RM16 UIMM8
- 0x0F 0xBA,/6 32 IB RM32 UIMM8
- 0x0F 0xBA,/6 32 IB RM64 UIMM8;
+ 0x0F 0xBA,/6 16 IB &RM16 UIMM8
+ 0x0F 0xBA,/6 16 IB RM16 IMM8
+ 0x0F 0xBA,/6 32 IB &RM32 UIMM8
+ 0x0F 0xBA,/6 32 IB RM32 IMM8
+ 0x0F 0xBA,/6 32 IB &RM64 UIMM8
+ 0x0F 0xBA,/6 32 IB RM64 IMM8;
 OPCODE BTS
  0x0F 0xAB,/R 16 RM16 R16
  0x0F 0xAB,/R 32 RM32 R32
  0x0F 0xAB,/R 32 RM64 R64
- 0x0F 0xBA,/5 16 IB RM16 UIMM8
- 0x0F 0xBA,/5 32 IB RM32 UIMM8
- 0x0F 0xBA,/5 32 IB RM64 UIMM8;
+ 0x0F 0xBA,/5 16 IB &RM16 UIMM8
+ 0x0F 0xBA,/5 16 IB RM16 IMM8
+ 0x0F 0xBA,/5 32 IB &RM32 UIMM8
+ 0x0F 0xBA,/5 32 IB RM32 IMM8
+ 0x0F 0xBA,/5 32 IB &RM64 UIMM8
+ 0x0F 0xBA,/5 32 IB RM64 IMM8;
 OPCODE CBW 0x98, 16;
 OPCODE CWDE 0x98, 32;
 OPCODE CDQE 0x98, 32=;
@@ -846,9 +908,12 @@ OPCODE DAS 0x2F;
 OPCODE ENTER 0xC8, $$IW IMM16;
 OPCODE HLT 0xF4;
 OPCODE IN
- 0xE4, IB AL UIMM8
- 0xE5, 16 IB AX UIMM8
- 0xE5, 32 IB EAX UIMM8
+ 0xE4, IB &AL UIMM8
+ 0xE4, IB AL IMM8
+ 0xE5, 16 IB &AX UIMM8
+ 0xE5, 16 IB AX IMM8
+ 0xE5, 32 IB &EAX UIMM8
+ 0xE5, 32 IB EAX IMM8
  0xEC, AL DX
  0xED, 16 AX DX
  0xED, 32 EAX DX;
@@ -861,7 +926,9 @@ OPCODE INSW 0x6D, 16;
 OPCODE INSD 0x6D, 32;
 OPCODE INTO 0xCE;
 OPCODE INT3 0xCC;
-OPCODE INT 0xCD, IB UIMM8;
+OPCODE INT 
+ 0xCD, IB &UIMM8
+ 0xCD, IB IMM8;
 OPCODE INVD 0x0F 0x08;
 OPCODE IRET 0xCF, 32=;
 OPCODE LAHF 0x9F;
@@ -938,9 +1005,12 @@ OPCODE MOVZX
  0x0F 0xB7,/R 32 R32 RM16
  0x0F 0xB7,/R 32 R64 RM16;
 OPCODE OUT
- 0xE6, IB UIMM8 AL
- 0xE7, 16 IB UIMM8 AX
- 0xE7, 32 IB UIMM8 EAX
+ 0xE6, IB &UIMM8 AL
+ 0xE6, IB IMM8 AL
+ 0xE7, 16 IB &UIMM8 AX
+ 0xE7, 16 IB IMM8 AX
+ 0xE7, 32 IB &UIMM8 EAX
+ 0xE7, 32 IB IMM8 EAX
  0xEE, DX AL
  0xEF, 16 DX AX
  0xEF, 32 DX EAX;
@@ -1071,10 +1141,14 @@ OPCODE RCL
  0xD3,/2 16 RM16 CL
  0xD3,/2 32 RM32 CL
  0xD3,/2 32 RM64 CL
- 0xC0,/2 IB RM8 UIMM8
- 0xC1,/2 16 IB RM16 UIMM8
- 0xC1,/2 32 IB RM32 UIMM8
- 0xC1,/2 32 IB RM64 UIMM8;
+ 0xC0,/2 IB &RM8 UIMM8
+ 0xC0,/2 IB RM8 IMM8
+ 0xC1,/2 16 IB &RM16 UIMM8
+ 0xC1,/2 16 IB RM16 IMM8
+ 0xC1,/2 32 IB &RM32 UIMM8
+ 0xC1,/2 32 IB RM32 IMM8
+ 0xC1,/2 32 IB &RM64 UIMM8
+ 0xC1,/2 32 IB RM64 IMM8;
 OPCODE RCL1
  0xD0,/2 RM8
  0xD1,/2 16 RM16
@@ -1085,10 +1159,14 @@ OPCODE RCR
  0xD3,/3 16 RM16 CL
  0xD3,/3 32 RM32 CL
  0xD3,/3 32 RM64 CL
- 0xC0,/3 IB RM8 UIMM8
- 0xC1,/3 16 IB RM16 UIMM8
- 0xC1,/3 32 IB RM32 UIMM8
- 0xC1,/3 32 IB RM64 UIMM8;
+ 0xC0,/3 IB &RM8 UIMM8
+ 0xC0,/3 IB RM8 IMM8
+ 0xC1,/3 16 IB &RM16 UIMM8
+ 0xC1,/3 16 IB RM16 IMM8
+ 0xC1,/3 32 IB &RM32 UIMM8
+ 0xC1,/3 32 IB RM32 IMM8
+ 0xC1,/3 32 IB &RM64 UIMM8
+ 0xC1,/3 32 IB RM64 IMM8;
 OPCODE RCR1
  0xD0,/3 RM8
  0xD1,/3 16 RM16
@@ -1099,10 +1177,14 @@ OPCODE ROL
  0xD3,/0 16 RM16 CL
  0xD3,/0 32 RM32 CL
  0xD3,/0 32 RM64 CL
- 0xC0,/0 IB RM8 UIMM8
- 0xC1,/0 16 IB RM16 UIMM8
- 0xC1,/0 32 IB RM32 UIMM8
- 0xC1,/0 32 IB RM64 UIMM8;
+ 0xC0,/0 IB &RM8 UIMM8
+ 0xC0,/0 IB RM8 IMM8
+ 0xC1,/0 16 IB &RM16 UIMM8
+ 0xC1,/0 16 IB RM16 IMM8
+ 0xC1,/0 32 IB &RM32 UIMM8
+ 0xC1,/0 32 IB RM32 IMM8
+ 0xC1,/0 32 IB &RM64 UIMM8
+ 0xC1,/0 32 IB RM64 IMM8;
 OPCODE ROL1
  0xD0,/0 RM8
  0xD1,/0 16 RM16
@@ -1113,10 +1195,14 @@ OPCODE ROR
  0xD3,/1 16 RM16 CL
  0xD3,/1 32 RM32 CL
  0xD3,/1 32 RM64 CL
- 0xC0,/1 IB RM8 UIMM8
- 0xC1,/1 16 IB RM16 UIMM8
- 0xC1,/1 32 IB RM32 UIMM8
- 0xC1,/1 32 IB RM64 UIMM8;
+ 0xC0,/1 IB &RM8 UIMM8
+ 0xC0,/1 IB RM8 IMM8
+ 0xC1,/1 16 IB &RM16 UIMM8
+ 0xC1,/1 16 IB RM16 IMM8
+ 0xC1,/1 32 IB &RM32 UIMM8
+ 0xC1,/1 32 IB RM32 IMM8
+ 0xC1,/1 32 IB &RM64 UIMM8
+ 0xC1,/1 32 IB RM64 IMM8;
 OPCODE ROR1
  0xD0,/1 RM8
  0xD1,/1 16 RM16
@@ -1128,10 +1214,14 @@ OPCODE SAL
  0xD3,/4 16 RM16 CL
  0xD3,/4 32 RM32 CL
  0xD3,/4 32 RM64 CL
- 0xC0,/4 IB RM8 UIMM8
- 0xC1,/4 16 IB RM16 UIMM8
- 0xC1,/4 32 IB RM32 UIMM8
- 0xC1,/4 32 IB RM64 UIMM8;
+ 0xC0,/4 IB &RM8 UIMM8
+ 0xC0,/4 IB RM8 IMM8
+ 0xC1,/4 16 IB &RM16 UIMM8
+ 0xC1,/4 16 IB RM16 IMM8
+ 0xC1,/4 32 IB &RM32 UIMM8
+ 0xC1,/4 32 IB RM32 IMM8
+ 0xC1,/4 32 IB &RM64 UIMM8
+ 0xC1,/4 32 IB RM64 IMM8;
 OPCODE SAL1
  0xD0,/4 RM8
  0xD1,/4 16 RM16
@@ -1143,10 +1233,14 @@ OPCODE SAR
  0xD3,/7 16 RM16 CL
  0xD3,/7 32 RM32 CL
  0xD3,/7 32 RM64 CL
- 0xC0,/7 IB RM8 UIMM8
- 0xC1,/7 16 IB RM16 UIMM8
- 0xC1,/7 32 IB RM32 UIMM8
- 0xC1,/7 32 IB RM64 UIMM8;
+ 0xC0,/7 IB &RM8 UIMM8
+ 0xC0,/7 IB RM8 IMM8
+ 0xC1,/7 16 IB &RM16 UIMM8
+ 0xC1,/7 16 IB RM16 IMM8
+ 0xC1,/7 32 IB &RM32 UIMM8
+ 0xC1,/7 32 IB RM32 IMM8
+ 0xC1,/7 32 IB &RM64 UIMM8
+ 0xC1,/7 32 IB RM64 IMM8;
 OPCODE SAR1
  0xD0,/7 RM8
  0xD1,/7 16 RM16
@@ -1158,10 +1252,14 @@ OPCODE SHL
  0xD3,/4 16 RM16 CL
  0xD3,/4 32 RM32 CL
  0xD3,/4 32 RM64 CL
- 0xC0,/4 IB RM8 UIMM8
- 0xC1,/4 16 IB RM16 UIMM8
- 0xC1,/4 32 IB RM32 UIMM8
- 0xC1,/4 32 IB RM64 UIMM8;
+ 0xC0,/4 IB &RM8 UIMM8
+ 0xC0,/4 IB RM8 IMM8
+ 0xC1,/4 16 IB &RM16 UIMM8
+ 0xC1,/4 16 IB RM16 IMM8
+ 0xC1,/4 32 IB &RM32 UIMM8
+ 0xC1,/4 32 IB RM32 IMM8
+ 0xC1,/4 32 IB &RM64 UIMM8
+ 0xC1,/4 32 IB RM64 IMM8;
 OPCODE SHL1
  0xD0,/4 RM8
  0xD1,/4 16 RM16
@@ -1173,10 +1271,14 @@ OPCODE SHR
  0xD3,/5 16 RM16 CL
  0xD3,/5 32 RM32 CL
  0xD3,/5 32 RM64 CL
- 0xC0,/5 IB RM8 UIMM8
- 0xC1,/5 16 IB RM16 UIMM8
- 0xC1,/5 32 IB RM32 UIMM8
- 0xC1,/5 32 IB RM64 UIMM8;
+ 0xC0,/5 IB &RM8 UIMM8
+ 0xC0,/5 IB RM8 IMM8
+ 0xC1,/5 16 IB &RM16 UIMM8
+ 0xC1,/5 16 IB RM16 IMM8
+ 0xC1,/5 32 IB &RM32 UIMM8
+ 0xC1,/5 32 IB RM32 IMM8
+ 0xC1,/5 32 IB &RM64 UIMM8
+ 0xC1,/5 32 IB RM64 IMM8;
 OPCODE SHR1
  0xD0,/5 RM8
  0xD1,/5 16 RM16
diff --git a/TempleOS/Compiler/OptPass012.CPP b/TempleOS/Compiler/OptPass012.CPP
index 0f0ae5e..da1a918 100644
--- a/TempleOS/Compiler/OptPass012.CPP
+++ b/TempleOS/Compiler/OptPass012.CPP
@@ -1,37 +1,30 @@
-U0 OptMissing(CLex *lx,CIntermediateCode *tempi)
-{
-  "Pass:%d Missing IC handler\n",lx->pass;
-  CBPutIC(tempi);
-  LexExcept(lx,"ST_OPT_INTERNAL_ERROR");
-}
+/*
+OptPass012
 
-CIntermediateCode opt_nop;
+Pass#0
+When parsing the arg expressions to a function
+call, there is a call to OptPass012 to determine
+the type of the expression. $LK,"OptPass012","FF:::/TempleOS/Compiler/ExpParser.CPP.Z,OptPass012"$
 
-CPrsStk *OptStart(CLex *lx,CIntermediateCode **temp_lag=NULL)
-{
-  I64 i;
-  CPrsStk *ps=MAlloc(sizeof(CPrsStk));
-  CBInPtrsInit(&lx->cbh);
-  ps->ptr=0;
-  ps->ptr2=0;
-  if (temp_lag)
-    for (i=0;i<4;i++)
-      temp_lag[i]=&opt_nop;
-  return ps;
-}
+Pass#1&2
+Constant expressions are simplified.
+Eliminated opcodes are set to NOP.
+Types are determined by reconstructing an
+expression tree for operators
+$LK,"CIntermediateCode","MN:CIntermediateCode"$.$LK,"CICTreeLinks","MN:CICTreeLinks"$.
 
-U0 OptEnd(CLex *lx,CPrsStk *ps)
-{
-  if (ps->ptr>2) {
-    "Pass:%d Stk:%08X\n",lx->pass,ps->ptr;
-    LexExcept(lx,"ST_OPT_INTERNAL_ERROR");
-  }
-  Free(ps);
-}
+Pointer arithmetic size is set, once
+the type is determined.
 
-CCodeBlkMisc *OptLabelFwd(CCodeBlkMisc *lb)
+Branches are expressed with short-circuit
+logic. 3-Arg comparisons are established.
+
+*/
+
+
+CLexCodeMisc *OptLabelFwd(CLexCodeMisc *lb)
 {
-  CCodeBlkMisc *lb1;
+  CLexCodeMisc *lb1;
   while (lb1=lb->fwd)
     lb=lb1;
   return lb;
@@ -64,10 +57,10 @@ U0 OptSetNOP2(CIntermediateCode *tempi,I64 stk_delta=1)
 CIntermediateCode *OptLag(CIntermediateCode *tempi)
 {
   do {
-    if (tempi->ic_opcode==IC_START)
+    if (!tempi->ic_opcode)
       return NULL;
     else
-      tempi--;
+      tempi=tempi->last;
   } while (tempi->ic_opcode<=IC_END_EXP);
   return tempi;
 }
@@ -75,19 +68,30 @@ CIntermediateCode *OptLag(CIntermediateCode *tempi)
 CIntermediateCode *OptLag1(CIntermediateCode *tempi)
 {
   do {
-    if (tempi->ic_opcode==IC_START)
+    if (!tempi->ic_opcode)
       return NULL;
     else
-      tempi--;
+      tempi=tempi->last;
   } while (tempi->ic_opcode==IC_NOP1||tempi->ic_opcode==IC_NOP2);
   return tempi;
 }
 
-CIntermediateCode *OptLead1(CLex *,CIntermediateCode *tempi)
+CIntermediateCode *OptLag2(CIntermediateCode *tempi)
 {
   do {
-    tempi++;
-    if (tempi->ic_opcode==IC_END)
+    if (!tempi->ic_opcode)
+      return NULL;
+    else
+      tempi=tempi->last;
+  } while (tempi->ic_opcodenext;
+    if (!tempi->ic_opcode)
       return NULL;
   } while (tempi->ic_opcode==IC_NOP1||tempi->ic_opcode==IC_NOP2);
   return tempi;
@@ -225,7 +229,7 @@ extern U0 OptBrNotZero(CLex *lx,CIntermediateCode *tempi);
 
 CIntermediateCode *OptBrZero(CLex *lx,CIntermediateCode *tempi)
 {
-  CCodeBlkMisc *lb_true,*lb_false;
+  CLexCodeMisc *lb_true,*lb_false;
   CIntermediateCode *tempii=OptLag(tempi),*tempii2;
   switch (tempii->ic_opcode) {
     case IC_NOT:
@@ -333,22 +337,22 @@ CIntermediateCode *OptBrZero(CLex *lx,CIntermediateCode *tempi)
 	!(tempi->ic_flags&ICF_USE_F64)) {
       tempi->ic_opcode+=IC_BR_NOT_EQUAL2-IC_BR_NOT_EQUAL;
       tempi->ic_flags&=~ICF_PUSH_CMP;
-      tempii =tempi+1; //IC_PUSH_CMP instruction
+      tempii =tempi->next; //IC_PUSH_CMP instruction
       while (tempii->ic_opcode!=IC_PUSH_CMP)
-	tempii++;
+	tempii=tempii->next;
       tempii->t.p1t=tempi;
       OptSetNOP1(tempii);
     }
 
     lb_true=tempi->ic_data;
     if (tempi->ic_opcode==IC_BR_AND_AND_ZERO) {
-      tempii=tempi->t.p1t+1;
+      tempii=tempi->t.p1t->next;
       tempii->ic_data=lb_true;
       tempii->t.p1t=tempi->t.p1t;
       tempii->t.p1c=tempi->t.p1c;
       tempii->ic_opcode=IC_BR_ZERO;
       OptBrZero(lx,tempii);
-      tempii=tempi->t.p2t+1;
+      tempii=tempi->t.p2t->next;
       tempii->t.p1t=tempi->t.p2t;
       tempii->t.p1c=tempi->t.p2c;
       tempii->ic_data=lb_true;
@@ -356,17 +360,17 @@ CIntermediateCode *OptBrZero(CLex *lx,CIntermediateCode *tempi)
       tempii=OptBrZero(lx,tempii);
       OptSetNOP1(tempi);;
     } else if (tempi->ic_opcode==IC_BR_OR_OR_ZERO) {
-      lb_false=CBMiscNew(lx,CBMT_LABEL);
+      lb_false=LCCMiscNew(lx,CMT_LABEL);
       tempi->ic_opcode=IC_LABEL;
       tempi->ic_flags=0;
       tempi->ic_data=lb_false;
-      tempii=tempi->t.p1t+1;
+      tempii=tempi->t.p1t->next;
       tempii->t.p1t=tempi->t.p1t;
       tempii->t.p1c=tempi->t.p1c;
       tempii->ic_data=lb_false;
       tempii->ic_opcode=IC_BR_NOT_ZERO;
       OptBrNotZero(lx,tempii);
-      tempii=tempi->t.p2t+1;
+      tempii=tempi->t.p2t->next;
       tempii->t.p1t=tempi->t.p2t;
       tempii->t.p1c=tempi->t.p2c;
       tempii->ic_data=lb_true;
@@ -386,7 +390,7 @@ CIntermediateCode *OptBrZero(CLex *lx,CIntermediateCode *tempi)
 
 CIntermediateCode *OptBrNotZero(CLex *lx,CIntermediateCode *tempi)
 {
-  CCodeBlkMisc *lb_true,*lb_false;
+  CLexCodeMisc *lb_true,*lb_false;
   CIntermediateCode *tempii=OptLag(tempi),*tempii2;
   switch (tempii->ic_opcode) {
     case IC_NOT:
@@ -494,22 +498,22 @@ CIntermediateCode *OptBrNotZero(CLex *lx,CIntermediateCode *tempi)
 	!(tempi->ic_flags&ICF_USE_F64)) {
       tempi->ic_opcode+=IC_BR_NOT_EQUAL2-IC_BR_NOT_EQUAL;
       tempi->ic_flags&=~ICF_PUSH_CMP;
-      tempii =tempi+1; //IC_PUSH_CMP instruction
+      tempii =tempi->next; //IC_PUSH_CMP instruction
       while (tempii->ic_opcode!=IC_PUSH_CMP)
-	tempii++;
+	tempii=tempii->next;
       tempii->t.p1t=tempi;
       OptSetNOP1(tempii);
     }
 
     lb_true=tempi->ic_data;
     if (tempi->ic_opcode==IC_BR_OR_OR_NOT_ZERO) {
-      tempii=tempi->t.p1t+1;
+      tempii=tempi->t.p1t->next;
       tempii->t.p1t=tempi->t.p1t;
       tempii->t.p1c=tempi->t.p1c;
       tempii->ic_data=lb_true;
       tempii->ic_opcode=IC_BR_NOT_ZERO;
       OptBrNotZero(lx,tempii);
-      tempii=tempi->t.p2t+1;
+      tempii=tempi->t.p2t->next;
       tempii->t.p1t=tempi->t.p2t;
       tempii->t.p1c=tempi->t.p2c;
       tempii->ic_data=lb_true;
@@ -517,17 +521,17 @@ CIntermediateCode *OptBrNotZero(CLex *lx,CIntermediateCode *tempi)
       tempii=OptBrNotZero(lx,tempii);
       OptSetNOP1(tempi);;
     } else if (tempi->ic_opcode==IC_BR_AND_AND_NOT_ZERO) {
-      lb_false=CBMiscNew(lx,CBMT_LABEL);
+      lb_false=LCCMiscNew(lx,CMT_LABEL);
       tempi->ic_opcode=IC_LABEL;
       tempi->ic_flags=0;
       tempi->ic_data=lb_false;
-      tempii=tempi->t.p1t+1;
+      tempii=tempi->t.p1t->next;
       tempii->t.p1t=tempi->t.p1t;
       tempii->t.p1c=tempi->t.p1c;
       tempii->ic_data=lb_false;
       tempii->ic_opcode=IC_BR_ZERO;
       OptBrZero(lx,tempii);
-      tempii=tempi->t.p2t+1;
+      tempii=tempi->t.p2t->next;
       tempii->t.p1t=tempi->t.p2t;
       tempii->t.p1c=tempi->t.p2c;
       tempii->ic_data=lb_true;
@@ -568,7 +572,7 @@ here:
   }
 }
 
-CIntermediateCode *OptPass012(CLex *lx,CHashFun *fun_class,Bool combined)
+CIntermediateCode *OptPass012(CLex *lx,CHashFun *fun_class)
 {
 /*
 Simplify CONST arithmetic.
@@ -581,22 +585,13 @@ args.
   Bool is_unsigned;
   CHashClass *tempc,*tempc1,*tempc2;
   CIntermediateCode *tempi,*tempi1,*tempi2,*tempi3,*tempi_push,
-	*temp_lag[4],*last_with_class=NULL,*tempii;
-  CPrsStk *ps=OptStart(lx,temp_lag);
-  CCodeBlkMisc *lb,*lb1,*lb2;
-  if (combined)
-    tempi=lx->cbh.cb_in_ptr;
-  else
-    tempi=CBGetIC1(&lx->cbh);
-  if (tempi->ic_opcode==IC_START) {
-    if (combined)
-      tempi++;
-    else
-      tempi=CBGetIC1(&lx->cbh);
-  }
-#assert !IC_END
+	*last_with_class=NULL;
+  CLexCodeMisc *lb,*lb1,*lb2;
+  CPrsStk *ps=MAlloc(sizeof(CPrsStk));
+  ps->ptr=0;
+  ps->ptr2=0;
+  tempi=lx->lcc.lcc_root.next;
   while (code=tempi->ic_opcode) {
-    OptNext(tempi,temp_lag);
     tempc=tempi->ic_class;
     tempi->ic_class2=tempc;
     tempi_push=tempi;
@@ -619,8 +614,8 @@ args.
       case 0: //nobound_switch
 	break;
     }
-    if (Bt(not_constant_bitmap,code))
-      lx->flags|=LF_NOT_CONSTANT;
+    if (Bt(not_const_bitmap,code))
+      lx->flags|=LF_NOT_CONST;
     nobound_switch (code) {
       case IC_IMM_F64:
 	tempi->ic_flags&=~ICF_R_TO_F64;
@@ -669,30 +664,28 @@ args.
       case IC_FS:
       case IC_GS:
 //CALL,FS/GS,CALL_END,IMM,ADD,DEREF-->MOV_FS/GS
-	if (combined) {
-	  tempi1=tempi+2; //IMM
-	  tempi2=tempi+3; //ADD
-	  tempi3=tempi+4; //DEREF
-	  if (tempi1->ic_opcode==IC_IMM_U64 && tempi2->ic_opcode==IC_ADD &&
-		tempi3->ic_opcode==IC_DEREF && !(tempi3->ic_flags&~ICF_NO_CVT_MASK)) {
-	    tempi->ic_flags|=tempi1->ic_flags|tempi2->ic_flags|tempi3->ic_flags;
-	    if (tempi->ic_opcode==IC_FS)
-	      tempi->ic_opcode=IC_MOV_FS;
-	    else
-	      tempi->ic_opcode=IC_MOV_GS;
-	    tempi->ic_data=tempi1->ic_data;
-	    tempi->ic_class =tempi3->ic_class;
-	    tempi->ic_class2=tempi3->ic_class2;
-	    OptSetNOP1(tempi1);
-	    OptSetNOP1(tempi2);
-	    OptSetNOP1(tempi3);
+	tempi1=tempi->next->next; //IMM
+	tempi2=tempi1->next; //ADD
+	tempi3=tempi2->next; //DEREF
+	if (tempi1->ic_opcode==IC_IMM_U64 && tempi2->ic_opcode==IC_ADD &&
+	      tempi3->ic_opcode==IC_DEREF && !(tempi3->ic_flags&~ICG_NO_CVT_MASK)) {
+	  tempi->ic_flags|=tempi1->ic_flags|tempi2->ic_flags|tempi3->ic_flags;
+	  if (tempi->ic_opcode==IC_FS)
+	    tempi->ic_opcode=IC_MOV_FS;
+	  else
+	    tempi->ic_opcode=IC_MOV_GS;
+	  tempi->ic_data=tempi1->ic_data;
+	  tempi->ic_class =tempi3->ic_class;
+	  tempi->ic_class2=tempi3->ic_class2;
+	  OptSetNOP1(tempi1);
+	  OptSetNOP1(tempi2);
+	  OptSetNOP1(tempi3);
 
-	    tempi1=tempi-1; //CALL
-	    tempi2=tempi+1; //CALL_END
-	    tempi->ic_flags|=tempi1->ic_flags|tempi2->ic_flags;
-	    OptSetNOP1(tempi1);
-	    OptSetNOP1(tempi2);
-	  }
+	  tempi1=tempi->last; //CALL
+	  tempi2=tempi->next; //CALL_END
+	  tempi->ic_flags|=tempi1->ic_flags|tempi2->ic_flags;
+	  OptSetNOP1(tempi1);
+	  OptSetNOP1(tempi2);
 	}
 	break;
       case IC_STR_CONST:
@@ -703,10 +696,12 @@ args.
       case IC_SIZEOF:
 	break;
       case IC_PUSH_CMP:
-	tempi1=temp_lag[1];
-	if (tempi1->ic_opcode==IC_AND_AND)
-	  tempi1=temp_lag[2];
-	tempi->ic_class=tempi1->ic_class;
+	if (tempi1=OptLag(tempi)) {
+	  if (tempi1->ic_opcode==IC_AND_AND)
+	    tempi1=OptLag(tempi1);
+	  if (tempi1)
+	    tempi->ic_class=tempi1->ic_class;
+	}
 	tempi->ic_class2=tempi->ic_class;
 	tempi->ic_data=0;
 	if (tempi->ic_class->sub_type==IT_F64)
@@ -837,23 +832,12 @@ args.
 	break;
 
       case IC_POWER:
-	if (tempc1->sub_type>tempc2->sub_type)
-	  tempi->ic_class=tempc1;
-	else
-	  tempi->ic_class=tempc2;
-	tempc=tempi->ic_class;
+	tempc=tempi->ic_class=sys_internal_types[IT_F64];
 	if (tempc1->sub_type!=IT_F64)
 	  tempi1->ic_flags|=ICF_R_TO_F64;
 	if (tempc2->sub_type!=IT_F64)
 	  tempi2->ic_flags|=ICF_R_TO_F64;
-	if (tempc->sub_type!=IT_F64)
-	  tempi->ic_flags|=ICF_R_TO_INT|ICF_USE_F64;
-	if (!tempi_push->ic_class->ptr_cnt) {
-	  if (tempi_push->ic_class->sub_type==IT_F64)
-	    tempi_push->ic_class2=sys_internal_types[IT_F64];
-	  else
-	    tempi_push->ic_class2=sys_internal_types[IT_I64];
-	}
+	tempi_push->ic_class2=sys_internal_types[IT_F64];
 	break;
       case IC_SHL:
 	if (i=OptFixupBinaryOp1(tempi,tempi1,tempi2,&is_unsigned)) {
@@ -1673,14 +1657,40 @@ args.
 	tempi->ic_data=-fun_class->size;
 	break;
       case IC_ADD_RSP:
-	if (temp_lag[1]->ic_opcode==IC_ADD_RSP) {
-	  tempi->ic_data+=temp_lag[1]->ic_data;
-	  tempi->ic_flags|=temp_lag[1]->ic_flags;
-	  OptSetNOP1(temp_lag[1]);
+	if (tempi1=OptLag(tempi)) {
+	  if (tempi1->ic_opcode==IC_ADD_RSP) {
+	    tempi->ic_data+=tempi1->ic_data;
+	    tempi->ic_flags|=tempi1->ic_flags;
+	    OptSetNOP1(tempi1);
+	  }
 	}
       case IC_ADD_RSP1:
 	break;
 
+      case IC_BSF:
+	if (tempi1->ic_opcode==IC_IMM_U64) {
+	  tempi1->ic_data=Bsf(tempi1->ic_data);
+	  tempi_push=tempi1;
+	  OptSetNOP1(OptLag(tempi1));	//CALL_START
+	  tempi2=OptLead1(tempi);
+	  tempi1->ic_flags|=tempi->ic_flags|tempi2->ic_flags;
+	  OptSetNOP1(tempi2);		//CALL_END
+	  OptSetNOP1(tempi);		//BSF
+	}
+	break;
+
+      case IC_BSR:
+	if (tempi1->ic_opcode==IC_IMM_U64) {
+	  tempi1->ic_data=Bsr(tempi1->ic_data);
+	  tempi_push=tempi1;
+	  OptSetNOP1(OptLag(tempi1));	//CALL_START
+	  tempi2=OptLead1(tempi);
+	  tempi1->ic_flags|=tempi->ic_flags|tempi2->ic_flags;
+	  OptSetNOP1(tempi2);		//CALL_END
+	  OptSetNOP1(tempi);		//BSR
+	}
+	break;
+
       case IC_CALL:
       case IC_CALL_INDIRECT:
       case IC_CALL_INDIRECT2:
@@ -1698,10 +1708,10 @@ args.
       case IC_INVLPG:
       case IC_CLFLUSH:
       case IC_PAUSE:
-      case IC_GET_FLAGS:
+      case IC_GET_RFLAGS:
       case IC_CARRY:
-      case IC_GET_BASE_PTR:
-      case IC_GET_STK_PTR:
+      case IC_GET_RBP:
+      case IC_GET_RSP:
       case IC_GET_RAX:
       case IC_RETURN_VAL:
       case IC_RETURN_VAL2:
@@ -1712,12 +1722,10 @@ args.
       case IC_TYPE:
       case IC_RDTSC:
       case IC_HPET:
-      case IC_SET_FLAGS:
-      case IC_SET_BASE_PTR:
-      case IC_SET_STK_PTR:
+      case IC_SET_RFLAGS:
+      case IC_SET_RBP:
+      case IC_SET_RSP:
       case IC_SET_RAX:
-      case IC_BSF:
-      case IC_BSR:
       case IC_PREEMPT:
       case IC_SIGN_I64:
       case IC_TOUPPER:
@@ -1758,165 +1766,152 @@ args.
 	tempi->ic_flags|=ICF_LOCK;
 	break;
       case IC_TO_I64:
-	if (combined) {
-	  if (tempi1->ic_opcode==IC_IMM_F64) {
-	    tempi->ic_flags|=tempi1->ic_flags&~ICF_R_TO_INT;
-	    tempi->ic_opcode=IC_IMM_U64;
-	    tempi->ic_data=ToI64(tempi1->ic_data(F64));
-	    tempi->ic_class=sys_internal_types[IT_I64];
-	    tempi->ic_class2=sys_internal_types[IT_I64];
-	    OptSetNOP1(tempi1);
+	if (tempi1->ic_opcode==IC_IMM_F64) {
+	  tempi2=tempi1->last;
+	  while (tempi2->ic_opcode!=IC_CALL_START)
+	    tempi2=tempi2->last;
+	  OptSetNOP1(tempi2);
 
-	    tempii=tempi1-1;
-	    while (tempii->ic_opcode!=IC_CALL_START)
-	      tempii--;
-	    OptSetNOP1(tempii);
+	  tempi2=tempi->next;
+	  while (tempi2->ic_opcode!=IC_CALL_END)
+	    tempi2=tempi2->next;
 
-	    tempii=tempi+1;
-	    while (tempii->ic_opcode!=IC_CALL_END)
-	      tempii++;
-	    OptSetNOP1(tempii);
-	  } else if (tempi1->ic_opcode==IC_IMM_U64) {
-	    tempi->ic_flags|=tempi1->ic_flags&~ICF_R_TO_F64;
-	    tempi->ic_opcode=IC_IMM_U64;
-	    tempi->ic_data=tempi1->ic_data;
-	    tempi->ic_class=sys_internal_types[IT_I64];
-	    tempi->ic_class2=sys_internal_types[IT_I64];
-	    OptSetNOP1(tempi1);
+	  tempi->ic_flags|=tempi1->ic_flags&~ICF_R_TO_INT|tempi2->ic_flags;
+	  OptSetNOP1(tempi2);
 
-	    tempii=tempi1-1;
-	    while (tempii->ic_opcode!=IC_CALL_START)
-	      tempii--;
-	    OptSetNOP1(tempii);
+	  tempi->ic_opcode=IC_IMM_U64;
+	  tempi->ic_data=ToI64(tempi1->ic_data(F64));
+	  tempi->ic_class=sys_internal_types[IT_I64];
+	  tempi->ic_class2=sys_internal_types[IT_I64];
+	  OptSetNOP1(tempi1);
+	} else if (tempi1->ic_opcode==IC_IMM_U64) {
+	  tempi2=tempi1->last;
+	  while (tempi2->ic_opcode!=IC_CALL_START)
+	    tempi2=tempi2->last;
+	  OptSetNOP1(tempi2);
 
-	    tempii=tempi+1;
-	    while (tempii->ic_opcode!=IC_CALL_END)
-	      tempii++;
-	    OptSetNOP1(tempii);
+	  tempi2=tempi->next;
+	  while (tempi2->ic_opcode!=IC_CALL_END)
+	    tempi2=tempi2->next;
+
+	  tempi->ic_flags|=tempi1->ic_flags&~ICF_R_TO_F64|tempi2->ic_flags;
+	  OptSetNOP1(tempi2);
+
+	  tempi->ic_opcode=IC_IMM_U64;
+	  tempi->ic_data=tempi1->ic_data;
+	  tempi->ic_class=sys_internal_types[IT_I64];
+	  tempi->ic_class2=sys_internal_types[IT_I64];
+	  OptSetNOP1(tempi1);
+	}
+	if (tempi1->ic_flags&ICF_R_TO_F64) {
+	  i=0;
+	  tempi2=tempi1->last;
+	  while (TRUE) {
+	    if (tempi2->ic_opcode==IC_CALL_START) {
+	      if (!i) break;
+	      i--;
+	    } else if (tempi2->ic_opcode==IC_CALL_END)
+	      i++;
+	    tempi2=tempi2->last;
 	  }
-	  if (tempi1->ic_flags&ICF_R_TO_F64) {
-	    tempi1->ic_flags=tempi->ic_flags|tempi1->ic_flags&~(ICF_R_TO_F64|ICF_PUSH_RESULT);
-	    tempi1->ic_class=sys_internal_types[IT_I64];
-	    tempi1->ic_class2=sys_internal_types[IT_I64];
-	    tempi_push=tempi1;
-	    OptSetNOP1(tempi);;
+	  OptSetNOP1(tempi2);
 
-	    i=0;
-	    tempii=tempi1-1;
-	    while (TRUE) {
-	      if (tempii->ic_opcode==IC_CALL_START) {
-		if (!i) break;
-		i--;
-	      } else if (tempii->ic_opcode==IC_CALL_END)
-		i++;
-	      tempii--;
-	    }
-	    OptSetNOP1(tempii);
+	  tempi2=tempi1->next;
+	  while (tempi2->ic_opcode!=IC_CALL_END)
+	    tempi2=tempi2->next;
 
-	    i=0;
-	    tempii=tempi1+1;
-	    while (TRUE) {
-	      if (tempii->ic_opcode==IC_CALL_END) {
-		if (!i) break;
-		i--;
-	      } else if (tempii->ic_opcode==IC_CALL_START)
-		i++;
-	      tempii++;
-	    }
-	    OptSetNOP1(tempii);
-	  }
+	  tempi1->ic_flags=tempi->ic_flags|tempi1->ic_flags&~(ICF_R_TO_F64|ICF_PUSH_RESULT)|tempi2->ic_flags;
+	  OptSetNOP1(tempi2);
+
+	  tempi1->ic_class=sys_internal_types[IT_I64];
+	  tempi1->ic_class2=sys_internal_types[IT_I64];
+	  tempi_push=tempi1;
+	  OptSetNOP1(tempi);;
 	}
 	break;
       case IC_TO_F64:
-	if (combined) {
-	  if (tempi1->ic_opcode==IC_IMM_U64) {
-	    tempi->ic_flags|=tempi1->ic_flags&~ICF_R_TO_F64;
-	    tempi->ic_opcode=IC_IMM_F64;
-	    tempi->ic_data(F64)=ToF64(tempi1->ic_data);
-	    tempi->ic_class=sys_internal_types[IT_F64];
-	    tempi->ic_class2=sys_internal_types[IT_F64];
-	    OptSetNOP1(tempi1);
+	if (tempi1->ic_opcode==IC_IMM_U64) {
+	  tempi2=tempi1->last;
+	  while (tempi2->ic_opcode!=IC_CALL_START)
+	    tempi2=tempi2->last;
+	  OptSetNOP1(tempi2);
 
-	    tempii=tempi1-1;
-	    while (tempii->ic_opcode!=IC_CALL_START)
-	      tempii--;
-	    OptSetNOP1(tempii);
+	  tempi2=tempi->next;
+	  while (tempi2->ic_opcode!=IC_CALL_END)
+	    tempi2=tempi2->next;
 
-	    tempii=tempi+1;
-	    while (tempii->ic_opcode!=IC_CALL_END)
-	      tempii++;
-	    OptSetNOP1(tempii);
-	  } else if (tempi1->ic_opcode==IC_IMM_F64) {
-	    tempi->ic_flags|=tempi1->ic_flags&~ICF_R_TO_INT;
-	    tempi->ic_opcode=IC_IMM_F64;
-	    tempi->ic_data=tempi1->ic_data;
-	    tempi->ic_class=sys_internal_types[IT_F64];
-	    tempi->ic_class2=sys_internal_types[IT_F64];
-	    OptSetNOP1(tempi1);
+	  tempi->ic_flags|=tempi1->ic_flags&~ICF_R_TO_F64|tempi2->ic_flags;
+	  OptSetNOP1(tempi2);
 
-	    tempii=tempi1-1;
-	    while (tempii->ic_opcode!=IC_CALL_START)
-	      tempii--;
-	    OptSetNOP1(tempii);
+	  tempi->ic_opcode=IC_IMM_F64;
+	  tempi->ic_data(F64)=ToF64(tempi1->ic_data);
+	  tempi->ic_class=sys_internal_types[IT_F64];
+	  tempi->ic_class2=sys_internal_types[IT_F64];
+	  OptSetNOP1(tempi1);
+	} else if (tempi1->ic_opcode==IC_IMM_F64) {
+	  tempi2=tempi1->last;
+	  while (tempi2->ic_opcode!=IC_CALL_START)
+	    tempi2=tempi2->last;
+	  OptSetNOP1(tempi2);
 
-	    tempii=tempi+1;
-	    while (tempii->ic_opcode!=IC_CALL_END)
-	      tempii++;
-	    OptSetNOP1(tempii);
+	  tempi2=tempi->next;
+	  while (tempi2->ic_opcode!=IC_CALL_END)
+	    tempi2=tempi2->next;
+
+	  tempi->ic_flags|=tempi1->ic_flags&~ICF_R_TO_INT|tempi2->ic_flags;
+	  OptSetNOP1(tempi2);
+
+	  tempi->ic_opcode=IC_IMM_F64;
+	  tempi->ic_data=tempi1->ic_data;
+	  tempi->ic_class=sys_internal_types[IT_F64];
+	  tempi->ic_class2=sys_internal_types[IT_F64];
+	  OptSetNOP1(tempi1);
+	}
+	if (tempi1->ic_flags&ICF_R_TO_INT) {
+	  i=0;
+	  tempi2=tempi1->last;
+	  while (TRUE) {
+	    if (tempi2->ic_opcode==IC_CALL_START) {
+	      if (!i) break;
+	      i--;
+	    } else if (tempi2->ic_opcode==IC_CALL_END)
+	      i++;
+	    tempi2=tempi2->last;
 	  }
-	  if (tempi1->ic_flags&ICF_R_TO_INT) {
-	    tempi1->ic_flags=tempi->ic_flags|tempi1->ic_flags&~(ICF_R_TO_INT|ICF_PUSH_RESULT);
-	    OptSetNOP1(tempi);;
-	    tempi1->ic_class=sys_internal_types[IT_F64];
-	    tempi1->ic_class2=sys_internal_types[IT_F64];
-	    tempi_push=tempi1;
+	  OptSetNOP1(tempi2);
 
-	    i=0;
-	    tempii=tempi1-1;
-	    while (TRUE) {
-	      if (tempii->ic_opcode==IC_CALL_START) {
-		if (!i) break;
-		i--;
-	      } else if (tempii->ic_opcode==IC_CALL_END)
-		i++;
-	      tempii--;
-	    }
-	    OptSetNOP1(tempii);
+	  tempi2=tempi1->next;
+	  while (tempi2->ic_opcode!=IC_CALL_END)
+	    tempi2=tempi2->next;
 
-	    i=0;
-	    tempii=tempi1+1;
-	    while (TRUE) {
-	      if (tempii->ic_opcode==IC_CALL_END) {
-		if (!i) break;
-		i--;
-	      } else if (tempii->ic_opcode==IC_CALL_START)
-		i++;
-	      tempii++;
-	    }
-	    OptSetNOP1(tempii);
-	  }
+	  tempi1->ic_flags=tempi->ic_flags|tempi1->ic_flags&~(ICF_R_TO_INT|ICF_PUSH_RESULT)|tempi2->ic_flags;
+	  OptSetNOP1(tempi2);
+
+	  tempi1->ic_class=sys_internal_types[IT_F64];
+	  tempi1->ic_class2=sys_internal_types[IT_F64];
+	  tempi_push=tempi1;
+	  OptSetNOP1(tempi);;
 	}
 	break;
       case IC_TO_BOOL:
-	if (combined) {
-	  if (tempi1->ic_opcode==IC_IMM_U64 || tempi1->ic_opcode==IC_IMM_F64) {
-	    tempi->ic_flags|=tempi1->ic_flags&~ICF_R_TO_F64;
-	    tempi->ic_opcode=IC_IMM_U64;
-	    tempi->ic_data=ToBool(tempi1->ic_data);
-	    tempi->ic_class=sys_internal_types[IT_I64];
-	    tempi->ic_class2=sys_internal_types[IT_I64];
-	    OptSetNOP1(tempi1);
+	if (tempi1->ic_opcode==IC_IMM_U64 || tempi1->ic_opcode==IC_IMM_F64) {
+	  tempi2=tempi1->last;
+	  while (tempi2->ic_opcode!=IC_CALL_START)
+	    tempi2=tempi2->last;
+	  OptSetNOP1(tempi2);
 
-	    tempii=tempi1-1;
-	    while (tempii->ic_opcode!=IC_CALL_START)
-	      tempii--;
-	    OptSetNOP1(tempii);
+	  tempi2=tempi->next;
+	  while (tempi2->ic_opcode!=IC_CALL_END)
+	    tempi2=tempi2->next;
 
-	    tempii=tempi+1;
-	    while (tempii->ic_opcode!=IC_CALL_END)
-	      tempii++;
-	    OptSetNOP1(tempii);
-	  }
+	  tempi->ic_flags|=tempi1->ic_flags&~ICF_R_TO_F64|tempi2->ic_flags;
+	  OptSetNOP1(tempi2);
+
+	  tempi->ic_opcode=IC_IMM_U64;
+	  tempi->ic_data=ToBool(tempi1->ic_data);
+	  tempi->ic_class=sys_internal_types[IT_I64];
+	  tempi->ic_class2=sys_internal_types[IT_I64];
+	  OptSetNOP1(tempi1);
 	}
 	break;
 
@@ -1930,12 +1925,10 @@ args.
 	break;
 
       case IC_BR_ZERO:
-	if (combined)
-	  tempi_push=OptBrZero(lx,tempi);
+	tempi_push=OptBrZero(lx,tempi);
 	break;
       case IC_BR_NOT_ZERO:
-	if (combined)
-	  tempi_push=OptBrNotZero(lx,tempi);
+	tempi_push=OptBrNotZero(lx,tempi);
 	break;
       case IC_BR_NOT_EQUAL:
       case IC_BR_EQUAL_EQUAL:
@@ -1976,11 +1969,11 @@ args.
 	break;
 
       case IC_NOP1:
-	if (combined && tempi->ic_flags&ICF_PUSH_RESULT) {
-	  tempii=tempi;
-	  do tempii--;
-	  while (tempii->ic_opcode==IC_NOP1);
-	  tempii->ic_flags|=ICF_PUSH_RESULT;
+	if (tempi->ic_flags&ICF_PUSH_RESULT) {
+	  tempi1=tempi;
+	  do tempi1=tempi1->last;
+	  while (tempi1->ic_opcode==IC_NOP1);
+	  tempi1->ic_flags|=ICF_PUSH_RESULT;
 	  tempi->ic_flags&=~ICF_PUSH_RESULT;
 	}
 	break;
@@ -1994,27 +1987,29 @@ args.
 	  lb1->fwd=lb;
 	  lb1=lb2;
 	}
-	tempii=temp_lag[1];
-	if (tempii->ic_opcode==IC_JMP) {
-	  lb1=tempii->ic_data;
-	  while (lb1->fwd)
-	    lb1=lb1->fwd;
-	  if (lb1==lb) {
-	    tempi->ic_flags|=tempii->ic_flags;
-	    OptSetNOP1(tempii);
-	  }
-	} else if (tempii->ic_opcode==IC_LABEL) {
-	  lb1=tempii->ic_data;
-	  if (!lb1->fwd)
-	    lb1->fwd=lb;
-	  tempii=temp_lag[2];
-	  if (tempii->ic_opcode==IC_JMP) {
-	    lb1=tempii->ic_data;
+	if (tempi1=OptLag(tempi)) {
+	  if (tempi1->ic_opcode==IC_JMP) {
+	    lb1=tempi1->ic_data;
 	    while (lb1->fwd)
 	      lb1=lb1->fwd;
 	    if (lb1==lb) {
-	      tempi->ic_flags|=tempii->ic_flags;
-	      OptSetNOP1(tempii);
+	      tempi->ic_flags|=tempi1->ic_flags;
+	      OptSetNOP1(tempi1);
+	    }
+	  } else if (tempi1->ic_opcode==IC_LABEL) {
+	    lb1=tempi1->ic_data;
+	    if (!lb1->fwd)
+	      lb1->fwd=lb;
+	    if (tempi1=OptLag(tempi1)) {
+	      if (tempi1->ic_opcode==IC_JMP) {
+		lb1=tempi1->ic_data;
+		while (lb1->fwd)
+		  lb1=lb1->fwd;
+		if (lb1==lb) {
+		  tempi->ic_flags|=tempi1->ic_flags;
+		  OptSetNOP1(tempi1);
+		}
+	      }
 	    }
 	  }
 	}
@@ -2031,15 +2026,19 @@ args.
       case IC_IRQ:
 	break;
       case IC_JMP:
-	if (temp_lag[1]->ic_opcode==IC_LABEL) {
-	  lb=OptLabelFwd(tempi->ic_data);
-	  lb1=OptLabelFwd(temp_lag[1]->ic_data);
-	  if (lb!=lb1)
-	    lb1->fwd=lb;
+	if (tempi1=OptLag(tempi)) {
+	  if (tempi1->ic_opcode==IC_LABEL) {
+	    lb=OptLabelFwd(tempi->ic_data);
+	    lb1=OptLabelFwd(tempi1->ic_data);
+	    if (lb!=lb1)
+	      lb1->fwd=lb;
+	  }
 	}
 	break;
       default:
-	OptMissing(lx,tempi);
+	"Pass:%d Missing IC handler\n",lx->pass;
+	ICPut(tempi);
+	LexExcept(lx,"ST_OPT_INTERNAL_ERROR");
     }
     if (cmp_arg_cnt[code]==2) {
       if (tempi_push->ic_precedence.u8[0]&~ASSOC_MASK==PREC_ASSIGN)
@@ -2061,12 +2060,13 @@ args.
       if (code>IC_END_EXP)
 	last_with_class=tempi;
     }
-    if (combined)
-      tempi++;
-    else
-      tempi=CBGetIC1(&lx->cbh);
+    tempi=tempi->next;
   }
-  OptEnd(lx,ps);
+  if (ps->ptr>2) {
+    "Pass:%d Stk:%08X\n",lx->pass,ps->ptr;
+    LexExcept(lx,"ST_OPT_INTERNAL_ERROR");
+  }
+  Free(ps);
 
   /*
 This is for determining type conversions
diff --git a/TempleOS/Compiler/OptPass3.CPP b/TempleOS/Compiler/OptPass3.CPP
index 2846c91..63e3ec7 100644
--- a/TempleOS/Compiler/OptPass3.CPP
+++ b/TempleOS/Compiler/OptPass3.CPP
@@ -49,14 +49,16 @@ I64 OptMVCompare(OptMemberVar *mv1,OptMemberVar *mv2)
 U0 OptPass3(CLex *lx,CHashFun *fun_class,COptReg *register_offsets)
 {
   CHashClass *tempc,*tempc1,*tempc2;
-  CCodeBlkMisc *lb;
+  CLexCodeMisc *lb;
   CIntermediateCode *tempi,*tempi1,*tempi2,
-	*tempil1,*tempil2,
-	*temp_lag[4];
+	*tempil1,*tempil2;
   I64 code,i,j,l,member_cnt,used_reg_mask=0;
   CMemberLst *tempm;
-  CPrsStk *ps=OptStart(lx,temp_lag);
   OptMemberVar *mv=NULL;
+  CPrsStk *ps=MAlloc(sizeof(CPrsStk));
+  ps->ptr=0;
+  ps->ptr2=0;
+
   for (i=0;imember_class);
       if (0<=tempm->registerregister))
-	  PrintFWarn("%S\n $$LK-A,\"FL:%s,%d\"$$ '%s' in '%s'\n","ST_REG_IN_USE",
+	  PrintWarn("%S\n $$LK-A,\"FL:%s,%d\"$$ '%s' in '%s'\n","ST_REG_IN_USE",
 		lx->cur_lfn->name,lx->cur_lfn->line_num,tempm->str,fun_class->str);
 	register_offsets[tempm->register].offset=tempm->offset;
 	register_offsets[tempm->register].m=tempm;
@@ -84,7 +86,7 @@ U0 OptPass3(CLex *lx,CHashFun *fun_class,COptReg *register_offsets)
 	mv[member_cnt++].m=tempm;
       } else {
 	if (tempm->register==CREG_ALLOC)
-	  PrintFWarn("%S\n $$LK-A,\"FL:%s,%d\"$$ '%s' in '%s'\n","ST_CANT_REG_VAR",
+	  PrintWarn("%S\n $$LK-A,\"FL:%s,%d\"$$ '%s' in '%s'\n","ST_CANT_REG_VAR",
 		lx->cur_lfn->name,lx->cur_lfn->line_num,tempm->str,fun_class->str);
       }
       tempm=tempm->next;
@@ -92,14 +94,14 @@ U0 OptPass3(CLex *lx,CHashFun *fun_class,COptReg *register_offsets)
   } else
     member_cnt=0;
 
-  tempi=lx->cbh.cb_in_ptr;
-  if (tempi->ic_opcode==IC_START)
-    tempi++;
+  tempi=lx->lcc.lcc_root.next;
   while (code=tempi->ic_opcode) {
     if (code!=IC_NOP1) {
-      OptNext(tempi,temp_lag);
-      tempil1=temp_lag[1];
-      tempil2=temp_lag[2];
+      if (tempil1=OptLag(tempi)) {
+	if (!(tempil2=OptLag(tempil1)))
+	  tempil2=&opt_nop;
+      } else
+	tempil1=tempil2=&opt_nop;
       tempc=tempi->ic_class;
       nobound_switch (cmp_arg_cnt[code]) {
 	case 9:
@@ -362,16 +364,16 @@ U0 OptPass3(CLex *lx,CHashFun *fun_class,COptReg *register_offsets)
 	case IC_INVLPG:
 	case IC_CLFLUSH:
 	case IC_PAUSE:
-	case IC_GET_FLAGS:
+	case IC_GET_RFLAGS:
 	case IC_CARRY:
 	case IC_RDTSC:
 	case IC_HPET:
-	case IC_SET_FLAGS:
-	case IC_GET_BASE_PTR:
-	case IC_SET_BASE_PTR:
-	case IC_GET_STK_PTR:
+	case IC_SET_RFLAGS:
+	case IC_GET_RBP:
+	case IC_SET_RBP:
+	case IC_GET_RSP:
 	case IC_GET_RAX:
-	case IC_SET_STK_PTR:
+	case IC_SET_RSP:
 	case IC_SET_RAX:
 	case IC_ABS_ADDR:
 	case IC_HEAP_GLBL:
@@ -419,9 +421,30 @@ U0 OptPass3(CLex *lx,CHashFun *fun_class,COptReg *register_offsets)
 	  break;
 	case IC_NOBOUND_SWITCH:
 	case IC_SWITCH:
-	  lb=OptLabelFwd(tempi->ic_data(CCodeBlkMisc *)->dft);
-	  lb->flags|=CBMF_USED;
+	  lb=OptLabelFwd(tempi->ic_data(CLexCodeMisc *)->dft);
+	  lb->flags|=CMF_USED;
 	  break;
+	case IC_BR_NOT_EQUAL:
+	case IC_BR_EQUAL_EQUAL:
+	  if ((tempi1->ic_opcode==IC_IMM_U64 || tempi1->ic_opcode==IC_IMM_F64) && !tempi1->ic_data) {
+	    OptSetNOP1(tempi1);
+	    MemCpy(&tempi->p1,&tempi->p2,sizeof(CICArg));
+	    tempi->p2.type=TY_NULL;
+	    if (code==IC_BR_EQUAL_EQUAL)
+	      code=tempi->ic_opcode=IC_BR_ZERO;
+	    else
+	      code=tempi->ic_opcode=IC_BR_NOT_ZERO;
+	    tempi1=tempi2;
+	    tempc1=tempc2;
+	  } else if ((tempi2->ic_opcode==IC_IMM_U64 || tempi2->ic_opcode==IC_IMM_F64) && !tempi2->ic_data) {
+	    OptSetNOP1(tempi2);
+	    tempi->p2.type=TY_NULL;
+	    if (code==IC_BR_EQUAL_EQUAL)
+	      code=tempi->ic_opcode=IC_BR_ZERO;
+	    else
+	      code=tempi->ic_opcode=IC_BR_NOT_ZERO;
+	  } else
+	    goto here1;
 	case IC_BR_ZERO:
 	case IC_BR_NOT_ZERO:
 	  if (tempi1->ic_opcode==IC_IMM_U64 || tempi1->ic_opcode==IC_IMM_F64) {
@@ -499,8 +522,6 @@ U0 OptPass3(CLex *lx,CHashFun *fun_class,COptReg *register_offsets)
 	case IC_BR_LESS2:
 	case IC_BR_NOT_EQUAL2:
 	case IC_BR_EQUAL_EQUAL2:
-	case IC_BR_NOT_EQUAL:
-	case IC_BR_EQUAL_EQUAL:
 	case IC_GET_LABEL:
 	case IC_BR_BT:
 	case IC_BR_BTS:
@@ -522,7 +543,7 @@ here1:
 	    lb=tempi->ic_data;
 	  else
 	    lb=OptLabelFwd(tempi->ic_data);
-	  lb->flags|=CBMF_USED;
+	  lb->flags|=CMF_USED;
 	  break;
 	case IC_LEAVE:
 	case IC_RET:
@@ -544,10 +565,12 @@ here1:
 	  break;
 
 	default:
-	  OptMissing(lx,tempi);
+	  "Pass:%d Missing IC handler\n",lx->pass;
+	  ICPut(tempi);
+	  LexExcept(lx,"ST_OPT_INTERNAL_ERROR");
       }
     }
-    tempi++;
+    tempi=tempi->next;
   }
   if (fun_class) {
     fun_class->used_reg_mask=fun_class->used_reg_mask&~(CREG_VARS_MASK|CREG_NON_PTR_MASK)|used_reg_mask;
@@ -563,7 +586,7 @@ here1:
 	  mv[j++].offset=mv[i].offset;
 	} else {
 	  if (mv[i].m->register==CREG_ALLOC)
-	    PrintFWarn("%S\n $$LK-A,\"FL:%s,%d\"$$ '%s' in '%s'\n","ST_CANT_REG_VAR",
+	    PrintWarn("%S\n $$LK-A,\"FL:%s,%d\"$$ '%s' in '%s'\n","ST_CANT_REG_VAR",
 		  lx->cur_lfn->name,lx->cur_lfn->line_num,mv[i].m->str,fun_class->str);
 	}
       }
@@ -613,6 +636,10 @@ here1:
     }
     Free(mv);
   }
-  OptEnd(lx,ps);
+  if (ps->ptr>2) {
+    "Pass:%d Stk:%08X\n",lx->pass,ps->ptr;
+    LexExcept(lx,"ST_OPT_INTERNAL_ERROR");
+  }
+  Free(ps);
 }
 
diff --git a/TempleOS/Compiler/OptPass4.CPP b/TempleOS/Compiler/OptPass4.CPP
index 9856ab8..3922fea 100644
--- a/TempleOS/Compiler/OptPass4.CPP
+++ b/TempleOS/Compiler/OptPass4.CPP
@@ -19,7 +19,7 @@ Bool OptIC4(CIntermediateCode *tempi)
 	i=tempil1->ic_data;
 	    if (MIN_I32<=i<=MAX_I32 &&
 	    !Bt(&non_ptr_vars_mask,tempil2->p1.reg)) {
-	  tempil1->ic_flags|=tempil2->ic_flags&ICF_NO_CVT_MASK;
+	  tempil1->ic_flags|=tempil2->ic_flags&ICG_NO_CVT_MASK;
 	  tempil1->ic_opcode=IC_LEA;
 	  tempil1->p1.type=TY_DISP+tempil1->p1.type&IT_MASK;
 	  tempil1->p1.reg=tempil2->p1.reg;
@@ -33,7 +33,7 @@ Bool OptIC4(CIntermediateCode *tempi)
 	    if (MIN_I32<=i<=MAX_I32 &&
 	    tempil2->p1.reg!=CREG_RSP &&
 	    1<=tempil2->ic_data<=3) {
-	  tempil1->ic_flags|=tempil2->ic_flags&ICF_NO_CVT_MASK;
+	  tempil1->ic_flags|=tempil2->ic_flags&ICG_NO_CVT_MASK;
 	  tempil1->ic_opcode=IC_LEA;
 	  tempil1->p1.type=TY_SIB+tempil1->p1.type&IT_MASK;
 	  tempil1->p1.reg=tempil2->p1.reg<<8+CREG_NONE;
@@ -84,7 +84,7 @@ Bool OptIC4(CIntermediateCode *tempi)
 
 	tempil1->p2.reg=tempil2->p1.reg;
 	tempil1->p2.disp=tempil2->p1.disp;
-	tempil1->ic_flags|=tempil2->ic_flags&ICF_NO_CVT_MASK;
+	tempil1->ic_flags|=tempil2->ic_flags&ICG_NO_CVT_MASK;
 	OptSetNOP2(tempil2);
 	return TRUE;
       }
@@ -124,7 +124,7 @@ Bool OptIC4(CIntermediateCode *tempi)
 
 	tempil1->p1.reg=tempil2->p1.reg;
 	tempil1->p1.disp=tempil2->p1.disp;
-	tempil1->ic_flags|=tempil2->ic_flags&ICF_NO_CVT_MASK;
+	tempil1->ic_flags|=tempil2->ic_flags&ICG_NO_CVT_MASK;
 	OptSetNOP2(tempil2);
 	return TRUE;
       }
@@ -171,33 +171,32 @@ Bool OptIC4(CIntermediateCode *tempi)
 U0 OptPass4(CLex *lx,COptReg *register_offsets,I64 *_type)
 {
   CHashClass *tempc,*tempc1,*tempc2,*tempc3;
-  CIntermediateCode *tempi,*tempi1,*tempi2,*tempi3,*tempil1,*tempil2,*tempil3,
-	*temp_lag[4];
+  CIntermediateCode *tempi,*tempi1,*tempi2,*tempi3,*tempil1,*tempil2,*tempil3;
   I64 code,i;
-  CPrsStk *ps=OptStart(lx,temp_lag);
   Bool dead_code=FALSE;
-  CCodeBlkMisc *lb;
+  CLexCodeMisc *lb;
+  CPrsStk *ps=MAlloc(sizeof(CPrsStk));
+  ps->ptr=0;
+  ps->ptr2=0;
 
   if (_type)
     *_type=IT_I64;
 
-  tempi=lx->cbh.cb_in_ptr;
-  if (tempi->ic_opcode==IC_START)
-    tempi++;
+  tempi=lx->lcc.lcc_root.next;
   while (code=tempi->ic_opcode) {
-    OptNext2(tempi,temp_lag);
     if (dead_code&&code!=IC_LABEL)
       OptSetNOP1(tempi);
     else {
       tempc=tempi->ic_class;
-
-      tempi3=&opt_nop;
-      tempi2=&opt_nop;
-      tempi1=&opt_nop;
-
-      tempil1=temp_lag[1];
-      tempil2=temp_lag[2];
-      tempil3=temp_lag[3];
+      tempi1=tempi2=tempi3=&opt_nop;
+      if (tempil1=OptLag2(tempi)) {
+	if (tempil2=OptLag2(tempil1)) {
+	  if (!(tempil3=OptLag2(tempil2)))
+	    tempil3=&opt_nop;
+	} else
+	  tempil2=tempil3=&opt_nop;
+      } else
+	tempil1=tempil2=tempil3=&opt_nop;
       nobound_switch (cmp_arg_cnt[code]) {
 	case 9:
 	  ps->ptr-=tempi->ic_data>>3;
@@ -343,7 +342,7 @@ lea_gone:
 		tempi->p1.disp=0;
 		tempi->p1.reg=tempi2->p1.reg+tempi1->p1.reg<<8;
 sib:
-		tempi->ic_flags|=(tempi1->ic_flags|tempi2->ic_flags)&ICF_NO_CVT_MASK;
+		tempi->ic_flags|=(tempi1->ic_flags|tempi2->ic_flags)&ICG_NO_CVT_MASK;
 		OptSetNOP2(tempi1);
 		OptSetNOP1(tempi2);
 
@@ -499,16 +498,16 @@ sib:
 	case IC_INVLPG:
 	case IC_CLFLUSH:
 	case IC_PAUSE:
-	case IC_GET_FLAGS:
+	case IC_GET_RFLAGS:
 	case IC_CARRY:
 	case IC_RDTSC:
 	case IC_HPET:
-	case IC_SET_FLAGS:
-	case IC_GET_BASE_PTR:
-	case IC_SET_BASE_PTR:
-	case IC_GET_STK_PTR:
+	case IC_SET_RFLAGS:
+	case IC_GET_RBP:
+	case IC_SET_RBP:
+	case IC_GET_RSP:
 	case IC_GET_RAX:
-	case IC_SET_STK_PTR:
+	case IC_SET_RSP:
 	case IC_SET_RAX:
 	  break;
 	case IC_RETURN_VAL:
@@ -676,13 +675,13 @@ sib:
 	case IC_BR_LESS:
 	  lb=tempi->ic_data;
 	  if (tempi->ic_flags&ICF_PUSH_CMP) {
-	    lb->flags|=CBMF_POP_CMP;
+	    lb->flags|=CMF_POP_CMP;
 	    lb->fwd=NULL;
 	  }
 	  break;
 	case IC_LABEL:
 	  lb=tempi->ic_data;
-	  if (lb->flags&CBMF_USED)
+	  if (lb->flags&CMF_USED)
 	    dead_code=FALSE;
 	  break;
 	case IC_JMP:
@@ -708,7 +707,9 @@ sib:
 	  }
 	  break;
 	default:
-	  OptMissing(lx,tempi);
+	  "Pass:%d Missing IC handler\n",lx->pass;
+	  ICPut(tempi);
+	  LexExcept(lx,"ST_OPT_INTERNAL_ERROR");
       }
 
       while (OptIC4(tempi));
@@ -716,7 +717,11 @@ sib:
       if (cmp_result_cnt[code])
 	PrsPush(ps,tempi);
     }
-    tempi++;
+    tempi=tempi->next;
   }
-  OptEnd(lx,ps);
+  if (ps->ptr>2) {
+    "Pass:%d Stk:%08X\n",lx->pass,ps->ptr;
+    LexExcept(lx,"ST_OPT_INTERNAL_ERROR");
+  }
+  Free(ps);
 }
diff --git a/TempleOS/Compiler/OptPass5.CPP b/TempleOS/Compiler/OptPass5.CPP
index 4212de4..0ac6ee3 100644
--- a/TempleOS/Compiler/OptPass5.CPP
+++ b/TempleOS/Compiler/OptPass5.CPP
@@ -2,32 +2,30 @@ U0 OptPass5(CLex *lx)
 {
   CIntermediateCode *tempi,*tempi1;
   I64 code,i,ty,pt,ty1,pt1;
-  CPrsStk *ps=OptStart(lx);
+  CPrsStk *ps=MAlloc(sizeof(CPrsStk));
+  ps->ptr=0;
+  ps->ptr2=0;
 
-  tempi=lx->cbh.cb_in_ptr;
-  if (tempi->ic_opcode==IC_START)
-    tempi++;
+  tempi=lx->lcc.lcc_root.next;
   while (code=tempi->ic_opcode) {
     if (code>IC_NOP2) {
       if (tempi->ic_flags&ICF_TRACE) {
 	if (Bt(&lx->pass_trace_mask,5)) {
 	  "%2d:",ps->ptr;
-	  CBPutIC(tempi);
+	  ICPut(tempi);
 	}
       }
-
       if (cmp_arg_cnt[code]==9)
 	ps->ptr-=tempi->ic_data>>3;
       if (code==IC_PUSH_REGS) {
 	for (i=0;iic_data,i))
 	    ps->ptr++;
-	} else if (code==IC_POP_REGS) {
+      } else if (code==IC_POP_REGS) {
 	for (i=0;iic_data,i))
 	    ps->ptr--;
-	}
-
+      }
       if (tempi->p2.type&TY_MASK==TY_STK) {
 	tempi1=PrsPop(ps);
 	if (tempi1->ic_opcode==IC_MOV ||
@@ -64,7 +62,7 @@ U0 OptPass5(CLex *lx)
 
 	  tempi->p2.reg=tempi1->p1.reg;
 	  tempi->p2.disp=tempi1->p1.disp;
-	  tempi->ic_flags|=tempi1->ic_flags&ICF_NO_CVT_MASK;
+	  tempi->ic_flags|=tempi1->ic_flags&ICG_NO_CVT_MASK;
 	  OptSetNOP2(tempi1);
 	}
       }
@@ -108,14 +106,18 @@ U0 OptPass5(CLex *lx)
 
 	  tempi->p1.reg=tempi1->p1.reg;
 	  tempi->p1.disp=tempi1->p1.disp;
-	  tempi->ic_flags|=tempi1->ic_flags&ICF_NO_CVT_MASK;
+	  tempi->ic_flags|=tempi1->ic_flags&ICG_NO_CVT_MASK;
 	  OptSetNOP2(tempi1);
 	}
       }
       if (tempi->r.type&TY_MASK==TY_STK)
 	PrsPush(ps,tempi);
     }
-    tempi++;
+    tempi=tempi->next;
   }
-  OptEnd(lx,ps);
+  if (ps->ptr>2) {
+    "Pass:%d Stk:%08X\n",lx->pass,ps->ptr;
+    LexExcept(lx,"ST_OPT_INTERNAL_ERROR");
+  }
+  Free(ps);
 }
diff --git a/TempleOS/Compiler/OptPass6.CPP b/TempleOS/Compiler/OptPass6.CPP
index d1d9420..ebb9e48 100644
--- a/TempleOS/Compiler/OptPass6.CPP
+++ b/TempleOS/Compiler/OptPass6.CPP
@@ -44,7 +44,7 @@ U0 OptPass6Lag(CLex *lx,
     if (tempi->ic_flags&ICF_TRACE) {
       if (Bt(&lx->pass_trace_mask,6)) {
 	"%2d:",i;
-	CBPutIC(tempi);
+	ICPut(tempi);
       }
     }
     if (code==IC_CALL_START) {
@@ -130,64 +130,67 @@ U0 OptPass6Lag(CLex *lx,
 
 U0 OptPass6(CLex *lx,CHashFun *fun_class)
 {
-  CIntermediateCode *tempi,*tempil1,*tempif1,*tempif2,
-	*temp_lag[4],*old_tempil1=NULL;
-  CPrsStk *ps=OptStart(lx,temp_lag);
-  I64 i=0,code,num_stk,clobbered_reg_mask=CALWAYS_CLOBBERED_MASK,
-	fun_num=0;
-
+  CIntermediateCode *tempi,*tempil1,*tempil2,*tempil3,*tempif1,*tempif2,*old_tempil2;
+  I64 i=0,code,num_stk,clobbered_reg_mask=CALWAYS_CLOBBERED_MASK,fun_num=0;
+  CPrsStk *ps=MAlloc(sizeof(CPrsStk));
+  ps->ptr=0;
+  ps->ptr2=0;
   if (fun_class)
     fun_num=compiled_funs++;
-
   if (Bt(&lx->opts,OPTf_NO_REG_VAR) ||
 	lx->flags&LF_NO_REG_OPT)
     num_stk=0;
   else
     num_stk=num_stk_temps;
-
-  tempi=lx->cbh.cb_in_ptr;
-  if (tempi->ic_opcode==IC_START)
-    tempi++;
+  tempi=lx->lcc.lcc_root.next;
+  old_tempil2=NULL;
+  tempil1=tempil2=tempil3=&opt_nop;
   while (code=tempi->ic_opcode) {
-    OptNext3(tempi,temp_lag);
-    tempil1=temp_lag[1];
-    if (tempil1->ic_opcode==IC_END_EXP) {
+    if (    tempi  ->ic_opcode>=IC_END_EXP && tempi  ->ic_opcode!=IC_NOP2) {
+      if (  tempil1->ic_opcode>=IC_END_EXP && tempil1->ic_opcode!=IC_NOP2) {
+	if (tempil2->ic_opcode>=IC_END_EXP && tempil2->ic_opcode!=IC_NOP2)
+	  tempil3=tempil2;
+	tempil2=tempil1;
+      }
+      tempil1=tempi;
+    }
+    if (tempil2->ic_opcode==IC_END_EXP) {
       if (code!=IC_RETURN_VAL2 && code!=IC_NOP1) {
-	if (!(temp_lag[2]->ic_flags&
+	if (!(tempil3->ic_flags&
 	      (ICF_R_TO_F64|ICF_R_TO_INT|ICF_PUSH_RESULT|ICF_DEPEND_RESULT))) {
-	  temp_lag[2]->ic_flags|=ICF_NO_DEPEND_RESULT;
-	  temp_lag[2]->r.type=TY_NULL+temp_lag[2]->r.type&IT_MASK;
-	  tempil1->ic_flags|=ICF_NO_DEPEND_RESULT;
-	  tempil1->r.type=TY_NULL+tempil1->r.type&IT_MASK;
+	  tempil3->ic_flags|=ICF_NO_DEPEND_RESULT;
+	  tempil3->r.type=TY_NULL+tempil3->r.type&IT_MASK;
+	  tempil2->ic_flags|=ICF_NO_DEPEND_RESULT;
+	  tempil2->r.type=TY_NULL+tempil2->r.type&IT_MASK;
 	}
       }
     }
     if (code<=IC_NOP2) {
     } else {
       if (tempi->p2.type&TY_MASK==TY_STK) {
-	if (tempil1->r.type&TY_MASK==TY_STK &&
-	      !(tempil1->ic_flags&ICF_PUSH_RESULT)) {
+	if (tempil2->r.type&TY_MASK==TY_STK &&
+	      !(tempil2->ic_flags&ICF_PUSH_RESULT)) {
 	  tempif2=NULL;
 	  if (tempi->ic_opcode==IC_ASSIGN &&
 		tempi->ic_flags&ICF_NOT_ADDR &&
-		tempil1->ic_opcode!=IC_CALL_END  &&
-		tempil1->ic_opcode!=IC_CALL_END2 &&
-		tempil1->ic_opcode!=IC_SET_RAX	 &&
+		tempil2->ic_opcode!=IC_CALL_END  &&
+		tempil2->ic_opcode!=IC_CALL_END2 &&
+		tempil2->ic_opcode!=IC_SET_RAX	 &&
 		!(tempi->ic_flags&
 		(ICF_P2_TO_F64|ICF_P2_TO_INT)) &&
-		!(tempil1->ic_flags&
+		!(tempil2->ic_flags&
 		(ICF_R_TO_F64|ICF_R_TO_INT))) {
-	    if (tempif1=OptLead1(lx,tempi)) //predict NO_DEPEND
-	      if (tempif2=OptLead1(lx,tempif1))
+	    if (tempif1=OptLead1(tempi)) //predict NO_DEPEND
+	      if (tempif2=OptLead1(tempif1))
 		if (tempif1->ic_opcode==IC_END_EXP &&
 		      tempif2->ic_opcode!=IC_RETURN_VAL2) {
-		  tempil1->r.type =tempi->p1.type&TY_MASK+tempi->p1.ptype;
-		  tempil1->r.ptype=tempi->p1.ptype;
-		  tempil1->r.reg  =tempi->p1.reg;
-		  tempil1->r.disp =tempi->p1.disp;
-		  tempil1->ic_flags=tempil1->ic_flags&~(ICF_NO_DEPEND_RESULT|ICF_R_WAS_STK)|
+		  tempil2->r.type =tempi->p1.type&TY_MASK+tempi->p1.ptype;
+		  tempil2->r.ptype=tempi->p1.ptype;
+		  tempil2->r.reg  =tempi->p1.reg;
+		  tempil2->r.disp =tempi->p1.disp;
+		  tempil2->ic_flags=tempil2->ic_flags&~(ICF_NO_DEPEND_RESULT|ICF_R_WAS_STK)|
 			tempi->ic_flags&~(ICF_NOT_ADDR|ICF_P1_WAS_STK|ICF_P2_WAS_STK)|ICF_DEPEND_RESULT;
-		  old_tempil1=NULL;
+		  old_tempil2=NULL;
 		  OptSetNOP1(tempi);
 		} else
 		  tempif2=NULL;
@@ -196,33 +199,37 @@ U0 OptPass6(CLex *lx,CHashFun *fun_class)
 	    tempi->p2.type=TY_REG+tempi->p2.type&IT_MASK;
 	    tempi->p2.reg=CREG_RAX;
 	    tempi->p2.disp=0;
-	    tempil1->r.type=TY_REG+tempil1->r.type&IT_MASK;
-	    tempil1->r.reg=CREG_RAX;
-	    tempil1->r.disp=0;
+	    tempil2->r.type=TY_REG+tempil2->r.type&IT_MASK;
+	    tempil2->r.reg=CREG_RAX;
+	    tempil2->r.disp=0;
 	  }
 	}
       } else if (tempi->p1.type&TY_MASK==TY_STK) {
-	if (tempil1->r.type&TY_MASK==TY_STK &&
-	      !(tempil1->ic_flags&ICF_PUSH_RESULT)) {
+	if (tempil2->r.type&TY_MASK==TY_STK &&
+	      !(tempil2->ic_flags&ICF_PUSH_RESULT)) {
 	  tempi->p1.type=TY_REG+tempi->p1.type&IT_MASK;
 	  tempi->p1.reg=CREG_RAX;
 	  tempi->p1.disp=0;
-	  tempil1->r.type=TY_REG+tempil1->r.type&IT_MASK;
-	  tempil1->r.reg=CREG_RAX;
-	  tempil1->r.disp=0;
+	  tempil2->r.type=TY_REG+tempil2->r.type&IT_MASK;
+	  tempil2->r.reg=CREG_RAX;
+	  tempil2->r.disp=0;
 	}
       }
       if (tempi->ic_flags & ICF_PUSH_RESULT)
 	tempi->r.type==TY_STK+tempi->r.type&IT_MASK;
 
     }
-    if (old_tempil1!=tempil1) {
-      OptPass6Lag(lx,ps,tempil1,&i,num_stk,&clobbered_reg_mask,fun_num);
-      old_tempil1=tempil1;
+    if (old_tempil2!=tempil2) {
+      OptPass6Lag(lx,ps,tempil2,&i,num_stk,&clobbered_reg_mask,fun_num);
+      old_tempil2=tempil2;
     }
-    tempi++;
+    tempi=tempi->next;
   }
-  OptEnd(lx,ps);
+  if (ps->ptr>2) {
+    "Pass:%d Stk:%08X\n",lx->pass,ps->ptr;
+    LexExcept(lx,"ST_OPT_INTERNAL_ERROR");
+  }
+  Free(ps);
 
   if (fun_class) {
     fun_class->used_reg_mask&=~CSTK_TEMPS_MASK;
diff --git a/TempleOS/Compiler/OptPass789A.CPP b/TempleOS/Compiler/OptPass789.CPP
similarity index 95%
rename from TempleOS/Compiler/OptPass789A.CPP
rename to TempleOS/Compiler/OptPass789.CPP
index ce38c38..760b6c1 100644
--- a/TempleOS/Compiler/OptPass789A.CPP
+++ b/TempleOS/Compiler/OptPass789.CPP
@@ -1,10 +1,15 @@
-I64 OptPass789A(CLex *lx,CHashFun *fun_class,
+I64 OptPass789(CLex *lx,CHashFun *fun_class,
    COptReg *register_offsets,U8 *buf,CDbgInfo **_dbg)
 {
+/*
+  lx->pass==7 is first time
+  lx->pass==8 is repeated until size stops shrinking
+  lx->pass==9 is final
+*/
   CIntermediateCode *tempi;
   I64 code,i,cnt,*qq,num_lines=lx->max_line-lx->min_line+1,ip=0,ip2;
-  CCodeBlkMisc *lb,*lb1;
-  CExe *tempex;
+  CLexCodeMisc *lb,*lb1;
+  CExe *tempx;
   CExeAbsAddr *tempa;
   CExeImportExport *tempe;
   CExeHeapGlbl *temphg;
@@ -35,16 +40,14 @@ I64 OptPass789A(CLex *lx,CHashFun *fun_class,
 
   lx->last_float_op_ic=NULL;
 
-  tempi=lx->cbh.cb_in_ptr;
-  if (tempi->ic_opcode==IC_START) {
-    tempi->ic_cnt=0;
-    tempi->ic_last_cnt=-1;
-    tempi++;
-  }
+  tempi=&lx->lcc.lcc_root;
+  tempi->ic_cnt=0;
+  tempi->ic_last_cnt=-1;
+  tempi=tempi->next;
   while (code=tempi->ic_opcode) {
     if (code>IC_END_EXP) {
       if (tempi->ic_flags&ICF_TRACE && Bt(&lx->pass_trace_mask,lx->pass))
-	CBPutIC(tempi);
+	ICPut(tempi);
       ip2=ip;
       if (lx->flags&LF_AOT_COMPILE)
 	ip2+=a->ip;
@@ -173,7 +176,7 @@ I64 OptPass789A(CLex *lx,CHashFun *fun_class,
 	    if (buf && !(lx->flags&LF_NO_ABSS)) {
 	      tempg=tempi->ic_data;
 	      tempe=CAlloc(sizeof(CExeImportExport));
-	      tempe->type=EIE_LIT_U32;
+	      tempe->type=EIE_IMM_U32;
 	      tempe->ip=ip2+tempi->ic_cnt-4;
 	      tempe->next=tempg->ie_lst;
 	      tempg->ie_lst=tempe;
@@ -195,16 +198,16 @@ I64 OptPass789A(CLex *lx,CHashFun *fun_class,
 	    tempi->ic_flags&=~ICF_CODE_FINAL;
 	    break;
 	  case IC_ASM:
-	    tempex=tempi->ic_data;
-	    tempi->ic_cnt+=tempex->code_U8s;
+	    tempx=tempi->ic_data;
+	    tempi->ic_cnt+=tempx->ex_U8s;
 	    if (buf) {
-	      MemCpy(buf+ip,tempex->code,tempex->code_U8s);
-	      Free(tempex->code);
-	      tempex->code=buf+ip;
+	      MemCpy(buf+ip,tempx->ex,tempx->ex_U8s);
+	      ExpressionBinDel(tempx->ex);
+	      tempx->ex=buf+ip;
 	      if (lx->flags&LF_AOT_COMPILE)
-		CmpFixUpAOTAsm(lx,tempex,ip2);
+		CmpFixUpAOTAsm(lx,tempx,ip2);
 	      else
-		CmpFixUpJITAsm(lx,tempex,ip2);
+		CmpFixUpJITAsm(lx,tempx,ip2);
 	      cnt=tempi->ic_cnt;
 	      goto skip_copy;
 	    }
@@ -482,11 +485,11 @@ I64 OptPass789A(CLex *lx,CHashFun *fun_class,
 		  TY_IMM+IT_I64,0,tempi->ic_data,0xE8D1E8D3E8C1,0xF8D1F8D3F8C1,ip2);
 	    break;
 	  case IC_ADD_CONST:
-	    ICAddConst(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp,
+	    ICAddSubEctImm(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp,
 		  tempi->p1.type,tempi->p1.reg,tempi->p1.disp,tempi->ic_data,0x0003,ip2);
 	    break;
 	  case IC_SUB_CONST:
-	    ICAddConst(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp,
+	    ICAddSubEctImm(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp,
 		  tempi->p1.type,tempi->p1.reg,tempi->p1.disp,tempi->ic_data,0x052B,ip2);
 	    break;
 	  case IC_ENTER:
@@ -566,13 +569,13 @@ I64 OptPass789A(CLex *lx,CHashFun *fun_class,
 	    tempi->ic_flags&=~ICF_CODE_FINAL;
 	    break;
 	  case IC_CALL_IMPORT:
-	    if (GetOpt(OPTf_USE_LIT64)) {
+	    if (GetOpt(OPTf_USE_IMM64)) {
 	      ICU16(tempi,0xBB48);
 	      ICU64(tempi,0);
 	      if (buf) {
 		tempf=tempi->ic_data;
 		tempe=CAlloc(sizeof(CExeImportExport));
-		tempe->type=EIE_LIT_U64;
+		tempe->type=EIE_IMM_U64;
 		tempe->ip=ip2+tempi->ic_cnt-8;
 		tempe->next=tempf->ie_lst;
 		tempf->ie_lst=tempe;
@@ -580,7 +583,7 @@ I64 OptPass789A(CLex *lx,CHashFun *fun_class,
 	      ICU16(tempi,0xD3FF);
 	    } else {
 	      ICU8(tempi,0xE8);
-	      ICU32(tempi,-(ip2+5));
+	      ICU32(tempi,0);
 	      if (buf) {
 		tempf=tempi->ic_data;
 		tempe=CAlloc(sizeof(CExeImportExport));
@@ -632,7 +635,7 @@ I64 OptPass789A(CLex *lx,CHashFun *fun_class,
 	  case IC_PAUSE:
 	    ICU16(tempi,0x90F3);
 	    break;
-	  case IC_GET_FLAGS:
+	  case IC_GET_RFLAGS:
 	    ICU8(tempi,0x9C);
 	    ICPop(tempi,TY_REG+IT_I64,CREG_RAX,0,ip2);
 	    break;
@@ -646,23 +649,23 @@ I64 OptPass789A(CLex *lx,CHashFun *fun_class,
 	  case IC_HPET:
 	    ICCopyTemplate(lx,tempi,CMP_TEMPLATE_HPET,TRUE,FALSE,FALSE,CN_MAIN);
 	    break;
-	  case IC_SET_FLAGS:
+	  case IC_SET_RFLAGS:
 	    ICPush(tempi,tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip2);
 	    ICU8(tempi,0x9D);
 	    break;
-	  case IC_GET_BASE_PTR:
+	  case IC_GET_RBP:
 	    ICMov(tempi,TY_REG+IT_I64,CREG_RAX,0,
 		  TY_REG+IT_I64,CREG_RBP,0,ip2);
 	    break;
-	  case IC_SET_BASE_PTR:
+	  case IC_SET_RBP:
 	    ICMov(tempi,TY_REG+IT_I64,CREG_RBP,0,
 		  tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip2);
 	    break;
-	  case IC_GET_STK_PTR:
+	  case IC_GET_RSP:
 	    ICMov(tempi,TY_REG+IT_I64,CREG_RAX,0,
 		  TY_REG+IT_I64,CREG_RSP,0,ip2);
 	    break;
-	  case IC_SET_STK_PTR:
+	  case IC_SET_RSP:
 	    ICMov(tempi,TY_REG+IT_I64,CREG_RSP,0,
 		  tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip2);
 	    break;
@@ -676,22 +679,22 @@ I64 OptPass789A(CLex *lx,CHashFun *fun_class,
 	  case IC_GET_RAX:
 	    break;
 	  case IC_BT:
-	    ICBitOps(tempi,&tempi->p1,&tempi->p2,tempi+1,
+	    ICBitOps(tempi,&tempi->p1,&tempi->p2,tempi->next,
 		  0xA30F,0x20BA0F,ip2);
 	    break;
 	  case IC_BTS:
 	  case IC_LBTS:
-	    ICBitOps(tempi,&tempi->p1,&tempi->p2,tempi+1,
+	    ICBitOps(tempi,&tempi->p1,&tempi->p2,tempi->next,
 		  0xAB0F,0x28BA0F,ip2);
 	    break;
 	  case IC_BTR:
 	  case IC_LBTR:
-	    ICBitOps(tempi,&tempi->p1,&tempi->p2,tempi+1,
+	    ICBitOps(tempi,&tempi->p1,&tempi->p2,tempi->next,
 		  0xB30F,0x30BA0F,ip2);
 	    break;
 	  case IC_BTC:
 	  case IC_LBTC:
-	    ICBitOps(tempi,&tempi->p1,&tempi->p2,tempi+1,
+	    ICBitOps(tempi,&tempi->p1,&tempi->p2,tempi->next,
 		  0xBB0F,0x38BA0F,ip2);
 	    break;
 	  case IC_BSF:
@@ -752,7 +755,7 @@ I64 OptPass789A(CLex *lx,CHashFun *fun_class,
 	  case IC_ABS_I64:
 	    ICMov(tempi,TY_REG+IT_I64,CREG_RAX,0,
 		  tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip2);
-	    ICU24(tempi,0xC00B48);
+	    ICU24(tempi,0xC08548);
 	    ICU16(tempi,0x0379);
 	    ICU24(tempi,0xD8F748);
 	    break;
@@ -1066,9 +1069,11 @@ I64 OptPass789A(CLex *lx,CHashFun *fun_class,
 	      ICAddRSP(tempi,tempi->ic_data);
 	      ICPop(tempi,TY_REG+IT_I64,CREG_RBP,0,ip2);
 	    }
-	    if (fun_class && Bt(fun_class->flags,Ff_INTERRUPT))
+	    if (fun_class && Bt(fun_class->flags,Ff_INTERRUPT)) {
+	      if (Bt(fun_class->flags,Ff_HASERRCODE))
+		ICAddRSP(tempi,8);
 	      ICU16(tempi,0xCF48);
-	    else if (fun_class && fun_class->arg_cnt &&
+	    } else if (fun_class && fun_class->arg_cnt &&
 		  (Bt(fun_class->flags,Ff_RET1) || Bt(fun_class->flags,Ff_ARGPOP)) &&
 		  !Bt(fun_class->flags,Ff_NOARGPOP)) {
 	      ICU8(tempi,0xC2);
@@ -1083,12 +1088,15 @@ I64 OptPass789A(CLex *lx,CHashFun *fun_class,
 	    lb=OptLabelFwd(tempi->ic_data);
 	    short_jmp=ToBool(tempi->ic_flags&ICF_SHORT_JMP);
 	    if (!buf && lb->addr!=INVALID_PTR &&
-		  MIN_I8+5addr-ipaddr-ipic_flags|=ICF_SHORT_JMP;
 	      i=lb->addr-(ip+2);
-	      ICU16(tempi,i<<8+0xEB);
+	      if (buf || i)
+		ICU16(tempi,i<<8+0xEB);
+	      else
+		tempi->ic_opcode=IC_NOP1;
 	    } else {
 	      i=lb->addr-(ip+5);
 	      ICU8(tempi,0xE9);
@@ -1099,7 +1107,7 @@ I64 OptPass789A(CLex *lx,CHashFun *fun_class,
 	  case IC_LABEL:
 	    lb=tempi->ic_data;
 	    lb->addr=ip;
-	    if (lb->flags&CBMF_POP_CMP) {
+	    if (lb->flags&CMF_POP_CMP) {
 	      ICAddRSP(tempi,-8,FALSE);
 	      ICAddRSP(tempi,8,FALSE);
 	    }
@@ -1134,7 +1142,9 @@ I64 OptPass789A(CLex *lx,CHashFun *fun_class,
 	    break;
 
 	  default:
-	    OptMissing(lx,tempi);
+	    "Pass:%d Missing IC handler\n",lx->pass;
+	    ICPut(tempi);
+	    LexExcept(lx,"ST_OPT_INTERNAL_ERROR");
 	}
 	if (tempi->r.type&TY_MASK) {
 	  if (tempi->ic_flags & ICF_R_TO_F64) {
@@ -1194,19 +1204,19 @@ I64 OptPass789A(CLex *lx,CHashFun *fun_class,
       tempi->ic_cnt=0;
       tempi->ic_last_cnt=-1;
     }
-    tempi++;
+    tempi=tempi->next;
   }
 
-  lb=lx->cbh.cb_misc_lst;
-  while (lb) {
+  lb=lx->lcc.lcc_next_misc;
+  while (lb!=&lx->lcc.lcc_next_misc) {
     switch (lb->type) {
-      case CBMT_STR_CONST:
+      case CMT_STR_CONST:
 	lb->addr=ip;
 	if (buf)
 	  MemCpy(buf+ip,lb->str,lb->st_len);
 	ip+=lb->st_len;
 	break;
-      case CBMT_JMP_TABLE:
+      case CMT_JMP_TABLE:
 	lb->addr=ip;
 	if (buf) {
 	  for (i=0;irange;i++) {
@@ -1225,7 +1235,7 @@ I64 OptPass789A(CLex *lx,CHashFun *fun_class,
 	}
 	ip+=lb->range*sizeof(U8 *);
 	break;
-      case CBMT_FLOAT_CONSTS:
+      case CMT_FLOAT_CONSTS:
 	lb->addr=ip;
 	if (buf)
 	  MemCpy(buf+lb->addr,lb->float_consts,lb->num_consts*sizeof(F64));
diff --git a/TempleOS/Compiler/StmtParser.CPP b/TempleOS/Compiler/StmtParser.CPP
index 840145c..c301dab 100644
--- a/TempleOS/Compiler/StmtParser.CPP
+++ b/TempleOS/Compiler/StmtParser.CPP
@@ -96,6 +96,19 @@ I64 PrsKeyWord(CLex *lx)
     return -1;
 }
 
+U0 UndefinedExtern()
+{
+  PutDefineErr("ST_UNDEFINED_EXTERN");
+  "at %P\n",Caller;
+  throw(EXCEPT_UNDEF_EXTERN);
+}
+
+U0 UnusedExternWarning(CLex *lx,CHashClass *tempc)
+{
+  PrintWarn("%S '%s'\n","ST_UNUSED_EXTERN",tempc->str);
+  lx->warning_cnt++;
+}
+
 U0 PrsVarInit(CLex *lx,U8 **_dst,CHashClass *tempc,CArrayDim *tempad,U8 *data_addr_ip,U8 **_base,Bool data_heap,I64 pass)
 {
   U8 *dst=*_dst,*ex;
@@ -147,42 +160,40 @@ U0 PrsVarInit(CLex *lx,U8 **_dst,CHashClass *tempc,CArrayDim *tempad,U8 *data_ad
       Free(ex);
     } else {
       old_flags=lx->flags;
-      lx->flags=LF_NO_ABSS | lx->flags & ~(LF_AOT_COMPILE|LF_HAS_MISC_DATA|LF_NOT_CONSTANT);
-      ex=CmpExpression(lx,&type);
+      lx->flags=LF_NO_ABSS | lx->flags & ~(LF_AOT_COMPILE|LF_HAS_MISC_DATA|LF_NOT_CONST);
+      ex=LexExpression2Bin(lx,&type);
       if (old_flags&LF_AOT_COMPILE &&
-	lx->flags&LF_NOT_CONSTANT &&
+	lx->flags&LF_NOT_CONST &&
 	 !Bt(&lx->opts,OPTf_GLBLS_ON_DATA_HEAP)) {
 	lx->flags=lx->flags&~LF_NO_ABSS|LF_AOT_COMPILE;
-	ExpressionDel(ex);
+	ExpressionBinDel(ex);
 	if (pass==2) {
 	  MemSet(dst,0,tempc->size);
 	  LexPop(lx);
 	  Lex(lx);
-	  CBPush(lx);
-	  CBOutPtrsInit(lx);
-	  CBICAdd(lx,IC_START,0,0); //So we can scan back an instruction
-	  CBICAdd(lx,IC_ABS_ADDR,data_addr_ip,tempc+1);
-	  CBICAdd(lx,IC_IMM_U64,dst-*_base,tempc+1);
-	  CBICAdd(lx,IC_ADD,0,tempc+1);
+	  LCCPush(lx);
+	  LCCInit(lx);
+	  LCCAdd(lx,IC_ABS_ADDR,data_addr_ip,tempc+1);
+	  LCCAdd(lx,IC_IMM_U64,dst-*_base,tempc+1);
+	  LCCAdd(lx,IC_ADD,0,tempc+1);
 	  if (!PrsExpression(lx,NULL,TRUE))
 	    throw(EXCEPT_COMPILER,10);
-	  tempi=lx->cbh.cb_last_out_ptr;
+	  tempi=lx->lcc.lcc_root.last;
 	  if (tempi->ic_opcode==IC_END_EXP)
 	    tempi->ic_opcode=IC_NOP1;
-	  CBICAdd(lx,IC_ASSIGN,0,tempc);
-	  CBICAdd(lx,IC_END_EXP,0,tempc);
-	  CBICAdd(lx,IC_RET,0,0);
-	  CBICAdd(lx,IC_END,0,0);
-	  if (ex=CBCompile(lx,NULL,&size,NULL)) {
+	  LCCAdd(lx,IC_ASSIGN,0,tempc);
+	  LCCAdd(lx,IC_END_EXP,0,tempc);
+	  LCCAdd(lx,IC_RET,0,0);
+	  if (ex=LCCCompile(lx,NULL,&size,NULL)) {
 	    tempe=CAlloc(sizeof(CExeImportExport));
 	    tempe->type=EIE_MAIN;
 	    tempe->ip=lx->a->ip;
 	    QueIns(tempe,lx->exe_struct->last_ie);
 	    for (i=0;istk_ptr--;  //grows up
       } else {
@@ -191,7 +202,7 @@ U0 PrsVarInit(CLex *lx,U8 **_dst,CHashClass *tempc,CArrayDim *tempad,U8 *data_ad
 	  throw(EXCEPT_COMPILER,10);
 	r=Call(ex);
 	if (!(lx->flags & LF_HAS_MISC_DATA)||pass==1)
-	  ExpressionDel(ex);
+	  ExpressionBinDel(ex);
 
 	if (type==IT_F64 &&
 	    tempc->sub_type!=IT_F64)
@@ -312,21 +323,17 @@ U0 PrsStaticInit(CLex *lx,CMemberLst *tempm,I64 pass)
   U8 *ex,*dst=tempm->static_data;
   CHashClass *tempc=tempm->member_class;
   I64 i,size;
-  CIntermediateCode *tempi;
   CExeImportExport *tempe;
 
   if (lx->flags&LF_AOT_COMPILE && pass==2) {
-    CBPush(lx);
-    CBOutPtrsInit(lx);
-    CBICAdd(lx,IC_START,0,0); //So we can scan back an instruction
-    tempi=lx->cbh.cb_last_out_ptr;
+    LCCPush(lx);
+    LCCInit(lx);
   }
   PrsVarInit2(lx,&dst,tempc,&tempm->dim,tempm->static_data_ip,&tempm->static_data,Bt(&lx->flags,Lf_AOT_COMPILE),pass);
   if (lx->flags&LF_AOT_COMPILE && pass==2) {
-    if (tempi!=lx->cbh.cb_last_out_ptr) {
-      CBICAdd(lx,IC_RET,0,0);
-      CBICAdd(lx,IC_END,0,0);
-      if (ex=CBCompile(lx,NULL,&size,NULL)) {
+    if (lx->lcc.lcc_root.next!=&lx->lcc.lcc_root) {
+      LCCAdd(lx,IC_RET,0,0);
+      if (ex=LCCCompile(lx,NULL,&size,NULL)) {
 	if (pass==2) {
 	  tempe=CAlloc(sizeof(CExeImportExport));
 	  tempe->type=EIE_MAIN;
@@ -335,11 +342,10 @@ U0 PrsStaticInit(CLex *lx,CMemberLst *tempm,I64 pass)
 	  for (i=0;icbh.cb_out_first);
-    CBPop(lx);
+    } //TODO: else del misc?
+    LCCPop(lx);
   }
 }
 
@@ -359,7 +365,7 @@ Bool PrsArrayDims(CLex *lx,CArrayDim *dim)
       j=-1;
       result=FALSE;
     } else {
-      if ((j=Expression(lx))<0)
+      if ((j=LexExpression(lx))<0)
 	LexExcept(lx,"ST_INVALID_ARRAY_SIZE");
     }
     tempad1=&dim->next;
@@ -417,12 +423,12 @@ U0 PrsDotDotDot(CLex *lx,CHashFun *tempf,I64 register)
 
 CHashClass *PrsType(CLex *lx,CHashClass **_tempc1,
   I64 *_mode,CMemberLst *tempm,U8 **_ident,CHashFun **_fun_ptr,
-  CHashExport **_tempess,CArrayDim *tempad,I64 cps_flags)
+  CHashExport **_tempex,CArrayDim *tempad,I64 cps_flags)
 {
-  I64 fun_ptr_cnt,mode=*_mode;
+  I64 k,fun_ptr_cnt,mode=*_mode;
   CHashClass *tempc1=*_tempc1,*tempc2;
   CHashFun *fun_ptr=NULL;
-  CHashExport *tempess=NULL;
+  CHashExport *tempex=NULL;
   CArrayDim *tempad2;
 
 start:
@@ -438,17 +444,10 @@ start:
     tempc1++;
   }
 
-  if (PrsKeyWord(lx)==KW_UNION) {
+  k=PrsKeyWord(lx);
+  if (k==KW_UNION || k==KW_CLASS) {
     Lex(lx);
-    tempc2=PrsClass(lx,TRUE,cps_flags,mode&255==PRS0_EXTERN);
-    tempc2->fwd_class=tempc1;
-    tempc1=tempc2;
-    if (_tempc1) *_tempc1=tempc1;
-    mode=PRS0_NULL|PRS1_NULL;
-    goto start;
-  } else if (PrsKeyWord(lx)==KW_CLASS) {
-    Lex(lx);
-    tempc2=PrsClass(lx,FALSE,cps_flags,mode&255==PRS0_EXTERN);
+    tempc2=PrsClass(lx,k,cps_flags,mode&255==PRS0_EXTERN);
     tempc2->fwd_class=tempc1;
     tempc1=tempc2;
     if (_tempc1) *_tempc1=tempc1;
@@ -467,7 +466,7 @@ start:
 
   if (_ident) {
     if (lx->token==TK_IDENT) {
-      tempess=lx->hash_entry;
+      tempex=lx->hash_entry;
       *_ident=lx->ident;
       lx->ident=NULL;
       Lex(lx);
@@ -475,7 +474,7 @@ start:
       if (!mode.u8[1])
 	*_ident=NULL;
       else if (lx->token==',' || lx->token==';' || lx->token==')') {
-	tempess=NULL;
+	tempex=NULL;
 	*_ident=StrNew("_anon_");
 	tempm->flags|=MLF_NO_UNUSED_WARN;
       } else
@@ -507,7 +506,7 @@ start:
 
   if (_mode)	    *_mode=mode;
   if (_fun_ptr)     *_fun_ptr=fun_ptr;
-  if (_tempess)     *_tempess=tempess;
+  if (_tempex)	   *_tempex=tempex;
   return tempc1;
 }
 
@@ -538,7 +537,7 @@ U0 PrsVarLst(CLex *lx,CHashClass *tempc,
       if (Lex(lx)!='=') //skip $$
 	LexExcept(lx,"ST_EXPECTING_EQUAL");
       Lex(lx); //skip =
-      lx->class_ip=Expression(lx);
+      lx->class_ip=LexExpression(lx);
       if (mode&PRSF_UNION)
 	union_base=lx->class_ip;
       else
@@ -552,32 +551,35 @@ U0 PrsVarLst(CLex *lx,CHashClass *tempc,
       goto pvl_done;
     }
     register=CREG_UNDEF;
-    k=PrsKeyWord(lx);
-    if (k==KW_REG) {
-      register=CREG_ALLOC;
-      if (Lex(lx)==TK_IDENT) {
-	k=DefineMatch(lx->ident,"ST_U64_REGS");
-	if (k>=0) {
-	  register=k;
-	  Lex(lx);
+pvl_restart1:
+    switch (PrsKeyWord(lx)) {
+      case KW_REG:
+	register=CREG_ALLOC;
+	if (Lex(lx)==TK_IDENT) {
+	  k=DefineMatch(lx->ident,"ST_U64_REGS");
+	  if (k>=0) {
+	    register=k;
+	    Lex(lx);
+	  }
 	}
-      }
-    } else if (k==KW_NOREG) {
-      register=CREG_NONE;
-      Lex(lx);
+	goto pvl_restart1;
+      case KW_NOREG:
+	register=CREG_NONE;
+	Lex(lx);
+	goto pvl_restart1;
     }
 
     if (lx->token==TK_DOT_DOT_DOT && mode.u8[1]==PRS1B_FUN_ARG) {
       PrsDotDotDot(lx,tempc,register);
       goto pvl_done;
     }
-    temph=NULL;
-    if (lx->token==TK_IDENT) {
+    if (lx->token==TK_IDENT)
       temph=lx->hash_entry;
-      k=PrsKeyWord(lx);
-    }
+    else
+      temph=NULL;
     if (!temph)
       LexExcept(lx,"ST_EXPECTING_TYPE");
+    k=PrsKeyWord(lx);
     if (k==KW_UNION) {
       Lex(lx);
       PrsVarLst(lx,tempc,mode|PRSF_UNION,tempc->size);
@@ -585,38 +587,39 @@ U0 PrsVarLst(CLex *lx,CHashClass *tempc,
       if (!(temph->type & (HTT_CLASS|HTT_INTERNAL_TYPE)))
 	LexExcept(lx,"ST_EXPECTING_TYPE");
       first=TRUE;
-restart:
+pvl_restart2:
       tempc1=temph;
       LexPush(lx);
-      if (lx->token!=',' && mode.u8[1]==PRS1B_LOCAL_VAR)
-	Lex(lx); //skip type
-      else
-	Lex(lx); //skip type or ','
+      Lex(lx); //skip type or ','
       tempm=MemberLstNew(register);
+      register=CREG_UNDEF;
       if (mode.u8[1]==PRS1B_STATIC_LOCAL_VAR) {
-	tempm->flags=MLF_STATIC;
+	tempm->flags|=MLF_STATIC;
 	tempm->register=CREG_NONE;
       }
       if (mode.u8[1]==PRS1B_FUN_ARG || mode.u8[1]==PRS1B_LOCAL_VAR) {
-	k=PrsKeyWord(lx);
-	if (k==KW_REG) {
-	  tempm->register=CREG_ALLOC;
-	  lx->stk_ptr--;  //grows up
-	  LexPush(lx);
-	  if (Lex(lx)==TK_IDENT) {
-	    k=DefineMatch(lx->ident,"ST_U64_REGS");
-	    if (k>=0) {
-	      tempm->register=k;
-	      lx->stk_ptr--;  //grows up
-	      LexPush(lx);
-	      Lex(lx);
+pvl_restart3:
+	switch (PrsKeyWord(lx)) {
+	  case KW_REG:
+	    tempm->register=CREG_ALLOC;
+	    lx->stk_ptr--;  //grows up
+	    LexPush(lx);
+	    if (Lex(lx)==TK_IDENT) {
+	      k=DefineMatch(lx->ident,"ST_U64_REGS");
+	      if (k>=0) {
+		tempm->register=k;
+		lx->stk_ptr--;	//grows up
+		LexPush(lx);
+		Lex(lx);
+	      }
 	    }
-	  }
-	} else if (k==KW_NOREG) {
-	  tempm->register=CREG_NONE;
-	  lx->stk_ptr--;  //grows up
-	  LexPush(lx);
-	  Lex(lx);
+	    goto pvl_restart3;
+	  case KW_NOREG:
+	    tempm->register=CREG_NONE;
+	    lx->stk_ptr--;  //grows up
+	    LexPush(lx);
+	    Lex(lx);
+	    goto pvl_restart3;
 	}
       }
       tempm->member_class=PrsType(lx,&tempc1,&mode,tempm,&tempm->str,
@@ -734,27 +737,32 @@ restart:
 	  }
 	  if (lx->token=='=') {
 	    Lex(lx);
-	    old_flags2=lx->flags;
-	    lx->flags&=~LF_HAS_MISC_DATA;
-	    ex=CmpExpression(lx,&type);
-	    if (!ex)
-	      throw(EXCEPT_COMPILER,8);
-	    tempm->dft_val=Call(ex);
-	    tempc2=OptClassFwd(tempc2);
-	    if (tempc2->sub_type==IT_F64) {
-	      if (type!=IT_F64)
-		tempm->dft_val(F64)=tempm->dft_val;
+	    if (PrsKeyWord(lx)==KW_LASTCLASS) {
+	      tempm->flags|=MLF_LASTCLASS;
+	      Lex(lx);
 	    } else {
-	      if (type==IT_F64)
-		tempm->dft_val=tempm->dft_val(F64);
+	      old_flags2=lx->flags;
+	      lx->flags&=~LF_HAS_MISC_DATA;
+	      ex=LexExpression2Bin(lx,&type);
+	      if (!ex)
+		throw(EXCEPT_COMPILER,8);
+	      tempm->dft_val=Call(ex);
+	      tempc2=OptClassFwd(tempc2);
+	      if (tempc2->sub_type==IT_F64) {
+		if (type!=IT_F64)
+		  tempm->dft_val(F64)=tempm->dft_val;
+	      } else {
+		if (type==IT_F64)
+		  tempm->dft_val=tempm->dft_val(F64);
+	      }
+	      if (lx->flags & LF_HAS_MISC_DATA) {
+		tempm->dft_val=StrNew(tempm->dft_val);
+		tempm->flags|=MLF_STR_DFT_AVAILABLE;
+	      }
+	      ExpressionBinDel(ex);
+	      lx->flags|=old_flags2&LF_HAS_MISC_DATA;
 	    }
-	    if (lx->flags & LF_HAS_MISC_DATA) {
-	      tempm->dft_val=StrNew(tempm->dft_val);
-	      tempm->flags|=MLF_STR_DFT_AVAILABLE;
-	    }
-	    ExpressionDel(ex);
 	    tempm->flags|=MLF_DFT_AVAILABLE;
-	    lx->flags|=old_flags2&LF_HAS_MISC_DATA;
 	  }
 	  lx->stk_ptr--;
 	  break;
@@ -778,7 +786,7 @@ restart:
 	      temp_meta->user_data=LexExtStr(lx);
 	      temp_meta->flags|=MLMF_IS_STR;
 	    } else
-	      temp_meta->user_data=Expression(lx);
+	      temp_meta->user_data=LexExpression(lx);
 	  }
 	  lx->stk_ptr--;
 	  break;
@@ -789,7 +797,7 @@ restart:
 	    Lex(lx);
 	  else {
 	    first=FALSE;
-	    goto restart;
+	    goto pvl_restart2;
 	  }
 	  break;
 	case ')':
@@ -813,20 +821,7 @@ pvl_done:
 	    old_flags& (LF_CLASS_IP|LF_DONT_MAKE_RESULT);
 }
 
-U0 UndefinedExtern()
-{
-  PutDefineErr("ST_UNDEFINED_EXTERN");
-  "at %P\n",Caller;
-  throw(EXCEPT_UNDEF_EXTERN);
-}
-
-U0 UnusedExternWarning(CLex *lx,CHashClass *tempc)
-{
-  PrintFWarn("%S '%s'\n","ST_UNUSED_EXTERN",tempc->str);
-  lx->warning_cnt++;
-}
-
-CHashClass *PrsClass(CLex *lx,Bool is_union,I64 cps_flags,Bool is_extern)
+CHashClass *PrsClass(CLex *lx,I64 keyword,I64 cps_flags,Bool is_extern)
 {
   CHashClass *tempc,*base_class;
   if (lx->token!=TK_IDENT)
@@ -884,7 +879,7 @@ CHashClass *PrsClass(CLex *lx,Bool is_union,I64 cps_flags,Bool is_extern)
       tempc->base_class=base_class;
       tempc->size+=base_class->size;
     }
-    if (is_union)
+    if (keyword==KW_UNION)
       PrsVarLst(lx,tempc,PRS0_NULL|PRS1_CLASS|PRSF_UNION);
     else
       PrsVarLst(lx,tempc,PRS0_NULL|PRS1_CLASS);
@@ -929,6 +924,8 @@ CHashFun *PrsFunJoin(CLex *lx,
     LBts(tempf->flags,Cf_EXTERN);
     if (cps_flags&CPS_IS_INTERRUPT)
       Bts(tempf->flags,Ff_INTERRUPT);
+    if (cps_flags&CPS_HASERRCODE)
+      Bts(tempf->flags,Ff_HASERRCODE);
     if (cps_flags&CPS_IS_ARGPOP)
       Bts(tempf->flags,Ff_ARGPOP);
     if (cps_flags&CPS_IS_NOARGPOP)
@@ -968,7 +965,7 @@ U0 PrsFun(CLex *lx,
 {
   CHashFun *tempf;
   CMemberLst *tempm;
-  CCodeBlkMisc *saved_leave_label;
+  CLexCodeMisc *saved_leave_label;
   I64 i,j,size,*r;
   Bool old_ctrace;
 
@@ -979,27 +976,24 @@ U0 PrsFun(CLex *lx,
   tempf=PrsFunJoin(lx,temp_return,name,cps_flags);
   lx->htc.local_var_lst=tempf;
 
-  CBPush(lx);
+  LCCPush(lx);
   Btr(&lx->flags,Lf_OPT_TRACE_PRESENT);
-  CBOutPtrsInit(lx);
-  CBICAdd(lx,IC_START,0,0); //So we can scan back an instruction
-
-  CBICAdd(lx,IC_ENTER,0,0);
+  LCCInit(lx);
+  LCCAdd(lx,IC_ENTER,0,0);
   saved_leave_label=lx->lb_leave;
-  lx->lb_leave=CBMiscNew(lx,CBMT_LABEL);
+  lx->lb_leave=LCCMiscNew(lx,CMT_LABEL);
   lx->flags&=~LF_HAS_RETURN;
   PrsStatement(lx,tempf,0,NULL,FALSE);
   if (tempf->return_class->size && !(lx->flags&LF_HAS_RETURN))
     LexPutWarn(lx,"ST_SHOULD_RETURN_VAL");
-  CBICAdd(lx,IC_LABEL,lx->lb_leave,0);
+  LCCAdd(lx,IC_LABEL,lx->lb_leave,0);
   lx->lb_leave=saved_leave_label;
-  CBICAdd(lx,IC_LEAVE,0,tempf->return_class);
-  CBICAdd(lx,IC_END,0,0);
+  LCCAdd(lx,IC_LEAVE,0,tempf->return_class);
   tempf->size&=~7;
   if (lx->flags&LF_AOT_COMPILE) {
     tempf->executable_addr=lx->a->ip;
     tempf->type|=HTF_EXPORT;
-    r=CBCompile(lx,tempf,&size,&tempf->debug);
+    r=LCCCompile(lx,tempf,&size,&tempf->debug);
     if (r) {
       j=(size+7)>>3;
       for (i=0;iopts,OPTf_COMPILE_TRACE);
-    tempf->executable_addr=CBCompile(lx,tempf,&size,&tempf->debug);
+    tempf->executable_addr=LCCCompile(lx,tempf,&size,&tempf->debug);
     if (old_ctrace) {
       Bts(&lx->opts,OPTf_COMPILE_TRACE);
       Un(tempf->executable_addr,size,64);
@@ -1016,16 +1010,16 @@ U0 PrsFun(CLex *lx,
     SysSymImportsResolve(tempf->str);
   }
   LBtr(tempf->flags,Cf_EXTERN);
-  CBPop(lx);
+  LCCPop(lx);
   lx->htc.local_var_lst=NULL;
   tempm=tempf->member_lst;
   while (tempm) {
     if (tempm->flags & MLF_NO_UNUSED_WARN) {
       if (tempm->use_cnt>1&&StrCmp(tempm->str,"_anon_"))
-	PrintFWarn("%S\n $$LK-A,\"FL:%s,%d\"$$ '%s' in '%s'\n","ST_UNNEEDED_NOUNUSEDWARN",
+	PrintWarn("%S\n $$LK-A,\"FL:%s,%d\"$$ '%s' in '%s'\n","ST_UNNEEDED_NOUNUSEDWARN",
 	  lx->cur_lfn->name,lx->cur_lfn->line_num,tempm->str,tempf->str);
     } else if (!tempm->use_cnt && GetOpt(OPTf_WARN_UNUSED_VAR))
-      PrintFWarn("%S\n $$LK-A,\"FL:%s,%d\"$$ '%s' in '%s'\n","ST_UNUSED_VAR",
+      PrintWarn("%S\n $$LK-A,\"FL:%s,%d\"$$ '%s' in '%s'\n","ST_UNUSED_VAR",
 	lx->cur_lfn->name,lx->cur_lfn->line_num,tempm->str,tempf->str);
     tempm=tempm->next;
   }
@@ -1037,7 +1031,7 @@ U0 PrsGlblVarLst(CLex *lx,I64 saved_mode,CHashClass *saved_tempc,
 {
   I64 i,j,mode,k,val;
   U8 *st;
-  CHashExport *tempess;
+  CHashExport *tempex;
   CHashGlblVar *tempg;
   CAsmCtrl *a=lx->a;
   CExeHeapGlbl *temphg;
@@ -1047,7 +1041,7 @@ U0 PrsGlblVarLst(CLex *lx,I64 saved_mode,CHashClass *saved_tempc,
   Bool has_alias,undef_array_size,is_array;
   while (TRUE) {
     tempc=PrsType(lx,&saved_tempc,&saved_mode,NULL,&st,
-	&tempf_fun_ptr,&tempess,&tempad,cps_flags);
+	&tempf_fun_ptr,&tempex,&tempad,cps_flags);
     if (!st)
       return;
 
@@ -1061,9 +1055,9 @@ U0 PrsGlblVarLst(CLex *lx,I64 saved_mode,CHashClass *saved_tempc,
 
     val=saved_val;
     mode=saved_mode;
-    if (tempess && mode&255==PRS0_EXTERN && !(lx->flags&LF_AOT_COMPILE)) {
-      if (tempess->type & HTT_EXPORT_SYS_SYM) {
-	val=tempess->val;
+    if (tempex && mode&255==PRS0_EXTERN && !(lx->flags&LF_AOT_COMPILE)) {
+      if (tempex->type & HTT_EXPORT_SYS_SYM) {
+	val=tempex->val;
 	mode=PRS0__EXTERN|PRS1_NULL;
       }
     }
@@ -1164,7 +1158,7 @@ U0 PrsGlblVarLst(CLex *lx,I64 saved_mode,CHashClass *saved_tempc,
 	      a->heap_glbls=temphg;
 	      tempg->flags=GVAF_DATA_HEAP;
 	      tempg->type=HTT_GLBL_VAR; //TODO: HTF_EXPORT
-	      if (tempess && tempess->type & HTT_GLBL_VAR) //TODO!! extern
+	      if (tempex && tempex->type & HTT_GLBL_VAR) //TODO!! extern
 		LexExcept(lx,"ST_NOT_IMPLEMENTED");
 	    } else {
 	      tempg=CAlloc(sizeof(CHashGlblVar));
@@ -1181,7 +1175,7 @@ U0 PrsGlblVarLst(CLex *lx,I64 saved_mode,CHashClass *saved_tempc,
 		  AsmStoreCodeU8(lx,0);
 	      tempg->data_addr_ip=a->ip;
 	      tempg->type=HTT_GLBL_VAR | HTF_EXPORT;
-	      if (tempess && tempess->type & HTT_GLBL_VAR)
+	      if (tempex && tempex->type & HTT_GLBL_VAR)
 		has_alias=TRUE;
 	      if (sys_var_init_flag&1)
 		for (k=0;kdata_addr=MAlloc(j,Fs->code_heap);
 	    }
 	    tempg->type=HTT_GLBL_VAR;
-	    if (tempess && tempess->type&HTT_GLBL_VAR &&
-		tempess->type&HTF_UNRESOLVED &&
-		MHeapCtrl(tempess)==MHeapCtrl(tempg))
+	    if (tempex && tempex->type&HTT_GLBL_VAR &&
+		tempex->type&HTF_UNRESOLVED &&
+		MHeapCtrl(tempex)==MHeapCtrl(tempg))
 	      has_alias=TRUE;
 	    if (sys_var_init_flag&1)
 	      MemSet(tempg->data_addr,sys_var_init_val,j);
@@ -1264,9 +1258,9 @@ U0 PrsGlblVarLst(CLex *lx,I64 saved_mode,CHashClass *saved_tempc,
 	  lx->stk_ptr--;	//grows up
       }
       if (has_alias) {
-	tempess(CHashGlblVar *)->flags|=GVAF_ALIAS;
-	tempess(CHashGlblVar *)->data_addr=tempg->data_addr;
-	tempess(CHashGlblVar *)->data_addr_ip=tempg->data_addr_ip;
+	tempex(CHashGlblVar *)->flags|=GVAF_ALIAS;
+	tempex(CHashGlblVar *)->data_addr=tempg->data_addr;
+	tempex(CHashGlblVar *)->data_addr_ip=tempg->data_addr_ip;
       }
       if (lx->token==',')
 	Lex(lx);
@@ -1281,9 +1275,9 @@ U0 PrsGlblVarLst(CLex *lx,I64 saved_mode,CHashClass *saved_tempc,
 }
 
 U0 PrsIf(CLex *lx,CHashFun *locals,I64 try_cnt,
-  CCodeBlkMisc *lb_break)
+  CLexCodeMisc *lb_break)
 {
-  CCodeBlkMisc *lb,*lb1;
+  CLexCodeMisc *lb,*lb1;
   I64 k;
 
   if (lx->token!='(')
@@ -1294,50 +1288,50 @@ U0 PrsIf(CLex *lx,CHashFun *locals,I64 try_cnt,
   if (lx->token!=')')
     LexExcept(lx,"ST_MISSING_RIGHT_PAREN");
   Lex(lx);
-  lb=CBMiscNew(lx,CBMT_LABEL);
-  CBICAdd(lx,IC_BR_ZERO,lb,0);
+  lb=LCCMiscNew(lx,CMT_LABEL);
+  LCCAdd(lx,IC_BR_ZERO,lb,0);
   PrsStatement(lx,locals,try_cnt,lb_break);
   k=PrsKeyWord(lx);
   if (k==KW_ELSE) {
     Lex(lx);
-    lb1=CBMiscNew(lx,CBMT_LABEL);
-    CBICAdd(lx,IC_JMP,lb1,0);
-    CBICAdd(lx,IC_LABEL,lb,0);
+    lb1=LCCMiscNew(lx,CMT_LABEL);
+    LCCAdd(lx,IC_JMP,lb1,0);
+    LCCAdd(lx,IC_LABEL,lb,0);
     PrsStatement(lx,locals,try_cnt,lb_break,TRUE);
-    CBICAdd(lx,IC_LABEL,lb1,0);
+    LCCAdd(lx,IC_LABEL,lb1,0);
   } else
-    CBICAdd(lx,IC_LABEL,lb,0);
+    LCCAdd(lx,IC_LABEL,lb,0);
 }
 
 U0 PrsWhile(CLex *lx,CHashFun *locals,I64 try_cnt)
 {
-  CCodeBlkMisc *lb,*lb_done;
+  CLexCodeMisc *lb,*lb_done;
 
   if (lx->token!='(')
     LexExcept(lx,"ST_EXPECTING_LEFT_PAREN");
   Lex(lx);
-  lb=CBMiscNew(lx,CBMT_LABEL);
-  CBICAdd(lx,IC_LABEL,lb,0);
+  lb=LCCMiscNew(lx,CMT_LABEL);
+  LCCAdd(lx,IC_LABEL,lb,0);
   if (!PrsExpression(lx,NULL,FALSE))
     throw(EXCEPT_COMPILER,12);
   if (lx->token!=')')
     LexExcept(lx,"ST_MISSING_RIGHT_PAREN");
   Lex(lx);
 
-  lb_done=CBMiscNew(lx,CBMT_LABEL);
-  CBICAdd(lx,IC_BR_ZERO,lb_done,0);
+  lb_done=LCCMiscNew(lx,CMT_LABEL);
+  LCCAdd(lx,IC_BR_ZERO,lb_done,0);
   PrsStatement(lx,locals,try_cnt,lb_done);
-  CBICAdd(lx,IC_JMP,lb,0);
-  CBICAdd(lx,IC_LABEL,lb_done,0);
+  LCCAdd(lx,IC_JMP,lb,0);
+  LCCAdd(lx,IC_LABEL,lb_done,0);
 }
 
 U0 PrsDoWhile(CLex *lx,CHashFun *locals,I64 try_cnt)
 {
-  CCodeBlkMisc *lb,*lb_done;
+  CLexCodeMisc *lb,*lb_done;
 
-  lb=CBMiscNew(lx,CBMT_LABEL);
-  lb_done=CBMiscNew(lx,CBMT_LABEL);
-  CBICAdd(lx,IC_LABEL,lb,0);
+  lb=LCCMiscNew(lx,CMT_LABEL);
+  lb_done=LCCMiscNew(lx,CMT_LABEL);
+  LCCAdd(lx,IC_LABEL,lb,0);
   PrsStatement(lx,locals,try_cnt,lb_done);
   if (PrsKeyWord(lx)!=KW_WHILE)
     LexExcept(lx,"ST_MISSING_WHILE");
@@ -1348,8 +1342,8 @@ U0 PrsDoWhile(CLex *lx,CHashFun *locals,I64 try_cnt)
     throw(EXCEPT_COMPILER,13);
   if (lx->token!=')')
     LexExcept(lx,"ST_MISSING_RIGHT_PAREN");
-  CBICAdd(lx,IC_BR_NOT_ZERO,lb,0);
-  CBICAdd(lx,IC_LABEL,lb_done,0);
+  LCCAdd(lx,IC_BR_NOT_ZERO,lb,0);
+  LCCAdd(lx,IC_LABEL,lb_done,0);
   if (Lex(lx)!=';')
     LexExcept(lx,"ST_MISSING_SEMICOLON");
   Lex(lx);
@@ -1357,52 +1351,51 @@ U0 PrsDoWhile(CLex *lx,CHashFun *locals,I64 try_cnt)
 
 U0 PrsFor(CLex *lx,CHashFun *locals,I64 try_cnt)
 {
-  CLexCodeBlkCtrl *tempcbh;
-  CCodeBlkMisc *lb,*lb_done;
+  CLexCodeCtrl *tempcbh;
+  CLexCodeMisc *lb,*lb_done;
 
   if (lx->token!='(')
     LexExcept(lx,"ST_EXPECTING_LEFT_PAREN");
   Lex(lx);
   PrsStatement(lx,locals,try_cnt);
 
-  lb=CBMiscNew(lx,CBMT_LABEL);
-  CBICAdd(lx,IC_LABEL,lb,0);
+  lb=LCCMiscNew(lx,CMT_LABEL);
+  LCCAdd(lx,IC_LABEL,lb,0);
   if (!PrsExpression(lx,NULL,FALSE))
     throw(EXCEPT_COMPILER,14);
-  lb_done=CBMiscNew(lx,CBMT_LABEL);
-  CBICAdd(lx,IC_BR_ZERO,lb_done,0);
+  lb_done=LCCMiscNew(lx,CMT_LABEL);
+  LCCAdd(lx,IC_BR_ZERO,lb_done,0);
   if (lx->token!=';')
     LexExcept(lx,"ST_MISSING_SEMICOLON");
   Lex(lx);
 
-  CBPush(lx);
-  CBOutPtrsInit(lx);
+  LCCPush(lx);
+  LCCInit(lx);
   if (lx->token!=')')
     PrsStatement(lx,locals,try_cnt,NULL,FALSE);
-  CBICAdd(lx,IC_END,0,0);
-  CBPush(lx);
-  tempcbh=CBPopNoFree(lx);
-  CBPop(lx);
+  LCCPush(lx);
+  tempcbh=LCCPopNoFree(lx);
+  LCCPop(lx);
   if (lx->token!=')')
     LexExcept(lx,"ST_MISSING_RIGHT_PAREN");
   Lex(lx);
 
   PrsStatement(lx,locals,try_cnt,lb_done);
-  CBAppend(lx,tempcbh);
-  CBICAdd(lx,IC_JMP,lb,0);
-  CBICAdd(lx,IC_LABEL,lb_done,0);
+  LCCAppend(lx,tempcbh);
+  LCCAdd(lx,IC_JMP,lb,0);
+  LCCAdd(lx,IC_LABEL,lb_done,0);
 }
 
 class CSwitchCase {
   CSwitchCase *next;
-  CCodeBlkMisc *label;
+  CLexCodeMisc *label;
   I64 val;
 };
 
 U0 PrsSwitch(CLex *lx,Bool nobound,CHashFun *locals,I64 try_cnt)
 {
   CSwitchCase *header=NULL,*temps,*temps1;
-  CCodeBlkMisc *lb_break,*lb_dft,*mc_jt,*lb_entry,**jmp_table;
+  CLexCodeMisc *lb_break,*lb_dft,*mc_jt,*lb_entry,**jmp_table;
   CIntermediateCode *tempi_sub,*tempi_cmp;
   Bool dft_found=FALSE;
   I64 i,k,k2,lo=MAX_I64,hi=MIN_I64,range;
@@ -1410,20 +1403,20 @@ U0 PrsSwitch(CLex *lx,Bool nobound,CHashFun *locals,I64 try_cnt)
   if (lx->token!='(')
     LexExcept(lx,"ST_EXPECTING_LEFT_PAREN");
   Lex(lx);
-  lb_break=CBMiscNew(lx,CBMT_LABEL);
-  lb_break->flags|=CBMF_USED;
-  lb_dft=CBMiscNew(lx,CBMT_LABEL);
-  lb_dft->flags|=CBMF_USED;
-  mc_jt=CBMiscNew(lx,CBMT_JMP_TABLE);
+  lb_break=LCCMiscNew(lx,CMT_LABEL);
+  lb_break->flags|=CMF_USED;
+  lb_dft=LCCMiscNew(lx,CMT_LABEL);
+  lb_dft->flags|=CMF_USED;
+  mc_jt=LCCMiscNew(lx,CMT_JMP_TABLE);
   if (!PrsExpression(lx,NULL,FALSE))
     throw(EXCEPT_COMPILER,15);
-  tempi_sub=CBICAdd(lx,IC_IMM_U64,0,sys_internal_types[IT_I64]);
-  CBICAdd(lx,IC_SUB,0,sys_internal_types[IT_I64]);
-  tempi_cmp=CBICAdd(lx,IC_IMM_U64,0,sys_internal_types[IT_I64]);
+  tempi_sub=LCCAdd(lx,IC_IMM_U64,0,sys_internal_types[IT_I64]);
+  LCCAdd(lx,IC_SUB,0,sys_internal_types[IT_I64]);
+  tempi_cmp=LCCAdd(lx,IC_IMM_U64,0,sys_internal_types[IT_I64]);
   if (nobound)
-    CBICAdd(lx,IC_NOBOUND_SWITCH,mc_jt,0);
+    LCCAdd(lx,IC_NOBOUND_SWITCH,mc_jt,0);
   else
-    CBICAdd(lx,IC_SWITCH,mc_jt,0);
+    LCCAdd(lx,IC_SWITCH,mc_jt,0);
   if (lx->token!=')')
     LexExcept(lx,"ST_MISSING_RIGHT_PAREN");
   if (Lex(lx)!='{')
@@ -1433,10 +1426,10 @@ U0 PrsSwitch(CLex *lx,Bool nobound,CHashFun *locals,I64 try_cnt)
     k=PrsKeyWord(lx);
     if (k==KW_CASE) {
       Lex(lx);
-      lb_entry=CBMiscNew(lx,CBMT_LABEL);
-      CBICAdd(lx,IC_LABEL,lb_entry,0);
-      lb_entry->flags|=CBMF_USED;
-      k=Expression(lx);
+      lb_entry=LCCMiscNew(lx,CMT_LABEL);
+      LCCAdd(lx,IC_LABEL,lb_entry,0);
+      lb_entry->flags|=CMF_USED;
+      k=LexExpression(lx);
       if (khi) hi=k;
       if (lx->token==':') {
@@ -1448,7 +1441,7 @@ U0 PrsSwitch(CLex *lx,Bool nobound,CHashFun *locals,I64 try_cnt)
 	header=temps;
       } else if (lx->token==TK_DOT_DOT_DOT) {
 	Lex(lx);
-	k2=Expression(lx);
+	k2=LexExpression(lx);
 	if (lx->token==':') {
 	  Lex(lx);
 	  if (k2token==':')
 	Lex(lx);
       else
@@ -1479,8 +1472,8 @@ U0 PrsSwitch(CLex *lx,Bool nobound,CHashFun *locals,I64 try_cnt)
   }
 
   if (!dft_found)
-    CBICAdd(lx,IC_LABEL,lb_dft,0);
-  CBICAdd(lx,IC_LABEL,lb_break,0);
+    LCCAdd(lx,IC_LABEL,lb_dft,0);
+  LCCAdd(lx,IC_LABEL,lb_break,0);
   if (lx->token!='}')
     LexExcept(lx,"ST_MISSING_RIGHT_BRACE");
   Lex(lx);
@@ -1490,7 +1483,7 @@ U0 PrsSwitch(CLex *lx,Bool nobound,CHashFun *locals,I64 try_cnt)
   range=hi-lo+1;
   if (lo>hi || !(0ic_data=lo;
   tempi_cmp->ic_data=range;
@@ -1532,9 +1525,8 @@ U0 PrsStreamBlk(CLex *lx)
 
   tempe->body=StrNew("");
   QueIns(tempe,lx->last_stream_blk);
-  CBPush(lx);
-  lx->cbh.cb_misc_lst=NULL;
-  lx->cbh.cb_misc_lst_end=&lx->cbh.cb_misc_lst;
+  LCCPush(lx);
+  QueInit(&lx->lcc.lcc_next_misc);
 
   MemCpy(htc,&lx->htc,sizeof(CLexHashTableContext));
   htc->old_flags=lx->flags;
@@ -1555,7 +1547,7 @@ U0 PrsStreamBlk(CLex *lx)
     htc->old_flags & (LF_ASM_EXPRESSIONS|LF_EXE_BLK|LF_AOT_COMPILE);
   Free(htc);
 
-  CBPop(lx);
+  LCCPop(lx);
   QueRem(tempe);
   if (*tempe->body)
     LexIncludeStr(lx,"StreamBlk",tempe->body,FALSE);
@@ -1567,7 +1559,7 @@ U0 PrsStreamBlk(CLex *lx)
 
 U0 PrsTryBlk(CLex *lx,CHashFun *locals,I64 try_cnt)
 {
-  CCodeBlkMisc *lb_catch,*lb_done,*lb_untry;
+  CLexCodeMisc *lb_catch,*lb_done,*lb_untry;
   CHashClass *tempc=sys_internal_types[IT_PTR];
   CHashFun *temp_try=HashFind("SysTry",lx->htc.hash_table_lst,HTT_FUN),
 	    *temp_untry=HashFind("SysUntry",lx->htc.hash_table_lst,HTT_FUN);
@@ -1577,65 +1569,65 @@ U0 PrsTryBlk(CLex *lx,CHashFun *locals,I64 try_cnt)
 
   lx->flags|=LF_NO_REG_OPT; //TODO (Currently no reg vars in funs with try/catch)
 
-  lb_catch=CBMiscNew(lx,CBMT_LABEL);
-  lb_done =CBMiscNew(lx,CBMT_LABEL);
-  lb_untry=CBMiscNew(lx,CBMT_LABEL);
+  lb_catch=LCCMiscNew(lx,CMT_LABEL);
+  lb_done =LCCMiscNew(lx,CMT_LABEL);
+  lb_untry=LCCMiscNew(lx,CMT_LABEL);
 
-  CBICAdd(lx,IC_CALL_START,0,0);
-  CBICAdd(lx,IC_GET_LABEL,lb_untry,tempc,ICF_PUSH_RESULT);
-  CBICAdd(lx,IC_GET_LABEL,lb_catch,tempc,ICF_PUSH_RESULT);
+  LCCAdd(lx,IC_CALL_START,0,0);
+  LCCAdd(lx,IC_GET_LABEL,lb_untry,tempc,ICF_PUSH_RESULT);
+  LCCAdd(lx,IC_GET_LABEL,lb_catch,tempc,ICF_PUSH_RESULT);
   if (Bt(temp_try->flags,Cf_EXTERN)) {
     lx->abs_cnts.externs++;
     if (lx->flags&LF_AOT_COMPILE)
-      CBICAdd(lx,IC_CALL_IMPORT,temp_try,tempc);
+      LCCAdd(lx,IC_CALL_IMPORT,temp_try,tempc);
     else
-      CBICAdd(lx,IC_CALL_INDIRECT2,&temp_try->executable_addr,tempc);
+      LCCAdd(lx,IC_CALL_INDIRECT2,&temp_try->executable_addr,tempc);
   } else
-    CBICAdd(lx,IC_CALL,temp_try->executable_addr,tempc);
+    LCCAdd(lx,IC_CALL,temp_try->executable_addr,tempc);
   if ((Bt(temp_try->flags,Ff_RET1) || Bt(temp_try->flags,Ff_ARGPOP)) && !Bt(temp_try->flags,Ff_NOARGPOP))
-    CBICAdd(lx,IC_ADD_RSP1,16,tempc);
+    LCCAdd(lx,IC_ADD_RSP1,16,tempc);
   else
-    CBICAdd(lx,IC_ADD_RSP,16,tempc);
-  CBICAdd(lx,IC_CALL_END,0,tempc);
-  CBICAdd(lx,IC_END_EXP,0,0);
+    LCCAdd(lx,IC_ADD_RSP,16,tempc);
+  LCCAdd(lx,IC_CALL_END,0,tempc);
+  LCCAdd(lx,IC_END_EXP,0,0);
 
   PrsStatement(lx,locals,try_cnt+1);
 
-  CBICAdd(lx,IC_LABEL,lb_untry,0);
-  CBICAdd(lx,IC_CALL_START,0,0);
+  LCCAdd(lx,IC_LABEL,lb_untry,0);
+  LCCAdd(lx,IC_CALL_START,0,0);
   if (Bt(temp_untry->flags,Cf_EXTERN)) {
     lx->abs_cnts.externs++;
     if (lx->flags&LF_AOT_COMPILE)
-      CBICAdd(lx,IC_CALL_IMPORT,temp_untry,tempc);
+      LCCAdd(lx,IC_CALL_IMPORT,temp_untry,tempc);
     else
-      CBICAdd(lx,IC_CALL_INDIRECT2,&temp_untry->executable_addr,tempc);
+      LCCAdd(lx,IC_CALL_INDIRECT2,&temp_untry->executable_addr,tempc);
   } else
-    CBICAdd(lx,IC_CALL,temp_untry->executable_addr,tempc);
-  CBICAdd(lx,IC_CALL_END,0,tempc);
-  CBICAdd(lx,IC_END_EXP,0,0);
+    LCCAdd(lx,IC_CALL,temp_untry->executable_addr,tempc);
+  LCCAdd(lx,IC_CALL_END,0,tempc);
+  LCCAdd(lx,IC_END_EXP,0,0);
 
-  CBICAdd(lx,IC_JMP,lb_done,0);
+  LCCAdd(lx,IC_JMP,lb_done,0);
 
   if (PrsKeyWord(lx)!=KW_CATCH)
     LexExcept(lx,"ST_MISSING_CATCH");
 
   Lex(lx);
-  CBICAdd(lx,IC_LABEL,lb_catch,0);
+  LCCAdd(lx,IC_LABEL,lb_catch,0);
   PrsStatement(lx,locals,try_cnt+1);
-  CBICAdd(lx,IC_RET,0,tempc);
-  CBICAdd(lx,IC_LABEL,lb_done,0);
+  LCCAdd(lx,IC_RET,0,tempc);
+  LCCAdd(lx,IC_LABEL,lb_done,0);
 }
 
 Bool PrsStatement(CLex *lx,CHashFun *locals,I64 try_cnt=0,
-  CCodeBlkMisc *lb_break=NULL,Bool saved_prs_semicolon=TRUE)
+  CLexCodeMisc *lb_break=NULL,Bool saved_prs_semicolon=TRUE)
 {
   Bool prs_exp,cont,prs_semicolon;
   I64 i,cps_flags=0,last_cps_flags=0;
-  CHashExport *tempess;
-  CCodeBlkMisc *g_lb;
+  CHashExport *tempex;
+  CLexCodeMisc *g_lb;
   U8 *import_name;
   CHashFun *temp_untry;
-  CExe *tempex;
+  CExe *tempx;
 
   do {
     cps_flags&=~CPS_FUN_FLAGS;
@@ -1661,9 +1653,9 @@ Bool PrsStatement(CLex *lx,CHashFun *locals,I64 try_cnt=0,
       }
     } else {
       if (lx->token==TK_IDENT) {
-	if (tempess=lx->hash_entry) {
-	  if (tempess->type & HTT_KEYWORD) {
-	    i=tempess(CHashGeneric *)->user_data0;
+	if (tempex=lx->hash_entry) {
+	  if (tempex->type & HTT_KEYWORD) {
+	    i=tempex(CHashGeneric *)->user_data0;
 	    nobound_switch (i) {
 	      case KW_IF:
 		Lex(lx);
@@ -1709,18 +1701,18 @@ Bool PrsStatement(CLex *lx,CHashFun *locals,I64 try_cnt=0,
 		if (Bt(&lx->opts,OPTf_EXTERNS_TO_IMPORTS))
 		  goto keyword_LTimport;
 		if (lx->flags&LF_AOT_COMPILE) {
-		  if (lx->token!=TK_IDENT || !(tempess=lx->hash_entry) ||
-		      !(tempess->type & HTT_EXPORT_SYS_SYM))
+		  if (lx->token!=TK_IDENT || !(tempex=lx->hash_entry) ||
+		      !(tempex->type & HTT_EXPORT_SYS_SYM))
 		    LexExcept(lx,"ST_EXPECTING_SYS_SYM");
-		  i=tempess->val;
+		  i=tempex->val;
 		  Lex(lx);
 		} else
-		  i=Expression(lx);
-		if (lx->token!=TK_IDENT || !(tempess=lx->hash_entry) ||
-		    !(tempess->type & (HTT_CLASS|HTT_INTERNAL_TYPE)))
+		  i=LexExpression(lx);
+		if (lx->token!=TK_IDENT || !(tempex=lx->hash_entry) ||
+		    !(tempex->type & (HTT_CLASS|HTT_INTERNAL_TYPE)))
 		  LexExcept(lx,"ST_EXPECTING_TYPE");
 		Lex(lx);
-		PrsGlblVarLst(lx,PRS0__EXTERN|PRS1_NULL,tempess,i,last_cps_flags);
+		PrsGlblVarLst(lx,PRS0__EXTERN|PRS1_NULL,tempex,i,last_cps_flags);
 		prs_semicolon=FALSE;
 		cont=TRUE;
 		break;
@@ -1733,11 +1725,11 @@ keyword_LTimport:
 		  LexExcept(lx,"ST_EXPECTING_SYS_SYM");
 		import_name=lx->ident;
 		lx->ident=0;
-		if (Lex(lx)!=TK_IDENT || !(tempess=lx->hash_entry) ||
-		   !(tempess->type & (HTT_CLASS|HTT_INTERNAL_TYPE)))
+		if (Lex(lx)!=TK_IDENT || !(tempex=lx->hash_entry) ||
+		   !(tempex->type & (HTT_CLASS|HTT_INTERNAL_TYPE)))
 		  LexExcept(lx,"ST_EXPECTING_TYPE");
 		Lex(lx);
-		PrsGlblVarLst(lx,PRS0__IMPORT|PRS1_NULL,tempess,import_name,FALSE);
+		PrsGlblVarLst(lx,PRS0__IMPORT|PRS1_NULL,tempex,import_name,FALSE);
 		Free(import_name);
 		prs_semicolon=FALSE;
 		cont=TRUE;
@@ -1746,12 +1738,12 @@ keyword_LTimport:
 		if (locals)
 		  LexExcept(lx,"ST_NOT_ALLOWED_IN_FUN");
 		Lex(lx);
-		i=Expression(lx);
-		if (lx->token!=TK_IDENT || !(tempess=lx->hash_entry) ||
-		    !(tempess->type & (HTT_CLASS|HTT_INTERNAL_TYPE)))
+		i=LexExpression(lx);
+		if (lx->token!=TK_IDENT || !(tempex=lx->hash_entry) ||
+		    !(tempex->type & (HTT_CLASS|HTT_INTERNAL_TYPE)))
 		  LexExcept(lx,"ST_EXPECTING_TYPE");
 		Lex(lx);
-		PrsGlblVarLst(lx,PRS0__INTERN|PRS1_NULL,tempess,i,last_cps_flags);
+		PrsGlblVarLst(lx,PRS0__INTERN|PRS1_NULL,tempex,i,last_cps_flags);
 		prs_semicolon=FALSE;
 		cont=TRUE;
 		break;
@@ -1761,20 +1753,18 @@ keyword_LTimport:
 		Lex(lx);
 		if (lx->token!=TK_IDENT)
 		  LexExcept(lx,"ST_EXPECTING_TYPE");
-		tempess=lx->hash_entry;
-		if (PrsKeyWord(lx)==KW_CLASS) {
+		tempex=lx->hash_entry;
+		i=PrsKeyWord(lx);
+		if (i==KW_CLASS||i==KW_UNION) {
 		  Lex(lx);
-		  PrsClass(lx,FALSE,last_cps_flags,TRUE);
-		} else if (PrsKeyWord(lx)==KW_UNION) {
-		  Lex(lx);
-		  PrsClass(lx,TRUE,last_cps_flags,TRUE);
+		  PrsClass(lx,i,last_cps_flags,TRUE);
 		} else {
-		  if (!tempess || !(tempess->type & (HTT_CLASS|HTT_INTERNAL_TYPE)))
+		  if (!tempex || !(tempex->type & (HTT_CLASS|HTT_INTERNAL_TYPE)))
 		    LexExcept(lx,"ST_EXPECTING_TYPE");
 		  if (Bt(&lx->opts,OPTf_EXTERNS_TO_IMPORTS))
 		    goto keyword_import;
 		  Lex(lx);
-		  PrsGlblVarLst(lx,PRS0_EXTERN|PRS1_NULL,tempess,0,last_cps_flags);
+		  PrsGlblVarLst(lx,PRS0_EXTERN|PRS1_NULL,tempex,0,last_cps_flags);
 		  prs_semicolon=FALSE;
 		  cont=TRUE;
 		}
@@ -1783,19 +1773,19 @@ keyword_LTimport:
 		if (locals)
 		  LexExcept(lx,"ST_NOT_ALLOWED_IN_FUN");
 		Lex(lx);
-		if (lx->token!=TK_IDENT || !(tempess=lx->hash_entry) ||
-		  !(tempess->type & (HTT_CLASS|HTT_INTERNAL_TYPE)))
+		if (lx->token!=TK_IDENT || !(tempex=lx->hash_entry) ||
+		  !(tempex->type & (HTT_CLASS|HTT_INTERNAL_TYPE)))
 		  LexExcept(lx,"ST_EXPECTING_TYPE");
 keyword_import:
 		Lex(lx);
-		PrsGlblVarLst(lx,PRS0_IMPORT|PRS1_NULL,tempess,0,FALSE);
+		PrsGlblVarLst(lx,PRS0_IMPORT|PRS1_NULL,tempex,0,FALSE);
 		prs_semicolon=FALSE;
 		cont=TRUE;
 		break;
 	      case KW_ASM:
 		if (locals) {
-		  if (tempex=CmpJoin(lx,locals,FALSE,TRUE))
-		    CBICAdd(lx,IC_ASM,tempex,0);
+		  if (tempx=CmpJoin(lx,locals,FALSE,TRUE))
+		    LCCAdd(lx,IC_ASM,tempx,0);
 		  Lex(lx); //Skip "}" of asm{}
 		} else {
 		  if (lx->flags&LF_AOT_COMPILE || lx->a_depth) {
@@ -1804,8 +1794,8 @@ keyword_import:
 		    if (lx->flags&LF_AOT_COMPILE && lx->a_depth==1)
 		      Lex(lx); //Skip "}" of asm{}
 		  } else {
-		    if (tempex=CmpJoin(lx,NULL,FALSE,TRUE))
-		      CmpFixUpJITAsm(lx,tempex,tempex->code);
+		    if (tempx=CmpJoin(lx,NULL,FALSE,TRUE))
+		      CmpFixUpJITAsm(lx,tempx,tempx->ex);
 		    Lex(lx); //Skip "}" of asm{}
 		  }
 		  cps_flags|=CPS_IS_ASM;
@@ -1821,7 +1811,7 @@ keyword_import:
 		Lex(lx);
 		if (!lb_break)
 		  LexExcept(lx,"ST_BREAK_NOT_ALLOWED");
-		CBICAdd(lx,IC_JMP,lb_break,0);
+		LCCAdd(lx,IC_JMP,lb_break,0);
 		break;
 	      case KW_RETURN:
 		if (!locals)
@@ -1833,13 +1823,13 @@ keyword_import:
 		    if (Bt(temp_untry->flags,Cf_EXTERN)) {
 		      lx->abs_cnts.externs++;
 		      if (lx->flags&LF_AOT_COMPILE)
-			CBICAdd(lx,IC_CALL_IMPORT,
+			LCCAdd(lx,IC_CALL_IMPORT,
 			  temp_untry,sys_internal_types[IT_PTR]);
 		      else
-			CBICAdd(lx,IC_CALL_INDIRECT2,
+			LCCAdd(lx,IC_CALL_INDIRECT2,
 			  &temp_untry->executable_addr,sys_internal_types[IT_PTR]);
 		    } else
-		      CBICAdd(lx,IC_CALL,temp_untry->executable_addr,sys_internal_types[IT_PTR]);
+		      LCCAdd(lx,IC_CALL,temp_untry->executable_addr,sys_internal_types[IT_PTR]);
 		  }
 		}
 		if (Lex(lx)!=';') {
@@ -1847,43 +1837,35 @@ keyword_import:
 		    LexPutWarn(lx,"ST_SHOULD_NOT_RETURN_VAL");
 		  if (!PrsExpression(lx,NULL,FALSE))
 		    throw(EXCEPT_COMPILER,17);
-		  CBICAdd(lx,IC_RETURN_VAL,0,locals->return_class);
+		  LCCAdd(lx,IC_RETURN_VAL,0,locals->return_class);
 		  lx->flags|=LF_HAS_RETURN;
 		} else if (locals->return_class->size)
 		  LexPutWarn(lx,"ST_SHOULD_RETURN_VAL");
-		CBICAdd(lx,IC_JMP,lx->lb_leave,0);
+		LCCAdd(lx,IC_JMP,lx->lb_leave,0);
 		break;
 	      case KW_GOTO:
 		Lex(lx);
 		if (lx->token!=TK_IDENT)
 		  LexExcept(lx,"ST_EXPECTING_IDENTIFIER");
-		if (!(g_lb=CBGoToLabelFind(lx,lx->ident))) {
-		  g_lb=CBMiscNew(lx,CBMT_GOTO_LABEL);
+		if (!(g_lb=LCCGoToLabelFind(lx,lx->ident))) {
+		  g_lb=LCCMiscNew(lx,CMT_GOTO_LABEL);
 		  g_lb->str=lx->ident;
 		  lx->ident=NULL;
 		}
-		g_lb->flags|=CBMF_USED;
-		CBICAdd(lx,IC_JMP,g_lb,0);
+		g_lb->flags|=CMF_USED;
+		LCCAdd(lx,IC_JMP,g_lb,0);
 		Lex(lx);
 		break;
 	      case KW_NOUNUSEDWARN:
 		Lex(lx);
 		PrsNoUnusedWarn(lx);
 		break;
+	      case KW_UNION:
 	      case KW_CLASS:
 		Lex(lx);
-		tempess=PrsClass(lx,FALSE,last_cps_flags,FALSE);
+		tempex=PrsClass(lx,i,last_cps_flags,FALSE);
 		if (!locals && lx->token!=';') {
-		  PrsGlblVarLst(lx,PRS0_NULL|PRS1_NULL,tempess,0,last_cps_flags);
-		  cont=TRUE;
-		  prs_semicolon=FALSE;
-		}
-		break;
-	      case KW_UNION:
-		Lex(lx);
-		tempess=PrsClass(lx,TRUE,last_cps_flags,FALSE);
-		if (!locals && lx->token!=';') {
-		  PrsGlblVarLst(lx,PRS0_NULL|PRS1_NULL,tempess,0,last_cps_flags);
+		  PrsGlblVarLst(lx,PRS0_NULL|PRS1_NULL,tempex,0,last_cps_flags);
 		  cont=TRUE;
 		  prs_semicolon=FALSE;
 		}
@@ -1900,6 +1882,12 @@ keyword_import:
 		cont=TRUE;
 		prs_semicolon=FALSE;
 		break;
+	      case KW_HASERRCODE:
+		Lex(lx);
+		cps_flags|=CPS_HASERRCODE|last_cps_flags&CPS_FUN_FLAGS;
+		cont=TRUE;
+		prs_semicolon=FALSE;
+		break;
 	      case KW_ARGPOP:
 		Lex(lx);
 		cps_flags|=CPS_IS_ARGPOP|last_cps_flags&CPS_FUN_FLAGS;
@@ -1922,7 +1910,7 @@ keyword_import:
 	      default:
 		prs_exp=TRUE;
 	    }
-	  } else if (tempess->type & (HTT_CLASS|HTT_INTERNAL_TYPE)) {
+	  } else if (tempex->type & (HTT_CLASS|HTT_INTERNAL_TYPE)) {
 	    if (locals) {
 	      if (cps_flags&CPS_IS_STATIC) {
 		PrsVarLst(lx,locals,PRS0_NULL|PRS1_STATIC_LOCAL_VAR);
@@ -1935,7 +1923,7 @@ keyword_import:
 		cont=TRUE;
 	    } else {
 	      Lex(lx);
-	      PrsGlblVarLst(lx,PRS0_NULL|PRS1_NULL,tempess,0,last_cps_flags);
+	      PrsGlblVarLst(lx,PRS0_NULL|PRS1_NULL,tempex,0,last_cps_flags);
 	      cont=TRUE;
 	    }
 	    prs_semicolon=FALSE;
@@ -1944,15 +1932,15 @@ keyword_import:
 	  if (lx->local_var_entry)
 	    prs_exp=TRUE;
 	  else {
-	    if (!(g_lb=CBGoToLabelFind(lx,lx->ident))) {
-	      g_lb=CBMiscNew(lx,CBMT_GOTO_LABEL);
+	    if (!(g_lb=LCCGoToLabelFind(lx,lx->ident))) {
+	      g_lb=LCCMiscNew(lx,CMT_GOTO_LABEL);
 	      g_lb->str=lx->ident;
 	      lx->ident=NULL;
-	    } else if (g_lb->flags&CBMF_DEFINED)
+	    } else if (g_lb->flags&CMF_DEFINED)
 	      LexExcept(lx,"ST_DUP_GOTO_LABEL");
-	    g_lb->flags|=CBMF_DEFINED;
+	    g_lb->flags|=CMF_DEFINED;
 	    Lex(lx); //skip ident
-	    CBICAdd(lx,IC_LABEL,g_lb,0);
+	    LCCAdd(lx,IC_LABEL,g_lb,0);
 	    if (lx->token==':') //skip ident
 	      Lex(lx); //skip colon
 	    else
@@ -1964,7 +1952,7 @@ keyword_import:
 	}
       } else prs_exp=TRUE;
       if (prs_exp) {
-	if (lx->token==TK_STR||lx->token==TK_U8)
+	if (lx->token==TK_STR||lx->token==TK_CHAR_CONST)
 	  PrsFunCall(lx,NULL,FALSE,NULL);
 	else if (!PrsExpression(lx,NULL,TRUE))
 	  throw(EXCEPT_COMPILER,18);
diff --git a/TempleOS/Compiler/Unassembler.CPP b/TempleOS/Compiler/Unassembler.CPP
index 482c1f4..270bcf1 100644
--- a/TempleOS/Compiler/Unassembler.CPP
+++ b/TempleOS/Compiler/Unassembler.CPP
@@ -217,15 +217,15 @@ U0 UnasmHashLoad()
   QSortI64(unasm_table,cnt,&InstEntriesCompare);
 }
 
-I64 StrStrBits(U8 *st)
+I64 StrMatchBits(U8 *st)
 {
-  if (StrStr(st,"8"))
+  if (StrMatch("8",st))
     return 8;
-  if (StrStr(st,"16"))
+  if (StrMatch("16",st))
     return 16;
-  if (StrStr(st,"32"))
+  if (StrMatch("32",st))
     return 32;
-  if (StrStr(st,"64"))
+  if (StrMatch("64",st))
     return 64;
   return 0;
 }
@@ -262,18 +262,18 @@ U0 Ui(U8 *buf,U8 **_ip,I64 seg_size=64,I64 *_jmp_dst=NULL,Bool just_ins=FALSE)
   else
     *line1=0;
 
-  SPrintF(line1+StrLen(line1),"%24tP ",ip);
+  SPrint(line1+StrLen(line1),"%24tP ",ip);
   bin_data_area1=line1+StrLen(line1);
   for (i=0;i<6;i++) {
-    SPrintF(buf2,"%02X",ip[i]);
+    SPrint(buf2,"%02X",ip[i]);
     StrCat(line1,buf2);
   }
   StrCat(line1," ");
 
-  SPrintF(line2,"%24tP ",ip+6);
+  SPrint(line2,"%24tP ",ip+6);
   bin_data_area2=line2+StrLen(line2);
   for (i=6;i<12;i++) {
-    SPrintF(buf2,"%02X",ip[i]);
+    SPrint(buf2,"%02X",ip[i]);
     StrCat(line2,buf2);
   }
 
@@ -409,19 +409,19 @@ U0 Ui(U8 *buf,U8 **_ip,I64 seg_size=64,I64 *_jmp_dst=NULL,Bool just_ins=FALSE)
   a1=tempi->arg1;
   a2=tempi->arg2;
 
-  if (a1_size=StrStrBits(DefineSub(a1,"ST_ARG_TYPES"))) {
+  if (a1_size=StrMatchBits(DefineSub(a1,"ST_ARG_TYPES"))) {
     if (Bt(&uasm_signed_arg_mask,a1))
-      SPrintF(buf2,"I%d ",a1_size);
+      SPrint(buf2,"I%d ",a1_size);
     else
-      SPrintF(buf2,"U%d ",a1_size);
+      SPrint(buf2,"U%d ",a1_size);
     StrCat(a1_st,buf2);
   }
 
-  if (a2_size=StrStrBits(DefineSub(a2,"ST_ARG_TYPES"))) {
+  if (a2_size=StrMatchBits(DefineSub(a2,"ST_ARG_TYPES"))) {
     if (Bt(&uasm_signed_arg_mask,a2))
-      SPrintF(buf2,"I%d ",a2_size);
+      SPrint(buf2,"I%d ",a2_size);
     else
-      SPrintF(buf2,"U%d ",a2_size);
+      SPrint(buf2,"U%d ",a2_size);
     StrCat(a2_st,buf2);
   }
 
@@ -490,11 +490,11 @@ U0 Ui(U8 *buf,U8 **_ip,I64 seg_size=64,I64 *_jmp_dst=NULL,Bool just_ins=FALSE)
       SIB=*ip++;
     if (Mod==1) {
       disp=*ip(U8 *)++;
-      SPrintF(buf2,"%02X",disp);
+      SPrint(buf2,"%02X",disp);
       StrCat(reloced_a1_st,buf2);
     } else if (Mod==2) {
       disp=*ip(U32 *)++;
-      SPrintF(buf2,"%08X",disp);
+      SPrint(buf2,"%08X",disp);
       StrCat(reloced_a1_st,buf2);
     }
     if (tempi->slash_val<8)
@@ -534,7 +534,7 @@ U0 Ui(U8 *buf,U8 **_ip,I64 seg_size=64,I64 *_jmp_dst=NULL,Bool just_ins=FALSE)
 	else if (reloced_a2==ARGT_IMM64 || reloced_a2==ARGT_UIMM64)
 	  disp+=8;
       }
-      SPrintF(buf2,"[%X] ",disp);
+      SPrint(buf2,"[%X] ",disp);
       StrCat(reloced_a1_st,buf2);
       RM1=-1;
     } else {
@@ -558,15 +558,15 @@ U0 Ui(U8 *buf,U8 **_ip,I64 seg_size=64,I64 *_jmp_dst=NULL,Bool just_ins=FALSE)
 	    ptr="ST_U32_REGS";
 	  if (r1==CREG_RBP && !Mod) {
 	    disp=*ip(U32 *)++;
-	    SPrintF(buf2,"%08X",disp);
+	    SPrint(buf2,"%08X",disp);
 	    StrCat(reloced_a1_st,buf2);
-	    SPrintF(buf2,"[%Z*%d]",r2,ptr,scale);
+	    SPrint(buf2,"[%Z*%d]",r2,ptr,scale);
 	    StrCat(reloced_a1_st,buf2);
 	  } else if (r2==4) {
-	    SPrintF(buf2,"[%Z]",r1,ptr);
+	    SPrint(buf2,"[%Z]",r1,ptr);
 	    StrCat(reloced_a1_st,buf2);
 	  } else {
-	    SPrintF(buf2,"[%Z+%Z*%d]",r1,ptr,r2,ptr,scale);
+	    SPrint(buf2,"[%Z+%Z*%d]",r1,ptr,r2,ptr,scale);
 	    StrCat(reloced_a1_st,buf2);
 	  }
 	} else {
@@ -576,7 +576,7 @@ U0 Ui(U8 *buf,U8 **_ip,I64 seg_size=64,I64 *_jmp_dst=NULL,Bool just_ins=FALSE)
 	    ptr="ST_U32_REGS";
 	  else
 	    ptr="ST_U64_REGS";
-	  SPrintF(buf2,"[%Z]",RM1,ptr);
+	  SPrint(buf2,"[%Z]",RM1,ptr);
 	  StrCat(reloced_a1_st,buf2);
 	}
       } else {
@@ -602,7 +602,7 @@ U0 Ui(U8 *buf,U8 **_ip,I64 seg_size=64,I64 *_jmp_dst=NULL,Bool just_ins=FALSE)
     case ARGT_IMM8:
     case ARGT_UIMM8:
       imm=*ip(U8 *)++;
-      SPrintF(buf2,"%02X",imm);
+      SPrint(buf2,"%02X",imm);
       StrCat(a1_st,buf2);
       if (tempi->opcode[0]==0xCD) {
 	if (ptr=DefineSub(imm,"ST_INT_NAMES")) {
@@ -614,39 +614,39 @@ U0 Ui(U8 *buf,U8 **_ip,I64 seg_size=64,I64 *_jmp_dst=NULL,Bool just_ins=FALSE)
     case ARGT_IMM16:
     case ARGT_UIMM16:
       imm=*ip(U16 *)++;
-      SPrintF(buf2,"%04X",imm);
+      SPrint(buf2,"%04X",imm);
       StrCat(a1_st,buf2);
       break;
     case ARGT_IMM32:
     case ARGT_UIMM32:
       imm=*ip(U32 *)++;
-      SPrintF(buf2,"%08X",imm);
+      SPrint(buf2,"%08X",imm);
       StrCat(a1_st,buf2);
       break;
     case ARGT_IMM64:
     case ARGT_UIMM64:
       imm=*ip(I64 *)++;
-      SPrintF(buf2,"%016X",imm);
+      SPrint(buf2,"%016X",imm);
       StrCat(a1_st,buf2);
       break;
     case ARGT_REL8:
       disp=*ip(I8 *)++;
       disp+=ip;
-      SPrintF(buf2,"%P ",disp);
+      SPrint(buf2,"%P ",disp);
       if (_jmp_dst) *_jmp_dst=disp;
       StrCat(a1_st,buf2);
       break;
     case ARGT_REL16:
       disp=*ip(I16 *)++;
       disp+=ip;
-      SPrintF(buf2,"%P ",disp);
+      SPrint(buf2,"%P ",disp);
       if (_jmp_dst) *_jmp_dst=disp;
       StrCat(a1_st,buf2);
       break;
     case ARGT_REL32:
       disp=*ip(I32 *)++;
       disp+=ip;
-      SPrintF(buf2,"%P ",disp);
+      SPrint(buf2,"%P ",disp);
       if (_jmp_dst) *_jmp_dst=disp;
       StrCat(a1_st,buf2);
       break;
@@ -658,7 +658,7 @@ U0 Ui(U8 *buf,U8 **_ip,I64 seg_size=64,I64 *_jmp_dst=NULL,Bool just_ins=FALSE)
 	disp=*ip(U16 *)++;
       else
 	disp=*ip(U32 *)++;
-      SPrintF(buf2,"[%X]",disp);
+      SPrint(buf2,"[%X]",disp);
       StrCat(a1_st,buf2);
       break;
     case ARGT_CL:
@@ -710,25 +710,25 @@ U0 Ui(U8 *buf,U8 **_ip,I64 seg_size=64,I64 *_jmp_dst=NULL,Bool just_ins=FALSE)
     case ARGT_IMM8:
     case ARGT_UIMM8:
       imm=*ip(U8 *)++;
-      SPrintF(buf2,"%02X",imm);
+      SPrint(buf2,"%02X",imm);
       StrCat(a2_st,buf2);
       break;
     case ARGT_IMM16:
     case ARGT_UIMM16:
       imm=*ip(U16 *)++;
-      SPrintF(buf2,"%04X",imm);
+      SPrint(buf2,"%04X",imm);
       StrCat(a2_st,buf2);
       break;
     case ARGT_IMM32:
     case ARGT_UIMM32:
       imm=*ip(U32 *)++;
-      SPrintF(buf2,"%08X",imm);
+      SPrint(buf2,"%08X",imm);
       StrCat(a2_st,buf2);
       break;
     case ARGT_IMM64:
     case ARGT_UIMM64:
       imm=*ip(I64 *)++;
-      SPrintF(buf2,"%016X",imm);
+      SPrint(buf2,"%016X",imm);
       StrCat(a2_st,buf2);
       break;
     case ARGT_MOFFS8...ARGT_MOFFS64:
@@ -739,7 +739,7 @@ U0 Ui(U8 *buf,U8 **_ip,I64 seg_size=64,I64 *_jmp_dst=NULL,Bool just_ins=FALSE)
 	disp=*ip(U16 *)++;
       else
 	disp=*ip(U32 *)++;
-      SPrintF(buf2,"[%X]",disp);
+      SPrint(buf2,"[%X]",disp);
       StrCat(a2_st,buf2);
       break;
     case ARGT_CL:
@@ -822,11 +822,11 @@ U8 *U(U8 *ip,I64 cnt=20,I64 seg_size=64)
   I64 i;
   U8 buf[1024];
   if (seg_size==16)
-    PrintFWarn("%S","ST_16BIT_UNASM");
+    PrintWarn("%S","ST_16BIT_UNASM");
   "$$HL,1$$";
   for (i=0;ifull_name);
-    tempm->user_data=doc->root.y;
-    cnt+=doc->root.y;
-    DocDel(doc);
-    tempm=tempm->next;
-  }
-  num=num%cnt;
-  tempm=root;
-  while (tempm) {
-    num-=tempm->user_data;
-    if (num<0) {
-      st=MSPrintF("FL:%s,%d",tempm->full_name,-num);
-      break;
-    }
-    tempm=tempm->next;
-  }
-  CDirLstDel(root);
-  Ed(st);
-  Free(st);
-}
+#define WS_F6		0
+#define WS_SHIFT_F6	1
+I64 my_wordstat=WS_F6;
 
 Bool MyPutKey(I64 ch,I64 sc)
 {  //ch=ASCII; sc=scancode
@@ -64,7 +26,7 @@ Bool MyPutKey(I64 ch,I64 sc)
 //Return TRUE if you completely
 //handled the key.
 
-  I64 i,sc2=sc.u8[0];
+  I64 i,sc2=sc.u8[0],old_wordstat;
 
   if (SC_F1<=sc2<=SC_F10 &&
       sc&SCF_ALT &&
@@ -130,10 +92,24 @@ Bool MyPutKey(I64 ch,I64 sc)
 	    SetKeyDesc("God Word");
 	} else {
 	  //$LK-A,"::/TempleOS/Apps/HolySpirit/HSNotes.TXT"$
+	  DocRecalc(DocPut);
+	  if (DocPut->cur_entry->settings->cur_text_attr&0xF!=RED)
+	    "$$FG,RED$$";
 	  if (sc & SCF_SHIFT)
-	    RandQuote(KbdMouseEvtTime>>4);
-	  else
-	    "%s ",ws_sorted_words[KbdMouseEvtTime>>4%ws_num_words]->str;
+	    RandQuote;
+	  else {
+	    if (my_wordstat!=WS_SHIFT_F6) {
+	      old_wordstat=TaskValidate(ws_task);
+	      my_wordstat=WS_SHIFT_F6;
+	      PopUp("WSInit(\"::/TempleOS/Apps/HolySpirit/Vocab.TXT*\");");
+	      while (!Bt(&ws_flags,WSf_INIT_IN_PROGRESS)) //Kinda risky
+		Yield;
+	      while (Bt(&ws_flags,WSf_INIT_IN_PROGRESS))
+		Yield;
+	      WordStat(old_wordstat);
+	    }
+	    RandWord;
+	  }
 	}
 	break;
       case SC_F6:
@@ -143,24 +119,32 @@ Bool MyPutKey(I64 ch,I64 sc)
 	  else
 	    SetKeyDesc("Cmd/Init WordStat TempleOS");
 	} else {
-	  if (sc & SCF_SHIFT)
+	  old_wordstat=TaskValidate(ws_task);
+	  if (sc & SCF_SHIFT) {
+	    my_wordstat=WS_SHIFT_F6;
 	    PopUp("WSInit(\"::/TempleOS/Apps/HolySpirit/Vocab.TXT*\");");
-	  else
-	    PopUp("WSInit(\"::/TempleOS/\" FILENAME_MASK_TXT \";~*Bible.TXT*\");");
+	  } else {
+	    my_wordstat=WS_F6;
+	    PopUp("WSInit(\"::/TempleOS/*;~*Bible.TXT*\");");
+	  }
+	  while (!Bt(&ws_flags,WSf_INIT_IN_PROGRESS)) //Kinda risky
+	    Yield;
+	  while (Bt(&ws_flags,WSf_INIT_IN_PROGRESS))
+	    Yield;
+	  WordStat(old_wordstat);
 	}
 	break;
       case SC_F7:
 	if (sc&SCF_KEY_DESC) {
 	  if (sc & SCF_SHIFT)
-	    SetKeyDesc("Dollar/Insert Hidden Widget");
+	    SetKeyDesc("Misc/Insert My URL");
 	  else
 	    SetKeyDesc("Misc/Insert Datetime");
 	} else {
 	  if (sc & SCF_SHIFT)
-	    DocInsSafe(DocPut,
-		"$$HS+C$$$$FG$$$$HE$$");
+	    FillInMyURL;
 	  else
-	    FillInTime();
+	    FillInTime;
 	}
 	break;
     }
@@ -201,7 +185,7 @@ Bool MyPutKey(I64 ch,I64 sc)
 	      SetKeyDesc("Edit/Put Link to Cur Pos on Clipboard");
 	    else {
 	      ClipBoardDel;
-	      DocPrintF(sys_clipboard_doc,"$$LK-A,\"FL:%s,%d\"$$",
+	      DocPrint(sys_clipboard_doc,"$$LK-A,\"FL:%s,%d\"$$",
 		DocPut->filename.name,DocPut->cur_entry->y+1);
 	    }
 	    return TRUE;
@@ -211,7 +195,7 @@ Bool MyPutKey(I64 ch,I64 sc)
 	    else {
 	      i=RandU32;
 	      ClipBoardDel;
-	      DocPrintF(sys_clipboard_doc,"$$LK,\"\",\"FA:%s,ANC%d\"$$",
+	      DocPrint(sys_clipboard_doc,"$$LK,\"\",\"FA:%s,ANC%d\"$$",
 		DocPut->filename.name,i);
 	      "$$AN,\"\",\"ANC%d\"$$",i;
 	    }
@@ -235,7 +219,14 @@ Bool MyPutKey(I64 ch,I64 sc)
 	    if (sc&SCF_KEY_DESC)
 	      SetKeyDesc("Cmd/Jump to Bad Code");
 	    else //$LK-A,"::/TempleOS/Apps/HolySpirit/HSNotes.TXT"$
-	      BadCodeJump(KbdMouseEvtTime>>4);
+	      BadCodeJump;
+	    return TRUE;
+
+	  case 'g':
+	    if (sc&SCF_KEY_DESC)
+	      SetKeyDesc("Godle");
+	    else //$LK-A,"::/TempleOS/Apps/HolySpirit/HSNotes.TXT"$
+	      Godle; //God drawing
 	    return TRUE;
 
 	  case 'p':
@@ -257,9 +248,8 @@ Bool MyPutKey(I64 ch,I64 sc)
   return FALSE;
 }
 
-Bool MyPutS(U8 *st)
+Bool MyPutS(U8 *)
 {
-  nounusedwarn st;
   return FALSE;
 }
 
diff --git a/TempleOS/Demo/AcctExample/Adam3fSys.CPP b/TempleOS/Demo/AcctExample/Adam3fSys.CPP
index cff1eaa..cc8c11d 100644
--- a/TempleOS/Demo/AcctExample/Adam3fSys.CPP
+++ b/TempleOS/Demo/AcctExample/Adam3fSys.CPP
@@ -40,13 +40,13 @@ U0 StartUpTasks()
   WinTileVert;
   if (!IsSysDeterministic)
     PopUp("#include \"::/TempleOS/Adam/Start\";");
-  AdamLog("Boot     Time:%7.3fs\n",tS);
-  XTalk(user1,"#include \"DoItOnce\";\n");
+  "Boot     Time:%7.3fs\n",tS;
+  XTalk(user1,"Cd(\"HOME\");#include \"DoItOnce\";\n");
   Silent(ON);
   if (!IsSysDeterministic)
-    WSInit("/TempleOS/" FILENAME_MASK_TXT ";~*Bible.TXT*");
+    WSInit("/TempleOS/*;~*Bible.TXT*");
   Silent(OFF);
-  AdamLog("WordStat Time:%7.3fs\n",tS);
+  "WordStat Time:%7.3fs\n",tS;
   if (ts_has_win_drv)
     DrvEnable(TS_WIN_DRV_LET,OFF);
 }
diff --git a/TempleOS/Demo/AcctExample/PersonalMenu.TXT b/TempleOS/Demo/AcctExample/PersonalMenu.TXT
index 48ea010..8ec94ed 100644
Binary files a/TempleOS/Demo/AcctExample/PersonalMenu.TXT and b/TempleOS/Demo/AcctExample/PersonalMenu.TXT differ
diff --git a/TempleOS/Demo/AcctExample/TAD/Adam3.CPP b/TempleOS/Demo/AcctExample/TAD/Adam3.CPP
index 0fa67b9..315588a 100644
--- a/TempleOS/Demo/AcctExample/TAD/Adam3.CPP
+++ b/TempleOS/Demo/AcctExample/TAD/Adam3.CPP
@@ -1,12 +1,10 @@
 //Change anything you want in this
 //acct file or others.
 
-#exe {OptOn(OPTf_WARN_PAREN);};
-#exe {OptOn(OPTf_WARN_DUP_TYPES);};
+OptOn(OPTf_WARN_PAREN);
+OptOn(OPTf_WARN_DUP_TYPES);
 #include "HOME/Adam3aLocalize"
 #include "HOME/Adam3bPkgs"
 #include "HOME/Adam3dKeyPlugIns"
 #include "HOME/Adam3eWrappers"
 #include "HOME/Adam3fSys"
-#exe {OptOff(OPTf_WARN_PAREN);};
-#exe {OptOff(OPTf_WARN_DUP_TYPES);};
diff --git a/TempleOS/Demo/AcctExample/TAD/Archive/DiningStars.CPP b/TempleOS/Demo/AcctExample/TAD/Archive/DiningStars.CPP
new file mode 100644
index 0000000..5a2e180
--- /dev/null
+++ b/TempleOS/Demo/AcctExample/TAD/Archive/DiningStars.CPP
@@ -0,0 +1,771 @@
+//This uses $LK,"fixed-point","FI:::/TempleOS/Demo/Lectures/FixedPoint.CPP"$.
+
+
+AcctRegSetDftEntry("TempleOS/DiningStars","F64 best_score=9999;\n");
+AcctRegExeBranch("TempleOS/DiningStars");
+
+#define PERSON_SCALE	6.0
+
+
+
+
+
+
+
+
+
+
+		$SP,"<1>",1$
+
+
+
+
+
+
+
+
+
+		$SP,"<2>",2$
+
+
+
+
+
+
+
+
+		$SP,"<3>",3$
+
+
+
+
+
+
+#define PLANT_SCALE	6.0
+
+
+
+		     $SP,"<4>",4$
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+		      $SP,"<5>",5$
+
+
+
+
+
+
+
+class Wall
+{
+  Wall *next,*last;
+  CD3I32 p1,p2;
+  I64 cpu_num;
+} walls_root;
+
+
+
+
+#define SCREEN_SCALE		1024
+#define PLOT_GRID_WIDTH		24
+#define PLOT_GRID_HEIGHT	24
+#define MAN_HEIGHT		300
+#define WALL_HEIGHT		1.0
+#define BLUEPRINT_SCALE		4
+
+CDC *blueprint_dc;
+I64 blueprint_width,blueprint_height;
+U8 *blueprint=NULL,
+   *panels_processed=NULL;
+
+I64 man_xx,man_yy;
+F64 man_é;
+
+F64 t0,tf;
+
+#define NUM_PERSONS	16
+class Person
+{
+  I64 x,y;
+} persons[NUM_PERSONS];
+
+U0 DSTransform(CDC *dc,I64 *x,I64 *y,I64 *z)
+{
+  I64 zz;
+  GrRot(dc->r,x,y,z);
+  zz=SCREEN_SCALE/3+*z;
+  if (zz<1) zz=1;
+  *x=SCREEN_SCALE/2* *x/zz;
+  *y=SCREEN_SCALE/2* (*y+MAN_HEIGHT)/zz;
+  *x+=dc->x;
+  *y+=dc->y;
+  *z+=dc->z;
+}
+
+public U0 DSLighting(CDC *dc,CD3I32 *p1,CD3I32 *p2,CD3I32 *p3,CColorROPU32 color)
+{
+  CD3I32 v1,v2;
+  I64 i,vn_x,vn_y,vn_z;
+  F64 d;
+
+  v1.x=p1->x-p2->x;
+  v1.y=p1->y-p2->y;
+  v1.z=p1->z-p2->z;
+
+  v2.x=p3->x-p2->x;
+  v2.y=p3->y-p2->y;
+  v2.z=p3->z-p2->z;
+
+//V1 and V2 are vects along two sides
+//of the tri joined at p2.
+
+  vn_x=v1.y*v2.z-v1.z*v2.y;
+  vn_y=v1.z*v2.x-v1.x*v2.z;
+  vn_z=v1.x*v2.y-v1.y*v2.x;
+  if (d=Sqrt(SqrI64(vn_x)+SqrI64(vn_y)+SqrI64(vn_z)))
+    d=1<<16/d;
+  vn_x*=d;
+  vn_y*=d;
+  vn_z*=d;
+//Vn is the cross product of V1 and V3
+//which means it is perpendicular.  It
+//is the normal vect to the surface.
+//It has been scaled to length 65536.
+
+//Light source has been scaled to length 65536.
+  i=(vn_x*dc->ls.x+vn_y*dc->ls.y+vn_z*dc->ls.z)>>16;
+
+  i=(0x8000+i)>>1;//Tables are too dark ****TODO****
+
+//The dot product of the light source
+//vect and the surface normal
+//gives an illumination number.
+//65536*65536>>16=65536
+
+//TempleOS will generate a random U16
+//and compare to dither_probability and
+//will pick from two colors.
+//Probability dithering does not work with pen_width>1 at this time.
+  if (color.c0.rop&ROPBF_TWO_SIDED) {
+    color.c0.rop&=~ROPBF_TWO_SIDED;
+    i=AbsI64(i)<<1;
+  } else
+    i+=65536;
+  if (color.c0.rop&ROPBF_HALF_RANGE_COLOR) {
+    color.c0.rop&=~ROPBF_HALF_RANGE_COLOR;
+    i>>=1;
+    if (color>=8) {
+      color-=8;
+      i+=65536;
+    }
+  }
+  if (i<65536) {
+    dc->color=ROPF_PROBABILITY_DITHER+color<<16+BLACK;
+    dc->dither_probability=i;
+  } else {
+    dc->color=ROPF_PROBABILITY_DITHER+(color^8)<<16+color;
+    dc->dither_probability=i-65536;
+  }
+}
+
+#define LOS_SCALE	4
+
+Bool LOSPlot(U8 *,I64 x,I64 y,I64)
+{
+  if (blueprint[(y/LOS_SCALE)*blueprint_width+(x/LOS_SCALE)]==WHITE)
+    return FALSE;
+  else
+    return TRUE;
+}
+
+Bool LOS(I64 x1,I64 y1,I64 x2,I64 y2)
+{ //Line of sight
+  return LOSLine(NULL,x1*LOS_SCALE/SCREEN_SCALE,y1*LOS_SCALE/SCREEN_SCALE,0,
+	       x2*LOS_SCALE/SCREEN_SCALE,y2*LOS_SCALE/SCREEN_SCALE,0,&LOSPlot);
+}
+
+I64 mp_not_done_flags;
+I64 *r1,*r2,*r3,*s2w,cx,cy,xh,yh,zh,x1h,y1h;
+
+U0 MPDrawWalls(CDC *_dc)
+{
+  CD3I32 poly[4];
+  I64 i,j,n,cpu_num=Gs->num,xx,yy,x,y,x1,y1,z1,x2,y2,_x1h,_y1h,dx,dy,xx1,yy1,xx2,yy2,
+	c,x1w,y1w,*_r3=MAllocIdentical(r3);
+  Wall *tempw;
+  CDC *dc=MAllocIdentical(_dc);
+  dc->r=MAllocIdentical(_dc->r);
+  _x1h=x1h-xh*cpu_num;
+  _y1h=y1h-yh*cpu_num;
+  for (j=cpu_num;jcolor=BROWN;
+	  else
+	    dc->color=c;
+	  poly[0].x=x;
+	  poly[0].y=y;
+	  poly[0].z=0;
+	  poly[1].x=x+SCREEN_SCALE;
+	  poly[1].y=y;
+	  poly[1].z=0;
+	  poly[2].x=x+SCREEN_SCALE;
+	  poly[2].y=y+SCREEN_SCALE;
+	  poly[2].z=0;
+	  poly[3].x=x;
+	  poly[3].y=y+SCREEN_SCALE;
+	  poly[3].z=0;
+	  GrFillPoly3(dc,4,poly);
+	  if (!((yy*blueprint_width+xx)%3)) {
+	    if (c==GREEN) {
+	      x1=x+SCREEN_SCALE/2;
+	      y1=y+SCREEN_SCALE/2;
+	      z1=0;
+	      GrTransform(dc,&x1,&y1,&z1);
+	      if (z1>0)
+		SpritePlotRotMat3B(dc,x+SCREEN_SCALE/2,y+SCREEN_SCALE/2,0,$IB,"<4>",4$,_r3);
+	    } else if (c==BROWN) {
+	      x1=x+SCREEN_SCALE/2;
+	      y1=y+SCREEN_SCALE/2;
+	      z1=0;
+	      GrTransform(dc,&x1,&y1,&z1);
+	      if (z1>0)
+		SpritePlotRotMat3B(dc,x+SCREEN_SCALE/2,y+SCREEN_SCALE/2,0,$IB,"<5>",5$,_r3);
+	    }
+	  }
+	}
+      }
+      x1w-=yh;
+      y1w+=xh;
+    }
+    _x1h-=xh*mp_cnt;
+    _y1h-=yh*mp_cnt;
+  }
+
+  tempw=walls_root.next;
+  while (tempw!=&walls_root) {
+    if (tempw->cpu_num==cpu_num) {
+      dc->color=YELLOW;
+      x1=tempw->p1.x*SCREEN_SCALE/BLUEPRINT_SCALE-man_xx;
+      y1=tempw->p1.y*SCREEN_SCALE/BLUEPRINT_SCALE-man_yy;
+      x2=tempw->p2.x*SCREEN_SCALE/BLUEPRINT_SCALE-man_xx;
+      y2=tempw->p2.y*SCREEN_SCALE/BLUEPRINT_SCALE-man_yy;
+
+      //The foreshortening distorts Z coordinates in a funny way,
+      //so we do the wall in tiny pieces.
+      n=2*(AbsI64(x2-x1)+AbsI64(y2-y1))/SCREEN_SCALE;
+      if (n<1) n=1;
+      dx=(x2-x1)<<16/n;
+      dy=(y2-y1)<<16/n;
+      xx1=x1<<16;
+      yy1=y1<<16;
+      for (i=0;i>16;
+	poly[0].y=yy1>>16;
+	poly[0].z=0;
+	poly[1].x=xx2>>16;
+	poly[1].y=yy2>>16;
+	poly[1].z=0;
+	poly[2].x=xx2>>16;
+	poly[2].y=yy2>>16;
+	poly[2].z=WALL_HEIGHT*SCREEN_SCALE;
+	poly[3].x=xx1>>16;
+	poly[3].y=yy1>>16;
+	poly[3].z=WALL_HEIGHT*SCREEN_SCALE;
+	GrFillPoly3(dc,4,poly);
+	xx1=xx2; yy1=yy2;
+      }
+      dc->color=BLACK;
+      dc->pen_width=1;
+      GrLine3(dc,x1,y1,0,x1,y1,WALL_HEIGHT*SCREEN_SCALE);
+      GrLine3(dc,x2,y2,0,x2,y2,WALL_HEIGHT*SCREEN_SCALE);
+    }
+    tempw=tempw->next;
+  }
+  Free(_r3);
+  Free(dc->r);
+  Free(dc);
+  LBtr(&mp_not_done_flags,cpu_num);
+}
+
+U0 DrawIt(CTask *task,CDC *dc)
+{
+  I64 i,j,xx,yy,zz,x,y;
+  U8 *temps;
+  F64 tt;
+
+  cx=task->win_pixel_width/2;
+  cy=task->win_pixel_height/2;
+
+  DCAllocDepthBuf(dc);
+  MemSet(panels_processed,0,(blueprint_width*blueprint_height+7)>>3);
+
+  //World to screen
+  GrRotZEqu(dc->r,man_é+ã/2);
+  GrRotXEqu(dc->r,ã/2);
+  GrSetRotMat(dc,dc->r);
+
+  xh=-man_xx/SCREEN_SCALE; yh=-man_yy/SCREEN_SCALE; zh=0;
+  GrRot(dc->r,&xh,&yh,&zh);
+  GrSetTranslation(dc->r,xh,yh,zh);
+
+  //Screen to world
+  s2w=GrRotX(-ã/2,task);
+  GrRotZEqu(s2w,-man_é-ã/2);
+  xh=0; yh=0; zh=SCREEN_SCALE;
+  GrRot(s2w,&xh,&yh,&zh);
+
+  //Rotate light source
+  xx=dc->ls.x; yy=dc->ls.y; zz=-dc->ls.z;
+  (*dc->transform)(dc,&xx,&yy,&zz);
+  dc->ls.x=xx; dc->ls.y=yy; dc->ls.z=zz;
+
+  dc->flags|=DCF_TRANSFORMATION;
+  dc->transform=&DSTransform;
+  dc->lighting=&DSLighting;
+  dc->x=cx;
+  dc->y=cy;
+  r1=GrRotX(-ã/2,task);
+  GrRotZEqu(r1,tT);
+  GrScaleMatEqu(r1,PERSON_SCALE);
+
+  r2=GrIdent(task);
+  GrScaleMatEqu(r2,PERSON_SCALE);
+
+  r3=GrRotX(-ã/2,task);
+  GrScaleMatEqu(r3,PLANT_SCALE);
+
+  x1h=man_xx+yh*PLOT_GRID_WIDTH/2+xh*(PLOT_GRID_HEIGHT-1);
+  y1h=man_yy-xh*PLOT_GRID_WIDTH/2+yh*(PLOT_GRID_HEIGHT-1);
+  xh>>=1; yh>>=1;
+
+  mp_not_done_flags=1<0) {
+	tt=2*Tri(tT,1.0);
+	if (tt<1.0)
+	  temps=SpriteInterpolate($IB,"<2>",2$,$IB,"<1>",1$,tt);
+	else
+	  temps=SpriteInterpolate($IB,"<1>",1$,$IB,"<3>",3$,tt-1.0);
+	SpritePlotRotMat3B(dc,x,y,0,temps,r1);
+	Free(temps);
+      }
+    }
+  }
+  Free(r1);
+  Free(r2);
+  Free(r3);
+
+  //Draw BluePrint heads-up display, scaled 2 pixels
+  Free(dc->r);
+  GrSetRotMat(dc,GrIdent(task));
+  dc->x=task->win_pixel_width -2*blueprint_width;
+  dc->y=task->win_pixel_height-2*blueprint_height;
+  dc->z=0;
+  dc->transform=&GrTransform;
+  dc->pen_width=2;
+  for (i=0;icolor=blueprint[(blueprint_height-1-i)*blueprint_width+j];
+      GrPlot3(dc,2*j,2*i,0);
+    }
+
+    //Draw Things on heads-up BluePrint
+  dc->color=LTPURPLE;
+  for (i=0;icolor=LTCYAN;
+  GrPlot3(dc,2*(man_xx/SCREEN_SCALE),2*(blueprint_height-1-man_yy/SCREEN_SCALE),0);
+
+  dc->color=LTGREEN;
+  GrLine(dc,cx-5,cy,cx+5,cy);
+  GrLine(dc,cx,cy-5,cx,cy+5);
+  Free(s2w);
+}
+
+U0 BluePrintDrawIt(CTask *task,CDC *dc)
+{
+  task->text_attr=BLUE<<4+WHITE;
+  GrBlot(dc,(task->win_pixel_width-blueprint_dc->width)>>1,
+	    (task->win_pixel_height-blueprint_dc->height)>>1,blueprint_dc);
+}
+
+#define MAN_START_X	0
+#define MAN_START_Y	1
+
+U0 MakeBluePrint()
+{
+  I64 msg_code,i,x1,y1,x2,y2,p1,p2,color=WHITE,cpu_num=0;
+  Wall *tempw;
+
+  DCFill(blueprint_dc,LTBLUE);
+
+  SettingsPush; //See $LK,"SettingsPush","MN:SettingsPush"$
+  Fs->win_inhibit=WIF_ALL-WIF_BORDER;
+  DocClear;
+
+"Draw Floor Plan:
+
+Walls  in WHITE
+Tables in BROWN
+Plants in GREEN
+";
+
+  WinMax;
+  WordStat;
+  Fs->draw_it=&BluePrintDrawIt;
+
+  do {
+    msg_code=GetMsg(&p1,&p2,
+	  1<=0) color=i;
+	break;
+      case MSG_IP_L_DOWN:
+	if (color==WHITE) {
+	  p1-=(Fs->win_pixel_width-blueprint_dc->width)>>1;
+	  p2-=(Fs->win_pixel_height-blueprint_dc->height)>>1;
+	  x1=p1; y1=p2;
+	  x2=p1; y2=p2;
+	  blueprint_dc->color=ROP_XOR+color^LTBLUE;
+	  while (msg_code!=MSG_IP_L_UP) {
+	    GrLine(blueprint_dc,x1,y1,x2,y2);
+	    msg_code=GetMsg(&p1,&p2,
+		  1<win_pixel_width-blueprint_dc->width)>>1;
+	    p2-=(Fs->win_pixel_height-blueprint_dc->height)>>1;
+	    GrLine(blueprint_dc,x1,y1,x2,y2);
+	    x2=p1; y2=p2;
+	  }
+	  blueprint_dc->color=color;
+	  GrLine(blueprint_dc,x1,y1,x2,y2);
+
+	  tempw=CAlloc(sizeof(Wall));
+	  tempw->p1.x=x1;
+	  tempw->p1.y=blueprint_dc->height-y1;
+	  tempw->p2.x=x2;
+	  tempw->p2.y=blueprint_dc->height-y2;
+	  tempw->cpu_num=cpu_num++%mp_cnt;
+	  QueIns(tempw,walls_root.last);
+	} else {
+	  p1-=(Fs->win_pixel_width-blueprint_dc->width)>>1;
+	  p2-=(Fs->win_pixel_height-blueprint_dc->height)>>1;
+	  x1=p1; y1=p2;
+	  x2=p1; y2=p2;
+	  blueprint_dc->color=ROP_XOR+color^LTBLUE;
+	  while (msg_code!=MSG_IP_L_UP) {
+	    GrRectB(blueprint_dc,x1,y1,x2,y2);
+	    msg_code=GetMsg(&p1,&p2,
+		  1<win_pixel_width-blueprint_dc->width)>>1;
+	    p2-=(Fs->win_pixel_height-blueprint_dc->height)>>1;
+	    GrRectB(blueprint_dc,x1,y1,x2,y2);
+	    x2=p1; y2=p2;
+	  }
+	  blueprint_dc->color=color;
+	  GrRectB(blueprint_dc,x1,y1,x2,y2);
+	}
+	break;
+      case MSG_KEY_DOWN:
+	break;
+    }
+  } while (msg_code!=MSG_KEY_DOWN || !p1);
+  GetMsg(,,1<width/BLUEPRINT_SCALE;
+  blueprint_height=blueprint_dc->height/BLUEPRINT_SCALE;
+  Free(blueprint);
+  Free(panels_processed);
+  blueprint=MAlloc(blueprint_width*blueprint_height*sizeof(U8));
+  MemSet(blueprint,WHITE,blueprint_width*blueprint_height);
+  panels_processed=MAlloc((blueprint_width*blueprint_height+7)>>3);
+
+  for (y=1;ySCREEN_SCALE/2 ||
+	      blueprint[(y/SCREEN_SCALE)*blueprint_width+x/SCREEN_SCALE-1]==WHITE &&
+	      x-RoundI64(x,SCREEN_SCALE)SCREEN_SCALE/2 ||
+	      blueprint[(y/SCREEN_SCALE-1)*blueprint_width+x/SCREEN_SCALE]==WHITE &&
+	      y-RoundI64(y,SCREEN_SCALE)task_end_cb=&SndTaskEndCB;
+  MusicSettingsRst;
+  while (TRUE) {
+	Play("2q.A#1eG2AeA#qAq.A#1eG2eAeA#qA");
+	Play("q.A#1eG2A#A1qG2q.A#1eG2A#A1qG");
+	Play("3eA#A2qG3eA#A2qG3eA#A2G3AA#A2qG");
+  }
+}
+
+U0 MoveMan(F64 é)
+{
+  I64 x,y,color,step=SCREEN_SCALE/2;
+  do {
+    x=man_xx+step*Cos(é);
+    y=man_yy-step*Sin(é);
+    x=Limit(x,0,blueprint_width*SCREEN_SCALE);
+    y=Limit(y,0,blueprint_height*SCREEN_SCALE);
+    color=blueprint[y/SCREEN_SCALE*blueprint_width+x/SCREEN_SCALE];
+    if (color==LTBLUE || color==GREEN) {
+      man_xx=x;
+      man_yy=y;
+      break;
+    } else
+      step>>=1;
+  } while (step);
+}
+
+#define MICRO_STEPS	4
+U0 RotateMan(F64 d)
+{
+  I64 i;
+  for (i=0;itext_attr=BROWN<<4+WHITE;
+  Preempt(OFF);
+  WinBorder;
+  WinMax;
+  WordStat;
+  Init;
+  Fs->animate_task=Spawn(&AnimateTask,NULL,"Animate",,Fs);
+  Fs->song_task=Spawn(&SongTask,NULL,"Song",,Fs);
+  DocCursor;
+  Fs->draw_it=&DrawIt;
+
+  try {
+    while (TRUE) {
+      switch (GetKey(&sc)) {
+	case CH_ESC:
+	case CH_SHIFT_ESC:
+	  goto fs_done;
+	case 0:
+	  switch (sc.u8[0]) {
+	    case SC_CURSOR_RIGHT:
+	      Spawn(&RotateMan,(ã/32)(I64));
+	      break;
+	    case SC_CURSOR_LEFT:
+	      Spawn(&RotateMan,(-ã/32)(I64));
+	      break;
+	    case SC_CURSOR_UP:
+	      MoveMan(man_é);
+	      break;
+	    case SC_CURSOR_DOWN:
+	      MoveMan(man_é+ã);
+	      break;
+	  }
+	  break;
+      }
+    }
+fs_done:
+  } catch
+    CatchAll;
+  DocClear;
+  SettingsPop;
+  CleanUp;
+  MenuPop;
+  AcctRegWriteBranch("TempleOS/DiningStars","F64 best_score=%5.4f;\n",best_score);
+}
+
+DiningStars;
+,ÎÿÿÿÎÿÿÿûÿÿÿçÿÿÿûÿÿÿçÿÿÿµÿÿÿ�ÿÿÿƒÿÿÿ�ÿÿÿâÿÿÿµÿÿÿâÿÿÿûÿÿÿÎÿÿÿûÿÿÿÎÿÿÿûÿÿÿûÿÿÿçÿÿÿûÿÿÿûÿÿÿçÿÿÿûÿÿÿµÿÿÿûÿÿÿ�ÿÿÿûÿÿÿ�ÿÿÿâÿÿÿûÿÿÿµÿÿÿâÿÿÿ�ÿÿÿµÿÿÿâÿÿÿµÿÿÿâÿÿÿ�ÿÿÿ�ÿÿÿûÿÿÿµÿÿÿûÿÿÿâÿÿÿµÿÿÿûÿÿÿâÿÿÿ�ÿÿÿûÿÿÿ	
+	
+
+		

	
		
+	
+
+	

+
÷ÿÿÿ÷ÿÿÿñÿÿÿ÷ÿÿÿ	ôÿÿÿ	÷ÿÿÿ		øÿÿÿçÿÿÿìÿÿÿçÿÿÿìÿÿÿçÿÿÿøÿÿÿøÿÿÿçÿÿÿðÿÿÿçÿÿÿðÿÿÿçÿÿÿøÿÿÿçÿÿÿçÿÿÿ			
	
		
+			
+
+
+



+$EºÿÿÿÝÿÿÿÈÿÿÿÝÿÿÿÈÿÿÿëÿÿÿºÿÿÿëÿÿÿºÿÿÿÏÿÿÿÝÿÿÿÈÿÿÿÏÿÿÿÝÿÿÿÈÿÿÿÏÿÿÿëÿÿÿºÿÿÿÏÿÿÿëÿÿÿ7ÝÿÿÿEÝÿÿÿEëÿÿÿ7ëÿÿÿ7ÏÿÿÿÝÿÿÿEÏÿÿÿÝÿÿÿEÏÿÿÿëÿÿÿ7Ïÿÿÿëÿÿÿ7EE"7"7ÏÿÿÿEÏÿÿÿEÏÿÿÿ"7Ïÿÿÿ"ºÿÿÿÈÿÿÿÈÿÿÿ"ºÿÿÿ"ºÿÿÿÏÿÿÿÈÿÿÿÏÿÿÿÈÿÿÿÏÿÿÿ"ºÿÿÿÏÿÿÿ"ºÿÿÿÈÿÿÿÝÿÿÿEÈÿÿÿÝÿÿÿEÈÿÿÿ"ºÿÿÿÈÿÿÿ"
+	
+

+
+
	

+
	
+
+
      
 
#"!#! #  ##"#
!! "!

""
Êp¨­ÿÿÿûÿÿÿûÿÿÿ­ÿÿÿûÿÿÿ·ÿÿÿûÿÿÿûÿÿÿ·ÿÿÿûÿÿÿ­ÿÿÿûÿÿÿ­ÿÿÿ·ÿÿÿûÿÿÿ·ÿÿÿ
+·ÿÿÿûÿÿÿöÿÿÿ·ÿÿÿûÿÿÿ
+ÚÿÿÿûÿÿÿöÿÿÿÚÿÿÿûÿÿÿ
+·ÿÿÿöÿÿÿ·ÿÿÿ
+ÚÿÿÿöÿÿÿÚÿÿÿºÿÿÿüÿÿÿ¼ÿÿÿþÿÿÿÉÿÿÿËÿÿÿ¶ÿÿÿ¸ÿÿÿÅÿÿÿ	ÇÿÿÿÊÿÿÿÌÿÿÿÒÿÿÿÔÿÿÿÄÿÿÿÆÿÿÿ
+ÌÿÿÿÎÿÿÿÑÿÿÿÓÿÿÿÕÿÿÿ×ÿÿÿÍÿÿÿÏÿÿÿÑÿÿÿÓÿÿÿöÿÿÿ¸ÿÿÿÿÿÿÿòÿÿÿ¸ÿÿÿóÿÿÿÇÿÿÿöÿÿÿïÿÿÿÇÿÿÿøÿÿÿöÿÿÿºÿÿÿòÿÿÿºÿÿÿóÿÿÿÉÿÿÿúÿÿÿïÿÿÿÉÿÿÿüÿÿÿóÿÿÿÇÿÿÿöÿÿÿïÿÿÿÇÿÿÿøÿÿÿñÿÿÿÔÿÿÿïÿÿÿíÿÿÿÔÿÿÿñÿÿÿóÿÿÿÉÿÿÿúÿÿÿïÿÿÿÉÿÿÿüÿÿÿñÿÿÿÖÿÿÿóÿÿÿíÿÿÿÖÿÿÿõÿÿÿñÿÿÿÔÿÿÿðÿÿÿíÿÿÿÔÿÿÿòÿÿÿðÿÿÿÛÿÿÿíÿÿÿìÿÿÿÛÿÿÿïÿÿÿñÿÿÿÖÿÿÿòÿÿÿíÿÿÿÖÿÿÿôÿÿÿðÿÿÿÝÿÿÿïÿÿÿìÿÿÿÝÿÿÿñÿÿÿ	ØÿÿÿýÿÿÿØÿÿÿÿÿÿÿäÿÿÿòÿÿÿäÿÿÿôÿÿÿ	ÜÿÿÿÜÿÿÿèÿÿÿöÿÿÿèÿÿÿøÿÿÿäÿÿÿòÿÿÿäÿÿÿôÿÿÿðÿÿÿçÿÿÿðÿÿÿéÿÿÿèÿÿÿöÿÿÿèÿÿÿøÿÿÿôÿÿÿëÿÿÿôÿÿÿíÿÿÿõÿÿÿãÿÿÿõÿÿÿãÿÿÿîÿÿÿÿÿÿÿîÿÿÿïÿÿÿçÿÿÿïÿÿÿçÿÿÿúÿÿÿòÿÿÿÿÿÿÿúÿÿÿòÿÿÿýÿÿÿÜÿÿÿýÿÿÿ÷ÿÿÿÞÿÿÿÿÿÿÿÿÿÿÿèÿÿÿ	ùÿÿÿêÿÿÿýÿÿÿÖÿÿÿ÷ÿÿÿØÿÿÿÿÿÿÿâÿÿÿ
ùÿÿÿäÿÿÿÿÿÿÿçÿÿÿùÿÿÿéÿÿÿ
+÷ÿÿÿ
ûÿÿÿùÿÿÿÿÿÿÿãÿÿÿùÿÿÿåÿÿÿóÿÿÿûÿÿÿõÿÿÿýÿÿÿûÿÿÿýÿÿÿøÿÿÿýÿÿÿøÿÿÿ ÷ÿÿÿûÿÿÿ÷ÿÿÿòÿÿÿýÿÿÿòÿÿÿ	
+
+	

	
	
+
+
+	

   ! ""#!%$&&'%! $$%!#"&&'#" $$&"#!%%'#)(**+)-,../-)(,,-)+*../+*(,,.*+)--/+10223154667510445132667320446231557398::;9=<>>?=98<<=9;:>>?;:8<<>:;9==?;A@BBCAEDFFGEA@DDEACBFFGCB@DDFBCAEEGCIHJJKIMLNNOMIHLLMIKJNNOKJHLLNJKIMMOKQPRRSQUTVVWUQPTTUQSRVVWSRPTTVRSQUUWSYXZZ[Y]\^^_]YX\\]Y[Z^^_[ZX\\^Z[Y]]_[a`bbcaedffgea`ddeacbffgcb`ddfbcaeegcihjjkimlnnomihllmikjnnokjhllnjkimmokÊp¨­ÿÿÿûÿÿÿûÿÿÿ­ÿÿÿûÿÿÿ·ÿÿÿûÿÿÿûÿÿÿ·ÿÿÿûÿÿÿ­ÿÿÿûÿÿÿ­ÿÿÿ·ÿÿÿûÿÿÿ·ÿÿÿ
+·ÿÿÿûÿÿÿöÿÿÿ·ÿÿÿûÿÿÿ
+ÚÿÿÿûÿÿÿöÿÿÿÚÿÿÿûÿÿÿ
+·ÿÿÿöÿÿÿ·ÿÿÿ
+ÚÿÿÿöÿÿÿÚÿÿÿ·ÿÿÿ¹ÿÿÿÆÿÿÿ÷ÿÿÿÈÿÿÿ÷ÿÿÿ¹ÿÿÿ»ÿÿÿÈÿÿÿûÿÿÿÊÿÿÿûÿÿÿÆÿÿÿ÷ÿÿÿÈÿÿÿ÷ÿÿÿÓÿÿÿðÿÿÿÕÿÿÿðÿÿÿÈÿÿÿûÿÿÿÊÿÿÿûÿÿÿÕÿÿÿôÿÿÿ×ÿÿÿôÿÿÿÓÿÿÿñÿÿÿÕÿÿÿñÿÿÿÚÿÿÿîÿÿÿÜÿÿÿîÿÿÿÕÿÿÿóÿÿÿ×ÿÿÿóÿÿÿÜÿÿÿðÿÿÿÞÿÿÿðÿÿÿöÿÿÿ»ÿÿÿýÿÿÿòÿÿÿ»ÿÿÿýÿÿÿóÿÿÿÊÿÿÿïÿÿÿÊÿÿÿöÿÿÿ·ÿÿÿòÿÿÿ·ÿÿÿóÿÿÿÆÿÿÿ
+ïÿÿÿÆÿÿÿ
+óÿÿÿËÿÿÿïÿÿÿËÿÿÿñÿÿÿÓÿÿÿíÿÿÿÓÿÿÿóÿÿÿÅÿÿÿ	ïÿÿÿÅÿÿÿ	ñÿÿÿÍÿÿÿíÿÿÿÍÿÿÿñÿÿÿÒÿÿÿíÿÿÿÒÿÿÿðÿÿÿÖÿÿÿìÿÿÿÖÿÿÿñÿÿÿÎÿÿÿíÿÿÿÎÿÿÿðÿÿÿÒÿÿÿìÿÿÿÒÿÿÿ	ÝÿÿÿþÿÿÿÝÿÿÿþÿÿÿéÿÿÿ
+éÿÿÿ
+	×ÿÿÿ×ÿÿÿãÿÿÿãÿÿÿèÿÿÿ	èÿÿÿ	øÿÿÿøÿÿÿäÿÿÿäÿÿÿôÿÿÿôÿÿÿüÿÿÿþÿÿÿ÷ÿÿÿÿÿÿÿùÿÿÿöÿÿÿ
øÿÿÿ
ñÿÿÿÿÿÿÿóÿÿÿýÿÿÿ×ÿÿÿþÿÿÿ÷ÿÿÿÙÿÿÿþÿÿÿÿÿÿÿãÿÿÿóÿÿÿùÿÿÿåÿÿÿóÿÿÿýÿÿÿÛÿÿÿ÷ÿÿÿÝÿÿÿÿÿÿÿçÿÿÿ÷ÿÿÿùÿÿÿéÿÿÿ÷ÿÿÿÿÿÿÿãÿÿÿóÿÿÿùÿÿÿåÿÿÿóÿÿÿïÿÿÿèÿÿÿûÿÿÿñÿÿÿèÿÿÿÿÿÿÿçÿÿÿ÷ÿÿÿùÿÿÿéÿÿÿ÷ÿÿÿóÿÿÿìÿÿÿûÿÿÿõÿÿÿìÿÿÿôÿÿÿâÿÿÿûÿÿÿöÿÿÿäÿÿÿÿÿÿÿíÿÿÿýÿÿÿïÿÿÿîÿÿÿæÿÿÿûÿÿÿðÿÿÿèÿÿÿùÿÿÿñÿÿÿýÿÿÿûÿÿÿóÿÿÿ	
+
+	

	
	
+
+
+	

   ! ""#!%$&&'%! $$%!#"&&'#" $$&"#!%%'#)(**+)-,../-)(,,-)+*../+*(,,.*+)--/+10223154667510445132667320446231557398::;9=<>>?=98<<=9;:>>?;:8<<>:;9==?;A@BBCAEDFFGEA@DDEACBFFGCB@DDFBCAEEGCIHJJKIMLNNOMIHLLMIKJNNOKJHLLNJKIMMOKQPRRSQUTVVWUQPTTUQSRVVWSRPTTVRSQUUWSYXZZ[Y]\^^_]YX\\]Y[Z^^_[ZX\\^Z[Y]]_[a`bbcaedffgea`ddeacbffgcb`ddfbcaeegcihjjkimlnnomihllmikjnnokjhllnjkimmokÊp¨­ÿÿÿûÿÿÿûÿÿÿ­ÿÿÿûÿÿÿ·ÿÿÿûÿÿÿûÿÿÿ·ÿÿÿûÿÿÿ­ÿÿÿûÿÿÿ­ÿÿÿ·ÿÿÿûÿÿÿ·ÿÿÿ
+·ÿÿÿûÿÿÿöÿÿÿ·ÿÿÿûÿÿÿ
+ÚÿÿÿûÿÿÿöÿÿÿÚÿÿÿûÿÿÿ
+·ÿÿÿöÿÿÿ·ÿÿÿ
+ÚÿÿÿöÿÿÿÚÿÿÿ¸ÿÿÿýÿÿÿºÿÿÿýÿÿÿÉÿÿÿýÿÿÿËÿÿÿýÿÿÿ¸ÿÿÿºÿÿÿÉÿÿÿËÿÿÿÉÿÿÿýÿÿÿËÿÿÿýÿÿÿØÿÿÿýÿÿÿÚÿÿÿýÿÿÿÉÿÿÿËÿÿÿØÿÿÿÚÿÿÿØÿÿÿþÿÿÿÚÿÿÿþÿÿÿàÿÿÿþÿÿÿâÿÿÿþÿÿÿØÿÿÿÚÿÿÿàÿÿÿâÿÿÿöÿÿÿ¹ÿÿÿýÿÿÿòÿÿÿ¹ÿÿÿýÿÿÿóÿÿÿÊÿÿÿýÿÿÿïÿÿÿÊÿÿÿýÿÿÿöÿÿÿ¹ÿÿÿòÿÿÿ¹ÿÿÿóÿÿÿÊÿÿÿïÿÿÿÊÿÿÿóÿÿÿÊÿÿÿýÿÿÿïÿÿÿÊÿÿÿýÿÿÿñÿÿÿÙÿÿÿýÿÿÿíÿÿÿÙÿÿÿýÿÿÿóÿÿÿÊÿÿÿïÿÿÿÊÿÿÿñÿÿÿÙÿÿÿíÿÿÿÙÿÿÿñÿÿÿÙÿÿÿþÿÿÿíÿÿÿÙÿÿÿþÿÿÿðÿÿÿáÿÿÿþÿÿÿìÿÿÿáÿÿÿþÿÿÿñÿÿÿÙÿÿÿíÿÿÿÙÿÿÿðÿÿÿáÿÿÿìÿÿÿáÿÿÿ
+ÚÿÿÿüÿÿÿÚÿÿÿüÿÿÿ
+êÿÿÿüÿÿÿêÿÿÿüÿÿÿ
+ÚÿÿÿÚÿÿÿ
+êÿÿÿêÿÿÿ
+êÿÿÿüÿÿÿêÿÿÿüÿÿÿ
+úÿÿÿüÿÿÿúÿÿÿüÿÿÿ
+êÿÿÿêÿÿÿ
+úÿÿÿúÿÿÿ
+üÿÿÿüÿÿÿ
+
+úÿÿÿüÿÿÿúÿÿÿüÿÿÿ
+úÿÿÿúÿÿÿþÿÿÿÚÿÿÿüÿÿÿöÿÿÿÚÿÿÿüÿÿÿþÿÿÿêÿÿÿüÿÿÿöÿÿÿêÿÿÿüÿÿÿþÿÿÿÚÿÿÿöÿÿÿÚÿÿÿþÿÿÿêÿÿÿöÿÿÿêÿÿÿþÿÿÿêÿÿÿüÿÿÿöÿÿÿêÿÿÿüÿÿÿþÿÿÿúÿÿÿüÿÿÿöÿÿÿúÿÿÿüÿÿÿþÿÿÿêÿÿÿöÿÿÿêÿÿÿþÿÿÿúÿÿÿöÿÿÿúÿÿÿþÿÿÿüÿÿÿöÿÿÿüÿÿÿþÿÿÿöÿÿÿþÿÿÿúÿÿÿüÿÿÿöÿÿÿúÿÿÿüÿÿÿþÿÿÿúÿÿÿöÿÿÿúÿÿÿ	
+
+	

	
	
+
+
+	

   ! ""#!%$&&'%! $$%!#"&&'#" $$&"#!%%'#)(**+)-,../-)(,,-)+*../+*(,,.*+)--/+10223154667510445132667320446231557398::;9=<>>?=98<<=9;:>>?;:8<<>:;9==?;A@BBCAEDFFGEA@DDEACBFFGCB@DDFBCAEEGCIHJJKIMLNNOMIHLLMIKJNNOKJHLLNJKIMMOKQPRRSQUTVVWUQPTTUQSRVVWSRPTTVRSQUUWSYXZZ[Y]\^^_]YX\\]Y[Z^^_[ZX\\^Z[Y]]_[a`bbcaedffgea`ddeacbffgcb`ddfbcaeegcihjjkimlnnomihllmikjnnokjhllnjkimmok
\ No newline at end of file
diff --git a/TempleOS/Demo/AcctExample/TAD/PersonalNotes.TXT b/TempleOS/Demo/AcctExample/TAD/PersonalNotes.TXT
index d3cfaa7..c1414d0 100644
--- a/TempleOS/Demo/AcctExample/TAD/PersonalNotes.TXT
+++ b/TempleOS/Demo/AcctExample/TAD/PersonalNotes.TXT
@@ -1,4 +1,45 @@
-* fix result on Blot ect
+* PSect search all tables if not found very well.
+* Bug: HI:Math/CD3
+
+* asm LIST NOLIST bug
+* Bible ranges. 
+* Current Bible position to link on clipboard.
+* Might have bug. CTRL-F Fwd gets cleared, maybe.
+* hang black text layer bug is back
+* No way to clear +Hold entries
+
+-----------DiningStars---------------
+Song
+Better name than DiningStars
+Better tables, orient, chairs
+Get approval from building inspector
+Health inspector visits
+Hire chefs, cooks, maŒtre'd and waitresses
+Busy aisles, got your back
+Pipes
+Walls with windows and mirrors
+$$ per square foot, how about picking from randomly generated leased spaces 
+Plot customers per hour
+Reservations bot
+Menu
+Candles
+Advertizing
+-------------------------------------
+
+* We don't know why tS caused crash, perhaps, semaphores are broken.
+  (Hangs on 2nd ScreenUpdate, black almost. Perhaps bug from with $LK,"gr_pan_text_x","MN:gr_pan_text_x"$.)
+  Fixed with HPET in tS.
+
+* Maybe dither_probability is bad.
+
+* FAQ frontloaded
+
+COMPILER
+  * Postpone LocalVar Init until last possible moment. (in case RETURN)
+  * PtrArith MUL SIZE -->QueIns(MUL)? 
+  * QueRem(IC_NOP)?
+
+* Fix return result for GrBlot, ect.
 
 * Tour TestSuite on 256Meg NoMP runs out of mem. Leak,too?
 
@@ -35,12 +76,13 @@ $LK-A,"::/TempleOS/Demo/Lectures/FixedPointAdvanced.CPP"$.
 
 * It would be nice if $LK,"U","MN:U"$() NOP were better.
 
-* Make RedSea file system expanded size set in Copy.
-
 * unhandled exception on MP message gets overwritten by WinMgr
 
 * Cmd to enable/disable compiler warnings
 
+* What if we had a type for either F64 or I64, like Print -- no conversion.
+* What if we had a ... that did do conversion, if we have one that doesn't.
+
 * fix documentation problem -- remembering 0 terminator in str or not for $$DA
 * GetS, crazy putkey code
 * editor page formatting is FUBAR
@@ -117,6 +159,7 @@ $HC,"type==BDT_ATAPI) {
 	  ATARep(FALSE,,&root);
 	  ATAIDDrvs(root,*sys_acct,&ata_drv,&atapi_drv);
 	  if (ata_drv)
-	    DefinePrintF("CFG_HARD_DRVS","\"d2p%d\n\"",ata_drv->num);
+	    DefinePrint("CFG_HARD_DRVS","\"d2p%d\n\"",ata_drv->num);
 	  if (atapi_drv)
-	    DefinePrintF("CFG_CDROM_DRVS","\"t3p%d\n\"",atapi_drv->num);
+	    DefinePrint("CFG_CDROM_DRVS","\"t3p%d\n\"",atapi_drv->num);
 	} else {
 	  try {
 	    bdev=Drv2BlkDev('D');
-	    DefinePrintF("CFG_HARD_DRVS","\"d2s0x%X\n0x%X\n%d\"",
+	    DefinePrint("CFG_HARD_DRVS","\"d2s0x%X\n0x%X\n%d\"",
 	      bdev->base0,bdev->base1,bdev->unit);
 	  } catch
 	    Fs->catch_except=TRUE;
 	  try {
 	    bdev=Drv2BlkDev('T');
-	    DefinePrintF("CFG_CDROM_DRVS","\"t3s0x%X\n%d\"",bdev->base0,bdev->unit);
+	    DefinePrint("CFG_CDROM_DRVS","\"t3s0x%X\n%d\"",bdev->base0,bdev->unit);
 	  } catch
 	    Fs->catch_except=TRUE;
 	}
       }
-      DefinePrintF("CFG_DSK_CACHE","\"Scale2Mem(0x80000,0x8000000)\n\"");
-      DefinePrintF("TS_HDS","\"DE\"");
-      DefinePrintF("TS_MASTER_BOOT_DRVS","\"D\"");
-      DefinePrintF("TS_MAIN_DRV","\"D\"");
-      DefinePrintF("TS_BAK_DRV","\"E\"");
-      DefinePrintF("TS_RAM_DRV","\"B\"");
-      DefinePrintF("TS_WIN_DRV","\"\"");
-      DefinePrintF("TS_CDROM_DRV","\"T\"");
+      DefinePrint("CFG_DSK_CACHE","\"Scale2Mem(0x80000,0x8000000)\n\"");
+      DefinePrint("TS_HDS","\"DE\"");
+      DefinePrint("TS_MASTER_BOOT_DRVS","\"D\"");
+      DefinePrint("TS_MAIN_DRV","\"D\"");
+      DefinePrint("TS_BAK_DRV","\"E\"");
+      DefinePrint("TS_RAM_DRV","\"B\"");
+      DefinePrint("TS_WIN_DRV","\"\"");
+      DefinePrint("TS_CDROM_DRV","\"T\"");
   }
 } TSInit;
 
 U0 TSInit2()
 {
-  DefinePrintF("TS_MAIN_DRV_LET","'%s'",TS_MAIN_DRV);
-  DefinePrintF("TS_BAK_DRV_LET","'%s'",TS_BAK_DRV);
-  DefinePrintF("TS_RAM_DRV_LET","'%s'",TS_RAM_DRV);
-  DefinePrintF("TS_WIN_DRV_LET","'%s'",TS_WIN_DRV);
-  DefinePrintF("TS_CDROM_DRV_LET","'%s'",TS_CDROM_DRV);
+  DefinePrint("TS_MAIN_DRV_LET","'%s'",TS_MAIN_DRV);
+  DefinePrint("TS_BAK_DRV_LET","'%s'",TS_BAK_DRV);
+  DefinePrint("TS_RAM_DRV_LET","'%s'",TS_RAM_DRV);
+  DefinePrint("TS_WIN_DRV_LET","'%s'",TS_WIN_DRV);
+  DefinePrint("TS_CDROM_DRV_LET","'%s'",TS_CDROM_DRV);
 
 } TSInit2;
 
@@ -217,14 +217,14 @@ Bool frame_grabber_on=FALSE;
 public U0 MyScreenShot(I64 bits=4)
 {
   U8 *st;
-  CDirEntry *tempm;
+  CDirEntry *tempde;
   I64 cnt=0;
-  tempm=FilesFind("::/Temp/ScreenShots/*.BMP.Z");
-  while (tempm) {
+  tempde=FilesFind("::/Temp/ScreenShots/*.BMP.Z");
+  while (tempde) {
     cnt++;
-    tempm=tempm->next;
+    tempde=tempde->next;
   }
-  st=MSPrintF("::/Temp/ScreenShots/SCRN%04d.BMP.Z",cnt);
+  st=MPrint("::/Temp/ScreenShots/SCRN%04d.BMP.Z",cnt);
   BMPFileCaptureScreen(st,bits);
   Free(st);
   Beep;
@@ -254,31 +254,23 @@ Boot Windows
 
   I64 frame_num=0;
   U8  buf[136],buf2[136];
-  F64 end_time=tT,f;
+  F64 end_time=tT;
   TaskInitExt;
   Silent(ON);	//no output to screen
   MkDir("::/Temp/ScreenShots");
   while (frame_grabber_on) {
-    SPrintF(buf,"::/Temp/ScreenShots/VID%05d.BMP.Z",frame_num++);
+    SPrint(buf,"::/Temp/ScreenShots/VID%05d.BMP.Z",frame_num++);
     StrCpy(buf2,buf);
     BMPFileCaptureScreen(buf);
-
-    f=tT;
-    while (end_timetask_flags,TASKf_IDLE);
-    while (sys_cur_scan_code&SCF_NUM) {
-      Yield;
-      end_time=tT;
-    }
-    while (end_time>tT)
-      Yield;
-    LBtr(&Fs->task_flags,TASKf_IDLE);
+    SleepUntil(sys_jiffies+(end_time-tT)*JIFFY_FREQ);
   }
 }
 
@@ -295,17 +287,15 @@ U0 CopyVideo()
 public U0 FrameGrabberToggle()
 {
   static F64 last_time=0;
-  if (tT-last_time>1.0) {
+  if (tT-last_time>3.0) {
     last_time=tT;
     if (frame_grabber_on) {
-      IOSnd(ON);
       frame_grabber_on=FALSE;
       Snd(0);
       wallpaper_record_on=snd_record=FALSE;
       Sleep(1000);
       CopyVideo;
     } else {
-      IOSnd(OFF); //You don't want to hear screen capture file writes
       frame_grabber_on=TRUE;
       Spawn(&FrameGrabberTask,NULL,"Frame Grabber");
       wallpaper_record_on=snd_record=TRUE;
@@ -314,6 +304,53 @@ public U0 FrameGrabberToggle()
   }
 }
 
+U0 JukeSongsPut(U8 *dir,I64 start_song,I64 end_song)
+{
+  I64 i,j,len=4;
+  CDirEntry *tempde,*tempde1;
+  Cd(dir);
+  tempde1=FilesFind("*",FUF_RECURSE|FUF_JUST_TXT|FUF_JUST_FILES);
+
+  for (tempde=tempde1,i=0;tempde && inext;
+  for (i=start_song;tempde && iname))
+      FileExtRem(tempde->name);
+    if (j=StrLen(tempde->name)) {
+      *tempde->full_name=':';
+      *tempde->name=ToUpper(*tempde->name);
+      if (j>len) len=j;
+    }
+    tempde=tempde->next;
+  }
+
+  for (tempde=tempde1,i=0;tempde && inext;
+  if (end_song-start_song<=9)
+    j=1;
+  else if (end_song-start_song<=99)
+    j=2;
+  else
+    j=3;
+  for (i=start_song;tempde && iname,tempde->full_name;
+    tempde=tempde->next;
+  }
+
+  DirLstDel(tempde1);
+}
+
+public U0 JukeLines(I64 start_line,I64 end_line)
+{
+  WordStat;
+  if (!frame_grabber_on)
+    FrameGrabberToggle;
+  JukeSongsPuppet("::/TempleOS/Apps/MusicOrgan/Examples",,start_line*5,end_line*5);
+  if (frame_grabber_on)
+    FrameGrabberToggle;
+  JukeSongsPut("::/TempleOS/Apps/MusicOrgan/Examples",start_line*5,end_line*5);
+}
+
 U0 ScreenShotTask(I64)
 {
   TaskInitExt;
@@ -333,18 +370,12 @@ public U0 ChkAll()
     ChkDsk(*ptr++);
 }
 
-public U0 MyHAllRep(U8 *flags="-p",U8 *index=NULL)
-{
-  HashRep(Fs->hash_table,HTG_SRC_SYM-HTT_DEFINE_STR-HTT_CLASS,NULL,flags,0,index);
-}
-
 public CDoc *DC2Doc(CDC *dc,I64 dx=0,I64 dy=0,I64 *_total_score=NULL)
 {
-  U8 byte_bit_cnts[256],st[2];
+  U8 byte_bit_cnts[256];
   I64 i,j,*ptr,row,col,ch,best_ch,score,best_score,cur_char_image,diff_image,total_score=0;
   CDoc *doc=DocNew;
 
-  MemSet(st,0,sizeof(st));
   MemSet(byte_bit_cnts,0,sizeof(byte_bit_cnts));
   for (i=0;i<256;i++)
     for (j=0;j<7;j++)
@@ -374,14 +405,12 @@ public CDoc *DC2Doc(CDC *dc,I64 dx=0,I64 dy=0,I64 *_total_score=NULL)
 	}
       }
       if (best_ch=='$$')
-	DocPutS(doc,"$$$$");
-      else {
-	*st=best_ch;
-	DocPutS(doc,st);
-      }
+	DocPrint(doc,"$$$$");
+      else
+	DocPrint(doc,"%c",best_ch);
       total_score+=best_score;
     }
-    DocPutS(doc,"\n");
+    DocPrint(doc,"\n");
   }
   if (_total_score) *_total_score=total_score;
   return doc;
diff --git a/TempleOS/Demo/AcctExample/TSDistro.CPP b/TempleOS/Demo/AcctExample/TSDistro.CPP
index 369f8e3..79428ae 100644
--- a/TempleOS/Demo/AcctExample/TSDistro.CPP
+++ b/TempleOS/Demo/AcctExample/TSDistro.CPP
@@ -3,7 +3,7 @@
 U0 ShowBootFileDate(U8 drv_let)
 {
   CDirEntry de;
-  U8 *name=MSPrintF("%c:/Kernel.BIN.C",drv_let);
+  U8 *name=MPrint("%c:/Kernel.BIN.C",drv_let);
   if (FileFind(name,&de)) {
     Free(de.full_name);
     "%s %D %T\n",name,de.datetime,de.datetime;
@@ -57,26 +57,26 @@ U0 TSCopyDrv(U8 src,U8 dst)
 
   Fmt(dst,TRUE,FALSE,PT_FAT32);
 
-  SPrintF(buf_s,"%c:/TempleOS",src);
-  SPrintF(buf_d,"%c:/TempleOS",dst);
+  SPrint(buf_s,"%c:/TempleOS",src);
+  SPrint(buf_d,"%c:/TempleOS",dst);
   CopyTree(buf_s,buf_d);
 
-  SPrintF(buf_s,"%c:/Windows",src);
-  SPrintF(buf_d,"%c:/Windows",dst);
+  SPrint(buf_s,"%c:/Windows",src);
+  SPrint(buf_d,"%c:/Windows",dst);
   CopyTree(buf_s,buf_d);
 
-  SPrintF(buf_s,"%c:/Linux",src);
-  SPrintF(buf_d,"%c:/Linux",dst);
+  SPrint(buf_s,"%c:/Linux",src);
+  SPrint(buf_d,"%c:/Linux",dst);
   CopyTree(buf_s,buf_d);
 
-  SPrintF(buf_s,"%c:/0000Boot",src);
-  SPrintF(buf_d,"%c:/0000Boot",dst);
+  SPrint(buf_s,"%c:/0000Boot",src);
+  SPrint(buf_d,"%c:/0000Boot",dst);
   CopyTree(buf_s,buf_d);
 
-  SPrintF(buf_d,"%c:/Temp",dst);
+  SPrint(buf_d,"%c:/Temp",dst);
   MkDir(buf_d);
 
-  SPrintF(buf_d,"%c:/Temp/ScreenShots",dst);
+  SPrint(buf_d,"%c:/Temp/ScreenShots",dst);
   MkDir(buf_d);
 
   DocClear;
@@ -114,28 +114,28 @@ public U0 FileCursorTop(U8 *filename)
 public U0 FilesCursorRem(U8 *mask="*")
 {
   I64 fuf_flags=0;
-  GetFFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),"+r+T+f+F");
-  CDirEntry *tempm=FilesFind(mask,fuf_flags),*tempm1;
-  while (tempm) {
-    tempm1=tempm->next;
-    FileCursorRem(tempm->full_name);
-    Touch(tempm->full_name,"",,tempm->datetime);
-    CDirEntryDel(tempm);
-    tempm=tempm1;
+  ScanFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),"+r+T+f+F");
+  CDirEntry *tempde=FilesFind(mask,fuf_flags),*tempde1;
+  while (tempde) {
+    tempde1=tempde->next;
+    FileCursorRem(tempde->full_name);
+    Touch(tempde->full_name,"",,tempde->datetime);
+    DirEntryDel(tempde);
+    tempde=tempde1;
   }
 }
 
 public U0 FilesCursorTop(U8 *mask="*")
 {
   I64 fuf_flags=0;
-  GetFFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),"+r+T+f+F");
-  CDirEntry *tempm=FilesFind(mask,fuf_flags),*tempm1;
-  while (tempm) {
-    tempm1=tempm->next;
-    FileCursorTop(tempm->full_name);
-    Touch(tempm->full_name,"",,tempm->datetime);
-    CDirEntryDel(tempm);
-    tempm=tempm1;
+  ScanFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),"+r+T+f+F");
+  CDirEntry *tempde=FilesFind(mask,fuf_flags),*tempde1;
+  while (tempde) {
+    tempde1=tempde->next;
+    FileCursorTop(tempde->full_name);
+    Touch(tempde->full_name,"",,tempde->datetime);
+    DirEntryDel(tempde);
+    tempde=tempde1;
   }
 }
 
@@ -147,47 +147,36 @@ U0 UncollapseFile(U8 *filename,I64 *)
   DocDel(doc);
 }
 
-U0 UncollapseLst(CDirEntry *tempm1,I64 *flags)
+U0 Uncollapse(U8 *files_find_mask="*",U8 *fu_flags=NULL)
 {
-  CDirEntry *tempm2;
-  while (tempm1 && !Bt(flags,FUf_CANCEL)) {
-    tempm2=tempm1->next;
-    if (tempm1->attr & _ATTR_DIR) {
-      if (tempm1->sub) {
-	"%S %s\n","ST_SCANNING_DIR",tempm1->full_name;
-	UncollapseLst(tempm1->sub,flags);
-      }
-    } else
-      UncollapseFile(tempm1->full_name,flags);
-    CDirEntryDel(tempm1);
-    tempm1=tempm2;
+  I64 fuf_flags=0;
+  CDirEntry *tempde,*tempde1;
+  ScanFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),"+r+f+F+T");
+  ScanFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),fu_flags);
+  tempde=tempde1=FilesFind(files_find_mask,fuf_flags);
+  while (tempde && !Bt(&fuf_flags,FUf_CANCEL)) {
+    UncollapseFile(tempde->full_name,&fuf_flags);
+    tempde=tempde->next;
   }
-}
-
-U0 Uncollapse(U8 *files_find_mask=FILENAME_MASK_TXT,U8 *fu_flags=NULL)
-{
-  I64 f=0;
-  GetFFlags(&f,Define("ST_FILE_UTIL_FLAGS"),"+r");
-  GetFFlags(&f,Define("ST_FILE_UTIL_FLAGS"),fu_flags);
-  UncollapseLst(FilesFind(files_find_mask,f),&f);
+  DirLstDel(tempde1);
 }
 
 public U0 CopySongs(U8 threshold='7')
 {
   CDoc *s;
   CDocEntry *doc_e;
-  CDirEntry *tempm,*tempm1;
+  CDirEntry *tempde,*tempde1;
   DelTree("/TempleOS/Apps/MusicOrgan/Examples");
   MkDir("/TempleOS/Apps/MusicOrgan/Examples");
-  tempm1=tempm=FilesFind("/TempleOS/Accts/TS/TAD/MusicOrgan/*.CPP*");
-  while (tempm1) {
-    s=DocRead(tempm1->full_name);
+  tempde1=tempde=FilesFind("/TempleOS/Accts/TS/TAD/MusicOrgan/*.CPP*");
+  while (tempde1) {
+    s=DocRead(tempde1->full_name);
     doc_e=s->root.next;
     if (doc_e->type_u8==DOCT_TEXT && doc_e->tag[2]>=threshold)
-      Copy(tempm1->full_name,"/TempleOS/Apps/MusicOrgan/Examples");
-    tempm1=tempm1->next;
+      Copy(tempde1->full_name,"/TempleOS/Apps/MusicOrgan/Examples");
+    tempde1=tempde1->next;
   }
-  CDirLstDel(tempm);
+  DirLstDel(tempde);
 }
 
 U0 DistroPrep()
@@ -222,7 +211,7 @@ U0 DistroPrep()
   DelTree("/TempleOS/Demo/*.BI*");
 
   Cd("/TempleOS");
-  S2T(FILENAME_MASK_SRC,"+r");
+  S2T("*","+r+S");
   DocOpt;
   Move(WSD_DEF_FILENAME,WSD_DEF_FILENAME_Z);
 }
@@ -234,7 +223,7 @@ U0 MakeSymFiles()
   if (ts_has_bak_drv) {
     DocClear;
     DocMax;
-    HashRep(Fs->hash_table,HTG_ALL,NULL,"-p",0,NULL);
+    Who;
     if (doc=DocPut) {
       st=StrNew(doc->filename.name);
       StrCpy(doc->filename.name,TS_BAK_DRV ":/Wb/Accts/TS/Wb2/SymsAlpha.TXT.Z");
@@ -244,7 +233,7 @@ U0 MakeSymFiles()
     }
     DocClear;
     DocMax;
-    HashRep(Fs->hash_table,HTG_ALL,NULL,"-p+m",0,NULL);
+    Who("+m");
     if (doc=DocPut) {
       st=StrNew(doc->filename.name);
       StrCpy(doc->filename.name,TS_BAK_DRV ":/Wb/Accts/TS/Wb2/SymsAddress.TXT.Z");
@@ -290,9 +279,9 @@ I64 MakeLineCntFile()
   DocCut(doc,start_indent->next,end_indent->last);
   doc->cur_entry=start_indent->next;
   doc->cur_data_col=0;
-  DocPrintF(doc,"DefinePrintF(\"DD_TEMPLEOS_LOC\",\"%,d\");\n",result);
+  DocPrint(doc,"DefinePrint(\"DD_TEMPLEOS_LOC\",\"%,d\");\n",result);
 
-  st=MSPrintF("%,d",result);
+  st=MPrint("%,d",result);
   DefineLoad("DD_TEMPLEOS_LOC",st);
   Free(st);
 
@@ -370,19 +359,39 @@ U0 TSWebFile(U8 *name)
 
 U0 MakeWebSite()
 {
-  CDirEntry *tempm,*tempm2;
+  CDirEntry *tempde,*tempde2;
   if (ts_has_bak_drv) {
     DocClear;
     Cd(TS_BAK_DRV ":/Wb");
     DelTree(TS_BAK_DRV ":/Wb/Accts/TS/TAD");
     Del(TS_BAK_DRV ":/Wb/Accts/TS/*");
-    Touch(TS_BAK_DRV ":/Wb/Accts/TS/Wb2/index.TXT.Z","",,GetCurTimeDate);
-    tempm=tempm2=FilesFind(FILENAME_MASK_TXT,FUF_RECURSE|FUF_FLATTEN_TREE|FUF_JUST_FILES);
-    while (tempm) {
-      TSWebFile(tempm->full_name);
-      tempm=tempm->next;
+    Touch(TS_BAK_DRV ":/Wb/Accts/TS/Wb2/index.TXT.Z","",,GetDateTime);
+    tempde=tempde2=FilesFind("*",FUF_RECURSE|FUF_JUST_FILES|FUF_JUST_TXT);
+    while (tempde) {
+      TSWebFile(tempde->full_name);
+      tempde=tempde->next;
     }
-    CDirLstDel(tempm2);
+    DirLstDel(tempde2);
+    Drv(TS_MAIN_DRV_LET);
+  }
+}
+
+U0 MakeWebSitePartial()
+{
+  CDirEntry *tempde,*tempde2;
+  if (ts_has_bak_drv) {
+    DelTree(TS_BAK_DRV ":/Wb/Accts/TS/Wb2");
+    CopyTree(TS_MAIN_DRV ":/TempleOS/Accts/TS/Wb2",
+	     TS_BAK_DRV ":/Wb/Accts/TS/Wb2");
+    DelTree(TS_BAK_DRV ":/Uncompressed/Accts/TS/Wb2");
+    CopyTree(TS_MAIN_DRV ":/TempleOS/Accts/TS/Wb2",
+	     TS_BAK_DRV ":/Uncompressed/Accts/TS/Wb2");
+    tempde=tempde2=FilesFind(TS_BAK_DRV ":/Wb/Accts/TS/Wb2/*",FUF_RECURSE|FUF_JUST_FILES|FUF_JUST_TXT);
+    while (tempde) {
+      TSWebFile(tempde->full_name);
+      tempde=tempde->next;
+    }
+    DirLstDel(tempde2);
     Drv(TS_MAIN_DRV_LET);
   }
 }
@@ -393,7 +402,7 @@ U0 ToWeb(U8 *name)
   if (ts_has_bak_drv) {
     st=FileNameAbs(name);
     if (!StrNCmp(st+1,":/TempleOS/",12)) {
-      st2=MSPrintF(TS_BAK_DRV":/Wb/%s",st+13);
+      st2=MPrint(TS_BAK_DRV":/Wb/%s",st+13);
       "%s\n",st2;
       Copy(name,st2);
       TSWebFile(st2);
@@ -406,21 +415,21 @@ U0 ToWeb(U8 *name)
 U0 TSUncompress()
 {
   U8 *st;
-  CDirEntry *tempm,*tempm1;
+  CDirEntry *tempde,*tempde1;
   if (ts_has_bak_drv) {
     DelTree(TS_BAK_DRV ":/Uncompressed");
     CopyTree(TS_MAIN_DRV ":/TempleOS",TS_BAK_DRV ":/Uncompressed");
-    tempm=FilesFind(TS_BAK_DRV ":/Uncompressed/*.Z",FUF_RECURSE|FUF_FLATTEN_TREE|FUF_JUST_FILES);
-    while (tempm) {
-      tempm1=tempm->next;
-      st=StrNew(tempm->full_name);
+    tempde=FilesFind(TS_BAK_DRV ":/Uncompressed/*.Z",FUF_RECURSE|FUF_JUST_FILES);
+    while (tempde) {
+      tempde1=tempde->next;
+      st=StrNew(tempde->full_name);
       StrLastRem(st,".");
-      Move(tempm->full_name,st);
+      Move(tempde->full_name,st);
       Free(st);
-      CDirEntryDel(tempm);
-      tempm=tempm1;
+      DirEntryDel(tempde);
+      tempde=tempde1;
     }
-    FilesCursorRem(TS_BAK_DRV ":/Uncompressed/" FILENAME_MASK_TXT);
+    FilesCursorRem(TS_BAK_DRV ":/Uncompressed/*");
   }
 }
 
@@ -428,11 +437,11 @@ U0 UpdateISODocDefines()
 {
   I64 size;
   size=10*FileSize(TS_BAK_DRV ":/Wb/TempleOSCD.ISO")/1024/1024;
-  DefinePrintF("DD_TEMPLEOSCD_SIZE",
-    "Download $TX+D,"TempleOS V1.03","DD_OS_NAME_VERSION"$ - Std. Distro (%0.1f MB)",0.1*size);
+  DefinePrint("DD_TEMPLEOSCD_SIZE",
+    "Download $TX+D,"TempleOS V1.05","DD_OS_NAME_VERSION"$ - Std. Distro (%0.1f MB)",0.1*size);
   size=10*FileSize(TS_BAK_DRV ":/Wb/TempleOSTS.ISO")/1024/1024;
-  DefinePrintF("DD_TEMPLEOSTS_SIZE",
-    "Download $TX+D,"TempleOS V1.03","DD_OS_NAME_VERSION"$ - T.S. Company Internal Distro (%0.1f MB)",0.1*size);
+  DefinePrint("DD_TEMPLEOSTS_SIZE",
+    "Download $TX+D,"TempleOS V1.05","DD_OS_NAME_VERSION"$ - T.S. Company Internal Distro (%0.1f MB)",0.1*size);
 }
 
 UpdateISODocDefines;
@@ -529,4 +538,3 @@ public U0 TSInstall()
     TSCopy;
   }
 }
-
diff --git a/TempleOS/Demo/AcctExample/TSHolySpirit.CPP b/TempleOS/Demo/AcctExample/TSHolySpirit.CPP
new file mode 100644
index 0000000..43a00d2
--- /dev/null
+++ b/TempleOS/Demo/AcctExample/TSHolySpirit.CPP
@@ -0,0 +1,306 @@
+#define TS_HS_BAD_BITS		4
+#define GODLE_HS_BAD_BITS	4
+#define GODLE_HS_GOOD_BITS	24
+
+Bool godle_done;
+I64 godle_ch;
+CDC *main_dc;
+U0 GodleDraw(CTask *task,CDC *dc)
+{
+  GrBlot(dc,0,0,main_dc);
+  if (!(win_updates&7)) {
+    dc->color=LTRED;
+    if (godle_done)
+      GrPrint(dc,(task->win_pixel_width-FONT_WIDTH*4)>>1,(task->win_pixel_height-FONT_HEIGHT)>>1,
+	"Done");
+  }
+}
+
+U0 GodleSmooth(I64 num)
+{
+  CDC *dc=DCExtract(main_dc,0,0,main_dc->width-1,main_dc->height-1);
+  I64 i,x,y,x1,y1,c,histogram[16],best,best_cnt,c_old=main_dc->color;
+  for (y=0;yheight;y++)
+    for (x=0;xwidth;x++) {
+      MemSet(histogram,0,sizeof(histogram));
+      for (y1=y-num;y1<=y+num;y1++)
+	for (x1=x-num;x1<=x+num;x1++) {
+	  c=GrPeek(dc,x1,y1);
+	  if (0<=c<=15)
+	    histogram[c]++;
+	}
+      best=BLACK;
+      best_cnt=-1;
+      for (i=0;i<16;i++)
+	if (histogram[i]>best_cnt) {
+	  best=i;
+	  best_cnt=histogram[i];
+	}
+      main_dc->color=best;
+      GrPlot(main_dc,x,y);
+    }
+  main_dc->color=c_old;
+  DCDel(dc);
+}
+
+CFifoU8 *godle_timer_pick_fifo=FifoU8New(32);
+U0 GodleTimerPickFlush()
+{
+  FifoU8Flush(godle_timer_pick_fifo);
+}
+
+I64 GodleTimerPickedBits(I64 num_bits)
+{
+  U8 b;
+  I64 i,k,result=0;
+  while (num_bits) {
+    if (FifoU8Rem(godle_timer_pick_fifo,&b)) {
+      result=result<<1+b;
+      num_bits--;
+    } else {
+      godle_ch=GetChar(,FALSE);
+      if (godle_ch==CH_ESC||godle_ch==CH_SHIFT_ESC)
+	throw;
+      else if (godle_ch=='\n') {
+	DCFill(main_dc,WHITE);
+	FifoU8Flush(godle_timer_pick_fifo);
+      } else if ('0'<=godle_ch<='9')
+	GodleSmooth(godle_ch-'0');
+      else {
+	k=KbdMouseEvtTime>>GODLE_HS_BAD_BITS;
+	for (i=0;i>=1;
+	}
+      }
+    }
+  }
+  return result;
+}
+
+U0 RandQuote()
+{ //$LK-A,"::/TempleOS/Apps/HolySpirit/HSNotes.TXT"$
+  I64 i,size,l=512;
+  U8 *bible_filename=Define("ST_BIBLE_FILE"),
+     *buf=FileRead(bible_filename,&size);
+  if (buf) {
+    i=KbdMouseEvtTime>>TS_HS_BAD_BITS%(size-l);
+    buf[i+l]=0;
+    "%s",buf+i;
+    Free(buf);
+  }
+}
+
+U0 RandWord()
+{
+  "%s ",ws_sorted_words[KbdMouseEvtTime>>TS_HS_BAD_BITS%ws_num_words]->str;
+}
+
+U0 BadCodeJump()
+{ //$LK-A,"::/TempleOS/Apps/HolySpirit/HSNotes.TXT"$
+  CDirEntry *root=FilesFind("/TempleOS/*",FUF_JUST_FILES|FUF_RECURSE|FUF_JUST_SRC),
+	*tempdee=root;
+  I64 cnt=0,num;
+  CDoc *doc;
+  U8 *st;
+  while (tempdee) {
+    doc=DocRead(tempdee->full_name);
+    tempdee->user_data=doc->root.y;
+    cnt+=doc->root.y;
+    DocDel(doc);
+    tempdee=tempdee->next;
+  }
+  num=KbdMouseEvtTime>>TS_HS_BAD_BITS%cnt;
+  tempdee=root;
+  while (tempdee) {
+    num-=tempdee->user_data;
+    if (num<0) {
+      st=MPrint("FL:%s,%d",tempdee->full_name,-num);
+      break;
+    }
+    tempdee=tempdee->next;
+  }
+  DirLstDel(root);
+  Ed(st);
+  Free(st);
+}
+
+U0 Godle()
+{
+  I64 i,j,w,h,x,y,ch;
+  godle_done=FALSE;
+  SettingsPush; //See $LK,"SettingsPush","MN:SettingsPush"$
+  WinMax;
+  WinBorder;
+  WordStat;
+
+  WinMgrSync;
+  godle_ch=0;
+  main_dc=DCNew(DCT_COLOR8,Fs->win_pixel_width,Fs->win_pixel_height);
+  DCFill(main_dc,WHITE);
+  w=main_dc->width;
+  h=main_dc->height;
+
+  Fs->draw_it=&GodleDraw;
+  GodleTimerPickFlush;
+  try {
+    for (i=0;i<3;i++) {
+      main_dc->color=RED;
+      for (j=0;j<24;j++)
+	GrLine(main_dc,
+	      (w-1)*GodleTimerPickedBits(4)/15,(h-1)*GodleTimerPickedBits(4)/15,
+	      (w-1)*GodleTimerPickedBits(4)/15,(h-1)*GodleTimerPickedBits(4)/15);
+      for (j=4;j;) {
+	x=(w-1)*GodleTimerPickedBits(5)/31+w/64;
+	y=(h-1)*GodleTimerPickedBits(5)/31+h/64;
+	switch(GrPeek(main_dc,x,y)) {
+	  case BLACK:
+	    main_dc->color=WHITE;
+	    GrFloodFill(main_dc,x,y);
+	    j--;
+	    break;
+	  case WHITE:
+	    main_dc->color=BLACK;
+	    GrFloodFill(main_dc,x,y);
+	    j--;
+	    break;
+	}
+      }
+      GodleSmooth(3);
+    }
+    godle_done=TRUE;
+    do ch=GetChar(,FALSE);
+    while (ch!=CH_ESC && ch!=CH_SHIFT_ESC);
+  } catch
+    Fs->catch_except=TRUE;
+  DCFill;
+  SettingsPop;
+  DCDel(main_dc);
+}
+
+class CMyURL
+{
+  U8	tag[136]	fmtstr "$$DA-P,135,\"Tag Text:%s\"$$\n";
+  U8	special[136]	fmtstr "$$DA-P,135,\"Special :%s\"$$\n";
+  I64	min		fmtstr "$$DA,32, \"Min     :%d\"$$\n";
+  I64	sec		fmtstr "$$DA,32, \"Sec     :%d\"$$\n";
+};
+
+U8 *URLPercentSpaces(U8 *src)
+{
+  U8 buf[1024],*dst=buf;
+  while (*src) {
+    if (*src==CH_SPACE) {
+      *dst++='%';
+      *dst++='%';
+      *dst++='2';
+      *dst++='0';
+      src++;
+    } else
+      *dst++=*src++;
+  }
+  *dst=0;
+  return StrNew(buf);
+}
+
+U0 FillInMyURL()
+{
+  CMyURL *url=CAlloc(sizeof(CMyURL));
+  U8 *tag,*st,*st2;
+  I64 i=PopUpPickLst("Web Bible\0YouTube\0Wikipedia\0Cert\0"
+	"RandomNumbers.info\0Random.org\0Virtual Notary\0Nist\0HotBits\0");
+  if (i>=0 && DocFormDo(url)) {
+    switch (i) {
+      case 0:
+	tag=url->special;
+	st2=URLPercentSpaces(url->special);
+	st=MPrint("http://www.biblegateway.com/passage/?search=%s&version=NIV",st2);
+	Free(st2);
+	if (*url->tag)
+	  tag=url->tag;
+	"$$TX+HTML,\"%Q\",\"%Q\"$$",tag,st;
+	Free(st);
+	break;
+      case 1:
+	tag="YouTube Video";
+	if (url->min || url->sec)
+	  st=MPrint("http://www.youtube.com/watch?v=%s&t=%dm%ds",url->special,url->min,url->sec);
+	else
+	  st=MPrint("http://www.youtube.com/watch?v=%s",url->special);
+	if (*url->tag)
+	  tag=url->tag;
+	"$$TX+HTML,\"%Q\",\"%Q\"$$",tag,st;
+	Free(st);
+	break;
+      case 2:
+	tag=url->special;
+	st=MPrint("http://en.wikipedia.org/wiki/%s",url->special);
+	if (*url->tag)
+	  tag=url->tag;
+	"$$TX+HTML,\"%Q\",\"%Q\"$$",tag,st;
+	Free(st);
+	break;
+      case 3:
+	tag="Here is the certificate";
+	st=MPrint("http://www.templeos.org/Certs/virtual-notary-cert-randomnum-%s.p12",url->special);
+	if (*url->tag)
+	  tag=url->tag;
+	"$$TX+HTML,\"%Q\",\"%Q\"$$",tag,st;
+	Free(st);
+	break;
+      case 4:
+	tag="http://www.randomnumbers.info";
+	"$$TX+HTML,\"%Q\",\"%Q\"$$\n",tag,tag;
+	if (*url->special) {
+	  i=A2I(url->special);
+	  "\nLine:%d\nGod says...\n$$FG,RED$$",i;
+	  PutBibleLines(i%100000,20);
+	  "$$FG$$\n";
+	}
+	break;
+      case 5:
+	tag="http://www.random.org";
+	"$$TX+HTML,\"%Q\",\"%Q\"$$\n",tag,tag;
+	if (*url->special) {
+	  i=A2I(url->special);
+	  "\nLine:%d\nGod says...\n$$FG,RED$$",i;
+	  PutBibleLines(i%100000,20);
+	  "$$FG$$\n";
+	}
+	break;
+      case 6:
+	tag="http://virtual-notary.org";
+	"$$TX+HTML,\"%Q\",\"%Q\"$$\n",tag,tag;
+	if (*url->special) {
+	  i=A2I(url->special);
+	  "\nLine:%d\nGod says...\n$$FG,RED$$",i;
+	  PutBibleLines(i%100000,20);
+	  "$$FG$$\n";
+	}
+	break;
+      case 7:
+	tag="http://qrng.anu.edu.au/NIST.php";
+	"$$TX+HTML,\"%Q\",\"%Q\"$$\n",tag,tag;
+	if (*url->special) {
+	  i=A2I(url->special,16);
+	  "\n0x%s-->%d mod 100000-->Line:%05d\n"
+	  "God says...\n$$FG,RED$$",url->special,i,i%100000;
+	  PutBibleLines(i%100000,20);
+	  "$$FG$$\n";
+	}
+	break;
+      case 8:
+	tag="https://www.fourmilab.ch/hotbits/secure_generate.html";
+	"$$TX+HTML,\"%Q\",\"%Q\"$$\n",tag,tag;
+	if (*url->special) {
+	  i=A2I(url->special,16);
+	  "\n0x%s-->%d mod 100000-->Line:%05d\n"
+	  "God says...\n$$FG,RED$$",url->special,i,i%100000;
+	  PutBibleLines(i%100000,20);
+	  "$$FG$$\n";
+	}
+	break;
+    }
+  }
+  Free(url);
+}
diff --git a/TempleOS/Demo/Asm/AsmAndC.CPP b/TempleOS/Demo/Asm/AsmAndC.CPP
index 200144c..2e01a9a 100644
--- a/TempleOS/Demo/Asm/AsmAndC.CPP
+++ b/TempleOS/Demo/Asm/AsmAndC.CPP
@@ -45,7 +45,7 @@ I64 AsmAndC()
   Beeps(i);
 
   asm {
-//You can clobber RAX,RBX,RCX,RDX, but preserve the rest for code in a Holy C routine.
+//You can clobber RAX,RBX,RCX,RDX, but preserve the rest for code in a HolyC routine.
 USE64	//Defaults to 64, but this is a good habit.
 	IMPORT	Snd;
 	MOV	RCX,&i[RBP] //You can clobber RAX,RBX,RCX,RDX.
diff --git a/TempleOS/Demo/Asm/AsmAndC2.CPP b/TempleOS/Demo/Asm/AsmAndC2.CPP
index 2c71357..1069424 100644
--- a/TempleOS/Demo/Asm/AsmAndC2.CPP
+++ b/TempleOS/Demo/Asm/AsmAndC2.CPP
@@ -67,7 +67,7 @@ U0 AsmAndC2()
 
   asm {
 LIST
-//You can clobber RAX,RBX,RCX,RDX, but preserve the rest for code in a Holy C routine.
+//You can clobber RAX,RBX,RCX,RDX, but preserve the rest for code in a HolyC routine.
 USE64	//Defaults to 64, but this is a good habit.
 	MOV	RCX,R15 //You can clobber RAX,RBX,RCX,RDX.
 			    //You better preserve the rest.
diff --git a/TempleOS/Demo/Asm/AsmHelloWorld.CPP b/TempleOS/Demo/Asm/AsmHelloWorld.CPP
index 3cc65af..774b39d 100644
--- a/TempleOS/Demo/Asm/AsmHelloWorld.CPP
+++ b/TempleOS/Demo/Asm/AsmHelloWorld.CPP
@@ -42,7 +42,7 @@ _HELLO_WORLD::
 	CALL	PUT_HEX_U8
 	MOV	RAX,CH_SPACE
 	CALL	PUT_CHAR
-	MOV	RAX,'Hello ' //Supports multi-byte char constants
+	MOV	RAX,'Hello ' //Supports multi-byte char consts
 	CALL	PUT_CHAR
 //We broke it in two pieces to show different ways.
 	MOV	RSI,MY_WORLD_MSG
diff --git a/TempleOS/Demo/Asm/BuzzFizz.CPP b/TempleOS/Demo/Asm/BuzzFizz.CPP
index b278f84..ec8e5ad 100644
--- a/TempleOS/Demo/Asm/BuzzFizz.CPP
+++ b/TempleOS/Demo/Asm/BuzzFizz.CPP
@@ -5,44 +5,178 @@
 #define BUZZ_SPAN	7
  
 asm {
-MSG_BUZZ:	DU8	"BUZZ\n\0";
-MSG_FIZZ:	DU8	"FIZZ\n\0";
-MSG_BUZZ_FIZZ:	DU8	"BUZZ_FIZZ\n\0";
-MSG_NEW_LINE:	DU8	"\n\0";
- 
 _BUZZ_FIZZ::
 	ENTER	0	//Always use Enter/Leave
 	PUSH	RSI	//See $LK,"CREG_VARS_MASK","MN:CREG_VARS_MASK"$ & $LK,"CREG_NON_PTR_MASK","MN:CREG_NON_PTR_MASK"$
+	PUSH	RDI
+	MOV	RSI,FIZZ_SPAN-RANGE_START%FIZZ_SPAN+1
+	MOV	RDI,BUZZ_SPAN-RANGE_START%BUZZ_SPAN+1
 	MOV	RAX,RANGE_START
-	MOV	DX,(FIZZ_SPAN-RANGE_START%FIZZ_SPAN+1)<<8+
-		   (BUZZ_SPAN-RANGE_START%BUZZ_SPAN+1)
  
-@@05:	DEC	DH
+@@05:	CALL	&PUT_HEX_U64
+	PUSH	RAX
+	MOV	RAX,CH_SPACE
+	CALL	&PUT_CHAR
+
+	DEC	RSI
 	JNZ	@@10
-	MOV	DH,FIZZ_SPAN
-	MOV	ESI,MSG_FIZZ
-	DEC	DL
-	JNZ	@@20
-	MOV	DL,BUZZ_SPAN
-	MOV	ESI,MSG_BUZZ_FIZZ
-	JMP	@@20
- 
-@@10:	DEC	DL
+	MOV	RAX,'FIZZ '
+	CALL	&PUT_CHAR
+	MOV	RSI,FIZZ_SPAN
+
+@@10:	DEC	RDI
 	JNZ	@@15
-	MOV	DL,BUZZ_SPAN
-	MOV	ESI,MSG_BUZZ
-	JMP	@@20
- 
-@@15:	CALL	&PUT_HEX_U64
-	MOV	ESI,MSG_NEW_LINE
-@@20:	CALL	&PUT_STR
+	MOV	RAX,'BUZZ '
+	CALL	&PUT_CHAR
+	MOV	RDI,BUZZ_SPAN
  
+@@15:	MOV	RAX,'\n'
+	CALL	&PUT_CHAR
+	POP	RAX
 	INC	RAX
 	CMP	RAX,RANGE_END	//Actually only a 32-bit instruction.
 	JBE	@@05
+
+	POP	RDI
 	POP	RSI
 	LEAVE
 	RET
 }
  
 Call(_BUZZ_FIZZ);
+
+/*
+       _BUZZ_FIZZ+0x0000 C8000000     ENTER	I16 0000
+       _BUZZ_FIZZ+0x0004 56	      PUSH	U64 RSI
+       _BUZZ_FIZZ+0x0005 57	      PUSH	U64 RDI
+       _BUZZ_FIZZ+0x0006 BE06000000   MOV	U32 ESI,I32 00000006
+       _BUZZ_FIZZ+0x000B BF07000000   MOV	U32 EDI,I32 00000007
+       _BUZZ_FIZZ+0x0010 B801000000   MOV	U32 EAX,I32 00000001
+       _BUZZ_FIZZ+0x0015 E8EEB92480   CALL	I32 PUT_HEX_U64+0x0000
+       _BUZZ_FIZZ+0x001A 50	      PUSH	U64 RAX
+       _BUZZ_FIZZ+0x001B B820000000   MOV	U32 EAX,I32 00000020
+       _BUZZ_FIZZ+0x0020 E847BA2480   CALL	I32 PUT_CHAR+0x0000
+       _BUZZ_FIZZ+0x0025 48FFCE       DEC	U64 RSI
+       _BUZZ_FIZZ+0x0028 7514	      JNZ	I8 _BUZZ_FIZZ+0x003E
+       _BUZZ_FIZZ+0x002A 48B846495A5A MOV	U64 RAX,U64 000000205A5A4946
+       _BUZZ_FIZZ+0x0030 20000000
+       _BUZZ_FIZZ+0x0034 E833BA2480   CALL	I32 PUT_CHAR+0x0000
+       _BUZZ_FIZZ+0x0039 BE06000000   MOV	U32 ESI,I32 00000006
+       _BUZZ_FIZZ+0x003E 48FFCF       DEC	U64 RDI
+       _BUZZ_FIZZ+0x0041 7514	      JNZ	I8 _BUZZ_FIZZ+0x0057
+       _BUZZ_FIZZ+0x0043 48B842555A5A MOV	U64 RAX,U64 000000205A5A5542
+       _BUZZ_FIZZ+0x0049 20000000
+       _BUZZ_FIZZ+0x004D E81ABA2480   CALL	I32 PUT_CHAR+0x0000
+       _BUZZ_FIZZ+0x0052 BF07000000   MOV	U32 EDI,I32 00000007
+       _BUZZ_FIZZ+0x0057 B80A000000   MOV	U32 EAX,I32 0000000A
+       _BUZZ_FIZZ+0x005C E80BBA2480   CALL	I32 PUT_CHAR+0x0000
+       _BUZZ_FIZZ+0x0061 58	      POP	U64 RAX
+       _BUZZ_FIZZ+0x0062 48FFC0       INC	U64 RAX
+       _BUZZ_FIZZ+0x0065 4883F864     CMP	U64 RAX,I8 64
+       _BUZZ_FIZZ+0x0069 76AA	      JNA	I8 _BUZZ_FIZZ+0x0015
+       _BUZZ_FIZZ+0x006B 5F	      POP	U64 RDI
+       _BUZZ_FIZZ+0x006C 5E	      POP	U64 RSI
+       _BUZZ_FIZZ+0x006D C9	      LEAVE
+       _BUZZ_FIZZ+0x006E C3	      RET
+
+0000000000000001
+0000000000000002
+0000000000000003
+0000000000000004
+0000000000000005
+0000000000000006 FIZZ
+0000000000000007 BUZZ
+0000000000000008
+0000000000000009
+000000000000000A
+000000000000000B
+000000000000000C FIZZ
+000000000000000D
+000000000000000E BUZZ
+000000000000000F
+0000000000000010
+0000000000000011
+0000000000000012 FIZZ
+0000000000000013
+0000000000000014
+0000000000000015 BUZZ
+0000000000000016
+0000000000000017
+0000000000000018 FIZZ
+0000000000000019
+000000000000001A
+000000000000001B
+000000000000001C BUZZ
+000000000000001D
+000000000000001E FIZZ
+000000000000001F
+0000000000000020
+0000000000000021
+0000000000000022
+0000000000000023 BUZZ
+0000000000000024 FIZZ
+0000000000000025
+0000000000000026
+0000000000000027
+0000000000000028
+0000000000000029
+000000000000002A FIZZ BUZZ
+000000000000002B
+000000000000002C
+000000000000002D
+000000000000002E
+000000000000002F
+0000000000000030 FIZZ
+0000000000000031 BUZZ
+0000000000000032
+0000000000000033
+0000000000000034
+0000000000000035
+0000000000000036 FIZZ
+0000000000000037
+0000000000000038 BUZZ
+0000000000000039
+000000000000003A
+000000000000003B
+000000000000003C FIZZ
+000000000000003D
+000000000000003E
+000000000000003F BUZZ
+0000000000000040
+0000000000000041
+0000000000000042 FIZZ
+0000000000000043
+0000000000000044
+0000000000000045
+0000000000000046 BUZZ
+0000000000000047
+0000000000000048 FIZZ
+0000000000000049
+000000000000004A
+000000000000004B
+000000000000004C
+000000000000004D BUZZ
+000000000000004E FIZZ
+000000000000004F
+0000000000000050
+0000000000000051
+0000000000000052
+0000000000000053
+0000000000000054 FIZZ BUZZ
+0000000000000055
+0000000000000056
+0000000000000057
+0000000000000058
+0000000000000059
+000000000000005A FIZZ
+000000000000005B BUZZ
+000000000000005C
+000000000000005D
+000000000000005E
+000000000000005F
+0000000000000060 FIZZ
+0000000000000061
+0000000000000062 BUZZ
+0000000000000063
+0000000000000064
+*/
diff --git a/TempleOS/Demo/Asm/PutDec.CPP b/TempleOS/Demo/Asm/PutDec.CPP
index 2457d95..cc2dbe9 100644
--- a/TempleOS/Demo/Asm/PutDec.CPP
+++ b/TempleOS/Demo/Asm/PutDec.CPP
@@ -14,7 +14,7 @@ PUT_DEC_U64::
 				//We'll move backward
 	MOV	U8 [RSI],0	//Terminator
 
-	OR	RAX,RAX		//Special case -- zero
+	TEST	RAX,RAX		//Special case -- zero
 	JNZ	@@05
 	DEC	RSI
 	MOV	U8 [RSI],'0'
@@ -27,7 +27,7 @@ PUT_DEC_U64::
 	ADD	RDX,'0'
 	DEC	RSI
 	MOV	U8 [RSI],DL
-	OR	RAX,RAX
+	TEST	RAX,RAX
 	JNZ	@@10
 
 @@15:	CALL	&PUT_STR
diff --git a/TempleOS/Demo/AutoFile/AFEd.TXT b/TempleOS/Demo/AutoFile/AFEd.TXT
index 0e92516..350fa16 100644
--- a/TempleOS/Demo/AutoFile/AFEd.TXT
+++ b/TempleOS/Demo/AutoFile/AFEd.TXT
@@ -139,14 +139,14 @@
 #define IC_OUT_U16		0x75
 #define IC_OUT_U32		0x76
 
-#define IC_GET_FLAGS		0x77
-#define IC_SET_FLAGS		0x78
+#define IC_GET_RFLAGS		0x77
+#define IC_SET_RFLAGS		0x78
 #define IC_GET_RAX		0x79
 #define IC_SET_RAX		0x7A
-#define IC_GET_BASE_PTR		0x7B
-#define IC_SET_BASE_PTR		0x7C
-#define IC_GET_STK_PTR		0x7D
-#define IC_SET_STK_PTR		0x7E
+#define IC_GET_RBP		0x7B
+#define IC_SET_RBP		0x7C
+#define IC_GET_RSP		0x7D
+#define IC_SET_RSP		0x7E
 #define IC_RIP			0x7F
 
 #define IC_RDTSC		0x80
diff --git a/TempleOS/Demo/Carry.CPP b/TempleOS/Demo/Carry.CPP
new file mode 100644
index 0000000..c208218
--- /dev/null
+++ b/TempleOS/Demo/Carry.CPP
@@ -0,0 +1,28 @@
+//This shows the $LK,"Carry","MN:Carry"$ function.
+//It's tricky to use.
+
+U0 BigCnt()
+{
+  U64 lo=0,hi=0;
+  while (hi<0x10) {
+    lo+=1<<58;
+    hi+=Carry;
+    "%016X %016X\n",hi,lo;
+  }
+}
+
+BigCnt;
+PressAKey;
+
+U0 BigShift()
+{
+  U64 lo=1,hi=0;
+  while (lo||hi) {
+    hi<<=1;
+    lo<<=1;
+    hi+=Carry;
+    "%016X %016X\n",hi,lo;
+  }
+}
+
+BigShift;
diff --git a/TempleOS/Demo/ClassMeta.CPP b/TempleOS/Demo/ClassMeta.CPP
index fff4b51..908a624 100644
--- a/TempleOS/Demo/ClassMeta.CPP
+++ b/TempleOS/Demo/ClassMeta.CPP
@@ -15,23 +15,23 @@ U0 RankOut(I64 i)
 
 class Test1Struct
 {
-  I64 age	printf_str "%2d" dft_val 38;
+  I64 age	print_str "%2d" dft_val 38;
   I64 color	dft_val RED; //Accepts expressions
-  I64 rank	printf_str "%1d" dft_val 6/2 output_fun &RankOut;
+  I64 rank	print_str "%1d" dft_val 6/2 output_fun &RankOut;
 };
 
 class Test2Struct
 {
-  I64 age	 printf_str "%2d" dft_val 38 percentile 54.20;
-  I64 rank	 printf_str "%1d" dft_val 5;
-  I64 serial_num printf_str "%6d" dft_val 123456;
+  I64 age	 print_str "%2d" dft_val 38 percentile 54.20;
+  I64 rank	 print_str "%1d" dft_val 5;
+  I64 serial_num print_str "%6d" dft_val 123456;
 };
 
 
-U0 DumpStruct(U8 *class_name,U8 *data)
-{
+U0 DumpStruct(U8 *_d,U8 *class_name=lastclass)
+{//lastclass is keyword
   CHashClass *tempc=HashFind(class_name,Fs->hash_table,HTT_CLASS);
-  U8 *printf_str;
+  U8 *print_str;
   I64 *q,dft_val;
   U0 (* fp_output_fun)(I64 i);
   F64 percentile;
@@ -43,10 +43,10 @@ U0 DumpStruct(U8 *class_name,U8 *data)
 
 //All our items are I64's.  If you want, you can check
 //the data type of the member var.  See $LK,"ClassRep","MN:ClassRep"$().
-    q=data+ml->offset;
+    q=_d+ml->offset;
 
-    if (printf_str=MemberMetaData("printf_str",ml))
-      "" printf_str,*q;
+    if (print_str=MemberMetaData("print_str",ml))
+      "" print_str,*q;
 
 //This is slightly ambiguous -- if no meta is present it will return zero.
     if (dft_val=MemberMetaData("dft_val",ml))
@@ -71,11 +71,11 @@ Test1Struct t1;
 t1.age=44;
 t1.rank=3;
 
-DumpStruct("Test1Struct",&t1);
+DumpStruct(&t1);
 
 Test2Struct t2;
 t2.age=22;
 t2.rank=2;
 t2.serial_num=55555;
 
-DumpStruct("Test2Struct",&t2);
+DumpStruct(&t2);
diff --git a/TempleOS/Demo/CompileDemo.CPP b/TempleOS/Demo/CompileDemo.CPP
index bba0527..05aaae0 100644
--- a/TempleOS/Demo/CompileDemo.CPP
+++ b/TempleOS/Demo/CompileDemo.CPP
@@ -3,18 +3,18 @@ F64 glbl;
 F64 CompileDemo(U8 *st)
 {
   I64 type;
-  U8 *code;
+  U8 *ex;
   CLex *lx=LexNew(st,LF_DONT_FREE_BUF);
   F64 result=0;
   Lex(lx);  //Gotta get it started
   "Compile \"%s\"\n",st;
   do {
-    if (code=CmpExpression(lx,&type)) {
+    if (ex=LexExpression2Bin(lx,&type)) {
       if (type!=IT_F64)
-	result=ToF64(Call(code));
+	result=ToF64(Call(ex));
       else
-	result=Call(code)(F64);
-      ExpressionDel(code);
+	result=Call(ex)(F64);
+      ExpressionBinDel(ex);
     }
     "result=%9.4f\n",result;
     if (lx->token==';')
@@ -30,8 +30,8 @@ CompileDemo("glbl=1;glbl*2;glbl/3;Sin(glbl)");
 
 //This is just like you typed-it on
 //the cmd line.
-ExePutS(
+ExePrint(
 "I64 i;"
 "for (i=0;i<10;i++) "
-"  \"%d\n\",i;"
+"  \"%%d\n\",i;"
 );
diff --git a/TempleOS/Demo/DateTime.CPP b/TempleOS/Demo/DateTime.CPP
index 07c7509..e424288 100644
--- a/TempleOS/Demo/DateTime.CPP
+++ b/TempleOS/Demo/DateTime.CPP
@@ -11,9 +11,9 @@
   is stored in the lower 32-bits.  The upper
   32-bits hold the num of days since Christ.
 
-  $LK,"PrintF","MN:PrintF"$() and the file datetimes use
+  $LK,"Print","MN:Print"$() and the file datetimes use
   this format, otherwise you might want to
-  use $LK,"GetTimeStamp","MN:GetTimeStamp"$() for a higher frequency
+  use $LK,"GetTSC","MN:GetTSC"$() for a higher frequency
   timing, divide by $LK,"time_stamp_freq","MN:time_stamp_freq"$,
   but this num is tied to your CPU's
   clock frequency which is inexact when
@@ -21,7 +21,7 @@
 */
 
 
-CDate cdt=GetCurTimeDate;
+CDate cdt=GetDateTime;
 
 I64 i;
 for (i=0;i=0) {
       result=i;
       break;
diff --git a/TempleOS/Demo/Doc/CallBack.CPP b/TempleOS/Demo/Doc/CallBack.CPP
index 95b8848..067097c 100644
--- a/TempleOS/Demo/Doc/CallBack.CPP
+++ b/TempleOS/Demo/Doc/CallBack.CPP
@@ -7,15 +7,15 @@ U8 *tSCB(CDoc *,CDocEntry *,CTask *mem_task)
   U8 *st=MAlloc(64,mem_task);
   CDate cdt=tS*CDATE_FREQ;
   //Doesn't have to be fixed width!!
-  SPrintF(st,"%d=%h11T",cdt,cdt);
+  SPrint(st,"%d=%h11T",cdt,cdt);
   return st;
 }
 
 U8 *CurTimeCB(CDoc *,CDocEntry *,CTask *mem_task)
 {
   U8 *st=MAlloc(64,mem_task);
-  CDate cdt=GetCurTimeDate;
-  SPrintF(st,"%h0D %h0T",cdt,cdt);
+  CDate cdt=GetDateTime;
+  SPrint(st,"%h0D %h0T",cdt,cdt);
   return st;
 }
 
@@ -32,10 +32,10 @@ U0 DoIt()
   Bool old_preempt=Preempt(OFF);
 
   DocBottom(bdoc);  //Ins at the bottom
-  DocPutS(bdoc,"$$FG,RED$$$$CM+BY+LX,5,-3$$");
+  DocPrint(bdoc,"$$FG,RED$$$$CM+BY+LX,5,-3$$");
 
-// The $LK,"DocPutS","MN:DocPutS"$() routine returns the addr of the last entry.
-  doc_e=DocPutS(bdoc,"$$TX+TC,\" \"$$");
+// The $LK,"DocPrint","MN:DocPrint"$() routine returns the addr of the last entry.
+  doc_e=DocPrint(bdoc,"$$TX+TC,\" \"$$");
 // The TC flag is "has tag callback".
 
 // Flags are explained here:
@@ -45,7 +45,7 @@ U0 DoIt()
 //	$LK,"ST_DOC_FLAGS","FF:::/TempleOS/Adam/Doc/Doc.CPP,ST_DOC_FLAGS"$
 
   doc_e->tag_cb=&tSCB;
-  DocPutS(bdoc,"$$FG$$");
+  DocPrint(bdoc,"$$FG$$");
 
 //$BK,1$WARNING:$BK,0$ If you use the put_doc you
 //run the risk of the user pressing
@@ -53,10 +53,10 @@ U0 DoIt()
 //of which will crash.	So, you might want
 //to use the border_doc.
 
-  DocPutS(pdoc,"$$FG,LTRED$$");
-  doc_e=DocPutS(pdoc,"$$TX+TC,\" \"$$");
+  DocPrint(pdoc,"$$FG,LTRED$$");
+  doc_e=DocPrint(pdoc,"$$TX+TC,\" \"$$");
   doc_e->tag_cb=&CurTimeCB;
-  DocPutS(pdoc,"$$FG$$");
+  DocPrint(pdoc,"$$FG$$");
 
   Preempt(old_preempt);
 
diff --git a/TempleOS/Demo/Doc/Data.CPP b/TempleOS/Demo/Doc/Data.CPP
index d09b34a..234856c 100644
--- a/TempleOS/Demo/Doc/Data.CPP
+++ b/TempleOS/Demo/Doc/Data.CPP
@@ -50,11 +50,11 @@ U0 DataDemo()
   "However, changes happen immediately,\n"
   "so it's tricky.\n\n";
   //Use  for the $$DA,$$ format.
-  doc_e=DocPutS(doc,"$$DA-T+RD+UD-I64+U32,32,\"%12d\"$$\n");
+  doc_e=DocPrint(doc,"$$DA-T+RD+UD-I64+U32,32,\"%%12d\"$$\n");
   doc_e->data=&i;
 
   StrCpy(buf,"Terry");
-  doc_e=DocPutS(doc,"$$DA-P+RD+UD,7,\"Str:%s\"$$\n");
+  doc_e=DocPrint(doc,"$$DA-P+RD+UD,7,\"Str:%%s\"$$\n");
   doc_e->data=buf;
 
   if (unlock)
diff --git a/TempleOS/Demo/Doc/DefineStr.CPP b/TempleOS/Demo/Doc/DefineStr.CPP
index 2103b63..bde6412 100644
--- a/TempleOS/Demo/Doc/DefineStr.CPP
+++ b/TempleOS/Demo/Doc/DefineStr.CPP
@@ -12,11 +12,11 @@ documentation.
 DefineLoad("COMPANY","Trivial Solutions");
 "Company: $$TX+D,\"\",\"COMPANY\"$$\n";
 
-DefinePrintF("COMPANY_TIME","%T",GetCurTimeDate);
+DefinePrint("COMPANY_TIME","%T",GetDateTime);
 
 #exe {
-  StreamPrintF(
-    "#define COMPANY_AGE %h56D\n",GetCurTimeDate-A2Date("8/1/2003"));
+  StreamPrint(
+    "#define COMPANY_AGE %h56D\n",GetDateTime-A2Date("8/1/2003"));
 };
 
 
diff --git a/TempleOS/Demo/Doc/DemoDoc.TXT b/TempleOS/Demo/Doc/DemoDoc.TXT
index 3c7895f..f0d53dc 100644
Binary files a/TempleOS/Demo/Doc/DemoDoc.TXT and b/TempleOS/Demo/Doc/DemoDoc.TXT differ
diff --git a/TempleOS/Demo/Doc/Form.CPP b/TempleOS/Demo/Doc/Form.CPP
index d9dc3f4..1a8c013 100644
--- a/TempleOS/Demo/Doc/Form.CPP
+++ b/TempleOS/Demo/Doc/Form.CPP
@@ -1,42 +1,42 @@
-class DStruct
+class FDStruct
 {
 //Use  and select "Data" to generate the fmtstrs
 
 //The number is the field from after the ':' to the end.
 //  See $LK,"Data Tag Width","FA:::/TempleOS/Adam/Doc/DocPlain.CPP,DataTagWidth"$.
 
-  F64 num1	  fmtstr "$$DA-T,32,\"F64   1:%12.8f\"$$\n";
-  F64 num2	  fmtstr "$$DA-T,32,\"F64   2:%12e\"$$\n";
-  I64 num3	  fmtstr "$$DA-T,32,\"I64   1:0x%016X\"$$\n";
-  I64 num4	  fmtstr "$$DA-T,32,\"I64   2:%12d\"$$\n";
-  U8 name[32]	  fmtstr "$$DA-P,31,\"Name  :%s\"$$\n";
+  F64 num1	fmtstr "$$DA-T,32,\"F64   1:%12.8f\"$$\n";
+  F64 num2	fmtstr "$$DA-T,32,\"F64   2:%12e\"$$\n";
+  I64 num3	fmtstr "$$DA-T,32,\"I64   1:0x%016X\"$$\n";
+  I64 num4	fmtstr "$$DA-T,32,\"I64   2:%12d\"$$\n";
+  U8  name[32]	fmtstr "$$DA-P,31,\"Name  :%s\"$$\n";
   CDate datetime fmtstr "$$DA-T,32,\"Date  :%8D\"$$\n";
 };
 
 U0 FormDemo()
 {
-  DStruct gtl;
+  FDStruct fds;
   CDate cdt;
 
-  gtl.num1=12.3e-4;  //Set defaults
-  gtl.num2=4.5e3;
-  gtl.num3=0x1234;
-  gtl.num4=-567;
-  StrCpy(>l.name,"John");
-  cdt=GetCurTimeDate;
-  gtl.datetime=cdt;
-  if (DocFormDo(>l,"DStruct")) {
-    "#1=%e\n",gtl.num1;
-    "#2=%e\n",gtl.num2;
-    "#3=%d\n",gtl.num3;
-    "#4=%d\n",gtl.num4;
-    "Name=%s\n",gtl.name;
-    "Date=%D\n",gtl.datetime;
+  fds.num1=12.3e-4;  //Set defaults
+  fds.num2=4.5e3;
+  fds.num3=0x1234;
+  fds.num4=-567;
+  StrCpy(&fds.name,"John");
+  cdt=GetDateTime;
+  fds.datetime=cdt;
+  if (DocFormDo(&fds)) {
+    "#1=%e\n",fds.num1;
+    "#2=%e\n",fds.num2;
+    "#3=%d\n",fds.num3;
+    "#4=%d\n",fds.num4;
+    "Name=%s\n",fds.name;
+    "Date=%D\n",fds.datetime;
   } else
     "Cancel\n";
 
   "\n\nClassRep Example\n";
-  ClassRep("DStruct",>l);
+  ClassRep(&fds);
 
 //See also $LK,"ClassRepD","MN:ClassRepD"$().
 }
diff --git a/TempleOS/Demo/Doc/MenuButton.CPP b/TempleOS/Demo/Doc/MenuButton.CPP
index 573bfe5..c6d7ddf 100644
--- a/TempleOS/Demo/Doc/MenuButton.CPP
+++ b/TempleOS/Demo/Doc/MenuButton.CPP
@@ -7,7 +7,7 @@ I64 PopUpFreq()
 { //See also $LK,"PopUpRangeI64","MN:PopUpRangeI64"$()
   I64 i;
   CDoc *doc=DocNew;
-  DocPutS(doc,"$$TX+CX,\"Set Freq\"$$\n" //Centered text
+  DocPrint(doc,"$$TX+CX,\"Set Freq\"$$\n" //Centered text
 	"$$CM+LX,2,4$$$$BT,\"100 Hz\",100$$"
 	"$$CM+LX,18,0$$$$BT,\"200 Hz\",200$$"
 	"$$CM+LX,2,4$$$$BT,\"400 Hz\",400$$"
diff --git a/TempleOS/Demo/Doc/MenuSprite.CPP b/TempleOS/Demo/Doc/MenuSprite.CPP
index b9cb2dc..72ceee3 100644
Binary files a/TempleOS/Demo/Doc/MenuSprite.CPP and b/TempleOS/Demo/Doc/MenuSprite.CPP differ
diff --git a/TempleOS/Demo/Doc/TreeDemo.CPP b/TempleOS/Demo/Doc/TreeDemo.CPP
index 1a03eaf..cef3e71 100644
--- a/TempleOS/Demo/Doc/TreeDemo.CPP
+++ b/TempleOS/Demo/Doc/TreeDemo.CPP
@@ -1,7 +1,7 @@
 /*
-This uses DocPutS/DocPrintF because updates
+This uses $LK,"DocPrint","MN:DocPrint"$() because updates
 to within a tree while a tree is collapsed get
-messed-up if "live"(like using ordinary PrintF/PutS.)
+messed-up if "live" (like using ordinary Print.)
 The insert point is confused by hiding of
 data in collapsed trees.  Therefore, the window main
 Doc is taken off-line by disabling preemption so there
@@ -9,33 +9,33 @@ are no screen updates until all data has been inserted.
 
 There is a special Doc function which is also
 available to take an Doc off-line.  See $LK,"DocInsSafe","MN:DocInsSafe"$.
-For this example, however, I wanted to use DocPrintF
+For this example, however, I wanted to use DocPrint
 and disabled Preemption myself.
 */
 
-U0 TreeSub(CDoc *doc,CDirEntry *tempm)
+U0 TreeSub(CDoc *doc,CDirEntry *tempde)
 {
-  CDirEntry *tempm1;
-  while (tempm) {
-    tempm1=tempm->next;
-    if (tempm->attr & _ATTR_DIR) {
-      DocPutS(doc,"$$TR,\"\"$$");
-      DocPrintF(doc,"$$MA+A,\"%s\",\"Cd(\\\"%s\\\");Dir;\n\"$$\n",
-      tempm->name,tempm->full_name);
-      if (tempm->sub) {
-	DocPutS(doc,"$$ID,+2$$");
-	TreeSub(doc,tempm->sub);
-	DocPutS(doc,"$$ID,-2$$");
+  CDirEntry *tempde1;
+  while (tempde) {
+    tempde1=tempde->next;
+    if (tempde->attr & _ATTR_DIR) {
+      DocPrint(doc,"$$TR,\"\"$$");
+      DocPrint(doc,"$$MA+A,\"%s\",\"Cd(\\\"%s\\\");Dir;\n\"$$\n",
+      tempde->name,tempde->full_name);
+      if (tempde->sub) {
+	DocPrint(doc,"$$ID,+2$$");
+	TreeSub(doc,tempde->sub);
+	DocPrint(doc,"$$ID,-2$$");
       }
     } else {
-      DocPrintF(doc,"$$LK,\"%s\",\"FI:%s\"$$\n",
-	tempm->name,tempm->full_name);
+      DocPrint(doc,"$$LK,\"%s\",\"FI:%s\"$$\n",
+	tempde->name,tempde->full_name);
     }
     //Note there is also a routine
     //to delete an entire CDirEntry tree.
-    //See $LK,"CDirLstDel","MN:CDirLstDel"$().
-    CDirEntryDel(tempm);
-    tempm=tempm1;
+    //See $LK,"DirLstDel","MN:DirLstDel"$().
+    DirEntryDel(tempde);
+    tempde=tempde1;
   }
 }
 
@@ -43,11 +43,11 @@ U0 TreeDemo()
 {
   I64 fuf_flags=0;
   CDoc *doc=DocNew;
-  GetFFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),"+r");
-  DocPutS(doc,"$$TR-C+AL,\"\"$$\n");
-  DocPutS(doc,"$$ID,+2$$");
+  ScanFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),"+r");
+  DocPrint(doc,"$$TR-C+AL,\"\"$$\n");
+  DocPrint(doc,"$$ID,+2$$");
   TreeSub(doc,FilesFind("/TempleOS/*",fuf_flags));
-  DocPutS(doc,"$$ID,-2$$");
+  DocPrint(doc,"$$ID,-2$$");
   DocInsDoc(DocPut,doc);
   DocDel(doc);
 }
diff --git a/TempleOS/Demo/Doc/UnusedDefine.CPP b/TempleOS/Demo/Doc/UnusedDefine.CPP
index 5889c74..06759b6 100644
--- a/TempleOS/Demo/Doc/UnusedDefine.CPP
+++ b/TempleOS/Demo/Doc/UnusedDefine.CPP
@@ -48,12 +48,12 @@ U0 UnusedDefineScan()
       while (temph!=tempht) {
 	if (temph->type&HTT_DEFINE_STR) {
 	  progress1++;
-	  if (FileOcc(temph->str,"/TempleOS/"FILENAME_MASK_TXT,"+l-i")==1) {
+	  if (FileOcc(temph->str,"/TempleOS/*","+l-i+T")==1) {
 	    doc=DocNew;
 	    old_put_doc=DocPut;
 	    old_display_doc=DocDisplay;
 	    Fs->put_doc=Fs->display_doc=doc;
-	    Grep(temph->str,"/TempleOS/"FILENAME_MASK_TXT,"+l-i");
+	    Grep(temph->str,"/TempleOS/*","+l-i+T");
 	    Fs->put_doc=old_put_doc;
 	    Fs->display_doc=old_display_doc;
 	    doc_e=doc->root.next;
diff --git a/TempleOS/Demo/Dsk/DataBase.CPP b/TempleOS/Demo/Dsk/DataBase.CPP
index 934fe0f..f992a2f 100644
--- a/TempleOS/Demo/Dsk/DataBase.CPP
+++ b/TempleOS/Demo/Dsk/DataBase.CPP
@@ -28,7 +28,7 @@ U0 WriteAcct()
   acctnum=PmtI64("Acct #",-1);
   if (0<=acctnumnext;
-    if (tempm->attr & _ATTR_DIR) {
-      DocPutS(doc,"$$TR,\"\"$$");
-      DocPrintF(doc,"$$MA+A,\"%s\",\"Cd(\\\"%s\\\");Dir;\n\"$$\n",
-      tempm->name,tempm->full_name);
-      if (tempm->sub) {
-	DocPutS(doc,"$$ID,+2$$");
-	TreeSub(doc,tempm->sub);
-	DocPutS(doc,"$$ID,-2$$");
+  CDirEntry *tempde1;
+  while (tempde) {
+    tempde1=tempde->next;
+    if (tempde->attr & _ATTR_DIR) {
+      DocPrint(doc,"$$TR,\"\"$$");
+      DocPrint(doc,"$$MA+A,\"%s\",\"Cd(\\\"%s\\\");Dir;\n\"$$\n",
+      tempde->name,tempde->full_name);
+      if (tempde->sub) {
+	DocPrint(doc,"$$ID,+2$$");
+	TreeSub(doc,tempde->sub);
+	DocPrint(doc,"$$ID,-2$$");
       }
     } else {
-      DocPrintF(doc,"$$LK,\"%s\",\"FI:%s\"$$\n",
-	tempm->name,tempm->full_name);
+      DocPrint(doc,"$$LK,\"%s\",\"FI:%s\"$$\n",
+	tempde->name,tempde->full_name);
     }
     //Note there is also a routine
     //to delete an entire CDirEntry tree.
-    //See $LK,"CDirLstDel","MN:CDirLstDel"$().
-    CDirEntryDel(tempm);
-    tempm=tempm1;
+    //See $LK,"DirLstDel","MN:DirLstDel"$().
+    DirEntryDel(tempde);
+    tempde=tempde1;
   }
 }
 
@@ -34,11 +34,11 @@ U0 FPrintFDemo(U8 *output_filename=NULL)
 {
   I64 fuf_flags=0;
   CDoc *doc=DocNew;
-  GetFFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),"+r");
-  DocPutS(doc,"$$TR-C+AL,\"\"$$\n");
-  DocPutS(doc,"$$ID,+2$$");
+  ScanFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),"+r");
+  DocPrint(doc,"$$TR-C+AL,\"\"$$\n");
+  DocPrint(doc,"$$ID,+2$$");
   TreeSub(doc,FilesFind("/TempleOS/*",fuf_flags));
-  DocPutS(doc,"$$ID,-2$$");
+  DocPrint(doc,"$$ID,-2$$");
   DocRecalc(doc);
   if (output_filename) {
     StrCpy(doc->filename.name,output_filename);
diff --git a/TempleOS/Demo/Dsk/OrderedIO.CPP b/TempleOS/Demo/Dsk/OrderedIO.CPP
index c2766c8..75b722f 100644
--- a/TempleOS/Demo/Dsk/OrderedIO.CPP
+++ b/TempleOS/Demo/Dsk/OrderedIO.CPP
@@ -5,11 +5,11 @@ $WW,0$*/
 U0 Main()
 {
   I64 i,cnt=0;
-  CDirEntry *tempm=FilesFind("::/TempleOS/*",FUF_RECURSE),
-      **a=FilesOrder(tempm,&cnt);
+  CDirEntry *tempde=FilesFind("::/TempleOS/*",FUF_RECURSE),
+      **a=FilesOrder(tempde,&cnt);
   for (i=0;icluster,a[i]->full_name;
-    CDirEntryDel(a[i]);
+    DirEntryDel(a[i]);
   }
   Free(a);
 }
diff --git a/TempleOS/Demo/Games/BattleLines.CPP b/TempleOS/Demo/Games/BattleLines.CPP
index ed884b1..ec83fb9 100644
Binary files a/TempleOS/Demo/Games/BattleLines.CPP and b/TempleOS/Demo/Games/BattleLines.CPP differ
diff --git a/TempleOS/Demo/Games/BigGuns.CPP b/TempleOS/Demo/Games/BigGuns.CPP
index b90b14a..ea6e065 100644
Binary files a/TempleOS/Demo/Games/BigGuns.CPP and b/TempleOS/Demo/Games/BigGuns.CPP differ
diff --git a/TempleOS/Demo/Games/BlackDiamond.CPP b/TempleOS/Demo/Games/BlackDiamond.CPP
index a87cb90..f92c7ec 100644
Binary files a/TempleOS/Demo/Games/BlackDiamond.CPP and b/TempleOS/Demo/Games/BlackDiamond.CPP differ
diff --git a/TempleOS/Demo/Games/BugBird.CPP b/TempleOS/Demo/Games/BugBird.CPP
index 93eddf8..475f0cc 100644
Binary files a/TempleOS/Demo/Games/BugBird.CPP and b/TempleOS/Demo/Games/BugBird.CPP differ
diff --git a/TempleOS/Demo/Games/BulgeBomber.CPP b/TempleOS/Demo/Games/BulgeBomber.CPP
index ef85d1d..4345e44 100644
Binary files a/TempleOS/Demo/Games/BulgeBomber.CPP and b/TempleOS/Demo/Games/BulgeBomber.CPP differ
diff --git a/TempleOS/Demo/Games/CastleFrankenstein.CPP b/TempleOS/Demo/Games/CastleFrankenstein.CPP
index b7b067b..d91627e 100644
--- a/TempleOS/Demo/Games/CastleFrankenstein.CPP
+++ b/TempleOS/Demo/Games/CastleFrankenstein.CPP
@@ -112,7 +112,7 @@ class Monster
   Bool dead,pad[7];
 } monsters[NUM_MONSTERS];
 
-U0 FPSTransform(CDC *dc,I64 *x,I64 *y,I64 *z)
+U0 CFTransform(CDC *dc,I64 *x,I64 *y,I64 *z)
 {
   I64 zz;
   GrRot(dc->r,x,y,z);
@@ -146,27 +146,26 @@ U0 DrawIt(CTask *task,CDC *dc)
   I64 i,j,*r1,*r2,*r3,*s2w,xx,yy,zz,x,y,x1,y1,z1,
       c,x1w,y1w,x1h,y1h,xh,yh,zh,
       cx=task->win_pixel_width/2,
-      cy=task->win_pixel_height/2,
-      _man_xx=man_xx,_man_yy=man_yy;
-  U8 *inter;
-  F64 tt,_man_é=man_é;
+      cy=task->win_pixel_height/2;
+  U8 *temps;
+  F64 tt;
   CD3I32 poly[4];
 
   DCAllocDepthBuf(dc);
   MemSet(panels_processed_bitmap,0,(map_width*map_height+7)>>3);
 
   //World to screen
-  GrRotZEqu(dc->r,_man_é+ã/2);
+  GrRotZEqu(dc->r,man_é+ã/2);
   GrRotXEqu(dc->r,ã/2);
   GrSetRotMat(dc,dc->r);
 
-  xh=-_man_xx/SCREEN_SCALE; yh=-_man_yy/SCREEN_SCALE; zh=0;
+  xh=-man_xx/SCREEN_SCALE; yh=-man_yy/SCREEN_SCALE; zh=0;
   GrRot(dc->r,&xh,&yh,&zh);
   GrSetTranslation(dc->r,xh,yh,zh);
 
   //Screen to world
   s2w=GrRotX(-ã/2,task);
-  GrRotZEqu(s2w,-_man_é-ã/2);
+  GrRotZEqu(s2w,-man_é-ã/2);
   xh=0; yh=0; zh=SCREEN_SCALE;
   GrRot(s2w,&xh,&yh,&zh);
 
@@ -176,7 +175,7 @@ U0 DrawIt(CTask *task,CDC *dc)
   dc->ls.x=xx; dc->ls.y=yy; dc->ls.z=zz;
 
   dc->flags|=DCF_TRANSFORMATION;
-  dc->transform=&FPSTransform;
+  dc->transform=&CFTransform;
   dc->x=cx;
   dc->y=cy;
   r1=GrRotX(-ã/2,task);
@@ -189,20 +188,20 @@ U0 DrawIt(CTask *task,CDC *dc)
   r3=GrRotX(-ã/2,task);
   GrScaleMatEqu(r3,PLANT_SCALE);
 
-  x1h=_man_xx+yh*PLOT_GRID_WIDTH/2+xh*(PLOT_GRID_HEIGHT-1);
-  y1h=_man_yy-xh*PLOT_GRID_WIDTH/2+yh*(PLOT_GRID_HEIGHT-1);
+  x1h=man_xx+yh*PLOT_GRID_WIDTH/2+xh*(PLOT_GRID_HEIGHT-1);
+  y1h=man_yy-xh*PLOT_GRID_WIDTH/2+yh*(PLOT_GRID_HEIGHT-1);
   xh>>=1; yh>>=1;
   for (j=0;jcolor=RED;
 	  else
@@ -226,14 +225,14 @@ U0 DrawIt(CTask *task,CDC *dc)
 	    z1=0;
 	    GrTransform(dc,&x1,&y1,&z1);
 	    if (z1>0)
-	      SpritePlotRotMat3b(dc,x+SCREEN_SCALE/2,y+SCREEN_SCALE/2,0,$IB,"<5>",5$,r3);
+	      SpritePlotRotMat3B(dc,x+SCREEN_SCALE/2,y+SCREEN_SCALE/2,0,$IB,"<5>",5$,r3);
 	  } else if (c==YELLOW) {
 	    x1=x+SCREEN_SCALE/2;
 	    y1=y+SCREEN_SCALE/2;
 	    z1=0;
 	    GrTransform(dc,&x1,&y1,&z1);
 	    if (z1>0)
-	      SpritePlotRotMat3b(dc,x+SCREEN_SCALE/2,y+SCREEN_SCALE/2,0,$IB,"<6>",6$,r3);
+	      SpritePlotRotMat3B(dc,x+SCREEN_SCALE/2,y+SCREEN_SCALE/2,0,$IB,"<6>",6$,r3);
 	  }
 
 	  if (!map[(yy+1)*map_width+xx]) {
@@ -313,21 +312,21 @@ U0 DrawIt(CTask *task,CDC *dc)
   for (i=0;i0) {
 	if (monsters[i].dead)
-	  SpritePlotRotMat3b(dc,x,y,0,$IB,"<2>",2$,r2);
+	  SpritePlotRotMat3B(dc,x,y,0,$IB,"<2>",2$,r2);
 	else {
 	  tt=Tri(tT,1.0);
-	  inter=SpriteInterpolate($IB,"<3>",3$,$IB,"<4>",4$,tt);
-	  SpritePlotRotMat3b(dc,x,y,0,inter,r1);
-	  Free(inter);
+	  temps=SpriteInterpolate($IB,"<3>",3$,$IB,"<4>",4$,tt);
+	  SpritePlotRotMat3B(dc,x,y,0,temps,r1);
+	  Free(temps);
 	}
       }
     }
@@ -356,13 +355,13 @@ U0 DrawIt(CTask *task,CDC *dc)
     if (!monsters[i].dead)
       GrPlot3(dc,2*(monsters[i].x/SCREEN_SCALE),2*(map_height-1-monsters[i].y/SCREEN_SCALE),0);
   dc->color=LTCYAN;
-  GrPlot3(dc,2*(_man_xx/SCREEN_SCALE),2*(map_height-1-_man_yy/SCREEN_SCALE),0);
+  GrPlot3(dc,2*(man_xx/SCREEN_SCALE),2*(map_height-1-man_yy/SCREEN_SCALE),0);
 
 
   if (tf) {
     dc->color=LTRED;
     if (Blink)
-      GrPutS(dc,cx-(FONT_WIDTH*14)/2,cy-FONT_HEIGHT/2,"Game Completed");
+      GrPrint(dc,cx-(FONT_WIDTH*14)/2,cy-FONT_HEIGHT/2,"Game Completed");
     tt=tf;
   } else {
     dc->color=LTGREEN;
@@ -370,7 +369,7 @@ U0 DrawIt(CTask *task,CDC *dc)
     GrLine(dc,cx,cy-5,cx,cy+5);
     tt=tT;
   }
-  GrPrintF(dc,0,0,"Enemy:%d Time:%3.2f Best:%3.2f",monsters_left,tt-t0,best_score);
+  GrPrint(dc,0,0,"Enemy:%d Time:%3.2f Best:%3.2f",monsters_left,tt-t0,best_score);
   Free(s2w);
 }
 
@@ -542,6 +541,7 @@ U0 CastleFrankenstein()
   SettingsPush; //See $LK,"SettingsPush","MN:SettingsPush"$
   Fs->text_attr=RED<<4+WHITE;
   Preempt(OFF);
+  WinBorder;
   WinMax;
   WordStat;
   Init;
@@ -591,7 +591,84 @@ fs_done:
 }
 
 CastleFrankenstein;
-+    <<<< ,,,$8888$$$$4444((((0,0T0T0TLTL,L,L,404P4P4PHPH0H0H0808L8L8LDLD4D4D4<4<H<H<H@H@8@T@l@l4lLlLˆLˆLˆ$ˆ$€$€$€0€0l0p4„4„(„H€HpHpDp8p8€8€8€D€DtHtDt<t<|<x@|@|DxD„ „„tppp\\\\llhlll````dddhhXTPPPLLL(@@8HHHH8888DDDD<Z,u @ ZDD<DDD\D\DdT0T8THL0LLd d hh88x8|8|4x4tt$t@8HLL,L4L<LZ<HñÿÿÿñÿÿÿØÿÿÿìÿÿÿØÿÿÿûÿÿÿ¿ÿÿÿ¿ÿÿÿØÿÿÿØÿÿÿìÿÿÿƒÿÿÿçÿÿÿƒÿÿÿûÿÿÿƒÿÿÿƒÿÿÿ
++
+ 
+  
+ <
+<<
+< 
+,,,
+$8
+88
+8$
+$$
+$4
+44
+4(
+((
+(0
+,0T0
+T0TL
+TL,L
+,L,4
+04P4
+P4PH
+PH0H
+0H08
+08L8
+L8LD
+LD4D
+4D4<
+4<H<
+H<H@
+H@8@
+T@l@
+l4lL
+lLˆL
+ˆLˆ$
+ˆ$€$
+€$€0
+€0l0
+p4„4
+„(„H
+€HpH
+pDp8
+p8€8
+€8€D
+€DtH
+tDt<
+t<|<
+x@|@
+|DxD
+„ „
+„t
+pp
+p\
+\\
+\l
+lh
+ll
+l`
+``
+`d
+dd
+hh
+XT
+PP
+PL
+LL
+(@@
+8H
+HH
+H8
+88
+8D
+DD
+D<Z,u
+ @ Z
+DD<
+DDD\
+D\DdT0T8THL0LLd d hh88x8|8|4x4tt$t@8HLL,L4L<LZ<HñÿÿÿñÿÿÿØÿÿÿìÿÿÿØÿÿÿûÿÿÿ¿ÿÿÿ¿ÿÿÿØÿÿÿØÿÿÿìÿÿÿƒÿÿÿçÿÿÿƒÿÿÿûÿÿÿƒÿÿÿƒÿÿÿ
 tÿÿÿöÿÿÿtÿÿÿ
 ¿ÿÿÿöÿÿÿ¿ÿÿÿƒÿÿÿ
 
@@ -620,7 +697,7 @@ CastleFrankenstein;
 
 
 $%*$*+'&('()&((	$++
-0/.112-,7 765343! 3 45833!839;:7;766;;1
Z<HñÿÿÿöÿÿÿñÿÿÿØÿÿÿìÿÿÿØÿÿÿûÿÿÿ¿ÿÿÿ¿ÿÿÿØÿÿÿØÿÿÿìÿÿÿöÿÿÿƒÿÿÿçÿÿÿƒÿÿÿûÿÿÿƒÿÿÿƒÿÿÿ
+0/.112-,7 765343! 3 45833!839;:7;766;;1
Z<HñÿÿÿöÿÿÿñÿÿÿØÿÿÿìÿÿÿØÿÿÿûÿÿÿ¿ÿÿÿ¿ÿÿÿØÿÿÿØÿÿÿìÿÿÿöÿÿÿƒÿÿÿçÿÿÿƒÿÿÿûÿÿÿƒÿÿÿƒÿÿÿ
 tÿÿÿöÿÿÿtÿÿÿ
 ¿ÿÿÿöÿÿÿ¿ÿÿÿƒÿÿÿ
 
@@ -645,7 +722,7 @@ CastleFrankenstein;
 
 
 $%*$*+'&('()&((	$++
-0/.112-,7 765343! 3 45833!839;:7;766;;1
Z<HñÿÿÿñÿÿÿØÿÿÿìÿÿÿØÿÿÿûÿÿÿ¿ÿÿÿ¿ÿÿÿØÿÿÿØÿÿÿìÿÿÿöÿÿÿƒÿÿÿçÿÿÿƒÿÿÿûÿÿÿƒÿÿÿƒÿÿÿ
+0/.112-,7 765343! 3 45833!839;:7;766;;1
Z<HñÿÿÿñÿÿÿØÿÿÿìÿÿÿØÿÿÿûÿÿÿ¿ÿÿÿ¿ÿÿÿØÿÿÿØÿÿÿìÿÿÿöÿÿÿƒÿÿÿçÿÿÿƒÿÿÿûÿÿÿƒÿÿÿƒÿÿÿ
 tÿÿÿöÿÿÿtÿÿÿ
 ¿ÿÿÿöÿÿÿ¿ÿÿÿƒÿÿÿ
 
@@ -670,18 +747,18 @@ CastleFrankenstein;
 
 
 $%*$*+'&('()&((	$++
-0/.112-,7 765343! 3 45833!839;:7;766;;1
,ÎÿÿÿÎÿÿÿûÿÿÿçÿÿÿûÿÿÿçÿÿÿµÿÿÿ�ÿÿÿƒÿÿÿ�ÿÿÿâÿÿÿµÿÿÿâÿÿÿûÿÿÿÎÿÿÿûÿÿÿÎÿÿÿûÿÿÿûÿÿÿçÿÿÿûÿÿÿûÿÿÿçÿÿÿûÿÿÿµÿÿÿûÿÿÿ�ÿÿÿûÿÿÿ�ÿÿÿâÿÿÿûÿÿÿµÿÿÿâÿÿÿ�ÿÿÿµÿÿÿâÿÿÿµÿÿÿâÿÿÿ�ÿÿÿ�ÿÿÿûÿÿÿµÿÿÿûÿÿÿâÿÿÿµÿÿÿûÿÿÿâÿÿÿ�ÿÿÿûÿÿÿ	
+0/.112-,7 765343! 3 45833!839;:7;766;;1
,ÎÿÿÿÎÿÿÿûÿÿÿçÿÿÿûÿÿÿçÿÿÿµÿÿÿ�ÿÿÿƒÿÿÿ�ÿÿÿâÿÿÿµÿÿÿâÿÿÿûÿÿÿÎÿÿÿûÿÿÿÎÿÿÿûÿÿÿûÿÿÿçÿÿÿûÿÿÿûÿÿÿçÿÿÿûÿÿÿµÿÿÿûÿÿÿ�ÿÿÿûÿÿÿ�ÿÿÿâÿÿÿûÿÿÿµÿÿÿâÿÿÿ�ÿÿÿµÿÿÿâÿÿÿµÿÿÿâÿÿÿ�ÿÿÿ�ÿÿÿûÿÿÿµÿÿÿûÿÿÿâÿÿÿµÿÿÿûÿÿÿâÿÿÿ�ÿÿÿûÿÿÿ	
 	
 
 		

	
		
 	
 
 	

-
÷ÿÿÿ÷ÿÿÿñÿÿÿ÷ÿÿÿ	ôÿÿÿ	÷ÿÿÿ		øÿÿÿçÿÿÿìÿÿÿçÿÿÿìÿÿÿçÿÿÿøÿÿÿøÿÿÿçÿÿÿðÿÿÿçÿÿÿðÿÿÿçÿÿÿøÿÿÿçÿÿÿçÿÿÿ			
	
		
+
÷ÿÿÿ÷ÿÿÿñÿÿÿ÷ÿÿÿ	ôÿÿÿ	÷ÿÿÿ		øÿÿÿçÿÿÿìÿÿÿçÿÿÿìÿÿÿçÿÿÿøÿÿÿøÿÿÿçÿÿÿðÿÿÿçÿÿÿðÿÿÿçÿÿÿøÿÿÿçÿÿÿçÿÿÿ			
	
		
 			
 
 
-


(Øÿÿÿ(ØÿÿÿØÿÿÿØÿÿÿìÿÿÿÎÿÿÿÎÿÿÿìÿÿÿ‚‚ìÿÿÿ‚ìÿÿÿìÿÿÿ‚öÿÿÿâÿÿÿ‚
+


(Øÿÿÿ(ØÿÿÿØÿÿÿØÿÿÿìÿÿÿÎÿÿÿÎÿÿÿìÿÿÿ‚‚ìÿÿÿ‚ìÿÿÿìÿÿÿ‚öÿÿÿâÿÿÿ‚
 âÿÿÿ‚ìÿÿÿ
 
 
diff --git a/TempleOS/Demo/Games/ChessNet.CPP b/TempleOS/Demo/Games/ChessNet.CPP
index bbd92a2..4e0e104 100644
Binary files a/TempleOS/Demo/Games/ChessNet.CPP and b/TempleOS/Demo/Games/ChessNet.CPP differ
diff --git a/TempleOS/Demo/Games/CircleTrace.CPP b/TempleOS/Demo/Games/CircleTrace.CPP
index ffe4dc1..32d6550 100644
--- a/TempleOS/Demo/Games/CircleTrace.CPP
+++ b/TempleOS/Demo/Games/CircleTrace.CPP
@@ -1,5 +1,8 @@
 //Practice tracing circles
 
+//Giotto, a famous artist, drew a freehand circle as a portfolio for a job.
+
+
 AcctRegSetDftEntry("TempleOS/CircleTrace","F64 best_score=999;\n");
 AcctRegExeBranch("TempleOS/CircleTrace");
 
@@ -17,7 +20,7 @@ U0 SongTask(I64)
 U0 DrawIt(CTask *task,CDC *)
 {
   U8 buf[128];
-  SPrintF(buf,"Error:%6.3f  Time:%6.3f  Score:%6.3f  Best:%8.3f",avg_error,elapsed_time,score,best_score);
+  SPrint(buf,"Error:%6.3f  Time:%6.3f  Score:%6.3f  Best:%8.3f",avg_error,elapsed_time,score,best_score);
   PlotWinStr(task,buf,BLACK<<4+WHITE,0,0);
 }
 
diff --git a/TempleOS/Demo/Games/Coach.CPP b/TempleOS/Demo/Games/Coach.CPP
index 5a7e634..afd3a05 100644
Binary files a/TempleOS/Demo/Games/Coach.CPP and b/TempleOS/Demo/Games/Coach.CPP differ
diff --git a/TempleOS/Demo/Games/Collision.CPP b/TempleOS/Demo/Games/Collision.CPP
index f0ca00f..f4175e7 100644
Binary files a/TempleOS/Demo/Games/Collision.CPP and b/TempleOS/Demo/Games/Collision.CPP differ
diff --git a/TempleOS/Demo/Games/Digits.CPP b/TempleOS/Demo/Games/Digits.CPP
index 30caad4..8fad0e2 100644
--- a/TempleOS/Demo/Games/Digits.CPP
+++ b/TempleOS/Demo/Games/Digits.CPP
@@ -5,17 +5,18 @@
 
 //See $LK,"ST_RAINBOW_10","FF:::/TempleOS/Adam/Gr/GrScreen.CPP,ST_RAINBOW_10"$
 
-U0 ShowDigit(U8 ch)
+U0 PrintDigit(U8 ch)
 {
 //The %Z code displays a Define subentry
-  "$$FG,%Z$$%d$$FG$$",ch-'0',"ST_RAINBOW_10",ch-'0';
+  if ('0'<=ch<='9')
+    "$$FG,%Z$$%d$$FG$$",ch-'0',"ST_RAINBOW_10",ch-'0';
 }
 
-U0 ShowPattern(U8 *st)
+U0 PrintPattern(U8 *st)
 {
   U8 ch;
   while (ch=*st++)
-    ShowDigit(ch);
+    PrintDigit(ch);
   NewLine;
 }
 
@@ -33,12 +34,11 @@ U0 Digits()
   "Try to remember the digits and enter them.  "
   "They are colored based on electrical "
   "engineering color codes.\n";
-  for (i=0;i<10;i++) {
+  for (i=0;i<10;i++)
     "$$FG,%Z$$%d: %Z\n",i,"ST_RAINBOW_10",i,i,"ST_RAINBOW_10";
-  }
   "$$FG$$\n"; //set to default background
-  if (!PressAKey) goto dg_done;
-
+  ch=PressAKey;
+  if (ch==CH_ESC||ch==CH_SHIFT_ESC) goto dg_done;
   while (TRUE) {
 restart:
     num=0;
@@ -49,25 +49,25 @@ restart:
       "$$WW,1$$$$BD,DKGRAY$$$$FD,WHITE$$\n";
       "Pattern\nLength:%d\n\n",num+1;
       answer[num++]=RandU32%10+'0';
-      ShowPattern(answer);
-      if (!PressAKey) goto dg_done;
-
+      PrintPattern(answer);
+      ch=PressAKey;
+      if (ch==CH_ESC||ch==CH_SHIFT_ESC) goto dg_done;
       DocClear;
       "$$WW,1$$$$BD,DKGRAY$$$$FD,WHITE$$\n";
       "Guess\nLength:%d\n\n",num;
       for (i=0;i",2$
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+$SP,"<3>",3$
 
 
 
@@ -424,24 +446,35 @@ U0 DrawIt(CTask *,CDC *dc)
 
 
 
-Cores render strips.  The strips are wider toward the horizon by span_factor
-and overlap +/- 15%. The cores check the panel map array
-and render the panel for each square and mark-it done.
+
+
+
+
+
+
+
+
+
+
+
+Cores render strips that +/- 15%. The cores check the panel map array
+and render the panel for each square, marking-it done.
 
 The depth buf is not locked in the graphic routines
 so we get some glitches.
 
 */
 
+I64 update_jiffy_limit;
+
 U0 MPDrawIt(CTask *task,CDC *dc)
 {
 //This is identical to the previous routine but is run by core#1
-  I64 i,j,ww,hh,*s2w,x1,y1,z1, xx,yy,
-      xh,yh,zh, yh2,xh2, reg x1w, reg y1w, x1h,y1h,
+  I64 j,strip_width,*s2w,x1,y1,z1, xx,yy,
+      xh,yh,zh,yh2,xh2,x1h,y1h,x1wa,y1wa,x1wb,y1wb,
       x3,y3,z3,
       cx=task->win_pixel_width>>1,
       cy=task->win_pixel_height>>1;
-  F64 h_grid_size,t=tT;
   Panel reg *tempp;
 
   xx=x/(MAP_SCALE*COORDINATE_SCALE);
@@ -497,7 +530,6 @@ U0 MPDrawIt(CTask *task,CDC *dc)
     yy+=y3;
   }
 
-  h_grid_size=4.0*v_grid_size*(Gs->num+span_factor)/span_factor;
   if (Gs->num&1) { //alternate left-right,right-left
     yh2=-yh;
     xh2=-xh;
@@ -506,11 +538,11 @@ U0 MPDrawIt(CTask *task,CDC *dc)
     xh2=xh;
   }
 
-  ww=h_grid_size;
-  hh=1.30*v_grid_size; //Cores overlap 15% on each side of strip.
   //Calc starting point.
-  x1h=xx<<8+0.5*yh2*h_grid_size+xh*v_grid_size*(Gs->num+1.15);
-  y1h=yy<<8-0.5*xh2*h_grid_size+yh*v_grid_size*(Gs->num+1.15);
+  x1wa=xx<<8+xh*strip_height>>1/1.3*(Gs->num+1.15);
+  y1wa=yy<<8+yh*strip_height>>1/1.3*(Gs->num+1.15);
+  x1wb=0;
+  y1wb=0;
 
   xh=-xh; //Back to front to help with depth.
   yh=-yh;
@@ -518,14 +550,11 @@ U0 MPDrawIt(CTask *task,CDC *dc)
   //Take half steps to cover whole grid.
   xh>>=1;  yh>>=1;
   xh2>>=1; yh2>>=1;
-  ww<<=1;
-  hh<<=1;
-
-  for (j=0;j>8; y1=y1w>>8;
+  for (strip_width=0;sys_jiffies>8; y1=y1h>>8;
       if (0<=x1num)) {
 	    if (tempp->cnt>8*(1.1-Gs->idle_factor)) {
@@ -535,14 +564,22 @@ U0 MPDrawIt(CTask *task,CDC *dc)
 	      tempp->cnt++;
 	  }
       }
-      x1w-=yh2;
-      y1w+=xh2;
+      x1h+=xh;
+      y1h+=yh;
+    }
+    x1wb-=yh2;
+    y1wb+=xh2;
+    if (strip_width&1) {
+      x1wa-=x1wb;
+      y1wa-=y1wb;
+    } else {
+      x1wa+=x1wb;
+      y1wa+=y1wb;
     }
-    x1h+=xh;
-    y1h+=yh;
   }
+
   Free(s2w);
-  mp.update_done_time[Gs->num]=Limit(tT-t,.001,0.5);
+  mp.strip_width[Gs->num]=strip_width;
   LBtr(&mp.update_not_done_flags,Gs->num);
 }
 
@@ -660,12 +697,13 @@ U0 DrawHorizon(CDC *dc)
 U0 BSPEagleDive()
 {
   CDC *dc=DCAlias(main_dc,Fs);
-  F64 max_t;
   I64 i,xx,yy,height,bkcolor,
       cx=Fs->win_pixel_width>>1,
       cy=Fs->win_pixel_height>>1;
+  F64 min_strip_width;
   Fish *tempf;
 
+  update_jiffy_limit=sys_jiffies+JIFFY_FREQ/40;
   MemSet(panels_processed_bitmap,0,(num_panels+7)>>3);
 
   xx=x/(MAP_SCALE*COORDINATE_SCALE);
@@ -705,18 +743,10 @@ U0 BSPEagleDive()
     while (mp.update_not_done_flags)
       Sleep(1);
 
-    max_t=mp.update_done_time[0];
-    for (i=1;iwin_max_refresh)/max_t;
-    v_grid_size=Limit(v_grid_size,20,200);
-    //Regulate how much grid expands in the distance.
-    if (mp.mp_cnt>1)
-      span_factor*=0.90+0.10*mp.update_done_time[mp.mp_cnt-1]/mp.update_done_time[0];
-    span_factor=Limit(span_factor,.30,3.0);
-
+    min_strip_width=MAX_F64;
+    for (i=0;icolor=bkcolor;
     GrRect(dc,0,0,dc->width,dc->height);
@@ -729,19 +759,19 @@ U0 BSPEagleDive()
   dc->flags&=~DCF_TRANSFORMATION;
   GrLine3(dc,cx+5,cy,0,cx-5,cy,0);
   GrLine3(dc,cx,cy+5,0,cx,cy-5,0);
-  GrPrintF(dc,0,0,"é1:%5.1f è:%5.1f é2:%5.1f Box:%5.1f",
-      é1*180/ã,è*180/ã,é2*180/ã,v_grid_size);
-  GrPrintF(dc,0,FONT_HEIGHT,"x:%5.1f y:%5.1f z:%5.1f height:%3d score:%d high:%d",
+  GrPrint(dc,0,0,"é1:%5.1f è:%5.1f é2:%5.1f Strip:%5d",
+      é1*180/ã,è*180/ã,é2*180/ã,strip_height);
+  GrPrint(dc,0,FONT_HEIGHT,"x:%5.1f y:%5.1f z:%5.1f height:%3d score:%d high:%d",
       ToF64(x)/COORDINATE_SCALE,ToF64(y)/COORDINATE_SCALE,ToF64(z)/COORDINATE_SCALE,
       height,game_score,best_score);
 
   if (game_over && Blink) {
     dc->color=RED;
-    GrPutS(dc,(Fs->win_pixel_width-9*FONT_WIDTH)/2,
+    GrPrint(dc,(Fs->win_pixel_width-9*FONT_WIDTH)/2,
 	(Fs->win_pixel_height-FONT_HEIGHT)/2,"Game Over");
   } else if (tT-game_t0<5.0 && Blink) {
     dc->color=WHITE;
-    GrPutS(dc,(Fs->win_pixel_width-10*FONT_WIDTH)/2,
+    GrPrint(dc,(Fs->win_pixel_width-10*FONT_WIDTH)/2,
 	(Fs->win_pixel_height-FONT_HEIGHT)/2,"Catch Fish");
   }
 //We made an alias of this we don't want freed.
@@ -774,6 +804,7 @@ U0 AnimateTask(I64)
       z+=z1;
       Free(s2w);
       x1=x/COORDINATE_SCALE; y1=y/COORDINATE_SCALE; z1=z/COORDINATE_SCALE;
+
       if (z1win_max_refresh=30.0;
 
-  v_grid_size=64.0;
-  span_factor=1.0;
+  strip_height=128;
   è	=-90.0*ã/180.0;
   é1=  0.0*ã/180.0;
   é2=  0.0*ã/180.0;
@@ -973,4 +1004,12 @@ U0 EagleDive(I64 _mp_cnt=MP_MAX_PROCESSORS)
 }
 
 EagleDive;
-.¨¢¢¨¢¨¢¨˜˜¢ˆ¢ˆxx¢h¢hXX¢H¢H88¢(¢(¢¨¨""2¨2¨BBR¨R¨bbr¨r¨‚‚’¨’!r8P"!t2R!v,T!N*p@!L.lD!L4hH!Tx&!Xz !\|!ZDt�àÿÿÿýÿÿÿýÿÿÿ""ÿÿÿÿ+ÿÿÿÿ+&&	üÿÿÿ	üÿÿÿáÿÿÿáÿÿÿ)
\ No newline at end of file
+�
+àÿÿÿýÿÿÿ
+ýÿÿÿ"
+"ÿÿÿÿ+
+ÿÿÿÿ+&
+&
+	üÿÿÿ
+	üÿÿÿáÿÿÿ
+áÿÿÿ):_¡‘éÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŠëÿÿÿýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ







ÿ







ÿ







ÿ







ÿ







ÿ







ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
\ No newline at end of file
diff --git a/TempleOS/Demo/Games/FlatTops.CPP b/TempleOS/Demo/Games/FlatTops.CPP
index 10dc7b6..cc7b770 100644
--- a/TempleOS/Demo/Games/FlatTops.CPP
+++ b/TempleOS/Demo/Games/FlatTops.CPP
@@ -163,7 +163,7 @@ U0 DrawIt(CTask *task,CDC *dc)
   tempo=obj_root.next;
   while (tempo!=&obj_root) {
     if (tempo->flags&OF_ACTIVE && tempo->flags&OF_SHIP) {
-      SpritePlotRotZ3b(dc,tempo->x,tempo->y,0,imgs[tempo->player][tempo->type],tempo->é+ã/2);
+      SpritePlotRotZ3B(dc,tempo->x,tempo->y,0,imgs[tempo->player][tempo->type],tempo->é+ã/2);
       if (Blink) {
 	dc->color=BLACK;
 	GrLine(dc,tempo->x+5,tempo->y,tempo->x+5+10,tempo->y);
@@ -198,7 +198,7 @@ U0 DrawIt(CTask *task,CDC *dc)
   tempo=obj_root.next;
   while (tempo!=&obj_root) {
     if (tempo->flags&OF_ACTIVE && !(tempo->flags&OF_SHIP))
-      SpritePlotRotZ3b(dc,tempo->x,tempo->y,0,imgs[tempo->player][tempo->type],tempo->é+ã/2);
+      SpritePlotRotZ3B(dc,tempo->x,tempo->y,0,imgs[tempo->player][tempo->type],tempo->é+ã/2);
     if (tempo->flags&OF_SHOOTING) {
       dc->color=LTRED;
       GrLine(dc,tempo->x,tempo->y,tempo->target_x,tempo->target_y,3);
@@ -221,20 +221,20 @@ U0 DrawIt(CTask *task,CDC *dc)
   }
 
   dc->color=YELLOW;
-  GrPrintF(dc,-task->win_scroll_x,-task->win_scroll_y,"Game Speed: %5.2f",game_speed);
+  GrPrint(dc,-task->win_scroll_x,-task->win_scroll_y,"Game Speed: %5.2f",game_speed);
   dc->color=LTCYAN;
-  GrPrintF(dc,-task->win_scroll_x,-task->win_scroll_y+	FONT_HEIGHT,"Player 1: %d",num_alive[0]);
+  GrPrint(dc,-task->win_scroll_x,-task->win_scroll_y+	FONT_HEIGHT,"Player 1: %d",num_alive[0]);
   dc->color=LTPURPLE;
-  GrPrintF(dc,-task->win_scroll_x,-task->win_scroll_y+2*FONT_HEIGHT,"Player 2: %d",num_alive[1]);
+  GrPrint(dc,-task->win_scroll_x,-task->win_scroll_y+2*FONT_HEIGHT,"Player 2: %d",num_alive[1]);
 
   if ((!num_alive[0]||!num_alive[1]) && Blink) {
     if (!num_alive[1]) {
       dc->color=LTGREEN;
-      GrPutS(dc,task->win_pixel_width>>1 -(FONT_WIDTH*14)/2-task->win_scroll_x,
+      GrPrint(dc,task->win_pixel_width>>1 -(FONT_WIDTH*14)/2-task->win_scroll_x,
 	      task->win_pixel_height>>1-FONT_HEIGHT/2-task->win_scroll_y,"Game Completed");
     } else {
       dc->color=LTRED;
-      GrPutS(dc,task->win_pixel_width>>1 -(FONT_WIDTH*9)/2-task->win_scroll_x,
+      GrPrint(dc,task->win_pixel_width>>1 -(FONT_WIDTH*9)/2-task->win_scroll_x,
 	      task->win_pixel_height>>1-FONT_HEIGHT/2-task->win_scroll_y,"Game Over");
     }
   }
@@ -766,4 +766,8 @@ nv_done:
 }
 
 FlatTops;
-r&úÿÿÿéÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿr&úÿÿÿéÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ


ÿ

ÿ

ÿ

ÿ

ÿ
ÿ
ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿb	%üÿÿÿìÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿb	%üÿÿÿìÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ

ÿÿÿ

ÿÿÿÿ



ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ0þÿÿÿÿÿÿÿ0þÿÿÿÿÿÿÿ

\ No newline at end of file
+r&úÿÿÿéÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿr&úÿÿÿéÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ


ÿ

ÿ

ÿ

ÿ

ÿ
ÿ
ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿb	%üÿÿÿìÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿb	%üÿÿÿìÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ

ÿÿÿ

ÿÿÿÿ



ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ0
+þÿÿÿ
+ÿÿÿÿ0
+þÿÿÿ
+ÿÿÿÿ

\ No newline at end of file
diff --git a/TempleOS/Demo/Games/Halogen.CPP b/TempleOS/Demo/Games/Halogen.CPP
index 0806f78..b47a833 100644
--- a/TempleOS/Demo/Games/Halogen.CPP
+++ b/TempleOS/Demo/Games/Halogen.CPP
@@ -39,7 +39,7 @@ U0 DrawIt(CTask *task,CDC *dc)
 
   dc->color=YELLOW;
   if (crash)
-    GrPutS(dc,w>>1-FONT_WIDTH*4,(h-FONT_HEIGHT)>>1,"Game Over");
+    GrPrint(dc,w>>1-FONT_WIDTH*4,(h-FONT_HEIGHT)>>1,"Game Over");
   Preempt(old_preempt);
 }
 
diff --git a/TempleOS/Demo/Games/MassSpring.CPP b/TempleOS/Demo/Games/MassSpring.CPP
index 7a716d1..8f42635 100644
--- a/TempleOS/Demo/Games/MassSpring.CPP
+++ b/TempleOS/Demo/Games/MassSpring.CPP
@@ -80,7 +80,7 @@ U0 PlaceSpring(MyMass *tempm1,MyMass *tempm2)
   MySpring *temps=CAlloc(sizeof(MySpring));
   temps->end1=tempm1;
   temps->end2=tempm2;
-  temps->constant=10000;
+  temps->const=10000;
   temps->rest_len=100;
   QueIns(temps,ode->last_spring);
 }
diff --git a/TempleOS/Demo/Games/Maze.CPP b/TempleOS/Demo/Games/Maze.CPP
index e27704e..5df563c 100644
--- a/TempleOS/Demo/Games/Maze.CPP
+++ b/TempleOS/Demo/Games/Maze.CPP
@@ -16,10 +16,14 @@ I16 stk_dir[STK_SIZE];
 
 U0 DrawIt(CTask *task,CDC *)
 {
-  I64 i,j;
-  for (j=0;j>8,0,0);
   PlotWinStr(task,"Solve maze starting at right click.",ATTR>>8,0,1);
 }
@@ -75,6 +79,7 @@ U0 Maze()
 
   SettingsPush; //See $LK,"SettingsPush","MN:SettingsPush"$
   WinMax;
+  WinBorder;
   WordStat;
   DocCursor;
   DocClear;
diff --git a/TempleOS/Demo/Games/RainDrops.CPP b/TempleOS/Demo/Games/RainDrops.CPP
index 092aa32..51a5090 100644
--- a/TempleOS/Demo/Games/RainDrops.CPP
+++ b/TempleOS/Demo/Games/RainDrops.CPP
@@ -27,7 +27,7 @@ U0 DrawFrame(CTask *task,CDC *dc)
     GrRect(dc,cx-2,cy-2,5,5);
   }
   dc->color=BLACK;
-  GrPutS(dc,cx+10,cy,"Press '1'");
+  GrPrint(dc,cx+10,cy,"Press '1'");
 
   dc->color=LTRED;
   GrRect(dc,cx-20,cy+60,41,21);
@@ -40,7 +40,7 @@ U0 DrawFrame(CTask *task,CDC *dc)
     GrRect(dc,cx-2,cy+100-2,5,5);
   }
   dc->color=BLACK;
-  GrPutS(dc,cx+10,cy+100,"Press '2'");
+  GrPrint(dc,cx+10,cy+100,"Press '2'");
 
   dc->color=LTRED;
   GrLine(dc,cx+400,cy+100,cx-250,cy+200);
diff --git a/TempleOS/Demo/Games/RawHide.CPP b/TempleOS/Demo/Games/RawHide.CPP
index a8c29b8..e613cbd 100644
--- a/TempleOS/Demo/Games/RawHide.CPP
+++ b/TempleOS/Demo/Games/RawHide.CPP
@@ -238,14 +238,14 @@ U0 DrawIt(CTask *task,CDC *dc)
     dc->color=RED;
     t=tf-t0;
     if (Blink)
-      GrPutS(dc,(task->win_pixel_width-FONT_WIDTH*14)>>1-task->win_scroll_x,
+      GrPrint(dc,(task->win_pixel_width-FONT_WIDTH*14)>>1-task->win_scroll_x,
 		  (task->win_pixel_height-FONT_HEIGHT)>>1-task->win_scroll_y,
 	"Game Completed");
   } else {
     dc->color=BLACK;
     t=tT-t0;
   }
-  GrPrintF(dc,-task->win_scroll_x,-task->win_scroll_y,"Time:%7.2fs  Best:%7.2fs",t,best_score);
+  GrPrint(dc,-task->win_scroll_x,-task->win_scroll_y,"Time:%7.2fs  Best:%7.2fs",t,best_score);
 }
 
 
@@ -520,4 +520,4 @@ rh_done:
 }
 
 RawHide;
- òöÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿböÿÿÿôÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂöÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
\ No newline at end of file
+ òöÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿböÿÿÿôÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂöÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
\ No newline at end of file
diff --git a/TempleOS/Demo/Games/Rocket.CPP b/TempleOS/Demo/Games/Rocket.CPP
index 698e39d..60c6fac 100644
Binary files a/TempleOS/Demo/Games/Rocket.CPP and b/TempleOS/Demo/Games/Rocket.CPP differ
diff --git a/TempleOS/Demo/Games/RocketScience.CPP b/TempleOS/Demo/Games/RocketScience.CPP
index a7fd6db..4ac26f8 100644
Binary files a/TempleOS/Demo/Games/RocketScience.CPP and b/TempleOS/Demo/Games/RocketScience.CPP differ
diff --git a/TempleOS/Demo/Games/Squirt.CPP b/TempleOS/Demo/Games/Squirt.CPP
index 9e908ad..f103218 100644
--- a/TempleOS/Demo/Games/Squirt.CPP
+++ b/TempleOS/Demo/Games/Squirt.CPP
@@ -74,7 +74,7 @@ U0 DrawIt(CTask *task,CDC *dc)
     ode->drag_v2=0.01; //Let hose settle during start-up
     ode->drag_v3=0.0001;
     dc->color=RED;
-    GrPutS(dc,(GR_WIDTH-FONT_WIDTH*6)>>1,GR_HEIGHT>>1,"Squirt");
+    GrPrint(dc,(GR_WIDTH-FONT_WIDTH*6)>>1,GR_HEIGHT>>1,"Squirt");
     return;
   } else {
     ode->drag_v2=0.0005;
@@ -96,7 +96,7 @@ U0 DrawIt(CTask *task,CDC *dc)
   dx=tempm->x-tempm1->x;
   dy=tempm->y-tempm1->y;
   nozzle_é=Wrap(Arg(dx,dy));
-  SpritePlotRotZ3b(dc,tempm->x,tempm->y,0,$IB,"<2>",2$,nozzle_é);
+  SpritePlotRotZ3B(dc,tempm->x,tempm->y,0,$IB,"<2>",2$,nozzle_é);
   dc->color=BLACK;
   GrCircle(dc,tempm->x,tempm->y,tempm->radius);
   dc->color=GREEN;
@@ -217,7 +217,7 @@ MySpring PlaceSpring(MyMass *tempm1,MyMass *tempm2)
   MySpring *temps=CAlloc(sizeof(MySpring));
   temps->end1=tempm1;
   temps->end2=tempm2;
-  temps->constant=20000;
+  temps->const=20000;
   QueIns(temps,ode->last_spring);
   return temps;
 }
@@ -420,4 +420,4 @@ sq_done: //Don't goto out of try
 }
 
 Squirt;
-R÷ÿÿÿìÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ2	ÿÿÿÿûÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿJýÿÿÿýÿÿÿÿÿÿ				ÿÿ	ÿ	ÿÿ			ÿ				ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
\ No newline at end of file
+R÷ÿÿÿìÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ2	ÿÿÿÿûÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿJýÿÿÿýÿÿÿÿÿÿ				ÿÿ	ÿ	ÿÿ			ÿ				ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
\ No newline at end of file
diff --git a/TempleOS/Demo/Games/Stadium/Stadium.CPP b/TempleOS/Demo/Games/Stadium/Stadium.CPP
index 97ca304..bec25a2 100644
Binary files a/TempleOS/Demo/Games/Stadium/Stadium.CPP and b/TempleOS/Demo/Games/Stadium/Stadium.CPP differ
diff --git a/TempleOS/Demo/Games/Stadium/Stadium.TXT b/TempleOS/Demo/Games/Stadium/Stadium.TXT
index dd7e87b..34419ee 100644
Binary files a/TempleOS/Demo/Games/Stadium/Stadium.TXT and b/TempleOS/Demo/Games/Stadium/Stadium.TXT differ
diff --git a/TempleOS/Demo/Games/TheDead.CPP b/TempleOS/Demo/Games/TheDead.CPP
index 6423d24..783dcf8 100644
Binary files a/TempleOS/Demo/Games/TheDead.CPP and b/TempleOS/Demo/Games/TheDead.CPP differ
diff --git a/TempleOS/Demo/Games/Varoom.CPP b/TempleOS/Demo/Games/Varoom.CPP
index 68e0bbc..c8ece43 100644
Binary files a/TempleOS/Demo/Games/Varoom.CPP and b/TempleOS/Demo/Games/Varoom.CPP differ
diff --git a/TempleOS/Demo/Games/Wenceslas.CPP b/TempleOS/Demo/Games/Wenceslas.CPP
index 12b0b2f..002226c 100644
--- a/TempleOS/Demo/Games/Wenceslas.CPP
+++ b/TempleOS/Demo/Games/Wenceslas.CPP
@@ -164,7 +164,7 @@ U0 DrawIt(CTask *task,CDC *dc)
       dc->color=LTCYAN;
     else
       dc->color=CYAN;
-    SpritePlotRotMat3b(dc,tempp->x,tempp->y,0,$IB,"<2>",2$,r);
+    SpritePlotRotMat3B(dc,tempp->x,tempp->y,0,$IB,"<2>",2$,r);
     tempp=tempp->next;
   }
  
@@ -172,7 +172,7 @@ U0 DrawIt(CTask *task,CDC *dc)
   GrIdentEqu(r);
   GrRotYEqu(r,king_é+ã/2);
   GrRotXEqu(r,ã/6);
-  SpritePlotRotMat3b(dc,king_x,king_y,0,$IB,"<1>",1$,r);
+  SpritePlotRotMat3B(dc,king_x,king_y,0,$IB,"<1>",1$,r);
 
   dc->pen_width=1;
   dc->color=WHITE;
@@ -183,13 +183,13 @@ U0 DrawIt(CTask *task,CDC *dc)
   if (tf) {
     dc->color=LTRED;
     if (Blink)
-      GrPutS(dc,w/2-(FONT_WIDTH*14)/2,h/2+FONT_HEIGHT,"Game Completed");
+      GrPrint(dc,w/2-(FONT_WIDTH*14)/2,h/2+FONT_HEIGHT,"Game Completed");
     tt=tf;
   } else {
     tt=tT;
   }
   dc->color=LTBLUE;
-  GrPrintF(dc,0,0,"Freezing Peasants:%d Time:%3.2f Best:%3.2f",
+  GrPrint(dc,0,0,"Freezing Peasants:%d Time:%3.2f Best:%3.2f",
     not_stopped_cnt,tt-t0,best_score);
 
   Preempt(old_preempt);
@@ -529,12 +529,115 @@ ws_done:
 }
 
 Wenceslas;
-yþÿÿÿÚÿÿÿÊÿÿÿþÿÿÿÚÿÿÿäÿÿÿÖÿÿÿ
-ÐÿÿÿúÿÿÿÖÿÿÿôÿÿÿìÿÿÿüÿÿÿØÿÿÿúÿÿÿðÿÿÿüÿÿÿðÿÿÿÖÿÿÿüÿÿÿÔÿÿÿòÿÿÿæÿÿÿÒÿÿÿöÿÿÿÂÿÿÿþÿÿÿÔÿÿÿòÿÿÿ¼ÿÿÿþÿÿÿÎÿÿÿ¼ÿÿÿþÿÿÿÔÿÿÿÊÿÿÿþÿÿÿØÿÿÿäÿÿÿÚÿÿÿÀÿÿÿþÿÿÿÎÿÿÿ´ÿÿÿÊÿÿÿªÿÿÿ¶ÿÿÿøÿÿÿÈÿÿÿ²ÿÿÿ¬ÿÿÿÆÿÿÿ
-¶ÿÿÿÌÿÿÿ ÌÿÿÿüÿÿÿÔÿÿÿèÿÿÿÚÿÿÿÖÿÿÿ*ðÿÿÿüÿÿÿðÿÿÿðÿÿÿèÿÿÿþÿÿÿòÿÿÿüÿÿÿæÿÿÿþÿÿÿæÿÿÿàÿÿÿþÿÿÿèÿÿÿüÿÿÿòÿÿÿæÿÿÿðÿÿÿþÿÿÿâÿÿÿàÿÿÿàÿÿÿÞÿÿÿÞÿÿÿâÿÿÿÞÿÿÿÞÿÿÿýÿÿÿäÿÿÿâÿÿÿþÿÿÿäÿÿÿüÿÿÿèÿÿÿüÿÿÿèÿÿÿüÿÿÿòÿÿÿäÿÿÿêÿÿÿæÿÿÿþÿÿÿîÿÿÿìÿÿÿòÿÿÿxþÿÿÿèÿÿÿüÿÿÿòÿÿÿðÿÿÿèÿÿÿðÿÿÿüÿÿÿðÿÿÿþÿÿÿòÿÿÿüÿÿÿæÿÿÿþÿÿÿæÿÿÿàÿÿÿæÿÿÿðÿÿÿãöÿÿÿðÿÿÿøÿÿÿ
-ôÿÿÿðÿÿÿòÿÿÿîÿÿÿêÿÿÿöÿÿÿæÿÿÿúÿÿÿæÿÿÿöÿÿÿèÿÿÿøÿÿÿæÿÿÿæÿÿÿøÿÿÿîÿÿÿþÿÿÿòÿÿÿþÿÿÿöÿÿÿôÿÿÿîÿÿÿðÿÿÿðÿÿÿþÿÿÿüÿÿÿþÿÿÿäÿÿÿþÿÿÿäÿÿÿîÿÿÿäÿÿÿöÿÿÿöÿÿÿöÿÿÿðÿÿÿøÿÿÿüÿÿÿüÿÿÿðÿÿÿ
-ðÿÿÿøÿÿÿúÿÿÿþÿÿÿúÿÿÿúÿÿÿðÿÿÿüÿÿÿúÿÿÿ
-üÿÿÿüÿÿÿøÿÿÿúÿÿÿøÿÿÿúÿÿÿðÿÿÿòÿÿÿìÿÿÿôöÿÿÿðÿÿÿøÿÿÿ
-ôÿÿÿðÿÿÿòÿÿÿîÿÿÿêÿÿÿöÿÿÿæÿÿÿúÿÿÿæÿÿÿöÿÿÿèÿÿÿøÿÿÿæÿÿÿæÿÿÿøÿÿÿîÿÿÿþÿÿÿòÿÿÿþÿÿÿöÿÿÿôÿÿÿîÿÿÿäÿÿÿúÿÿÿâÿÿÿúÿÿÿèÿÿÿúÿÿÿöÿÿÿòÿÿÿîÿÿÿöÿÿÿúÿÿÿöÿÿÿøÿÿÿðÿÿÿöÿÿÿäÿÿÿôÿÿÿôÿÿÿüÿÿÿêÿÿÿþÿÿÿþÿÿÿüÿÿÿôÿÿÿôÿÿÿöÿÿÿòÿÿÿâÿÿÿþÿÿÿúÿÿÿöÿÿÿòÿÿÿüÿÿÿøÿÿÿðÿÿÿøÿÿÿ
+y
+þÿÿÿÚÿÿÿ
+Êÿÿÿ
+þÿÿÿÚÿÿÿäÿÿÿ
+Öÿÿÿ
+Ðÿÿÿ
+úÿÿÿÖÿÿÿôÿÿÿìÿÿÿ
+üÿÿÿØÿÿÿúÿÿÿðÿÿÿ
+üÿÿÿðÿÿÿÖÿÿÿ
+üÿÿÿÔÿÿÿòÿÿÿæÿÿÿ
+ÒÿÿÿöÿÿÿÂÿÿÿ
+þÿÿÿÔÿÿÿòÿÿÿ¼ÿÿÿ
+þÿÿÿÎÿÿÿ¼ÿÿÿ
+þÿÿÿÔÿÿÿÊÿÿÿ
+þÿÿÿØÿÿÿäÿÿÿ
+ÚÿÿÿÀÿÿÿ
+þÿÿÿÎÿÿÿ´ÿÿÿ
+Êÿÿÿªÿÿÿ
+¶ÿÿÿøÿÿÿÈÿÿÿ
+²ÿÿÿ¬ÿÿÿ
+Æÿÿÿ
+¶ÿÿÿ
+Ìÿÿÿ Ìÿÿÿ
+üÿÿÿÔÿÿÿèÿÿÿÚÿÿÿ
+Öÿÿÿ*
+ðÿÿÿüÿÿÿ
+ðÿÿÿ
+ðÿÿÿèÿÿÿ
+þÿÿÿòÿÿÿüÿÿÿæÿÿÿ
+þÿÿÿæÿÿÿàÿÿÿ
+þÿÿÿèÿÿÿüÿÿÿòÿÿÿ
+æÿÿÿðÿÿÿ
+þÿÿÿâÿÿÿàÿÿÿ
+àÿÿÿÞÿÿÿ
+Þÿÿÿâÿÿÿ
+ÞÿÿÿÞÿÿÿ
+ýÿÿÿäÿÿÿâÿÿÿ
+þÿÿÿäÿÿÿüÿÿÿèÿÿÿ
+üÿÿÿèÿÿÿüÿÿÿòÿÿÿ
+äÿÿÿêÿÿÿ
+æÿÿÿþÿÿÿîÿÿÿ
+ìÿÿÿòÿÿÿx
+þÿÿÿèÿÿÿüÿÿÿòÿÿÿ
+ðÿÿÿèÿÿÿ
+ðÿÿÿüÿÿÿ
+ðÿÿÿ
+þÿÿÿòÿÿÿüÿÿÿæÿÿÿ
+þÿÿÿæÿÿÿàÿÿÿ
+æÿÿÿðÿÿÿã
+öÿÿÿðÿÿÿ
+øÿÿÿ
+ôÿÿÿ
+ðÿÿÿòÿÿÿ
+îÿÿÿ
+êÿÿÿ
+öÿÿÿæÿÿÿ
+úÿÿÿæÿÿÿöÿÿÿèÿÿÿ
+øÿÿÿæÿÿÿ
+æÿÿÿ
+øÿÿÿîÿÿÿ
+þÿÿÿòÿÿÿ
+þÿÿÿöÿÿÿ
+ôÿÿÿîÿÿÿ
+ðÿÿÿ
+ðÿÿÿþÿÿÿ
+üÿÿÿþÿÿÿäÿÿÿ
+þÿÿÿäÿÿÿîÿÿÿ
+äÿÿÿöÿÿÿöÿÿÿ
+öÿÿÿðÿÿÿøÿÿÿ
+üÿÿÿüÿÿÿðÿÿÿ
+
+ðÿÿÿøÿÿÿ
+úÿÿÿ
+þÿÿÿúÿÿÿúÿÿÿ
+ðÿÿÿüÿÿÿ
+úÿÿÿ
+üÿÿÿ
+üÿÿÿøÿÿÿ
+úÿÿÿøÿÿÿúÿÿÿðÿÿÿ
+òÿÿÿìÿÿÿô
+öÿÿÿðÿÿÿ
+øÿÿÿ
+ôÿÿÿ
+ðÿÿÿòÿÿÿ
+îÿÿÿ
+êÿÿÿ
+öÿÿÿæÿÿÿ
+úÿÿÿæÿÿÿöÿÿÿèÿÿÿ
+øÿÿÿæÿÿÿ
+æÿÿÿ
+øÿÿÿîÿÿÿ
+þÿÿÿòÿÿÿ
+þÿÿÿöÿÿÿ
+ôÿÿÿîÿÿÿ
+äÿÿÿ
+úÿÿÿâÿÿÿúÿÿÿ
+èÿÿÿúÿÿÿöÿÿÿ
+òÿÿÿîÿÿÿöÿÿÿúÿÿÿ
+öÿÿÿøÿÿÿðÿÿÿ
+öÿÿÿäÿÿÿôÿÿÿôÿÿÿ
+üÿÿÿêÿÿÿþÿÿÿþÿÿÿ
+üÿÿÿôÿÿÿ
+ôÿÿÿöÿÿÿ
+òÿÿÿâÿÿÿ
+þÿÿÿ
+úÿÿÿ
+öÿÿÿ
+òÿÿÿüÿÿÿ
+øÿÿÿðÿÿÿøÿÿÿ
+
 ôÿÿÿ
-üÿÿÿÒbŸžÎÿÿÿhÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ²-ôÿÿÿÔÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
\ No newline at end of file
+üÿÿÿÒbŸžÎÿÿÿhÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ²-ôÿÿÿÔÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
\ No newline at end of file
diff --git a/TempleOS/Demo/Games/Whap.CPP b/TempleOS/Demo/Games/Whap.CPP
index 2d3e990..811dc45 100644
--- a/TempleOS/Demo/Games/Whap.CPP
+++ b/TempleOS/Demo/Games/Whap.CPP
@@ -17,7 +17,7 @@ U0 DrawIt(CTask *task,CDC *dc)
     cy=task->win_pixel_height>>1;
   Bool snd_on=FALSE;
   dc->color=BLACK;
-  GrPutS(dc,0,0,"Protect your base.");
+  GrPrint(dc,0,0,"Protect your base.");
   GrRect(dc,cx-BASE_SIZE,cy-BASE_SIZE,BASE_SIZE*2,BASE_SIZE*2);
   dc->color=CYAN;
   GrRect(dc,cx-BASE_SIZE+2,cy-BASE_SIZE+2,BASE_SIZE*2-4,BASE_SIZE*2-4);
@@ -144,17 +144,17 @@ U0 Whap()
   springs[0].end1=&balls[1];
   springs[0].end2=&balls[2];
   springs[0].rest_len=15;
-  springs[0].constant=10000;
+  springs[0].const=10000;
   QueIns(&springs[0],ode->last_spring);
   springs[1].end1=&balls[1];
   springs[1].end2=&balls[3];
   springs[1].rest_len=15;
-  springs[1].constant=10000;
+  springs[1].const=10000;
   QueIns(&springs[1],ode->last_spring);
   springs[2].end1=&balls[2];
   springs[2].end2=&balls[3];
   springs[2].rest_len=sqrt2*15;
-  springs[2].constant=10000;
+  springs[2].const=10000;
   QueIns(&springs[2],ode->last_spring);
 
   collision_t=0;
diff --git a/TempleOS/Demo/Games/Zing.CPP b/TempleOS/Demo/Games/Zing.CPP
index 5a3e6e5..ceabaec 100644
Binary files a/TempleOS/Demo/Games/Zing.CPP and b/TempleOS/Demo/Games/Zing.CPP differ
diff --git a/TempleOS/Demo/Games/ZoneOut.CPP b/TempleOS/Demo/Games/ZoneOut.CPP
index 61b3d58..5d0da19 100644
Binary files a/TempleOS/Demo/Games/ZoneOut.CPP and b/TempleOS/Demo/Games/ZoneOut.CPP differ
diff --git a/TempleOS/Demo/GlblVars.CPP b/TempleOS/Demo/GlblVars.CPP
index 1d133a2..afa09d8 100644
--- a/TempleOS/Demo/GlblVars.CPP
+++ b/TempleOS/Demo/GlblVars.CPP
@@ -55,7 +55,7 @@ on and off within your programs, leaving
 ones which need initialization on the code heap.
 
 You can't dynamically initialize data heap
-glbls--they are constants.  This might be a silly
+glbls--they are consts.  This might be a silly
 point, but might result in odd differences, perhaps
 from the order things are evaluated.
 
@@ -68,7 +68,7 @@ because they don't take-up room in the .BIN.Z file.
 
 Test g2[]={
   {10,"name1"},
-  {(tT%10.0)*100,"name2"}, //No dynamic initialization--converted to a constant
+  {(tT%10.0)*100,"name2"}, //No dynamic initialization--converted to a const
   {30,"name3"}
 };
 
@@ -79,7 +79,7 @@ U0 Main2()
 {
   static Test s2[]={
     {10,"static1"},
-    {(tT%10.0)*100,"static2"}, //No dynamic initialization--converted to a constant
+    {(tT%10.0)*100,"static2"}, //No dynamic initialization--converted to a const
     {30,"static3"}
   };
   D(s2,sizeof(s2));
diff --git a/TempleOS/Demo/Graphics/Box.CPP b/TempleOS/Demo/Graphics/Box.CPP
index f82937c..767935a 100644
--- a/TempleOS/Demo/Graphics/Box.CPP
+++ b/TempleOS/Demo/Graphics/Box.CPP
@@ -1,21 +1,22 @@
 CDC *dc;
 
 U0 DrawIt(CTask *,CDC *)
-{
+{//This technique is weird, but clever.  In Box() we
+ //created an alias of the system $LK,"gr_dc2","MN:gr_dc2"$.
   dc->pen_width=2;
   dc->color=RED;
   GrLine3(dc,-100,-100,-100, -100, 100,-100);
-  GrLine3(dc,-100, 100,-100,	100, 100,-100);
-  GrLine3(dc, 100, 100,-100,	100,-100,-100);
+  GrLine3(dc,-100, 100,-100,  100, 100,-100);
+  GrLine3(dc, 100, 100,-100,  100,-100,-100);
   GrLine3(dc, 100,-100,-100, -100,-100,-100);
   GrLine3(dc,-100,-100, 100, -100, 100, 100);
-  GrLine3(dc,-100, 100, 100,	100, 100, 100);
-  GrLine3(dc, 100, 100, 100,	100,-100, 100);
+  GrLine3(dc,-100, 100, 100,  100, 100, 100);
+  GrLine3(dc, 100, 100, 100,  100,-100, 100);
   GrLine3(dc, 100,-100, 100, -100,-100, 100);
   GrLine3(dc,-100,-100, 100, -100,-100,-100);
   GrLine3(dc,-100, 100, 100, -100, 100,-100);
-  GrLine3(dc, 100, 100, 100,	100, 100,-100);
-  GrLine3(dc, 100,-100, 100,	100,-100,-100);
+  GrLine3(dc, 100, 100, 100,  100, 100,-100);
+  GrLine3(dc, 100,-100, 100,  100,-100,-100);
 }
 
 U0 Box()
diff --git a/TempleOS/Demo/Graphics/Camp.CPP b/TempleOS/Demo/Graphics/Camp.CPP
index 4c94512..22413a5 100644
Binary files a/TempleOS/Demo/Graphics/Camp.CPP and b/TempleOS/Demo/Graphics/Camp.CPP differ
diff --git a/TempleOS/Demo/Graphics/Cartesian.CPP b/TempleOS/Demo/Graphics/Cartesian.CPP
index 5ae9452..d0edc68 100644
--- a/TempleOS/Demo/Graphics/Cartesian.CPP
+++ b/TempleOS/Demo/Graphics/Cartesian.CPP
@@ -24,7 +24,7 @@ U0 Cartesian()
 	first=TRUE;
 	dc->color=BLACK;
 	for (x=-h;x<=h;x++) {
-	  y=-ExePrintF("ToF64(%s);",st)(F64);
+	  y=-ExePrint("ToF64(%s);",st)(F64);
 	  if (!first)
 	    GrLine(dc,x-1+h,y_last+v,x+h,y+v);
 	  y_last=y;
@@ -44,5 +44,5 @@ U0 Cartesian()
 Cartesian;
 
 /*$WW,1$
-For better performance, compile the expression entered by the user one time with $LK,"CmpExpression","MN:CmpExpression"$() and use $LK,"Call","MN:Call"$(). See $LK-A,"::/TempleOS/Demo/CompileDemo.CPP"$.
+For better performance, compile the expression entered by the user one time with $LK,"LexExpression2Bin","MN:LexExpression2Bin"$() and use $LK,"Call","MN:Call"$(). See $LK-A,"::/TempleOS/Demo/CompileDemo.CPP"$.
 */
diff --git a/TempleOS/Demo/Graphics/CommonAncestor.CPP b/TempleOS/Demo/Graphics/CommonAncestor.CPP
index 7b1bde5..5b5a4ff 100644
--- a/TempleOS/Demo/Graphics/CommonAncestor.CPP
+++ b/TempleOS/Demo/Graphics/CommonAncestor.CPP
@@ -33,7 +33,7 @@ U0 ShowTree(CDC *dc,Node *tempn,I64 *_node_x,I64 *_tree_x,I64 y)
       dc->color=BLUE;
  
     *_node_x=*_tree_x;
-    GrPrintF(dc,*_node_x,y,"%d",tempn->n);
+    GrPrint(dc,*_node_x,y,"%d",tempn->n);
     *_tree_x+=X_SPACING;
  
     if (tempn->right) {
diff --git a/TempleOS/Demo/Graphics/EdCSprite.CPP b/TempleOS/Demo/Graphics/EdCSprite.CPP
index f06a235..59fe828 100644
Binary files a/TempleOS/Demo/Graphics/EdCSprite.CPP and b/TempleOS/Demo/Graphics/EdCSprite.CPP differ
diff --git a/TempleOS/Demo/Graphics/Elephant.CPP b/TempleOS/Demo/Graphics/Elephant.CPP
new file mode 100644
index 0000000..f8a94a9
Binary files /dev/null and b/TempleOS/Demo/Graphics/Elephant.CPP differ
diff --git a/TempleOS/Demo/Graphics/Extents.CPP b/TempleOS/Demo/Graphics/Extents.CPP
index a6aa061..ceba8f2 100644
Binary files a/TempleOS/Demo/Graphics/Extents.CPP and b/TempleOS/Demo/Graphics/Extents.CPP differ
diff --git a/TempleOS/Demo/Graphics/FontEd.CPP b/TempleOS/Demo/Graphics/FontEd.CPP
index 3088f4c..b1cfd89 100644
--- a/TempleOS/Demo/Graphics/FontEd.CPP
+++ b/TempleOS/Demo/Graphics/FontEd.CPP
@@ -54,8 +54,12 @@ U0 FESave(Bool pmt)
   I64 i,j,k=0;
   for (i=0;i<256;i++) {
     for (j=0;jdraw_it=NULL;
   DocWrite(doc,pmt);
diff --git a/TempleOS/Demo/Graphics/Logo.CPP b/TempleOS/Demo/Graphics/Logo.CPP
index cb8840c..d146659 100644
Binary files a/TempleOS/Demo/Graphics/Logo.CPP and b/TempleOS/Demo/Graphics/Logo.CPP differ
diff --git a/TempleOS/Demo/Graphics/MathAudioDemo.CPP b/TempleOS/Demo/Graphics/MathAudioDemo.CPP
index 048b4ac..46441cd 100644
--- a/TempleOS/Demo/Graphics/MathAudioDemo.CPP
+++ b/TempleOS/Demo/Graphics/MathAudioDemo.CPP
@@ -38,7 +38,7 @@ U0 Init(CDC *dc)
     GrLine(dc,w/2-3,h/2-scale*i,w/2+3,h/2-scale*i);
     if (i) {
       dc->color=DKGRAY;
-      GrPrintF(dc,w/2+5,h/2-scale*i-FONT_HEIGHT/2,"%5.1f",ToF64(i));
+      GrPrint(dc,w/2+5,h/2-scale*i-FONT_HEIGHT/2,"%5.1f",ToF64(i));
     }
   }
   for (i=-4;i<=4;i++) {
@@ -46,7 +46,7 @@ U0 Init(CDC *dc)
     GrLine(dc,w/2+scale*i,h/2-3,w/2+scale*i,h/2+3);
     if (i) {
       dc->color=DKGRAY;
-      GrPrintF(dc,w/2+scale*i-7*FONT_WIDTH/2,h/2+5+FONT_HEIGHT,"%5.1f*T",ToF64(i));
+      GrPrint(dc,w/2+scale*i-7*FONT_WIDTH/2,h/2+5+FONT_HEIGHT,"%5.1f*T",ToF64(i));
     }
   }
 }
diff --git a/TempleOS/Demo/Graphics/Mountain.CPP b/TempleOS/Demo/Graphics/Mountain.CPP
index 902f97b..c5a16b3 100644
Binary files a/TempleOS/Demo/Graphics/Mountain.CPP and b/TempleOS/Demo/Graphics/Mountain.CPP differ
diff --git a/TempleOS/Demo/Graphics/PanText.CPP b/TempleOS/Demo/Graphics/PanText.CPP
new file mode 100644
index 0000000..8a52ba1
--- /dev/null
+++ b/TempleOS/Demo/Graphics/PanText.CPP
@@ -0,0 +1,35 @@
+U0 PanText()
+{
+  I64 i;
+  for (i=0;i<=7;i++) {
+    gr_pan_text_x=i;
+    Sleep(30);
+  }
+  i--;
+  for (;i>=-7;i--) {
+    gr_pan_text_x=i;
+    Sleep(30);
+  }
+  i++;
+  for (;i<=0;i++) {
+    gr_pan_text_x=i;
+    Sleep(30);
+  }
+
+  for (i=0;i<=7;i++) {
+    gr_pan_text_y=i;
+    Sleep(30);
+  }
+  i--;
+  for (;i>=-7;i--) {
+    gr_pan_text_y=i;
+    Sleep(30);
+  }
+  i++;
+  for (;i<=0;i++) {
+    gr_pan_text_y=i;
+    Sleep(30);
+  }
+}
+
+PanText;
diff --git a/TempleOS/Demo/Graphics/Pick.CPP b/TempleOS/Demo/Graphics/Pick.CPP
index 91cf840..0f858a2 100644
Binary files a/TempleOS/Demo/Graphics/Pick.CPP and b/TempleOS/Demo/Graphics/Pick.CPP differ
diff --git a/TempleOS/Demo/Graphics/Pick3D.CPP b/TempleOS/Demo/Graphics/Pick3D.CPP
index cdf750c..65a68df 100644
Binary files a/TempleOS/Demo/Graphics/Pick3D.CPP and b/TempleOS/Demo/Graphics/Pick3D.CPP differ
diff --git a/TempleOS/Demo/Graphics/PixelCollision.CPP b/TempleOS/Demo/Graphics/PixelCollision.CPP
index 50fab1e..6c7b251 100644
Binary files a/TempleOS/Demo/Graphics/PixelCollision.CPP and b/TempleOS/Demo/Graphics/PixelCollision.CPP differ
diff --git a/TempleOS/Demo/Graphics/PoleZeros.CPP b/TempleOS/Demo/Graphics/PoleZeros.CPP
index e3ad95c..39bbdf3 100644
--- a/TempleOS/Demo/Graphics/PoleZeros.CPP
+++ b/TempleOS/Demo/Graphics/PoleZeros.CPP
@@ -86,9 +86,9 @@ U0 Draw()
   GrLine(dc,0,cy,w,cy);
   GrLine(dc,cx,0,cx,h);
   for (i=0;iwin_pixel_left-task->win_scroll_x-cx);
   ls.y=-(ipy-task->win_pixel_top-task->win_scroll_y-cy);
   ls.z=GR_WIDTH/8;
-  d=1<<16/P3I32Norm(&ls);
+  d=1<<16/D3I32Norm(&ls);
   ls.x*=d;
   ls.y*=d;
   ls.z*=d;
@@ -151,7 +151,7 @@ U0 DrawIt(CTask *task,CDC *dc)
 //See $LK-A,"::/TempleOS/Demo/Graphics/SpritePlot3D.CPP"$.
 //for a CSprite example.
 
-//See $LK,"CSpriteMesh","MN:CSpriteMesh"$() for a fancy example.
+//See $LK,"SpriteMesh","MN:SpriteMesh"$() for a fancy example.
 
 U0 Main()
 {
diff --git a/TempleOS/Demo/Graphics/Shadow.CPP b/TempleOS/Demo/Graphics/Shadow.CPP
index dfa4dc7..9f7d0b1 100644
Binary files a/TempleOS/Demo/Graphics/Shadow.CPP and b/TempleOS/Demo/Graphics/Shadow.CPP differ
diff --git a/TempleOS/Demo/Graphics/SliderCtrl.CPP b/TempleOS/Demo/Graphics/SliderCtrl.CPP
index a24ed20..9048908 100644
--- a/TempleOS/Demo/Graphics/SliderCtrl.CPP
+++ b/TempleOS/Demo/Graphics/SliderCtrl.CPP
@@ -32,10 +32,10 @@ U0 DrawSliderCtrl(CDC *dc,CCtrl *c)
   GrLine(dc,c->left+2*SLIDER_SPACING+1,c->top+SLIDER_SPACING,
 	      c->left+2*SLIDER_SPACING+1,c->top+SLIDER_SPACING+SLIDER_RANGE-1);
   dc->color=LTRED;
-  GrPrintF(dc,c->left+1*SLIDER_SPACING+0-FONT_WIDTH/2,
+  GrPrint(dc,c->left+1*SLIDER_SPACING+0-FONT_WIDTH/2,
     c->top+SLIDER_SPACING+SLIDER_RANGE+3,
     "%d",s->left_pos*10/SLIDER_RANGE);
-  GrPrintF(dc,c->left+2*SLIDER_SPACING+1-FONT_WIDTH/2,
+  GrPrint(dc,c->left+2*SLIDER_SPACING+1-FONT_WIDTH/2,
     c->top+SLIDER_SPACING+SLIDER_RANGE+3,
     "%d",s->right_pos*10/SLIDER_RANGE);
   GrRect(dc,c->left+1*SLIDER_SPACING+0-3,c->top+SLIDER_SPACING+SLIDER_RANGE-1-s->left_pos-2,7,5);
diff --git a/TempleOS/Demo/Graphics/SpritePlot.CPP b/TempleOS/Demo/Graphics/SpritePlot.CPP
index eeb9197..dce1915 100644
Binary files a/TempleOS/Demo/Graphics/SpritePlot.CPP and b/TempleOS/Demo/Graphics/SpritePlot.CPP differ
diff --git a/TempleOS/Demo/Graphics/SpritePlot3D.CPP b/TempleOS/Demo/Graphics/SpritePlot3D.CPP
index 4c5e78a..020c2a7 100644
Binary files a/TempleOS/Demo/Graphics/SpritePlot3D.CPP and b/TempleOS/Demo/Graphics/SpritePlot3D.CPP differ
diff --git a/TempleOS/Demo/Graphics/SpritePut.CPP b/TempleOS/Demo/Graphics/SpritePut.CPP
index 4e570bf..328f421 100644
Binary files a/TempleOS/Demo/Graphics/SpritePut.CPP and b/TempleOS/Demo/Graphics/SpritePut.CPP differ
diff --git a/TempleOS/Demo/Graphics/SpriteText.CPP b/TempleOS/Demo/Graphics/SpriteText.CPP
index f2b1fe4..77199ba 100644
Binary files a/TempleOS/Demo/Graphics/SpriteText.CPP and b/TempleOS/Demo/Graphics/SpriteText.CPP differ
diff --git a/TempleOS/Demo/Graphics/Transform.CPP b/TempleOS/Demo/Graphics/Transform.CPP
index 06ecc11..8ea9b75 100644
Binary files a/TempleOS/Demo/Graphics/Transform.CPP and b/TempleOS/Demo/Graphics/Transform.CPP differ
diff --git a/TempleOS/Demo/Graphics/WallPaperCtrl.CPP b/TempleOS/Demo/Graphics/WallPaperCtrl.CPP
index 9ef5bd9..868bca9 100644
--- a/TempleOS/Demo/Graphics/WallPaperCtrl.CPP
+++ b/TempleOS/Demo/Graphics/WallPaperCtrl.CPP
@@ -38,10 +38,10 @@ U0 DrawSliderCtrl(CDC *dc,CCtrl *c)
   GrLine(dc,c->left+2*SLIDER_SPACING+1,c->top+SLIDER_SPACING,
 	      c->left+2*SLIDER_SPACING+1,c->top+SLIDER_SPACING+SLIDER_RANGE-1);
   dc->color=LTRED;
-  GrPrintF(dc,c->left+1*SLIDER_SPACING+0-FONT_WIDTH/2,
+  GrPrint(dc,c->left+1*SLIDER_SPACING+0-FONT_WIDTH/2,
     c->top+SLIDER_SPACING+SLIDER_RANGE+3,
     "%d",s->left_pos*10/SLIDER_RANGE);
-  GrPrintF(dc,c->left+2*SLIDER_SPACING+1-FONT_WIDTH/2,
+  GrPrint(dc,c->left+2*SLIDER_SPACING+1-FONT_WIDTH/2,
     c->top+SLIDER_SPACING+SLIDER_RANGE+3,
     "%d",s->right_pos*10/SLIDER_RANGE);
   GrRect(dc,c->left+1*SLIDER_SPACING+0-3,c->top+SLIDER_SPACING+SLIDER_RANGE-1-s->left_pos-2,7,5);
diff --git a/TempleOS/Demo/Graphics/WallPaperFish.CPP b/TempleOS/Demo/Graphics/WallPaperFish.CPP
index 1d2f619..63bd08b 100644
Binary files a/TempleOS/Demo/Graphics/WallPaperFish.CPP and b/TempleOS/Demo/Graphics/WallPaperFish.CPP differ
diff --git a/TempleOS/Demo/Graphics/WinZBuf.CPP b/TempleOS/Demo/Graphics/WinZBuf.CPP
index 67c0900..0dccc89 100644
--- a/TempleOS/Demo/Graphics/WinZBuf.CPP
+++ b/TempleOS/Demo/Graphics/WinZBuf.CPP
@@ -3,7 +3,7 @@ U0 DrawIt(CTask *,CDC *dc)
   I64 i,j;
   U16 *ptr=gr_win_z_buf;
   dc->color=BLACK;
-  GrPutS(dc,0,0,"Move the windows around and watch.");
+  GrPrint(dc,0,0,"Move the windows around and watch.");
   for (i=0;icolor=*ptr++&15;
diff --git a/TempleOS/Demo/KeyBitMap.CPP b/TempleOS/Demo/KeyBitMap.CPP
index 2b1bcad..3fcf9f4 100644
Binary files a/TempleOS/Demo/KeyBitMap.CPP and b/TempleOS/Demo/KeyBitMap.CPP differ
diff --git a/TempleOS/Demo/Lectures/AndNotMod.CPP b/TempleOS/Demo/Lectures/AndNotMod.CPP
index d8fdd43..8017c0e 100644
--- a/TempleOS/Demo/Lectures/AndNotMod.CPP
+++ b/TempleOS/Demo/Lectures/AndNotMod.CPP
@@ -15,26 +15,26 @@ U0 TimeIns()
   CPURep;
 
 //Measure Loop Overhead
-  start1=GetTimeStamp;
+  start1=GetTSC;
   for (i=0;i=0;i--) {
   }
-  end=GetTimeStamp;
+  end=GetTSC;
   overhead_time=end-start;
   "$$FG,RED$$Overhead Cycles       :%10.5f$$FG$$\n",
     ToF64(overhead_time)/SAMPLE_SIZE;
@@ -101,10 +101,10 @@ U0 Main()
 // compiler code.)
   d1=Sin(1.0);
   fsum=0;
-  start=GetTimeStamp;
+  start=GetTSC;
   for (i=SAMPLE_SIZE-1;i>=0;i--)
     fsum+=d1*coordinates[i&65535];
-  end=GetTimeStamp;
+  end=GetTSC;
   test_time=end-start;
   "Float Sum             :%X\n",ToI64(fsum);
   "$$FG,RED$$Float Cycles          :%10.5f$$FG$$\n",
@@ -114,30 +114,30 @@ U0 Main()
 //Measure fixed point arithmetic
   d2=Sin(1.0)*0x100000000;
   sum=0;
-  start=GetTimeStamp;
+  start=GetTSC;
   for (i=SAMPLE_SIZE-1;i>=0;i--) {
 	  temp=d2*coordinates[i&65535];
     sum+=temp.i32[1];
   }
-  end=GetTimeStamp;
+  end=GetTSC;
   test_time=end-start;
   "Fixed-Point Sum       :%X\n",sum;
   "$$FG,RED$$Fixed-Point Cycles    :%10.5f$$FG$$\n",
     ToF64(test_time)/SAMPLE_SIZE;
 
 //Measure fixed point arithmetic
-  start=GetTimeStamp;
+  start=GetTSC;
   sum=AsmFixedPt;
-  end=GetTimeStamp;
+  end=GetTSC;
   test_time=end-start;
   "Asm Fixed-Point Sum   :%X\n",sum;
   "$$FG,RED$$Asm Fixed-Point Cycles:%10.5f$$FG$$\n",
     ToF64(test_time)/SAMPLE_SIZE;
 
 //Measure float arithmetic
-  start=GetTimeStamp;
+  start=GetTSC;
   sum=AsmFloat;
-  end=GetTimeStamp;
+  end=GetTSC;
   test_time=end-start;
   "Asm Float Sum         :%X\n",sum;
   "$$FG,RED$$Asm Float Cycles      :%10.5f$$FG$$\n",
diff --git a/TempleOS/Demo/Lectures/GraphicsCPULoad.CPP b/TempleOS/Demo/Lectures/GraphicsCPULoad.CPP
index 47b84e1..543c9c8 100644
--- a/TempleOS/Demo/Lectures/GraphicsCPULoad.CPP
+++ b/TempleOS/Demo/Lectures/GraphicsCPULoad.CPP
@@ -37,7 +37,7 @@ U0 GrDemo()
 
 GrDemo;
 
-/*  Program Output$HL,0$$WW+H,1$$FD,1$
+/*  Program Output (Not VMware)$HL,0$$WW+H,1$$FD,1$
 
 8 Cores 2.660GHz
 $FG,2$Rate:$FG,4$369.7 FPS$FG$	$FG,2$Load@60Hz:$FG,4$ 16.2%$FG$
diff --git a/TempleOS/Demo/Lectures/InterruptDemo.CPP b/TempleOS/Demo/Lectures/InterruptDemo.CPP
index a398f5d..d0d204c 100644
--- a/TempleOS/Demo/Lectures/InterruptDemo.CPP
+++ b/TempleOS/Demo/Lectures/InterruptDemo.CPP
@@ -62,17 +62,17 @@ U0 TimeIns()
   old_irq=IntEntrySet(I_F_UNARY_MINUS,F_UNARY_MINUS_INT,IDTET_TRAP);
 
 //Measure interrupt time
-  start=GetTimeStamp;
+  start=GetTSC;
   for (i=0;i=rsp)
-    *dst--=*src--;
-  SetBasePtr(rbp+1);
-  SetStkPtr(rsp+1);
 }
 
 
diff --git a/TempleOS/Demo/Lectures/Ring3.CPP b/TempleOS/Demo/Lectures/Ring3.CPP
index 7b6d1c3..e0f3017 100644
--- a/TempleOS/Demo/Lectures/Ring3.CPP
+++ b/TempleOS/Demo/Lectures/Ring3.CPP
@@ -30,10 +30,10 @@ TO_RING0::	//Set to handle general protection 0xD fault temporarily.
 
 U0 Ring3Demo()
 {
-  U8 *old_pf;
+  U8 *old_vect;
   "Progress1 Before:%X\n",progress1;
   Cli;
-  old_pf=IntEntrySet(0x0D,TO_RING0,IDTET_TRAP,0);
+  old_vect=IntEntrySet(0x0D,TO_RING0,IDTET_TRAP,0);
 
   TSSBusy(Gs->tss->tr_ring3,OFF);
   SetRAX(Gs->tss->tr_ring3+3);
@@ -74,7 +74,7 @@ R3_CALLBACK:
   SetRAX(Gs->tss->tr);
 asm {	LTR	AX}
 
-  IntEntrySet(0x0D,old_pf,IDTET_IRQ,0);
+  IntEntrySet(0x0D,old_vect,IDTET_IRQ,0);
   Sti;
   "Progress1 After :%X\n",progress1;
 }
diff --git a/TempleOS/Demo/Lectures/Uncached.CPP b/TempleOS/Demo/Lectures/Uncached.CPP
index 3cec403..5991b9b 100644
--- a/TempleOS/Demo/Lectures/Uncached.CPP
+++ b/TempleOS/Demo/Lectures/Uncached.CPP
@@ -21,18 +21,18 @@ U0 TimeIns()
   old_preempt=Preempt(OFF);
 
 //Measure cached time
-  start=GetTimeStamp;
+  start=GetTSC;
   for (i=0;iN) {
       if (r->lo<=n2hi && sumfacts[n2-r->lo]-n2-1==n ||
 	TestSumFact(n2,sf,r->sqrt_primes,r->cbrt_primes,r->primes)) {
-	DocPrintF(r->doc,"%u:%u\n",n,sf-n-1);
+	DocPrint(r->doc,"%u:%u\n",n,sf-n-1);
 	result++;
       }
     }
diff --git a/TempleOS/Demo/MultiCore/MPAdd.CPP b/TempleOS/Demo/MultiCore/MPAdd.CPP
index 1bb9a81..f46bf3e 100644
--- a/TempleOS/Demo/MultiCore/MPAdd.CPP
+++ b/TempleOS/Demo/MultiCore/MPAdd.CPP
@@ -64,7 +64,7 @@ U0 MPAdd()
 
   dc->color=BLUE;
   for (i=MAX_PERCENT/10;icolor=GREEN;
-    GrPrintF(dc,i*h/(NUM_TESTS-1),v-FONT_HEIGHT,"10e%d",i+MIN_TEST);
+    GrPrint(dc,i*h/(NUM_TESTS-1),v-FONT_HEIGHT,"10e%d",i+MIN_TEST);
     GrLine(dc,i*h/(NUM_TESTS-1),0,i*h/(NUM_TESTS-1),v);
   }
   PressAKey;
diff --git a/TempleOS/Demo/MultiCore/MPPrintF.CPP b/TempleOS/Demo/MultiCore/MPPrint.CPP
similarity index 63%
rename from TempleOS/Demo/MultiCore/MPPrintF.CPP
rename to TempleOS/Demo/MultiCore/MPPrint.CPP
index c331047..8bb0923 100644
--- a/TempleOS/Demo/MultiCore/MPPrintF.CPP
+++ b/TempleOS/Demo/MultiCore/MPPrint.CPP
@@ -2,11 +2,11 @@ U0 Job(CDoc *doc)
 {
   I64 i;
   for (i=0;i<2;i++)
-    DocPrintF(doc,"$$FG,%d$$CPU%d ",Gs->num,Gs->num);
+    DocPrint(doc,"$$FG,%d$$CPU%d ",Gs->num,Gs->num);
 }
 
 
-U0 MPPrintFDemo()
+U0 MPPrintDemo()
 {
   I64 i;
   for (i=0;i<500;i++)
@@ -15,4 +15,4 @@ U0 MPPrintFDemo()
   "$$FG$$\n";
 }
 
-MPPrintFDemo;
+MPPrintDemo;
diff --git a/TempleOS/Demo/MultiCore/Palindrome.CPP b/TempleOS/Demo/MultiCore/Palindrome.CPP
index 1f313bd..e3b03fd 100644
--- a/TempleOS/Demo/MultiCore/Palindrome.CPP
+++ b/TempleOS/Demo/MultiCore/Palindrome.CPP
@@ -28,10 +28,10 @@ U0 PDAnswer(U8 *a,I64 len)
 {
   DocLock(doc);
   a-=(len-1)/2;
-  DocPrintF(doc,"CPU:%d Len:%2d ",Gs->num,len);
+  DocPrint(doc,"CPU:%d Len:%2d ",Gs->num,len);
   while (len--)
-    DocPrintF(doc,"%C",*a++); //%C is toupper char
-  DocPutS(doc,"\n");
+    DocPrint(doc,"%C",*a++); //%C is toupper char
+  DocPrint(doc,"\n");
   DocUnlock(doc);
 }
 
diff --git a/TempleOS/Demo/OldSchool/Demo1/MD1.CPP b/TempleOS/Demo/OldSchool/Demo1/MD1.CPP
index c6659a5..f220801 100644
--- a/TempleOS/Demo/OldSchool/Demo1/MD1.CPP
+++ b/TempleOS/Demo/OldSchool/Demo1/MD1.CPP
@@ -1,8 +1,8 @@
-import U0 PrintF(U8 *fmt,...);
+import U0 Print(U8 *fmt,...);
 
 U0 Routine1(U8 *st)
 {
-  PrintF("Routine1:%s\n",st);
+  Print("Routine1:%s\n",st);
 }
 
 
diff --git a/TempleOS/Demo/OldSchool/Demo1/MD2.CPP b/TempleOS/Demo/OldSchool/Demo1/MD2.CPP
index 22bec72..c5ca203 100644
--- a/TempleOS/Demo/OldSchool/Demo1/MD2.CPP
+++ b/TempleOS/Demo/OldSchool/Demo1/MD2.CPP
@@ -1,8 +1,8 @@
-import U0 PrintF(U8 *fmt,...);
+import U0 Print(U8 *fmt,...);
 
 U0 Routine2(U8 *st)
 {
-  PrintF("Routine2:%s\n",st);
+  Print("Routine2:%s\n",st);
 }
 
 
diff --git a/TempleOS/Demo/OldSchool/Demo1/MDMain.CPP b/TempleOS/Demo/OldSchool/Demo1/MDMain.CPP
index af98013..541ad34 100644
--- a/TempleOS/Demo/OldSchool/Demo1/MDMain.CPP
+++ b/TempleOS/Demo/OldSchool/Demo1/MDMain.CPP
@@ -1,8 +1,8 @@
-import U0 PrintF(U8 *fmt,...);
+import U0 Print(U8 *fmt,...);
 
 U0 Routine3(U8 *st)
 {
-  PrintF("Routine3:%s\n",st);
+  Print("Routine3:%s\n",st);
 }
 
 
@@ -14,7 +14,7 @@ I64 ModuleDemo(...)
   I64 i;
   if (argc>0) {
     for (i=0;i1) {
       Routine2(argv[1]);
@@ -22,7 +22,7 @@ I64 ModuleDemo(...)
 	Routine3(argv[2]);
     }
   } else
-    PrintF("Pass string parameters for args 1 and 2.\n");
+    Print("Pass string parameters for args 1 and 2.\n");
   return argc;
 }
 
diff --git a/TempleOS/Demo/OldSchool/Demo2/MakeFile.CPP b/TempleOS/Demo/OldSchool/Demo2/MakeFile.CPP
index 4bbace8..890df97 100644
--- a/TempleOS/Demo/OldSchool/Demo2/MakeFile.CPP
+++ b/TempleOS/Demo/OldSchool/Demo2/MakeFile.CPP
@@ -20,5 +20,5 @@ PressAKey;
 BinRep("ODMain");
 
 PressAKey;
-HashRep(Fs->hash_table,HTG_ALL,NULL,"-p-r");
+Who("-r");
 
diff --git a/TempleOS/Demo/OldSchool/Demo2/OD1.PRJ b/TempleOS/Demo/OldSchool/Demo2/OD1.PRJ
index a9712e2..6654f57 100644
--- a/TempleOS/Demo/OldSchool/Demo2/OD1.PRJ
+++ b/TempleOS/Demo/OldSchool/Demo2/OD1.PRJ
@@ -5,7 +5,7 @@ import U0 Routine3(U8 *st);
 
 U0 Routine1(U8 *st)
 {
-  PrintF("Routine1:%s\n",st);
+  Print("Routine1:%s\n",st);
   Routine3("What the!!!");
 }
 
diff --git a/TempleOS/Demo/OldSchool/Demo2/OD2.PRJ b/TempleOS/Demo/OldSchool/Demo2/OD2.PRJ
index 158d407..126a45a 100644
--- a/TempleOS/Demo/OldSchool/Demo2/OD2.PRJ
+++ b/TempleOS/Demo/OldSchool/Demo2/OD2.PRJ
@@ -19,13 +19,13 @@ _extern _MY_BEEP U0 MyBeep();
 
 U0 Routine2(U8 *st)
 {
-  PrintF("Routine2:%s\n",st);
+  Print("Routine2:%s\n",st);
   MyBeep();
 }
 
-PutS("$$BK,1$$Woo-Hoo!$$BK,0$$\n");
+Print("$$BK,1$$Woo-Hoo!$$BK,0$$\n");
 Dir;
-PutS("$$BK,1$$Woo-Hoo!$$BK,0$$\n");
+Print("$$BK,1$$Woo-Hoo!$$BK,0$$\n");
 
 Routine2("Cool");
 
diff --git a/TempleOS/Demo/OldSchool/Demo2/ODMain.PRJ b/TempleOS/Demo/OldSchool/Demo2/ODMain.PRJ
index f7b8ad4..e8d8a7e 100644
--- a/TempleOS/Demo/OldSchool/Demo2/ODMain.PRJ
+++ b/TempleOS/Demo/OldSchool/Demo2/ODMain.PRJ
@@ -10,7 +10,7 @@ _import _MY_BEEP U0 MyBeep();
 
 U0 Routine3(U8 *st)
 {
-  PrintF("Routine3:%s\n",st);
+  Print("Routine3:%s\n",st);
 }
 
 
@@ -23,7 +23,7 @@ I64 ObjDemo(...)
   MyBeep();
   if (argc>0) {
     for (i=0;i1) {
       Routine2(argv[1]);
@@ -31,7 +31,7 @@ I64 ObjDemo(...)
 	Routine3(argv[2]);
     }
   } else
-    PutS("Pass string parameters for args 1 and 2.\n");
+    Print("Pass string parameters for args 1 and 2.\n");
   return argc;
 }
 
diff --git a/TempleOS/Demo/PhoneNumWords.CPP b/TempleOS/Demo/PhoneNumWords.CPP
index bb04172..63fb507 100644
--- a/TempleOS/Demo/PhoneNumWords.CPP
+++ b/TempleOS/Demo/PhoneNumWords.CPP
@@ -35,11 +35,10 @@ U0 PhoneNumWords(U8 *num)
 	if (!StrNCmp(st,src,StrLen(st))) {
 	  ch=*src;
 	  *src=0;
-	  "" _num;
+	  "%s",_num;
 	  *src=ch;
 	  "$$FG,GREEN$$%s$$FG$$",dict;
-	  "" src+StrLen(st);
-	  NewLine;
+	  "%s\n",src+StrLen(st);
 	}
 	src++;
       }
diff --git a/TempleOS/Demo/PrintF.CPP b/TempleOS/Demo/Print.CPP
similarity index 79%
rename from TempleOS/Demo/PrintF.CPP
rename to TempleOS/Demo/Print.CPP
index 5ea3df1..d715650 100644
--- a/TempleOS/Demo/PrintF.CPP
+++ b/TempleOS/Demo/Print.CPP
@@ -1,6 +1,6 @@
-//TempleOS supports standard $LK,"PrintF","MN:PrintF"$()
+//TempleOS supports standard $LK,"Print","MN:Print"$()
 //codes and extended ones.
-//See $LK,"printF codes","FA:::/TempleOS/Doc/HolyC.TXT,PrintF_Codes"$.
+//See $LK,"Print Codes","FA:::/TempleOS/Doc/HolyC.TXT,Print_Codes"$.
 
 //This file demonstrates $LK,"sub_fmt","FA:::/TempleOS/Doc/HolyC.TXT,sub_fmt"$ codes.
 
diff --git a/TempleOS/Demo/Prompt.CPP b/TempleOS/Demo/Prompt.CPP
index 6abffa7..2477389 100644
--- a/TempleOS/Demo/Prompt.CPP
+++ b/TempleOS/Demo/Prompt.CPP
@@ -18,7 +18,7 @@ U0 PromptDemo()
   "Name:%s\n",name;
   Free(name);
 
-  cdt=PmtCDate("Date (%D):",GetCurTimeDate);
+  cdt=PmtCDate("Date (%D):",GetDateTime);
   "Date=%D\n",cdt;
 }
 
diff --git a/TempleOS/Demo/RegistryDemo.CPP b/TempleOS/Demo/RegistryDemo.CPP
index 427c6bc..9ef1489 100644
--- a/TempleOS/Demo/RegistryDemo.CPP
+++ b/TempleOS/Demo/RegistryDemo.CPP
@@ -1,9 +1,9 @@
-//The HOME/Registry.CPP.Z file is Holy C code.
+//The HOME/Registry.CPP.Z file is HolyC code.
 //You can execute a branch of it.  The Adam
 //branch is executed in the Adam task boot phase.
 //Normally, you will place var declarations
 //in the branch you make, but since an arthmetic expression
-//is valid in Holy C you can place simple expressions
+//is valid in HolyC you can place simple expressions
 //without vars.
 
 AcctRegSetDftEntry("DemoCompany/Game1","F64 best_score=1.23;\n");
diff --git a/TempleOS/Demo/Snd/ASCIIOrgan.CPP b/TempleOS/Demo/Snd/ASCIIOrgan.CPP
index 5008b80..86f24e3 100644
Binary files a/TempleOS/Demo/Snd/ASCIIOrgan.CPP and b/TempleOS/Demo/Snd/ASCIIOrgan.CPP differ
diff --git a/TempleOS/Demo/Snd/MorseCode.CPP b/TempleOS/Demo/Snd/MorseCode.CPP
index 7c34b34..617686a 100644
--- a/TempleOS/Demo/Snd/MorseCode.CPP
+++ b/TempleOS/Demo/Snd/MorseCode.CPP
@@ -61,13 +61,13 @@ U0 MorseTable()
   U8 *st;
   I64 i=0;
   for (i=0;i<13;i++ ) {
-    if (st=LstEntryPt(i,morse_lst))
+    if (st=LstSub(i,morse_lst))
       "$$FG,RED$$%C$$FG$$ %-7s ",*st,st+1;
-    if (st=LstEntryPt(i+13,morse_lst))
+    if (st=LstSub(i+13,morse_lst))
       "$$FG,RED$$%C$$FG$$ %-7s ",*st,st+1;
-    if (st=LstEntryPt(i+26,morse_lst))
+    if (st=LstSub(i+26,morse_lst))
       "$$FG,RED$$%C$$FG$$ %-7s ",*st,st+1;
-    if (st=LstEntryPt(i+39,morse_lst))
+    if (st=LstSub(i+39,morse_lst))
       "$$FG,RED$$%C$$FG$$ %-7s ",*st,st+1;
     NewLine;
   }
@@ -80,7 +80,7 @@ Bool space_sent;
 U8 *MorseTimes(CDoc *,CDocEntry *,CTask *mem_task)
 {
   U8 *st=MAlloc(64,mem_task);
-  SPrintF(st,"Down:%10.6f Up:%10.6f",dt_down,dt_up);
+  SPrint(st,"Down:%10.6f Up:%10.6f",dt_down,dt_up);
   return st;
 }
 
@@ -147,7 +147,7 @@ U0 Morse()
   //We don't want the tag call back
   //called before we set it, so preempt off.
   old_preempt=Preempt(OFF);
-  doc_e=DocPutS(DocPut,"$$TX+TC,\" \"$$");
+  doc_e=DocPrint(DocPut,"$$TX+TC,\" \"$$");
   doc_e->tag_cb=&MorseTimes;
   Preempt(old_preempt);
 
diff --git a/TempleOS/Demo/Snd/WaterFowl.CPP b/TempleOS/Demo/Snd/WaterFowl.CPP
index 51d0ff4..e3a11a1 100644
Binary files a/TempleOS/Demo/Snd/WaterFowl.CPP and b/TempleOS/Demo/Snd/WaterFowl.CPP differ
diff --git a/TempleOS/Demo/TimeIns.CPP b/TempleOS/Demo/TimeIns.CPP
index dad30f8..47d8296 100644
--- a/TempleOS/Demo/TimeIns.CPP
+++ b/TempleOS/Demo/TimeIns.CPP
@@ -21,20 +21,20 @@ U0 TimeIns()
   Bool old_preempt=Preempt(OFF);
 
 //Measure Loop Overhead
-  start1=GetTimeStamp;
+  start1=GetTSC;
   for (i=0;ifull_name);
-    tempm=tempm->next;
+  while (tempde) {
+    PrsSingleLogFile(root,tempde->full_name);
+    tempde=tempde->next;
   }
-  CDirLstDel(tempm1);
+  DirLstDel(tempde1);
   return root;
 }
 
@@ -177,7 +177,7 @@ U0 BlockIPNums(LogStruct *root)
 
   //pass 1: collect robot lst
   while (templg!=root) {
-    if (StrIStr(templg->file,"ROBOT") &&
+    if (StrIMatch("ROBOT",templg->file) &&
 	!IsBlocked(&blocked_root,templg->ip_num))
       BlockedStructAdd(&blocked_root,templg->ip_num);
     templg=templg->next;
@@ -200,8 +200,8 @@ U0 BlockIPNums(LogStruct *root)
 Bool IsDownLoad(LogStruct *templg)
 {
   if (
-    StrStr(templg->file,DOWNLOAD_FILE1) && templg->size>=DOWNLOAD_FILE1_SIZE ||
-    StrStr(templg->file,DOWNLOAD_FILE2) && templg->size>=DOWNLOAD_FILE2_SIZE )
+    StrMatch(DOWNLOAD_FILE1,templg->file) && templg->size>=DOWNLOAD_FILE1_SIZE ||
+    StrMatch(DOWNLOAD_FILE2,templg->file) && templg->size>=DOWNLOAD_FILE2_SIZE )
     return TRUE;
   else
     return FALSE;
diff --git a/TempleOS/Demo/WebLogExample/WebLogScramble.CPP b/TempleOS/Demo/WebLogExample/WebLogScramble.CPP
index e2f437d..259510d 100644
--- a/TempleOS/Demo/WebLogExample/WebLogScramble.CPP
+++ b/TempleOS/Demo/WebLogExample/WebLogScramble.CPP
@@ -33,7 +33,7 @@ U0 LogScrambleFile(U8 *name)
       Free(st);
       Free(st2);
 
-      st=MSPrintF("%d.%d.%d.%d %s",num.u8[3],num.u8[2],num.u8[1],num.u8[0],doc_e->tag);
+      st=MPrint("%d.%d.%d.%d %s",num.u8[3],num.u8[2],num.u8[1],num.u8[0],doc_e->tag);
       Free(doc_e->tag);
       doc_e->tag=st;
     }
@@ -45,14 +45,14 @@ U0 LogScrambleFile(U8 *name)
 
 U0 WebLogScramble(U8 *wild)
 {
-  CDirEntry *tempm=FilesFind(wild,FUF_RECURSE|FUF_JUST_FILES),
-	     *tempm1;
+  CDirEntry *tempde=FilesFind(wild,FUF_RECURSE|FUF_JUST_FILES),
+	     *tempde1;
   InitKey;
-  while (tempm) {
-    tempm1=tempm->next;
-    LogScrambleFile(tempm->full_name);
-    CDirEntryDel(tempm);
-    tempm=tempm1;
+  while (tempde) {
+    tempde1=tempde->next;
+    LogScrambleFile(tempde->full_name);
+    DirEntryDel(tempde);
+    tempde=tempde1;
   }
 }
 
diff --git a/TempleOS/Doc/AutoFile.TXT b/TempleOS/Doc/AutoFile.TXT
index f0a7070..990dcd1 100644
--- a/TempleOS/Doc/AutoFile.TXT
+++ b/TempleOS/Doc/AutoFile.TXT
@@ -1,6 +1,6 @@
 $WW,1$$FG,2$AutoFiles$FG$ are used to generate user input to automate operations.  The TempleOS tour is done with an $FG,2$AutoFile$FG$.
 
-When an $FG,2$AutoFile$FG$ runs, a child task is $LK,"Spawn","MN:Spawn"$()ed which intercepts real user input and generates fake input.  AutoFiles are $LK,"Holy C","FI:::/TempleOS/Doc/HolyC.TXT"$ programs run by the child who's stdout goes to the parent's input buffer.  $LK,"Msg","MN:Msg"$() can be included in an $FG,2$AutoFile$FG$ to send special keys or mouse cmds to the parent.  While an $FG,2$AutoFile$FG$ is running, the normal input gets diverted to the AutoFile task and can be filtered and sent back to the parent task.  Unless you are driving functions which prompt for data, you can probably use an $FG,2$#include$FG$ file in place of an $FG,2$AutoFile$FG$.
+When an $FG,2$AutoFile$FG$ runs, a child task is $LK,"Spawn","MN:Spawn"$()ed which intercepts real user input and generates fake input.  AutoFiles are $LK,"HolyC","FI:::/TempleOS/Doc/HolyC.TXT"$ programs run by the child who's stdout goes to the parent's input buffer.  $LK,"Msg","MN:Msg"$() can be included in an $FG,2$AutoFile$FG$ to send special keys or mouse cmds to the parent.  While an $FG,2$AutoFile$FG$ is running, the normal input gets diverted to the AutoFile task and can be filtered and sent back to the parent task.  Unless you are driving functions which prompt for data, you can probably use an $FG,2$#include$FG$ file in place of an $FG,2$AutoFile$FG$.
 
 See $LK-A,"::/TempleOS/Demo/AutoFile/AFDir.AUT"$.
 
diff --git a/TempleOS/Doc/Boot.TXT b/TempleOS/Doc/Boot.TXT
index 7ff0b01..86bc518 100644
Binary files a/TempleOS/Doc/Boot.TXT and b/TempleOS/Doc/Boot.TXT differ
diff --git a/TempleOS/Doc/ChangeLog.TXT b/TempleOS/Doc/ChangeLog.TXT
index 5106248..628232a 100644
--- a/TempleOS/Doc/ChangeLog.TXT
+++ b/TempleOS/Doc/ChangeLog.TXT
@@ -1,6 +1,129 @@
 $WW,1$$FG,2$Use $LK,"R","MN:R"$() to rename if I change a label.$FG$
 
-$IV,1$----07/07/13 11:58:10----$IV,0$
+$IV,1$----10/05/13 00:44:25----$IV,0$
+
+$IV,1$----10/03/13 20:25:16----$IV,0$
+* Improved $LK,"Ed","MN:Ed"$() code.
+* Added $LK-A,"::/TempleOS/Apps/MusicOrgan/JukePuppet.CPP.Z"$.
+
+$IV,1$----09/29/13 15:42:18----$IV,0$
+* Added $LK,"PutBibleLines","MN:PutBibleLines"$().
+* Changed dft return from $LK,"DocEntryRun","MN:DocEntryRun"$() to $LK,"DOCM_EXIT","MN:DOCM_EXIT"$ for $LK,"DocFormDo","MN:DocFormDo"$().  I hope it doesn't have side effects.
+
+$IV,1$----09/27/13 23:55:48----$IV,0$
+* $BK,1$TempleOS version 1.06 Released$BK,0$
+* Renumbered sprite commands -- old sprites are invalid until converted. $LK-A,"::/TempleOS/Misc/SpriteCvt0106.CPP.Z"$.
+
+$IV,1$----09/27/13 07:03:37----$IV,0$
+* Added $FG,2$haserrcode$FG$ keyword to compiler to help make interrupt handlers. See $LK-A,"::/TempleOS/Demo/Lectures/PageTableEntries2.CPP.Z"$.
+* Improved compiler's $LK,"PrsClass","MN:PrsClass"$().
+
+$IV,1$----09/25/13 20:59:12----$IV,0$
+* Made compiler N passes.
+* Compiler change: Made compare to zero same as test.
+* Fixed signed and unsigned asm opcodes.  (Optimizes some cases.)
+* Moved compiler to low mem.
+* Added $FG,2$lastclass$FG$ as a special compiler dft arg.
+* Used  $FG,2$lastclass$FG$ in $LK,"ClassRep","MN:ClassRep"$() and $LK,"DocFormDo","MN:DocFormDo"$().
+* Chged arg order in $LK,"ClassRep","MN:ClassRep"$().
+* $LK,"R","MN:R"$("NamedFrame","Frame");
+* Changed imports in binary file format.
+
+$IV,1$----09/25/13 00:12:26----$IV,0$
+* Added $LK-A,"::/TempleOS/Demo/Graphics/Elephant.CPP.Z"$.
+
+$IV,1$----09/14/13 22:16:43----$IV,0$
+* Added $LK-A,"::/TempleOS/Demo/Carry.CPP.Z"$.
+* Got rid of $LK,"CDirEntry","MN:CDirEntry"$.expanded_size.
+  $BK,1$$FG,4$!!! Warning !!!$FG$$BK,0$ RedSea file system is different, old RedSea partitions will
+  not work.
+
+$IV,1$----09/11/13 14:17:45----$IV,0$
+* $LK,"R","MN:R"$("FUF_JUST_TXT_FILES","FUF_JUST_TXT");
+* $LK,"R","MN:R"$("FILENAME_MASK","FILEMASK");
+* $LK,"R","MN:R"$("Lit","Imm");
+* Compiler optimization: Compare immediates.
+
+$IV,1$----08/31/13 14:36:22----$IV,0$
+* Made $LK,"tS","MN:tS"$ use $LK,"HPET","MN:HPET"$ if available.
+
+$IV,1$----08/30/13 03:21:38----$IV,0$
+* $BK,1$TempleOS version 1.05 Released$BK,0$
+* $LK,"R","MN:R"$("GetCurTimeDate","GetDateTime");
+* $LK,"R","MN:R"$("GetTimeStamp","GetTSC");
+* $LK,"R","MN:R"$("GetF","Scan");
+* $LK,"R","MN:R"$("BASE_PTR","RBP");
+* $LK,"R","MN:R"$("STK_PTR","RSP");
+* $LK,"R","MN:R"$("Getlags","GetRFlags");
+* $LK,"R","MN:R"$("SetFlags","SetRFlags");
+* Changed args on $LK,"FilesFindMatch","MN:FilesFindMatch"$().
+* $LK,"R","MN:R"$("SearchStr","StrFind"); and change args.
+* $LK,"R","MN:R"$("WildCardMatch","WildMatch"); and change args.
+* $LK,"R","MN:R"$("StrStr","StrMatch"); and changed args.
+* $LK,"R","MN:R"$("LstEntryMatch","LstMatch");
+* $LK,"R","MN:R"$("LstEntryPt","LstSub");
+* Added $LK,"RawPrint","MN:RawPrint"$().
+* $LK,"R","MN:R"$("DbgI64","RawI64"); etc.
+* $LK,"R","MN:R"$("MSPrintF","MPrint");
+* $LK,"R","MN:R"$("PrintF","Print");
+* $LK,"R","MN:R"$("AFDelayedPutS","AFPrint");
+* Converted PutS to Print
+
+$IV,1$----08/28/13 13:00:02----$IV,0$
+* $LK,"R","MN:R"$("HashRep","Who");
+* Converted file utils to flattened list.
+* Got rid of "hidden widgets".
+
+$IV,1$----08/27/13 19:31:01----$IV,0$
+* Fixed $LK,"Randomize","MN:Randomize"$().
+* Added $LK,"PopUpI64","MN:PopUpI64"$().
+* Added seed to $LK-A,"::/TempleOS/Apps/ToTheFront/ToTheFront.CPP.Z"$.
+
+$IV,1$----08/27/13 12:13:35----$IV,0$
+* Got rid of $FG,4$IOSnd$FG$().
+* Got rid of $LK,"CDirEntry","MN:CDirEntry"$.xsum
+
+$IV,1$----08/26/13 15:54:09----$IV,0$
+* Improved $LK-A,"::/TempleOS/Demo/Games/EagleDive.CPP.Z"$.
+* Improved $LK-A,"::/TempleOS/Apps/HolySpirit/HolySpirit.CPP.Z"$.
+* Songs
+
+$IV,1$----08/20/13 11:19:56----$IV,0$
+* $LK,"R","MN:R"$("CDirEntryDel","DirEntryDel");
+
+$IV,1$----08/12/13 08:42:47----$IV,0$
+* Added $LK-A,"::/TempleOS/Demo/Graphics/PanText.CPP.Z"$.
+* Added $LK,"gr_pan_text_x","MN:gr_pan_text_x"$, $LK,"gr_pan_text_y","MN:gr_pan_text_y"$.
+* Fixed compiler bug -- Pow() operator type conversion.
+
+$IV,1$----08/04/13 10:31:36----$IV,0$
+* New Logo
+
+$IV,1$----07/27/13 07:17:43----$IV,0$
+* Fixed bug in $LK-A,"::/TempleOS/Apps/MusicOrgan/MakeSong.CPP.Z"$.
+* Improved $LK,"GrRect3","MN:GrRect3"$();
+
+$IV,1$----07/25/13 08:01:06----$IV,0$
+* Fixed $LK,"ROP_XOR","MN:ROP_XOR"$ in $LK,"GrRect","MN:GrRect"$().
+
+$IV,1$----07/24/13 22:56:09----$IV,0$
+* $LK,"R","MN:R"$("SpritePlot3b","SpritePlot3B");
+* $LK,"R","MN:R"$("P3I32","D3I32");
+* Added $LK,"GrRectB","MN:GrRectB"$().
+
+$IV,1$----07/14/13 21:14:25----$IV,0$
+* Fixed bug with saved cursor location.
+
+$IV,1$----07/12/13 11:54:11----$IV,0$
+* $LK,"R","MN:R"$("CONSTANT","CONST");
+
+$IV,1$----07/11/13 22:52:45----$IV,0$
+* Fixed bug in $LK,"Auto","MN:Auto"$().
+* Added score to $LK-A,"::/TempleOS/Demo/Games/Varoom.CPP.Z"$.
+
+$IV,1$----07/08/13 05:12:13----$IV,0$
+* $LK,"R","MN:R"$("Expression","LexExpression");
+* Cleaned-up compiler.
 * Made graphics routines return I64, not Bool.
 
 $IV,1$----06/30/13 00:41:54----$IV,0$
@@ -85,7 +208,7 @@ $IV,1$----05/11/13 03:31:59----$IV,0$
 
 $IV,1$----05/08/13 13:04:22----$IV,0$
 * $LK,"R","MN:R"$("NativeFS","RedSeaFS");
-* $LK,"R","MN:R"$("C+","Holy C");
+* $LK,"R","MN:R"$("C+","HolyC");
 
 $IV,1$----04/30/13 06:15:35----$IV,0$
 * $LK,"R","MN:R"$("GameStarters","Games");
@@ -97,7 +220,7 @@ $IV,1$----04/10/13 12:41:18----$IV,0$
 * $FG,4$dft_drv$FG$ is now $FG,4$*sys_acct$FG$.
 * Made so RAM drives are not reformatted at boot.
 * $FG,4$$BK,1$WARNING$BK,0$$FG$: Added new prompt to RAM disk creation.
-* Added $LK,"StreamExePutS","MN:StreamExePutS"$() and $LK,"StreamExePrintF","MN:StreamExePrintF"$().
+* Added $LK,"StreamExePrint","MN:StreamExePrint"$().
 
 $IV,1$----04/08/13 10:46:20----$IV,0$
 * $BK,1$TempleOS version 1.01 Released$BK,0$
@@ -140,7 +263,7 @@ $IV,1$----03/27/13 04:18:15----$IV,0$
 * Changed $MA+A,"Tour","Cd(\"::/TempleOS/Misc/Tour\");;AutoFile(\"Tour\");\n"$.
 
 $IV,1$----03/24/13 14:44:28----$IV,0$
-* Made $LK,"PutChar","MN:PutChar"$('Hello') accept multiple chars.  This is tricky.  My compiler allows multi-byte char constants.
+* Made $LK,"PutChar","MN:PutChar"$('Hello') accept multiple chars.  This is tricky.  My compiler allows multi-byte char consts.
 
 $IV,1$----03/19/13 16:18:53----$IV,0$
 * Added $LK,"DocType","MN:DocType"$() and $LK,"DocNewLine","MN:DocNewLine"$().
diff --git a/TempleOS/Doc/Charter.TXT b/TempleOS/Doc/Charter.TXT
index b6b2b8d..78afe21 100644
--- a/TempleOS/Doc/Charter.TXT
+++ b/TempleOS/Doc/Charter.TXT
@@ -20,7 +20,7 @@ TempleOS is God's official temple.  God said to use 640x480 16 color graphics an
 
 9) All function args and returns will be 64-bit.  No plans for C++.
 
-10) TempleOS documents are not for printing.  They're dynamic and intended for the screen.  There will always be just one font, a fixed-width font.  No Unicode, just ASCII.
+10) TempleOS documents are not for printing.  They're dynamic and intended for the screen.  There will always be just one font, a fixed-width font.  No Unicode, just "8-bit ASCII".
 
 11) TempleOS is not for multimedia.  Games will be created by programmers, not artists.  Sounds and images will be, primarily, calculated in real-time, not fetched.
 
diff --git a/TempleOS/Doc/CmdLine.TXT b/TempleOS/Doc/CmdLine.TXT
index 19214d6..ac7f837 100644
--- a/TempleOS/Doc/CmdLine.TXT
+++ b/TempleOS/Doc/CmdLine.TXT
@@ -1,4 +1,4 @@
-$WW,1$The cmd line feeds into the $LK,"Holy C","FI:::/TempleOS/Doc/HolyC.TXT"$ compiler as you type.  A statement outside a function executes immediately.  Remember to add a semicolon.$WW,1$
+$WW,1$The cmd line feeds into the $LK,"HolyC","FI:::/TempleOS/Doc/HolyC.TXT"$ compiler as you type.  A statement outside a function executes immediately.  Remember to add a semicolon.$WW,1$
 
 Look-up the function headers with $FG,2$WordStat$FG$ by hitting $FG,2$$FG$ after typing the first few letters.
 
diff --git a/TempleOS/Doc/Confuse.TXT b/TempleOS/Doc/Confuse.TXT
index 7218678..840d019 100644
--- a/TempleOS/Doc/Confuse.TXT
+++ b/TempleOS/Doc/Confuse.TXT
@@ -18,7 +18,7 @@ $WW,1$$FG,5$$TX+CX,"Clearing-up Confusions"$$FG$
 
 * $LK,"Fs","MN:Fs"$ is a segment register, not "file system".  (It is kept pointing to the current task's record.)  There is no memory segmentation -- FS and GS are used as general purpose registers, more or less.
 
-* TempleOS uses a dialect of C/C++ called $LK,"Holy C","FI:::/TempleOS/Doc/HolyC.TXT"$.  It is not PASCAL.  I altered the syntax making parenthesis optional on function calls with no paramaters.
+* TempleOS uses a dialect of C/C++ called $LK,"HolyC","FI:::/TempleOS/Doc/HolyC.TXT"$.  It is not PASCAL.  I altered the syntax making parenthesis optional on function calls with no paramaters.
 
 * $LK,"Sleep","MN:Sleep"$() makes a program pause.  It is not hybernation for a laptop.
 
diff --git a/TempleOS/Doc/CutCorners.TXT b/TempleOS/Doc/CutCorners.TXT
index c26f8dd..08924b4 100644
--- a/TempleOS/Doc/CutCorners.TXT
+++ b/TempleOS/Doc/CutCorners.TXT
@@ -9,3 +9,7 @@ There are a few places where I cut corners in the interest of not junking-up cod
 * I changed the $LK,"asm opcodes","FI:::/TempleOS/Compiler/OpCodes.TXT"$ names to remove the ambiguity between instructions with different numbers of arguments, making my $LK,"assembler","FI:::/TempleOS/Compiler/Assembler.CPP"$ simpler and I did minimal 16-bit asm support, since 64-bit is what you should be using, unless you're doing a $LK,"boot loader","FI:::/TempleOS/Adam/Boot/BootCD.CPP"$.
 
 * There are no file-sharing locks of any kind.  You're on your own.
+
+* The compiler does not support $FG,2$bool$FG$; see the definition of $LK,"Bool","MN:Bool"$, LOL.
+
+* A hidden window is never refreshed.  Certain tasks are never done, therefore.  During refresh, the entry count limit of the document buffer is, normally, checked and enforced.  If you print to the command-line in a task who's window is covered, no limit on buffer exists and it will allocate memory for the document buffer until the system runs out of memory and crashes.
diff --git a/TempleOS/Doc/D3.TXT b/TempleOS/Doc/D3.TXT
index bccfe44..39ebe37 100644
--- a/TempleOS/Doc/D3.TXT
+++ b/TempleOS/Doc/D3.TXT
@@ -1,3 +1,3 @@
-$WW,1$TempleOS has a class for 3 dimensional points consisting of F64s.  Holy C is not C++ -- it does not support passing or returning values from functions which are not 64-bits, therefore, it can't be implemented with operator overloading.  Making all function args and returns 64-bit is a core prinicple of TempleOS.
+$WW,1$TempleOS has a class for 3 dimensional points consisting of F64s.  HolyC is not C++ -- it does not support passing or returning values from functions which are not 64-bits, therefore, it can't be implemented with operator overloading.  Making all function args and returns 64-bit is a core prinicple of TempleOS.
 
 As a courtesy, most of the CD3 functions return the addr of the destination vect, so you can nestle calls.  They do not allocate new space for the destination vect.
diff --git a/TempleOS/Doc/Dbg.TXT b/TempleOS/Doc/Dbg.TXT
index 3b2ae59..01a1458 100644
--- a/TempleOS/Doc/Dbg.TXT
+++ b/TempleOS/Doc/Dbg.TXT
@@ -1,24 +1,24 @@
-$WW,1$* You can enter the debugger with $LK,"Dbg","MN:Dbg"$() or $FG,2$$FG$.  You might enter the debugger through a fault.  Enter $LK,"G","MN:G"$() or $LK,"G2","MN:G2"$() to continue execution.  Place a call to $LK,"Dbg","MN:Dbg"$() in your code at fatal error points to enter the debugger.  If you see a stk dump, record the label+offset and unassemble, $LK,"U","MN:U"$().
+$WW,1$* You can enter the debugger with $LK,"Dbg","MN:Dbg"$() or $FG,2$$FG$.  You might enter the debugger through a fault.  Enter $LK,"G","MN:G"$() or $LK,"G2","MN:G2"$() to continue execution.  Place a call to $LK,"Dbg","MN:Dbg"$() in your code at fatal error points to enter the debugger.  If you see a stk dump, record the label+offset and unassemble, $LK,"U","MN:U"$(). $LK,"U","MN:U"$($LK,"_RIP","MN:_RIP"$); 
 
 * I use $LK,"progress1","MN:progress1"$-$LK,"progress4","MN:progress4"$ for debugging because they show on the wallpaper.  They're just global integer vars.
 
-* While debugging, you specify addresses of assembly  routines with just the label, as in $FG,2$_MALLOC+0x20$FG$.  You specify $LK,"Holy C","FI:::/TempleOS/Doc/HolyC.TXT"$ function names with $FG,2$&$FG$ before functions as in $FG,2$&PrintF+0x10$FG$.
+* While debugging, you specify addresses of assembly  routines with just the label, as in $FG,2$_MALLOC+0x20$FG$.  You specify $LK,"HolyC","FI:::/TempleOS/Doc/HolyC.TXT"$ function names with $FG,2$&$FG$ before functions as in $FG,2$&Print+0x10$FG$.
 
-* You can use $LK,"AdamLog","MN:AdamLog"$() to send text to the Adam task window.  It works like $LK,"PrintF","MN:PrintF"$().  I never use this.  Instead I use $LK,"DbgI64","MN:DbgI64"$().
+* You can use $LK,"AdamLog","MN:AdamLog"$() to send text to the Adam task window.  It works like $LK,"Print","MN:Print"$().  I never use this.  Instead I use $LK,"RawI64","MN:RawI64"$().
 
-* $LK,"D","MN:D"$() $LK,"DocD","MN:DocD"$() to do 16 column hex dump mem with numbering from zero.  With $LK,"DocD","MN:DocD"$ the values are updated continually and you can alter mem by editing.
+* $LK,"D","MN:D"$(), $LK,"DocD","MN:DocD"$(), $LK,"RawD","MN:RawD"$() to do 16 column hex dump mem with numbering from zero.  With $LK,"DocD","MN:DocD"$ the values are updated continually and you can alter mem by editing.
 
-* $LK,"Dm","MN:Dm"$() $LK,"DocDm","MN:DocDm"$() to do 16 column hex dump mem with addresses showing.
+* $LK,"Dm","MN:Dm"$(), $LK,"DocDm","MN:DocDm"$(), $LK,"RawDm","MN:RawDm"$() to do 16 column hex dump mem with addresses showing.
 
 * $LK,"Da","MN:Da"$() to do one column address dump (for stk, etc.) with symbolic addresses.
 
 * $LK,"Dr","MN:Dr"$() dumps registers.  You can display and modify registers in the debugger with var-like labels, $FG,4$_RAX$FG$, $FG,4$_RBX$FG$, etc.
 
-* $LK,"U","MN:U"$(&FunName+offset) to unassemble mem or $LK,"Uf","MN:Uf"$("FunName") to unassemble a function.
+* $LK,"U","MN:U"$(&FunName+offset) to unassemble mem or $LK,"Uf","MN:Uf"$("FunName") to unassemble a function. $LK,"U","MN:U"$($LK,"_RIP","MN:_RIP"$-16);
 
 * $LK,"ProfBin","MN:ProfBin"$(),$LK,"ProfAll","MN:ProfAll"$() and $LK,"ProfRep","MN:ProfRep"$() provide code profiling.  See $LK-A,"::/TempleOS/Demo/AutoFile/AFProfile.AUT"$ (This is an $LK,"AutoFile","FF:::/TempleOS/Doc/Glossary.TXT,AutoFile"$.)
 
-* Use $LK,"DbgI64","MN:DbgI64"$(), $LK,"DbgStr","MN:DbgStr"$() and $LK,"DbgAdd","MN:DbgAdd"$() to print debug info bypassing the window framework.  You pass these routines a count in milliseconds for how long it should be displayed.  You can use $LK,"Raw","MN:Raw"$($FG,2$TRUE$FG$) to make all output bypass the window framework.  The WinMgr runs on core0 and will overwrite raw text from other cores when it updates the screen.
+* Use $LK,"RawI64","MN:RawI64"$(), $LK,"RawF64","MN:RawF64"$(), $LK,"RawStr","MN:RawStr"$(), $LK,"RawAdd","MN:RawAdd"$(), $LK,"RawPutChar","MN:RawPutChar"$() and $LK,"RawPrint","MN:RawPrint"$() to print debug info bypassing the window framework.  You pass these routines a count in milliseconds for how long it should be displayed.  You can use $LK,"Raw","MN:Raw"$($FG,2$TRUE$FG$) to make all output bypass the window framework.  The WinMgr runs on core0 and will overwrite raw text from other cores when it updates the screen.
 
 * Use $LK,"SysDbg","MN:SysDbg"$() to set a flag which you can read with $LK,"IsSysDbg","MN:IsSysDbg"$() when you wish to trigger some debug activity.  It's just a handy simple flag, nothing fancy.
 
@@ -30,7 +30,7 @@ $LK,"Echo","MN:Echo"$() turns on or off raw data going into the lexical analyzer
 
 $LK,"LTrace","MN:LTrace"$() shows the tokens coming out of the lexical analyzer.
 
-$LK,"CTrace","MN:CTrace"$() unassembles code generated from the Holy C compiler.
+$LK,"CTrace","MN:CTrace"$() unassembles code generated from the HolyC compiler.
 
 $LK,"PTrace","MN:PTrace"$() shows $FG,2$intermediate code$FG$ comming out of the first stage of the compiler (it's not 100% valid because it hasn't been fixed-up).
 
diff --git a/TempleOS/Doc/DemoIndex.TXT b/TempleOS/Doc/DemoIndex.TXT
index a7ede28..29b040a 100644
--- a/TempleOS/Doc/DemoIndex.TXT
+++ b/TempleOS/Doc/DemoIndex.TXT
@@ -21,6 +21,7 @@ $LK-A,"::/TempleOS/Demo/Graphics/Speedline.CPP"$
 $LK-A,"::/TempleOS/Demo/Graphics/Bounce.CPP"$
 $LK-A,"::/TempleOS/Demo/KeyBitMap.CPP"$
 $LK-A,"::/TempleOS/Demo/Graphics/WinZBuf.CPP"$
+$LK-A,"::/TempleOS/Demo/Graphics/Elephant.CPP.Z"$
 $LK-A,"::/TempleOS/Demo/Graphics/Mountain.CPP"$
 $LK-A,"::/TempleOS/Demo/Games/Coach.CPP"$
 $LK-A,"::/TempleOS/Demo/Graphics/WallPaperFish.CPP"$
@@ -52,6 +53,7 @@ $LK-A,"::/TempleOS/Demo/Graphics/SpritePlot3D.CPP"$
 $LK-A,"::/TempleOS/Demo/Graphics/Logo.CPP"$
 $LK-A,"::/TempleOS/Demo/Graphics/RotateTank.CPP"$
 $LK-A,"::/TempleOS/Demo/ScreenCodes.CPP"$
+$LK-A,"::/TempleOS/Demo/Graphics/PanText.CPP.Z"$
 $LK-A,"::/TempleOS/Demo/Graphics/CharGraphics.CPP"$
 $LK-A,"::/TempleOS/Demo/Games/Maze.CPP"$
 $LK-A,"::/TempleOS/Demo/Graphics/FontEd.CPP"$
@@ -59,7 +61,7 @@ $LK-A,"::/TempleOS/Demo/ExtendedChars.CPP"$
 $LK-A,"::/TempleOS/Demo/TimeIns.CPP"$
 $LK-A,"::/TempleOS/Demo/Snd/WaterFowl.CPP"$
 $MA+A-X+PU,"::/TempleOS/Apps/MusicOrgan/Examples","Cd(\"::/TempleOS/Apps/MusicOrgan/Examples\");Dir;View;\n"$
-$LK-A,"::/TempleOS/Demo/MultiCore/MPPrintF.CPP"$
+$LK-A,"::/TempleOS/Demo/MultiCore/MPPrint.CPP"$
 $LK-A,"::/TempleOS/Demo/Graphics/PredatorPrey.CPP"$
 $LK-A,"::/TempleOS/Demo/Graphics/Cartesian.CPP"$
 $LK-A,"::/TempleOS/Demo/Graphics/Hanoi.CPP"$
@@ -118,10 +120,11 @@ $LK-A,"::/TempleOS/Demo/PhoneNumWords.CPP"$
 $LK-A,"::/TempleOS/Demo/SuggestSpelling.CPP"$
 $LK-A,"::/TempleOS/Demo/WordSearch.CPP"$
 $LK-A,"::/TempleOS/Demo/Graphics/CommonAncestor.CPP"$
+$LK-A,"::/TempleOS/Demo/Carry.CPP.Z"$
 $LK-A,"::/TempleOS/Demo/Dsk/DataBase.CPP"$
 $LK-A,"::/TempleOS/Demo/Dsk/OrderedIO.CPP"$
 $LK-A,"::/TempleOS/Demo/Dsk/FPrintF.CPP"$
-$LK-A,"::/TempleOS/Demo/Dsk/Raw.CPP"$
+$LK-A,"::/TempleOS/Demo/Dsk/DskRaw.CPP"$
 $LK-A,"::/TempleOS/Demo/Dsk/UnusedSpaceRep.CPP"$
 $LK-A,"::/TempleOS/Demo/Lectures/MiniGrLib.CPP"$
 $LK-A,"::/TempleOS/Demo/Lectures/MiniCompiler.CPP"$
@@ -136,7 +139,7 @@ $MA+A-X+PU,"::/TempleOS/Demo/Lectures","Cd(\"::/TempleOS/Demo/Lectures\");Dir;Vi
 $ID,-2$$TR,"TempleOS Specific"$
 $ID,2$$MA+A-X+PU,"::/TempleOS/Demo/OldSchool","Cd(\"::/TempleOS/Demo/OldSchool\");Dir;View;\n"$
 $MA+A-X+PU,"::/TempleOS/Demo/AutoFile","Cd(\"::/TempleOS/Demo/AutoFile\");Dir;View;\n"$
-$LK-A,"::/TempleOS/Demo/PrintF.CPP"$
+$LK-A,"::/TempleOS/Demo/Print.CPP"$
 $LK-A,"::/TempleOS/Demo/DateTime.CPP"$
 $LK-A,"::/TempleOS/Demo/SubIntAccess.CPP"$
 $LK-A,"::/TempleOS/Demo/ParenWarn.CPP"$
diff --git a/TempleOS/Doc/Directives.TXT b/TempleOS/Doc/Directives.TXT
index 30b664e..7568bc1 100644
--- a/TempleOS/Doc/Directives.TXT
+++ b/TempleOS/Doc/Directives.TXT
@@ -1,8 +1,8 @@
 $WW,1$The compiler looks-ahead a token most of the time, so you might throw an extra semicolon after the directive if it's not taking affect right away.
 
 $FG,2$#include ""$FG$ 	There is no angle bracket <> form of this directive.
-$FG,2$#exe {}$FG$		Will execute code at compile-time and can be used to insert code into the stream being compiled using $LK,"StreamPrintF","MN:StreamPrintF"$().
-$FG,2$#define$FG$		Define string constant
+$FG,2$#exe {}$FG$		Will execute code at compile-time and can be used to insert code into the stream being compiled using $LK,"StreamPrint","MN:StreamPrint"$().
+$FG,2$#define$FG$		Define string const
 $FG,2$#assert$FG$		Print a warning during compilation if an expression is not true. 
 $FG,2$#if$FG$		Include code if an expresion is true.
 $FG,2$#else
@@ -23,7 +23,7 @@ Here are example instruction formats:
 $HL,1$	ADD	RAX,I64 FS:DISP[RSI+RDI*8]
 $HL,0$$HL,1$	ADD	RAX,I64 [DISP]
 $HL,0$
-$FG,2$$$$FG$ Current compiler output pos (instruction ptr).  Even works in Holy C expressions.
+$FG,2$$$$FG$ Current compiler output pos (instruction ptr).  Even works in HolyC expressions.
 
 $FG,2$$$$FG$ works in $FG,2$class$FG$es.
   $FG,2$class MyFun
diff --git a/TempleOS/Doc/Dollar.TXT b/TempleOS/Doc/Dollar.TXT
index 8bf3266..b9e6927 100644
--- a/TempleOS/Doc/Dollar.TXT
+++ b/TempleOS/Doc/Dollar.TXT
@@ -20,7 +20,7 @@ $ID,2$The cursor pos is usually stored as a ASCII#5 character and is not bracket
 $ID,-2$$TR,"ID Indent +/- num"$
 $ID,2$This changes the indention deeper if positive or shallower if negative. It effects the behavior of trees.
 $ID,-2$$TR,"DA Data"$
-$ID,2$primarily used for forms that prompt for data. Use $FG,2$$FG$ as a resource editor-type thing to generate the text you'll need in your "$FG,2$fmtstr$FG$" cmd in a $FG,2$class$FG$.  If you add it directly with $LK,"DocPutS","MN:DocPutS"$(), you'll need to fill-in the data addr.  See $LK,"DocFormDo","MN:DocFormDo"$(),$LK-A,"::/TempleOS/Demo/Doc/Form.CPP"$.
+$ID,2$primarily used for forms that prompt for data. Use $FG,2$$FG$ as a resource editor-type thing to generate the text you'll need in your "$FG,2$fmtstr$FG$" cmd in a $FG,2$class$FG$.  If you add it directly with $LK,"DocPrint","MN:DocPrint"$(), you'll need to fill-in the data addr.  See $LK,"DocFormDo","MN:DocFormDo"$(),$LK-A,"::/TempleOS/Demo/Doc/Form.CPP"$.
 
 If there is a ':', the space after the first ':' in the format string marks the first valid cursor pos.
   
@@ -70,11 +70,13 @@ Examples:  to see
 3)File link without different tag str.$LK-A,"::/TempleOS/Doc/HelpIndex.TXT"$
 4)$LK,"File find link searching for 'Admin'","FF:::/TempleOS/Doc/HelpIndex.TXT,Admin"$
 5)$LK,"File find link searching for 5th 'CTRL'","FF:::/TempleOS/Kernel/Adam1a.HPP,CTRL:5"$
-6)$LK,"Manual page link","MN:PrintF"$
+6)$LK,"Manual page link","MN:Print"$
 7)$LK,"File line num link","FL:::/TempleOS/Kernel/Adam1a.HPP,200"$
 8)$LK,"File anchor link --  to see anchor after you click","FA:::/TempleOS/Kernel/Define1a.CPP,OS_DEFINE"$
 9)$LK,"Bible Link","BF:Acts,2:3"$ The chapter:verse actually just does a text search.
 10) $LK,"Help Index Link","HI:Doc"$.
+11) $LK,"Address Link","AD:0x10000"$.
+
 $ID,-2$$TR,"BT Button"$
 $ID,2$See $LK-A,"::/TempleOS/Demo/Doc/MenuButton.CPP"$.
 $ID,-2$$TR,"CB Check Box"$
@@ -86,16 +88,12 @@ $ID,-2$$TR,"MU Menu Value"$
 $ID,2$See $LK,"PopUpRangeI64","MN:PopUpRangeI64"$().
 $ID,-2$$TR,"HX Hex Edit"$
 $ID,2$See $LK,"DocD","MN:DocD"$().
-$ID,-2$$TR,"Hidden Text Widget"$
-$ID,2$$FG,5$HS Start of hidden text$FG$
-$FG,5$HE End of hidden text$FG$
-$FG,5$$FG$Hidden text widgets allow text to be placed in collapsable brackets like this $HS$$FG$This is hidden.$HE$ which can be expanded by clicking them. If you place a '$FG,4$-C$FG$' flag to uncollapse it, it will start expanded like this $HS$$FG$Click to hide$HE$. They can be nestled like this $HS$Click here:$HS$This is nestled.$HE$ okay?$HE$.
 $ID,-2$$TR,"TR Tree Widget"$
 $ID,2$A tree widget is a branch in a collapsable tree.  The domain of the branch extends from the first +indent until enough -indents bring it back to where it started.  Tree's begin collapsed unless a $FG,4$-C$FG$ flag is present.
 $ID,-2$$TR,"SP Sprite"$
 $ID,2$You can insert a sprite into text with $FG,2$$FG$.  It is critical where the cursor is at the time you enter $FG,2$$FG$ because the sprite will be offset from that location.  This is especially important when adding images to programs.  Numbers for sprites are automatically chosen because copying to and from the clipboard requires this.  You can insert another sprite with the same image by hitting $FG,2$$FG$ and manually adding a $FG,4$$$SP$$$FG$ entry with the same num.  You can cause the $FG,4$$$SP$$$FG$ cmd to appear with some text associated with it by manually adding text into the $FG,4$$$SP$$$FG$ cmd, as in $FG,4$$$SP,"pic 2",2$$$FG$.
 $ID,-2$$TR,"IB Insert Binary"$
-$ID,2$This cmd is used to tell the compiler to fetch the binary data stored after the end of text.  There is basically one type of binary data in DOC's at this point--sprites-- created with $FG,2$$FG$. They have a number associated with them.  This number is automatically chosen, because copying to the clip-board and back requires renuming. To use a $FG,4$$$IB$$$FG$ cmd, toggle to plain text ($FG,2$$FG$) after inserting a sprite and check the number in the $FG,4$$$SP$$$FG$ cmd. Create a $FG,4$$$IB$$$FG$ cmd with the same number and the sprite will be inserted into the compiled stream like a string constant.  You can optionally include tag text to be displayed for the $FG,4$$$IB$$$FG$ cmd.
+$ID,2$This cmd is used to tell the compiler to fetch the binary data stored after the end of text.  There is basically one type of binary data in DOC's at this point--sprites-- created with $FG,2$$FG$. They have a number associated with them.  This number is automatically chosen, because copying to the clip-board and back requires renuming. To use a $FG,4$$$IB$$$FG$ cmd, toggle to plain text ($FG,2$$FG$) after inserting a sprite and check the number in the $FG,4$$$SP$$$FG$ cmd. Create a $FG,4$$$IB$$$FG$ cmd with the same number and the sprite will be inserted into the compiled stream like a string const.  You can optionally include tag text to be displayed for the $FG,4$$$IB$$$FG$ cmd.
 
 The main reason for the $FG,4$$$IB$$$FG$ cmd at this point is to pass a arg to the $LK,"SpritePlot3","MN:SpritePlot3"$() function.  See $LK-A,"::/TempleOS/Demo/Graphics/SpritePlot.CPP"$.
 
@@ -125,7 +123,7 @@ $ID,2$* Make a tree branch.  Usually, this is placed on a text($FG,5$TX$FG$) ent
 $ID,-2$$TR,"+PU PopUp"$
 $ID,2$A PopUp flag on a macro ($FG,5$MA$FG$) will cause the cmds to run in a new task, a pop-up window.
 $ID,-2$$TR,"+C Collapsed"$
-$ID,2$A collapsed flag on a tree $FG,5$TR$FG$ entry or a hide start $FG,5$HS$FG$ will cause it to start collapsed.  A $FG,4$-C$FG$ flag will make it start open.
+$ID,2$A collapsed flag on a tree $FG,5$TR$FG$ entry will cause it to start collapsed.  A $FG,4$-C$FG$ flag will make it start open.
 $ID,-2$$TR,"+X  (Exit)"$
 $ID,2$* A exit flag will cause a macro to send an $FG,2$$FG$ before running(to exit the personal menu screen and return to the cmd prompt).  Actually, the default has an exit flag set so you might add a $FG,4$-X$FG$ to turn-off $FG,2$ESC$FG$.
 * If an entry is already at the cmd prompt, the $FG,4$+X$FG$ will cause a movement to the bottom of the window.
@@ -136,7 +134,7 @@ $ID,2$A zero flag on a hex edit($FG,5$HX$FG$) entry will cause the offset from z
 $ID,-2$$TR,"+HTML"$
 $ID,2$The $LK,"ToHtml","MN:ToHtml"$() or $LK,"Doc2Html","MN:Doc2Html"$() routines will generate a html version of a document.  You can cause html link on an item with $FG,4$+HTML$FG$.
 $ID,-2$$TR,"+BP"$
-$ID,2$The Bin Ptr Link flags lets you specify a file name and bin num to import a bin$FG$.  $FG,2$$$SP+BP,"",1,"filename,1"$$$FG$ will import bin num "1" from filename.
+$ID,2$The Bin Ptr Link flags lets you specify a filename and bin num to import a bin$FG$.  $FG,2$$$SP+BP,"",1,"filename,1"$$$FG$ will import bin num "1" from filename.
 $ID,-2$$TR,"+AL Alias"$
 $ID,2$An alias flag on a tree entry ($FG,4$+TR$FG$) will cause the text of the current entry the cursor is on to be copied to this entry.  This creates something similar to a drop-down window, but it doesn't work well yet.
 $ID,-2$$TR,"+RD Refresh Data"$
diff --git a/TempleOS/Doc/Features.TXT b/TempleOS/Doc/Features.TXT
index 4f8994b..bc1aa1b 100644
--- a/TempleOS/Doc/Features.TXT
+++ b/TempleOS/Doc/Features.TXT
@@ -1,30 +1,30 @@
 $WW,1$$FG,5$$TX+CX,"TempleOS' Features"$$FG$
 
+* Oracle in program, $FG,2$AfterEgypt$FG$, for $LK,"tongues","FI:::/TempleOS/Apps/HolySpirit/HSNotes.TXT.Z"$.
+
 * $FG,4$$TX+HTML,"x86_64","http://en.wikipedia.org/wiki/Amd64#AMD64"$$FG$, ring-0-only, single-address-map (identity), multitasking kernel with multicore support.
 
-* Free, $FG,2$public domain$FG$, and $FG,2$100% open source$FG$.
+* Free, $FG,2$public domain$FG$, $FG,2$100% open source$FG$.
 
-* 64-bit $FG,2$compiler/assembler$FG$ that truly compiles, no interpreter.
+* 64-bit $FG,2$compiler/assembler$FG$ for $LK,"HolyC","FI:::/TempleOS/Doc/HolyC.TXT.Z"$.  Truly compiles, not interprets.  $FG,2$Just-in-Time$FG$ and $FG,2$Ahead-of-Time$FG$ compilation.  With $FG,2$JIT$FG$, no need for object or exe files.
 
 * No 32-bit krufty code.
 
 * 640x480 16 color $FG,2$VGA$FG$ graphics.
 
-* Keyboard & mouse support.
+* Keyboard & Mouse support.
 
 * Hard drives, support for $FG,2$FAT32$FG$ and $FG,2$RedSea$FG$ file systems with file compression.
 
-* $LK,"Partitioning","MN:PrtDsk"$ tool.
+* $FG,2$CD/DVD$FG$ support with $FG,2$ISO9660$FG$ file system.  Can make bootable $FG,2$ISO9660$FG$ ISO files so you can roll-your-own distro's.
 
-* $FG,2$Boot loaders$FG$ for CD-ROM and hard disk.
+* $LK,"Partitioning","MN:PrtDsk"$ tool, installer, $FG,2$boot loaders$FG$ for CD-ROM and hard disk.
 
-* $FG,2$CD/DVD$FG$ reading and writing, $FG,2$ISO9660$FG$ file system. Can make bootable $FG,2$ISO9660$FG$ ISO files so you can roll-your-own distro's.
+* $FG,2$Editor/Browser$FG$ for a new $LK,"Document Format","FI:::/TempleOS/Doc/Dollar.TXT.Z"$.  Source files and the command line window can have graphics, links, icons, trees, colors, super/sub scripts, margins.  Everything is seamless through-out the tool chain.  No need for separate resource files.
 
-* Source files and the command line window can have graphics, links, icons, trees, colors, super/sub scripts, margins.  Everything is seamless through-out the tool chain.  No need for separate resource files.
+* 8-bit $FG,2$ASCII$FG$, not just 7-bit.  Supported in entire tool chain.  $FG,2$$FG$
 
-* $FG,2$Just-in-time$FG$ compilation.  No need for object or exe files.
-
-* $FG,2$Graphics in source code$FG$.  No need for resource files.
+* $FG,2$Graphics in source code$FG$, no resource files, $FG,2$graphic resource editor$FG$. $FG,2$$FG$
 
 * $FG,2$64-bit pointers$FG$.  All memory, even more than 4 Gig, can be directly accessed by all tasks on all cores at all times.
 
@@ -32,12 +32,20 @@ $WW,1$$FG,5$$TX+CX,"TempleOS' Features"$$FG$
 
 * $FG,2$2D/3D$FG$ graphics library
 
-* Real-time fancy differential-equation solver (physics engine) for use in games.  (Adaptive step-size Runge-Kutta, interpolated for real-time.)
+* Real-time fancy $FG,2$differential-equation solver$FG$ for physics engines, to use in games.  (Adaptive step-size Runge-Kutta, interpolated for real-time.)
+
+* Auto-completion, jump-to-source tool called $FG,2$WordStat$FG$ with Dictionary.
+
+* Window Manager.  Pan screen with $FG,2$$FG$.  Zoom screen on mouse cursor with $FG,2$$FG$/$FG,2$$FG$.
+
+* File Manager, $FG,2$$FG$.
 
 * Code $LK,"profiler","MN:ProfAll"$, $LK,"merge","MN:MergeChk"$, $LK,"diff","MN:Diff"$ utils.
 
-* $FG,2$HD Audio$FG$ and many songs.
+* $FG,2$PC Speaker$FG$ support with many hymns.
 
-* $LK,"Demos","FI:::/TempleOS/Doc/DemoIndex.TXT"$ and $LK,"documentation","FI:::/TempleOS/Doc/HelpIndex.TXT"$.
+* Music composing tool.
+
+* Many games, $LK,"demos","FI:::/TempleOS/Doc/DemoIndex.TXT"$ and $LK,"documentation","FI:::/TempleOS/Doc/HelpIndex.TXT"$.
 
 * $FG,2$All source code$FG$ included.  Only compiles with the included TempleOS compiler and assembler.
diff --git a/TempleOS/Doc/Frame.TXT b/TempleOS/Doc/Frame.TXT
new file mode 100644
index 0000000..7f11f87
--- /dev/null
+++ b/TempleOS/Doc/Frame.TXT
@@ -0,0 +1 @@
+$WW,1$If you require separate global vars for multiple instances of a routine, you can use $FG,4$Frame$FG$s.  See $LK,"SpriteMesh","MN:SpriteMesh"$(), $LK-A,"::/TempleOS/Demo/Graphics/Pick3D.CPP"$ or $LK,"Noise","MN:Noise"$().
diff --git a/TempleOS/Doc/Glossary.TXT b/TempleOS/Doc/Glossary.TXT
index f898bcb..2e33f7b 100644
--- a/TempleOS/Doc/Glossary.TXT
+++ b/TempleOS/Doc/Glossary.TXT
@@ -14,6 +14,7 @@ $FG,5$CB$FG$	Call-Back or Code Block
 $FG,5$Cfg$FG$	Config
 $FG,5$Chg$FG$	Change
 $FG,5$Chk$FG$	Check
+$FG,5$Const$FG$	Consant
 $FG,5$Cmd$FG$	Command
 $FG,5$Cmp$FG$	Compiler
 $FG,5$Cnt$FG$	Count
@@ -56,7 +57,6 @@ $FG,5$Kbd$FG$	Keyboard
 $FG,5$Len$FG$	Length
 $FG,5$Let$FG$	Letter
 $FG,5$Lex$FG$	Lexical Analyser
-$FG,5$Lit$FG$	Literal
 $FG,5$Loc$FG$	Location, Lines of Code
 $FG,5$Log$FG$	Logarithm or Logical
 $FG,5$Lst$FG$	List
@@ -128,8 +128,8 @@ $ID,2$TempleOS uses the asm $FG,2$CALL$FG$ instruction exclusively and it's limi
 $ID,-2$$TR,"Parent/Child Task"$
 $ID,2$Often a task will $LK,"Spawn","MN:Spawn"$() or $LK,"PopUp","MN:PopUp"$() a task as a helper.  The helper is known as a Child Task, though you can $FG,2$Spawn$FG$ a task and assign it a different parent... like $FG,2$Adam$FG$.  Links are kept as to who spawned what so when one task is $LK,"Kill","MN:Kill"$()ed the helper tasks disappear, too.  You can get a report on current system tasks with $LK+S,"TaskRep","MN:TaskRep"$().  There is just one possible window per task, so child tasks are needed.
 
-$ID,-2$$TR,"Holy C"$
-$ID,2$The language used by TempleOS is more than $FG,2$C$FG$ and less than $FG,2$C++$FG$.  See $LK,"Holy C","FI:::/TempleOS/Doc/HolyC.TXT"$.  It has the default arg feature of $FG,2$C++$FG$ and uses $FG,2$class$FG$ in place of $FG,2$struct$FG$.  It uses $FG,2$U0,U8,U16,U32,I64$FG$ and $FG,2$I0,I8,I16,I32,I64$FG$ for signed and unsigned integers.  It has a slightly different operator precedence.  See $LK,"OP_precedence","FA:::/TempleOS/Doc/HolyC.TXT,OP_precedence"$  It has the $FG,2$PASCAL$FG$-like feature of function calls with no parens, but requires an "$FG,2$&$FG,2$$FG$" when referring to function addresses.
+$ID,-2$$TR,"HolyC"$
+$ID,2$The language used by TempleOS is more than $FG,2$C$FG$ and less than $FG,2$C++$FG$.  See $LK,"HolyC","FI:::/TempleOS/Doc/HolyC.TXT"$.  It has the default arg feature of $FG,2$C++$FG$ and uses $FG,2$class$FG$ in place of $FG,2$struct$FG$.  It uses $FG,2$U0,U8,U16,U32,I64$FG$ and $FG,2$I0,I8,I16,I32,I64$FG$ for signed and unsigned integers.  It has a slightly different operator precedence.  See $LK,"OP_precedence","FA:::/TempleOS/Doc/HolyC.TXT,OP_precedence"$  It has the $FG,2$PASCAL$FG$-like feature of function calls with no parens, but requires an "$FG,2$&$FG,2$$FG$" when referring to function addresses.
 
 $ID,-2$$TR,"AOT Compile Mode"$
 $ID,2$This term to refers to conventional compilation mode.  It is not the preferred mode for this operating system and is discouraged.  $FG,2$.PRJ$FG$ files are compiled to $FG,2$.BIN$FG$ files, skipping $FG,2$.OBJ$FG$ files.  After compiling, you do a $LK,"Load","MN:Load"$() cmd which is available by right-clicking on a link (like from $LK,"Dir","MN:Dir"$()).  There is no $FG,2$main()$FG$ routine.  Instead, statements outside functions are automatically executed upon loading.  There is no way to unload except by killing the task.  To invoke $FG,2$AOT Compiled Mode$FG$, use the $LK,"Cmp","MN:Cmp"$() routine or right-click on a link.  The $FG,2$Kernel$FG$ modules and compiler are made in $FG,2$AOT$FG$ compiled mode and stored in $FG,2$Kernel.BIN.C$FG$ and $FG,2$Compiler.BIN.Z$FG$, respectively.
@@ -137,7 +137,7 @@ $ID,2$This term to refers to conventional compilation mode.  It is not the prefe
 See $LK-A,"::/TempleOS/Demo/Games/EagleDive.CPP"$ for an example of an $FG,2$AOT$FG$ module.
 
 $ID,-2$$TR,"JIT Compile Mode"$
-$ID,2$In just-in-time mode, the compiler allocates objects, code and data, from the heap, incrementally.  This mode is used during cmd line operations.  When you $FG,2$#include$FG$ a file, it is compiled function by function and objects are placed all over in mem.  The $LK,"ExeFile","MN:ExeFile"$() routine is the same as $FG,2$#include$FG$ but can be placed in programs.  $LK,"ExePutS","MN:ExePutS"$() routine will compile and run a string.
+$ID,2$In just-in-time mode, the compiler allocates objects, code and data, from the heap, incrementally.  This mode is used during cmd line operations.  When you $FG,2$#include$FG$ a file, it is compiled function by function and objects are placed all over in mem.  The $LK,"ExeFile","MN:ExeFile"$() routine is the same as $FG,2$#include$FG$ but can be placed in programs.  $LK,"ExePrint","MN:ExePrint"$() routine will compile and run a string.
 
 $ID,-2$$TR,"Compiler Intermediate Code"$
 $ID,2$The compiler generates instructions one step before making actual assembly (machine) language instructions.  This code is reverse polish in nature and can be viewed with $LK,"PTrace","MN:PTrace"$() or $LK,"OTrace","MN:OTrace"$().  The compiler does not "interpret" code, except in the process of optimization.  The assembly language can be viewed when it is compiled with the $LK,"CTrace","MN:CTrace"$() routine, or afterward with $LK,"U","MN:U"$().
@@ -160,9 +160,7 @@ $LK,"Link Types","MN:LK_FILE"$
 $TR,"files_find_mask"$
 $ID,2$$LK,"FilesFindMatch","MN:FilesFindMatch"$().  An optional directory plus a list of file name masks, as in $FG,2$/TempleOS/Demo/*.TXT.Z;*.CPP.Z$FG$
 
-See $LK,"FUF_RECURSE","MN:FUF_RECURSE"$ and $LK,"ST_FILE_UTIL_FLAGS","MN:ST_FILE_UTIL_FLAGS"$.
-
-Be aware of $LK,"FILENAME_MASK_TXT","MN:FILENAME_MASK_TXT"$ and $LK,"FILENAME_MASK_SRC","MN:FILENAME_MASK_SRC"$.
+See $LK,"FUF_RECURSE","MN:FUF_RECURSE"$, $LK,"ST_FILE_UTIL_FLAGS","MN:ST_FILE_UTIL_FLAGS"$, $LK,"FILEMASK_TXT","MN:FILEMASK_TXT"$, $LK,"FILEMASK_SRC","MN:FILEMASK_SRC"$, $LK,"FILEMASK_AOT","MN:FILEMASK_AOT"$, $LK,"FILEMASK_JIT","MN:FILEMASK_JIT"$, and $LK,"FILEMASK_GRA","MN:FILEMASK_GRA"$.
 
 $ID,-2$$TR,"Filename Extention Types"$
 $ID,2$
@@ -173,11 +171,11 @@ $FG,5$*.???.C$FG$
 $FG,5$*.TXT.Z;*.TXT;*.LOG.Z;*.LOG$FG$
   Text Files
 $FG,5$*.CPP.Z;*.CPP$FG$
-  Holy C src files.  The default Holy C compiler type is "$FG,2$.CPP.Z$FG$".
+  HolyC src files.  The default HolyC compiler type is "$FG,2$.CPP.Z$FG$".
 $FG,5$*.PRJ.Z;*.PRJ$FG$
-  Holy C src files to be compiled $FG,2$AOT$FG$.
+  HolyC src files to be compiled $FG,2$AOT$FG$.
 $FG,5$*.HPP.Z;*.HPP$FG$
-  Holy C src header files.
+  HolyC src header files.
 $FG,5$*.MAP.Z;*.MAP$FG$
   Compiler "map" files
 $FG,5$*.BIN.Z;*.BIN.C;*.BIN$FG$
@@ -187,14 +185,15 @@ $FG,5$*.DAT.Z;*.DAT$FG$
 $FG,5$*.ISO$FG$
   CD-ROM image file--ISO9660.
 $FG,5$*.AUT.Z;*.AUT$FG$
-  "AutoFile" Basically a Holy C program who's stdout goes to the input of a task when $LK,"AutoFile","MN:AutoFile"$() is called.
+  "AutoFile" Basically a HolyC program who's stdout goes to the input of a task when $LK,"AutoFile","MN:AutoFile"$() is called.
 $FG,5$*.GRA.Z;*.GRA$FG$
   Graphics file
 
-$LK,"FILENAME_MASK_SRC","MN:FILENAME_MASK_SRC"$$FG$
-  This $FG,2$#define$FG$ holds a list of src file extensions.
-$LK,"FILENAME_MASK_TXT","MN:FILENAME_MASK_TXT"$$FG$
-  This $FG,2$#define$FG$ holds a list of text file extensions.
+$LK,"FILEMASK_TXT","MN:FILEMASK_TXT"$
+$LK,"FILEMASK_SRC","MN:FILEMASK_SRC"$
+$LK,"FILEMASK_AOT","MN:FILEMASK_AOT"$
+$LK,"FILEMASK_JIT","MN:FILEMASK_JIT"$
+$LK,"FILEMASK_GRA","MN:FILEMASK_GRA"$
 
 $ID,-2$$TR,"Naming Convention"$
 $ID,2$$FG,5$$FG$The following are rules I stick to.  If you work on the operating system, it'd be good to stick with them for uniformity, but you can do what you like.  Since there are no "$FG,2$namespaces$FG$" and I don't plan to implement name spaces, I highly recommend putting a 2-3 character module code prefix on syms. e.g. "WS","Doc","Lex"
@@ -203,10 +202,10 @@ $FG,5$ALL_CAPS$FG$
   Assembly Language labels are capitalized with underscores between words.  So are $FG,2$#define$FG$'s.
 
 $FG,5$_ALL_CAPS$FG$
-  Asm routines which are $LK,"Holy C","FI:::/TempleOS/Doc/HolyC.TXT"$ callible should have a leading underscore.
+  Asm routines which are $LK,"HolyC","FI:::/TempleOS/Doc/HolyC.TXT"$ callible should have a leading underscore.
 
 $FG,5$MixedCaps$FG$
-  $LK,"Holy C","FI:::/TempleOS/Doc/HolyC.TXT"$ Functions and class names are MixedCaps.
+  $LK,"HolyC","FI:::/TempleOS/Doc/HolyC.TXT"$ Functions and class names are MixedCaps.
 
 $FG,5$lower_case$FG$
   Local function vars and glbl vars are lower case.  Class member names are also lower_case.
diff --git a/TempleOS/Doc/Graphics.TXT b/TempleOS/Doc/Graphics.TXT
index d40a2c5..de154ab 100644
Binary files a/TempleOS/Doc/Graphics.TXT and b/TempleOS/Doc/Graphics.TXT differ
diff --git a/TempleOS/Doc/GuideLines.TXT b/TempleOS/Doc/GuideLines.TXT
index 0910b07..6ff469f 100644
--- a/TempleOS/Doc/GuideLines.TXT
+++ b/TempleOS/Doc/GuideLines.TXT
@@ -54,7 +54,7 @@ $FG,5$$TX+CX,"PROGRAMMING GUIDELINES"$$FG$
 
 * There are two modes of compiling $LK,"AOT Compile Mode","FF:::/TempleOS/Doc/Glossary.TXT,AOT Compile Mode"$ and $LK,"JIT Compile Mode","FF:::/TempleOS/Doc/Glossary.TXT,JIT Compile Mode"$.  Actual compilation is done in both -- nothing is "interpreted".
 
-* $LK,"Holy C","FI:::/TempleOS/Doc/HolyC.TXT"$
+* $LK,"HolyC","FI:::/TempleOS/Doc/HolyC.TXT"$
 
 * I often use 64-bit values when smaller would be more appropriate because the compiler generally is more efficient with 64-bit values.  (All value get promoted to 64-bit by the TempleOS compiler, when fetched.)
 
@@ -78,11 +78,11 @@ $FG,5$$TX+CX,"HASH SYM TABLES"$$FG$
 
 * See $LK-A,"::/TempleOS/Adam/Hash2a.CPP"$ for examples of how the hash tables are set-up.  Basically, syms are placed into hash tables and child process hash tables are chained to parents.  This provides scopes for vars and functions.
 
-* $FG,2$adam_task->hash_table$FG$ holds the Holy C syms loaded in on start-up.
+* $FG,2$adam_task->hash_table$FG$ holds the HolyC syms loaded in on start-up.
 
-* $FG,2$Fs->hash_table$FG$ holds user Holy C syms and if a sym is not found, it checks parents.  When a duplicate sym is added to the table, it overshadows the previous sym unless you have done $LK,"OptOn","MN:OptOn"$($LK,"OPTf_REPLACE_SYMS","MN:OPTf_REPLACE_SYMS"$).  When developing software, typically you include the file at the cmd prompt, make changes and reinclude it.  Old syms are overshadowed but they are still there.  Periodically, kill the TASK and start fresh when mem is low.  If you wish your applications to free themselves instead of staying in mem, spawn or $LK,"PopUp","MN:PopUp"$() a task to run the application and kill it when it's done.
+* $FG,2$Fs->hash_table$FG$ holds user HolyC syms and if a sym is not found, it checks parents.  When a duplicate sym is added to the table, it overshadows the previous sym unless you have done $LK,"OptOn","MN:OptOn"$($LK,"OPTf_REPLACE_SYMS","MN:OPTf_REPLACE_SYMS"$).  When developing software, typically you include the file at the cmd prompt, make changes and reinclude it.  Old syms are overshadowed but they are still there.  Periodically, kill the TASK and start fresh when mem is low.  If you wish your applications to free themselves instead of staying in mem, spawn or $LK,"PopUp","MN:PopUp"$() a task to run the application and kill it when it's done.
 
-* To display the contents of a hash table, use the $LK,"HashRep","MN:HashRep"$() routine or the varients.  $LK,"HashDepthRep","MN:HashDepthRep"$() gives a histogram  of how long the chains are, in case you wish to make hash table sizes bigger.
+* To display the contents of a hash table, use the $LK,"Who","MN:Who"$() routine or the varients.  $LK,"HashDepthRep","MN:HashDepthRep"$() gives a histogram  of how long the chains are, in case you wish to make hash table sizes bigger.
 
 
 
diff --git a/TempleOS/Doc/HelpIndex.TXT b/TempleOS/Doc/HelpIndex.TXT
index f5e2dbc..1bd752e 100644
Binary files a/TempleOS/Doc/HelpIndex.TXT and b/TempleOS/Doc/HelpIndex.TXT differ
diff --git a/TempleOS/Doc/HelpSystem.TXT b/TempleOS/Doc/HelpSystem.TXT
index 17eca99..2f3b5ac 100644
--- a/TempleOS/Doc/HelpSystem.TXT
+++ b/TempleOS/Doc/HelpSystem.TXT
@@ -1,5 +1,7 @@
 $WW,1$$FG,2$#help_index "Topic/SubTopic;OtherTopic"$FG$
 The help index preprocessor compiler directive sets the topics for syms subsequently defined.  You specify subtopics with a '$FG,2$/$FG$' tree hierarchy and multiple topics separated by a '$FG,2$;$FG$'.  The index ctrls $FG,4$HI:topic$FG$ links.
 
+$FG,2$public$FG$ can be placed before symbol to make it show.
+
 $FG,2$#help_file "filename[.TXT.Z]"$FG$
 The help file preprocessor directive places a file as the heading text in a $FG,4$HI:topic$FG$ link for the current help index.
diff --git a/TempleOS/Doc/HolyC.TXT b/TempleOS/Doc/HolyC.TXT
index 21aa06f..fb064d8 100644
--- a/TempleOS/Doc/HolyC.TXT
+++ b/TempleOS/Doc/HolyC.TXT
@@ -1,4 +1,4 @@
-$WW,1$$FG,5$$TX+CX,"Holy C"$$FG$
+$WW,1$$FG,5$$TX+CX,"HolyC"$$FG$
 
 * See $LK,"Scoping and Linkages","FI:::/TempleOS/Doc/ImportExports.TXT"$ for details on $FG,2$extern$FG$, $FG,2$import$FG$, $FG,2$_extern$FG$, $FG,2$_import$FG$, etc.
 
@@ -18,28 +18,28 @@ $FG,2$	U0	void
 	F64	double$FG$
 	$FG,4$no F32 float.$FG$
 
-* Function with no, or just default args can be called without parentheses. 
+* Function with no args, or just default args can be called without parentheses. 
 
 * Default args don't have to be on the end.  This code is valid:
 $ID,2$$FG,2$U0 Test(I64 i=4,I64 j,I64 k=5)
 {
-  PrintF("%X %X %X\n",i,j,k);
+  Print("%X %X %X\n",i,j,k);
 }
 
 Test(,3);$FG$
 $ID,-2$
-* A string or char constant all alone is sent to $LK,"PutS","MN:PutS"$() or $LK,"PutChar","MN:PutChar"$().  A string with args is sent to $LK,"PrintF","MN:PrintF"$().   An empty string literal signals a variable fmt_str follows.
+* A char const all alone is sent to $LK,"PutChar","MN:PutChar"$().  A string with or without args is sent to $LK,"Print","MN:Print"$().  An empty string literal signals a variable fmt_str follows.
 
-$ID,2$$FG,2$U0 Demo1(U8 drv,U8 *fmt,U8 *name,I64 age)
+$ID,2$$FG,2$void Demo(char drv,char *fmt,char *name,int age)
 {
-  PutS("Hello World!\n");
-  PrintF("%s age %d\n",name,age);
-  PrintF(fmt,name,age);
-  PutChar(drv);
-  PutChar('*');
+  printf("Hello World!\n");
+  printf("%s age %d\n",name,age);
+  printf(fmt,name,age);
+  putchar(drv);
+  putchar('*');
 }
 
-U0 Demo2(U8 drv,U8 *fmt,U8 *name,I64 age)
+U0 Demo(U8 drv,U8 *fmt,U8 *name,I64 age)
 {
   "Hello World!\n";
   "%s age %d\n",name,age;
@@ -56,10 +56,10 @@ $FG$$ID,-2$
 
 * Variable arg count functions ($FG,2$...$FG$) can access their args with built-in variables similar to '$FG,2$this$FG$' in C++.  They are '$FG,2$I64 argc$FG$' and '$FG,2$I64 argv[]$FG$'.  
 $ID,2$$WW,0$
-$FG,2$U0 GrPrintF(CDC *dc,I64 x,I64 y,U8 *fmt,...)
+$FG,2$U0 GrPrint(CDC *dc,I64 x,I64 y,U8 *fmt,...)
 {
-  U8 *buf=SPrintFJoin(NULL,fmt,argc,argv);
-  GrPutS(dc,x,y,buf);
+  U8 *buf=SPrintJoin(NULL,fmt,argc,argv);
+  GrPrint(dc,x,y,buf);
   Free(buf);
 }
 $WW,1$$FG$$ID,-2$
@@ -76,7 +76,7 @@ $FG$$ID,-2$
 
 * $FG,2$noreg$FG$ or $FG,2$reg$FG$ can be placed before a function local var name.  You can, optionally, specify a register after the $FG,2$reg$FG$ keyword.
 
-* $FG,2$interrupt$FG$, $FG,2$public$FG$, $FG,2$argpop$FG$ or $FG,2$noargpop$FG$ are function flags.
+* $FG,2$interrupt$FG$, $FG,2$haserrcode$FG$, $FG,2$public$FG$, $FG,2$argpop$FG$ or $FG,2$noargpop$FG$ are function flags. See $LK-A,"::/TempleOS/Demo/Lectures/PageTableEntries2.CPP.Z"$.
 
 * A $FG,2$nounusedwarn$FG$ statement will suppress an unused var warning.
 
@@ -108,7 +108,7 @@ $FG$$ID,-2$
 
 * You can use $LK,"OptOn","MN:OptOn"$($LK,"OPTf_WARN_DUP_TYPES","MN:OPTf_WARN_DUP_TYPES"$) to find dup local var type statements.
 
-* With the $FG,2$#exe{}$FG$ feature in your src code, you can place programs that insert text into the stream of code being compiled.  See $LK,"#exe {}","FF:::/TempleOS/Kernel/KEnd.CPP,#exe {"$ for an example where the date/time and compile-time prompting for cfguration data is placed into a program.  The $LK,"StreamPrintF","MN:StreamPrintF"$() and $LK,"StreamPutS","MN:StreamPutS"$() place text into a src program stream following the conclusion of the $FG,2$#exe{}$FG$ blk.
+* With the $FG,2$#exe{}$FG$ feature in your src code, you can place programs that insert text into the stream of code being compiled.  See $LK,"#exe {}","FF:::/TempleOS/Kernel/KEnd.CPP,#exe {"$ for an example where the date/time and compile-time prompting for cfguration data is placed into a program.  $LK,"StreamPrint","MN:StreamPrint"$() places text into a src program stream following the conclusion of the $FG,2$#exe{}$FG$ blk.
 
 * No $FG,2$#define$FG$ functions exist (I'm not a fan)
 
@@ -118,12 +118,14 @@ $FG$$ID,-2$
 
 * Can't use $FG,2$<>$FG$ with $FG,2$#include$FG$, use $FG,2$""$FG$.
 
-* "$FG,2$$$$FG$" is an escape character.  Two dollar signs signify an ordinary $$.  See $LK-A,"::/TempleOS/Doc/Dollar.TXT"$.  In $FG,2$asm$FG$ or $LK,"Holy C","FI:::/TempleOS/Doc/HolyC.TXT"$ code, it also refers to the instruction's addr. 
+* "$FG,2$$$$FG$" is an escape character.  Two dollar signs signify an ordinary $$.  See $LK-A,"::/TempleOS/Doc/Dollar.TXT"$.  In $FG,2$asm$FG$ or $LK,"HolyC","FI:::/TempleOS/Doc/HolyC.TXT"$ code, it also refers to the instruction's addr. 
 
 * $FG,2$union$FG$ is more like a class, so you don't reference it with a $FG,2$union$FG$ label after you define it.  Some common unions are declared in $LK,"Adam1a.HPP","MN:U16"$ for 1,2,4 and 8 byte objects.  If you place a type in front of a union declaration, that is the type when used by itself.  See $LK-A,"::/TempleOS/Demo/SubIntAccess.CPP"$. 
 
 * $FG,2$class$FG$ member vars can have meta data. $FG,2$fmtstr$FG$ and $FG,2$fmtdata$FG$ are two meta data types now used.  All compiler structures are saved and you can access the compiler's info about classes and vars.  See $LK-A,"::/TempleOS/Demo/ClassMeta.CPP"$ and  $LK,"DocFormDo","MN:DocFormDo"$().
 
+* There is a keyword $FG,2$lastclass$FG$ you use as a dft arg.  It is set to the class name of the previous arg.  See $LK,"ClassRep","MN:ClassRep"$().
+
 * See $LK-A,"::/TempleOS/Demo/Exceptions.CPP"$.  $FG,2$try{} catch{}$FG$ and $FG,2$throw$FG$ are different from C++. $FG,2$throw$FG$ is a function with var ("$FG,2$...$FG$") args.  The values passed in $FG,2$throw()$FG$ can be accessed from within a $FG,2$catch{}$FG$ using the $FG,2$Fs->except_argc$FG$ and $FG,2$Fs->except_argv[]$FG$ vars.  Within a $FG,2$catch {}$FG$ blk, set the var $FG,2$Fs->catch_except$FG$ to $FG,2$TRUE$FG$ if you want to terminate the search for a handler.  By convention, the first arg of $FG,2$except_argv[]$FG$ specifies the exception type num.  A list of assigned exception types can be found at $LK,"EXCEPT_LOCAL","MN:EXCEPT_LOCAL"$.  For a handler that will catch all excepts, you can use $LK,"CatchAll","MN:CatchAll"$().
 
 * A function is available similar to $FG,2$sizeof$FG$ which provides the offset of a member of a class.  It's called $FG,2$offset$FG$.  You place the class name and member inside as in $FG,2$offset(classname.membername)$FG$.  It has nothing to do with 16-bit code.  Both $FG,2$sizeof$FG$ and $FG,2$offset$FG$ only accept one level of member vars.  That is, you can't do $FG,2$sizeof(classname.membername.submembername)$FG$.$FG$
@@ -151,46 +153,47 @@ I32 j;
 j=i=0x12345678; //Resulting i is 0x5678 but j is 0x12345678
 
 I64 i=0x8000000000000000;
-PrintF("%X\n",i>>1);  //Result is 0xC000000000000000 as expected
+Print("%X\n",i>>1);  //Result is 0xC000000000000000 as expected
 
-I64 u=0x8000000000000000;
-PrintF("%X\n",u>>1);  //Result is 0x4000000000000000 as expected
+U64 u=0x8000000000000000;
+Print("%X\n",u>>1);  //Result is 0x4000000000000000 as expected
 
-I32 i=0x80000000; 	  //constant is loaded into a 64-bit register var.
-PrintF("%X\n",i>>1);  //Result is 0x40000000
+I32 i= 0x80000000;   //const is loaded into a 64-bit register var.
+Print("%X\n",i>>1);  //Result is 0x40000000
 
 I32 i=-0x80000000;
-PrintF("%X\n",i>>1);  //Result is 0xC0000000 as expected
+Print("%X\n",i>>1);  //Result is 0xC0000000 as expected
 
 $ID,-2$$FG$
-$FG,5$$TX+CX,"PrintF Family"$$FG$
+$FG,5$$TX+CX,"Print Family"$$FG$
 
-$LK,"MSPrintF","MN:MSPrintF"$() is like $LK,"SPrintF","MN:SPrintF"$() but it returns a $LK+S,"MAlloc","MN:MAlloc"$ated str.  It is vary handy because you don't have to worry about overflow.
+$LK,"MPrint","MN:MPrint"$() is like $LK,"SPrint","MN:SPrint"$() but it returns a $LK+S,"MAlloc","MN:MAlloc"$ated str.  It is vary handy because you don't have to worry about overflow.
 
-$LK,"PutS","MN:PutS"$() doesn't print a new line.
+$LK,"Auto","MN:Auto"$(U8 *fmt,...) sends text to the current task's input buffer.
+$LK,"AutoStr","MN:AutoStr"$(U8 *fmt,...) sends text of an $LK,"AutoFile","FF:::/TempleOS/Doc/Glossary.TXT,AutoFile"$ to the keyboard stream of the current TASK but can also do mouse cmds.
 
-$LK,"Auto","MN:Auto"$(U8 *fmtstr,...) sends text to the current task's input buffer.
-$LK,"AutoStr","MN:AutoStr"$(U8 *fmtstr,...) sends text of an $LK,"AutoFile","FF:::/TempleOS/Doc/Glossary.TXT,AutoFile"$ to the keyboard stream of the current TASK but can also do mouse cmds.
+$LK,"XTalk","MN:XTalk"$(CTask *task,U8 *fmt,...) and text to another task's input buffer.
+$LK,"XTalkStr","MN:XTalkStr"$(CTask *task,U8 *fmt,...) sends text of an $LK,"AutoFile","FF:::/TempleOS/Doc/Glossary.TXT,AutoFile"$ to the keyboard stream of another TASK but can also do mouse cmds.
 
-$LK,"XTalk","MN:XTalk"$(CTask *task,U8 *fmtstr,...) and text to another task's input buffer.
-$LK,"XTalkStr","MN:XTalkStr"$(CTask *task,U8 *fmtstr,...) sends text of an $LK,"AutoFile","FF:::/TempleOS/Doc/Glossary.TXT,AutoFile"$ to the keyboard stream of another TASK but can also do mouse cmds.
+$LK,"DocPrint","MN:DocPrint"$(CDoc *doc,U8 *fmt,...) sends text to a document.  You can buffer to a Doc and save it, providing the functionality of $FG,2$fprintf$FG$.  See $LK-A,"::/TempleOS/Demo/Dsk/FPrintF.CPP"$.
+
+$LK,"Adam","MN:Adam"$(U8 *fmt,...) sends text to the adam task to be compiled and run.
+$LK,"AdamLog","MN:AdamLog"$(U8 *fmt,...) and $LK,"AdamErr","MN:AdamErr"$(U8 *fmt,...) send text to the adam task to be displayed.
+
+$LK,"StreamPrint","MN:StreamPrint"$(U8 *fmt,...) sends text to the stream of code being compiled and must reside in a $FG,2$#exe{}$FG$ blk.
+
+$LK,"GrPrint","MN:GrPrint"$(CDC *dc,I64 x,I64 y,U8 *fmt,...) and $LK,"GrVPrint","MN:GrVPrint"$() plots text in graphics mode.
+
+$LK,"ExePrint","MN:ExePrint"$(U8 *fmt,...) compiles and execute a string.  Note: It returns the result of the last executed expression.
+
+$LK,"AFPrint","MN:AFPrint"$(I64 mS,U8 *fmt) $LK,"PutChar","MN:PutChar"$()s one at a time with a delay.
+
+$LK,"RawPrint","MN:RawPrint"$(I64 mS,U8 *fmt) sends direct to screen memory, bypassing window manager.
+
+$BK,1$Note:$BK,0$ Use $FG,2$Print("%s",src)$FG$ if you need an unmodified string.
 
 
-$LK,"DocPutS","MN:DocPutS"$(CDoc *doc,U8 *src) and $LK,"DocPrintF","MN:DocPrintF"$(CDoc *doc,U8 *fmtstr,...) send text to a linked text file.  You can buffer to a Doc and save it, providing the functionality of $FG,2$fprintf$FG$.  See $LK-A,"::/TempleOS/Demo/Dsk/FPrintF.CPP"$.
-
-$LK,"Adam","MN:Adam"$(U8 *fmtstr,...) send text to the adam task to be compiled and run.
-$LK,"AdamLog","MN:AdamLog"$(U8 *fmtstr,...) and $LK,"AdamErr","MN:AdamErr"$(U8 *fmtstr,...) send text to the adam task to be displayed.
-
-$LK,"StreamPrintF","MN:StreamPrintF"$(U8 *fmtstr,...) and $LK,"StreamPutS","MN:StreamPutS"$(U8 *src) send text to the stream of code being compiled and must reside in a $FG,2$#exe{}$FG$ blk.
-
-$LK,"GrPrintF","MN:GrPrintF"$(CDC *dc,I64 x,I64 y,U8 *fmtstr,...) and $LK,"GrPutS","MN:GrPutS"$(CDC *dc,I64 x,I64 y,U8 *src) plots text in graphics mode.  $LK,"GrVPrintF","MN:GrVPrintF"$() and $LK,"GrVPutS","MN:GrVPutS"$() will print vertically.
-
-$LK,"ExePrintF","MN:ExePrintF"$(U8 *fmtstr,...) and $LK,"ExePutS","MN:ExePutS"$(U8 *src) compile and execute a string.  Note: It returns the result of the last executed expression.
-
-$BK,1$Note:$BK,0$ If no $FG,2$PutS$FG$ variant is available, you can use $FG,2$PrintF("%s",src)$FG$.
-
-
-$AN,"","PrintF_Codes"$The $LK,"PrintF","MN:PrintF"$() family supports extended format codes.  See $LK,"SPrintFJoin","MN:SPrintFJoin"$().
+$AN,"","Print_Codes"$The $LK,"Print","MN:Print"$() family supports extended format codes.  See $LK,"SPrintJoin","MN:SPrintJoin"$().
 $ID,2$$FG,2$%$FG$[$FG,2$-$FG$][$FG,2$0$FG$][$FG,5$width$FG$][$FG,2$.$FG,5$decimals$FG$][$FG,5$flags$FG$][$FG,2$h$FG,5$sub_fmt$FG$][$FG,5$main_fmt$FG$]
 
 $FG,5$flags:$FG$
@@ -203,7 +206,7 @@ $FG,5$sub_fmt:$FG$
 $ID,2$On date or time entries, the sub_format specifies the format.  See $LK-A,"::/TempleOS/Demo/DateTime.CPP"$.
 
 $AN,"","sub_fmt"$On $FG,2$"%n"$FG$, $FG,2$"%d"$FG$ or $FG,2$"%u"$FG$, the sub_fmt causes thousands mode.
-  $FG,2$"%h?n"$FG$ will pick a var exponent multiples of three unit, while $FG,2$"%h-3n"$FG$, for example, will display milli units or $FG,2$"%h6n"$FG$ will display mega units.  The $FG,2$'k'$FG$ flag is always on for $FG,2$"%n"$FG$.  See $LK-A,"::/TempleOS/Demo/PrintF.CPP"$.
+  $FG,2$"%h?n"$FG$ will pick a var exponent multiples of three unit, while $FG,2$"%h-3n"$FG$, for example, will display milli units or $FG,2$"%h6n"$FG$ will display mega units.  The $FG,2$'k'$FG$ flag is always on for $FG,2$"%n"$FG$.  See $LK-A,"::/TempleOS/Demo/Print.CPP"$.
 $ID,-2$
 *  $FG,2$"%n"$FG$ will print a floating point in engineering notation, exponents being multiples of three.  If it has a $FG,5$sub_fmt$FG$ code, it will display scientific units letters.
 
@@ -215,11 +218,11 @@ $ID,-2$
 
 * $FG,2$"%P"$FG$ will display a PSECT expression which is good for ptrs or addresses.
 
-* $FG,2$"%T"$FG$ and $FG,2$"%D"$FG$ will display a date or time and the format is selected with a subcode, entered after a "$FG,2$h$FG$".  Example: "$FG,2$%20h1D$FG$" uses date format code "1". See $LK-A,"::/TempleOS/Demo/DateTime.CPP"$, $LK,"MSPrintFDate","MN:MSPrintFDate"$() and $LK,"MSPrintFTime","MN:MSPrintFTime"$() for subcodes.
+* $FG,2$"%T"$FG$ and $FG,2$"%D"$FG$ will display a date or time and the format is selected with a subcode, entered after a "$FG,2$h$FG$".  Example: "$FG,2$%20h1D$FG$" uses date format code "1". See $LK-A,"::/TempleOS/Demo/DateTime.CPP"$, $LK,"MPrintDate","MN:MPrintDate"$() and $LK,"MPrintTime","MN:MPrintTime"$() for subcodes.
 
-* $FG,2$"%z"$FG$ will display a subentry of an enumerated list of text entries. It calls $LK+S,"LstEntryPt","MN:LstEntryPt"$().  Pass entry_num first, list second.
+* $FG,2$"%z"$FG$ will display a subentry of an enumerated list of text entries.  It calls $LK+S,"LstSub","MN:LstSub"$().  Pass subentry first, list second.
 
-* $FG,2$"%Z"$FG$ will display a Define subentry.  Pass entry_num first, lst_systext second.
+* $FG,2$"%Z"$FG$ will display a Define subentry.  Pass subentry first, lst_define second.
 
 * $FG,2$"%Q"$FG$ will convert "\" to "\\" and quote to backslash quote. (For use in creating strs in strs.)
 
diff --git a/TempleOS/Doc/ImportExports.TXT b/TempleOS/Doc/ImportExports.TXT
index 8c88539..e871322 100644
--- a/TempleOS/Doc/ImportExports.TXT
+++ b/TempleOS/Doc/ImportExports.TXT
@@ -95,7 +95,7 @@ $WW,1$
 
 * All offspring tasks of a task inherit syms.
 
-* The $FG,2$sizeof()$FG$ and Holy C structure members can be used in asm blks.
+* The $FG,2$sizeof()$FG$ and HolyC structure members can be used in asm blks.
 
 * No register vars are used in functions with a try/catch.  They will be force to $FG,2$noreg$FG$.
 
diff --git a/TempleOS/Doc/KeyBoard.TXT b/TempleOS/Doc/KeyBoard.TXT
index 47b6bb7..f7cff7a 100644
--- a/TempleOS/Doc/KeyBoard.TXT
+++ b/TempleOS/Doc/KeyBoard.TXT
@@ -64,6 +64,6 @@ $FG,2$0x40000000$FG$ $LK,"AKDInputFilterPutKey","MN:AKDInputFilterPutKey"$() for
 $FG,2$0x60000000$FG$ $LK,"AKDRawDisplayPutKey","MN:AKDRawDisplayPutKey"$() direct to video mem debug output. 
 $FG,2$0x80000000$FG$ $LK,"AKDDocPutKey","MN:AKDDocPutKey"$() standard document cmds
 
-Since handling individual keys is slow, TempleOS supports $LK,"PutS","MN:PutS"$() as well.  If no puts handler is defined, individual keys are sent.
+Since handling individual keys is slow, TempleOS supports PutS() as well.  If no puts handler is defined, individual keys are sent.
 
 $LK,"CDoc","MN:CDoc"$$FG,2$.user_put_key$FG$ and $LK,"CDoc","MN:CDoc"$$FG,2$.user_put_s$FG$ are call back routines which offer some neat tricks.  See $LK-A,"::/TempleOS/Apps/MusicOrgan/JukeBox.CPP"$.  There is a var $LK,"CDoc","MN:CDoc"$$FG,2$.user_put_data$FG$ which gets passed to them.
diff --git a/TempleOS/Doc/Mem.TXT b/TempleOS/Doc/Mem.TXT
index 5921711..fd37571 100644
Binary files a/TempleOS/Doc/Mem.TXT and b/TempleOS/Doc/Mem.TXT differ
diff --git a/TempleOS/Doc/Mysteries.TXT b/TempleOS/Doc/Mysteries.TXT
index f7bf7b1..ed8e257 100644
--- a/TempleOS/Doc/Mysteries.TXT
+++ b/TempleOS/Doc/Mysteries.TXT
@@ -29,7 +29,7 @@ $WW,1$$FG,5$This is to clearify how several mysterious things happen in TempleOS
 
 * TempleOS has a dictionary that is shipped compressed.  When you boot the first time it is uncompressed.  TempleOS has a Windows utility for uncompressing.  That utility needs Microsoft DLL files.  TempleOS does not use any libraries, modules or code from other sources -- I wrote it all from scratch and it is self-contained.
 
-* There are no OBJ or EXE files.  There are only two files compiled ahead-of-time -- $FG,2$Kernel.BIN.C$FG$ and $FG,2$Compiler.BIN.Z$FG$.  You can delete them and recompile with $LK,"MakeOSInstallPrtBootLoader","MN:MakeOSInstallPrtBootLoader"$().  TempleOS is $TX+D,"142,999","DD_TEMPLEOS_LOC"$ lines.  Roughly 50,000 is compiled AOT and 50,000 during boot JIT.  The rest is JIT demos and applications.
+* There are no OBJ or EXE files.  There are only two files compiled ahead-of-time -- $FG,2$Kernel.BIN.C$FG$ and $FG,2$Compiler.BIN.Z$FG$.  You can delete them and recompile with $LK,"MakeOSInstallPrtBootLoader","MN:MakeOSInstallPrtBootLoader"$().  TempleOS is $TX+D,"123,521","DD_TEMPLEOS_LOC"$ lines.  Roughly 50,000 is compiled AOT and 50,000 during boot JIT.  The rest is JIT demos and applications.
 
 * The main difference between TempleOS and other systems is that the heap and compiler sym table are associated with tasks, not applications.
 
@@ -39,7 +39,7 @@ $WW,1$$FG,5$This is to clearify how several mysterious things happen in TempleOS
 
 * Binary executable files have export syms which are loaded into the sym tables.  The operating system $FG,2$Kernel$FG$ has such an export table.  In addition, some map files are processed to provide more information on syms -- src file links.  This is how the $LK,"Man","MN:Man"$()/$FG,2$WORDSTAT$FG$ feature can find src lines.
 
-* The word "$FG,2$public$FG$" does very little except allow the $LK,"help_index","FI:::/TempleOS/Doc/HelpIndex.TXT"$ and $LK,"HashRep","MN:HashRep"$() program varients to exclude meaningless syms.  If you wish a full report of public and nonpublic syms $MA+A-X+PU,"Click Here","DocMax(1000000);HAllRep;View;\n"$.
+* The word "$FG,2$public$FG$" does very little except allow the $LK,"help_index","FI:::/TempleOS/Doc/HelpIndex.TXT"$ and $LK,"Who","MN:Who"$() program varients to exclude meaningless syms.  If you wish a full report of public and nonpublic syms $MA+A-X+PU,"Click Here","DocMax(1000000);Who;View;\n"$.
 
 * When compilation takes place, the structures used by the compiler stick around.  Data on classes can be accessed by code.  See $LK,"ClassRep","MN:ClassRep"$().
 
diff --git a/TempleOS/Doc/NamedFrame.TXT b/TempleOS/Doc/NamedFrame.TXT
deleted file mode 100644
index 74f2e90..0000000
--- a/TempleOS/Doc/NamedFrame.TXT
+++ /dev/null
@@ -1 +0,0 @@
-$WW,1$If you require separate global vars for multiple instances of a routine, you can use $FG,4$NamedFrame$FG$s.  See $LK,"CSpriteMesh","MN:CSpriteMesh"$(), $LK-A,"::/TempleOS/Demo/Graphics/Pick3D.CPP"$ or $LK,"Noise","MN:Noise"$().
diff --git a/TempleOS/Doc/NewFileSystem.TXT b/TempleOS/Doc/NewFileSystem.TXT
index 2614458..9b7483e 100644
--- a/TempleOS/Doc/NewFileSystem.TXT
+++ b/TempleOS/Doc/NewFileSystem.TXT
@@ -1,5 +1,5 @@
 $FG,5$$WW,1$$TX+CX,"Adding a New File System"$$FG$
 
-If you want to add a support for a new file system, do a text search on "PT_FAT32".  All the places where that occurs will require new entries for your file system type.  $MA+A-X+PU,"Click here for search.","Grep(\"PT_FAT32\",\"/TempleOS/\" FILENAME_MASK_SRC);View;"$
+If you want to add a support for a new file system, do a text search on "PT_FAT32".  All the places where that occurs will require new entries for your file system type.  $MA+A-X+PU,"Click here for search.","Grep(\"PT_FAT32\",\"/TempleOS/*\",\"+S\");View;"$
 
 You will also need to add an entry $LK,"here.","FF:::/TempleOS/Kernel/Define1a.CPP,ST_PRT_TYPES"$
diff --git a/TempleOS/Doc/Quirks.TXT b/TempleOS/Doc/Quirks.TXT
index 7c81840..e5a1a6c 100644
--- a/TempleOS/Doc/Quirks.TXT
+++ b/TempleOS/Doc/Quirks.TXT
@@ -12,7 +12,7 @@ $WW,1$* You run a risk of problems if you do file operations on the same files s
 
 * Accessing CD-ROM's is flacky.  Try $LK,"Drv","MN:Drv"$() or $LK,"ChgDsk","MN:ChgDsk"$() twice.
 
-* You can only $FG,2$extern$FG$ something once.  There is a varient called $FG,2$_extern$FG$ which binds a Holy C definition to a asm sym.  This, too, can only be done once.
+* You can only $FG,2$extern$FG$ something once.  There is a varient called $FG,2$_extern$FG$ which binds a HolyC definition to a asm sym.  This, too, can only be done once.
 
 * You must call $LK,"TaskInitExt","MN:TaskInitExt"$() in a task you $LK,"Spawn","MN:Spawn"$() before you can do file I/O.  And, preemption is off by default, so use $LK,"Preempt","MN:Preempt"$(ON) if you wish.
 
diff --git a/TempleOS/Doc/Resource.TXT b/TempleOS/Doc/Resource.TXT
index d0562d9..99552c5 100644
--- a/TempleOS/Doc/Resource.TXT
+++ b/TempleOS/Doc/Resource.TXT
@@ -2,4 +2,4 @@ $WW,1$$FG,5$$TX+CX,"Graphic Resource Help"$$FG$
 
 A sprite is an ordered list of elements such as lines, rectangles, bitmaps and color changes.  In a program's source code, you first make a sprite.  Then, you insert a pointer to it.
 
-You can create an icon on your personal menu or in any document by placing a sprite with a payload of $LK,"Holy C","FI:::/TempleOS/Doc/HolyC.TXT"$ code to execute.  This is a called "sprite macro".  If you check "Pop-Up", it will spawn a new task and run the payload.  If you have it on your personal menu, you can, optionally, check "Esc" and it will exit to the cmd-line shell and print the macro similar to how the Linux history works.
+You can create an icon on your personal menu or in any document by placing a sprite with a payload of $LK,"HolyC","FI:::/TempleOS/Doc/HolyC.TXT"$ code to execute.  This is a called "sprite macro".  If you check "Pop-Up", it will spawn a new task and run the payload.  If you have it on your personal menu, you can, optionally, check "Esc" and it will exit to the cmd-line shell and print the macro similar to how the Linux history works.
diff --git a/TempleOS/Doc/Splash.TXT b/TempleOS/Doc/Splash.TXT
index 935f4f5..13cd5f3 100644
--- a/TempleOS/Doc/Splash.TXT
+++ b/TempleOS/Doc/Splash.TXT
@@ -1,6 +1,5 @@
 
-$TX+CX+D,"TempleOS VDD_TEMPLEOS_VERSION","DD_OS_NAME_VERSION"$
-                         
+$TX+CX+D,"TempleOS V1.06","DD_OS_NAME_VERSION"$
 
 
 
@@ -22,9 +21,11 @@ $TX+CX+D,"TempleOS VDD_TEMPLEOS_VERSION","DD_OS_NAME_VERSION"$
 
 
 
-
-
-              Public Domain
-            Operating System
+          
+             Divine Intellect,
+              Public Domain,
+                 64-Bit,
+               Kept Perfect,
+             Operating System
 
             $LK,"Trivial Solutions","FI:::/TempleOS/Doc/TrivialSolutions.TXT"$
diff --git a/TempleOS/Doc/Sprite.TXT b/TempleOS/Doc/Sprite.TXT
index 8584b86..9d381df 100644
--- a/TempleOS/Doc/Sprite.TXT
+++ b/TempleOS/Doc/Sprite.TXT
@@ -1,6 +1,6 @@
 $WW,1$A $FG,4$CSprite$FG$, is an ordered list of $LK,"these","MN:GRST_END"$ elements, created with $FG,2$$FG$$FG$.  Normally, they are packed together in a list and the address of the first is passed to routines.
 
-See $LK-A,"::/TempleOS/Demo/Graphics/SpritePlot.CPP"$, $LK-A,"::/TempleOS/Demo/Graphics/SpritePlot3D.CPP"$ and $LK-A,"::/TempleOS/Demo/Graphics/SpritePut.CPP"$ and $LK,"CSpriteMesh","MN:CSpriteMesh"$().
+See $LK-A,"::/TempleOS/Demo/Graphics/SpritePlot.CPP"$, $LK-A,"::/TempleOS/Demo/Graphics/SpritePlot3D.CPP"$ and $LK-A,"::/TempleOS/Demo/Graphics/SpritePut.CPP"$ and $LK,"SpriteMesh","MN:SpriteMesh"$().
 
 Be aware that copying $FG,2$SP$FG$, $FG,2$IB$FG$, or $FG,2$IS$FG$ entries with the clipboard results in duplicate entries with different nums.  You can manually remove dups by editing with $FG,2$$FG$ and setting to the original num.
 
diff --git a/TempleOS/Doc/TimeJiffy.TXT b/TempleOS/Doc/TimeJiffy.TXT
index 3c5325d..0918c48 100644
--- a/TempleOS/Doc/TimeJiffy.TXT
+++ b/TempleOS/Doc/TimeJiffy.TXT
@@ -1,6 +1,6 @@
 $WW,1$One jiffy is one time slice.  $LK,"sys_jiffies","MN:sys_jiffies"$ returns time slices since boot.
 
-$LK,"SysTimerRead","MN:SysTimerRead"$ reads the timer ticks since boot.  It's not as fast as $LK,"GetTimeStamp","MN:GetTimeStamp"$.
+$LK,"SysTimerRead","MN:SysTimerRead"$ reads the timer ticks since boot.  It's not as fast as $LK,"GetTSC","MN:GetTSC"$.
 
 Use $LK,"JIFFY_FREQ","MN:JIFFY_FREQ"$ to convert $LK,"sys_jiffies","MN:sys_jiffies"$.
 
diff --git a/TempleOS/Doc/Tips.TXT b/TempleOS/Doc/Tips.TXT
index 9abd768..840d913 100644
--- a/TempleOS/Doc/Tips.TXT
+++ b/TempleOS/Doc/Tips.TXT
@@ -25,7 +25,7 @@ $FG,5$M(\"D:/TempleOS/*\",\"E:/TempleOS/*\",\"+r+d\");$FG$ to check my changes.
 
 * See $MA+A-X+PU,"Key Map","KeyMap;View;\n"$ for a list of defined keys.  Define your own keys in $LK,"MyPutKey","MN:MyPutKey"$().  See $LK-A,"::/TempleOS/Doc/KeyBoard.TXT"$.
 
-* $FG,2$$FG$ in the editor to reindent a $LK,"Holy C","FI:::/TempleOS/Doc/HolyC.TXT"$ function or renumber an asm routine's local labels.
+* $FG,2$$FG$ in the editor to reindent a $LK,"HolyC","FI:::/TempleOS/Doc/HolyC.TXT"$ function or renumber an asm routine's local labels.
 
 * You can use $FG,2$filter_lines$FG$ in the editor text search form ($FG,2$$FG$) to temporarily display just lines near each match.  A value of $FG,2$filter lines$FG$ set to $FG,2$5$FG$ will display lines within 5 lines of matches.  Then, you can do another find to a different string and achieve a $FG,2$AND$FG$ search.  When finished, press $FG,2$$FG$.
  
@@ -33,7 +33,7 @@ $FG,5$M(\"D:/TempleOS/*\",\"E:/TempleOS/*\",\"+r+d\");$FG$ to check my changes.
 
 * You can disable $FG,2$WORDSTAT$FG$ commenting-out $LK,"WSInit","FF:HOME/Adam3fSys.CPP,WSInit"$() in $LK,"HOME/Adam3fSys.CPP","FF:HOME/Adam3fSys.CPP,WSInit"$.
 
-* You can rst MultiCore CPU's if they get hung with $LK,"MPStart","MN:MPStart"$().  HD Audio will get screwed-up, however.
+* You can rst MultiCore CPU's if they get hung with $LK,"MPStart","MN:MPStart"$().
 
 * Boolean expressions $BK,1$not$BK,0$ in $FG,2$if$FG$ statements don't have short circuit logic and are compiled inefficiently.
 
@@ -63,8 +63,6 @@ $FG,5$M(\"D:/TempleOS/*\",\"E:/TempleOS/*\",\"+r+d\");$FG$ to check my changes.
 
 * Use $LK,"Silent","MN:Silent"$() to disable screen text output.
 
-* Use $LK,"IOSnd","MN:IOSnd"$() to disable noise from disk access.
-
 * Grab-scroll any window at any time with $FG,2${CTRL-LEFT-DRAG}$FG$.  Null grab-scrolling with $FG,2${CTRL-RIGHT}$FG$.
 
 * Use $FG,2$$FG$ to zoom-in and $FG,2$$FG$ to zoom-out.  You can scroll by moving to the edge of the window.  Set $LK,"gr_continuous_scroll","MN:gr_continuous_scroll"$ to $FG,2$TRUE$FG$ if you want. 
@@ -130,7 +128,7 @@ $FG,5$M(\"D:/TempleOS/*\",\"E:/TempleOS/*\",\"+r+d\");$FG$ to check my changes.
 
 * The editor's select-text mechanism allows for disjoint portions of selected text.  This is a feature, not a bug -- you can cut-and-paste disjoint text.
 
-* $LK,"time_stamp_freq","MN:time_stamp_freq"$ is continuously calibrated, so be careful because expressions involving it might decrease.  Take a snap-shot, like this: $FG,2$timeout=$LK,"GetTimeStamp","MN:GetTimeStamp"$+$LK,"time_stamp_freq","MN:time_stamp_freq"$ x seconds;$FG$ and compare against $LK,"GetTimeStamp","MN:GetTimeStamp"$().
+* $LK,"time_stamp_freq","MN:time_stamp_freq"$ is continuously calibrated, so be careful because expressions involving it might decrease.  Take a snap-shot, like this: $FG,2$timeout=$LK,"GetTSC","MN:GetTSC"$+$LK,"time_stamp_freq","MN:time_stamp_freq"$ x seconds;$FG$ and compare against $LK,"GetTSC","MN:GetTSC"$().
 
 * Use $LK,"HeapLog","MN:HeapLog"$() and $LK,"HeapLogRep","MN:HeapLogRep"$() to find leaks.  Don't be confused by $LK,"CDoc","MN:CDoc"$ allocations.  Those are generated when text is written to the cmd line buffer.
 
diff --git a/TempleOS/Doc/Welcome.TXT b/TempleOS/Doc/Welcome.TXT
index 0149439..0aac6db 100644
--- a/TempleOS/Doc/Welcome.TXT
+++ b/TempleOS/Doc/Welcome.TXT
@@ -6,15 +6,17 @@ $ID,2$* Professionals doing hobby projects
 * Teenagers doing projects
 * Non-professional, older-persons projects
 $ID,-2$
-Simplicity is a goal to $LK,"keep the line count down","FI:::/TempleOS/Doc/Strategy.TXT"$, so it's easy to tinker with.  As it turns-out, simplicity makes it faster in some ways, too.  It never switches privilege levels, never changes address maps, tends to load whole contiguous files and other, similar things which boost speed.  It's only $TX+D,"129,156","DD_TEMPLEOS_LOC"$ lines of code including the kernel, the 64-bit compiler, the graphics library and all the tools.  More importantly, it's designed to keep the user's line count down -- you can do a "hello world" application in one line of code and can put graphics on the screen with a three line program!
+Simplicity is a goal to $LK,"keep the line count down","FI:::/TempleOS/Doc/Strategy.TXT"$, so it's easy to tinker with.  As it turns-out, simplicity makes it faster in some ways, too.  It never switches privilege levels, never changes address maps, tends to load whole contiguous files and other, similar things which boost speed.  It's only $TX+D,"123,479","DD_TEMPLEOS_LOC"$ lines of code including the kernel, the 64-bit compiler, the graphics library and all the tools.  More importantly, it's designed to keep the user's line count down -- you can do a "hello world" application in one line of code and can put graphics on the screen with a three line program!
 
 It's a kayak, not a Titanic -- it will crash if you do something wrong.  You quickly reboot, however.  DOS and the 8-bit home computers of the 80's worked fine without memory protection and most computers in the world -- the embedded ones -- operate without protection.  The resulting simplicity of no protections is why TempleOS has value.  In facts, that's the point of TempleOS.  See the $LK,"TempleOS Charter","FI:::/TempleOS/Doc/Charter.TXT"$.
 
+Conventional thinking is "failure is not an option" for general purpose operating systems.  Since this OS is used in addition to Windows or Linux, however, failure is an option -- just use Windows if you can't do something.
+
 Two things to know about TempleOS are that $UL,1$tasks$UL,0$ have $LK,"MAlloc","MN:MAlloc"$/$LK,"Free","MN:Free"$ heap memory, not applications, and tasks have compiler symbol tables that persist at a scope like environment variables in other operating systems, and the symbols can include functions.
 
-In other operating systems, I hated learning one language for command line scripts and another for programming.  With $FG,2$TempleOS$FG$, the command line feeds right into the $LK,"Holy C","FI:::/TempleOS/Doc/HolyC.TXT"$ (more than $FG,2$C$FG$, less than $FG,2$C++$FG$) compiler, line by line, and it places code into memory it $LK,"MAlloc","MN:MAlloc"$()s.  The compiler is paused at the command line, waiting for input.  Naturally, you $FG,2$#include$FG$ a program to load it into memory and, usually, start it.  During the boot process, many files get compiled before you have access to the command line.  (Don't worry, booting takes only a couple of seconds.)  All the header declarations for the operating system are compiled and are available for use in your programs without needing to $FG,2$#include $FG$them.  Everything is truly compiled to native $FG,4$$TX+HTML,"x86_64","http://en.wikipedia.org/wiki/Amd64#AMD64"$$FG$ and nothing is "interpreted".
+In other operating systems, I hated learning one language for command line scripts and another for programming.  With $FG,2$TempleOS$FG$, the command line feeds right into the $LK,"HolyC","FI:::/TempleOS/Doc/HolyC.TXT"$ (more than $FG,2$C$FG$, less than $FG,2$C++$FG$) compiler, line by line, and it places code into memory it $LK,"MAlloc","MN:MAlloc"$()s.  The compiler is paused at the command line, waiting for input.  Naturally, you $FG,2$#include$FG$ a program to load it into memory and, usually, start it.  During the boot process, many files get compiled before you have access to the command line.  (Don't worry, booting takes only a couple of seconds.)  All the header declarations for the operating system are compiled and are available for use in your programs without needing to $FG,2$#include $FG$them.  Everything is truly compiled to native $FG,4$$TX+HTML,"x86_64","http://en.wikipedia.org/wiki/Amd64#AMD64"$$FG$ and nothing is "interpreted".
 
-Statements at the global scope (outside the scope of $LK,"Holy C","FI:::/TempleOS/Doc/HolyC.TXT"$ functions) execute immediately.  There is no $FG,2$main()$FG$ function.  Instead, you give meaningful names to what would be $FG,2$main()$FG$ functions and you invoke them by calling them with a statement in the global scope, usually at the bottom of your file.
+Statements at the global scope (outside the scope of $LK,"HolyC","FI:::/TempleOS/Doc/HolyC.TXT"$ functions) execute immediately.  There is no $FG,2$main()$FG$ function.  Instead, you give meaningful names to what would be $FG,2$main()$FG$ functions and you invoke them by calling them with a statement in the global scope, usually at the bottom of your file.
 
 I started with $FG,2$C$FG$ syntax, but didn't like the command line for a directory listing looking like this:
 
@@ -30,7 +32,7 @@ $FG$I didn't like that, so I made parentheses optional on calls with no args and
 
 The syntax change created an ambiguity when specifying function addresses.  To resolve it, I  made a '$FG,2$&$FG$' required in front of function names when specifying an address of a function, which is better anyway.
 
-Once I was no longer using standard C/C++ syntax, I decided to change everything I didn't like and call it $LK,"Holy C","FI:::/TempleOS/Doc/HolyC.TXT"$.  Here are the new $LK,"operator precedence","FA:::/TempleOS/Doc/HolyC.TXT,OP_precedence"$ rules.  It's Biblical!  See $LK,"Luke,5:37","BF:Luke,5:37"$.
+Once I was no longer using standard C/C++ syntax, I decided to change everything I didn't like and call it $LK,"HolyC","FI:::/TempleOS/Doc/HolyC.TXT"$.  Here are the new $LK,"operator precedence","FA:::/TempleOS/Doc/HolyC.TXT,OP_precedence"$ rules.  It's Biblical!  See $LK,"Luke,5:37","BF:Luke,5:37"$.
 
 There are no object files in TempleOS and, normally, you don't make executable files either, but you can.  That's known as "$FG,2$Ahead-Of-Time$FG$" compilation.  Instead, you "$FG,2$Just-In-Time$FG$" compile.
 
@@ -38,7 +40,7 @@ Tasks have no priority scheme and are never removed from the queue.  Instead, th
 
 The TempleOS $FG,2$RedSea$FG$ file system is simple, so I don't get sued.  There is an allocation bitmap for clusters and all files are stored contiguously.  You can't grow files.
 
-TempleOS is geared toward reading and writing whole files.  Since whole files are processed, checksums and compression are possible.  Filenames ending in "$FG,2$.Z$FG$" are automatically compressed or uncompressed when stored or fetched.  TempleOS supports direct block random access into files, however -- $LK,"FRBlks","MN:FRBlks"$() and $LK,"FWBlks","MN:FWBlks"$().
+TempleOS is geared toward reading and writing whole files.  Since whole files are processed, compression is possible.  Filenames ending in "$FG,2$.Z$FG$" are automatically compressed or uncompressed when stored and fetched.  TempleOS does support direct block random access into files, however -- $LK,"FRBlks","MN:FRBlks"$() and $LK,"FWBlks","MN:FWBlks"$().
 
 If a file is not found, "$FG,2$.Z$FG$" is added or removed and a search is done, again.  There is no $FG,2$PATH$FG$, but parent directories are searched when a file is not found.  This feature is especially useful for default account files.
 
@@ -72,3 +74,7 @@ Use the $LK,"Help Index","FI:::/TempleOS/Doc/HelpIndex.TXT"$ or $LK,"Demo Index"
 
 
 $MA+A-X+PU,"Take Tour","SpawnUser(\"Cd(\\\"::/TempleOS/Misc/Tour\\\");;AutoFile(\\\"Tour\\\");\n\");"$
+
+$FG,8$
+* "Windows" is a trademark of MicroSoft Corp.
+$FG$
\ No newline at end of file
diff --git a/TempleOS/Doc/Widget.TXT b/TempleOS/Doc/Widget.TXT
index 387c5c6..9311b37 100644
--- a/TempleOS/Doc/Widget.TXT
+++ b/TempleOS/Doc/Widget.TXT
@@ -2,7 +2,7 @@ $WW,1$$FG,5$$TX+CX,"Text-Widget Help"$$FG$
 
 See $LK-A,"::/TempleOS/Doc/Dollar.TXT"$ for details on dollar sign cmds.
 
-$FG,2$"Expression"$FG$ a num or Holy C algebraic term with operators and Holy C syms can be entered.
+$FG,2$"Expression"$FG$ a num or HolyC algebraic term with operators and HolyC syms can be entered.
 $FG,2$"Macro"$FG$ Most entries can behave like macro entries if you assign them macro strs.
 $FG,2$"AutoStr"$FG$ Like a macro except it is an $LK,"AutoFile","FF:::/TempleOS/Doc/Glossary.TXT,AutoFile"$.  You can't have both an autostr and macro text defined.  
 
diff --git a/TempleOS/Kernel/Adam1a.HPP b/TempleOS/Kernel/Adam1a.HPP
index bb170da..bed1805 100644
--- a/TempleOS/Kernel/Adam1a.HPP
+++ b/TempleOS/Kernel/Adam1a.HPP
@@ -4,7 +4,7 @@
 
 //The internal types are U16i,I32i, etc.
 //They are defined $LK,"internal_types_table","MN:internal_types_table"$.
-//Holy C has a feature where a
+//HolyC has a feature where a
 //union structure is treated as a
 //whole if no member is specified.
 //See $LK-A,"::/TempleOS/Demo/SubIntAccess.CPP"$.
@@ -149,6 +149,7 @@ public class CQue
 #define OC_BPT			0xCC
 #define OC_CALL			0xE8
 #define OC_JMP_REL8		0xEB
+#define OC_NOP2			(OC_NOP<<8+OC_OP_SIZE_PREFIX)
 
 //Function Stack Frame
 #define SF_RBP	0x00
@@ -319,7 +320,7 @@ public class CSpring
   U0 start_saved_area;
   U32 flags,num,
      end1_num,end2_num;
-  F64 constant,rest_len;
+  F64 const,rest_len;
   U0 end_saved_area;
 };
 
@@ -625,45 +626,40 @@ class CSema
 #define SYS_SEMA_DEBUG			0
 #define SYS_SEMA_DETERMINISTIC		1
 #define SYS_SEMA_RECORD_MACRO		2
-#define SYS_SEMA_NO_IO_SND		3
-#define SYS_SEMA_SYS_TIMER		4
-#define SYS_SEMA_SYS_DATE		5
-#define SYS_SEMA_IN_DEBUGGER		6
-#define SYS_SEMA_SND			7
-#define SYS_SEMA_HEAPLOG_ACTIVE		8
-#define SYS_SEMA_HEAPLOG_LOCK		9
-#define SYS_SEMA_REFRESH_IN_PROGRESS	10
-#define SYS_SEMA_FLUSH_VGA_IMAGE	11
-#define SYS_SEMA_SINGLE_USER		12
-#define SYS_SEMA_DSK_CACHE		13
-#define SYS_SEMA_FAR_CALL32		14
-#define SYS_SEMA_DEV_MEM		15
-#define SYS_SEMA_VGA			16
-#define SYS_SEMA_UPDATE_WIN_Z_BUF	17
-#define SYS_SEMA_TNP			18
-#define SYS_SEMA_MUTE			19
-#define SYS_SEMA_FORCE_WINMGR		20
-#define SYS_SEMA_TMBEAT			21
-#define SYS_SEMA_FIX			22
-#define NUM_SYS_SEMAS			23
+#define SYS_SEMA_SYS_TIMER		3
+#define SYS_SEMA_SYS_DATE		4
+#define SYS_SEMA_IN_DEBUGGER		5
+#define SYS_SEMA_SND			6
+#define SYS_SEMA_HEAPLOG_ACTIVE		7
+#define SYS_SEMA_HEAPLOG_LOCK		8
+#define SYS_SEMA_REFRESH_IN_PROGRESS	9
+#define SYS_SEMA_FLUSH_VGA_IMAGE	10
+#define SYS_SEMA_SINGLE_USER		11
+#define SYS_SEMA_DSK_CACHE		12
+#define SYS_SEMA_FAR_CALL32		13
+#define SYS_SEMA_DEV_MEM		14
+#define SYS_SEMA_VGA			15
+#define SYS_SEMA_UPDATE_WIN_Z_BUF	16
+#define SYS_SEMA_TT			17
+#define SYS_SEMA_MUTE			18
+#define SYS_SEMA_FORCE_WINMGR		19
+#define SYS_SEMA_TMBEAT			20
+#define SYS_SEMA_FIX			21
+#define NUM_SYS_SEMAS			22
 
 #define SYSf_CTRL_ALT_DEL		0
 #define SYSf_CTRL_ALT_C			1
 #define SYSf_CTRL_ALT_X 		2
 #define SYSf_CTRL_ALT_TAB		3
 
-//Extern calls
-//I'm the only one allowed to create these.
-//They work with $LK,"CallExtNum","MN:CallExtNum"$().
-//I guess you could reallocate
-//and extend $LK,"ext","MN:ext"$[] and copy it.
+//Asm callable function pointers.
+//They work with $LK,"CallExtNum","MN:CallExtNum"$() when calling from HolyC.
 #define EXT_WIN_TO_TOP		0
 #define EXT_WIN_FOCUS		1
 #define EXT_HEAPLOG_MALLOC	2
 #define EXT_HEAPLOG_FREE	3
 #define EXT_RESUME_DBG		4
-
-#define EXT_TABLE_SIZE		5
+#define EXT_NUM_ENTRIES		5
 
 //Hash table types
 //$LK,"ST_HTT_TYPES","FF:::/TempleOS/Kernel/Define1a.CPP,ST_HTT_TYPES"$
@@ -683,14 +679,14 @@ class CSema
 #define HTt_FILE		13
 #define HTt_MODULE		14
 #define HTt_HELP_FILE		15
-#define HTt_NAMED_FRAME_PTR	16
+#define HTt_FRAME_PTR		16
 #define HTt_NUM_TYPES		17
 
 #define HTf_PRIVATE		25
 #define HTf_PUBLIC		26
 #define HTf_EXPORT		27
 #define HTf_IMPORT		28
-#define HTf_LIT			29
+#define HTf_IMM			29
 #define HTf_UNRESOLVED		30
 #define HTf_LOCAL		31
 
@@ -711,17 +707,17 @@ class CSema
 #define HTT_FILE		0x2000 //CHashGeneric
 #define HTT_MODULE		0x4000 //CHashGeneric
 #define HTT_HELP_FILE		0x8000 //CHashSrcSym
-#define HTT_NAMED_FRAME_PTR	0x10000 //CHashGeneric
-#define HTT_TYPE_MASK		0x1FFFF
+#define HTT_FRAME_PTR		0x10000 //CHashGeneric
+#define HTG_TYPE_MASK		0x1FFFF
 
 #define HTF_PRIVATE		0x02000000
 #define HTF_PUBLIC		0x04000000
 #define HTF_EXPORT		0x08000000
 #define HTF_IMPORT		0x10000000
-#define HTF_LIT			0x20000000
+#define HTF_IMM			0x20000000
 #define HTF_UNRESOLVED		0x40000000
 #define HTF_LOCAL		0x80000000
-#define HTF_FLAGS_MASK		0xFE000000
+#define HTG_FLAGS_MASK		0xFE000000
 
 #define HTG_SRC_SYM		(HTT_DEFINE_STR|HTT_GLBL_VAR|HTT_FUN|HTT_CLASS|HTT_EXPORT_SYS_SYM|HTT_HELP_FILE)
 #define HTG_ALL 		-1
@@ -751,7 +747,7 @@ public class CHash
 //each time a node is found in a hash search.
 //One place it is used is to tell if a externed function was unused
 //before being defined.  It is also used for popularity measures
-//in wordstat.	You can do a $LK,"HashRep","MN:HashRep"$() to see
+//in wordstat.	You can do a $LK,"Who","MN:Who"$() to see
 //roughly how many times a symbol has been
 //referenced.	Beware of instances where
 //a hash entry is continuously searched for and
@@ -821,11 +817,12 @@ public class CHashDefineStr:CHashSrcSym
 
 //Member Lst Flags
 #define MLF_DFT_AVAILABLE	1
-#define MLF_STR_DFT_AVAILABLE	2
-#define MLF_FUN			4
-#define MLF_DOT_DOT_DOT		8
-#define MLF_NO_UNUSED_WARN	16
-#define MLF_STATIC		32
+#define MLF_LASTCLASS		2
+#define MLF_STR_DFT_AVAILABLE	4
+#define MLF_FUN			8
+#define MLF_DOT_DOT_DOT		16
+#define MLF_NO_UNUSED_WARN	32
+#define MLF_STATIC		64
 
 public class CArrayDim
 {
@@ -889,10 +886,11 @@ class CExternUsage
 //Function flags
 #define Ff_INTERNAL		8
 #define Ff_INTERRUPT		9
-#define Ff_DOT_DOT_DOT		10
-#define Ff_RET1			11
-#define Ff_ARGPOP		12
-#define Ff_NOARGPOP		13
+#define Ff_HASERRCODE		10
+#define Ff_DOT_DOT_DOT		11
+#define Ff_RET1			12
+#define Ff_ARGPOP		13
+#define Ff_NOARGPOP		14
 
 public class CHashFun:CHashClass
 { //See $LK,"PrsFunNew","MN:PrsFunNew"$().
@@ -955,16 +953,13 @@ public class CHashGlblVar:CHashSrcSym
 
 //Acct Registry sys_msg_flags
 #define ARf_FLOODFILL			0
-//obsolete
-#define ARf_CSPRITE_INS_CLIPBOARD	2
-//obsolete
-#define ARf_CSPRITE_PICK_GRAPHICALLY	4
-#define ARf_PLANAR_SYMMETRY		5
-#define ARf_MUSIC_ORGAN_JUKEBOX		6
-#define ARf_MESH_ED			7
-//obsolete
-#define ARf_CSPRITE_PTS_RECTANGLES	9
-#define ARf_MANAGE_SLIDER		10
+#define ARf_CSPRITE_INS_CLIPBOARD	1
+#define ARf_CSPRITE_PICK_GRAPHICALLY	2
+#define ARf_PLANAR_SYMMETRY		3
+#define ARf_MUSIC_ORGAN_JUKEBOX		4
+#define ARf_MESH_ED			5
+#define ARf_CSPRITE_PTS_RECTANGLES	6
+#define ARf_MANAGE_SLIDER		7
 
 #define SVCf_WAKE_MASTER	0
 #define SVCf_FOCUS_MASTER	1
@@ -1067,24 +1062,22 @@ class CBpt
 #define DOCT_MACRO		30
 #define DOCT_MENU_VAL		31
 #define DOCT_HEX_ED		32
-#define DOCT_HIDE_START		33
-#define DOCT_HIDE_END		34
-#define DOCT_TREE		35
-#define DOCT_SPRITE		36
-#define DOCT_INS_BINARY		37
-#define DOCT_INS_BINARY_TYPE	38
-#define DOCT_INS_BINARY_SIZE	39
-#define DOCT_BPT		40
-#define DOCT_SONG		41
-#define DOCT_HIGHLIGHT		42
-#define DOCT_LOCK_TO_PAGE	43
-#define DOCT_LOCK_TO_CENTER	44
-#define DOCT_HTML_IMG		45
-#define DOCT_HTML_VIDEO		46
-#define DOCT_HTML_CODE		47
-#define DOCT_ERROR		48
+#define DOCT_TREE		33
+#define DOCT_SPRITE		34
+#define DOCT_INS_BINARY		35
+#define DOCT_INS_BINARY_TYPE	36
+#define DOCT_INS_BINARY_SIZE	37
+#define DOCT_BPT		38
+#define DOCT_SONG		39
+#define DOCT_HIGHLIGHT		40
+#define DOCT_LOCK_TO_PAGE	41
+#define DOCT_LOCK_TO_CENTER	42
+#define DOCT_HTML_IMG		43
+#define DOCT_HTML_VIDEO		44
+#define DOCT_HTML_CODE		45
+#define DOCT_ERROR		46
 
-#define DOCT_NUM_TYPES		49
+#define DOCT_NUM_TYPES		47
 
 //CDocEntry.type flags upper bits
 #define DOCET_BLINK		ATTRF_BLINK
@@ -1278,7 +1271,6 @@ public class CDocBin
 #define DOC_COLOR_LINK		RED
 #define DOC_COLOR_MACRO		LTBLUE
 #define DOC_COLOR_ANCHOR	DKGRAY
-#define DOC_COLOR_HIDDEN	DKGRAY
 #define DOC_COLOR_TREE		PURPLE
 #define DOC_COLOR_PMT		GREEN
 #define DOC_COLOR_BIN		CYAN
@@ -1377,8 +1369,8 @@ class CEdFindText
 {
   U8	find_text[136]		fmtstr "$$DA-P,135,\"Find        :%s\"$$\n";
   U8	replace_text[136]	fmtstr "$$DA-P,135,\"Replace     :%s\"$$\n";
-  Bool replace		fmtstr "$$CB,\"Replace\"$$\n";
-  Bool scan_fwd		fmtstr "$$CB,\"Fwd\"$$\n";
+  Bool replace			fmtstr "$$CB,\"Replace\"$$\n";
+  Bool scan_fwd			fmtstr "$$CB,\"Fwd\"$$\n";
   Bool scan_selected_text	fmtstr "$$CB,\"Selection\"$$\n";
   Bool match_case		fmtstr "$$CB,\"Match Case\"$$\n";
   Bool whole_labels		fmtstr "$$CB,\"Whole Labels\"$$\n";
@@ -1425,7 +1417,8 @@ class CEdFileName
 #define DOCF_BREAK_UNLOCKED	0x80000
 #define DOCF_BORDER_DOC		0x100000
 #define DOCF_HIDE_CURSOR	0x200000 //use $LK,"DocCursor","MN:DocCursor"$
-//2 unused flags
+#define DOCF_CARRIAGE_RETURN	0x400000
+#define DOCF_NO_SCROLL_BARS	0x800000 //use $LK,"DocScroll","MN:DocScroll"$
 
 #define DOCF_HIGHLIGHT		DOCEF1_HIGHLIGHT
 #define DOCF_LOCK_TO_PAGE	DOCEF1_LOCK_TO_PAGE
@@ -1436,9 +1429,6 @@ class CEdFileName
 #define DOCF_SELECTED		DOCEF1_SELECTED
 #define DOCF_UNDERLINE		DOCEF1_UNDERLINE
 
-#define DOCF_CARRIAGE_RETURN	0x100000000
-#define DOCF_NO_SCROLL_BARS	0x200000000 //use $LK,"DocScroll","MN:DocScroll"$
-
 #define DOCf_OVERSTRIKE 	0
 #define DOCf_PLAIN_TEXT 	1
 #define DOCf_PLAIN_TEXT_WITH_TABS 2 //has '\t', not DOCT_TAB
@@ -1461,7 +1451,8 @@ class CEdFileName
 #define DOCf_BREAK_UNLOCKED	19
 #define DOCf_BORDER_DOC		20
 #define DOCf_HIDE_CURSOR	21  //use $LK,"DocCursor","MN:DocCursor"$
-//2 unused flags
+#define DOCf_CARRIAGE_RETURN	22
+#define DOCf_NO_SCROLL_BARS	23
 
 #define DOCf_HIGHLIGHT		DOCEf1_HIGHLIGHT
 #define DOCf_LOCK_TO_PAGE	DOCEf1_LOCK_TO_PAGE
@@ -1472,8 +1463,6 @@ class CEdFileName
 #define DOCf_SELECTED		DOCEf1_SELECTED
 #define DOCf_UNDERLINE		DOCEf1_UNDERLINE
 
-#define DOCf_CARRIAGE_RETURN	32
-#define DOCf_NO_SCROLL_BARS	33
 
 //locked flags
 #define DOClf_LOCKED		0
@@ -1487,6 +1476,7 @@ class CDocUndo
 };
 
 //See $LK,"DocMenuDo","MN:DocMenuDo"$()
+#define DOCM_EXIT		0
 #define DOCM_CANCEL		(-1)
 
 #define DOC_SIGNATURE_VAL		'DocS'
@@ -1510,9 +1500,8 @@ public class CDoc //Linked Text File header
   U8 *dollar_buf;
   CTask *win_task,*mem_task;
   CDocEntry *recalc_start;
-  I32 page_line_num;
+  I32 page_line_num,undo_cnt;
   I32 x,y,min_x,max_x,min_y,max_y;
-  I32 undo_cnt;
   I64 line,col,best_d;
   I64 old_win_top,old_win_bottom,
      old_win_left,old_win_right;
@@ -1576,7 +1565,7 @@ U0 pad;#assert !($$&7) //(compiler lags one token)
 #define OPTf_GLBLS_ON_DATA_HEAP	0x24
 //Disable 10-byte float consts for ã,log2_10,log10_2,loge_2
 #define OPTf_NO_BUILTIN_CONST	0x25 //Applied to funs, not statements
-#define OPTf_USE_LIT64		0x26 //Not completely implemented
+#define OPTf_USE_IMM64		0x26 //Not completely implemented
 
 #define OPTF_ECHO		(1<>4)
diff --git a/TempleOS/Kernel/Compress.CPP b/TempleOS/Kernel/Compress.CPP
index 425d27f..07e25df 100644
--- a/TempleOS/Kernel/Compress.CPP
+++ b/TempleOS/Kernel/Compress.CPP
@@ -72,7 +72,7 @@ _ARC_GET_ENTRY::
 	JNE	@@10
 	MOV	RDX,U64 CArcCtrl.min_table_entry[RSI]
 @@10:	MOV	RAX,U64 CArcCtrl.hash[RSI+RDX*8]
-	OR	RAX,RAX
+	TEST	RAX,RAX
 	JNZ	@@05
 	MOV	RDI,RDX
 	SHL	RDI,4
@@ -80,7 +80,7 @@ _ARC_GET_ENTRY::
 	MOV	U32 CArcCtrl.next_entry[RSI],EDI
 	MOVZX	RBX,U16 CArcEntry.basecode[RDI]
 	LEA	RCX,U64 CArcCtrl.hash[RSI+RBX*8]
-@@15:	OR	RCX,RCX
+@@15:	TEST	RCX,RCX
 	JZ	@@25
 	MOV	RAX,U64 CArcEntry.next[RCX]
 	CMP	RDI,RAX
diff --git a/TempleOS/Kernel/Date.CPP b/TempleOS/Kernel/Date.CPP
index 67f8d01..b4bca87 100644
--- a/TempleOS/Kernel/Date.CPP
+++ b/TempleOS/Kernel/Date.CPP
@@ -131,7 +131,7 @@ I64 Bcd2Bin(U64 b)
 }
 
 
-U0 GetCurTimeCDateStruct(CDateStruct *_ds)
+U0 GetDateTimeStruct(CDateStruct *_ds)
 {
   I64 i;
   U8 *b=_ds;
@@ -189,10 +189,10 @@ U0 GetCurTimeCDateStruct(CDateStruct *_ds)
   if (_ds->sec>59) _ds->sec=59;
 }
 
-CDate GetCurTimeDate()
+CDate GetDateTime()
 {
   CDateStruct ds;
-  GetCurTimeCDateStruct(&ds);
+  GetDateTimeStruct(&ds);
   return DateStruct2Date(&ds)-local_time_offset;
 }
 
@@ -205,7 +205,7 @@ U0 DateTimeFmtMapsRst()
     time_fmt_map[i]=i;
 }
 
-U8 *MSPrintFTime(CDate cdt,I64 sub_fmt)
+U8 *MPrintTime(CDate cdt,I64 sub_fmt)
 {
   CDateStruct ds;
   if (sub_fmt=12)
-	return MSPrintF("%02d:%02d:%02d pm",ds.hour-12,ds.min,ds.sec);
+	return MPrint("%02d:%02d:%02d pm",ds.hour-12,ds.min,ds.sec);
       else
-	return MSPrintF("%02d:%02d:%02d am",ds.hour,ds.min,ds.sec);
+	return MPrint("%02d:%02d:%02d am",ds.hour,ds.min,ds.sec);
     case TF_HH12_MM_AM:
       Date2DateStruct(&ds,cdt+local_time_offset);
       if (ds.hour>=12)
-	return MSPrintF("%02d:%02d pm",ds.hour-12,ds.min);
+	return MPrint("%02d:%02d pm",ds.hour-12,ds.min);
       else
-	return MSPrintF("%02d:%02d am",ds.hour,ds.min);
+	return MPrint("%02d:%02d am",ds.hour,ds.min);
     case TF_HH12_MM_SSA:
       Date2DateStruct(&ds,cdt+local_time_offset);
       if (ds.hour>=12)
-	return MSPrintF("%02d:%02d:%02dp",ds.hour-12,ds.min,ds.sec);
+	return MPrint("%02d:%02d:%02dp",ds.hour-12,ds.min,ds.sec);
       else
-	return MSPrintF("%02d:%02d:%02da",ds.hour,ds.min,ds.sec);
+	return MPrint("%02d:%02d:%02da",ds.hour,ds.min,ds.sec);
     case TF_HH12_MMA:
       Date2DateStruct(&ds,cdt+local_time_offset);
       if (ds.hour>=12)
-	return MSPrintF("%02d:%02dp",ds.hour-12,ds.min);
+	return MPrint("%02d:%02dp",ds.hour-12,ds.min);
       else
-	return MSPrintF("%02d:%02da",ds.hour,ds.min);
+	return MPrint("%02d:%02da",ds.hour,ds.min);
     case TF_H_M:
       Date2DateStruct(&ds,cdt);
-      return MSPrintF("%dh %02dm",ds.hour+cdt.date*24,ds.min);
+      return MPrint("%dh %02dm",ds.hour+cdt.date*24,ds.min);
     case TF_H_M_S:
       Date2DateStruct(&ds,cdt);
-      return MSPrintF("%dh %02dm %02ds",ds.hour+cdt.date*24,ds.min,ds.sec);
+      return MPrint("%dh %02dm %02ds",ds.hour+cdt.date*24,ds.min,ds.sec);
     case TF_D_H_M:
       Date2DateStruct(&ds,cdt);
-      return MSPrintF("%dd %02dh %02dm",cdt.date,ds.hour,ds.min);
+      return MPrint("%dd %02dh %02dm",cdt.date,ds.hour,ds.min);
     case TF_D_H_M_S:
       Date2DateStruct(&ds,cdt);
-      return MSPrintF("%dd %02dh %02dm %02ds",cdt.date,ds.hour,ds.min,ds.sec);
+      return MPrint("%dd %02dh %02dm %02ds",cdt.date,ds.hour,ds.min,ds.sec);
     case TF_D_H_M_Sh:
       Date2DateStruct(&ds,cdt);
-      return MSPrintF("%dd %02dh %02dm %02d.%02ds",cdt.date,ds.hour,ds.min,ds.sec,ds.sec100);
+      return MPrint("%dd %02dh %02dm %02d.%02ds",cdt.date,ds.hour,ds.min,ds.sec,ds.sec100);
     case TF_H_M_Sh:
       Date2DateStruct(&ds,cdt);
-      return MSPrintF("%dh %02dm %02d.%02ds",ds.hour+cdt.date*24,ds.min,ds.sec,ds.sec100);
+      return MPrint("%dh %02dm %02d.%02ds",ds.hour+cdt.date*24,ds.min,ds.sec,ds.sec100);
     case TF_Sh:
       Date2DateStruct(&ds,cdt);
-      return MSPrintF("%d.%02d",60*((cdt.date*24+ds.hour)*60+ds.min)+ds.sec,ds.sec100);
+      return MPrint("%d.%02d",60*((cdt.date*24+ds.hour)*60+ds.min)+ds.sec,ds.sec100);
     case TF_M_Sh:
       Date2DateStruct(&ds,cdt);
-      return MSPrintF("%02d:%02d.%02d",60*(cdt.date*24+ds.hour)+ds.min,ds.sec,ds.sec100);
+      return MPrint("%02d:%02d.%02d",60*(cdt.date*24+ds.hour)+ds.min,ds.sec,ds.sec100);
     case TF_H_M_Sh2:
       Date2DateStruct(&ds,cdt);
-      return MSPrintF("%02d:%02d:%02d.%02d",cdt.date*24+ds.hour,ds.min,ds.sec,ds.sec100);
+      return MPrint("%02d:%02d:%02d.%02d",cdt.date*24+ds.hour,ds.min,ds.sec,ds.sec100);
     case TF_D_H_M_Sht:
       Date2DateStruct(&ds,cdt);
-      return MSPrintF("%dd %02dh %02dm %02d.%04ds",cdt.date,ds.hour,ds.min,ds.sec,100*ds.sec100+ds.sec10000);
+      return MPrint("%dd %02dh %02dm %02d.%04ds",cdt.date,ds.hour,ds.min,ds.sec,100*ds.sec100+ds.sec10000);
     case TF_H_M_Sht:
       Date2DateStruct(&ds,cdt);
-      return MSPrintF("%dh %02dm %02d.%04ds",ds.hour+cdt.date*24,ds.min,ds.sec,100*ds.sec100+ds.sec10000);
+      return MPrint("%dh %02dm %02d.%04ds",ds.hour+cdt.date*24,ds.min,ds.sec,100*ds.sec100+ds.sec10000);
     case TF_Sht:
       Date2DateStruct(&ds,cdt);
-      return MSPrintF("%d.%04d",60*((cdt.date*24+ds.hour)*60+ds.min)+ds.sec,100*ds.sec100+ds.sec10000);
+      return MPrint("%d.%04d",60*((cdt.date*24+ds.hour)*60+ds.min)+ds.sec,100*ds.sec100+ds.sec10000);
     case TF_M_Sht:
       Date2DateStruct(&ds,cdt);
-      return MSPrintF("%02d:%02d.%04d",60*(cdt.date*24+ds.hour)+ds.min,ds.sec,100*ds.sec100+ds.sec10000);
+      return MPrint("%02d:%02d.%04d",60*(cdt.date*24+ds.hour)+ds.min,ds.sec,100*ds.sec100+ds.sec10000);
     case TF_H_M_Sht2:
       Date2DateStruct(&ds,cdt);
-      return MSPrintF("%02d:%02d:%02d.%04d",cdt.date*24+ds.hour,ds.min,ds.sec,100*ds.sec100+ds.sec10000);
+      return MPrint("%02d:%02d:%02d.%04d",cdt.date*24+ds.hour,ds.min,ds.sec,100*ds.sec100+ds.sec10000);
     case TF_HH24:
       Date2DateStruct(&ds,cdt+local_time_offset);
-      return MSPrintF("%02d",ds.hour);
+      return MPrint("%02d",ds.hour);
     case TF_MM:
       Date2DateStruct(&ds,cdt+local_time_offset);
-      return MSPrintF("%02d",ds.min);
+      return MPrint("%02d",ds.min);
     case TF_SS:
       Date2DateStruct(&ds,cdt+local_time_offset);
-      return MSPrintF("%02d",ds.sec);
+      return MPrint("%02d",ds.sec);
     case TF_HH24_MM_SS:
     default:
       Date2DateStruct(&ds,cdt+local_time_offset);
-      return MSPrintF("%02d:%02d:%02d",ds.hour,ds.min,ds.sec);
+      return MPrint("%02d:%02d:%02d",ds.hour,ds.min,ds.sec);
   }
 }
 
-U8 *MSPrintFDate(CDate cdt,I64 sub_fmt)
+U8 *MPrintDate(CDate cdt,I64 sub_fmt)
 {
   CDateStruct ds;
   if (sub_fmt>32);
+      return MPrint("%d mons",ToI64(cdt/(CDATE_YEAR_DAYS/12))>>32);
     case DF_Y:
-      return MSPrintF("%d years",ToI64(cdt/CDATE_YEAR_DAYS)>>32);
+      return MPrint("%d years",ToI64(cdt/CDATE_YEAR_DAYS)>>32);
     case DF_D2:
-      return MSPrintF("%d",cdt.date);
+      return MPrint("%d",cdt.date);
     case DF_M2:
-      return MSPrintF("%d",ToI64(cdt/(CDATE_YEAR_DAYS/12))>>32);
+      return MPrint("%d",ToI64(cdt/(CDATE_YEAR_DAYS/12))>>32);
     case DF_Y2:
-      return MSPrintF("%d",ToI64(cdt/CDATE_YEAR_DAYS)>>32);
+      return MPrint("%d",ToI64(cdt/CDATE_YEAR_DAYS)>>32);
     case DF_D3:
-      return MSPrintF("%0.1f",cdt/ToF64(MAX_U32+1));
+      return MPrint("%0.1f",cdt/ToF64(MAX_U32+1));
     case DF_M3:
-      return MSPrintF("%0.1f",cdt/ToF64(MAX_U32+1)/(CDATE_YEAR_DAYS/12));
+      return MPrint("%0.1f",cdt/ToF64(MAX_U32+1)/(CDATE_YEAR_DAYS/12));
     case DF_Y3:
-      return MSPrintF("%0.1f",cdt/ToF64(MAX_U32+1)/CDATE_YEAR_DAYS);
+      return MPrint("%0.1f",cdt/ToF64(MAX_U32+1)/CDATE_YEAR_DAYS);
     case DF_MM_DD_YY:
     default:
       Date2DateStruct(&ds,cdt+local_time_offset);
-      return MSPrintF("%02d/%02d/%02d",ds.mon,ds.day_of_mon,ds.year%100);
+      return MPrint("%02d/%02d/%02d",ds.mon,ds.day_of_mon,ds.year%100);
   }
 }
diff --git a/TempleOS/Kernel/Dbg1a.CPP b/TempleOS/Kernel/Dbg1a.CPP
index 3712424..4edc096 100644
--- a/TempleOS/Kernel/Dbg1a.CPP
+++ b/TempleOS/Kernel/Dbg1a.CPP
@@ -58,7 +58,7 @@ I64 UnusedStk(CTask *task=NULL)
   PushFD;
   Cli;
   if (task==Fs)
-    result=GetStkPtr()(U8 *)-(&task->stk->stk_base)(U8 *);
+    result=GetRSP()(U8 *)-(&task->stk->stk_base)(U8 *);
   else
     result=task->rsp(U8 *)-(&task->stk->stk_base)(U8 *);
   PopFD;
@@ -70,7 +70,7 @@ U8 *Caller(I64 num=1)
 //which called this one, or the caller
 //of the caller, etc.
 {
-  U8 **rbp=GetBasePtr,**ptr;
+  U8 **rbp=GetRBP,**ptr;
   while (num--) {
     if (rbp>=*rbp)
       return NULL;
@@ -123,7 +123,7 @@ U0 StkRep(CTask *task=NULL)
   PushFD;
   Cli;
   if (task==Fs) {
-    rbp=GetBasePtr;
+    rbp=GetRBP;
     rsp=rbp+3;
     rbp=*rbp;
   } else {
@@ -166,7 +166,7 @@ U0 CallerRep(U8 **rbp=NULL,CTask *task=NULL)
   if (!task) task=Fs;
   if (!rbp) {
     if (task==Fs)
-      rbp=GetBasePtr;
+      rbp=GetRBP;
     else
       rbp=task->rbp;
   }
@@ -180,7 +180,7 @@ U0 CallerRep(U8 **rbp=NULL,CTask *task=NULL)
   }
 }
 
-U0 DbgStr(U8 *st,I64 mS=100)
+U0 RawStr(U8 *st,I64 mS=100)
 //Shows a string using
 //$LK,"Raw","MN:Raw"$ screen output for a fixed length
 //of time.
@@ -190,16 +190,14 @@ U0 DbgStr(U8 *st,I64 mS=100)
   Cli;
   old_raw=Raw(ON);
   old_input_filter=LBtr(&Fs->task_flags,TASKf_INPUT_FILTER_TASK);
-  "DbgStr(";
-  "" st;
-  ')';
+  "RawStr(%s)",st;
   BusyWait(mS<<10);
   PopFD;
   LBEqu(&Fs->task_flags,TASKf_INPUT_FILTER_TASK,old_input_filter);
   Raw(old_raw);
 }
 
-U0 DbgI64(I64 num,I64 mS=100)
+U0 RawI64(I64 num,I64 mS=100)
 //Shows a hex num using
 //$LK,"Raw","MN:Raw"$ screen output for a fixed length
 //of time.
@@ -209,14 +207,14 @@ U0 DbgI64(I64 num,I64 mS=100)
   Cli;
   old_raw=Raw(ON);
   old_input_filter=LBtr(&Fs->task_flags,TASKf_INPUT_FILTER_TASK);
-  "DbgI64(%016X)",num;
+  "RawI64(%016X)",num;
   BusyWait(mS<<10);
   PopFD;
   LBEqu(&Fs->task_flags,TASKf_INPUT_FILTER_TASK,old_input_filter);
   Raw(old_raw);
 }
 
-U0 DbgF64(F64 d,I64 mS=100)
+U0 RawF64(F64 d,I64 mS=100)
 //Shows a floating-point val using
 //$LK,"Raw","MN:Raw"$ screen output for a fixed length
 //of time.
@@ -226,14 +224,14 @@ U0 DbgF64(F64 d,I64 mS=100)
   Cli;
   old_raw=Raw(ON);
   old_input_filter=LBtr(&Fs->task_flags,TASKf_INPUT_FILTER_TASK);
-  "DbgF64(%15e)",d;
+  "RawF64(%15e)",d;
   BusyWait(mS<<10);
   PopFD;
   LBEqu(&Fs->task_flags,TASKf_INPUT_FILTER_TASK,old_input_filter);
   Raw(old_raw);
 }
 
-U0 DbgAdd(U8 *add,I64 mS=100)
+U0 RawAdd(U8 *add,I64 mS=100)
 //Shows an addr using $LK,"Raw","MN:Raw"$ screen
 //output for a length of time.
 {
@@ -242,14 +240,33 @@ U0 DbgAdd(U8 *add,I64 mS=100)
   Cli;
   old_raw=Raw(ON);
   old_input_filter=LBtr(&Fs->task_flags,TASKf_INPUT_FILTER_TASK);
-  "DbgAdd(%P)",add;
+  "RawAdd(%P)",add;
   BusyWait(mS<<10);
   PopFD;
   LBEqu(&Fs->task_flags,TASKf_INPUT_FILTER_TASK,old_input_filter);
   Raw(old_raw);
 }
 
-U0 DbgD(U8 *add,I64 cnt=0x80,I64 mS=100)
+U0 RawPrint(I64 mS=100,U8 *fmt,...)
+//Print using $LK,"Raw","MN:Raw"$ screen
+//output for a length of time.
+//$BK,1$Your heap must be good.$BK,0$
+{
+  U8 *buf=SPrintJoin(NULL,fmt,argc,argv);
+  Bool old_raw,old_input_filter;
+  PushFD;
+  Cli;
+  old_raw=Raw(ON);
+  old_input_filter=LBtr(&Fs->task_flags,TASKf_INPUT_FILTER_TASK);
+  "%s",buf;
+  BusyWait(mS<<10);
+  PopFD;
+  LBEqu(&Fs->task_flags,TASKf_INPUT_FILTER_TASK,old_input_filter);
+  Raw(old_raw);
+  Free(buf);
+}
+
+U0 RawD(U8 *add,I64 cnt=0x80,I64 mS=100)
 //Dumps a block of mem using $LK,"Raw","MN:Raw"$
 //screen output for a fixed length
 //of time.
@@ -266,7 +283,7 @@ U0 DbgD(U8 *add,I64 cnt=0x80,I64 mS=100)
   Raw(old_raw);
 }
 
-U0 DbgDm(U8 *add,I64 cnt=0x80,I64 mS=100)
+U0 RawDm(U8 *add,I64 cnt=0x80,I64 mS=100)
 //Dumps a block of mem using $LK,"Raw","MN:Raw"$
 //screen output for a fixed length
 //of time.
@@ -358,38 +375,38 @@ I64 *TaskRegAdd(CTask *task,I64 reg_num)
 
 U0 RawDr(CTask *task=NULL)
 {
-  I64 i,j,old_col=sys_raw_dc_col;
+  I64 i,j,old_col=sys_raw_col;
   Bool old_raw=Raw(ON);
   U8 buf[200];
 
   if (!task) task=Fs;
 
   for (i=0;i<16;i++) {
-    sys_raw_dc_col=i*text_cols+RAWDR_COL;
+    sys_raw_col=i*text_cols+RAWDR_COL;
     "º%3Z:%016X\n",i,"ST_U64_REGS",*TaskRegAdd(task,i);
   }
 
-  sys_raw_dc_col=i++*text_cols+RAWDR_COL;
+  sys_raw_col=i++*text_cols+RAWDR_COL;
   "ºRIP:%016X\n",task->rip;
 
-  sys_raw_dc_col=i++*text_cols+RAWDR_COL;
+  sys_raw_col=i++*text_cols+RAWDR_COL;
   "º%-*tT\n",text_cols-(RAWDR_COL+1)-1,Fs->rip;
 
-  sys_raw_dc_col=i++*text_cols+RAWDR_COL;
+  sys_raw_col=i++*text_cols+RAWDR_COL;
   'º';
   if (Bt(&sys_run_level,RLf_COMPILER)) {
     j=Fs->rip;
     Ui(buf,&j,,,TRUE);
-    "" buf;
+    "%s",buf;
   } else
     NewLine;
 
-  sys_raw_dc_col=i*text_cols+RAWDR_COL;
+  sys_raw_col=i*text_cols+RAWDR_COL;
   'È';
   for (j=0;jD(0x100000);\t\t\t//Dump page tables.\n"
   ">Dm(0x100000);\t\t\t//Dump page tables.\n"
   ">Dm(Fs,sizeof(CTask));\t\t//Dump current task record.\n"
-  ">ClassRep(\"CTask\",Fs,1);\t//Dump current task record.\n"
+  ">ClassRep(Fs,\"CTask\",1);\t//Dump current task record.\n"
+  ">ClassRep(Fs,,1);\t\t//(It knows lastclass.)\n"
   ">CallerRep;\t\t\t//Stack trace report.\n"
   ">Da(_RSP);\t\t\t//Dump stk.\n"
   ">Dr;\t\t\t\t//Dump Registers.\n"
-  ">1+2*3+&PutS;\t\t\t//Show calculation result.\n"
+  ">1+2*3+&Print;\t\t\t//Show calculation result.\n"
   ">*(0x70000)(I64 *)=0x123456789;\t//Assign value to 0x70000-0x70007.\n"
   ">_RAX=0x1234;\t\t\t//Set RAX to 0x1234.\n"
   ">_RIP=&SysThrowBreak;\t\t//Set RIP.\n"
   ">I64 i;\t\t\t\t//Declare variable.\n"
   ">i=_RCX+_RDX;\t\t\t//Assign to variable.\n"
-  ">U(&PrintF+0x8);\t\t//Unassemble PrintF.\n"
-  ">Uf(\"PutS\");\t\t\t//Unassembler function \"PutS\".\n"
-  ">Man(\"PutS\");\t\t\t//Edit Src for \"PutS\".\n"
+  ">U(&Print+0x8);\t\t//Unassemble Print.\n"
+  ">Uf(\"Print\");\t\t\t//Unassembler function \"Print\".\n"
+  ">Man(\"Print\");\t\t\t//Edit Src for \"Print\".\n"
   ">E(_RIP);\t\t\t//Edit Src Code.\n"
   ">Fix;\t\t\t\t//Edit Last Err Src Code.\n"
   ">B(&Main+0x20);\t\t\t//Toggle break point.\n"
@@ -614,7 +632,7 @@ U0 Dbg2()
   if (IsRaw) {
     i=Fs->rip;
     Ui(buf,&i);
-    "" buf;
+    "%s",buf;
   } else
     U(Fs->rip,1);
 
@@ -670,7 +688,7 @@ U0 Fault2(I64 fault_num,I64 fault_err_code) //Called from $LK,"Fault2","FF:::/Te
 {
 //$BK,1$Be careful not to swap-out and ruin the saved context$BK,0$
   Bool was_raw,was_single_user,was_silent;
-  I64  i,old_dc_flags=sys_raw_dc_flags;
+  I64  i,old_raw_flags=sys_raw_flags;
   if (fault_num==I_DIVIDE_BY_ZERO)
     throw(EXCEPT_DIVIDE_BY_ZERO,Fs->rip);
   was_single_user=SingleUser(ON);
@@ -684,9 +702,9 @@ U0 Fault2(I64 fault_num,I64 fault_err_code) //Called from $LK,"Fault2","FF:::/Te
   else {
     was_raw=Raw(ON);
     was_silent=Silent(OFF);
-    sys_raw_dc_flags|=RDCF_SHOW_DOLLAR|RDCF_SCROLL;
+    sys_raw_flags|=RWF_SHOW_DOLLAR|RWF_SCROLL;
     "Task \"";
-    "" Fs->task_title;
+    "%s",Fs->task_title;
     "\"\n";
     "Fault:0x%02X %Z\t\tErr Code:%08X\n",fault_num,fault_num,"ST_INT_NAMES",fault_err_code;
     "RIP:%08X",Fs->rip; //Sometimes crashes on %P, so do this first
@@ -699,7 +717,7 @@ U0 Fault2(I64 fault_num,I64 fault_err_code) //Called from $LK,"Fault2","FF:::/Te
     Fault3(fault_num,fault_err_code);
     Silent(was_silent);
     Raw(was_raw);
-    sys_raw_dc_flags=old_dc_flags;
+    sys_raw_flags=old_raw_flags;
   }
   SingleUser(was_single_user);
   if (LBtr(&Fs->task_flags,TASKf_KILL_AFTER_DBG))
diff --git a/TempleOS/Kernel/Define1a.CPP b/TempleOS/Kernel/Define1a.CPP
index 0608b2e..c61fd4b 100644
--- a/TempleOS/Kernel/Define1a.CPP
+++ b/TempleOS/Kernel/Define1a.CPP
@@ -24,8 +24,9 @@ U0 LoadSysStrs()
   DefineLstLoad("ST_OFF_ON","Off\0On\0");
   DefineLstLoad("ST_HTT_TYPES","ExportSysSym\0ImportSysSym\0DefineStr\0GlbVar\0Class\0"
 		"IntType\0Funct\0Word\0DictWord\0KeyWord\0AsmKeyWord\0OpCode\0Reg\0"
-		"File\0Module\0HelpFile\0Frame Ptr\0Private\0"
-		"Public\0Export\0Import\0Lit\0Unres\0Local\0");
+		"File\0Module\0HelpFile\0Frame Ptr\0"
+		" \0 \0 \0 \0 \0 \0 \0 \0"
+		"Private\0Public\0Export\0Import\0Imm\0Unres\0Local\0");
   DefineLstLoad("ST_DAYS_OF_WEEK","Sunday\0Monday\0Tuesday\0Wednesday\0"
 		"Thursday\0Friday\0Saturday\0");
   DefineLstLoad("ST_MONTHS","January\0February\0March\0April\0May\0"
@@ -34,7 +35,7 @@ U0 LoadSysStrs()
 		"Floating\0Compiler\0Undefined Define\0"
 		"Undefined Extern\0File\0File Xsum\0"
 		"Partition error\0Blk Dev error\0"
-		"Graphics\0SPrintF\0GetF\0Bin Module\0"
+		"Graphics\0SPrint\0Scan\0Bin Module\0"
 		"MultiCore\0FUF\0Flags\0");
 
   DefineLstLoad("ST_FILE_ATTRS","R\0H\0S\0V\0D\0A\0 \0 \0X\0Y\0T\0Z\0C\0F\0");
diff --git a/TempleOS/Kernel/Display.CPP b/TempleOS/Kernel/Display.CPP
index ea78213..87c61ef 100644
--- a/TempleOS/Kernel/Display.CPP
+++ b/TempleOS/Kernel/Display.CPP
@@ -14,49 +14,49 @@ See also $LK,"GrUpdateScreen","MN:GrUpdateScreen"$().
   I64 i,row,col;
   U8 *ptr,*ptr1,*ptr2;
 
-  if (!(sys_raw_dc_flags&RDCF_SHOW_DOLLAR)) {
+  if (!(sys_raw_flags&RWF_SHOW_DOLLAR)) {
     if (ch=='$$') {
-      if (sys_raw_dc_flags&RDCF_IN_DOLLAR) {
-	sys_raw_dc_flags&=~RDCF_IN_DOLLAR;
-	if (!(sys_raw_dc_flags & RDCF_LAST_DOLLAR)) {
-	  sys_raw_dc_flags&=~RDCF_LAST_DOLLAR;
+      if (sys_raw_flags&RWF_IN_DOLLAR) {
+	sys_raw_flags&=~RWF_IN_DOLLAR;
+	if (!(sys_raw_flags & RWF_LAST_DOLLAR)) {
+	  sys_raw_flags&=~RWF_LAST_DOLLAR;
 	  Preempt(old_preempt);
 	  return;
 	}
       } else {
-	sys_raw_dc_flags|=RDCF_IN_DOLLAR|RDCF_LAST_DOLLAR;
+	sys_raw_flags|=RWF_IN_DOLLAR|RWF_LAST_DOLLAR;
 	Preempt(old_preempt);
 	return;
       }
     }
-    sys_raw_dc_flags&=~RDCF_LAST_DOLLAR;
-    if (sys_raw_dc_flags&RDCF_IN_DOLLAR) {
+    sys_raw_flags&=~RWF_LAST_DOLLAR;
+    if (sys_raw_flags&RWF_IN_DOLLAR) {
       Preempt(old_preempt);
       return;
     }
   }
   if (ch=='\t') {
     RawPutChar(CH_SPACE);
-    while (sys_raw_dc_col & 7)
+    while (sys_raw_col & 7)
       RawPutChar(CH_SPACE);
   } else if (ch==CH_BACKSPACE) {
-    sys_raw_dc_col--;
+    sys_raw_col--;
     RawPutChar(CH_SPACE);
-    sys_raw_dc_col--;
+    sys_raw_col--;
   } else if (ch=='\n') {
     RawPutChar(CH_SPACE);
-    while (sys_raw_dc_col % text_cols)
+    while (sys_raw_col % text_cols)
       RawPutChar(CH_SPACE);
 
   } else if (Bt(displayable_chars_bitmap,ch)) {
-    row=sys_raw_dc_col/text_cols%text_rows;
-    col=sys_raw_dc_col%text_cols;
+    row=sys_raw_col/text_cols%text_rows;
+    col=sys_raw_col%text_cols;
     if (text_mode) {
-      if (sys_raw_dc_flags&RDCF_SCROLL && sys_raw_dc_col && !row && !col) {
+      if (sys_raw_flags&RWF_SCROLL && sys_raw_col && !row && !col) {
 	MemCpy(VGA_TEXT_MEM_BASE,VGA_TEXT_MEM_BASE+text_cols,
 	  text_cols*(text_rows-1)*2);
 	MemSet(VGA_TEXT_MEM_BASE+text_cols*(text_rows-1)*2,0,text_cols*2);
-	sys_raw_dc_col-=text_cols;
+	sys_raw_col-=text_cols;
 	row=text_rows-1;
       }
       ptr=VGA_TEXT_MEM_BASE+(row*text_cols+col)*2;
@@ -65,21 +65,21 @@ See also $LK,"GrUpdateScreen","MN:GrUpdateScreen"$().
     } else {
       OutU8(VGA_SC_INDEX,VGA_MAP_MASK);
       OutU8(VGA_SC_DATA,0x0F); //All planes -- WHITE
-      if (sys_raw_dc_flags&RDCF_SCROLL && sys_raw_dc_col && !row && !col) {
+      if (sys_raw_flags&RWF_SCROLL && sys_raw_col && !row && !col) {
       //Scroll cached image
-	MemCpy(sys_dc_screen_image,sys_dc_screen_image+gr_width*FONT_HEIGHT>>3,
+	MemCpy(sys_raw_screen_image,sys_raw_screen_image+gr_width*FONT_HEIGHT>>3,
 	    gr_width*(gr_height-FONT_HEIGHT)>>3);
-	MemSet(sys_dc_screen_image+gr_width*(gr_height-FONT_HEIGHT)>>3,0,gr_width*FONT_HEIGHT>>3);
+	MemSet(sys_raw_screen_image+gr_width*(gr_height-FONT_HEIGHT)>>3,0,gr_width*FONT_HEIGHT>>3);
 
-	MemCpy(VGA_GRAPHIC_MEM_BASE,sys_dc_screen_image,gr_width*gr_height>>3);
-	sys_raw_dc_col-=text_cols;
+	MemCpy(VGA_GRAPHIC_MEM_BASE,sys_raw_screen_image,gr_width*gr_height>>3);
+	sys_raw_col-=text_cols;
 	row=text_rows-1;
       }
       PushFD;
       Cli;
       ptr=ptr1=col+row*gr_width;
       ptr+=VGA_GRAPHIC_MEM_BASE;
-      ptr1+=sys_dc_screen_image; //Write to cached image as well
+      ptr1+=sys_raw_screen_image; //Write to cached image as well
       ptr2=&gr_font[(ch&255)*FONT_HEIGHT];
       for (i=0;ilock_fwding)
     bdev=bdev->lock_fwding;
   if (Bt(&bdev->locked_flags,BDlf_LOCKED) && bdev->owning_task==Fs) {
-    if (rst) {
-      if (!Bt(&sys_semas[SYS_SEMA_NO_IO_SND],0))
-	Snd(0);
+    if (rst)
       bdev->flags&=~(BDF_INITIALIZED|BDF_INIT_IN_PROGRESS);
-    }
     bdev->owning_task=0;
     LBtr(&bdev->locked_flags,BDlf_LOCKED);
     Yield; //Prevent deadlock
@@ -81,8 +78,6 @@ Bool BlkDevInit(CBlkDev *bdev)
       case BDT_ATA:
 	bdev->max_reads=128;
 	bdev->max_writes=1;
-	bdev->read_freq=2000;
-	bdev->write_freq=500;
 	result=ATAInit(bdev);
 	break;
       case BDT_ATAPI:
@@ -94,8 +89,6 @@ Bool BlkDevInit(CBlkDev *bdev)
 	if (bdev->max_reads<128)
 	  bdev->max_reads=128;
 	bdev->max_writes=0xFFFF*4;
-	bdev->read_freq=1000;
-	bdev->write_freq=250;
 	if (result=ATAInit(bdev))
 	  p->size=bdev->max_blk+1;
 	break;
@@ -220,7 +213,7 @@ U0 SetFSBuf(CPrt *p,I64 c,I64 map_select=-1)
   if (c==INVALID_CLUSTER)
     throw(EXCEPT_PRT,1);
   if (p->type==PT_FAT32)
-    MAP_blk_num=c/(BLK_SIZE>>2);
+    MAP_blk_num=c>>(BLK_SIZE_BITS-2);
   else
     MAP_blk_num=c>>(BLK_SIZE_BITS+3);
   if (MAP_blk_num!=p->cur_map_blk_num) {
@@ -333,12 +326,8 @@ Bool RBlks(CPrt *p,U8 *buf, I64 blk, I64 cnt)
     if (bdev->flags & BDF_READ_CACHE)
       RCache(p,&buf,&blk,&cnt);
     if (cnt>0) {
-      if (!Bt(&sys_semas[SYS_SEMA_NO_IO_SND],0))
-	Snd(bdev->read_freq);
       result=(*p->rblks)(p,buf,blk,cnt);
       bdev->last_time=tS;
-      if (!Bt(&sys_semas[SYS_SEMA_NO_IO_SND],0))
-	Snd(0);
       if (bdev->flags & BDF_READ_CACHE)
 	DskCacheAdd(p,buf,blk,cnt);
     }
@@ -366,11 +355,7 @@ Bool WBlks(CPrt *p,U8 *buf, I64 blk, I64 cnt)
       throw(EXCEPT_PRT,3);
     blk+=bdev->offset;
     if (cnt>0) {
-      if (!Bt(&sys_semas[SYS_SEMA_NO_IO_SND],0))
-	Snd(bdev->write_freq);
       result=(*p->wblks)(p,buf,blk,cnt);
-      if (!Bt(&sys_semas[SYS_SEMA_NO_IO_SND],0))
-	Snd(0);
       bdev->last_time=tS;
       if (bdev->flags & BDF_READ_CACHE)
 	DskCacheAdd(p,buf,blk,cnt);
@@ -457,8 +442,7 @@ U0 PrtRep()
   I64 i;
   U8 *st,drv_let;
   "\nDefined Partitions:\n\n";
-  p=sys_prts;
-  for (i=0;ipt_signature==PRT_SIGNATURE_VAL) {
       bdev=p->bdev;
       drv_let=Prt2Drv(p);
@@ -629,8 +613,7 @@ I64 Name2ParentDirCluster(CPrt *p,U8 *dirname)
   PrtChk(p);
   try {
     unlock=PrtLock(p);
-    cur_dir_cluster=p->root_cluster;
-    cur_dir_cluster2=p->root_cluster;
+    cur_dir_cluster=cur_dir_cluster2=p->root_cluster;
     while (*buf && cont) {
       cur_dir_cluster2=cur_dir_cluster;
       StrFirstRem(buf,"/",buf2);
@@ -710,7 +693,7 @@ I64 WClusters(CPrt *p,U8 *buf,I64 c,I64 cnt)
 }
 
 //c=0 means first cluster in chain
-I64 ClusersAlloc(CPrt *p,I64 c=0,I64 cnt=1,Bool contiguous=FALSE)
+I64 ClustersAlloc(CPrt *p,I64 c=0,I64 cnt=1,Bool contiguous=FALSE)
 {
   PrtChk(p);
   if (cnt<=0) return c;
diff --git a/TempleOS/Kernel/Dsk/Dsk1b.CPP b/TempleOS/Kernel/Dsk/Dsk1b.CPP
index fa45f75..ee6e051 100644
--- a/TempleOS/Kernel/Dsk/Dsk1b.CPP
+++ b/TempleOS/Kernel/Dsk/Dsk1b.CPP
@@ -154,7 +154,7 @@ CFileAccess *FileAccessNew(U8 *_mask,Bool make_mask=FALSE,Bool make_dirs=FALSE)
       if (!Drv(*mask)) valid=FALSE;
     mask+=2;
   }
-  if (StrStr(mask,"HOME") && Fs->cur_prt!=Drv2Prt(*sys_acct))
+  if (StrMatch("HOME",mask) && Fs->cur_prt!=Drv2Prt(*sys_acct))
     Drv(*sys_acct);
   fa->p=Fs->cur_prt;
   PrtChk(fa->p);
@@ -197,12 +197,16 @@ CDirEntry *FilesFind(U8 *files_find_mask,I64 fuf_flags=0)
 {
 /*
 Flags:
- $LK,"FUF_RECURSE","MN:FUF_RECURSE"$		+r Recurse
- $LK,"FUF_FLATTEN_TREE","MN:FUF_FLATTEN_TREE"$	+f $BK,1$be sure to use this along with '+F'$BK,0$.
- $LK,"FUF_JUST_DIRS","MN:FUF_JUST_DIRS"$		+D just directories
- $LK,"FUF_JUST_FILES","MN:FUF_JUST_FILES"$		+F just files
- $LK,"FUF_JUST_TXT_FILES","MN:FUF_JUST_TXT_FILES"$	+T just text files: $LK,"FILENAME_MASK_TXT","MN:FILENAME_MASK_TXT"$
- $LK,"FUF_JUST_SRC_FILES","MN:FUF_JUST_SRC_FILES"$	+S just src files : $LK,"FILENAME_MASK_SRC","MN:FILENAME_MASK_SRC"$
+  $LK,"FUF_RECURSE","MN:FUF_RECURSE"$		+r Recurse
+  $LK,"FUF_FLATTEN_TREE","MN:FUF_FLATTEN_TREE"$	+f $BK,1$use with '+F'$BK,0$.  Just use +F, probably.
+  $LK,"FUF_JUST_DIRS","MN:FUF_JUST_DIRS"$		+D just directories
+  $LK,"FUF_JUST_FILES","MN:FUF_JUST_FILES"$	+F just files (Flattens trees)
+  $LK,"FUF_JUST_TXT","MN:FUF_JUST_TXT"$	+T just text files	: $LK,"FILEMASK_TXT","MN:FILEMASK_TXT"$
+  $LK,"FUF_JUST_SRC","MN:FUF_JUST_SRC"$	+S just src files	: $LK,"FILEMASK_SRC","MN:FILEMASK_SRC"$
+  $LK,"FUF_JUST_AOT","MN:FUF_JUST_AOT"$	+A just aot files	: $LK,"FILEMASK_AOT","MN:FILEMASK_AOT"$
+  $LK,"FUF_JUST_JIT","MN:FUF_JUST_JIT"$	+J just jit files	: $LK,"FILEMASK_JIT","MN:FILEMASK_JIT"$
+  $LK,"FUF_JUST_GRA","MN:FUF_JUST_GRA"$	+G just graphic files	: $LK,"FILEMASK_GRA","MN:FILEMASK_GRA"$
+
 See $LK,"ST_FILE_UTIL_FLAGS","MN:ST_FILE_UTIL_FLAGS"$ when used in calling program taking text flags.
 */
   CDirEntry *result;
@@ -219,7 +223,7 @@ See $LK,"ST_FILE_UTIL_FLAGS","MN:ST_FILE_UTIL_FLAGS"$ when used in calling progr
 
 Bool IsDir(U8 *dir_name)
 {
-  U8 *mask=MSPrintF("%s/*",dir_name);
+  U8 *mask=MPrint("%s/*",dir_name);
   Bool result,old_silent=Silent(ON);
   CFileAccess *fa;
   if (fa=FileAccessNew(mask)) {
@@ -359,9 +363,9 @@ U8 *TextFileRead(U8 *filename,I64 *_attr=NULL)
 }
 
 
-Bool FileFind(U8 *filename,CDirEntry *rde=NULL,I64 fuf_flags=0)
+Bool FileFind(U8 *filename,CDirEntry *_de=NULL,I64 fuf_flags=0)
 { //$LK,"FUF_JUST_DIRS","MN:FUF_JUST_DIRS"$, $LK,"FUF_JUST_FILES","MN:FUF_JUST_FILES"$, $LK,"FUF_Z_OR_NOT_Z","MN:FUF_Z_OR_NOT_Z"$, $LK,"FUF_SCAN_PARENTS","MN:FUF_SCAN_PARENTS"$
-  //If you pass rde, you must Free(rde->full_name);
+  //If you pass _de, you must Free(_de->full_name);
   I64 i,j,cur_dir_cluster;
   U8 *altname,*curname,*full_name=NULL;
   CDirEntry de;
@@ -395,8 +399,8 @@ Bool FileFind(U8 *filename,CDirEntry *rde=NULL,I64 fuf_flags=0)
 	default:
 	  PutDefineErr("ST_UNSUPPORTED_FILE_SYSTEM");
       }
-      if (result && rde)
-	full_name=MSPrintF("%C:%s/%s",Fs->cur_prt->drv_let,Fs->cur_dir,de.name);
+      if (result && _de)
+	full_name=MPrint("%C:%s/%s",Fs->cur_prt->drv_let,Fs->cur_dir,de.name);
       FileAccessDel(fa);
     }
   }
@@ -424,17 +428,17 @@ Bool FileFind(U8 *filename,CDirEntry *rde=NULL,I64 fuf_flags=0)
 	     PutDefineErr("ST_UNSUPPORTED_FILE_SYSTEM");
 	}
       }
-      if (result && rde)
-	full_name=MSPrintF("%C:%s/%s",Fs->cur_prt->drv_let,Fs->cur_dir,de.name);
+      if (result && _de)
+	full_name=MPrint("%C:%s/%s",Fs->cur_prt->drv_let,Fs->cur_dir,de.name);
       FileAccessDel(fa);
     }
   }
-  if (rde) {
+  if (_de) {
     if (result) {
-      MemCpy(rde,&de,sizeof(CDirEntry));
-      rde->full_name=full_name;
+      MemCpy(_de,&de,sizeof(CDirEntry));
+      _de->full_name=full_name;
     } else
-      MemSet(rde,0,sizeof(CDirEntry));
+      MemSet(_de,0,sizeof(CDirEntry));
   }
   Free(altname);
   return result;
@@ -458,15 +462,11 @@ I64 FileSizeExpanded(U8 *filename,I64 fuf_flags=0)
   if (FileFind(filename,&de,fuf_flags)) {
     p=Drv2Prt(*de.full_name);
     Free(de.full_name);
-    if (p->type==PT_REDSEA && de.expanded_size)
-      return de.expanded_size;
-    else {
-      if (de.size && FileAttr(de.name) & _ATTR_COMPRESSED) {
-	RBlks(p,buf,Cluster2Blk(p,de.cluster),1);
-	return (&buf)(CArcCompress *)->expanded_size;
-      } else
-	return de.size;
-    }
+    if (de.size && FileAttr(de.name) & _ATTR_COMPRESSED) {
+      RBlks(p,buf,Cluster2Blk(p,de.cluster),1);
+      return (&buf)(CArcCompress *)->expanded_size;
+    } else
+      return de.size;
   } else
     return 0;
 }
diff --git a/TempleOS/Kernel/Dsk/Dsk1c.CPP b/TempleOS/Kernel/Dsk/Dsk1c.CPP
index 0ac7cde..75ef4a3 100644
--- a/TempleOS/Kernel/Dsk/Dsk1c.CPP
+++ b/TempleOS/Kernel/Dsk/Dsk1c.CPP
@@ -30,8 +30,7 @@ Bool CopySingleZ(U8 *f1,U8 *f2) //Just one file
 Bool CopySingle(U8 *f1,U8 *f2) //Just one file
 {
   U8 *absf1=FileNameAbs(f1),*absf2=FileNameAbs(f2),*buf;
-  I64 cnt,n,size,attr1=FileAttr(f1),attr2=FileAttr(f2),
-      xsum=TEMPLEOS_XSUM,i,j;
+  I64 cnt,n,size,attr1=FileAttr(f1),attr2=FileAttr(f2),i,j;
   CFile *in_file=NULL,*out_file=NULL;
 
   if (!StrCmp(absf1,absf2)) { //onto self?
@@ -68,19 +67,13 @@ Bool CopySingle(U8 *f1,U8 *f2) //Just one file
 	  i=j;
 	}
 	FRBlks(in_file, buf,FFB_NEXT_BLK,n);
-	xsum^=ArcXSum(buf,i);
 	FWBlks(out_file,buf,FFB_NEXT_BLK,n);
 	cnt-=n;
 	j-=n<de.xsum &&
-	  in_file->de.xsum!=xsum)
-	throw(EXCEPT_ARC_XSUM);
-      out_file->de.xsum=xsum;
       out_file->flags|=FF_USE_OLD_DATETIME;
       out_file->de.datetime=in_file->de.datetime;
       out_file->de.size=size;
-      out_file->de.expanded_size=in_file->de.expanded_size;
       out_file->de.attr=FileAttr(f2,in_file->de.attr);
       FClose(out_file);
       FClose(in_file);
@@ -105,9 +98,7 @@ Bool MkDir(U8 *filename)
       if (!FileNameChk(fa->mask))
 	PutDefineErr("ST_INVALID_FILENAME");
       else {
-	"Make Directory:";
-	"" filename;
-	NewLine;
+	"Make Directory:%s\n",filename;
 	name=MStrUtil(fa->mask,
 	SUF_REM_LEADING|SUF_REM_TRAILING|SUF_REM_CTRL_CHARS);
 	switch (fa->p->type) {
@@ -214,8 +205,6 @@ U0 CDImageRead(U8 cd_drv_let,U8 *out_name)
       n=cnt;
     if (n>bdev->max_reads)
       n=bdev->max_reads;
-    if (!Bt(&sys_semas[SYS_SEMA_NO_IO_SND],0))
-      Snd(bdev->read_freq);
 
     retry=4;
     while (--retry)
@@ -227,8 +216,6 @@ U0 CDImageRead(U8 cd_drv_let,U8 *out_name)
     if (!retry)
       ATAPIReadBlks2(bdev,buf,blk/spc,n/spc,TRUE,0);
 
-    if (!Bt(&sys_semas[SYS_SEMA_NO_IO_SND],0))
-      Snd(0);
     FWBlks(f,buf,blk,n);
     cnt-=n;
     blk+=n;
@@ -273,8 +260,6 @@ U0 CDImageWriteTask(CDualBuf *d)
     while (d->in_buf>d->out_buf+1)
       Yield;
     FRBlks(f,buf,blk,n);
-    if (!Bt(&sys_semas[SYS_SEMA_NO_IO_SND],0))
-      Snd(d->CD_bdev->write_freq);
     d->in_buf++;
     cnt-=n;
     blk+=n;
@@ -334,8 +319,6 @@ U0 CDImageWrite(U8 cd_drv_let,U8 *in_name=NULL,I64 media_type=MT_CD)
   while (d->in_buf<=d->out_buf)
     Yield;
 
-  if (!Bt(&sys_semas[SYS_SEMA_NO_IO_SND],0))
-    Snd(bdev->write_freq);
   BlkDevLock(bdev);
   ATAPIWaitReady(bdev,0);
 
@@ -381,8 +364,6 @@ U0 CDImageWrite(U8 cd_drv_let,U8 *in_name=NULL,I64 media_type=MT_CD)
   *progress1_desc=0;
   progress1=progress1_max=0;
 
-  if (!Bt(&sys_semas[SYS_SEMA_NO_IO_SND],0))
-    Snd(0);
   bdev->flags&=~BDF_READ_ONLY_OVERRIDE;
   BlkDevUnlock(bdev);
   Free(d->buf0);
diff --git a/TempleOS/Kernel/Dsk/DskATA.CPP b/TempleOS/Kernel/Dsk/DskATA.CPP
index 8e7c61a..9a2cd0a 100644
--- a/TempleOS/Kernel/Dsk/DskATA.CPP
+++ b/TempleOS/Kernel/Dsk/DskATA.CPP
@@ -800,46 +800,46 @@ public I64 ATARep(Bool pmt=TRUE,Bool just_ide=FALSE,CATARep **_root=NULL)
   for (i=0;ibase0);
-	  SPrintF(base1_buf,"0x%X",tempha->base1);
+	  SPrint(base0_buf,"0x%X",tempha->base0);
+	  SPrint(base1_buf,"0x%X",tempha->base1);
 	  unit=tempha->unit;
 	} else {
 	  if (type==BDT_ATAPI)
@@ -287,9 +287,9 @@ Bool PmtBaseUnit(CBlkDev *bdev)
   "            TempleOS\n\n\n";
 #exe {
   if (kernel_cfg->opts[CFG_DONT_PROBE])
-    StreamPutS("probe=FALSE;");
+    StreamPrint("probe=FALSE;");
   else
-    StreamPutS("probe=TRUE;");
+    StreamPrint("probe=TRUE;");
 };
   if (!probe || !BootCdProbeAll(bdev)) {
     PutDefine("ST_CDROM_PORTS_PMT1");
@@ -320,13 +320,13 @@ U0 BlkDevsInitAll()
   sys_prts=CAlloc(sizeof(CPrt)*NUM_PRTS);
   for (i=0;iopts[CFG_AUTO_MOUNT_IDE])
-    StreamPutS("AutoMountIDE;");
-  StreamPutS("#exe {OptOff(OPTf_WARN_PAREN);}");
+    StreamPrint("AutoMountIDE;");
+  StreamPrint("#exe {OptOff(OPTf_WARN_PAREN);}");
   StreamDoc(kernel_cfg->add_dev);
-  StreamPutS("#exe {OptOn(OPTf_WARN_PAREN);}");
+  StreamPrint("#exe {OptOn(OPTf_WARN_PAREN);}");
 };
   PrtRep;
 }
diff --git a/TempleOS/Kernel/Dsk/DskCFile.CPP b/TempleOS/Kernel/Dsk/DskCFile.CPP
index 71d0997..6612360 100644
--- a/TempleOS/Kernel/Dsk/DskCFile.CPP
+++ b/TempleOS/Kernel/Dsk/DskCFile.CPP
@@ -8,6 +8,7 @@ I64 FSize(CFile *f)
 
 CFile *FOpen(U8 *filename,U8 *flags,I64 cnt=0)
 {  //allows flags "r","w","w+".  Include a "c" for contiguous.
+   //(It uses $LK,"StrOcc","MN:StrOcc"$() for 'w', 'r', '+', 'c')
   CFile *f=CAlloc(sizeof(CFile));
   CFileAccess *fa;
   U8 *full_name;
@@ -48,10 +49,10 @@ CFile *FOpen(U8 *filename,U8 *flags,I64 cnt=0)
     if (fa=FileAccessNew(full_name)) {
       StrCpy(f->de.name,fa->mask);
       if (cnt>0) { //We pre-alloc the whole thing.
-	f->de.cluster=ClusersAlloc(f->p,0,
+	f->de.cluster=ClustersAlloc(f->p,0,
 	  (cnt+f->p->spc-1)/f->p->spc,contiguous);
-	f->de.expanded_size=f->de.size=cnt<p,Fs->cur_dir,&f->de,TRUE);
+	f->de.size=cnt<p,Fs->cur_dir,&f->de,TRUE);
 	f->flags&=~FF_NEW_FILE;
       }
       FileAccessDel(fa);
@@ -82,11 +83,11 @@ U0 FClose(CFile *f)
     if (f->flags & FF_NEEDS_WRITE) {
       if (fa=FileAccessNew(f->de.full_name)) {
 	if (!(f->flags & FF_USE_OLD_DATETIME))
-	  f->de.datetime=GetCurTimeDate;
+	  f->de.datetime=GetDateTime;
 	if (f->flags & FF_NEW_FILE)
-	  CDirNew(fa->p,Fs->cur_dir,&f->de,TRUE);
+	  DirNew(fa->p,Fs->cur_dir,&f->de,TRUE);
 	else
-	  CDirNew(fa->p,Fs->cur_dir,&f->de,FALSE);
+	  DirNew(fa->p,Fs->cur_dir,&f->de,FALSE);
 	FileAccessDel(fa);
       } else
 	throw(EXCEPT_FILE,1);
@@ -196,7 +197,7 @@ Bool FWBlks(CFile *f,U8 *buf,I64 blk=FFB_NEXT_BLK,I64 cnt=1)
     blk+=cnt;
   } else {
     if (!c) {
-      c=ClusersAlloc(p,0,1,FALSE);
+      c=ClustersAlloc(p,0,1,FALSE);
       f->file_cluster_num=0;
       f->cluster=c;
       f->de.cluster=c;
@@ -211,7 +212,7 @@ Bool FWBlks(CFile *f,U8 *buf,I64 blk=FFB_NEXT_BLK,I64 cnt=1)
       c1=c;
       c=ClusterNumNext(p,c1,1);
       if (c==INVALID_CLUSTER) {
-	c=ClusersAlloc(p,c1,i,FALSE);
+	c=ClustersAlloc(p,c1,i,FALSE);
 	if (i>1)
 	  c=ClusterNumNext(p,c,i-1);
 	break;
@@ -234,7 +235,7 @@ Bool FWBlks(CFile *f,U8 *buf,I64 blk=FFB_NEXT_BLK,I64 cnt=1)
 	c1=c;
 	c=ClusterNumNext(p,c1,1);
 	if (c==INVALID_CLUSTER)
-	  c=ClusersAlloc(p,c1,1,FALSE);
+	  c=ClustersAlloc(p,c1,1,FALSE);
       }
     }
     while (cnt>=spc) {
@@ -248,7 +249,7 @@ Bool FWBlks(CFile *f,U8 *buf,I64 blk=FFB_NEXT_BLK,I64 cnt=1)
 	c1=c;
 	c=ClusterNumNext(p,c1,1);
 	if (c==INVALID_CLUSTER)
-	  c=ClusersAlloc(p,c1,1,FALSE);
+	  c=ClustersAlloc(p,c1,1,FALSE);
       }
     }
     if (cnt>0) {
@@ -260,8 +261,6 @@ Bool FWBlks(CFile *f,U8 *buf,I64 blk=FFB_NEXT_BLK,I64 cnt=1)
     }
     if (f->de.sizede.size=blk<de.expanded_sizede.expanded_size=blk<fblk_num=blk;
   return TRUE;
diff --git a/TempleOS/Kernel/Dsk/DskDir.CPP b/TempleOS/Kernel/Dsk/DskDir.CPP
index ed6d22b..2317d98 100644
--- a/TempleOS/Kernel/Dsk/DskDir.CPP
+++ b/TempleOS/Kernel/Dsk/DskDir.CPP
@@ -1,10 +1,10 @@
-Bool CDirNew(CPrt *p,U8 *cur_dir,CDirEntry *tempm,Bool free_old_chain=TRUE)
+Bool DirNew(CPrt *p,U8 *cur_dir,CDirEntry *tempde,Bool free_old_chain=TRUE)
 {
   switch (p->type) {
     case PT_REDSEA:
-      return RedSeaFSDirNew(p,cur_dir,tempm,free_old_chain);
+      return RedSeaFSDirNew(p,cur_dir,tempde,free_old_chain);
     case PT_FAT32:
-      return FAT32DirNew(p,cur_dir,tempm,free_old_chain);
+      return FAT32DirNew(p,cur_dir,tempde,free_old_chain);
     case PT_ISO9660:
       PutDefineErr("ST_NOT_WRITABLE");
       return FALSE;
@@ -14,48 +14,48 @@ Bool CDirNew(CPrt *p,U8 *cur_dir,CDirEntry *tempm,Bool free_old_chain=TRUE)
   }
 }
 
-U0 CDirEntryDel(CDirEntry *tempm)
+U0 DirEntryDel(CDirEntry *tempde)
 { //Doesn't Free user_data
-  if (tempm) {
-    Free(tempm->full_name);
-    Free(tempm);
+  if (tempde) {
+    Free(tempde->full_name);
+    Free(tempde);
   }
 }
 
-U0 CDirEntryDel2(CDirEntry *tempm)
+U0 DirEntryDel2(CDirEntry *tempde)
 { //Frees user_data
-  if (tempm) {
-    Free(tempm->full_name);
-    Free(tempm->user_data);
-    Free(tempm);
+  if (tempde) {
+    Free(tempde->full_name);
+    Free(tempde->user_data);
+    Free(tempde);
   }
 }
 
-U0 CDirLstDel(CDirEntry *tempm)
+U0 DirLstDel(CDirEntry *tempde)
 { //Doesn't Free user_data
-  CDirEntry *tempm2;
-  while (tempm) {
-    tempm2=tempm->next;
-    if (tempm->sub)
-      CDirLstDel(tempm->sub);
-    CDirEntryDel(tempm);
-    tempm=tempm2;
+  CDirEntry *tempde2;
+  while (tempde) {
+    tempde2=tempde->next;
+    if (tempde->sub)
+      DirLstDel(tempde->sub);
+    DirEntryDel(tempde);
+    tempde=tempde2;
   }
 }
 
-U0 CDirLstDel2(CDirEntry *tempm)
+U0 DirLstDel2(CDirEntry *tempde)
 { //Frees user_data
-  CDirEntry *tempm2;
-  while (tempm) {
-    tempm2=tempm->next;
-    if (tempm->sub)
-      CDirLstDel2(tempm->sub);
-    CDirEntryDel2(tempm);
-    tempm=tempm2;
+  CDirEntry *tempde2;
+  while (tempde) {
+    tempde2=tempde->next;
+    if (tempde->sub)
+      DirLstDel2(tempde->sub);
+    DirEntryDel2(tempde);
+    tempde=tempde2;
   }
 }
 
-I64 CDirEntryCompare(CDirEntry *e1,CDirEntry *e2)
+I64 DirEntryCompare(CDirEntry *e1,CDirEntry *e2)
 {
   U8 buf1[CDIR_FILENAME_LEN],buf2[CDIR_FILENAME_LEN],
      buf3[CDIR_FILENAME_LEN],buf4[CDIR_FILENAME_LEN];
@@ -77,67 +77,67 @@ I64 CDirEntryCompare(CDirEntry *e1,CDirEntry *e2)
   }
 }
 
-U0 CDirFilesSort(CDirEntry **_tempm)
+U0 DirFilesSort(CDirEntry **_tempde)
 {
   I64 i,cnt=0;
-  CDirEntry *tempm=*_tempm,*tempm1,**sort_buf;
-  if (tempm) {
-    tempm1=tempm;
-    while (tempm1) {
+  CDirEntry *tempde=*_tempde,*tempde1,**sort_buf;
+  if (tempde) {
+    tempde1=tempde;
+    while (tempde1) {
       cnt++;
-      tempm1=tempm1->next;
+      tempde1=tempde1->next;
     }
     if (cnt>1) {
       sort_buf=MAlloc(cnt*sizeof(U8 *));
       i=0;
-      tempm1=tempm;
-      while (tempm1) {
-	sort_buf[i++]=tempm1;
-	tempm1=tempm1->next;
+      tempde1=tempde;
+      while (tempde1) {
+	sort_buf[i++]=tempde1;
+	tempde1=tempde1->next;
       }
-      QSortI64(sort_buf,cnt,&CDirEntryCompare);
-      tempm=sort_buf[0];
-      *_tempm=tempm;
+      QSortI64(sort_buf,cnt,&DirEntryCompare);
+      tempde=sort_buf[0];
+      *_tempde=tempde;
       for (i=0;inext=sort_buf[i+1];
+	tempde1=sort_buf[i];
+	tempde1->next=sort_buf[i+1];
       }
-      tempm1=sort_buf[i];
-      tempm1->next=NULL;
+      tempde1=sort_buf[i];
+      tempde1->next=NULL;
       Free(sort_buf);
 
-      tempm1=tempm;
-      while (tempm1) {
-	if (tempm1->sub)
-	  CDirFilesSort(&tempm1->sub);
-	tempm1=tempm1->next;
+      tempde1=tempde;
+      while (tempde1) {
+	if (tempde1->sub)
+	  DirFilesSort(&tempde1->sub);
+	tempde1=tempde1->next;
       }
     } else
-      if (tempm->sub)
-	CDirFilesSort(&tempm->sub);
+      if (tempde->sub)
+	DirFilesSort(&tempde->sub);
   }
 }
 
-CDirEntry *CDirFilesFlatten(CDirEntry *tempm,CDirEntry **_result,I64 fuf_flags)
+CDirEntry *DirFilesFlatten(CDirEntry *tempde,CDirEntry **_result,I64 fuf_flags)
 { //returns last node
-  CDirEntry *tempm1;
+  CDirEntry *tempde1;
   Bool del;
-  if (tempm)
+  if (tempde)
     while (TRUE) {
-      tempm1=tempm->next;
-      if (!(tempm->attr&_ATTR_DIR)||!(fuf_flags&FUF_JUST_FILES)) {
-	_result=*_result=tempm;
+      tempde1=tempde->next;
+      if (!(tempde->attr&_ATTR_DIR)||!(fuf_flags&FUF_JUST_FILES)) {
+	_result=*_result=tempde;
 	del=FALSE;
       } else
 	del=TRUE;
-      if (tempm->sub) {
-	_result=CDirFilesFlatten(tempm->sub,_result,fuf_flags);
-	tempm->sub=NULL;
+      if (tempde->sub) {
+	_result=DirFilesFlatten(tempde->sub,_result,fuf_flags);
+	tempde->sub=NULL;
       }
       if (del)
-	CDirEntryDel(tempm);
-      if (tempm1)
-	tempm=tempm1;
+	DirEntryDel(tempde);
+      if (tempde1)
+	tempde=tempde1;
       else
 	break;
     }
@@ -165,9 +165,9 @@ CDirEntry *SysFilesFind(U8 *files_find_mask,I64 fuf_flags)
       result=NULL;
   }
   if (result) {
-    CDirFilesSort(&result);
+    DirFilesSort(&result);
     if (fuf_flags&(FUF_FLATTEN_TREE|FUF_JUST_FILES))
-      CDirFilesFlatten(result,&result,fuf_flags);
+      DirFilesFlatten(result,&result,fuf_flags);
   }
   return result;
 }
@@ -180,7 +180,7 @@ U0 PutFileLink(U8 *filename,I64 line=0,Bool plain_text=FALSE)
     if (line)
       "%s,%04d",filename,line;
     else
-      "" filename;
+      "%s",filename;
   } else {
     buf=FileNameAbs(filename);
     if (plain_text) {
@@ -203,7 +203,7 @@ U0 PutDirLink(U8 *dirname)
   U8 *buf;
   if (!dirname) return;
   if (IsRaw)
-    "" dirname;
+    "%s",dirname;
   else {
     buf=DirNameAbs(dirname);
     "$$MA+A,\"%s\",\"Cd(\\\"%s\\\");Dir;\n\"$$",dirname,buf;
@@ -213,53 +213,49 @@ U0 PutDirLink(U8 *dirname)
 
 U0 Dir2(U8 *files_find_mask,I64 fuf_flags,Bool full)
 {
-  CDirEntry *tempm1=NULL,*tempm2;
+  CDirEntry *tempde1=NULL,*tempde2;
   U8 *st;
-  I64 csize=0xFFFF,esize=0xFFFF,c=0xFFFF;
-  tempm1=SysFilesFind(files_find_mask,fuf_flags);
+  I64 csize=0xFFFF,c=0xFFFF;
+  tempde1=SysFilesFind(files_find_mask,fuf_flags);
 
   if (!(st=CurDir))
     PutDefine("ST_INVALID_DRV");
   else {
-    if (tempm1) {
+    if (tempde1) {
       //Find max columns
-      tempm2=tempm1;
-      while (tempm2) {
-	if (tempm2->size>csize)
-	  csize=tempm2->size;
-	if (tempm2->expanded_size>esize)
-	  esize=tempm2->expanded_size;
-	if (tempm2->cluster>c)
-	  c=tempm2->cluster;
-	tempm2=tempm2->next;
+      tempde2=tempde1;
+      while (tempde2) {
+	if (tempde2->size>csize)
+	  csize=tempde2->size;
+	if (tempde2->cluster>c)
+	  c=tempde2->cluster;
+	tempde2=tempde2->next;
       }
       csize=Bsr(csize)/4+1;
-      esize=Bsr(esize)/4+1;
       c=Bsr(c)/4+1;
 
       "$$MA+A,\"Directory\",\"PopUpCd;Dir;\n\"$$ of %s\n",st;
       if (full)
-	"__DATE__ __TIME__ %*ts %*ts %*ts\n",
-	csize,"SIZE",esize,"UNCMPSIZE",c,"CLUSTER";
+	"__DATE__ __TIME__ %*ts %*ts\n",
+	csize,"SIZE",c,"CLUSTER";
       else
 	"DATE_ TIME_ %*ts\n",csize,"SIZE";
-      while (tempm1) {
-	tempm2=tempm1->next;
+      while (tempde1) {
+	tempde2=tempde1->next;
 	if (full)
-	  "%D %T %0*tX %0*tX %0*tX ",tempm1->datetime,tempm1->datetime,
-	    csize,tempm1->size,esize,tempm1->expanded_size,
-	    c, tempm1->cluster;
+	  "%D %T %0*tX %0*tX ",tempde1->datetime,tempde1->datetime,
+	    csize,tempde1->size,c,tempde1->cluster;
 	else
-	  "%h1D %h1T %0*tX ",tempm1->datetime,tempm1->datetime,
-	    csize,tempm1->size;
-	if (tempm1->attr & _ATTR_DIR)
-	  PutDirLink(tempm1->name);
+	  "%h1D %h1T %0*tX ",tempde1->datetime,tempde1->datetime,
+	    csize,tempde1->size;
+	if (tempde1->attr & _ATTR_DIR)
+	  PutDirLink(tempde1->name);
 	else
-	  PutFileLink(tempm1->name);
+	  PutFileLink(tempde1->name);
 
 	NewLine;
-	CDirEntryDel(tempm1);
-	tempm1=tempm2;
+	DirEntryDel(tempde1);
+	tempde1=tempde2;
       }
     } else
       PutDefine("ST_NO_MATCHING_ENTRIES");
diff --git a/TempleOS/Kernel/Dsk/DskStr.CPP b/TempleOS/Kernel/Dsk/DskStr.CPP
index 546922d..6855721 100644
--- a/TempleOS/Kernel/Dsk/DskStr.CPP
+++ b/TempleOS/Kernel/Dsk/DskStr.CPP
@@ -37,7 +37,7 @@ Bool IsDotC(U8 *filename)
     return FALSE;
 }
 
-Bool FilesFindMatch(U8 *files_find_mask,U8 *filename,I64 fuf_flags=0)
+Bool FilesFindMatch(U8 *pattern,U8 *files_find_mask,I64 fuf_flags=0)
 {
   U8 *st1=StrNew(files_find_mask),
      *st2=MAlloc(StrLen(files_find_mask)+1);
@@ -46,25 +46,25 @@ Bool FilesFindMatch(U8 *files_find_mask,U8 *filename,I64 fuf_flags=0)
     StrFirstRem(st1,";",st2);
     if (*st2) {
       if (*st2=='~') {
-	if (WildCardMatch(st2+1,filename)) {
+	if (WildMatch(pattern,st2+1)) {
 	  result=FALSE;
 	  break;
 	}
       } else {
-	if (WildCardMatch(st2,filename)) {
-	  if (Bt(&fuf_flags,FUf_JUST_TXT_FILES) && !FilesFindMatch(FILENAME_MASK_TXT,filename)) {
+	if (WildMatch(pattern,st2)) {
+	  if (Bt(&fuf_flags,FUf_JUST_TXT) && !FilesFindMatch(pattern,FILEMASK_TXT)) {
 	    result=FALSE;
 	    break;
-	  } else if (Bt(&fuf_flags,FUf_JUST_SRC_FILES) && !FilesFindMatch(FILENAME_MASK_SRC,filename)) {
+	  } else if (Bt(&fuf_flags,FUf_JUST_SRC) && !FilesFindMatch(pattern,FILEMASK_SRC)) {
 	    result=FALSE;
 	    break;
-	  } else if (Bt(&fuf_flags,FUf_JUST_AOT_FILES) && !FilesFindMatch(FILENAME_MASK_AOT,filename)) {
+	  } else if (Bt(&fuf_flags,FUf_JUST_AOT) && !FilesFindMatch(pattern,FILEMASK_AOT)) {
 	    result=FALSE;
 	    break;
-	  } else if (Bt(&fuf_flags,FUf_JUST_JIT_FILES) && !FilesFindMatch(FILENAME_MASK_JIT,filename)) {
+	  } else if (Bt(&fuf_flags,FUf_JUST_JIT) && !FilesFindMatch(pattern,FILEMASK_JIT)) {
 	    result=FALSE;
 	    break;
-	  } else if (Bt(&fuf_flags,FUf_JUST_GRA_FILES) && !FilesFindMatch(FILENAME_MASK_GRA,filename)) {
+	  } else if (Bt(&fuf_flags,FUf_JUST_GRA) && !FilesFindMatch(pattern,FILEMASK_GRA)) {
 	    result=FALSE;
 	    break;
 	  } else
@@ -246,7 +246,7 @@ U8 *FileNameAbs(U8 *_filename,I64 fuf_flags=0)
 }
 
 U8 *ChgExt(U8 *filename,U8 *extension)
-{//Change file name extension
+{//Change filename extension
   U8 *result=MAlloc(StrLen(filename)+1+StrLen(extension)+1);
   StrCpy(result,filename);
   if (FileExtDot(filename))
@@ -267,19 +267,19 @@ U8 *DftExt(U8 *filename,U8 *extension)
   return result;
 }
 
-CDirEntry *Cd2DirEntry(CDirEntry *tempm,U8 *abs_name)
+CDirEntry *Cd2DirEntry(CDirEntry *tempde,U8 *abs_name)
 {
   I64 i;
-  while (tempm) {
-    i=StrLen(tempm->full_name);
-    if (StrNCmp(tempm->full_name,abs_name,i)||
-      i && tempm->full_name[i-1]!='/' && abs_name[i] && abs_name[i]!='/')
-      tempm=tempm->next;
+  while (tempde) {
+    i=StrLen(tempde->full_name);
+    if (StrNCmp(tempde->full_name,abs_name,i)||
+      i && tempde->full_name[i-1]!='/' && abs_name[i] && abs_name[i]!='/')
+      tempde=tempde->next;
     else
       if (StrLen(abs_name)==i)
-	return tempm;
+	return tempde;
       else
-	return Cd2DirEntry(tempm->sub,abs_name);
+	return Cd2DirEntry(tempde->sub,abs_name);
   }
   return NULL;
 }
@@ -325,7 +325,7 @@ Strips file from dirname, scans for file upward until found or returns default.
     if (*_extension=='.')
       ext=StrNew(_extension);
     else
-      ext=MSPrintF(".%s",_extension);
+      ext=MPrint(".%s",_extension);
   } else
     ext=StrNew("");
   while (StrOcc(st,'/')&&!IsDir(st))
@@ -336,10 +336,10 @@ Strips file from dirname, scans for file upward until found or returns default.
     StrLastRem(st2,"/",st3);
  
     if (name)
-      result=MSPrintF("%s/%s%s",st,name,ext);
+      result=MPrint("%s/%s%s",st,name,ext);
     else {
       if (*ext)
-	result=MSPrintF("%s/%s%s",st,st3,ext);
+	result=MPrint("%s/%s%s",st,st3,ext);
       else
 	result=StrNew(st);
     }
@@ -369,6 +369,6 @@ U8 *ToggleZorNotZ(U8 *name)
     result=StrNew(name);
     result[StrLen(name)-2]=0;
   } else
-    result=MSPrintF("%s.Z",name);
+    result=MPrint("%s.Z",name);
   return result;
 }
diff --git a/TempleOS/Kernel/Dsk/FileSysFAT.CPP b/TempleOS/Kernel/Dsk/FileSysFAT.CPP
index 07c3eba..03110b3 100644
--- a/TempleOS/Kernel/Dsk/FileSysFAT.CPP
+++ b/TempleOS/Kernel/Dsk/FileSysFAT.CPP
@@ -95,7 +95,7 @@ U0 FAT32Fmt(U8 drv_let,Bool quick=TRUE)
     br->copies_of_fat=2;
     br->media_desc=0xF8;
     br->sects=p->size;
-    l=br->sects/br->sects_per_cluster/(BLK_SIZE/4)+1;
+    l=(br->sects/br->sects_per_cluster)>>(BLK_SIZE_BITS-2)+1;
     br->sects_per_fat=l;
     br->root_cluster=2;
     br->file_system_info_sect=1;
@@ -120,8 +120,8 @@ U0 FAT32Fmt(U8 drv_let,Bool quick=TRUE)
     WBlks(p,fis,p->offset+br->file_system_info_sect,1);
     WBlks(p,br,p->offset,1);
     FAT32PrtInit(p);
-    ClusersAlloc(p,0,1,FALSE); //Allocate #1
-    br->root_cluster=ClusersAlloc(p,0,1,FALSE);
+    ClustersAlloc(p,0,1,FALSE); //Allocate #1
+    br->root_cluster=ClustersAlloc(p,0,1,FALSE);
     WBlks(p,br,p->offset,1);
     FAT32PrtInit(p);
     PrtUnlock(p);
@@ -201,27 +201,27 @@ U8 fat_long_name_map[13]={
   offset(CFAT32DirEntryLong.name3)+2
 };
 
-Bool CDirLongNameFill(CDirEntry *tempm,CFAT32DirEntryLong *de,I64 *xsum)
+Bool DirLongNameFill(CDirEntry *tempde,CFAT32DirEntryLong *de,I64 *xsum)
 {
   I64 i;
   U8 *ptr=de;
   if (de->ord&0x40) {
-    MemSet(tempm,0,sizeof(CDirEntry));
+    MemSet(tempde,0,sizeof(CDirEntry));
     *xsum=de->xsum;
   } else if (de->type || de->zero || de->xsum!=*xsum) {
-    MemSet(tempm,0,sizeof(CDirEntry));
+    MemSet(tempde,0,sizeof(CDirEntry));
     *xsum=0;
     return FALSE;
   }
   switch (de->ord&0x3F) {
     case 1:
       for (i=0;i<13;i++)
-	if (!(tempm->name[i]=ptr[fat_long_name_map[i]]))
+	if (!(tempde->name[i]=ptr[fat_long_name_map[i]]))
 	  return TRUE;
       break;
     case 2:
       for (i=0;i<12;i++)
-	if (!(tempm->name[i+13]=ptr[fat_long_name_map[i]]))
+	if (!(tempde->name[i+13]=ptr[fat_long_name_map[i]]))
 	  return TRUE;
       break;
   }
@@ -229,21 +229,21 @@ Bool CDirLongNameFill(CDirEntry *tempm,CFAT32DirEntryLong *de,I64 *xsum)
 }
 
 
-Bool FAT32CDirFill(CDirEntry *tempm,CFAT32DirEntry *de)
+Bool FAT32CDirFill(CDirEntry *tempde,CFAT32DirEntry *de)
 {
   Bool result;
-  if (*tempm->name)
+  if (*tempde->name)
     result=TRUE;
   else
-    result=FATFromName(tempm->name,de->name);
-  tempm->cluster=de->cluster_lo+de->cluster_hi<<16;
-  tempm->size=de->size;
-  tempm->attr=de->attr;
-  tempm->datetime=Dos2CDate(de->WrtTime,de->WrtDate);
+    result=FATFromName(tempde->name,de->name);
+  tempde->cluster=de->cluster_lo+de->cluster_hi<<16;
+  tempde->size=de->size;
+  tempde->attr=de->attr;
+  tempde->datetime=Dos2CDate(de->WrtTime,de->WrtDate);
   return result;
 }
 
-Bool FAT32DirFill(CFAT32DirEntry *de,CDirEntry *tempm,I64 *_de_cnt=NULL)
+Bool FAT32DirFill(CFAT32DirEntry *de,CDirEntry *tempde,I64 *_de_cnt=NULL)
 { //Fill up to 3 entries and store cnt of entries.
   I64 de_cnt=0,i,l,xsum,ord;
   U8 *ptr,dname[16];
@@ -251,19 +251,19 @@ Bool FAT32DirFill(CFAT32DirEntry *de,CDirEntry *tempm,I64 *_de_cnt=NULL)
   Bool result;
 
   MemSet(de,0,sizeof(CFAT32DirEntry));
-  result=FATNameTo(de->name,tempm->name);
+  result=FATNameTo(de->name,tempde->name);
   FATFromName(dname,de->name);
-  if (StrCmp(dname,tempm->name)) {
+  if (StrCmp(dname,tempde->name)) {
     ord=0x41;
     xsum=FATNameXSum(de->name);
-    if ((l=StrLen(tempm->name))>13) {
+    if ((l=StrLen(tempde->name))>13) {
       ptr=&ld[de_cnt];
       MemSet(ptr,0,sizeof(CFAT32DirEntryLong));
       ld[de_cnt].attr=_ATTR_LONG_NAME;
       ld[de_cnt].xsum=xsum;
       ld[de_cnt].ord=0x42;
       for (i=13;iname[i];
+	ptr[fat_long_name_map[i-13]]=tempde->name[i];
       i++;
       for (;i<26;i++)
 	ptr[fat_long_name_map[i-13]](U16)=0xFFFF;
@@ -277,22 +277,22 @@ Bool FAT32DirFill(CFAT32DirEntry *de,CDirEntry *tempm,I64 *_de_cnt=NULL)
     ld[de_cnt].xsum=xsum;
     ld[de_cnt].ord=ord;
     for (i=0;iname[i];
+      ptr[fat_long_name_map[i]]=tempde->name[i];
     i++;
     for (;i<13;i++)
       ptr[fat_long_name_map[i]](U16)=0xFFFF;
     de_cnt++;
     MemSet(&de[de_cnt],0,sizeof(CFAT32DirEntry));
-    result=FATNameTo(de[de_cnt].name,tempm->name);
+    result=FATNameTo(de[de_cnt].name,tempde->name);
   }
-  de[de_cnt].cluster_lo=tempm->cluster.u16[0];
-  de[de_cnt].cluster_hi=tempm->cluster.u16[1];
-  if (!(tempm->attr&_ATTR_DIR))
-    de[de_cnt].size=tempm->size;
-  de[de_cnt].attr=tempm->attr;
-  if (!tempm->datetime)
-    tempm->datetime=GetCurTimeDate;
-  CDate2Dos(&de[de_cnt].WrtTime,&de[de_cnt].WrtDate,tempm->datetime);
+  de[de_cnt].cluster_lo=tempde->cluster.u16[0];
+  de[de_cnt].cluster_hi=tempde->cluster.u16[1];
+  if (!(tempde->attr&_ATTR_DIR))
+    de[de_cnt].size=tempde->size;
+  de[de_cnt].attr=tempde->attr;
+  if (!tempde->datetime)
+    tempde->datetime=GetDateTime;
+  CDate2Dos(&de[de_cnt].WrtTime,&de[de_cnt].WrtDate,tempde->datetime);
   if (_de_cnt)
     *_de_cnt=de_cnt+1;
   return result;
@@ -319,14 +319,14 @@ Bool FAT32FileFind(CPrt *p,I64 cur_dir_cluster,U8 *name,CDirEntry *_result,I64 f
     try {
       unlock=PrtLock(p);
       buf=MAlloc(BLK_SIZE*p->spc);
-      entries_per_cluster=FAT32_ENTRIES_PER_BLK*p->spc;
+      entries_per_cluster=p->spc<spc);
     last_buf=CAlloc(BLK_SIZE*p->spc);
-    entries_per_cluster=FAT32_ENTRIES_PER_BLK*p->spc;
+    entries_per_cluster=p->spc<data+cur_dir_cluster*p->spc
-	      +cur_dir_entry/FAT32_ENTRIES_PER_BLK,1);
+	      +cur_dir_entry>>FAT32_ENTRIES_BITS,1);
 	  cur_dir_entry+=de_cnt-1; //gets inc'ed
 	  written=TRUE;
 	} else if (ch!=0xE5 && !(attr&_ATTR_VOL_ID)) {
@@ -647,7 +647,7 @@ Bool FAT32DirNew(CPrt *p,U8 *cur_dir,CDirEntry *tempm,Bool free_old_chain)
 	  if (!*long_name.name)
 	    FATFromName(long_name.name,buf[cur_dir_entry].name);
 	    //Del old entry with same name
-	  if (!StrCmp(long_name.name,tempm->name)) {
+	  if (!StrCmp(long_name.name,tempde->name)) {
 	    if (free_old_chain)
 	      FAT32FreeClusters(p,buf[cur_dir_entry].cluster_lo+
 		  buf[cur_dir_entry].cluster_hi<<16);
@@ -655,7 +655,7 @@ Bool FAT32DirNew(CPrt *p,U8 *cur_dir,CDirEntry *tempm,Bool free_old_chain)
 	      MemCpy(&buf[cur_dir_entry],&de[de_cnt-1],sizeof(CFAT32DirEntry));
 	      WBlks(p,&buf[cur_dir_entry & -FAT32_ENTRIES_PER_BLK],
 		  p->data+cur_dir_cluster*p->spc
-		  +cur_dir_entry/FAT32_ENTRIES_PER_BLK,1);
+		  +cur_dir_entry>>FAT32_ENTRIES_BITS,1);
 	      written=TRUE;
 	    } else {
 	      *buf[cur_dir_entry].name=0xE5;
@@ -666,8 +666,8 @@ Bool FAT32DirNew(CPrt *p,U8 *cur_dir,CDirEntry *tempm,Bool free_old_chain)
 	      i--;
 	      WBlks(p,&buf[(cur_dir_entry-i)&-FAT32_ENTRIES_PER_BLK],
 		  p->data+cur_dir_cluster*p->spc
-		  +(cur_dir_entry-i)/FAT32_ENTRIES_PER_BLK,
-		  (i+FAT32_ENTRIES_PER_BLK)/FAT32_ENTRIES_PER_BLK);
+		  +(cur_dir_entry-i)>>FAT32_ENTRIES_BITS,
+		  (i+FAT32_ENTRIES_PER_BLK)>>FAT32_ENTRIES_BITS);
 	      if (i==cur_dir_entry && 00)
 		  WBlks(p,&buf[(entries_per_cluster-i)&-FAT32_ENTRIES_PER_BLK],
 		      p->data+last_dir_cluster*p->spc
-		      +(entries_per_cluster-i)/FAT32_ENTRIES_PER_BLK,
-		      (i+FAT32_ENTRIES_PER_BLK-1)/FAT32_ENTRIES_PER_BLK);
+		      +(entries_per_cluster-i)>>FAT32_ENTRIES_BITS,
+		      (i+FAT32_ENTRIES_PER_BLK-1)>>FAT32_ENTRIES_BITS);
 	      }
 	    }
 	    break;
@@ -690,7 +690,7 @@ Bool FAT32DirNew(CPrt *p,U8 *cur_dir,CDirEntry *tempm,Bool free_old_chain)
 	temp_buf=buf; buf=last_buf; last_buf=temp_buf;
 	c=ClusterNumNext(p,cur_dir_cluster);
 	if (!(0spc);
 	  WClusters(p,buf,c,1);
 	} else
@@ -706,12 +706,12 @@ Bool FAT32DirNew(CPrt *p,U8 *cur_dir,CDirEntry *tempm,Bool free_old_chain)
 	  *buf[cur_dir_entry+i].name=0xE5;
 	WBlks(p,&buf[cur_dir_entry &-FAT32_ENTRIES_PER_BLK],
 	    p->data+cur_dir_cluster*p->spc
-	    +cur_dir_entry/FAT32_ENTRIES_PER_BLK,1);
+	    +cur_dir_entry>>FAT32_ENTRIES_BITS,1);
 	cur_dir_entry+=avail_cnt;
 	if (cur_dir_entry==entries_per_cluster) {
 	  last_dir_cluster=cur_dir_cluster;
 	  temp_buf=buf; buf=last_buf; last_buf=temp_buf;
-	  cur_dir_cluster=ClusersAlloc(p,cur_dir_cluster,1);
+	  cur_dir_cluster=ClustersAlloc(p,cur_dir_cluster,1);
 	  cur_dir_entry=0;
 	  MemSet(buf,0,BLK_SIZE*p->spc);
 	  WClusters(p,buf,cur_dir_cluster,1);
@@ -720,17 +720,17 @@ Bool FAT32DirNew(CPrt *p,U8 *cur_dir,CDirEntry *tempm,Bool free_old_chain)
       MemCpy(&buf[cur_dir_entry],&de,de_cnt*sizeof(CFAT32DirEntry));
       WBlks(p,&buf[cur_dir_entry &-FAT32_ENTRIES_PER_BLK],
 	  p->data+cur_dir_cluster*p->spc+
-	  cur_dir_entry/FAT32_ENTRIES_PER_BLK,1);
+	  cur_dir_entry>>FAT32_ENTRIES_BITS,1);
       cur_dir_entry+=de_cnt;
       if (cur_dir_entry==entries_per_cluster) {
-	cur_dir_cluster=ClusersAlloc(p,cur_dir_cluster,1);
+	cur_dir_cluster=ClustersAlloc(p,cur_dir_cluster,1);
 	MemSet(buf,0,BLK_SIZE*p->spc);
 	WClusters(p,buf,cur_dir_cluster,1);
       } else {
 	MemSet(&buf[cur_dir_entry],0,sizeof(CFAT32DirEntry));
 	WBlks(p,&buf[cur_dir_entry &-FAT32_ENTRIES_PER_BLK],
 	    p->data+cur_dir_cluster*p->spc
-	    +cur_dir_entry/FAT32_ENTRIES_PER_BLK,1);
+	    +cur_dir_entry>>FAT32_ENTRIES_BITS,1);
       }
     }
     Free(last_buf);
@@ -764,14 +764,14 @@ I64 FAT32FilesDel(CPrt *p,U8 *cur_dir,U8 *files_find_mask,I64 fuf_flags,
     cur_dir_cluster=Name2DirCluster(p,cur_dir);
     buf     =MAlloc(BLK_SIZE*p->spc);
     last_buf=CAlloc(BLK_SIZE*p->spc);
-    entries_per_cluster=FAT32_ENTRIES_PER_BLK*p->spc;
+    entries_per_cluster=p->spc<data+cur_dir_cluster*p->spc
-	      +(cur_dir_entry-i)/FAT32_ENTRIES_PER_BLK,
-	      (i+FAT32_ENTRIES_PER_BLK)/FAT32_ENTRIES_PER_BLK);
+	      +(cur_dir_entry-i)>>FAT32_ENTRIES_BITS,
+	      (i+FAT32_ENTRIES_PER_BLK)>>FAT32_ENTRIES_BITS);
 	      if (i==cur_dir_entry && last_dir_cluster!=INVALID_CLUSTER) {
 		i=1;
 		while (i<=entries_per_cluster &&
@@ -804,8 +804,8 @@ I64 FAT32FilesDel(CPrt *p,U8 *cur_dir,U8 *files_find_mask,I64 fuf_flags,
 		if (--i>0)
 		  WBlks(p,&buf[(entries_per_cluster-i)&-FAT32_ENTRIES_PER_BLK],
 		  p->data+last_dir_cluster*p->spc
-		  +(entries_per_cluster-i)/FAT32_ENTRIES_PER_BLK,
-		  (i+FAT32_ENTRIES_PER_BLK-1)/FAT32_ENTRIES_PER_BLK);
+		  +(entries_per_cluster-i)>>FAT32_ENTRIES_BITS,
+		  (i+FAT32_ENTRIES_PER_BLK-1)>>FAT32_ENTRIES_BITS);
 	      }
 	      FAT32FreeClusters(p,buf[cur_dir_entry].cluster_lo+
 	      buf[cur_dir_entry].cluster_hi<<16);
@@ -848,7 +848,7 @@ I64 FAT32FileWrite(CPrt *p,U8 *cur_dir,U8 *name,U8 *buf,I64 size,
   if (_ac2) *_ac2=NULL;
   if (size<0) size=0;
   if (!cdt)
-    cdt=GetCurTimeDate;
+    cdt=GetDateTime;
   if (p->type!=PT_FAT32)
     PutDefine("ST_NOT_FAT32");
   else if (!CFileNameTo(de.name,name))
@@ -867,7 +867,7 @@ I64 FAT32FileWrite(CPrt *p,U8 *cur_dir,U8 *name,U8 *buf,I64 size,
     }
     de.size=size;
     if (blk_cnt=(size+BLK_SIZE-1)>>BLK_SIZE_BITS)
-      c=ClusersAlloc(p,0,(blk_cnt+p->spc-1)/p->spc,contiguous);
+      c=ClustersAlloc(p,0,(blk_cnt+p->spc-1)/p->spc,contiguous);
     else
       c=0x0FFFFFFF;
     de.cluster=c;
@@ -891,7 +891,7 @@ CDirEntry *FAT32FilesFind(U8 *files_find_mask,I64 fuf_flags,CDirEntry *parent=NU
   I64 attr,xsum=0,dir_size=0,sub_dir_size,
   cur_dir_cluster,cur_dir_entry,entries_per_cluster;
   U8 ch;
-  CDirEntry *result=NULL,*tempm,long_name;
+  CDirEntry *result=NULL,*tempde,long_name;
   if (fuf_flags&~FUG_FILES_FIND)
     throw(EXCEPT_FUF,7);
   try {
@@ -899,7 +899,7 @@ CDirEntry *FAT32FilesFind(U8 *files_find_mask,I64 fuf_flags,CDirEntry *parent=NU
     PrtLock(p);
     cur_dir_cluster=Name2DirCluster(p,Fs->cur_dir);
     buf=MAlloc(BLK_SIZE*p->spc);
-    entries_per_cluster=FAT32_ENTRIES_PER_BLK*p->spc;
+    entries_per_cluster=p->spc<cur_prt,buf,cur_dir_cluster,1);
     dir_size+=Fs->cur_prt->spc*BLK_SIZE;
     cur_dir_entry=0;
@@ -907,37 +907,37 @@ CDirEntry *FAT32FilesFind(U8 *files_find_mask,I64 fuf_flags,CDirEntry *parent=NU
       attr=buf[cur_dir_entry].attr;
       if (ch!=0xE5) {
 	if (attr&_ATTR_LONG_NAME_MASK==_ATTR_LONG_NAME)
-	  CDirLongNameFill(&long_name,&buf[cur_dir_entry],&xsum);
+	  DirLongNameFill(&long_name,&buf[cur_dir_entry],&xsum);
 	else {
 	  if (!(attr&_ATTR_VOL_ID)) {
-	    tempm=MAlloc(sizeof(CDirEntry));
+	    tempde=MAlloc(sizeof(CDirEntry));
 	    if (xsum==FATNameXSum(buf[cur_dir_entry].name))
-	      MemCpy(tempm,&long_name,sizeof(CDirEntry));
+	      MemCpy(tempde,&long_name,sizeof(CDirEntry));
 	    else
-	      MemSet(tempm,0,sizeof(CDirEntry));
-	    if (FAT32CDirFill(tempm,&buf[cur_dir_entry])) {
-	      tempm->parent=parent;
-	      if (Bt(&fuf_flags,FUf_RECURSE) && attr&_ATTR_DIR && *tempm->name!='.') {
-		tempm->next=result;
-		result=tempm;
-		tempm->full_name=DirNameAbs(tempm->name);
+	      MemSet(tempde,0,sizeof(CDirEntry));
+	    if (FAT32CDirFill(tempde,&buf[cur_dir_entry])) {
+	      tempde->parent=parent;
+	      if (Bt(&fuf_flags,FUf_RECURSE) && attr&_ATTR_DIR && *tempde->name!='.') {
+		tempde->next=result;
+		result=tempde;
+		tempde->full_name=DirNameAbs(tempde->name);
 		PrtUnlock(p);
-		if (Cd(tempm->name)) {
-		  tempm->sub=FAT32FilesFind(files_find_mask,fuf_flags,tempm,&sub_dir_size);
-		  tempm->size=tempm->expanded_size=sub_dir_size;
+		if (Cd(tempde->name)) {
+		  tempde->sub=FAT32FilesFind(files_find_mask,fuf_flags,tempde,&sub_dir_size);
+		  tempde->size=sub_dir_size;
 		  Cd("..");
 		}
 		PrtLock(p);
 	      } else if ((attr&_ATTR_DIR || !Bt(&fuf_flags,FUf_JUST_DIRS)) &&
-	      !(Bt(&fuf_flags,FUf_RECURSE) && *tempm->name=='.' && attr&_ATTR_DIR) &&
-		FilesFindMatch(files_find_mask,tempm->name,fuf_flags)) {
-		tempm->next=result;
-		result=tempm;
-		tempm->full_name=FileNameAbs(tempm->name);
+	      !(Bt(&fuf_flags,FUf_RECURSE) && *tempde->name=='.' && attr&_ATTR_DIR) &&
+		FilesFindMatch(tempde->name,files_find_mask,fuf_flags)) {
+		tempde->next=result;
+		result=tempde;
+		tempde->full_name=FileNameAbs(tempde->name);
 	      } else
-		CDirEntryDel(tempm);
+		DirEntryDel(tempde);
 	    } else
-	      CDirEntryDel(tempm);
+	      DirEntryDel(tempde);
 	  }
 	  MemSet(&long_name,0,sizeof(CDirEntry));
 	}
@@ -982,7 +982,7 @@ Bool FAT32MkDir(CPrt *p,U8 *cur_dir,U8 *name)
     d_native.name[1]=0;
     d_native.cluster=c;
     d_native.size=0;
-    d_native.datetime=GetCurTimeDate;
+    d_native.datetime=GetDateTime;
     FAT32DirFill(dFAT,&d_native);
     dFAT++;
  
@@ -993,7 +993,7 @@ Bool FAT32MkDir(CPrt *p,U8 *cur_dir,U8 *name)
     d_native.name[2]=0;
     d_native.cluster=cur_dir_cluster;
     d_native.size=0;
-    d_native.datetime=GetCurTimeDate;
+    d_native.datetime=GetDateTime;
     FAT32DirFill(dFAT,&d_native);
     WClusters(p,buf,c,1);
     Free(buf);
diff --git a/TempleOS/Kernel/Dsk/FileSysISO1.CPP b/TempleOS/Kernel/Dsk/FileSysISO1.CPP
index 30bfcf7..dd8e27d 100644
--- a/TempleOS/Kernel/Dsk/FileSysISO1.CPP
+++ b/TempleOS/Kernel/Dsk/FileSysISO1.CPP
@@ -21,7 +21,7 @@ Bool ISOPrtInit(CPrt *p,I64 blk)
       RBlks(p,iso,i*spc,spc);
       buf[0](U32)=iso->id[0](U32);
       buf[4](U16)=iso->id[4](U8);
-      switch (LstEntryMatch(buf,"CD001\0CDW02\0BEA01\0BOOT2\0NSR02\0NSR03\0TEA01\0",LEF_EXACT)) {
+      switch (LstMatch(buf,"CD001\0CDW02\0BEA01\0BOOT2\0NSR02\0NSR03\0TEA01\0",LMF_EXACT)) {
 	case 0:
 	  p->type=PT_ISO9660;
 	  switch (iso->type) {
@@ -112,25 +112,17 @@ Bool ISO1FromName(U8 *dst,U8 *src)
   return FileNameChk(dst);
 }
 
-Bool ISO1CDirFill(CPrt *p,CDirEntry *tempm,CISO1DirEntry *de)
+Bool ISO1CDirFill(CDirEntry *tempde,CISO1DirEntry *de)
 {
   Bool result;
-  CArcCompress *buf;
-  MemSet(tempm,0,sizeof(CDirEntry));
-  result=ISO1FromName(tempm->name,&de->name_len);
-  tempm->cluster=de->loc.little;
-  tempm->size=de->size.little;
-  tempm->attr=FileAttr(tempm->name);
+  MemSet(tempde,0,sizeof(CDirEntry));
+  result=ISO1FromName(tempde->name,&de->name_len);
+  tempde->cluster=de->loc.little;
+  tempde->size=de->size.little;
+  tempde->attr=FileAttr(tempde->name);
   if (de->flags & ISO1_ATTR_DIR)
-    tempm->attr|=_ATTR_DIR;
-  tempm->datetime=ISO1DateStruct2CDate(&de->date);
-  if (tempm->attr & _ATTR_COMPRESSED) {
-    buf=MAlloc(BLK_SIZE);
-    RClustersBlks(p,buf,tempm->cluster,1);
-    tempm->expanded_size=buf->expanded_size;
-    Free(buf);
-  } else
-    tempm->expanded_size=tempm->size;
+    tempde->attr|=_ATTR_DIR;
+  tempde->datetime=ISO1DateStruct2CDate(&de->date);
   return result;
 }
 
@@ -169,7 +161,7 @@ Bool ISO1FileFind(CPrt *p,I64 cur_dir_cluster,U8 *name,CDirEntry *_result,I64 fu
 	  ISO1FromName(dname,&isoptr->name_len);
 	  if (*dname) {
 	    if (!StrCmp(name,dname)) {
-	      result=ISO1CDirFill(p,_result,isoptr);
+	      result=ISO1CDirFill(_result,isoptr);
 	      if (result &&
 	      !(fuf_flags&FUF_JUST_DIRS && !(_result->attr & _ATTR_DIR)) &&
 	      !(fuf_flags&FUF_JUST_FILES && _result->attr & _ATTR_DIR) )
@@ -262,7 +254,7 @@ CDirEntry *ISO1FilesFind(U8 *files_find_mask,I64 fuf_flags,CDirEntry *parent=NUL
   CPrt *p=Fs->cur_prt;
   CISO1DirEntry *buf,*buf2,*isoptr;
   I64 i,cur_dir_cluster=Name2DirCluster(p,Fs->cur_dir);
-  CDirEntry *result=NULL,*tempm;
+  CDirEntry *result=NULL,*tempde;
   if (fuf_flags&~FUG_FILES_FIND)
     throw(EXCEPT_FUF,9);
   isoptr=MAlloc(p->spc<cur_prt,tempm,buf)) {
-	tempm->parent=parent;
-	if (Bt(&fuf_flags,FUf_RECURSE) && tempm->attr&_ATTR_DIR && *tempm->name!='.') {
-	  tempm->next=result;
-	  result=tempm;
-	  tempm->full_name=DirNameAbs(tempm->name);
-	  if (Cd(tempm->name)) {
-	    tempm->sub=ISO1FilesFind(files_find_mask,fuf_flags,tempm);
+      tempde=MAlloc(sizeof(CDirEntry));
+      if (ISO1CDirFill(tempde,buf)) {
+	tempde->parent=parent;
+	if (Bt(&fuf_flags,FUf_RECURSE) && tempde->attr&_ATTR_DIR && *tempde->name!='.') {
+	  tempde->next=result;
+	  result=tempde;
+	  tempde->full_name=DirNameAbs(tempde->name);
+	  if (Cd(tempde->name)) {
+	    tempde->sub=ISO1FilesFind(files_find_mask,fuf_flags,tempde);
 	    Cd("..");
 	  }
-	} else if ((tempm->attr & _ATTR_DIR || !Bt(&fuf_flags,FUf_JUST_DIRS)) &&
-	!(Bt(&fuf_flags,FUf_RECURSE) && *tempm->name=='.' && tempm->attr&_ATTR_DIR) &&
-	   FilesFindMatch(files_find_mask,tempm->name,fuf_flags)) {
-	  tempm->next=result;
-	  result=tempm;
-	  tempm->full_name=FileNameAbs(tempm->name);
+	} else if ((tempde->attr & _ATTR_DIR || !Bt(&fuf_flags,FUf_JUST_DIRS)) &&
+	!(Bt(&fuf_flags,FUf_RECURSE) && *tempde->name=='.' && tempde->attr&_ATTR_DIR) &&
+	   FilesFindMatch(tempde->name,files_find_mask,fuf_flags)) {
+	  tempde->next=result;
+	  result=tempde;
+	  tempde->full_name=FileNameAbs(tempde->name);
 	} else
-	  CDirEntryDel(tempm);
+	  DirEntryDel(tempde);
       } else
-	CDirEntryDel(tempm);
+	DirEntryDel(tempde);
       i-=buf->len;
       buf(U8 *)+=buf->len;
     }
diff --git a/TempleOS/Kernel/Dsk/FileSysRedSea.CPP b/TempleOS/Kernel/Dsk/FileSysRedSea.CPP
index bad873d..e6428ab 100644
--- a/TempleOS/Kernel/Dsk/FileSysRedSea.CPP
+++ b/TempleOS/Kernel/Dsk/FileSysRedSea.CPP
@@ -133,7 +133,7 @@ U0 RedSeaFSFmt(U8 drv_let,Bool quick=TRUE)
     n=br->sects_per_cluster*(BLK_SIZE<<3);
     n=(br->sects+n-1)/n;
     br->bitmap_sects=n;
-    br->unique_id=GetTimeStamp>>4;
+    br->unique_id=GetTSC>>4;
     br->root_cluster=0;
  
     if (quick)
@@ -144,8 +144,8 @@ U0 RedSeaFSFmt(U8 drv_let,Bool quick=TRUE)
  
     WBlks(p,br,p->offset,1);
     RedSeaFSPrtInit(p);
-    ClusersAlloc(p,0,1,FALSE);	//Alloc #1
-    br->root_cluster=ClusersAlloc(p,0,1,FALSE);
+    ClustersAlloc(p,0,1,FALSE);	//Alloc #1
+    br->root_cluster=ClustersAlloc(p,0,1,FALSE);
     WBlks(p,br,p->offset,1);
     root_dir=CAlloc(p->spc<name='.';
     d_native->cluster=br->root_cluster;
     d_native->size=p->spc<expanded_size=d_native->size;
-    d_native->datetime=GetCurTimeDate;
+    d_native->datetime=GetDateTime;
  
     d_native(U8 *)+=CDIR_SIZE;
  
@@ -164,7 +163,7 @@ U0 RedSeaFSFmt(U8 drv_let,Bool quick=TRUE)
     d_native->name[1]='.';
     d_native->attr=_ATTR_DIR|_ATTR_CONTIGUOUS;
     d_native->cluster=br->root_cluster;
-    d_native->datetime=GetCurTimeDate;
+    d_native->datetime=GetDateTime;
  
     WBlks(p,root_dir,p->data+br->root_cluster*p->spc,p->spc);
     RedSeaFSPrtInit(p);
@@ -253,10 +252,6 @@ U8 *RedSeaFSFileRead(CPrt *p,U8 *cur_dir,U8 *filename,I64 *_size,
 	buf=MAlloc(blk_cnt<>BLK_SIZE_BITS+p->spc-1)/p->spc);
 	  dir_size+=p->spc<>BLK_SIZE_BITS+p->spc-1)/p->spc,TRUE);
+	  c=ClustersAlloc(p,0,(dir_size>>BLK_SIZE_BITS+p->spc-1)/p->spc,TRUE);
 	  Free(buf);
 	  buf=buf2;
 	  ptr=buf(U8 *)-offset(CDirEntry.start);
 	  ptr->size=dir_size;
-	  ptr->expanded_size=dir_size;
 	  ptr->cluster=c;
 	  WClustersBlks(p,buf,c,dir_size>>BLK_SIZE_BITS);
 	  if (cur_dir_cluster==p->root_cluster) {
@@ -464,7 +458,6 @@ Bool RedSeaFSDirNew(CPrt *p,U8 *cur_dir,CDirEntry *de,Bool free_old_chain)
 		temp,&de2,FUF_JUST_DIRS)) {
 	      de2.cluster=c;
 	      de2.size=dir_size;
-	      de2.expanded_size=dir_size;
 	      RedSeaFSDirNew(p,parent_dir,&de2,FALSE);
 	    } else
 	      Dbg;
@@ -540,11 +533,11 @@ I64 RedSeaFSFilesDel(CPrt *p,U8 *cur_dir,U8 *files_find_mask,I64 fuf_flags,
 	break;
       else if (!(ptr->attr & _ATTR_DELETED) && ch!='.' && (del_dir ||
 	  !(ptr->attr & _ATTR_DIR)) &&
-	  FilesFindMatch(files_find_mask,ptr->name,fuf_flags)) {
+	  FilesFindMatch(ptr->name,files_find_mask,fuf_flags)) {
 	if (!(ptr->attr & _ATTR_DIR)) result++;
 	if (print_msg) {
 	  PutDefine("ST_DELETE");
-	  "" ptr->name;
+	  "%s",ptr->name;
 	  NewLine;
 	}
 	ptr->attr|=_ATTR_DELETED;
@@ -583,7 +576,7 @@ I64 RedSeaFSFileWrite(CPrt *p,U8 *cur_dir,U8 *name,U8 *buf,I64 size,
   if (_ac2) *_ac2=NULL;
   if (size<0) size=0;
   if (!cdt)
-    cdt=GetCurTimeDate;
+    cdt=GetDateTime;
 
   if (p->type!=PT_REDSEA)
     PutDefineErr("ST_NOT_REDSEA");
@@ -594,16 +587,14 @@ I64 RedSeaFSFileWrite(CPrt *p,U8 *cur_dir,U8 *name,U8 *buf,I64 size,
     attr=FileAttr(name,attr);
     attr|=_ATTR_CONTIGUOUS;
     contiguous=TRUE;
-    de.expanded_size=size;
     if (attr&_ATTR_COMPRESSED && !raw) {
       ac=CompressBuf(buf,size,flags);
       size=ac->compressed_size;
       buf=ac;
     }
     de.size=size;
-    de.xsum=ArcXSum(buf,size)^TEMPLEOS_XSUM;
     if (blk_cnt=(size+BLK_SIZE-1)>>BLK_SIZE_BITS)
-      c=ClusersAlloc(p,0,(blk_cnt+p->spc-1)/p->spc,contiguous);
+      c=ClustersAlloc(p,0,(blk_cnt+p->spc-1)/p->spc,contiguous);
     else
       c=INVALID_CLUSTER;
     de.cluster=c;
@@ -623,7 +614,7 @@ I64 RedSeaFSFileWrite(CPrt *p,U8 *cur_dir,U8 *name,U8 *buf,I64 size,
 CDirEntry *RedSeaFSFilesFind(U8 *files_find_mask,I64 fuf_flags,CDirEntry *parent=NULL)
 {
   CPrt *p=Fs->cur_prt;
-  CDirEntry *buf,*buf2,*ptr,*result=NULL,*tempm;
+  CDirEntry *buf,*buf2,*ptr,*result=NULL,*tempde;
   I64 ch,cur_dir_cluster;
   if (fuf_flags&~FUG_FILES_FIND)
     throw(EXCEPT_FUF,11);
@@ -648,27 +639,27 @@ CDirEntry *RedSeaFSFilesFind(U8 *files_find_mask,I64 fuf_flags,CDirEntry *parent
       if (!(ch=*ptr->name))
 	break;
       else if (!(ptr->attr & _ATTR_DELETED)) {
-	tempm=CAlloc(sizeof(CDirEntry));
-	MemCpy(&tempm->start,&ptr->start,CDIR_SIZE);
-	tempm->parent=parent;
-	if (Bt(&fuf_flags,FUf_RECURSE) && tempm->attr&_ATTR_DIR && *tempm->name!='.') {
-	  tempm->next=result;
-	  result=tempm;
-	  tempm->full_name=DirNameAbs(tempm->name);
+	tempde=CAlloc(sizeof(CDirEntry));
+	MemCpy(&tempde->start,&ptr->start,CDIR_SIZE);
+	tempde->parent=parent;
+	if (Bt(&fuf_flags,FUf_RECURSE) && tempde->attr&_ATTR_DIR && *tempde->name!='.') {
+	  tempde->next=result;
+	  result=tempde;
+	  tempde->full_name=DirNameAbs(tempde->name);
 	  PrtUnlock(p);
-	  if (Cd(tempm->name)) {
-	    tempm->sub=RedSeaFSFilesFind(files_find_mask,fuf_flags,tempm);
+	  if (Cd(tempde->name)) {
+	    tempde->sub=RedSeaFSFilesFind(files_find_mask,fuf_flags,tempde);
 	    Cd("..");
 	  }
 	  PrtLock(p);
-	} else if ((tempm->attr&_ATTR_DIR || !Bt(&fuf_flags,FUf_JUST_DIRS)) &&
-	!(Bt(&fuf_flags,FUf_RECURSE) && *tempm->name=='.' && tempm->attr&_ATTR_DIR) &&
-	  FilesFindMatch(files_find_mask,tempm->name,fuf_flags)) {
-	  tempm->next=result;
-	  result=tempm;
-	  tempm->full_name=FileNameAbs(tempm->name);
+	} else if ((tempde->attr&_ATTR_DIR || !Bt(&fuf_flags,FUf_JUST_DIRS)) &&
+	!(Bt(&fuf_flags,FUf_RECURSE) && *tempde->name=='.' && tempde->attr&_ATTR_DIR) &&
+	  FilesFindMatch(tempde->name,files_find_mask,fuf_flags)) {
+	  tempde->next=result;
+	  result=tempde;
+	  tempde->full_name=FileNameAbs(tempde->name);
 	} else
-	  CDirEntryDel(tempm);
+	  DirEntryDel(tempde);
       }
       ptr(U8 *)+=CDIR_SIZE;
     }
@@ -694,8 +685,7 @@ Bool RedSeaFSMkDir(CPrt *p,U8 *cur_dir,U8 *name)
     StrCpy(d_native->name,name);
     d_native->cluster=c;
     d_native->size=size;
-    d_native->expanded_size=size;
-    d_native->datetime=GetCurTimeDate;
+    d_native->datetime=GetDateTime;
     d_native(U8 *)+=CDIR_SIZE;
  
     d_native->attr=_ATTR_DIR|_ATTR_CONTIGUOUS;
@@ -704,8 +694,7 @@ Bool RedSeaFSMkDir(CPrt *p,U8 *cur_dir,U8 *name)
     d_native->name[2]=0;
     d_native->cluster=cur_dir_cluster;
     d_native->size=0;
-    d_native->expanded_size=0;
-    d_native->datetime=GetCurTimeDate;
+    d_native->datetime=GetDateTime;
     WClusters(p,buf,c,1);
     Free(buf);
     if (unlock_break)
diff --git a/TempleOS/Kernel/EdLite.CPP b/TempleOS/Kernel/EdLite.CPP
index 07be7fd..db9464f 100644
--- a/TempleOS/Kernel/EdLite.CPP
+++ b/TempleOS/Kernel/EdLite.CPP
@@ -10,7 +10,7 @@ U0 EdLiteUpdate(CLine *root,CLine *cur_line,I64 cur_col,I64 line_start_col)
   U8 *st;
   CLine *templ=cur_line;
   Bool done_eof=FALSE;
-  sys_raw_dc_col=0;
+  sys_raw_col=0;
   for (i=0;ilast!=root)
       templ=templ->last;
@@ -51,7 +51,7 @@ U0 EdLiteUpdate(CLine *root,CLine *cur_line,I64 cur_col,I64 line_start_col)
       NewLine;
     }
   }
-  sys_raw_dc_col=text_cols*cursor_row+cursor_col-line_start_col;
+  sys_raw_col=text_cols*cursor_row+cursor_col-line_start_col;
   RawPutChar(0x7F);
 }
 
@@ -61,7 +61,7 @@ U0 EdLite(U8 *filename,I64 num=1)
 //Light weight text editor for debugging
   U8 *src,*src2,*src3,*dst,*buf,*bin_data=NULL;
   I64 i,cnt=0,ch,sc,size,bin_size=0,line_start_col=0,cur_col=0,
-	old_dc_flags=sys_raw_dc_flags;
+	old_raw_flags=sys_raw_flags;
   CLine root,*templ,*templ1,*cur_line;
   Bool old_raw=Raw(ON),
 	old_debug=InDbg(ON),
@@ -72,7 +72,7 @@ U0 EdLite(U8 *filename,I64 num=1)
 
   PushFD;
   Cli;
-  sys_raw_dc_flags=sys_raw_dc_flags&~RDCF_SCROLL|RDCF_SHOW_DOLLAR;
+  sys_raw_flags=sys_raw_flags&~RWF_SCROLL|RWF_SHOW_DOLLAR;
   sys_cur_scan_code=0;
   QueInit(&root);
   root.line=StrNew("");
@@ -289,7 +289,7 @@ U0 EdLite(U8 *filename,I64 num=1)
   Raw(old_raw);
   InDbg(old_debug);
   SingleUser(old_single);
-  sys_raw_dc_flags=sys_raw_dc_flags&~RDCF_SHOW_DOLLAR|old_dc_flags&RDCF_SHOW_DOLLAR;
+  sys_raw_flags=sys_raw_flags&~RWF_SHOW_DOLLAR|old_raw_flags&RWF_SHOW_DOLLAR;
   PopFD;
 }
 
@@ -317,7 +317,7 @@ U0 EdLiteFileLine(U8 *fl_file_line)
 
 U0 SetFix(U8 *filename,I64 line)
 {
-  U8 *st=MSPrintF("FL:%s,%d",filename,line);
+  U8 *st=MPrint("FL:%s,%d",filename,line);
   while (LBts(&sys_semas[SYS_SEMA_FIX],0))
     Yield;
   Free(sys_fix_file_line);
diff --git a/TempleOS/Kernel/Except.CPP b/TempleOS/Kernel/Except.CPP
index 6cfc067..17a2286 100644
--- a/TempleOS/Kernel/Except.CPP
+++ b/TempleOS/Kernel/Except.CPP
@@ -67,7 +67,7 @@ class CTryStk
 
 U0 SysTry(U8 *catch_start,U8 *untry_start)
 {
-  I64 *rbp=GetBasePtr,old_flags=GetFlags;
+  I64 *rbp=GetRBP,old_flags=GetRFlags;
   CExcept *tempt=MAlloc(sizeof(CExcept));
   tempt->handler_catch=catch_start;
   tempt->handler_untry=untry_start;
@@ -77,7 +77,7 @@ U0 SysTry(U8 *catch_start,U8 *untry_start)
   SaveExceptRegs(tempt);
   Cli;
   QueIns(tempt,Fs->last_except);
-  SetFlags(old_flags);
+  SetRFlags(old_flags);
 }
 
 U0 SysUntry()
@@ -140,13 +140,13 @@ U0 throw_join(I64 argc,I64 *argv)
 
   Fs->except_argc=argc;
   Fs->except_argv=argv;
-  Fs->except_rbp=GetBasePtr;
+  Fs->except_rbp=GetRBP;
   Fs->catch_except=FALSE;
   while (Fs->next_except!=&Fs->next_except) {
     TestExcept;
     if (Fs->catch_except)
       TakeExcept;
-    SetBasePtr(Fs->except_rbp);
+    SetRBP(Fs->except_rbp);
     tempt=Fs->last_except;
     QueRem(tempt);
     Free(tempt);
@@ -197,7 +197,7 @@ U0 ThrowBreak(CTask *task=NULL)
 }
 
 Bool BreakLock(CTask *task=NULL)
-{
+{ //This disables CTRL-ALT-C
   if (!task) task=Fs;
   return !LBts(&task->task_flags,TASKf_BREAK_LOCKED);
 }
diff --git a/TempleOS/Kernel/Font8x8.CPP b/TempleOS/Kernel/Font8x8.CPP
index 3d24ea3..e6c3aac 100644
--- a/TempleOS/Kernel/Font8x8.CPP
+++ b/TempleOS/Kernel/Font8x8.CPP
@@ -32,230 +32,229 @@ U8 sys_font_8x8[256*8]= {
 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x18,0x3C,0x3C,0x18,0x18,0x00,0x18,0x00,
-0x36,0x36,0x36,0x00,0x00,0x00,0x00,0x00,
-0x6C,0x6C,0xFE,0x6C,0xFE,0x6C,0x6C,0x00,
-0x30,0xFC,0x16,0x7C,0xD0,0x7E,0x18,0x00,
-0x06,0x66,0x30,0x18,0x0C,0x66,0x60,0x00,
-0x1C,0x36,0x36,0x1C,0xB6,0x66,0xDC,0x00,
-0x18,0x18,0x18,0x00,0x00,0x00,0x00,0x00,
-0x30,0x18,0x0C,0x0C,0x0C,0x18,0x30,0x00,
-0x0C,0x18,0x30,0x30,0x30,0x18,0x0C,0x00,
-0x00,0x18,0x7E,0x3C,0x7E,0x18,0x00,0x00,
-0x00,0x18,0x18,0x7E,0x18,0x18,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x0C,
-0x00,0x00,0x00,0x7E,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x00,
-0x00,0x60,0x30,0x18,0x0C,0x06,0x00,0x00,
-0x3C,0x66,0x76,0x7E,0x6E,0x66,0x3C,0x00,
-0x18,0x1C,0x18,0x18,0x18,0x18,0x7E,0x00,
-0x3C,0x66,0x60,0x30,0x18,0x0C,0x7E,0x00,
-0x3C,0x66,0x60,0x38,0x60,0x66,0x3C,0x00,
-0x30,0x38,0x3C,0x36,0x7E,0x30,0x30,0x00,
-0x7E,0x06,0x3E,0x60,0x60,0x66,0x3C,0x00,
-0x38,0x0C,0x06,0x3E,0x66,0x66,0x3C,0x00,
-0x7E,0x60,0x30,0x18,0x0C,0x0C,0x0C,0x00,
-0x3C,0x66,0x66,0x3C,0x66,0x66,0x3C,0x00,
-0x3C,0x66,0x66,0x7C,0x60,0x30,0x1C,0x00,
-0x00,0x00,0x18,0x18,0x00,0x18,0x18,0x00,
-0x00,0x00,0x18,0x18,0x00,0x18,0x18,0x0C,
-0x30,0x18,0x0C,0x06,0x0C,0x18,0x30,0x00,
-0x00,0x00,0x7E,0x00,0x7E,0x00,0x00,0x00,
-0x0C,0x18,0x30,0x60,0x30,0x18,0x0C,0x00,
-0x3C,0x66,0x30,0x18,0x18,0x00,0x18,0x00,
-0x3C,0x66,0x76,0x56,0x76,0x06,0x3C,0x00,
-0x3C,0x66,0x66,0x7E,0x66,0x66,0x66,0x00,
-0x3E,0x66,0x66,0x3E,0x66,0x66,0x3E,0x00,
-0x3C,0x66,0x06,0x06,0x06,0x66,0x3C,0x00,
-0x1E,0x36,0x66,0x66,0x66,0x36,0x1E,0x00,
-0x7E,0x06,0x06,0x3E,0x06,0x06,0x7E,0x00,
-0x7E,0x06,0x06,0x3E,0x06,0x06,0x06,0x00,
-0x3C,0x66,0x06,0x76,0x66,0x66,0x3C,0x00,
-0x66,0x66,0x66,0x7E,0x66,0x66,0x66,0x00,
-0x7E,0x18,0x18,0x18,0x18,0x18,0x7E,0x00,
-0x7C,0x30,0x30,0x30,0x30,0x36,0x1C,0x00,
-0x66,0x36,0x1E,0x0E,0x1E,0x36,0x66,0x00,
-0x06,0x06,0x06,0x06,0x06,0x06,0x7E,0x00,
-0xC6,0xEE,0xFE,0xD6,0xD6,0xC6,0xC6,0x00,
-0x66,0x66,0x6E,0x7E,0x76,0x66,0x66,0x00,
-0x3C,0x66,0x66,0x66,0x66,0x66,0x3C,0x00,
-0x3E,0x66,0x66,0x3E,0x06,0x06,0x06,0x00,
-0x3C,0x66,0x66,0x66,0x56,0x36,0x6C,0x00,
-0x3E,0x66,0x66,0x3E,0x36,0x66,0x66,0x00,
-0x3C,0x66,0x06,0x3C,0x60,0x66,0x3C,0x00,
-0x7E,0x18,0x18,0x18,0x18,0x18,0x18,0x00,
-0x66,0x66,0x66,0x66,0x66,0x66,0x3C,0x00,
-0x66,0x66,0x66,0x66,0x66,0x3C,0x18,0x00,
-0xC6,0xC6,0xD6,0xD6,0xFE,0xEE,0xC6,0x00,
-0x66,0x66,0x3C,0x18,0x3C,0x66,0x66,0x00,
-0x66,0x66,0x66,0x3C,0x18,0x18,0x18,0x00,
-0x7E,0x60,0x30,0x18,0x0C,0x06,0x7E,0x00,
-0x3E,0x06,0x06,0x06,0x06,0x06,0x3E,0x00,
-0x00,0x06,0x0C,0x18,0x30,0x60,0x00,0x00,
-0x7C,0x60,0x60,0x60,0x60,0x60,0x7C,0x00,
-0x3C,0x66,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,
-0x0C,0x18,0x30,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x3C,0x60,0x7C,0x66,0x7C,0x00,
-0x06,0x06,0x3E,0x66,0x66,0x66,0x3E,0x00,
-0x00,0x00,0x3C,0x66,0x06,0x66,0x3C,0x00,
-0x60,0x60,0x7C,0x66,0x66,0x66,0x7C,0x00,
-0x00,0x00,0x3C,0x66,0x7E,0x06,0x3C,0x00,
-0x38,0x0C,0x0C,0x3E,0x0C,0x0C,0x0C,0x00,
-0x00,0x00,0x7C,0x66,0x66,0x7C,0x60,0x3C,
-0x06,0x06,0x3E,0x66,0x66,0x66,0x66,0x00,
-0x18,0x00,0x1C,0x18,0x18,0x18,0x3C,0x00,
-0x18,0x00,0x1C,0x18,0x18,0x18,0x18,0x0E,
-0x06,0x06,0x66,0x36,0x1E,0x36,0x66,0x00,
-0x1C,0x18,0x18,0x18,0x18,0x18,0x3C,0x00,
-0x00,0x00,0x6C,0xFE,0xD6,0xD6,0xC6,0x00,
-0x00,0x00,0x3E,0x66,0x66,0x66,0x66,0x00,
-0x00,0x00,0x3C,0x66,0x66,0x66,0x3C,0x00,
-0x00,0x00,0x3E,0x66,0x66,0x3E,0x06,0x06,
-0x00,0x00,0x7C,0x66,0x66,0x7C,0x60,0xE0,
-0x00,0x00,0x36,0x6E,0x06,0x06,0x06,0x00,
-0x00,0x00,0x7C,0x06,0x3C,0x60,0x3E,0x00,
-0x0C,0x0C,0x3E,0x0C,0x0C,0x0C,0x38,0x00,
-0x00,0x00,0x66,0x66,0x66,0x66,0x7C,0x00,
-0x00,0x00,0x66,0x66,0x66,0x3C,0x18,0x00,
-0x00,0x00,0xC6,0xD6,0xD6,0xFE,0x6C,0x00,
-0x00,0x00,0x66,0x3C,0x18,0x3C,0x66,0x00,
-0x00,0x00,0x66,0x66,0x66,0x7C,0x60,0x3C,
-0x00,0x00,0x7E,0x30,0x18,0x0C,0x7E,0x00,
-0x30,0x18,0x18,0x0E,0x18,0x18,0x30,0x00,
-0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x00,
-0x0C,0x18,0x18,0x70,0x18,0x18,0x0C,0x00,
-0x8C,0xD6,0x62,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,//
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//
+0x18,0x3C,0x3C,0x18,0x18,0x00,0x18,0x00,//!
+0x36,0x36,0x36,0x00,0x00,0x00,0x00,0x00,//"
+0x6C,0x6C,0xFE,0x6C,0xFE,0x6C,0x6C,0x00,//#
+0x30,0xFC,0x16,0x7C,0xD0,0x7E,0x18,0x00,//$$
+0x06,0x66,0x30,0x18,0x0C,0x66,0x60,0x00,//%
+0x1C,0x36,0x36,0x1C,0xB6,0x66,0xDC,0x00,//&
+0x18,0x18,0x18,0x00,0x00,0x00,0x00,0x00,//'
+0x30,0x18,0x0C,0x0C,0x0C,0x18,0x30,0x00,//(
+0x0C,0x18,0x30,0x30,0x30,0x18,0x0C,0x00,//)
+0x00,0x18,0x7E,0x3C,0x7E,0x18,0x00,0x00,//*
+0x00,0x18,0x18,0x7E,0x18,0x18,0x00,0x00,//+
+0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x0C,//,
+0x00,0x00,0x00,0x7E,0x00,0x00,0x00,0x00,//-
+0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x00,//.
+0x00,0x60,0x30,0x18,0x0C,0x06,0x00,0x00,///
+0x3C,0x66,0x76,0x7E,0x6E,0x66,0x3C,0x00,//0
+0x18,0x1C,0x18,0x18,0x18,0x18,0x7E,0x00,//1
+0x3C,0x66,0x60,0x30,0x18,0x0C,0x7E,0x00,//2
+0x3C,0x66,0x60,0x38,0x60,0x66,0x3C,0x00,//3
+0x30,0x38,0x3C,0x36,0x7E,0x30,0x30,0x00,//4
+0x7E,0x06,0x3E,0x60,0x60,0x66,0x3C,0x00,//5
+0x38,0x0C,0x06,0x3E,0x66,0x66,0x3C,0x00,//6
+0x7E,0x60,0x30,0x18,0x0C,0x0C,0x0C,0x00,//7
+0x3C,0x66,0x66,0x3C,0x66,0x66,0x3C,0x00,//8
+0x3C,0x66,0x66,0x7C,0x60,0x30,0x1C,0x00,//9
+0x00,0x00,0x18,0x18,0x00,0x18,0x18,0x00,//:
+0x00,0x00,0x18,0x18,0x00,0x18,0x18,0x0C,//;
+0x30,0x18,0x0C,0x06,0x0C,0x18,0x30,0x00,//<
+0x00,0x00,0x7E,0x00,0x7E,0x00,0x00,0x00,//=
+0x0C,0x18,0x30,0x60,0x30,0x18,0x0C,0x00,//>
+0x3C,0x66,0x30,0x18,0x18,0x00,0x18,0x00,//?
+0x3C,0x66,0x76,0x56,0x76,0x06,0x3C,0x00,//@
+0x3C,0x66,0x66,0x7E,0x66,0x66,0x66,0x00,//A
+0x3E,0x66,0x66,0x3E,0x66,0x66,0x3E,0x00,//B
+0x3C,0x66,0x06,0x06,0x06,0x66,0x3C,0x00,//C
+0x1E,0x36,0x66,0x66,0x66,0x36,0x1E,0x00,//D
+0x7E,0x06,0x06,0x3E,0x06,0x06,0x7E,0x00,//E
+0x7E,0x06,0x06,0x3E,0x06,0x06,0x06,0x00,//F
+0x3C,0x66,0x06,0x76,0x66,0x66,0x3C,0x00,//G
+0x66,0x66,0x66,0x7E,0x66,0x66,0x66,0x00,//H
+0x7E,0x18,0x18,0x18,0x18,0x18,0x7E,0x00,//I
+0x7C,0x30,0x30,0x30,0x30,0x36,0x1C,0x00,//J
+0x66,0x36,0x1E,0x0E,0x1E,0x36,0x66,0x00,//K
+0x06,0x06,0x06,0x06,0x06,0x06,0x7E,0x00,//L
+0xC6,0xEE,0xFE,0xD6,0xD6,0xC6,0xC6,0x00,//M
+0x66,0x66,0x6E,0x7E,0x76,0x66,0x66,0x00,//N
+0x3C,0x66,0x66,0x66,0x66,0x66,0x3C,0x00,//O
+0x3E,0x66,0x66,0x3E,0x06,0x06,0x06,0x00,//P
+0x3C,0x66,0x66,0x66,0x56,0x36,0x6C,0x00,//Q
+0x3E,0x66,0x66,0x3E,0x36,0x66,0x66,0x00,//R
+0x3C,0x66,0x06,0x3C,0x60,0x66,0x3C,0x00,//S
+0x7E,0x18,0x18,0x18,0x18,0x18,0x18,0x00,//T
+0x66,0x66,0x66,0x66,0x66,0x66,0x3C,0x00,//U
+0x66,0x66,0x66,0x66,0x66,0x3C,0x18,0x00,//V
+0xC6,0xC6,0xD6,0xD6,0xFE,0xEE,0xC6,0x00,//W
+0x66,0x66,0x3C,0x18,0x3C,0x66,0x66,0x00,//X
+0x66,0x66,0x66,0x3C,0x18,0x18,0x18,0x00,//Y
+0x7E,0x60,0x30,0x18,0x0C,0x06,0x7E,0x00,//Z
+0x3E,0x06,0x06,0x06,0x06,0x06,0x3E,0x00,//[
+0x00,0x06,0x0C,0x18,0x30,0x60,0x00,0x00,//\
+0x7C,0x60,0x60,0x60,0x60,0x60,0x7C,0x00,//]
+0x3C,0x66,0x00,0x00,0x00,0x00,0x00,0x00,//^
+0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,//_
+0x0C,0x18,0x30,0x00,0x00,0x00,0x00,0x00,//`
+0x00,0x00,0x3C,0x60,0x7C,0x66,0x7C,0x00,//a
+0x06,0x06,0x3E,0x66,0x66,0x66,0x3E,0x00,//b
+0x00,0x00,0x3C,0x66,0x06,0x66,0x3C,0x00,//c
+0x60,0x60,0x7C,0x66,0x66,0x66,0x7C,0x00,//d
+0x00,0x00,0x3C,0x66,0x7E,0x06,0x3C,0x00,//e
+0x38,0x0C,0x0C,0x3E,0x0C,0x0C,0x0C,0x00,//f
+0x00,0x00,0x7C,0x66,0x66,0x7C,0x60,0x3C,//g
+0x06,0x06,0x3E,0x66,0x66,0x66,0x66,0x00,//h
+0x18,0x00,0x1C,0x18,0x18,0x18,0x3C,0x00,//i
+0x18,0x00,0x1C,0x18,0x18,0x18,0x18,0x0E,//j
+0x06,0x06,0x66,0x36,0x1E,0x36,0x66,0x00,//k
+0x1C,0x18,0x18,0x18,0x18,0x18,0x3C,0x00,//l
+0x00,0x00,0x6C,0xFE,0xD6,0xD6,0xC6,0x00,//m
+0x00,0x00,0x3E,0x66,0x66,0x66,0x66,0x00,//n
+0x00,0x00,0x3C,0x66,0x66,0x66,0x3C,0x00,//o
+0x00,0x00,0x3E,0x66,0x66,0x3E,0x06,0x06,//p
+0x00,0x00,0x7C,0x66,0x66,0x7C,0x60,0xE0,//q
+0x00,0x00,0x36,0x6E,0x06,0x06,0x06,0x00,//r
+0x00,0x00,0x7C,0x06,0x3C,0x60,0x3E,0x00,//s
+0x0C,0x0C,0x3E,0x0C,0x0C,0x0C,0x38,0x00,//t
+0x00,0x00,0x66,0x66,0x66,0x66,0x7C,0x00,//u
+0x00,0x00,0x66,0x66,0x66,0x3C,0x18,0x00,//v
+0x00,0x00,0xC6,0xD6,0xD6,0xFE,0x6C,0x00,//w
+0x00,0x00,0x66,0x3C,0x18,0x3C,0x66,0x00,//x
+0x00,0x00,0x66,0x66,0x66,0x7C,0x60,0x3C,//y
+0x00,0x00,0x7E,0x30,0x18,0x0C,0x7E,0x00,//z
+0x30,0x18,0x18,0x0E,0x18,0x18,0x30,0x00,//{
+0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x00,//|
+0x0C,0x18,0x18,0x70,0x18,0x18,0x0C,0x00,//}
+0x8C,0xD6,0x62,0x00,0x00,0x00,0x00,0x00,//~
 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
-
-0x1E,0x33,0x03,0x33,0x1E,0x18,0x30,0x1E,
-0x00,0x33,0x00,0x33,0x33,0x33,0x7E,0x00,
-0x38,0x00,0x1E,0x33,0x3F,0x03,0x1E,0x00,
-0x7E,0xC3,0x3C,0x60,0x7C,0x66,0xFC,0x00,
-0x33,0x00,0x1E,0x30,0x3E,0x33,0x7E,0x00,
-0x07,0x00,0x1E,0x30,0x3E,0x33,0x7E,0x00,
-0x0C,0x0C,0x1E,0x30,0x3E,0x33,0x7E,0x00,
-0x00,0x00,0x3E,0x03,0x03,0x3E,0x60,0x3C,
-0x7E,0xC3,0x3C,0x66,0x7E,0x06,0x3C,0x00,
-0x33,0x00,0x1E,0x33,0x3F,0x03,0x1E,0x00,
-0x07,0x00,0x1E,0x33,0x3F,0x03,0x1E,0x00,
-0x33,0x00,0x0E,0x0C,0x0C,0x0C,0x1E,0x00,
-0x3E,0x63,0x1C,0x18,0x18,0x18,0x3C,0x00,
-0x07,0x00,0x0E,0x0C,0x0C,0x0C,0x1E,0x00,
-0x33,0x0C,0x1E,0x33,0x33,0x3F,0x33,0x00,
-0x0C,0x0C,0x00,0x1E,0x33,0x3F,0x33,0x00,
-0x38,0x00,0x3F,0x06,0x1E,0x06,0x3F,0x00,
-0x00,0x00,0xFE,0x30,0xFE,0x33,0xFE,0x00,
-0x7C,0x36,0x33,0x7F,0x33,0x33,0x73,0x00,
-0x1E,0x33,0x00,0x1E,0x33,0x33,0x1E,0x00,
-0x00,0x33,0x00,0x1E,0x33,0x33,0x1E,0x00,
-0x00,0x07,0x00,0x1E,0x33,0x33,0x1E,0x00,
-0x1E,0x33,0x00,0x33,0x33,0x33,0x7E,0x00,
-0x00,0x07,0x00,0x33,0x33,0x33,0x7E,0x00,
-0x00,0x33,0x00,0x33,0x33,0x3F,0x30,0x1F,
-0x63,0x1C,0x3E,0x63,0x63,0x3E,0x1C,0x00,
-0x33,0x00,0x33,0x33,0x33,0x33,0x1E,0x00,
-0x18,0x18,0x7E,0x03,0x03,0x7E,0x18,0x18,
-0x1C,0x36,0x26,0x0F,0x06,0x67,0x3F,0x00,
-0x33,0x33,0x1E,0x3F,0x0C,0x3F,0x0C,0x00,
-0x0F,0x1B,0x1B,0x2F,0x33,0x7B,0x33,0x70,
-0x70,0xD8,0x18,0x7E,0x18,0x18,0x1B,0x0E,
-0x38,0x00,0x1E,0x30,0x3E,0x33,0x7E,0x00,
-0x1C,0x00,0x0E,0x0C,0x0C,0x0C,0x1E,0x00,
-0x00,0x38,0x00,0x1E,0x33,0x33,0x1E,0x00,
-0x00,0x38,0x00,0x33,0x33,0x33,0x7E,0x00,
-0x00,0x1F,0x00,0x1F,0x33,0x33,0x33,0x00,
-0x3F,0x00,0x33,0x37,0x3F,0x3B,0x33,0x00,
-0x3C,0x36,0x36,0x7C,0x00,0x7E,0x00,0x00,
-0x3C,0x66,0x66,0x3C,0x00,0x7E,0x00,0x00,
-0x0C,0x00,0x0C,0x06,0x03,0x33,0x1E,0x00,
-0x00,0x00,0x00,0x3F,0x03,0x03,0x00,0x00,
-0x00,0x00,0x00,0x3F,0x30,0x30,0x00,0x00,
-0x63,0x33,0x1B,0x7C,0xC6,0x73,0x19,0xF8,
-0x63,0x33,0x1B,0xCF,0xE6,0xF3,0xF9,0xC0,
-0x00,0x18,0x00,0x18,0x18,0x3C,0x3C,0x18,
-0x00,0xCC,0x66,0x33,0x66,0xCC,0x00,0x00,
-0x00,0x33,0x66,0xCC,0x66,0x33,0x00,0x00,
-0x44,0x11,0x44,0x11,0x44,0x11,0x44,0x11,
-0xAA,0x55,0xAA,0x55,0xAA,0x55,0xAA,0x55,
-0xBB,0xEE,0xBB,0xEE,0xBB,0xEE,0xBB,0xEE,
-0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,
-0x18,0x18,0x18,0x18,0x1F,0x18,0x18,0x18,
-0x18,0x18,0x1F,0x18,0x1F,0x18,0x18,0x18,
-0x6C,0x6C,0x6C,0x6C,0x6F,0x6C,0x6C,0x6C,
-0x00,0x00,0x00,0x00,0x7F,0x6C,0x6C,0x6C,
-0x00,0x00,0x1F,0x18,0x1F,0x18,0x18,0x18,
-0x6C,0x6C,0x6F,0x60,0x6F,0x6C,0x6C,0x6C,
-0x6C,0x6C,0x6C,0x6C,0x6C,0x6C,0x6C,0x6C,
-0x00,0x00,0x7F,0x60,0x6F,0x6C,0x6C,0x6C,
-0x6C,0x6C,0x6F,0x60,0x7F,0x00,0x00,0x00,
-0x6C,0x6C,0x6C,0x6C,0x7F,0x00,0x00,0x00,
-0x18,0x18,0x1F,0x18,0x1F,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x1F,0x18,0x18,0x18,
-0x18,0x18,0x18,0x18,0xF8,0x00,0x00,0x00,
-0x18,0x18,0x18,0x18,0xFF,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0xFF,0x18,0x18,0x18,
-0x18,0x18,0x18,0x18,0xF8,0x18,0x18,0x18,
-0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,
-0x18,0x18,0x18,0x18,0xFF,0x18,0x18,0x18,
-0x18,0x18,0xF8,0x18,0xF8,0x18,0x18,0x18,
-0x6C,0x6C,0x6C,0x6C,0xEC,0x6C,0x6C,0x6C,
-0x6C,0x6C,0xEC,0x0C,0xFC,0x00,0x00,0x00,
-0x00,0x00,0xFC,0x0C,0xEC,0x6C,0x6C,0x6C,
-0x6C,0x6C,0xEF,0x00,0xFF,0x00,0x00,0x00,
-0x00,0x00,0xFF,0x00,0xEF,0x6C,0x6C,0x6C,
-0x6C,0x6C,0xEC,0x0C,0xEC,0x6C,0x6C,0x6C,
-0x00,0x00,0xFF,0x00,0xFF,0x00,0x00,0x00,
-0x6C,0x6C,0xEF,0x00,0xEF,0x6C,0x6C,0x6C,
-0x18,0x18,0xFF,0x00,0xFF,0x00,0x00,0x00,
-0x6C,0x6C,0x6C,0x6C,0xFF,0x00,0x00,0x00,
-0x00,0x00,0xFF,0x00,0xFF,0x18,0x18,0x18,
-0x00,0x00,0x00,0x00,0xFF,0x6C,0x6C,0x6C,
-0x6C,0x6C,0x6C,0x6C,0xFC,0x00,0x00,0x00,
-0x18,0x18,0xF8,0x18,0xF8,0x00,0x00,0x00,
-0x00,0x00,0xF8,0x18,0xF8,0x18,0x18,0x18,
-0x00,0x00,0x00,0x00,0xFC,0x6C,0x6C,0x6C,
-0x6C,0x6C,0x6C,0x6C,0xEF,0x6C,0x6C,0x6C,
-0x18,0x18,0xFF,0x00,0xFF,0x18,0x18,0x18,
-0x18,0x18,0x18,0x18,0x1F,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0xF8,0x18,0x18,0x18,
-0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
-0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,
-0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,
-0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,
-0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,
-0x00,0x00,0x6E,0x3B,0x13,0x3B,0x6E,0x00,
-0x00,0x1E,0x33,0x1F,0x33,0x1F,0x03,0x03,
-0x00,0x7F,0x63,0x03,0x03,0x03,0x03,0x00,
-0x00,0x7F,0x36,0x36,0x36,0x36,0x36,0x00,
-0x7F,0x66,0x0C,0x18,0x0C,0x66,0x7F,0x00,
-0x00,0x00,0x7E,0x33,0x33,0x33,0x1E,0x00,
-0x00,0x66,0x66,0x66,0x66,0x3E,0x06,0x03,
-0x00,0x6E,0x3B,0x18,0x18,0x18,0x18,0x00,
-0x3F,0x0C,0x1E,0x33,0x33,0x1E,0x0C,0x3F,
-0x1C,0x36,0x63,0x7F,0x63,0x36,0x1C,0x00,
-0x1C,0x36,0x63,0x63,0x36,0x36,0x77,0x00,
-0x38,0x0C,0x18,0x3E,0x33,0x33,0x1E,0x00,
-0x00,0x00,0x7E,0xDB,0xDB,0x7E,0x00,0x00,
-0x60,0x30,0x7E,0xDB,0xDB,0x7E,0x06,0x03,
-0x3C,0x06,0x03,0x3F,0x03,0x06,0x3C,0x00,
-0x1E,0x33,0x33,0x33,0x33,0x33,0x33,0x00,
-0x00,0x3F,0x00,0x3F,0x00,0x3F,0x00,0x00,
-0x0C,0x0C,0x3F,0x0C,0x0C,0x00,0x3F,0x00,
-0x06,0x0C,0x18,0x0C,0x06,0x00,0x3F,0x00,
-0x18,0x0C,0x06,0x0C,0x18,0x00,0x3F,0x00,
-0x70,0xD8,0xD8,0x18,0x18,0x18,0x18,0x18,
-0x18,0x18,0x18,0x18,0x18,0x1B,0x1B,0x0E,
-0x0C,0x0C,0x00,0x3F,0x00,0x0C,0x0C,0x00,
-0x00,0x4E,0x39,0x00,0x4E,0x39,0x00,0x00,
-0x1C,0x36,0x36,0x1C,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x18,0x18,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,
-0xF0,0x30,0x30,0x30,0x37,0x36,0x3C,0x38,
-0x1E,0x36,0x36,0x36,0x36,0x00,0x00,0x00,
-0x1E,0x30,0x1C,0x06,0x3E,0x00,0x00,0x00,
-0x00,0x00,0x3C,0x3C,0x3C,0x3C,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
+0x1E,0x33,0x03,0x33,0x1E,0x18,0x30,0x1E,//€
+0x00,0x33,0x00,0x33,0x33,0x33,0x7E,0x00,//�
+0x38,0x00,0x1E,0x33,0x3F,0x03,0x1E,0x00,//‚
+0x7E,0xC3,0x3C,0x60,0x7C,0x66,0xFC,0x00,//ƒ
+0x33,0x00,0x1E,0x30,0x3E,0x33,0x7E,0x00,//„
+0x07,0x00,0x1E,0x30,0x3E,0x33,0x7E,0x00,//…
+0x0C,0x0C,0x1E,0x30,0x3E,0x33,0x7E,0x00,//†
+0x00,0x00,0x3E,0x03,0x03,0x3E,0x60,0x3C,//‡
+0x7E,0xC3,0x3C,0x66,0x7E,0x06,0x3C,0x00,//ˆ
+0x33,0x00,0x1E,0x33,0x3F,0x03,0x1E,0x00,//‰
+0x07,0x00,0x1E,0x33,0x3F,0x03,0x1E,0x00,//Š
+0x33,0x00,0x0E,0x0C,0x0C,0x0C,0x1E,0x00,//‹
+0x3E,0x63,0x1C,0x18,0x18,0x18,0x3C,0x00,//Œ
+0x07,0x00,0x0E,0x0C,0x0C,0x0C,0x1E,0x00,//�
+0x33,0x0C,0x1E,0x33,0x33,0x3F,0x33,0x00,//Ž
+0x0C,0x0C,0x00,0x1E,0x33,0x3F,0x33,0x00,//�
+0x38,0x00,0x3F,0x06,0x1E,0x06,0x3F,0x00,//�
+0x00,0x00,0xFE,0x30,0xFE,0x33,0xFE,0x00,//‘
+0x7C,0x36,0x33,0x7F,0x33,0x33,0x73,0x00,//’
+0x1E,0x33,0x00,0x1E,0x33,0x33,0x1E,0x00,//“
+0x00,0x33,0x00,0x1E,0x33,0x33,0x1E,0x00,//”
+0x00,0x07,0x00,0x1E,0x33,0x33,0x1E,0x00,//•
+0x1E,0x33,0x00,0x33,0x33,0x33,0x7E,0x00,//–
+0x00,0x07,0x00,0x33,0x33,0x33,0x7E,0x00,//—
+0x00,0x33,0x00,0x33,0x33,0x3F,0x30,0x1F,//˜
+0x63,0x1C,0x3E,0x63,0x63,0x3E,0x1C,0x00,//™
+0x33,0x00,0x33,0x33,0x33,0x33,0x1E,0x00,//š
+0x18,0x18,0x7E,0x03,0x03,0x7E,0x18,0x18,//›
+0x1C,0x36,0x26,0x0F,0x06,0x67,0x3F,0x00,//œ
+0x33,0x33,0x1E,0x3F,0x0C,0x3F,0x0C,0x00,//�
+0x0F,0x1B,0x1B,0x2F,0x33,0x7B,0x33,0x70,//ž
+0x70,0xD8,0x18,0x7E,0x18,0x18,0x1B,0x0E,//Ÿ
+0x38,0x00,0x1E,0x30,0x3E,0x33,0x7E,0x00,// 
+0x1C,0x00,0x0E,0x0C,0x0C,0x0C,0x1E,0x00,//¡
+0x00,0x38,0x00,0x1E,0x33,0x33,0x1E,0x00,//¢
+0x00,0x38,0x00,0x33,0x33,0x33,0x7E,0x00,//£
+0x00,0x1F,0x00,0x1F,0x33,0x33,0x33,0x00,//¤
+0x3F,0x00,0x33,0x37,0x3F,0x3B,0x33,0x00,//¥
+0x3C,0x36,0x36,0x7C,0x00,0x7E,0x00,0x00,//¦
+0x3C,0x66,0x66,0x3C,0x00,0x7E,0x00,0x00,//§
+0x0C,0x00,0x0C,0x06,0x03,0x33,0x1E,0x00,//¨
+0x00,0x00,0x00,0x3F,0x03,0x03,0x00,0x00,//©
+0x00,0x00,0x00,0x3F,0x30,0x30,0x00,0x00,//ª
+0x63,0x33,0x1B,0x7C,0xC6,0x73,0x19,0xF8,//«
+0x63,0x33,0x1B,0xCF,0xE6,0xF3,0xF9,0xC0,//¬
+0x00,0x18,0x00,0x18,0x18,0x3C,0x3C,0x18,//­
+0x00,0xCC,0x66,0x33,0x66,0xCC,0x00,0x00,//®
+0x00,0x33,0x66,0xCC,0x66,0x33,0x00,0x00,//¯
+0x44,0x11,0x44,0x11,0x44,0x11,0x44,0x11,//°
+0xAA,0x55,0xAA,0x55,0xAA,0x55,0xAA,0x55,//±
+0xBB,0xEE,0xBB,0xEE,0xBB,0xEE,0xBB,0xEE,//²
+0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,//³
+0x18,0x18,0x18,0x18,0x1F,0x18,0x18,0x18,//´
+0x18,0x18,0x1F,0x18,0x1F,0x18,0x18,0x18,//µ
+0x6C,0x6C,0x6C,0x6C,0x6F,0x6C,0x6C,0x6C,//¶
+0x00,0x00,0x00,0x00,0x7F,0x6C,0x6C,0x6C,//·
+0x00,0x00,0x1F,0x18,0x1F,0x18,0x18,0x18,//¸
+0x6C,0x6C,0x6F,0x60,0x6F,0x6C,0x6C,0x6C,//¹
+0x6C,0x6C,0x6C,0x6C,0x6C,0x6C,0x6C,0x6C,//º
+0x00,0x00,0x7F,0x60,0x6F,0x6C,0x6C,0x6C,//»
+0x6C,0x6C,0x6F,0x60,0x7F,0x00,0x00,0x00,//¼
+0x6C,0x6C,0x6C,0x6C,0x7F,0x00,0x00,0x00,//½
+0x18,0x18,0x1F,0x18,0x1F,0x00,0x00,0x00,//¾
+0x00,0x00,0x00,0x00,0x1F,0x18,0x18,0x18,//¿
+0x18,0x18,0x18,0x18,0xF8,0x00,0x00,0x00,//À
+0x18,0x18,0x18,0x18,0xFF,0x00,0x00,0x00,//Á
+0x00,0x00,0x00,0x00,0xFF,0x18,0x18,0x18,//Â
+0x18,0x18,0x18,0x18,0xF8,0x18,0x18,0x18,//Ã
+0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,//Ä
+0x18,0x18,0x18,0x18,0xFF,0x18,0x18,0x18,//Å
+0x18,0x18,0xF8,0x18,0xF8,0x18,0x18,0x18,//Æ
+0x6C,0x6C,0x6C,0x6C,0xEC,0x6C,0x6C,0x6C,//Ç
+0x6C,0x6C,0xEC,0x0C,0xFC,0x00,0x00,0x00,//È
+0x00,0x00,0xFC,0x0C,0xEC,0x6C,0x6C,0x6C,//É
+0x6C,0x6C,0xEF,0x00,0xFF,0x00,0x00,0x00,//Ê
+0x00,0x00,0xFF,0x00,0xEF,0x6C,0x6C,0x6C,//Ë
+0x6C,0x6C,0xEC,0x0C,0xEC,0x6C,0x6C,0x6C,//Ì
+0x00,0x00,0xFF,0x00,0xFF,0x00,0x00,0x00,//Í
+0x6C,0x6C,0xEF,0x00,0xEF,0x6C,0x6C,0x6C,//Î
+0x18,0x18,0xFF,0x00,0xFF,0x00,0x00,0x00,//Ï
+0x6C,0x6C,0x6C,0x6C,0xFF,0x00,0x00,0x00,//Ð
+0x00,0x00,0xFF,0x00,0xFF,0x18,0x18,0x18,//Ñ
+0x00,0x00,0x00,0x00,0xFF,0x6C,0x6C,0x6C,//Ò
+0x6C,0x6C,0x6C,0x6C,0xFC,0x00,0x00,0x00,//Ó
+0x18,0x18,0xF8,0x18,0xF8,0x00,0x00,0x00,//Ô
+0x00,0x00,0xF8,0x18,0xF8,0x18,0x18,0x18,//Õ
+0x00,0x00,0x00,0x00,0xFC,0x6C,0x6C,0x6C,//Ö
+0x6C,0x6C,0x6C,0x6C,0xEF,0x6C,0x6C,0x6C,//×
+0x18,0x18,0xFF,0x00,0xFF,0x18,0x18,0x18,//Ø
+0x18,0x18,0x18,0x18,0x1F,0x00,0x00,0x00,//Ù
+0x00,0x00,0x00,0x00,0xF8,0x18,0x18,0x18,//Ú
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,//Û
+0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,//Ü
+0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,//Ý
+0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,//Þ
+0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,//ß
+0x00,0x00,0x6E,0x3B,0x13,0x3B,0x6E,0x00,//à
+0x00,0x1E,0x33,0x1F,0x33,0x1F,0x03,0x03,//á
+0x00,0x7F,0x63,0x03,0x03,0x03,0x03,0x00,//â
+0x00,0x7F,0x36,0x36,0x36,0x36,0x36,0x00,//ã
+0x7F,0x66,0x0C,0x18,0x0C,0x66,0x7F,0x00,//ä
+0x00,0x00,0x7E,0x33,0x33,0x33,0x1E,0x00,//å
+0x00,0x66,0x66,0x66,0x66,0x3E,0x06,0x03,//æ
+0x00,0x6E,0x3B,0x18,0x18,0x18,0x18,0x00,//ç
+0x3F,0x0C,0x1E,0x33,0x33,0x1E,0x0C,0x3F,//è
+0x1C,0x36,0x63,0x7F,0x63,0x36,0x1C,0x00,//é
+0x1C,0x36,0x63,0x63,0x36,0x36,0x77,0x00,//ê
+0x38,0x0C,0x18,0x3E,0x33,0x33,0x1E,0x00,//ë
+0x00,0x00,0x7E,0xDB,0xDB,0x7E,0x00,0x00,//ì
+0x60,0x30,0x7E,0xDB,0xDB,0x7E,0x06,0x03,//í
+0x3C,0x06,0x03,0x3F,0x03,0x06,0x3C,0x00,//î
+0x1E,0x33,0x33,0x33,0x33,0x33,0x33,0x00,//ï
+0x00,0x3F,0x00,0x3F,0x00,0x3F,0x00,0x00,//ð
+0x0C,0x0C,0x3F,0x0C,0x0C,0x00,0x3F,0x00,//ñ
+0x06,0x0C,0x18,0x0C,0x06,0x00,0x3F,0x00,//ò
+0x18,0x0C,0x06,0x0C,0x18,0x00,0x3F,0x00,//ó
+0x70,0xD8,0xD8,0x18,0x18,0x18,0x18,0x18,//ô
+0x18,0x18,0x18,0x18,0x18,0x1B,0x1B,0x0E,//õ
+0x0C,0x0C,0x00,0x3F,0x00,0x0C,0x0C,0x00,//ö
+0x00,0x4E,0x39,0x00,0x4E,0x39,0x00,0x00,//÷
+0x1C,0x36,0x36,0x1C,0x00,0x00,0x00,0x00,//ø
+0x00,0x00,0x00,0x18,0x18,0x00,0x00,0x00,//ù
+0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,//ú
+0xF0,0x30,0x30,0x30,0x37,0x36,0x3C,0x38,//û
+0x1E,0x36,0x36,0x36,0x36,0x00,0x00,0x00,//ü
+0x1E,0x30,0x1C,0x06,0x3E,0x00,0x00,0x00,//ý
+0x00,0x00,0x3C,0x3C,0x3C,0x3C,0x00,0x00,//þ
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//ÿ
 };
diff --git a/TempleOS/Kernel/Hash1a.CPP b/TempleOS/Kernel/Hash1a.CPP
index 480cc9f..8973fe1 100644
--- a/TempleOS/Kernel/Hash1a.CPP
+++ b/TempleOS/Kernel/Hash1a.CPP
@@ -77,7 +77,7 @@ USE64
 // OUT:	RAX
 SYS_HASH_STR::
 	XOR	RAX,RAX
-	OR	RSI,RSI
+	TEST	RSI,RSI
 	JZ	@@15
 
 	PUSH	RSI
@@ -88,7 +88,7 @@ SYS_HASH_STR::
 @@05:	SHL1	RBX
 	ADC	RBX,RAX
 @@10:	LODSB
-	OR	AL,AL
+	TEST	AL,AL
 	JNZ	@@05
 
 	MOV	RAX,RBX
@@ -111,7 +111,7 @@ SYS_HASH_STR::
 SYS_HASH_SINGLE_TABLE_FIND1::
 	MOV	RCX,1
 SYS_HASH_SINGLE_TABLE_FIND::
-	OR	RCX,RCX
+	TEST	RCX,RCX
 	JNZ	@@05
 	XOR	RAX,RAX
 	RET
@@ -119,7 +119,7 @@ SYS_HASH_SINGLE_TABLE_FIND::
 	MOV	RDX,U64 CHashTable.body[RDI]
 	LEA	RDX,U64 [RDX+RAX*8]
 @@10:	MOV	RAX,U64 [RDX]
-	OR	RAX,RAX
+	TEST	RAX,RAX
 	JNZ	@@15
 	RET
 
@@ -133,14 +133,14 @@ SYS_HASH_SINGLE_TABLE_FIND::
 	CMP	U8 [RDI],AL
 	JNE	@@25
 	INC	RDI
-	OR	AL,AL
+	TEST	AL,AL
 	JNZ	@@20
 	POP	RSI
 	POP	RDI
 	POP	RAX
 	LOOP	@@30
 	INC	U32 CHash.use_cnt[RAX]
-	OR	RAX,RAX
+	TEST	RAX,RAX
 	RET
 
 @@25:	POP	RSI
@@ -167,7 +167,7 @@ SYS_HASH_FIND::
 	JNZ	@@15
 	POP	RAX
 @@10:	MOV	RDI,U64 CHashTable.next[RDI]
-	OR	RDI,RDI
+	TEST	RDI,RDI
 	JNZ	@@05
 	POP	RDI
 	XOR	RAX,RAX
@@ -175,7 +175,7 @@ SYS_HASH_FIND::
 
 @@15:	ADD	RSP,8
 	POP	RDI
-	OR	RAX,RAX
+	TEST	RAX,RAX
 	RET
 // ************************************
 // IN:	RSI=STR
@@ -211,7 +211,7 @@ SYS_EXT_FIND::
 @@10:	MOV	RAX,U64 CHashExport.val[RAX]
 @@15:	POP	RBX
 	POP	RDI
-	OR	RAX,RAX
+	TEST	RAX,RAX
 	RET
 _EXT_FIND::
 	ENTER	0
@@ -341,12 +341,12 @@ _HASH_REPLACE::
 	PUSH	RSI
 	PUSH	RDI
 	MOV	RCX,U64 SF_ARG1[RBP]
-	OR	RCX,RCX
+	TEST	RCX,RCX
 	JZ	@@15
 	MOV	RSI,U64 CHash.str[RCX]
 	XOR	RBX,RBX
 	MOV	EBX,U32 CHash.type[RCX]
-	AND	EBX,~HTF_FLAGS_MASK&0xFFFFFFFF
+	AND	EBX,~HTG_FLAGS_MASK&0xFFFFFFFF
 	MOV	RDI,U64 SF_ARG2[RBP]
 	MOV	RCX,U64 SF_ARG3[RBP]
 	CALL	SYS_HASH_STR
@@ -381,7 +381,7 @@ _HASH_REPLACE::
 	MOV	U64 [RDX],RCX
 	POPFD
 
-	OR	RAX,RAX
+	TEST	RAX,RAX
 	JZ	@@15
 	PUSH_C_REGS
 	PUSH	RAX
@@ -398,12 +398,12 @@ _HASH_REM_DEL::
 	PUSH	RSI
 	PUSH	RDI
 	MOV	RCX,U64 SF_ARG1[RBP]
-	OR	RCX,RCX
+	TEST	RCX,RCX
 	JZ	@@10
 	MOV	RSI,U64 CHash.str[RCX]
 	XOR	RBX,RBX
 	MOV	EBX,U32 CHash.type[RCX]
-	AND	EBX,~HTF_FLAGS_MASK&0xFFFFFFFF
+	AND	EBX,~HTG_FLAGS_MASK&0xFFFFFFFF
 	MOV	RDI,U64 SF_ARG2[RBP]
 	MOV	RCX,U64 SF_ARG3[RBP]
 	CALL	SYS_HASH_STR
@@ -461,7 +461,7 @@ _extern _HASH_REM_DEL Bool HashRemDel(CHash *temph,CHashTable *table,
 I64 HashTypeNum(CHash *temph)
 {
   if (temph)
-    return Bsf(temph->type&HTT_TYPE_MASK);
+    return Bsf(temph->type&HTG_TYPE_MASK);
   else
     return -1;
 }
@@ -533,37 +533,37 @@ CHashGeneric *HashGenericAdd(U8 *name,I64 type,I64 u0=0,I64 u1=0,I64 u2=0,CTask
   return result;
 }
 
-I64 NamedFramePtr(U8 *name,CTask *task=NULL)
+I64 FramePtr(U8 *name,CTask *task=NULL)
 {
   CHashGeneric *temph;
   if (!task) task=Fs;
-  if (temph=HashFind(name,task->hash_table,HTT_NAMED_FRAME_PTR))
+  if (temph=HashFind(name,task->hash_table,HTT_FRAME_PTR))
     return temph->user_data0;
   else
     return 0;
 }
 
-CHashGeneric *NamedFramePtrAdd(U8 *name,I64 val,CTask *task=NULL)
+CHashGeneric *FramePtrAdd(U8 *name,I64 val,CTask *task=NULL)
 {
-  return HashGenericAdd(name,HTT_NAMED_FRAME_PTR,val,0,0,task);
+  return HashGenericAdd(name,HTT_FRAME_PTR,val,0,0,task);
 }
 
-I64 NamedFramePtrSet(U8 *name,I64 val,CTask *task=NULL)
+I64 FramePtrSet(U8 *name,I64 val,CTask *task=NULL)
 {
   CHashGeneric *temph;
   if (!task) task=Fs;
-  if (temph=HashFind(name,task->hash_table,HTT_NAMED_FRAME_PTR))
+  if (temph=HashFind(name,task->hash_table,HTT_FRAME_PTR))
     return LXchgU64(&temph->user_data0,val);
   else
     return 0;
 }
 
-I64 NamedFramePtrDel(U8 *name,CTask *task=NULL)
+I64 FramePtrDel(U8 *name,CTask *task=NULL)
 {
   CHashGeneric *temph;
   I64 result=0;
   if (!task) task=Fs;
-  if (temph=HashFind(name,task->hash_table,HTT_NAMED_FRAME_PTR)) {
+  if (temph=HashFind(name,task->hash_table,HTT_FRAME_PTR)) {
     result=temph->user_data0;
     HashRemDel(temph,task->hash_table);
   }
@@ -574,11 +574,9 @@ U0 LoadOneImport(U8 **_src,U8 *module_base,I64 ld_flags)
 {
   U8 *src=*_src,*ptr2,*st_ptr;
   I64 i,etype;
-  CHashExport *tempess=NULL;
+  CHashExport *tempex=NULL;
   CHashImport *tempiss;
   Bool first=TRUE;
-  CHashFun *tempf;
-  CHashGlblVar *tempg;
 
   while (etype=*src++) {
     i=*src(U32 *)++;
@@ -590,11 +588,10 @@ U0 LoadOneImport(U8 **_src,U8 *module_base,I64 ld_flags)
 	return;
       } else {
 	first=FALSE;
-	if (!(tempess=HashFind(st_ptr,Fs->hash_table,HTG_ALL-HTT_IMPORT_SYS_SYM))) {
+	if (!(tempex=HashFind(st_ptr,Fs->hash_table,HTG_ALL-HTT_IMPORT_SYS_SYM))) {
 	  if (!(ld_flags & LDF_SILENT)) {
 	    PutDefine("ST_UNRESOLVED_REFERENCE");
-	    "" st_ptr;
-	    NewLine;
+	    "%s\n",st_ptr;
 	  }
 	  tempiss=CAlloc(sizeof(CHashImport));
 	  tempiss->str=StrNew(st_ptr);
@@ -605,34 +602,24 @@ U0 LoadOneImport(U8 **_src,U8 *module_base,I64 ld_flags)
 	}
       }
     }
-    if (tempess) {
+    if (tempex) {
       ptr2=module_base+i;
-      if (tempess->type & HTT_FUN) {
-	tempf=tempess;
-	if (etype & 1)
-	  i=tempf->executable_addr;
-	else
-	  i=tempf->executable_addr-module_base;
-      } else if (tempess->type & HTT_GLBL_VAR) {
-	tempg=tempess;
-	if (etype & 1)
-	  i=tempg->data_addr;
-	else
-	  i=tempg->data_addr-module_base;
-      } else {
-	if (etype & 1)
-	  i=tempess->val;
-	else
-	  i=tempess->val(U8 *)-module_base;
+      if (tempex->type & HTT_FUN)
+	i=tempex(CHashFun *)->executable_addr;
+      else if (tempex->type & HTT_GLBL_VAR)
+	i=tempex(CHashGlblVar *)->data_addr;
+      else
+	i=tempex->val;
+      switch (etype) {
+	case EIE_REL_U8:  *ptr2(U8 *) =i-ptr2-1; break;
+	case EIE_IMM_U8:  *ptr2(U8 *) =i;  break;
+	case EIE_REL_U16: *ptr2(U16 *)=i-ptr2-2; break;
+	case EIE_IMM_U16: *ptr2(U16 *)=i; break;
+	case EIE_REL_U32: *ptr2(U32 *)=i-ptr2-4; break;
+	case EIE_IMM_U32: *ptr2(U32 *)=i; break;
+	case EIE_REL_U64: *ptr2(I64 *)=i-ptr2-8; break;
+	case EIE_IMM_U64: *ptr2(I64 *)=i; break;
       }
-      if (etype<=EIE_LIT_U8)
-	*ptr2(U8 *)+=i;
-      else if (etype<=EIE_LIT_U16)
-	*ptr2(U16 *)+=i;
-      else if (etype<=EIE_LIT_U32)
-	*ptr2(U32 *)+=i;
-      else if (etype<=EIE_LIT_U64)
-	*ptr2(I64 *)+=i;
     }
   }
   *_src=src-1;
@@ -653,25 +640,25 @@ U0 LoadPass1(U8 *src,U8 *module_base,I64 ld_flags)
 {
   U8 *ptr2,*ptr3,*st_ptr;
   I64 i,j,cnt,etype;
-  CHashExport *tempess=NULL;
+  CHashExport *tempex=NULL;
   while (etype=*src++) {
     i=*src(U32 *)++;
     st_ptr=src;
     src+=StrLen(st_ptr)+1;
     switch (etype) {
       case EIE_REL_EXPORT:
-      case EIE_LIT_EXPORT:
-	tempess=CAlloc(sizeof(CHashExport));
-	tempess->str=StrNew(st_ptr);
-	tempess->type=HTT_EXPORT_SYS_SYM|HTF_LIT;
-	if (etype==EIE_LIT_EXPORT)
-	  tempess->val=i;
+      case EIE_IMM_EXPORT:
+	tempex=CAlloc(sizeof(CHashExport));
+	tempex->str=StrNew(st_ptr);
+	tempex->type=HTT_EXPORT_SYS_SYM|HTF_IMM;
+	if (etype==EIE_IMM_EXPORT)
+	  tempex->val=i;
 	else
-	  tempess->val=i+module_base;
-	HashAdd(tempess,Fs->hash_table);
+	  tempex->val=i+module_base;
+	HashAdd(tempex,Fs->hash_table);
 	SysSymImportsResolve(st_ptr,ld_flags);
 	break;
-      case EIE_REL_U8...EIE_LIT_U64:
+      case EIE_REL_U8...EIE_IMM_U64:
 	src=st_ptr-5;
 	LoadOneImport(&src,module_base,ld_flags);
 	break;
@@ -690,11 +677,11 @@ U0 LoadPass1(U8 *src,U8 *module_base,I64 ld_flags)
 	ptr3=MAlloc(*src(I64 *)++);
 
 	if (*st_ptr) {
-	  tempess=CAlloc(sizeof(CHashExport));
-	  tempess->str=StrNew(st_ptr);
-	  tempess->type=HTT_EXPORT_SYS_SYM|HTF_LIT;
-	  tempess->val=ptr3;
-	  HashAdd(tempess,Fs->hash_table);
+	  tempex=CAlloc(sizeof(CHashExport));
+	  tempex->str=StrNew(st_ptr);
+	  tempex->type=HTT_EXPORT_SYS_SYM|HTF_IMM;
+	  tempex->val=ptr3;
+	  HashAdd(tempex,Fs->hash_table);
 	}
 
 	cnt=i;
@@ -805,5 +792,37 @@ U0 LoadKernel()
 //No main routines
 //  LoadPass2(sys_boot_patch_table_base,sys_boot_base,0);
 }
-Í" Cat"8äCbs"XDog"täDog"ÀBird!D\`!h€ô!´\Ì!(\,!0@ôXHX`X`T`T`THTHXHlHl`ªxª\ÀxÀ\€H€`HHH`\H\`pHp`4H4`xðxðxð\ð\\\x$\$x8\8xL\Lx`\`x\x0\0xD\Dx\xx88ìÿÿÿ8ìÿÿÿ8ìÿÿÿxìÿÿÿxxH`H,H,4,4,4`4`H`!hh!HTXT!üÿÿÿ8@d
-!P\Ì!\Ì4è!Tèdè!dèd!d�è!pè`è!\è\ô!\ô¼!ä!<L!LL(!L(Œ(!Œ(t!T\	!\ÐT!4ì`Ð!`T!tŒ0!Œ0H,!H,H!H<!ä!¼`ø!`ø`ì!`ìpì!�ìd!d`ì!`ìTì
\ No newline at end of file
+Í Cat8äCbsXDogtäDogÀBirdD\`h€ô´\Ì(\,0@ô
+XHX`
+X`T`
+T`TH
+THXH
+lHl`
+ªxª\
+ÀxÀ\
+€H€`
+HHH`
+\H\`
+pHp`
+4H4`
+xðx
+ðxð\
+ð\\
+\x
+$\$x
+8\8x
+L\Lx
+`\`x
+\x
+0\0x
+D\Dx
+\x
+x8
+8ìÿÿÿ8
+ìÿÿÿ8ìÿÿÿx
+ìÿÿÿxx
+H`H,
+H,4,
+4,4`
+4`H`hhHTXTüÿÿÿ8@d
+P\Ì\Ì4èTèdèdèdd�èpè`è\è\ô\ô¼ä<LLL(L(Œ(Œ(tT\	\ÐT4ì`Ð`TtŒ0Œ0H,H,HH<ä¼`ø`ø`ì`ìpì�ìdd`ì`ìTì
\ No newline at end of file
diff --git a/TempleOS/Kernel/Interrupts.CPP b/TempleOS/Kernel/Interrupts.CPP
index 261db9b..57e014a 100644
--- a/TempleOS/Kernel/Interrupts.CPP
+++ b/TempleOS/Kernel/Interrupts.CPP
@@ -34,7 +34,7 @@ SYS_TIMER_HANDLER::
 	INC	U64 CCPU.idle_pt_hits[RDI]
 
 @@05:	MOV	RAX,U64 CCPU.timer_irq_chain[RDI]
-	OR	RAX,RAX
+	TEST	RAX,RAX
 	JZ	@@10
 	PUSH	RSI
 	CALL	RAX
@@ -42,7 +42,7 @@ SYS_TIMER_HANDLER::
 @@10:	ADD	RSP,8
 @@15:	CLI
 	MOV	RAX,U64 CCPU.num[RDI]
-	OR	RAX,RAX
+	TEST	RAX,RAX
 	JZ	@@20
 
 	MOV	EAX,U32 LAPIC_EOI
@@ -126,7 +126,7 @@ U8 *IntEntrySet(I64 irq,U0 (*fp_new_handler)(),I64 type=IDTET_IRQ,I64 dpl=0)
   *dst(U16 *)++=0x8000+type<<8+dpl<<13;
   *dst(U16 *)++=fp.u16[1];
   *dst(U32 *)++=fp.u32[1];
-  *dst(U32 *)++=0;
+  *dst(U32 *)=0;
   PopFD;
   return result;
 }
@@ -176,15 +176,15 @@ U0 IntInit1()
 { //Interrupt descriptor table part1
   I64 i,temp_ptr[2];
   U32 *ptr;
-  if (!Gs->num) {
+  if (!Gs->num) { //Gs cur $LK,"CCPU","MN:CCPU"$ struct
     sys_idt=CAlloc(16*256);
     for (i=0;i<256;i++)
       IntEntrySet(i,&IntNop);
   }
   ptr=temp_ptr;
-  *ptr(U16 *)++=256*16-1;
+  *ptr(U16 *)++=256*16-1; //Typecasting is postfix
   *ptr(I64 *)++=sys_idt;
-  *ptr(U16 *)++=0;
+  *ptr(U16 *)=0;
   SetRAX(temp_ptr);
   asm {	LIDT U64 [RAX] }
 }
diff --git a/TempleOS/Kernel/KCfg.CPP b/TempleOS/Kernel/KCfg.CPP
index 1a21df1..147f0bd 100644
--- a/TempleOS/Kernel/KCfg.CPP
+++ b/TempleOS/Kernel/KCfg.CPP
@@ -39,7 +39,7 @@ CDoc *KernelCfgAddDev(CKernelCfg *c)
   Bool make_free;
 
   //See $LK,"InsBootDstDrv","FF:::/TempleOS/Adam/Boot/InsBoot.CPP,InsBootDstDrv"$
-  if (!(c->sys_acct_drv=NamedFramePtr("InsBootDstDrv")))
+  if (!(c->sys_acct_drv=FramePtr("InsBootDstDrv")))
     c->sys_acct_drv=Fs->cur_prt->drv_let;
 
   PutDefine("ST_MOUNT_INTRO");
@@ -78,8 +78,8 @@ CDoc *KernelCfgAddDev(CKernelCfg *c)
 	  } while (!A2I(base0_buf));
 	if (1<=A2I(base0_buf)<=num_hints) {
 	  tempha=ATARepFind(root,A2I(base0_buf));
-	  SPrintF(base0_buf,"0x%X",tempha->base0);
-	  SPrintF(base1_buf,"0x%X",tempha->base1);
+	  SPrint(base0_buf,"0x%X",tempha->base0);
+	  SPrint(base1_buf,"0x%X",tempha->base1);
 	  unit=tempha->unit;
 	} else if (type!=BDT_ATAPI || *base0_buf) {
 	  if (type==BDT_ATAPI)
@@ -98,25 +98,25 @@ CDoc *KernelCfgAddDev(CKernelCfg *c)
 	LinkedLstDel(root);
       }
       if (BDT_NULLunit=%d;",first_prt_num+'A',type,unit);
 	if (type==BDT_RAM) {
 	  if (!*addr_buf) StrCpy(addr_buf,"0");
-	  DocPrintF(doc,"bdev->RAM_dsk=%s;",addr_buf);
-	  DocPrintF(doc,"bdev->max_blk=(%s)-1;",blks_buf);
+	  DocPrint(doc,"bdev->RAM_dsk=%s;",addr_buf);
+	  DocPrint(doc,"bdev->max_blk=(%s)-1;",blks_buf);
 	}
 	make_free=FALSE;
 	if (type==BDT_ATA || type==BDT_ATAPI) {
 	  if (type==BDT_ATAPI && !*base0_buf) {
 	    c->cdrom_ports_pmt=TRUE;
-	    DocPrintF(doc,"boot_drv_pmt=PmtBaseUnit(bdev);");
+	    DocPrint(doc,"boot_drv_pmt=PmtBaseUnit(bdev);");
 	    if (first_prt_num+'A'==c->sys_acct_drv)
 	      make_free=TRUE;
 	  } else
-	    DocPrintF(doc,"bdev->base0=%s;bdev->base1=%s;",
+	    DocPrint(doc,"bdev->base0=%s;bdev->base1=%s;",
 		base0_buf,base1_buf);
 	}
-	DocPrintF(doc,"BlkDevAdd(bdev,FALSE,%d);",make_free);
+	DocPrint(doc,"BlkDevAdd(bdev,FALSE,%d);",make_free);
 	cnt++;
       } else
 	PutDefine("ST_FAILED");
@@ -136,7 +136,7 @@ U0 KernelCfgOptions(CKernelCfg *c)
       "$$FG,PURPLE$$%13tz$$FG$$:%Z\n",i,kernel_cfg_options,c->opts[i],"ST_OFF_ON";
     "\nType '$$FG,PURPLE$$Help$$FG$$' for help.\n";
     st=PmtStr("Option ($$FG,PURPLE$$$$FG$$ when done):","");
-    i=LstEntryMatch(st,kernel_cfg_options,LEF_IGNORE_CASE);
+    i=LstMatch(st,kernel_cfg_options,LMF_IGNORE_CASE);
     if (i==CFG_HELP)
 "\n"
 "$$FG,PURPLE$$ProtectLow$$FG$$ Marks memory at and below 0x%0X as not present.\n"
@@ -216,7 +216,7 @@ CKernelCfg *KernelCfgNew()
   c->bios_gr_mode=0x12; //0x12=640x480x4 0x6A=800x600x4
   KernelCfgOptions(c);
   if (c->opts[CFG_DETERMINISTIC])
-    StreamPutS("#define SYS_DETERMINISTIC");
+    StreamPrint("#define SYS_DETERMINISTIC");
   return c;
 }
  
diff --git a/TempleOS/Kernel/KEnd.CPP b/TempleOS/Kernel/KEnd.CPP
index adcf68a..8dfce27 100644
--- a/TempleOS/Kernel/KEnd.CPP
+++ b/TempleOS/Kernel/KEnd.CPP
@@ -7,7 +7,7 @@ U0 SysGlblsInit()
   CPUId(0x1,&ee);
   sys_cache_line_width=ee.rbx.u8[1]*8;
   QueInit(&sys_pci_dev_root);
-  sys_rnd_seed = 93186752^GetTimeStamp;
+  sys_rnd_seed = 93186752^GetTSC;
   sys_focus_task=Fs;
   QueInit(&sys_macro_root);
   sys_dft_iso_name="::/Temp/CDDVD.ISO";
@@ -27,7 +27,7 @@ U0 SysGlblsInit()
       if (Bt(&i,j))
 	set_bits_table[i]++;
 
-  ext=CAlloc(EXT_TABLE_SIZE*sizeof(U8 *));
+  ext=CAlloc(EXT_NUM_ENTRIES*sizeof(U8 *));
   fp_mgets=&SysMGetS;
 
   fp_ctrl_alt_let_cbs=CAlloc(26*sizeof(U8 *));
@@ -44,12 +44,12 @@ U0 SysGlblsInit()
   KeyDevAdd(&AKDRawDisplayPutKey,&AKDRawDisplayPutS,0x60000000,FALSE);
   #exe {
     if (*kernel_cfg->acct_name)
-      StreamPrintF("sys_acct=StrNew(\"%C:/TempleOS/Accts/%s\");",kernel_cfg->sys_acct_drv,kernel_cfg->acct_name);
+      StreamPrint("sys_acct=StrNew(\"%C:/TempleOS/Accts/%s\");",kernel_cfg->sys_acct_drv,kernel_cfg->acct_name);
     else
-      StreamPrintF("sys_acct=StrNew(\"%C:/TempleOS/Accts\");",kernel_cfg->sys_acct_drv);
-    StreamPutS("#exe{OptOff(OPTf_WARN_PAREN);}");
-    StreamPrintF("DskCacheInit(%s);",kernel_cfg->dsk_cache_size_exp);
-    StreamPutS("#exe{OptOn(OPTf_WARN_PAREN);}");
+      StreamPrint("sys_acct=StrNew(\"%C:/TempleOS/Accts\");",kernel_cfg->sys_acct_drv);
+    StreamPrint("#exe{OptOff(OPTf_WARN_PAREN);}");
+    StreamPrint("DskCacheInit(%s);",kernel_cfg->dsk_cache_size_exp);
+    StreamPrint("#exe{OptOn(OPTf_WARN_PAREN);}");
   };
   pow10_I64=CAlloc(sizeof(F64)*(308+308+1));
   for (i=-308;i<309;i++)
@@ -95,7 +95,7 @@ $LK,"GrUpdateLine32","MN:GrUpdateLine32"$().
     OutU8(VGA_SC_INDEX,VGA_MAP_MASK);
     OutU8(VGA_SC_DATA,0x0F);
     MemSet(VGA_GRAPHIC_MEM_BASE,0,gr_width*gr_height>>3);
-    sys_dc_screen_image=CAlloc(gr_width*gr_height/8);
+    sys_raw_screen_image=CAlloc(gr_width*gr_height/8);
   } else {
     text_mode=TRUE;
     gr_width =640;
@@ -154,6 +154,16 @@ U0 Reboot()
   SysHlt;
 }
 
+U0 LoadCompiler()
+{
+  CBinFile *bfh=sys_boot_base-sizeof(CBinFile);
+  bfh(I64)+=bfh->file_size;
+  "Loading Compiler\n";
+  Cd("/TempleOS/Compiler");
+  Load("Compiler",LDF_SILENT,bfh);
+  LBts(&sys_run_level,RLf_COMPILER);
+}
+
 U0 KernelMain()
 { //Continued from $LK,"Kernel","FF:::/TempleOS/Kernel/KStart.CPP,I32 &Kernel"$
   adam_task=Fs;
@@ -161,7 +171,7 @@ U0 KernelMain()
   LBts(&sys_run_level,RLf_FULL_HEAP);
   Fs->hash_table=HashTableNew(ADAM_HASH_SIZE,Fs);
 
-#exe {StreamPrintF("SysDeterministic(%d);",kernel_cfg->opts[CFG_DETERMINISTIC]);};
+#exe {StreamPrint("SysDeterministic(%d);",kernel_cfg->opts[CFG_DETERMINISTIC]);};
   SysGlblsInit;
 
   Mem32DevInit;
@@ -180,7 +190,7 @@ U0 KernelMain()
   IntInit1;
 
 //Before this point use $LK,"Snd","MN:Snd"$() and $LK,"BusyWait","MN:BusyWait"$()
-//to debug.  After this point, use $LK,"DbgI64","MN:DbgI64"$()
+//to debug.  After this point, use $LK,"RawI64","MN:RawI64"$()
   LBts(&sys_run_level,RLf_RAW);
   if (BIOSTotalMem<250*0x100000)
     Dbg("Requires 256 Meg of RAM Memory");
@@ -189,7 +199,7 @@ U0 KernelMain()
   IntsInit;
 
   "Enable IRQ's\n";
-  SetFlags(SYS_NORMAL_RFLAGS);
+  SetRFlags(SYS_NORMAL_RFLAGS);
   BusyWait(2000);
   IntInit2;
   LBts(&sys_run_level,RLf_INTERRUPTS);
@@ -199,7 +209,7 @@ U0 KernelMain()
 
 #exe {
   if (!kernel_cfg->opts[CFG_NO_MP])
-    StreamPutS("\"MultiCore Start\\n\\n\";"
+    StreamPrint("\"MultiCore Start\\n\\n\";"
 	       "MPStart;");
 };
   LBts(&sys_run_level,RLf_MP);
@@ -220,20 +230,13 @@ U0 KernelMain()
   "BlkDevsInitAll Done\n";
 #exe {
   if (kernel_cfg->cdrom_ports_pmt)
-    StreamPutS("if (boot_drv_pmt) PutDefine(\"ST_CDROM_PORTS_PMT2\");");
+    StreamPrint("if (boot_drv_pmt) PutDefine(\"ST_CDROM_PORTS_PMT2\");");
 };
-
   DrvDftSelect;
   LBts(&sys_run_level,RLf_DSK);
-
-  "Loading Compiler\n";
-  Cd("/TempleOS/Compiler");
-  Load("Compiler",LDF_SILENT);
-
-  time_stamp_freq_initial=TimeStampFreqCal;
+  LoadCompiler;
   InDbg(OFF);
-  LBts(&sys_run_level,RLf_COMPILER);
-
+  time_stamp_freq_initial=TimeStampFreqCal;
   Cd("/TempleOS/Kernel");
   try
     ExeFile("Adam1"); //Continues $LK,"/TempleOS/Kernel/Adam1.CPP","FL:/TempleOS/Kernel/Adam1.CPP,1"$
diff --git a/TempleOS/Kernel/KExts.CPP b/TempleOS/Kernel/KExts.CPP
index 2ac65c7..4686064 100644
--- a/TempleOS/Kernel/KExts.CPP
+++ b/TempleOS/Kernel/KExts.CPP
@@ -5,10 +5,8 @@ before import is resolved, you can use
 var and check it before calling.
 */
 import U0 MemberLstDel(CHashClass *tempc);
-import I64 ExePutS(U8 *buf,U8 *filename=NULL,
-		   Bool just_load=FALSE,CLexHashTableContext *htc=NULL);
+import I64 ExePrint(U8 *fmt,...);
 import I64 ExeFile(U8 *name,Bool just_load=FALSE);
-import U0 DisplaySpecialKeys(I64 sc);
 import Bool DocUnlock(CDoc *doc);
 import Bool Ed(U8 *link_st,I64 ed_flags=0);
 import I64 PopUp(U8 *msg,CTask *parent=NULL,CTask **_pu_task=NULL);
@@ -42,7 +40,7 @@ extern Bool TaskValidate(CTask *task);
 
 extern U8 *FileExtRem(U8 *src,U8 *dst=NULL);
 extern Bool IsDir(U8 *dir_name);
-extern Bool FileFind(U8 *filename,CDirEntry *rde=NULL,I64 fuf_flags=0);
+extern Bool FileFind(U8 *filename,CDirEntry *_de=NULL,I64 fuf_flags=0);
 extern Bool ISOPrtInit(CPrt *p,I64 blk);
 extern Bool ISO1FileFind(CPrt *p,I64 cur_dir_cluster,U8 *name,CDirEntry *_result,I64 fuf_flags=0);
 extern CDirEntry *ISO1FilesFind(U8 *files_find_mask,I64 fuf_flags,CDirEntry *parent=NULL);
@@ -57,8 +55,8 @@ extern U8 *FileRead(U8 *filename,I64 *_size=NULL,I64 *_attr=NULL,Bool raw=FALSE)
 extern I64 RedSeaFSAllocClusters(CPrt *p,I64 cnt);
 extern I64 FAT32AllocClusters(CPrt *p,I64 c,I64 cnt);
 extern I64 FAT32AllocContiguousClusters(CPrt *p,I64 cnt);
-extern Bool RedSeaFSDirNew(CPrt *p,U8 *cur_dir,CDirEntry *de,Bool free_old_chain);
-extern Bool FAT32DirNew(CPrt *p,U8 *cur_dir,CDirEntry *de,Bool free_old_chain);
+extern Bool RedSeaFSDirNew(CPrt *p,U8 *cur_dir,CDirEntry *tempdee,Bool free_old_chain);
+extern Bool FAT32DirNew(CPrt *p,U8 *cur_dir,CDirEntry *tempdee,Bool free_old_chain);
 extern CDirEntry *RedSeaFSFilesFind (U8 *files_find_mask,I64 fuf_flags,CDirEntry *parent=NULL);
 extern CDirEntry *FAT32FilesFind(U8 *files_find_mask,I64 fuf_flags,CDirEntry *parent=NULL,I64 *_dir_size=NULL);
 extern I64 FileWrite(U8 *filename,U8 *fbuf,
@@ -82,18 +80,17 @@ extern CSrvCmd *TaskMsgQue(CTask *_srv,CTask *master,
 extern U0 TaskWait(CTask *task=NULL);
 extern U0 TaskInitExt(Bool from_dbg=FALSE);
 extern I64 SrvCmdsHandler(CTask *task=NULL);
-extern U0 PrintF(U8 *fmt,...);
-extern U0 PutS(U8 *st);
+extern U0 Print(U8 *fmt,...);
+extern U0 PutS(U8 *st); //Use $LK,"Print","MN:Print"$()
 extern U0 PutChar(U64 ch);
 extern U0 PutDefine(U8 *name);
-extern U0 NewLine(I64 cnt=1);
 extern I64 GetChar(I64 *scancode=NULL,Bool echo=TRUE,Bool raw_cursor=FALSE);
 extern Bool IsInDbg();
 extern I64 FlushMsgs(CTask *task=NULL);
 extern U0 SetMouseIP(I64 x,I64 y,I64 z,I64 l,I64 r,I64 c);
-extern U8 *MSPrintF(U8 *fmt,...);
+extern U8 *MPrint(U8 *fmt,...);
 extern U8 *TextFileRead(U8 *filename,I64 *_attr=NULL);
-extern U0 SPrintFPSect(U8 *buf,I64 add,I64 field_len);
+extern U0 SPrintPSect(U8 *buf,I64 add,I64 field_len);
 extern I64 GetS(U8 *buf,I64 size,Bool allow_ext=TRUE);
 extern U0 UserTaskCont();
 
diff --git a/TempleOS/Kernel/KGlbls.CPP b/TempleOS/Kernel/KGlbls.CPP
index a79a81c..3f27d7b 100644
--- a/TempleOS/Kernel/KGlbls.CPP
+++ b/TempleOS/Kernel/KGlbls.CPP
@@ -18,8 +18,8 @@ CCacheBlk *sys_dsk_cache_base=NULL,*sys_dsk_cache_ctrl=NULL;
 CCacheBlk **sys_dsk_cache_hash_table=NULL;
 I64 sys_dsk_cache_size;
  
-I64 sys_raw_dc_col=0,sys_raw_dc_flags=0;
-U8 *sys_dc_screen_image;
+I64 sys_raw_col=0,sys_raw_flags=0;
+U8 *sys_raw_screen_image;
 Bool text_mode;
 I64 text_rows,text_cols,gr_width,gr_height;
 U8 *gr_font;
@@ -39,7 +39,7 @@ I64 sys_auto_mount_ide_cnt=0;
     kernel_cfg->auto_mount_ide_hd_let='C';
   if (!kernel_cfg->auto_mount_ide_cd_let)
     kernel_cfg->auto_mount_ide_cd_let='T';
-  StreamPrintF("U8 sys_first_hd_drv_let=%d,sys_first_cd_drv_let=%d;",
+  StreamPrint("U8 sys_first_hd_drv_let=%d,sys_first_cd_drv_let=%d;",
     kernel_cfg->auto_mount_ide_hd_let,kernel_cfg->auto_mount_ide_cd_let);
 }
 Bool boot_drv_pmt=FALSE,cdrom_boot_is_good=TRUE;
@@ -131,5 +131,5 @@ U0 (*fp_set_std_palette)()=NULL;
 
 CPSectCache *psect_cache;
 I64 psect_cache_index;
-//These are for $LK,"SPrintF","MN:SPrintFJoin"$()
+//These are for $LK,"SPrint","MN:SPrintJoin"$()
 U8 *date_fmt_map,*time_fmt_map;
diff --git a/TempleOS/Kernel/KStart.CPP b/TempleOS/Kernel/KStart.CPP
index bc4143c..fa937d1 100644
--- a/TempleOS/Kernel/KStart.CPP
+++ b/TempleOS/Kernel/KStart.CPP
@@ -26,7 +26,7 @@ SYS_KERNEL_START1::
 	ALIGN	4,OC_NOP
 SYS_BOOT_BASE::			DU32	0;	//Fixed offset from start used by reboot
 SYS_BOOT_PATCH_TABLE_BASE::	DU32	0;
-#exe {StreamPrintF("SYS_COMPILE_TIME:: DU64 0x%X;",GetCurTimeDate);}
+#exe {StreamPrint("SYS_COMPILE_TIME:: DU64 0x%X;",GetDateTime);}
 
 //See $LK,"BootCdProbe","MN:BootCdProbe"$
 #assert SYS_COMPILE_TIME+8+16bios_gr_mode);};
+#exe {StreamPrint("MOV BX,%d\n",kernel_cfg->bios_gr_mode);};
 	MOV	U16 [SYS_BIOS_GR_MODE],BX
 	MOV	AX,0x4F02
 #exe {
   if (!kernel_cfg->opts[CFG_TEXT_MODE])
-    StreamPutS("INT 0x10");  //Enable VGA
+    StreamPrint("INT 0x10");  //Enable VGA
 };
 	CMP	AX,0x004F
 	JE	@@10
@@ -194,7 +194,7 @@ TEMPLEOS_CONT_START:
 	JC	@@20
 	CMP	EAX,'PAMS'
 	JNE	@@20
-	OR	EBX,EBX
+	TEST	EBX,EBX
 	JZ	@@20
 	ADD	DI,MEM_E820_ENTRY_SIZE
 	POP	CX
@@ -289,10 +289,9 @@ USE32
 	ALIGN	8,OC_NOP
 SYS_HEAP_BASE::		DU64	0x100000+0x1000*(NUM_PML1+NUM_PML2+NUM_PML3+NUM_PML4);
 SYS_HEAP_LIMIT::	DU64	0;
-SYS_KERNEL_END_PTR::	DU64	SYS_KERNEL_END;
 
 #exe {
-  StreamPrintF(
+  StreamPrint(
 "SYS_MEM_INIT_FLAG::	DU8	%d;"
 "SYS_MEM_INIT_VAL::	DU8	%d;"
 "SYS_HEAP_INIT_FLAG::	DU8	%d;"
diff --git a/TempleOS/Kernel/KbdMouse/Keyboard.CPP b/TempleOS/Kernel/KbdMouse/Keyboard.CPP
index e0f6bb0..9c31d65 100644
--- a/TempleOS/Kernel/KbdMouse/Keyboard.CPP
+++ b/TempleOS/Kernel/KbdMouse/Keyboard.CPP
@@ -395,9 +395,9 @@ U0 KbdPktRead()
   I64 ch,sc;
   Bool set_LEDs,ctrl_alt;
 
-  if (GetTimeStamp>kbd_evt_time+time_stamp_freq>>3)
+  if (GetTSC>kbd_evt_time+time_stamp_freq>>3)
     FifoU8Flush(kbd_fifo);
-  kbd_evt_time=GetTimeStamp;
+  kbd_evt_time=GetTSC;
   raw_byte=InU8(KBD_PORT);
   sc=KbdBuildSC(raw_byte,&last_raw_byte,&last_sc,&set_LEDs,&ctrl_alt);
   if (ctrl_alt && sc) {
@@ -441,7 +441,7 @@ interrupt U0 KbdIntHandler()
     kbdmouse_rst=TRUE;
     return;
   }
-  ctrl_alt_let_ret_addr=GetBasePtr()(I64)+8;
+  ctrl_alt_let_ret_addr=GetRBP()(I64)+8;
   KbdPktRead;
 }
 
diff --git a/TempleOS/Kernel/KbdMouse/Message.CPP b/TempleOS/Kernel/KbdMouse/Message.CPP
index 7133f04..611ce0c 100644
--- a/TempleOS/Kernel/KbdMouse/Message.CPP
+++ b/TempleOS/Kernel/KbdMouse/Message.CPP
@@ -2,7 +2,7 @@ U0 InputFilterTask()
 {
   CSrvCmd *tempc,*tempc1;
   Bool old_filter;
-  I64 old_flags=GetFlags;
+  I64 old_flags=GetRFlags;
   LBts(&Fs->task_flags,TASKf_USER);
   TaskInitExt;
   LBts(&Fs->task_flags,TASKf_INPUT_FILTER_TASK);
@@ -18,11 +18,11 @@ U0 InputFilterTask()
     else {
       if (tempc->cmd_code==SVCT_TEXT_INPUT) {
 	QueRem(tempc);
-	SetFlags(old_flags);
+	SetRFlags(old_flags);
 	if (!IsSysDeterministic)
 	  Preempt(ON);
 	try
-	  ExePutS(tempc->aux_str);
+	  ExePrint("%s",tempc->aux_str);
 	catch
 	  Fs->catch_except=TRUE;
 	Preempt(OFF);
@@ -35,7 +35,7 @@ U0 InputFilterTask()
   Fs->last_input_filter_task->next_input_filter_task=Fs->next_input_filter_task;
   if (!old_filter)
     LBtr(&Fs->last_input_filter_task->task_flags,TASKf_FILTER_INPUT);
-  SetFlags(old_flags);
+  SetRFlags(old_flags);
 }
 
 I64 ScanMsg(I64 *_p1=NULL,I64 *_p2=NULL,I64 mask=~1,CTask *task=NULL)
@@ -43,7 +43,7 @@ I64 ScanMsg(I64 *_p1=NULL,I64 *_p2=NULL,I64 mask=~1,CTask *task=NULL)
   I64 result,old_flags;
   CSrvCmd *tempc,*tempc1;
   if (!task) task=Fs;
-  old_flags=GetFlags;
+  old_flags=GetRFlags;
   tempc1=&task->srv_ctrl.next_waiting;
   while (TRUE) {
     if (task==Fs)
@@ -55,7 +55,7 @@ I64 ScanMsg(I64 *_p1=NULL,I64 *_p2=NULL,I64 mask=~1,CTask *task=NULL)
     else {
       if (tempc->cmd_code==SVCT_MSG) {
 	QueRem(tempc);
-	SetFlags(old_flags);
+	SetRFlags(old_flags);
 	result=tempc->msg_code;
 	if (_p1)
 	  *_p1=tempc->aux1;
@@ -67,7 +67,7 @@ I64 ScanMsg(I64 *_p1=NULL,I64 *_p2=NULL,I64 mask=~1,CTask *task=NULL)
 	    goto sm_done;
       }
     }
-    SetFlags(old_flags);
+    SetRFlags(old_flags);
   }
   result=MSG_NULL;
   if (_p1)
@@ -75,11 +75,11 @@ I64 ScanMsg(I64 *_p1=NULL,I64 *_p2=NULL,I64 mask=~1,CTask *task=NULL)
   if (_p2)
     *_p2=0;
   if (task->parent_task&&task->parent_task->popup_task==task) {
-    SetFlags(old_flags);
+    SetRFlags(old_flags);
     return ScanMsg(_p1,_p2,mask,task->parent_task);
   }
 sm_done:
-  SetFlags(old_flags);
+  SetRFlags(old_flags);
   return result;
 }
 
@@ -139,10 +139,10 @@ I64 GetKey(I64 *_scancode=NULL,Bool echo=FALSE,Bool raw_cursor=FALSE)
   Bool old_preempt=Preempt(OFF),cursor_on=FALSE;
   while (!ScanKey(&ch,&sc,FALSE)) {
     if (IsRaw && raw_cursor) {
-      if (!cursor_on && ToI64(GetTimeStamp*5/time_stamp_freq)&1) {
+      if (!cursor_on && ToI64(GetTSC*5/time_stamp_freq)&1) {
 	'Û';
 	cursor_on=TRUE;
-      } else if (cursor_on && !(ToI64(GetTimeStamp*5/time_stamp_freq)&1)) {
+      } else if (cursor_on && !(ToI64(GetTSC*5/time_stamp_freq)&1)) {
 	'' CH_BACKSPACE;
 	cursor_on=FALSE;
       }
@@ -157,7 +157,7 @@ I64 GetKey(I64 *_scancode=NULL,Bool echo=FALSE,Bool raw_cursor=FALSE)
       KbdMouseHandler(TRUE,FALSE);
       KbdMsgsQue;
       PopFD;
-      if (old_preempt && GetFlags&1<task_flags,TASKf_AWAITING_MSG);
diff --git a/TempleOS/Kernel/KbdMouse/Mouse.CPP b/TempleOS/Kernel/KbdMouse/Mouse.CPP
index 42f058f..3096931 100644
--- a/TempleOS/Kernel/KbdMouse/Mouse.CPP
+++ b/TempleOS/Kernel/KbdMouse/Mouse.CPP
@@ -1,9 +1,9 @@
 U0 MousePktRead()
 {
   U8 j;
-  if (GetTimeStamp>mouse_evt_time+time_stamp_freq>>3)
+  if (GetTSC>mouse_evt_time+time_stamp_freq>>3)
     FifoU8Flush(mouse_fifo);
-  mouse_evt_time=GetTimeStamp;
+  mouse_evt_time=GetTSC;
   FifoU8Ins(mouse_fifo,InU8(KBD_PORT));
   if (FifoU8Cnt(mouse_fifo)==mouse_pkt_size)
     while (FifoU8Rem(mouse_fifo,&j))
@@ -233,7 +233,7 @@ U0 SetMouseIP(I64 x,I64 y,I64 z,I64 l,I64 r,I64 c)
   Bool old_buttons[5];
   CSnap s;
   GetSnap(&s);
-  mouse_evt_time=GetTimeStamp;
+  mouse_evt_time=GetTSC;
   MouseUpdatePre(old_buttons);
   mxx_prescale=x/mxx_scale/s.dx;
   myy_prescale=y/myy_scale/s.dy;
diff --git a/TempleOS/Kernel/Kernel.MAP b/TempleOS/Kernel/Kernel.MAP
index c0f1c08..daa1a2b 100644
--- a/TempleOS/Kernel/Kernel.MAP
+++ b/TempleOS/Kernel/Kernel.MAP
@@ -1,133 +1,133 @@
-$LK+BI,"A2Date                    ","FL:D:/TempleOS/Kernel/Str1a.CPP.Z,2070",1$000000FFB2    0001 00000002BC Funct  
-$LK+BI,"A2F64                     ","FL:D:/TempleOS/Kernel/Str1a.CPP.Z,2135",2$0000010272    0001 000000022F Funct  
-$LK+BI,"A2I                       ","FL:D:/TempleOS/Kernel/Str1a.CPP.Z,1005",3$000000CC0C    0014 0000000186 Funct  
-$LK+BI,"A2KeyName                 ","FL:D:/TempleOS/Kernel/KbdMouse/Keyboard.CPP.Z,196",4$000001655F    0001 00000002AA Funct  
-$LK+BI,"A2ScanCode                ","FL:D:/TempleOS/Kernel/KbdMouse/Keyboard.CPP.Z,97",5$000001619F    0000 000000013F Funct  
-$LK+BI,"ACAlloc                   ","FL:D:/TempleOS/Kernel/Memory.CPP.Z,970",6$00000060A4    000B 000000001B Funct  
-$LK,"ADAM_HASH_SIZE            ","FL:D:/TempleOS/Kernel/Adam1a.HPP,2720"$(1<<18)       0001 0000000008 DefineStr 
-$LK,"ADAM_STK                  ","FL:D:/TempleOS/Kernel/Adam1a.HPP,2714"$(PAGE_SIZE    0002 0000000018 DefineStr 
-$LK+BI,"AKDInputFilterPutKey      ","FL:D:/TempleOS/Kernel/Display.CPP.Z,154",7$00000123D2    0001 000000006A Funct  
-$LK+BI,"AKDInputFilterPutS        ","FL:D:/TempleOS/Kernel/Display.CPP.Z,166",8$0000012442    0001 0000000077 Funct  
-$LK+BI,"AKDRawDisplayPutKey       ","FL:D:/TempleOS/Kernel/Display.CPP.Z,134",9$000001236A    0001 0000000026 Funct  
-$LK+BI,"AKDRawDisplayPutS         ","FL:D:/TempleOS/Kernel/Display.CPP.Z,143",10$0000012392    0001 0000000039 Funct  
-$LK,"AKW_ALIGN                 ","FL:D:/TempleOS/Compiler/CmpDefs.HPP,281"$64            0000 0000000008 DefineStr 
-$LK,"AKW_DU16                  ","FL:D:/TempleOS/Compiler/CmpDefs.HPP,295"$78            0000 0000000008 DefineStr 
-$LK,"AKW_DU32                  ","FL:D:/TempleOS/Compiler/CmpDefs.HPP,296"$79            0000 0000000008 DefineStr 
-$LK,"AKW_DU64                  ","FL:D:/TempleOS/Compiler/CmpDefs.HPP,297"$80            0000 0000000008 DefineStr 
-$LK,"AKW_DU8                   ","FL:D:/TempleOS/Compiler/CmpDefs.HPP,294"$77            0000 0000000008 DefineStr 
-$LK,"AKW_DUP                   ","FL:D:/TempleOS/Compiler/CmpDefs.HPP,298"$81            0000 0000000008 DefineStr 
-$LK,"AKW_F64                   ","FL:D:/TempleOS/Compiler/CmpDefs.HPP,293"$76            0000 0000000008 DefineStr 
-$LK,"AKW_I0                    ","FL:D:/TempleOS/Compiler/CmpDefs.HPP,283"$66            0000 0000000008 DefineStr 
-$LK,"AKW_I16                   ","FL:D:/TempleOS/Compiler/CmpDefs.HPP,285"$68            0000 0000000008 DefineStr 
-$LK,"AKW_I32                   ","FL:D:/TempleOS/Compiler/CmpDefs.HPP,286"$69            0000 0000000008 DefineStr 
-$LK,"AKW_I64                   ","FL:D:/TempleOS/Compiler/CmpDefs.HPP,287"$70            0000 0000000008 DefineStr 
-$LK,"AKW_I8                    ","FL:D:/TempleOS/Compiler/CmpDefs.HPP,284"$67            0000 0000000008 DefineStr 
-$LK,"AKW_IMPORT                ","FL:D:/TempleOS/Compiler/CmpDefs.HPP,302"$85            0000 0000000008 DefineStr 
-$LK,"AKW_LIST                  ","FL:D:/TempleOS/Compiler/CmpDefs.HPP,303"$86            0000 0000000008 DefineStr 
-$LK,"AKW_MODULE_ORG            ","FL:D:/TempleOS/Compiler/CmpDefs.HPP,282"$65            0000 0000000008 DefineStr 
-$LK,"AKW_NOLIST                ","FL:D:/TempleOS/Compiler/CmpDefs.HPP,304"$87            0000 0000000008 DefineStr 
-$LK,"AKW_U0                    ","FL:D:/TempleOS/Compiler/CmpDefs.HPP,288"$71            0000 0000000008 DefineStr 
-$LK,"AKW_U16                   ","FL:D:/TempleOS/Compiler/CmpDefs.HPP,290"$73            0000 0000000008 DefineStr 
-$LK,"AKW_U32                   ","FL:D:/TempleOS/Compiler/CmpDefs.HPP,291"$74            0000 0000000008 DefineStr 
-$LK,"AKW_U64                   ","FL:D:/TempleOS/Compiler/CmpDefs.HPP,292"$75            0000 0000000008 DefineStr 
-$LK,"AKW_U8                    ","FL:D:/TempleOS/Compiler/CmpDefs.HPP,289"$72            0000 0000000008 DefineStr 
-$LK,"AKW_USE16                 ","FL:D:/TempleOS/Compiler/CmpDefs.HPP,299"$82            0000 0000000008 DefineStr 
-$LK,"AKW_USE32                 ","FL:D:/TempleOS/Compiler/CmpDefs.HPP,300"$83            0000 0000000008 DefineStr 
-$LK,"AKW_USE64                 ","FL:D:/TempleOS/Compiler/CmpDefs.HPP,301"$84            0000 0000000008 DefineStr 
-$LK+BI,"AMAlloc                   ","FL:D:/TempleOS/Kernel/Memory.CPP.Z,958",11$0000006054    000B 000000001B Funct  
-$LK+BI,"AMAllocIdentical          ","FL:D:/TempleOS/Kernel/Memory.CPP.Z,986",12$000000610C    0004 000000001B Funct  
-$LK,"ARC_MAX_BITS              ","FL:D:/TempleOS/Kernel/Adam1a.HPP,3445"$12            0004 0000000008 DefineStr 
-$LK,"ARC_MAX_ENTRY             ","FL:D:/TempleOS/Kernel/Adam1a.HPP,3446"$(1<r10       0000 0000000008 DefineStr 
-$LK,"_R11                      ","FL:D:/TempleOS/Kernel/Adam1a.HPP,3653"$Fs->r11       0000 0000000008 DefineStr 
-$LK,"_R12                      ","FL:D:/TempleOS/Kernel/Adam1a.HPP,3654"$Fs->r12       0000 0000000008 DefineStr 
-$LK,"_R13                      ","FL:D:/TempleOS/Kernel/Adam1a.HPP,3655"$Fs->r13       0000 0000000008 DefineStr 
-$LK,"_R14                      ","FL:D:/TempleOS/Kernel/Adam1a.HPP,3656"$Fs->r14       0000 0000000008 DefineStr 
-$LK,"_R15                      ","FL:D:/TempleOS/Kernel/Adam1a.HPP,3657"$Fs->r15       0000 0000000008 DefineStr 
-$LK,"_R8                       ","FL:D:/TempleOS/Kernel/Adam1a.HPP,3650"$Fs->r8        0000 0000000008 DefineStr 
-$LK,"_R9                       ","FL:D:/TempleOS/Kernel/Adam1a.HPP,3651"$Fs->r9        0000 0000000008 DefineStr 
-$LK,"_RAX                      ","FL:D:/TempleOS/Kernel/Adam1a.HPP,3641"$Fs->rax       0000 0000000008 DefineStr 
-$LK,"_RBP                      ","FL:D:/TempleOS/Kernel/Adam1a.HPP,3647"$Fs->rbp       0000 0000000008 DefineStr 
-$LK,"_RBX                      ","FL:D:/TempleOS/Kernel/Adam1a.HPP,3642"$Fs->rbx       0000 0000000008 DefineStr 
-$LK,"_RCX                      ","FL:D:/TempleOS/Kernel/Adam1a.HPP,3643"$Fs->rcx       0000 0000000008 DefineStr 
-$LK,"_RDI                      ","FL:D:/TempleOS/Kernel/Adam1a.HPP,3646"$Fs->rdi       0000 0000000008 DefineStr 
-$LK,"_RDX                      ","FL:D:/TempleOS/Kernel/Adam1a.HPP,3644"$Fs->rdx       0000 0000000008 DefineStr 
-$LK,"_REP_IN_U16               ","FL:D:/TempleOS/Kernel/Utils1a.CPP.Z,259"$00000030DA    0001            ExportSysSym  
-$LK,"_REP_IN_U32               ","FL:D:/TempleOS/Kernel/Utils1a.CPP.Z,248"$00000030C2    0001            ExportSysSym  
-$LK,"_REP_IN_U8                ","FL:D:/TempleOS/Kernel/Utils1a.CPP.Z,270"$00000030F3    0001            ExportSysSym  
-$LK,"_REP_OUT_U16              ","FL:D:/TempleOS/Kernel/Utils1a.CPP.Z,292"$0000003123    0001            ExportSysSym  
-$LK,"_REP_OUT_U32              ","FL:D:/TempleOS/Kernel/Utils1a.CPP.Z,281"$000000310B    0001            ExportSysSym  
-$LK,"_REP_OUT_U8               ","FL:D:/TempleOS/Kernel/Utils1a.CPP.Z,303"$000000313C    0001            ExportSysSym  
-$LK,"_RIP                      ","FL:D:/TempleOS/Kernel/Adam1a.HPP,3649"$Fs->rip       0000 0000000008 DefineStr 
-$LK,"_ROUND                    ","FL:D:/TempleOS/Kernel/Math1a.CPP.Z,360"$00000035F9    0001            ExportSysSym  
-$LK,"_RSI                      ","FL:D:/TempleOS/Kernel/Adam1a.HPP,3645"$Fs->rsi       0000 0000000008 DefineStr 
-$LK,"_RSP                      ","FL:D:/TempleOS/Kernel/Adam1a.HPP,3648"$Fs->rsp       0000 0000000008 DefineStr 
-$LK,"_SAVE_EXCEPT_REGS         ","FL:D:/TempleOS/Kernel/Except.CPP.Z,40"$0000015003    0001            ExportSysSym  
-$LK,"_SET_GS_BASE              ","FL:D:/TempleOS/Kernel/Utils1a.CPP.Z,414"$0000003234    0004            ExportSysSym  
-$LK,"_SET_MSR                  ","FL:D:/TempleOS/Kernel/Utils1a.CPP.Z,442"$000000326B    0001            ExportSysSym  
-$LK,"_SIGN                     ","FL:D:/TempleOS/Kernel/Math1a.CPP.Z,329"$00000035A0    0001            ExportSysSym  
-$LK,"_SQR                      ","FL:D:/TempleOS/Kernel/Math1a.CPP.Z,320"$000000358C    0000            ExportSysSym  
-$LK,"_STRCAT                   ","FL:D:/TempleOS/Kernel/Str1a.CPP.Z,71"$000000B44C    0001            ExportSysSym  
-$LK,"_STRCMP                   ","FL:D:/TempleOS/Kernel/Str1a.CPP.Z,106"$000000B48B    0001            ExportSysSym  
-$LK,"_STRCPY                   ","FL:D:/TempleOS/Kernel/Str1a.CPP.Z,91"$000000B471    0001            ExportSysSym  
-$LK,"_STRICMP                  ","FL:D:/TempleOS/Kernel/Str1a.CPP.Z,138"$000000B4CB    0001            ExportSysSym  
-$LK,"_STRISTR                  ","FL:D:/TempleOS/Kernel/Str1a.CPP.Z,283"$000000B619    0001            ExportSysSym  
-$LK,"_STRNCMP                  ","FL:D:/TempleOS/Kernel/Str1a.CPP.Z,175"$000000B520    0001            ExportSysSym  
-$LK,"_STRNICMP                 ","FL:D:/TempleOS/Kernel/Str1a.CPP.Z,204"$000000B564    0001            ExportSysSym  
-$LK,"_STRSTR                   ","FL:D:/TempleOS/Kernel/Str1a.CPP.Z,244"$000000B5C2    0001            ExportSysSym  
-$LK,"_SYS_HLT                  ","FL:D:/TempleOS/Kernel/Utils1a.CPP.Z,451"$0000003285    0005            ExportSysSym  
-$LK,"_TAKE_EXCEPT              ","FL:D:/TempleOS/Kernel/Except.CPP.Z,34"$0000014FF1    0001            ExportSysSym  
-$LK,"_TEST_EXCEPT              ","FL:D:/TempleOS/Kernel/Except.CPP.Z,18"$0000014FBA    0001            ExportSysSym  
-$LK,"_TRUNC                    ","FL:D:/TempleOS/Kernel/Math1a.CPP.Z,378"$0000003626    0001            ExportSysSym  
-$LK,"_XCHG_U16                 ","FL:D:/TempleOS/Kernel/Utils1a.CPP.Z,200"$000000304C    0001            ExportSysSym  
-$LK,"_XCHG_U32                 ","FL:D:/TempleOS/Kernel/Utils1a.CPP.Z,193"$000000303B    0001            ExportSysSym  
-$LK,"_XCHG_U64                 ","FL:D:/TempleOS/Kernel/Utils1a.CPP.Z,186"$0000003028    0001            ExportSysSym  
-$LK,"_XCHG_U8                  ","FL:D:/TempleOS/Kernel/Utils1a.CPP.Z,207"$0000003060    0001            ExportSysSym  
-$LK,"adam_task                 ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,13"$0000003A28    001A 0000000008 GlbVar  
-$LK,"alpha_bitmap              ","FL:D:/TempleOS/Kernel/Str1a.CPP.Z,342"$000000B68C    0000 0000000040 GlbVar  
-$LK,"alpha_numeric_bitmap      ","FL:D:/TempleOS/Kernel/Str1a.CPP.Z,345"$000000B6CC    0002 0000000040 GlbVar  
-$LK,"alpha_numeric_no_at_bitmap","FL:D:/TempleOS/Kernel/Str1a.CPP.Z,348"$000000B70C    0000 0000000040 GlbVar  
-$LK,"ans                       ","FL:D:/TempleOS/Kernel/Adam1a.HPP,3167"$(Fs->answe    0000 0000000018 DefineStr 
-$LK,"ans0                      ","FL:D:/TempleOS/Kernel/Adam1a.HPP,3168"$(Fs->answe    0000 0000000018 DefineStr 
-$LK,"ans1                      ","FL:D:/TempleOS/Kernel/Adam1a.HPP,3169"$(Fs->answe    0000 0000000018 DefineStr 
-$LK,"ans2                      ","FL:D:/TempleOS/Kernel/Adam1a.HPP,3170"$(Fs->answe    0000 0000000018 DefineStr 
-$LK,"ans3                      ","FL:D:/TempleOS/Kernel/Adam1a.HPP,3171"$(Fs->answe    0000 0000000018 DefineStr 
-$LK,"ansf                      ","FL:D:/TempleOS/Kernel/Adam1a.HPP,3173"$(Fs->answe    0000 0000000018 DefineStr 
-$LK,"ansf0                     ","FL:D:/TempleOS/Kernel/Adam1a.HPP,3174"$(Fs->answe    0000 0000000018 DefineStr 
-$LK,"ansf1                     ","FL:D:/TempleOS/Kernel/Adam1a.HPP,3175"$(Fs->answe    0000 0000000018 DefineStr 
-$LK,"ansf2                     ","FL:D:/TempleOS/Kernel/Adam1a.HPP,3176"$(Fs->answe    0000 0000000018 DefineStr 
-$LK,"ansf3                     ","FL:D:/TempleOS/Kernel/Adam1a.HPP,3177"$(Fs->answe    0000 0000000018 DefineStr 
-$LK,"bios_gr_mode              ","FL:D:/TempleOS/Kernel/Adam1b.HPP,28"$0000000C60    0003 0000000002 GlbVar   
-$LK,"boot_drv_pmt              ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,45"$0000003B0A    0002 0000000001 GlbVar  
-$LK,"c32_eax                   ","FL:D:/TempleOS/Kernel/BIOS32.CPP.Z,160"$000001BBD3    0008 0000000004 GlbVar  
-$LK,"c32_ebx                   ","FL:D:/TempleOS/Kernel/BIOS32.CPP.Z,161"$000001BBD7    0009 0000000004 GlbVar  
-$LK,"c32_ecx                   ","FL:D:/TempleOS/Kernel/BIOS32.CPP.Z,162"$000001BBDB    0007 0000000004 GlbVar  
-$LK,"c32_edi                   ","FL:D:/TempleOS/Kernel/BIOS32.CPP.Z,165"$000001BBE7    0006 0000000004 GlbVar  
-$LK,"c32_edx                   ","FL:D:/TempleOS/Kernel/BIOS32.CPP.Z,163"$000001BBDF    0000 0000000004 GlbVar  
-$LK,"c32_eflags                ","FL:D:/TempleOS/Kernel/BIOS32.CPP.Z,166"$000001BBEB    0000 0000000004 GlbVar  
-$LK,"c32_esi                   ","FL:D:/TempleOS/Kernel/BIOS32.CPP.Z,164"$000001BBE3    0001 0000000004 GlbVar  
-$LK,"cdrom_boot_is_good        ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,45"$0000003B0B    0002 0000000001 GlbVar  
-$LK,"cpu_structs               ","FL:D:/TempleOS/Kernel/Adam1b.HPP,191"$0000002360    000C 0000000008 GlbVar   
-$LK,"ctrl_alt_let_descs        ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,53"$0000003C40    0003 0000000008 GlbVar  
-$LK,"ctrl_alt_let_in_irq_flags ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,51"$0000003C30    0004 0000000008 GlbVar  
-$LK,"ctrl_alt_let_ret_addr     ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,51"$0000003C38    0002 0000000008 GlbVar  
-$LK,"date_fmt_map              ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,135"$0000003FD8    0003 0000000008 GlbVar  
-$LK,"dec_numeric_bitmap        ","FL:D:/TempleOS/Kernel/Str1a.CPP.Z,357"$000000B7CC    0003 0000000040 GlbVar  
-$LK,"displayable_chars_bitmap  ","FL:D:/TempleOS/Kernel/Str1a.CPP.Z,384"$000000BA0C    0001 0000000040 GlbVar  
-$LK,"drv_to_prt                ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,47"$0000003B10    0003 0000000100 GlbVar  
+$LK,"VGA_V_BLANK_START         ","FL:D:/TempleOS/Kernel/Adam1a.HPP,3420"$0x15          0000 0000000008 DefineStr 
+$LK,"VGA_V_RETRACE_END         ","FL:D:/TempleOS/Kernel/Adam1a.HPP,3418"$0x11          0000 0000000008 DefineStr 
+$LK,"VGA_V_TOTAL               ","FL:D:/TempleOS/Kernel/Adam1a.HPP,3416"$0x06          0000 0000000008 DefineStr 
+$LK+BI,"WBlks                     ","FL:D:/TempleOS/Kernel/Dsk/Dsk1a.CPP.Z,342",620$00000206A4    0018 000000016B Funct Export 
+$LK+BI,"WClusters                 ","FL:D:/TempleOS/Kernel/Dsk/Dsk1a.CPP.Z,690",621$0000021584    0006 0000000035 Funct Export 
+$LK+BI,"WClustersBlks             ","FL:D:/TempleOS/Kernel/Dsk/Dsk1a.CPP.Z,653",622$00000213FC    0005 0000000187 Funct Export 
+$LK,"WHITE                     ","FL:D:/TempleOS/Kernel/Adam1a.HPP,3284"$15            0003 0000000008 DefineStr 
+$LK,"WIF_ALL                   ","FL:D:/TempleOS/Kernel/Adam1a.HPP,2854"$(-1-WIF_DO    0000 0000000018 DefineStr 
+$LK,"WIF_BORDER                ","FL:D:/TempleOS/Kernel/Adam1a.HPP,2849"$0x020         0000 0000000008 DefineStr 
+$LK,"WIF_CTRLS                 ","FL:D:/TempleOS/Kernel/Adam1a.HPP,2845"$0x002         0000 0000000008 DefineStr 
+$LK,"WIF_DBL_CLICK             ","FL:D:/TempleOS/Kernel/Adam1a.HPP,2850"$0x040         0000 0000000008 DefineStr 
+$LK,"WIF_DOC                   ","FL:D:/TempleOS/Kernel/Adam1a.HPP,2852"$0x100         0000 0000000008 DefineStr 
+$LK,"WIF_GRAB_SCROLL           ","FL:D:/TempleOS/Kernel/Adam1a.HPP,2851"$0x080         0000 0000000008 DefineStr 
+$LK,"WIF_IP_L                  ","FL:D:/TempleOS/Kernel/Adam1a.HPP,2847"$0x008         0000 0000000008 DefineStr 
+$LK,"WIF_IP_R                  ","FL:D:/TempleOS/Kernel/Adam1a.HPP,2848"$0x010         0000 0000000008 DefineStr 
+$LK,"WIF_IP_WHEEL              ","FL:D:/TempleOS/Kernel/Adam1a.HPP,2846"$0x004         0000 0000000008 DefineStr 
+$LK,"WIF_MENU                  ","FL:D:/TempleOS/Kernel/Adam1a.HPP,2844"$0x001         0000 0000000008 DefineStr 
+$LK,"WIF_ODE                   ","FL:D:/TempleOS/Kernel/Adam1a.HPP,2853"$0x200         0000 0000000008 DefineStr 
+$LK,"WIN_DFT_MAX_REFRESH       ","FL:D:/TempleOS/Kernel/Adam1a.HPP,2867"$60.0          0001 0000000008 DefineStr 
+$LK,"WIf_BORDER                ","FL:D:/TempleOS/Kernel/Adam1a.HPP,2861"$5             0000 0000000008 DefineStr 
+$LK,"WIf_CTRLS                 ","FL:D:/TempleOS/Kernel/Adam1a.HPP,2857"$1             0000 0000000008 DefineStr 
+$LK,"WIf_DBL_CLICK             ","FL:D:/TempleOS/Kernel/Adam1a.HPP,2862"$6             0000 0000000008 DefineStr 
+$LK,"WIf_DOC                   ","FL:D:/TempleOS/Kernel/Adam1a.HPP,2864"$8             0000 0000000008 DefineStr 
+$LK,"WIf_GRAB_SCROLL           ","FL:D:/TempleOS/Kernel/Adam1a.HPP,2863"$7             0000 0000000008 DefineStr 
+$LK,"WIf_IP_L                  ","FL:D:/TempleOS/Kernel/Adam1a.HPP,2859"$3             0000 0000000008 DefineStr 
+$LK,"WIf_IP_R                  ","FL:D:/TempleOS/Kernel/Adam1a.HPP,2860"$4             0000 0000000008 DefineStr 
+$LK,"WIf_IP_WHEEL              ","FL:D:/TempleOS/Kernel/Adam1a.HPP,2858"$2             0000 0000000008 DefineStr 
+$LK,"WIf_MENU                  ","FL:D:/TempleOS/Kernel/Adam1a.HPP,2856"$0             0000 0000000008 DefineStr 
+$LK,"WIf_ODE                   ","FL:D:/TempleOS/Kernel/Adam1a.HPP,2865"$9             0000 0000000008 DefineStr 
+$LK,"WSSf_SET_TO_POS           ","FL:D:/TempleOS/Kernel/Adam1a.HPP,2781"$0             0000 0000000008 DefineStr 
+$LK+BI,"WZeroBlks                 ","FL:D:/TempleOS/Kernel/Dsk/Dsk1a.CPP.Z,230",623$000002027C    0002 00000000EC Funct Export 
+$LK+BI,"WildMatch                 ","FL:D:/TempleOS/Kernel/Str1a.CPP.Z,924",624$000000C998    0002 00000000C2 Funct Export 
+$LK+BI,"WinDerivedValsUpdate      ","FL:D:/TempleOS/Kernel/Display.CPP.Z,101",625$0000011EC2    0001 000000016F Funct Export 
+$LK+BI,"XTalk                     ","FL:D:/TempleOS/Kernel/SrvCmd.CPP.Z,435",626$000001B59F    0000 0000000067 Funct Export 
+$LK+BI,"XTalkStr                  ","FL:D:/TempleOS/Kernel/SrvCmd.CPP.Z,502",627$000001B827    0000 0000000042 Funct Export 
+$LK+BI,"XTalkStrWait              ","FL:D:/TempleOS/Kernel/SrvCmd.CPP.Z,509",628$000001B86F    0000 0000000048 Funct Export 
+$LK+BI,"XTalkWait                 ","FL:D:/TempleOS/Kernel/SrvCmd.CPP.Z,446",629$000001B607    0000 000000006E Funct Export 
+$LK,"XchgU16                   ","FL:D:/TempleOS/Kernel/Adam1b.HPP,167"$0000003007    0000            Funct Public 
+$LK,"XchgU32                   ","FL:D:/TempleOS/Kernel/Adam1b.HPP,166"$0000002FF6    0000            Funct Public 
+$LK,"XchgU64                   ","FL:D:/TempleOS/Kernel/Adam1b.HPP,165"$0000002FE3    0000            Funct Public 
+$LK,"XchgU8                    ","FL:D:/TempleOS/Kernel/Adam1b.HPP,168"$000000301B    0000            Funct Public 
+$LK,"YELLOW                    ","FL:D:/TempleOS/Kernel/Adam1a.HPP,3283"$14            0000 0000000008 DefineStr 
+$LK+BI,"YearStartDate             ","FL:D:/TempleOS/Kernel/Date.CPP.Z,8",630$0000008E00    0005 0000000070 Funct Export 
+$LK,"Yield                     ","FL:D:/TempleOS/Kernel/Scheduler.CPP.Z,369"$00000047B2    0033            Funct 
+$LK+BI,"YorN                      ","FL:D:/TempleOS/Kernel/Str1a.CPP.Z,568",631$000000BF10    0002 000000008E Funct Export 
+$LK,"ZERO_BUF_SIZE             ","FL:D:/TempleOS/Kernel/Dsk/Dsk1a.CPP.Z,229"$2048          0004 0000000008 DefineStr 
+$LK,"_ARC_GET_ENTRY            ","FL:D:/TempleOS/Kernel/Compress.CPP.Z,44"$000000766C    0001            ExportSysSym Export 
+$LK,"_ARG                      ","FL:D:/TempleOS/Kernel/Math1a.CPP.Z,347"$0000003595    0001            ExportSysSym Export 
+$LK,"_ATTR_ARCHIVE             ","FL:D:/TempleOS/Kernel/Adam1a.HPP,3501"$0x20          0008 0000000008 DefineStr 
+$LK,"_ATTR_COMPRESSED          ","FL:D:/TempleOS/Kernel/Adam1a.HPP,3507"$0x800         0009 0000000008 DefineStr 
+$LK,"_ATTR_CONTIGUOUS          ","FL:D:/TempleOS/Kernel/Adam1a.HPP,3508"$0x1000        000C 0000000008 DefineStr 
+$LK,"_ATTR_DELETED             ","FL:D:/TempleOS/Kernel/Adam1a.HPP,3504"$0x100         0006 0000000008 DefineStr 
+$LK,"_ATTR_DIR                 ","FL:D:/TempleOS/Kernel/Adam1a.HPP,3500"$0x10          0029 0000000008 DefineStr 
+$LK,"_ATTR_ENCRYPTED           ","FL:D:/TempleOS/Kernel/Adam1a.HPP,3505"$0x200         0000 0000000008 DefineStr 
+$LK,"_ATTR_FIXED               ","FL:D:/TempleOS/Kernel/Adam1a.HPP,3509"$0x2000        0000 0000000008 DefineStr 
+$LK,"_ATTR_HIDDEN              ","FL:D:/TempleOS/Kernel/Adam1a.HPP,3497"$0x02          0012 0000000008 DefineStr 
+$LK,"_ATTR_LONG_NAME           ","FL:D:/TempleOS/Kernel/Adam1a.HPP,3502"$(_ATTR_REA    0012 0000000040 DefineStr 
+$LK,"_ATTR_LONG_NAME_MASK      ","FL:D:/TempleOS/Kernel/Adam1a.HPP,3503"$(_ATTR_LON    0008 0000000030 DefineStr 
+$LK,"_ATTR_READ_ONLY           ","FL:D:/TempleOS/Kernel/Adam1a.HPP,3496"$0x01          0012 0000000008 DefineStr 
+$LK,"_ATTR_RESIDENT            ","FL:D:/TempleOS/Kernel/Adam1a.HPP,3506"$0x400         0003 0000000008 DefineStr 
+$LK,"_ATTR_SYSTEM              ","FL:D:/TempleOS/Kernel/Adam1a.HPP,3498"$0x04          0012 0000000008 DefineStr 
+$LK,"_ATTR_VOL_ID              ","FL:D:/TempleOS/Kernel/Adam1a.HPP,3499"$0x08          0016 0000000008 DefineStr 
+$LK,"_BEQU                     ","FL:D:/TempleOS/Kernel/Utils1a.CPP.Z,91"$0000002EE5    0001            ExportSysSym Export 
+$LK,"_BIT_FIELD_EXTRACT_U32    ","FL:D:/TempleOS/Kernel/Utils1a.CPP.Z,169"$0000002FB1    0001            ExportSysSym Export 
+$LK,"_BIT_FIELD_OR_U32         ","FL:D:/TempleOS/Kernel/Utils1a.CPP.Z,156"$0000002F8C    0001            ExportSysSym Export 
+$LK,"_CALL                     ","FL:D:/TempleOS/Kernel/Utils1a.CPP.Z,147"$0000002F79    0001            ExportSysSym Export 
+$LK,"_CALLEXTNUM               ","FL:D:/TempleOS/Kernel/Utils1a.CPP.Z,356"$000000316D    0001            ExportSysSym Export 
+$LK,"_CALLEXTSTR               ","FL:D:/TempleOS/Kernel/Utils1a.CPP.Z,386"$00000031B2    0001            ExportSysSym Export 
+$LK,"_CALLIND                  ","FL:D:/TempleOS/Kernel/Utils1a.CPP.Z,328"$0000003133    0001            ExportSysSym Export 
+$LK,"_CEIL                     ","FL:D:/TempleOS/Kernel/Math1a.CPP.Z,415"$000000363F    0001            ExportSysSym Export 
+$LK,"_CFG_HEAP_DBG             ","FL:D:/TempleOS/Kernel/Adam1a.HPP,2627"$FALSE         0005 0000000008 DefineStr 
+$LK,"_CPUID                    ","FL:D:/TempleOS/Kernel/Utils1a.CPP.Z,314"$000000310F    0001            ExportSysSym Export 
+$LK,"_D3_ADD                   ","FL:D:/TempleOS/Kernel/Math1a.CPP.Z,126"$0000003361    0001            ExportSysSym Export 
+$LK,"_D3_ADD_EQU               ","FL:D:/TempleOS/Kernel/Math1a.CPP.Z,227"$0000003469    0001            ExportSysSym Export 
+$LK,"_D3_COPY                  ","FL:D:/TempleOS/Kernel/Math1a.CPP.Z,202"$0000003420    0001            ExportSysSym Export 
+$LK,"_D3_CROSS                 ","FL:D:/TempleOS/Kernel/Math1a.CPP.Z,79"$00000032F4    0001            ExportSysSym Export 
+$LK,"_D3_DIST                  ","FL:D:/TempleOS/Kernel/Math1a.CPP.Z,38"$0000003290    0001            ExportSysSym Export 
+$LK,"_D3_DIV                   ","FL:D:/TempleOS/Kernel/Math1a.CPP.Z,176"$00000033E0    0001            ExportSysSym Export 
+$LK,"_D3_DIV_EQU               ","FL:D:/TempleOS/Kernel/Math1a.CPP.Z,274"$00000034DC    0001            ExportSysSym Export 
+$LK,"_D3_DOT                   ","FL:D:/TempleOS/Kernel/Math1a.CPP.Z,109"$0000003336    0001            ExportSysSym Export 
+$LK,"_D3_EQU                   ","FL:D:/TempleOS/Kernel/Math1a.CPP.Z,215"$0000003446    0001            ExportSysSym Export 
+$LK,"_D3_MUL                   ","FL:D:/TempleOS/Kernel/Math1a.CPP.Z,160"$00000033B9    0001            ExportSysSym Export 
+$LK,"_D3_MUL_EQU               ","FL:D:/TempleOS/Kernel/Math1a.CPP.Z,259"$00000034B9    0001            ExportSysSym Export 
+$LK,"_D3_NORM                  ","FL:D:/TempleOS/Kernel/Math1a.CPP.Z,5"$0000003244    0001            ExportSysSym Export 
+$LK,"_D3_SQR_DIST              ","FL:D:/TempleOS/Kernel/Math1a.CPP.Z,59"$00000032C3    0001            ExportSysSym Export 
+$LK,"_D3_SQR_NORM              ","FL:D:/TempleOS/Kernel/Math1a.CPP.Z,22"$000000326B    0001            ExportSysSym Export 
+$LK,"_D3_SUB                   ","FL:D:/TempleOS/Kernel/Math1a.CPP.Z,143"$000000338D    0001            ExportSysSym Export 
+$LK,"_D3_SUB_EQU               ","FL:D:/TempleOS/Kernel/Math1a.CPP.Z,243"$0000003491    0001            ExportSysSym Export 
+$LK,"_D3_UNIT                  ","FL:D:/TempleOS/Kernel/Math1a.CPP.Z,289"$00000034FF    0001            ExportSysSym Export 
+$LK,"_D3_ZERO                  ","FL:D:/TempleOS/Kernel/Math1a.CPP.Z,192"$0000003407    0001            ExportSysSym Export 
+$LK,"_EXP                      ","FL:D:/TempleOS/Kernel/Math1a.CPP.Z,525"$0000003762    0001            ExportSysSym Export 
+$LK,"_EXT_FIND                 ","FL:D:/TempleOS/Kernel/Hash1a.CPP.Z,217"$0000007E8E    0000            ExportSysSym Export 
+$LK,"_FAR_CALL32               ","FL:D:/TempleOS/Kernel/BIOS32.CPP.Z,72"$000001B96F    0001            ExportSysSym Export 
+$LK,"_FCLEX                    ","FL:D:/TempleOS/Kernel/Math1a.CPP.Z,605"$0000003810    0001            ExportSysSym Export 
+$LK,"_FLDCW                    ","FL:D:/TempleOS/Kernel/Math1a.CPP.Z,587"$00000037F2    0001            ExportSysSym Export 
+$LK,"_FLOOR                    ","FL:D:/TempleOS/Kernel/Math1a.CPP.Z,396"$000000360E    0001            ExportSysSym Export 
+$LK,"_FREE                     ","FL:D:/TempleOS/Kernel/Memory.CPP.Z,793"$0000005EE5    0001            ExportSysSym Export 
+$LK,"_FSTCW                    ","FL:D:/TempleOS/Kernel/Math1a.CPP.Z,593"$00000037FD    0001            ExportSysSym Export 
+$LK,"_FSTSW                    ","FL:D:/TempleOS/Kernel/Math1a.CPP.Z,600"$000000380B    0001            ExportSysSym Export 
+$LK,"_FXRSTOR                  ","FL:D:/TempleOS/Kernel/Math1a.CPP.Z,616"$0000003824    0001            ExportSysSym Export 
+$LK,"_FXSAVE                   ","FL:D:/TempleOS/Kernel/Math1a.CPP.Z,609"$0000003814    0001            ExportSysSym Export 
+$LK,"_HASH_ADD                 ","FL:D:/TempleOS/Kernel/Hash1a.CPP.Z,288"$0000007F41    0001            ExportSysSym Export 
+$LK,"_HASH_ADD_AFTER           ","FL:D:/TempleOS/Kernel/Hash1a.CPP.Z,316"$0000007F82    0000            ExportSysSym Export 
+$LK,"_HASH_BUCKET_FIND         ","FL:D:/TempleOS/Kernel/Hash1a.CPP.Z,276"$0000007F28    0001            ExportSysSym Export 
+$LK,"_HASH_FIND                ","FL:D:/TempleOS/Kernel/Hash1a.CPP.Z,247"$0000007EE1    0001            ExportSysSym Export 
+$LK,"_HASH_REM_DEL             ","FL:D:/TempleOS/Kernel/Hash1a.CPP.Z,397"$000000804C    0001            ExportSysSym Export 
+$LK,"_HASH_REPLACE             ","FL:D:/TempleOS/Kernel/Hash1a.CPP.Z,340"$0000007FB8    0001            ExportSysSym Export 
+$LK,"_HASH_SINGLE_TABLE_FIND   ","FL:D:/TempleOS/Kernel/Hash1a.CPP.Z,261"$0000007F02    0001            ExportSysSym Export 
+$LK,"_HASH_STR                 ","FL:D:/TempleOS/Kernel/Hash1a.CPP.Z,238"$0000007ECE    0001            ExportSysSym Export 
+$LK,"_LBEQU                    ","FL:D:/TempleOS/Kernel/Utils1a.CPP.Z,106"$0000002F0C    0001            ExportSysSym Export 
+$LK,"_LIMIT_I64                ","FL:D:/TempleOS/Kernel/Utils1a.CPP.Z,123"$0000002F35    0001            ExportSysSym Export 
+$LK,"_LIMIT_U64                ","FL:D:/TempleOS/Kernel/Utils1a.CPP.Z,135"$0000002F57    0001            ExportSysSym Export 
+$LK,"_LN                       ","FL:D:/TempleOS/Kernel/Math1a.CPP.Z,577"$00000037DC    0001            ExportSysSym Export 
+$LK,"_LOG10                    ","FL:D:/TempleOS/Kernel/Math1a.CPP.Z,557"$00000037B0    0001            ExportSysSym Export 
+$LK,"_LOG2                     ","FL:D:/TempleOS/Kernel/Math1a.CPP.Z,567"$00000037C6    0001            ExportSysSym Export 
+$LK,"_LXCHG_U16                ","FL:D:/TempleOS/Kernel/Utils1a.CPP.Z,231"$0000003054    0001            ExportSysSym Export 
+$LK,"_LXCHG_U32                ","FL:D:/TempleOS/Kernel/Utils1a.CPP.Z,223"$0000003042    0001            ExportSysSym Export 
+$LK,"_LXCHG_U64                ","FL:D:/TempleOS/Kernel/Utils1a.CPP.Z,215"$000000302E    0001            ExportSysSym Export 
+$LK,"_LXCHG_U8                 ","FL:D:/TempleOS/Kernel/Utils1a.CPP.Z,239"$0000003069    0001            ExportSysSym Export 
+$LK,"_MALLOC                   ","FL:D:/TempleOS/Kernel/Memory.CPP.Z,588"$0000005D3F    0001            ExportSysSym Export 
+$LK,"_MEMCMP                   ","FL:D:/TempleOS/Kernel/Utils1a.CPP.Z,72"$0000002EBB    0001            ExportSysSym Export 
+$LK,"_MEMCPY                   ","FL:D:/TempleOS/Kernel/Utils1a.CPP.Z,57"$0000002E9D    0001            ExportSysSym Export 
+$LK,"_MEMSET                   ","FL:D:/TempleOS/Kernel/Utils1a.CPP.Z,5"$0000002E2A    0002            ExportSysSym Export 
+$LK,"_MEMSET_U16               ","FL:D:/TempleOS/Kernel/Utils1a.CPP.Z,18"$0000002E46    0001            ExportSysSym Export 
+$LK,"_MEMSET_U32               ","FL:D:/TempleOS/Kernel/Utils1a.CPP.Z,31"$0000002E63    0001            ExportSysSym Export 
+$LK,"_MEMSET_U64               ","FL:D:/TempleOS/Kernel/Utils1a.CPP.Z,44"$0000002E7F    0001            ExportSysSym Export 
+$LK,"_MHEAP_CTRL               ","FL:D:/TempleOS/Kernel/Memory.CPP.Z,936"$0000005FF7    0001            ExportSysSym Export 
+$LK,"_MSIZE                    ","FL:D:/TempleOS/Kernel/Memory.CPP.Z,907"$0000005FAD    0001            ExportSysSym Export 
+$LK,"_MSIZE2                   ","FL:D:/TempleOS/Kernel/Memory.CPP.Z,922"$0000005FD4    0001            ExportSysSym Export 
+$LK,"_POW                      ","FL:D:/TempleOS/Kernel/Math1a.CPP.Z,485"$00000036FF    0001            ExportSysSym Export 
+$LK,"_POW10                    ","FL:D:/TempleOS/Kernel/Math1a.CPP.Z,493"$0000003714    0001            ExportSysSym Export 
+$LK,"_R10                      ","FL:D:/TempleOS/Kernel/Adam1a.HPP,3629"$Fs->r10       0000 0000000008 DefineStr 
+$LK,"_R11                      ","FL:D:/TempleOS/Kernel/Adam1a.HPP,3630"$Fs->r11       0000 0000000008 DefineStr 
+$LK,"_R12                      ","FL:D:/TempleOS/Kernel/Adam1a.HPP,3631"$Fs->r12       0000 0000000008 DefineStr 
+$LK,"_R13                      ","FL:D:/TempleOS/Kernel/Adam1a.HPP,3632"$Fs->r13       0000 0000000008 DefineStr 
+$LK,"_R14                      ","FL:D:/TempleOS/Kernel/Adam1a.HPP,3633"$Fs->r14       0000 0000000008 DefineStr 
+$LK,"_R15                      ","FL:D:/TempleOS/Kernel/Adam1a.HPP,3634"$Fs->r15       0000 0000000008 DefineStr 
+$LK,"_R8                       ","FL:D:/TempleOS/Kernel/Adam1a.HPP,3627"$Fs->r8        0000 0000000008 DefineStr 
+$LK,"_R9                       ","FL:D:/TempleOS/Kernel/Adam1a.HPP,3628"$Fs->r9        0000 0000000008 DefineStr 
+$LK,"_RAX                      ","FL:D:/TempleOS/Kernel/Adam1a.HPP,3618"$Fs->rax       0000 0000000008 DefineStr 
+$LK,"_RBP                      ","FL:D:/TempleOS/Kernel/Adam1a.HPP,3624"$Fs->rbp       0000 0000000008 DefineStr 
+$LK,"_RBX                      ","FL:D:/TempleOS/Kernel/Adam1a.HPP,3619"$Fs->rbx       0000 0000000008 DefineStr 
+$LK,"_RCX                      ","FL:D:/TempleOS/Kernel/Adam1a.HPP,3620"$Fs->rcx       0000 0000000008 DefineStr 
+$LK,"_RDI                      ","FL:D:/TempleOS/Kernel/Adam1a.HPP,3623"$Fs->rdi       0000 0000000008 DefineStr 
+$LK,"_RDX                      ","FL:D:/TempleOS/Kernel/Adam1a.HPP,3621"$Fs->rdx       0000 0000000008 DefineStr 
+$LK,"_REP_IN_U16               ","FL:D:/TempleOS/Kernel/Utils1a.CPP.Z,259"$0000003095    0001            ExportSysSym Export 
+$LK,"_REP_IN_U32               ","FL:D:/TempleOS/Kernel/Utils1a.CPP.Z,248"$000000307D    0001            ExportSysSym Export 
+$LK,"_REP_IN_U8                ","FL:D:/TempleOS/Kernel/Utils1a.CPP.Z,270"$00000030AE    0001            ExportSysSym Export 
+$LK,"_REP_OUT_U16              ","FL:D:/TempleOS/Kernel/Utils1a.CPP.Z,292"$00000030DE    0001            ExportSysSym Export 
+$LK,"_REP_OUT_U32              ","FL:D:/TempleOS/Kernel/Utils1a.CPP.Z,281"$00000030C6    0001            ExportSysSym Export 
+$LK,"_REP_OUT_U8               ","FL:D:/TempleOS/Kernel/Utils1a.CPP.Z,303"$00000030F7    0001            ExportSysSym Export 
+$LK,"_RIP                      ","FL:D:/TempleOS/Kernel/Adam1a.HPP,3626"$Fs->rip       0000 0000000008 DefineStr 
+$LK,"_ROUND                    ","FL:D:/TempleOS/Kernel/Math1a.CPP.Z,360"$00000035B4    0001            ExportSysSym Export 
+$LK,"_RSI                      ","FL:D:/TempleOS/Kernel/Adam1a.HPP,3622"$Fs->rsi       0000 0000000008 DefineStr 
+$LK,"_RSP                      ","FL:D:/TempleOS/Kernel/Adam1a.HPP,3625"$Fs->rsp       0000 0000000008 DefineStr 
+$LK,"_SAVE_EXCEPT_REGS         ","FL:D:/TempleOS/Kernel/Except.CPP.Z,40"$0000014DDB    0001            ExportSysSym Export 
+$LK,"_SET_GS_BASE              ","FL:D:/TempleOS/Kernel/Utils1a.CPP.Z,414"$00000031EF    0004            ExportSysSym Export 
+$LK,"_SET_MSR                  ","FL:D:/TempleOS/Kernel/Utils1a.CPP.Z,442"$0000003226    0001            ExportSysSym Export 
+$LK,"_SIGN                     ","FL:D:/TempleOS/Kernel/Math1a.CPP.Z,329"$000000355B    0001            ExportSysSym Export 
+$LK,"_SQR                      ","FL:D:/TempleOS/Kernel/Math1a.CPP.Z,320"$0000003547    0000            ExportSysSym Export 
+$LK,"_STRCAT                   ","FL:D:/TempleOS/Kernel/Str1a.CPP.Z,71"$000000B3DA    0001            ExportSysSym Export 
+$LK,"_STRCMP                   ","FL:D:/TempleOS/Kernel/Str1a.CPP.Z,114"$000000B42C    0001            ExportSysSym Export 
+$LK,"_STRCPY                   ","FL:D:/TempleOS/Kernel/Str1a.CPP.Z,93"$000000B404    0001            ExportSysSym Export 
+$LK,"_STRICMP                  ","FL:D:/TempleOS/Kernel/Str1a.CPP.Z,146"$000000B46A    0001            ExportSysSym Export 
+$LK,"_STRIMATCH                ","FL:D:/TempleOS/Kernel/Str1a.CPP.Z,291"$000000B5B0    0001            ExportSysSym Export 
+$LK,"_STRMATCH                 ","FL:D:/TempleOS/Kernel/Str1a.CPP.Z,252"$000000B55B    0001            ExportSysSym Export 
+$LK,"_STRNCMP                  ","FL:D:/TempleOS/Kernel/Str1a.CPP.Z,183"$000000B4BD    0001            ExportSysSym Export 
+$LK,"_STRNICMP                 ","FL:D:/TempleOS/Kernel/Str1a.CPP.Z,212"$000000B4FF    0001            ExportSysSym Export 
+$LK,"_SYS_HLT                  ","FL:D:/TempleOS/Kernel/Utils1a.CPP.Z,451"$0000003240    0005            ExportSysSym Export 
+$LK,"_TAKE_EXCEPT              ","FL:D:/TempleOS/Kernel/Except.CPP.Z,34"$0000014DC9    0001            ExportSysSym Export 
+$LK,"_TEST_EXCEPT              ","FL:D:/TempleOS/Kernel/Except.CPP.Z,18"$0000014D92    0001            ExportSysSym Export 
+$LK,"_TRUNC                    ","FL:D:/TempleOS/Kernel/Math1a.CPP.Z,378"$00000035E1    0001            ExportSysSym Export 
+$LK,"_XCHG_U16                 ","FL:D:/TempleOS/Kernel/Utils1a.CPP.Z,200"$0000003007    0001            ExportSysSym Export 
+$LK,"_XCHG_U32                 ","FL:D:/TempleOS/Kernel/Utils1a.CPP.Z,193"$0000002FF6    0001            ExportSysSym Export 
+$LK,"_XCHG_U64                 ","FL:D:/TempleOS/Kernel/Utils1a.CPP.Z,186"$0000002FE3    0001            ExportSysSym Export 
+$LK,"_XCHG_U8                  ","FL:D:/TempleOS/Kernel/Utils1a.CPP.Z,207"$000000301B    0001            ExportSysSym Export 
+$LK,"adam_task                 ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,13"$00000039E0    001A 0000000008 GlbVar Export 
+$LK,"alpha_bitmap              ","FL:D:/TempleOS/Kernel/Str1a.CPP.Z,350"$000000B620    0000 0000000040 GlbVar Export 
+$LK,"alpha_numeric_bitmap      ","FL:D:/TempleOS/Kernel/Str1a.CPP.Z,353"$000000B660    0002 0000000040 GlbVar Export 
+$LK,"alpha_numeric_no_at_bitmap","FL:D:/TempleOS/Kernel/Str1a.CPP.Z,356"$000000B6A0    0000 0000000040 GlbVar Export 
+$LK,"ans                       ","FL:D:/TempleOS/Kernel/Adam1a.HPP,3145"$(Fs->answe    0000 0000000018 DefineStr 
+$LK,"ans0                      ","FL:D:/TempleOS/Kernel/Adam1a.HPP,3146"$(Fs->answe    0000 0000000018 DefineStr 
+$LK,"ans1                      ","FL:D:/TempleOS/Kernel/Adam1a.HPP,3147"$(Fs->answe    0000 0000000018 DefineStr 
+$LK,"ans2                      ","FL:D:/TempleOS/Kernel/Adam1a.HPP,3148"$(Fs->answe    0000 0000000018 DefineStr 
+$LK,"ans3                      ","FL:D:/TempleOS/Kernel/Adam1a.HPP,3149"$(Fs->answe    0000 0000000018 DefineStr 
+$LK,"ansf                      ","FL:D:/TempleOS/Kernel/Adam1a.HPP,3151"$(Fs->answe    0000 0000000018 DefineStr 
+$LK,"ansf0                     ","FL:D:/TempleOS/Kernel/Adam1a.HPP,3152"$(Fs->answe    0000 0000000018 DefineStr 
+$LK,"ansf1                     ","FL:D:/TempleOS/Kernel/Adam1a.HPP,3153"$(Fs->answe    0000 0000000018 DefineStr 
+$LK,"ansf2                     ","FL:D:/TempleOS/Kernel/Adam1a.HPP,3154"$(Fs->answe    0000 0000000018 DefineStr 
+$LK,"ansf3                     ","FL:D:/TempleOS/Kernel/Adam1a.HPP,3155"$(Fs->answe    0000 0000000018 DefineStr 
+$LK,"bios_gr_mode              ","FL:D:/TempleOS/Kernel/Adam1b.HPP,28"$0000000C60    0003 0000000002 GlbVar Public Export 
+$LK,"boot_drv_pmt              ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,45"$0000003AC2    0002 0000000001 GlbVar Export 
+$LK,"c32_eax                   ","FL:D:/TempleOS/Kernel/BIOS32.CPP.Z,160"$000001B94B    0008 0000000004 GlbVar Export 
+$LK,"c32_ebx                   ","FL:D:/TempleOS/Kernel/BIOS32.CPP.Z,161"$000001B94F    0009 0000000004 GlbVar Export 
+$LK,"c32_ecx                   ","FL:D:/TempleOS/Kernel/BIOS32.CPP.Z,162"$000001B953    0007 0000000004 GlbVar Export 
+$LK,"c32_edi                   ","FL:D:/TempleOS/Kernel/BIOS32.CPP.Z,165"$000001B95F    0006 0000000004 GlbVar Export 
+$LK,"c32_edx                   ","FL:D:/TempleOS/Kernel/BIOS32.CPP.Z,163"$000001B957    0000 0000000004 GlbVar Export 
+$LK,"c32_eflags                ","FL:D:/TempleOS/Kernel/BIOS32.CPP.Z,166"$000001B963    0000 0000000004 GlbVar Export 
+$LK,"c32_esi                   ","FL:D:/TempleOS/Kernel/BIOS32.CPP.Z,164"$000001B95B    0001 0000000004 GlbVar Export 
+$LK,"cdrom_boot_is_good        ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,45"$0000003AC3    0002 0000000001 GlbVar Export 
+$LK,"cpu_structs               ","FL:D:/TempleOS/Kernel/Adam1b.HPP,191"$0000002360    000C 0000000008 GlbVar Public Export 
+$LK,"ctrl_alt_let_descs        ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,53"$0000003BF8    0003 0000000008 GlbVar Export 
+$LK,"ctrl_alt_let_in_irq_flags ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,51"$0000003BE8    0004 0000000008 GlbVar Export 
+$LK,"ctrl_alt_let_ret_addr     ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,51"$0000003BF0    0002 0000000008 GlbVar Export 
+$LK,"date_fmt_map              ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,135"$0000003F90    0003 0000000008 GlbVar Export 
+$LK,"dec_numeric_bitmap        ","FL:D:/TempleOS/Kernel/Str1a.CPP.Z,365"$000000B760    0003 0000000040 GlbVar Export 
+$LK,"displayable_chars_bitmap  ","FL:D:/TempleOS/Kernel/Str1a.CPP.Z,392"$000000B9A0    0001 0000000040 GlbVar Export 
+$LK,"drv_to_prt                ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,47"$0000003AC8    0003 0000000100 GlbVar Export 
 $LK,"eps                       ","FL:D:/TempleOS/Kernel/Adam1a.HPP,139"$(0x3CB0000    0000 0000000020 DefineStr 
 $LK,"exp_1                     ","FL:D:/TempleOS/Kernel/Adam1a.HPP,132"$(0x4005BF0    0000 0000000020 DefineStr 
-$LK,"ext                       ","FL:D:/TempleOS/Kernel/Adam1b.HPP,295"$0000001850    0003 0000000008 GlbVar   
-$LK,"fat_long_name_map         ","FL:D:/TempleOS/Kernel/Dsk/FileSysFAT.CPP.Z,188"$00000271FB    0006 000000000D GlbVar  
-$LK,"filename_chars_bitmap     ","FL:D:/TempleOS/Kernel/Str1a.CPP.Z,354"$000000B78C    0002 0000000040 GlbVar  
-$LK,"fp_ctrl_alt_let_cbs       ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,50"$0000003C28    0006 0000000008 GlbVar  
-$LK,"fp_doc_put                ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,129"$0000003FB8    0002 0000000008 GlbVar  
-$LK,"fp_mgets                  ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,126"$0000003FA0    0005 0000000008 GlbVar  
-$LK,"fp_prs_stream_blk         ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,127"$0000003FA8    0000 0000000008 GlbVar  
-$LK,"fp_set_std_palette        ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,130"$0000003FC0    0002 0000000008 GlbVar  
-$LK,"fp_update_ctrls           ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,128"$0000003FB0    0002 0000000008 GlbVar  
-$LK,"getkey_chars_bitmap       ","FL:D:/TempleOS/Kernel/Str1a.CPP.Z,378"$000000B98C    0001 0000000040 GlbVar  
-$LK,"gr_font                   ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,26"$0000003AA8    0002 0000000008 GlbVar  
-$LK,"gr_height                 ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,25"$0000003AA0    000F 0000000008 GlbVar  
-$LK,"gr_width                  ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,24"$0000003A98    0014 0000000008 GlbVar  
-$LK,"hex_digits                ","FL:D:/TempleOS/Kernel/Str1a.CPP.Z,1"$000000B312    0001 0000000010 GlbVar  
-$LK,"hex_numeric_bitmap        ","FL:D:/TempleOS/Kernel/Str1a.CPP.Z,360"$000000B80C    0001 0000000040 GlbVar  
+$LK,"ext                       ","FL:D:/TempleOS/Kernel/Adam1b.HPP,295"$0000001850    0003 0000000008 GlbVar Public Export 
+$LK,"fat_long_name_map         ","FL:D:/TempleOS/Kernel/Dsk/FileSysFAT.CPP.Z,188"$0000026D44    0006 000000000D GlbVar Export 
+$LK,"filename_chars_bitmap     ","FL:D:/TempleOS/Kernel/Str1a.CPP.Z,362"$000000B720    0002 0000000040 GlbVar Export 
+$LK,"fp_ctrl_alt_let_cbs       ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,50"$0000003BE0    0006 0000000008 GlbVar Export 
+$LK,"fp_doc_put                ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,129"$0000003F70    0002 0000000008 GlbVar Export 
+$LK,"fp_mgets                  ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,126"$0000003F58    0005 0000000008 GlbVar Export 
+$LK,"fp_prs_stream_blk         ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,127"$0000003F60    0000 0000000008 GlbVar Export 
+$LK,"fp_set_std_palette        ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,130"$0000003F78    0002 0000000008 GlbVar Export 
+$LK,"fp_update_ctrls           ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,128"$0000003F68    0002 0000000008 GlbVar Export 
+$LK,"getkey_chars_bitmap       ","FL:D:/TempleOS/Kernel/Str1a.CPP.Z,386"$000000B920    0001 0000000040 GlbVar Export 
+$LK,"gr_font                   ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,26"$0000003A60    0002 0000000008 GlbVar Export 
+$LK,"gr_height                 ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,25"$0000003A58    000F 0000000008 GlbVar Export 
+$LK,"gr_width                  ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,24"$0000003A50    0014 0000000008 GlbVar Export 
+$LK,"hex_digits                ","FL:D:/TempleOS/Kernel/Str1a.CPP.Z,1"$000000B290    0001 0000000010 GlbVar Export 
+$LK,"hex_numeric_bitmap        ","FL:D:/TempleOS/Kernel/Str1a.CPP.Z,368"$000000B7A0    0001 0000000040 GlbVar Export 
 $LK,"inf                       ","FL:D:/TempleOS/Kernel/Adam1a.HPP,128"$(0x7FF0000    0000 0000000020 DefineStr 
-$LK,"ip_cb                     ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,88"$0000003E45    0003 0000000001 GlbVar  
-$LK,"ip_cb_last                ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,87"$0000003E42    0000 0000000001 GlbVar  
-$LK,"ip_dev                    ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,85"$0000003E28    0002 0000000008 GlbVar  
-$LK,"ip_has_wheel              ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,90"$0000003E47    0001 0000000001 GlbVar  
-$LK,"ip_last_move_time         ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,91"$0000003E48    0001 0000000008 GlbVar  
-$LK,"ip_lb                     ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,88"$0000003E44    0004 0000000001 GlbVar  
-$LK,"ip_lb_last                ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,87"$0000003E41    0001 0000000001 GlbVar  
-$LK,"ip_on                     ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,86"$0000003E40    0001 0000000001 GlbVar  
-$LK,"ip_rb                     ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,89"$0000003E46    0004 0000000001 GlbVar  
-$LK,"ip_rb_last                ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,88"$0000003E43    0001 0000000001 GlbVar  
-$LK,"ip_snap_last              ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,92"$0000003E50    0008 0000000030 GlbVar  
-$LK,"ip_speed                  ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,84"$0000003E20    0001 0000000008 GlbVar  
-$LK,"ip_throttle               ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,80"$0000003DD0    0003 0000000008 GlbVar  
-$LK,"iptx                      ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,85"$0000003E30    0004 0000000008 GlbVar  
-$LK,"ipty                      ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,86"$0000003E38    0004 0000000008 GlbVar  
-$LK,"ipx                       ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,79"$0000003DB8    0009 0000000008 GlbVar  
-$LK,"ipx_offset                ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,81"$0000003DF0    0006 0000000008 GlbVar  
-$LK,"ipx_presnap               ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,80"$0000003DD8    0003 0000000008 GlbVar  
-$LK,"ipx_scale                 ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,82"$0000003E08    0004 0000000008 GlbVar  
-$LK,"ipy                       ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,79"$0000003DC0    0009 0000000008 GlbVar  
-$LK,"ipy_offset                ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,81"$0000003DF8    0006 0000000008 GlbVar  
-$LK,"ipy_presnap               ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,80"$0000003DE0    0003 0000000008 GlbVar  
-$LK,"ipy_scale                 ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,82"$0000003E10    0004 0000000008 GlbVar  
-$LK,"ipz                       ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,79"$0000003DC8    0004 0000000008 GlbVar  
-$LK,"ipz_offset                ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,82"$0000003E00    0003 0000000008 GlbVar  
-$LK,"ipz_presnap               ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,81"$0000003DE8    0002 0000000008 GlbVar  
-$LK,"ipz_scale                 ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,83"$0000003E18    0003 0000000008 GlbVar  
-$LK,"kbd2_fifo                 ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,112"$0000003F08    0007 0000000008 GlbVar  
-$LK,"kbd_evt_time              ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,59"$0000003C88    0004 0000000008 GlbVar  
-$LK,"kbd_fifo                  ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,111"$0000003F00    0007 0000000008 GlbVar  
-$LK,"kbd_irqs_working          ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,64"$0000003D20    0002 0000000001 GlbVar  
-$LK,"kbdmouse_rst              ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,109"$0000003EF2    0006 0000000001 GlbVar  
-$LK,"key_desc                  ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,63"$0000003CA0    0001 0000000080 GlbVar  
-$LK,"key_down_bitmap           ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,121"$0000003F40    0003 0000000020 GlbVar  
-$LK,"key_down_bitmap2          ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,123"$0000003F60    0003 0000000020 GlbVar  
-$LK,"key_handler               ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,65"$0000003D28    0001 0000000008 GlbVar  
-$LK,"local_time_offset         ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,53"$0000003C48    003F 0000000008 GlbVar  
+$LK,"ip_cb                     ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,88"$0000003DFD    0003 0000000001 GlbVar Export 
+$LK,"ip_cb_last                ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,87"$0000003DFA    0000 0000000001 GlbVar Export 
+$LK,"ip_dev                    ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,85"$0000003DE0    0002 0000000008 GlbVar Export 
+$LK,"ip_has_wheel              ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,90"$0000003DFF    0001 0000000001 GlbVar Export 
+$LK,"ip_last_move_time         ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,91"$0000003E00    0001 0000000008 GlbVar Export 
+$LK,"ip_lb                     ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,88"$0000003DFC    0004 0000000001 GlbVar Export 
+$LK,"ip_lb_last                ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,87"$0000003DF9    0001 0000000001 GlbVar Export 
+$LK,"ip_on                     ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,86"$0000003DF8    0001 0000000001 GlbVar Export 
+$LK,"ip_rb                     ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,89"$0000003DFE    0004 0000000001 GlbVar Export 
+$LK,"ip_rb_last                ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,88"$0000003DFB    0001 0000000001 GlbVar Export 
+$LK,"ip_snap_last              ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,92"$0000003E08    0008 0000000030 GlbVar Export 
+$LK,"ip_speed                  ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,84"$0000003DD8    0001 0000000008 GlbVar Export 
+$LK,"ip_throttle               ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,80"$0000003D88    0003 0000000008 GlbVar Export 
+$LK,"iptx                      ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,85"$0000003DE8    0004 0000000008 GlbVar Export 
+$LK,"ipty                      ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,86"$0000003DF0    0004 0000000008 GlbVar Export 
+$LK,"ipx                       ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,79"$0000003D70    0009 0000000008 GlbVar Export 
+$LK,"ipx_offset                ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,81"$0000003DA8    0006 0000000008 GlbVar Export 
+$LK,"ipx_presnap               ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,80"$0000003D90    0003 0000000008 GlbVar Export 
+$LK,"ipx_scale                 ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,82"$0000003DC0    0004 0000000008 GlbVar Export 
+$LK,"ipy                       ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,79"$0000003D78    0009 0000000008 GlbVar Export 
+$LK,"ipy_offset                ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,81"$0000003DB0    0006 0000000008 GlbVar Export 
+$LK,"ipy_presnap               ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,80"$0000003D98    0003 0000000008 GlbVar Export 
+$LK,"ipy_scale                 ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,82"$0000003DC8    0004 0000000008 GlbVar Export 
+$LK,"ipz                       ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,79"$0000003D80    0004 0000000008 GlbVar Export 
+$LK,"ipz_offset                ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,82"$0000003DB8    0003 0000000008 GlbVar Export 
+$LK,"ipz_presnap               ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,81"$0000003DA0    0002 0000000008 GlbVar Export 
+$LK,"ipz_scale                 ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,83"$0000003DD0    0003 0000000008 GlbVar Export 
+$LK,"kbd2_fifo                 ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,112"$0000003EC0    0007 0000000008 GlbVar Export 
+$LK,"kbd_evt_time              ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,59"$0000003C40    0004 0000000008 GlbVar Export 
+$LK,"kbd_fifo                  ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,111"$0000003EB8    0007 0000000008 GlbVar Export 
+$LK,"kbd_irqs_working          ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,64"$0000003CD8    0002 0000000001 GlbVar Export 
+$LK,"kbdmouse_rst              ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,109"$0000003EAA    0006 0000000001 GlbVar Export 
+$LK,"key_desc                  ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,63"$0000003C58    0001 0000000080 GlbVar Export 
+$LK,"key_down_bitmap           ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,121"$0000003EF8    0003 0000000020 GlbVar Export 
+$LK,"key_down_bitmap2          ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,123"$0000003F18    0003 0000000020 GlbVar Export 
+$LK,"key_handler               ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,65"$0000003CE0    0001 0000000008 GlbVar Export 
+$LK,"local_time_offset         ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,53"$0000003C00    003F 0000000008 GlbVar Export 
 $LK,"log10_2                   ","FL:D:/TempleOS/Kernel/Adam1a.HPP,135"$(0x3FD3441    0000 0000000020 DefineStr 
 $LK,"log2_10                   ","FL:D:/TempleOS/Kernel/Adam1a.HPP,133"$(0x400A934    0000 0000000020 DefineStr 
 $LK,"log2_e                    ","FL:D:/TempleOS/Kernel/Adam1a.HPP,134"$(0x3FF7154    0000 0000000020 DefineStr 
 $LK,"loge_2                    ","FL:D:/TempleOS/Kernel/Adam1a.HPP,136"$(0x3FE62E4    0000 0000000020 DefineStr 
-$LK,"mon_start_days1           ","FL:D:/TempleOS/Kernel/Date.CPP.Z,3"$0000008E22    0003 0000000018 GlbVar  
-$LK,"mon_start_days2           ","FL:D:/TempleOS/Kernel/Date.CPP.Z,5"$0000008E3A    0003 0000000018 GlbVar  
-$LK,"mouse2_fifo               ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,113"$0000003F18    0005 0000000008 GlbVar  
-$LK,"mouse_buttons             ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,102"$0000003EE8    000B 0000000005 GlbVar  
-$LK,"mouse_evt                 ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,106"$0000003EEF    0004 0000000001 GlbVar  
-$LK,"mouse_evt_time            ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,59"$0000003C80    0007 0000000008 GlbVar  
-$LK,"mouse_fifo                ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,112"$0000003F10    0005 0000000008 GlbVar  
-$LK,"mouse_has_ext_buttons     ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,105"$0000003EEE    0004 0000000001 GlbVar  
-$LK,"mouse_has_wheel           ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,104"$0000003EED    0004 0000000001 GlbVar  
-$LK,"mouse_install_attempt_in_progress","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,108"$0000003EF1    0005 0000000001 GlbVar  
-$LK,"mouse_install_attempts    ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,116"$0000003F30    0003 0000000008 GlbVar  
-$LK,"mouse_installed           ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,107"$0000003EF0    0007 0000000001 GlbVar  
-$LK,"mouse_irqs_working        ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,110"$0000003EF3    0004 0000000001 GlbVar  
-$LK,"mouse_last_evt_time       ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,117"$0000003F38    0003 0000000008 GlbVar  
-$LK,"mouse_pkt_size            ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,59"$0000003C90    0004 0000000008 GlbVar  
-$LK,"mouse_speed               ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,100"$0000003EC8    0002 0000000008 GlbVar  
-$LK,"mp_apic_ids               ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,11"$00000039E0    0004 0000000040 GlbVar  
-$LK,"mp_cnt                    ","FL:D:/TempleOS/Kernel/Adam1b.HPP,187"$0000002368    0012 0000000008 GlbVar   
-$LK,"mp_cnt_initial            ","FL:D:/TempleOS/Kernel/Adam1b.HPP,187"$0000002370    0003 0000000008 GlbVar  
-$LK,"mp_cnt_lock               ","FL:D:/TempleOS/Kernel/Adam1b.HPP,189"$0000002378    0003 0000000008 GlbVar  
-$LK,"mp_crash                  ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,9"$00000039D8    000A 0000000008 GlbVar  
-$LK,"mxx                       ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,98"$0000003EB0    0008 0000000008 GlbVar  
-$LK,"mxx_prescale              ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,97"$0000003E98    0005 0000000008 GlbVar  
-$LK,"mxx_scale                 ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,93"$0000003E80    0004 0000000008 GlbVar  
-$LK,"myy                       ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,98"$0000003EB8    0008 0000000008 GlbVar  
-$LK,"myy_prescale              ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,97"$0000003EA0    0005 0000000008 GlbVar  
-$LK,"myy_scale                 ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,93"$0000003E88    0004 0000000008 GlbVar  
-$LK,"mzz                       ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,99"$0000003EC0    0005 0000000008 GlbVar  
-$LK,"mzz_prescale              ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,98"$0000003EA8    0005 0000000008 GlbVar  
-$LK,"mzz_scale                 ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,94"$0000003E90    0004 0000000008 GlbVar  
-$LK,"non_eol_chars_bitmap      ","FL:D:/TempleOS/Kernel/Str1a.CPP.Z,390"$000000BA8C    0000 0000000040 GlbVar  
-$LK,"non_eol_white_space_bitmap","FL:D:/TempleOS/Kernel/Str1a.CPP.Z,366"$000000B88C    0000 0000000040 GlbVar  
-$LK,"num_lock_map              ","FL:D:/TempleOS/Kernel/KbdMouse/Keyboard.CPP.Z,176"$000001645F    0001 0000000100 GlbVar  
-$LK,"old_mxx                   ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,100"$0000003ED0    0005 0000000008 GlbVar  
-$LK,"old_myy                   ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,100"$0000003ED8    0005 0000000008 GlbVar  
-$LK,"old_mzz                   ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,101"$0000003EE0    0003 0000000008 GlbVar  
+$LK,"mon_start_days1           ","FL:D:/TempleOS/Kernel/Date.CPP.Z,3"$0000008DD0    0003 0000000018 GlbVar Export 
+$LK,"mon_start_days2           ","FL:D:/TempleOS/Kernel/Date.CPP.Z,5"$0000008DE8    0003 0000000018 GlbVar Export 
+$LK,"mouse2_fifo               ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,113"$0000003ED0    0005 0000000008 GlbVar Export 
+$LK,"mouse_buttons             ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,102"$0000003EA0    000B 0000000005 GlbVar Export 
+$LK,"mouse_evt                 ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,106"$0000003EA7    0004 0000000001 GlbVar Export 
+$LK,"mouse_evt_time            ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,59"$0000003C38    0007 0000000008 GlbVar Export 
+$LK,"mouse_fifo                ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,112"$0000003EC8    0005 0000000008 GlbVar Export 
+$LK,"mouse_has_ext_buttons     ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,105"$0000003EA6    0004 0000000001 GlbVar Export 
+$LK,"mouse_has_wheel           ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,104"$0000003EA5    0004 0000000001 GlbVar Export 
+$LK,"mouse_install_attempt_in_progress","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,108"$0000003EA9    0005 0000000001 GlbVar Export 
+$LK,"mouse_install_attempts    ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,116"$0000003EE8    0003 0000000008 GlbVar Export 
+$LK,"mouse_installed           ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,107"$0000003EA8    0007 0000000001 GlbVar Export 
+$LK,"mouse_irqs_working        ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,110"$0000003EAB    0004 0000000001 GlbVar Export 
+$LK,"mouse_last_evt_time       ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,117"$0000003EF0    0003 0000000008 GlbVar Export 
+$LK,"mouse_pkt_size            ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,59"$0000003C48    0004 0000000008 GlbVar Export 
+$LK,"mouse_speed               ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,100"$0000003E80    0002 0000000008 GlbVar Export 
+$LK,"mp_apic_ids               ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,11"$0000003998    0004 0000000040 GlbVar Export 
+$LK,"mp_cnt                    ","FL:D:/TempleOS/Kernel/Adam1b.HPP,187"$0000002368    0012 0000000008 GlbVar Public Export 
+$LK,"mp_cnt_initial            ","FL:D:/TempleOS/Kernel/Adam1b.HPP,187"$0000002370    0003 0000000008 GlbVar Export 
+$LK,"mp_cnt_lock               ","FL:D:/TempleOS/Kernel/Adam1b.HPP,189"$0000002378    0003 0000000008 GlbVar Export 
+$LK,"mp_crash                  ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,9"$0000003990    000A 0000000008 GlbVar Export 
+$LK,"mxx                       ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,98"$0000003E68    0008 0000000008 GlbVar Export 
+$LK,"mxx_prescale              ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,97"$0000003E50    0005 0000000008 GlbVar Export 
+$LK,"mxx_scale                 ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,93"$0000003E38    0004 0000000008 GlbVar Export 
+$LK,"myy                       ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,98"$0000003E70    0008 0000000008 GlbVar Export 
+$LK,"myy_prescale              ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,97"$0000003E58    0005 0000000008 GlbVar Export 
+$LK,"myy_scale                 ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,93"$0000003E40    0004 0000000008 GlbVar Export 
+$LK,"mzz                       ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,99"$0000003E78    0005 0000000008 GlbVar Export 
+$LK,"mzz_prescale              ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,98"$0000003E60    0005 0000000008 GlbVar Export 
+$LK,"mzz_scale                 ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,94"$0000003E48    0004 0000000008 GlbVar Export 
+$LK,"non_eol_chars_bitmap      ","FL:D:/TempleOS/Kernel/Str1a.CPP.Z,398"$000000BA20    0000 0000000040 GlbVar Export 
+$LK,"non_eol_white_space_bitmap","FL:D:/TempleOS/Kernel/Str1a.CPP.Z,374"$000000B820    0000 0000000040 GlbVar Export 
+$LK,"num_lock_map              ","FL:D:/TempleOS/Kernel/KbdMouse/Keyboard.CPP.Z,176"$000001623F    0001 0000000100 GlbVar Export 
+$LK,"old_mxx                   ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,100"$0000003E88    0005 0000000008 GlbVar Export 
+$LK,"old_myy                   ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,100"$0000003E90    0005 0000000008 GlbVar Export 
+$LK,"old_mzz                   ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,101"$0000003E98    0003 0000000008 GlbVar Export 
 $LK,"pi                        ","FL:D:/TempleOS/Kernel/Adam1a.HPP,130"$(0x400921F    0000 0000000020 DefineStr 
-$LK,"pow10_I64                 ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,75"$0000003DA8    0003 0000000008 GlbVar  
-$LK,"printable_chars_bitmap    ","FL:D:/TempleOS/Kernel/Str1a.CPP.Z,381"$000000B9CC    0001 0000000040 GlbVar  
-$LK,"progress1                 ","FL:D:/TempleOS/Kernel/Adam1b.HPP,43"$0000002248    0008 0000000008 GlbVar   
-$LK,"progress1_desc            ","FL:D:/TempleOS/Kernel/Adam1b.HPP,45"$0000002258    0005 0000000030 GlbVar   
-$LK,"progress1_max             ","FL:D:/TempleOS/Kernel/Adam1b.HPP,44"$0000002250    0005 0000000008 GlbVar   
-$LK,"progress2                 ","FL:D:/TempleOS/Kernel/Adam1b.HPP,46"$0000002288    0000 0000000008 GlbVar   
-$LK,"progress2_desc            ","FL:D:/TempleOS/Kernel/Adam1b.HPP,48"$0000002298    0000 0000000030 GlbVar   
-$LK,"progress2_max             ","FL:D:/TempleOS/Kernel/Adam1b.HPP,47"$0000002290    0000 0000000008 GlbVar   
-$LK,"progress3                 ","FL:D:/TempleOS/Kernel/Adam1b.HPP,49"$00000022C8    0000 0000000008 GlbVar   
-$LK,"progress3_desc            ","FL:D:/TempleOS/Kernel/Adam1b.HPP,51"$00000022D8    0000 0000000030 GlbVar   
-$LK,"progress3_max             ","FL:D:/TempleOS/Kernel/Adam1b.HPP,50"$00000022D0    0000 0000000008 GlbVar   
-$LK,"progress4                 ","FL:D:/TempleOS/Kernel/Adam1b.HPP,52"$0000002308    0000 0000000008 GlbVar   
-$LK,"progress4_desc            ","FL:D:/TempleOS/Kernel/Adam1b.HPP,54"$0000002318    0000 0000000030 GlbVar   
-$LK,"progress4_max             ","FL:D:/TempleOS/Kernel/Adam1b.HPP,53"$0000002310    0000 0000000008 GlbVar   
-$LK,"psect_cache               ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,133"$0000003FC8    0003 0000000008 GlbVar  
-$LK,"psect_cache_index         ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,134"$0000003FD0    0002 0000000008 GlbVar  
-$LK,"reverse_bits_table        ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,48"$0000003C18    0003 0000000008 GlbVar  
-$LK,"safe_dollar_chars_bitmap  ","FL:D:/TempleOS/Kernel/Str1a.CPP.Z,387"$000000BA4C    0001 0000000040 GlbVar  
-$LK,"scan_code_fifo            ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,111"$0000003EF8    0004 0000000008 GlbVar  
-$LK,"scan_code_map             ","FL:D:/TempleOS/Kernel/KbdMouse/Keyboard.CPP.Z,155"$000001635F    0001 0000000100 GlbVar  
-$LK,"set_bits_table            ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,49"$0000003C20    0003 0000000008 GlbVar  
-$LK,"snd_freq                  ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,71"$0000003D98    0002 0000000008 GlbVar  
-$LK,"snd_record                ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,72"$0000003DA0    0001 0000000001 GlbVar  
-$LK,"snd_record_root           ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,125"$0000003F80    0004 0000000020 GlbVar  
-$LK,"sprintf_neg_powers_lets   ","FL:D:/TempleOS/Kernel/Str1a.CPP.Z,1323"$000000DAF8    0001 0000000008 GlbVar  
-$LK,"sprintf_neg_powers_lst    ","FL:D:/TempleOS/Kernel/Str1a.CPP.Z,1321"$000000DAC0    0000 0000000008 GlbVar  
-$LK,"sprintf_pos_powers_lets   ","FL:D:/TempleOS/Kernel/Str1a.CPP.Z,1318"$000000DAA8    0001 0000000008 GlbVar  
-$LK,"sprintf_pos_powers_lst    ","FL:D:/TempleOS/Kernel/Str1a.CPP.Z,1316"$000000DA70    0000 0000000008 GlbVar  
+$LK,"pow10_I64                 ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,75"$0000003D60    0003 0000000008 GlbVar Export 
+$LK,"printable_chars_bitmap    ","FL:D:/TempleOS/Kernel/Str1a.CPP.Z,389"$000000B960    0001 0000000040 GlbVar Export 
+$LK,"progress1                 ","FL:D:/TempleOS/Kernel/Adam1b.HPP,43"$0000002248    0008 0000000008 GlbVar Public Export 
+$LK,"progress1_desc            ","FL:D:/TempleOS/Kernel/Adam1b.HPP,45"$0000002258    0005 0000000030 GlbVar Public Export 
+$LK,"progress1_max             ","FL:D:/TempleOS/Kernel/Adam1b.HPP,44"$0000002250    0005 0000000008 GlbVar Public Export 
+$LK,"progress2                 ","FL:D:/TempleOS/Kernel/Adam1b.HPP,46"$0000002288    0000 0000000008 GlbVar Public Export 
+$LK,"progress2_desc            ","FL:D:/TempleOS/Kernel/Adam1b.HPP,48"$0000002298    0000 0000000030 GlbVar Public Export 
+$LK,"progress2_max             ","FL:D:/TempleOS/Kernel/Adam1b.HPP,47"$0000002290    0000 0000000008 GlbVar Public Export 
+$LK,"progress3                 ","FL:D:/TempleOS/Kernel/Adam1b.HPP,49"$00000022C8    0000 0000000008 GlbVar Public Export 
+$LK,"progress3_desc            ","FL:D:/TempleOS/Kernel/Adam1b.HPP,51"$00000022D8    0000 0000000030 GlbVar Public Export 
+$LK,"progress3_max             ","FL:D:/TempleOS/Kernel/Adam1b.HPP,50"$00000022D0    0000 0000000008 GlbVar Public Export 
+$LK,"progress4                 ","FL:D:/TempleOS/Kernel/Adam1b.HPP,52"$0000002308    0000 0000000008 GlbVar Public Export 
+$LK,"progress4_desc            ","FL:D:/TempleOS/Kernel/Adam1b.HPP,54"$0000002318    0000 0000000030 GlbVar Public Export 
+$LK,"progress4_max             ","FL:D:/TempleOS/Kernel/Adam1b.HPP,53"$0000002310    0000 0000000008 GlbVar Public Export 
+$LK,"psect_cache               ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,133"$0000003F80    0003 0000000008 GlbVar Export 
+$LK,"psect_cache_index         ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,134"$0000003F88    0002 0000000008 GlbVar Export 
+$LK,"reverse_bits_table        ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,48"$0000003BD0    0003 0000000008 GlbVar Export 
+$LK,"safe_dollar_chars_bitmap  ","FL:D:/TempleOS/Kernel/Str1a.CPP.Z,395"$000000B9E0    0001 0000000040 GlbVar Export 
+$LK,"scan_code_fifo            ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,111"$0000003EB0    0004 0000000008 GlbVar Export 
+$LK,"scan_code_map             ","FL:D:/TempleOS/Kernel/KbdMouse/Keyboard.CPP.Z,155"$000001613F    0001 0000000100 GlbVar Export 
+$LK,"set_bits_table            ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,49"$0000003BD8    0003 0000000008 GlbVar Export 
+$LK,"snd_freq                  ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,71"$0000003D50    0002 0000000008 GlbVar Export 
+$LK,"snd_record                ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,72"$0000003D58    0001 0000000001 GlbVar Export 
+$LK,"snd_record_root           ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,125"$0000003F38    0004 0000000020 GlbVar Export 
+$LK,"sprint_neg_powers_lets    ","FL:D:/TempleOS/Kernel/Str1a.CPP.Z,1299"$000000D9B8    0001 0000000008 GlbVar Export 
+$LK,"sprint_neg_powers_lst     ","FL:D:/TempleOS/Kernel/Str1a.CPP.Z,1297"$000000D980    0000 0000000008 GlbVar Export 
+$LK,"sprint_pos_powers_lets    ","FL:D:/TempleOS/Kernel/Str1a.CPP.Z,1294"$000000D968    0001 0000000008 GlbVar Export 
+$LK,"sprint_pos_powers_lst     ","FL:D:/TempleOS/Kernel/Str1a.CPP.Z,1292"$000000D930    0000 0000000008 GlbVar Export 
 $LK,"sqrt2                     ","FL:D:/TempleOS/Kernel/Adam1a.HPP,137"$(0x3FF6A09    0000 0000000020 DefineStr 
-$LK,"sys_acct                  ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,48"$0000003C10    000E 0000000008 GlbVar  
-$LK,"sys_auto_mount_ide_cnt    ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,36"$0000003B00    0001 0000000008 GlbVar  
-$LK,"sys_blkdevs               ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,35"$0000003AF0    0007 0000000008 GlbVar  
-$LK,"sys_boot_base             ","FL:D:/TempleOS/Kernel/Adam1b.HPP,36"$0000000004    0004 0000000004 GlbVar  
-$LK,"sys_boot_code             ","FL:D:/TempleOS/Kernel/Adam1b.HPP,37"$0000000018    0001 0000000004 GlbVar  
-$LK,"sys_boot_patch_table_base ","FL:D:/TempleOS/Kernel/Adam1b.HPP,39"$0000000008    0001 0000000004 GlbVar  
-$LK,"sys_cache_line_width      ","FL:D:/TempleOS/Kernel/Adam1b.HPP,164"$00000024C0    0001 0000000008 GlbVar   
-$LK,"sys_clipboard_doc         ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,32"$0000003AD0    0000 0000000008 GlbVar  
-$LK,"sys_code_bp               ","FL:D:/TempleOS/Kernel/Adam1b.HPP,120"$0000002238    0009 0000000008 GlbVar   
-$LK,"sys_compile_time          ","FL:D:/TempleOS/Kernel/Adam1b.HPP,33"$000000000C    0001 0000000008 GlbVar   
-$LK,"sys_ctrl_alt_flags        ","FL:D:/TempleOS/Kernel/Adam1b.HPP,32"$0000001848    0005 0000000008 GlbVar   
-$LK,"sys_cur_scan_code         ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,60"$0000003C98    0017 0000000008 GlbVar  
-$LK,"sys_data_bp               ","FL:D:/TempleOS/Kernel/Adam1b.HPP,121"$0000002240    0005 0000000008 GlbVar   
-$LK,"sys_dbg_focus_task        ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,5"$00000039C0    0002 0000000008 GlbVar  
-$LK,"sys_dbg_msg               ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,6"$00000039C8    0004 0000000008 GlbVar  
-$LK,"sys_dbg_msg_num           ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,7"$00000039D0    0004 0000000008 GlbVar  
-$LK,"sys_dc_screen_image       ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,23"$0000003A78    0006 0000000008 GlbVar  
-$LK,"sys_dft_iso_name          ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,33"$0000003AD8    0003 0000000008 GlbVar  
-$LK,"sys_dsk_cache_base        ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,17"$0000003A48    0008 0000000008 GlbVar  
-$LK,"sys_dsk_cache_ctrl        ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,17"$0000003A50    000A 0000000008 GlbVar  
-$LK,"sys_dsk_cache_hash_table  ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,18"$0000003A58    0005 0000000008 GlbVar  
-$LK,"sys_dsk_cache_size        ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,20"$0000003A60    0003 0000000008 GlbVar  
-$LK,"sys_dsk_reads             ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,33"$0000003AE0    0002 0000000008 GlbVar  
-$LK,"sys_dsk_writes            ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,34"$0000003AE8    0002 0000000008 GlbVar  
-$LK,"sys_fault_handlers_code   ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,16"$0000003A40    0003 0000000008 GlbVar  
-$LK,"sys_first_cd_drv_let      ","FL:HOME/Temp.TXT.Z,1"$0000003B09    0002 0000000001 GlbVar  
-$LK,"sys_first_hd_drv_let      ","FL:HOME/Temp.TXT.Z,1"$0000003B08    0002 0000000001 GlbVar  
-$LK,"sys_fix_file_line         ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,26"$0000003AB0    0003 0000000008 GlbVar  
-$LK,"sys_focus_task            ","FL:D:/TempleOS/Kernel/Adam1b.HPP,24"$0000002348    001B 0000000008 GlbVar   
-$LK,"sys_font_8x8              ","FL:D:/TempleOS/Kernel/Font8x8.CPP.Z,3"$0000004AFE    0001 0000000800 GlbVar  
-$LK,"sys_gdttab                ","FL:D:/TempleOS/Kernel/Adam1b.HPP,165"$00000003E0    0004 0000000880 GlbVar  
-$LK,"sys_heap_base             ","FL:D:/TempleOS/Kernel/Adam1b.HPP,122"$0000001828    0003 0000000004 GlbVar   
-$LK,"sys_heap_dbg              ","FL:D:/TempleOS/Kernel/Adam1b.HPP,131"$0000001846    0000 0000000001 GlbVar  
-$LK,"sys_heap_init_flag        ","FL:D:/TempleOS/Kernel/Adam1b.HPP,125"$0000001842    0000 0000000001 GlbVar  
-$LK,"sys_heap_init_val         ","FL:D:/TempleOS/Kernel/Adam1b.HPP,126"$0000001843    0000 0000000001 GlbVar  
-$LK,"sys_heap_limit            ","FL:D:/TempleOS/Kernel/Adam1b.HPP,123"$0000001830    0003 0000000004 GlbVar   
-$LK,"sys_idt                   ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,11"$0000003A20    0004 0000000008 GlbVar  
-$LK,"sys_init_fpu_mmx          ","FL:D:/TempleOS/Kernel/Adam1b.HPP,255"$0000002AB0    0001 0000000200 GlbVar  
-$LK,"sys_jiffies               ","FL:D:/TempleOS/Kernel/Adam1b.HPP,208"$0000002358    0004 0000000008 GlbVar   
-$LK,"sys_key_cnt               ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,114"$0000003F20    0002 0000000008 GlbVar  
-$LK,"sys_last_down_scan_code   ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,115"$0000003F28    0002 0000000008 GlbVar  
-$LK,"sys_macro_root            ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,3"$0000003908    0002 0000000080 GlbVar  
-$LK,"sys_macro_util_task       ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,4"$00000039B8    0001 0000000008 GlbVar  
-$LK,"sys_mem32_dev_root        ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,69"$0000003D68    0008 0000000028 GlbVar  
-$LK,"sys_mem64_dev_ptr         ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,69"$0000003D90    0006 0000000008 GlbVar  
-$LK,"sys_mem_init_flag         ","FL:D:/TempleOS/Kernel/Adam1b.HPP,127"$0000001840    0001 0000000001 GlbVar  
-$LK,"sys_mem_init_val          ","FL:D:/TempleOS/Kernel/Adam1b.HPP,128"$0000001841    0001 0000000001 GlbVar  
-$LK,"sys_num_installed_compilers","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,65"$0000003D30    0000 0000000008 GlbVar  
-$LK,"sys_num_spawned_users     ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,13"$0000003A30    0001 0000000008 GlbVar  
-$LK,"sys_num_task_inits        ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,13"$0000003A38    0001 0000000008 GlbVar  
-$LK,"sys_pci_busses            ","FL:D:/TempleOS/Kernel/Adam1b.HPP,30"$0000000C62    0000 0000000002 GlbVar   
-$LK,"sys_pci_dev_root          ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,68"$0000003D38    0001 0000000030 GlbVar  
-$LK,"sys_pci_services          ","FL:D:/TempleOS/Kernel/BIOS32.CPP.Z,167"$000001BB43    0007 0000000004 GlbVar  
-$LK,"sys_progresses            ","FL:D:/TempleOS/Kernel/Adam1b.HPP,42"$0000002248    0002 0000000100 GlbVar   
-$LK,"sys_prts                  ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,36"$0000003AF8    0006 0000000008 GlbVar  
-$LK,"sys_put_key_root          ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,4"$0000003988    0007 0000000030 GlbVar  
-$LK,"sys_raw_dc_col            ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,21"$0000003A68    0015 0000000008 GlbVar  
-$LK,"sys_raw_dc_flags          ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,21"$0000003A70    0014 0000000008 GlbVar  
-$LK,"sys_rnd_seed              ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,31"$0000003AC8    0019 0000000008 GlbVar  
-$LK,"sys_run_level             ","FL:D:/TempleOS/Kernel/Adam1b.HPP,38"$00000015FC    0009 0000000004 GlbVar  
-$LK,"sys_semas                 ","FL:D:/TempleOS/Kernel/Adam1b.HPP,192"$00000024F0    0049 00000005C0 GlbVar  
-$LK,"sys_task_being_screen_updated","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,29"$0000003AC0    0001 0000000008 GlbVar  
-$LK,"sys_temp_cpu0_struct      ","FL:D:/TempleOS/Kernel/Adam1b.HPP,190"$0000002380    0001 0000000130 GlbVar  
-$LK,"sys_temp_filename         ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,2"$0000003879    0002 0000000088 GlbVar  
-$LK,"sys_timer                 ","FL:D:/TempleOS/Kernel/Adam1b.HPP,207"$0000002350    0002 0000000008 GlbVar  
-$LK,"sys_uncached_heap         ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,77"$0000003DB0    0001 0000000008 GlbVar  
-$LK,"sys_var_init_flag         ","FL:D:/TempleOS/Kernel/Adam1b.HPP,129"$0000001844    0000 0000000001 GlbVar  
-$LK,"sys_var_init_val          ","FL:D:/TempleOS/Kernel/Adam1b.HPP,130"$0000001845    0000 0000000001 GlbVar  
-$LK,"sys_winmgr_task           ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,28"$0000003AB8    0004 0000000008 GlbVar  
-$LK+BI,"tJ                        ","FL:D:/TempleOS/Kernel/Misc1a.CPP.Z,144",631$0000012C7A    0000 0000000022 Funct  
-$LK+BI,"tS                        ","FL:D:/TempleOS/Kernel/Misc1a.CPP.Z,149",632$0000012CA2    001B 0000000021 Funct  
-$LK+BI,"tT                        ","FL:D:/TempleOS/Kernel/Misc1a.CPP.Z,121",633$0000012BD2    0004 00000000A8 Funct  
-$LK,"text_cols                 ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,24"$0000003A90    001D 0000000008 GlbVar  
-$LK,"text_mode                 ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,24"$0000003A80    0003 0000000001 GlbVar  
-$LK,"text_rows                 ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,24"$0000003A88    0011 0000000008 GlbVar  
-$LK+BI,"throw                     ","FL:D:/TempleOS/Kernel/Except.CPP.Z,165",634$00000154F7    0026 0000000022 Funct  
-$LK+BI,"throw_join                ","FL:D:/TempleOS/Kernel/Except.CPP.Z,136",635$00000153D7    0002 0000000104 Funct  
-throw_no_log              00000154DF    0001            ExportSysSym 
-$LK+BI,"throw_no_log              ","FL:D:/TempleOS/Kernel/Except.CPP.Z,160",636$00000154DF    0001 0000000014 Funct  
-$LK,"time_fmt_map              ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,136"$0000003FE0    0003 0000000008 GlbVar  
-$LK,"time_stamp_freq           ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,56"$0000003C68    000B 0000000008 GlbVar  
-$LK,"time_stamp_freq_calibrated","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,54"$0000003C50    0001 0000000001 GlbVar  
-$LK,"time_stamp_freq_initial   ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,58"$0000003C78    0001 0000000008 GlbVar  
-$LK,"time_stamp_kHz_freq       ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,57"$0000003C70    0001 0000000008 GlbVar  
-$LK,"white_space_bitmap        ","FL:D:/TempleOS/Kernel/Str1a.CPP.Z,363"$000000B84C    0006 0000000040 GlbVar  
-$LK,"word_bitmap               ","FL:D:/TempleOS/Kernel/Str1a.CPP.Z,351"$000000B74C    0000 0000000040 GlbVar  
-$LK,"zero_cr_nl_cursor_bitmap  ","FL:D:/TempleOS/Kernel/Str1a.CPP.Z,369"$000000B8CC    0000 0000000040 GlbVar  
-$LK,"zero_tab_ff_cr_nl_cursor_bitmap","FL:D:/TempleOS/Kernel/Str1a.CPP.Z,372"$000000B90C    0000 0000000040 GlbVar  
-$LK,"zero_tab_ff_cr_nl_cursor_dollar_bitmap","FL:D:/TempleOS/Kernel/Str1a.CPP.Z,375"$000000B94C    0000 0000000040 GlbVar  
+$LK,"sys_acct                  ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,48"$0000003BC8    000E 0000000008 GlbVar Export 
+$LK,"sys_auto_mount_ide_cnt    ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,36"$0000003AB8    0001 0000000008 GlbVar Export 
+$LK,"sys_blkdevs               ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,35"$0000003AA8    0007 0000000008 GlbVar Export 
+$LK,"sys_boot_base             ","FL:D:/TempleOS/Kernel/Adam1b.HPP,36"$0000000004    0005 0000000004 GlbVar Export 
+$LK,"sys_boot_code             ","FL:D:/TempleOS/Kernel/Adam1b.HPP,37"$0000000018    0001 0000000004 GlbVar Export 
+$LK,"sys_boot_patch_table_base ","FL:D:/TempleOS/Kernel/Adam1b.HPP,39"$0000000008    0001 0000000004 GlbVar Export 
+$LK,"sys_cache_line_width      ","FL:D:/TempleOS/Kernel/Adam1b.HPP,164"$00000024C0    0001 0000000008 GlbVar Public Export 
+$LK,"sys_clipboard_doc         ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,32"$0000003A88    0000 0000000008 GlbVar Export 
+$LK,"sys_code_bp               ","FL:D:/TempleOS/Kernel/Adam1b.HPP,120"$0000002238    0009 0000000008 GlbVar Public Export 
+$LK,"sys_compile_time          ","FL:D:/TempleOS/Kernel/Adam1b.HPP,33"$000000000C    0001 0000000008 GlbVar Public Export 
+$LK,"sys_ctrl_alt_flags        ","FL:D:/TempleOS/Kernel/Adam1b.HPP,32"$0000001848    0005 0000000008 GlbVar Public Export 
+$LK,"sys_cur_scan_code         ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,60"$0000003C50    0017 0000000008 GlbVar Export 
+$LK,"sys_data_bp               ","FL:D:/TempleOS/Kernel/Adam1b.HPP,121"$0000002240    0005 0000000008 GlbVar Public Export 
+$LK,"sys_dbg_focus_task        ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,5"$0000003978    0002 0000000008 GlbVar Export 
+$LK,"sys_dbg_msg               ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,6"$0000003980    0004 0000000008 GlbVar Export 
+$LK,"sys_dbg_msg_num           ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,7"$0000003988    0004 0000000008 GlbVar Export 
+$LK,"sys_dft_iso_name          ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,33"$0000003A90    0003 0000000008 GlbVar Export 
+$LK,"sys_dsk_cache_base        ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,17"$0000003A00    0008 0000000008 GlbVar Export 
+$LK,"sys_dsk_cache_ctrl        ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,17"$0000003A08    000A 0000000008 GlbVar Export 
+$LK,"sys_dsk_cache_hash_table  ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,18"$0000003A10    0005 0000000008 GlbVar Export 
+$LK,"sys_dsk_cache_size        ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,20"$0000003A18    0003 0000000008 GlbVar Export 
+$LK,"sys_dsk_reads             ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,33"$0000003A98    0002 0000000008 GlbVar Export 
+$LK,"sys_dsk_writes            ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,34"$0000003AA0    0002 0000000008 GlbVar Export 
+$LK,"sys_fault_handlers_code   ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,16"$00000039F8    0003 0000000008 GlbVar Export 
+$LK,"sys_first_cd_drv_let      ","FL:HOME/Temp.TXT.Z,1"$0000003AC1    0002 0000000001 GlbVar Export 
+$LK,"sys_first_hd_drv_let      ","FL:HOME/Temp.TXT.Z,1"$0000003AC0    0002 0000000001 GlbVar Export 
+$LK,"sys_fix_file_line         ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,26"$0000003A68    0003 0000000008 GlbVar Export 
+$LK,"sys_focus_task            ","FL:D:/TempleOS/Kernel/Adam1b.HPP,24"$0000002348    001B 0000000008 GlbVar Public Export 
+$LK,"sys_font_8x8              ","FL:D:/TempleOS/Kernel/Font8x8.CPP.Z,3"$0000004ACE    0001 0000000800 GlbVar Export 
+$LK,"sys_gdttab                ","FL:D:/TempleOS/Kernel/Adam1b.HPP,165"$00000003E0    0004 0000000880 GlbVar Export 
+$LK,"sys_heap_base             ","FL:D:/TempleOS/Kernel/Adam1b.HPP,122"$0000001830    0003 0000000008 GlbVar Public Export 
+$LK,"sys_heap_dbg              ","FL:D:/TempleOS/Kernel/Adam1b.HPP,131"$0000001846    0000 0000000001 GlbVar Export 
+$LK,"sys_heap_init_flag        ","FL:D:/TempleOS/Kernel/Adam1b.HPP,125"$0000001842    0000 0000000001 GlbVar Export 
+$LK,"sys_heap_init_val         ","FL:D:/TempleOS/Kernel/Adam1b.HPP,126"$0000001843    0000 0000000001 GlbVar Export 
+$LK,"sys_heap_limit            ","FL:D:/TempleOS/Kernel/Adam1b.HPP,123"$0000001838    0003 0000000008 GlbVar Public Export 
+$LK,"sys_idt                   ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,11"$00000039D8    0004 0000000008 GlbVar Export 
+$LK,"sys_init_fpu_mmx          ","FL:D:/TempleOS/Kernel/Adam1b.HPP,255"$0000002A70    0001 0000000200 GlbVar Export 
+$LK,"sys_jiffies               ","FL:D:/TempleOS/Kernel/Adam1b.HPP,208"$0000002358    0004 0000000008 GlbVar Public Export 
+$LK,"sys_key_cnt               ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,114"$0000003ED8    0002 0000000008 GlbVar Export 
+$LK,"sys_last_down_scan_code   ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,115"$0000003EE0    0002 0000000008 GlbVar Export 
+$LK,"sys_macro_root            ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,3"$00000038C0    0002 0000000080 GlbVar Export 
+$LK,"sys_macro_util_task       ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,4"$0000003970    0001 0000000008 GlbVar Export 
+$LK,"sys_mem32_dev_root        ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,69"$0000003D20    0008 0000000028 GlbVar Export 
+$LK,"sys_mem64_dev_ptr         ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,69"$0000003D48    0006 0000000008 GlbVar Export 
+$LK,"sys_mem_init_flag         ","FL:D:/TempleOS/Kernel/Adam1b.HPP,127"$0000001840    0001 0000000001 GlbVar Export 
+$LK,"sys_mem_init_val          ","FL:D:/TempleOS/Kernel/Adam1b.HPP,128"$0000001841    0001 0000000001 GlbVar Export 
+$LK,"sys_num_installed_compilers","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,65"$0000003CE8    0000 0000000008 GlbVar Export 
+$LK,"sys_num_spawned_users     ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,13"$00000039E8    0001 0000000008 GlbVar Export 
+$LK,"sys_num_task_inits        ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,13"$00000039F0    0001 0000000008 GlbVar Export 
+$LK,"sys_pci_busses            ","FL:D:/TempleOS/Kernel/Adam1b.HPP,30"$0000000C62    0000 0000000002 GlbVar Public Export 
+$LK,"sys_pci_dev_root          ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,68"$0000003CF0    0001 0000000030 GlbVar Export 
+$LK,"sys_pci_services          ","FL:D:/TempleOS/Kernel/BIOS32.CPP.Z,167"$000001B8BB    0007 0000000004 GlbVar Export 
+$LK,"sys_progresses            ","FL:D:/TempleOS/Kernel/Adam1b.HPP,42"$0000002248    0002 0000000100 GlbVar Public Export 
+$LK,"sys_prts                  ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,36"$0000003AB0    0006 0000000008 GlbVar Export 
+$LK,"sys_put_key_root          ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,4"$0000003940    0007 0000000030 GlbVar Export 
+$LK,"sys_raw_col               ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,21"$0000003A20    0015 0000000008 GlbVar Export 
+$LK,"sys_raw_flags             ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,21"$0000003A28    0014 0000000008 GlbVar Export 
+$LK,"sys_raw_screen_image      ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,23"$0000003A30    0006 0000000008 GlbVar Export 
+$LK,"sys_rnd_seed              ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,31"$0000003A80    0019 0000000008 GlbVar Export 
+$LK,"sys_run_level             ","FL:D:/TempleOS/Kernel/Adam1b.HPP,38"$00000015FC    0009 0000000004 GlbVar Export 
+$LK,"sys_semas                 ","FL:D:/TempleOS/Kernel/Adam1b.HPP,192"$00000024F0    003E 0000000580 GlbVar Export 
+$LK,"sys_task_being_screen_updated","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,29"$0000003A78    0001 0000000008 GlbVar Export 
+$LK,"sys_temp_cpu0_struct      ","FL:D:/TempleOS/Kernel/Adam1b.HPP,190"$0000002380    0001 0000000130 GlbVar Export 
+$LK,"sys_temp_filename         ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,2"$0000003834    0002 0000000088 GlbVar Export 
+$LK,"sys_timer                 ","FL:D:/TempleOS/Kernel/Adam1b.HPP,207"$0000002350    0002 0000000008 GlbVar Export 
+$LK,"sys_uncached_heap         ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,77"$0000003D68    0001 0000000008 GlbVar Export 
+$LK,"sys_var_init_flag         ","FL:D:/TempleOS/Kernel/Adam1b.HPP,129"$0000001844    0000 0000000001 GlbVar Export 
+$LK,"sys_var_init_val          ","FL:D:/TempleOS/Kernel/Adam1b.HPP,130"$0000001845    0000 0000000001 GlbVar Export 
+$LK,"sys_winmgr_task           ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,28"$0000003A70    0004 0000000008 GlbVar Export 
+$LK+BI,"tJ                        ","FL:D:/TempleOS/Kernel/Misc1a.CPP.Z,144",632$0000012942    0000 0000000022 Funct Export 
+$LK+BI,"tS                        ","FL:D:/TempleOS/Kernel/Misc1a.CPP.Z,150",633$000001296A    001B 0000000050 Funct Export 
+$LK+BI,"tT                        ","FL:D:/TempleOS/Kernel/Misc1a.CPP.Z,121",634$000001289A    0004 00000000A5 Funct Export 
+$LK,"text_cols                 ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,24"$0000003A48    001D 0000000008 GlbVar Export 
+$LK,"text_mode                 ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,24"$0000003A38    0003 0000000001 GlbVar Export 
+$LK,"text_rows                 ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,24"$0000003A40    0011 0000000008 GlbVar Export 
+$LK+BI,"throw                     ","FL:D:/TempleOS/Kernel/Except.CPP.Z,165",635$00000152D7    0024 0000000022 Funct Export 
+$LK+BI,"throw_join                ","FL:D:/TempleOS/Kernel/Except.CPP.Z,136",636$00000151B7    0002 0000000104 Funct Export 
+throw_no_log              00000152BF    0001            ExportSysSym 
+$LK+BI,"throw_no_log              ","FL:D:/TempleOS/Kernel/Except.CPP.Z,160",637$00000152BF    0001 0000000014 Funct Export 
+$LK,"time_fmt_map              ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,136"$0000003F98    0003 0000000008 GlbVar Export 
+$LK,"time_stamp_freq           ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,56"$0000003C20    000B 0000000008 GlbVar Export 
+$LK,"time_stamp_freq_calibrated","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,54"$0000003C08    0001 0000000001 GlbVar Export 
+$LK,"time_stamp_freq_initial   ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,58"$0000003C30    0001 0000000008 GlbVar Export 
+$LK,"time_stamp_kHz_freq       ","FL:D:/TempleOS/Kernel/KGlbls.CPP.Z,57"$0000003C28    0001 0000000008 GlbVar Export 
+$LK,"white_space_bitmap        ","FL:D:/TempleOS/Kernel/Str1a.CPP.Z,371"$000000B7E0    0006 0000000040 GlbVar Export 
+$LK,"word_bitmap               ","FL:D:/TempleOS/Kernel/Str1a.CPP.Z,359"$000000B6E0    0000 0000000040 GlbVar Export 
+$LK,"zero_cr_nl_cursor_bitmap  ","FL:D:/TempleOS/Kernel/Str1a.CPP.Z,377"$000000B860    0000 0000000040 GlbVar Export 
+$LK,"zero_tab_ff_cr_nl_cursor_bitmap","FL:D:/TempleOS/Kernel/Str1a.CPP.Z,380"$000000B8A0    0000 0000000040 GlbVar Export 
+$LK,"zero_tab_ff_cr_nl_cursor_dollar_bitmap","FL:D:/TempleOS/Kernel/Str1a.CPP.Z,383"$000000B8E0    0000 0000000040 GlbVar Export 
 $LK,"\343                         ","FL:D:/TempleOS/Kernel/Adam1a.HPP,131"$(0x400921F    0000 0000000020 DefineStr 
 $LK,"\354                         ","FL:D:/TempleOS/Kernel/Adam1a.HPP,129"$(0x7FF0000    0007 0000000020 DefineStr 
- W²ÿ²ÿÆÿÎÿÜÿçÿëÿñÿ÷ÿ(-3JOUlqwŽ“™§«ÇÚêïþ*7JT[]p‡Žœ®®®ÁÃÖØëí39?JnÀW¬rrŒ“™©°¸¾ÅÛéíòÿ
(68JLY^egtvv†”—™¥§ÇÌÓÜâèïòò:\^egss‡‹‹¡¸í!ÌÌ(Ì+Ì0ÌFÌZÌ]ÌiÌlÌrÌtÌ�Ì¤ÌªÌ¹ÌÆÌèÌõÌ÷Ì÷ÌÍÍÍÍÍÍÍ$Í*Í,Í2Í8Í:Í:ÍOÍ\Í^Í^Í^ÍaÍrÍrÍ͂͂͒Í�Äó_e_epeze‚e‚e”e™e™e«e°e°eÂeÇeÇeÙeÞeÞeðeõeõeõeõeüefffff*f/f/f/fFfvf‡f‡f™f f§f°f¿f	h@a†ŸaŸa±aºaÇaÔaáaùaùa
bbb#b#b+b+b@bMbMbZbbbbbqbƒb‹b‹bŸb±b¹b¹bÍbÔbÔbÞb@ÊϤ`¤`­`º`¿`xš¦Ò#Ò#â#ò#$$,$2$4$4$<$ˆ¦´B$B$N$^$r$|$�$©$¯$±$±$¹$	`†�j#j#s#}#ƒ#‰#‹#‹#�#
-p�š’#’#œ#¦#°#»#Ã#Å#Å#Ë#@¾ÃT`T`]`j`o`@Úßaaa"a'a
@|b|b…b’b—bÐûÔûÔÕÕ$Õ/Õ?ÕOÕ_ÕoÕ~Õ�Õ�Õ­ÕÎÕÐÕßÕîÕþÕÖ7Ö7Ö<ÖX;Cc×c×r×~×Œ×•×š× ×Ø­ÅãÛãÛóÛÿÛÜ Ü ÜGÜjÜuÜ܈ܕܡܮÜËÜÒÜÖÜÞÜâÜêÜHCi£×£×È×Íר×â×ì׸׸ר)Ø2Ø7Ø@ØCØGØGØaØwØzØ}؃ءإجذزؽؽØÂØÂØÑØáØP`‡CùCùGùgùqù�ù—ù¤ù¬ù¹ùÆùûùú8úHúhúžú®ú®úÑúßúøú2û:ûJûcû•û�û�û�û¨ûÁûÕûÙûÝûBaKâKâWâbâbâpâwâwâ–â¢â¢â±â¾âËâÐâÙâèâîâõâõâùâùâùâùâã	ãã�‡–ãûãûü!ü/ü:ü>üBüFüPüZüZü\üjüp0;ãÖãÖìÖìÖ×7×C×P×Z×_׸)=£ê£ê·ê·êßêëëë'ë4ë=ëGëQë[ëeëmëuë¶Ô{æ{æ‘æ æ¨æ»æÍæØæØæäæûæçç"ç"ç(ç(ç-çqçxçxç–ç–ç®çÏçÕç÷ç •¶ÓäÓäìäìäúäúäåååDågåuå…å�å©åÄåÙåñåææ9æ9æ;æ=æRæWæWæiælæxæ$ÓßÓßãßìßýßýß%àHàWàdàoà|à†à�àšà¤à®àÁàÔàÔàäàäàñàá
áá$Báá'á3á<áMáMáuá˜á§á´á¿áÌáÛáêáôáââ â%â'â)â/â1â>âAâI⨅—óÙóÙÚÚ)ÚLÚYÚfÚqÚ~ÚŽÚ—Ú¡Ú«ÚµÚ½ÚÃÚ°r…#Ù#Ù,Ù,ÙTÙwلّٜ٩ٶÙÃÙÍÙ×ÙáÙéÙîÙÈ—­ÃÚÃÚÒÚÒÚúÚÛ(ÛCÛ[Û`ÛxÛxÛ�Û�Û¢Û·ÛÌÛÖÛÜÛà)³é³é½éÂéÊéÑéÖéÖéþé!ê.ê;êFêSê]êgêqê{ê…ê�ê”ê”ê—ê�ê  arãã$ã$ã3ãBãSãWãdã{ã�ã‡ãŒãŽã“ã È=s{ë{ë�ë•ëŸë«ë¹ëÉëÉëñëì#ì0ì?ìKìZìfìpìtì|ì†ì†ì®ìÑìßìïìúìíí"í1í=íGíWí\ídí�í“í¥íªí·íÁíÏíÏíÙíãí!`irãØãØòØüØÙÙÙÙ#Ù"x‰•cäcäwä…äŒä�ä’ä–ä�ä½äÍä#ÀÔéûçûçèè#è)è,è,è7è7èKèXèbèeèhèjèxè$Ðr‰“ã“ã±ã·ãÀãÀãÉãÉãØãåãää#ä%ä4ä4ä4äEäRäRä`ä%(ÅëÜëÜõÜýÜÝÝÝ3ÝVÝ^ÝfÝqÝv݉ݧݮݮݼÝÅÝÊÝÌÝÕÝäÝëÝÞÞÞ2ÞAÞbÞjÞ}Þ�Þ�Þ­Þ¼ÞÌÞÜÞìÞßßßßß)ß8ßYßdßsßƒß“ß£ßºßºßºßÆßÌß&ˆ`ÓôÓôéôüôõõõ õ õ4õ=õNõWõxõ}õ}õ˜õŸõŸõµõµõÁõÁõèõëõëõ
-ö)öHöVömö„ö†öŒö’ö—ö®öÅöäö÷÷(÷?÷D÷J÷P÷U÷l÷ƒ÷ƒ÷‹÷™÷Ÿ÷¥÷ª÷Á÷Ø÷Ø÷Þ÷ä÷é÷øøø'ø1øGøføjøBù'ðì³ò³òÝòáòåòüòó"ó"ó2ó>óZó_ókóqótó{óóƒó‡ó‹ó‹ó‹ó5ô(p;ô;ô?ôIôSô]ôxô„ô†ô†ôÍô)p­¸########.#1#6#>#*s’ãíãíî	îîî î)î1î7î:î:îFîFîsî€îŠî�î�î—î¢î¨îµîµîµîÇî+x$0“ֺ֓֜֜־ÖËÖÖÖÞÖÞÖÞÖãÖ,x$CÖCÖLÖLÖjÖnÖ{Ö†ÖŽÖŽÖŽÖ“Ö-Pé{è{è™èŸè¨è¨è³è³èÂèÏèÓèÝèïèïèÿè
ééé)é4é<éAéPéPéPéXéfété~é�é‡é”é¡é¡é³é.À‚—¶¶¶.¶B¶Q¶j¶q¶s¶¶˜¶²¶½¶öǶѶ/ˆ£±?·?·Q·d·}·ƒ·’·™·¯·µ·»·Õ·0x—£×¶×¶ç¶ù¶ÿ¶··+·1·=·1�`oQQQ?Q+QOQaQ€Q‡Q�Q¡Q³Q³QÜQ2 yªûwûwxxxxx3x�âñÚBÚBñBôBõBöBCCC C!C$C.C?Èñ2C2CGCJCXCYCZCaClCqCtC„C�C•C˜C›CžC¡C­C@X)1")")()*)2)L)Q)W)A¨óliliviƒi�i�i®i°i·i¾i¾iÐiÔiÖiàièiBp{†â’â’î’ð’ø’“““ “ChØâú.ú.	//&/2/9/H/T/T/Z/Dp
"³"³8³<³?³J³n³r³w³�³EHš Ê,Ê,Î,Û,--F` KKfipp†™�©¾¾ÅÌÝîôü

&+29@CJ[lxŠ�’™™««ÁÈÕôô
-!2C^v¡¡¨«²¸½½½½½½½ÑØÛìóùû
-
- ""),336;EYci~�  ¥¥¥¬¯¶ÇØàààë÷ú”"GXnv;Å;ÅDÅUÅdÅvÅ…Å…ÅŠÅH¸<pKÿKÿYÿhÿ~ÿ�ÿ’ÿ§ÿ§ÿ°ÿÅÿÚÿâÿîÿúÿ  '.4:CEELWvv‰�–œ¥¶¶¶ÂÉÎÕïòIˆ»ý»ýÄýÊýÊýÕýíýøýýý	þþþþþJ ¿ËËÞááòþ%%//5<@IIRWgvx‚K°/sþsþ‚þˆþˆþ“þ«þ°þºþÁþÈþÐþÙþÞþäþæþæþìþL°;Nû(û())')/)`)Â)Ë)Mxp|##)1BBdloquN œbœb°b°bÒbÓbÔbÞbàbébíbôbøbübcc
cOp$cc&c3cEcYccclcvcPð’­ËîËîÙîèîëîï,ï6ïWïaïjï˜ï¥ï¯ïµï¿ï¿ïËïÎïÐïÐïÚïàïãïFðQ­ìKðKð[ðbðrðyðyð�ð�ð›ðÂðáðñ
ññ"ñ(ñ6ñ:ñ@ñNñNñNñmñŒñ¡ñ¶ñºñÀñÎñÒñØñêñêñêñêñíñòñ÷ñýñòòò#ò'ò-ò8ò8ò8ò=òCòTòXò^òiòmòsò|ò|ò|ò±òRØ£»BABA_AbApAqArA|AƒAˆA‹A‘A”A”AœA¡A¡A¦A©A¬A¯A¿AS¨ÐâRBRBrBuBƒB„B…B—B§B²B¸B¸BÃBÃBÄBÇBÕBTÀ»ÐÂAÂAÛAáAïAðAñABBBBB&B-B=BABABBBEBQBUHÇÍÏUÏUØUæUVVVˆÍÛVVV V4V?VEVQVdVdVgVmVWP §"-,-3-;-=-C-XPÃÊt`t`„`�`˜`›`£`Ypéôœaœa¼aÀaÖaêaôaþabbZ€Äñ`Á`ÁvÁ…Á•Á¤Á´ÁÇÁÒÁØÁØÁðÁðÁüÁÂÂÂ'Â,Â,Â8ÂBÂVÂVÂ^Â^ÂdÂÇÂÎÂÎÂÎÂûÂûÂÃÃÃà Ã+Ã2Ã;ÃcÃ[�ŒˆÄˆÄšÄ¦Ä®Ä½ÄÁÄÁÄÕÄçÄõÄÅÅÅÅÅ2Å;Å;ÅSÅaÅaÅlÅ‚ÅŽÅ˜Å§Å§Å«Å±Å¼Å¼ÅÆÅÆÅÊÅÎÅÝÅíÅñÅñÅÆ*Æ*Æ9Æ;ÆEÆYÆ_ÆgÆgÆyƎƘƘƧƬƬƸƸÆÇÆÐÆÐÆ߯
ÇÇÇÇ Ç*Ç*Ç@ÇUÇ^ÇkÇuÇwÇ}ÇŠÇ�ǗǤǪǪDZÇÇÇÑÇØÇÝÇåÇíÇöÇýÇÈ"ȆÈ\0úhÃhÃzÃ�ÆÖÃ�èÃÁÃÖÃàÃàÃîÃóÃúÃÄÄÄÄÄ(Ä6Ä@ÄXÄ\Ä_ÄbÄnÄ�Ä]X	»h»hÏhäh
-i-i5i^È:PK+K+]+a+a+n+n+{+{+ˆ+ˆ+—+¦+µ+Ä+Ö+à+ï+ï+ù+_Xƒ*ƒ*Œ*‘*š* * *¥*``"«*«*´*¹*Â*Ë*Ñ*Ñ*Ö*aðy”û,û,----)-/-2-:-C-R-Z-Z-e-e-m-o-o-v-y-…-b`Pyû+û+
,,,, ,$,',*,6,H,K,N,S,c,f,|,,‚,Ž,’,¦,¬,³,º,º,½,Â,Â,Õ,Ø,Ú,Ú,í,í,í,û,cøÌèrr r#r)r4r|xAxA†A‹A’A¨A¨A¯AÆAÆAÌApH)/Ð@Ð@Þ@å@ù@ÿ@qˆ™§;;JTXlly{ˆ�•¯¹rpøÃÊÃÊÓÊËË Ë,Ë7Ë?ËBËLËs�(¢3¢3«3Ä3Í3Ù3Û3Ý3ì3ì3û3ý3ý34tˆ(64444444O4T4o4t4u4x4€4u�
-:3:3C3`3i3u3w3y3ˆ3ˆ3—3™3™3ž3v€ÌÙ(0=`{ƒ‘´¹Áw ÉÚ&,7HHQQVjs~~‡©xH	"(yé	ËËÏØè÷$))M\}•�ŸŸ¨¨¨ºÁÁÓØüz¸u‰ÊÊÓçÿ'.9Meg€��Ó{80#|#|E|_|k|o|s|‚|–|ž|¤|ª|³|Â|Î|Ú|Ú|å|í|ð|ò|}}}"}&}+}4}:}=}O}|(`øº»,»F»O»S»e»n»w»~»~»‡»�»�»¨»·»·»Ï»â»ë»ô»¼¼¼-¼6¼J¼N¼T¼]¼c¼n¼p¼s¼{¼‹¼š¼ª¼­¼¸¼¼˼ؼß¼ã¼ë¼ï¼÷¼	½½½½"½,½2½>½E½G½™½}Èø¹
-ººº1º:ºPº^ºcºvºŽº”º ºªºªº¶º¸ºøº~@AF222-212hFP222262@2P2q2†2†2†2Š2€@<A22222�@PUŠ2Š2Ž2›2Ÿ2‚@UZ¢2¢2¦2«2¯2ƒ@Z_²2²2¶2Ë2Ï2„@_dÒ2Ò2Ö2å2é2…8dhê2ê2î23†€‡”ëÅëÅûÅ	Æ	ÆÆAÆJÆNÆ_ÆbÆjƇ ?¢;¢;¿;Â;Ë;Ë;ç;ú;ú;<
-<<,<4<A<K<P<\<b<i<i<v<y<‚<…<ˆ<�<´<ˆ`ENÚ<Ú<è<ô<===%=‰&Fò�ò�þ���#�1�6�9�G�L�e�m�—�›�»�½�Å�ï�ó�‘‘$‘:‘U‘q‘�‘©‘°‘¸‘Š€<I›=›=©=´=Á=É=Ñ=Ù=á=é=ñ=÷=‹�ÂŽÂŽÎŽÜŽìŽòŽ�A�R�—�›�£�Œ`ÇД”ǔϔߔé”ù”û”þ”�`&ª�ª�³�³�³�É�æ�æ�ë�ŽpÅÐJOJOXOYOZOaOhOjOqO�ða|ÊJÊJÒJÜJêJKK$K$K?KZKaKnKyK€K‘K‘K¢K©K°KÃKÖKÜK�˜ìü::,:-:.:8:S:e:r:s:†:Œ:¡:‘ ü
¢:¢:º:»:¼:Æ:á:ì:ù:ú:
;; ;’ 
";";:;;;<;F;a;j;w;x;‹;‘;�;“ Ûì’9’9ž9Ÿ9 9ª9Å9Ù9æ9ç9ú9::”(?aRFRFVF`FÄJ• ÊÛ99999 9;9M9Z9[9n9t9Œ9–°·Êr8r8„8…8†8�8«8µ8¼8Ã8Ð8Ñ8ä8ê8ü8—pãî$½$½.½E½P½P½[½_½_½e½˜�l{ÄÀÄÀÛÀçÀîÀúÀÁÁÁÁ1ÁCÁFÁPÁ™{›TÁTÁqÁtÁ€Á‡Á”Á—Á�Á©Á®ÁÃÁÖÁÚÁåÁåÁûÁþÁÂÂÂ!Â#Â#Â#Â:ÂLÂOÂ_šP¾¾:¾6¾G¾Q¾›PE	L	ŠŠ ³¼ÂÊœˆîül½l½|½˜½¦½¶½¸½º½Å½É½É½Ñ½�püÔ½Ô½Þ½õ½¾¾¾¾¾¾žÐõH£H£[£]£p£…£…£¥£§£§£Ç£É£É£Ó£Õ£Õ£ߣߣå£è£=¤ŸpSËSËcˢ˩˴˿ËÇËÊËÔË hëõ£££+£8£>£>£F£¡ÐÖ
#0#0>0@0R0`0l0{0€0‰0‰0Œ0‘0‘0›0›0¥0¥0¯0²0È0Ü0ð0111,1E1N1Q1Q1\1V1€1‚1 1 1±1Á1Á1È1Î1Ñ1Ö1à1ç1Ã2¢°:mcÍcÍuÍ„Í�Í�ͥͼͼÍÍÍåÍòÍÎÎÎ,Î,ÎNÎPÎPÎmÎzÎzÎz΋ηξÎÇÎÍÎÔÎÚÎßÎåÎéÎðÎûÎÏÏ+Ï£(”ÖkÆkÆ{Æ�ƭƭƽÆÀÆÊÆÎÆÒÆãÆãÆûÆÇÇÇ-Ç7Ç>ÇMÇPÇPÇ[Ç�ǜǨǰǺÇÈÇÈÇÙÇìÇùÇùÇ
-ÈÈ%È6È<ÈcÈuȃȈȓȣȫȫȫȷÈÛÈçÈòÈùÈÉÉ
ÉÉ:ɤH?Eº<º<È<Ñ<×<¥€	;i;iKiYigiqi‚i“i�i§i¸i¾i¦`Œ•j@j@t@‚@Š@­@Æ@î@§è&hšhšuššƒš‰š•š•š£š¯š¯š¾š¾šÈšך÷š›››››››››_›¨Xv~‹Å‹Å˜Å¢Å¦Å¬Å¯Å·Å©ˆ`nÓÄÓÄÞÄÞÄêÄìÄìÄýÄ+Å1Å4Å:ŪP°¹°¹´¹ȹè¹ï¹ó¹«€ ­›"›"Ÿ"£"²"Â"ì"ó"##
-#¬�¶Å;
;
L
V
Y
b
n
v
“
¢
¨
«
·
­�§¶»»ÌÖÙâîö
"
(
+
7
®ÀK`ÒÒ/Ò;ÒFÒKÒYÒdÒsÒyÒŠÒŽÒ’Ò˜Ò›Ò¢Ò­Ò­Ò¹Ò¯x?KËÑËÑÝÑçÑëÑðÑüÑÒÒ	ÒÒ°H'-ÑÑ
ÑÑ'Ñ-ѱH'“ϓϡϬϱϿÏËÏ×ÏàÏëÏöÏÐÐÐ"Ð0Ð0ÐIÐWÐ^ÐrБЙСЬЮпÐÊÐßÐêÐìÐõÐÿвȃ™kko{„“Ÿ¨¯¾ËÒØ			""459³È`v»Ò»ÒÇÒ×ÒâÒçÒôÒýÒÓÓ
ÓÓÓ%ÓDÓGÓRÓRÓZÓ´p4?sÑsÑÑžÑªÑ®Ñ²Ñ¶Ñ¾ÑÆÑµP-43Ñ3Ñ<ÑJÑYÑhÑmѶxZëZëpë‚ë‡ë’ëœë¢ë¢ë¬ë·€;(:Ö:ÖLÖTÖoÖzÖ‡Ö”Ö¡Ö¸ÖÍÖÎÖÏÖêÖõÖ××× ×)×-×H×M×T×T×\×v×yׇזק׭׳׳׿×Î׿×ê×ï×üר(Ø/Ø/Ø6ØDØDØVØ^Ø`ØjØjØjØqØy؀؊ؓءطØÚØÚØõØõØüØÙÙ>ÙCÙCÙJÙRÙhÙŠÙ�Ù�ْٱٴÙÀÙÃÙÆÙäÙäÙéÙéÙéÙñÙöÙúÙ
-Ú
Ú&Ú&Ú+Ú+Ú>ÚEÚOÚeÚƒÚ†ÚˆÚˆÚ›Ú¢ÚªÚÀÚÞÚáÚãÚãÚÛÛ%ÛeÛpÛ{Û„Û�Û‘ÛŸÛ¥Û¥ÛÂÛÂÛÂÛÇÛÇÛÇÛÓÛæÛðÛÜÜÜÜÜÜ)Ü,ÜRÜVܖܡܬÜÅÜÎÜ×ÜÛÜéÜïÜòÜ÷Ü÷ÜÝ
-Ý
ÝÝ$Ý*Ý-Ý2Ý2ÝFÝRÝ^Ýn݆ݫݸݼÝÒÝìÝúÝÞÞ
-Þ
-ÞÞ$Þ,Þ,Þ3Þ?Þ\Þ_ÞaÞrÞyÞ…ÞžÞ«Þ®ÞµÞ¸ÞºÞÒÞçÞîÞîÞõÞßßß"ß(ß/ß:ßCßRßaßpß�ß‘ßÕà¸`5>RáRá[ákáxá�á†á¹¸;¢Ô¢Ô¸Ô¿ÔÃÔÇÔÒÔãÔãÔñÔÕÕÕÕ'Õ>ÕCÕLÕOÕYÕaÕdÕgÕ{Õ{Õ’ÕšÕ±Õ¸ÕÁÕÄÕÆÕÖÕÙÕÛÕâÕìÕðÕ÷ÕúÕÖ!Ö9ÖºX	r(r(v(~(†(Ž(’(–(»hš(š(ž(¦(®(¶(¾(Æ(Ê(Î(¼ˆ)Ò(Ò(Ö(Þ(æ(î(ö(þ()))))½€rOrO~O�O�O–O¢O¥O¨O­OµO¾@8}· · Í ß ø ¡¡#¡5¡J¡Z¡^¡o¡z¡‰¡”¡§¡§¡«¡¶¡¡Ä¡Ä¡Ä¡Ê¡Ê¡Í¡ססò¡ü¡ü¡¢¢"¢-¢6¢@¢O¢‰¢¹¢ö¢££8£8£J£J£J£`£p£‡£�£—£—£§£«£«£°£°£ê£¿¨——ƒ—œ—«—½——Ø—ß—ñ—˜˜1˜2˜A˜F˜F˜H˜ÀØ0HS}S}g}y}ƒ}–} }°}²}¾}É}Ð}Ô}Ü}à}è}î}ô}ô}~Áðãh~h~l~p~x~‰~˜~¢~®~é~û~

 **:BFUryy�—ª¹Úêò÷
-€€:€J€U€g€y€”€›€›€­€­€»€»€¼€΀΀Ü€à€ä€Â\è€è€ì€ô€���*�*�.�6�:�S���œ�°�×�à�é�é�î�‚‚‚'‚;‚B‚s‚©‚½‚Í‚ã‚÷‚þ‚/ƒeƒyƒ‰ƒ‹ƒ‹ƒ’ƒ’ƒ¤ƒ¤ƒ²ƒ²ƒ³ƒŃŃÓƒ׃ÛƒÈèö0s0s@s@sMs]srsys‚s™sœs¤sÄ ¦·Ø{Ø{æ{ð{|||%|%|6|@|@|B|k|ÅØö.¨s¨sÂsÅsÈsÒsàsëst	tt6tCtNt\tmtzt…t®t³t¹tßtçtítðtýtuu'u4u’Q’Y’Y’g’p’{’{’‰’�’›’›’©’©’®’¼’̘wÇ€”€”„”�”Ÿ”§”§”˔ڔë”ô”•#•3•I•\•d•€•••§•¯•Ô•Ù•ä•ñ•––+–J–Y–…–�–˜–³–¾–Ó–ö–—"—+—A—a—|—‡—�—¬—·—·———Ó—Ó—æ—ø—˜˜˜˜'˜:˜B˜B˜B˜P˜[˜b˜m˜n˜‚˜†˜�˜ÍP@‡ãkãkçk÷kll&l/l=lKlRl\lgl|l‰l‘l¥l²lÆlÓlçlñlmm#m-mAmNmNm[mfmqm…m¬mºmÈmÕmàmëmümn&n6n@nQnbnsn„n„n·nÅnÚnÿno o.oIo`oioto{o†o�o™o»oÎx·ãp|p|t|||…|¤|«|»|À|Ï|Ù|å|ð|ð|ÿ| }A}Q}Y}o}z}z}‚}‚}‘}²}Ó}ã}ë}~~~~~,~3~3~E~E~S~S~T~T~e~Ï`Çð�˜�˜”˜¤˜µ˜ĘϘޘ똙™™!™%™-™5™>™T™\™m™s™w™{™™‡™�™˜™®™Á™Ê™Ê™Û™â™â™ó™ü™Ðà/ÃiÃiÇiÖiåióij.jNjlj�j°jÁjÌjÙjðjkk k'k'k·W·Z·_·d·t··†·Š·Ž·œ·°···Á·Ç·Ê·Ø·Þ·î·î·¸¸
-¸
-¸¸&¸2¸8¸A¸M¸n¸r¸~¸…¸Œ¸’¸•¸£¸£¸¹¸¹¸¹¸¾¸ʸâ¸æ¸ñ¸ô¸÷¸ý¸¹¹¹$¹$¹$¹,¹8¹P¹T¹_¹b¹i¹z¹�¹’¹’¹™¹¯¹ÚX�ÅBMZMaMaM}M‡MŒMŸMªMªMÀMÊMÜMáMëMõMýMNN$N>NXN|N‚N†N‰N�N¥N¬N²N¹NÀNÑNÖNÖNIOÛ |�âKâKìKíKîKøKLL0L@LULjLsLxLxL‚LŽL”L L·L·LÚLäLäLíLòLøLùL>MÜx8D€v€vŠv‹vŒvŒv®v»v¼vÅvÝHü`u`uiuquwu|uÞX08`v`vivjvkvsvtvyvß €u€u�u‘u’u u¦u§u«u«u¹u½u¾uÂuÂuÊuàxðüuuuu)u:uBuJuRuUu]uáˆ"0 v v.v/v0v:v;v?v?vPvQvUvUv[vâ�"ÐuÐuÞußuàuêuëuïuïuvvvvvvã€ãð¸t¸tÂtÃtÄtÄtætótôt÷týtäH§­°s°s¹sÁsÇsÌsåXÛã˜t˜t¡t¢t£t«t¬t±tæ ­¾ÐsÐsásâsãsñs÷søsüsüst
-tttttçx›§XsXshsvs�sŒs”sœs¤s§s¯sèˆÍÛ`t`tntotptzt{tttŒt�t‘t‘t—té�¾Ítt&t't(t2t3t7t7tDtStTtXtXt^tê¸zŽ(Ÿ(Ÿ2Ÿ<ŸCŸJŸSŸaŸlŸnŸ{ŸŠŸªŸ³Ÿ¼ŸŸÊŸëÈŽÄППìŸòŸþŸþŸ  & 0 A W o s ¥ ·  Ë ï ÷ ¡,¡<¡H¡H¡\¡_¡m¡z¡ƒ¡“¡•¡¨¡²¡¡Ë¡Û¡â¡â¡â¡é¡ð¡õ¡û¡ý¡¢ ¢ìp *ƒÌƒÌ‘̵̸̗̠̦̬̾Ìí`
-;Á;ÁEÁOÁnÁtÁvÁ|Áîx
-ƒÁƒÁ“Á¢Á¢Á²ÁµÁ·Á¿ÁÂÁÊÁï j»©©"©*©-©-©M©]©i©i©x©‚©˜©˜©¡©¦©½©Ó©è©è©ªªª ª"ª"ª=ª?ª?ªIªIªSª„ªŠª�ª³ª³ª¼ªÁªت «6«K«K«f«h«h«ƒ«ˆ«ˆ«£«¨«¨«²«²«Á«ò«ø«û«¬
-¬¬#¬0¬0¬7¬:¬Ù¬ð(Öø;É;ÉOÉOÉ_ÉbÉmÉpÉ�ɅɉɬɹÉÉÉÔÉÞÉåÉ$Ê,ÊKÊ\ÊdÊkÊrÊyʚʠʧʪÊÀÊñ˜*:ÃÌÃÌÍÌÐÌÜÌéÌóÌÍÍÍ7Í7ÍTÍXÍ\ÍbÍòØd@¤@¤[¤]¤m¤u¤�¤�¤š¤Ǥñ¤¥¥ ¥2¥@¥E¥W¥e¥o¥‡¥‡¥Œ¥¢¥¢¥ª¥°¥Ç¥à¥à¥¦
¦
¦8¦:¦:¦e¦g¦g¦q¦q¦w¦z¦¦•¦•¦�¦£¦º¦à¦ì¦§§3§5§5§`§e§e§�§•§•§Ÿ§Ÿ§ª§­§·§˧Õ§é§õ§¨)¨2¨9¨B¨E¨è¨óh»Åà¬à¬î¬ÿ¬­­­­­ôÀÅÚ­­(­A­V­b­w­€­€­¡­¿­Ì­Ó­Ó­Ó­×­×­ß­õXÚà­à­®®®®5®J®J®J®u®w®w®w®¢®¤®¤®®®°®°®º®º®Þ®ó®ü®	¯
¯%¯<¯]¯f¯l¯s¯v¯Ó¯öØÄÜ ¢ ¢2¢2¢R¢e¢s¢y¢}¢€¢Š¢÷h(R«Â«Â¿ÂËÂîÂðÂðÂþÂÃÃ"Ã$Ã)Ã)Ã6ÃRÃTÃYÃuÃwÃyÕ×Ùõ÷ùÃÕÃ×ÃÙÃÞÃÞÃÞÃÞÃãÃãÃêÃñÃôÃyÄøpFQº‘º‘ÑˑΑܑà‘î‘ò‘÷‘ùxamR’R’[’c’f’t’x’|’Š’Ž’“’ú HYúáúáÿá
-ââ"â+â0â5â@âJâJâSâûh4>(A(A6A6AQAQATAkAkAqAü@$)¨@¨@¶@Ê@Ð@ýXV^GŒGŒQŒSŒeŒmŒrŒxŒþP�ÄÀÀ8ÀAÀIÀNÀSÀ]À]ÀbÀlÀqÀÀÀ†ÀŒÀ’ÀšÀ¦À¬À®À®ÀµÀ»ÀÁÀÉÀÕÀÛÀÝÀÝÀçÀéÀéÀóÀóÀ[Áÿè!²C²CÀCÎCäCóCøCDD
DD!D,DFDPD_D_DfDfDfDZEp!,ZEZEhEvE~E‰E¢E§E®E´Eh±»����§�´�¹�¹�Ï�Ò�ç�è†À"“"“0“3“=“>“?“J“L“N“T“T“X“`“b“f“m“s“z“€“‡“�“”“š“¡“§“®“´“»“Á“Ë“Ñ“Õ“Þ“æ“æ“ï“ð“ð“”””*”1”@”O”^”m”|”‹”‹”•”PÀÇš”š”ž”¨”¹”»”`,	5	â
+ þ?‚ü‚ü–üžü¬ü·ü»üÁüÇüÕüãüøüýüýý ý%ý<ýAýGý^ýcýiýwý{ý—ýªýºý¿ýÎýÛýëýúýþþ þ'þ)þ<þSþZþhþzþzþzþ�þ�þ¢þ¤þ·þ¹þÌþÌþèþÿþÿÿÿ:ÿÀ?”:ÿ:ÿTÿ[ÿaÿqÿxÿ€ÿ†ÿ�ÿ£ÿ±ÿµÿºÿÀÿÎÿÑÿÖÿÙÿÙÿéÿ÷ÿùÿ
 &(577GUXZfhˆ�”�£©°³³ÃÑÓÓû &(44HLLb¸Õ	ËË,Ë/Ë4ËJË^ËaËiËlËrËtË}ˠ˦˵ËÂËäËñËóËóËþËÌ
+ÌÌÌÌÌ Ì&Ì(Ì.Ì4Ì6Ì6ÌKÌXÌXÌXÌXÌ[ÌlÌlÌyÌ|Ì|ÌŒÌ�Äó?c?cPcZcbcbctcycyc‹c�c�c¢c§c§c¹c¾c¾cÐcÕcÕcÕcÕcÜcácácócøcøc
+dddd&dVdgdgdyd€d‡d�dŸdée@a†__‘_š_§_´_Á_Ù_Ù_í_ï_ï_```` `-`-`:`B`B`Q`c`k`k``‘`™`™`­`´`´`¾`@ÊÏj`j`s`€`…`xš¦š š ª º Î Ú ô ú ü ü !ˆ¦´
+!
+!!&!:!D!U!q!w!y!y!�!	`†�2 2 ; E K Q S S X 
+p�šZ Z d n x ƒ ‹ � � “ @¾Ã``#`0`5`@ÚßÒ`Ò`Û`è`í`
@BbBbKbXb]bÐTÒTÒ]ÒkÒzÒ…Ò•Ò¥ÒµÒÅÒÔÒãÒóÒÓ$Ó&Ó5ÓDÓTÓdÓ�Ó�Ó’ÓX;C´Ô´ÔÃÔÏÔÝÔæÔëÔñÔØ­Å4Ù4ÙDÙPÙ^ÙmÙmٕٸÙÃÙÍÙÖÙãÙïÙüÙÚ Ú$Ú,Ú0Ú8ÚHCiôÔôÔÕÕ)Õ3Õ=ÕIÕIÕQÕzÕƒÕˆÕ‘Õ”Õ˜Õ˜Õ²ÕÈÕËÕÎÕÔÕòÕöÕýÕÖÖÖÖÖÖ"Ö2ÖP`‡¬ö¬ö°öÐöÚöùö÷
÷÷"÷/÷d÷k÷¡÷±÷Ñ÷øøø:øHøaø—øŸø¯øÈøúøùùù
ù&ù:ù>ùBùBa”ߔߠ߫߫߶߽߽ßÜßèßèß÷ßàààà+à1à8à8à<à<à<à<àIàLà\à�‡–DùDùgù‚ù�ù›ùŸù£ù§ù±ù»ù»ù½ùËùp0;4Ô4Ô=Ô=ÔeÔˆÔ”Ô¡Ô«Ô°Ô¸)=äçäçøçøç èCèPè]èhèuè~èˆè’èœè¦è®è¶è¶Ô¼ã¼ãÒãáãéãüãäää%ä<äAäQäcäcäiäiänä²ä·ä·äÕäÕäíäåå6å •¶ââ-â-â;â;âIâ]â]â…â¨â¶âÆâÑâêâãã2ãGãZãzãzã|ã~ã“ã˜ã˜ãªã­ã¹ã$ÝÝ,Ý5ÝFÝFÝnݑݠݭݸÝÅÝÏÝÙÝãÝíÝ÷Ý
+ÞÞÞ-Þ-Þ:ÞLÞVÞ^Þ$BdÞdÞpÞ|Þ…Þ–Þ–Þ¾ÞáÞðÞýÞßß$ß3ß=ßJßTßhßnßpßrßxßz߇ߊߒߨ…—D×D×R×R×z×�ת׷×Â×Ï×ß×è×ò×ü×ØØØ°r…tÖtÖ}Ö}Ö¥ÖÈÖÕÖâÖíÖúÖ×××(×2×:×?×È—­ØØ#Ø#ØKØnØyؔجرØÉØÉØÞØÞØóØÙÙ'Ù-Ùà)ôæôæþæççççç?çbçoç|ç‡ç”çžç¨ç²ç¼çÆçÎçÕçÕçØçÞç  ar\à\àeàeàtàƒà”à˜à¥à¼àÂàÈàÍàÏàÔà È=s¼è¼èÎèÖèàèìèúè
+é
+é2éUédéqé€éŒé›é§é±éµé½éÇéÇéïéê ê0ê;êHêWêcêrê~êˆê˜ê�ê¥êÐêÔêæêëêøêëëëë$ë!`ir4Ö4ÖCÖMÖVÖaÖjÖnÖtÖ"x‰•¤á¤á¸áÆáÍáÐáÓá×áÞáþáâ#ÀÔé<å<åZå^ådåjåmåmåxåxå‰å–å å£å¦å¨å¶å$Ðr‰ÔàÔàòàøàáá
+á
+áá&áQá\ádáfáuáuáuá†á“á“á¡á%(Å<Ú<ÚFÚNÚSÚYÚYÚ�Ú¤Ú¬Ú´Ú¿ÚÄÚ×ÚõÚüÚüÚ
+ÛÛÛÛ#Û2Û9Û`Û`ÛiÛ€Û�Û°Û¸ÛËÛÛÛëÛûÛ
+ÜÜ*Ü:ÜTÜYÜaÜaÜfÜt܃ܤܯܾÜÎÜÞÜîÜÝÝÝÝÝ&ˆ`<ò<òRòeòqòqò‚ò‰ò‰ò�ò¦ò·òÀòáòæòæòóóóóó*ó*óQóTóTósó’ó±ó¿óÖóíóïóõóûóôô.ôMôlôzô‘ô¨ô­ô³ô¹ô¾ôÕôìôìôôôõõõõ*õAõAõGõMõRõiõ€õ‡õ�õšõ°õÏõÓõ«ö'ðìðð>ðBðFð]ðmðƒðƒð™ð«ðÇðÌðØðÞðáðèðìðððôðøðøðøð¢ñ(p¤ñ¤ñ¨ñ²ñ¼ñÆñáñíñïñïñ6ò)p­¸¤ ¤ ´ · ¼ ¼ Ç Ê Ï × *s’$ë$ëFëJëPëXë^ëgëoëuëxëxë„ë„ë®ë»ëÅëÈëËëÒëÚëàëíëíëíëÿë+x$0äÓäÓíÓíÓÔÔÔ'Ô-Ô-Ô-Ô2Ô,x$”Ó”Ó�Ó�Ó»Ó¿ÓÌÓ×ÓÝÓÝÓÝÓâÓ-Pé¼å¼åÚåàåéåéåôåôåææææ0æ0æ@æNæSæSæhæsæ{æ€æ�æ�æ�æ—æ¥æ³æ½æÀæÆæÓæàæàæòæ.À„™¯³¯³óÖ³ê³ù³´´´'´@´Z´e´k´o´y´/ˆ¥³÷´÷´	µµ5µ;µUµ\µrµxµ~µ›µ0x™¥´´�´¡´§´Á´È´Þ´ä´ó´1�`oïNïNóNOO'O9OXO_OuOyO‹O‹O´O2 yª�w�w±w±w¸wÀwÀwÕwÞwÞwÞwùwÿwÿw	xxx x*x>x@xKxKxZxbxmxqxvxzx…x‹xŽxŽx‘x–x�x§x·x3P¥{¥{®{·{½{Â{4Ðîåzåz÷z{{{#{#{0{:{I{Q{]{l{x{ƒ{‰{”{—{Ÿ{5Xqyewewswyw…w‘w•w›w6ø²îõxõxyyyyy*y;y=yTybybyuy…y‹y‘y˜y¡y¡y»y»yÎyÞyõyz	zzz4zJzWz^zizmzrz}zˆzŽz‘z—z¦z·z¼zÈzÓzåz7Xª²½x½xÆxÔxèxðxðxõx8`hq-w-w=w?wCwIwXw]wew9HNTппԿ޿ã¿õ¿:hìöß·ß·ï·¸¸¸$¸;På쟷Ÿ·©···È·ηÝ·<ø–²ÌùÌùÒùÔùìùúùú#úQúTú]ú‹úŽú’ú—ú£úªúÌúÏúØúúúýúýúûûûû=xÙå7·7·G·Y·i·z·�·“·œ·>�óB@B@Y@\@]@^@l@w@}@ˆ@‰@Œ@–@?Èš@š@¯@²@À@Á@Â@É@Ô@Ù@Ü@ì@÷@ý@AAA	AA@X)1ê%ê%ð%ò%ú%&& &A¨ó2i2iíDíGíªíQ­ì¬í¬í¼íÃíÓíÚíÚíðíðíüí#îBîaînîîƒî‰î—î›î¡î¯î¯î¯îÎîíîïïï!ï/ï3ï9ïKïKïKïKïNïSïXï^ïoïsïyï„ïˆïŽï™ï™ï™ïžï¤ïµï¹ï¿ïÊïÎïÔïÝïÝïÝïðRش̪>ª>Ç>Ê>Ø>Ù>Ú>ä>ë>ð>ó>ù>ü>ü>?	?	?????'?S¨áóº?º?Ú?Ý?ë?ì?í?ÿ?@@ @ @+@+@,@/@=@TÀÌá*?*?C?I?W?X?Y?k?v?z?�?„?Ž?•?¥?©?©?ª?­?¹?UHÇͯS¯S¸SÆSâSçSVˆÍÛçSçSñSÿST T%T1TDTDTGTMTWP¥¬**#*+*-*3*XPÃÊ:`:`J`U`^`a`i`Ypéôbaba‚a†aœa°aºaÄaÇa×aZ`»äѻѻç»ö»¼¼%¼8¼C¼I¼I¼^¼^¼j¼|¼†¼†¼•¼š¼š¼¦¼¦¼®¼®¼´¼½½½½I½I½V½Y½\½h½o½x½ ½[py‘¾‘¾£¾¯¾·¾ƾʾʾÞ¾ð¾þ¾¿¿ ¿$¿$¿;¿D¿D¿Y¿g¿g¿r¿‚¿Ž¿ž¿­¿­¿±¿·¿¿¿Ì¿Ì¿пÔ¿ã¿ó¿÷¿÷¿À0À0À?ÀAÀGÀOÀOÀaÀvÀ€À€À�À”À”À À À¯À¸À¸ÀÇÀõÀùÀüÀÁÁÁÁ(Á=ÁFÁSÁ]Á_ÁeÁrÁxÁÁŒÁ’Á’Á™Á¯Á´Á¼ÁÄÁÍÁÔÁÝÁùÁ]Â\ í¡½¡½³½º½¿½ϽÖ½á½ú½¾¾¾#¾(¾/¾;¾;¾F¾K¾R¾]¾k¾o¾r¾u¾~¾‘¾]X	$d$d8dMdsd–džd^`*3ÜÜêôú
+_€†“bÅbÅpÅ}ŀńŒŒŠŰųŹÅ`8Y� ˜ ˜#˜0˜?˜D˜D˜X˜m˜†˜Ÿ˜§˜ƘÙ˜í˜;™=™A™a DU’1’1ž1¤1¯1¯1¸1»1È1Ñ1Ñ1Õ1Ø1à1bÀ¢·‚4‚4’4 4¥4«4¶4¿4¿4Ï4Û4ß4÷4÷4þ455&5c@ÛàOTOTSTXTgTd¸&zq–q–‡–Š–�–Ÿ–¦–¬–Öß–ß–æ–õ–———0—?—_—_—h—h—h—v—²—¾—Ê—Ú—í—ú—ú—˜˜*˜*˜;˜M˜U˜e˜v˜|˜£˜µ˜º˜Á˜̘Þ˜Þ˜é˜ë˜ë˜ö˜ø˜ø˜™™™™™™™-™I™R™[™f™v™}™}™}™}™‘™­™³™º™À™Ù(še  <É<ÉLÉUÉnÉɤɧɾÉÈÉÕÉÕÉ×ÉßÉf>|0A0A>ADAKAaAaAhAAA…AgH)/ˆ@ˆ@–@�@±@·@hˆŠ˜ääóý			"	$	1	8	>	X	b	ipø$È$È4ÈsÈzÈ€È�ȘȠȣȭÈj�(J0J0S0h0q0}00�0�0�0Ÿ0¡0¡0¦0kˆ(6ª0ª0º0¼0½0¾0Ã0÷0ü01111$1l�
+â/â/ë/0000 0.0.0=0?0?0D0m€ÅÒ,AIVy”œªÍÒÚnHùÿ¼
¼
Ê
Ð
Û
á
oÙù„„ˆ‘¡°¼ÕÕÕÝââ

6
N
V
X
X
a
a
a
s
z
z
Œ
‘
µ
p ¸É¼¼×Ýèùù$//8Zq¸vŠ¢¢«¿×Ùëøÿ
+68JWW�r80Å{Å{ç{|
|||$|8|@|F|L|U|d|p|||||‡|�|’|”|¦|´|º|Ä|È|Í|Ö|Ü|ß|ñ|sðY±µ˵åµÿµ¶¶¶'¶.¶.¶7¶@¶@¶X¶g¶g¶¶’¶›¶¤¶²¶²¶ʶݶæ¶ú¶þ¶·
··· ·#·+·;·K·N·Y·_·g·k·}·ƒ·‰·�·–· ·¦·²·¹·»·
¸tȱ´ôÅ´Í´æ´ï´µµµ+µCµIµUµ_µ_µkµmµ­µu@@EÂ.Â.Æ.Õ.Ù.vhEOÚ.Ú.Þ.è.ø././././2/w@;@ª.ª.®.½.Á.x@OT2/2/6/C/G/y@TYJ/J/N/S/W/z@Y^Z/Z/^/s/w/{@^cz/z/~/�/‘/|8cg’/’/–/©/}€‡”\Ã\ÃlÃzÃzÊòûÿÃÐÃÓÃÛÃ~ /Pú8ú899#9#9?9R9R9]9b9j9„9Œ9Ÿ9©9®9º9À9Ç9Ç9Ô9×9à9ã9æ9ë9:`V_2:2:@:L:c:g:i:}:€&F � �¬�°�¹�Ñ�ß�ä�ç�õ�ú���E�I�i�k�s���¡�Á�Ë�Ò�è�‘ ‘;‘W‘^‘f‘�€<I$:$:2:=:J:R:Z:b:j:r:z:€:‚�pŽpŽ|ŽŠŽšŽ ŽËŽïŽ�E�I�Q�ƒ`ÇÐP”P”U”]”m”w”‡”‰”Œ”„`&X�X�a�a�a�x�•�•�š�…p×â"M"M0M1M2M9M@MBMIM†ðsŽrHrHzH„H’HªHÂH×H×HòH
II!I,I3IDIDIUI\IcIvI‰I’I‡0PsÊCÊCÎCÞCpHˆpØãP¼P¼Z¼q¼|¼|¼‡¼‹¼‹¼‘¼‰�Tcø¿ø¿ÀÀ"À.À;ÀCÀNÀNÀeÀwÀzÀ„ÀŠcƒˆÀˆÀ¥À¨À´À»ÀÈÀËÀÑÀÝÀâÀ÷À
+ÁÁÁÁ/Á2Á8Á8ÁEÁQÁSÁSÁSÁjÁ|ÁÁ�Á‹@üH½H½\½k½s½ŒP-	4	22H[djr�ˆãñ˜¼˜¼¨¼Ä¼Ò¼â¼ä¼æ¼ñ¼õ¼õ¼ý¼Žpñü½½
+½!½,½,½7½?½?½E½�ÐùAžAžTžVžiž~ž~žžž ž žÀžžžÌžΞΞØžØžÞžáž6Ÿ�p´È´ÈÄÈÉ
+ÉÉ É(É+É5É‘hïùžžž$ž1ž7ž7ž?ž’°Ö	ì,ì,-
--%-1-@-E-N-N-Q-V-V-`-`-j-m-ƒ-—-©-©-®-Ì-å-î-ñ-ñ-ö-..:.:.K.[.[.b.h.k.p.z.�.H/“È:Pô'ô'(
+(
+((($($(1(1(@(O(^(p(…(�(ž(ž(¨(”X,','5':'C'I'I'N'•`"T'T']'b'k't'z'z''–°:m¼Ê¼ÊÎÊÝÊèÊèÊúÊËË"Ë:ËGËZËfËqË�Ë�ˣ˥˥ËÂËÏËÏËÏËàËÌÌÌ"Ì)Ì/Ì4Ì:Ì>ÌEÌPÌVÌỲ̗ðy”¬)¬)Ä)Ä)É)Ì)Ú)à)ã)ë)ô)****** * *'***6*˜`Py¬(¬(¾(Á(Ä(Í(Ð(Õ(Ø(Û(ç(ù(ü(ÿ()))-)0)3)?)C)W)])d)k)k)n)s)s)†)‰)‹)‹)ž)ž)ž)¬)™øÌèQmQmimlmrm}m…m¢m­m´m»mØmØmàmýmn
n
nn>nInNnNnRnvnšx".„'„'Ž'“'–'–'¨'®'±'³'¹'›x.:¼'¼'Æ'Ë'Î'Î'à'æ'é'ë'ñ'œ(”ÖÜÃÜÃìÃÄÄÄ.Ä1Ä;Ä?ÄCÄPÄPÄdÄmÄqĀĖĜģIJĵĵÄÀÄõÄÅ
ÅÅ Å-Å-Å>ÅQÅ^Å^ÅołŊśšÅÈÅÚÅèÅíÅøÅÆÆÆÆÆ@ÆLÆWÆ^ÆeÆkÆrÆuÆŸÆ�˜t&t&�& & &­&­&º&º&Ä&È&È&Ò&Ô&Ô&)'žHPV:: :):/:Ÿ€	¤d¤d´dÂdÐdÚdëdüdee!e'e `�¦Ò=Ò=Ü=ê=ò=>.>V>¡è&y•y•†•�•”•𕦕¦•´•À•À•֕̕̕啖––––––&–(–(–m–¢Xv~üÂüÂ	ÃÃÃà Ã(ãˆ`nDÂDÂOÂOÂ[Â]Â]Ânœ¢¥«¤Pi´i´m´�´¡´¨´¬´¥€ ­4 4 8 < K [ … Œ ™ Ÿ £ ¦�§¶ä	ä	õ	ÿ	
+
+
+ 
+<
+K
+Q
+T
+`
+§�˜§d	d	u		‚	‹	—	Ÿ	¼	Ë	Ñ	Ô	à	¨ÀK`lÏlψϔϟϤϲϽÏÌÏÒÏãÏçÏëÏñÏôÏûÏÐÐЩx?K$Ï$Ï6Ï@ÏDÏIÏUÏZÏ^ÏbÏlϪH'-\Î\ÎfÎn΀ΆΫH'ìÌìÌúÌÍ
+ÍÍ$Í0Í9ÍDÍOÍZÍ_ÍmÍ{͉͉͢ͰͷÍËÍêÍòÍúÍÎÎÎ#Î8ÎCÎEÎNÎXάÈtŠ$-<HQXgt{�²²²ÄËËÝÞâ­È`vÐÐ Ð,Ð7Ð<ÐIÐRÐVÐ\ÐbÐjÐrÐzЙМЧЧЯЮp4?ÌÎÌÎØÎ÷ÎÏÏÏÏÏ Ï¯P-4ŒÎŒÎ•ΣβÎÁÎÆÎ°x:å:åPåbågårå|å‚å‚åŒå±€;("Ð"Ð4Ð<ÐWÐbÐoÐ|ЉРежзÐÒÐÝÐëÐûÐÑÑÑÑ0Ñ5Ñ<Ñ<ÑDÑVÑYÑgÑvчÑ�Ñ“Ñ“ÑŸÑ®ÑÆÑÊÑÏÑÜÑùÑÒÒÒÒ'Ò'Ò9ÒAÒCÒMÒMÒMÒTÒ\ÒcÒnÒwÒ…Ò›Ò¾Ò¾ÒÙÒÙÒàÒêÒÓ"Ó'Ó'Ó.Ó6ÓLÓnÓsÓsÓvÓ•Ó˜Ó¤Ó§ÓªÓÈÓÈÓÍÓÍÓÍÓÕÓÚÓÞÓîÓñÓ
+Ô
+ÔÔÔ"Ô)Ô3ÔIÔgÔjÔlÔlÔÔ†ÔŽÔ¤ÔÂÔÅÔÇÔÇÔæÔéÔ	ÕIÕTÕ_ÕhÕqÕuÕƒÕ‰Õ‰Õ¦Õ¦Õ¦Õ«Õ«Õ«Õ·ÕÊÕÔÕåÕèÕëÕðÕðÕõÕ
ÖÖ6Ö:ÖzÖ…Ö�Ö©Ö²Ö»Ö¿ÖÍÖÓÖÖÖÛÖÛÖëÖîÖñÖÿÖ×××××*×6×B×R×j×�לנ׶×Ð×Þ×ç×ë×î×î×þ×ØØØØ#Ø@ØCØEØVØ]ØiØ‚Ø�ؙؒ؜؞ضØËØÒØÒØÙØåØïØýØÙÙÙÙ'Ù6ÙEÙTÙtÙuÙ¹Ú²`5>2Û2Û;ÛKÛXÛaÛfÛ³¸;‚΂ΘΟΣΧβÎÃÎÃÎÑÎåÎñÎôÎýÎÏ Ï$Ï-Ï0Ï:ÏBÏEÏHÏ\Ï\ÏsÏ{ϒϙϢϥϧϷϺϼÏÃÏÓÏ×ÏÞÏáÏÐРдX	:%:%>%F%N%V%Z%^%µhb%b%f%n%v%~%†%Ž%’%–%¶ˆ)š%š%ž%¦%®%¶%¾%Æ%Î%Ö%Þ%â%æ%·€JMJMVMYMgMnMzM}M€M…M�M¸@8}�ž�ž¥ž·žОÛžîžûž
Ÿ"Ÿ2Ÿ6ŸGŸRŸaŸlŸŸŸƒŸŽŸšŸœŸœŸœŸ¢Ÿ¢Ÿ¥Ÿ¯Ÿ¯ŸÊŸÔŸÔŸÙŸçŸúŸ   ( b ’ Ï á ñ ¡¡#¡#¡#¡9¡I¡`¡i¡p¡p¡€¡„¡„¡‰¡‰¡á¹¨W•W•[•t•ƒ•••š•°•·•ɕܕï•	–
+–––– –ºØ0Hõ|õ|	}}%}8}B}R}T}`}k}r}v}~}‚}Š}�}–}–}¥}»ðã©y©y­y±y¹yÊyÙyãyïy*zrMrRrarmr…r•r¨r°rÌrárìrôrss)s;sTscsqssšs²s¶s»s»sÌsÌsßsñstttt/t7t7t7tItItRtRtdtktkt}t~tƒt¨tør¦©t©t­tµt¾tÒtætútuuu%u.uBuiuiu~u”u®u¶uÌuÔuòuvv?vZvcvqvƒv…v—v£v¥v°vÄvÄvåvåvðv÷vwwwwĘGwé�é�ŽŽŽ"Ž.Ž7Ž7ŽIŽIŽYŽlŽ{Ž€Ž•Ž£Ž£Ž±ŽºŽÈŽØŽÛŽÞŽâŽóŽ!�)�-�2�:�:�K�\�\�d�l�l�o�¢�ÅØïG1‰1‰5‰M‰^‰m‰w‰€‰‘‰©‰Á‰щä‰ì‰ŠŠ3Š;Š`ŠeŠpЂДЫЫŠÏŠíŠøŠÿŠ	‹!‹(‹7‹?‹?‹n‹ˆ‹È‹›‹£‹Ž‹î‹ŒŒŒ>ŒXŒbŒuŒ}ŒhŒÈŒÈŒÈŒþŒþŒ��"�4�<�O�g�z�‚�‚���™�¤�¤�²�¹�Ä�Ä�Ò�Ò�×�è�ƘwÇ©�©�­�¸�È�Ð�Ð�ô����4�L�\�r�…���©�¾�É�Ñ�ö�û�‘‘%‘>‘M‘l‘{‘§‘²‘º‘Õ‘à‘õ‘’'’3’<’R’r’�’˜’ ’½’È’È’Ó’Ó’ä’ä’÷’	“““%“%“8“K“S“S“S“a“l“s“~““““—“ž“ÇP@‡LgLgPg`gpg€g�g˜g¦g´g»gÅgÐgågògúghh/hiIiTieizi�iŸi©iºiËiÜiíiíi j.jCjhjjˆj—j²jÉjÒjÝjäjïjùjk$kÈx·ã±w±wµw½wÆwåwìwüwxxx&x1x1x@xax‚x’xšx°x»x»xÃxÃxÒxóxy$y,yByMyMy_y_ymytyty†y†y”y”y•y•y¦yÉ`Çð¡“¡“¥“µ“ƓՓà“ï“ü“”(”.”2”6”>”F”O”e”m”~”„”ˆ”Œ”�”˜” ”©”¿”Ò”Û”Û”ì”ó”ó”•
•Êà/,e,e0e?eNe\ewe—e·eÕeff*f5fBfYftftf‰f�f�f¥f¦fªfË�­¼ŒlŒl l£l¸lÁlÔlëlùlmm"m0m7mCmÌð‡¢$k$k4k>kDkPk`kckgkpk€kƒkŒk�k¡kÇkÏkØkØkÞk
+lll"lÍp¢­$l$l.l6l>l>l`lvll…lÎèKe¡­¡­«­´­º­Ó­×­Ý­ò­ò­®®!®=®C®T®T®`®i®o®o®u®Ï(	K««-«<«H«S«^«^«r«…«�«œ«««²«¾«ëǫԫݫò«ò«ò«
¬ ¬3¬A¬V¬\¬\¬€¬ˆ¬ˆ¬�¬”¬˜¬®¬¼¬¬¬ö¬­­ ­&­1­6­6­6­K­Q­p­u­u­�­‡­�­�­Ÿ­иƒ·™¯™¯»¯ïϯä¯ä¯õ¯ü¯°°°!°<°?°D°R°f°m°w°w°Œ°Œ°¢°°°¶°¾°ɰç°ñ°ô°÷°ü°
+± ±*±-±0±8±F±\±f±i±i±p±t±†±Ñeƒy®y®˜®œ®©®¯®³®Æ®ç®ç®ñ®ñ®¯¯¯-¯2¯6¯I¯j¯j¯t¯t¯ˆ¯ˆ¯‹¯™¯ÒX	ñªñªúªúª««««ÓÀ·‰±‰±§±«±³±ııÕ±ݱí±í±ú±	²²(²+²0²5²E²P²W²[²_²m²�²ˆ²’²˜²›²©²¯²¿²¿²Ö²زÛ²Û²ݲ÷²³	³³³?³C³O³V³]³c³f³t³t³ггг�³›³³³·³³ųȳγѳ߳߳õ³õ³õ³ý³	´!´%´0´3´:´K´K´R´h´ÔX¯×úJKKK5K?KDKWKbKbKxK‚K”K™K£K­KµKÅKãKóK
L'LKLQLULXLlLtL{L�LˆL�L L¥L¥LMÕ Ž¯’I’IœI�IžI¨IÀIËIàIðIJJ#J(J(J8JDJJJVJmJmJ�J J J©J®J´JµJúJÖx8D$v$v.v/v0v0vRv_v`viv×Hüuu
uuu uØX08vv
vvvvvvÙ $u$u4u5u6uDuJuKuOuOu]uaubufufunuÚxðü¤t¤t´tÂtÍtÞtætîtötùtuÛˆ"0ÄuÄuÒuÓuÔuÞußuãuãuôuõuùuùuÿuÜ�"tutu‚uƒu„uŽu�u“u“u¤u³u´u¸u¸u¾uÝ€ãð\t\tftgththtŠt—t˜t›t¡tÞH§­TsTs]seskspsßXÛã›T›l›p›¢›´›¿›È›ì›ô›œ)œ5œAœAœUœXœbœoœxœˆœŠœ�œ§œ·œÀœМלללÞœåœêœðœòœõœ�æp *äÉäÉòÉøÉÊÊ
ÊÊÊ Êç`
+´¾´¾¾¾Ⱦß¾å¾ç¾í¾èx
+ô¾ô¾¿¿¿#¿&¿(¿0¿3¿;¿é n¿¤¤¤#¤&¤&¤F¤V¤b¤b¤q¤{¤‘¤‘¤š¤Ÿ¤¶¤̤á¤á¤ü¤þ¤þ¤¥¥¥6¥8¥8¥B¥B¥L¥}¥ƒ¥†¥¬¥¬¥µ¥º¥Ñ¥ç¥
¦¦/¦D¦D¦_¦a¦a¦|¦�¦�¦œ¦¡¦¡¦«¦«¦º¦ë¦ñ¦ô¦þ¦§§§)§)§0§3§Ò§ê(Öø¤Æ¤Æ¸Æ¸ÆÈÆËÆÖÆÙÆæÆêÆîÆÇÇ*Ç5Ç?ÇFÇ…Ç�ǬǽÇÅÇÌÇÓÇÚÇûÇÈÈÈ!Èë˜*:$Ê$Ê.Ê1Ê=ÊGÊMÊZÊnÊnÊ�Ê�ʪʮʲʸÊìØh9Ÿ9ŸTŸVŸfŸnŸzŸˆŸ“ŸÀŸêŸùŸ  + 9 > P ^ h € € … › › £ © À Ù Ù ¡¡¡1¡3¡3¡^¡`¡`¡j¡j¡p¡s¡x¡Ž¡Ž¡–¡œ¡³¡Ù¡å¡¢¢,¢.¢.¢Y¢^¢^¢‰¢Ž¢Ž¢˜¢˜¢£¢¦¢°¢Ä¢΢â¢î¢ÿ¢"£+£2£;£>£á£íh¿ÉÙ§Ù§ç§ø§¨¨	¨	¨¨î ÉÚ¨¨!¨6¨K¨W¨x¨–¨£¨ª¨ª¨®¨®¨¶¨ïXÚ¹¨¹¨ܨߨç¨õ¨©#©#©#©N©P©P©P©{©}©}©‡©‰©‰©“©“©·©Ì©Õ©â©æ©þ©ª6ª?ªEªLªOª¬ªðøÄà��+�+�K�^�l�r�v�y�ƒ�ñh(RÀÀ0À<À_ÀaÀaÀnÀxÀ~À�À‘À–À–À£ÀÀÀÂÀÇÀäÀæÀèÀÁÁ	Á&Á(Á*ÁGÁIÁKÁPÁPÁPÁPÁUÁUÁ\ÁbÁeÁêÁòpFQh‘h‘q‘y‘|‘Бޑœ‘ ‘¥‘óxam’’	’’’"’&’*’8’<’A’ô HYÚÛÚÛßÛêÛïÛÜÜÜÜ Ü*Ü*Ü3Üõh4>à@à@î@î@
+A
+A
A$A$A*Aö@$)`@`@n@‚@ˆ@÷XV^ Š Š)Š+Š=ŠEŠJŠPŠøP”»‰º‰º©º²ººº¿ºĺκκÓºݺâºðºðº÷ºýº»»»» » »&»,»2»:»F»L»N»N»X»Z»Z»d»d»Ì»ùh"ƒƒƒ%ƒ=ƒHƒJƒJƒRƒú@"'WƒWƒkƒ}ƒ…ƒûx1=çƒçƒùƒüƒ
+„'„+„:„=„G„üh'1‡ƒ‡ƒ�ƒ«ƒÃƒÖƒØƒØƒâƒýè2AA(A6ALA[A`ApArA{A‡A�AšA´AÄAÓAÓAÚAÚAÚAÎBþp2=ÒBÒBàBîBöBCC C&C,Cÿh±»g�g��Œ�‘�‘�§�ª�¿�PÀÇ(”(”,”6”G”I”è†ÀÐ’Ð’Þ’á’ë’ì’í’ø’ú’ü’“““““““!“(“.“5“;“B“H“O“U“\“b“i“o“y““ƒ“Œ“”“”“�“ž“ž“¯““ēԓۓæ“ñ“ü“””””'”`ˆ±ß‹ß‹ù‹Œ)Œ8Œ\ŒfŒkŒ‘Œ˜ŒšŒšŒ©Œ³Œ´ŒµŒ¾ŒÃŒÄŒÑŒÖŒØŒçŒìŒûŒ��5�5�G�S�W�c��^mWŠWŠuŠ‰Š—Š Š´Š½ŠŠÍŠçŠêŠøŠx ½ ½¥½¯½¯½À½Â½ô½û½û½û½þ½ÈÏå­­!­&­6­;­J­O­Q­[­j­o­q­€­‹­�­•­8Âæß�ß�ú�ü�
ŽŽŽ=ŽJŽTŽ^ŽvŽ}ŽŽŽ‘Ž—ŽžŽ Ž¦Ž¬Ž¯Ž¶Ž¸ŽÁŽÍŽÔŽÔŽÔŽÚŽëŽH#çUçUñUùUVV`
+:Ü:ÜDÜNÜbÜhÜjÜpÜ	ßýG�G�P�Z�Z�j�w�€�‰�’�›�›�¯�¯�º�À�Â�Ò�Û�Û�î�÷�÷�‚‚ ‚/‚5‚:‚
+€‡‚‡‚¯‚½‚Ȃ̂ЂԂ؂ä‚ñ‚ô‚ƒˆý?‚?‚K‚R‚V‚[‚_‚e‚h‚s‚y‚�‚hÕß÷€÷€��&�.�6�9�A�
XÍÕǀǀЀЀë€ñ€ñ€ö€¨9KÂcÂcÖcÝcêcócöcýc
d d4d>dHdKdWd€2ªiªiºiÇiÍiÍiÕiÕiâiäiúijjj%j3jAiAˆIW„:„:�:›:£:«:¹:Á:É:Ñ:Ù:ã:è:ð�¼<<<<<@<I<P<`<e<t<€<˜<®<Ï<='=?=H=J=R=Z=q=y=„=‘=•=™=›=®=µ=È=Ø=ß=õ=>
>>>>>)>)>.>7>7>I>P>P>b>c>h>{>˜¼ì|>|>€>ˆ>‘>¥>¹>Í>Ô>ä>é>ø>??ˆ>ˆeˆlˆyˆ…ˆŽˆ“ˆ“ˆ“ˆ³ˆÓˆÓˆíˆòˆ÷ˆ@•šÄmÄmÈmÓmÕmxeq”l”l l±lµl¹lÅlÊlÍlÕl Àq†ÜlÜlúlþlmmmm'm0mOm[mdmjmkmnm|m ˆ¡¯ümümnn&n,n2n8nKnRnWn]n! ¯Àdndnjnvn‰n”n¬n®n²n»nÉnÎnÒnÖnÚn"ÀÀÕÜnÜnánânãnëno	o o5oHo^oxo|o#Pš¡ÜmÜmämêmðmõmüm$€1>"&"&'&'&<&>&H&S&\&j&u&w&|&%�†•|m|m€m†mŒm’m˜mžm¤mªm°m¶m¼m¾m&`
+ª/ª/¯/¹/Ó/Ù/Û/Û/Þ/'�àï‰�‰�™�®�¸�Ê�Ñ�Ö�Ú�à�ç�ê�û�(` (¬¿¬¿¶¿οÀ
ÀÀÀÀ)` <¿<¿F¿^¿—¿�¿Ÿ¿Ÿ¿¥¿*`~‡,Ã,Ã7Ã@Ã@ÃKÃOÃOÃUÃ+826r.v.„.†.,8õùš,ž,¬,®,-8ú,þ,--.8"&â-æ-.	./8þÚ,Þ,õ,÷,08*.2.6.D.F.1`DM‡—‡—�—ž—¤—¼—¾—¾—×28B-F-T-V-38‚-†-”-–-4ú‚ȂȬȽÈÌÈÙÈÙÈéÈíÈõÈýÈÉÉ	É
É0É1É2É=ÉBÉYÉbÉcÉjÉmÉÉ5&†ßpßpq	q
qqq q q$qCqWqZqiqmqtq�q–q˜q±qºqºqÁqÆqËqÕqÚqßqßqæqëqðqúqÿqrrrrr r$r)r)r)r5r7rFrFrFrRrTrcrcrcrlrvr{r~r€r€r€r‰r“r˜r›r�r�r�r¦r°rµr¸rºrºrÈrÍrÑrÓrÓrØrïrs6P+2g]g]k]�]†]š]œ]¦]7`"+]]])].]B]N][]e]8x"§\§\¶\Ì\á\ë\ò\ô\ô\]]9ˆÙ/w/w5wFwuwuw‚w‰wšwÉwÉwÖwÖwáwëwòwýwxx#xUxgx‰x‰xŽxœx¥x¸x¿xÉx×xíxyyy1y1y1y5y:àÀÙOuOuSubugusuu‹u”u u§u¬u¹uÐuâuûuv-vFv_vxv‘v$w;€³Àÿtÿtuuuu#u*u,u>uCuNu<¨AS^^ƒ^‹^‹^“^¢^®^¼^Å^Ì^Ñ^Þ^ï^ï^__	_=P#·y·y»y»yÔyÛyÝy>@=¯„¯„¿„É„΄Ó„Ó„â„ç„ì„ö„………………………(…*…*…9…;…G…Q…_…d…s…z…|…|…|…‚…?h÷ƒƒƒƒˆƒ”ƒ ƒ¬ƒ·ƒ¾ƒÀƒ@8=a‡…‡…‹…–…©…¹…É…Ù…é…ý…††'†.†5†<†M†^†o†�†±†ȆÙ†ê†õ†‡‡‡*‡1‡<‡G‡N‡U‡f‡AÀ7y7y?yAyPyfyryƒyyy‹y�yœy’y¤y©y©y«y®y´yB€†³sss;sLs\scs’s¦s°s·sÉsÎsÕsàsésôst,t:t\tatatatatrt…tŒt�tµt·t·tÊtÛtótõtõtùtC�2A§]§]«]¿]Ã]á]ÿ]^,^8^F^M^Z^w^{^Dȧýšìšìžì«ì°ì¹ìãìèìíìòì÷ìüìí5íBí\íiíríwí|í�íŠí�í¤í¤í©í®í¾íÄíÎíÓíÜíáíæíîîîî#î(î4î6î_î€î€î�î•î¹î¹î¾îÇîÌîÓîßîëî
ï
ïïï"ï#ï,ï1ïÒïE¨þ*$*$K$_$f$p$t$x$|$|$†$†$�$£$½$À$Ð$FPÒ$Ò$Ü$ð$þ$%$%Gè6g–g–~–’–�–�–«–¯–»–Ï–Ï–Ú–Ý–ä–í–ò–÷–———&—4—H˜Qa¨‘¨‘±‘¹‘¼‘ʑ͑ԑؑۑߑí‘ô‘ù‘Iˆm{H’H’Q’Y’\’j’n’r’u’ƒ’Š’�’J`
+ ? ?¤?¤?¸?¸?Ì?Ð?Ô?Kh ìoìoöoøoýoppppLh¤o¤o´oÃoÈoÖoÙoßoçoMh|o|o†o‹oŽo”o—o™oŸoNh )ppp p%p.p1p6pˆEˆMˆ]ˆ]ˆ`ˆlˆ}ˆ�ˆ’ˆ’ˆ—ˆ¹‰TȺп‰¿‰Ó‰â‰è‰ë‰ŠŠŠŠ Š Š*Š,Š,Š7Š7Š9ŠU‹U vr	r	v	‡	˜	©	º	Ë	Ü	í	þ	
+ 
+1
+B
+S
+d
+u
+†
+—
+¯
+¨
+À
+¹
+Ñ
+Ê
 â
-ö
-
-€!N”͔ͮͷÍÚÍäÍþÍÎÎÎÎÎKÎXÎ^ÎmÎmÎwÎ|΂ΑΑΤΧαδÎâÎïÎõÎÏÏÏÏÏ(Ï(Ï(Ï(Ï3Ï3ÏAϬ,	¢¢ÀÄÇÇÛîý!'*=Uaddxˆ’ž¢µ¸ÄÉÔÜï	,@JJYg��¨¨¨¼ÐÞããã÷'7NSSYm}›  ¦ºÊèííí $$$8HV[[[o�������£·ÇÉÉÉÝí÷÷þþ			â
-`ˆ±ŽŽ!Ž7ŽQŽ`Ž„ŽŽŽ“Ž¹ŽÀŽÂŽÂŽÑŽÛŽÜŽÝŽæŽëŽìŽùŽþŽ���#�<�C�]�]�o�{��‹��^mŒŒ�Œ±Œ¿ŒÈŒÜŒåŒêŒõŒ�� �	x t¾t¾y¾ƒ¾ƒ¾”¾–¾È¾Ï¾Ï¾Ï¾Ò¾
-ÈÍãw¯w¯�¯†¯–¯›¯ª¯¯¯±¯»¯ʯϯѯà¯ë¯ï¯õ¯8Âæ��"�$�5�:�D�e�r�|�†�ž�¥�§�§�¹�¿�Æ�È�Î�Ô�×�Þ�à�é�õ�ü�ü�ü�‘‘H#XXXX"X(X
`
-ZâZâdânâ‚âˆâŠâ�âßý±�±�º�Ä�Ä�Ô�á�ê�ó�ü�‚‚‚‚$‚*‚,‚<‚E‚E‚X‚a‚a‚‡‚‡‚‰‚™‚Ÿ‚¤‚€ñ‚ñ‚ƒ'ƒ2ƒ6ƒ:ƒ>ƒBƒNƒ[ƒ^ƒnƒˆý©‚©‚µ‚¼‚À‚łɂς҂݂ã‚ë‚hÕßa�a�q�}���˜� �£�«�XÍÕ1�1�:�:�U�[�[�`�¨9Kücücdd$d-d0d7dGdZdndxd‚d…d‘d€2ìiìiüi	jjjjj$j&j>>">0>8>@>H>P>Z>_>ð‰Äã?ã?ç?ë?ë?@@ @/@4@C@O@g@}@¢@Ø@ú@AAA%A-ADALAWAdAhAlAnA�AˆA›A¯A¶AÌAâAäAèAèAèAôABBBBB B'B'B9B:B?BRB˜ÄôSBSBWB_BhB|B�B¤B«B»BÀBÏBØBìBC(C>CXC`C|C�C¨CÉCäCíCûC
DD!D-D/D:DNDNDoDoDzD�DŒD�D‘D¤DÐ;CECEYE`EtEwEwE›E®EÀEÒEûEF(F/F1F4F:F>FOFYF_FbFeFgFsFŠF’F®F±F´FÂF×FçFóFG"G7G:G=GMGUGUG]GdGkGkGyG‘G øWsc>c>w>�>ˆ>”>—>¬>¯>³>µ>¸>»>Ã>Æ>Æ>Ò>æ>æ>ð>?????#? Ð<Ã2Ã2Ç2Ó2ó2333&343C3{3{3ª3Ç3Ñ3Þ3444.4.4=4L4`4…4‰4‹4‹4š4š4œ4œ4¦4µ4µ4¹4¾4Ç4Ç4Ù4à4î4ý4(51515C5C5I5›=!8/3¢1¬1¿1Ä1"X)—‰—‰›‰¡‰°‰·‰Ɖå‰þ‰þ‰ŠŠŠ"Š"Š1Š1ŠBŠTŠYŠ^ŠnŠnŠ�ЗФайоооŠÞŠþŠþŠ‹‹ ‹#@•šnnn'n)n$xeqàlàlìlýlmmmmm!m%Àq†(m(mFmJmTmemfmgmsm|m›m§m°mºm»m¾mÌm&ˆ¡¯PnPnXnonzn€n†nŒnŸn¦n«n±n' ¯À¸n¸n¾nÊnÝnènooooo&o*o.o2o(ÀÀÕ8o8o=o>o?oGocoeo{o‘o¤oºoÔoØo)Pš¡0n0n8n>nDnInPn*€1>Z)Z)_)_)w)y)ƒ)Ž)—)¥)°)²)·)+�†•ÐmÐmÔmÚmàmæmìmòmømþmn
-nnn,`
-3333+313333363-�Üë�¢�¢ ¢µ¢¿¢Ñ¢Ø¢Ý¢á¢ç¢î¢ñ¢£.` (;Â;ÂEÂ]–œžž¤Â/` ËÁËÁÕÁíÁ&Â,Â.Â.Â4Â0`~‡»Å»ÅÆÅÏÅÏÅÚÅÞÅÞÅäÅ1837Ê1Î1Ü1Þ128ðôª/®/¼/¾/38R0V0m0o048#':1>1_1a158ùýê/î/0068+/Š1Ž1œ1ž17`DM¯™¯™¸™Æ™Ì™ä™æ™æ™ë™88
š0ž0¬0®098Ú0Þ0ì0î0:ú¢Î¢ÎÌÎÝÎìÎùÎùÎ	Ï
ÏÏÏ!Ï%Ï)Ï-ÏPÏQÏRÏ]ÏbÏyςσϊÏ�ÏŸÏ;&†ÿrÿr&s)s-s6s9s@s@sDscswszs‰s�s”s­s¶s¸sÑsÚsÚsásæsësõsúsÿsÿstttt t$t$t+t0t5t?tDtItItItUtWtftftftrtttƒtƒtƒt�t™tžt¡t£t£t£t¬t¶t»t¾tÀtÀtÀtÉtÓtØtÛtÝtÝtëtðtôtötötûtu$u<P+2‡_‡_‹_¡_¦_º_¼_Æ_=`"+/_/_3_I_N_b_n_{_…_>x"Ç^Ç^Ö^ì^_____!_/_?ˆÙWyWy]yny�y�yªy¸yÉyøyøyzzzz!z,z5z@zRz„z–z¸z¸z½zËzÔzçzîzøz{{2{4{J{`{`{`{d{@àÀÙwwww{wŠw�w›w§w³w¼wÈwÏwÔwáwøw
-x#x‰L‰Z‰a‰l‰w‰~‰…‰–‰GÀg{g{o{q{€{–{¢{³{©{»{À{Ì{Â{Ô{Ù{Ù{Û{Þ{ä{H€†³7u7u=u[ulu|uƒu²uÆuÐu×uéuîuõuv	vv&vLvZv|v�v�v�v�v’v¥v³vÄvÜvÞvÞvñvwwww wI�2AÇ_Ç_Ë_ß_ã_` `=`L`X`f`m`z`—`›`J�úRòRòVòcòhòqò›ò ò¥òªò¯ò´òÌòíòúòó!ó*ó/ó4ó9óBóGó\ó\óaófópóvó€ó…óŽó“ó˜ó·óÀóÅóÊóÏóÔóàóâóô/ô/ô9ô>ô\ô\ôaôjôtô€ô—ô—ô£ôªô³ô¿ôáôáôèôíôöô÷ôõõÔõK¨þb'b'ƒ'—'ž'¨'¬'°'´'´'¾'¾'È'Û'õ'ø'(LP
-(
-((((6(P(\(Mè6�˜�˜¦˜º˜ŘŘÓ˜טã˜÷˜÷˜™™™™™ ™4™4™4™N™\™N˜Qaú‘ú‘’’’’ ’*’.’1’5’C’J’O’Oˆm{š’š’£’«’®’¼’À’Ä’Ç’Õ’Ü’á’P`
-è?è?ì?ì?@@@@@Qh HpHpRpTpYp\p_pdpjpRhppp p$p2p5p;pCpShØoØoâoçoêoðoóoõoûoTh )ppppzp|p�pŠp�p’p˜pU Ý¡‹¡‹»‹Ì‹ã‹é‹ð‹ð‹ú‹þ‹þ‹
ŒŒŒ>ŒKŒKŒZŒiŒ|Œ|ŒˆŒ¥Œ§ŒÅŒÇŒÊŒÌŒÌŒÏŒÏŒÛŒâŒâŒæŒñŒ����(�0�V�l�r�…�…�Ÿ�¨�«�Ã�Vh(É�É�Í�í�ŽW8=�±„±„DŽ΄ЄԄç„î„ñ„………(…-…-…1…M…T…^…d…k…w…ƒ…‹…”…˜…©…©…©…²…¶…½…Á…Á…Ó…æ…ï…ó…󅆆††%†1†1†1†F†K†a†f†y†~†—†—†—†§†Ñ†XðŒÇ)‡)‡C‡E‡^‡j‡n‡Š‡œ‡œ‡œ‡¨‡´‡»‡»‡Æ‡Ñ‡á‡é‡î‡î‡÷‡ˆ
-ˆ
-ˆ
-ˆˆ!ˆ$ˆ0ˆAˆQˆSˆSˆSˆjˆpˆ|ˆˆˆ�ˆ—ˆ§ˆ§ˆªˆ¶ˆÇˆÚˆÜˆÜˆáˆŠYÈÇÝ	Š	ŠŠ,Š2Š5ŠPŠ^Š^ŠhŠjŠjŠtŠvŠvŠ�Š�ŠƒŠŸ‹Z˜uªª®¿Ðáò

%
6
G
X
i
z
‹
œ
­
¾
Ï
ç
à
ø
ñ
	$5FWoh€y‘Š¢›³¬Ä½ÕÎæß÷ð*#;4E]VngxÅ[œÚ,»,»J»T»X»b»z»z»‚»Œ»–»™»œ»œ»Ÿ»Ÿ»Ü»ß»â»ä»÷»ú»ý»¼¼¼¼'¼*¼.¼0¼6¼6¼B¼B¼P¼R¼R¼\¼\¼\¼^¼l¼s¼s¼s¼y¼|¼�¼„¼‰¼”¼›¼ž¼°¼\°‰œ̺̺ںãºïºõºøºýº»
-»»»» »#»#»)»]hßé,a,aLaPafaza„a‡a—a^pÏÚÄ`Ä`Ö`ß`è`ó`ü`ÿ`	a_P»Âç�ç�ð���`ØÌä’Í’Í–ÍŸÍÇÍíÍøÍÎ
-ÎÎÎ!Î!Î#Îa`7@bÐbÐfÐkЅОУХÐbh­·ÔÔÔ#Ô.Ô5Ô=ÔbÔœÔcP³º¢Ì¢Ì¦Ì±Ì¶ÌÀÌÂÌd�­:Ó:Ó?ÓKÓKÓaÓlÓlÓzÓzÓ•Ó«ÓµÓ»ÓÌÓæÓñÓüÓÔÔÔÔÔe “¤ÚËÚËéËòËüËþË
Ì
ÌÌÌÌÌ<ÌJÌKÌQÌfh¤®RÌRÌ\Ì]Ì^ÌeÌmÌ}Ì~̃Ìg@®³ŠÌŠÌŽÌ™Ì›ÌhÈäú*Î*Î2ÎBÎEÎFÎFÎKÎVÎYÎlÎuÎzΉÎ�ΟΟΟΟΡΡÎi˜@�ªÐªÐ¶Ð¼ÐËÐØÐÝÐÝÐÞÐßÐìÐóÐøÐÑÑ'Ñ;Ñ=ÑXшѢѸÑÃÑãÑåÑðÑúÑÒÒÒ$Ò/Ò=ÒDÒDÒPÒPÒ^ÒrÒ‹Ò³Ò¾ÒÆÒÍÒ×ÒÛÒàÒåÒïÒÓ
ÓÓÓÓÓÓ9Ój¨ºÌÂÌÂÌËÌäÌåÌæÌÍÍÍ3Í;Í;ÍPÍk͈͉͉͎ÍkX=	E	BBTgrx{ƒlà+äbžbžkžkžž‘ž‘ž§žÊžÊžîžàžŸŸAŸ%ŸbŸbŸxŸ¡Ÿ¡ŸËŸ·ŸìŸìŸ , , W B x x Ž ¾ ¾ ï Ô ¡¡&¡P¡P¡{¡f¡œ¡œ¡²¡â¡â¡¢ø¡4¢4¢J¢{¢{¢‘¢´¢´¢Ø¢Ê¢ù¢ù¢+££L£L£b£‹£‹£µ£¡£Ö£Ö£ì£¤¤A¤,¤b¤b¤x¤¨¤¨¤Ù¤¾¤ú¤ú¤¥:¥:¥e¥P¥†¥†¥œ¥Ì¥Ì¥ý¥â¥¦¦4¦e¦e¦{¦¤¦¤¦º¦ë¦ë¦§*§*§@§q§q§‡§°§°§Æ§ç§ç§ý§¨¨4¨W¨W¨m¨�¨�¨¦¨Ï¨Ï¨å¨©©$©U©U©k©œ©œ©²©Û©Û©ñ©ªª0ªaªaªwª¨ª¨ª¾ªáªáª÷ª««-«-«`«`«“«“«®«®«á«á«¬¬;¬;¬e¬e¬�¬�¬�¬¥¬Ñ¬³mЃºÑÑÑ)Ñ0Ñ8Ñ?Ñ?Ñ[ÑmÑmÑrÑ{Ñ„Ñ�іјѡѪѬѬѵѾÑÀÑÀÑÉÑÒÑ×Ñ×ÑàÑéÑîÑîÑîÑ÷ÑÒÒÒÒÒ"Ò+ÒHÒeÒxÒxÒ†ÒŠÒ~ÕnðÐ+•••• •1•1•G•j•j•€•€•¸•â•â•ø•ø•)–L–L–b–b–š–Ä–Ä–Ú–Ú–—.—.—<—i—i—w—«—«—¹—â—â—ð— ˜ ˜.˜e˜e˜s˜®˜®˜¼˜™™™O™O™]™˜™˜™¦™è™è™ö™<š<šJššššš¨šóšóš›G›G›]›y›y›�›¨›¨›¾›×›×›×›í›œœažo`º#„Õ„Õ–Õ¦Õ­ÕµÕ¼Õ¼ÕØÕÜÕÜÕüÕüÕÖ	ÖÖÖÖÖÖÖ$Ö'Ö)Ö)Ö3Ö6Ö8Ö8ÖBÖEÖJÖJÖTÖWÖ\Ö\ÖfÖiÖnÖnÖnÖqÖtÖtÖŽÖžÖžÖ²ÖÂÖÂÖÄÖÄÖÇÖÑÖÖÖÖÖÖÖÙÖÜÖÜÖãÖòÖÿÖ××××××××××× ×"×"×"×)×8×F×H×H×K×U×Z×Z×d×d×u×ׇׂבבנפ×jÚp¨M_¬Ç¬ÇÀÇÌÇÓÇÙÇâÇèÇëÇëÇþÇÈÈÈ Èqˆ*²ë²ë¾ëÈëñëúëüëìì ì-ìr€¿Ìƒƒ‘—£¯³ÇÜäùÿspššš%š4šOšSšYš[š[šaštX@@@@D@D@X@\@\@`@u§ÆLgLgbgmgrg{gŽg¦g®g¶gÃgÍgÔgÛgßgãgîgôgýgh
-hhh!h#h1hv Æ×4h4h>hEhPhUh^hmhshzh|hhŠh�hwøh„¤e¤eªe·eÈeÒeÙeàeéeñe	fff!f)f0f7f?fEfPfTfVfVfZfxKh”d”d d§dºdÆdíd÷de	eee%e7eIeIeceoexe†eŒe’e•eœe¤ey ×è”h”h¢h¥h°hµhÂhÍhÜhòhühiiiizpèóii*i1iXJXKXLXVXXX^X^XeXeXkXrXrX}XX‡X�X’X’XžX¨X¬X±X±X±X±X¸X¸XÃXÆXÈXÍXÍXØXÚXâXâXóXõXûXYYY#Y'Y2Y@YLYVYZY\Y\Y_YiYmYzY‡Y‹Y‘Y”Y›Y�Y�Y­Y³Y¼YÃYÇYÉYÉYÉYÉYÉYÐYÔYØYÛYÞYâYçYñYZ
-ZZZZ!Z3Z}øàüG[G[a[j[v[y[†[‹[•[¡[§[±[´[µ[¿[Á[Ê[Ô[ß[æ[ê[ò[ó[ó[\~Xü$\\\5\?\T\\\\\b\b\e\l\w\{\€\†\�\–\™\›\ž\¡\¡\¦\µ\¸\Ê\ $5Ï\Ï\Ý\â\ã\ä\ä\ö\ø\]]] ] ]%]€p×"VV-V/V2V>V?V@VJVLVWVdVlVqVƒV…V…V‰V™V§V·VÂVÇVÇVÎVÎVÙVÙVøVWWWWWW W W*W,W4W:W}E}E}M}[}l}t}{}{}�}�}œ}¡}­}¹}Ã}Õ}ä}é}í}ô}~~~~~)~0~=~>~H~R~\~c~m~t~y~ƒ~Š~�~™~ ~ª~´~»~Å~É~Ò~Ú~ã~;H]huu|ž«±³’p•À×€×€á€ë€ë€9�9�‡�‡�Õ�Õ�ó�‚/‚F‚F‚„‚„‚�‚’‚¯‚¯‚í‚í‚ù‚û‚ƒƒHƒOƒTƒ^ƒyƒ€ƒ‚ƒ‡ƒ�ƒ“X�•w€w€�€«€³€Ê€Ì€Ò€”`±±1±C±M±•ˆâðZ/Z/e/j/k/l/s/…/†/š/�/£/–xCo[[_c‡�Ÿ«·Öîþ466WYYz||……��™­·¿¿ÑØØê÷C—�ožCCGKox‡“Ÿ«ÊÒêú355Y[[��ŠŠ’’ž²¼ÄÄÖÝÝïüH˜h"qƒqƒ�ƒ�ƒ§ƒ²ƒ´ƒ´ƒ¼ƒ™@"'ÁƒÁƒÕƒçƒïƒšx1=Q„Q„c„f„t„‘„•„¤„§„±„›h'1ñƒñƒ„„-„@„B„B„L„œH %ԾԾݾã¾ð¾ò¾÷¾�ÐlƒÐÐ@Ð@ÐHÐbÐlÐoÐtÐ|Ð�РЭЯнÐÊÐÚÐîÐðÐðÐÑžP•œò@ò@÷@AAAAŸÐ)‹À‹À›ÀœÀ�À¨À­À¹ÀÀÀÆÀâÀÁ!Á*Á+Á6Á °¿Ò«½«½ǽȽɽÔ½Ù½å½ÿ½¾¾ ¾'¾0¾1¾4¾@¾¡°ÒåC¾C¾_¾`¾a¾l¾q¾}¾—¾ž¾«¾¶¾½¾ƾǾʾÖ¾¢°¬¿½½/½0½1½<½A½M½g½n½{½ˆ½�½˜½™½œ½¨½£�ôk¿k¿‹¿Œ¿�¿˜¿�¿©¿ÿʿѿ޿ç¿è¿ô¿¤�û¿û¿ÀÀÀ(À-À9ÀSÀZÀaÀnÀwÀxÀ„À¥�åôÛ¾Û¾û¾ü¾ý¾¿
¿¿3¿:¿A¿N¿W¿X¿d¿¦à:SÊãÊãàãéãää'ä<äCäCäKägägäuä™ä©ä¯ä¸äÒäÒäà䧸Sgâäâäôäûä
-åååå0å;åCåWå`åfåqåqå�娘
-:’â’â¬â¯â²â¼âÂâÎâÑâØâáâåâîâñâøâãããã ã)ã2ã@ãGãVãbãeãhãqãvã�ã™ãœãŸãŸãŸãŸã£ã«ã³ã¶ãÈã©;((('(7(A(I(P(T(\(f(t(ƒ(‰(‘(�(£(£(ª(®(®(°(õ(ªX	b(b(f(j(l(«p÷g°g°‡°’°¤°œ°·°ȰȰȰÔ°¬h$`@`@i@i@~@~@‹@ @ @¥@­p[fTÀTÀYÀcÀqÀ}À�À…À…À—À®X5	=	
-
-,28>¯XL	T	ÊÊÚìóùÿ°XT	\	
-
-,39?E±@7<â1â1æ1ý1ÿ1²XX`«Ä«Ä´Ä´ÄÀÄÆÄËÄÐijHRX{Ä{ĄĕĤĤĩĴ€þþ$þ*þ3þHþRþWþcþiþkþkþpþµx‡“ÃÃÐçõ%,/7¶€“ ;;F]kzzŽ£¯¾ÀÆ·8Åé»
»
Ç
Ñ
Ø
å
õ
ù
#2;Y;w†—�¬½ÃÃãôþ˸€/<óþóþÿÿÿ'ÿ/ÿ7ÿ<ÿBÿDÿDÿJÿ¹p|‡{{�‰�²º½¿ÃºXÇÏZ%Z%c%h%w%{%}%‚%»@T¾T¾]¾i¾n¾¼H?E”¿”¿�¿¤¿ª¿¯¿½HEK´¿´¿½¿Ä¿Ê¿Ï¿¾€ÉÖ³/³/½/Ä/É/Ô/Ö/ß/ñ/÷/÷/0¿h+5$¿$¿-¿2¿<¿A¿G¿N¿N¿Z¿ÀàoˆßQßQãQ÷QR:RGRkR}R¡R¦R¾RëRôRöRSSESNSNSZSZSÐSÁè¯É{.{.’.œ.¦.¦.½.È.Í.Ø.Ý.Ý.÷.///(/=/=/D/D/®/ÂX
‚³‚³�³›³ª³´³º³Ã°´Çº$º$Ê$Ø$ß$ï$%%%(%5%J%L%O%Q%Q%Q%Y%ÄàÏè‚%‚%’%˜%¢%©%½%Ö%Ö%å%û%&&&&&&&<&D&F&I&K&K&W&Å�ÂêÂêØêëêëêëë ë%ë%ë-ë/ëWëÆh5?\¿\¿e¿j¿t¿y¿¿†¿†¿“¿Ç@‘öϔϔñ”•••••)•.•@•J•L•P•\•\•k•p•t•�•™•©•©•º•½•¿•ʕʕەޕá•ã•é•þ•–––!–)–)–,–8–V–[–l–u–w–z–„–�–—–—–ª–¯–²–Í–Ö–ë–ð–ú–—
—————2—5—8—:—@—Y—\—f—m—m——Èx3_/’/’I’I’L’P’d’i’|’†’ˆ’Œ’˜’˜’§’¬’°’Í’Ò’â’â’ó’ö’ø’““““““!“7“:“D“R“ɨ_‘W“W“y“}“}“€“Œ“¨“­“½“Ɠȓ˓Փޓè“è“û“”””&”;”@”J”S”]”`”b”m”m”„”‡”Š”Œ”’”­”°”º”̔ʨ3‘‘3‘=‘=‘@‘D‘T‘Y‘j‘t‘v‘z‘†‘†‘•‘š‘ž‘¹‘¾‘ΑΑß‘â‘ä‘ï‘ú‘ý‘’’’’’’.’ËpALHqTqWqYq^qaqdqiqqqÌx5Aàpàpôpq
-qqq/q2q7qCqÍx)5˜p«p®p³p¶p¶pÉpÏpÒpÔpÞpÎpLWxq„q‡q‰qŽq—qšqŸq§qÏX„ŒÐrÐrÙrÞrærìrìrñrÐ�Œ›ørørss!s$s$s+s+sDsGsLsNsVsÑ`W`¨q¨q²qÁqËqÛqßqâqèqÒ8`„èqèqÿqrrrrr r%r6r;r>rCrLrLrLrPrZrirqr†r‘r£r§r©r»r¿rÁrÁrÁrËrÓX’š[Ô[ÔwÔ{Ô�Ô›ÔŸÔ«ÔÔPš¡«Ô«ÔÇÔËÔÑÔëÔûÔÕ @a##'+7@Q`lu³ÂÎÕóþ	 	G	Y	c	j	q	Œ	Œ	Œ	ž	¥	¥	·	½	Á	Öøv’[Ó[ÓwÓ‡Ó’Ó—Ó™ÓŸÓ±ÓÃÓÓÓäÓôÓöÓöÓöÓüÓÔ2ÔBÔDÔDÔMÔMÔYÔ×@5:ëë ØH5++/8HWc|||©ÎÓÓþ MYlty‹��–––¨¯¯ÁÆêÙh¤®pCpCtC¢CÀCÒCãCíCÚ`ÖßÀEÀEÄEòE F2FCFMFÛH´º0D0D4D_DmDoDÜHÀưD°D´DßDìDîDÝXÎÖXEXE\EŠE¸E¼E¾EÞH®´ðCðCôC D-D/DßHºÀpDpDtDŸD«D­DàXÆÎðDðDôD"EPETEVEáH‚ˆBBB?BGBIBâHŽ”ˆBˆBŒB·B¾BÀBãXœ¤CCCJChClCnCäH|‚ÐAÐAÔAÿAB	BåHˆŽPBPBTBB…B‡BæX”œÀBÀBÄBòBCCCç8ßãPFPFYFkFè`#ò0ü0ü010151é@gŒr>r>€>‡>‘>Ÿ>Ÿ>§>À>ã>å>???@?f?f?ˆ?’?œ?ª?Â?Ï?Ø?Ø?ñ?û?@"@$@+@2@h@ê`ÚÚð"*4<V[[c}‚‚Š”®³³¹ÀÀÖÞåìóþ  + - A c y ‡ Ë ³ ä  # - D G K P Y b ¬ ’ Ç ö !+!5!6!7!J!Q![!p!y!�!ž!¯!²!¹!Ó!å!ë�Ž�òòòò
ò
ò ò'ò,ò2ò6ò:òJòOòRòì°b•WWW W-W-W=WLWVWbWmW{WŠW›W·W¿WËWÓWÛWÛWæWèWúWXX,XNXbXoXŠX§X©X»XÄXÄXÖXÖXäXëXëXýXýXYYYYí -CTCTQT[TkTxTmT…T�T�T¡T«T«T­T×TYY Y@YGYVYcYoY~Y’YªYÀYÀYÍYàYZZZZ&Z&Z?Z?ZbZ€Z‰ZÊZÏZîZ0[[@[S[•[ž[¦[³[Å[×[é[	\\1\K\`\z\†\˜\�\¯\Á\Ù\é\õ\]];]F]Q]\]v]�]�]™]™]ž]­]»]ü]Ô]^^!^A^A^H^‹^‹^®^¼^¼^ý^ÿ^ÿ^_ _&_1_1_?_?_T_T_e_l_l_�_�_’_’_•_�_ï¨VhCKCKGKNK]KmKtKšKšK«KÊKÑKØKåKîKòKðȲè“O“O—O›O›O¿OÌOÕOÜOìOÿOPP"P.PFPYPYPfPyP—P P P­P¸PÃPÃPÐPÚPéPÿPQ-QFQJQLQQQVQ_Q_QqQxQxQŠQ‹Q�Q¶Qñ¸è»Q»Q¿QÇQÐQäQøQRR#R(R7R@RTR{R�R¦RÀRÈRäRìRÿRSS7SBScS~S‡S•S§S©S»SÇSÉSÔSèSèS	T	TTT&T'T+T=Tò >o;b;bablbnb|bˆb�b�b¢b¢b¢bµbÈb×bÜbñbÿbcccc/c2c5c9cMc^cŒc•c™cžc¦c¦c·cÈcÈcÐcØcØcÛcdóà>£_£_§_Ç_Ö_à_é_ú_`%`%`2`E`c`l`l`y`„`�`�`œ`¦`Ë`Þ`ý`aa!a/a6adaBa¬aza½aÂaÔaØaàaàaîaùaùabbbb'b'b,b:bôðoªddd"d*d*dNd]dfd}d•d¨d¨dµdÈdædïdïdüdeee7eMOMkMyM’M¡M¡M´MÂM×MîM÷MN"N9NQNQN^NkNvN‹N¤N¹NËNËNÐNÛNæNóNOOPOYOdOkOvO€O‰O�OöÀ-bÛTÛTßTãTìTúTUUU%U/U;UFUTUcUƒU�UµU¹UÒUêUùUýUVV V.V=V`VnV}V˜V¨V¬V¹V¹VËVËVÙVàVàVòVòVWWWWW÷È“G“G—G¦G²GÆG×GâGëGóGõGHHH H H2H3H7Hø@<;H;H?HGH~H�H™H¤H²HÍHèHöHþHI ICIEIIIIITI_InI}I I«I°IÂIÉIÉIÛIÜIàIù@ªÏ+g+g/g?gPg_glg{g…g g­g¿gÎgÝgìgþghhh&h1h@hOh^hphƒhŒhŒhšh¡h¡h¯h¸húè<VãIãIçIöIJ J J?JNJ\JeJxJŠJ»JÍJåJýJKKK$K$K9K:K>Kû@/4AAA"A(Aü°,?ºEÈEÖE×EØEîE÷EFFF F'F?F?F?FFFGFMFýØþŠÿŠÿžÿ¬ÿ²ÿþxNZDÏDÏTÏWÏ_ÏiÏtσϋϕÏÿˆ0þ
-Û
-Û Û#Û#Û7Û@ÛCÛNÛPÛcÛmÛxÛÛ“ÛžÛ¨Û¬Û¯ÛµÛ¿ÛÃÛÆÛÌÛÎÛáÛöÛÜÜÜÜ+Ü.Ü8Ü;ÜNÜcÜoÜrÜr܇ܘܜܢܢܦܪܮܲܲÜÈÜÈÜËÜÏÜÑÜÑÜÔÜØÜÚÜÚÜÝÜáÜãÜãÜæÜêÜìÜìÜïÜñÜñÜóÜóÜõÜõÜýÜýÜÝÝÝÝ!Ý$Ý(Ý-Ý1Ý;Ý>Ý>ÝSÝhÝjÝtÝwÝ{Ý�ݔݯÝÃÝÃÝÃÝÃÝÃÝÇÝÊÝçÝçÝçÝüÝÞ3Þ8Þ8Þ8ÞMÞjÞ‰ÞŽÞŽÞŽÞ£ÞÂÞáÞíÞòÞòÞòÞß+ßJßVß[ß[ß[ßpß�߬߸߽߽ßÃߨßàà&à+à+à1àFàqàuà”à™à™à™à®àÆàÍàíàòàòàòàá á&á4áDáháoá‘á–á–á–á«áÌáëá÷áüáüáüáâ2âQâ]âbâbâbâwâwâ�â¿âßâäâäâäâùâãã ã0ã0ã7ãAãVã[ãfãvãvã¬ãºãÀãÓãÛãäãäãäãðãôãôãûãääää'ä'ä9äkäzä„ä�ä—ä£ä­ä­ä»ä½äÈäÖäØäîäîäóäóä)å:åCåCåCåOåVåVå]åuå~å~åŠå•å•å«åºåÈåÊåÙåçåéåÿåÿåÿåæ%æ'æ'æ'æ@æXæ]æ]æ]ævæŽæ¢æ¦æ¼æ¼æÓæÓæÓæãæêæðæðæ÷æççç$ç3çAçCçYçdçuçwçwçwçwçƒç›çªçªçÅçÖçÞçÿçèè&è)è9è>è_èlèlè‡è’è�è¹èÔèçèïèýèýè
-éé!é\éjéjéjé†é“é—éªéâéâéäéäéêêêê ê$ê7êrê‡ê‘ê¤ê¬ê¹ê¾ê¾êËêÏêâêë2ë;ë@ë@ëNëRëRëkëƒë—ë›ë±ëÍëÍëÍëûëìì%ì%ì)ì<ìDìOìZì^ìgìgìlìŸì·ì·ìÕìèìíí6íJí\íhílí‰í›í§í«í°í°í°í´í¹í¹íÇíËíËíäíüíîî*îFîFîtî�î£î¨î¨î¨î¶îºîºîÓîëîïîïïïï9ïDïDïzï‡ï¤ï©ï©ïððð<ðHðHðLðPðcðkðyð„ð�ð“ðœðœðÂðÍðÍðëðññ
ñ
ñ'ñ8ñ8ñ`ñ™ñ©ñ©ñÙñÞñòò-ò8òPò[ò[òzò†ò†ò¯òÇòÊòÊòåòåòåòêòïò"ó:ó:óXókótóŒóµóÍóÐóÐóëóëóëóëóöóô'ô1ôAôgô{ô•ô¢ô¦ôªôÇôáôîôòôöôûôûôûôÿôõõõõ5õ@õPõPõlõˆõ‹õ�õ²õ¼õÏõ×õäõéõéõéõö!ö$ö6öOöTöTöTömö…ö�ö ö ö¼öØöÛöíö÷÷ ÷'÷4÷9÷9÷9÷U÷q÷t÷†÷Ÿ÷¤÷¤÷¤÷¤÷½÷Õ÷à÷ð÷ð÷ø&ø;øEøXø`øiønønønø“ø¤ø½øÂøÂøÂøÂøÛøóøþøùù3ùEùZùdùwùùˆù�ù�ù�ù²ùÄùÝùâùâùíùíùÿùÿùúúˆÿpg’’å’å®å±åºåÎåØåãåååùåùåæææææ/æ4æHæHæmæ†æ�æ�æ�æ³æËæËæÍæÍæÍæçæüæüæDç¨ZlœÏœÏ·ÏºÏ¿ÏÂÏËÏÖÏéÏôÏøÏûÏûÏÐÐÐh2<HŠáŠášá°á»áÀáÎáÛáäáõáJg[[?[S[d[k[|[ƒ[ƒ[™[™[§[¯[½[Å[Ó[Û[Û[þ[!\D\S\h\h\w\w\‘\±\pèóZ&Z&l&&�&ž&¤&¬&¶&¾&˜ç÷ׄׄý„……!…A…a…‚…‰…�…—…¡…¯…hƒ�··½Ü
-€ €a€o€s€ˆ‡V‡V•VšV�V¡V¥V®V¶V¾VÆVÆVÌVˆSa/a/a3aBaNaZafata€a‡aŒa™ašaža@ôùÂ/Ì/ß/ä/8'+b1l11„1p²½š-š-£-£-­-Ð-Ð-Õ-p§²J-J-T-o-y-~-‘-—-ˆÿVÿVWW=WhW�W¾WÝW÷WXXð½ØÚ-Ú-ß-í-ü-
..>.S.Y._.f.s.�.�.£.­.µ.¾.Ö.ß.ß.ô.H%+ü¾ü¾¿¿¿¿ ¿�¥Ô¤Â¤Â¼ÂÂÂÂÂÌÂÏÂÏÂÜÂçÂñÂûÂûÂÃ	ÃÃÃÃÃ(Ã4Ã:Ã?ÃEÃHÃJÃUÃ[ÃaÃjÃjÃrÃ{Ã�ÊÊÌÌÒÚÃ�íà xá
‡�‡�¯�¯�Í�å�ì�ø�žžžž6ž6žSž]žežlžtž~ž†žšž«ž¼žÑžØžÙžÚžäžêžòžóžöžŸ 7¢Ï¢ÏÈÏäÏîÏýÏÐÐÐÐÐÐÐ(Ð-Ð=ÐFÐGÐMÐPÐbÐ!€ª·ߥߥñ¥¦¦¦1¦>¦D¦G¦O¦"¨ï*ê*êFêYêeêeêqê‡ê�ê˜êžê£ê¥ê¾ê#PÈïúèúèéé+é6éFéXé\éjésé•é›é›é§é¯éºéÄéÌéÐéÐéÐéÓéÕéÙéÙéÙéÞéìéúéê
êêê%ê$È’ÈJçJç`çxç„ç”ç¦çªçªç­ç¶ç¹ç¹çÊçÊçÊçÑçßçâçççäç9èMèPèRèfèièkèsèƒèƒèŒè›è©è¹èÇèÐè×èÜèÜèÜèâèöè%H/©/©8©A©G©L©&pO©O©[©^©c©f©t©z©}©©‡©'°dO±O±S±_±g±s±}±…±�±©±©±»±ȱܱé±ñ±:²€²…²…²—²¤²¸²ŲʲÙ²³³"³(³-³-³?³L³`³m³r³�³°³·³ijʳ̳̳Ô³Ô³á³ö³´´´´:´G´W´\´f´t´´‰´”´”´ž´§´²´³´´Ç´é´ö´µµµ$µ(µ\µ(d‚_µ_µoµvµ„µ„µ…µ“µ•µ¡µ¤µ¤µ«µµµŵǵǵ̵̵εεεеܵߵ⵶)P‡©‡©�©š©¥©­©²©*€
ŸŸŸ"Ÿ"Ÿ?ŸbŸiŸxŸ‡ŸŒŸŽŸŽŸ+ Óä7¹7¹K¹^¹f¹�¹�¹°¹¼¹͹չ۹߹ñ¹,h ªo¥o¥s¥‚¥‰¥¥¥º¥¿¥Ù¥-˜r¢ú5ú566&6,6667686C6I6M6P6R6Y6`6j6v66“6”6¨6Å6µ6Ú6Ú67777$7;7;7G7O7Q7e7€7Œ7™7Ò7.¸Ùí\Ë\Ër˫˷ËÏËØËäËêËìËïËûËþËÌ/h_i$È$È4ÈPÈRÈ]È_È_ÈgÈ0˜iylÈlȆȌȑȭȳȹÈ×ÈÙÈæÈìÈïÈýÈ1`y‚ÉÉÉÉ"É/É8É=ÉGÉ2�‚‘LÉLÉbÉrÉrɂɆɈɈɔɗɚɤÉ3�ôbb&b+bDbPbYb[bgbjbmbwb4h›¥dÂdÂtÂvÂÂŒ”™¡Â5
M¼Å¼ÅÐÅÖÅÖÅñÅôÅÆÆÆ#Æ)ÆHÆMÆUÆUÆWÆdÆjÆjÆjÆoÆvÆyÆ|ƂƞƮƺƼÆÉÆÉÆÎÆÎÆÎÆôÆúÆüÆÇÇ Ç%Ç(Ç*Ç:Ç>ÇMÇSÇVÇXÇhÇlǀǃdžLjǘǛǧÇ6ˆ6D_™_™p™~™™€™†™œ™ ™¡™¤™¬™7@¯´UUUU*U8@´¹/U/U8UCUTU9H
r0|0�0”0:І� ¿3¿5¿H¿]¿]¿}¿¿¿Ÿ¿¡¿¡¿«¿­¿­¿·¿·¿½¿À¿À;@²0¼0Ï0Ô0<𔯋-‹-›-¢-ª-±-Ã-Ã-Ð-Ò-Ò-á-ã-ã-ð-ò-ò-ü-..
...4.4.8.{.=XI2ì2ì8ìDìTìeì}ìŠì›ì©ì½ìÍìÔìÔìçìùìíí%íCíUí]ígítíí�í í í³íÆíÑíÑíäíïíîî)îKî›î®îÀîõî÷îïï ï ï'ï;ïUïZïjïzïï‹ïÆï>@InÊïÊïÎïÎïßïÿïðð ð*ð,ð7ðBðTðfðoðxðšð¾ðÀðÇðÒðÝðèðóðñññ?Pœ£AAA*A9A=A@p»'»'¿'Ñ'å'å'ó'((	(Ap�Œццá†ý†‡‡‡‡&‡B�­¼ U U#U3UIUKUYU`UeUjUqU~U~U€UC°>Qº)º)À)Á)Â)Â)Ú)Ü)â)****%*.*/*2*6*D�DS/P/P3P@PMP\PkP€P”P£P¬P­PÏPÔPØPE€S`ßPßPãPñPòPóPQQQQF@RWBÉBÉQÉkÉqÉGXWrÉrÉ€É�ɕɩɼÉÓÉæÉýÉÊ'Ê>ÊUÊUÊmÊqÊwÊ~ʂʔʭʻÊÂÊÂÊÚÊÞÊäÊëÊïÊËË(Ë/Ë2Ë<ËH(Ôö´Ã´ÃÊÃéÃõÃÄÄ Ä'Ä,Ä8ÄIÄUÄ[Ä^ÄaÄdÄiÄkÄoÄ{ČĚĠģĦĩĩijĶÄÈÄIUr:5:5U5c5s55…5Ž5•5œ5¡5­5±5±5»5»5Â5Å5Ë5Ë5Õ5ã5ê5ê5ê5ø5J˜*�Ÿ�ŸžŸ¬Ÿ­Ÿ®Ÿ¹Ÿ»ŸßßàŸïŸøŸ   KèÀ¦¦‡¦�¦™¦¢¦®¦º¦¦˦ѦÙ¦ç¦ò¦ú¦§§.§<§H§V§p§p§p§u§z§ˆ§�§”§”§�§¤§©§µ§À§ɧɧÔ§Ö§æ§è§ê§÷§¨	¨¨¨¨#¨/¨:¨:¨V¨V¨V¨^¨^¨e¨l¨s¨z¨z¨�¨ˆ¨�¨–¨–¨�¨£¨¯¨¸¨ĨÒ¨ܨä¨ç¨í¨L@(M?ª?ªUªeªvªŒª“ª ª¤ª¬ª´ª¿ªʪ˪̪Úªܪéªêªðªôªôªýª««'«1«:«?«?«@«C«M«M`·ÀO¦O¦X¦a¦a¦t¦z¦¦Nè4ï¨ï¨õ¨©©©©©©'©+©OH39ÜcÜcåcëcñcöcP�$3|c|cŽcŽc›cžc¥c©c°c¸cÈcËcÕcQP†BËBËGËeËmËpË}ËR(Ÿáo›o››Ž›Ž›§›§›§›§›§›§›§›É›Þ›é›ú›œœœ0œ=œKœYœgœuœ‹œ§œ¶œ¸œ¿œÖœêœêœêœïœöœ����'�0�7�>�E�L�T�d�l�|��‡�Sˆ*8   * / 4 C Q i r ~ ª ´ Tˆ|ª­­=­@­K­\­r­y­†­Š­’­¡­¥­©­±­²­¼­¼­Ë­Ô­Õ­í­î­ø­®	®®$®&®3®9®;®=®F®L®d®p®q®v®‘®”®¦®Uˆt‚JJ.J/J0J>JEJSJZJaJhJiJqJVx�›¶J¶JÂJÃJÄJÒJÙJçJîJõJþJW€‚�vJvJ‚JƒJ„J‹J’J™J J§J¨J°JXàNg*=*=8=J=V=b=n=w=€=‰=’=›=¤=­=¶=¿=È=Ñ=Ú=ã=ã=å=k>Y�(·©·©Á©Õ©ã©î©÷©ªªªªª6ª<ªZpMXï™ï™ó™	šš#š=šAšEš[�M|O«O«i«}«�«ž«´«ΫÕ«â«æ«î«ö«¬¬¬¬9¬:¬H¬O¬V¬g¬p¬{¬|¬ЬŒ¬™¬ ¬£¬¥¬®¬´¬̬جÙ¬ó¬ö¬­\@QV:*:*>*j*l*]`O˜O˜X˜j˜˜ƒ˜‡˜‡˜Œ˜^¸ã÷÷¯÷¯°°°°°°%°/°:°T°V°[°^°^°f°_Hdjè¨è¨ö¨©©`8دد쯰ap¼Ç‡U‡U�U U­U­U´UÃUÊUÊUÏUb0VyŠ*Š*�*Ÿ* *¡*­*Î*à*â*+++ +6+N+O+V+W+X+d+o+~+€+‹+—+§+¨+¯+Â+cnŽññ ñ&ñ-ñ3ñIñnñƒñƒñˆñ�ñ§ñÀñÙñÞñâñäñïñúñúñþñd€(5ÚàÚàôàá
áá$á1á7á:á=áOáehmw+Ï+Ï5Ï@ÏKÏjπώÏf`Úã´¼´¼½¼Ç¼Í¼×¼å¼#½gˆ6D‚4‚4Œ4š4›4œ4¢4Á4Û4Ü4ß4å4h€“ ǤǤˤÚ¤á¤ÿ¤¥0¥A¥J¥O¥k¥iÈ}“ï£ï£ó£÷£÷£¤(¤7¤@¤I¤a¤s¤|¤ƒ¤¦¤¯¤´¤À¤¤j@`eê!ê!î!÷!ù!k(aƒÃ	Ã	Ç	Ë	×	à	ñ	
-
-
-
-/
->
-|
-‹
-—
-¢
-¬
-Ä
-ë
-õ
-ü
-000BII[aelHÃÉÓÓíþm@žÃKKOXhwƒœœÉÑÖÖãù
-$Q]px}}†††˜ŸŸ±¶Ònícc}Œ¢´ÉÏÔÚÝÝë÷úýý	#99Oo@´Ù„Ê„ÊšÊ Ê Ê¯Ê¿ÊÆÊÏÊÏÊÙÊâÊâÊèÊìÊïÊùÊËËËËË/Ë4Ë7Ë:Ë=Ë@ËIËIËIËIËIËIËWËp e†ú!ú!""""")"?"N"g"ƒ"’"«"Ç"Ñ"ß"í"û"	##!#7#M#c#d#i#qp±¼×·×·ï·¸¸"¸(¸.¸>¸rPý¯º¯ºźغãºéºñºsP÷º÷º
» »+»1»?»th¼Æ?¸?¸W¸j¸~¸Џ�¸–¸�¸­¸uHRŽRŽdŽžŽ´ŽÂŽv˜K[Ô¿Ô¿Ù¿ã¿ã¿ÀÀÀÀÀ'À+À+À+ÀRÀw@�•z,z,~,’,œ,x@•š¢,¢,¦,¹,Ã,yÐy�Ò+Ò+×+×+,,,,, ,",0,_,f,o,p,w,w,z,zP¥¬÷T÷TUUUU{؈ ×S×SÛSéSúST T-TJTOTZTdTqTT‘TšT¦T«T·TÃTÛT|@ ¥ßTßTãTñTóT
\ No newline at end of file
+Û
+ì
+ý
+ 70HAYRjc{tŒ…�–®§¿¸ÐÉáÚòëü
%6/@œV€¤ÑÀºÀºÞºèºëºûº»»#»&»)»,»,»i»l»o»q»„»‡»Š»’»˜»�»�»£»£»¯»±»±»»»»»»»»»Á»Ä»É»Ì»Ô»æ»W°‘¤`º`ºnºwºƒº‰ºŒº‘º—ºšºŸºŸº¬º°º³º³º¹ºXhßéò`ò`aa,a@aJaMa]aYpÏÚŠ`Š`œ`¥`®`¹`Â`Å`Ï`ZP»Â¿�¿�È�Ù�Þ�[ØÌärÇrÇvÇǧÇÍÇØÇçÇêÇöÇûÇÈÈÈ\`7@BÊBÊFÊKÊeÊ~ʃʅÊ]h­·úÍúÍþÍÎÎÎÎBÎ|Î^P³º‚ƂƆƑƖƠƢÆ_�­ÍÍ Í+Í+ÍAÍLÍLÍZÍZÍuÍ‹Í•Í›Í¬ÍÆÍÑÍÜÍåÍïÍôÍôÍ÷Í` “¤ºÅºÅÉÅÒÅÜÅÞÅíÅíÅîÅïÅöÅþÅÆ*Æ+Æ1Æah¤®2Æ2Æ<Æ=Æ>ÆEÆMÆ]Æ^ÆcÆb@®³jÆjÆnÆyÆ{ÆcÈäú
+È
+ÈÈ"È%È&È&È+È6È9ÈLÈUÈZÈiÈpÈÈÈÈÈ�È�Èd˜@�ŠÊŠÊ–ʜʫʸʽʽʾʿÊÉÊÐÊÕÊßÊóÊËËË5ËeË˕ˠËÀËÂËÍË×ËâËìË÷ËÌÌÌ!Ì!Ì-Ì-Ì;ÌOÌhÌ�̴̸̛̣̪̽ÌÂÌÌÌàÌêÌìÌñÌóÌôÌûÌÍe¨ºÌ¢Æ¢Æ«ÆÄÆÅÆÆÆáÆþÆþÆÇÇÇ0ÇKÇhÇiÇiÇnÇfX%	-	êêü #+gà+äà�à�é�é�ý�žž%žHžHžlž^ž�ž�ž¿ž£žàžàžöž Ÿ ŸIŸ5ŸjŸjŸ€ŸªŸªŸÕŸÀŸöŸöŸ < < m R Ž Ž ¤ Î Î ù ä ¡¡0¡`¡`¡‘¡v¡²¡²¡È¡ù¡ù¡¢2¢2¢V¢H¢w¢w¢©¢�¢Ê¢Ê¢à¢	£	£3£ £T£T£j£”£”£¿£ª£à£à£ö£&¤&¤W¤<¤x¤x¤Ž¤¸¤¸¤ã¤Î¤¥¥¥J¥J¥{¥`¥œ¥œ¥²¥ã¥ã¥ù¥"¦"¦8¦i¦i¦¦¨¦¨¦¾¦ï¦ï¦§.§.§D§e§e§{§œ§œ§²§Õ§Õ§ë§¨¨$¨M¨M¨c¨Œ¨Œ¨¢¨Ó¨Ó¨é¨©©0©Y©Y©o©˜©˜©®©ß©ß©õ©&ª&ª<ª_ª_ªuª�ª�ª«ª«ªÞªÞª««,«,«_«_«’«’«¹«¹«ã«ã«
¬
¬
¬#¬O¬Š²hÐk¢ÈÏÈÏÝÏíÏôÏüÏÐÐ Ð1Ð1Ð6Ð?ÐHÐQÐZÐ\ÐeÐnÐpÐpÐyЂЄЄÐ�ЖЛЛФЭвввлÐÄÐÉÐÉÐØÐáÐæÐïÐÑ)Ñ<Ñ<ÑJÑNÑBÔiðÐ+�”�”™”™”­”¿”¿”Õ”ø”ø”••B•l•l•‚•‚•¯•Ò•Ò•è•è•–F–F–\–\–‰–¬–¬–º–ç–ç–õ–)—)—7—`—`—n—ž—ž—¬—ã—ã—ñ—,˜,˜:˜˜˜�˜Í˜Í˜Û˜™™$™f™f™t™º™º™È™šš&šqšqššÅšÅšÛš÷š÷š
›&›&›<›U›U›U›k›�›�›ß�j`¢HÔHÔZÔjÔqÔyԀԀԜԠԠÔÀÔÀÔÊÔÍÔÏÔÏÔÙÔÜÔÞÔÞÔèÔëÔíÔíÔ÷ÔúÔüÔüÔÕ	ÕÕÕÕÕ Õ Õ*Õ-Õ2Õ2Õ2Õ5Õ8Õ8ÕRÕbÕbÕvÕ†Õ†ÕˆÕˆÕ‹Õ•ÕšÕšÕšÕ�Õ Õ Õ§Õ¶ÕÃÕÅÕÅÕÈÕÒÕ×Õ×Õ×ÕÚÕÝÕßÕßÕãÕæÕæÕæÕíÕüÕ
+ÖÖÖÖÖÖÖ(Ö(Ö9ÖCÖFÖKÖUÖUÖdÖhÖ.Ùk¨5GÀÆÀÆÔÆàÆçÆíÆöÆüÆÿÆÿÆÇ Ç%Ç(Ç4Çlˆ*’å’åžå¨åÑåÚåÜåñåùåÿå
æm€¸Åœœª°¼ÈÌàõýnp•• •6•E•`•d•j•l•l•r•oXø?ø?ü?ü?@@@@p§Ægg(g3g8gAgTglgtg|g‰g“gšg¡g¥g©g´gºgÃgÇgÐgÖgÙgçgég÷gq Æ×úgúghhhh$h3h9h@hBhEhPhVhrøh„jejepe}eŽe˜eŸe¦e¯e·eÏeÖeÝeçeïeöeýeffffff fsKhZdZdfdmd€dŒd³d½dÇdÏd×dßdëdýdee)e5e>eLeReXe[ebejet ×èZhZhhhkhvh{hˆh“h¢h¸hÂhËhÔh×háhupèóâhâhðh÷hii	i i i)i/iv¨5Gï\ï\û\ü\ý\]
+]]]]#]&]1]2]:]wpA¬çWçWXXXXXXX X&X&X-X-X3X:X:XEXGXOXUXZXZXfXpXtXyXyXyXyX€X€X‹XŽX�X•X•X X¢XªXªX»X½XÃXÈXÈXàXëXïXúXYYY"Y$Y$Y'Y1Y5YBYOYSYYY\YcYeYeYuY{Y„Y‹Y�Y�Y�Y�Y�Y–YšYžY¡Y¤Y¨Y­Y·YÊYÐYÙYãYäYçYùYxøàü[[)[2[>[A[N[S[][i[o[y[|[}[‡[‰[’[œ[§[®[²[º[»[»[É[yXü$Ï[Ï[å[ý[\\$\$\*\*\-\4\?\C\H\N\X\^\a\c\f\i\i\n\}\€\’\z $5—\—\¥\ª\«\¬\¬\»\½\Ç\Õ\ã\ä\ä\ê\{p×"çUçUýUÿUVVVVVV'V4VZCZLZbZhZqZsZvZ†Z~èÆà‡Z‡ZŸZ¢Z³Z¶Z¹ZÆZËZÔZêZðZùZûZþZ[p„�"f"f/f1f6f?f`fifnfvf€€Ê×�U�U¢U«U´U´UÃUÑU×UÚUäU�X¹Á'U'U0U0U@UEUEUJU‚`ÁÊOUOUXUXUuUuU‡U‡UŒUƒØ�§zfzf„f†f“f f§f®f®f¶fºfÑfãfòfúfggg
g„X
+Ø?Ø?Ü?Ü?ð?ô?ô?ø?…8Y}¸¸ ¸"¸0¸<¸S¸d¸m¸|¸�¸“¸“¸£¸¸¸¸¸ϸѸѸè¸ê¸ê¸ô¸ö¸ö¸¹¹¹¹¹¹‹¹†Ø¸Ü Ü ó ó ø  ! ( > H W ^ ^ a q … … … ”   ´ Ê æ !#!?!C!H!H!`!b!l!€!–!–! !¯!½!Ä!Ð!Ö!à!ô!þ!""?"N"R"X"t"‰"¢"¢"®"Â"Ö"Ü"ç"ñ"û"##-#0#0#D#N#N#Z#Z#l#M$‡Ðǃ̓ÕƒÚƒêƒñƒ„„%„-„@„J„a„f„m„{„‚„œ„¤„ª„ˆp%ÇzÇzÌzÖzÞzÞzëzízúzúzýz‰PÀç_�_�i�s�{�ƒ���¢�¬�±�Ã�Ø�î�‚‚‚-‚4‚4‚K‚X‚X‚o‚~‚~‚…‚Œ‚“‚�‚¥‚Š€
wzwzƒz„zŠz�z—z«z²z´z¹zÄz‹x
ßyßyãyzz"z3z?zYzqzszuzŒ%ƒÿzÿz{{{{{{{+{<{D{K{K{]{]{l{q{}{‰{“{¥{´{¹{½{Ä{Ñ{Õ{ß{ã{å{ù{|
|||"|,|3|=|D|I|S|Z|_|i|p|z|„|‹|•|™|¢|ª|³|Ð|×|ä|å|é|}}-}8}E}E}L}n}{}�}ƒ}�p•À§~§~±~»~»~		WW¥¥Ãáÿ€€T€T€a€c€€€€€¾€¾€Ë€Í€ê€ê€�!�&�0�K�R�T�Y�_�ŽX�•G~G~Q~{~ƒ~š~œ~¢~�`
+·®·®Ñ®ã®í®�ˆçõJ,J,U,Z,[,\,c,u,v,Š,�,“,‘x3_@IXdp�§·ÌÌíïï355>>FFRfpxxŠ‘‘£°¼Àü’ˆ_�üü(1@L\{ƒ›«ÀÀäææ
+022;;CCOcmuu‡ŽŽ ­¹½ù“H¾¾	¾¾¾¾#¾”ÐTkØÎØÎÏÏÏ&Ï0Ï3Ï8Ï@ÏTÏdÏqÏsÏ�ÏŽÏžÏ²Ï´Ï´ÏÆÏ•P¦­Z>Z>_>i>n>t>w>–Ð)¾¾¾¾¾!¾&¾2¾9¾?¾[¾‘¾š¾£¾¤¾¯¾—°¿Ò$»$»@»A»B»M»R»^»x»»Œ»™» »©»ª»­»¹»˜°Òå¼»¼»Ø»Ù»Ú»å»ê»ö»¼¼$¼/¼6¼?¼@¼C¼O¼™°¬¿ŒºŒº¨º©ºªºµºººƺàºçºôº»»»»»!»š�ôä¼ä¼½½½½½"½<½C½J½W½`½a½m½›�t½t½”½•½–½¡½¦½²½̽Ó½Ú½ç½ð½ñ½ý½œ�åôT¼T¼t¼u¼v¼�¼†¼’¼¬¼³¼º¼ǼмѼݼ�à:SªÝªÝÀÝÉÝäÝøÝÞÞ#Þ#Þ+ÞGÞGÞUÞyÞ‰Þ�Þ˜Þ²Þ²ÞÀÞž¸SgÂÞÂÞÔÞÛÞêÞñÞúÞúÞßß#ß7ß@ßFßQßQßoߟ˜
+:rÜrÜŒÜ�ܒܜܢܮܱܸÜÁÜÅÜÎÜÑÜØÜâÜìÜóÜõÜÝÝÝÝ#Ý2Ý>ÝAÝDÝMÝRÝiÝuÝxÝ{Ý{Ý{Ý{Ý݇Ý�ݒݤݠ;¤$¤$°$Æ$Ú$ä$ì$ó$÷$ÿ$%%,%2%:%F%L%L%S%W%W%Y%ž%¡X	*%*%.%2%4%¢pù®®'®2®D®<®W®h®h®h®t®£h$@@!@!@6@6@C@X@X@]@¤HHN ¿ ¿¤¿®¿¹¿Ê¿¥X	%	²²ÂÔÚàæ¦X4	<	rr‚”›¬²»§X<	D	ÂÂÒäëü		¨@6;Š.Š.Ž.¥.§.©XX`ÂÂ%Â%Â1Â7Â<ÂAªHRXìÁìÁõÁ«€|û|û…û‹û”û©û³û¸ûÄûÊûÌûÌûÑû¬x€Œäþäþñþÿÿ%ÿ9ÿFÿMÿPÿXÿ­€Œ™\ÿ\ÿgÿ~ÿŒÿ›ÿ›ÿ¯ÿÄÿÐÿßÿáÿçÿ®0¶Ùd
+d
+p
+€
+”
+¡
+¥
+®
+¸
+È
+Õ
+ê
+ó
+ó
+/>OUdu{{›¬¶»ƒ¯€,9<ü<üKüQüfüpüxü€ü…ü‹ü�ü�ü“ü°pu€œþœþ¢þªþ¾þÓþÛþÞþàþäþ±XÇÏ""""+"0"?"C"E"J"²@x½x½�½˜½ ½³H,2Ð¾Ð¾Ù¾à¾æ¾ë¾´H28ð¾ð¾ù¾¿¿¿µ€ÉÖt,t,~,…,Š, ,¢,«,½,Ã,Ã,ë,¶P%P¾P¾Y¾^¾h¾~¾~¾Ž¾·àoˆ·O·O»OÏOðOP PCPUPyP~P–PÃPÌPÎPÞPöP#Q,Q,Q>Q>Q´Q¸è¯É,+,+C+M+W+W+n+„+‰+”+™+™+³+È+Ê+Ê+ä+ù+ù+,,m,¹X
³³³³(³=³F³º°´Ç‚!‚!’!œ!£!³!Ì!Ì!Ý!ì!ù!"""""""»àÏèJ"J"Z"`"j"q"…"ž"ž"­"Ã"Ì"Ú"á"á"ä"î"###### #¼�¢ä¢ä¸äËäËäääùäÿäåå
åå7å½P%,�¾�¾™¾ž¾¨¾¾¾¾¾Ï¾¾@‘ö§’§’É’Ü’æ’æ’é’í’“““"“$“(“4“4“C“H“L“h“q“�“�“’“•“—“¢“¢“³“¶“¹“»“Á“Ö“Ù“ã“è“ù“””””.”3”D”M”O”R”\”e”o”o”‚”‡”Š”¥”®”ÔȔҔ۔å”è”ê”õ”õ”
+•
••••1•4•>•E•E•W•¿x3_��!�!�$�(�<�A�T�^�`�d�p�p��„�ˆ�¥�ª�º�º�Ë�Î�Ð�Û�Û�ë�î�ñ�ó�ù�‘‘‘*‘À¨_‘/‘/‘Q‘U‘U‘X‘d‘€‘…‘•‘ž‘ ‘£‘­‘¶‘À‘À‘ӑؑۑõ‘þ‘’’"’+’5’8’:’E’E’\’_’b’d’j’…’ˆ’’’¤’Á¨3ïŽïŽ�����,�1�B�L�N�R�^�^�m�r�v�‘�–�¦�¦�·�º�¼�Ç�Ò�Õ�Ø�Ú�é�ì�ö�ö��ÂpALìpøpûpýpqqq
qqÃx5A„p„p˜p§p®p³p¾pÓpÖpÛpçpÄx)5qCqKqÆX„Œtrtr}r‚rŠr�r�r•rÇ�Œ›œrœr¬r³rÅrÈrÈrÏrÏrérìrñrórûrÈ`W`LqLqVqeqoqqƒq†qŒqÉ8`„ŒqŒq£qªqµq»q¾q¾qÅqËqÜqáqäqéqòqòqòqöqrrr,r7rIrMrOrarerererorÊX’š´Ñ´ÑÐÑÔÑÚÑôÑøÑÒËPš¡ÒÒ Ò$Ò*ÒDÒTÒÌ9V<<@DPYjy…ŽÌÛçî:LSnnn€‡‡™Ÿ£Íøv’´Ð´ÐÐÐàÐëÐðÐòÐøÐ
+ÑÑ,Ñ=ÑMÑOÑOÑOÑUÑnыћÑ�Ñ�ѦѦѲÑÎ@%*¤¤¾ÏÙÏHÿ%ä
ä
è
ñ
555b‡ŒŒ³»ÃÕ!).@BBKKK]ddv{ŸÐh¤®(C(C,CZCxCŠC›C¥CÑ`ÖßxExE|EªEØEêEûEFÒH´ºèCèCìCD%D'DÓHÀÆhDhDlD—D¤D¦DÔXÎÖEEEBEpEtEvEÕH®´¨C¨C¬C×CåCçCÖHºÀ(D(D,DWDcDeD×XÆÎ¨D¨D¬DÚDEEEØH‚ˆÈAÈAÌA÷AÿABÙHŽ”@B@BDBoBvBxBÚXœ¤ÐBÐBÔBC C$C&CÛH|‚ˆAˆAŒA·A¿AÁAÜHˆŽBBB7B=B?BÝX”œxBxB|BªBÈBÌBÎBÞPßæFFFF#FBFGFß`"š-¤-¤-®-Ø-Ý-à˜êúÊ6Ê6Ü6Ý6Þ6è677"7#767<7Q7á 
ú7ú7888898D8Q8R8e8k8w8â /z8z8’8“8”8ž8¹8Â8Ï8Ð8ã8é8õ8ã@x�Ê;Ê;Ø;ß;é;÷;÷;ÿ;<;<=<_<v<v<˜<¾<¾<à<ê<ô<==2=;=;=T=^=w=…=‡=Ž=•=Î=ä ÙêB6B6N6O6P6Z6u6‰6–6—6ª6°6Å6å ÈÙ²5²5Ä5Å5Æ5Ð5ë5ý5
+666$6<6æ°ú
R7R7l77€7�7‹7¦7·7Ä7Å7Ø7ß7å7ô7ç`¢¢¸ÌÚàêòü##+EJJR\v{{�ˆˆž¦­´»ÆÍãóõ	+AO“{¬Ýëõ!*tZ�¾åóýþÿ#8AXfwz�›­è ·È*5*5<5=5>5H5c5u5‚5ƒ5–5œ5±5é�Ž�ÒëÒë×ëÜëÝëÝëìëôëùëÿëìììì ìê°]�ÄRÄRÈRÐRÞRÞRîRýRSSS,S;SLShSpS|S„SŒSŒS—S™S«S·SÉSÝSÿST T;TXTZTlTuTuT‡T‡T•TœTœT®T®T¼T¼TÁTÅTë (ôOôOPPP)PP6PAPAPRP\P\P^PˆPìˆ�þÌTÌTÐTñTøTUU U/UCU[UqUqU~U‘U²U²UÁUÎU×U×UðUðUV1V:V{V€VŸVáV³VñVWFWOWWWdWvWˆW¨W½WÐWêWÿWX%X7XOLO^O`OrO~O€O‹OŸOŸOÀOÀOËOÒOÝOÞOâOôOð�7fÜ]Ü]^
^^^)^2^2^D^D^D^T^g^v^{^�^ž^£^ª^¸^Ê^Í^Ð^Ô^å^__ _%_-_-_>_O_O_W_____b_–_ñàþ74[4[8[X[g[q[z[‹[£[¶[¶[Ã[Ö[ô[ý[ý[
+\\ \ \-\7\\\o\Ž\¡\¨\²\Ë\Ò\]Þ\H]]Y]^]p]t]|]|]Š]•]•]£]ª]µ]µ]Ã]Ã]È]Ù]òðf¡œ_œ_ _«_³_³_×_æ_ï_``1`1`>`Q`o`x`x`…`�`›` `À`Å`Å`Ò`Ü`ï`ü`a$aXacaka†a‘a¦aÄaÐaÙa÷a b:bEbMbjbububzbˆb“bšb¥bªb±bó`h±ôGôGøGHH'H0H>HLHYHaHwH„HšH¤HºHÄHÚHäHIIII*I?IPIlIzI“I¢I¢IµIÃIØIïIøIJ#J:JRJRJ_JlJwJŒJ¥J·J·J¼JÇJÒJßJôJKå>å>åJåNåTåTå\ålåuåuå~å‰å—å™å«å¶åÇåÉåÉåÉåÉåÒåêåõåõåææ!æBæDæLæfæiæræwæ˜æ¢æ¢æ½æÈæÓæïæççç'ç'ç0ç4çGççŠçŠçŠçžç§ç«ç¾çöçöçøçøçèè#è#è,è0èCè{èŒè’è¥è­èºè¿è¿èÈèÌèßèé(é1é6é6é@éDéDéYéqé�é…é›é³é³é³éÝéçéçéêêêê#ê*ê5ê9ê?ê?êDêwê‹ê‹ê¥ê¸êÐêàêëë(ë4ë8ëRëdëpëtëtëtëtëxë}ë}ë‡ë‹ë‹ë ë¸ëÈëÌëâëúëúë$ì.ìPìUìUìUì_ìcìcìxì�ì”ì¤ì¨ì¾ì¾ìÖìÝìÝìíí6í;í;í�í™í™íÇíÓíÓí×íÛíîíöíîîîî î îFîMîMîgîyî�î†î†îœîªîªîÎîïïïAïCïmïoï‡ï’ïªï±ï±ïÌïÕïÕïþïððð4ð4ð4ð9ð>ðqð…ð…ðŸð²ð·ðÏðøðñññ&ñ&ñ&ñ&ñ-ñCñVñ`ñpñ–ñ¦ñÀñÍñÑñÕñïñ	òòòòòòò"ò'ò'ò'ò<òTò_òoòoò‹òŸò¢ò´òÅòËòÞòæòïòôòôòôòó$ó'ó9óRóWóWóWóló„ó�óŸóŸó»óÏóÒóäóõóûóôô ô$ô$ô$ô@ôTôWôiô‚ô‡ô‡ô‡ô‡ôœô´ô¿ôÏôÏôôôõõõ/õ7õ@õEõEõEõjõ{õ”õ™õ™õ™õ™õ®õÆõÑõáõáõöö)ö/öBöJöSöXöXöXö}ö�ö¨ö­ö­ö¸ö¸öÊöÊöÚöáöSüþpg’rßrߎߑߚ߮߸ßÃßÅßÙßÙßçßðßôßôßýßàà(à(àMàfàmàoàoà“à«à«à­à­à­àÇàÜàÜà$áÿ¨BT`Î`Î{Î~΃ΆÎ�ΚέθμοοÎÅÎÈÎÖÎh2<òjòjkkk$k>kHkÐÞõèÃèÃúÃüÃÄÄ Ä!Ä*Ä,Ä,Ä/ÄKċĘĢIJļÄÇÄÊÄØÄ`		ŠŠž¬²pmxÿŠÿŠ‹$‹(‹;‹D‹H‹J‹À†›¿`¿`É`Ö`Ö`à`à`ó`û`û`aaa#a#a'a'a1a6a6aHjÛjÛzÛ�Û›Û Û®Û»ÛÄÛÕÛJg÷X÷X Y3YDYKY\YcYcYyYyY‡Y�Y�Y¥Y³Y»Y»YÞYZ$Z3ZHZHZWZWZqZ‘Zpèó"#"#4#G#X#f#l#t#~#†#˜ç÷§‚§‚Í‚ׂç‚ñ‚ƒ1ƒRƒYƒ`ƒgƒqƒƒhƒ�‡}‡}�}¬}Ú}ð}1~?~C~ˆgTgTuTzT}T�T…TŽT–TžT¦T¦T¬TˆSa___"_._:_F_T_`_g_l_y_z_~_@ùþ²,¼,Ï,Ô,8&*
+..'.,.p·ÂŠ*Š*“*“*�*À*À*Å*p¬·:*:*D*_*i*n*�*‡*ˆßTßTäTøTUHU}UžU½U×UáUäUðÂÝÊ*Ê*Ï*Ý*ì*ý*+.+C+I+O+V+c+++“+�+¥+®+Æ+Ï+Ï+ä+H(¾(¾1¾7¾D¾F¾K¾��¼ÐÁÐÁèÁîÁîÁøÁûÁûÁÂÂÂ#Â#Â/Â1Â7Â>ÂAÂDÂLÂXÂ^ÂcÂiÂlÂnÂyÂ…ŽŽ–Ÿ¥®®®®´¼¿ÂÏ xá
_›_›‡›‡›¦›¾›Å›Ñ›Ý›ä›ò›ò›œœ,œ6œ>œEœMœWœ_œsœ„œ•œªœ±œ²œ³œ½œÜËœÌœÏœìœ 7‚ɂɨÉÄÉÎÉÝÉâÉóÉóÉ÷ÉûÉüÉýÉÊ
ÊÊ&Ê'Ê-Ê0ÊBÊ!€ª··£·£É£ë£ñ£ö£	¤¤¤ ¤'¤"¨ï
+ä
+ä&ä9äEäEäQägämäxä~äƒä…äžä#PÈïÚâÚâðâóâãã&ã8ã<ãJãSãuã{ã{ã‡ã�ãšã¤ã¬ã°ã°ã°ã³ãµã¹ã¹ã¹ã¾ãÌãÚãèãíãïãïãä$È’È*á*á@áXádátá†áŠáŠá�á–á™á™áªáªáªá±á¿áÂáÇáÄáâ-â0â2âFâIâKâSâcâcâlâ{â‰â™â§â°â·â¼â¼â¼âÂâÖâ%H§§§§ §$§&p'§'§3§6§;§>§L§R§U§W§_§'°fï®ï®ó®ÿ®¯¯¯%¯/¯I¯I¯[¯h¯|¯‰¯‘¯Ú¯ °%°%°7°D°X°e°j°y°®°µ°°ȰͰͰß°ì°±
±±!±U±\±i±o±q±q±y±y±†±›±¥±¦±¸±º±ß±ì±ü±²²²$².²9²9²C²L²W²X²g²l²޲›²¨²­²­²ɲͲ³(f„³³³³,³,³-³;³=³I³L³L³S³j³j³m³o³o³t³t³v³v³v³x³„³‡³г®³)P_§_§h§r§}§…§Ч*€
ïœïœóœúœúœ�:�A�P�_�d�f�f�+ ÈÙw¶w¶‹¶ž¶¦¶жݶð¶ü¶
··· ·1·,h ªG£G£K£Z£a£}£’£—£±£-˜r¢¢2¢2¶2À2Î2Ô2Þ2ß2à2ë2ñ2õ2ø2ú23333'3;3<3P3m3]3‚3‚3¶3¸3Å3Å3Ì3ã3ã3ï3÷3ù34.4:4G4€4.¸ÁÕ`Ê`ÊvʯʻÊÓÊÜÊèÊîÊðÊóÊÿÊËË/0yœ¸È¸ÈÒÈÕÈíÈíÈïÈïÈÉÉÉ É7É:É:ÉEÉIÉIÉIÉIÉUÉjÉmÉmÉxÉ|É|É|ɅɈɖÉ0hGQ8Ç8ÇHÇdÇfÇqÇsÇsÇ{Ç1˜Qa€Ç€ÇšÇ Ç¥ÇÁÇÇÇÍÇëÇíÇúÇÈÈÈ2`ajÈÈ*È,È6ÈCÈLÈQÈ[È3�jy`È`ÈvȆȆȖȚȜȜȨȫȮȸÈ4�ôÚaÚaìaña
+bb b!b-b0b3b=b5hƒ��Á�Á Á¢Á«Á«Á¸ÁÀÁÅÁÍÁ6õ5ØÄØÄìÄòÄòÄ
ÅÅ!Å1Å8Å?ÅEÅdÅiÅqÅqÅsÅ€Å†Å†Å†Å‹Å’Å•Å˜ÅžÅºÅÆÅÒÅÔÅÝÅÝÅâÅâÅâÅÆÆÆ Æ$Æ3Æ9Æ<Æ>ÆNÆRÆaÆgÆjÆlÆ|ƀƔƗƚƜƬƯƻÆ7ˆ6D7—7—H—V—W—X—^—t—x—y—|—„—8@¯´×T×TàTëTúT9@´¹ÿTÿTUU$U:H-$-7-<-;Ð}”‘¹¤¹¦¹¹¹ιιî¹ð¹ð¹ºººººº(º(º.º1º†º<@Z-d-w-|-=ð”¯<*<*L*S*[*b*t*t*�*ƒ*ƒ*’*”*”*¡*£*£*­*µ*µ*¾*È*È*å*å*é*,+>XIæææ$æ4æEæ]æjæ{æ‰æ�æ­æ´æ´æÇæÙæáæõæç#ç5ç=çGçTç_çoç€ç€ç“ç¦ç±ç±çÄçÏçäçøç	è+è{èŽè èÕè×èèèóèÿèÿèéé5é:éJéZé_éké¦é?@Inªéªé®é®é¿é×éÞéèéóéþéêêê(ê:êCêLênê’ê”ê›ê¦ê±ê¼êÇêèêèêêê@P­´z>z>~>’>¡>¥>ApT$T$X$j$~$~$Œ$�$�$¢$Bpt‡†‡†—†³†»†Ë†Ò†Ô†Ü†C�­¼ÿRÿRSS)S+S9S@SESJSQS^S^S`SD°>Q‚&‚&ˆ&‰&Š&Š&Ÿ&¡&§&Å&É&Ö&Ö&ê&ó&ô&÷&û&E�DSNNNN%N4NCNXNlN{N„N…N§N¬N°NF€S`·N·N»NÉNÊNËNÝNÞNçNéNG@RW"Ã"Ã1ÃKÃQÃHXWRÃRÃ`ÃoÃuÃ‰ÃœÃ³ÃÆÃÝÃðÃÄÄ5Ä5ÄMÄQÄWÄ^ÄbÄtÄ�ěĢĢĺľÄÄÄËÄÏÄáÄúÄÅÅÅÅI(¼ÞÐÂÐÂæÂÃÃ$Ã*Ã;ÃCÃHÃTÃeÃqÃwÃzÃ}ÀÅÇË×èöüÿÃÂÃÅÃÅÃÏÃÒÃäÃJUrâ1â1ý122'2-262=2D2I2U2Y2Y2c2c2j2m2s2s2}2‹2’2’2’2 2K˜*g�g�v�„�…�†�‘�“�›�›�¸�Ç�Ð�Ù�Ú�à�LèÀW¤W¤_¤h¤q¤z¤†¤’¤š¤£¤©¤±¤¿¤ʤÒ¤Þ¤ñ¤¥¥ ¥.¥H¥H¥H¥M¥R¥`¥g¥l¥l¥u¥|¥�¥�¥˜¥¡¥¡¥¬¥®¥¾¥À¥Â¥Ï¥Ü¥á¥ë¥ë¥ô¥û¥¦¦¦.¦.¦.¦6¦6¦=¦D¦K¦R¦R¦Y¦`¦g¦n¦n¦u¦{¦‡¦�¦œ¦ª¦´¦¼¦¿¦ŦM@'L×§×§í§ý§¨$¨+¨8¨<¨D¨L¨W¨b¨c¨d¨r¨t¨�¨‚¨ˆ¨Œ¨Œ¨•¨›¨³¨¿¨ɨÒ¨ררبÛ¨å¨N`·À'¤'¤0¤9¤9¤L¤R¤W¤Oè4ǦǦͦܦܦã¦é¦ì¦ñ¦ÿ¦§PH39¢c¢c«c±c·c¼cQ�$3BcBcTcTcacdckcocvc~cŽc‘c›cRP†"Å"Å'ÅEÅMÅPÅ]ÅS(ŸáG™G™W™f™f™™™™™™™™¡™¶™Á™Ò™ì™ì™ì™šš#š1š?šMšcššŽš�š—š®ššššÇšΚØšßšßšðšÿš››››$›,›<›D›T›W›_›Tˆ*8ç�ç�ñ�žžžž)žAžJžVž‚žŒžUˆ~¬·ª·ªݪàªëªüª««&«*«2«A«E«I«Q«R«\«\«k«t«u«�«Ž«˜«¢«©«¶«Ä«Æ«Ó«Ù«Û«Ý«æ«ì«¬¬¬¬2¬5¬G¬Vˆt‚îIîIþIÿIJJJ#J*J1J8J9JAJWx�›†J†J’J“J”J¢J©J·J¾JÅJÎJX€‚�FJFJRJSJTJ[JbJiJpJwJxJ€JYà_x‚:‚:�:¢:®:º:Æ:Ï:Ø:á:ê:ó:ü:;;; ;);2;;;;;=;Ã;Zˆ'�§�§˜§¦§§§¨§¨§®§¼§¼§˧̧ѧ[pMXÇ—Ç—Ë—á—ì—û—˜˜˜\¨L~ç¨ç¨©©%©6©L©f©m©z©~©†©Ž©™©š©¡©°©°©»©ß©à©î©õ©ü©
ªªªª"ª0ª2ª?ªFªIªKªTªZªrª~ªª™ªœª·ª]@QV'''2'4'^`'–'–0–B–W–[–_–_–d–_¸åù—­—­£­±­¼­½­¾­¾­Å­Ï­å­ô­ö­û­þ­þ­®`Hhná£á£ï£ú£¤a8±ª±ªŪðªbp¼ÇgSgSpS€S�S�S”S£SªSªS¯Sc0VyR'R'W'g'h'i'u'–'¨'ª'È'×'×'è'þ'((( ( (,(7(F(H(S(_(o(p(w(Š(dnŽêêêêðêöêýêëë>ëSëSëXë_ëwë�ë©ë®ë²ë´ë¿ëÊëÊëÎëe€(5ºÚºÚÔÚàÚíÚøÚÛÛÛÛÛ/Ûfhmw„̙̤̄̎ÌÃÌÙÌçÌgPÑØè»è»ñ»¼¼O¼hˆ6D*1*141B1C1D1J1i1ƒ1„1‡1�1i€“ Ÿ¢Ÿ¢£¢²¢¹¢×¢ó¢££"£'£C£jÈ}“ǡǡˡϡϡޡ¢¢¢!¢9¢K¢T¢[¢~¢‡¢Œ¢˜¢š¢k@`e²²¶¿ÁlVt¤¤¨¬¸ÁÒáíöý ]lx¦¸¿ÚÚÚìóómH²¸„„ž¯¹n@�²üü	(4MMz‚‡‡”ª³»ÃÕ!)..777IPPbgƒoæ||–¥»Íâèíóöö"'05<RRhp@œÁ˜É˜É®É´É´ÉÃÉÏÉÖÉÜÉÜÉæÉïÉïÉõÉùÉüÉÊÊÊ Ê)Ê)Ê4Ê9Ê<Ê?ÊBÊEÊLÊLÊLÊLÊLÊLÊZÊq e†ÂÂËÙÙÚÛñ  / K Z s � ™ § µ à Ñ Ó é ÿ  + , 1 rp³¾ŸµŸµ·µʵÞµêµðµöµ¶sPöý'¸'¸=¸P¸[¸a¸i¸tPýo¸o¸…¸˜¸£¸©¸·¸uh¾È¶¶ ¶2¶F¶R¶X¶^¶e¶u¶vHŽŽŽLŽbŽpŽw˜8H¿¿¿%¿%¿C¿I¿Y¿_¿e¿u¿w¿w¿w¿ž¿xH�–B)B)F)Z)d)y`–Ÿj)j)n)n)�)°)°)º)zÐy�š(š(Ÿ(Ÿ(Î(Î(Ï(Ð(Ð(å(ç(õ($)+)4)5)<)<)?){P¥¬×R×RàRëRöRùR|؈ ·Q·Q»QÉQÚQëQR
R*R/R:RDRQR_RqRzR†R‹R—R£R»R}@ ¥¿R¿RÃRÑRÓR
\ No newline at end of file
diff --git a/TempleOS/Kernel/Math1a.CPP b/TempleOS/Kernel/Math1a.CPP
index dd92966..56c1f2a 100644
--- a/TempleOS/Kernel/Math1a.CPP
+++ b/TempleOS/Kernel/Math1a.CPP
@@ -299,7 +299,7 @@ _D3_UNIT::
 	FSQRT
 	FST	U64 SF_ARG1[RBP]
 	MOV	RBX,SF_ARG1[RBP]
-	OR	RBX,RBX
+	TEST	RBX,RBX
 	JZ	@@05
 	FLD	ST0
 	FDIVR	ST0,U64 [RAX]
@@ -433,11 +433,11 @@ _CEIL::
 SYS_POW::
 // RAX=RDX`RAX
 	ENTER	24
-	OR	RAX,RAX	//To power of zero?
+	TEST	RAX,RAX	//To power of zero?
 	JNZ	@@05
 	MOV	RAX,1.0
 	JMP	@@20
-@@05:	OR	RDX,RDX	//zero to a power?
+@@05:	TEST	RDX,RDX	//zero to a power?
 	JNZ	@@10
 	XOR	RAX,RAX
 	JMP	@@20
@@ -465,7 +465,7 @@ SYS_POW::
 	FLD	U64 -8[RBP]
 	FLD	U64 -16[RBP]
 	FSCALE	// ST0<>4;
+  sys_rnd_seed.i32[0]=(1664525*sys_rnd_seed.i32[0]+1013904223)^GetTSC>>4;
   return sys_rnd_seed.u16[0];
 }
 
 I16 RandI16()
 {
-  sys_rnd_seed.i32[0]=(1664525*sys_rnd_seed.i32[0]+1013904223)^GetTimeStamp>>4;
+  sys_rnd_seed.i32[0]=(1664525*sys_rnd_seed.i32[0]+1013904223)^GetTSC>>4;
   return sys_rnd_seed.i16[0];
 }
 
 U32 RandU32()
 {
-  sys_rnd_seed.i32[0]=(1664525*sys_rnd_seed.i32[0]+1013904223)^GetTimeStamp>>4;
+  sys_rnd_seed.i32[0]=(1664525*sys_rnd_seed.i32[0]+1013904223)^GetTSC>>4;
   return sys_rnd_seed.u32[0];
 }
 
 I32 RandI32()
 {
-  sys_rnd_seed.i32[0]=(1664525*sys_rnd_seed.i32[0]+1013904223)^GetTimeStamp>>4;
+  sys_rnd_seed.i32[0]=(1664525*sys_rnd_seed.i32[0]+1013904223)^GetTSC>>4;
   return sys_rnd_seed.i32[0];
 }
 
 U64 RandU64()
 {
   U64 result;
-  result.u32[0]=sys_rnd_seed.i32[0]=(1664525*sys_rnd_seed.i32[0]+1013904223)^GetTimeStamp>>4;
+  result.u32[0]=sys_rnd_seed.i32[0]=(1664525*sys_rnd_seed.i32[0]+1013904223)^GetTSC>>4;
   result.u32[1]=sys_rnd_seed.i32[0]= 1664525*sys_rnd_seed.i32[0]+1013904223;
   return result;
 }
@@ -156,7 +156,7 @@ U64 RandU64()
 I64 RandI64()
 {
   I64 result;
-  result.u32[0]=sys_rnd_seed.i32[0]=(1664525*sys_rnd_seed.i32[0]+1013904223)^GetTimeStamp>>4;
+  result.u32[0]=sys_rnd_seed.i32[0]=(1664525*sys_rnd_seed.i32[0]+1013904223)^GetTSC>>4;
   result.u32[1]=sys_rnd_seed.i32[0]= 1664525*sys_rnd_seed.i32[0]+1013904223;
   return result;
 }
@@ -164,7 +164,7 @@ I64 RandI64()
 F64 Rand()
 { //0.0<=x<1.0
   I64 result;
-  result.u32[0]=sys_rnd_seed.i32[0]=(1664525*sys_rnd_seed.i32[0]+1013904223)^GetTimeStamp>>4;
+  result.u32[0]=sys_rnd_seed.i32[0]=(1664525*sys_rnd_seed.i32[0]+1013904223)^GetTSC>>4;
   result.u32[1]=sys_rnd_seed.i32[0]= 1664525*sys_rnd_seed.i32[0]+1013904223;
   result&=0x3FFFFFFFFFFFFFFF;
   return result/ToF64(0x4000000000000000);
@@ -222,5 +222,8 @@ F64 Rand2()
 
 U0 Randomize(I64 seed=0)
 { //Randomizes seed.
-  Fs->rnd_seed=seed;
+  if (seed)
+    Fs->rnd_seed=seed;
+  else
+    Fs->rnd_seed=GetTSC>>4;
 }
diff --git a/TempleOS/Kernel/Memory.CPP b/TempleOS/Kernel/Memory.CPP
index e01963c..0669608 100644
--- a/TempleOS/Kernel/Memory.CPP
+++ b/TempleOS/Kernel/Memory.CPP
@@ -591,7 +591,7 @@ _MALLOC::
 
 	XOR	RBX,RBX
 	MOV	RDX,U64 SF_ARG2[RBP]
-	OR	RDX,RDX
+	TEST	RDX,RDX
 	JNZ	@@05
 	MOV	RDX,U64 FS:CTask.addr[RBX]
 @@05:	CMP	U32 CTask.task_signature[RDX],TASK_SIGNATURE_VAL
@@ -625,7 +625,7 @@ _MALLOC::
 	CMP	RAX,HEAP_HASH_SIZE
 	JAE	@@30
 	MOV	RSI,U64 CHeapCtrl.heap_hash[RAX+RDX]
-	OR	RSI,RSI
+	TEST	RSI,RSI
 	JZ	@@35
 	MOV	RCX,U64 CMemUnusedAllocated.next[RSI]
 	MOV	U64 CHeapCtrl.heap_hash[RAX+RDX],RCX
@@ -644,7 +644,7 @@ _MALLOC::
 	MOV	RSI,RAX
 	POP	RAX //blks that were allocated
 	POP	RDX
-	OR	RSI,RSI
+	TEST	RSI,RSI
 	JZ	@@45	//Out of memory
 
 	SHL	RAX,PAGE_BITS
@@ -657,7 +657,7 @@ _MALLOC::
 
 @@40:	MOV	RBX,RSI
 	MOV	RSI,U64 CMemUnusedAllocated.next[RBX]
-	OR	RSI,RSI
+	TEST	RSI,RSI
 	JNZ	@@55
 	PUSH	RAX		//-**** save byte size
 	ADD	RAX,16*PAGE_SIZE-1
@@ -672,7 +672,7 @@ _MALLOC::
 	MOV	RSI,RAX
 	POP	RAX //blks that were allocated
 	POP	RDX
-	OR	RSI,RSI
+	TEST	RSI,RSI
 	JNZ	@@50
 
 //Out of memory
@@ -763,7 +763,7 @@ MALLOC_ALMOST_DONE:
 	PUSH	RAX
 	MOV	RAX,U64 [SYS_EXTERN_TABLE]
 	MOV	RAX,U64 EXT_HEAPLOG_MALLOC*8[RAX]
-	OR	RAX,RAX
+	TEST	RAX,RAX
 	JZ	@@90
 	CALL	RAX
 	JMP	@@95
@@ -799,16 +799,16 @@ _FREE::
 	JNC	@@20
 	PUSH_C_REGS
 	MOV	RBX,U64 SF_ARG1[RBP]
-	OR	RBX,RBX
+	TEST	RBX,RBX
 	JZ	@@05
 	MOV	RAX,U64 CMemUsedAllocated.size-CMemUsedAllocated.start[RBX]
-	OR	RAX,RAX
+	TEST	RAX,RAX
 	JGE	@@05	//Aligned alloced chunks have neg size
 	ADD	RBX,RAX
 @@05:	PUSH	RBX
 	MOV	RAX,U64 [SYS_EXTERN_TABLE]
 	MOV	RAX,U64 EXT_HEAPLOG_FREE*8[RAX]
-	OR	RAX,RAX
+	TEST	RAX,RAX
 	JZ	@@10
 	CALL	RAX
 	JMP	@@15
@@ -816,7 +816,7 @@ _FREE::
 @@15:	POP_C_REGS
 
 @@20:	MOV	RSI,U64 SF_ARG1[RBP]
-	OR	RSI,RSI
+	TEST	RSI,RSI
 
 #if _CFG_HEAP_DBG
 	JZ	I32 FREE_DONE
@@ -825,7 +825,7 @@ _FREE::
 #endif
 
 	MOV	RAX,U64 CMemUsedAllocated.size-CMemUsedAllocated.start[RSI]
-	OR	RAX,RAX
+	TEST	RAX,RAX
 	JGE	@@25	//Aligned alloced chunks have neg size.
 			//The neg size is offset to start of $LK,"CMemUsedAllocated","MN:CMemUsedAllocated"$ struct.
 	ADD	RSI,RAX
@@ -907,10 +907,10 @@ _MSIZE::
 	ENTER	0
 	MOV	RBX,U64 SF_ARG1[RBP]
 	XOR	RAX,RAX
-	OR	RBX,RBX
+	TEST	RBX,RBX
 	JZ	@@10
 	MOV	RAX,U64 CMemUsedAllocated.size-CMemUsedAllocated.start[RBX]
-	OR	RAX,RAX
+	TEST	RAX,RAX
 	JGE	@@05	//Aligned alloced chunks have neg size
 	ADD	RBX,RAX
 	MOV	RAX,U64 CMemUsedAllocated.size-CMemUsedAllocated.start[RBX]
@@ -922,10 +922,10 @@ _MSIZE2::
 	ENTER	0
 	MOV	RBX,U64 SF_ARG1[RBP]
 	XOR	RAX,RAX
-	OR	RBX,RBX
+	TEST	RBX,RBX
 	JZ	@@10
 	MOV	RAX,U64 CMemUsedAllocated.size-CMemUsedAllocated.start[RBX]
-	OR	RAX,RAX
+	TEST	RAX,RAX
 	JGE	@@05	//Aligned alloced chunks have neg size
 	ADD	RBX,RAX
 @@05:	MOV	RAX,U64 CMemUsedAllocated.size-CMemUsedAllocated.start[RBX]
@@ -936,10 +936,10 @@ _MHEAP_CTRL::
 	ENTER	0
 	MOV	RBX,U64 SF_ARG1[RBP]
 	XOR	RAX,RAX
-	OR	RBX,RBX
+	TEST	RBX,RBX
 	JZ	@@10
 	MOV	RAX,U64 CMemUsedAllocated.size-CMemUsedAllocated.start[RBX]
-	OR	RAX,RAX
+	TEST	RAX,RAX
 	JGE	@@05	//Aligned alloced chunks have neg size
 	ADD	RBX,RAX
 @@05:	MOV	RAX,U64 CMemUsedAllocated.hc-CMemUsedAllocated.start[RBX]
@@ -1171,7 +1171,7 @@ U0 MemPagesNotPresentMark()
   CMemE820	*m20=SYS_MEM_E820;
 #exe {
   if (kernel_cfg->opts[CFG_PROTECT_LOW])
-    StreamPutS("MemLowPagesProtect(TRUE);");
+    StreamPrint("MemLowPagesProtect(TRUE);");
 };
   while (m20->type) {
     a=m20->base+m20->len;
diff --git a/TempleOS/Kernel/Misc1a.CPP b/TempleOS/Kernel/Misc1a.CPP
index 12804f3..c4c00fa 100644
--- a/TempleOS/Kernel/Misc1a.CPP
+++ b/TempleOS/Kernel/Misc1a.CPP
@@ -80,7 +80,7 @@ I64 SysTimerRead()
 
 I64 TaskTotalTime()
 {
-  return GetTimeStamp-Fs->time_slice_start+Fs->total_time;
+  return GetTSC-Fs->time_slice_start+Fs->total_time;
 }
 
 I64 TimeStampFreqCal()
@@ -91,10 +91,10 @@ I64 TimeStampFreqCal()
     PushFD;
     Cli;
     if (HPET_start) {
-      time_stamp_freq=HPET_freq*(GetTimeStamp-time_stamp_start);
+      time_stamp_freq=HPET_freq*(GetTSC-time_stamp_start);
       i=HPET-HPET_start;
     } else {
-      time_stamp_freq=SYS_TIMER_FREQ*(GetTimeStamp-time_stamp_start);
+      time_stamp_freq=SYS_TIMER_FREQ*(GetTSC-time_stamp_start);
       i=SysTimerRead-timer_start;
     }
     if (!i)
@@ -113,14 +113,14 @@ I64 TimeStampFreqCal()
     HPET_start=0;
     timer_start=SysTimerRead;
   }
-  time_stamp_start=GetTimeStamp;
+  time_stamp_start=GetTSC;
   PopFD;
   return time_stamp_freq;
 }
 
 F64 tT()
 //Time since boot in seconds as a float
-{
+{//This is fast but inaccurate if not HPET.
   static I64 last_time_stamp=0;
   static F64 last_result=0;
   I64 time_stamp;
@@ -130,25 +130,30 @@ F64 tT()
     PushFD;
     Cli;
     if (mp_cnt>1)
-      while (LBts(&sys_semas[SYS_SEMA_TNP],0))
+      while (LBts(&sys_semas[SYS_SEMA_TT],0))
 	Pause;
-    time_stamp=GetTimeStamp;
+    time_stamp=GetTSC;
     last_result+=ToF64(time_stamp-last_time_stamp)/time_stamp_freq;
     last_time_stamp=time_stamp;
-    LBtr(&sys_semas[SYS_SEMA_TNP],0);
+    LBtr(&sys_semas[SYS_SEMA_TT],0);
     PopFD;
     return last_result;
   }
 }
 
 F64 tJ()
+//Time since boot in seconds as a float
 {
   return sys_jiffies/ToF64(JIFFY_FREQ);
 }
 
 F64 tS()
-{
-  return SysTimerRead/ToF64(SYS_TIMER_FREQ);
+//Time since boot in seconds as a float
+{ //This is slow, but accurate even if no HPET.
+  if (HPET_freq)
+    return ToF64(HPET)/HPET_freq;
+  else
+    return SysTimerRead/ToF64(SYS_TIMER_FREQ);
 }
 
 Bool Blink(F64 Hz=2.5)
@@ -250,12 +255,6 @@ Bool IsSilent() {
   return Bt(&Fs->display_flags,DISPLAYf_SILENT);
 }
 
-Bool IOSnd(Bool val) {
-  Bool result=!LBEqu(&sys_semas[SYS_SEMA_NO_IO_SND],0,!val);
-  Snd(0);
-  return result;
-}
-
 Bool IsPreempt() {
   return Bt(&Fs->task_flags,TASKf_PREEMPT);
 }
diff --git a/TempleOS/Kernel/MultiProc.CPP b/TempleOS/Kernel/MultiProc.CPP
index 9808ce8..36581aa 100644
--- a/TempleOS/Kernel/MultiProc.CPP
+++ b/TempleOS/Kernel/MultiProc.CPP
@@ -70,7 +70,7 @@ USE64
 	CALL	_SET_GS_BASE
 	POP	RSI
 @@10:	MOV	RBX,U64 CCPU.seth_task[RSI]
-	OR	RBX,RBX
+	TEST	RBX,RBX
 	JZ	@@10
 	MOV	U64 CTask.gs[RBX],RSI
 	MOV	RAX,RBX
@@ -219,7 +219,7 @@ U0 MPAPICInit()
   asm {	LTR	AX  }
   if (Gs->num) {
     IntInit1;
-    SetFlags(SYS_NORMAL_RFLAGS);
+    SetRFlags(SYS_NORMAL_RFLAGS);
   }
 }
 
@@ -235,7 +235,7 @@ U0 MPSethServerTask()
     if (!LBts(&my_ctrl->flags,SVCRf_LOCKED)) {
       tempc=tempc1->next;
       //Jobs for this core are highest priority.
-      if (tempc==tempc1 || !SrvCmdRun(tempc,GetFlags)) {
+      if (tempc==tempc1 || !SrvCmdRun(tempc,GetRFlags)) {
 	LBtr(&my_ctrl->flags,SVCRf_LOCKED) ;
 	if (my_ctrl->next_waiting==my_ctrl) {
 	  LBts(&Gs->cpu_flags,CPUf_SETH_SLEEP);
@@ -313,7 +313,7 @@ U0 MPCPUTaskInit()
   //as the first thing a CPU does before waiting for jobs
   MPAPICInit;
   Fs->rip=&MPSethServerTask;
-  Fs->time_slice_start=GetTimeStamp;
+  Fs->time_slice_start=GetTSC;
   TaskContextRestore;
 }
 
@@ -375,7 +375,7 @@ U0 MPStart()
 
   for (i=1;irflags=SYS_START_RFLAGS;
     //$LK,"CTask","MN:CTask"$ allocated off this core's seth_task's heap (Which is Adam)
@@ -415,7 +415,7 @@ U0 MPInit()
 
   SetGs(c);
   adam_task->gs=c;
-  adam_task->time_slice_start=GetTimeStamp;
+  adam_task->time_slice_start=GetTSC;
   c->seth_task=adam_task;
   c->tss=TSSNew(0);
   c->idle_task=TaskIdleInit;
@@ -432,7 +432,7 @@ U0 MPCrash()
   IntEOI;
   mp_cnt=1;
   Raw(ON);
-  sys_raw_dc_flags|=RDCF_SHOW_DOLLAR;
+  sys_raw_flags|=RWF_SHOW_DOLLAR;
   "MP Crash CPU#%02X Task:%08X\n",mp_crash->cpu_num,mp_crash->task;
   Dbg(mp_crash->msg,mp_crash->msg_num);
 }
diff --git a/TempleOS/Kernel/PSect.CPP b/TempleOS/Kernel/PSect.CPP
index 4d7e307..60479f5 100644
--- a/TempleOS/Kernel/PSect.CPP
+++ b/TempleOS/Kernel/PSect.CPP
@@ -10,7 +10,7 @@ I64 HasLower(U8 *src)
 CHash *PSectFind(U8 *add,I64 *_offset)
 { //See $LK,"::/TempleOS/Kernel/Hash1a.CPP","FL:::/TempleOS/Kernel/Hash1a.CPP,1"$
   CHash *result=NULL;
-  CHashExport *tempess;
+  CHashExport *tempex;
   Bool has_lower=FALSE;
   CHashTable *h=Fs->hash_table;
   U64 best=0xFFFF,j;
@@ -19,35 +19,35 @@ CHash *PSectFind(U8 *add,I64 *_offset)
     return NULL;
   }
   while (h) {
-    tempess=h->next_added;
-    while (tempess!=h) {
+    tempex=h->next_added;
+    while (tempex!=h) {
       j=0;
-      if (tempess->type&HTT_FUN) {
-	if (!Bt(&tempess(CHashFun *)->flags,Cf_EXTERN) &&
-	      !Bt(&tempess(CHashFun *)->flags,Ff_INTERNAL))
-	  j=tempess(CHashFun *)->executable_addr;
-      } else if (tempess->type&HTT_EXPORT_SYS_SYM)
-	j=tempess->val;
+      if (tempex->type&HTT_FUN) {
+	if (!Bt(&tempex(CHashFun *)->flags,Cf_EXTERN) &&
+	      !Bt(&tempex(CHashFun *)->flags,Ff_INTERNAL))
+	  j=tempex(CHashFun *)->executable_addr;
+      } else if (tempex->type&HTT_EXPORT_SYS_SYM)
+	j=tempex->val;
       if (j) {
 	j=add(I64)-j;
 	if (0<=j<=best) {
-	  if (tempess->type&HTT_EXPORT_SYS_SYM) {
+	  if (tempex->type&HTT_EXPORT_SYS_SYM) {
 	    if (jstr);
+	      has_lower=HasLower(tempex->str);
 	      best=j;
-	      result=tempess;
+	      result=tempex;
 	    }
-	  } else if (tempess->type&HTT_FUN) {
+	  } else if (tempex->type&HTT_FUN) {
 	    if (jtype&HTT_EXPORT_SYS_SYM||!has_lower)) {
-	      has_lower=HasLower(tempess->str);
+	      has_lower=HasLower(tempex->str);
 	      best=j;
-	      result=tempess;
+	      result=tempex;
 	    }
 	  }
 	}
       }
-      tempess=tempess->next_added;
+      tempex=tempex->next_added;
     }
     h=h->next;
   }
@@ -100,10 +100,10 @@ U8 *PSectCacheFind(U8 *add,I64 *_offset)
   }
 }
 
-U0 SPrintFPSect(U8 *buf,I64 add,I64 field_len)
+U0 SPrintPSect(U8 *buf,I64 add,I64 field_len)
 {
   I64 offset;
-  CHashExport *tempess;
+  CHashExport *tempex;
   U8 *str,*str2;
   Bool is_fun=FALSE;
   if (add) {
@@ -111,35 +111,35 @@ U0 SPrintFPSect(U8 *buf,I64 add,I64 field_len)
       if (add!=SYS_IDLE_PT)
 	is_fun=TRUE;
     } else  {
-      if (tempess=PSectFind(add,&offset)) {
-	if (tempess->type&HTT_FUN)
+      if (tempex=PSectFind(add,&offset)) {
+	if (tempex->type&HTT_FUN)
 	  is_fun=TRUE;
-	PSectCacheAdd(tempess,add);
-	str=tempess->str;
+	PSectCacheAdd(tempex,add);
+	str=tempex->str;
       }
     }
     if (str) {
       if (offset>0xFFFF) offset=0xFFFF;
       if (is_fun) {
-	str2=MSPrintF("&%s",str);
+	str2=MPrint("&%s",str);
 	if (field_len>7)
-	  SPrintF(buf,"%*ts+0x%04X",field_len-7,str2,offset);
+	  SPrint(buf,"%*ts+0x%04X",field_len-7,str2,offset);
 	else
-	  SPrintF(buf,"%s+0x%04X",str2,offset);
+	  SPrint(buf,"%s+0x%04X",str2,offset);
 	Free(str2);
       } else {
 	if (field_len>7)
-	  SPrintF(buf,"%*ts+0x%04X",field_len-7,str,offset);
+	  SPrint(buf,"%*ts+0x%04X",field_len-7,str,offset);
 	else
-	  SPrintF(buf,"%s+0x%04X",str,offset);
+	  SPrint(buf,"%s+0x%04X",str,offset);
       }
       return;
     }
   }
   if (field_len)
-    SPrintF(buf,"%*tX",field_len,add);
+    SPrint(buf,"%*tX",field_len,add);
   else
-    SPrintF(buf,"%X",add);
+    SPrint(buf,"%X",add);
 }
 
 
@@ -244,7 +244,7 @@ U8 *SrcEdLink(U8 *add,I64 cnt=1,CTask *mem_task=NULL)
     linenum=SrcLineNum(add,cnt);
     if (linenum<1)
       linenum=1;
-    st2=MSPrintF("FL:%s,%d",filename,linenum);
+    st2=MPrint("FL:%s,%d",filename,linenum);
     Free(filename);
     st=StrNew(st2,mem_task);
     Free(st2);
@@ -259,7 +259,7 @@ Bool PutSrcLink(U8 *add,I64 cnt=1,U8 *buf=NULL)
   U8 *src;
   if (src=SrcEdLink(add,cnt)) {
     if (buf)
-      SPrintF(buf,"$$LK,\"%P\",\"%s\"$$",add,src);
+      SPrint(buf,"$$LK,\"%P\",\"%s\"$$",add,src);
     else
       "$$LK,\"%P\",\"%s\"$$",add,src;
     Free(src);
@@ -290,7 +290,7 @@ U0 Man(U8 *st)
     if ((temph=HashFind(st,Fs->hash_table,HTG_SRC_SYM)) && temph->src_link)
       EdLiteFileLine(temph->src_link);
   } else {
-    st2=MSPrintF("MN:%s",st);
+    st2=MPrint("MN:%s",st);
     Ed(st2);
     Free(st2);
   }
diff --git a/TempleOS/Kernel/Scheduler.CPP b/TempleOS/Kernel/Scheduler.CPP
index 8ffb591..d26045d 100644
--- a/TempleOS/Kernel/Scheduler.CPP
+++ b/TempleOS/Kernel/Scheduler.CPP
@@ -1,7 +1,7 @@
 /*
 See $LK,"TempleOS MultiTasking","FI:::/TempleOS/Doc/MultiTasking.TXT"$.
 
-Tasks are ordered in a que based
+Tasks are ordered in a queue based
 on window front-to-back order with the
 window mgr as the head, which
 paints the wallpaper.  The scheduler
@@ -92,7 +92,7 @@ It's a little faster.
 	FXSAVE	U64 [RAX]
 
 	MOV	RDX,U64 CTask.bpt_lst[RSI]
-@@05:	OR	RDX,RDX
+@@05:	TEST	RDX,RDX
 	JZ	@@10
 	MOV	RDI,U64 CBpt.addr[RDX]
 	MOV	AL,U8 CBpt.val[RDX]
@@ -116,7 +116,7 @@ SYS_CONTEXT_RESTORE::
 	BT	U64 CTask.task_flags[RSI],TASKf_DISABLE_BPTS
 	JC	@@15
 	MOV	RDX,U64 CTask.bpt_lst[RSI]
-@@10:	OR	RDX,RDX
+@@10:	TEST	RDX,RDX
 	JZ	@@15
 	MOV	RDI,U64 CBpt.addr[RDX]
 	MOV	U8 [RDI],OC_BPT
@@ -197,7 +197,7 @@ SYS_YIELD::
 	PUSH	RAX
 	MOV	RAX,U64 [SYS_JIFFIES]
 	CMP	U64 CTask.wake_jiffy[RSI],RAX
-	JA	@@10	//If needs to sleep, jmp and swap-out.
+	JG	@@10	//If needs to sleep, jmp and swap-out.
 
 	POP	RAX
 	POP	RSI
@@ -233,7 +233,7 @@ RESTORE_RSI_TASK_NO_KEY_CHECK:
 
 	MOV	RAX,U64 [SYS_JIFFIES]
 	CMP	U64 CTask.wake_jiffy[RSI],RAX
-	JA	@@25	//Jmp if not ready, yet.
+	JG	@@25	//Jmp if not ready, yet.
 
 	CMP	U32 CTask.task_in_que_signature[RSI],TASK_IN_QUE_SIGNATURE_VAL
 	JNE	SWAP_IN_SETH_TASK
@@ -267,7 +267,7 @@ HANDLE_SWAP_KEY_EVENT:
 	CALL	SET_FS_BASE
 	XOR	RAX,RAX
 	MOV	RAX,GS:CCPU.num[RAX]
-	OR	RAX,RAX
+	TEST	RAX,RAX
 	JNZ	I32 RESTORE_RSI_TASK_NO_KEY_CHECK
 
 	MOV	EAX,U32 SYS_CTRL_ALT_FLAGS
@@ -294,7 +294,7 @@ HANDLE_SWAP_KEY_EVENT:
 
 BREAK_FOCUS_USER:
 	MOV	RSI,U64 [SYS_FOCUS_TASK]
-	OR	RSI,RSI
+	TEST	RSI,RSI
 	JZ	SWAP_IN_SETH_TASK
 	BT	U64 CTask.task_flags[RSI],TASKf_USER
 	JNC	I32 RESTORE_RSI_TASK_NO_KEY_CHECK
@@ -323,7 +323,7 @@ END_FOCUS_USER:
 	PUSH	RSI
 	CALL	FOCUS_RSI_NEXT_USER
 	POP	RSI
-	OR	RSI,RSI
+	TEST	RSI,RSI
 	JZ	I32 SWAP_IN_SETH_TASK
 	MOV	RAX,RSI
 	CALL	SET_FS_BASE
@@ -339,7 +339,7 @@ RESTORE_FS_TASK_WITH_KEY_CHECK:
 	JMP	I32 RESTORE_RSI_TASK_WITH_KEY_CHECK
 
 FOCUS_RSI_NEXT_USER:
-	OR	RSI,RSI
+	TEST	RSI,RSI
 	JNZ	@@20
 	MOV	ESI,U32 SYS_ADAM_TASK
 @@20:	MOV	RDI,RSI
@@ -351,7 +351,7 @@ FOCUS_RSI_NEXT_USER:
 	MOV	U64 [SYS_FOCUS_TASK],RSI
 	MOV	RAX,U64 [SYS_EXTERN_TABLE]
 	MOV	RAX,U64 EXT_WIN_TO_TOP*8[RAX]
-	OR	RAX,RAX
+	TEST	RAX,RAX
 	JZ	@@35
 	PUSH	TRUE
 	PUSH	RSI
diff --git a/TempleOS/Kernel/SrvCmd.CPP b/TempleOS/Kernel/SrvCmd.CPP
index 976a1bc..4e565f2 100644
--- a/TempleOS/Kernel/SrvCmd.CPP
+++ b/TempleOS/Kernel/SrvCmd.CPP
@@ -24,17 +24,16 @@ U0 SrvCtrlInit(CSrvCtrl *ctrl)
 
 U0 TaskRstAwaitingMsg(CTask *task=NULL)
 { //Pop-ups get parent messages so wake-up our pop-ups if we got a msg.
-  Bool old_preempt=Preempt(OFF);
   if (!task) task=Fs;
-  if (TaskValidate(task)) {
-    LBtr(&task->task_flags,TASKf_AWAITING_MSG);
-    while (task=task->popup_task)
-      if (TaskValidate(task))
-	LBtr(&task->task_flags,TASKf_AWAITING_MSG);
-      else
-	break;
-  }
-  Preempt(old_preempt);
+  PushFD;
+  Cli;
+  do {
+    if (TaskValidate(task))
+      LBtr(&task->task_flags,TASKf_AWAITING_MSG);
+    else
+      break;
+  } while (task=task->popup_task);
+  PopFD;
 }
 
 CSrvCmd *TaskExeStrQue(CTask *srv,CTask *master,
@@ -93,18 +92,21 @@ CSrvCmd *TaskTextInputQue(CTask *srv,CTask *master,
   result->aux_str=AStrNew(data);
 
   PushFD;
-  if (Bt(&flags,SVCf_HIGHEST_PRIORITY) ||
-      srv->next_input_filter_task==srv) {
+  task=srv->last_input_filter_task;
+  if (Bt(&flags,SVCf_HIGHEST_PRIORITY) || task==srv) {
+    if (task!=srv)
+      TaskWait(srv);
     task=Spawn(&InputFilterTask,NULL,"Input Filter",,srv);
     Cli;
     task->next_input_filter_task=srv->next_input_filter_task;
     task->last_input_filter_task=srv;
     srv->next_input_filter_task=task;
     task->next_input_filter_task->last_input_filter_task=task;
-  } else
+  } else {
+    Cli;
     task=srv->next_input_filter_task;
+  }
   result->ctrl=&task->srv_ctrl;
-  Cli;
   while (LBts(&task->srv_ctrl.flags,SVCRf_LOCKED))
     Pause;
   if (!TaskValidate(task)) {
@@ -235,8 +237,8 @@ U0 TaskWait(CTask *task=NULL)
     while (TRUE) {
       task1=task->last_input_filter_task;
       tempc1=&task1->srv_ctrl.next_waiting;
-      if (TaskValidate(task1) && tempc1==tempc1->next &&
-	  (task1==Fs || Bt(&task1->task_flags,TASKf_IDLE)))
+      if (task1==Fs || !TaskValidate(task1) ||
+	  tempc1==tempc1->next && Bt(&task1->task_flags,TASKf_IDLE))
 	break;
       Yield;
     }
@@ -296,26 +298,26 @@ I64 SrvCmdRun(CSrvCmd *tempc,I64 old_flags)
       LBts(&tempc->flags,SVCf_DISPATCHED);
       tempc->servant_cpu_num=Gs->num;
       LBtr(&ctrl->flags,SVCRf_LOCKED);
-      SetFlags(old_flags);
+      SetRFlags(old_flags);
       LBtr(&Fs->task_flags,TASKf_IDLE);
       try
 	tempc->result=(*tempc->add)(tempc->fun_arg);
       catch
 	Fs->catch_except=TRUE;
-      SetFlags(old_flags);
+      SetRFlags(old_flags);
       break;
     case SVCT_EXE_STR:
       QueRem(tempc);
       LBts(&tempc->flags,SVCf_DISPATCHED);
       tempc->servant_cpu_num=Gs->num;
       LBtr(&ctrl->flags,SVCRf_LOCKED);
-      SetFlags(old_flags);
+      SetRFlags(old_flags);
       LBtr(&Fs->task_flags,TASKf_IDLE);
       try
-	tempc->result=ExePutS(tempc->aux_str);
+	tempc->result=ExePrint("%s",tempc->aux_str);
       catch
 	Fs->catch_except=TRUE;
-      SetFlags(old_flags);
+      SetRFlags(old_flags);
       break;
     default:
       result=SCR_DONE;
@@ -329,7 +331,7 @@ I64 SrvCmdRun(CSrvCmd *tempc,I64 old_flags)
 	QueIns(tempc,master->srv_ctrl.last_done);
 	LBts(&tempc->flags,SVCf_DONE);
 	LBtr(&master->srv_ctrl.flags,SVCRf_LOCKED);
-	SetFlags(old_flags);
+	SetRFlags(old_flags);
       }
       if (Bt(&flags,SVCf_FOCUS_MASTER) &&
 	    Bt(&master->task_flags,TASKf_USER))
@@ -346,7 +348,7 @@ I64 SrvCmdRun(CSrvCmd *tempc,I64 old_flags)
       QueIns(tempc,ctrl->last_done);
       LBts(&tempc->flags,SVCf_DONE);
       LBtr(&ctrl->flags,SVCRf_LOCKED);
-      SetFlags(old_flags);
+      SetRFlags(old_flags);
     }
   }
   Preempt(old_preempt);
@@ -355,7 +357,7 @@ I64 SrvCmdRun(CSrvCmd *tempc,I64 old_flags)
 
 I64 SrvCmdsHandler(CTask *task=NULL)
 {
-  I64 cnt=0,old_flags=GetFlags;
+  I64 cnt=0,old_flags=GetRFlags;
   CSrvCmd *tempc,*tempc1;
   if (!task) task=Fs;
   while (TRUE) {
@@ -379,7 +381,7 @@ I64 SrvCmdsHandler(CTask *task=NULL)
   }
 sch_done:
   LBtr(&task->srv_ctrl.flags,SVCRf_LOCKED);
-  SetFlags(old_flags);
+  SetRFlags(old_flags);
   return cnt;
 }
 
@@ -388,19 +390,19 @@ I64 Adam(U8 *fmt,...)
 //compiled and run.
 {
   I64 result;
-  U8 *st=SPrintFJoin(NULL,fmt,argc,argv);
+  U8 *buf=SPrintJoin(NULL,fmt,argc,argv);
   Bool old_preempt=Preempt(OFF);
   CSrvCmd *tempc;
   if (Fs==adam_task) {
-    tempc=TaskExeStrQue(adam_task,Fs,st,0);
+    tempc=TaskExeStrQue(adam_task,Fs,buf,0);
     SrvCmdsHandler;
   } else {
     TaskWait(adam_task);
-    tempc=TaskExeStrQue(adam_task,Fs,st,1<task_flags,TASKf_INPUT_FILTER_TASK))
-    ExePutS(st2);
-  else
-    TaskTextInputQue(Fs,0,st2,1<popup_task=task;
-  tempc=TaskExeStrQue(task,Fs,st,1<popup_task=NULL;
   Kill(task,FALSE);
-  Free(st);
+  Free(buf);
   return result;
 }
 
@@ -485,38 +474,42 @@ U0 AutoStr(U8 *fmt,...)
 //Sends text in the nature of an AutoFile to one's
 //own input buffer.
 {
-  U8 *st=SPrintFJoin(NULL,fmt,argc,argv);
+  U8 *buf=SPrintJoin(NULL,fmt,argc,argv);
   if (Bt(&Fs->task_flags,TASKf_INPUT_FILTER_TASK))
-    ExePutS(st);
+    ExePrint("%s",buf);
   else
-    TaskTextInputQue(Fs,0,st,1<task_flags,TASKf_INPUT_FILTER_TASK))
-    ExeFile(name2);
-  else
-    AutoStr("%F",name2);
-  Free(name2);
+  U8 *name=DftExt(filename,"AUT.Z");
+  AutoStr("%F",name);
+  Free(name);
 }
 
+U0 Auto(U8 *fmt,...)
+//Sends text to one's own input buffer
+{
+  U8 *buf=SPrintJoin(NULL,fmt,argc,argv);
+  AutoStr("\"%Q\";",buf);
+  Free(buf);
+}
 
 //This sends text of an AutoFile nature to a
 //task's input buffer.
 U0 XTalkStr(CTask *task,U8 *fmt,...)
 {
-  U8 *st=SPrintFJoin(NULL,fmt,argc,argv);
-  TaskTextInputQue(task,0,st,0);
-  Free(st);
+  U8 *buf=SPrintJoin(NULL,fmt,argc,argv);
+  TaskTextInputQue(task,0,buf,0);
+  Free(buf);
 }
 
 U0 XTalkStrWait(CTask *task,U8 *fmt,...)
 {
-  U8 *st=SPrintFJoin(NULL,fmt,argc,argv);
-  TaskTextInputQue(task,0,st,0);
-  Free(st);
+  U8 *buf=SPrintJoin(NULL,fmt,argc,argv);
+  TaskTextInputQue(task,0,buf,0);
+  Free(buf);
   TaskWait(task);
 }
diff --git a/TempleOS/Kernel/Str1a.CPP b/TempleOS/Kernel/Str1a.CPP
index ac4ad13..977594f 100644
--- a/TempleOS/Kernel/Str1a.CPP
+++ b/TempleOS/Kernel/Str1a.CPP
@@ -15,7 +15,7 @@ U0 PutHex(I64 n,I64 width)
   U8 buf[17];
   if (width>16) width=16;
   *Bin2Hex(buf,n,width)=0;
-  "" buf;
+  "%s",buf;
 }
 
 asm {
@@ -73,16 +73,18 @@ _STRCAT::
 	PUSH	RDI
 	MOV	RSI,U64 SF_ARG1[RBP]
 @@05:	LODSB
-	OR	AL,AL
+	TEST	AL,AL
 	JNZ	@@05
 	MOV	RDI,RSI
 	DEC	RDI
 	MOV	RSI,U64 SF_ARG2[RBP]
+	TEST	RSI,RSI
+	JZ	@@15
 @@10:	LODSB
 	STOSB
-	OR	AL,AL
+	TEST	AL,AL
 	JNZ	@@10
-	POP	RDI
+@@15:	POP	RDI
 	POP	RSI
 	LEAVE
 	RET1	16
@@ -91,13 +93,19 @@ _STRCPY::
 	ENTER	0
 	PUSH	RSI
 	PUSH	RDI
-	MOV	RSI,U64 SF_ARG2[RBP]
 	MOV	RDI,U64 SF_ARG1[RBP]
-@@05:	LODSB
-	STOSB
-	OR	AL,AL
+	TEST	RDI,RDI
+	JZ	@@15
+	MOV	RSI,U64 SF_ARG2[RBP]
+	TEST	RSI,RSI
 	JNZ	@@05
-	POP	RDI
+	XOR	RAX,RAX
+	JMP	@@10
+@@05:	LODSB
+@@10:	STOSB
+	TEST	AL,AL
+	JNZ	@@05
+@@15:	POP	RDI
 	POP	RSI
 	LEAVE
 	RET1	16
@@ -109,7 +117,7 @@ _STRCMP::
 	MOV	RSI,U64 SF_ARG2[RBP]
 	MOV	RDI,U64 SF_ARG1[RBP]
 @@05:	LODSB
-	OR	AL,AL
+	TEST	AL,AL
 	JZ	@@20
 	SCASB
 	JE	@@05
@@ -141,7 +149,7 @@ _STRICMP::
 	MOV	RSI,U64 SF_ARG2[RBP]
 	MOV	RDI,U64 SF_ARG1[RBP]
 @@05:	LODSB
-	OR	AL,AL
+	TEST	AL,AL
 	JZ	@@30
 	CMP	AL,'a'
 	JB	@@10
@@ -163,7 +171,7 @@ _STRICMP::
 @@25:	MOV	RAX,-1
 	JMP	@@35
 @@30:	MOV	BL,U8 [RDI]
-	OR	BL,BL
+	TEST	BL,BL
 	JNE	@@20
 	XOR	RAX,RAX
 @@35:	POP	RDI
@@ -178,11 +186,11 @@ _STRNCMP::
 	MOV	RCX,U64 SF_ARG3[RBP]
 	MOV	RSI,U64 SF_ARG2[RBP]
 	MOV	RDI,U64 SF_ARG1[RBP]
-@@05:	OR	RCX,RCX
+@@05:	TEST	RCX,RCX
 	JZ	@@25
 	DEC	RCX
 	LODSB
-	OR	AL,AL
+	TEST	AL,AL
 	JZ	@@20
 	SCASB
 	JE	@@05
@@ -192,7 +200,7 @@ _STRNCMP::
 @@15:	MOV	RAX,-1
 	JMP	@@30
 @@20:	MOV	BL,U8 [RDI]
-	OR	BL,BL
+	TEST	BL,BL
 	JNE	@@10
 @@25:	XOR	RAX,RAX
 @@30:	POP	RDI
@@ -207,11 +215,11 @@ _STRNICMP::
 	MOV	RCX,U64 SF_ARG3[RBP]
 	MOV	RSI,U64 SF_ARG2[RBP]
 	MOV	RDI,U64 SF_ARG1[RBP]
-@@05:	OR	RCX,RCX
+@@05:	TEST	RCX,RCX
 	JZ	@@35
 	DEC	RCX
 	LODSB
-	OR	AL,AL
+	TEST	AL,AL
 	JZ	@@30
 	CMP	AL,'a'
 	JB	@@10
@@ -240,30 +248,30 @@ _STRNICMP::
 	LEAVE
 	RET1	24
 // ************************************
-_STRSTR::
+_STRMATCH::
 	ENTER	0
 	PUSH	RSI
 	PUSH	RDI
-	MOV	RSI,U64 SF_ARG1[RBP]
-	OR	RSI,RSI
+	MOV	RSI,U64 SF_ARG2[RBP]
+	TEST	RSI,RSI
 	JZ	@@25
-	MOV	RDI,U64 SF_ARG2[RBP]
-	OR	RDI,RDI
+	MOV	RDI,U64 SF_ARG1[RBP]
+	TEST	RDI,RDI
 	JZ	@@25
 	MOV	DL,U8 [RDI]
-	OR	DL,DL
+	TEST	DL,DL
 	JZ	@@20
 	JMP	@@10
 @@05:	INC	RSI
 @@10:	LODSB
-	OR	AL,AL
+	TEST	AL,AL
 	JZ	@@25
 	CMP	AL,DL
 	JNE	@@10
 	DEC	RSI
 	MOV	RCX,1
 @@15:	MOV	AL,U8 [RDI+RCX]
-	OR	AL,AL
+	TEST	AL,AL
 	JZ	@@20
 	CMP	AL,U8 [RSI+RCX]
 	JNE	@@05
@@ -279,26 +287,26 @@ _STRSTR::
 	LEAVE
 	RET1	16
 // ************************************
-_STRISTR::
+_STRIMATCH::
 	ENTER	0
 	PUSH	RSI
 	PUSH	RDI
-	MOV	RSI,U64 SF_ARG1[RBP]
-	OR	RSI,RSI
+	MOV	RSI,U64 SF_ARG2[RBP]
+	TEST	RSI,RSI
 	JZ	@@25
-	MOV	RDI,U64 SF_ARG2[RBP]
-	OR	RDI,RDI
+	MOV	RDI,U64 SF_ARG1[RBP]
+	TEST	RDI,RDI
 	JZ	@@25
 	MOV	AL,U8 [RDI]
 	CALL	TO_UPPER
 	MOV	DL,AL
-	OR	DL,DL
+	TEST	DL,DL
 	JZ	@@20
 	JMP	@@10
 @@05:	INC	RSI
 @@10:	LODSB
 	CALL	TO_UPPER
-	OR	AL,AL
+	TEST	AL,AL
 	JZ	@@25
 	CMP	AL,DL
 	JNE	@@10
@@ -306,7 +314,7 @@ _STRISTR::
 	MOV	RCX,1
 @@15:	MOV	AL,U8 [RDI+RCX]
 	CALL	TO_UPPER
-	OR	AL,AL
+	TEST	AL,AL
 	JZ	@@20
 	MOV	BL,U8 [RSI+RCX]
 	XCHG	AL,BL
@@ -329,8 +337,8 @@ _extern _STRCMP I64 StrCmp(U8 *st1,U8 *st2);
 _extern _STRICMP I64 StrICmp(U8 *st1,U8 *st2);
 _extern _STRNCMP I64 StrNCmp(U8 *st1,U8 *st2,I64 n);
 _extern _STRNICMP I64 StrNICmp(U8 *st1,U8 *st2,I64 n);
-_extern _STRSTR U8 *StrStr(U8 *st,U8 *pattern);
-_extern _STRISTR U8 *StrIStr(U8 *st,U8 *pattern);
+_extern _STRMATCH U8 *StrMatch(U8 *pattern,U8 *st);
+_extern _STRIMATCH U8 *StrIMatch(U8 *pattern,U8 *st);
 _extern _STRCPY U0 StrCpy(U8 *dst,U8 *src);
 _extern _STRCAT U0 StrCat(U8 *dst,U8 *src);
 
@@ -390,92 +398,73 @@ U32 non_eol_chars_bitmap[16]=
 {0xFFFFDBFE,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
 0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF};
 
-U8 *LstEntryPt(I64 entry_num, U8 *lst)
+U8 *LstSub(I64 sub, U8 *lst)
 {//Point to lst entry.
  //Not especially efficient but handy.  Use an array of U8*'s for efficiency.
   if (!lst) return NULL;
-  while (*lst && entry_num>0) {
+  while (*lst && sub>0) {
     while (*lst)  // Advance to end of cur entry.
       lst++;
     lst++;    // Skip trailing zero
     if (*lst=='@') // Check for '@' alias lst entry
       lst++;
     else
-      entry_num--;
+      sub--;
   }
-  if (entry_num||!*lst)
+  if (sub||!*lst)
     return NULL;
   else
     return lst;
 }
 
-I64 LstEntryMatch(U8 *src, U8 *lst,I64 flags=0,I64 *_ambiguity_overkill=NULL)
-// RETURNS: -2 if Ambiguous, -1 if not found, else entry_num
+I64 LstMatch(U8 *pattern, U8 *lst,I64 flags=0)
+// RETURNS: -2 if Ambiguous, -1 if not found, else entry num
 { //Not especially efficient but handy.  Use hash tables for efficiency.
-  I64 n,entry_num=0,result=-1,unutilized_src;
-  U8 *s;
+  I64 n,sub=0,result=-1;
+  U8 *ptr;
   Bool exact_match=FALSE;
-
-  if (!lst) goto lm_done;
-  n=StrLen(src);
-  if (_ambiguity_overkill)
-    *_ambiguity_overkill=n;
+  if (!lst) return -1;
+  n=StrLen(pattern);
   while (*lst) {
     if (*lst=='@') { //Check for '@' alias lst entry
-      entry_num--;
+      sub--;
       lst++;
     }
-
-    s=src;
-    if (flags & LEF_IGNORE_CASE)
-      while (*s && ToUpper(*s)==ToUpper(*lst)) {
-	s++;
+    ptr=pattern;
+    if (flags & LMF_IGNORE_CASE)
+      while (*ptr && ToUpper(*ptr)==ToUpper(*lst)) {
+	ptr++;
 	lst++;
       }
     else
-      while (*s && *s==*lst) {
-	s++;
+      while (*ptr && *ptr==*lst) {
+	ptr++;
 	lst++;
       }
-    unutilized_src=n-(s-src);
-    if (!*s) {	  // Did we reach end of src
-      if (!*lst) {  // Did we reach end of lst entrycount
-	if (!_ambiguity_overkill)
-	  return entry_num;  // Found Exact match
-	result=entry_num;
-	exact_match=TRUE;
-      } else {
+    if (!*ptr) {	  // Did we reach end of pattern
+      if (!*lst)  // Did we reach end of lst entrycount
+	return sub;  // Found Exact match
+      else {
 	if (result!=-1) {
-	  if (_ambiguity_overkill)
-	    *_ambiguity_overkill=0;
 	  if (!exact_match)
 	    result=-2; // AMBIGUOUS RESPONSE unless later exact match
 	} else {
-	  if (!(flags & LEF_EXACT))
-	    result=entry_num;
+	  if (!(flags & LMF_EXACT))
+	    result=sub;
 	}
       }
-    } else {
-      if (_ambiguity_overkill && *_ambiguity_overkill>unutilized_src-1)
-	*_ambiguity_overkill=unutilized_src-1;
     }
-
     while (*lst)  // Advance to end of cur entry.
       lst++;
     lst++;    // Skip trailing zero
-    entry_num++;
+    sub++;
   }
-lm_done:
-  if (_ambiguity_overkill && result==-1)
-    *_ambiguity_overkill=0;
   return result;
 }
 
 U0 UndefinedDefine(U8 *name)
 {
-  ST_ERR_ST "Undefined Define: '";
-  "" name;
-  "'.\n";
+  ST_ERR_ST "Undefined Define: '%s'.\n",name;
   throw(EXCEPT_UNDEF_DEFINE,name);
 }
 
@@ -516,23 +505,21 @@ I64 DefineSubCnt(U8 *name)
     return -1;
 }
 
-I64 DefineMatch(U8 *src,U8 *lst_name,
-  I64 flags=0,I64 *_ambiguity_overkill=NULL)
+I64 DefineMatch(U8 *pattern,U8 *lst_name,I64 flags=0)
 {
-  return LstEntryMatch(src,Define(lst_name),
-    flags,_ambiguity_overkill);
+  return LstMatch(pattern,Define(lst_name),flags);
 }
 
 U0 PutDefine(U8 *name)
 {
-  "" Define(name);
+  "%s",Define(name);
 }
 
 U0 GetOutOfDollar()
 {
   CDoc *doc;
   if (IsRaw) {
-    if (sys_raw_dc_flags&RDCF_IN_DOLLAR)
+    if (sys_raw_flags&RWF_IN_DOLLAR)
       '$$';
   } else {
     if (fp_doc_put && (doc=(*fp_doc_put)(Fs)) && doc->flags&DOCF_IN_DOLLAR)
@@ -556,20 +543,14 @@ U0 PutErr(U8 *st=NULL)
 {
   GetOutOfDollar;
   PutDefine("ST_ERR");
-  if (st) {
-    "" st;
-    NewLine;
-  }
+  if (st) "%s\n",st;
 }
 
 U0 PutWarn(U8 *st=NULL)
 {
   GetOutOfDollar;
   PutDefine("ST_WARN");
-  if (st) {
-    "" st;
-    NewLine;
-  }
+  if (st) "%s\n",st;
 }
 
 U0 PutDefineErr(U8 *st)
@@ -600,15 +581,10 @@ Bool YorN()
   }
 }
 
-Bool PressAKey()
+I64 PressAKey()
 {
-  I64 ch;
   PutDefine("ST_PRESS_A_KEY");
-  ch=GetChar(,FALSE);
-  if (ch==CH_SHIFT_ESC || ch==CH_ESC)
-    return FALSE;
-  else
-    return TRUE;
+  return GetChar(,FALSE);
 }
 
 Bool AreYouSure()
@@ -910,18 +886,18 @@ U8 *StrLastRem(U8 *src,U8 *marker,U8 *dst=NULL)
   return dst;
 }
 
-U8 *SearchStr(U8 *src,U8 *pattern,I64 flags=0)
+U8 *StrFind(U8 *pattern,U8 *src,I64 flags=0)
 {
   Bool cont;
   U8 *saved_src=src;
   I64 plen=StrLen(pattern);
   do {
     cont=FALSE;
-    if (flags & SRF_IGNORE_CASE)
-      src=StrIStr(src,pattern);
+    if (flags & SFF_IGNORE_CASE)
+      src=StrIMatch(pattern,src);
     else
-      src=StrStr(src,pattern);
-    if (src && flags & SRF_WHOLE_LABELS_FRONT) {
+      src=StrMatch(pattern,src);
+    if (src && flags & SFF_WHOLE_LABELS_FRONT) {
       if (src!=saved_src) {
 	if (Bt(alpha_numeric_bitmap,*(src-1))) {
 	  src++;
@@ -932,7 +908,7 @@ U8 *SearchStr(U8 *src,U8 *pattern,I64 flags=0)
 	}
       }
     }
-    if (src && flags & SRF_WHOLE_LABELS_BACK) {
+    if (src && flags & SFF_WHOLE_LABELS_BACK) {
       if (Bt(alpha_numeric_bitmap,*(src+plen))) {
 	src++;
 	if (*src)
@@ -945,12 +921,12 @@ U8 *SearchStr(U8 *src,U8 *pattern,I64 flags=0)
   return src;
 }
 
-Bool WildCardMatch(U8 *wild,U8 *src)
+Bool WildMatch(U8 *pattern,U8 *wild)
 {
   I64 ch1,ch2;
   U8 *fall_back_src=NULL,*fall_back_wild=NULL;
   while (TRUE) {
-    if (!(ch1=*src++)) {
+    if (!(ch1=*pattern++)) {
       if (*wild && *wild!='*')
 	return FALSE;
       else
@@ -961,17 +937,17 @@ Bool WildCardMatch(U8 *wild,U8 *src)
       else {
 	if (ch2=='*') {
 	  fall_back_wild=wild-1;
-	  fall_back_src=src;
+	  fall_back_src=pattern;
 	  if (!(ch2=*wild++))
 	    return TRUE;
 	  while (ch2!=ch1)
-	    if (!(ch1=*src++))
+	    if (!(ch1=*pattern++))
 	      return FALSE;
 	} else
 	  if (ch2!='?' && ch1!=ch2) {
 	    if (fall_back_wild) {
 	      wild=fall_back_wild;
-	      src=fall_back_src;
+	      pattern=fall_back_src;
 	      fall_back_wild=NULL;
 	      fall_back_src=NULL;
 	    } else
@@ -1054,7 +1030,7 @@ ai_skip:
     return result;
 }
 
-U0 GetFFlags(U8 *f,U8 *lst,U8 *st)
+U0 ScanFlags(U8 *f,U8 *lst,U8 *st)
 {
   I64 i;
   U8 *st2,*ptr;
@@ -1070,7 +1046,7 @@ U0 GetFFlags(U8 *f,U8 *lst,U8 *st)
 	  while (*st && *st!='+' && *st!='-' && *st!=CH_SPACE && *st!=CH_SHIFT_SPACE)
 	    *ptr++=*st++;
 	  *ptr=0;
-	  i=LstEntryMatch(st2,lst);
+	  i=LstMatch(st2,lst);
 	  if (i>=0)
 	    LBts(f,i);
 	  else {
@@ -1085,7 +1061,7 @@ U0 GetFFlags(U8 *f,U8 *lst,U8 *st)
 	  while (*st && *st!='+' && *st!='-' && *st!=CH_SPACE && *st!=CH_SHIFT_SPACE)
 	    *ptr++=*st++;
 	  *ptr=0;
-	  i=LstEntryMatch(st2,lst);
+	  i=LstMatch(st2,lst);
 	  if (i>=0)
 	    LBtr(f,i);
 	  else {
@@ -1099,19 +1075,19 @@ U0 GetFFlags(U8 *f,U8 *lst,U8 *st)
   }
 }
 
-U8 *SPrintFFlags(U8 *dst,U8 *lst,I64 flags)
+U8 *SPrintFlags(U8 *dst,U8 *lst,I64 flags)
 {
   I64 i;
   *dst=0;
   for (i=0;i<=63;i++)
     if (Bt(&flags,i)) {
       StrCat(dst,"+");
-      StrCat(dst,LstEntryPt(i,lst));
+      StrCat(dst,LstSub(i,lst));
     }
   return dst;
 }
 
-U0 SPrintFPutChar(U8 **_dst,U8 ch,U8 **_buf)
+U0 SPutChar(U8 **_dst,U8 ch,U8 **_buf)
 {
   I64 i;
   U8 *dst=*_dst,*buf;
@@ -1141,18 +1117,18 @@ U0 OutStr(U8 *ptr,U8 **_buf,U8 **_dst,
     i=len;
   if (left_justify) {
     for (j=0;j>6&7+'0',_buf);
-	    SPrintFPutChar(_dst,'$$'>>3&7+'0',_buf);
-	    SPrintFPutChar(_dst,'$$'&7+'0',_buf);
+	    SPutChar(_dst,'\\',_buf);
+	    SPutChar(_dst,'$$'>>6&7+'0',_buf);
+	    SPutChar(_dst,'$$'>>3&7+'0',_buf);
+	    SPutChar(_dst,'$$'&7+'0',_buf);
 	  } else {
-	    SPrintFPutChar(_dst,ch,_buf);
-	    SPrintFPutChar(_dst,ch,_buf);
+	    SPutChar(_dst,ch,_buf);
+	    SPutChar(_dst,ch,_buf);
 	  }
 	  break;
 	case '\n':
-	  SPrintFPutChar(_dst,'\\',_buf);
-	  SPrintFPutChar(_dst,'n',_buf);
+	  SPutChar(_dst,'\\',_buf);
+	  SPutChar(_dst,'n',_buf);
 	  break;
 	case '\r':
-	  SPrintFPutChar(_dst,'\\',_buf);
-	  SPrintFPutChar(_dst,'r',_buf);
+	  SPutChar(_dst,'\\',_buf);
+	  SPutChar(_dst,'r',_buf);
 	  break;
 	case '\t':
-	  SPrintFPutChar(_dst,'\\',_buf);
-	  SPrintFPutChar(_dst,'t',_buf);
+	  SPutChar(_dst,'\\',_buf);
+	  SPutChar(_dst,'t',_buf);
 	  break;
 	case '"':
 	case '\\':
-	  SPrintFPutChar(_dst,'\\',_buf);
-	  SPrintFPutChar(_dst,ch,_buf);
+	  SPutChar(_dst,'\\',_buf);
+	  SPutChar(_dst,ch,_buf);
 	  break;
 	default:
 	  if (CH_SHIFT_SPACE<=ch<=0x7F) {
-	    SPrintFPutChar(_dst,ch,_buf);
+	    SPutChar(_dst,ch,_buf);
 	  } else {
-	    SPrintFPutChar(_dst,'\\',_buf);
-	    SPrintFPutChar(_dst,ch>>6&7+'0',_buf);
-	    SPrintFPutChar(_dst,ch>>3&7+'0',_buf);
-	    SPrintFPutChar(_dst,ch&7+'0',_buf);
+	    SPutChar(_dst,'\\',_buf);
+	    SPutChar(_dst,ch>>6&7+'0',_buf);
+	    SPutChar(_dst,ch>>3&7+'0',_buf);
+	    SPutChar(_dst,ch&7+'0',_buf);
 	  }
       }
     }
-  SPrintFPutChar(_dst,0,_buf);
+  SPutChar(_dst,0,_buf);
   return buf;
 }
 
 
-U8 *MSPrintFq(U8 *ptr)
+U8 *MPrintq(U8 *ptr)
 {
   U8 **_buf,*buf,**_dst,*dst;
   I64 i,ch,ch1;
@@ -1221,31 +1197,31 @@ U8 *MSPrintFq(U8 *ptr)
       if (ch=='\\')
 	switch (ch1) {
 	  case 'n':
-	    SPrintFPutChar(_dst,'\n',_buf);
+	    SPutChar(_dst,'\n',_buf);
 	    ptr++;
 	    break;
 	  case 'r':
-	    SPrintFPutChar(_dst,'\r',_buf);
+	    SPutChar(_dst,'\r',_buf);
 	    ptr++;
 	    break;
 	  case '"':
-	    SPrintFPutChar(_dst,'"',_buf);
+	    SPutChar(_dst,'"',_buf);
 	    ptr++;
 	    break;
 	  case '\'':
-	    SPrintFPutChar(_dst,'\'',_buf);
+	    SPutChar(_dst,'\'',_buf);
 	    ptr++;
 	    break;
 	  case '\`':
-	    SPrintFPutChar(_dst,'\`',_buf);
+	    SPutChar(_dst,'\`',_buf);
 	    ptr++;
 	    break;
 	  case '\\':
-	    SPrintFPutChar(_dst,'\\',_buf);
+	    SPutChar(_dst,'\\',_buf);
 	    ptr++;
 	    break;
 	  case 't':
-	    SPrintFPutChar(_dst,'\t',_buf);
+	    SPutChar(_dst,'\t',_buf);
 	    ptr++;
 	    break;
 	  case 'x':
@@ -1263,7 +1239,7 @@ U8 *MSPrintFq(U8 *ptr)
 		break;
 	    }
 	    ptr--;
-	    SPrintFPutChar(_dst,i,_buf);
+	    SPutChar(_dst,i,_buf);
 	    break;
 	  case 'b':
 	  case 'B':
@@ -1277,7 +1253,7 @@ U8 *MSPrintFq(U8 *ptr)
 		break;
 	    }
 	    ptr--;
-	    SPrintFPutChar(_dst,i,_buf);
+	    SPutChar(_dst,i,_buf);
 	    break;
 	  case 'o':
 	  case 'O':
@@ -1296,37 +1272,37 @@ sq_octal:
 		break;
 	    }
 	    ptr--;
-	    SPrintFPutChar(_dst,i,_buf);
+	    SPutChar(_dst,i,_buf);
 	    break;
 	  default:
-	    SPrintFPutChar(_dst,ch,_buf);
+	    SPutChar(_dst,ch,_buf);
 	}
       else if (ch=='$$' && ch1=='$$') {
-	SPrintFPutChar(_dst,ch,_buf);
+	SPutChar(_dst,ch,_buf);
 	ptr++;
       } else {
-	SPrintFPutChar(_dst,ch,_buf);
+	SPutChar(_dst,ch,_buf);
       }
     }
-  SPrintFPutChar(_dst,0,_buf);
+  SPutChar(_dst,0,_buf);
   return buf;
 }
 
-U8 *sprintf_pos_powers_lst=
+U8 *sprint_pos_powers_lst=
 "kilo\0mega\0giga\0tera\0peta\0exa\0zetta\0yotta\0";
-U8 *sprintf_pos_powers_lets=
+U8 *sprint_pos_powers_lets=
 " kMGTPEZY";
 
-U8 *sprintf_neg_powers_lst=
+U8 *sprint_neg_powers_lst=
 "milli\0micro\0nano\0pico\0femto\0atto\0zepto\0yocto\0";
-U8 *sprintf_neg_powers_lets=
+U8 *sprint_neg_powers_lets=
 " mænpfazy";
 
 #define TEMP_BUF_LEN	256
 #define SLOP		8
 
-U8 *SPrintFJoin(U8 *dst,U8 *src,I64 argc,I64 *argv)
-{ //$LK,"printF codes","FA:::/TempleOS/Doc/HolyC.TXT,PrintF_Codes"$
+U8 *SPrintJoin(U8 *dst,U8 *src,I64 argc,I64 *argv)
+{ //$LK,"Print Codes","FA:::/TempleOS/Doc/HolyC.TXT,Print_Codes"$
 /*
 In float formatting, do not exceed 18-digits
 before or after the decimal point
@@ -1343,7 +1319,7 @@ to avoid this.
   U8 *ptr,**_buf,*buf,**_dst,*temp1,temp_buf[TEMP_BUF_LEN];
 
   if (!src)
-    throw(EXCEPT_SPRINTF,0);
+    throw(EXCEPT_SPRINT,0);
   if (dst) {
     _buf=NULL;
     buf=dst;
@@ -1372,7 +1348,7 @@ to avoid this.
       if (*src=='*') {
 	src++;
 	if (cur_arg>=argc)
-	  throw(EXCEPT_SPRINTF,1);
+	  throw(EXCEPT_SPRINT,1);
 	len=argv[cur_arg++];
       }
       dec_len=0;
@@ -1383,7 +1359,7 @@ to avoid this.
 	if (*src=='*') {
 	  src++;
 	  if (cur_arg>=argc)
-	    throw(EXCEPT_SPRINTF,1);
+	    throw(EXCEPT_SPRINT,1);
 	  dec_len=argv[cur_arg++];
 	}
 	has_decimal=TRUE;
@@ -1435,7 +1411,7 @@ sp_in_sub_fmt:
 	  if (*src=='*') {
 	    src++;
 	    if (cur_arg>=argc)
-	      throw(EXCEPT_SPRINTF,1);
+	      throw(EXCEPT_SPRINT,1);
 	    sub_fmt=argv[cur_arg++];
 	  } else {
 	    if (*src=='-') {
@@ -1455,61 +1431,61 @@ sp_in_sub_fmt:
       switch (*src++) {
 	case 's':
 	  if (cur_arg>=argc)
-	    throw(EXCEPT_SPRINTF,1);
+	    throw(EXCEPT_SPRINT,1);
 	  ptr=argv[cur_arg++];
 	  OutStr(ptr,_buf,_dst,len,left_justify,truncate_flag);
 	  break;
 	case 'S':
 	  if (cur_arg>=argc)
-	    throw(EXCEPT_SPRINTF,1);
+	    throw(EXCEPT_SPRINT,1);
 	  ptr=Define(argv[cur_arg++]);
 	  OutStr(ptr,_buf,_dst,len,left_justify,truncate_flag);
 	  break;
 	case 'F':
 	  if (cur_arg>=argc)
-	    throw(EXCEPT_SPRINTF,1);
+	    throw(EXCEPT_SPRINT,1);
 	  ptr=TextFileRead(argv[cur_arg++]);
 	  OutStr(ptr,_buf,_dst,len,left_justify,truncate_flag);
 	  Free(ptr);
 	  break;
 	case 'Q':
 	  if (cur_arg>=argc)
-	    throw(EXCEPT_SPRINTF,1);
-	  ptr=MSPrintFQ(argv[cur_arg++],dollar_flag);
+	    throw(EXCEPT_SPRINT,1);
+	  ptr=MPrintQ(argv[cur_arg++],dollar_flag);
 	  OutStr(ptr,_buf,_dst,len,left_justify,truncate_flag);
 	  Free(ptr);
 	  break;
 	case 'q':
 	  if (cur_arg>=argc)
-	    throw(EXCEPT_SPRINTF,1);
-	  ptr=MSPrintFq(argv[cur_arg++]);
+	    throw(EXCEPT_SPRINT,1);
+	  ptr=MPrintq(argv[cur_arg++]);
 	  OutStr(ptr,_buf,_dst,len,left_justify,truncate_flag);
 	  Free(ptr);
 	  break;
 	case 'z':
 	  if (cur_arg+1>=argc)
-	    throw(EXCEPT_SPRINTF,1);
-	  ptr=LstEntryPt(argv[cur_arg],argv[cur_arg+1]);
+	    throw(EXCEPT_SPRINT,1);
+	  ptr=LstSub(argv[cur_arg],argv[cur_arg+1]);
 	  cur_arg=cur_arg+2;
 	  OutStr(ptr,_buf,_dst,len,left_justify,truncate_flag);
 	  break;
 	case 'Z':
 	  if (cur_arg+1>=argc)
-	    throw(EXCEPT_SPRINTF,1);
+	    throw(EXCEPT_SPRINT,1);
 	  ptr=DefineSub(argv[cur_arg],argv[cur_arg+1]);
 	  cur_arg=cur_arg+2;
 	  OutStr(ptr,_buf,_dst,len,left_justify,truncate_flag);
 	  break;
 	case 'c':
 	  if (cur_arg>=argc)
-	    throw(EXCEPT_SPRINTF,1);
+	    throw(EXCEPT_SPRINT,1);
 	  temp_buf[0](I64)=argv[cur_arg++];
 	  temp_buf[8]	    =0;
 	  OutStr(temp_buf,_buf,_dst,len,left_justify,truncate_flag);
 	  break;
 	case 'C':
 	  if (cur_arg>=argc)
-	    throw(EXCEPT_SPRINTF,1);
+	    throw(EXCEPT_SPRINT,1);
 	  temp_buf[0](I64)=argv[cur_arg++];
 	  temp_buf[8]	    =0;
 	  ptr=temp_buf;
@@ -1521,30 +1497,30 @@ sp_in_sub_fmt:
 	  break;
 	case 'D':
 	  if (cur_arg>=argc)
-	    throw(EXCEPT_SPRINTF,1);
-	  temp1=MSPrintFDate(argv[cur_arg++],sub_fmt);
+	    throw(EXCEPT_SPRINT,1);
+	  temp1=MPrintDate(argv[cur_arg++],sub_fmt);
 	  OutStr(temp1,_buf,_dst,len,left_justify,truncate_flag);
 	  Free(temp1);
 	  break;
 	case 'T':
 	  if (cur_arg>=argc)
-	    throw(EXCEPT_SPRINTF,1);
-	  temp1=MSPrintFTime(argv[cur_arg++],sub_fmt);
+	    throw(EXCEPT_SPRINT,1);
+	  temp1=MPrintTime(argv[cur_arg++],sub_fmt);
 	  OutStr(temp1,_buf,_dst,len,left_justify,truncate_flag);
 	  Free(temp1);
 	  break;
 	case 'P':
 	  if (cur_arg>=argc)
-	    throw(EXCEPT_SPRINTF,1);
+	    throw(EXCEPT_SPRINT,1);
 	  if (truncate_flag)
-	    SPrintFPSect(temp_buf,argv[cur_arg++],len);
+	    SPrintPSect(temp_buf,argv[cur_arg++],len);
 	  else
-	    SPrintFPSect(temp_buf,argv[cur_arg++],0);
+	    SPrintPSect(temp_buf,argv[cur_arg++],0);
 	  OutStr(temp_buf,_buf,_dst,len,left_justify,truncate_flag);
 	  break;
 	case 'd':
 	  if (cur_arg>=argc)
-	    throw(EXCEPT_SPRINTF,1);
+	    throw(EXCEPT_SPRINT,1);
 	  m=argv[cur_arg++];
 	  if (m(I64)<0) {
 	    neg=TRUE;
@@ -1579,22 +1555,22 @@ sp_out_comma_num:
 	      k=0;
 	    if (pad_zero) {
 	      if (neg)
-		SPrintFPutChar(_dst,'-',_buf);
+		SPutChar(_dst,'-',_buf);
 	      comma_cnt=(len-k-i+comma_fmt_cnt-comma_cnt+1)%(comma_fmt_cnt+1)+1;
 	      for (;i=len-k)
 		    break;
 		}
-		SPrintFPutChar(_dst,'0',_buf);
+		SPutChar(_dst,'0',_buf);
 	      }
 	    } else {
 	      for (;i=0;i--)
-	    SPrintFPutChar(_dst,temp_buf[i],_buf);
+	    SPutChar(_dst,temp_buf[i],_buf);
 	  break;
 	case 'u':
 	  if (cur_arg>=argc)
-	    throw(EXCEPT_SPRINTF,1);
+	    throw(EXCEPT_SPRINT,1);
 	  m=argv[cur_arg++];
 	  goto sp_out_dec;
 	case 'f':
 	  if (cur_arg>=argc)
-	    throw(EXCEPT_SPRINTF,1);
+	    throw(EXCEPT_SPRINT,1);
 	  d=argv[cur_arg++](F64);
 	  if (d<0) {
 	    neg=TRUE;
@@ -1655,11 +1631,11 @@ sp_out_inf:
 	    if (k<0)
 	      k=0;
 	    for (;i=argc)
-	    throw(EXCEPT_SPRINTF,1);
+	    throw(EXCEPT_SPRINT,1);
 	  d=argv[cur_arg++](F64);
 	  if (d<0) {
 	    neg=TRUE;
@@ -1795,7 +1771,7 @@ sp_out_e:
 	  if (!len) len=12;
 	  truncate_flag=TRUE;
 	  if (cur_arg>=argc)
-	    throw(EXCEPT_SPRINTF,1);
+	    throw(EXCEPT_SPRINT,1);
 	  d=argv[cur_arg++](F64);
 	  if (d<0) {
 	    neg=TRUE;
@@ -1814,7 +1790,7 @@ sp_out_e:
 	  if (!len) len=12;
 	  truncate_flag=TRUE;
 	  if (cur_arg>=argc)
-	    throw(EXCEPT_SPRINTF,1);
+	    throw(EXCEPT_SPRINT,1);
 	  d=argv[cur_arg++](F64);
 	  k_flag=TRUE;
 	  if (d<0) {
@@ -1870,9 +1846,9 @@ sp_out_eng: //Engineering notation
 		i=sub_fmt/3;
 	      }
 	      if (i<0)
-		temp_buf[k++]=sprintf_neg_powers_lets[-i];
+		temp_buf[k++]=sprint_neg_powers_lets[-i];
 	      else if (i>0)
-		temp_buf[k++]=sprintf_pos_powers_lets[i];
+		temp_buf[k++]=sprint_pos_powers_lets[i];
 	      else if (len!=0)
 		temp_buf[k++]=CH_SPACE;
 	      if (!has_decimal) {
@@ -1932,7 +1908,7 @@ sp_out_eng: //Engineering notation
 	  goto sp_out_f;
 	case 'X':
 	  if (cur_arg>=argc)
-	    throw(EXCEPT_SPRINTF,1);
+	    throw(EXCEPT_SPRINT,1);
 	  m=argv[cur_arg++];
 	  if (comma_flag) {
 	    comma_fmt_cnt=comma_cnt=4;
@@ -1959,7 +1935,7 @@ sp_out_eng: //Engineering notation
 	  }
 	case 'x':
 	  if (cur_arg>=argc)
-	    throw(EXCEPT_SPRINTF,1);
+	    throw(EXCEPT_SPRINT,1);
 	  m=argv[cur_arg++];
 	  if (comma_flag) {
 	    comma_fmt_cnt=comma_cnt=4;
@@ -1987,7 +1963,7 @@ sp_out_eng: //Engineering notation
 	case 'b':
 	case 'B':
 	  if (cur_arg>=argc)
-	    throw(EXCEPT_SPRINTF,1);
+	    throw(EXCEPT_SPRINT,1);
 	  m=argv[cur_arg++];
 	  if (comma_flag) {
 	    comma_fmt_cnt=comma_cnt=4;
@@ -2011,7 +1987,7 @@ sp_out_eng: //Engineering notation
 	case 'o':
 	case 'O':
 	  if (cur_arg>=argc)
-	    throw(EXCEPT_SPRINTF,1);
+	    throw(EXCEPT_SPRINT,1);
 	  m=argv[cur_arg++];
 	  if (comma_flag) {
 	    comma_fmt_cnt=comma_cnt=3;
@@ -2033,19 +2009,19 @@ sp_out_eng: //Engineering notation
 	    goto sp_out_num;
 	  }
 	case '%':
-	  SPrintFPutChar(_dst,'%',_buf);
+	  SPutChar(_dst,'%',_buf);
 	  break;
       }
     } else
-      SPrintFPutChar(_dst,ch,_buf);
+      SPutChar(_dst,ch,_buf);
   }
-  SPrintFPutChar(_dst,0,_buf);
+  SPutChar(_dst,0,_buf);
   return buf;
 }
 
-U8 *SPrintF(U8 *dst,U8 *fmt,...)
-{ //See $LK,"SPrintFJoin","MN:SPrintFJoin"$()
-  return SPrintFJoin(dst,fmt,argc,argv);
+U8 *SPrint(U8 *dst,U8 *fmt,...)
+{ //See $LK,"SPrintJoin","MN:SPrintJoin"$()
+  return SPrintJoin(dst,fmt,argc,argv);
 }
 
 /*
@@ -2097,7 +2073,7 @@ CDate A2Date(U8 *_src)
     p1++;
     if (*p1=='+' || *p1=='-')
       result.date=A2I(p1,10,&p1);
-    result+=GetCurTimeDate+local_time_offset;
+    result+=GetDateTime+local_time_offset;
   } else {
     StrFirstRem(p1,"/",v); //Put mon into v
     ds.mon=A2I(v);
@@ -2109,7 +2085,7 @@ CDate A2Date(U8 *_src)
 	ds.year+=2000;
     } else {
       ds.day_of_mon=A2I(p1,10,&p1);
-      Date2DateStruct(&ds1,GetCurTimeDate+local_time_offset);
+      Date2DateStruct(&ds1,GetDateTime+local_time_offset);
       ds.year=ds1.year;
     }
     result=DateStruct2Date(&ds);
@@ -2217,7 +2193,7 @@ a2f_end:
     return d;
 }
 
-U8 *GetFJoin(U8 *src,U8 *fmt,I64i argc,I64i *argv)
+U8 *ScanJoin(U8 *src,U8 *fmt,I64i argc,I64i *argv)
 //Pass ptr to data,
 //For %s pass ptr to ptr (be careful because addr
 //of array is the same as array--create ptr to array and take addr
@@ -2227,7 +2203,7 @@ U8 *GetFJoin(U8 *src,U8 *fmt,I64i argc,I64i *argv)
   I64 cur_arg=0,i,len,*i_ptr,dec_len;
   F64 *d_ptr;
   if (!fmt)
-    throw(EXCEPT_GETF,0);
+    throw(EXCEPT_SCAN,0);
   while (ch = *fmt++) {
     if (ch=='%') {
       if (*fmt=='%') {
@@ -2245,7 +2221,7 @@ U8 *GetFJoin(U8 *src,U8 *fmt,I64i argc,I64i *argv)
 	if (*fmt=='*') {
 	  fmt++;
 	  if (cur_arg>=argc)
-	    throw(EXCEPT_GETF,1);
+	    throw(EXCEPT_SCAN,1);
 	  len=argv[cur_arg++];
 	}
 	ch=*fmt++;
@@ -2262,7 +2238,7 @@ U8 *GetFJoin(U8 *src,U8 *fmt,I64i argc,I64i *argv)
 	    if (*fmt=='*') {
 	      fmt++;
 	      if (cur_arg>=argc)
-		throw(EXCEPT_GETF,1);
+		throw(EXCEPT_SCAN,1);
 	      dec_len=argv[cur_arg++];
 	    }
 	    ch=*fmt++;
@@ -2275,49 +2251,49 @@ U8 *GetFJoin(U8 *src,U8 *fmt,I64i argc,I64i *argv)
 	switch (ch) {
 	  case 's':
 	    if (cur_arg>=argc)
-	      throw(EXCEPT_GETF,1);
+	      throw(EXCEPT_SCAN,1);
 	    pptr=argv[cur_arg++];
 	    StrCpy(*pptr,buf);
 	    break;
 	  case 'c':
 	    if (cur_arg>=argc)
-	      throw(EXCEPT_GETF,1);
+	      throw(EXCEPT_SCAN,1);
 	    ptr=argv[cur_arg++];
 	    *ptr=*buf;
 	    break;
 	  case 'C':
 	    if (cur_arg>=argc)
-	      throw(EXCEPT_GETF,1);
+	      throw(EXCEPT_SCAN,1);
 	    ptr=argv[cur_arg++];
 	    *ptr=ToUpper(*buf);
 	    break;
 	  case 'z':
 	    if (cur_arg+1>=argc)
-	      throw(EXCEPT_GETF,1);
+	      throw(EXCEPT_SCAN,1);
 	    i_ptr=argv[cur_arg++];
-	    *i_ptr=LstEntryMatch(buf,argv[cur_arg++]);
+	    *i_ptr=LstMatch(buf,argv[cur_arg++]);
 	    break;
 	  case 'Z':
 	    if (cur_arg+1>=argc)
-	      throw(EXCEPT_GETF,1);
+	      throw(EXCEPT_SCAN,1);
 	    i_ptr=argv[cur_arg++];
 	    *i_ptr=DefineMatch(buf,argv[cur_arg++]);
 	    break;
 	  case 'd':
 	    if (cur_arg>=argc)
-	      throw(EXCEPT_GETF,1);
+	      throw(EXCEPT_SCAN,1);
 	    i_ptr=argv[cur_arg++];
 	    *i_ptr=A2I(buf);
 	    break;
 	  case 'X':
 	    if (cur_arg>=argc)
-	      throw(EXCEPT_GETF,1);
+	      throw(EXCEPT_SCAN,1);
 	    i_ptr=argv[cur_arg++];
 	    *i_ptr=A2I(buf,16);
 	    break;
 	  case 'b':
 	    if (cur_arg>=argc)
-	      throw(EXCEPT_GETF,1);
+	      throw(EXCEPT_SCAN,1);
 	    i_ptr=argv[cur_arg++];
 	    *i_ptr=A2I(buf,2);
 	    break;
@@ -2326,13 +2302,13 @@ U8 *GetFJoin(U8 *src,U8 *fmt,I64i argc,I64i *argv)
 	  case 'g':
 	  case 'n':
 	    if (cur_arg>=argc)
-	      throw(EXCEPT_GETF,1);
+	      throw(EXCEPT_SCAN,1);
 	    d_ptr=argv[cur_arg++];
 	    *d_ptr=A2F64(buf);
 	    break;
 	  case 'D':
 	    if (cur_arg>=argc)
-	      throw(EXCEPT_GETF,1);
+	      throw(EXCEPT_SCAN,1);
 	    i_ptr=argv[cur_arg++];
 	    *i_ptr=A2Date(buf);
 	    break;
@@ -2345,51 +2321,51 @@ U8 *GetFJoin(U8 *src,U8 *fmt,I64i argc,I64i *argv)
   return src;
 }
 
-U8 *GetF(U8 *src,U8 *fmt,...)
+U8 *Scan(U8 *src,U8 *fmt,...)
 //Pass ptr to data,
 //For %s pass ptr to ptr (be careful because addr
 //of array is the same as array--create ptr to array and take addr
 {
-  return GetFJoin(src,fmt,argc,argv);
+  return ScanJoin(src,fmt,argc,argv);
 }
 
 
-U0 PrintF(U8 *fmt,...)
-{//$LK,"PrintF Extended Codes","FA:::/TempleOS/Doc/HolyC.TXT,PrintF_Codes"$
- //See $LK,"SPrintFJoin","MN:SPrintFJoin"$()
-  U8 *buf=SPrintFJoin(NULL,fmt,argc,argv);
-  "" buf;
+U0 Print(U8 *fmt,...)
+{//$LK,"Print Extended Codes","FA:::/TempleOS/Doc/HolyC.TXT,Print_Codes"$
+ //See $LK,"SPrintJoin","MN:SPrintJoin"$()
+  U8 *buf=SPrintJoin(NULL,fmt,argc,argv);
+  PutS(buf);
   Free(buf);
 }
 
-U8 *MSPrintF(U8 *fmt,...)
-{ //See $LK,"SPrintFJoin","MN:SPrintFJoin"$()
-  U8 *result,*buf=SPrintFJoin(NULL,fmt,argc,argv);
+U8 *MPrint(U8 *fmt,...)
+{ //See $LK,"SPrintJoin","MN:SPrintJoin"$()
+  U8 *result,*buf=SPrintJoin(NULL,fmt,argc,argv);
   result=StrNew(buf);
   Free(buf);
   return result;
 }
 
-U0 DefinePrintF(U8 *name,U8 *src,...)
+U0 DefinePrint(U8 *name,U8 *src,...)
 {
-  U8 *buf=SPrintFJoin(NULL,src,argc,argv);
+  U8 *buf=SPrintJoin(NULL,src,argc,argv);
   DefineLoad(name,buf);
   Free(buf);
 }
 
-U0 PrintFErr(U8 *fmt,...)
+U0 PrintErr(U8 *fmt,...)
 {
-  U8 *buf=SPrintFJoin(NULL,fmt,argc,argv);
+  U8 *buf=SPrintJoin(NULL,fmt,argc,argv);
   PutErr;
-  "" buf;
+  "%s",buf;
   Free(buf);
 }
 
-U0 PrintFWarn(U8 *fmt,...)
+U0 PrintWarn(U8 *fmt,...)
 {
-  U8 *buf=SPrintFJoin(NULL,fmt,argc,argv);
+  U8 *buf=SPrintJoin(NULL,fmt,argc,argv);
   PutWarn;
-  "" buf;
+  "%s",buf;
   Free(buf);
 }
 
diff --git a/TempleOS/Kernel/Task1a.CPP b/TempleOS/Kernel/Task1a.CPP
index aaab46f..75869eb 100644
--- a/TempleOS/Kernel/Task1a.CPP
+++ b/TempleOS/Kernel/Task1a.CPP
@@ -6,9 +6,9 @@ U0 Exit()
   } else {
     if (!Gs->num && !IsInDbg)
       SingleUser(OFF);
-    Fs->rflags=GetFlags;
-    Fs->rsp=GetStkPtr;
-    Fs->rbp=GetBasePtr;
+    Fs->rflags=GetRFlags;
+    Fs->rsp=GetRSP;
+    Fs->rbp=GetRBP;
     Fs->rip=$$;
     Cli;
     LBts(&Fs->task_flags,TASKf_KILL_TASK);
@@ -112,7 +112,7 @@ asm {
     while (argc-->0)
       *--rsp2=*--rsp;
     _stk=&Fs->stk;
-    temps->stk_ptr=rsp=GetStkPtr;
+    temps->stk_ptr=rsp=GetRSP;
 asm {
 	IMPORT	_FREE;	//We are in a function, not at glbl scope.
 			//The compiler treats these in isolation.
@@ -312,7 +312,7 @@ U0 TaskInitExt(Bool from_dbg=FALSE)
 I64 ExeCmdLine(CLex *lx)
 {
   I64 result=0,i,type,old_title_src=Fs->title_src;
-  U8 *ptr,*ptr2,*ptr3,*code,*old_task_title=StrNew(Fs->task_title);
+  U8 *ptr,*ptr2,*ptr3,*ex,*old_task_title=StrNew(Fs->task_title);
   F64 t0;
   CDocEntry *doc_e;
   CDoc *doc;
@@ -346,11 +346,11 @@ I64 ExeCmdLine(CLex *lx)
 	  MemCpy(ptr2,ptr,TASK_TITLE_LEN);
     }
     lx->flags&=~LF_HAS_MISC_DATA;
-    code=CmpStatement(lx,&type);
-    if (code!=INVALID_PTR) {
+    ex=LexStatement2Bin(lx,&type);
+    if (ex!=INVALID_PTR) {
       if (!(lx->flags&LF_JUST_LOAD)) {
 	t0=tT;
-	result=Call(code);
+	result=Call(ex);
 	for (i=2;i>=0;i--) {
 	  Fs->answers[i+1]=Fs->answers[i];
 	  Fs->answer_types[i+1]=Fs->answer_types[i];
@@ -361,7 +361,7 @@ I64 ExeCmdLine(CLex *lx)
 	Fs->answer_times[0]=tT-t0;
       }
       if (!(lx->flags&LF_HAS_MISC_DATA))
-	Free(code);
+	ExpressionBinDel(ex);
     }
   }
   if (Fs->title_src!=TTS_LOCKED_CONST) {
@@ -429,7 +429,7 @@ CTask *SpawnUser(U8 *fmt=NULL,...)
   CTask *task=Spawn(&UserCmdLine);
   TaskWait(task);
   if (fmt) {
-    st=SPrintFJoin(NULL,fmt,argc,argv);
+    st=SPrintJoin(NULL,fmt,argc,argv);
     XTalk(task,st);
     Free(st);
   }
diff --git a/TempleOS/Kernel/Utils1a.CPP b/TempleOS/Kernel/Utils1a.CPP
index 51eabe7..a5014d4 100644
--- a/TempleOS/Kernel/Utils1a.CPP
+++ b/TempleOS/Kernel/Utils1a.CPP
@@ -93,7 +93,7 @@ _BEQU::
 	MOV	RDX,U64 SF_ARG3[RBP]
 	MOV	RBX,U64 SF_ARG1[RBP]
 	MOV	RCX,U64 SF_ARG2[RBP]
-	OR	RDX,RDX
+	TEST	RDX,RDX
 	JZ	@@5
 	BTS	U64 [RBX],RCX
 	JMP	@@10
@@ -108,7 +108,7 @@ _LBEQU::
 	MOV	RDX,U64 SF_ARG3[RBP]
 	MOV	RBX,U64 SF_ARG1[RBP]
 	MOV	RCX,U64 SF_ARG2[RBP]
-	OR	RDX,RDX
+	TEST	RDX,RDX
 	JZ	@@5
 	LOCK
 	BTS	U64 [RBX],RCX
@@ -146,7 +146,7 @@ _LIMIT_U64::
 _CALL::
 	ENTER	0
 	MOV	RAX,U64 SF_ARG1[RBP]
-	OR	RAX,RAX
+	TEST	RAX,RAX
 	JZ	@@05
 	CALL	RAX
 @@05:	LEAVE
@@ -335,7 +335,7 @@ _CALLIND::
 	SUB	RSP,RCX
 	MOV	RDI,RSP
 	REP_MOVSB
-@@05:	OR	RDX,RDX
+@@05:	TEST	RDX,RDX
 	JZ	@@15
 	CALL	RDX
 @@10:	POP	RDI
@@ -365,7 +365,7 @@ _CALLEXTNUM::
 	REP_MOVSB
 @@05:	MOV	RAX,U64 [SYS_EXTERN_TABLE]
 	MOV	RAX,U64 [RAX+RDX*8]
-	OR	RAX,RAX
+	TEST	RAX,RAX
 	JZ	@@15
 	CALL	RAX
 @@10:	POP	RDI
@@ -394,7 +394,7 @@ _CALLEXTSTR::
 	REP_MOVSB
 @@05:	MOV	RSI,U64 SF_ARG1[RBP]
 	CALL	SYS_EXT_FIND1
-	OR	RAX,RAX
+	TEST	RAX,RAX
 	JZ	@@15
 	CALL	RAX
 @@10:	POP	RDI
diff --git a/TempleOS/Misc/Dollar.CPP b/TempleOS/Misc/Dollar.CPP
index 908d0eb..4d79427 100644
--- a/TempleOS/Misc/Dollar.CPP
+++ b/TempleOS/Misc/Dollar.CPP
@@ -1,31 +1,20 @@
-U0 DollarFile(CDirEntry *m1)
-{
-  CDoc *doc;
-  while (m1) {
-    if (m1->attr & _ATTR_DIR)
-      DollarFile(m1->sub);
-    else {
-      "" m1->full_name;
-      NewLine;
-      doc=DocRead(m1->full_name,DOCF_PLAIN_TEXT|DOCF_DBL_DOLLARS);
-      DocWrite(doc);
-      DocDel(doc);
-    }
-    m1=m1->next;
-  }
-}
-
-
 public U0 Dollar(U8 *files_find_mask,U8 *fu_flags=NULL)
 //This is for importing non-"TempleOS" text files.
 //$BK,1$WARNING:$BK,0$Do not use on files with dollar cmds
 // or on binary files. See $LK,"FilesFind","MN:FilesFind"$() for flags.
 {
-  CDirEntry *tempm1=NULL;
+  CDoc *doc;
   I64 fuf_flags=0;
-  GetFFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),"+r");
-  GetFFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),fu_flags);
-  tempm1=FilesFind(files_find_mask,fuf_flags);
-  DollarFile(tempm1);
-  CDirLstDel(tempm1);
+  CDirEntry *tempde,*tempde1;
+  ScanFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),"+r+f+F");
+  ScanFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),fu_flags);
+  tempde=tempde1=FilesFind(files_find_mask,fuf_flags);
+  while (tempde) {
+    "%s\n",tempde->full_name;
+    doc=DocRead(tempde->full_name,DOCF_PLAIN_TEXT|DOCF_DBL_DOLLARS);
+    DocWrite(doc);
+    DocDel(doc);
+    tempde=tempde->next;
+  }
+  DirLstDel(tempde1);
 }
diff --git a/TempleOS/Misc/OSTestSuite.CPP b/TempleOS/Misc/OSTestSuite.CPP
index cd6fbb4..fb8f1da 100644
--- a/TempleOS/Misc/OSTestSuite.CPP
+++ b/TempleOS/Misc/OSTestSuite.CPP
@@ -6,7 +6,7 @@ U0 TSStart()
 U0 TS()
 {
   progress4=ts_num++;
-  progress4_max=142;
+  progress4_max=144;
   *progress4_desc=0;
 }
 U0 TSEnd()
@@ -27,6 +27,15 @@ U0 DoSpritePlot()
   XTalk(task,"Exit;\n");
 }
 
+U0 DoElephant()
+{
+  CTask *task=SpawnUser;
+  XTalkWait(task,"#include \"::/TempleOS/Demo/Graphics/Elephant\";\n");
+  Sleep(1000);
+  SendMsg(task,MSG_KEY_DOWN_UP,CH_SHIFT_ESC,0);
+  XTalk(task,"Exit;\n");
+}
+
 U0 DoSpritePlot3D()
 {
   CTask *task=SpawnUser;
@@ -749,6 +758,12 @@ U0 DoScreenCodes()
   XTalk(task,"Exit;\n");
 }
 
+U0 DoPanText()
+{
+  CTask *task=SpawnUser;
+  XTalkWait(task,"#include \"::/TempleOS/Demo/Graphics/PanText\";\nExit;\n");
+}
+
 U0 DoExtendedChars()
 {
   CTask *task=SpawnUser;
@@ -814,10 +829,10 @@ U0 Do()
 
 */
 
-U0 DoMPPrintF()
+U0 DoMPPrint()
 {
   CTask *task=SpawnUser;
-  XTalkWait(task,"#include \"::/TempleOS/Demo/MultiCore/MPPrintF\";\n");
+  XTalkWait(task,"#include \"::/TempleOS/Demo/MultiCore/MPPrint\";\n");
   Sleep(750);
   XTalk(task,"Exit;\n");
 }
@@ -1692,10 +1707,10 @@ U0 Do()
 }
 */
 
-U0 DoPrintF()
+U0 DoPrint()
 {
   CTask *task=SpawnUser;
-  XTalkWait(task,"#include \"::/TempleOS/Demo/PrintF\";\n");
+  XTalkWait(task,"#include \"::/TempleOS/Demo/Print\";\n");
   Sleep(2000);
   XTalk(task,"Exit;\n");
 }
@@ -2013,7 +2028,7 @@ U0 DoReps()
   SendMsg(task,MSG_KEY_DOWN_UP,CH_SPACE,0);
   TS; XTalkWait(task,"ATARep;\npSleep(1000);\n");
   TS; XTalkWait(task,"HashDepthRep(adam_task->hash_table);Sleep(1000);\n");
-  TS; XTalkWait(task,"HAllRep;Sleep(1000);\n");
+  TS; XTalkWait(task,"Who;Sleep(1000);\n");
   TS; XTalkWait(task,"PrtRep;Sleep(1000);\n");
   TS; XTalkWait(task,"TaskRep;Sleep(1000);\n");
   XTalk(task,"Exit;\n");
@@ -2051,10 +2066,11 @@ U0 OSTestSuite()
   TS; DoClouds;
   TS; if (mp_cnt>1) DoRadixSort;
   TS; if (mp_cnt>1) DoLoadTest;
-  TS; if (mp_cnt>1) DoMPPrintF;
+  TS; if (mp_cnt>1) DoMPPrint;
   TS; if (mp_cnt>1) DoLock;
   TS; if (mp_cnt>1) DoInterrupts;
   TS; DoSpritePlot;
+  TS; DoElephant;
   TS; DoSpritePlot3D;
   TS; DoSpritePut;
   TS; DoSpritePutExt;
@@ -2084,7 +2100,7 @@ U0 OSTestSuite()
   TS; DoPick3D;
   TS; DoWhap;
   TS; DoPalette;
-  TS; DoPrintF;
+  TS; DoPrint;
   TS; DoShading;
   TS; DoRotateTank;
   TS; Do3DPoly;
@@ -2114,6 +2130,7 @@ U0 OSTestSuite()
   TS; DoExceptions;
   TS; DoScreenCodes;
   TS; DoExtendedChars;
+  TS; DoPanText;
   TS; DoCharGraphics;
   TS; DoMagicPairs;
   TS; DoHanoi;
@@ -2155,3 +2172,6 @@ U0 OSTestSuite()
 }
 
 OSTestSuite;
+
+//$LK-A,"::/TempleOS/Demo/Carry.CPP.Z"$
+//$LK-A,"::/TempleOS/Demo/Dsk/DskRaw.CPP.Z"$
diff --git a/TempleOS/Misc/SpriteCvt0106.CPP b/TempleOS/Misc/SpriteCvt0106.CPP
new file mode 100644
index 0000000..dfd2ae5
--- /dev/null
+++ b/TempleOS/Misc/SpriteCvt0106.CPP
@@ -0,0 +1,255 @@
+//***************************************************
+DefineLstLoad("ST_SPRITE_TYPES_OLD","End\0 \0Color 8Bit\0 \0Point\0"
+	"Line\0PolyLine\0PolyPoint\0Width\0Shift\0"
+	"BSpline2\0BSpline3\0BSpline2 Closed\0BSpline3 Closed\0"
+	" \0 \0 \0Rect\0Circle\0Flood Fill Not Color\0Flood Fill\0BitMap 8Bit\0"
+	" \0Text\0Ellipse\0Polygon\0Planar Symmetry\0"
+	"Dither Color 8Bit\0Rotated Rect\0Mesh\0Shiftable Mesh\0"
+	"Transform On\0Transform Off\0Arrow\0Text Box\0Text Diamond\0");
+
+#define GRST_END		0
+//Unused
+#define GRST_COLOR8		2
+//Unused
+#define GRST_PT			4
+#define GRST_LINE		5
+#define GRST_POLYLINE		6
+#define GRST_POLYPT		7
+#define GRST_WIDTH		8
+#define GRST_SHIFT		9
+#define GRST_BSPLINE2		10
+#define GRST_BSPLINE3		11
+#define GRST_BSPLINE2_CLOSED	12
+#define GRST_BSPLINE3_CLOSED	13
+//Unused
+//Unused
+//Unused
+#define GRST_RECT		17
+#define GRST_CIRCLE		18
+#define GRST_FLOOD_FILL_NOT	19
+#define GRST_FLOOD_FILL		20
+#define GRST_BITMAP8		21
+//Unused
+#define GRST_TEXT		23
+#define GRST_ELLIPSE		24
+#define GRST_POLYGON		25
+#define GRST_PLANAR_SYMMETRY	26
+#define GRST_DITHER_COLOR8	27
+#define GRST_ROTATED_RECT	28
+#define GRST_MESH		29
+#define GRST_SHIFTABLE_MESH	30
+#define GRST_TRANSFORM_ON	31
+#define GRST_TRANSFORM_OFF	32
+#define GRST_ARROW		33
+#define GRST_TEXT_BOX		34
+#define GRST_TEXT_DIAMOND	35
+#define GRST_NUM_TYPES		36
+
+I64 gr_sprite_base_size_old[GRST_NUM_TYPES]=
+{
+offset(CSprite.x1)-offset(CSprite.start), //GRST_END
+1,
+1+offset(CSprite.color8)-offset(CSprite.start), //GRST_COLOR8
+1,
+offset(CSprite.x2)-offset(CSprite.start), //GRST_PT
+offset(CSprite.linespeed)-offset(CSprite.start), //GRST_LINE
+offset(CSprite.y1)-offset(CSprite.start), //GRST_POLYLINE
+offset(CSprite.y1)-offset(CSprite.start), //GRST_POLYPT
+offset(CSprite.y1)-offset(CSprite.start), //GRST_WIDTH
+offset(CSprite.x2)-offset(CSprite.start), //GRST_SHIFT
+offset(CSprite.y1)-offset(CSprite.start), //GRST_BSPLINE2
+offset(CSprite.y1)-offset(CSprite.start), //GRST_BSPLINE3
+offset(CSprite.y1)-offset(CSprite.start), //GRST_BSPLINE2_CLOSED
+offset(CSprite.y1)-offset(CSprite.start), //GRST_BSPLINE3_CLOSED
+1,
+1,
+1,
+offset(CSprite.linespeed)-offset(CSprite.start), //GRST_RECT
+offset(CSprite.y2)-offset(CSprite.start), //GRST_CIRCLE
+offset(CSprite.x2)-offset(CSprite.start), //GRST_FLOOD_FILL_NOT
+offset(CSprite.x2)-offset(CSprite.start), //GRST_FLOOD_FILL
+offset(CSprite.linespeed)-offset(CSprite.start), //GRST_BITMAP8
+1,
+offset(CSprite.st)-offset(CSprite.start), //GRST_TEXT
+offset(CSprite.sides)-offset(CSprite.start), //GRST_ELLIPSE
+sizeof(CSprite)-offset(CSprite.start), //GRST_POLYGON
+offset(CSprite.linespeed)-offset(CSprite.start), //GRST_PLANAR_SYMMETRY
+2+offset(CSprite.dither_color8)-offset(CSprite.start), //GRST_DITHER_COLOR8
+offset(CSprite.sides)-offset(CSprite.start), //GRST_ROTATED_RECT
+offset(CSprite.x2)-offset(CSprite.start), //GRST_MESH
+offset(CSprite.shiftable_tri_cnt)+sizeof(I32)-offset(CSprite.start), //GRST_SHIFTABLE_MESH
+offset(CSprite.x1)-offset(CSprite.start), //GRST_TRANSFORM_ON
+offset(CSprite.x1)-offset(CSprite.start), //GRST_TRANSFORM_OFF
+offset(CSprite.linespeed)-offset(CSprite.start), //GRST_ARROW
+offset(CSprite.st)-offset(CSprite.start), //GRST_TEXT_BOX
+offset(CSprite.st)-offset(CSprite.start), //GRST_TEXT_DIAMOND
+};
+
+I64 SpriteElemSizeOld(CSprite *tempg)
+{
+  I64 i=gr_sprite_base_size_old[tempg->type];
+  switch (tempg->type) {
+    case GRST_POLYLINE:
+      i+=tempg->num<<1*sizeof(I32);
+      break;
+    case GRST_TEXT:
+    case GRST_TEXT_BOX:
+    case GRST_TEXT_DIAMOND:
+      i+=StrLen(tempg->st)+1;
+      break;
+    case GRST_BITMAP8:
+      i+=((tempg->width+7)&~7)*tempg->height;
+      break;
+    case GRST_POLYPT:
+      i+=sizeof(I32)<<1+(tempg->num*3+7)>>3;
+      break;
+    case GRST_BSPLINE2:
+    case GRST_BSPLINE3:
+    case GRST_BSPLINE2_CLOSED:
+    case GRST_BSPLINE3_CLOSED:
+      i+=tempg->num*sizeof(CD3I32);
+      break;
+    case GRST_MESH:
+      i+=tempg->vertex_cnt*sizeof(CD3I32)+tempg->tri_cnt*sizeof(CMeshTri);
+      break;
+    case GRST_SHIFTABLE_MESH:
+      i+=tempg->shiftable_vertex_cnt*sizeof(CD3I32)+tempg->shiftable_tri_cnt*sizeof(CMeshTri);
+      break;
+  }
+  return i;
+}
+
+public U8 *Sprite2TextOld(CSprite *tempg)
+{ //Study $LK-A,"::/TempleOS/Demo/Graphics/SpriteText.CPP"$.
+  U8 buf[256],buf2[256],buf3[136];
+  I32 *ptr;
+  SPrint(buf,"%Z",tempg->type,"ST_SPRITE_TYPES_OLD");
+  *buf2=0;
+  switch (tempg->type) {
+    case GRST_COLOR8:
+      SPrint(buf2," %s",Color2Text(buf3,tempg->color8));
+      break;
+    case GRST_PT:
+    case GRST_FLOOD_FILL:
+    case GRST_FLOOD_FILL_NOT:
+    case GRST_SHIFT:
+      SPrint(buf2," %d,%d",tempg->x1,tempg->y1);
+      break;
+    case GRST_LINE:
+    case GRST_ARROW:
+    case GRST_PLANAR_SYMMETRY:
+    case GRST_RECT:
+    case GRST_ROTATED_RECT:
+      SPrint(buf2," (%d,%d)-(%d,%d)",
+	  tempg->x1,tempg->y1,tempg->x2,tempg->y2);
+      break;
+    case GRST_CIRCLE:
+      SPrint(buf2," %d,%d:%dR",
+	  tempg->x1,tempg->y1,tempg->x2);
+      break;
+    case GRST_WIDTH:
+      SPrint(buf2," %d",tempg->width);
+      break;
+    case GRST_TEXT:
+    case GRST_TEXT_BOX:
+    case GRST_TEXT_DIAMOND:
+      SPrint(buf2," %d,%d:%-16tQ",tempg->x1,tempg->y1,tempg->st);
+      break;
+    case GRST_DITHER_COLOR8:
+      SPrint(buf2," %s",Color2Text(buf3,ROPF_DITHER|tempg->dither_color8.u8[0]|tempg->dither_color8.u8[1]<y1;
+      SPrint(buf2," %d %d,%d",tempg->num,ptr[0],ptr[1]);
+      break;
+    case GRST_ELLIPSE:
+    case GRST_POLYGON:
+    case GRST_BITMAP8:
+      SPrint(buf2," %dW,%dH:%d,%d",
+	  tempg->width,tempg->height,tempg->x2,tempg->y2);
+      break;
+    case GRST_BSPLINE2:
+    case GRST_BSPLINE3:
+    case GRST_BSPLINE2_CLOSED:
+    case GRST_BSPLINE3_CLOSED:
+      SPrint(buf2," %d",tempg->num);
+      break;
+    case GRST_MESH:
+      SPrint(buf2," %dV,%dT",tempg->vertex_cnt,tempg->tri_cnt);
+      break;
+    case GRST_SHIFTABLE_MESH:
+      SPrint(buf2," %dV,%dT",tempg->shiftable_vertex_cnt,tempg->shiftable_tri_cnt);
+      break;
+  }
+  StrCat(buf,buf2);
+  return StrNew(buf);
+}
+
+I64 cvt_map[36]=
+#define GRST_TEXT		23
+{
+0,-1,1,-1,8,
+10,11,9,
+3,7,17,
+19,18,20,
+-1,-1,-1,
+12,14,22,
+21,23,-1,27,
+15,16,4,
+2,13,24,
+25,5,6,
+26,28,29
+};
+
+U0 SpriteCvt(U8 *elems)
+{
+  CSprite *tempg=elems-offset(CSprite.start);
+  U8 *st;
+  I64 size;
+  while (tempg->type) {
+    st=Sprite2TextOld(tempg);
+    "%s\n",st;
+    Free(st);
+    size=SpriteElemSizeOld(tempg);
+    tempg->type=cvt_map[tempg->type];
+    tempg(U8 *)+=size;
+  }
+}
+
+Bool FileCvt(U8 *name)
+{
+  CDoc *doc;
+  CDocBin *tempb;
+  Bool result=FALSE,old_preempt=Preempt(OFF);
+  doc=DocRead(name);
+  tempb=doc->bin_root.next;
+  while (tempb!=&doc->bin_root) {
+    if (tempb->type==DOCBT_CSPRITE) {
+      result=TRUE;
+      "%s\n",name;
+      SpriteCvt(tempb->data);
+    }
+    tempb=tempb->next;
+  }
+  if (result)
+    DocWrite(doc);
+  DocDel(doc);
+  Preempt(old_preempt);
+  return result;
+}
+
+U0 FilesCvt(U8 *mask)
+{
+  CDirEntry *tempde=FilesFind(mask,FUF_RECURSE|FUF_JUST_TXT|FUF_JUST_FILES),
+	    *tempde1=tempde;
+  Bool old_preempt=Preempt(OFF);
+  while (tempde) {
+    FileCvt(tempde->full_name);
+    tempde=tempde->next;
+  }
+  DirLstDel(tempde1);
+  Preempt(old_preempt);
+}
+
+//FilesCvt("/TempleOS/*");
diff --git a/TempleOS/Misc/Tour/Tour.AUT b/TempleOS/Misc/Tour/Tour.AUT
index d4e2cff..5923c99 100644
--- a/TempleOS/Misc/Tour/Tour.AUT
+++ b/TempleOS/Misc/Tour/Tour.AUT
@@ -2,7 +2,7 @@ public I64 PopUpTourPart()
 {
   I64 i;
   CDoc *doc=DocNew;
-  DocPutS(doc,"$$FG,PURPLE$$TempleOS Tours$$FG$$\n\n"
+  DocPrint(doc,"$$FG,PURPLE$$TempleOS Tours$$FG$$\n\n"
 	"$$CM+LX,4,4$$$$BT,\"Part  1: The basics\",1$$"
 	"$$CM+LX,4,4$$$$BT,\"Part  2: Editing and running programs\",2$$"
 	"$$CM+LX,4,4$$$$BT,\"Part  3: Adding macros to personal menu\",3$$"
@@ -27,7 +27,7 @@ U0 TourMenu()
   while (TRUE) {
     i=PopUpTourPart;
     if (i>=1) {
-      SPrintF(buf,"::/TempleOS/Misc/Tour/Tour%X.AUT",i);
+      SPrint(buf,"::/TempleOS/Misc/Tour/Tour%X.AUT",i);
       ExeFile(buf);
     } else
       break;
diff --git a/TempleOS/Misc/Tour/Tour2.AUT b/TempleOS/Misc/Tour/Tour2.AUT
index 7efc540..f90845b 100644
--- a/TempleOS/Misc/Tour/Tour2.AUT
+++ b/TempleOS/Misc/Tour/Tour2.AUT
@@ -12,7 +12,7 @@ PopUpOk(
 "and the boot drive is specified with \"$$FG,GREEN$$::$$FG$$\".\n\n"
 "$$FG,GREEN$$$$FG$$ to complete the command.\n");
 
-AFDelayedPutS("Cd(\"::/TempleOS/Demo/Games\");Dir;",25);
+AFPrint(25,"Cd(\"::/TempleOS/Demo/Games\");Dir;");
 AFPmtStr("\n");
 
 PopUpOk(
@@ -22,7 +22,7 @@ PopUpOk(
 "type it on the command line.\n\n"
 "$$FG,GREEN$$$$FG$$ to complete the command.\n");
 
-AFDelayedPutS("Ed(\"CastleFrankenstein.CPP.Z\");",25);
+AFPrint(25,"Ed(\"CastleFrankenstein.CPP.Z\");");
 AFPmtStr("\n");
 Msg(MSG_KEY_DOWN_UP,0,SC_CURSOR_UP|SCF_CTRL);
 
@@ -52,7 +52,7 @@ PopUpOk(
 "with cursor keys and $$FG,GREEN$$$$FG$$\n"
 "when you are done.\n");
 
-AFDelayedPutS("#include \"CastleFrankenstein\";",25);
+AFPrint(25,"#include \"CastleFrankenstein\";");
 AFPmtStr("\n");
 AFUntilChar(CH_SHIFT_ESC,CH_ESC);
 
@@ -63,7 +63,7 @@ PopUpOk(
 "$$FG,GREEN$$$$FG$$ at the command line to\n"
 "run it again.\n");
 
-AFDelayedPutS("CastleFrankenstein;",25);
+AFPrint(25,"CastleFrankenstein;");
 AFPmtStr("\n");
 AFUntilChar(CH_SHIFT_ESC,CH_ESC);
 
@@ -79,7 +79,7 @@ PopUpOk(
 "$$FG,GREEN$$$$FG$$\tKill task (window)\n"
 );
 
-AFDelayedPutS("Ed(\"CastleFrankenstein.CPP.Z\");\n",50);
+AFPrint(50,"Ed(\"CastleFrankenstein.CPP.Z\");\n");
 
 PopUpOk(
 "$$FG,GREEN$$$$FG$$ in the editor to run the file being edited.\n"
diff --git a/TempleOS/Misc/Tour/Tour3.AUT b/TempleOS/Misc/Tour/Tour3.AUT
index b54ca86..40d84d8 100644
--- a/TempleOS/Misc/Tour/Tour3.AUT
+++ b/TempleOS/Misc/Tour/Tour3.AUT
@@ -38,11 +38,11 @@ Sleep(1000);
 PopUpOk(
 "Now, we'll fill-in the visible text\n"
 "of the macro.\n");
-AFDelayedPutS("Click Here");
+AFPrint(,"Click Here");
 
 Msg(MSG_KEY_DOWN,0,SC_CURSOR_DOWN);
 PopUpOk("Now, we'll fill-in the macro text.\n");
-AFDelayedPutS("Cd(\"::/TempleOS/Demo/Games\");;#include \"CastleFrankenstein\";\\n");
+AFPrint(,"Cd(\"::/TempleOS/Demo/Games\");;#include \"CastleFrankenstein\";\\n");
 
 PopUpOk("$$FG,GREEN$$$$FG$$ to exit the form.\n");
 AFGetChar(CH_ESC);
@@ -70,9 +70,9 @@ Msg(MSG_KEY_DOWN,0,SC_CURSOR_UP|SCF_CTRL);
 Msg(MSG_KEY_DOWN,CH_CTRLL,0);
 for (i=0;i<6;i++)
   Msg(MSG_KEY_DOWN,0,SC_CURSOR_DOWN);
-AFDelayedPutS(" Click here for Pop-up version");
+AFPrint(," Click here for Pop-up version");
 Msg(MSG_KEY_DOWN,0,SC_CURSOR_DOWN);
-AFDelayedPutS("Cd(\"::/TempleOS/Demo/Games\");;#include \"CastleFrankenstein\";\\n");
+AFPrint(,"Cd(\"::/TempleOS/Demo/Games\");;#include \"CastleFrankenstein\";\\n");
 Msg(MSG_KEY_DOWN,0,SC_CURSOR_LEFT|SCF_CTRL);
 
 PopUpOk(
diff --git a/TempleOS/Misc/Tour/Tour5.AUT b/TempleOS/Misc/Tour/Tour5.AUT
index 9d95cb1..fcd2b62 100644
--- a/TempleOS/Misc/Tour/Tour5.AUT
+++ b/TempleOS/Misc/Tour/Tour5.AUT
@@ -1,4 +1,4 @@
-PopUp("WSInit(\"::/TempleOS/\" FILENAME_MASK_TXT \";~*Bible.TXT*\");");
+PopUp("WSInit(\"::/TempleOS/*;~*Bible.TXT*\");");
 WordStat(ON);
 Sleep(3500);
 
@@ -54,7 +54,7 @@ PopUpOk(
 "to jump to source code.  (I use WordStat.)\n"
 "The $$FG,GREEN$$Man()$$FG$$ is good for short symbol names\n"
 "or when inside the debugger.\n");
-AFDelayedPutS("Man(\"MakeOSInstallPrtBootLoader\");");
+AFPrint(,"Man(\"MakeOSInstallPrtBootLoader\");");
 Sleep(1000);
 "\n";
 
diff --git a/TempleOS/Misc/Tour/Tour7.AUT b/TempleOS/Misc/Tour/Tour7.AUT
index 10fe231..3b06624 100644
--- a/TempleOS/Misc/Tour/Tour7.AUT
+++ b/TempleOS/Misc/Tour/Tour7.AUT
@@ -7,7 +7,7 @@ PopUpOk(
 
 AFGetChar(CH_CTRLF);
 
-AFDelayedPutS("new song",150);
+AFPrint(150,"new song");
 
 PopUpOk("Cursor down 8 times.\n");
 I64 i;
diff --git a/TempleOS/ReadMe.TXT b/TempleOS/ReadMe.TXT
index 85aac34..6bd6bf6 100644
--- a/TempleOS/ReadMe.TXT
+++ b/TempleOS/ReadMe.TXT
@@ -1,4 +1,4 @@
-                           TempleOS
+                           TempleOS
 
 You can't do much until you burn a TempleOS CD-ROM from the ISO file
 and boot it, or you aim your virtual machine at the ISO file and boot.
@@ -17,4 +17,4 @@ difficult for TempleOS to figure-out port numbers, automatically.)
 
 The source code can also be found at the TempleOS web site, 
 http://www.templeos.org but cannot be compiled outside TempleOS because
-it's Holy C, a nonstandard C/C++ dialect, and asm.
+it's HolyC, a nonstandard C/C++ dialect, and asm.