InternalMemo1XEROXToFromImagingInterest^.paMichaelPlassPlass.paSubjectDatePeachPDprintersSeptember24,19849:12:15amPDTPeachPDprintersandhowtousethemWhatisaPeachprinter?APeachprinterisaprinterthatisrunningunderthecontrolofthePeachexperimentalprintersoftware.ThePeachsoftwareiswritteninMesa11andrunsunderthePilotoperatingsystemonaDicentra.TheDicentra(whichisbasicallyastripped-downDandylionrunningonaMultibus)mayormaynothaveadiskattached;ifitdoeshaveone,itisusedonlyasagiantbufferforthepageimage,andhasnofilesystem.PeachprintersprintPDfiles,andnothingelse.OK,thenwhatisaPDfile?APDfileisafileinPrinterDependentformat.See[Indigo]Docs>*.pressforinformationontheformatofPDfilesandhowtoprintthemonAlto/Slotmachines.However,youshouldactuallynotneedtoknowanythingaboutPDfiles,exceptperhapsthattheyareawayforanInterpressimplementationtogetthebitstoaprinter.Also,ifyouareinterestedinmakingVLSIplots,youneedtomakePDfilesdirectlyfromChipNDale,sincewedon'tunderstandyethowtoexpressoverlappingtransparentcolorsinadevice-independentway.WhatPeachprintersarethere?RightnowtherearetwoPeachprinters.OneisadisklessoneconnectedtoaRaventhathasbeenmodifiedtorunat384spotsperinchinsteadof300;itsnameisMelbaanditcanbefoundinroom2322ofbuilding35.TheotheroneisCSL's4-colorVersatecplotter.IfyouusedearlierversionofthePeachsoftwarethatusedRPCasaprotocol,youwereusedtocallingthismachinebythenameofBelle;however,theDicentra'srealnameisSleepy,andthisiswhatyoumustcallitnow.Maybewecangetthenameofthismachinechanged,sincePeachprintersaresupposedtobenamedaftervarietiesofpeaches.HowdoItalktoaPeachprinter?TotalktoaPeachprinter,youuseChat.ThismeansyoucanuseaPeachprinterfromanyenvironmentthatcanusethePup/telnetprotocol,includingCedar,pïfÔî]îõqïfÔîCNrïfþî{sïb î]ïb î2Pqï`eî]ï`eî2Pî7Óï^¾î2PsïTÑî]ïTÑî2PqïS*î]îíîVïS*î2Pî9Îîî< î>î@–ï<î] î¤îBî$®î'’î+ î1%î2�î7[î9î<Êî>»îA~ï:[î]îbîÃî î!,î%ªî'²î(Þî/dî2>î7çîî>zï+yî]î&îMî öî%dî*mî,Ôî0#î1Äî5uî;î>ìîASï)Òî]î°îßî°î Ãî#î$Fî' î)`î+S î1· î;˜î=Jî?•îA÷ï(+î]îî]îóîŽîî!Îî$6 î*•î,Xî1Uî5î8æî;±î?"î@åï&ƒî]îôîîî¥ î'ƒî+î-aî1 î8cî:Îî=õî?Åï$Üî] îç î î$î%Êî&ôî3uï!�î]î'îIîSî ±vï>îîþî îœî ùî#­î'¹î-¼î0Éî2=î3pî8xî;,îA¸îCoï—î]î«îwîëîFî$ î%Íî(bî)ùî,�î0 î2|î5Šî:<î;óî?î@Ùïðî]îÅîîÄîîžî‹î#•î%@î(åî,'î-Üî3Rî6 î8àî<|î?$î@ŒïHî]îýî|î »î"7î$çî(î,Zî1î2Îî5'î9#î>•îA]ï¡î]îÛî«îöîßî ·î$*î'ˆî)Xî-ßî0¢î6Hî8eî:çî>Èî@£ïúî]î?î¤ î ,î"éî&®î(î,îî/«î2Rî3Äî7&î9ãî=Qî?âîA=ïRî]î4î—î]îáî |î$vî&jî)Gî/î5 î8·î<ôîBEï«î]îgîîîŒî"Èî(*î)ãuï\î]î®îžî¦îsî,îaî!ƒvï îîiîCîîaî ‡î%”î(nî+î/…î2Âî7)î:î<±î?Iî@–ï fî]îÜî1î¿ î#»î&wî(ðî+Rî-Ÿ î4sî:'î@)ÿ¥TVm$DInternalMemo2Tajo,Alto,Lisp,Smalltalk,Vaxc,andevenvisDLSoveraphoneline.YoucanalsotalktoaPeachprinterusingtheprinter'sterminal(usuallyaglassTTY),ifithasone.ThepeachprinterqueuestherequeststhatitreceivesviaitsChatconnections,andprocessesthemoneatatime.Therequestsspecifyafullpathname,i.e.,print[Indigo]384>TestPattern.pdandwhentheprinterisreadytoprintthefile,itwillretrieveitusingthePup/FTPprotocol.IfyouarerunningCedar,youcanstartupSTPServerandhavethePeachprintergetyourPDfiledirectlyfromyourdisk.Forexample,ifyouhadcreatedthefile[]<>Users>BCDull.pa>Chip.pdonthemachineXyz,youwouldsayprint[Xyz]Users>BCDull.pa>Chip.pdtothechattool.WhatdoIsay?Thefirstthingyoudoislogin,justasifyouwerechattingtoanIFS(ifyouarechattingfromCedar,theChatprogramwillloginforyou).YourusercredentialswillbesavedsotheservercanusethemwhenitgoestofetchyourPDfile.NextsayHelptogetthelistofpossiblecommands.Youwillprobablybeabletoplayitbyearfromthere,butjustforcompleteness,herearethecommandsandwhattheydo:Login[]Tellstheserverwhoyouare.CancelCancelstheindicatedrequest.CheckTellsthestatusoftheindicatedrequest.Notethatiftherequesthasfinishedprinting,thestatuswillbe"notfound".HelpGivesalistofcommands.ListQueueDisplaysthecurrentqueueofrequests,andtellsifprintingissuspended.MessagesThePeachprinterkeepsalogofmessagesthatmaybeofinterest;theyaredisplayedontheprinter'sterminalastheyaregenerated.Thiscommandmaybeusedtoexamineallorpartofthemessagelog.Onlymessagescontainingthestringwillbeshown(sorry,nopatternmatching).Anemptystringwillgetyoueverything.Twointerestingstringstouseareyourusername(toseewhathappenedtoallyourrequests),andarequestnumber(e.g.,R033),tofindoutwhathappenedtoaparticularrequest.PrintMakesaprintrequest.OnmachinesliketheVersatec,thetitlestringwillappearinthetitleblocksthatseparatepages.ReprintReprintsthecurrentpageimage.ResetQueueClearsouttheprintqueueandthemessagelog.Excessiveuseofthis��pïfÔî]îõqïfÔîCN�vïb2î]îÿî‹î î"œî&�î)Rî,²î.èî2Tî5ˆ�î6Ëî;î>åîBï`‹î]î8îþî»�îóîî"¥î&]î(Ìî.Hî3Ðî9 �î:Cî=˜îAÓîCCï^äî]î(î\î‹îÙî$Áî)Àî,uî2%î5Iî6öî<wî? îA<ï]<î] î[î8î"[î& î(Ûî*™�î+èî04î32î8°î=s�î>ÂîArï[•î]îuïYîî‡ð!ïVžî]îîÅî"î±î î#ãî%�î(õî+Rî.î/fî2î7 î8`î<î>dïT÷î]î‹îþî§îìî#î'wî* î,�î/Ÿî1£î8dî; î>Eî@–ïSPî]îýîTî�î î —î%šî)î,Xî0>î2÷î8Öî:Eî= î?ÏïQ¨î]î¼î&î(­î*³î-î2—î5Çî8~î<¬ïO-îî‡ð#ïL²î]î îkîeuïIcî]î'î�î vïFîîîæî†î Hî"[î#Òî'³î*`î,î-†î0Hî3¥î8ôî:®î<ªî?üîAâïDlî]î˜îÃîî iî"°î%õî+kî-þî1cî3‡î7cî:Ýî=¾ ïBÅî]îîî×î¡îî"î$¬î''î*·î.rî/Ïî2ïî4¤î8î;`î=ÛîA-ïAî]îÅî©îaî´î!î#dî%&î*qî2Eî5^î8î=îî?èîBêï?vî]î‚îùîîŠîî"î$¶î'xî)Ö î2¬î5çî8[î:ÛîAâï=Ïî]îºîÊï;Sî]î^î¸ î! wï9¬înîÊî)î6î :î"ñvï70î]îîîswï5‰înî„îãî ×vï3 î]î¢î&wï1fînîÊî)î�î¹î!î' î,½î03î3î4bî6Âî;–î> ï/¾îAîÛî;î î"½î$®î'Óvï-Cî]wï+›înîY�îƒîÁîzvï) î]wï'xînîýî]î &î$Jî&î+´î.lî1Oî2°î7òî9] vï$ýî]îewï#UînîFîIîÛî"°�î#Úî&-î'æî-Âî0�î3”î5…î7>î<–î?¦ï!®îAî`îfîÆî$4î)­î+[î.kî0¾ î7åî:ÿîA`ï îAî2înîî •î"…î$Iî',î(åî+Eî0œî3Ëî7=î= ï_îAî¡îvî"îî#aî'°î)¶î.u î5Èî8î<Uî@+ï¸îAîŠîA î áî$ î*¿î/î0Çî3<î5�î8Ëî;Äî?„îA¬ïîAîžîõî¤î!”î$Ï î*ùî-±�î.Úî3¯î8Ûî<6î@¦ïiîAî/î¥îî#Yî%�î&1 î,gvïîî]îÐ î1î!ÀwïFînîÓ�îýîeî"î$sî*|î-'î/‡î5dî7Ãî:‘î>fïŸîAîÈîvîÕî£î#çî&µî,vï$î]wï|înî îhî 2î#yvï �î] wï Yînî§îî|îäî$î&¿î)î.vî1¥î7Ãî:8î;ñÿ�������À��������TVm$—��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������InternalMemo3commandmaygeneratepeerpressure.SetLoginMessage<message>Setsthemessagepeoplegetwhentheylogin;saywhatyouwill,butrememberthemessagewillhaveyournameonit.StartUn-suspendstheprinter.StopSuspendstheprinterassoonasitfinishesthecurrentrequest.Wait<requestnumber>Doesnotreturnuntiltheindicatedrequestiscompleted,eithernormallyorabnormally.UsefulforsynchronizingthedeletionofaPDfile.QuitCausestheservertoclosethechatconnection.Ifyouloginattheprinter'sterminal,besuretoquitsothattheterminalcanbeusedtodisplaymessagesagain.DoIhavetouseChattoprintmyPDfiles?Yes,rightnowyoudo.MaybesomeonewillstepforwardtowriteaCedarinterfacethatgoesthroughttheChatprotocol,ortoaddanRPCinterfaceforqueueingprintrequests.Inanycase,whentheInterpressserverbecomesreal,itwilldothetalkingtothePDprinter,soyouwon'thaveto.AccordingtotheChatdocumentation,itoughttobepossibletowriteacommandfileforissuingaprintingrequest.���pïfÔî]îõqïfÔîCN�wïb0îAî¢î¦î#*î&Evï_µî]î9wï^ înîRî±î î"„î$Íî(‚î+’î/ˆî1çî5Dî7ûî:þî=ï\fîAî¡îøî£î!êî%%î(åî*ëvïYëî]wïXDîn îŸîÿvïUÉî]wïT!înîƒîâî tî""î%hî'î(lî-lî/Ëî4•vïQ¦î]î¹î>wïOÿînî÷îlîšî áî#Aî)4î. î/u î6|î:hî@9ïNXîA îZî Êî# î+Æî.&î3sî5,�î6Vî8ËvïKÝî]wïJ5înî îjîwî %î#Œî%ìî(æ î0¾î2@î4÷î8tî: î<lïHŽîAîîîüî «î#�î%Sî(!î*€î/ùî2„î4uî7±î9_î>ïFçîAuïC˜î]î°�î¹îéî¢îîrî!+î$|î&¹î)8vï@IîîQîÈîðî Ëî#öî(·î.–î1fî4nî9¾î;‘î?3�î@�ï>¢î]îAîNî¦î#‹î&)î)Äî/Éî1Ëî3¸î6®î8Ýî<xîB\ï<ûî]îwîûî!gî#Rî&î)qî-Bî/½ î6:î:bî@îCCï;Sî]î îîpîî°î!î#†î(pî*5î,ìî0·î3þî6‰î=-î>ÜîA<ï9¬î] î îMî 'î!Ãî#¢î(Ñî*mî-Ù�î.ðî5?î7–î9Àî>?�î?Wï8î]ÿ�������}��������TVm$²��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������--PDBitBltTiming.mesa--MichaelPlass,4-Mar-8411:17:27PDBitBltTiming:DEFINITIONS={ResetBitBltMicroseconds:PUBLICPROC;GetBitBltMicroseconds:PUBLICPROCRETURNS[LONGCARDINAL];}.���wï_,îâîYï]…îµî,îyî½î ÄïZ6îµîd î$k�î&P�ïVçîµî‘î%WïS™îµîˆî$Nî(¾î0+î5Z ïPJîµÿ��������«��������TVm$�@������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������PDChatServerStub.mesaCopyright(C)1984,XeroxCorporation.Allrightsreserved.MichaelPlass,September11,19843:54:15pmPDTDIRECTORYPupTypes,PupDefs,PupStream,IO,Rope,Stream,PDUser;PDChatServerStub:CEDARPROGRAMIMPORTSPupDefs,PupStream,Stream,PDUser=BEGINNewConnection:PROCEDURE[stream:IO.STREAM,pupAddress:PupDefs.PupAddress]=TRUSTED{otherGuy:Rope.ROPE_PupDefs.GetHostName[pupAddress];s:Stream.Handle_Stream.FromIOStreams[stream,stream];PDUser.TalkWithUser[s!PupStream.StreamClosing=>CONTINUE];Stream.Delete[s];};pupListener:PupStream.PupListener_PupStream.CreatePupByteStreamListener[local:PupTypes.telnetSoc,proc:NewConnection,ticks:PupStream.SecondsToTocks[300]];END.���xï_,îâï]…îâî/î¤îBîZ î'Åî* î-Úï[Ýîâî$îî î Þî$$î) î+WyïX�îâwïX�îKîî# yî*xïX��ïX�î*â�wî+¾ïX��ïX�î,›î0¨î5³ïU@îâyî8ïU@�ïU@îî³ïS™îówïS™î£î¡ î$ î)ïQñîó�yîØïQñ�ïQñî‘uïN£îó wîVïN£�ïN£yîSïN£�ïN£îûwïN£î# yî(YïN£�ïN£î(Â�wî)ŸïN£�yïN£î)öwî.ÁïN£�ïN£î/� ïLûîÆîO�yî!4ïLû�ïLûî!íwïLûî'"�ïKTîî¾yîFïKT�ïKTîwïKTî Û�î"hïI­îî† îì�îyî2ÆïHîî!÷�î"õî3yî5�ïH�ïHî6hwî;×ïH�ïHî<:�ïF^îïD·îïAhîó îî'¶�ï?ÁîÆð&ï>îîÄï<rîî£ ï:Ëîî®ï9#îyï5Õîówî{ï5Õ�ï5Õÿ�������•��������TVm$����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������PDFileFormat.mesaCreatedMarch14,1983MichaelPlass,April29,198311:01amPDFileFormat:DEFINITIONS=BEGINpasswordValue:CARDINAL=125252B;versionValue:CARDINAL=1B;DeviceCode:TYPE=MACHINEDEPENDENT{invalid(0),raven(1),hornet(2),gnat(3),mig(4),reticleMaker(5),puffin(6),last(LAST[CARDINAL])};Herald:TYPE=MACHINEDEPENDENTRECORD[password(0):CARDINAL_passwordValue,version(1):CARDINAL_versionValue,deviceCode(2):DeviceCode_invalid,sResolution(3):CARDINAL,fResolution(4):CARDINAL,imageSSize(5):CARDINAL,imageFSize(6):CARDINAL,bandSSize(7):CARDINAL,maxLoadWord(8):LONGCARDINAL,copies(10):CARDINAL];Typ:TYPE=MACHINEDEPENDENT{control(0),imaging(2)};ImagingCom:TYPE=MACHINEDEPENDENT{maskSamplesRef(0),maskRunGroupRef(1),maskRectangle(2),maskTrapezoid(3),maskRunGroup(4),maskSamples(5),colorSamples(6)};ControlCom:TYPE=MACHINEDEPENDENT{startImage(0),setPriority(1),setColorInk(2),setColorClear(3),setColorTile(4),endBand(5),endDocument(6),storeLoad(7),deviceCommand(8)};���xï_,îâï]„îâîïîTî‘ï[Ýîâî$îî�î¾î!î$ÃwïYbîâ yî‰ïYb�ïYbîn wïYbî ¨�yî"�ïYb�ïYbî#FwïVçîó yîÝïVç�ïVçî¨wïVçî!˜�î#}ïU?îó yî§ïU?�ïU?îrwïU?î b�î"GïS˜îó yî/ïS˜�ïS˜îèwïS˜î �yî…ïS˜�ïS˜î—ïS˜î$«wïS˜î,X�ïQðî ïPHîïN¡î ïLùîïKRîïIªîïHî ïF[îyîyïF[�ïF[î2wî^ïF[�yïF[îÁwîøïF[�ïF[î[�ïD´îïB9îóyî ïB9�ïB9îÃwïB9î|�yîaïB9�ïB9îrïB9î!‡ïB9î)4wïB9î.¦�ï@‘î yîï@‘�ï@‘îéwï@‘î!Ù�î#f ï>êî yîéï>ê�ï>êî³wï>êî ¤�î"1 ï=Bî î‹ î$M�î%Úï;šîyî•ï;š�ï;šî`wî"Ìï;š�ï;šï9óîyîŠï9ó�ï9óîUwî"Áï9ó�ï9óï8Kî yî^ï8K�ï8Kî)wî"•ï8K�ï8Kï6¤î yî~ï6¤�ï6¤îIwî"µï6¤�ï6¤ï4üî yîÐï4ü�ï4üî›wî"ï4ü�ï4üï3Uîyî›ï3U�ï3UîTï3Uî"Œwî(Ãï3U�ï3Uï1­î yî�ï1­�ï1­îÊwï0îï-‹îóyîPï-‹�ï-‹î wï-‹îÁ�yî¦ï-‹�ï-‹î¸ï-‹îÌwï-‹î'y î.× ï+îó yî²ï+�ï+îkwï+î#�yîï+�ï+î ï+î%.wï+î,Û�ï)hîï'Àîï&îï$qîï"Êîï!"îï{îïÓîïXîó yîeïX�ïXîwïXîÖ�yî»ïX�ïXîÍïXî$áwïXî,Ž�ï±î ï îïaîïºîïîïkî ïÃîïî ï tîï Íîÿ�������µ��������TVm$������������������������������2transparentFlag:[0..1]=1;opaqueFlag:[0..1]=0;Command:TYPE=MACHINEDEPENDENTRECORD[command(0):SELECTtyp(0:0..1):TypFROMimaging=>[com(0:2..7):ImagingCom,addrHighBits(0:8..15):[0..256)_0],addrHighBitsisusedbythemaskSamplesRefandmaskRunGroupRefcommands.control=>[com(0:2..7):ControlCom,rest(0:8..15):[0..256)_0]restisusedbythesetPriorityandsetColorTilecommands.ENDCASE];SampleArray:TYPE=MACHINEDEPENDENTRECORD[sSize(0):CARDINAL,fSize(1):CARDINALFollowedbytheactualscanlines,eachpaddedouttoaword.];Tile:TYPE=MACHINEDEPENDENTRECORD[phase(0):CARDINAL,sMin(1):CARDINAL,fMin(2):CARDINAL,sSize(3):CARDINAL,fSize(4):CARDINALFollowedbytheactualscanlines,eachpaddedouttoaword.];RunGroup:TYPE=MACHINEDEPENDENTRECORD[sSize(0):CARDINALFollowedbytheRuns.];Run:TYPE=MACHINEDEPENDENTRECORD[fMin(0):CARDINAL,lastRun(1:0..0):BOOLEAN,fSize(1:1..15):NAT];MaskRectangle:TYPE=MACHINEDEPENDENTRECORD[sMin(0):CARDINAL,sSize(1):CARDINAL,fMin(2):CARDINAL,fSize(3):CARDINAL];MaskTrapezoid:TYPE=MACHINEDEPENDENTRECORD[sMin(0):CARDINAL,sSize(1):CARDINAL,fMin(2):CARDINAL,fSize(3):CARDINAL,fMinLast(4):CARDINAL,fSizeLast(5):CARDINAL];���qïg/îEÉ�wï_,îóî@îš�î €ï]„îó îìîG�î,ï[ îóyî0ï[ �ï[ îéwï[ î¢�yî‡ï[ �ï[ î˜ï[ î#­ï[ î+Zwï[ î0Ì�ïYaî yî‚ïYa�ïYaî!wïYaî U î'eyî*HïYa�ïYaî+wïW¹îîWîì î$ù î-–î;`î@1�ïVîèxïTjî' î…î ñî$î%Üî(( î2šî5>ïRÃîúwïQîîÈî^ î$k î,» î4²î9ƒ�î;xïOsî'î¿î*î;î î"a î(ñî+• î37yïMÌîwïL$îïI¨îó yî½ïI¨�ïI¨îvwïI¨î/�yîïI¨�ïI¨î %ïI¨î%:ïI¨î,çwïI¨î2Y�ïHîyî“ïH�ïHî^wîÊïH�ïHïFYîyîˆïFY�ïFYîSxïD±îî¿î™îåî õî$î'ˆî*¯î/@î1¢î3G�î4{wïC îï@ŽîóyîDï@Ž�ï@Žîýwï@Žî¶�yî›ï@Ž�ï@Žî¬ï@ŽîÀï@Žî'nwï@Žî,à�ï>æîyîï>æ�ï>æîÍwî9ï>æ�ï>æï=>îyî©ï=>�ï=>îtwîàï=>�ï=>ï;—îyîžï;—�ï;—îiwîÕï;—�ï;—ï9ïîyî“ï9ï�ï9ïî^wîÊï9ï�ï9ïï8Gîyîˆï8G�ï8GîSxï6Ÿîî¿î™îåî õî$î'ˆî*¯î/@î1¢î3G�î4{wï4øîï2|îóyîï2|�ï2|î8wï2|îð�yîÕï2|�ï2|îçï2|î#ûï2|î+¨wï2|î1�ï0Ôîyî“ï0Ô�ï0Ôî^xï/-îî¿î™îåwï-…îï+ îóyî‡ï+ �ï+ î@wï+ îù�yîÞï+ �ï+ îïï+ î ï+ î'±wï+ î-#�ï)bîyîžï)b�ï)bîiwîÕï)b�ï)bï'ºîyîÀï'º�ï'ºîywî"aï'º�ï'ºï&îyîÂï&�ï&îªwï$jîï!ïîó yî ï!ï�ï!ïîÂwï!ïîz�yî _ï!ï�ï!ïî!qï!ïî&…ï!ïî.2wï!ïî3¥�ï Gîyî©ï G�ï Gîtwîàï G�ï Gï îyî“ï �ï î^wîÊï �ï ïøîyîžïø�ïøîiwîÕïø�ïøïPîyîˆïP�ïPîSwï¨îï-îó yî)ï-�ï-îâwï-îš�yî €ï-�ï-î!‘ï-î&¥ï-î.Rwï-î3Å�ï…îyî©ï…�ï…îtwîàï…�ï…ïÝîyî“ïÝ�ïÝî^wîÊïÝ�ïÝï6îyîžï6�ï6îiwîÕï6�ï6ïŽîyîˆïŽ�ïŽîSwî¿ïŽ�ïŽïæî yîïæ�ïæîéwî!Uïæ�ïæï >î yîï >�ï >îÓwï —î�������M��������TVm$ ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������3MaskRunGroup:TYPE=MACHINEDEPENDENTRECORD[sMin:CARDINALFollowedbytheRunGroup];MaskSamples:TYPE=MACHINEDEPENDENTRECORD[sMin:CARDINAL,fMin:CARDINALFollowedbytheSampleArray];MaskRunGroupRef:TYPE=MACHINEDEPENDENTRECORD[addrLowBits:CARDINAL,HighbitsareinthecommandwordsMin:CARDINAL,fMin:CARDINAL];MaskSamplesRef:TYPE=MACHINEDEPENDENTRECORD[addrLowBits:CARDINAL,HighbitsareinthecommandwordsMin:CARDINAL,fMin:CARDINAL];ColorSamples:TYPE=MACHINEDEPENDENTRECORD[sMin:CARDINAL,fMin:CARDINALFollowedbytheSampleArray];Priority:TYPE=MACHINEDEPENDENTRECORD[restfieldofControlComcontainshighorderbitsofpriority.priorityLowBits:CARDINAL];SetColorTile:TYPE=MACHINEDEPENDENTRECORD[restfieldofControlComcontainstransparentFlagoropaqueFlag.addr:LONGCARDINAL];Toner:TYPE=MACHINEDEPENDENT{black(0),cyan(1),magenta(2),yellow(3)};StartImage:TYPE=MACHINEDEPENDENTRECORD[filler(0:0..8):[0..512)_0,leftOverMode(0:9..9):BOOLEAN,feed(0:10..10):BOOLEAN,strip(0:11..11):BOOLEAN,toner(0:12..15):Toner,passBands(1):NAT,nBands(2):NAT,fMinPage(3):CARDINAL,fSizePage(4):CARDINAL];StoreLoad:TYPE=MACHINEDEPENDENTRECORD[��qïg/îEÉ�wï_,îó yîºï_,�ï_,îswï_,î+�yî!ï_,�ï_,î""ï_,î'6ï_,î.ãwï_,î4V�ï]…îyîï]…�ï]…îÑxï[Ýîî¿î™îåwïZ5îïWºîó yîïWº�ïWºîÏwïWºî‡�yîlïWº�ïWºî ~ïWºî%’ïWºî-?wïWºî2²�ïVîyîïV�ïVîÑwî=ïV�ïVïTkîyîûïTk�ïTkîÆxïRÄîî¿î™îå wïQîïN¡îóyîáïN¡�ïN¡îšwïN¡î!S�yî#8ïN¡�ïN¡î$IïN¡î)^ïN¡î1 wïN¡î6}�ïLúî yî˜ïLú�ïLúîcwî!ÏïLú�ïLúxïKRîî”î îtîî!fî'�wïIªîyîïIª�ïIªîÑwî=ïIª�ïIªïHîyîûïH�ïHîÆwïF[îïCàîóyî=ïCà�ïCàî÷wïCàî¯�yî!”ïCà�ïCàî"¦ïCàî'ºïCàî/gwïCàî4Ù�ïB9î yî˜ïB9�ïB9îcwî!ÏïB9�ïB9xï@‘îî”î îtîî!fî'�wï>êîyîï>ê�ï>êîÑwî=ï>ê�ï>êï=Bîyîûï=B�ï=BîÆwï;›îï9îó yî7ï9�ï9îðwï9î¨�yî�ï9�ï9î Ÿï9î%³ï9î-`wï9î2Ó�ï7xîyîï7x�ï7xîÑwî=ï7x�ï7xï5Ðîyîûï5Ð�ï5ÐîÆxï4)îî¿î™îå wï2�îï0îóyîlï0�ï0î%wï0îÝ�yîÂï0�ï0îÔï0î!èï0î)•wï0î/�xï._îîœî¡îD î"î'Vî*gî-ïî0|î2wï,·îyîPï,·�ï,·îwï+îï(•îó yî{ï(•�ï(•î4wï(•îì�yîÒï(•�ï(•îãï(•î$÷ï(•î,¤wï(•î2�xï&íîîœî¡îD î"î'Vî1î2Ê wï%Eîyîºï%E�ï%Eîsï%Eîªwï#žîï!#îóyî„ï!#�ï!#î=wï!#îö�yîÛï!#�ï!#îìï!#î!�wï!#î(® î/î4: ï{î' ïÔîó yîhïÔ�ïÔî"wïÔîÚ�yî¿ïÔ�ïÔîÑïÔî#åïÔî+’wïÔî1�ï,îîûîÌ�î!Yï…îyî Šï…�ï…î!Cwî&*ï…�ï…ïÝîyîïÝ�ïÝîÓwî!ºïÝ�ïÝï6îyî0ï6�ï6îêwî!Ñï6�ï6ïŽîî©ïçî yî¹ïç�ïçî¡wî.ïç�ïçï?î yî ï?�ï?îówî€ï?�ï?ï˜î yîkï˜�ï˜î6wî!¢ï˜�ï˜ïðî yîUïð�ïðî wï Iîï Îîó yîï Î�ï ÎîÔwï ÎîŒ�yîqï Î�ï Îîƒï Îî#—ï Îî+Dwï Îî0·��������:��������TVm$������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������4firstAddress(0):LONGCARDINAL,wordCount(2):CARDINALFollowedbythedatawords];END.���qïg/îEÉ�wï_,îyîÁï_,�ï_,î{ï_,î ²wî&éï_,�ï_,ï]…î yî_ï]…�ï]…î*xï[Ýîî¿î™îåîëwïZ6îyïW»îówî{ïW»�ïW»��������O��������TVm$�I��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������PDInterpBasic.mesaCopyright(C)1983,XeroxCorporation.Allrightsreserved.MichaelPlass,September4,198410:16:51amPDTPDInterpBasic:DEFINITIONS=BEGINStatus:TYPE={Nilstatus:nil,Normalstatus:betweenPages,constructingImage,transmissionComplete,Printererrors:paperJam,outOfPaper,serverAbort,PDFileErrors:invalidPassword,objectOutOfBounds,missingStartImage,badLoadReference,unrecognisedImagingCommand,loadOutOfBounds,unrecognisedControlCommand,unrecognisedCommandType,unexpectedEOF,runGroupTooLong,bitmapTooBig,deviceCommandTooBig,PDFileWarnings:wrongFormatVersion,unreasonableResolution,unreasonableBandSSize,unreasonableImageSize,unreasonableLoadSize,unreasonableNumberOfCopies,objectOutOfBand,emptyRunGroup,nonZeroFill,imageBoundsExceedPageBounds,tooFewBands,unknownColorTileFlag};PDErrorCode:TYPE=Status[invalidPassword..deviceCommandTooBig];PDWarningCode:TYPE=Status[wrongFormatVersion..unknownColorTileFlag];END.��xï_:îâï]“îâî/î¤îBîZ î'Åî* î-Úï[ëîâî$îî î -î#sî) î+WuïZDîâ wî«ïZD�ïZDyî©ïZD�ïZDîŽ wïZDî È�yî"­ïZD�ïZDî#fwïX�îâyîuïX��ïX�î.wïX�îæ�îÌ�xïVõîóîQwïUNîxïS§îóîéwïQÿî ïPXîïN±îxïM îóî”wïKbîïI»î ïHî xïFlîóîrî4wïDÅîïCîïAvîï?Ïîï>'îï<€îï:Ùîï91îï7Šî ï5ãîï4;î ï2”îxï0íîóîrî4wï/Eîï-žîï+÷îï*Oîï(¨îï'îï%Yîï#²î ï" î ï cîï¼î ïîïmîóïîâ yî%ï�ïîßwïî—�î|ð-ïwîâ yî!ïw�ïwîÚwïwî“�îxð1yï)îâwîiï)�ï)�������Š��������TVm$"������������������������������������������������PDInterpBitmap.mesaMichaelPlass,November9,198310:39amBasicoperationsontwo-dimensionalarraysofpixels.DIRECTORYBitBlt,Inline;PDInterpBitmap:DEFINITIONSIMPORTSInline=BEGINThisinterfaceprovidesmostofthefunctionalityofBitBlt.Toavoidconfusionnomatterhowthemapisphysicallylaidout,termslikeheightandwidthareavoided,andthecoordinatesareexpressedintermsofsandf,forslowandfast.Onadisplay,thesaxisisnormallyvertical,andpointsdown,butonaprinterthatscansinthelongdirection,thefaxiswillpointup.Thediagrambelowtakesthelatterpointofview.--^--f|--|--|+----------------------------+--|||--||rast*bitsPerWord/bitsPerPixel|--|||--||+------------+|--|||||--|||||--|||fSize||--|||||--||sMin|sSize||--||<---->+------------+|--||^|--|||fMin|--|sOrigin|vlines|--|<-------->+----------------------------+--|^originofbuffer--||--||fOrigin--||--||--|v--+-------------------------------------------->--DevicespaceoriginsABitmapDescdescribesawindowintoabuffer,andthebufferitselfmaybepositionedanywhereinaglobaldevicespace.ThewindowinginformationisstoredintheBitmapDescrecord,sothatitmaybeeasilychangedtoaccomplishtranslationandclippingbyrectangles.Thetranslationfeaturemaybeusedfordestinationmapstoconvenientlyimplementbandbuffers.BitmapDesc:TYPE=RECORD[Theseparametersdefineawindowwithinthebuffer,aswellaswherethebufferispositionedindevicespace.sOrigin,fOrigin:INTEGER_0,���xï_:îâï]’îâî$îîgîôî#:î&ùï[ëîâîŒ îîúî$íî)î*¨yïXœîâwïXœîKîšïUMîâyîÊïUM�ïUMî° ïUMî!êwïUMî'šî+›�yî-€ïUM�ïUMî.:xïQþîóîî�îÄî"î#§î%ó î-Êî/nî4[î6xî: î@ïPWîÆîîéî5î0îœ î%Ñî(}î+6î.äî1‘î5­î8Qî;ýïN¯îÆîýî¡îí î#î%Vî+`î-î0´î2W�î3`î6î7Oî9vî<zî?ïMîÆî�îQî/î{�îƒî fî!Òî'|î,”î/7î33î7î9wî;k�î<ŸïKaîÆî˜î.îÔî î' î%zî'_ïKa�xïKaî(Sî+6î-Ëî1Bî4î6Óî<ïI¹îÆîQî�î4î«î OwïFjîó{ïFjïFjîè�wïDÃîó{ïDÃwî‡ïDÃ�{ïDÃîú�wïCîó{ïCïCîè�wïAtîó{ïAtïAtîè�ïAtîôwï?Ìîó{ï?Ìï?Ìîè�ï?Ìîô�ï?Ìî.U�wï>%îó{ï>%ï>%îè�ï>%îô�|îÌï>%�ï>%î6îæ�î Ý î'G�î(> {ï>%î0f�wï<}îó{ï<}ï<}îè�ï<}îô�ï<}î.U�wï:Öîó{ï:Öï:Öîè�ï:Öîô�ï:Öî#ÿ ï:Öî2w�wï9.îó{ï9.ï9.îè�ï9.îô�ï9.î#ÿ�ï9.î-�ï9.î2w�wï7‡îó{ï7‡ï7‡îè�ï7‡îô�ï7‡î#ÿ�ï7‡î-�ï7‡î2w�wï5ßîó{ï5ßï5ßîè�ï5ßîô�ï5ßî#ÿ�|î$×ï5ß�ï5ßî%8{ï5ßî-�ï5ßî2w�wï48îó{ï48ï48îè�ï48îô�ï48î#ÿ�ï48î-�ï48î2w�wï2�îó{ï2�ï2�îè�ï2�îô�|ï2Jî {ï2�î#ÿ�|ï2Jî({ï2�î/-�ï2�î4‰�wï0éîó{ï0éï0éîè�ï0éîôî"ï0éî4‰�wï/Aîó{ï/Aï/Aîè�ï/Aîô�ï/Aî#ÿ�ï/Aî0f�wï-šîó{ï-šï-šîè�ï-šîô�ï-šî#ÿ�|î$×ï-š�ï-šî%8{ï-šî0f�wï+òîóï+ò{ï+òîè�|ï+¬îú{ï+òî�ï+òî&�|ï+¬î,¥{ï+òî2w�wï*Kîó{ï*Kï*Kîèî¨ð#wï(Œîó{ï(Œï(Œîè�ï(Œî�|ï)îÝî#î$rwï&åîó{ï&åï&åîè�ï&åîô�wï%=îó{ï%=ï%=îè�ï%=îô�|îÌï%=�ï%=î-wï#–îó{ï#–ï#–îè�ï#–îô�wï!îîó{ï!îï!îîè�ï!îîô�wï Gîó{ï Gï Gîè�ï Gîô�wïŸîó{ïŸïŸîèð.wïøîó{ïø|ï…îèî™î�wïøî,¥�xï©îó�îu îîª�î Þî%´î(z�î)¯î-õî0™î2åî6Óî:î= ïîÆ î îî½�î ñî$þî)î-|î0@î6ç î>9ïZîÆî¿îeî± î!@î%»î'tî*Fî+žî.Žî0]î4î9cî; ï³îÆ îˆî+î Dî" î)Jî, î2Ïî7Zî:Jî<î?*ï îÆ îžîîà î%zî,î/Ywï¼îâ yîï¼�ï¼îÌwï¼î…�yîjï¼�ï¼î>wï¼î!Ü�xïîóîÖ î´î¯�î ãî%¹î)Öî,"î0iî2"î4ïî6¨î:Šî<Öï mîÆî2 îŒî2î5wï Æîóî)yîuï Æ�ï Æîßwï Æî!9�î"Æÿ�������=��������TVm$Æ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������2sMin,fMin:INTEGER_0,sSize,fSize:NAT_0,pointer:LONGPOINTER_NIL,rast,lines:CARDINAL_0Storedcontiguously,witheachlinepaddedtoawordboundary,rastwordsperline.Thelongpointerpointstotheactualbits.];Rectangle:TYPE=RECORD[sMin,fMin:INTEGER,sSize,fSize:NAT];RasterWords:PROC[bitmapDesc:BitmapDesc]RETURNS[INT]=INLINE{RETURN[Inline.LongMult[bitmapDesc.rast,bitmapDesc.lines]];};Reshape:PROC[pointer:LONGPOINTER,words:INT,bounds:Rectangle]RETURNS[BitmapDesc];MakesaPixelMapfromthestorageprovided.InsufficientSpace:ERROR;Intersect:PROC[a,b:Rectangle]RETURNS[Rectangle];Computestheintersectionofdevicerectangles.Clear:PROC[bitmapDesc:BitmapDesc];Afastwaytoclearabuffer.ShiftMap:PROC[p:BitmapDesc,s,f:INTEGER]RETURNS[BitmapDesc];TranslatesthebitmapDescindevicespace.ShiftWindow:PROC[p:BitmapDesc,s,f:INTEGER]RETURNS[BitmapDesc];Translatesthewindowindevicespace.Clip:PROC[p:BitmapDesc,bounds:Rectangle]RETURNS[BitmapDesc];FurtherrestrictsthewindowSetWindow:PROC[p:BitmapDesc,bounds:Rectangle]RETURNS[BitmapDesc];ChangesthewindowWindow:PROC[p:BitmapDesc]RETURNS[Rectangle];BufferBounds:PROC[p:BitmapDesc]RETURNS[Rectangle];ReturnsarectangledescribingtheactualboundsofthebufferBoundedWindow:PROC[p:BitmapDesc]RETURNS[Rectangle];p.Window.Intersect[p.BufferBounds]Fill:PROC[dest:BitmapDesc,area:Rectangle,value:CARDINAL,function:Function_[null,null]];Function:TYPE=RECORD[dstFunc:BitBlt.DstFunc,srcFunc:BitBlt.SrcFunc];[null,null]makeszerobitswhite,onebitsblack[or,null]makeszerobitstransparent,onebitsblack[and,null]makeszerobitswhite,onebitsblack���qïg/îEÉ�wï_,îóîÔyîÊï_,�ï_,î4wï_,îŽ�î ï]…îóî¾yîžï]…�ï]…î‡wï]…î˜�î%ï[Ýîóyî5ï[Ý�ï[Ýîïï[Ýî&wï[ÝîÇ�yî!Tï[Ý�ï[Ýî"<wî#_ï[Ý�ï[ÝïZ5îóîìyî¡ïZ5�ïZ5îlwïZ5î\�îé�xïXŽîóîD îeî aî#ˆî&,î*½î,b�î-–î0çî7*î9×î=­ïVçîÆîFî îî§î#¢î%Gî'“î+£wïU?îóïQðîâ yî½ïQð�ïQðîvwïQðî.�yîïQð�ïQðîçwïQðî †î$Éyî(ÀïQð�ïQðî)*wî.�ïQð�ïQðî.Üî2§yî6‡ïQð�ïQðî7pwî8ýïQð�ïQðî9`�uïN¡îâ wî¢ïN¡�ïN¡yî ïN¡�ïN¡îHwïN¡îG î#» yî+ÖïN¡�ïN¡î,©wïN¡î1á�yî2DïN¡�ïN¡î2®wî4PïN¡�ïN¡î57�yî7ïN¡�ïN¡î7†wïN¡î;¸�yïLúîówïLúî`ð!î+gïKRîóuïHîâwîÖïH�ïHyîÔïH�ïHî{wïHî{yî ïH�ïHîÙïHî"wî'-ïH�ïHî( yî,�ïH�ïHî,úwî.œïH�ïHî/xî4Ñ yî;•ïH�ïHî<iwïF\îµ xïD´îóîb�î—îàî î"jî'wïC îóyî)ïC �ïC îãwî ;ïC �ïC uï?¾îâwîï?¾�ï?¾yîï?¾�ï?¾î½wï?¾î½î¢îf yî#+ï?¾�ï?¾î#ÿwï?¾î)7 xï>îóî8î„ î ¶î"Yî&\ uï:Çîâwîï:Ç�ï:Çyîï:Ç�ï:Çî¸wï:Çî· î+ xï9îó�îuî îÏîsîÅ�îúuï5Ðîâwî†ï5Ð�ï5Ðyî„ï5Ð�ï5Ðî+wï5Ðî+îS î#bî$Ãyî&:ï5Ð�ï5Ðî&¤wî+zï5Ð�ï5Ðyî,aï5Ð�ï5Ðî-5wï5Ðî2m xï4)îó îyîÅ î!î"¸î&»uï0Úîâ wî–ï0Ú�ï0Úyî”ï0Ú�ï0Úî<wï0Úî;îc î%sî&Ôyî(Kï0Ú�ï0Úî(´wî-Šï0Ú�ï0Úyî.rï0Ú�ï0Úî/Fwï0Úî4~ xï/2îó îyîÅî›î Aî$Duï+ãîâwîLï+ã�ï+ãyîIï+ã�ï+ãîñwï+ãîñî î (î%� yî,Eï+ã�ï+ãî-wï+ãî2Q xï*<îóîáîðî<uï&íîâwî¯ï&í�ï&íyî­ï&í�ï&íîUwï&íîTî| î$Œî)ä yî0©ï&í�ï&íî1}wï&íî6µ xï%Eîóîpî¼uï!öîâwî´ï!ö�ï!öyî²ï!ö�ï!öîYwï!öîYî� yî"›ï!ö�ï!öî#owï!öî(§ uï§îâ wîûï§�ï§yîøï§�ï§î wï§îŸîÇ yî%âï§�ï§î&¶wï§î+í xï�îóî�î9î î#]î%©î)¹î.Nî/ñî2>uï±îâ wîßï±�ï±yîÝï±�ï±î„wï±î„î¬ yî'Æï±�ï±î(šwï±î-Ò xï îóð"uïºîâwîèïº�ïºyîæïº�ïºî�wïºî�îM î!]î$Ï î+‰yî/¬ïº�ïºî0wwî5ãïº�ïºî6¿ïîµî��î*î½ïÄîâyîCïÄ�ïÄîüwïÄîµ�yîšïÄ�ïÄînwïÄî î&7î0�î5±xïîóîî³îäîÓî!_î%Nî'Üî*hï uîóîrî¦î×îÆî R î'Åî*Sî,ßï Íîóî]î‘îÂî°î!=î%+î'ºî*Fÿ�������ù��������TVm$Ø������������������������������������������������������������������������������������3[and,complement]makeszerobitstransparent,onebitswhite[xor,null]makeszerobitstransparent,onebitsinvertedetcetera.Transfer:PROC[dest,source:BitmapDesc,function:Function_[null,null]];DoesaBITBLTfromthesourcetothedest,throughtheintersectionofthetwowindows.Doestherightthingifthesourceanddestoverlapinthesamebuffer.Tile:TYPE=RECORD[sOrigin,fOrigin:INTEGER,sSize,fSize:NAT,phase:INTEGER,pointer:LONGPOINTER,rast,lines:CARDINAL];AtileissimilartoaBitmapDesc,butthewindowspecificationsaremoreprimitive,andthereisanadditionalphasespecification.Atileisreplicatedtofilltheplane,withtileshiftedbyphasepixelsinthefdirectioneverysource.sSizelines.CreateTile:PROC[rectangle:Rectangle,phase:INTEGER_0,rasterPointer:LONGPOINTER,scratchPointer:LONGPOINTER_NIL,scratchWords:INT_0]RETURNS[tile:Tile];ThescratchPointerandscratchWordsparametersdescribethespacefortheresults.Therasteristurnedintoatile.Thismayinvolvereplicatingthepatterntomakealargertilethatwillspeedthecoloringoperation,sothesizeoftheresultwillnotingeneralbethesameasthesource.However,therastermaynotalwaysbecopied.TransferTile:PROC[dest:BitmapDesc,tile:Tile,function:Function_[null,null]];Transfersfromthetiledplanetodest.END.��qïg/îEÉ�xï_,îóî] î?î oî#^î%ê î-]î/ëî2wï]…îóî9îmîžî�î! î(Œî+î-¦ï[ÝîóuïX�îâwîìïX��ïX�yîêïX��ïX�î’wïX�î‘î0î ù î) î.üî4ä�î6qî:xïVçîóî[�}î�ïVç�ïVçîRxïVçîIî‡îÓî$î%§î'ôî+î0î2l î9�î;Aî=�ïU@îÆîüîdî°î ùî$|î%Òî(î,Nî.òî1¶î6hî8î:Zî=ÄwïQñîâyî3ïQñ�ïQñîìwïQñî¤�yî‰ïQñ�ïQñî]wïQñîü�ïPJîóî)yîuïPJ�ïPJîßwî µïPJ�ïPJïN£îóî¾yîžïN£�ïN£î‡wîïN£�ïN£ïLûîóyîNïLû�ïLûî¸wîŽïLû�ïLûïKTîóyî5ïKT�ïKTîïïKTî&wîCïKT�ïKTïI­îóîìyî¡ïI­�ïI­îlwïHîóxïF^îó�îuîËî6î³îX�î� î%tî'Õî*!î.÷ î7-î9€ïD·îÆ î½î`îËî7î!* î'yî+9 î3Ç�î5Iî7Ÿî9 î?+ïCîÆîâî/î(î$îzî#Ìî%§î)gî-Iî.îî1;�î2.î7ÂïAhîÆ îHuï>îâ wî-ï>�ï>yî+ï>�ï>îÓwï>îÒ î Œ î'Eyî+ ï>�ï>î, wï>î1d�î2ñî4~ yî=ï>�ï>î=Êï<rîµwîÒï<r�ï<rî®yîï<r�ï<rîÍï<rî#wï<rî(¦�yî*3ï<r�ï<rî+wî,>ï<r�ï<rî- yî6ï<r�ï<rî6‡wï<rî8­�î::yî;Òï<r�ï<rî<¦wï:Ëîµîðxï9#îóî¶ îŸîC î'­ î.‹î3¬î5ùî9˜î;¿ï7|îÆîßî¢îoîÚî#î%à�î'î*Gî-Wî0Gî4Ñ î;xï5ÕîÆîiîî»�îïî Ûî#0î&î(—î,6î.ƒî3¼ î: î;Äî>ï4-îÆîiî¶îmîîfî î$Ìî&œî(èî,Rî. î0Wî5cî;Vî=¢ï2†îÆî¶îîsîBuï/7îâ wîLï/7�ï/7yîJï/7�ï/7îñwï/7îñî± î&Áî)™î,Éî2¼î8¤�î:1î=Äxï-�îóîéî&îrîxî#î$¿yï*Aîâwîiï*A�ï*Aÿ�������”��������TVm$¦������������������������������PDInterpBitmapImpl.mesaCopyright(C)1984,XeroxCorporation.Allrightsreserved.MichaelPlass,September4,198411:28:57amPDTDIRECTORYBitBlt,Environment,Inline,PDInterpBitmap,PDBitBltTiming,System;PDInterpBitmapImpl:PROGRAMIMPORTSBitBlt,Inline,SystemEXPORTSPDInterpBitmap,PDBitBltTiming=BEGINBitmapDesc:TYPE=PDInterpBitmap.BitmapDesc;Tile:TYPE=PDInterpBitmap.Tile;Rectangle:TYPE=PDInterpBitmap.Rectangle;Function:TYPE=PDInterpBitmap.Function;bitsPerWord:NAT=Environment.bitsPerWord;lgBitsPerWord:NAT=Environment.logBitsPerWord;wordsPerPage:NAT=Environment.wordsPerPage;lgBitsPerPixel:NAT=0;pixelsPerWord:NAT=bitsPerWord;Someinlinesforbasicbit-hackingoperations.BITAND:PROC[a,b:CARDINAL]RETURNS[CARDINAL]=INLINE{RETURN[Inline.BITAND[a,b]]};Shift:PROC[a:CARDINAL,b:INTEGER]RETURNS[CARDINAL]=INLINE{RETURN[Inline.BITSHIFT[a,b]]};timingBitBlts:BOOLEAN_FALSE;bitBltPulses:System.Pulses_[pulses:0];ResetBitBltMicroseconds:PUBLICPROC={bitBltPulses_[pulses:0];timingBitBlts_TRUE};GetBitBltMicroseconds:PUBLICPROCRETURNS[LONGCARDINAL]={RETURN[System.PulsesToMicroseconds[bitBltPulses]]};BITBLT:PROC[ptr:BitBlt.BBptr]=INLINE{IFtimingBitBltsTHEN{bitBltPulses.pulses_bitBltPulses.pulses-System.GetClockPulses[];BitBlt.BITBLT[ptr];BitBlt.BITBLT[ptr];BitBlt.BITBLT[ptr];BitBlt.BITBLT[ptr];BitBlt.BITBLT[ptr];BitBlt.BITBLT[ptr];BitBlt.BITBLT[ptr];BitBlt.BITBLT[ptr];BitBlt.BITBLT[ptr];BitBlt.BITBLT[ptr];bitBltPulses.pulses_bitBltPulses.pulses+System.GetClockPulses[];}���xï_,îâï]„îâî/î¤îBîZ î'Åî* î-Úï[Ýîâî$îˆî%î ²î#øî)‘î+ÜyïXŽîâwïXŽîKîš î#Cî'œî2dïVçîµïS˜îâyî¢ïS˜�ïS˜îJïQðîówïQðî£îòîLyïPHîówïPHîµî!| ïN¡îó�yîØïN¡�ïN¡î‘wïLùîâ yîïLù�ïLùîÌwïLùî…�îjïKRîâyî3ïKR�ïKRîìwïKRî¤�î‰ïIªîâ yî½ïIª�ïIªîvwïIªî.�îïHîâyîCïH�ïHîüwïHîµ�îšïF[îâ yî_ïF[�ïF[îHwïF[îY�î>ïD´îâ yî“ïD´�ïD´î|wïD´î��îrïC îâ yî0ïC �ïC îwïC î*�îïAeîâyîïAe�ïAeîwïAeî�îøï?½îâ yîªï?½�ï?½î’wï?½î£�îˆ xï>îâî¤îîîî} î#Ÿ yï<nîówîqï<n�ï<nyîoï<n�ï<nîwï<nîîûyî¿ï<n�ï<nîŠwî#öï<n�ï<nyî$Þï<n�ï<nî%²wî*eï<n�yï<nî*Èwî0ÿï<n�ï<nï:Çî�yîéï:Ç�ï:ÇîSwï:Çî…�yî5ï:Ç�ï:Çî wîï:Ç�ï:Çî€yî#Uï:Ç�ï:Çî$wî'Óï:Ç�ï:Çî(6î)¸uï9îówîÖï9�ï9yîÓï9�ï9î{wï9îzyî�ï9�ï9îLwî ¸ï9�ï9î!”yî#Yï9�ï9î#Âwî(™ï9�ï9yî)€ï9�ï9î*Twï9î/Œ�yî/ïï9�ï9î0ºwî6&ï9�ï9ï7xî�yîéï7x�ï7xîSwï7xî…�yî5ï7x�ï7xî wîï7x�ï7xî€yî#Uï7x�ï7xî$wî(“ï7x�ï7xî(öî*xï2�îâ yî¬ï2��ï2�îfwï2�îÑ�yî^ï2��ï2�î wî"üï2��ï2�ï/2îâ îÜ î›�î!'î&'uï+ãîâwî ï+ã�ï+ãyî ï+ã�ï+ãî±ï+ãî#Áwï+ãî'i�î)N î1~�î3 î8 ï*<îµ î�yî“ï*<�ï*<îLwî¾ï*<�ï*<îo�uï&íîâwîìï&í�ï&íyîêï&í�ï&íî’ï&íî"£ï&íî&Jwï&íî,U�yî,¸ï&í�ï&íî-rï&íî0©wî6àï&í�ï&íî7Ç�ï%Eîµ�yîeï%E�ï%Eî9wîMï%E�ï%Eî±ð,yï!öîâwîêï!ö�ï!öyîçï!ö�ï!öî�wï!öîŽî© î"ä�yî$Éï!ö�ï!öî%3wï!öî)d�yï Oîówï Oîš yîëï O�ï Oî¥wï Oî±�ï§îî{�î î+�î,|ï�îyîÎï��ï�îˆwîÖï��ï�î9ïXîyîÎïX�ïXîˆwîÖïX�ïXî9ï±îyîÎï±�ï±îˆwîÖï±�ï±î9ï îyîÎï �ï îˆwîÖï �ï î9ïaîyîÎïa�ïaîˆwîÖïa�ïaî9ïºîyîÎïº�ïºîˆwîÖïº�ïºî9ïîyîÎï�ïîˆwîÖï�ïî9ïkîyîÎïk�ïkîˆwîÖïk�ïkî9ïÃîyîÎïÃ�ïÃîˆwîÖïÃ�ïÃî9ïîyîÎï�ïîˆwîÖï�ïî9ï tîî{�î î+�î-dï Íî�ÿ�������¥��������TVm$¤��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������2ELSEBitBlt.BITBLT[ptr];};Intersect:PUBLICPROC[a,b:Rectangle]RETURNS[Rectangle]={sMin:INTEGER_MAX[a.sMin,b.sMin];fMin:INTEGER_MAX[a.fMin,b.fMin];sMax:INTEGER_MIN[INT[a.sMin]+a.sSize,INT[b.sMin]+b.sSize];fMax:INTEGER_MIN[INT[a.fMin]+a.fSize,INT[b.fMin]+b.fSize];IFsMax<=sMinORfMax<=fMinTHENRETURN[[0,0,0,0]]ELSERETURN[[sMin,fMin,sMax-sMin,fMax-fMin]]};LongZero:PROC[address:LONGPOINTERTOCARDINAL,count:CARDINAL]={IFcount>0THEN{address^_0;Inline.LongCOPY[from:address,nwords:count-1,to:address+1];};};Clear:PUBLICPROC[bitmapDesc:BitmapDesc]={pointer:LONGPOINTER_bitmapDesc.pointer;words:LONGCARDINAL_Inline.LongMult[bitmapDesc.rast,bitmapDesc.lines];WHILEwords>32768DOLongZero[pointer,32768];pointer_pointer+32768;words_words-32768;ENDLOOP;LongZero[pointer,words];};InsufficientSpace:PUBLICERROR=CODE;Reshape:PUBLICPROC[pointer:LONGPOINTER,words:INT,bounds:Rectangle]RETURNS[bitmapDesc:BitmapDesc]={bitsPerPixel:CARDINAL=Shift[1,lgBitsPerPixel];bitsPerLine:NAT=Inline.LongMult[bounds.fSize,bitsPerPixel];Willraiseaboundsfaultiftoomanybitsperline.wordsPerLine:CARDINAL=(bitsPerLine+(bitsPerWord-1))/bitsPerWord;wordsNeeded:INT=Inline.LongMult[wordsPerLine,bounds.sSize];IFwordsNeeded>wordsTHENERRORInsufficientSpace;RETURN[[bounds.sMin,bounds.fMin,0,0,bounds.sSize,bounds.fSize,pointer,wordsPerLine,bounds.sSize]];};ShiftMap:PUBLICPROC[p:BitmapDesc,s,f:INTEGER]RETURNS[BitmapDesc]={p.sOrigin_p.sOrigin+s;p.fOrigin_p.fOrigin+f;RETURN[p]};ShiftWindow:PUBLICPROC[p:BitmapDesc,s,f:INTEGER]RETURNS[BitmapDesc]={���qïg/îEÉ�yï_,îówï_,îByî ï_,�ï_,îÅwîï_,�ï_,îwï]…îóuïZ5îâwîïZ5�ïZ5yîïZ5�ïZ5î½ïZ5îÎwïZ5îuîZî! yî'ãïZ5�ïZ5î(·wïZ5î-ï î5�î6ü�ïXŽîóyîõïXŽ�ïXŽî_wïXŽî¹�yîFïXŽ�ïXŽîWwîÿïXŽ�ïXŽîbî$?ïVæîóyîêïVæ�ïVæîTwïVæî®�yî;ïVæ�ïVæîLwîôïVæ�ïVæîWî$)ïU?îóyî!ïU?�ïU?î‹wïU?îå�yîrïU?�ïU?îƒwîÖïU?�yïU?î9wî!DïU?�ïU?î!¨yî,4ïU?�ïU?î,žwî.?ïU?�ïU?î.¢ïS—îóyîïS—�ïS—î€wïS—îÚ�yîgïS—�ïS—îxwîËïS—�yïS—î.wî!9ïS—�ïS—î!�yî,ïS—�ïS—î,}wî.ïS—�ïS—î.‚yïQðîówïQðîšîOîäyîlïQð�ïQðîI�wïQðî¡î"Jî$àyî(]ïQð�ïQðî)ïQðî,"wïQðî1�î3âî5oî6üyïPHîóïPHîBwïPHî¯îUî"+ î)´ ïN¡îóuïKRîâwîÉïKR�ïKRyîÆïKR�ïKRînwïKRîmyî4ïKR�ïKRîíïKRî#%ïKRî(ÅïKRî*ßwî1ïKR�ïKRî1óyî6CïKR�ïKRî7wî<zïKR�ïKRî=a�î?F�yïIªîówïIªîšîq�î¦�yîÛïIª�ïIªî”wïIªî �ïHîîŸ�î,ïF[îî"!î'cî,°î2 î41 ïD´îïC îóuï?½îâwîï?½�ï?½yîï?½�ï?½î¸ï?½îÈwï?½îp î#ã î+þ�î-ã�ï>îóyî5ï>�ï>îïï>î&wï>îÇ�î!Tï<nîóyîyï<n�ï<nî2ï<nîjwï<nî %�î!²î6Vyï:Æîówï:ÆîTîa�î–yîŒï:Æ�ï:Æîr�wï9îîoï7wîîÍ�îZî#�î ï5Ðîî�îžî«�î¨yï4(îwî¥ï4(�ï4(ï2�îóî^ï0Ùîóï-Šîâyîï-Š�ï-ŠîÀï-ŠîÑwï-Šî#f�yî%Kï-Š�ï-Šî&wî(’ï-Š�ï-Šuï+ãîâwîÖï+ã�ï+ãyîÔï+ã�ï+ãî{ï+ãîŒwï+ãî3yî"Øï+ã�ï+ãî#’ï+ãî&Éwî+æï+ã�ï+ãî,Âyî1Hï+ã�ï+ãî1²wî3Tï+ã�ï+ãî40î9‰ yï*;îµwï*;îÁ î4 î&O�î(4�ï(”îó yî÷ï(”�ï(”îÂwï(”î²�î!—î&`ï&ìîó yîÀï&ì�ï&ìî¨wï&ìî¹�îžî0Q xï%EîîîN�îƒîî"Kî#¡î%÷î)¥î,2î.…wï#�îó yî+ï#��ï#�îöwï#�î æ�î"Ëî6�î7C ï!öîó yîï!ö�ï!öî„wï!öîª�î�î1æ yï Nîówï Nîš îH�î}yî Šï N�ï Nî!Cï Nî$Owï Nî(åyï§îówï§î` î¹ î(Aî)Îî+[ î3Ø î<JïÿîÆ îÝïXîóuï îâwî†ï �ï yî„ï �ï î+ï î<wï îãî î(î){yî*òï �ï î+\wî02ï �ï yî1ï �ï î1îwï î7% î?£�ïbîµ�ïºîóîï�î|îx�î ]ïîóîä�îqîb�î Gyïkîówïkî`ïÃîóuï tîâ wî–ï t�ï tyî”ï t�ï tî<ï tîLwï tîôî" î*+î+Œyî-ï t�ï tî-mwî2Cï t�ï tyî3*ï t�ï tî3þwï tî96 ï Íîµ�îš��������ß��������TVm$é����������������������������������������������������������������������������3p.sMin_p.sMin+s;p.fMin_p.fMin+f;RETURN[p]};Clip:PUBLICPROC[p:BitmapDesc,bounds:Rectangle]RETURNS[BitmapDesc]={bounds_Intersect[Window[p],bounds];p.sMin_bounds.sMin-p.sOrigin;p.fMin_bounds.fMin-p.fOrigin;p.sSize_bounds.sSize;p.fSize_bounds.fSize;RETURN[p]};SetWindow:PUBLICPROC[p:BitmapDesc,bounds:Rectangle]RETURNS[BitmapDesc]={RETURN[p]};Window:PUBLICPROC[p:BitmapDesc]RETURNS[Rectangle]={RETURN[[p.sOrigin+p.sMin,p.fOrigin+p.fMin,p.sSize,p.fSize]]};BufferBounds:PUBLICPROC[p:BitmapDesc]RETURNS[Rectangle]={RETURN[[p.sOrigin,p.fOrigin,p.lines,Shift[p.rast,lgBitsPerWord-lgBitsPerPixel]]]};BoundedWindow:PUBLICPROC[p:BitmapDesc]RETURNS[Rectangle]={sMin:INTEGER_MAX[p.sOrigin+p.sMin,p.sOrigin];fMin:INTEGER_MAX[p.fOrigin+p.fMin,p.fOrigin];sMax:INTEGER_MIN[p.sOrigin+p.sMin+p.sSize,p.sOrigin+p.lines];fMax:INTEGER_MIN[p.fOrigin+p.fMin+p.fSize,p.fOrigin+Shift[p.rast,lgBitsPerWord-lgBitsPerPixel]];RETURN[[sMin,fMin,MAX[sMax-sMin,0],MAX[fMax-fMin,0]]]};replicator:ARRAY[0..4]OFCARDINAL=[0FFFFH,05555H,01111H,00101H,00001H];Fill:PUBLICPROC[dest:BitmapDesc,area:Rectangle,value:CARDINAL,function:Function]={lgPixelsPerWord:INTEGER=lgBitsPerWord-lgBitsPerPixel;Thefollowingboundingboxiscalculatedintermsofthedestinationbuffer.sMin:INTEGER=MAX[dest.sMin,0,area.sMin-dest.sOrigin];sMax:INTEGER=MIN[dest.sMin+dest.sSize,dest.lines,area.sMin+area.sSize-dest.sOrigin];fMin:INTEGER=MAX[dest.fMin,0,area.fMin-dest.fOrigin];fMax:INTEGER=MIN[dest.fMin+dest.fSize,Shift[dest.rast,lgBitsPerWord-lgBitsPerPixel],area.fMin+area.fSize-dest.fOrigin];replicatedPixel:CARDINAL_Inline.BITAND[value,Shift[1,Shift[1,lgBitsPerPixel]]-1]*replicator[lgBitsPerPixel];��qïg/îEÉ�wï_7îóîš�î'îÍ�î²ï]�îóî��îî·�îœyï[èîówï[èî`ïZ@îóuïVñîâwîLïVñ�ïVñyîIïVñ�ïVñîñïVñîwïVñî©îÑ î$àî*9 yî0þïVñ�ïVñî1ÒwïVñî7 î?‡�ïUJîµ�ïS£îóîÓ�î_î$NïQûîóîš�î'ïPSîóî��îïN¬îóî„�î ïMîóîy�î yïK]îówïK]î`ïIµîóuïFfîâwî¯ïFf�ïFfyî­ïFf�ïFfîUïFfîewïFfî î!4 î)Dî.� yî5aïFf�ïFfî65wïD¿îµ î3�î�yïCîówïCî`ïApîóuï>!îâwî´ï>!�ï>!yî²ï>!�ï>!îYï>!îjwï>!îî9 yî'Tï>!�ï>!î((wï>!î-_ î4‡�î6l�yï<yîówï<yî` î"�îî$î)÷�î+Üî0Ðî5¹ï:Òîóuï7ƒîâ wîûï7ƒ�ï7ƒyîøï7ƒ�ï7ƒî ï7ƒî±wï7ƒî Xî"€ yî*šï7ƒ�ï7ƒî+nwï7ƒî0¦ î7Î�î9³�yï5Ûîówï5Ûî` îz î#Äî(u ï44îÆï2Œîóuï/=îâ wîßï/=�ï/=yîÝï/=�ï/=î„ï/=î•wï/=î"<î$d yî,ï/=�ï/=î-Swï/=î2Š î9²�î;—�ï-–îóyîõï-–�ï-–î_wï-–î¹�yîFï-–�ï-–îWwîÿï-–�ï-–îbî%^�î'Cî,B ï+îîóyîêï+î�ï+îîTwï+îî®�yî;ï+î�ï+îîLwîôï+î�ï+îîWî%H�î'-î,! ï*Gîóyî!ï*G�ï*Gî‹wï*Gîå�yîrï*G�ï*GîƒwîÖï*G�ï*Gî9î%5�î'î+Á�î-¦î2�î8‹�î:pï(Ÿîóyîï(Ÿ�ï(Ÿî€wï(ŸîÚ�yîgï(Ÿ�ï(ŸîxwîËï(Ÿ�ï(Ÿî.î%�î'î+ �î-…î2cî8T�î:9 ï&øîÆyï%Pîówï%Pî`îyîÜï%P�ï%Pîíwî!”ï%P�ï%Pî!ø î)�yî+qï%P�ï%Pî,ƒwî.*ï%P�ï%Pî.� î6ï#©îóï Zîâ yî…ï Z�ï ZîYwï Zî,yî†ï Z�ï Zîb�ï Zî wï Zî&[�î(@î.îî4\î9Êï²îµuï îâwîèï �ï yîæï �ï î�ï îžwï îEî î&î)‡ î0Ayî4dï �ï î5/wî:›ï �ï î;wïcîµî��îå�ï¼îóyîÙï¼�ï¼îCwï¼î!��î#‚xïîóî¶îŠîmî"î#„ î)Þî+„î/2î0Õî3! î9ùwïmîyîïm�ïmîpwïmîÊ�yî¯ïm�ïmîÁwî!hïm�ïmî!Ë î(bî)ïïÅîyî2ïÅ�ïÅîœwïÅîö�yîÛïÅ�ïÅîíwî!?ïÅ�ïÅî!¢î/? ïî×ð#ïvîyîûïv�ïvîewïvî¿�yî¤ïv�ïvî¶wî!]ïv�ïvî!À î(Mî)ÙïÏîyî'ïÏ�ïÏî‘wïÏîë�yîÐïÏ�ïÏîâwî!4ïÏ�ïÏî!—î/ï(î×î&~ð#ï €îóyî±ï €�ï €î|wï €î!l�î"ùyî&Îï €�ï €î'‡wî+Lï €�ï €î+¯î/±î4zï ÙîÆîØ�î �������f��������TVm$”����������������������������������������������������������������������������������������������������������������4bbTableSpace:BitBlt.BBTableSpace;bb:BitBlt.BBptr_BitBlt.AlignedBBTable[@bbTableSpace];IFsMin<sMaxANDfMin<fMaxTHEN{bb^_[dst:[word:dest.pointer+Inline.LongMult[sMin,dest.rast]+Shift[fMin,-lgPixelsPerWord],bit:Inline.BITAND[fMin,Shift[1,lgPixelsPerWord]-1]],dstBpl:dest.rast*bitsPerWord,src:[word:@replicatedPixel,bit:0],srcDesc:[gray[[yOffset:0,widthMinusOne:0,heightMinusOne:0]]],height:sMax-sMin,width:Shift[fMax-fMin,lgBitsPerPixel],flags:[direction:forward,disjoint:TRUE,disjointItems:TRUE,gray:TRUE,srcFunc:function.srcFunc,dstFunc:function.dstFunc]];BITBLT[bb];};};Transfer:PUBLICPROC[dest,source:BitmapDesc,function:Function]={lgPixelsPerWord:INTEGER=lgBitsPerWord-lgBitsPerPixel;sMin:INTEGER=MAX[dest.sOrigin+MAX[dest.sMin,0],source.sOrigin+MAX[source.sMin,0]];sMax:INTEGER=MIN[dest.sOrigin+MIN[dest.sMin+dest.sSize,dest.lines],source.sOrigin+MIN[source.sMin+source.sSize,source.lines]];fMin:INTEGER=MAX[dest.fOrigin+MAX[dest.fMin,0],source.fOrigin+MAX[source.fMin,0]];fMax:INTEGER=MIN[dest.fOrigin+MIN[dest.fMin+dest.fSize,Shift[dest.rast,lgBitsPerWord-lgBitsPerPixel]],source.fOrigin+MIN[source.fMin+source.fSize,Shift[source.rast,lgBitsPerWord-lgBitsPerPixel]]];bbTableSpace:BitBlt.BBTableSpace;bb:BitBlt.BBptr=BitBlt.AlignedBBTable[@bbTableSpace];fMinDest:NAT=fMin-dest.fOrigin;fMinSource:NAT=fMin-source.fOrigin;sStartDest:NAT_sMin-dest.sOrigin;sStartSource:NAT_sMin-source.sOrigin;IFsMin<sMaxANDfMin<fMaxTHEN{bb^_[dstBpl:dest.rast*bitsPerWord,srcDesc:[srcBpl[source.rast*bitsPerWord]],height:sMax-sMin,width:Shift[fMax-fMin,lgBitsPerPixel],flags:[direction:forward,disjoint:TRUE,disjointItems:TRUE,gray:FALSE,srcFunc:function.srcFunc,dstFunc:function.dstFunc]];IFsource.pointer=dest.pointerTHEN{sSize:NAT=sMax-sMin;fSize:NAT=fMax-fMin;IF(fMinSource+fSize)>fMinDestAND(fMinDest+fSize)>fMinSourceAND(sStartSource+sSize)>sStartDestAND(sStartDest+sSize)>sStartSourceTHEN{bb.flags.disjoint_FALSE;--therectanglesoverlap��qïg/îEÉ�wï_,îó îOï]…îóî îV�îãð%yï[Ýîówï[Ýîšyîï[Ý�ï[ÝîÖwï[Ýî)yî$|ï[Ý�ï[Ýî%5wï[Ýî(A�ïZ5îîÇ�îT�ïXŽîîÍî2 î#²�î%—î3¸ î9s�ïVçîè îúî(›î+2yî/ïVç�ïVçî/Àwî3„ïVç�ïVçî3çî7½ïU?îèïS˜îîßïQðîî·îî'î)°ïPIîîšî#›î%( î/Îî1Zî<XïN¡îîÉ ïLúîîqî$!ïKRîîÊ îmî$ñyî*TïKR�ïKRî+ wî-€ïKR�ïKRî.\ yî7ïKR�ïKRî7¿wî:1ïKR�ïKRî;yïI«îèwîïI«�ïI«îñî¢î*~î0FïHîyïF\îwî ïF\�ïF\îoïD´îïC îóuï?¾îâwîìï?¾�ï?¾yîêï?¾�ï?¾î’ï?¾î£wï?¾îJî éî%² î-Áî3µî:��î;å�ï>îóyîÙï>�ï>îCwï>î!��î#‚ï<oîóyîõï<o�ï<oî_wï<oî¹�yîžï<o�ï<oî¯wîWï<o�ï<oîº yî(+ï<o�ï<oî)=wî*äï<o�ï<oî+G î1Þï:ÇîÆyî£ï:Ç�ï:Çî´wî\ï:Ç�ï:Çî¿ î&Âï9 îóyî!ï9 �ï9 î‹wï9 îå�yîÊï9 �ï9 îÜwî.ï9 �ï9 î‘ yî(ï9 �ï9 î)wî*fï9 �ï9 î*Éî8f ï7yîÆyî£ï7y�ï7yî´wîï7y�ï7yîjî.Þï5Ñîóyîêï5Ñ�ï5ÑîTwï5Ñî®�yî“ï5Ñ�ï5Ñî¥wîLï5Ñ�ï5Ñî¯ yî(ï5Ñ�ï5Ñî)'wî*Îï5Ñ�ï5Ñî+1 î1¾ï4*îÆyî˜ï4*�ï4*î©wîQï4*�ï4*î´ î&¬ï2‚îóyîï2‚�ï2‚î€wï2‚îÚ�yî¿ï2‚�ï2‚îÑwî#ï2‚�ï2‚î† yî'ìï2‚�ï2‚î(þwî*Pï2‚�ï2‚î*³î8;ï0ÛîÆî$Ðyî.¢ï0Û�ï0Ûî/³wî1ï0Û�ï0Ûî1iï/3îÆîï-Œîó îOï+äîóî îV�î;ð%ï*=îóyî¡ï*=�ï*=îŠwï*=î›�î€îý�î û ï(•îó yîøï(•�ï(•îàwï(•îñ�îÖî!S�î"Qï&îîó yîûï&î�ï&îîäwï&îîô�î�ï%Fîó yîQï%F�ï%Fî:wï%FîK�î×yï#Ÿîówï#Ÿîšyîï#Ÿ�ï#ŸîÖwï#Ÿî)yî$|ï#Ÿ�ï#Ÿî%5wï#Ÿî(A�ï!÷îîÇ�îT�ï Pîîßï¨îîšð"ïîîÉ ïYîîqî$!ï²îîÊ îmî$ñyî*Tï²�ï²î+ wî-€ï²�ï²î.\ yî7ï²�ï²î7¿wî:1ï²�ï²î;yï îèwî†ï �ï îcî î*ñî0¸ïcîyï»îwï»î¬ î—�î| yî&üï»�ï»î'µwï»î*Á�ïîyîï�ïîêwïîû�îà ïlîyîöïl�ïlîßwïlîð�îÕ yïÅîwïÅî½yî)ßïÅ�ïÅî*³wïÅî-yïîèwïîyî,ïï�ïî-Ãwï vîèyî)Éï v�ï vî*‚wï vî-��ï Ïî'î!�yî"‘ï Ï�ï Ïî#Jwî&/ï Ï�ï Ïxî',ï Ï�ï Ïî'¦�î(£î*ï î1@ÿ�������†��������TVm$�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������5IFsStartDest=sStartSourceTHENbb.flags.disjointItems_FALSE;--sodotheitemsIFsStartDest>sStartSourceOR(sStartDest=sStartSourceANDfMinDest>fMinSource)THEN{--reversedirectionbb.flags.direction_backward;bb.srcDesc.srcBpl_bb.dstBpl_-bb.dstBpl;sStartSource_sStartSource+(sSize-1);sStartDest_sStartDest+(sSize-1);};};};bb.dst_[word:dest.pointer+Inline.LongMult[sStartDest,dest.rast]+Shift[fMinDest,-lgPixelsPerWord],bit:Inline.BITAND[fMinDest,Shift[1,lgPixelsPerWord]-1]];bb.src_[word:source.pointer+Inline.LongMult[sStartSource,source.rast]+Shift[fMinSource,-lgPixelsPerWord],bit:Inline.BITAND[fMinSource,Shift[1,lgPixelsPerWord]-1]];BITBLT[bb];};};IsPowerOfTwo:PROC[c:CARDINAL]RETURNS[BOOLEAN]=INLINE{RETURN[BITAND[c,c-1]=0]};largeBitSize:INT_5000;fSizeHint:NAT_100;CreateTile:PUBLICPROC[rectangle:Rectangle,phase:INTEGER_0,rasterPointer:LONGPOINTER,scratchPointer:LONGPOINTER_NIL,scratchWords:INT_0]RETURNS[tile:Tile]={ENABLEInsufficientSpace=>GOTOInsufficientScratch;bitWidth:CARDINAL=Shift[rectangle.fSize,lgBitsPerPixel];bitmapDesc:BitmapDesc=[rectangle.sMin,rectangle.fMin,0,0,rectangle.sSize,rectangle.fSize,rasterPointer,(rectangle.fSize+(pixelsPerWord-1))/pixelsPerWord,rectangle.sSize];IFbitWidth<=16ANDIsPowerOfTwo[bitWidth]ANDbitmapDesc.sSize<16ANDphase=0THEN{small:BitmapDesc_Reshape[scratchPointer,scratchWords,[rectangle.sMin,rectangle.fMin,rectangle.sSize,Shift[16,-lgBitsPerPixel]]];FORfShift:NAT_0,fShift+bitmapDesc.fSizeUNTILfShift>=small.fSizeDOTransfer[small,ShiftMap[bitmapDesc,0,fShift],[null,null]];ENDLOOP;tile_[small.sOrigin,small.fOrigin,small.sSize,small.fSize,0,small.pointer,small.rast,small.lines];}ELSE{fSize:NAT_(fSizeHint+bitmapDesc.fSize-1)/bitmapDesc.fSize*bitmapDesc.fSize;bitsPerLine:NAT_Shift[fSize,lgBitsPerPixel];sSize:NAT_MAX[(((largeBitSize+bitsPerLine-1)/bitsPerLine)/bitmapDesc.sSize)*bitmapDesc.sSize,��qïg/îEÉ�yï_,î'wï_,îÎyî(ï_,�ï_,î(×wï_,î+ãî9�yî:”ï_,�ï_,î;Mwî>2ï_,�ï_,xî?/ï_,�ï_,î?©�ï]…îúî³î˜îäyï[Ýî'wï[ÝîÎyî'mï[Ý�ï[Ýî(J�wï[Ýî)¢yî9kï[Ý�ï[Ýî:>wïZ6îúyî&_ïZ6�ïZ6î'wïZ6î*$�xî+YïZ6�ïZ6î+Ò�î,Ðî1MwïXŽî8î#ò�î%î,.î7+�î8¸î>í�ïVçî ïU?î8 î!�î"© î*Ž�î,s î2{ î9 �î:— ïS˜î �îð ïQñî8ïPIî'ïN¢îïLúîî(�îµî î$š�î&î7¦ î=a�ïKSî×î¡î)Bî+Øyî/­ïKS�ïKSî0fwî4+ïKS�ïKSî4Žî;ïI«î×ïHîî�îžî î%ï�î'Ôî:Q ïF]î×�î¼î Üî,}î/yî2èïF]�ïF]î3¡wî7fïF]�ïF]î7É ïDµî×î yïCîwî ïC�ïCîoïAfîï?¿îóuï<pîâ wîÎï<p�ï<pyîÌï<p�ï<pîswï<pîsyînï<p�ï<pî9wî$¥ï<p�ï<pyî%�ï<p�ï<pî&awï<pî+˜�yî+ûï<p�ï<pî,µwî1œï<p�ï<pî2ƒ�yî4hï<p�ï<pî4Òwï<pî9�yï:Èîówï:Èî`�yîÃï:È�ï:Èî|wîAï:È�ï:Èî¤îîÇ�î!¬ï9!îóï5Òîâ yîåï5Ò�ï5ÒîOwï5Òîu�îï4*îâ yî{ï4*�ï4*îdwï4*ît�îuï2‚îâ wî-ï2‚�ï2‚yî+ï2‚�ï2‚îÓï2‚îäwï2‚î‹ î%D î+þyî0Xï2‚�ï2‚î0Âwï2‚î6�î7©î96 yï0Ûîµï0Ûî¥wîÂï0Û�ï0ÛîŸyî#ï0Û�ï0Ûî#¾ï0Ûî&öwï0Ûî,–�yî.#ï0Û�ï0Ûî/ wî0/ï0Û�ï0Ûî1 yî:ï0Û�ï0Ûî:xwï0Ûî<ž�î>+yï/4îµwï/4îÁîüî6�î�yï-Œîówï-Œîî Õyî#jï-Œ�ï-Œî$X�ï-Œî%¹wï-Œî'Óï+åîóyîJï+å�ï+åîwï+åî�îëî,–ï*=îó î î »�î" î,”î6î7¦ï(–îÆî@î$° ï&ïîÆð2î1êyï%Gîówï%Gîšîxîyîóï%G�ï%GîÆwï%Gî yî/§ï%G�ï%Gî0zwï%Gî2Íî=©�î>Þyï# îÆwï# îìîÍ�î²�yîçï# �ï# î wï# î­�ï!øîî îÓ�î `î/ î7öï Qî×î]î&×î,Qyï©îwï©îòyîBï©�ï©î+wï©î<�îÉî Uyî/Úï©�ï©î0Àwï©î4 yïî×wï[îînî,\î-éî2{î6yï³îwî·ï³�ï³ï îîc�îðîú î(– î/Ò î7î8� ïdî× îB ï½î�yïîówïîB�ïnîyîåïn�ïnîÎwïnîÞ�ïÆî×ðAïî yîÑï�ïîºwïîÊ�îW î&Sï wîyîðï w�ï wîÙwï wîé�yï Ðî×wî�ï Ð�ï ÐîóðOÿ�������0��������TVm$`��������������6bitmapDesc.sSize];large:BitmapDesc_Reshape[scratchPointer,scratchWords,[bitmapDesc.sOrigin+bitmapDesc.sMin,bitmapDesc.fOrigin+bitmapDesc.fMin,sSize,fSize]];finalPhase:CARDINAL;WHILEphase<0DOphase_phase+bitmapDesc.fSizeENDLOOP;phase_phaseMODbitmapDesc.fSize;finalPhase_(phase*(sSize/bitmapDesc.sSize))MODbitmapDesc.fSize;large.sSize_bitmapDesc.sSize;large.fSize_bitmapDesc.fSize;Transfer[large,bitmapDesc,[null,null]];WHILElarge.fSize<fSizeDOfSizePrev:NAT=large.fSize;large.fSize_MIN[fSize,2*fSizePrev];Transfer[large,ShiftMap[large,0,fSizePrev],[null,null]];ENDLOOP;WHILElarge.sSize<sSizeDOsSizePrev:NAT=large.sSize;large.sSize_MIN[sSize,2*sSizePrev];Transfer[large,ShiftMap[large,sSizePrev,phase],[null,null]];{firstPart:BitmapDesc_ShiftMap[large,sSizePrev,phase-bitmapDesc.fSize];firstPart.fSize_bitmapDesc.fSize;Transfer[large,firstPart,[null,null]];};phase_2*phase;WHILEphase>bitmapDesc.fSizeDOphase_phase-bitmapDesc.fSizeENDLOOP;ENDLOOP;tile_[large.sOrigin,large.fOrigin,sSize,fSize,finalPhase,large.pointer,large.rast,large.lines];};EXITSInsufficientScratch=>{tile_[rectangle.sMin,rectangle.fMin,rectangle.sSize,rectangle.fSize,phase,rasterPointer,(rectangle.fSize+(pixelsPerWord-1))/pixelsPerWord,rectangle.sSize];};};TransferTile:PUBLICPROC[dest:BitmapDesc,tile:Tile,function:Function_[null,null]]={bitWidth:CARDINAL=Shift[tile.fSize,lgBitsPerPixel];IFbitWidth=bitsPerWordANDtile.rast=1ANDtile.sSize<=16ANDtile.phase=0THEN{startLine:NAT_MAX[dest.sMin,0];endLine:INTEGER_MIN[dest.sMin+dest.sSize,dest.lines];startPixel:NAT_MAX[dest.fMin,0];endPixel:INTEGER_MIN[dest.fMin+dest.fSize,Shift[dest.rast,lgBitsPerWord-lgBitsPerPixel]];IFendLine>startLineANDendPixel>startPixelTHEN{startBit:NAT_Shift[startPixel,lgBitsPerPixel];bbTableSpace:BitBlt.BBTableSpace;��qïg/îEÉ�wï_,î×ï]…îîå îœ�î )î.Ý ï[Ýî×ð$ïZ6î×ð#î,0î/ûïXŽî yîïXŽ�ïXŽîàwî LïXŽ�ïXŽyïVçîwïVçîeyî§ïVç�ïVçî��wïVçîîî"Ï�î$\î(>�î*#yî4ôïVç�ïVçî5­wî:•ïVç�ïVçïU?îîæ�îsyîTïU?�ïU?îfwïU?î¬ïS˜î îœ�î)î„�î ¸yî0ŸïS˜�ïS˜î1±wïS˜î3÷ïQðî î±�î>ïPIî î¦�î3ïN¡îî& î$î'©yïLúîwïLúîeyî!šïLú�ïLúî"€�wïKRî yî¢ïKR�ïKRîŠwïKRî›�î € ïI«î î·�yîDïI«�ïI«îUwî¨ïI«�ïI«î î#Ê ïHîî7î'õî)‚ î0Pî3ãyïF\îwî·ïF\�ïF\yïD´îwïD´îeyî!°ïD´�ïD´î"–�wïC î yî­ïC �ïC î•wïC î¦�î ‹ ïAeî îÂ�yîOïAe�ïAeî`wî³ïAe�ïAeî î#à ï?¾îî7î'õ î.kî3î6›ï>î î� î#9�î$Æî.„ ï<oîèï:Çî'î£�î!0ï9 î'î H î%ãî)vï7xî'ï5Ñîî÷�î„yï4)îwï4)îvîX�î�yî)^ï4)�ï4)î*D�wï4)î+¥î/†�î1î4ô�î5òyï2‚îèwî‰ï2‚�ï2‚yï0Úîwî·ï0Ú�ï0Úï/3îîc�îðîà î((î+óî/² î6¢ ï-‹î× î ï+äîyï*<îówï*<îÇî lî#�ï(•îîc�îðî ãî*iî3ãî=Sï&îî× îIð2ï%Fî×ï#Ÿîï!÷îóuï¨îâ wîLï¨�ï¨yîJï¨�ï¨îñï¨îwï¨î©î#i î+yî.Qî1�î7tî=\�ïîµîHîç�îÌ�ïYîóyîJïY�ïYîwïYî�îëî)yï²îówï²îšîx�î] yî"aï²�ï²î#5wï²î%‡î*Z�î,?�yî-tï²�ï²î.Hwï²î0š î6>î8Ôyî:¹ï²�ï²î;Œwï îÆ îÙ�î¿�yîóï �ï î¬wï î¹�ïcî yîDïc�ïcî-wïcî>�yîÊïc�ïcîÜwî ƒïc�ïcî æ î'~ï»îyîìï»�ï»îUwï»î°�yî =ï»�ï»î!Nwî"¡ï»�ï»î#î0¡ ïî yî{ï�ïîdwïîu�yîï�ïîwî ºï�ïî! î'ªïlîyî#ïl�ïlîŒwïlîç�yî tïl�ïlî!…wî"Øïl�ïlî#;î0ÂïÅî×yïîwïî¬yî ï�ïî àwïî#2yî/ï�ïî/ºwïî2Æ�ï vîyîXï v�ï vîAwï vîQ�îÞî(pï Îî îqÿ�������â��������TVm$!��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������7bb:BitBlt.BBptr=BitBlt.AlignedBBTable[@bbTableSpace];sOffset:INTEGER_(dest.sOrigin+dest.sMin-tile.sOrigin)MODtile.sSize;fOffset:INTEGER_(dest.fOrigin+dest.fMin-tile.fOrigin)MODtile.fSize;WHILEsOffset<0DOsOffset_sOffset+tile.sSizeENDLOOP;WHILEfOffset<0DOfOffset_fOffset+tile.fSizeENDLOOP;bb^_[dst:[word:dest.pointer+Inline.LongMult[startLine,dest.rast]+startBit/bitsPerWord,bit:startBitMODbitsPerWord],dstBpl:dest.rast*bitsPerWord,src:[word:tile.pointer+sOffset,bit:Shift[fOffset,lgBitsPerPixel]],srcDesc:[gray[[yOffset:sOffset,widthMinusOne:0,heightMinusOne:tile.sSize-1]]],height:endLine-startLine,width:Shift[endPixel-startPixel,lgBitsPerPixel],flags:[direction:forward,disjoint:TRUE,disjointItems:TRUE,gray:TRUE,srcFunc:function.srcFunc,dstFunc:function.dstFunc]];BITBLT[bb];};}ELSE{sMin:INT_dest.sOrigin+dest.sMin;fMin:INT_dest.fOrigin+dest.fMin;source:BitmapDesc;sOrigin:INT_tile.sOrigin;fOrigin:INT_tile.fOrigin;WHILEsOrigin<sMinDOsOrigin_sOrigin+tile.sSize;fOrigin_fOrigin+tile.phase;ENDLOOP;WHILEsOrigin>sMinDOsOrigin_sOrigin-tile.sSize;fOrigin_fOrigin-tile.phase;ENDLOOP;WHILEfOrigin<fMinDOfOrigin_fOrigin+tile.fSizeENDLOOP;WHILEfOrigin>fMinDOfOrigin_fOrigin-tile.fSizeENDLOOP;source_[sOrigin,fOrigin,0,0,tile.sSize,tile.fSize,tile.pointer,tile.rast,tile.lines];WHILEsource.sOrigin<sMin+dest.sSizeDOsource.fOrigin_fOrigin;WHILEsource.fOrigin<fMin+dest.fSizeDOTransfer[dest,source,function];source.fOrigin_source.fOrigin+source.fSize;ENDLOOP;source.sOrigin_source.sOrigin+source.sSize;fOrigin_fOrigin+tile.phase;WHILEfOrigin>fMinDOfOrigin_fOrigin-source.fSizeENDLOOP;ENDLOOP;};};END.��qïg/îEÉ�wï_,îî¡ îx�î!]ð%ï]„îyî6ï]„�ï]„î wï]„îú�î!‡ð%yî8/ï]„�ï]„î9@wï]„î;‡ ï[Ýîyî+ï[Ý�ï[Ýî•wï[Ýîï�î!|ð%yî8ï[Ý�ï[Ýî9wï[Ýî;[ yïZ5îwïZ5îvî�îR�yî ‡ïZ5�ïZ5î!m�wïZ5î"Îî'u�î)î-©�î/Ž yî52ïZ5�ïZ5î5ìwî:ÓïZ5�ïZ5yïXŽîwïXŽîvî�îG�yî |ïXŽ�ïXŽî!b�wïXŽî"Ãî'_�î(ìî-ˆ�î/m yî5ïXŽ�ïXŽî5Àwî:¨ïXŽ�ïXŽïVæîîØ�îe�ïU>î'îÞîC î%Ã�î'¨î8 î=Â�ïS—îúî%Kî'âyî,«ïS—�ïS—î-¼wïS—î0 ïQðî'îðïPHî'îÈî-î+î-š î5ËïN î'î¬î%¬î*¬ î5Qî6ÞïLùîúïKQî'îÚïIªî'î‚î*®ïHî'îÛ î!~î'yî,eïH�ïHî-wî/‘ïH�ïHî0m yî9ïH�ïHî9Ðwî<BïH�ïHî=yïF[îúwî%ïF[�ïF[îî!³î,�î2WïD³î'yïC îwîïC �ïC î€ïAdîï?½î�yï>îówï>îB�ï<mîyîï<m�ï<mîpwï<mî–�î#ï:Æîyîûï:Æ�ï:Æîewï:Æî‹�îï9îîÍ ï7wîyî[ï7w�ï7wîÅwï7wîë�îx ï5ÏîyîPï5Ï�ï5Ïîºwï5Ïîà�îm yï4'îwï4'îeîC�îxyî!�ï4'�ï4'î!å�wï2€îîó�î€î ^�î"C ï0Øîîè�îuî H�î"- yï/1îwî·ï/1�ï/1yï-‰îwï-‰îeîC�îxyî!�ï-‰�ï-‰î!å�wï+áîîó�î€î ^�î![ ï*:îîè�îuî H�î!E yï(’îwî·ï(’�ï(’yï&ëîwï&ëîeî8�îmyî êï&ë�ï&ëî!Ð�wï&ëî#0î(�î)�î.c�î0H yî5áï&ë�ï&ëî6šwî;‚ï&ë�ï&ëyï%Cîwï%Cîeî8�îmyî êï%C�ï%Cî!Ð�wï%Cî#0î(�î)�î.c�î/` yî4úï%C�ï%Cî5³wî:›ï%C�ï%Cï#›îîT�îáîzî#¥î%1î&¾ î,» î2¬ î9ÿ ï!ôî× yï Mîwï Mîe î f�î!šyî,(ï M�ï Mî-�wï¥î î �î˜yïýîwïýîv î"l�î#¡yî.ïý�ïýî.þ�wïVî' îÅî$m ï®î' î �î!© î*ž�î,ƒ yïî'wîÈï�ïï_î î�î£ î(£�î*ˆ ï·îîè�îuî H�î"- yïîwïîvîI�î~yî"ûï�ïî#á�wïî%Aî*�î+¡î0t�î1q yî8üï�ïî9µwî>�ï�ïyïhîwî·ïh�ïhïÁîïîóyï Êîâwîiï Ê�ï Êÿ�������8��������TVm$.��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������PDInterpMainImpl.mesaCopyright(C)1984,XeroxCorporation.Allrightsreserved.MichaelPlass,September20,19849:14:01amPDTDIRECTORYPDInterpReader,PDInterpPage,PDRemoteStream,PDQueue,Process,Stream,String,PDInterpOutput;PDInterpMainImpl:PROGRAMIMPORTSPDInterpReader,PDInterpPage,PDRemoteStream,PDQueue,Process,String,PDInterpOutput=BEGINDoFile:PROC[request:PDQueue.Request,requestNumber:CARDINAL,abort:LONGPOINTERTOBOOLEAN]={Action:PROC[stream:Stream.Handle]={reader:PDInterpReader.Handle_PDInterpReader.Open[stream];separator:LONGSTRING_[160];String.Copy[separator,request.requestTime];THROUGH[0..2)DOString.AppendChar[separator,']ENDLOOP;String.AppendString[separator,request.fileName];THROUGH[0..2)DOString.AppendChar[separator,']ENDLOOP;String.AppendString[separator,request.requestor];THROUGH[0..2)DOString.AppendChar[separator,']ENDLOOP;reader.herald.copies_request.copies;WHILEPDInterpPage.InterpretPage[reader,request,abort].okDOIFabort^THENABORTEDENDLOOP;[]_PDInterpReader.Close[reader];};IFrequest.fileName=NILTHENPDInterpOutput.ReprintLastPage[request.copies]ELSE{PDRemoteStream.Read[request.fileName,request.requestor,request.requestorPassword,Action!PDRemoteStream.Error=>{message:LONGSTRING_[160];String.AppendString[message,request.fileName];String.AppendString[message,""];String.AppendString[message,expl];PDQueue.LogMessage[message,requestNumber];CONTINUE;};PDInterpReader.Error=>{message:LONGSTRING_[160];String.AppendString[message,"PDfileerror:"];String.AppendString[message,SELECTcodeFROMinvalidPassword=>"NotaPDfile",objectOutOfBounds=>"Objectoutofbounds",missingStartImage=>"Missingstartimage",badLoadReference=>"Badloadreference",unrecognisedImagingCommand=>"Unrecognisedimagingcommand",loadOutOfBounds=>"Loadoutofbounds",unrecognisedControlCommand=>"Unrecognisedcontrolcommand",unrecognisedCommandType=>"Unrecognisedcommandtype",��xï_,îâï]„îâî/î¤îBîZ î'Åî* î-Úï[Ýîâî$îî î Þî$$î) î+WyïXŽîâwïXŽîKî! î*Kî5ïî<¨ïVçîµîÀî1ïU?îâyîxïU?�ïU?î ïU?î!ûwïU?î'«î2g ïS˜îµîXî"î'Iî+¹ î6�yî8ïS˜�ïS˜î8½uïPIîâwîùïPI�ïPIyî÷ïPI�ïPIîžwïPIîžîOî)5 yî3‡ïPI�ïPIî4Rwî9¾ïPI�ïPIî:šyïN¡îµïN¡î¥ïN¡îFïN¡î`wî!�ïN¡�ïN¡î!è�î#Í�uïLúîówîÞïLú�ïLúyîÜïLú�ïLúî„wîÿïLú�ïLúîbîL î(�î)ú�ïKRîîÂî&Ù�î(fïI«î yîpïI«�ïI«î)ïI«îawïI«î"R�î#ßïHîî ÎyïF\îwïF\î’yîïF\�ïF\îé�wïF\îIî1š�î2w�yî3^ïF\�ïF\î4wî8ÿïF\�ïF\ïD´îî%ûyïC îwïC î’yîïC �ïC îé�wïC îIî1š�î2w�yî3^ïC �ïC î4wî8ÿïC �ïC ïAeîî%ûyï?¾îwï?¾î’yîï?¾�ï?¾îé�wï?¾îIî1š�î2w�yî3^ï?¾�ï?¾î4wî8ÿï?¾�ï?¾ï>îîb�î ïyï<oîwï<oîeð"î-4î2ayî81ï<o�ï<oî9�ï<oî:wwï<oî<yï:Çî×ï:Çî�ï:Çî¶wî#Wï:Ç�ï:Çï9 îîO�îÜï7xîyï5Ñîówï5ÑîšîC�yî(ï5Ñ�ï5Ñî ï5Ñî!¸wï4)îÆð.yï2‚îówï2‚îB�ï0Úîð%î,¡ï/3î×î$oî(ê�ï-Œîî#èî&}�ï+äî'yî÷ï+ä�ï+äî±ï+äî èwï+äî%Ù�î'fï*=î'î)‚ï(•î'î)‚�î*·ï&îî'î)‚ï%Fî'î*Àyï#žî'wîaï#ž�ï#žï!÷î'ï Oîî#î%–�ï¨î'yî÷ï¨�ï¨î±ï¨î èwï¨î%Ù�î'fï�î'î)‚î,¨î/î2üïYî'yî)‚ïY�ïYî*"wïYî.Uyî1œïY�ïYî2Uwï±î8î#Mî%âî)d�î*�î-ï î8î%¢î(8î-Yî/Ïî1ˆïbî8î$£î'9î- î0ï»î8î$ýî'’î+î.* ïî8î,²î/G î8¬ïlî ïÄî8î$™î'.î+rî-çî/ ïî8î,eî.û î8_ï vî ï Îî8î*Øî-n î6Óî=4ÿ�������6��������TVm$Á��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������2unexpectedEOF=>"UnexpectedEOF",runGroupTooLong=>"Rungrouptoolong",bitmapTooBig=>"Bitmaptoobig",deviceCommandTooBig=>"Devicecommandtoobig",ENDCASE=>"??"];String.AppendString[message,"wordIndex:"];String.AppendDecimal[message,wordIndex];String.AppendString[message,"wordCount:"];String.AppendDecimal[message,wordCount];PDQueue.LogMessage[message,requestNumber];CONTINUE;};PDInterpReader.Warning=>{message:LONGSTRING_[160];String.AppendString[message,"PDfilewarning:"];String.AppendString[message,SELECTcodeFROMwrongFormatVersion=>"WrongversionofPDfileformat",unreasonableResolution=>"Unreasonableresolution",unreasonableBandSSize=>"UnreasonablebandSSize",unreasonableImageSize=>"UnreasonableimageSize",unreasonableLoadSize=>"UnreasonableloadSize",unreasonableNumberOfCopies=>"Unreasonablenumberofcopies",objectOutOfBand=>"Objectoutofband",emptyRunGroup=>"Emptyrungroup",nonZeroFill=>"Non-zerofill",imageBoundsExceedPageBounds=>"Imageboundsexceedpagebounds",tooFewBands=>"Toofewbands",unknownColorTileFlag=>"Unknowncolortileflag",ENDCASE=>"??"];String.AppendString[message,"wordIndex:"];String.AppendDecimal[message,wordIndex];String.AppendString[message,"wordCount:"];String.AppendDecimal[message,wordCount];PDQueue.LogMessage[message,requestNumber];RESUME;};];};};Main:PROC={DOPDQueue.DoRequest[DoFile!ABORTED=>CONTINUE;]ENDLOOP};��qïg/îEÉ�wï_,î8 î#dî%ú î.Lï]„î8î%=î'Óî+žî/ î2 ï[Ýî8 î"Dî$Úî*^î,ÈïZ5î8î(î*ªî/÷î6Xî8ÂyïXŽî8wïXŽî:î!ÐïVæî8ïU>î'î)‚�î*· î2!ïS—î'î*ã ïQïî'î)‚�î*· î2nïPHî'î*ã ïN î'î*ÀyïLøî'wîaïLø�ïLøïKQî'ïI©îî$üî'’�ïHî'yî÷ïH�ïHî±ïHî èwïHî%Ù�î'fïFZî'î)‚î,¨î/î4×ïD²î'yî)‚ïD²�ïD²î*"wïD²î.Uyî1œïD²�ïD²î2UwïC î8î&fî(üî.Hî3î4Èî7=î9§ïAcî8î(�î*– î3ú ï?¼î8î'ßî*u î3Ù ï>î8î'§î*= î3¡ ï<lî8î' î)¢ î3 ï:Åî8î,2î.Ç î8,î=Xï9î ï7vî8î$Aî&×î+øî.mî0&ï5Îî8 î#ÿî&•î+Áî.Wï4'î8 î âî#wî*Iï2î8î-Mî/âî4Àî9 î>'ï0Øî ï/0î8 î!Ëî$`î'óî*”ï-‰î8î'šî*0î1Lî4Éî7(yï+áî8wï+áî:î!Ðï*9î8ï(’î'î)‚�î*· î2!ï&êî'î*ã ï%Cî'î)‚�î*· î2nï#›î'î*ã ï!óî'î*Àyï Lî'wîï L�ï Lï¤î'ïýîïUîï­îóuï^îâwîï^�ï^yîï^�ï^î·wï^î¶�î›�yï·îówïîî$ý�yïgîwïgî/yîÄïg�ïgî�wî#þïg�ïgïÀî�yïîwï qîó�������2��������TVm$Ú����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������3PDQueue.LogMessage["Booted."];Process.Detach[FORKMain[]];END.��qïg/îEÉ�wï_,îâï[Ýîâyî1ï[Ý�ï[Ýîëwï[ÝîyïX�îâwîiïX��ïX�ÿ��������>��������TVm$�-����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������PDInterpOutput.mesaCopyright(C)1984,XeroxCorporation.Allrightsreserved.MichaelPlass,September19,19849:12:44amPDTDIRECTORYPDFileFormat,PDInterpBitmap,PDQueue;PDInterpOutput:DEFINITIONS=BEGINStartImage:PROC[herald:PDFileFormat.Herald,startImage:PDFileFormat.StartImage,request:PDQueue.Request]RETURNS[PDInterpBitmap.BitmapDesc];Calledatthestartofeachpass.Returnsaclearedbufferforthefirstbandonthepage.Onsomedevices(continuousformdevicessuchasaVersatec),theoutputroutinemaywanttoprintaseparatorbarcontainingtheseparatorstring.TheImplshouldcopythestringifitneedstosaveitpasttheStartImagecall.EndBand:PROCRETURNS[PDInterpBitmap.BitmapDesc];Calledattheendofeachband.Returnsaclearedbufferforthenextband.Thebufferreturnedbythecallforthelastbandshouldnotbeused.EndImage:PROC[request:PDQueue.Request];Actuallystartstheprinting.ReprintLastPage:PROC[copies:CARDINAL];Attemptstoreprintthemostrecentpageagain.Thereneedstobesomestuffhereforerrormessagesandrecovery.END.��xï_:îâï]“îâî/î¤îBîZ î'Åî* î-Úï[ëîâî$îî î Þî$$î) î+WyïX�îâwïX�îK îÐî*—ïUNîâyîÁïUN�ïUNî¦ wïUNî!à�yî#ÅïUN�ïUNî$uïQÿîâ wî„ïQÿ�ïQÿyî‚ïQÿ�ïQÿî)wïQÿî)îJî-@ ïPXîµî î%WyïN±îówïN±îÿxïM îóî7îÜî(îFîéî!ïKbîóî�î9îÖîÄî!ìî$8î'î*[î,Nî.šïI»îóîIî³î; î"‚î%Àî*Hî-eî/�î0R î6Ÿî8ëî=*ïHîÆî¶îî¦îñ�î%î$î&l î-î/[î59î9äî<§ïFlîÆî î1î}îMî £î!úî%¨î'Lî*;î+“î.lî0¸ î7ÛuïCîâwîDïC�ïCyîAïC�ïCîéïCîèwïCîôxïAvîóî7îÜî(î¶îYî �ï?Ïîóî�î9îÖîÄî!ìî$8î'Mï>'îóî¶î¥îîÝî!)î#¿î%çî(3î*¿î.î2Yî4¼î6Œuï:ÙîâwîÓï:Ù�ï:ÙyîÐï:Ù�ï:Ùîxwî]ï:Ù�ï:ÙîÀîxï91îóîYîûîGuï5ãîâwîßï5ã�ï5ãyîÝï5ã�ï5ãî…wï5ãî„yî"�ï5ã�ï5ãî#Zwî(Æï5ã�ï5ãî))�xï4;îóî«îPîºîî"Eî&Mî)}ï0íîâîÄîrîîæîPî cî#^î%†î(âî. î1Cyï-žîâwîiï-ž�ï-ž�������º��������TVm$Ï����������������������������������������������������������������������������������������������������������������������������������������������������������������������PDInterpOutputViewerImpl.mesaCopyright(C)1984,XeroxCorporation.Allrightsreserved.MichaelPlass,September26,19845:22:14pmPDTImplementsaCedarPDoutputdevicethatshowsthebitmapinaviewer.DIRECTORYPDFileFormat,PDInterpBitmap,Menus,ImagerPixelMaps,PDInterpOutput,ViewerClasses,ViewerOps,CGContext,Graphics,GraphicsOps,Real,ImagerFrameBuffer,Process,PDTextBitmap,String,PDQueue;PDInterpOutputViewerImpl:PROGRAMIMPORTSMenus,ImagerPixelMaps,ViewerOps,Graphics,GraphicsOps,Real,ImagerFrameBuffer,Process,PDTextBitmap,PDInterpBitmap,StringEXPORTSPDInterpOutput=BEGINviewer:ViewerClasses.Viewer_NIL;pageMap:ImagerPixelMaps.PixelMap_ImagerPixelMaps.Create[0,[0,0,0,0]];currentStartImage:PDFileFormat.StartImage;currentHerald:PDFileFormat.Herald;bandNumber:NAT_0;StartImage:PUBLICPROC[herald:PDFileFormat.Herald,startImage:PDFileFormat.StartImage,request:PDQueue.Request]RETURNS[PDInterpBitmap.BitmapDesc]={bandMap:ImagerPixelMaps.PixelMap;pageMap_ImagerPixelMaps.Create[0,[startImage.passBands*herald.bandSSize,startImage.fMinPage,startImage.nBands*herald.bandSSize,startImage.fSizePage]];currentStartImage_startImage;currentHerald_herald;bandNumber_0;pageMap.Clear;bandMap_pageMap.Clip[[startImage.passBands*herald.bandSSize,startImage.fMinPage,herald.bandSSize,startImage.fSizePage]];RETURN[[sOrigin:bandMap.sOrigin,fOrigin:bandMap.fOrigin,sMin:bandMap.sMin,fMin:bandMap.fMin,sSize:bandMap.sSize,fSize:bandMap.fSize,pointer:bandMap.refRep.pointer,rast:bandMap.refRep.rast,lines:bandMap.refRep.lines]]};EndBand:PUBLICPROCRETURNS[PDInterpBitmap.BitmapDesc]={bandMap:ImagerPixelMaps.PixelMap;bandNumber_bandNumber+1;bandMap_���xï_,îâï]„îâî/î¤îBîZ î'Åî* î-Úï[Ýîâî$îî î Þî$$î) î+WïZ5îâ î)�î^î`îßî"î&!î(óî,Õî/!î3Ÿî5E�î6zyïVæîâwïVæîK îÐî*—î/�ïU?îµîr î#µ î+ î2Õî9 ïS˜îµîHîþî%4 î.ýî3nïPIîâyî ÆïPI�ïPIî!nïN¡îówïN¡î£î�î&Ë î.4î4t î=ïLúîÆî{î#² î-{î8ByïKRîówïKRîµ ïI«îó�yîØïI«�ïI«î‘wïF\îóîÑî#A�yî$ÎïF\�ïF\î%¶wî&ÙïF\�ïF\ïC îóîuî(c�î)ðî:z ïAeîóî®ï?¾îó îOï>îó yîïï>�ï>î×wï>îè�îuuï:Çîó wî•ï:Ç�ï:Çyî“ï:Ç�ï:Çî:ï:ÇîKwï:Çî òî&î4 ï9 îÆî"î'hyï7xîwï7xîî+Ð�î-µ�ï5Ñîî¾ï4)îî �îšï2‚î×ð'î,ªï0Ûî×ð#î*˜ï/3îîE�îÒ ï-Œî îç�îtï+äî î‡�îï*=î ï(•îîE�îÒð4ï&îî×î!î,%yï%Fîwï%Fîqï#Ÿîîmï!÷îîbï Pîî ï¨îî ïîî ïYîîö ï²îîXï îî0ïcîîÊï»îïîuïÄîówîUïÄ�ïÄyîRïÄ�ïÄîúïÄî ïÄî²wïÄî%¾î8~�î:c�ïîî¾ï uî î‡�î î%–�î'{ï ÎîîE�ÿ�������G��������TVm$Ù����2pageMap.Clip[[(currentStartImage.passBands+bandNumber)*currentHerald.bandSSize,currentStartImage.fMinPage,currentHerald.bandSSize,currentStartImage.fSizePage]];RETURN[[sOrigin:bandMap.sOrigin,fOrigin:bandMap.fOrigin,sMin:bandMap.sMin,fMin:bandMap.fMin,sSize:bandMap.sSize,fSize:bandMap.fSize,pointer:bandMap.refRep.pointer,rast:bandMap.refRep.rast,lines:bandMap.refRep.lines]]};ShowPage:PROC={data:ViewerData;IFviewer=NILORviewer.destroyedTHENviewer_ViewerOps.CreateViewer[$PDInterpOutputViewerClass,[name:"PDpage",column:left,iconic:TRUE]]ELSEViewerOps.PaintViewer[viewer,client];data_NARROW[viewer.data];data.nextPage_FALSE;data.sShift_-pageMap.sOrigin;data.fShift_-pageMap.fOrigin;DOIFviewer.destroyedORdata.nextPageTHENEXIT;Process.Pause[Process.MsecToTicks[200]];ENDLOOP;};EndImage:PUBLICPROC[request:PDQueue.Request]={separator:LONGSTRING_[160];String.Copy[separator,request.requestTime];THROUGH[0..2)DOString.AppendChar[separator,']ENDLOOP;String.AppendString[separator,request.fileName];THROUGH[0..2)DOString.AppendChar[separator,']ENDLOOP;String.AppendString[separator,request.requestor];THROUGH[0..2)DOString.AppendChar[separator,']ENDLOOP;ShowPage[];IFPDTextBitmap.fontName.length=0THENIFNOTPDTextBitmap.SetFont["[Indigo]<Peach>Fonts>TimesRoman36B.ks",request.requestor,request.requestorPassword]THENERROR;pageMap_pageMap.refRep.Reshape[0,[-1-PDTextBitmap.FontAscent[],-PDTextBitmap.FontAscent[],PDTextBitmap.FontAscent[]+PDTextBitmap.FontDescent[]+2,PDTextBitmap.TextWidth[separator]+2*PDTextBitmap.FontAscent[]]];{bits:PDInterpBitmap.BitmapDesc_[sOrigin:pageMap.sOrigin,fOrigin:pageMap.fOrigin,��qïg/îEÉ�wï_,î×ðOï]…î×î%Žï[Ýî×yïZ6îwïZ6îqïXŽîîmïVçîîbïU?îî ïS˜îî ïQðîî ïPIîîö ïN¡îîXïLúîî0ïKRîîÊïI«îïHîuïD´îówîïD´�ïD´yîïD´�ïD´îÁwïD´îÀ�î¥�ïC îîƒ yïAeîwïAeî¬î�yîõïAe�ïAeîÞïAeî…wïAeîºyî*2ïAe�ïAeî*ëwïAeî-÷î2\�ï?¾î×ð2î5×î:sî=™ï>î×îFîyî Žï>�ï>î!Gwî#ºï>�ï>î$�yï<oîwï<oîSî)”ï:Çîî �yî–ï:Ç�ï:Çîwï:Çîu ï9 î î¹�yîFï9 �ï9 îÿwî äï9 �ï9 ï7xî î¾�îKï5Ñî î³�î@yï4)îï2‚îwï2‚î½yî!5ï2‚�ï2‚î"�wï2‚î#i yî,ï2‚�ï2‚î,×ï2‚î/ãwî2“ï2‚�ï2‚ï0Úîð(yï/3îwî·ï/3�ï/3ï-‹îuï*<îówîäï*<�ï*<yîâï*<�ï*<î‰ï*<îšwï*<î Aî%òî1ã�î3È�ï(•î yîpï(•�ï(•î)ï(•îawï(•î"R�î#ßï&íîî Îyï%Fîwï%Fî’yîï%F�ï%Fîé�wï%FîIî1š�î2w�yî3^ï%F�ï%Fî4wî8ÿï%F�ï%Fï#žîî%ûyï!÷îwï!÷î’yîï!÷�ï!÷îé�wï!÷îIî1š�î2w�yî3^ï!÷�ï!÷î4wî8ÿï!÷�ï!÷ï Oîî%ûyï¨îwï¨î’yîï¨�ï¨îé�wï¨îIî1š�î2w�yî3^ï¨�ï¨î4wî8ÿï¨�ï¨ï�î yïYîwïYî¬î(‚�î*g�yî+œïY�ïYî,UïYî/aïYî1wï±î×ð=ï î×îëyî/Žï �ï î0Gï î3Swî7eï �ï ïbîî �îšî+âï»î×ïî×ð7ïlî×ð@ïÅî�ïîî0î**�î+·�ï vî'î~ï Îî'îs�������H��������TVm$M��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������3sMin:pageMap.sMin,fMin:pageMap.fMin,sSize:pageMap.sSize,fSize:pageMap.fSize,pointer:pageMap.refRep.pointer,rast:pageMap.refRep.rast,lines:pageMap.refRep.lines];PDInterpBitmap.Fill[bits,[-10000,-10000,20000,20000],1];PDTextBitmap.TextToBitmap[dest:bits,string:separator,function:[and,complement]];};ShowPage[];};ReprintLastPage:PUBLICPROC[copies:CARDINAL]={IFcurrentHerald.password#PDFileFormat.passwordValueTHENRETURN;currentHerald.copies_copies;ShowPage[];};viewerClass:ViewerClasses.ViewerClass_NEW[ViewerClasses.ViewerClassRec_[init:ViewerInit,paint:ViewerPaint,scroll:ViewerScroll,coordSys:bottom,icon:tool]];ViewerData:TYPE=REFViewerDataRep;ViewerDataRep:TYPE=RECORD[sShift:INTEGER_0,fShift:INTEGER_0,nextPage:BOOLEAN_FALSE];HScrollHit:Menus.ClickProc=TRUSTED{viewer:ViewerClasses.Viewer_NARROW[parent];data:ViewerData_NARROW[viewer.data];IFdata=NILTHENRETURN;data.fShift_data.fShift+(IFmouseButton=redTHEN-128ELSE128);IFmouseButton=yellowTHENdata.fShift_-pageMap.fMin;ViewerOps.PaintViewer[viewer,client];};PageHit:Menus.ClickProc=TRUSTED{viewer:ViewerClasses.Viewer_NARROW[parent];data:ViewerData_NARROW[viewer.data];IFdata=NILTHENRETURN;data.nextPage_TRUE;���qïg/îEÉ�wï_7î'î( ï]�î'î ï[èî'î ïZ@î'î ïX™î'îiïVñî'îAïUJî'îÛïS¢î'ïQûîî$Åî)ðî.¸î3î7¸ïPSîî*¸î-±î2 î8Kî>?ïN¬îè ïMîïK]î ïIµîuïFfîówîðïFf�ïFfyîîïFf�ïFfî–ïFfî §wïFfî$Nyî)YïFf�ïFfî*#wî/�ïFf�ïFfî0w�î2\�yïD¿îwïD¿î¬î#_�î%Dyî7µïD¿�ïD¿î8nïD¿î;zwî@bïD¿�ïD¿ïCîîé�î!uïApî ï?Èîï<yîó îàî)^�yî*ëï<y�ï<yî+Ôwï<yî.+ï:ÒîÆ�îS�ï9*îîþ ï7ƒîî ï5Ûîî' ï44îîZï2Œîî‚ï0åîï-–îó yî÷ï-–�ï-–î°wï-–îi�yîNï-–�ï-–î"wï-–î! ï*Fîó yîmï*F�ï*Fî&wï*FîÞ�yî Ãï*F�ï*Fî!—wï*Fî&6�ï(Ÿîyî_ï(Ÿ�ï(ŸîÉwï(Ÿî$�î±ï&÷îyîUï&÷�ï&÷î¾wï&÷î�î¦ï%PîyîZï%P�ï%Pîwï%Pî�yî! ï%P�ï%Pî!Åwï#¨îuï Yîó wî«ï Y�ï Yî©î#X�yî%=ï Y�ï Yî%öwï Yî++�ï²îîâî%R�yî&ßï²�ï²î'Çwî,9ï²�ï²î,œï îîƒ î �yîšï �ï î ƒwî$õï �ï î%X yïcîwïcî¬î±�yî–ïc�ïcî~ïcî%ïcîëwî$Óïc�ïcï»î î³�î@ î!ï�î#Ô�yî$Nï»�ï»î$·�wï»î%õ î.]�î0Byî2·ï»�ï»î3pwï»î6|yî9‹ï»�ï»î:Dwï»î<Úyïîwïî¬ î�îùyî#Rï�ïî$ wïî' î-Æ�î/S ïlîî&EïÅîuïvîówîçïv�ïvîåî!”�yî#yïv�ïvî$2wïvî)g�ïÎîîâî%R�yî&ßïÎ�ïÎî'Çwî,9ïÎ�ïÎî,œï&îîƒ î �yîšï&�ï&î ƒwî$õï&�ï&î%X yï îwï î¬î±�yî–ï �ï î~ï î%ï îëwî$Óï �ï ï ×î î¹�yîFï ×�ï ×îÿwî qï ×�ï ×����������������TVm$’����������������������������������������������������������������������������4};lfGraphicsData:CGContext.Ref=NARROW[Graphics.NewContext[].data];ViewerInit:ViewerClasses.InitProc=TRUSTED{viewerData:ViewerData_NEW[ViewerDataRep];menu:Menus.Menu_Menus.CreateMenu[1];Menus.InsertMenuEntry[menu,Menus.CreateEntry[name:"<<<-->>>",proc:HScrollHit]];Menus.InsertMenuEntry[menu,Menus.CreateEntry[name:"Page",proc:PageHit]];viewerData.sShift_0;viewerData.fShift_0;self.data_viewerData;self.menu_menu;};ViewerScroll:ViewerClasses.ScrollProc=TRUSTED{data:ViewerData_NARROW[self.data];IFdata=NILORop=queryTHENRETURN[0,100];IFop=thumbTHEN{data.sShift_-pageMap.sOrigin;RETURN[0,100]};IFamount=0THENRETURN[0,100];IFop=downTHENamount_-amount;data.sShift_data.sShift-amount;ViewerOps.PaintViewer[self,client];RETURN[0,100];};OnLFDisplay:PROC[graphics:Graphics.Context]RETURNS[BOOLEAN]={data:CGContext.Ref=NARROW[graphics.data];RETURN[data.device.Show=lfGraphicsData.device.Show]};GetViewerPixelMap:PROC[graphics:Graphics.Context]RETURNS[pixelMap:ImagerPixelMaps.PixelMap]={x,y,w,h:REAL;[x,y]_GraphicsOps.UserToDevice[graphics,0,0];IFGraphicsOps.UserToDevice[graphics,0,1].ty>yTHENERROR;[[xmax:w,ymax:h]]_Graphics.GetBounds[graphics];IFOnLFDisplay[graphics]THEN{sMin:INTEGER_Real.RoundLI[y]-Real.RoundLI[h];pixelMap_ImagerFrameBuffer.LFDisplay[];pixelMap_pixelMap.ShiftMap[-sMin,-Real.RoundLI[x]];pixelMap_pixelMap.Clip[[0,0,Real.RoundLI[h],Real.RoundLI[w]]];}ELSEpixelMap_ImagerPixelMaps.Create[0,[0,0,0,0]];};ViewerPaint:ViewerClasses.PaintProc=TRUSTED{data:ViewerData_NARROW[self.data];pixelMap:ImagerPixelMaps.PixelMap_GetViewerPixelMap[context];pixelMap.Transfer[pageMap.ShiftMap[data.sShift,data.fShift]];���qïg/îEÉ�wï_,îï[Ýîóî î$è�yî&Íï[Ý�ï[Ýî'µwî,'ï[Ý�ï[Ýî,ŠuïXŽîó wîïXŽ�ïXŽîî&$�yî( ïXŽ�ïXŽî(ÂwïXŽî-÷�ïVæî î» î"F�yî#ÓïVæ�ïVæî$»wî&�ïVæ�ïVæî&òïU?îî_ îÑ�î!]ïS—îî&Gî6{ î=ÍïQðî× ïPIîî&Gî6{î;…ïN¡î× ïLúîî÷�î„ïKRîîì�îyïI«îîg�îô ïHîîC�îÐïF\îuïC îó wîˆïC �ïC î…î(Û�yî*ÀïC �ïC î+ywïC î0®�ïAeîîƒ î �yîšïAe�ïAeî ƒwïAeî%y yï?¾îwï?¾î¬î±�yî–ï?¾�ï?¾î~ï?¾î%wï?¾îZî a�î"Fyî&2ï?¾�ï?¾î&ëï?¾î)÷wï?¾î/dî1Tyï>îwï>î¬î²�î—yî ï>�ï>îÂwï>î Î î(9�î)Æyî5rï>�ï>î6Fwï>î:Þî<Îyï<oîwï<oî¬î·�îœ�yîÑï<o�ï<oîŠï<oî –wï<oî&î'òyï:Çîwï:Çî¬î²�î—yîbï:Ç�ï:Çîwï:Çî (î%3�î&Àï9î î¾�îK î"�î#ï7xîî$kyï5Ðîwï5Ðîqîaï4)îuï0Úîó wîï0Ú�ï0Úyîÿï0Ú�ï0Úî¦wï0Úî¦ î#ñyî/Gï0Ú�ï0Úî0wï0Úî5R�yî5¶ï0Ú�ï0Úî6owî;Vï0Ú�ï0Úî<=�î>"�ï/2îîƒ î a�yî"Fï/2�ï/2î#.wî' ï/2�ï/2î(yï-‹îwï-‹îqî#��î%tï+ãîuï(”îówîï(”�ï(”yî�ï(”�ï(”î§wï(”î!§ î'òyî3Hï(”�ï(”î4wï(”î9S ï&íîÆî#�î$ü�ï%Eîî‘îîøyî½ï%E�ï%Eî‘wîÖï%E�ï%Eï#žîîôîŒ�îð'yï!öîwï!öî¬ð)î/ �î0?�yî1tï!ö�ï!öî2-ï!öî59wî9Kï!ö�ï!öï OîîøîÒî�î �î!žyï§îwï§î¬yî#ï§�ï§î#Éwï§î&Õ�ï�îyîï��ï�î�wï�îÛ�î hïXîî?�îÌï±îî?�îÌî-!ï îî?�îÌî'§î)4î40ïbî�yïºîwïºîSî}�î î.” ïîuïÄîó wî/ïÄ�ïÄî-î(*�yî*ïÄ�ïÄî*ÉwïÄî/ý�ïîîƒ î �yîšï�ïî ƒwïî%y ï uîî§î*•�î,"ï Íîð/î1P �������O��������TVm$Û������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������5};ViewerOps.RegisterViewerClass[$PDInterpOutputViewerClass,viewerClass];currentHerald.password_0;END.��qïg/îEÉ�wï_,îï[Ýîóð9î7� ïX�îóî§�î!3yïU@îówî{ïU@�ïU@��������f��������TVm$�+����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������PDInterpPage.mesaCopyright(C)1984,XeroxCorporation.Allrightsreserved.MichaelPlass,September20,19848:57:18amPDTDIRECTORYPDInterpReader,PDQueue;PDInterpPage:DEFINITIONS=BEGINInterpretPage:PROC[handle:PDInterpReader.Handle,request:PDQueue.Request,abort:LONGPOINTERTOBOOLEAN]RETURNS[ok:BOOLEAN];Interpretsonepage(maybemultiplepasses),andshipsitout.MayraisePDInterpReader.WarningorPDInterpReader.ErrororPDInterpOutput.ErrororPDInterpInput.AbortDoesnotcallPDInterpInput.ReportStatus.ReturnsFALSEupondocumentend.END.���xï_:îâï]“îâî/î¤îBîZ î'Åî* î-Úï[ëîâî$îî î Þî$$î) î+WyïX�îâwïX�îKî!uïUNîâ wî]ïUN�ïUNyî[ïUN�ïUNîA wïUNî {�yî"`ïUN�ïUNî#uïQÿîâ wîïQÿ�ïQÿyîïQÿ�ïQÿî«wïQÿîªî!î0}î5ËïPXîµyîÍïPX�ïPXî†ïPXî¾ïPXî_ïPXîywî%ïPX�ïPXyî&�ïPX�ïPXî&ÔwïPXî, yî.ãïPX�ïPXî/�wî4„ïPX�ïPXî4ç�xïN±îó î$î²îãî Lî"î'Wî,6î.Ùî27î3ŽïM îóî"î]î' î(Åî6~ïKbîÆî…î!>ïI»îóî[î¾îTïHîóîî%î…î$¢yïDÅîâwîiïDÅ�ïDÅÿ�������ý��������TVm$�ö��������������������PDInterpPageImpl.mesaCopyright(C)1984,XeroxCorporation.Allrightsreserved.MichaelPlass,September20,19849:16:18amPDTLastEditedby:Pier,November30,19836:37pmDIRECTORYEnvironment,Inline,PDFileFormat,PDInterpReader,PDInterpOutput,PDInterpPage,PDInterpBitmap,PDInterpSysCalls,Heap,PDQueue;PDInterpPageImpl:PROGRAMIMPORTSInline,PDInterpReader,PDInterpOutput,PDInterpBitmap,PDInterpSysCalls,HeapEXPORTSPDInterpPage=BEGINCommandBuffer:TYPE=PDInterpReader.CommandBuffer;bitsPerWord:NAT=Environment.bitsPerWord;heapZone:UNCOUNTEDZONE=Heap.systemZone;totalAllocates,totalFrees:INT_0;availCount:NAT;--countofthenumberofleftoverrecordsonthefreelistLeftoverlisttypesLeftoverRef:TYPE=LONGPOINTERTOLeftover;Leftover:TYPE=RECORD[link:LeftoverRef_NIL,commandBuffer:CommandBuffer,colorType:PDInterpReader.ColorType,colorTileLoadAddress:INT_-1,priority:INT];InterpretPage:PUBLICPROC[handle:PDInterpReader.Handle,request:PDQueue.Request,abort:LONGPOINTERTOBOOLEAN]RETURNS[ok:BOOLEAN]={readHead,writeHead,availHead,writeTail:LeftoverRef_NIL;--headsandtailofleftoverlistscurrentColorType:PDInterpReader.ColorType;currentColorTileLoadAddress:INT_-1;currentPriority:INT_-1;leftovers:BOOLEAN;--can'tbefilledinuntilStartImagehashappenedcommandBuffer:CommandBuffer;band:PDInterpBitmap.BitmapDesc;bandMaxS:INT;cachedColorTile:PDInterpBitmap.Tile;cachedColorReference:INT_-1;GetColorTile:PROC={IFcurrentColorTileLoadAddress#cachedColorReferenceTHEN{cachedColorTile_PDInterpReader.ColorTileFromLoad[handle,cachedColorReference_currentColorTileLoadAddress,scratchPointer,scratchWords];};};���xï_,îâï]„îâî/î¤îBîZ î'Åî* î-Úï[Ýîâî$îî î Þî$$î) î+WïZ5îâîþîEî˜îÞî"Bî$î'Åî*ÔyïVæîâwïVæîK îôî#M î,ÓïU?îµîr î#·î.~î9ßïS˜îµïPIîâyî ïPI�ïPIîÇïN¡îówïN¡î£îýî%¹î0vïLúîÆî'yïKRîówïKRîµ ïI«îâ�yîÇïI«�ïI«î€wïF\îâ yîêïF\�ïF\î£wïF\î\�îAïD´îâ yî_ïD´�ïD´îHwïD´îY�î>ïC îâyîÇïC �ïC î­ïC îçwî!ïC �ïC î"ïAeîâîà yî�ïAe�ïAeîwïAeî!,�î"¹ï?¾îâ yîWï?¾�ï?¾î?wîÌï?¾�ï?¾xîÉï?¾�ï?¾îCîwî î"fî'Lî(ïî-»î2bî4Vî6¢î9Oï<oîâî>î}wï:Çîâ yîï:Ç�ï:ÇîËwï:Çîƒ�yîiï:Ç�ï:Çî"ï:Çî Yï:Çî%úwï:Çî(ï9îâyîêï9�ï9î£wï9î\�yîAï9�ï9îwï9î³�ï7xîóî9 îð�yî|ï7x�ï7xîewîˆï7x�ï7xï5Ðîó î˜ ï4)îó îîï2�îóyî™ï2��ï2�î wï2�î")�î#¶ï0Úîóyîaï0Ú�ï0ÚîËwï/2îóuï+ãîâ wîï+ã�ï+ãyîï+ã�ï+ãî«ï+ãî¼wï+ãî cî%Æî55ï*<îµî›yî³ï*<�ï*<î lï*<î#¤ï*<î)Eï*<î+_wî0ÿï*<�ï*<yî1æï*<�ï*<î2ºwï*<î7òyî:Éï*<�ï*<î;‚wî@iï*<�ï*<ï(•îµ�îš�ï&íîóî˜ îŸ î%o î+¹ î3o�yî4üï&í�ï&íî5åwî7ï&í�ï&íxî8ï&í�ï&íî8î<¹î?]ï%FîÆîiî5wï#žîóî–ï!÷îóyî#½ï!÷�ï!÷î$&wï!÷î&L�î'Ùï Oîóyî±ï O�ï Oîwï OîA�îÎï¨îó yîûï¨�ï¨î´wî›ï¨�ï¨xî™ï¨�ï¨îî!âî#²î'î(¿î+õ î3î5�wï�îó î˜ ïYîóîëï±îóyî]ï±�ï±îÇwîiï±�ï±ï îóî®ïbîóyîYïb�ïbîÃwïbî!é�î#vuïºîó wîÖïº�ïºyîÔïº�ïºî{wïºî{�î`�yïîwïî¬î&ü�î(áyî6Íï�ïî7†wïî:“�ïkîîW�î äð(ïÄîèî#Õ�î%bî8 ïîè ï uîï Îîÿ���������������TVm$à������������������������������������������2TransferRectangle:PROC[rectangle:PDInterpBitmap.Rectangle]={SELECTcurrentColorTypeFROMnone=>ERROR;clear=>PDInterpBitmap.Fill[band,rectangle,0];ink=>PDInterpBitmap.Fill[band,rectangle,1];opaqueTile=>{GetColorTile[];PDInterpBitmap.TransferTile[band.Clip[rectangle],cachedColorTile];};transparentTile=>{GetColorTile[];PDInterpBitmap.TransferTile[band.Clip[rectangle],cachedColorTile,[or,null]];};ENDCASE=>ERROR;};DoLine:PROCEDURE[sMin,fMin,fSize:CARDINAL]={SELECTcurrentColorTypeFROMnone=>ERROR;clear=>PDInterpBitmap.Fill[band,[sMin:sMin,fMin:fMin,sSize:1,fSize:fSize],0];opaqueTile,ink=>PDInterpBitmap.Fill[band,[sMin:sMin,fMin:fMin,sSize:1,fSize:fSize],1];transparentTile=>PDInterpBitmap.TransferTile[band.Clip[[sMin:sMin,fMin:fMin,sSize:1,fSize:fSize]],cachedColorTile,[or,null]];ENDCASE=>ERROR;};TempColor:PROC[rectangle:PDInterpBitmap.Rectangle]={SELECTcurrentColorTypeFROMnone=>ERROR;clear=>NULL;ink=>NULL;opaqueTile=>{GetColorTile[];PDInterpBitmap.TransferTile[band.Clip[rectangle],cachedColorTile,[xor,complement]];};transparentTile=>GetColorTile[];ENDCASE=>ERROR;};AddLeftover:PROC={IFavailCount=0THEN{totalAllocates_totalAllocates+1;IFwriteHead=NILTHENwriteHead_writeTail_heapZone.NEW[Leftover_[link:NIL,commandBuffer:commandBuffer,colorType:currentColorType,colorTileLoadAddress:currentColorTileLoadAddress,priority:currentPriority]]ELSE{writeTail.link_heapZone.NEW[Leftover_[link:NIL,commandBuffer:commandBuffer,colorType:currentColorType,colorTileLoadAddress:currentColorTileLoadAddress,priority:���qïg/îEÉ�uï_,îówîäï_,�ï_,yîâï_,�ï_,î‰wï_,î ‰ î'Bî8I�î:.�yï]…îwï]…î×yî#ï]…�ï]…î#ºwï[Ýîîˆyîï[Ý�ï[ÝîÖwî/ï[Ý�ï[ÝïZ5îîgîüî+‰ î1¾ïXŽîîîî*¡ î0ÖïVæî îHîÞ�ïU?î'ïS—î'ð1î5öïQðî'ïPHîîœî!1�ïN¡î'ïLùî'ð1î5öïKRîúîyïIªî'yïHîwïHîyî­ïH�ïHîfwî!¿ïH�ïHïF[îuïD´îówîmïD´�ïD´yîkïD´�ïD´îwïD´î#yî)ïD´�ïD´î)ßwî/KïD´�ïD´î03�î2�yïC îwïC î×yî#ïC �ïC î#ºwïAeîîˆyîïAe�ïAeîÖwî/ïAe�ïAeï?½îîgîüî+‰î/îî3Îî7Åî;šî?†ï>îèîÉîìï<oî î î î!Ÿî2,î6�î:qï:Çîèî¾î©î6î#î':ï9 îîœï7xî'ð,î3Âî7£î;™ï5Ñîúîåîrî!Sî%Ùî0sî2òyï4)îwï4)îyî­ï4)�ï4)îfwî!¿ï4)�ï4)ï2‚îuï0Úîówî¡ï0Ú�ï0ÚyîŸï0Ú�ï0ÚîGwï0ÚîF î"ÿî4�î5ë�yï/3îwï/3î×yî#ï/3�ï/3î#ºwï-‹îîˆyîï-‹�ï-‹îÖwî/ï-‹�ï-‹ï+äîîgyîüï+ä�ï+äîåwî=ï+ä�ï+äï*<îîyîï*<�ï*<îýwîUï*<�ï*<ï(•î îHîÞ�ï&íî'ï%Fî'ð1î5öï#žîúî) ï!÷î'ï Oîîœî!1yï¨îwï¨îyî­ï¨�ï¨îfwî!¿ï¨�ï¨ï�îuïYîó wî;ïY�ïYyî9ïY�ïYîàwïYîà�îÅ�yï±îwï±î¬ yî¸ï±�ï±îqwï±î!}�ï îyïbîwïbî½ yîIïb�ïbî1ïbî Øwïbî$žyî8fïb�ïbî9Nwî;!ïb�ïbî;…ï»îèyîšï»�ï»î‚wî¥ï»�ï»î‚ î(' î2« ïîèî!jïlîèî(‘î-ÿyïÅîwïÅîd�ïî'yî&[ï�ïî'Cwî)ï�ïî)zî/yî3ºï�ïî4¢wî5Åï�ïî6¢ ï vîú î"~ î)xï Îîúî&î8Ã�������ã��������TVm$²��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������3currentPriority]];writeTail_writeTail.link;};}ELSE{availCount_availCount-1;--moveanodefromavailListtowriteListIFwriteHead=NILTHEN{writeHead_writeTail_availHead;availHead_availHead.link;}ELSE{writeTail.link_availHead;writeTail_availHead;availHead_availHead.link;};writeTail^_[link:NIL,commandBuffer:commandBuffer,colorType:currentColorType,colorTileLoadAddress:currentColorTileLoadAddress,priority:currentPriority];};};FreeList:PROC[head:LeftoverRef]={--thisprocoutheresotheUNWINDcancallittempHead:LeftoverRef;UNTILhead=NILDOtempHead_head^.link;heapZone.FREE[@head];totalFrees_totalFrees+1;head_tempHead;ENDLOOP;};CheckAbort:PROC={IFabort^THENERRORABORTED};availCount_0;DOENABLEUNWIND=>{FreeList[readHead];FreeList[writeHead];FreeList[availHead];availCount_0;};IFreadHead#NILANDreadHead.priority<handle.priorityTHEN{tempHead:LeftoverRef_readHead;commandBuffer_readHead.commandBuffer;currentColorTileLoadAddress_readHead.colorTileLoadAddress;currentColorType_readHead.colorType;currentPriority_readHead.priority;nowmovethisrecordfromreadListtoavailListreadHead_readHead.link;tempHead.link_availHead;availHead_tempHead;availCount_availCount+1;}ELSE{commandBuffer_PDInterpReader.Get[handle];currentColorTileLoadAddress_handle.colorTileLoadAddress;currentColorType_handle.colorType;currentPriority_handle.priority;};WITHcommandBufferSELECTFROM���qïg/îEÉ�wï_,îúï]„î'ï[Ýî'ïZ5î�yïXŽîwïXŽîS�ïVæîxî%3ïVæ�ïVæî%­î)¦�î*Ûî.î1Wî6èî8�yïU>îwïU>î½ yîIïU>�ïU>î1ïU>î ØwïU>î$žïS—îèyïQðîwïQðîd�ïPHî'î' ïN¡îúïLùî'ïKQîyîÄïKQ�ïKQî ¬wî!ÏïKQ�ïKQî"¬ î-Q î7Õ ïIªîèî!jïHîèî(‘î-ÿïF[îïD´îuïC îówîòïC �ïC yîðïC �ïC î—wîïC �ïC îvîL î&f�î(K�xî)€ïC �ïC î)ùî- î0î2qî5lî7%î9qïAeîÆîTîêwï?½îî9 yï>îwï>î3yîlï>�ï>îUï>îüwï<nîï:ÆîyîUï:Æ�ï:ÆîwîTï:Æ�ï:Æî·ï9îï7wî yï5Ïîwî·ï5Ï�ï5Ïï4(îuï2€îó wîï2€�ï2€yîï2€�ï2€î©wï2€î©�îŽ�yî?ï2€�ï2€î¨�wï2€î æyî%5ï2€�ï2€î%îï2€î(ûï2€î-�wî3%ï2€�ï2€î3Ö�ï0Ùîó yï/1îóï-Šîï-Šî)wï-ŠîÎî cî-”ï+âî×ï*;îyï(“îwï(“î¬yîÔï(“�ï(“î½ï(“îdwï(“î!Šð!yî6ï(“�ï(“î6Òwï(“î9Þ�ï&ëîîJ î$��î%�ï%Dî îA�î!Sï#œîð:ï!õîð$ï Mîð"xï¥îîðîqî î"-î%jî*¹î,^wïþîïVîï¯îïîï_î�yï¸îwï¸îS�ïî îA�î!Sïiîð8ïÁîð"ïîï rîyï Êîwï Êî¬ yî Øï Ê�ï Êî!wï Êî%«ÿ�������;��������TVm$���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������4stateChange:CommandBuffer.stateChange=>{SELECTstateChange.whatChangedFROMimageStart=>{band_PDInterpOutput.StartImage[handle.herald,handle.image,request];bandMaxS_band.sOrigin+band.sMin+band.sSize;leftovers_handle.image.leftOverMode;IFhandle.image.nBands=0THEN{PDInterpOutput.EndImage[request]};};imageEnd=>{[]_PDInterpOutput.EndBand[];IFreadHead#NILTHENERROR;--DEBUGGINGCHECK!!readHead_writeHead;writeHead_NIL;PDInterpOutput.EndImage[request];FreeList[readHead];--fromthisimageFreeList[writeHead];--fromthisimageFreeList[availHead];availCount_0;RETURN[TRUE];};priorityChange=>NULL;colorChange=>NULL;bandChange=>{CheckAbort[];band_PDInterpOutput.EndBand[];bandMaxS_band.sOrigin+band.sMin+band.sSize;IFreadHead#NILTHENERROR;--DEBUGGINGCHECK!!readHead_writeHead;writeHead_NIL;};loadChange=>NULL;documentEnd=>RETURN[FALSE];ENDCASE=>ERROR;};maskRectangle:CommandBuffer.maskRectangle=>{TransferRectangle[[maskRectangle.sMin,maskRectangle.fMin,maskRectangle.sSize,maskRectangle.fSize]];IFleftoversANDmaskRectangle.sMin+maskRectangle.sSize>bandMaxSTHENAddLeftover[];};maskTrapezoid:CommandBuffer.maskTrapezoid=>{EdgeBlock:TYPE=RECORD[fPos,fIncr:Environment.LongNumber];MakeEdge:PROC[fMinLast,fMin,sSize:CARDINAL]RETURNS[edge:EdgeBlock]={edge.fPos.highbits_fMin;edge.fPos.lowbits_0;edge.fIncr.highbits_fMinLast-fMin;edge.fIncr.lowbits_0;���qïg/îEÉ�wï_,î îFî/`î1õ�yï]…î'wï]…îúyî,/ï]…�ï]…î,èwï[Ýî8 î î"¨�ïZ5îIîÇ�î Tð(ïXŽî î$ÛïVçîIî":�î#Çð"ïU?îIî Ø�î"eyïS˜îIwïS˜îðî*�î+ù�yî--ïS˜�ïS˜î-çwïQðîð"yî2êïQð�ïQðwïPIîIïN¡î8î¹î"O�ïLúîIî”�î yïKRîIwïKRîðyî$ïKR�ïKRî%ïKRî&©ïKRî*nwî.€ïKR�ïKRxî/}ïKR�ïKRî/÷ î9©î?NwïI«îIïHîI yî"}ïH�ïHî#ewî$ˆïH�ïHïF\îIð!ïD´îIxî'ÉïD´�ïD´î(Bî+ùî.’wïC îIxî(,ïC �ïC î(¦î,]î.õwïAeîIï?¾îI yï>îIwï>î µ�yî!ï>�ï>î!Òwî$Dï>�ï>î$§�ï<oîIï:Çî8 î"³yî%Hï:Ç�ï:Çî&1wî(‰ï:Ç�ï:Çï9 î8 î!<yî#Ñï9 �ï9 î$ºwî'ï9 �ï9 ï7xî8 î!=î#Ò�ï5ÐîI ï4)îIîÇ�î Tï2�îIð+yï0ÚîIwï0Úîðyî$ï0Ú�ï0Úî%ï0Úî&©ï0Úî*nwî.€ï0Ú�ï0Úxî/}ï0Ú�ï0Úî/÷ î9©î?Nwï/2îIï-‹îI yî"}ï-‹�ï-‹î#ewî$ˆï-‹�ï-‹ï+ãîIï*<î8 î Îyî#cï*<�ï*<î$Lwî&£ï*<�ï*<ï(”î8 î"yî$¯ï(”�ï(”î%ƒwï(”î*�yî*ï(”�ï(”î+8wî.ï(”�ï(”î.€�yï&íî8wï&íî:yî!Ðï&í�ï&íî"‰wî%áï&í�ï&íï%Eî'ï#žî îÿî2Ñî5f�ï!öî'ð&î/íï Oîúî%yï§î'wï§îÎyî]ï§�ï§î0wï�îúð/yî9tï��ï�î:-wïYîú ï±î'ï î îî3î5§�ïbî' yî…ïb�ïbî>wïbî!ö�yî#Ûïb�ïbî$¯wïbî)Nî-ï»îúuïî'wî†ï�ïyî„ï�ïî,wî!§ï�ïî" î(_î,5yî0 ï�ïî0ëwî6Wï�ïyî7?ï�ïî8wïî=Jïlîú îA�î!&�ïÄî8î$v�î&ïî8î#ñ�î%~ï uî8î$Ï�î&\î,Y�î-Wï Îî8î$Î�î&[ÿ�������1��������TVm$†����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������5IFsSize>1THENedge.fIncr.li_edge.fIncr.li/sSize;};fMinBox:CARDINAL_MIN[maskTrapezoid.fMin,maskTrapezoid.fMinLast];fMaxBox:CARDINAL_MAX[maskTrapezoid.fMin+maskTrapezoid.fSize,maskTrapezoid.fMinLast+maskTrapezoid.fSizeLast];fSizeBox:CARDINAL_fMaxBox-fMinBox;trapMaxS:CARDINAL_maskTrapezoid.sMin+maskTrapezoid.sSize;s:CARDINAL_maskTrapezoid.sMin;sMinBand:CARDINAL_MIN[band.sOrigin+band.sMin,maskTrapezoid.sMin+maskTrapezoid.sSize];sMaxBand:CARDINAL_MIN[bandMaxS,trapMaxS];calculateinitialedges:minEdge:EdgeBlock_MakeEdge[fMinLast:maskTrapezoid.fMinLast,fMin:maskTrapezoid.fMin,sSize:maskTrapezoid.sSize];maxEdge:EdgeBlock_MakeEdge[fMinLast:maskTrapezoid.fMinLast+maskTrapezoid.fSizeLast,fMin:maskTrapezoid.fMin+maskTrapezoid.fSize,sSize:maskTrapezoid.sSize];TempColor[[sMin:maskTrapezoid.sMin,fMin:fMinBox,sSize:maskTrapezoid.sSize,fSize:fSizeBox]];WHILEs<sMinBandDOminEdge.fPos.lc_minEdge.fPos.lc+minEdge.fIncr.li;maxEdge.fPos.lc_maxEdge.fPos.lc+maxEdge.fIncr.li;s_s+1;ENDLOOP;WHILEs<sMaxBandDODoLine[sMin:s,fMin:minEdge.fPos.highbits,fSize:maxEdge.fPos.highbits-minEdge.fPos.highbits];minEdge.fPos.lc_minEdge.fPos.lc+minEdge.fIncr.li;maxEdge.fPos.lc_maxEdge.fPos.lc+maxEdge.fIncr.li;s_s+1;ENDLOOP;TempColor[[sMin:maskTrapezoid.sMin,fMin:fMinBox,sSize:maskTrapezoid.sSize,fSize:fSizeBox]];IFleftoversANDtrapMaxS>bandMaxSTHENAddLeftover[];};maskRunGroup:CommandBuffer.maskRunGroup=>{s:CARDINAL_maskRunGroup.sMin;sMinBand:CARDINAL_MIN[band.sOrigin+band.sMin,maskRunGroup.sMin+maskRunGroup.sSize];sMaxBand:CARDINAL_MIN[band.sOrigin+band.sMin+band.sSize,maskRunGroup.sMin+maskRunGroup.sSize];run:LONGPOINTERTOPDFileFormat.Run_maskRunGroup.pointer;TempColor[[maskRunGroup.sMin,maskRunGroup.fMin,maskRunGroup.sSize,maskRunGroup.fSize]];WHILEs<sMinBandDOIFrun.lastRunTHENs_s+1;run_run+SIZE[PDFileFormat.Run];���qïg/îEÉ�yï_,î8wï_,îßîQ�î†�yî »ï_,�ï_,î!twï_,î$€ î,�î-¬ï]…î8ï[Ýî'yîpï[Ý�ï[Ýî;wî#§ï[Ý�yï[Ýî$°wî'ï[Ý�ï[Ýî'wïZ6îúïXŽî'yïVçîúwî0ïVç�yïVçî9wî!òïVç�ïVçî"Uð'ïU?îúð0ïS˜î'yî[ïS˜�ïS˜î%wî#‘ïS˜�ïS˜î$šïQðî'yîöïQð�ïQðîÁwïQðî$²�î&>ð'ïPIî'yî©ïPI�ïPIîtwïPIîd�î ñïN¡î'yîCïN¡�ïN¡îwïN¡î$þ�yî&‹ïN¡�ïN¡î'œwî(ïïN¡�ïN¡î)RïLúîúð(ïKSî'yîoïKS�ïKSî:wïKSî%*�yî&·ïKS�ïKSî'Èwî)ïKS�ïKSî)~î0Ç xïI«î'îÐî ¿wïHî'î|î$a�î%îïF\îúî'²î+©î8âïDµîúïC î'î¨î$��î&ïAfîúð/î7Úï?¿îúð'î2Úï>îúï<pî'î"Èî0 î4î:+ï:Èîúî%(î) yï9!î'wï9!îˆ�î��îÅyî$gï9!�ï9!î%M�wï7yî8î#K�î$Øî.ì�î0Ñï5Òî8î#w�î%î/D�î1)ï4*î8�î@�îÍ�îÖ�î»yï2ƒî8wîÙï2ƒ�ï2ƒyï0Ûî'wï0Ûîˆ�î��îÅyî$”ï0Û�ï0Ûî%y�wï/4î8 î".î#Žî'…î5±ï-�î ð-ï+åî8î#K�î$Øî.ì�î0Ñï*=î8î#w�î%î/D�î1)ï(–î8�î@�îÍ�îÖ�î»yï&îî8wîÙï&î�ï&îï%Gî'î"Èî0 î4î:+ï# îúî%(î) yï!øî'wï!øîÎyî]ï!ø�ï!øî0wï!øî!ƒyî.öï!ø�ï!øî/¯wï!øî2¼ ï Qî'ï©î î°î43î6È�ïî'yî©ï�ïîtwïîd�î ñïZî'yîCïZ�ïZîwïZî$þ�yî&‹ïZ�ïZî'œwî(ïïZ�ïZî)Rï³îúð&ï î'yîoï �ï î:wï î%*�yî&·ï �ï î'Èwî)ï �ï î)~ð"ïdîúð&ï¼î'yî6ï¼�ï¼îïï¼î'ï¼î#Èwï¼î%âî1ý�ïîúïmî'î,›ïÆîúî%¸yïî'wïîˆ�î��îÅyî$gï�ïî%M�ï wî8wï wîß yî"_ï w�ï wî#wï wî&$�î'-�î(º�î)Â�î+§ï Ðî8îÎ�î[îñ�yî!Öï Ð�ï Ðî"uwî$Qï Ð�ï Ðî$µ���������������TVm$¼����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������6ENDLOOP;WHILEs<sMaxBandDOIFrun.fMin+run.fSize>maskRunGroup.fSizeTHENERROR;DoLine[sMin:s,fMin:run.fMin+maskRunGroup.fOffset,fSize:run.fSize];IFrun.lastRunTHENs_s+1;run_run+SIZE[PDFileFormat.Run];ENDLOOP;TempColor[[maskRunGroup.sMin,maskRunGroup.fMin,maskRunGroup.sSize,maskRunGroup.fSize]];IFleftoversANDmaskRunGroup.loadAddress>=0ANDmaskRunGroup.sMin+maskRunGroup.sSize>bandMaxSTHEN{maskRunGroup.sSize_maskRunGroup.sSize-(s-maskRunGroup.sMin);maskRunGroup.sMin_s;maskRunGroup.runCount_-1;--unused,eventuallyeliminatefromDEFmaskRunGroup.pointer_run;AddLeftover[];};};maskSamples:CommandBuffer.maskSamples=>{rectangle:PDInterpBitmap.Rectangle_PDInterpBitmap.Window[maskSamples.samples];TempColor[rectangle];SELECTcurrentColorTypeFROMnone=>ERROR;clear=>PDInterpBitmap.Transfer[band,maskSamples.samples,[and,complement]];opaqueTile,ink=>PDInterpBitmap.Transfer[band,maskSamples.samples,[or,null]];transparentTile=>{bounds:PDInterpBitmap.Rectangle_PDInterpBitmap.Intersect[rectangle,PDInterpBitmap.Window[band]];scratchWords:INT_Inline.LongMult[bounds.sSize,(bounds.fSize+bitsPerWord-1)/bitsPerWord];buffer:LONGPOINTER_PDInterpSysCalls.AllocateSpace[scratchWords];destDesc:PDInterpBitmap.BitmapDesc_PDInterpBitmap.Reshape[pointer:buffer,words:scratchWords,bounds:bounds];GetColorTile[];PDInterpBitmap.TransferTile[dest:destDesc,tile:cachedColorTile];PDInterpBitmap.Transfer[destDesc,maskSamples.samples,[and,null]];PDInterpBitmap.Transfer[band,destDesc,[or,null]];PDInterpSysCalls.FreeSpace[buffer];};ENDCASE=>ERROR;TempColor[rectangle];IFleftoversANDmaskSamples.loadAddress>=0ANDmaskSamples.samples.sOrigin+maskSamples.samples.sMin+maskSamples.samples.sSize��qïg/îEÉ�yï_eî8wîÙï_e�ï_eyï]¾î'wï]¾îˆ�î��îÅyî$”ï]¾�ï]¾î%y�ï\î8wï\îßî's�î(¨yî6ï\�ï\î6¼ï\î9Èwî=Úï\�ï\ïZnî8 î".î#Žî'…î=1ïXÇî yïW î8wïW îß yî"_ïW �ïW î#wïW î&$�î'-�î(º�î)Â�î+§ïUxî8îÎ�î[îñ�yî!ÖïUx�ïUxî"uwî$QïUx�ïUxî$µyïSÐî8wîÙïSÐ�ïSÐïR)î'î,›ïP�îúî%¸yïNÚî'wïNÚîÎyî]ïNÚ�ïNÚî0wïNÚî!ƒyî6ïNÚ�ïNÚî6ãwïM2îúð-yî:ÖïM2�ïM2î;�wïM2î>›�ïK‹î8ð<ïIãî8ïH<î8î)w�î+xî-,ïH<�ïH<î-¥î3 î9_ïF”î îHwïDíî8ïCEî8 ïAžî8ï?öî'ï>Nî î î0ëî3€�ï<§î' î}î. �ï;�îúð+ï9Xî'yï7°î'wï7°îúyî'#ï7°�ï7°î'Üwï6 î8îªyî@ï6 �ï6 îùwî#Qï6 �ï6 ï4aî8î‰îî2šï2ºî î} ï1î8 î Ãî#,î%Áï/kî î'ßî*^ï-Ãî8î"¾î%T�ï,îIî ¢î1E�ï*tîð#ï(Íîï'&îI yî$Lï'&�ï'&î$¶wï'&î&Ü�î(iï%~îð*ï#×îIyîñï#×�ï#×î ªï#×î#âwï"/îð.ï ˆîIðBïàîî £î%) î. î3cï9îIï‘îIð!î0žî6½ïêîïBîIð!î1 ï›îî�ïóîIî.Äî4äî7cïLîIð#ï¤îIyïýî8wïýî:yî!Ðïý�ïýî"‰wî%áïý�ïýïUî'yï ­î'wï ­îÎyî]ï ­�ï ­î0wï ­î!ƒyî4lï ­�ï ­î5@wï îúðNÿ�������v��������TVm$������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������7>bandMaxSTHENAddLeftover[];};colorSamples:CommandBuffer.colorSamples=>{PDInterpBitmap.Transfer[band,colorSamples.samples];};deviceCommand:CommandBuffer.deviceCommand=>{};ENDCASE=>NULL;ENDLOOP;};scratchPages:INT=4;scratchWords:INT_scratchPages*Environment.wordsPerPage;scratchPointer:LONGPOINTER_PDInterpSysCalls.AllocateSpace[scratchWords];END.���qïg/îEÉ�wï_,îú�î.yî ï_,�ï_,î Øwï_,î#å ï]…î'ï[Ýî îöî0¿î3U�ïZ6î'î*¢ïX�î'ïVçî î î4ùî7Ž�ïU@î'yïS™îwïS™îyî­ïS™�ïS™î–wî îïS™�ïS™yïQñîwî¥ïQñ�ïQñïPJîóïLûîâ yîJïLû�ïLûî´wïLûîÚ�î¿ïKTîâ yîåïKT�ïKTîOwïKTîu�îð&ïI­îâyîHïI­�ïI­îïI­î9wïI­î!Ú�î#gð-yïF^îâwîiïF^�ïF^ÿ�������Y��������TVm$�¨����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������PDInterpReader.mesaCopyright(C)1983,XeroxCorporation.Allrightsreserved.MichaelPlass,September4,19849:51:32amPDTLastEditedby:Pier,November22,19832:44pmDIRECTORYPDInterpBasic,PDFileFormat,PDInterpBitmap,Stream;PDInterpReader:DEFINITIONS=BEGINHandledefinitionHandle:TYPE=LONGPOINTERTORep;Rep:TYPE=RECORD[stream:Stream.Handle,herald:PDFileFormat.Herald,image:PDFileFormat.StartImage,bandNumber:CARDINAL,sMinBand:CARDINAL,sSizeBand:CARDINAL,colorType:ColorType,colorTileLoadAddress:INT,priority:INT,loadWords:INT,private:LONGPOINTERTOPrivateRep,index:INT,page:INT,pass:INT,status:PDInterpBasic.Status,warningCount:INT];ColorType:TYPE={none,clear,ink,opaqueTile,transparentTile};PrivateRep:TYPE;ColorTileaccess:ColorTileFromLoad:PROC[handle:Handle,colorTileLoadAddress:INT,scratchPointer:LONGPOINTER_NIL,scratchWords:INT_0]RETURNS[PDInterpBitmap.Tile];ErrorsandSignalsError:ERROR[handle:Handle,code:PDInterpBasic.PDErrorCode,wordIndex,wordCount:INT];Warning:SIGNAL[handle:Handle,code:PDInterpBasic.PDWarningCode,wordIndex,wordCount:INT];FilecontrolOpen:PROC[stream:Stream.Handle]RETURNS[Handle];MayraisePDFileReader.ErrororPDFileReader.WarningAssumesthestreamispositionedatthestartofaPDfile.Close:PROC[handle:Handle]RETURNS[stream:Stream.Handle];DoesaNOTclosethestream.ReadingoperationsGet:PROC[handle:Handle]RETURNS[CommandBuffer];MayraisePDFileReader.ErrororPDFileReader.Warning��xï_:îâï]’îâî/î¤îBîZ î'Åî* î-Úï[ëîâî$îî î -î#sî(\î*§ïZCîóîîVî©îïî$Sî&�î)Öî,åyïXœîâwïXœîK îÑ î)Wî4uïUMîâ wî�ïUM�ïUMyî›ïUM�ïUMî� wïUMî!»�yî# ïUM�ïUMî$YxïS¥îâî­ wïQþîóyîLïQþ�ïQþîwïQþî¾�yî£ïQþ�ïQþî\ïQþî”ïQþî%5wïQþî'NïPVîóyîfïPV�ïPVîwïPVîØ�yî½ïPV�ïPVî‘wïPVî/�ïN¯îîî ïMîîÂïK`îîŠïI¸î yî�ïI¸�ïI¸îËwî"7ïI¸�ïI¸ïHîyî ïH�ïHîëwî WïH�ïHïFiî yî ïFi�ïFiîÕwî AïFi�ïFiïDÁî îÿ ïCîyî!&ïC�ïCî!�wî#1ïC�ïCïArîyîrïAr�ïArîÜwî~ïAr�ïArï?Ëî yîyï?Ë�ï?Ëîâwî„ï?Ë�ï?Ëï>#îyîï>#�ï>#îÔï>#î ï>#î!¬wï>#î#Æ ï<|îyîIï<|�ï<|î²wîTï<|�ï<|ï:ÔîyîÄï:Ô�ï:Ôî.wîÐï:Ô�ï:Ôï9-îyîwï9-�ï9-îáwîƒï9-�ï9-ï7…îîUï5Þî yîï5Þ�ï5Þîéwï46îï0çî yîbï0ç�ï0çîwï0çîÔ�î¹î$3î'Ýî*Ÿ î2)ï/?î yîšï/?�ï/?îTwîˆï/?�ï/?xï+ðîâî¬îyuï*Iîówî×ï*I�ï*IyîÕï*I�ï*Iî|wï*Iî!|î&ßî,yî:9ï*I�ï*Iî:¢wî<Dï*I�ï*Iï(¢îÆyî,ï(¢�ï(¢îåï(¢îwï(¢î$¾�yî&Kï(¢�ï(¢î'3wî(Vï(¢�ï(¢î)3 yî26ï(¢�ï(¢î2Ÿwï(¢î4Å�î6Ryî7êï(¢�ï(¢î8¾wï&úîÆxï#«îâîî¾uï"îówî#ï"�ï"yî ï"�ï"îÚwï"î¶îî$Qî(î:6 ï \îÆ yî}ï \�ï \îçwî‰ï \�ï \îì�uïµîówîïµ�ïµyîïµ�ïµî¯wïµî�î!dî&œî*\ï îÆ î yî Æï �ï î!0wî"Ñï �ï î#4�xï¾îâî¤uïîówî$ï�ïyî!ï�ïîÉwïîÉî yî'ßï�ïî(³wïî-êxïoîî3înî%Ìî'…ïÈîî�îÍî+î — î&ñî(–î*âî-ÿî/£�î0Øî3Wuï îówî9ï �ï yî7ï �ï îßwï îÞîByî#„ï �ï î$Xwï î)�î.Ýxïyîîî¯îî Mï*îâî2 uï ‚îówî%ï ‚�ï ‚yî#ï ‚�ï ‚îËwï ‚îÊî.yî"qï ‚�ï ‚î#Ewï ‚î(|xï Ûîî3înî%Ìî'…�������^��������TVm$4��������������������������������������������������������2CommandBuffer:TYPE=RECORD[SELECTcmd:*FROMmaskRectangle=>[sMin,fMin,sSize,fSize:CARDINAL],maskTrapezoid=>[sMin,fMin,fMinLast,sSize,fSize,fSizeLast:CARDINAL],maskRunGroup=>[sMin,fMin,sSize,fSize:CARDINAL,fOffset:CARDINAL,--addthistofMinofeachrunrunCount:INT,--numberofrunspointer:LONGPOINTERTOPDFileFormat.Run,loadAddress:INT---1ifnotintheload],maskSamples=>[loadAddress:INT,---1ifnotintheloadsamples:PDInterpBitmap.BitmapDesc],colorSamples=>[samples:PDInterpBitmap.BitmapDesc],deviceCommand=>[deviceCommandPointer:LONGPOINTER,deviceCommandWords:CARDINAL],stateChange=>[whatChanged:WhatChanged,loadChangeStart,loadChangeLength:INT],ENDCASE];WhatChanged:TYPE={imageStart,imageEnd,priorityChange,colorChange,bandChange,loadChange,documentEnd};END.��qïg/îEÉ�wï^—îâ yîêï^—�ï^—î£wï^—î\�yîAï^—�ï^—î wï^—î$³�yï\ïîówï\ïîÆîO�yî„ï\ï�ï\ïî=wï[Hî îuî �ïY¡îîöîËî –yî$vïY¡�ïY¡î%AwïWùîïVRî î•î*�ïT«îîöîËî#!î&ëî*« yî1 ïT«�ïT«î1ÖwïSîïQ\î î%î»�ïOµîîöîËî –yî$vïOµ�ïOµî%Awî*­ïOµ�ïOµïN îyî+ïN �ïN îöwî bïN �ïN xî!?ïN �ïN î!¸�î"¶î%Kî'äî)‰î,òî.•î1¼wïLfîyîÚïLf�ïLfîDwîæïLf�ïLfxîÂïLf�ïLfî<�î 9î%î&ÂwïJ¿îyîXïJ¿�ïJ¿îïJ¿îHïJ¿î#éwïJ¿î&ïIî yîgïI�ïIîÐxïIîöî!mî#î$rî&Õî({î*ÇwïGpîïEÉî î�î�ïD!î yîgïD!�ïD!îÐwîrïD!�ïD!xî OïD!�ïD!î È�î!Æî#tî$Êî'-î(Óî+wïBzîîºï@Óîï?+î îlî�ï=„îîºï;Ýîï:5î îˆî �ï8Žîyî$bï8Ž�ï8Žî%ï8Žî(Swî-oï8Ž�ï8Žï6çîyî#ÿï6ç�ï6çî$Éwï5?îï3˜î î¼îQ�ï1ñî î9 ï0IîîÒyî,ï0I�ï0Iî,„wï.¢îyï,ûîwï+Sîóï)¬îó yîzï)¬�ï)¬î3wï)¬îì�îÑ�ï(î î7î!î*ä î3@ ï&]î× îÅ ï$¶îyï!gîâwîiï!g�ï!g�������è��������TVm$×������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������PDInterpReaderImpl.mesaMichaelPlass,December2,19835:11pmLastEditedby:Pier,November22,19832:45pmLastEditedby:Lamming,December9,19831:27pmDIRECTORYEnvironment,Inline,PDInterpBasic,PDFileFormat,PDInterpBitmap,PDInterpReader,PDInterpSysCalls,Heap,Stream;PDInterpReaderImpl:PROGRAMIMPORTSInline,PDInterpBitmap,PDInterpSysCalls,Heap,StreamEXPORTSPDInterpReader=BEGINOPENPDInterpReader;bitsPerWord:NAT=Environment.bitsPerWord;zone:UNCOUNTEDZONE=Heap.systemZone;CheckHerald:PROC[herald:PDFileFormat.Herald]={status:PDInterpBasic.Status_nil;IFherald.maxLoadWord>200000THENstatus_unreasonableLoadSize;IFNOT(herald.copiesIN[1..1000])THENstatus_unreasonableNumberOfCopies;IFNOT(herald.imageSSizeIN[80..32767])ORNOT(herald.imageFSizeIN[80..32767])THENstatus_unreasonableImageSize;IFNOT(herald.bandSSizeIN[8..32767])THENstatus_unreasonableBandSSize;IFNOT(herald.sResolutionIN[10..10000])ORNOT(herald.fResolutionIN[10..10000])THENstatus_unreasonableResolution;IFherald.version#PDFileFormat.versionValueTHENstatus_wrongFormatVersion;IFherald.password#PDFileFormat.passwordValueTHENstatus_invalidPassword;IFstatus#nilTHENError[NIL,status,0,SIZE[PDFileFormat.Herald]];};AllocateSpace:PROC[handle:Handle]={private:Private_handle.private;bufferWords:INT_(Inline.LongMult[handle.herald.bandSSize,(handle.herald.imageFSize+bitsPerWord-1)/bitsPerWord]+100)*2;private.loadPointer_PDInterpSysCalls.AllocateSpace[handle.herald.maxLoadWord+bufferWords];private.loadWordsAllocated_handle.herald.maxLoadWord;private.bufferOriginPointer_private.loadPointer+private.loadWordsAllocated;private.bufferWordsAllocated_bufferWords;private.bufferWordCount_0;};Open:PUBLICPROC[stream:Stream.Handle]RETURNS[handle:Handle]={bytesTransferred:CARDINAL;why:Stream.CompletionCode;sst:Stream.SubSequenceType;���xï_,îâï]„îâî$îîRîßî#%î&3ï[ÝîâîþîEî˜îÞî"Bî$î'Åî*ÔïZ5îâîþîEî˜îî%dî&ñî*7î-EyïWºîâwïVîó îœîö î'| î1ïTkîÆî‚î'ãî+ñuïQðîâwîIïQð�ïQðyîFïQð�ïQðîîïPIîówïPIî£îýî%Äî1%î53yïN¡îówïN¡îµ ïLúîó�yîØïLú�ïLúî‘ïLúîwïLúî¹ïI«îó yîqïI«�ïI«îYwïI«îj�îOïHîóyî²ïH�ïHî˜ïHîÒwïHî Ž�î"suïD´îâ wî®ïD´�ïD´yî¬ïD´�ïD´îSwïD´îSî tî.u�î0Z�ïC îóîCî"_�î#ìyïAeîówïAeîšî -�î!ayî&ïAe�ïAeî&ÁwïAeî)Íî-¤�î/1yï?¾îóï?¾îšwï?¾î� yî\ï?¾�ï?¾îÆ�wï?¾î 3 yî&ï?¾�ï?¾î&Ñwï>îîÛ�îhyï<oîóï<oîšwï<oî�yî!kï<o�ï<oî!Õ�wï<oî#B yï:Çîóï:Çî(wï:Çî*yî"ï:Ç�ï:Çî"ƒ�wï:Çî#ð yî+5ï:Ç�ï:Çî+îwï:Çî.ûî2Ñ�ï9 îÆyï7xîóï7xîšwï7xî�yî Ýï7x�ï7xî!G�wï7xî"´ yî)Iï7x�ï7xî*wï7xî-î0å�î2ryï5Ñîóï5Ñîšwï5Ñî�yî!¢ï5Ñ�ï5Ñî" �wï5Ñî#y yï4)îóï4)î(wï4)î*yî"%ï4)�ï4)î"��wï4)î#ü yî+Aï4)�ï4)î+úwï4)î/î2Ý�ï2‚îÆyï0Úîówï0Úîš îz�î_yî.šï0Ú�ï0Úî/Swï0Úî2_î66�ï/3îÆyï-‹îówï-‹îšî°�î•yî1ï-‹�ï-‹î1¾wï-‹î4Ëî8¢�ï+äîÆyï*=îówï*=îšîq�îVyîhï*=�ï*=î!wï*=î-yî!Àï*=�ï*=î"¨wî#Ëï*=�ï*=î$¨î(×yî*dï*=�ï*=î+wî,ßï*=�ï*=î-Bï(•îóuï%Fîâ wîSï%F�ï%FyîQï%F�ï%Fîùwï%Fîøî!\î&Ÿ�î(„�ï#žîóî î±�î=ï!÷îó yî‡ï!÷�ï!÷îñwï!÷î�î¤ð)ï PîÆð=ï¨îóîÁ�ïîÆðFïYîóî"�î#�ï²îóî!¶�î#Cî/�ï îÆïcîóî##�î$° ï»îóî ®�î";ïîóuïÅîâwîïÅ�ïÅyîïÅ�ïÅî¸ïÅîÉwïÅîpî ½ yî*†ïÅ�ïÅî+ZwïÅî0‘î5õî;8�î=�ïîóyîñï�ïî»wî"'ï�ïï vîóîfï Îîóîhÿ�������ã��������TVm$ó��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������2herald:PDFileFormat.Herald;heraldPtr:LONGPOINTER=@herald;[bytesTransferred,why,sst]_Stream.GetBlock[stream,[blockPointer:heraldPtr,startIndex:0,stopIndexPlusOne:Environment.bytesPerWord*SIZE[PDFileFormat.Herald]]];IFbytesTransferred<Environment.bytesPerWord*SIZE[PDFileFormat.Herald]THENError[NIL,unexpectedEOF,0,SIZE[PDFileFormat.Herald]];CheckHerald[herald];BEGINprivate:Private_zone.NEW[PrivateRep];handle_zone.NEW[Rep_[stream:stream,herald:herald,image:[0,FALSE,FALSE,FALSE,black,0,0,0,0],bandNumber:0,sMinBand:0,sSizeBand:0,colorType:none,colorTileLoadAddress:-1,priority:0,loadWords:0,private:private,index:0,page:0,pass:0,status:nil,warningCount:0]];handle.index_SIZE[PDFileFormat.Herald];handle.sSizeBand_herald.bandSSize;{ENABLEUNWIND=>{zone.FREE[@private];zone.FREE[@handle];};AllocateSpace[handle];};END;PDInterpSysCalls.SetDisplayLights[107];};Close:PUBLICPROC[handle:Handle]RETURNS[stream:Stream.Handle]={private:Private_handle.private;stream_handle.stream;IFprivate.loadPointer#NILTHENPDInterpSysCalls.FreeSpace[private.loadPointer];zone.FREE[@private];zone.FREE[@handle];PDInterpSysCalls.SetDisplayLights[109];};ColorTileFromLoad:PUBLICPROC[handle:Handle,colorTileLoadAddress:INT,��qïg/îEÉ�wï_,îóî±ï]…îó yîvï]…�ï]…î/ï]…îfwï]…î!�î"ìï[Ýîóî3î„î!ã�î#pî2¼ î;§ ïZ6îÆ î·îDïXŽîÆyî# ïXŽ�ïXŽî#¬wî%ˆïXŽ�ïXŽî%ëyïVçîówïVçîšî�îSyî/šïVç�ïVçî09wî2ïVç�ïVçî2xyïU?îÆwïU?î‹yîïU?�ïU?îwî*ïU?�ïU?î î&‹yî(ïU?�ïU?î(·wî*“ïU?�ïU?î*öïS˜îóyïQðîówïPIîîîÂ�îOyî!hïPI�ïPIî"Pwî$$ïPI�ïPIî$‡ ïN¡îî‹�îyî1ïN¡�ïN¡îwîíïN¡�ïN¡îPî"J�î#×�ïLúîîÿïKRîîÓïI«îî›yî‹ïI«�ïI«îDwî)ïI«�ïI«yî ïI«�ïI«î ¿wî#¤ïI«�ïI«yî$€ïI«�ïI«î%9wî(ïI«�ïI«î(ûî,ýî.Šî0î1¤ïHî îïF\îî1ïD´î îïC î îïAeîî#7ï?¾îîƒï>î îŠï<oîî,ï:ÇîîZï9 îîÕï7xîîˆï5Ñîîfï4)î î‘�ï2‚îï0Úî î)�yî¶ï0Ú�ï0ÚîUwî1ï0Ú�ï0Úî•ï/3îîë�îxï-‹î�yîµï-‹�ï-‹înï+äîwï+äîºîP�ï*<î'yî@ï*<�ï*<îùwî?ï*<�ï*<î¢ ï(•î'yî@ï(•�ï(•îùwî?ï(•�ï(•î¢ï&íî'ï%Eîï#žîyï!öîwîŒï!ö�ï!öï Oîóð'ï§îóuïXîâwî(ïX�ïXyî&ïX�ïXîÍïXîÞwïXî…î éyî&,ïX�ïXî'�wïXî,7î1„ î;M�î=2�ï±îóî î±�î=ï îóîc�îð yïbîówïbîšîi�yî Nïb�ïbî!6ïbî"ÞwïºîÆð0ïîóyî ï�ïîÅwî ï�ïîo ïkîóyî ïk�ïkîÅwî ïk�ïkîoïÄîóð'ïîóuï ÍîâwîÆï Í�ï ÍyîÃï Í�ï Íîkï Íî |wï Íî$#î)†î.¾yî<àï Í�ï Íî=Jwî>ëï Í�ï Í�������¬��������TVm$|������������������������������������������������������������������������������������������3scratchPointer:LONGPOINTER,scratchWords:INT]RETURNS[PDInterpBitmap.Tile]={private:Private=handle.private;tile:LONGPOINTERTOPDFileFormat.Tile=private.loadPointer+colorTileLoadAddress;words:INT=Inline.LongMult[tile.sSize,(tile.fSize+(bitsPerWord-1))/bitsPerWord];bitmap:PDInterpBitmap.BitmapDesc_PDInterpBitmap.Reshape[tile+SIZE[PDFileFormat.Tile],words,[tile.sMin,tile.fMin,tile.sSize,tile.fSize]];RETURN[PDInterpBitmap.CreateTile[rectangle:[tile.sMin,tile.fMin,tile.sSize,tile.fSize],phase:tile.phase,rasterPointer:tile+SIZE[PDFileFormat.Tile],scratchPointer:scratchPointer,scratchWords:scratchWords]];};LongBlockTransfer:PROC[source:LONGPOINTER,count:INT,dest:LONGPOINTER]={WHILEcount>LAST[CARDINAL]DOInline.LongCOPY[source,LAST[CARDINAL],dest];source_source+LAST[CARDINAL];dest_dest+LAST[CARDINAL];count_count-LAST[CARDINAL];ENDLOOP;Inline.LongCOPY[source,count,dest];};Private:TYPE=LONGPOINTERTOPrivateRep;PrivateRep:PUBLICTYPE=RECORD[loadPointer:LONGPOINTER_NIL,loadWordsAllocated:INT_0,bufferOriginPointer:LONGPOINTER_NIL,bufferWordsAllocated:INT_0,bufferWordCount:INT_0];BlockDescription:TYPE=RECORD[pointer:LONGPOINTER,words:CARDINAL];ReadLocate:PROC[handle:Handle,words:INT]RETURNS[blockDescription:BlockDescription]={Thebufferstoragemaygetre-usedwiththenextReadLocateorReadBlock;private:Private_handle.private;bytesWanted:CARDINAL_Environment.bytesPerWord*MIN[words,private.bufferWordsAllocated];bytesTransferred:CARDINAL;why:Stream.CompletionCode;sst:Stream.SubSequenceType;[bytesTransferred,why,sst]_Stream.GetBlock[handle.stream,[blockPointer:��qïg/îEÉ�wï_,îµyîï_,�ï_,îÔï_,î wî"(ï_,�ï_,î# yî,ï_,�ï_,î,rwî.ï_,�ï_,yî.ûï_,�ï_,î/Ïwï]…îµî•�îz�ï[Ýîóî î±�î–ïZ6îóyîËïZ6�ïZ6î„ïZ6î¼ïZ6î]wïZ6îwî+N�î-4î9�ïXŽîÆïVçîóyîyïVç�ïVçîãwïVçî �îîïU?îÆð*ïS˜îóî î)"ïQðîîc�yîHïQð�ïQðîçwîÃïQð�ïQðî'ïPIîïN¡î îz î� î%~ ïLúîyïKRîówïKRî`ïI«î îZ îÐ î%× î+Ô ïHîî_ ïF\î î˜îö�yîÜïF\�ïF\î {wî"WïF\�ïF\î"ºïD´îîkïC î î ïAeîï?¾îóuï<oîâwîmï<o�ï<oyîkï<o�ï<oîwï<oîyî$>ï<o�ï<oî$÷ï<oî(.wî-Kï<o�ï<oî.'yî2xï<o�ï<oî2áwî4ƒï<o�ï<oî5`yî8½ï<o�ï<oî9vï:ÇîµwîÒï:Ç�ï:Çî¹�îž�yï9 îówï9 îTî+�yî`ï9 �ï9 îwîDï9 �yï9 î¨wî#Þï9 �ï9 yî$Æï9 �ï9 î%¬�wï7xîyî"éï7x�ï7xî#¢wî%Íï7x�yï7xî&1wî,gï7x�ï7xî,Ë�î-§ï5ÑîîT�îáî0�yîï5Ñ�ï5ÑîÎwî!úï5Ñ�yï5Ñî"]wî(”ï5Ñ�ï5Ñî(÷�ï4)îîè�îuîY�yî>ï4)�ï4)î÷wî#ï4)�yï4)î†wî%½ï4)�ï4)î& �ï2‚îîÛ�îhî?�yî=ï2‚�ï2‚îöwî !ï2‚�yï2‚î „wî&»ï2‚�ï2‚î'�yï0Úîwî¥ï0Ú�ï0Úï/3îóî ×î%ï-‹îóï*<îâyîï*<�ï*<î¼wï*<ît�yîYï*<�ï*<îï*<îJï*<î"ëwï*<î% ï(•îâ yîxï(•�ï(•î ï(•î0wï(•î¢�yî ‡ï(•�ï(•î![wï(•î%ù�ï&íîó yîËï&í�ï&íî„ï&íî»î"B�î#wî%‹ï&í�ï&íï%Fîóyî ï%F�ï%Fîwwï%Fî œ�î")ï#žîóyî¿ï#ž�ï#žîyï#žî!°î'7�î(twî*€ï#ž�ï#žï!÷îóyî,ï!÷�ï!÷î–wï!÷î!¼�î#Iï Oîóyî¸ï O�ï Oî"wï OîH�î Õ�ï¨îóïYîâyî"ïY�ïYîÛwïYî“�yîxïY�ïYî LwïYî$ëyî*�ïY�ïYî+IïYî.�wî3�ïY�ïYî4zyî9�ïY�ïYî9Ëwî?7ïY�ïYî?š�uï±îâ wîýï±�ï±yîûï±�ï±î£wï±î¢î î%=yî)Äï±�ï±î*-wî+Ïï±�ï±yï îówï îÿî"�î-«�î/��xïbîóî¶î¥îNî>î!~î&'î)"î+nî.ƒ î5ûî7´ wïºîóî î±�î=ïîó yî©ï�ïîtwïî d�î!ñyî38ï�ïî4Iwî5›ï�ïî5ÿïlîÆïÄîóyîñïÄ�ïÄî»wî"'ïÄ�ïÄïîóîfï uîóîhï Îîóî3î„î!ã�î#pî7 ���������������TVm$z������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������4private.bufferOriginPointer,startIndex:0,stopIndexPlusOne:bytesWanted]];IFbytesTransferred<bytesWantedTHEN{handle.status_unexpectedEOF;Error[handle,unexpectedEOF,handle.index,words]};blockDescription.pointer_private.bufferOriginPointer;blockDescription.words_private.bufferWordCount_bytesTransferred/Environment.bytesPerWord;handle.index_handle.index+blockDescription.words;};ReadBlock:PROC[handle:Handle,dest:LONGPOINTER,words:INT]={bytesWanted:CARDINAL_Environment.bytesPerWord*words;bytesTransferred:CARDINAL;why:Stream.CompletionCode;sst:Stream.SubSequenceType;[bytesTransferred,why,sst]_Stream.GetBlock[handle.stream,[blockPointer:dest,startIndex:0,stopIndexPlusOne:bytesWanted]];IFbytesTransferred<bytesWantedTHEN{handle.status_unexpectedEOF;Error[handle,unexpectedEOF,handle.index,words]};handle.index_handle.index+bytesTransferred/Environment.bytesPerWord;};CheckBB:PROC[handle:Handle,sMin,fMin,sSize,fSize:CARDINAL,errorWordCount:INT]={IFLONG[sMin]+sSize>handle.herald.imageSSizeORLONG[fMin]+fSize>handle.herald.imageFSizeORfMin<handle.image.fMinPageORfMin+fSize>handle.image.fMinPage+handle.image.fSizePageTHENRaisePDError[handle,objectOutOfBounds,errorWordCount];IFsMin+sSize<=handle.sMinBandORsMin>=handle.sMinBand+handle.sSizeBandTHEN{RaisePDWarning[handle,objectOutOfBand,errorWordCount];};};Get:PUBLICPROC[handle:Handle]RETURNS[CommandBuffer]={private:Private_handle.private;command:PDFileFormat.Command;BadLoadReference:PROC[dataWords:INT]={RaisePDError[handle,badLoadReference,SIZE[PDFileFormat.Command]+dataWords];};IFhandle.priority=LAST[INT]THEN{ans:CommandBuffer.stateChange;ans.loadChangeStart_ans.loadChangeLength_0;handle.sMinBand_handle.sMinBand+handle.sSizeBand;handle.bandNumber_handle.bandNumber+1;handle.priority_0;handle.colorType_ink;ans.whatChanged_bandChange;IFhandle.bandNumber=handle.image.nBandsTHEN{ans.whatChanged_imageEnd;handle.colorType_none;��qïg/îEÉ�wï_,îÆî"á î)Òî+_î79 yï]…îówï]…îšî�îS yî&�ï]…�ï]…î'Hwï]…î*U î36�î4à ï[ÝîÆ î8 î$½ î-:ïZ6îóî 5�î!ÂïXŽîóîy�î!î0Á�ïVçîÆð*ïU?îó î�î¥ î"Ê�î$¯ïS˜îóuïPIîâwîXïPI�ïPIyîVïPI�ïPIîýwïPIîýî`î$˜yî'õïPI�ïPIî(¯î+Ìwî0èïPI�ïPIî1Åyî6KïPI�ïPIî6µwî8VïPI�ïPIî9>�î;#�ïN¡îó yî©ïN¡�ïN¡îtwïN¡î d�î!ñïLúîóyîñïLú�ïLúî»wî"'ïLú�ïLúïKRîóîfïI«îóîhïHîóî3î„î!ã�î#pî7 ïF\îÆî îóî€î)Z yïD´îówïD´îšî�îS yî&�ïD´�ïD´î'HwïD´î*U î36�î4à ïC îÆ î8 î$½ î-:ïAeîó î�î¥ î"Ê�î$¯ð*ï?¾îóuï<oîâwî}ï<o�ï<oyîzï<o�ï<oî"wï<oî"î…î#½î'�î+sî/=yî3ï<o�ï<oî3éwî9Uï<o�ï<oï:Èîµyî½ï:È�ï:Èî'wîÈï:È�ï:Èî°�î•�yï9 îóï9 îšwîï9 �ï9 îjîU�î:î­�î áyï7yîóï7yî(wî”ï7y�ï7yî÷îØ�î½î $�î!Yyï5Ñîówï5Ñî(î¥�îÚyï4)îówï4)î(î¥�îŠîñ�î&î+ª�î-�yï2‚îówï2‚î¹î"Vî/yï0Úîówï0Úîšî#�îîzîyï/3îówï/3î(î°îEyî0ï/3�ï/3î0¿wï/3î3Ë�ï-‹îî"žî-ÿï+äîï*<îóuï&íîâwîï&í�ï&íyîï&í�ï&íîºï&íîÊwï&íîrîÕyî%ï&í�ï&íî%ìwï&íî+#î6x�î8]�ï%Fîóî î±�î=ï#žîóîÎuï!÷îówî1ï!÷�ï!÷yî.ï!÷�ï!÷îÖwï!÷î Ö yî(£ï!÷�ï!÷î) wî*®ï!÷�ï!÷î+–�î-{�ï Oîî ¢yï¨î×wîRï¨�ï¨î¶ð!ï�îyïYîówïYîšîé�yîÎïY�ïYî‡wî ³ïY�yïYî!wî#"ïY�ïYyî$ ïY�ïYî$ÂwïYî'Î�ï±îîòï îî°�î!=î/T�î0áïbîî�îŽî*‹�î,pï»îîá�î!nî.J�î0/ïîîS�îàïlîîà�îmïÄîî÷�î„ yïîwïî¬î!ˆ�î#myî0‘ï�ïî1Jwïî4V�ï uîî �î!•ï Îîîñ�î!~�������\��������TVm$î������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������5handle.status_betweenPages;};RETURN[ans];};ReadBlock[handle,@command,SIZE[PDFileFormat.Command]];WITHcommandSELECTFROMimagingCommand:PDFileFormat.Command.imaging=>{IFhandle.colorType=noneTHEN{RaisePDError[handle,missingStartImage,SIZE[PDFileFormat.Command]];ERROR};SELECTimagingCommand.comFROMmaskSamplesRef=>{ans:CommandBuffer.maskSamples;maskSamplesRef:PDFileFormat.MaskSamplesRef;loadAddress:Environment.LongNumber;samples:LONGPOINTERTOPDFileFormat.SampleArray;words:INT;ReadBlock[handle,@maskSamplesRef,SIZE[PDFileFormat.MaskSamplesRef]];loadAddress.highbits_imagingCommand.addrHighBits;loadAddress.lowbits_maskSamplesRef.addrLowBits;ans.loadAddress_loadAddress.li;IFans.loadAddress<0ORans.loadAddress+SIZE[PDFileFormat.SampleArray]>handle.loadWordsTHENBadLoadReference[SIZE[PDFileFormat.MaskSamplesRef]];samples_private.loadPointer+loadAddress.li;words_Inline.LongMult[samples.sSize,(samples.fSize+(bitsPerWord-1))/bitsPerWord];IFans.loadAddress+SIZE[PDFileFormat.SampleArray]+words>handle.loadWordsTHENBadLoadReference[SIZE[PDFileFormat.MaskSamplesRef]];CheckBB[handle,maskSamplesRef.sMin,maskSamplesRef.fMin,samples.sSize,samples.fSize,SIZE[PDFileFormat.Command]+SIZE[PDFileFormat.MaskSamplesRef]];ans.samples_[sOrigin:maskSamplesRef.sMin,fOrigin:maskSamplesRef.fMin,sMin:0,fMin:0,sSize:samples.sSize,fSize:samples.fSize,pointer:samples+SIZE[PDFileFormat.SampleArray],rast:(samples.fSize+(bitsPerWord-1))/bitsPerWord,lines:samples.sSize];RETURN[ans]};maskRunGroupRef=>{ans:CommandBuffer.maskRunGroup;maskRunGroupRef:PDFileFormat.MaskRunGroupRef;loadAddress:Environment.LongNumber;runGroup:LONGPOINTERTOPDFileFormat.RunGroup;run:LONGPOINTERTOPDFileFormat.Run;s:CARDINAL_0;runCount:CARDINAL_0;���qïg/îEÉ�wï_,î îF�îÓ ï]„îyï[Ýîwï[ÝîqïZ5îïXŽîóî¬yî$ÆïXŽ�ïXŽî%ewî'BïXŽ�ïXŽî'¥yïVæîówïVæî›yîüïVæ�ïVæî›ïVæîÏuïU?î wî›ïU?�ïU?î™î3rî6�yïS—îwïS—î½î!˜�î#}yî&ðïS—�ïS—î'©wïS—î*µ�ïQðî'î$ÄyïPHîúwîuïPH�ïPHîØyïN¡î'wïLùî'yïKRîwïKRîèyî(@ïKR�ïKRî(úuïIªî' wïIªî!³î$I�ïHî8î&ïF[î8î$VïD´î8 î!‰ïC î8yîÝïC �ïC î–ïC î"ÍïC î(nwïC î*ˆïAdî8yî¾ïAd�ïAdî(wîÊïAd�ïAdï?½î8î$ñyï>î wî†ï>�ï>îéï<nî8î&&�î'²ï:Çî8î% �î'-ï9î8î#W�î$äyï7wî8wï7wîßî$ÿ�î&3�yî'hï7w�ï7wî(D�wï7wî)�î3¼�yï5Ðî wî†ï5Ð�ï5Ðîéî.��î/Òyî;'ï5Ð�ï5Ðî;àwï4)î yî%Ïï4)�ï4)î&nwî(Jï4)�ï4)î(­ï2�î8îc�îðî+¿�î-¤ï0Úî8îE�îÒï/2î ð-yï-‹î8wï-‹îßî$ÿ�yî&äï-‹�ï-‹î'ƒwî)_ï-‹�ï-‹î)Âî;v�î=[ï+ãî �î?yî&”ï+ã�ï+ãî'Mwï*<î yî%Ïï*<�ï*<î&nwî(Jï*<�ï*<î(­ï(•î8î$ î2bï&íî î"Ô yï%Fî wî†ï%F�ï%Fîéyî-íï%F�ï%Fî.Œwî0hï%F�ï%Fî0Ëï#žî8 î «�î"8î'òî6Kï!÷î î(Xî,Zî-çî1Ýî3jî7V ï Pî îë î&ªï¨î yî ï¨�ï¨î ²wî"Žï¨�ï¨î"ñî4þïî ð,î6éïZî yï²î8wï²î¤ï î8uïcî'wïcî"ýî%“�ï¼î8î&ïî8î%úïlî8 î!‰ïÅî8yî ?ïÅ�ïÅî øïÅî$/ïÅî)ÐwïÅî+êïî8yîGï�ïî�ïî 8ïî%Ùwïî'óï vî8yîºï v�ï vî…wï vî!u�î#ï Îî8yîýï Î�ï Îî Èwï Îî&¸�î(E�������£��������TVm$z������������������������������������������������������������������������������������������������������6words:INT_0;fSize:CARDINAL_0;ReadBlock[handle,@maskRunGroupRef,SIZE[PDFileFormat.MaskRunGroupRef]];loadAddress.highbits_imagingCommand.addrHighBits;loadAddress.lowbits_maskRunGroupRef.addrLowBits;ans.loadAddress_loadAddress.li;IFans.loadAddress<0ORans.loadAddress+SIZE[PDFileFormat.RunGroup]>handle.loadWordsTHENBadLoadReference[SIZE[PDFileFormat.MaskRunGroupRef]];runGroup_private.loadPointer+loadAddress.li;ans.pointer_run_private.loadPointer+loadAddress.li+SIZE[PDFileFormat.RunGroup];WHILEs<runGroup.sSizeDOIFINT[run-private.loadPointer]>=handle.loadWordsTHENBadLoadReference[SIZE[PDFileFormat.MaskRunGroupRef]];IFLONG[run.fMin]+run.fSize>fSizeTHENfSize_LONG[run.fMin]+run.fSize;IFrun.lastRunTHENs_s+1;run_run+SIZE[PDFileFormat.Run];ENDLOOP;ans.runCount_runCount;CheckBB[handle,maskRunGroupRef.sMin,maskRunGroupRef.fMin,runGroup.sSize,fSize,SIZE[PDFileFormat.Command]+SIZE[PDFileFormat.MaskRunGroupRef]];ans.sMin_maskRunGroupRef.sMin;ans.fMin_ans.fOffset_maskRunGroupRef.fMin;ans.sSize_runGroup.sSize;ans.fSize_fSize;RETURN[ans]};maskRectangle=>{ans:CommandBuffer.maskRectangle;maskRectangle:PDFileFormat.MaskRectangle;ReadBlock[handle,@maskRectangle,SIZE[PDFileFormat.MaskRectangle]];CheckBB[handle,maskRectangle.sMin,maskRectangle.fMin,maskRectangle.sSize,maskRectangle.fSize,SIZE[PDFileFormat.Command]+SIZE[PDFileFormat.MaskRectangle]];ans.sMin_maskRectangle.sMin;ans.fMin_maskRectangle.fMin;ans.sSize_maskRectangle.sSize;ans.fSize_maskRectangle.fSize;RETURN[ans]};maskTrapezoid=>{ans:CommandBuffer.maskTrapezoid;maskTrapezoid:PDFileFormat.MaskTrapezoid;fMin,fMax:INT;ReadBlock[handle,@maskTrapezoid,SIZE[PDFileFormat.MaskTrapezoid]];fMin_MIN[maskTrapezoid.fMin,maskTrapezoid.fMinLast];��qïg/îEÉ�wï_,î8yî¾ï_,�ï_,î(wï_,î N�î!Ûï]…î8yîï]…�ï]…îãwï]…î#Ô�î%aï[Ýî8î$ñyïZ6î wî†ïZ6�ïZ6îéïXŽî8î&&�î'²ïVçî8î% �î'-ïU?î8î#W�î$äyïS˜î8wïS˜îßî$ÿ�î&3�yî'hïS˜�ïS˜î(D�wïS˜î)�î3¼�yïQðî wî†ïQð�ïQðîéî-_�î.“yî9èïQð�ïQðî:¡wïPIî yî%ÏïPI�ïPIî&nwî(JïPI�ïPIî(­ïN¡î8îÅ�î!Rî- �î/ïLúî8 î I�î!Õî$l�î%øî1Ç�î3¬ î<¡�yïKSî wî†ïKS�ïKSîéyïI«î8wïI«î™�î¡�îÖ yî)©ïI«�ïI«î*��ïHîIïHîðwîüïH�ïHî_î.î0±yî<ïH�ïHî<¿wïF\îyî'àïF\�ïF\î(wî*[ïF\�ïF\î*¾yïDµîIïDµîðwî ]ïDµ�ïDµî Àî' �î(îî.¿�î/ôyî3[ïDµ�ïDµî4wïDµî7!î:ˆ�yïC îwîˆïC �ïC îëî&5�î( yïAfîIwïAfîð yî$pïAf�ïAfî%)wïAfî(5�î)>�î*Ë�î+Ô�î-¹ï?¾îIîß�îlî"�yî#çï?¾�ï?¾î$†wî&cï?¾�ï?¾î&Æyï>îIwî êï>�ï>ï<oî8 î!Ë�î#Xï:Èî8î$ ï9 î î)üî4'yï7yî wî†ï7y�ï7yîéyî-íï7y�ï7yî.Œwî0hï7y�ï7yî0Ëï5Òî8î�î •ï4*î8îý�î Š î'n�î(ûï2ƒî8îò�î ï0Ûî8îç�î tyï/3î8wï/3î¤ï-Œî8uï+äî' wï+äî  î#5�ï*=î8î&ï(•î8 î#!ï&îî8î$ñyï%Gî wî†ï%G�ï%Gîéï#Ÿî8î$ î1-ï!øî î'yï Pî wî†ï P�ï Pîéyî-íï P�ï Pî.Œwî0hï P�ï Pî0Ëï©î8î�î •ïî8îý�î ŠïZî8îò�î ï²î8îç�î tyï î8wï î¤ïcî8uï¼î' wï¼î ¡î#7�ïî8î&ïmî8 î#AïÅî8î yî!0ïÅ�ïÅî!šwî#;ïÅ�ïÅïî8î$ñyï vî wî†ï v�ï vîéï Ïî8îµ�yîBï Ï�ï ÏîSwî ¦ï Ï�ï Ïî! î.Bÿ�������ž��������TVm$›������������������������������������������7fMax_MAX[LONG[maskTrapezoid.fMin]+maskTrapezoid.fSize,LONG[maskTrapezoid.fMinLast]+maskTrapezoid.fSizeLast];CheckBB[handle,maskTrapezoid.sMin,fMin,maskTrapezoid.sSize,fMax-fMin,SIZE[PDFileFormat.Command]+SIZE[PDFileFormat.MaskTrapezoid]];ans.sMin_maskTrapezoid.sMin;ans.fMin_maskTrapezoid.fMin;ans.fMinLast_maskTrapezoid.fMinLast;ans.sSize_maskTrapezoid.sSize;ans.fSize_maskTrapezoid.fSize;ans.fSizeLast_maskTrapezoid.fSizeLast;RETURN[ans]};maskRunGroup=>{ans:CommandBuffer.maskRunGroup;maskRunGroup:PDFileFormat.MaskRunGroup;runGroup:PDFileFormat.RunGroup;s:CARDINAL_0;runCount:INT_0;words:INT_0;fMin:CARDINAL_LAST[CARDINAL];fMax:CARDINAL_FIRST[CARDINAL];run:LONGPOINTERTOPDFileFormat.Run;ReadBlock[handle,@maskRunGroup,SIZE[PDFileFormat.MaskRunGroup]];ReadBlock[handle,@runGroup,SIZE[PDFileFormat.RunGroup]];run_private.bufferOriginPointer;private.bufferWordCount_0;WHILEs<runGroup.sSizeDOIFrunCount*SIZE[PDFileFormat.Run]>=private.bufferWordCountTHEN{Readachunk,assumingonerungroupperscanline.words:CARDINAL_(runGroup.sSize-s)*SIZE[PDFileFormat.Run];IFwords+private.bufferWordCount>private.bufferWordsAllocatedTHENRaisePDError[handle,runGroupTooLong,private.bufferWordCount];ReadBlock[handle,run,words];private.bufferWordCount_private.bufferWordCount+words;};IFrun.fMin<fMinTHENfMin_run.fMin;IFLONG[run.fMin]+run.fSize>fMaxTHENfMax_LONG[run.fMin]+run.fSize;IFrun.lastRunTHENs_s+1;runCount_runCount+1;run_run+SIZE[PDFileFormat.Run];ENDLOOP;IFrunCount*SIZE[PDFileFormat.Run]#private.bufferWordCountTHENERROR;ans.runCount_runCount;ans.loadAddress_-1;���qïg/îEÉ�wï_,î8îá�yînï_,�ï_,î€wî!'ï_,�yï_,î!Šwî$öï_,�ï_,î%Yî2��î4‚yï]…î wîwï]…�ï]…îÚî-ž�î/ƒï[Ýî8î$ î1MïZ6î î'9 yïXŽî wî†ïXŽ�ïXŽîéyî-íïXŽ�ïXŽî.Œwî0hïXŽ�ïXŽî0ËïVçî8î�î •ïU?î8îý�î ŠïS˜î8 î!}�î# ïQðî8îò�î ïPIî8îç�î tïN¡î8 î!g�î"ôyïLúî8wïLúî¤ïKRî8uïI«î' wïI«î ìî#‚�ïHî8î& yî&0ïH�wïHî&v ïF\î8 î#ÒïD´î8î ?ïC î8yîºïC �ïC î…wïC î!u�î#ïAeî8yîýïAe�ïAeî gwïAeî"Œ�î$ï?½î8yî¾ï?½�ï?½î(wï?½î N�î!Ûï>î8yî.ï>�ï>îùwï>î#ê�yî%vï>�ï>î&0wî([ï>�yï>î(¾wî.õï>�ï>î/X�ï<nî8yî[ï<n�ï<nî%wï<nî$�yî%£ï<n�ï<nî&\wî(òï<n�yï<nî)Uwî/Œï<n�ï<nî/ï�ï:Çî8yîGï:Ç�ï:Çî�ï:Çî 8ï:Çî%Ùwï:Çî'óï9î8î$ñ yï7xî wî†ï7x�ï7xîéï5Ðî8î$ñ yî-7ï5Ð�ï5Ðî-×wî/³ï5Ð�ï5Ðî0ï4)î8îÎ�î[ï2�î8î(ó�î*€yï0Úî8wï0Úî™�î¡�îÖ yî)©ï0Ú�ï0Úî*��ï/2îIwï/2îðyî#hï/2�ï/2î$wî%ãï/2�ï/2î&Fî2Åï-‹îyî+×ï-‹�ï-‹î,�wï-‹î/��xï+ãîZî Ø�î" î&ƒî,eî.óî1wî5Mî7¡î:³wï*<îZyî!àï*<�ï*<î"«wï*<î(œ�ï(”î-yî*ï(”�ï(”î*¼wî,˜ï(”�ï(”î,ûyï&íîZwï&íîî#�î$óî4¯�ï%Fî-yî0]ï%F�ï%Fî1wï%Fî4"ï#žî-î*‹ï!÷îZî)î,ï OîZî-�î.¢î>^�ï¨î-ï�îZyïYîIwïYîðî"×�î$ yî'‰ïY�ïYî(BwïYî+Nî.Ë�î0Xyï±îIï±îðwî ]ï±�ï±î Àî' �î(îî.¿�î/ôyî3�ï±�ï±î4Vwï±î7cî; �yï îwîˆï �ï îëî&5�î( yïbîIwïbîð yî$pïb�ïbî%)wïbî(5�î)>�î*Ë�î+Ô�î-¹ï»îIî!”�î#!î)m�î+RïîIîß�îlî"�yî#çï�ïî$†wî&cï�ïî&ÆyïlîIwî êïl�ïlyïÄî8wïÄîßyî!WïÄ�ïÄî!öwî#ÒïÄ�ïÄî$5î0³�ïî yî)Æï�ïî*ïî-‹wî1�ï�ïï uî8 î!Ë�î#Xï Îî8î#W�î$äÿ���������������TVm$��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������8IFrunCount=0THEN{ans.pointer_NIL;RaisePDWarning[handle,emptyRunGroup,SIZE[PDFileFormat.MaskRunGroup]+SIZE[PDFileFormat.RunGroup]];fMin_fMax;}ELSE{ans.pointer_private.bufferOriginPointer;CheckBB[handle,maskRunGroup.sMin,fMin,runGroup.sSize,fMax-fMin,SIZE[PDFileFormat.Command]+SIZE[PDFileFormat.MaskRunGroup]+private.bufferWordCount]};ans.sMin_maskRunGroup.sMin;ans.fMin_fMin;ans.fOffset_0;ans.sSize_runGroup.sSize;ans.fSize_fMax;RETURN[ans];};maskSamples=>{ans:CommandBuffer.maskSamples;maskSamples:PDFileFormat.MaskSamples;samples:PDFileFormat.SampleArray;ReadBlock[handle,@maskSamples,SIZE[PDFileFormat.MaskSamples]];ReadBlock[handle,@samples,SIZE[PDFileFormat.SampleArray]];CheckBB[handle,maskSamples.sMin,maskSamples.fMin,samples.sSize,samples.fSize,SIZE[PDFileFormat.Command]+SIZE[PDFileFormat.MaskSamples]+SIZE[PDFileFormat.SampleArray]];ans.loadAddress_-1;{raster:BlockDescription_ReadLocate[handle,Inline.LongMult[samples.sSize,(samples.fSize+(bitsPerWord-1))/bitsPerWord]];ans.samples_PDInterpBitmap.Reshape[raster.pointer,raster.words,[maskSamples.sMin,maskSamples.fMin,samples.sSize,samples.fSize]!PDInterpBitmap.InsufficientSpace=>{RaisePDError[handle,bitmapTooBig,SIZE[PDFileFormat.Command]+SIZE[PDFileFormat.MaskSamples]+SIZE[PDFileFormat.SampleArray]];ERROR}];};RETURN[ans];};colorSamples=>{ans:CommandBuffer.colorSamples;��qïg/îEÉ�yï_,î8wï_,îßî!+�î#�yî$Dï_,�ï_,î$ýwï_,î( �ï]…îI î"Z�yî#çï]…�ï]…î$Ïwî%òï]…�ï]…ï[ÝîIî*â yïZ6îwî—ïZ6�ïZ6îúyî3‡ïZ6�ïZ6î4&wî6ïZ6�ïZ6î6fïXŽîIîÆ�î SïVçîI�yïU?î8wïU?î‡�ïS˜îI î"Z�î#çïQðîIî&î3ïî7ÄïPIî yïN¡îwî—ïN¡�ïN¡îúyî/þïN¡�ïN¡î0�wî2yïN¡�ïN¡î2Üð3ïLúîIïKRî8î�î •ïI«î8îý�î ŠïHî8 î �î!©ïF\î8îò�î ïD´î8îç�î tyïC î8wïC î¤ïAeî8uï?¾î' wï?¾î¢î"7�ï>î8î&ï<oî8 î".ï:Çî8îÝï9 î8î$ñ yï7xî wî†ï7x�ï7xîéï5Ñî8î$ñyî+Öï5Ñ�ï5Ñî,uwî.Qï5Ñ�ï5Ñî.´ï4)î8î$ î0:ï2‚î î"Ô yï0Ûî wî†ï0Û�ï0Ûîéyî-íï0Û�ï0Ûî.Œwî0hï0Û�ï0Ûî0ËyîC´ï0Û�ï0ÛîDTwîF0ï0Û�ï0ÛîF“ï/3î8î#W�î$äï-Œî8î,ï+äîI�îÖ ï*=îZï(•îZï&îî-ð,ï%FîZï#ŸîI î"¼�î$Iï!÷îZï PîZ ï¨îZî)îî6 ïî- ïYîZ�îXî3Wî5ì�ï²îkî- yï î >wî"¹ï �ï î#yî4 ï �ï î4Àwî6œï �ï î6ÿyîIèï �ï îJ‡wîLcï �ï îLÆyïcîkwï»îk�ïîZïlîIyïÅî8wïÅî¤ïî8uï vî' wï vî—î"-�ï Îî8î&ÿ�������:��������TVm$å����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������9colorSamples:PDFileFormat.ColorSamples;samples:PDFileFormat.SampleArray;ReadBlock[handle,@colorSamples,SIZE[PDFileFormat.ColorSamples]];ReadBlock[handle,@samples,SIZE[PDFileFormat.SampleArray]];CheckBB[handle,colorSamples.sMin,colorSamples.fMin,samples.sSize,samples.fSize,SIZE[PDFileFormat.Command]+SIZE[PDFileFormat.ColorSamples]+SIZE[PDFileFormat.SampleArray]];{raster:BlockDescription_ReadLocate[handle,Inline.LongMult[samples.sSize,(samples.fSize+(bitsPerWord-1))/bitsPerWord]];ans.samples_PDInterpBitmap.Reshape[raster.pointer,raster.words,[colorSamples.sMin,colorSamples.fMin,samples.sSize,samples.fSize]!PDInterpBitmap.InsufficientSpace=>{RaisePDError[handle,bitmapTooBig,SIZE[PDFileFormat.Command]+SIZE[PDFileFormat.MaskSamples]+SIZE[PDFileFormat.SampleArray]];ERROR}];};RETURN[ans];};ENDCASE=>{RaisePDError[handle,unrecognisedImagingCommand,SIZE[PDFileFormat.Command]];ERROR};};controlCommand:PDFileFormat.Command.control=>{ans:CommandBuffer.stateChange;ans.loadChangeStart_ans.loadChangeLength_0;IFhandle.colorType=noneTHENSELECTcontrolCommand.comFROMstartImage,deviceCommand,storeLoad,endDocument=>NULL;ENDCASE=>{RaisePDError[handle,missingStartImage,SIZE[PDFileFormat.Command]];ERROR};SELECTcontrolCommand.comFROMstartImage=>{startImage:PDFileFormat.StartImage;ReadBlock[handle,@startImage,SIZE[PDFileFormat.StartImage]];IFstartImage.filler#0THEN{RaisePDWarning[handle,nonZeroFill,SIZE[PDFileFormat.Command]+SIZE[PDFileFormat.StartImage]];};IF(LONG[startImage.passBands]+startImage.nBands)*handle.sSizeBand��qïg/îEÉ�wï_,î8 î"ï]…î8îÝï[Ýî8î$ñ yïZ6î wî†ïZ6�ïZ6îéïXŽî8î$ñyî+ÖïXŽ�ïXŽî,uwî.QïXŽ�ïXŽî.´ïVçî8î$ î0$ïU?î î"Ô yïS˜î wî†ïS˜�ïS˜îéyî-íïS˜�ïS˜î.Œwî0hïS˜�ïS˜î0ËyîCÕïS˜�ïS˜îDtwîFQïS˜�ïS˜îF´ïQðî8î,ïPIîI�îÖ ïN¡îZïLúîZïKSî-ð,ïI«îZïHîI î"¼�î$IïF\îZïD´îZ ïC îZî)Øî5è ïAfî- ï?¾îZ�îXî3Wî5ì�ï>îkî- yï<oî >wî"¹ï<o�ï<oî#yî4 ï<o�ï<oî4Àwî6œï<o�ï<oî6ÿyîIèï<o�ï<oîJ‡wîLcï<o�ï<oîLÆyï:Èîkwï9 îk�ï7yîZï5ÑîIyï4*î8wï4*î¤ï2‚î8yï0Ûî'wï0Ûî)î¾�ï/3î8î&Öyï-Œî wî†ï-Œ�ï-Œîéyî-íï-Œ�ï-Œî.¦wî1þï-Œ�ï-Œî2¯�ï+äîuï*=î wî-ï*=�ï*=î+î2uî5 �ï(•îîï&îîî!Á�î#Nî1e�î2òyï%Fîwï%Fî½î!˜�î#}yî&ðï%F�ï%Fî'©î*›wï%Fî/nyî=7ï%F�ï%Fî=ðwï#Ÿî' î8 î) î/Ø î8Ðyî;fï#Ÿ�ï#Ÿî<Nwî>¦ï#Ÿ�ï#Ÿyï!÷î'wï!÷î)î¾�ï Pî8î&Öyï¨î wî†ï¨�ï¨îéyïî8wïYî8yï²îwï²îèyî'²ï²�ï²î(kuï î' wï î�î •�ïcî8 î jï»î8î$ñ yî-cï»�ï»î.wî/Þï»�ï»î0Ayïî8wïîßî$¼�î&¡�yî'Öï�ïî(�wïî+›�ïlîIî*â yïÅîwî—ïÅ�ïÅîúyî/þïÅ�ïÅî0�wî2yïÅ�ïÅî2ÜïîIyï vî8wï Îî �yî„ï Î�ï Îî=wîðï Î�ï ÎîSð9ÿ�������ð��������TVm$/������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������10>=handle.herald.imageSSize+handle.sSizeBandORLONG[startImage.fMinPage]+startImage.fSizePage>handle.herald.imageFSizeTHEN{RaisePDWarning[handle,imageBoundsExceedPageBounds,SIZE[PDFileFormat.Command]+SIZE[PDFileFormat.StartImage]];};IFhandle.colorType#noneANDhandle.bandNumber<handle.image.nBandsTHENRaisePDWarning[handle,tooFewBands,SIZE[PDFileFormat.Command]+SIZE[PDFileFormat.StartImage]];handle.image_startImage;ans.whatChanged_imageStart;handle.priority_0;handle.colorType_ink;handle.bandNumber_0;handle.sMinBand_startImage.passBands*handle.sSizeBand;IFNOTstartImage.stripTHEN{handle.pass_handle.pass+1};IFstartImage.feedTHEN{handle.page_handle.page+1;handle.pass_1};handle.status_constructingImage;RETURN[ans]};setPriority=>{priorityLow:PDFileFormat.Priority;priority:Environment.LongNumber;ReadBlock[handle,@priorityLow,SIZE[PDFileFormat.Priority]];priority.highbits_controlCommand.rest;priority.lowbits_priorityLow;handle.priority_priority.li;ans.whatChanged_priorityChange;RETURN[ans]};setColorInk=>{handle.colorType_ink;ans.whatChanged_colorChange;RETURN[ans]};setColorClear=>{handle.colorType_clear;ans.whatChanged_colorChange;RETURN[ans]};setColorTile=>{setColorTile:PDFileFormat.SetColorTile;ReadBlock[handle,@setColorTile,SIZE[PDFileFormat.SetColorTile]];handle.colorTileLoadAddress_setColorTile.addr;SELECTcontrolCommand.restFROM0=>handle.colorType_opaqueTile;1=>handle.colorType_transparentTile;ENDCASE=>{handle.colorType_opaqueTile;���qïg/îEwï_,î î ð)yï]…î8ï]…îlwîÙï]…�ï]…î<ð)î:�ï[Ýî yî)Úï[Ý�ï[Ýî*“wï[Ýî- �ïZ6îIî*âyïXŽîwî—ïXŽ�ïXŽîúyî/þïXŽ�ïXŽî0�wî2yïXŽ�ïXŽî2ÜïVçîIyïU?î8wïU?îßî%»�î' yî+ïU?�ïU?î+åwïU?î.8î;�ïS˜î yî'.ïS˜�ïS˜î'çwïQðîIî*â yïPIîwî—ïPI�ïPIîúyî/þïPI�ïPIî0�wî2yïPI�ïPIî2ÜïN¢î8 î!ž�î#+ ïLúî8î$*�î%· ïKSî8î"†�î$ïI«î8î$�î% ïHî8î&�î'¡ïF\î8î$5�î%Áð&yïD´î8ïD´îßwïD´îáyî'”ïD´�ïD´î(MwïD´î+Y î3]�î4ê î<=�î>"yïC î8wïC îßyî${ïC �ïC î%4wïC î(@ î0‘�î2 î9¿�î;¤ïAfî î!^�î"ëï?¾î8 î!i�î"öyï>î8wï>î¤ï<oî8uï:Èî' wï:Èîéî �ï9 î8 î!Fï7yî8î¦ï5Ñî8î$ñ yî.?ï5Ñ�ï5Ñî.Þwî0ºï5Ñ�ï5Ñî1ï4)î8î#C�î$Ïï2‚î8î"½�î$J ï0Úî8î"†�î$ ï/3î8î$*�î%·yï-‹î8wï-‹î¤ï+äî8uï*<î' wï*<î¥î!:�ï(•î8î$�î% ï&íî8î$*�î%· yï%Fî8wï%Fî¤ï#žî8uï!÷î' wï!÷îÚî"p�ï Oî8î$�î% ï¨î8î$*�î%· yï�î8wï�î¤ïYî8uï±î' wï±î î!Ÿ�ï î8 î!}ïbî8î$ñ yï»î wî†ï»�ï»îéïî8î+:�î,Çyïlî8wïlî yî+qïl�ïlî,*wïÄîI�î~îî)ï�î+| ïîI�î~îî)ï�î+|yï uîIwï uî!Kî#á�ï ÎîZî(6�î)à ÿ�������©��������TVm$����������������������11RaisePDWarning[handle,unknownColorTileFlag,SIZE[PDFileFormat.Command]];};ans.whatChanged_colorChange;RETURN[ans];};endBand=>{handle.priority_LAST[INT];ans.whatChanged_priorityChange;RETURN[ans];};endDocument=>{ans.whatChanged_documentEnd;handle.status_transmissionComplete;RETURN[ans];};storeLoad=>{storeLoad:PDFileFormat.StoreLoad;loadWordsAllocated:LONGCARDINAL_private.loadWordsAllocated;ReadBlock[handle,@storeLoad,SIZE[PDFileFormat.StoreLoad]];IFstoreLoad.firstAddress>loadWordsAllocatedORstoreLoad.firstAddress+storeLoad.wordCount>loadWordsAllocatedORstoreLoad.firstAddress+storeLoad.wordCount>handle.herald.maxLoadWordTHEN{RaisePDError[handle,loadOutOfBounds,SIZE[PDFileFormat.Command]+SIZE[PDFileFormat.StoreLoad]];ERROR};ReadBlock[handle,private.loadPointer+storeLoad.firstAddress,storeLoad.wordCount];ans.whatChanged_loadChange;ans.loadChangeStart_storeLoad.firstAddress;ans.loadChangeLength_storeLoad.wordCount;handle.loadWords_MAX[handle.loadWords,ans.loadChangeStart+ans.loadChangeLength];handle.colorTileLoadAddress_-1;RETURN[ans];};deviceCommand=>{deviceCommand:CommandBuffer.deviceCommand;wordCount:CARDINAL;block:BlockDescription;ReadBlock[handle,@wordCount,SIZE[CARDINAL]];block_ReadLocate[handle,wordCount];IFblock.words<wordCountTHENRaisePDError[handle,unexpectedEOF,block.words+SIZE[CARDINAL]];deviceCommand.deviceCommandPointer_block.pointer;deviceCommand.deviceCommandWords_block.words;RETURN[deviceCommand];};ENDCASE=>{RaisePDError[handle,unrecognisedControlCommand,��qïg/îEwï_,îZî,ôyï]…î-wî ¨ï]…�ï]…î! ï[ÝîZïZ6î8î$*�î%· yïXŽî8wïXŽî¤ïVçî8uïU?î'wïU?îËî`�ïS˜î8î"†�yî$ïS˜�ïS˜î$Íwî&øïS˜�yïS˜î'[wî)gïS˜�ïS˜î)Ê�ïQðî8î$*�î%·yïPIî8wïPIî¤ïN¡î8uïLúî' wïLúîÙî"n�ïKRî8î$*�î%· ïIªî8 î!i�î"öyïHî8wïHî¤ïF[î8uïD´î'wïD´îœî 2�ïC î8 î ïAeî8yî&QïAe�ïAeî' ïAeî*BwïAeî0ý�ï?¾î ï>î8î$ñ yî-ï>�ï>î-µwî/‘ï>�ï>î/ôyï<oî8wï<oîßî(¿�î)óyï:Çî8wï:Çîlî)L�î+1î8®�ï9 î yï7xî8wï7xîlî)L�î+1î8®�ï5Ñî yî+÷ï5Ñ�ï5Ñî,°wï4)îIî)—yï2‚îwî—ï2‚�ï2‚îúyî/þï2‚�ï2‚î0�wî2yï2‚�ï2‚î2Üyï0Ûîwî -ï0Û�ï0Ûî Þ�ï/3î8î$ñð+ï-Œî ï+äî8î$*�î%· ï*=î8î%ä�î'pï(•î8î'O�î(Üï&îî8î$��yî&ï&î�ï&îî'+wî(Òï&î�ï&îî)6î4ãï%Fî �îðï#Ÿî8î+:�î,Çyï!÷î8wï!÷î¤ï Pî8uï¨î' wï¨î!;î#Ð�ïî8 î$5ïYî8 yî ïïY�ïYî!ºwî'&ïY�ïYï²î8îqï î8î$ñ yî-èï �ï î.‡wî0cï �yï î0Æwî6ýï �ï î7`ïcî8îø�î…î*Ù yï»î8wï»îß î"�î#´yî*òï»�ï»î+«wï»î.·ïî î$� yî- ï�ïî-«wî/‡ï�yïî/êwî6!ï�ïî6„ïlî8ð"î2b�î3ï ïÅî8î1ÿ�î3Œ yïî8wïî¤ï vî8yï Îî'wï Îî)î¾î. �������Ô��������TVm$(������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������12SIZE[PDFileFormat.Command]];ERROR};};ENDCASE=>{RaisePDError[handle,unrecognisedCommandType,SIZE[PDFileFormat.Command]];ERROR};};Error:PUBLICERROR[handle:Handle,code:PDInterpBasic.PDErrorCode,wordIndex,wordCount:INT]=CODE;Warning:PUBLICSIGNAL[handle:Handle,code:PDInterpBasic.PDWarningCode,wordIndex,wordCount:INT]=CODE;RaisePDError:PROC[handle:Handle,code:PDInterpBasic.PDErrorCode,words:INT]={handle.status_code;ERRORError[handle,code,handle.index-words,words];};RaisePDWarning:PROC[handle:Handle,code:PDInterpBasic.PDWarningCode,words:INT]={handle.warningCount_handle.warningCount+1;handle.status_code;SIGNALWarning[handle,code,handle.index-words,words];};END.��qïg/îEyï_,îúwîuï_,�ï_,îØyî+Üï_,�ï_,î,•wî/íï_,�ï_,î0��ï]…îyï[Ýîwï[Ýîîœî)êyïZ6î×wîRïZ6�ïZ6î¶yî'¹ïZ6�ïZ6î(swî+ËïZ6�ïZ6î,{�ïX�îóuïU@îâwîïU@�ïU@yîïU@�ïU@î·ïU@îÈwïU@î]î!Áî&ùî*¹ïS™îµ îý yîµïS™�ïS™îwî ÀïS™�ïS™î!§�yî#�ïS™�ïS™î$Wwî&ÓïS™�ïS™uïPJîâwîïPJ�ïPJyîÿïPJ�ïPJî¦ïPJî·wïPJî¨î$ î)Cî-ïN£îµ îý yîµïN£�ïN£îwî ÀïN£�ïN£î!§�yî#�ïN£�ïN£î$Wwî&ÓïN£�ïN£uïKTîâ wîRïKT�ïKTyîPïKT�ïKTîøwïKTî÷î![î&“î*Sî<wyïI­îµwîÀïI­�ïI­î¨�î��ïHîó î$�î±yïF^îówïF^î‰ îûî!šî.ïD·îóuïAhîâ wîBïAh�ïAhyî?ïAh�ïAhîçwïAhîçî#Jî(‚î,Bï?Áîµyî;ï?Á�ï?Áî¥wîGï?Á�ï?Áî.�î�ï>îóîO�îÜî-8�î/ï<rîó î$�î±yï:Ëîówï:Ëîäî Qî#ðî0oï9#îóyï5Õîâwîiï5Õ�ï5Õ�������˜��������TVm$y��������������������������������������������������������������������������������������������������������������������PDInterpSysCalls.mesaCopyright(C)1983,XeroxCorporation.Allrightsreserved.MichaelPlass,September4,19849:54:25amPDTPDInterpSysCalls:DEFINITIONS=BEGINSetDisplayLights:PROC[value:[0..9999]];WriteLine:PROC[string:LONGSTRING];AllocateSpace:PROC[words:INT]RETURNS[LONGPOINTER];FreeSpace:PROC[pointer:LONGPOINTER];BadFreeSpaceRequest:ERROR;END.��xï_,îâï]…îâî/î¤îBîZ î'Åî* î-Úï[Ýîâî$îî î -î#sî(\î*§wïX�îâyîdïX��ïX�îJ wïX�î"„�yî$iïX��ïX�î%"uïU@îâwî ïU@�ïU@yî ïU@�ïU@î±wïU@î°î"6 uïQñîâwîôïQñ�ïQñyîòïQñ�ïQñî™wïQñî™yîKïQñ�ïQñîïQñî"<wî&©ïQñ�ïQñî' �uïN£îâ wîSïN£�ïN£yîQïN£�ïN£îùwïN£îøyî âïN£�ïN£î!Kwî"íïN£�ïN£yî#ÕïN£�ïN£î$©wïN£î)à�yî*CïN£�ïN£î*üïN£î.4wî3QïN£�ïN£î3´�uïKTîâwîïKT�ïKTyîïKT�ïKTî»wïKTî»yî`ïKT�ïKTî ïKTî#Qwî(mïKT�ïKTî(Ð�uïHîâwî'ïH�ïHyî$ïH�ïHîÝwî!6ïH�ïHyïD·îâwîiïD·�ïD·�������P��������TVm$����������������������������������������������������������������������������������������������������������������������������������������������PDInterpSysCallsDevelImpl.mesaMichaelPlass,November30,198310:21amDIRECTORYEnvironment,Space,PDInterpSysCalls,ProcessorFace;PDInterpSysCallsDevelImpl:MONITORIMPORTSSpace,ProcessorFaceEXPORTSPDInterpSysCalls=BEGINSetDisplayLights:PUBLICPROC[value:[0..9999]]={ProcessorFace.SetMP[value]};AllocateSpace:PUBLICENTRYPROC[words:INT]RETURNS[LONGPOINTER]={ENABLEUNWIND=>NULL;pages:CARDINAL_(words+Environment.wordsPerPage)/Environment.wordsPerPage;RETURN[Space.ScratchMap[pages]]};FreeSpace:PUBLICENTRYPROC[pointer:LONGPOINTER]={ENABLEUNWIND=>NULL;[]_Space.Unmap[pointer];};BadFreeSpaceRequest:PUBLICERROR=CODE;END.��xï_,îâï]…îâî$îîgî ¥î#êî'ªyï[Ýîâwï[ÝîK îôî#Dî.¥ ïZ6îâyî ºïZ6�ïZ6î!ËïX�îówïX�î£îó yïVçîówïVçîµïU@îâ�yîÇïU@�ïU@î€uïQñîâwî ïQñ�ïQñyî ïQñ�ïQñî±ïQñîÁwïQñî"iî&ï î,½�î.¢uïN£îâ wîSïN£�ïN£yîQïN£�ïN£îùïN£î ïN£î!�wïN£î%7yî* ïN£�ïN£î*Šwî,,ïN£�ïN£yî-ïN£�ïN£î-çwïN£î3�yî3‚ïN£�ïN£î4;ïN£î7swî<�ïN£�ïN£î=w�î?\�yïLûîóïLûîwïLûî½yîRïLû�ïLûî;wî!’ïLû�ïLûïKTîóyî7ïKT�ïKTîwïKTîó�ïI­îÆð:yïHîówïHî`ïF^îóuïCîâwîïC�ïCyîïC�ïCî»ïCîÌïCîRwïCî"úyî(ŸïC�ïCî)XïCî,�wî1¬ïC�ïCî2”�î4y�yïAhîóïAhîwïAhî½yîRïAh�ïAhî;wî!’ïAh�ïAhï?Áîóî>�îËï>îóï:Ëîâyî3ï:Ë�ï:ËîÚï:Ëî!ëwï:Ëî&��yî(fï:Ë�ï:Ëî)1wî+¬ï:Ë�ï:Ëyï7|îâwîiï7|�ï7|ÿ�������^��������TVm$q����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������PDQueue.mesaCopyright(C)1984,XeroxCorporation.Allrightsreserved.MichaelPlass,September13,19849:07:25amPDTPDQueue:DEFINITIONS=BEGINThismodulemanagesthequeueforthepeachprinter.Ifadiskisavailable,asimplemechanismisprovidedhereforperiodicallysavingthestateofthequeueonthedisk,sobootingtheserverwillnotloseitall.Inanycase,thequeuelivesinmainmemory,andconsistsmostlyoffullpathnamesofthefiles,togetherwithalittlebitofinformationaboutwhorequestedtheprint,etc.Thereisalsosomestuffhereforloggingwhathasbeengoingon,andforaccessingthelog.Request:TYPE=RECORD[fileName:LONGSTRING,i.e.,"[Indigo]<platemaker>foo.pd!33".requestTime:LONGSTRING,requestor:LONGSTRING,requestorPassword:LONGSTRING,separator:LONGSTRING,Tobeprintedbetweenjobs,ifpossible.copies:CARDINAL];Reset:PROC;Resetsthequeue.QueueRequest:PROC[request:Request]RETURNS[requestNumber:INT];Returns-1ifthequeueisfull.Reprint:PROC[copies:CARDINAL];DoRequest:PROC[action:PROC[request:Request,requestNumber:CARDINAL,abort:LONGPOINTERTOBOOLEAN]];Waitsifqueueisempty;actionshouldreturnorraiseABORTEDifabort^becomestrue.IfthestringsintheRequestareNIL,therequestistoreprintasmuchasthepreviousrequestasispossiblewithoutalotofrecomputation.CheckRequest:PROC[requestNumber:CARDINAL,action:PROC[request:Request,status:RequestStatus]];RequestStatus:TYPE={notFound,canceled,waiting,printing};CancelRequest:PROC[requestNumber:CARDINAL]RETURNS[ok:BOOLEAN];Looksforamatchingrequest(fileNameandrequestor),andremovesitfromthequeue.CountRequests:PROCRETURNS[requestCount:NAT];Numberofoutstandingrequests.EnumerateRequests:PROC[action:PROC[requestNumber:CARDINAL,request:Request,status:RequestStatus]RETURNS[continue:BOOLEAN]];���xï_:îâ ï]’îâî/î¤îBîZ î'Åî* î-Úï[ëîâî$îî î Þî$$î) î+WwïXœîâyî½ïXœ�ïXœî¢ wïXœîÜ�yîÁïXœ�ïXœî {xïVôîóîî¹îBî Žî$rî&šî(æî,½î2î3’�î4Æî7©î9 î?�ïUMîÆîöîïî[î#¾î&¹î(á î0î48î6…î9¹î;\î=¨ïS¦îÆî¹îîAîúîÑî"î%ÿî(”î*øî-®î/î1Þî3»î6Tî9›î;çïQþîÆîËîqîÝîZî!þî&ìî+4î,×î/Mî2_î6ˆî8+î:wïPWîÆîîþ�î3î\î dî" î)Yî-î/ôî5ßî8+î;ÎïN°îÆî©îîáîKî ^î#Yî%€î*Kî-”î0 î33î6êî95î;ÙïMîÆî¦îòwïI¹îóyîÆïI¹�ïI¹îwïI¹î7�yîïI¹�ïI¹îðwïI¹î!��ïHîyî~ïH�ïHî8ïHîowî!ÜïH�ïHxïFjîî wïDÃî yîlïDÃ�ïDÃî%ïDÃî]wî#ÉïDÃ�ïDÃïCî yî’ïC�ïCîKïCî‚wî!ïïC�ïCïAtîyîïAt�ïAtîÏïAtî#wî'sïAt�ïAtï?Ìî yîpï?Ì�ï?Ìî)ï?Ìîawî!Îï?Ì�ï?Ìxï>$îî2îî—î"³î%×î'-wï<}îyî¬ï<}�ï<}îwwï:Õîuï7†îówîDï7†�ï7†yîBï7†�ï7†îêwîeï7†�ï7†xï5ßîî5î�uï2�îó wî‘ï2��ï2�yîŽï2��ï2�î6wï2�î6î#çyî)£ï2��ï2�î*wwï2�î/®yî:dï2��ï2�î:Íwî<oï2��ï2�î<Ò�xï0èîîîÃîîeî!Iî"µuï-™îówîbï-™�ï-™yî`ï-™�ï-™îwï-™îyîï-™�ï-™îÝwî%Iï-™�ï-™î%¬�uï*Jîówîï*J�ï*Jyî}ï*J�ï*Jî$wï*Jî$yî!ï*J�ï*Jî!Àwï*Jî$Àî*qî0" yî:tï*J�ï*Jî;?wî@«ï*J�ï*Jï(£îÆyîÞï(£�ï(£î˜ï(£îÏï(£îpï(£î!Šwî'*ï(£�ï(£î'�xï&ûîîñîHî+î—î" î&î*cî.wî00}î3kï&û�ï&ûî46xï&ûî9|î:Òï%Tî×î'ï#¬îî’îÞî2îØî$î$=}î&‘ï#¬�ï#¬î'mxî(¬ï#¬�ï#¬î)ˆî+Ôî0tî1àî3…î7ïî9¨î=Vî?ï"î×îîºîsî ßî%Þî*·�î+ìî-ôî/— uï¶îó wîeï¶�ï¶yîbï¶�ï¶î wï¶î yî(¿ï¶�ï¶î)‰wî.õï¶�ï¶î/Òyî4dï¶�ï¶î5 wï¶î8 ïîÆîwîÈïgî yîlïg�ïgî%wïgîÞ�î!à î)8î/+î4V uïîó wî¼ï�ïyîºï�ïîbwïîayî)ï�ïî)áwî/Mï�ïyî05ï�ïî1 wïî6@yî9ï�ïî9Ñwî>¸ï�ïî?�xïpîî(îO�î„î iî% î+Kî-î î4•î78î<\î=´ïÉî×î#uïzîó wîÝïz�ïzyîÛïz�ïzîƒïzî‚wïzî$Ž yî-ôïz�ïzî.Ýwî0iïz�ïzî0Ì�xïÓîî>îâ î!)uï ƒîówî©ï ƒ�ï ƒyî§ï ƒ�ï ƒîOwï ƒî!Nyî&Cï ƒ�ï ƒî&ëwï ƒî)êyî4 ï ƒ�ï ƒî5jwî:Öï ƒ�ï ƒî;³ï ÜîÆîwîÈ yî%ï Ü�ï Üî%íwï Üî+% yî1§ï Ü�ï Üî2`wî7Gï Ü�ï Üî7«ÿ�������s��������TVm$����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������2RegisterDisk:PROC[read,write:PROC[address:LONGPOINTER,nwords:CARDINAL],maxWords:CARDINAL];Periodicallycallsthewriteproc;callsthereadprocatstartuptime.Ifthisisnevercalled,thequeuelivesonlyinmainmemoryandislostatboottime.RegisterTTY:PROC[writeLine:PROC[LONGSTRING]];Registersaprocfordisplayingmessages.GetSuspended:PROCRETURNS[BOOLEAN];SetSuspended:PROC[suspended:BOOLEAN]RETURNS[old:BOOLEAN];SettingsuspendedtoTRUEwillstopprintingafterthecurrentjobfinishes.LogMessage:PROC[message:LONGSTRING,requestNumber:INT_-1,userName:LONGSTRING_NIL];Addstimestamp.Messageisalsooutputtotheprinter'sTTY,ifpresentandenabled.SetLogState:PROC[logging:BOOLEAN]RETURNS[old:BOOLEAN];SettingloggingtoFALSEpreventsmessagesfrombeingloggedontheTTY,topreventinterferencewithtypein.Unprintedmessageswillbeprintedwhenloggingisre-enabled.EnumerateMessages:PROC[PROC[message:LONGSTRING]RETURNS[continue:BOOLEAN]];Replayshistoryforasfarbackaswecanremember.END.��qïg/îEÉ�uï^—îó wî�ï^—�ï^—yî›ï^—�ï^—îCwï^—îBî!yî%ï^—�ï^—î%·wï^—î(¶yî.}ï^—�ï^—î/6ï^—î2mwî7Šï^—�ï^—î8fyï\ïîÆwîýï\ï�ï\ïî`�î=yî ¥ï\ï�ï\ïî!pwî&Üï\ï�ï\ïî'?�xï[Hî îmî‡îÓî#2î&¯î)Éî,î/î2î3Ãî8Mî<2î=Àî@YïY¡î×îoî¨îôî!Øî$Ýî'Øî)~î,ëî2î4´î6î8¬î:Pî=VuïVRîó wî·ïVR�ïVRyî´ïVR�ïVRî\wïVRî\ yî$lïVR�ïVRî%wïVRî(�yî(wïVR�ïVRî)0ïVRî,gwî0ÔïVR�ïVRî17xïT«îîÍ�îîî- î%…uïQ\îó wîdïQ\�ïQ\yîaïQ\�ïQ\î ïQ\îwïQ\î$�yî$wïQ\�ïQ\î%0wî*ïQ\�ïQ\î*{�uïOµîó wî-ïOµ�ïOµyî*ïOµ�ïOµîÒwïOµîÑ yî%hïOµ�ïOµî&!wî+ïOµ�ïOµyî+ðïOµ�ïOµî,ÄwïOµî1ûyî5BïOµ�ïOµî5ûwî:âïOµ�ïOµî;E�xïN îî²î}î¦ïN �ïN î _xïN î#Mî%ãî(¼î-Ùî1 î3Xî8î:NuïJ¿îó wîqïJ¿�ïJ¿yîoïJ¿�ïJ¿îwïJ¿îyî#JïJ¿�ïJ¿î$ïJ¿î';wî+§ïJ¿�ïJ¿î,„ yî6ÖïJ¿�ïJ¿î7@wïJ¿î9f�î:òïIîÆyîÐïI�ïIî‰ïIîÁwïIî!²�yî#?ïI�ïIî$'wî%JïI�ïIî%­�xïGpîîkîtî@î#¸î%#î'ðî,/î-Ôî0 }î5fïGp�ïGpî6xî7£ïGp�ïGpî8€î9Öî>xïEÉî×uïBzîó wîgïBz�ïBzyîdïBz�ïBzî wïBzî yî"ÆïBz�ïBzî#wî(fïBz�ïBzyî)MïBz�ïBzî*!wïBzî/Yyî2ŸïBz�ïBzî3Xwî8?ïBz�ïBzî8¢�xï@Óîî²î}}î"ï@Ó�ï@ÓîÒxï@Óî"Wî'“î-Qî0�î40î8tî:g}î<³ï@Ó�ï@Óî=mxî>ñï@Ó�ï@Óî?Íï?+î×î� îâî"Þî'Áî.)î3çî6|î8Kî<áï=„î×î¢î uï:5îówîï:5�ï:5yîï:5�ï:5î½wï:5î!¼�yî"ï:5�ï:5î"Çwî%Bï:5�ï:5î%¦yî+vï:5�ï:5î,/ï:5î/gwî3Ôï:5�ï:5yî4»ï:5�ï:5î5�wï:5î:Ç yï8ŽîÆwîfï8Ž�ï8ŽîÉxï6çîîî‚î©î bî"Šî%Ñî'Šî)�î,yï3˜îówî{ï3˜�ï3˜ÿ�������¢��������TVm$Þ����������������������������������������������������������������������������������������������������������������������������������������������������������������PDQueueImpl.mesaCopyright(C)1984,XeroxCorporation.Allrightsreserved.MichaelPlass,September27,19847:29:39amPDTDIRECTORYTime,Checksum,Environment,Inline,PDInterpSysCalls,PDQueue,String;PDQueueImpl:MONITORIMPORTSTime,Checksum,Inline,PDInterpSysCalls,StringEXPORTSPDQueue=BEGINRequest:TYPE=PDQueue.Request;readProc:PROC[address:LONGPOINTER,nwords:CARDINAL]_NIL;writeProc:PROC[address:LONGPOINTER,nwords:CARDINAL]_NIL;maxStateWords:CARDINAL_16*1024;deferSaving:BOOLEAN_FALSE;state:LONGPOINTERTOStringSeqRep_NIL;messages:LONGPOINTERTOStringSeqRep_NIL;StringSeqRep:TYPE=MACHINEDEPENDENTRECORD[nStrings:CARDINAL,end:CARDINAL,mark:CARDINAL,nMarked:CARDINAL,nDiscarded:CARDINAL_0,check:CARDINAL,nWords:CARDINAL,stringSpace:SEQUENCECOMPUTEDCARDINALOFWORD];StringRep:TYPE=RECORD[nChars:CARDINAL,char:PACKEDARRAY[0..0)OFCHAR];Validate:INTERNALPROC[s:LONGPOINTERTOStringSeqRep]RETURNS[ok:BOOLEAN]={nStrings:CARDINAL_0;nMarked:CARDINAL_0;offset:CARDINAL_0;IFs.check#CalculateCheck[s]THENRETURN[FALSE];IFs.mark>s.endTHENRETURN[FALSE];WHILEoffset<s.endDOwords:CARDINAL;nStrings_nStrings+1;IFoffset>s.markANDnMarked=0THENRETURN[FALSE];IFoffset>=s.markTHENnMarked_nMarked+1;���xï_,îâï]„îâî/î¤îBîZ î'Åî* î-Úï[Ýîâî$îî î Þî$$î) î+WyïXŽîâwïXŽîKîAî!S î)üî.Uî9¶ïVçîµïS—îâ yî•ïS—�ïS—î¦ïQðîówïQðî£î™î!«î&î1fyïPHîówïPHîµïN¡îó�yîØïN¡�ïN¡î‘wïKRîóyîÆïKR�ïKRîî�wî¡ïKR�ïKRîryî!~ïKR�wïKRî!ÄïHîóyî3ïH�ïHîÛwïHîÚyî ¡ïH�ïHî!ZïHî$‘wî)®ïH�ïHî*Šyî/×ïH�ïHî0¢wî6ïH�ïHî6ö�yî8‚ïH�ïHî9kwî:ŽïH�ïHïD´îó yî–ïD´�ïD´î>wïD´î=yî!ïD´�ïD´î!½ïD´î$ôwî*ïD´�ïD´î*îyî0:ïD´�ïD´î1wî6qïD´�ïD´î7Y�yî8æïD´�ïD´î9Îwî:ñïD´�ïD´ïAeîó yîKïAe�ïAeîwïAeî"�î#”ï>îó yî÷ï>�ï>î°wï>î�yî ©ï>�ï>î!bwî$Gï>�ï>ï<nîóyîžï<n�ï<nîWï<nîŽï<nî/wï<nî I î) �yî*—ï<n�ï<nî+€wî,£ï<n�ï<nï:ÆîóyîHï:Æ�ï:Æîï:Æî9ï:Æî Úwï:Æî"ô î+µ�yî-Bï:Æ�ï:Æî.*wî/Mï:Æ�ï:Æï7wîó yî.ï7w�ï7wîçwï7wîŸ�yî„ï7w�ï7wî –ï7wî%ªï7wî-Wwï7wî2Ê�ï5Ðîyîáï5Ð�ï5Ðî¬wîï5Ð�ï5Ðï4(îyî5ï4(�ï4(î�wîlï4(�ï4(ï2�îyîï2��ï2�îÜwîHï2��ï2�ï0Ùîyîpï0Ù�ï0Ùî;wî§ï0Ù�ï0Ùï/2î yîÇï/2�ï/2î’wï/2î!‚�î#ï-Šîyî_ï-Š�ï-Šî*wî–ï-Š�ï-Šï+âîyî´ï+â�ï+âîwîëï+â�ï+âï*;î yîÇï*;�ï*;îfï*;î!‹î(“ï*;î/Nï*;î1hwï(“îï%Dîó yîúï%D�ï%Dî³wï%Dîl�yîQï%D�ï%Dî%wï%Dî"Ã�ï#�îyî;ï#��ï#�îwîrï#��ï#�ï!õîyîŽï!õ�ï!õî5ï!õîÞwï!õî „yî#ôï!õ�ï!õî$Ñ�ï!õî&wï NîuïÿîówîÜïÿ�ïÿyîÚïÿ�ïÿîDïÿîlwïÿî!yî"øïÿ�ïÿî#²ïÿî&éïÿî,Šwïÿî.¤ yî7Èïÿ�ïÿî8œwïÿî=ÔyïWîÆwîfïW�ïWîN�î3�ï°îyîáï°�ï°î¬wï°îœ�î!)ïîyîpï�ïî;wïî +�î!¸ïaîyîIïa�ïaîwïaî�î‘yï¹îwï¹î¬îi�îNyî&bï¹�ï¹î'ï¹î*(wï¹î/”�yî/÷ï¹�ï¹î0°wî3•ï¹�ï¹î3ø�yïîwïî¬î�îOyîâï�ïî›ïî!¨wïî'�yî'wï�ïî(0wî+ï�ïî+x�yïjîwïjîeî0�îeyîøïj�ïjî Þ�wïÃîyîœïÃ�ïÃîgwîÓïÃ�ïÃïîîy�îî!i�î#Nyï sîwï sî½îˆ�î¼yî +ï s�ï sî ÿwï sî#Qî)C�î+(�yî,]ï s�ï sî-ï sî0#wï sî5��yî5òï s�ï sî6«wî9�ï s�ï sî9ó�yï Ìîwï Ìî½îˆîyî!Œï Ì�ï Ìî"Ewï Ìî%Qî+D�î,Ðî2Ã�î4¨ÿ�������ƒ��������TVm$×����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������2words_(s[offset]+Environment.bytesPerWord-1)/Environment.bytesPerWord+1;offset_offset+words;ENDLOOP;IFoffset#s.endTHENRETURN[FALSE];IFnStrings#s.nStringsTHENRETURN[FALSE];IFnMarked#s.nMarkedTHENRETURN[FALSE];RETURN[TRUE]};DiscardMessages:INTERNALPROC[maxWords:CARDINAL]={WHILEmessages.end>maxWordsDODiscard[messages,1]ENDLOOP;};Discard:INTERNALPROC[s:LONGPOINTERTOStringSeqRep,n:CARDINAL]={newStart:CARDINAL_StringOffset[s,n];Inline.LongCOPY[from:@(s[newStart]),nwords:s.end-newStart,to:@(s[0])];s.nStrings_s.nStrings-n;s.end_s.mark_s.end-newStart;s.nDiscarded_s.nDiscarded+n;};StringOffset:INTERNALPROC[s:LONGPOINTERTOStringSeqRep,n:CARDINAL]RETURNS[offset:CARDINAL]={offset_0;IFn=0THENRETURN;IFn>s.nStringsTHENERROR;FORi:NATIN[0..n)DOoffset_NextStringOffset[s,offset];ENDLOOP;};NextStringOffset:INTERNALPROC[s:LONGPOINTERTOStringSeqRep,offset:CARDINAL]RETURNS[CARDINAL]=INLINE{IFoffset>=s.endTHENERRORELSE{words:CARDINAL_(s[offset]+Environment.bytesPerWord-1)/Environment.bytesPerWord+1;IFwords>s.end-offsetTHENERROR;offset_offset+words;RETURN[offset];};};Append:INTERNALPROC[s:LONGPOINTERTOStringSeqRep,string:LONGSTRING]={body:LONGPOINTERTOStringRep;chars:CARDINAL_IFstring=NILTHEN0ELSEstring.length;words:CARDINAL_(string.length+Environment.bytesPerWord-1)/Environment.bytesPerWord+1;��qïg/îEÉ�wï_,îî"�ï]…îèðBï[Ýîîà�îmî8�î yïZ6îwî·ïZ6�ïZ6yïXŽîwïXŽî¬îv�î\yîïïXŽ�ïXŽî¨ïXŽî!´wïXŽî' �yî'„ïXŽ�ïXŽî(=wî+"ïXŽ�ïXŽî+…�yïVçîwïVçî¬î�îô yî"3ïVç�ïVçî"ìïVçî%ùwïVçî+e�yî+ÈïVç�ïVçî,�wî/fïVç�ïVçî/É�yïU?îwïU?î¬îž�îƒyî#QïU?�ïU?î$ ïU?î'wïU?î,ƒ�yî,æïU?�ïU?î-Ÿwî0„ïU?�ïU?î0ç�yïS˜îwïS˜îq�yîÔïS˜�ïS˜î�wî�ïS˜�ïS˜ïQðîuïN¡îówî>ïN¡�ïN¡yî;ïN¡�ïN¡î¥ïN¡î"ÍwïN¡î&u yî.AïN¡�ïN¡î/ wî4wïN¡�ïN¡î5_�î7D�yïLúîwïLúîe îË�î!�yî'ðïLú�ïLúî(Õ�wïLúî*6î5_yî6÷ïLú�ïLúî7°wî<˜ïLú�ïLúïKRîuïHîówî„ïH�ïHyî�ïH�ïHîëïHîwïHî ºyî"ŸïH�ïHî#YïHî&�ïHî,1wïHî.K î7dyî9)ïH�ïHî9ówî?_ïH�ïHïF\îÆ�î«�ïD´îyî:ïD´�ïD´îwïD´îõ�î!‚î*yïC îî"!î+Ôî1!î:½ïAeî×ï?¾î îC�îÐ î!�î" ï>îî—�î$î“�î ï<oî î*�î¶ î$Ü�î&Áï:Çîuï7xîó wîFï7x�ï7xyîCï7x�ï7xî­ï7xîÕwï7xî#}yî%bï7x�ï7xî&ï7xî)Rï7xî.ówï7xî1 î:'yï5ÑîÆwîýï5Ñ�ï5Ñyîäï5Ñ�ï5Ñî¸wï5Ñîðyî#—ï5Ñ�ï5Ñî$bwî)Îï5Ñ�ï5Ñî*¶�î,›�ï4)îîÏ�î\yï2‚îwï2‚î¬�î÷�îÜ�yîï2‚�ï2‚îÉï2‚îÖwî!¾ï2‚�ï2‚yï0Úîwï0Úî¬�î÷�î+ yîjï0Ú�ï0Úî#ï0Úî!0wî%Aï0Ú�ï0Úyï/3îwï/3îòyîSï/3�ï/3î;ï/3îLwï/3î#yîªï/3�ï/3î ��wï-‹îîà�îmî&Kyï+äîwî·ï+ä�ï+äï*<îuï&íîówî3ï&í�ï&íyî1ï&í�ï&íî›ï&íî"Ãwï&íî&jyî(Oï&í�ï&íî)ï&íî,@ï&íî1áwï&íî3ú î=yï%FîÆwîýï%F�ï%Fyîäï%F�ï%Fî¸wï%Fîð�yîSï%F�ï%Fî wî%Šï%F�ï%Fî&q�yî(Vï%F�ï%Fî(Àwï%Fî,ò�yï#žîwï#žî¬îvî yîŸï#ž�ï#žîXï#žî"dï!÷îwï!÷îS�ï Oîyîœï O�ï Oîgwï Oî W�ï¨îèðByï�îwï�î½îÊ�îþ yî#Qï��ï�î$ ï�î'wî+(ï��ï�ïYîîà�îmî8�î yï±îwï±î‚ï îïbîuïîówîXï�ïyîUï�ïî¿ïîçwïî �yî"tï�ïî#-ïî&dïî,wïî. î79yî;ˆï�ïî<AïlîÆwî3ïl�ïlî�îÿ�ïÄîyîüïÄ�ïÄîµïÄîìïÄî �wïÄî"§ ïîyîï�ïîÝwïîÍ�yîZï�ïîÄ�wïî!î$×�yî&¼ï�ïî'¥ïî)Lwïî-�yî.Fï�ïî.ÿwïî1• ï uîyî‹ï u�ï uîUwï uîF�ï Îî×ðF������� ��������TVm$Ð����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������3IFs.mark#s.endTHENERROR;IFs.end+words>s.nWordsTHENERROR;body_LOOPHOLE[@(s[s.end])];body.nChars_chars;FORi:NATIN[0..chars)DObody.char[i]_string[i];ENDLOOP;IFcharsMOD2=1THENbody.char[chars]_'\000;s.mark_s.end_s.end+words;s.nStrings_s.nStrings+1;};AppendToString:INTERNALPROC[string:LONGSTRING,s:LONGPOINTERTOStringSeqRep,offset:CARDINAL]={body:LONGPOINTERTOStringRep;IFoffset>=s.endTHENERROR;IFoffset+(s[offset]+Environment.bytesPerWord-1)/Environment.bytesPerWord+1>s.endTHENERROR;body_LOOPHOLE[@(s[offset])];FORi:NATIN[0..body.nChars)DOstring[string.length]_body.char[i];string.length_string.length+1;ENDLOOP;};MoveToString:INTERNALPROC[string:LONGSTRING,s:LONGPOINTERTOStringSeqRep,offset:CARDINAL]={string.length_0;AppendToString[string,s,offset];};GetNumberDiscardedMessages:ENTRYPROCRETURNS[CARDINAL]={IFmessages=NILTHENRestore[];RETURN[messages.nDiscarded];};GetString:ENTRYPROC[string:LONGSTRING,s:LONGPOINTERTOStringSeqRep,n:CARDINAL]RETURNS[ok:BOOLEAN]={string.length_0;IFn<s.nDiscardedTHENRETURN[TRUE];IFn-s.nDiscarded>=s.nStringsTHENRETURN[FALSE];AppendToString[string,s,StringOffset[s,n-s.nDiscarded]];RETURN[TRUE];};MoveMarkedStrings:INTERNALPROC[from,to:LONGPOINTERTOStringSeqRep]={nwords:CARDINAL_from.end-from.mark;IFto.nWords<to.mark+nwordsTHENERROR;to.nStrings_to.nStrings-to.nMarked;to.nMarked_0;���qïg/îEÉ�yï_,îwï_,î¬î�î�yî“ï_,�ï_,îLï_,î"Xwî&iï_,�ï_,yï]„îwï]„î¬ î(�î]yî$oï]„�ï]„î%(ï]„î(4wî,Fï]„�ï]„ï[Ýîî‚�yîï[Ý�ï[ÝîÈwî^ï[Ý�ï[ÝîÁ ïZ5î î�î yïXŽîwïXŽîòyîSïXŽ�ïXŽî;ïXŽîLwïXŽî# yî!óïXŽ�ïXŽî"Ù�wïVæî î �î- yïU?îwî·ïU?�ïU?yïS—îwïS—î¬yî@ïS—�ïS—îQwïS—î˜�îÌ�î±�yîæïS—�ïS—î ŸwïS—î#¬î-ã�î/pïQðîîs�î�î“�î ïPHî îC�îÐ î!�î"õïN¡îuïKRîó wî°ïKR�ïKRyî­ïKR�ïKRîïKRî"?wïKRî%æyî*™ïKR�ïKRî+RïKRî.‰wî2öïKR�ïKRî3Óyî5TïKR�ïKRî6ïKRî9EïKRî>æwïIªîÆ îßyî$ïIª�ïIªîïwî%[ïIª�ïIªî&B�î('�ïHîyîüïH�ïHîµïHîìïHî �wïHî"§ yïF[îwïF[î¬îvî yîŸïF[�ïF[îXïF[î"dwî&vïF[�ïF[yïD´îwïC î×ðHïAeî×�î yîŸïAe�ïAeîXïAeîdwî vïAe�ïAeï?½îî‚�yîï?½�ï?½îÈwî^ï?½�ï?½îÁ yï>îwï>îòyîSï>�ï>î;ï>îLwï>î#yî&mï>�ï>î'S�wï<nîî!�î"� ï:Çî îø�î… î&h�î(Myï9îwî·ï9�ï9ï7xîuï4)îó wî§ï4)�ï4)yî¥ï4)�ï4)îï4)î!7wï4)î$Þyî)�ï4)�ï4)î*Iï4)î-�wî1íï4)�ï4)î2Êyî4Lï4)�ï4)î5ï4)î8=ï4)î=Ýwï2�îÆ îßyî$ï2��ï2�îïwî%[ï2��ï2�î&B�î('�ï0Úî îç�îtï/2îî!–î"öï-‹îuï*<îówî#‚ï*<�ï*<yî$€ï*<�ï*<î%9ï*<î)ï*<î,®wï*<î2¹�yî3ï*<�ï*<î3çwî9Sï*<�ï*<î:;�î< �yï(”îwï(”î¬î‡�yîlï(”�ï(”îUï(”îüwï(”î" yï&íîwï&íîqï%Eîuï!öîówîÎï!ö�ï!öyîÌï!ö�ï!öî…ï!öîRwï!öîùyî$¬ï!ö�ï!öî%eï!öî(œwî- ï!ö�ï!öî-æyî/hï!ö�ï!öî0!ï!öî3Xï!öî8ùwï OîÆ îßyî¤ï O�ï Oîowî"Ûï O�ï Oyî#Âï O�ï Oî$–wï Oî)Îyî,¥ï O�ï Oî-^wî2Eï O�ï Oî3-�î5�ï§î îç�îtyïÿîwïÿî¬�î÷�î+ yîPïÿ�ïÿî ïÿî#wïÿî(‚�yî(åïÿ�ïÿî)Ÿwî,ïÿ�ïÿî,t�yïXîwïXî¬ îî ¦ yî&åïX�ïXî'ŸïXî*«wïXî0�yî0zïX�ïXî14wî4ïX�ïXî4|�ï°îî!–î"öî+íyï îwï îq�yîÔï �ï î�wî�ï �ï îc�ïaîuïîówî.ï�ïyî+ï�ïî•ïî$½wïî(eî,‡yî.¯ï�ïî/hïî2Ÿïî8@wïkîÆ îê�îÏ�ïÃîyîQïÃ�ïÃîwïÃî �î ™yïîwïî¬îd�î˜ yî']ï�ïî(ïî+"wî/4ï�ïï tî îé�îv î"[�î#Y ï Íî îx�î�������#��������TVm$Ú������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������4to.end_to.mark;Inline.LongCOPY[from:@(from[from.mark]),nwords:nwords,to:@(to[to.mark])];to.nStrings_to.nStrings+from.nMarked;to.nMarked_from.nMarked;to.end_to.end+nwords;to.nStrings_to.nStrings+from.nMarked;from.nStrings_from.nStrings-from.nMarked;from.nMarked_0;from.end_from.mark;};CalculateCheck:INTERNALPROC[s:LONGPOINTERTOStringSeqRep]RETURNS[CARDINAL]={cs:CARDINAL_Checksum.ComputeChecksum[nWords:5,p:s];cs_Checksum.ComputeChecksum[cs:cs,nWords:1,p:s+6];RETURN[cs];};Save:INTERNALPROC={IFstate=NILTHENERROR;DiscardMessages[state.nWords-state.end];MoveMarkedStrings[from:messages,to:state];state.check_CalculateCheck[state];IFNOTValidate[state]THENERROR;IFwriteProc#NILTHENwriteProc[state,SIZE[StringSeqRep[state.end]]];MoveMarkedStrings[from:state,to:messages];};Restore:INTERNALPROC={IFstate#NILTHENERROR;IFreadProc#NILTHEN{temp:LONGPOINTERTOStringSeqRep_PDInterpSysCalls.AllocateSpace[256];readProc[temp,256];IFtemp.check=CalculateCheck[temp]THEN{words:CARDINAL_SIZE[StringSeqRep[temp.end]];wordsAllocated:CARDINAL_MAX[maxStateWords,words+255]/256*256;IFwordsAllocated<=maxStateWordsTHEN{state_PDInterpSysCalls.AllocateSpace[wordsAllocated];readProc[state,words];state.nWords_wordsAllocated-SIZE[StringSeqRep[0]];IFValidate[state]THEN{AllocMessages[];MoveMarkedStrings[from:state,to:messages];}ELSE{PDInterpSysCalls.FreeSpace[state];state_NIL};};���qïg/îEÉ�wï_,îî=�îÊï]…îî"!î/Cî4�î9¼ï[Ýî×ïZ6î îé�îv î"[�î$@ ïXŽî îx�î ïVçîî=�îÊî�îèïU?î îé�îv î"[�î$@ ïS˜î î¢�î/ïQðî î1�î¾ïPHîîö�îƒ ïN¡îuïKRîó wîAïKR�ïKRyî?ïKR�ïKRî©ïKRî!ÑwïKRî%xyî']ïKR�ïKRî(ïKRî+NïKRî0ïwïKRî3 yïI«îÆwïI«îÒ�yî5ïI«�ïI«î�wîlïI«�ïI«îS�î!8�ïHîyî!ïH�ïHîìwïHîÜ�îiî5Ãî7Pî9ïF\îî¨�î5î*ûî,÷î2§î44î5ùyïD´îwïD´îqïC îuï?½îówîÀï?½�ï?½yî¾ï?½�ï?½î'ï?½îPwï?½î÷�î Ü�yï>îwï>î¬îÝ�yîÂï>�ï>îªï>îRï>î wî$(ï>�ï>ï<nîð(ï:Çîî#oî)¢î+Êï9î îê�îwyï7xîï7xî¬wï7xî®yî �ï7x�ï7xî!Hï7xî$Uwî(fï7x�ï7xyï5Ðîwï5Ðî¬îÕ�yîºï5Ð�ï5Ðî£ï5ÐîJwï5Ðî#yî,¡ï5Ð�ï5Ðî-@wî/ï5Ð�ï5Ðî/€ï4)îî#oî&øî) ï2�îuï/2îówî„ï/2�ï/2yî‚ï/2�ï/2îëï/2îwï/2î »�î" �yï-‹îwï-‹î¬îÝ�yîÂï-‹�ï-‹îªï-‹îRï-‹î wî$(ï-‹�ï-‹yï+ãîwï+ãî¬îr�yîWï+ã�ï+ãî@ï+ãîçwï+ãî"¬�ï*<îyîï*<�ï*<îÑï*<î ï*<î"ªwï*<î$à î-…�ï(”îèð$ï&íî îœyï%Eîwï%Eî½ îû�îàyî-uï%E�ï%Eî..wï%Eî1:�ï#žî'yî­ï#ž�ï#žîxwï#žî"h�yî#õï#ž�ï#žî$”wî&pï#ž�ï#žî&Óï!öî'yî!Rï!ö�ï!öî"wï!öî( �yî)šï!ö�ï!öî*¬wî,Sï!ö�ï!öî,¶ ï Oîúyï§î'wï§îÎ î"€î% yî.ôï§�ï§î/®wï§î2º�ï�î8îi�îöð/ïXî8î"fï±î8 î!s�î"ÿyî,§ï±�ï±î-Fwî/"ï±�ï±î/…yï î8wï îßyî#Àï �ï î$zwï î'†�ïbîIïºîIî+³î/=î1d ïîI�yïkî8wïkî‡�ïÄîIð"ïîIîz�yî ï�ïî ïwï uîIï Íî8ÿ�������K��������TVm$Ì������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������5};PDInterpSysCalls.FreeSpace[temp];temp_NIL;};IFstate=NILTHENInternalReset[];};AllocMessages:INTERNALPROC={wordsAllocated:CARDINAL_SIZE[StringSeqRep[state.nWords]];IFmessages#NILTHEN{PDInterpSysCalls.FreeSpace[messages];messages_NIL};messages_PDInterpSysCalls.AllocateSpace[wordsAllocated];messages.nWords_wordsAllocated-SIZE[StringSeqRep[0]];messages.nStrings_messages.end_messages.mark_messages.nMarked_messages.nDiscarded_0;};InternalReset:INTERNALPROC={IFstate#NILTHEN{PDInterpSysCalls.FreeSpace[state];state_NIL};state_PDInterpSysCalls.AllocateSpace[maxStateWords];state.nWords_maxStateWords-SIZE[StringSeqRep[0]];state.nStrings_state.end_state.mark_state.nMarked_state.nDiscarded_0;AllocMessages[];};Reset:PUBLICENTRYPROC={InternalReset[]};newRequest:CONDITION;stringsPerRequest:CARDINAL=6;requestLimit:CARDINAL_1000;Requestsarenumberedmodulothisnumber.ReqNumberFromStringNumber:PROC[stringNumber:CARDINAL]RETURNS[requestNumber:CARDINAL]={requestNumber_(stringNumber/stringsPerRequest)MODrequestLimit;};DecodeCopies:PROC[tag:LONGSTRING]RETURNS[copies:CARDINAL]={copies_ORD[tag[2]]*256+ORD[tag[3]];};QueueRequest:PUBLICENTRYPROC[request:Request]RETURNS[requestNumber:INT]={ENABLEUNWIND=>NULL;tag:LONGSTRING_[4];IFstate=NILTHENRestore[];IFstate.nStrings>=stringsPerRequest*requestLimitTHENRETURN[-1];requestNumber_ReqNumberFromStringNumber[state.nStrings+state.nDiscarded];��qïg/îEÉ�wï_,î'ï]…îð!ï[ÝîîŸ�yî,ï[Ý�ï[Ýîwî7ï[Ý�ï[ÝïZ5îyïXŽîwïXŽî¬îÝ�yîÂïXŽ�ïXŽîªïXŽîRwïXŽî ïVæîuïS—îó wîÇïS—�ïS—yîÅïS—�ïS—î/ïS—î!WwïS—î$þ�î&ã�ïQðîyî0ïQð�ïQðîûwïQðî#ë�yî%xïQð�ïQðî&wî'óïQð�ïQðî(VyïPHîwïPHî¬î‡�yîlïPH�ïPHîUïPHîüwïPHî"Âð&î;“ïN¡î×�yîdïN¡�ïN¡îMwîpïN¡�ïN¡î �ïLúîîà�îmð/ïKRîîê�îwyî)ïKR�ïKRî)½wî+™ïKR�ïKRî+üïIªîî�î£ î( �î)– î2Ø�î4eî@�ïHî×î Ð�î"\ïF\îuïC îó wîõïC �ïC yîóïC �ïC î]ïC î …wïC î$,�î&�yïAeîwïAeî¬îÝ�yîÂïAe�ïAeîªïAeîRwïAeî ð#î6>î9o�yî:üïAe�ïAeî;åwî=ïAe�ïAeî=¸�ï?¾îî5�îÂð.ï>î î?�îÌ yî& ï>�ï>î'?wî)ï>�ï>î)~ï<oî îl�îùî"´�î$A î*Ù�î,e î5\�î6éï:Çî×�îdï9 îï7xîuï4)îówîDï4)�ï4)yîBï4)�ï4)îêîàï4)îfwï4)î"�î#óï0Úîó yî/ï0Ú�ï0Úîúwî÷ï0Ú�ï0Úï-‹îóyî—ï-‹�ï-‹îbwï-‹î#R�î%7ï*<îó yî‡ï*<�ï*<îRwï*<î B�î!Ïxï(•îî¢îöî!&î%ñî(Šuï%Eîówî#˜ï%E�ï%Eyî$–ï%E�ï%Eî%=wï%Eî(= yî1óï%E�ï%Eî2¾wî8*ï%E�ï%Eyî9ï%E�ï%Eî9åwï#žîÆyî{ï#ž�ï#žîFwî"²ï#ž�ï#žî#™�î%�ï!÷î îÝ�îjyî3�ï!÷�ï!÷î4žwï!÷î6å ï Oîuï�îó wîYï��ï�yîWï��ï�îÿwï�îþyî!$ï��ï�î!Ýï�î%wî)�ï��ï�yî*hï��ï�î+<wï�î0tyî5ï��ï�î6Jwî;¶ï��ï�î<��î>‚�ïYîî3�yîÀïY�ïYîœwîVïY�ïYî¹ yî#yïY�ïYî$Vwî&ïY�ïYî&sï±îuïbîó wî‘ïb�ïbyîŽïb�ïbî6ïbîGïbî#Íwïbî'tî-%yî2âïb�ïbî3¶wï»îÆyî{ï»�ï»îåwî‡ï»�ï»în�î!S�yïîïî)wïîÎyî cï�ïî!Lwî#£ï�ïïlîyîÇïl�ïlî€ïlî·wïlî¨�î 5yïÄîwïÄî¬îÝ�yîÂïÄ�ïÄîªïÄîRwïÄî  yïîwïî¬ îî©yî3ï�ïî3Óïî6ßwïî<Lï uî îÝ�ï Îî×ð;ÿ�������b��������TVm$2��������������������������������������������������������6String.AppendString[tag,""];String.AppendChar[tag,VAL[Inline.HighByte[CARDINAL[request.copies]]]];String.AppendChar[tag,VAL[Inline.LowByte[CARDINAL[request.copies]]]];Append[state,tag];Append[state,request.fileName];Append[state,request.requestTime];Append[state,request.requestor];Append[state,request.requestorPassword];Append[state,request.separator];IFstringsPerRequest#6THENERROR;BEGINmsg:LONGSTRING_[250];String.AppendString[msg,request.fileName];IFrequest.copies#1THEN{String.AppendString[msg,"("];String.AppendDecimal[msg,request.copies];String.AppendString[msg,"copies)"];};InternalLogMessage[msg,requestNumber,request.requestor];END;IFNOTdeferSavingTHENSave[];--savewillbedonewhencurrentrequestfinishes.NOTIFYnewRequest;};reprintCopies:CARDINAL_0;Reprint:PUBLICENTRYPROC[copies:CARDINAL]={reprintCopies_reprintCopies+copies;NOTIFYnewRequest;};printingSuspended:BOOLEAN_FALSE;GetSuspended:PUBLICENTRYPROCRETURNS[BOOLEAN]={RETURN[printingSuspended]};SetSuspended:PUBLICENTRYPROC[suspended:BOOLEAN]RETURNS[old:BOOLEAN]={old_printingSuspended;printingSuspended_suspended;NOTIFYnewRequest;};abortCurrent:BOOLEAN;FirstRequest:ENTRYPROCRETURNS[requestNumber:CARDINAL]={ENABLEUNWIND=>NULL;IFstate=NILTHENRestore[];requestNumber_ReqNumberFromStringNumber[state.nDiscarded];};FindRequest:ENTRYPROC[requestNumber:CARDINAL,tag:LONGSTRING,���qïg/îEÉ�wï_,îî"R�î$ ï]…îyî!¬ï]…�ï]…î"wwî$ï]…�ï]…î$fyî.Eï]…�ï]…î/wî4{ï]…�ï]…î4ßï[Ýîyî!¬ï[Ý�ï[Ýî"wwî$ï[Ý�ï[Ýî$fyî-ëï[Ý�ï[Ýî.¶wî4"ï[Ý�ï[Ýî4…ïZ5î îºïXŽî îºïVæî îºïU?î îºïS—î îºïQðî îºyïPHîwïPHî¬îÖ�î!»�yî"ðïPH�ïPHî#©ïPHî&µwî*ÆïPH�ïPHyïN¡îwïLùîyîrïLù�ïLùî+ïLùîbwïLùî!S�î"àïKRîî$ýyïIªîwïIªî½yî!¤ïIª�ïIªî"]wïIªî%i�ïHî'î'�î(BïF[î'î(nïD´î'î'�î(B ïC î'ïAeîî$¸ î.éyï?½îwî�ï?½�ï?½yï>îï>î½wï>î¿ yî!Jï>�ï>î"wï>î%xî)•ï>�ï>î*�î+ î-ûî0�î2`î5žî9 ï<nîèîˆyï:Çîwï:Çîý ï9îï5Ðîó yî ï5Ð�ï5ÐîÖwï5Ðî Æ�î"Suï2�îówîbï2��ï2�yî`ï2��ï2�îï2�îï2�îŸwï2�î#Fyî(Qï2��ï2�î)wî.ˆï2��ï2�î/o�î1T�ï0Úî î£�î0 î%Î�î'´yï/2îwï/2îý ï-‹îï*<îóyî'ï*<�ï*<îáwï*<î#L�yî$Ùï*<�ï*<î%’wî(wï*<�ï*<uï&íîó wîdï&í�ï&íyîaï&í�ï&íî ï&íîï&íî# ï&íî'Gwï&íî-S�yî-¶ï&í�ï&íî.owî3Vï&í�ï&íî4>�î6#�yî6Óï&í�ï&íî7§wï%EîÆuï#žîó wî-ï#ž�ï#žyî*ï#ž�ï#žîÒï#žîãï#žî#iwï#žî' yî.§ï#ž�ï#žî/`wî4Gï#ž�ï#žyî5/ï#ž�ï#žî6wï#žî;:yï!öîÆwîfï!ö�ï!öîN�î3�ï Oîîn�îûï§îî¿�î L yï�îwï�îý ïXîï îó yî´ï �ï îmwîTï �ï uïºîó wî}ïº�ïºyîzïº�ïºî3ïºîïºî!¨wïºî'³yî2iïº�ïºî33wî8Ÿïº�ïºî9‡�î;l�yïîïî)wïîÎyî cï�ïî!Lwî#£ï�ïyïkîwïkî¬îÝ�yîÂïk�ïkîªïkîRwïkî  ïÄî îÝ�îjð,ïîuï Íîó wî[ï Í�ï ÍyîYï Í�ï Íîï Íîßwï Íî!†yî,;ï Í�ï Íî-wî2rï Í�ï Íî3Oyî6ï Í�ï Íî6Êï Íî:wî>nï Í�ï Í�������9��������TVm$ë����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������7request:Request]={ENABLEUNWIND=>NULL;stringNumber:CARDINAL_requestNumber*stringsPerRequest;offset:CARDINAL_0;IFstate=NILTHENRestore[];WHILEstringNumber<state.nDiscardedDOstringNumber_stringNumber+requestLimit*stringsPerRequestENDLOOP;IFstringNumber-state.nDiscarded>=state.nStringsTHENRETURN;offset_StringOffset[state,stringNumber-state.nDiscarded];MoveToString[tag,state,offset];offset_NextStringOffset[state,offset];MoveToString[request.fileName,state,offset];offset_NextStringOffset[state,offset];MoveToString[request.requestTime,state,offset];offset_NextStringOffset[state,offset];MoveToString[request.requestor,state,offset];offset_NextStringOffset[state,offset];MoveToString[request.requestorPassword,state,offset];offset_NextStringOffset[state,offset];MoveToString[request.separator,state,offset];IFstringsPerRequest#6THENERROR;};GetRequest:ENTRYPROC[request:Request]RETURNS[requestNumber:INT,copies:CARDINAL]={ENABLEUNWIND=>NULL;tag:LONGSTRING_[4];IFstate=NILTHENRestore[];DOoffset:CARDINAL_0;WHILEprintingSuspendedOR(state.nStrings=0ANDreprintCopies=0)DOWAITnewRequestENDLOOP;abortCurrent_FALSE;IFreprintCopies#0THEN{requestNumber_-1;copies_reprintCopies;reprintCopies_0;RETURN;};requestNumber_ReqNumberFromStringNumber[state.nDiscarded];MoveToString[tag,state,offset];offset_NextStringOffset[state,offset];MoveToString[request.fileName,state,offset];offset_NextStringOffset[state,offset];MoveToString[request.requestTime,state,offset];offset_NextStringOffset[state,offset];MoveToString[request.requestor,state,offset];offset_NextStringOffset[state,offset];MoveToString[request.requestorPassword,state,offset];offset_NextStringOffset[state,offset];MoveToString[request.separator,state,offset];copies_DecodeCopies[tag];IFstringsPerRequest#6THENERROR;IFtag[0]='THENEXIT;��qïg/îEÉ�wï_,îÆîîÐ�îµ�yï]…îï]…î)wï]…îÎyî cï]…�ï]…î!Lwî#£ï]…�ï]…ï[Ýî yîXï[Ý�ï[Ýî"wï[Ýî#�î$ ïZ5îyîIïZ5�ïZ5îwïZ5î�î‘yïXŽîwïXŽî¬îÝ�yîÂïXŽ�ïXŽîªïXŽîRwïXŽî  yïVæîwïVæîe î ?�î!tyî+ÂïVæ�ïVæî,§�wïVæî. î6â�î8o ïU?î×�î¼yî)-ïU?�ïU?î)æwî.ÎïU?�ïU?yïS˜îwïS˜î¬î'Èî*^ yî2ÅïS˜�ïS˜î3~ïS˜î6‹wî;sïS˜�ïS˜ïQðîîÏ�î\î#{ïPIîî¦î"0î&×î*¢�î,/î:5ïN¡îî'î*�î/7î3�ïLúî×î!ÞïKRîð!î(óî,}î1$î4ï�ïI«î×î!ÞïHîî'î*£î/Jî3�ïF\î×î!ÞïD´îð'î,�î0&î4Îî8™�ïC î×î!ÞïAfîî&øî*�yï?¾îwï?¾î¬îÖ�î!»�yî"ðï?¾�ï?¾î#©ï?¾î&µwî*Æï?¾�ï?¾ï>îuï:Èîó wîâï:È�ï:Èyîàï:È�ï:Èî™ï:Èîfwï:Èî!î&¿yî,{ï:È�ï:Èî-Owï:Èî2‡yî=<ï:È�ï:Èî=¥wî?Gï:È�ï:Èï9 îÆyînï9 �ï9 î9wî¥ï9 �ï9 îŒ�îq�yï7yîï7yî)wï7yîÎyî cï7y�ï7yî!Lwî#£ï7y�ï7yï5ÑîyîÇï5Ñ�ï5Ñî€ï5Ñî·wï5Ñî¨�î 5yï4*îwï4*î¬îÝ�yîÂï4*�ï4*îªï4*îRwï4*î  yï2‚îwï0ÛîyîZï0Û�ï0Ûî%wï0Ûî �î!¢yï/3îwï/3îvyî%1ï/3�ï/3î&�wï/3î'fî0G�î2,�yî3aï/3�ï/3î44wï/3î6‡ î?%�ï-Œîèyî–ï-Œ�ï-Œî|�ï-ŒîÝwï-Œîr yî%5ï-Œ�ï-Œî%îwî*Öï-Œ�ï-Œï+äî î]�yîêï+ä�ï+äî£wî"‡ï+ä�ï+äyï*=îwï*=î½ î[�î!@�yî"uï*=�ï*=î#.wï*=î&;�ï(•î' î ÿ�î"Œï&îî'îU�îâ ï%Fî' îÅ�î!Ryï#Ÿî'wîï#Ÿ�ï#Ÿï!÷î'ï Pî îî�î {ð,ï¨îî ¸î$Aî(èî,³�î.@î<Gïîî)î, î1Hî5�ïYîèî#ïï²îð!î+î.Žî35î7��ï îèî#ïïcîî)+î,´î1[î5&�ï¼îèî#ïïîð'î.®î28î6ßî:ª�ïmîèî#ïïÅîî) î,’ïîîD�îÑyï vîwï vî½î!ç�î#Ì�yî%ï v�ï vî%ºï vî(Æwî,Øï v�ï vyï Ïîwï Ïî½î|�îa�yîÂï Ï�ï Ïî{ï Ïî!ˆwî$8ï Ï�ï Ï�������ò��������TVm$������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������8Discard[state,stringsPerRequest];WHILEstate.nDiscarded>=stringsPerRequest*requestLimitDOstate.nDiscarded_state.nDiscarded-stringsPerRequest*requestLimit;ENDLOOP;ENDLOOP;};RemoveRequest:ENTRYPROC[requestNumber:CARDINAL]={ENABLEUNWIND=>NULL;IFstate=NILTHENRestore[];IFrequestNumber#ReqNumberFromStringNumber[state.nDiscarded]THENERROR;Discard[state,stringsPerRequest];deferSaving_FALSE;Save[];};DeferSaving:ENTRYPROC={ENABLEUNWIND=>NULL;deferSaving_TRUE;};DoDeferredSave:ENTRYPROC={ENABLEUNWIND=>NULL;deferSaving_FALSE;Save[];};DoRequest:PUBLICPROC[action:PROC[request:Request,requestNumber:CARDINAL,abort:LONGPOINTERTOBOOLEAN]]={fileName:LONGSTRING_[80];requestTime:LONGSTRING_[20];requestor:LONGSTRING_[80];requestorPassword:LONGSTRING_[80];separator:LONGSTRING_[80];requestNumber:INT;body:LONGPOINTERTOStringRep;copies:CARDINAL;aborted:BOOLEAN_FALSE;[requestNumber,copies]_GetRequest[[fileName,requestTime,requestor,requestorPassword,separator,0]];deferSaving_TRUE;DeferSaving[];IFrequestNumber<0THEN{LogMessage["Reprint."];action[[NIL,NIL,NIL,NIL,NIL,copies],NAT.LAST,@abortCurrent!ABORTED=>{aborted_TRUE;CONTINUE}];LogMessage["Reprintcompleted."];DoDeferredSave[];}ELSE{��qïg/îEÉ�wï_,î î”yï]…îwï]…îvî#Äî&Zyî9Ëï]…�ï]…î:°�wï[Ýî'î!t�î#î-O�ïZ6îúyïXŽî'wîÈïXŽ�ïXŽyïVçîwî·ïVç�ïVçïU?îuïQðîó wîbïQð�ïQðyî`ïQð�ïQðîïQðîæwïQðî#�yî.BïQð�ïQðî/ wî4yïQð�ïQðî5a�î7F�yïPHîïPHî)wïPHîÎyî cïPH�ïPHî!Lwî#£ïPH�ïPHyïN¡îwïN¡î¬îÝ�yîÂïN¡�ïN¡îªïN¡îRwïN¡î  yïLùîwïLùî¬ î„�î ið+yïKRî×ïKRî�wî®ïKR�ïKRïI«î îƒïHî î��yîïH�ïHîÕwîºïH�ïHïF\îïD´îuïAeîó wî:ïAe�ïAeyî7ïAe�ïAeîñïAeî¾wïAeî!e�î#J�yï?½îï?½î)wï?½îÎyî cï?½�ï?½î!Lwî#£ï?½�ï?½ï>î î��yîï>�ï>îÕwîHï>�ï>ï<nîuï9îó wîºï9�ï9yî·ï9�ï9îqï9î >wï9î#å�î%Ê�yï7xîï7xî)wï7xîÎyî cï7x�ï7xî!Lwî#£ï7x�ï7xï5Ðî î��yîï5Ð�ï5ÐîÕwîºï5Ð�ï5Ðï4)îï2�îuï/2îówîï/2�ï/2yî}ï/2�ï/2î$ï/2î5wï/2î Üyî%Ñï/2�ï/2î&ywï/2î)xî/)î4Û yï-‹îÆwîýï-‹�ï-‹îÙyîòï-‹�ï-‹î«ï-‹î âï-‹î&ƒï-‹î(�wî.=ï-‹�ï-‹î.¡�î/ˆ�î1m�ï+ãîyî~ï+ã�ï+ãî8ï+ãîowï+ãî"`�î#íï*<î yîlï*<�ï*<î%ï*<î]wï*<î$N�î%Ûï(”î yî’ï(”�ï(”îKï(”î‚wï(”î"t�î$�ï&íîyîï&í�ï&íîÏï&íî#wï&íî'÷�î)„ï%Eî yîpï%E�ï%Eî)ï%Eîawï%Eî"R�î#ßï#žî yîVï#ž�ï#žîÀwîbï#ž�ï#žï!öîyîüï!ö�ï!öîµï!öîìï!öî �wï!öî"§ ï Oîyî¬ï O�ï Oîwwîãï O�ï Oï§îyî‰ï§�ï§îBwï§î®�yî ;ï§�ï§î ôwî#Ùï§�ï§ï�îî˜î"*�î#·î1é î:/ ïXî×îÇ î&ï±î î��yîï±�ï±îÕwîHï±�ï±ï î yïbîwïbî¬ î„�î¹�yî îïb�ïbî!§wïbî$³�ïºîïîyîpï�ïîXwî{ï�ïyîXï�ïî@wîcï�ïyî@ï�ïî (wî!Kï�ïyî"(ï�ïî#wî$3ï�ïyî%ï�ïî%ùwî'ï�ïî'øyî,âï�ïî-Êwî/Wï�yïî/®wî2“ï�ïî3o î=�yïkîèwïkîî—î$S�yî%àïk�ïkî&™wî) ïk�ïkyî* ïk�ïkî*Ôwî0Cïk�ïkî0óïÄîî"’ ïîï uî�yï Íîwï ÍîS��������–��������TVm$c������������������������������������������������������������������������������������������������������������������������������������������������������������������9body_LOOPHOLE[@(state[0])];IFbody.nChars#4THENERROR;body.char[1]_'P;LogMessage["Started.",requestNumber,requestor];action[[fileName,requestTime,requestor,requestorPassword,separator,copies],requestNumber,@abortCurrent!ABORTED=>{aborted_TRUE;CONTINUE}];IFabortedTHENLogMessage["Aborted.",requestNumber,requestor]ELSELogMessage["Completed.",requestNumber,requestor];RemoveRequest[requestNumber];};};CancelRequest:PUBLICENTRYPROC[requestNumber:CARDINAL]RETURNS[ok:BOOLEAN]={stringNumber:CARDINAL_requestNumber*stringsPerRequest;body:LONGPOINTERTOStringRep;IFstate=NILTHENRestore[];WHILEstringNumber<state.nDiscardedDOstringNumber_stringNumber+requestLimit*stringsPerRequestENDLOOP;IFstringNumber-state.nDiscarded>=state.nStringsTHENRETURN[FALSE];body_LOOPHOLE[@(state[StringOffset[state,stringNumber-state.nDiscarded]])];IFbody.nChars#4THENERROR;IFbody.char[0]#'THENRETURN[FALSE];body.char[0]_'X;IFstringNumber=state.nDiscardedTHENabortCurrent_TRUE;RETURN[TRUE];};RequestStatus:TYPE=PDQueue.RequestStatus;CheckRequest:PUBLICPROC[requestNumber:CARDINAL,action:PROC[request:Request,status:RequestStatus]]={tag:LONGSTRING_[4];status:RequestStatus;fileName:LONGSTRING_[80];requestTime:LONGSTRING_[20];requestor:LONGSTRING_[80];requestorPassword:LONGSTRING_[80];separator:LONGSTRING_[80];tag.length_0;FindRequest[requestNumber,tag,[fileName,requestTime,requestor,requestorPassword,separator,0]];IFtag.length=0THENstatus_notFoundELSEIFtag[0]='XTHENstatus_canceledELSEIFtag[1]='PTHENstatus_printingELSEstatus_waiting;action[[fileName,requestTime,requestor,requestorPassword,separator,DecodeCopies[tag]],status];};��qïg/îEÉ�wï_,îî“�yî ï_,�ï_,îÙwî oï_,�ï_,î Ò yï]„îwï]„î½ îË�î ±�yî!åï]„�ï]„î"žï]„î%«wî)¼ï]„�ï]„ï[Ýî îí�îzïZ5îî#š î-Ë ïXŽîîÉ î( î.|î:l ïVæîèîÒ î% î.«�yî/¨ïVæ�ïVæî0|wïVæî5Âî8Wî>�yïU?îèwîïU?�ïU?yîïU?�ïU?îÝwî LïU?�ïU?î üyïS—îwïS—î½yîÈïS—�ïS—î�wïS—îŽî. î8ó yïQðîwïQðîdî)< î3m ïPHîïN¡îïLùîuïIªîó wî¼ïIª�ïIªyîºïIª�ïIªîbïIªîsïIªî#ùwïIªî' yî2UïIª�ïIªî3 wî8ŒïIª�ïIªyî9tïIª�ïIªî:HwïHîÆyî�ïH�ïHîWwî>ïH�ïHî%�î �ïF[î yîXïF[�ïF[î"wïF[î#�î$ ïD³îyîüïD³�ïD³îµïD³îìïD³î �wïD³î"§ yïC îwïC î¬îÝ�yîÂïC �ïC îªïC îRwïC î  yïAdîwïAdîe î ?�î!tyî+ÂïAd�ïAdî,§�wï?¼î îï�î|ð+yï>îwî·ï>�ï>yï<mîwï<mî¬î'Èî*^ yî2Åï<m�ï<mî3~ï<mî6‹wï<mî;÷�yî<Zï<m�ï<mî=wî?øï<m�ï<mî@[�ï:Æîî‚�yîï:Æ�ï:ÆîÈwî^ï:Æ�ï:ÆîÁï9î×ð"yï7wîwï7wî¬ îº�îŸ�yîÔï7w�ï7wî �ï7wî#™wî'«ï7w�ï7wyï5Ïîwï5Ïî¬ îƒ�îh�yîÉï5Ï�ï5Ïî ‚ï5Ïî#�wï5Ïî(û�yî)^ï5Ï�ï5Ïî*wî,üï5Ï�ï5Ïî-_�ï4'î îÜ�îiyï2€îwï2€î¬ î…�îkyî)¸ï2€�ï2€î*qwï2€î-~ î5Å�yî7Rï2€�ï2€î8 wî:}ï2€�ï2€yï0Øîwï0Øîq�yîÔï0Ø�ï0Øî�wî�ï0Ø�ï0Øîc�ï/1îï+áîó yî[ï+á�ï+áîwï+áîÌ�î²uï*:îó wîeï*:�ï*:yîbï*:�ï*:î ï*:îwï*:î"Âyî-wï*:�ï*:î.Bwî3®ï*:�ï*:î4Šyî9ï*:�ï*:î9Äwï(“îÆîwî(î!yî+-�î-�ï&ëîyîÇï&ë�ï&ëî€ï&ëî·wï&ëî¨�î 5ï%CîîU ï#œîyî~ï#œ�ï#œî8ï#œîowï#œî"`�î#íï!ôî yîlï!ô�ï!ôî%ï!ôî]wï!ôî$N�î%Ûï Mî yî’ï M�ï MîKï Mî‚wï Mî"t�î$�ï¥îyîï¥�ï¥îÏï¥î#wï¥î'÷�î)„ïýî yîpïý�ïýî)ïýîawïýî"R�î#ßïVî îZ�îçï®îî%Eî'æ î.¢ î6é ïî×îÇ î&yï_îwï_î¬ î�îæ�yîï_�ï_îÔwï_î!àî%·�î'Dyï¸îï¸îSwï¸îúîº�îŸyî…ï¸�ï¸î >wï¸î#Jî'!�î(®yïîïîSwïîúîº�îŸyîMï�ïî wïî#î&é�î(vyïhîwïhîSî*�î·ïÁîî¸ î%þ î,jî8Z ïî×î 6ï rî�������D��������TVm$›������������������������������������������������������������������������������������������������������������������������������������10CountRequests:PUBLICENTRYPROCRETURNS[requestCount:NAT]={IFstate=NILTHENRestore[];requestCount_state.nStrings/stringsPerRequest;};EnumerateRequests:PUBLICPROC[action:PROC[requestNumber:CARDINAL,request:Request,status:RequestStatus]RETURNS[continue:BOOLEAN]]={firstRequest:NAT_FirstRequest[];nRequests:NAT_CountRequests[];requestNumber:NAT_firstRequestMODrequestLimit;THROUGH[0..nRequests)DOcontinue:BOOLEAN_TRUE;myAction:PROC[request:Request,status:RequestStatus]={IFstatus=printingORstatus=waitingTHENcontinue_action[requestNumber,request,status];};CheckRequest[requestNumberMODrequestLimit,myAction];IFNOTcontinueTHENEXIT;requestNumber_(requestNumber+1)MODrequestLimit;ENDLOOP;};RegisterDisk:PUBLICENTRYPROC[read,write:PROC[address:LONGPOINTER,nwords:CARDINAL],maxWords:CARDINAL]={IFstate#NILTHEN{PDInterpSysCalls.FreeSpace[state];state_NIL;};readProc_read;writeProc_write;maxStateWords_maxWords;};LogMessage:PUBLICENTRYPROC[message:LONGSTRING,requestNumber:INT_-1,userName:LONGSTRING_NIL]={InternalLogMessage[message,requestNumber,userName];};InternalLogMessage:INTERNALPROC[message:LONGSTRING,requestNumber:INT_-1,userName:LONGSTRING_NIL]={msg:LONGSTRING_[250];Time.AppendCurrent[msg];msg[msg.length]_';msg.length_msg.length+1;IFrequestNumber>=0THEN{String.AppendChar[msg,'R];FORi:CARDINAL_requestLimit/10,i/10WHILEi#0DOString.AppendDecimal[msg,(requestNumber/i)MOD10];ENDLOOP;String.AppendChar[msg,'];};String.AppendString[msg,message];��qïg/îEuï_,îó wîÝï_,�ï_,yîÛï_,�ï_,îƒï_,î“ï_,î$ï_,î'Áwï_,î-Í yî73ï_,�ï_,î8wî9¨ï_,�ï_,î:��î<u�yï]…îwï]…î¬îÝ�yîÂï]…�ï]…îªï]…îRwï]…î  ï[Ýî îŽ�îð!ïZ5îuïVæîówî©ïVæ�ïVæyî§ïVæ�ïVæîOïVæî"_wïVæî&yî*üïVæ�ïVæî+£wïVæî.£yî9XïVæ�ïVæî:#wî?�ïVæ�ïVæïU?îÆîîÅî! yî*gïU?�ïU?î+;wïU?î0s yî6õïU?�ïU?î7®wî<•ïU?�ïU?î<ø�î=à�î?Å�ïS˜î yî+ïS˜�ïS˜îwïS˜î$�î±ïQðî yî"ïQð�ïQðî wïQðî�î¨ïPIî yîVïPI�ïPIî?wïPIî P�î!Ý yî)‰ïPI�ïPIî*›wïPIî,á yïN¡îwïN¡î’ yî"rïN¡�ïN¡î#X�wïLúîyî5ïLú�ïLúîîwïLúî!Y�yî"æïLú�ïLúî#Ÿwî&ïLú�ïLúïKRîyîäïKR�ïKRîŒwïKRî‹î%<î*îî/> î8��î:t�yïIªî'wïIªîÎî¥�îŠyî#ÌïIª�ïIªî$¨�wïIªî&î)Ø�î+½yî0�ïIª�ïIªî1IwïIªî4Uî9û�ïHîúî&"î+NïF\î'ïC îyî'æïC �ïC î(øwïC î+> î3± yïAeîïAeî½wïAeî¿yîeïAe�ïAeî ïAeî#+wî%ÛïAe�ïAeï?¾î îî�î { î*Í�î,²yî.`ï?¾�ï?¾î/rwï?¾î1¸ yï>îwî·ï>�ï>ï<oîuï9îó wî�ï9�ï9yî›ï9�ï9îCï9îSï9î"Úwï9î&�î*Wyî.Nï9�ï9î.õwï9î1õyî7»ï9�ï9î8uï9î;¬wî@Éï9�ï9ï7xîÆyîï7x�ï7xîÞwîJï7x�ï7xî­�î‰yî%òï7x�ï7xî&½wî,)ï7x�ï7xî-�î.ö�yï5Ñîwï5Ñî¬îÝ�yîÂï5Ñ�ï5Ñîªï5ÑîRwï5Ñî �ï4)îð"ï2‚îîG�yîÓï2‚�ï2‚î¼wîßï2‚�ï2‚ï0Úîï/3îîË�îXï-‹îî.�î»ï+äî îã�îpï*<îuï&íîó wîqï&í�ï&íyîoï&í�ï&íîï&íî'ï&íî"®wï&íî&Uyî,‰ï&í�ï&íî-Bï&íî0ywî4æï&í�ï&íî5à yï%FîÆwï%FîV�îãîéyîóï%F�ï%Fî¬ï%Fî"äwï%Fî'Õ�yî)bï%F�ï%Fî*Jwî+mï%F�ï%Fî,T�î.:�ï#žîî% î/M ï!÷îuï¨îówî"ï¨�ï¨yî ï¨�ï¨îŠï¨î$²wï¨î(Yyî.�ï¨�ï¨î/Fï¨î2}wî6êï¨�ï¨î7Ç yï�îÆwï�îV�îãîéyîóï��ï�î¬ï�î"äwï�î'Õ�yî)bï��ï�î*Jwî+mï��ï�î,T�î.:�ïYîyî`ïY�ïYîïYîQwïYîB�î Ïï±îï îî�î¥�î‚�î € î'o�î(ü î/ë�î1Ñyïbîwïbî¬ î„î!�yî"Nïb�ïbî#wïbî&�ï»îî$Wyïîwïîyîdï�ïî/wïî �î!¬î,0yî/)ï�ïî0Cwïî3Šyî6‚ï�ïî7h�wïlî'î(nyî4Mïl�ïlî5_wïlî7¥yïÄî'wîÈïÄ�ïÄïîî$W�î%3ï uîï Îîî"ë�������¢��������TVm$Î������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������11IFuserName#NILTHEN{String.AppendString[msg,"("];String.AppendString[msg,userName];String.AppendChar[msg,')];};IFstate=NILTHENRestore[];DiscardMessages[messages.nWords-SIZE[StringBody[msg.length]]];Append[messages,msg];TryToPrintMessages[];};loggingMessages:BOOLEAN_FALSE;firstUnprintedMessage:CARDINAL_0;writeLineProc:PROC[LONGSTRING]_NIL;RegisterTTY:PUBLICENTRYPROC[writeLine:PROC[LONGSTRING]]={writeLineProc_writeLine;};TryToPrintMessages:INTERNALPROC={msg:LONGSTRING_[250];GetMsg:INTERNALPROC[n:CARDINAL]RETURNS[ok:BOOLEAN]={msg.length_0;IFn<messages.nDiscardedTHENRETURN[TRUE];IFn-messages.nDiscarded>=messages.nStringsTHENRETURN[FALSE];AppendToString[msg,messages,StringOffset[messages,n-messages.nDiscarded]];RETURN[TRUE];};IFNOTloggingMessagesORwriteLineProc=NILTHENRETURN;FORi:CARDINAL_firstUnprintedMessage,i+1UNTILNOTGetMsg[i]DOwriteLineProc[msg!ABORTED=>CONTINUE];firstUnprintedMessage_i+1;ENDLOOP;};SetLogState:PUBLICENTRYPROC[logging:BOOLEAN]RETURNS[old:BOOLEAN]={old_loggingMessages;loggingMessages_logging;IFmessages#NILTHENTryToPrintMessages[];};EnumerateMessages:PUBLICPROC[action:PROC[message:LONGSTRING]RETURNS[continue:BOOLEAN]]={msg:LONGSTRING_[250];FORi:CARDINAL_GetNumberDiscardedMessages[],i+1UNTILNOTGetString[msg,messages,i]DOIFNOTaction[msg].continueTHENEXIT;ENDLOOP;};��qïg/îEyï_,îwï_,î¬yîï_,�ï_,îï_,î©wï_,î"n�ï]„îî$ý�î&1ï[Ýîî$ý ïZ5îî$WïXŽîyïVæîwïVæî¬îÝ�yîÂïVæ�ïVæîªïVæîRwïVæî  ïU>îyî(XïU>�ïU>î(÷wî*ÓïU>�ïU>î+6ïS—îîeïQïîïPHîïLøîóyîÎïLø�ïLøî‡wïLøî!ò�yî#ïLø�ïLøî$8wî'ïLø�ïLøïKQîóyîyïKQ�ïKQî DwïKQî&5�î'ÁïI©îó yîMïI©�ïI©îôwîpïI©�yïI©îÓïI©î!Ãwî&0ïI©�ïI©î'�yî(¥ïI©�ïI©î)�wî*°ïI©�ïI©uïFZîó wî·ïFZ�ïFZyî´ïFZ�ïFZî\ïFZîmïFZî"ówïFZî&š yî-«ïFZ�ïFZî.Swî0ÎïFZ�yïFZî11ïFZî5"wî9�ïFZ�ïFZî9ò�î:Ù�î<¾�ïD²î îå�îq ïC îuï?¼îówî}ï?¼�ï?¼yî{ï?¼�ï?¼îåï?¼î% wï?¼î(´�î*™�ï>îyî`ï>�ï>îï>îQwï>îB�î Ïuï<lîwî×ï<l�ï<lyîÕï<l�ï<lî?ï<lîgwï<lî#yî%5ï<l�ï<lî&�wî+lï<l�ï<lyî,Tï<l�ï<lî-(wï<lî2_yî57ï<l�ï<lî5ðwî:×ï<l�ï<lî;¾�î=£�ï:Åî î�î’yï9îwï9î½�î�î<yî&5ï9�ï9î&îï9î)úwï9î/g�yî/Êï9�ï9î0ƒwî2õï9�ï9î3X�yï7vîwï7vî½î$õî'‹yî2�ï7v�ï7vî3Vï7vî6bwï7vî;Ï�yî<2ï7v�ï7vî<ëwî?Ðï7v�ï7vî@3�ï5Îîî"´î(èï4'îèyï2îwï2î‚�yîåï2�ï2îžwîï2�ï2ît�ï0Øîyï/0îï/0î¬wï/0î®yî"ï/0�ï/0î"ì�wï/0î$D î-$�yî/ ï/0�ï/0î/òï/0î1™ï/0î5^wî:Fï/0�ï/0yï-ˆîwï-ˆîòyîSï-ˆ�ï-ˆîwï-ˆî�î›î.�yî0ùï-ˆ�ï-ˆî1Þï-ˆî5'wï-ˆî8)yî> ï-ˆ�ï-ˆî?…�wï+áîî ·�yî!µï+á�ï+áî"ˆwï+áî'Îyî*dï+á�ï+áî+/wî0žï+á�ï+áî1�ï*9îî#"�î$¯yï(’îwî·ï(’�ï(’ï&êîuï#›îó wîgï#›�ï#›yîdï#›�ï#›î ï#›îï#›î"£wï#›î&Jyî,ï#›�ï#›î,¾wî1¥ï#›�ï#›yî2Œï#›�ï#›î3`wï#›î8˜yï!óîÆwîfï!ó�ï!óîN�î3�ï Lîîn�îûï¤îîe�îòyïýîwïýî¬î‡�yîlïý�ïýîUïýîüwïýî"ÂïUîuïîówîï�ïyîï�ïî½ïî"Îwïî&uyî+jï�ïî,wî.�ï�ïî.ðyî4Àï�ïî5zïî8±wî=ï�ïyï^îÆwï^îÒ yîTï^�ï^î wî#ôï^�ï^î$X�î%?�î'$�ï·îyî`ï·�ï·îï·îQwï·îB�î ÏyïîwïîòyîSï�ïîwïî�î›î4yî6úï�ïî7àïî;)wïhî× îGî#{yî$Æïh�ïhî%¬�ïÀîïÀî½wïÀî¿yî&vïÀ�ïÀî'/ïÀî*;wî,ëïÀ�ïÀyïîwî·ï�ïï qî���������������TVm$Ä��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������12END.��qïg/îEyï_lîówî{ï_l�ï_lÿ����������������TVm$���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������PDRemoteStream.mesaCopyright(C)1984,XeroxCorporation.Allrightsreserved.MichaelPlass,September4,19841:58:46pmPDTDIRECTORYStreamUSING[Handle];PDRemoteStream:DEFINITIONS=BEGINLookup:PROC[fileName:LONGSTRING,createDate:LONGSTRING,name,password:LONGSTRING]RETURNS[bytes:INT];Ifsuccessful,explandsfileNametoincludespecificversion.Ifunsuccessful,raisesError,below.Read:PROC[fileName:LONGSTRING,name,password:LONGSTRING,action:PROC[Stream.Handle]];MayraiseError,below.Error:ERROR[expl:LONGSTRING,retryable:BOOLEAN];retryableisahintthatitmaybeworthittotryagainlater.END.���xï_:îâï]“îâî/î¤îBîZ î'Åî* î-Úï[ëîâî$îî î -î#sî(\î*§yïX�îâwïX�îKyîþïX��ïX�îãwïX�îGïUNîâyî§ïUN�ïUNîŒ wïUNî"Æ�yî$«ïUN�ïUNî%euïQÿîówîxïQÿ�ïQÿyîvïQÿ�ïQÿîwïQÿî yî úïQÿ�ïQÿî!³ïQÿî$ëwî)XïQÿ�ïQÿî*4 yî1‰ïQÿ�ïQÿî2BïQÿî5zwî9æïQÿ�ïQÿî:ÃïPXîÆyî=ïPX�ïPXîöïPXî.wî šïPX�ïPXyî!‚ïPX�ïPXî"VwïPXî'�yî+þïPX�ïPXî,hwî. ïPX�ïPXî.m�xïN±îî’ îî µî&~î(#î,Ïî1�ïM îî’ î“î Rî$_uïI»îówî÷ïI»�ïI»yîõïI»�ïI»îœwïI»îœ yîyïI»�ïI»î 2ïI»î#jwî'×ïI»�ïI»î(³î,Ëyî3BïI»�ïI»î3ûïI»î72wî;ŸïI»�ïI»î<|yïHîÆwîéïH�ïHîLxïFlîî3înî{uïCîówî#ïC�ïCyî ïC�ïCîÚwïCî¶yî—ïC�ïCîPïCî!‡wî%ôïC�ïCî&Ñ yî-ïC�ïCî-Êwî2±ïC�ïCî3�xïAvîî î �îAîî æî"=î%-î&ýî*Êî,"î-Çî/åî3œyï>'îówî{ï>'�ï>'ÿ�������1��������TVm$“����������������������������������������������������������������������������������������������������������������������������������������������������������������������PDRemoteStreamStub.mesaCopyright(C)1984,XeroxCorporation.Allrightsreserved.MichaelPlass,September5,198410:18:39pmPDTDIRECTORYIO,Stream,STP,Rope,PDRemoteStream,String,Commander,PDQueue;PDRemoteStreamStub:PROGRAMIMPORTSRope,STP,String,Stream,Commander,PDQueue,IOEXPORTSPDRemoteStream=BEGINError:PUBLICERROR[expl:LONGSTRING,retryable:BOOL]=CODE;RopeFromString:PROC[string:LONGSTRING]RETURNS[Rope.ROPE]={i:INTEGER_-1;fet:SAFEPROCRETURNS[CHAR]=TRUSTED{RETURN[string[i_i+1]]};IFstring=NILTHENRETURN[NIL];RETURN[Rope.FromProc[string.length,fet]];};Rs:PROC[string:LONGSTRING]RETURNS[Rope.ROPE]=RopeFromString;AppendRope:PROC[string:LONGSTRING,rope:Rope.ROPE]={action:Rope.ActionType=TRUSTED{string[string.length]_c;string.length_string.length+1;};[]_rope.Map[action:action];};Retryable:PROC[code:STP.ErrorCode]RETURNS[BOOL]={RETURN[SELECTcodeFROMconnectionTimedOut,connectionRejected,connectionClosed,noConnection,noNameLookupResponse=>TRUE,ENDCASE=>FALSE]};Lookup:PUBLICPROC[fileName:LONGSTRING,createDate:LONGSTRING,name,password:LONGSTRING]RETURNS[bytes:INT]={bytes_MyLookup[fileName,createDate,name,password!STP.Error=>TRUSTED{expl:LONGSTRING_[80];AppendRope[expl,error];ERRORError[expl:expl,retryable:Retryable[code]]};];};ParseTest:PROC[fileName:Rope.ROPE]RETURNS[server,rest:Rope.ROPE]={f:LONGSTRING_[80];s:LONGSTRING_[80];��xï_,îâï]„îâî/î¤îBîZ î'Åî* î-Úï[Ýîâî$îî î -î#sî) î+WyïXŽîâïXŽîKwî‘ïXŽ�ïXŽîmyîyïXŽ�ïXŽîwîyïXŽ�ïXŽî Uî$bî0î4v ïVçîµïS˜îâyîjïS˜�ïS˜îïQðîówïQðî£yî°ïQð�ïQðîOwî°ïQð�ïQðî�î!ýî' î/Nî6yïPIîówïPIîµ ïN¡îó�yîØïN¡�ïN¡î‘wïKRîóyî ïKR�ïKRîÈïKRîÙwïKRîoyî"OïKR�ïKRî#ïKRî&@wî*­ïKR�ïKRî+‰ yî1ÉïKR�ïKRî2‚wî4ôïKR�ïKRî5Ü�yî7ÁïKR�ïKRî8Œwî;ïKR�ïKRuïHîó wîÚïH�ïHyîØïH�ïHî€wïHîyî$1ïH�ïHî$êïHî("wî,�ïH�ïHyî-vïH�ïHî.JwïHî3‚yî7mïH�ïHî8Awî:~ïH�ïHî;f�î=K�ïF[îyîeïF[�ïF[îÏwïF[î)�î¶ïD´îyî�ïD´�ïD´î/ïD´îùïD´î wïD´î"¬�yî#ïD´�ïD´î#Úwî&gïD´�ïD´î'O�yî)4ïD´�ïD´î)íwïD´î/"�yî/ÒïD´�ïD´î0¦wïD´î5?yïC îwïC î¬î��yîfïC �ïC îOïC îöïC î ¼wïC î&(�yî&‹ïC �ïC î'twî(—ïC �ïC î(ú�yïAeîwïAeîqî*÷ï?½îuï<nîówî€ï<n�ï<nyî~ï<n�ï<nî%wï<nî%yî×ï<n�ï<nî�ï<nîÈwî$5ï<n�ï<nyî%ï<n�ï<nî%ðwï<nî+(yî/ï<n�ï<nî/çwî2$ï<n�ï<nî3 �î4ñuï9îó wîgï9�ï9yîdï9�ï9î wï9î yî!¾ï9�ï9î"wï9î%®wî*ï9�ï9î*øî.¡yî2*ï9�ï9î2ýwî5;ï9�ï9î6"�î8�ï7xîî–î"ž�yî$ƒï7x�ï7xî%<wï7xî*q�ï5Ðîî!�î"�ï4)î îø�î… î&h�î(Mï2�îï0ÚîîO�îÜî –ï/2îuï+ãîówî£ï+ã�ï+ãyî ï+ã�ï+ãîHwï+ãîHyîkï+ã�ï+ãî wî!kï+ã�ï+ãî! yî(ÿï+ã�ï+ãî)Ówï+ãî/ �yî/nï+ã�ï+ãî0'wî2™ï+ã�ï+ãî3€�î5e�yï*<îwï*<îq�yîÔï*<�ï*<îswï*<î§yî îï*<�ï*<î!§wï*<î$íî2kï(”î×î8 î(qî8[yî:ñï(”�ï(”î;ªwî>ï(”�ï(”yï&íî×wï&íîÚyîoï&í�ï&íî(wî ï&í�ï&íï%Eîuï!öîówîxï!ö�ï!öyîvï!ö�ï!öîï!öî.wï!öîÖ yî%³ï!ö�ï!öî&lï!öî)£wî.ï!ö�ï!öî.í yî6Aï!ö�ï!öî6ûï!öî:2wî>Ÿï!ö�ï!öï OîÆîÞyîUï O�ï Oîï Oî Ewî$²ï O�ï Oyî%šï O�ï Oî&mwï Oî+¥yî0ï O�ï Oî0€wî2!ï O�ï Oî3 �î4î�ï¨îî˜�î%î%� î,Ãî0Úî6Ø�yï�îwîï��ï�îmî!yî¶ï��ï�îowï�î#¤�ïYî'yî¤ïY�ïYî]ïYî•wïYî#†�î%ï±î'î"àyï î'wï î¼ î"Íî&) î,iïbî'ïºîïîuïÄîówîæïÄ�ïÄyîãïÄ�ïÄî‹wïÄî‹ î"hyî%ðïÄ�ïÄî&Äwî)ïÄ�ïÄyî)éïÄ�ïÄî*¼wïÄî/ôî4¼î7Öyî;_ïÄ�ïÄî<3wî>pïÄ�ïÄî?W�ïîÆ�ï uîyî{ï u�ï uî4ï uîlwï uî]�îêï Îîyî†ï Î�ï Îî?ï Îîwwï Îîh�îõ�������*��������TVm$������������������������������������������������������������������������������������������������������������������������������������������������������������2r:LONGSTRING_[80];AppendRope[f,fileName];ParseName[f,s,r];server_Rs[s];rest_Rs[r];};ParseName:PUBLICPROC[fileName,server,rest:LONGSTRING]={state:NAT_0;server.length_0;rest.length_0;FORi:NATIN[0..fileName.length)DOc:CHAR_fileName[i];charType:NAT_SELECTcFROM'[=>0,'/=>1,']=>2,'<=>3,'>=>4,'!=>5,IN['0..'9],IN['a..'z],IN['A..'Z]=>6,'-,'+,'$,'.,''=>6ENDCASE=>Error[expl:"Illegalcharacterinfilename",retryable:FALSE];SELECTstate*7+charTypeFROM0*7+0=>state_1;0*7+1=>state_7;1*7+6=>{server[server.length]_c;server.length_server.length+1};1*7+2=>state_2;2*7+3=>{state_3;rest[rest.length]_'<;rest.length_rest.length+1};3*7+6,3*7+4=>{rest[rest.length]_c;rest.length_rest.length+1};3*7+5=>{state_4;rest[rest.length]_c;rest.length_rest.length+1};4*7+6=>{rest[rest.length]_c;rest.length_rest.length+1;IFcIN['0..'9]THENstate_5ELSEIFc='lORc='LORc='hORc='HTHENstate_6ELSEstate_9};5*7+6=>{rest[rest.length]_c;rest.length_rest.length+1;IFcNOTIN['0..'9]THENstate_9};7*7+6=>{server[server.length]_c;server.length_server.length+1};7*7+1=>{state_8;rest[rest.length]_'<;rest.length_rest.length+1};7*8+6=>{rest[rest.length]_c;rest.length_rest.length+1};7*8+1=>{rest[rest.length]_'>;rest.length_rest.length+1};���qïg/îEÉ�wï_,îyî†ï_,�ï_,î?ï_,îwwï_,îh�îõï]…î î· ï[Ýî îzîÚïZ5îî�îžïXŽîî¥�î2ïVæîuïS—îówîÁïS—�ïS—yî¾ïS—�ïS—îfïS—îwwïS—î! î'Úî,?yî/YïS—�ïS—î0ïS—î3Jwî7·ïS—�ïS—î8ž�î:ƒ�ïQðîyî¯ïQð�ïQðî—wïQðî¨�î5ïPHî î�îªïN¡î î²�î?yïLùîwïLùîòyîSïLù�ïLùî;ïLùîLwïLùî#yî(lïLù�ïLùî)R�wïKRîyî®ïKR�ïKRîywïKRî‹�î ïIªîyî£ïIª�ïIªîŒwïIªîœ�yî )ïIª�ïIªî ÈwïIªî$ü�yî&ïIª�ïIªî&ÔwïHî'îfîüïF[î'î´îIïD´î'îfîüïC î'î´îIïAeî'î´îIï?½î'î}îyï>î'wï>îýyî`ï>�ï>îÊ�wï>î7yî#yï>�ï>î#â�wï>î%Oî)éî,~ï<nî'îÕîjîOîÛî î"¦�yï:Çî'wï:Çî)î¾ î&Ïî+¬î1•î3C î9ð yï9îúwî˜ï9�ï9îû�yï7xîwï7xîèyî%kï7x�ï7xî&$wï5Ðî'îÍîcî!”�î#!ï4)î'îÍîcî!”�î#!ï2�î'îÍîcî+{�î-î.  î6º�î8F ï0Úîú�îßï/2î'îÍîcî!”�î#!ï-‹î'îÍîcî"D�î#Ñî%î/�î0�î2£ î9Q�î:Þ ï+äîú�îßï*<î'ï(”î'îÍîcî(¤�î*1î+Ê î2w�î4 î:²�î<—ï&íî'îÍîcî"D�î#Ñî%î/�î0�î25 î8ã�î:p ï%Fîú�îßï#žî'îÍîc�ï!÷î8î"É�î$Vî%î î,œ�î.) î4×�î6¼yï Oî8wï Oîß�yîþï O�ï Oîh�wï OîÕyî!àï O�ï Oî"™wï Oî%¥î(Ö�î*c�yï¨î8ï¨î‡wï¨î.�îM�î!2yî"rï¨�ï¨î#N�wï¨î$¦�î%Æ�î'«yî)oï¨�ï¨î*K�wï¨î+£�î,Â�î.¨yî0Kï¨�ï¨î1'�wï¨î2€yî6xï¨�ï¨î71wï¨î:=î=n�î>û�yï�î8wï�î‡î¸�î!E�ïYî8ï±î'îÍîc�ï î8î"É�î$Vî%î î,œ�î.) î4×�î6¼yïbî8wïbîß�yîþïb�ïbîçïbîwïbî ×yî$âïb�ïbî%›wïbî(§î+Ø�î-e�ïºî8ïî'îÍîcî+{�î-î.  î6º�î8F ïlîú�îßïÄî'îÍîcî"D�î#Ñî%î/�î0�î2£ î9Q�î:Þ ïîú�îßï uî'îÍîcî(¤�î*1î+Ê î2w�î4 î:²�î<—ï Îî'îÍîcî(¤�î*1î,7 î2å�î4r î; �î=ÿ�������¡��������TVm$;��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������37*8+5=>{state_4;rest[rest.length]_c;rest.length_rest.length+1};ENDCASE=>Error[expl:"Illegalfilename",retryable:FALSE];ENDLOOP;SELECTstateFROM3,8=>{rest[rest.length]_'!;rest[rest.length+1]_'H;rest.length_rest.length+2};5,6=>NULL;ENDCASE=>Error[expl:"Illegalfilename",retryable:FALSE];};MyLookup:PROC[fileName,createDate,name,password:LONGSTRING]RETURNS[bytes:INT_0]={server:LONGSTRING_[80];rest:LONGSTRING_[80];stp:STP.Handle_STP.Create[];open:BOOL_FALSE;BEGINENABLEUNWIND=>{IFopenTHENstp.Close[!STP.Error=>TRUSTED{CONTINUE}];stp_stp.Destroy};expandedName:LONGSTRING_[80];success:BOOLEAN_FALSE;NoteFileProc:STP.NoteFileProcType=TRUSTED{fileInfo:STP.FileInfo_stp.GetFileInfo[];continue_no;success_TRUE;AppendRope[expandedName,file];bytes_fileInfo.size;createDate.length_0;AppendRope[createDate,fileInfo.create];};desiredProps:STP.DesiredProperties_ALL[FALSE];desiredProps[directory]_TRUE;desiredProps[nameBody]_TRUE;desiredProps[version]_TRUE;desiredProps[createDate]_TRUE;desiredProps[size]_TRUE;ParseName[fileName,server,rest];String.AppendChar[expandedName,'[];String.AppendString[expandedName,server];String.AppendChar[expandedName,']];[]_stp.Open[Rs[server]];open_TRUE;stp.Login[Rs[name],Rs[password]];stp.SetDesiredProperties[desiredProps];stp.Enumerate[Rs[rest],NoteFileProc];stp.Close[!STP.Error=>TRUSTED{CONTINUE}];stp_stp.Destroy;IFsuccessTHEN{String.Copy[to:fileName,from:expandedName]}ELSEError[expl:"Filenotfound",retryable:FALSE];END;���qïg/îEÉ�wï_,î'îÍîcî"D�î#Ñî%î/�î0�î25 î8ã�î:p ï]…îú�îßyï[Ýî'wï[Ýî)î¾ î&Ïî+¬ î2Z yî8™ï[Ý�ï[Ýî9Swî<7ï[Ý�ï[Ýî<›�yïZ6îwî·ïZ6�ïZ6yïXŽîwïXŽî×yîïXŽ�ïXŽîÁwïVçîî¢�î×îmî$®�î&;î( î3¬�î59î7¯ î>]�ïU?îè î–�î{ïS˜îî¢�î×yîmïS˜�ïS˜îUwî­ïS˜�ïS˜yïQðîwïQðîî­ î$¾î)› î0H yî6ˆïQð�ïQðî7Awî:&ïQð�ïQðî:‰�ïPIîuïLúîówîïLú�ïLúyî|ïLú�ïLúî$wïLúî# î"ß î*î.+yî4¢ïLú�ïLúî5[ïLúî8’wî<ÿïLú�ïLúyïKRîÆwïKRîÒyîBïKR�ïKRî¬wïKRîÒ�î _î!÷�î#Ü�ïI«îyîŠïI«�ïI«îCïI«î{wïI«î l�î!ùïHîyîïH�ïHîØïHîwïHî�î �ïF\îyî¼ïF\�ïF\î[wî¼ïF\�ïF\îîó�yî€ïF\�ïF\îwî €ïF\�ïF\î ØïD´îyîðïD´�ïD´î©wïD´î �yî-ïD´�ïD´îæwîËïD´�ïD´yïC îïC î;ïC î`wïC î"î$š�}ïAeîxïAeîÆ}îïAe�ïAeî¾xïAeîÏ î#ï�}î%ïAe�ïAeî%¾xî'1ïAe�ïAeî'‰î+=}î-ÓïAe�ïAeî.ŒxïAeî3À�}î4pïAe�ïAeî5;xî:¤ïAe�ïAeî;Uï?½îî?�î¬ wï>îï<nî yîgï<n�ï<nî ï<nî#Wwï<nî(H�î)Õï:ÇîyîBï:Ç�ï:Çîûwï:Çî g�yî!ôï:Ç�ï:Çî"­wî%’ï:Ç�ï:Çuï9î wîï9�ï9yîï9�ï9îµwî ï9�ï9î mî+ç�yî-Ìï9�ï9î.…wï9î3º�ï7xî'yî‰ï7x�ï7xî(wî‰ï7x�ï7xîàî$7�î%Äï5Ðî'îÍ�îZï4)î'îÚ�yîgï4)�ï4)î wî “ï4)�ï4)ï2�î'î)´ï0Úî'î»�îH ï/2î'î"�î#œï-Šî'î&·ï+ãî'ï*;î yî´ï*;�ï*;îSwî´ï*;�ï*;î î+*�yî,·ï*;�ï*;î-Šwî.ýï*;�yï*;î/`wî2þï*;�ï*;î3a�ï(”îî#O�yî$Ûï(”�ï(”î%•wî(ï(”�ï(”ï&ìîî$V�yî%ãï&ì�ï&ìî&œwî)ï&ì�ï&ìï%Eîî"E�yî#Ñï%E�ï%Eî$‹wî&ýï%E�ï%Eï#�îî$X�yî%åï#��ï#�î&žwî)ï#��ï#�ï!öîî (�yî!µï!ö�ï!öî"nwî$áï!ö�ï!öï Nîî"Žî&óï§îî+Lî,Œïÿîð!î+òïXîî+Lî,Œï°îî`�îíïîîˆ�yîï�ïîÎwîAï�ïïaîî!r ï¹îð'ïîî#Y ïjî îT�yîRïj�ïjîñwîRïj�ïjî©î"]yî$óïj�ïjî%¬wïjî*á�yî+‘ïj�ïjî,\wî1Ëïj�ïjî2|xïÃîî?�î¬ yïîwïî½yîpï�ïî)wïî6î)�î/æî3Æ yï tîwï tîd îuî"ýî%rî*ˆ yî0Çï t�ï tî1�wî4eï t�ï tî4É�yï Ìîwî�ï Ì�ï Ì�������§��������TVm$´����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������4};Read:PUBLICPROC[fileName:LONGSTRING,name,password:LONGSTRING,action:PROC[Stream.Handle]]={MyRead[fileName,name,password,action!STP.Error=>TRUSTED{expl:LONGSTRING_[80];AppendRope[expl,error];ERRORError[expl:expl,retryable:Retryable[code]]};];};MyRead:PROC[fileName:LONGSTRING,name,password:LONGSTRING,action:PROC[Stream.Handle]]={server:LONGSTRING_[80];rest:LONGSTRING_[80];stp:STP.Handle_STP.Create[];open:BOOL_FALSE;stream:Stream.Handle;BEGINENABLEUNWIND=>{IFopenTHENstp.Close[!STP.Error=>TRUSTED{CONTINUE}];stp_stp.DestroyIFstream#NILTHEN{stream.Delete;stream_NIL};};ParseName[fileName,server,rest];[]_stp.Open[Rs[server]];open_TRUE;stp.Login[Rs[name],Rs[password]];stream_Stream.FromIOStreams[stp.CreateRemoteStream[Rs[rest],read],NIL];action[stream];stp.Close[!STP.Error=>TRUSTED{CONTINUE}];stp_stp.Destroy;stream.Delete;stream_NILEND;};PeachLogCommand:Commander.CommandProc=TRUSTED{out_cmd.out;PDQueue.RegisterTTY[WriteLine];[]_PDQueue.SetLogState[TRUE];};out:IO.STREAM_NIL;WriteLine:PROC[line:LONGSTRING]~{out.PutRope[Rs[line]];out.PutRope["\n"];};Commander.Register["PeachLog",PeachLogCommand,""];���qïg/îEÉ�wï_,îuï[Ýîówî÷ï[Ý�ï[Ýyîõï[Ý�ï[Ýîœï[Ýî­wï[ÝîT yî$1ï[Ý�ï[Ýî$ëï[Ýî("wî,�ï[Ý�ï[Ýî-kî1ƒyî7úï[Ý�ï[Ýî8³ï[Ýî;ëwî@Wï[Ý�ï[ÝïZ6îÆyîXïZ6�ïZ6îÿwî{ïZ6�ïZ6îÞî$ �î%ï�ïXŽîîáî"ùî)Oî-g�yïVçîwîïVç�ïVçîmî!yî¶ïVç�ïVçîowïVçî#¤�ïU?î'yî¤ïU?�ïU?î]ïU?î•wïU?î#†�î%ïS˜î'î"àyïQðî'wïQðî¼ î"Íî&) î,iïPIî'ïN¡îïLúîuïIªîówîýïIª�ïIªyîûïIª�ïIªî£wïIªî¢ yî!ïIª�ïIªî"8ïIªî%pwî)ÝïIª�ïIªî*¹î.Ñyî5HïIª�ïIªî6ïIªî98wî=¥ïIª�ïIªïHîÆyîXïH�ïHîÿwî{ïH�ïHîÞî$ �î%ï�ïF\îyîŠïF\�ïF\îCïF\î{wïF\î l�î!ùïD´îyîïD´�ïD´îØïD´îwïD´î�î �ïC îyî¼ïC �ïC î[wî¼ïC �ïC îîó�yî€ïC �ïC îwî €ïC �ïC î ØïAeîyîðïAe�ïAeî©wïAeî �yî-ïAe�ïAeîæwîËïAe�ïAeï?¾îîî yï>îï>î;ï>î`wï>î"î$š�}ï<oîxï<oîÆ}îï<o�ï<oî¾xï<oîÏ î#ï�}î%ï<o�ï<oî%¾xî'1ï<o�ï<oî'‰î+=}î-Óï<o�ï<oî.Œxï<oî3À�}î4pï<o�ï<oî5;xî:¤ï<o�ï<oî;Uï:Çîî?�î¬ yï9îwï9î½î-�yîï9�ï9îûï9î¢wï9î#gî-:î1«�yî37ï9�ï9î4 wî5Cï9�ï9î5ó�ï7xîï5Ðîî"Žî&óï4)îî`�îíï2�îîˆ�yîï2��ï2�îÎwîAï2��ï2�ï0Úîî!r ï/2îî†�îð5î>yï-‹îèwîôï-‹�ï-‹îW�ï+äîï*<î îT�yîRï*<�ï*<îñwîRï*<�ï*<î©î"]yî$óï*<�ï*<î%¬wï*<î*á�yî+‘ï*<�ï*<î,\wî1Ëï*<�ï*<î2|xï(”îî?�î¬ wï&íî ï%Eîî†�yîï%E�ï%Eîûï#žîwî�ï#ž�ï#žï!öîuï§îówîÖï§�ï§îÓî/�yî0éï§�ï§î1¢wï§î6×�ï�îîz�îïXîï±îîO�îÜyî#‘ï±�ï±î$Jwî&½ï±�ï±î' �ï îïºîóyîâïº�ïºîLwïºî½�yîJïº�ïºî2wîUïº�ïºuïîówîï�ïyîï�ïîªwïîªyî=ï�ïîöïî#.wî'›ï�ïî(‚�î*�ïkîïÄîïîï Íîóî&î2òÿ�������S��������TVm$3������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������5END.���qïg/îEÉ�yï^—îówî{ï^—�ï^—ÿ����������������TVm$���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������PDStrikeFormat.mesaCopyright(C)1984,XeroxCorporation.Allrightsreserved.LastchangedbyDougWyatt,August23,19823:34pmLastchangedbyMichaelPlass,September19,19841:12:52pmPDTPDStrikeFormat:DEFINITIONS={Header:TYPE=MACHINEDEPENDENTRECORD[format(0):Format,min(1),max(2):CHARACTER,--minimum,maximumcharactercodesmaxwidth(3):CARDINAL--maximumspacingwidthofanycharacter];Flag:TYPE=MACHINEDEPENDENT{F(0),T(1)};Format:TYPE=MACHINEDEPENDENTRECORD[oneBit:Flag,--alwaysTindex:Flag,--Fforsimplestrike,Tforstrikeindexfixed:Flag,--Tifallcharactershavesamewidthkerned:Flag,--TifKerned,FifPlainunused:[0..7777B]--shouldbe0];BoundingBox:TYPE=MACHINEDEPENDENTRECORD[fbbox(0),fbboy(1):INTEGER,--boundingboxoffsetsfbbdx(2),fbbdy(3):INTEGER--boundingboxsize];Body:TYPE=MACHINEDEPENDENTRECORD[length(0):CARDINAL,--numberofwordsinstrikebodyascent(1),descent(2):INTEGER,--scanlinesaboveandbelowthebaselinexoffset(3):INTEGER,--always0(obsolete)raster(4):CARDINAL--numberofwordsperscanlineinthestrikefollowedbybitmap(raster*(ascent+descent)words)followedbyXTable(toendofbody)];WidthEntry:TYPE=MACHINEDEPENDENTRECORD[offset,width:[0..377B]];nullWidthEntry:WidthEntry=[377B,377B];XTable:TYPE=RECORD[SEQUENCECOMPUTEDCARDINALOFCARDINAL];WTable:TYPE=RECORD[SEQUENCECOMPUTEDCARDINALOFWidthEntry];PlainStrike:TYPE=MACHINEDEPENDENTRECORD[header:Header,--commontoallstrikefontsbody:Body];KernedStrike:TYPE=MACHINEDEPENDENTRECORD[header:Header,--commontoallstrikefontsbox:BoundingBox,--thefontboundingboxbody:Body--theactualstrike��xï_,îâï]„îâî/î¤îBîZ î'Åî* î-Úï[ÝîâîþîEîîÔî!Hî%èî(%î+kî.zïZ5îâîþîEîîaî"Aî(Ýî+î.`î3Iî5”wïVæîâyî³ïVæ�ïVæî™ wïVæî!Ó�î#¸�ïS—îâyî;ïS—�ïS—îôwïS—î­�yî’ïS—�ïS—î£ïS—î¸ïS—î'ewî,SïS—�ïS—ïQðîó î‹ïPHîó yîbïPH�ïPHî-wî!ŸïPH�ïPHxî"|ïPH�ïPHî"õ�î#óî*Sî0°î6›wïN¡îó yîqïN¡�ïN¡î<xïN¡î ,î!£î(î,×î0ƒî2&î4¿wïLùîóïIªîâyî€ïIª�ïIªî9wïIªîò�yî×ïIª�ïIªîèïIªîýwïIªî%ª�yî&ZïIª�wïIªî'yî)“ïIª�wïIªî*LïF[îâyîEïF[�ïF[îþwïF[î¶�yî›ïF[�ïF[î­ïF[îÁïF[î'nwî,\ïF[�ïF[ïD´îóîÒxîNïD´�ïD´îÈ�îÅî�wïC îóî7xî´ïC �ïC î.�î+�îŒî´î!äî%þ�î'jî)’î-TwïAeîóîêxîgïAe�ïAeîà�îÞ�îJî î› î% î(1î+›wï?½îóî xî†ï?½�ï?½îÿ�îý�îiî¿î"Í�î$-î%„wï>îóî6 xî‰ï>�ï>î�î�î"Fî$�wï<nîóï9îâ yîï9�ï9î½wï9îv�yî[ï9�ï9îlï9î#�ï9î+.wî0ï9�ï9ï7wîóîæyîúï7w�ï7wîcwî"9ï7w�ï7wxî#ï7w�ï7wî#��î$�î*pî-wï5Ðîóîñyîï5Ð�ï5Ðî{wï5Ðxî#Yï5Ð�ï5Ðî#Ó�î$Ðî*³î-_wï4(îóï0Ùîâyîúï0Ù�ï0Ùî³wï0Ùîk�yîPï0Ù�ï0Ùîbï0Ùîvï0Ùî&#wî+ï0Ù�ï0Ùï/2îó yîIï/2�ï/2îwî€ï/2�ï/2xî]ï/2�ï/2îÖ�îÔî$¹î&\î*1î+×î/™wï-Šîóyî•ï-Š�ï-Šîÿwî"Õï-Š�ï-Šxî#²ï-Š�ï-Šî$+�î%)î*ßî.ªî1Nî5î7dwï+ãîó yî‹ï+ã�ï+ãîõwîËï+ã�ï+ãxî§ï+ã�ï+ãî!�îî#x�î$¬ wï*;îó yîÚï*;�ï*;î¥xï*;î–î î#òî%•î)jî+¾î0ðî2–î4âï(”îóî@îî™î+°ï&ìîóî@îîâî�î!Žî#2wï%Eîóï!öîâ yîòï!ö�ï!öî«wï!öîc�yîHï!ö�ï!öîZï!öî"nï!öî*wî/ ï!ö�ï!öî/m î7f ï NîâîF î Ü�î"Á ïÿîâyîEïÿ�ïÿîþwïÿî·�yîœïÿ�ïÿîpwîŠïÿ�yïÿîíïÿî%±ïÿî,Óïÿî3Žïÿî5¨wî;ßïÿ�ïÿî<B�ïXîâyî�ïX�ïXîVwïXî�yîôïX�ïXîÇwîâïX�yïXîEïXî& ïXî-+ïXî3æwïXî6� ïîâ yîaï�ïîwïîÓ�yî¸ï�ïîÊïî!Þïî)‹wî.yï�ïïaîóîóxî+ïa�ïaî¥�î¢î" î#²î%­î)owï¹îóîêïîóïÃîâ yîÛïÃ�ïÃî”wïÃîM�yî2ïÃ�ïÃîCïÃî#WïÃî+wî/óïÃ�ïÃïîóîóxî+ï�ïî¥�î¢î" î#²î%­î)owï tîóî# xî%ï t�ï tîž�îœî èî#ºî)œwï Ìîóîêxî‰ï Ì�ï Ìî�î�îLî \ÿ�������Ð��������TVm$ù������������������������������������������������������������2followedbyWTable];}.���qïg/îEÉ�xï_,îóî@îwï]…îóïZ6îâÿ����������������TVm$� ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������PDTextBitmap.mesaCopyright(C)1984,XeroxCorporation.Allrightsreserved.MichaelPlass,September19,19849:12:44amPDTDIRECTORYPDInterpBitmap;PDTextBitmap:DEFINITIONS=BEGINSetFont:PROC[fontFileName:LONGSTRING,userName,password:LONGSTRING]RETURNS[ok:BOOLEAN];fontFileNameshouldbeafullfilenameofakernedstrike(ks)font;iffileisnotavalidksfile,okisfalse.MayraisePDRemoteStream.Error;Example:"[Indigo]<AltoFonts>TimesRoman18.ks"Warning:thismoduleisnotmonitored,soavoidchangingfontswhileothercallsarebeingmade.fontName:READONLYLONGSTRING;FontAscent:PROCRETURNS[INTEGER];FontDescent:PROCRETURNS[INTEGER];TextWidth:PROC[string:LONGSTRING,start:NAT_0,length:NAT_NAT.LAST]RETURNS[INTEGER];TextToBitmap:PROC[dest:PDInterpBitmap.BitmapDesc,string:LONGSTRING,start:NAT_0,length:NAT_NAT.LAST,function:PDInterpBitmap.Function];Putsthetextintothebitmap,assumingastrike-fontorientationofthecharacters(i.e.,thelineoftextrunsinthefastdirection).Thetextwillbeplacedsothefirstcharacterhasitsreferencepointattheoriginofthebitmap.Thetextwillbeclippedtothedestinationbounds.END.���xï_:îâï]“îâî/î¤îBîZ î'Åî* î-Úï[ëîâî$îî î Þî$$î) î+WyïX�îâwïX�îKïUNîâ yîÌïUN�ïUNî² wïUNî ì�yî"ÑïUN�ïUNî#ŠuïQÿîâwî©ïQÿ�ïQÿyî§ïQÿ�ïQÿîOwïQÿîN yî"ïQÿ�ïQÿî"½ïQÿî%ôwî*aïQÿ�ïQÿî+>î2&yî8�ïQÿ�ïQÿî9VïQÿî<Žwî@ûïQÿ�ïQÿyïPXîµwïPXîÁyî˜ïPX�ïPXîQwî8ïPX�ïPXî›�xïN±îó îxî¾î��î Âî#8î%Œî)0î*Ô�î,î0|î4?î7î:Lî;¢î=÷î?bïM îÆ�îûîAîî½î¹î$ïKbîóî"î]ïI»îóî ð$ïHîóîî¯îeîÑî"4 î(éî*¢î.5î4î7Yî:ãî>cïFlîÆîî»wïCîâyîáïC�ïCîµïCîýïCî îwî%ZïC�ïCuï?Ïîâ wî°ï?Ï�ï?Ïyî­ï?Ï�ï?ÏîUï?ÏîUwï?Ïî `�yî Ãï?Ï�ï?Ïî!-wî&ï?Ï�ï?Ïî&f�uï<€îâ wîvï<€�ï<€yîsï<€�ï<€îï<€îwï<€î!&�yî!‰ï<€�ï<€î!ówî&Éï<€�ï<€î',�uï91îâwîYï91�ï91yîVï91�ï91îþwï91îýyî°ï91�ï91îiï91î" wî' ï91�ï91î'êyî+sï91�ï91î,[wï91î.l�î/ùî1†yî69ï91�ï91î7!wï91î92�yî:¿ï91�ï91î;¨wî=4ï91�yï91î=Œwî@qï91�ï91yï7Šîµwï7ŠîÁ�yî$ï7Š�ï7Šî�wîdï7Š�ï7ŠîÇ�uï4;îâ wî¢ï4;�ï4;yî ï4;�ï4;îHwï4;îGî î2Yyî6©ï4;�ï4;î7bï4;î:™wî?ï4;�ï4;ï2”îµyî>ï2”�ï2”î'wï2”î7�îÄîQyîï2”�ï2”îíwï2”î þ�yî"Šï2”�ï2”î#swî%�ï2”�yï2”î%Wwî(<ï2”�ï2”î)î/ xï0íîóîî\î#îéî5î# î(î�î*# î0¬ î7„î9(î;t ï/EîÆîÊîîºî^î$î!,î"Òî%î'¶ î. î1cî4*î6¿î8�î<½î>vï-žîÆî•î€îöîÒî$’î( î)®î+úî/èî1Œî3Øî93î;öî>½ï+÷îÆî–î'îÌî î"ðyï(¨îâwîiï(¨�ï(¨���������������TVm$³����������������������������������������������������������������������������������������������������������������������������������PDTextBitmapImpl.mesaCopyright(C)1984,XeroxCorporation.Allrightsreserved.MichaelPlass,September26,19845:33:47pmPDTDIRECTORYEnvironment,PDInterpBitmap,PDInterpSysCalls,PDTextBitmap,Stream,PDStrikeFormat,PDRemoteStream,Inline,String;PDTextBitmapImpl:PROGRAMIMPORTSPDInterpBitmap,PDInterpSysCalls,PDRemoteStream,Stream,Inline,StringEXPORTSPDTextBitmap=BEGINfontName:PUBLICLONGSTRING_[120];bc:CHAR=';ec:CHAR='~;charBitmap:ARRAYCHAR[bc..ec]OFPDInterpBitmap.BitmapDesc;charWidth:ARRAYCHAR[bc..ec]OFINTEGER;fontAscent:INTEGER_0;fontDescent:INTEGER_0;ksFontBuffer:LONGPOINTER_NIL;bytesPerWord:NAT=Environment.bytesPerWord;nilBitmap:PDInterpBitmap.BitmapDesc=[sOrigin:0,fOrigin:0,sMin:0,fMin:0,sSize:0,fSize:0,pointer:NIL,rast:0,lines:0];BadFont:ERROR=CODE;SetFont:PUBLICPROC[fontFileName:LONGSTRING,userName,password:LONGSTRING]RETURNS[ok:BOOLEAN_FALSE]={cr:LONGSTRING_[40];nameCopy:LONGSTRING_[120];NameCopy:PROCRETURNS[LONGSTRING]={String.Copy[nameCopy,fontFileName];RETURN[nameCopy]};bytes:INT_PDRemoteStream.Lookup[NameCopy[],cr,userName,password];newBuffer:LONGPOINTER_NIL;bytesRead:INT_0;readFile:PROC[stream:Stream.Handle]={bytesRead_Stream.GetBlock[stream,[blockPointer:newBuffer,startIndex:0,stopIndexPlusOne:bytes]].bytesTransferred;};IFksFontBuffer#NILTHEN{FORc:CHARIN[bc..ec]DOcharBitmap[c]_nilBitmap;charWidth[c]_0���xï_,îâï]„îâî/î¤îBîZ î'Åî* î-Úï[Ýîâî$îî î Þî$$î) î+WyïXŽîâwïXŽîK îôî)»î5 ïVçîµîÀîpî+î/mïS˜îâyî¤ïS˜�ïS˜îLïQðîówïQðî£î!jî,Ëî8oî=zïPIîÆyïN¡îówïN¡îµ î %�yî" ïN¡�ïN¡î"ÄwïKRîâyîáïKR�ïKRî‰ïKRî™ïKRîŠwïKRî#{�î%ïI«îâyîAïI«�ïI«î wïI«î�î�îà�ïHîâyî ïH�ïHîëwïHîý�îâïF\îâ yî»ïF\�ïF\îŽïF\îawîºïF\�ïF\îyî#UïF\�ïF\î$2�wïF\î%oïD´îâ yî,ïD´�ïD´îÿïD´îÒwî+ïD´�ïD´îŽyî"ÆïD´�ïD´î#£�ïD´î$àwî* ïD´�ïD´ïC îâ yîLïC �ïC î¶wïC î�î�ïAeîâ yîïAe�ïAeîrwïAeîÍ�îYï?¾îâ yîÂï?¾�ï?¾î{ï?¾î³wï?¾î!T�yî"áï?¾�ï?¾î#Éwî$ìï?¾�ï?¾ï>îâ yîRï>�ï>î;wï>îL�î1ï<oîâ î¼î'¶�î)›�ï:ÇîóîJï9îóî?ï7xîóîõï5Ðîóîêï4)îóîßï2�îóîÔï0Úîóyî5ï0Ú�ï0ÚîwîAï0Ú�ï0Úï/2îóîï-‹îóî§�ï+ãîóï(”îâyî ï(”�ï(”îÅwï(”î¡�yî†ï(”�ï(”îQwîÍï(”�ï(”uï%Eîâwî©ï%E�ï%Eyî§ï%E�ï%EîOï%Eî_wï%Eî yî&¼ï%E�ï%Eî'uï%Eî*­wî/ï%E�ï%Eî/öî6ßyî=Vï%E�ï%Eî>ï#žîµwî"ï#ž�ï#žyî ï#ž�ï#žîÝwï#žîyîìï#ž�ï#žî¥wï#žî$�yî%žï#ž�ï#žî&Wwî)<ï#ž�ï#žî*#�î,�ï!öîóyîï!ö�ï!öîÉï!öîwï!öîò�îï Oîóyî\ï O�ï Oîï OîMwï Oî!>�î"Ëuï§îówîtï§�ï§yîrï§�ï§îï§îwï§î"%�yî"ˆï§�ï§î#Aï§î&xwî*åï§�ï§î+Í�î-²�ï�îî!Ì yïXîwïXîq ï±îï îóyîï �ï îkwï î��îð!î1±î3¬î:• ïbîó yî%ïb�ïbîßïbîwïbî!·�yî#Dïb�ïbî$,wî%Oïb�ïbïºîó yîïº�ïºî…wïºî«�î8ïîóyîÚï�ïî‚wîýï�ïî`îJ î)�î*ø�ïkîî³�î@î*Œ î3x î:‰ ïÄî×îdî!>ïîyï uîówï uîš î�yîæï u�ï uîÏï uîvwï uî#<�yï Íîwï Íîòyî‹ï Í�ï ÍîVï Íîgwï Íî>yî!Úï Í�ï Íî"À�wï Íî$ î,á�î.n î5H î=y�î?�ÿ�������'��������TVm$D������������������������������������������������������������������������������2ENDLOOP;PDInterpSysCalls.FreeSpace[ksFontBuffer];fontAscent_fontDescent_0;ksFontBuffer_NIL};fontName.length_0;newBuffer_PDInterpSysCalls.AllocateSpace[(bytes+bytesPerWord-1)/bytesPerWord];PDRemoteStream.Read[fontFileName,userName,password,readFile];IFbytesRead#bytesTHEN{PDInterpSysCalls.FreeSpace[newBuffer];RETURN[FALSE]};ok_TRUE;ParseFont[fontFileName,newBuffer,bytes!BadFont=>{ok_FALSE;CONTINUE};];IFokTHEN{ksFontBuffer_newBuffer;}ELSE{FORc:CHARIN[bc..ec]DOcharBitmap[c]_nilBitmap;charWidth[c]_0ENDLOOP;PDInterpSysCalls.FreeSpace[newBuffer];fontAscent_fontDescent_0;String.Copy[to:fontName,from:fontFileName];};};ParseFont:PUBLICPROC[fontFileName:LONGSTRING,buffer:LONGPOINTER,bytes:INT]={wordIndex:INT_0;ReadBlock:PROC[dest:LONGPOINTER,words:CARDINAL,wordOffset:INT_-1]={IFwordOffset>=0THENwordIndex_wordOffset;Inline.LongCOPY[from:buffer+wordIndex,nwords:words,to:dest];wordIndex_wordIndex+words;};strike:PDInterpBitmap.BitmapDesc_nilBitmap;defaultCharBitmap:PDInterpBitmap.BitmapDesc_nilBitmap;defaultCharWidth:INTEGER_0;header:PDStrikeFormat.Header;ReadBlock[@header,SIZE[PDStrikeFormat.Header],0];IFheader.format.oneBit#TTHENERRORBadFont;IFheader.format.index#FTHENERRORBadFont;IFheader.format.unused#0THENERRORBadFont;IFheader.format.kerned=TTHEN{boundingBox:PDStrikeFormat.BoundingBox;body:PDStrikeFormat.Body;xInSegment,prevXInSegment:CARDINAL;xInSegmentOffset:INT;widthEntryOffset:INT;���qïg/îEÉ�yï_eî×wîxï_e�ï_eï]¾îð)ï\î îõ�î‚ î#/�î$¼ïZnî îk�yîøïZn�ïZnîáwïXÇîïWîóî†�îïUxîóî¬�ïSÐîÆðDïR)îóð!î(Áî/ªî5ÿ yïP�îówïP�îšîI�î.yîÃïP��ïP�î|wïP�î"ˆ�ïNÚîð&yïM2îwïM2îq�yîÔïM2�ïM2î�wîrïM2�ïM2ïKŠîïIãîóîî�yî{ïIã�ïIãî4wî§ïIã�ïIãïH;îóî „ î'–xïF”î�î#î·îMîù�}î fïF”�ïF”î!xî$ïF”�ïF”}î%ïF”�ïF”î%ßxî+HïF”�ïF”î+ù�wïDìîyïCDîówïCDîšyî•ïCD�ïCDîOwïCDî[�ïA�î îk�îø ï?õî�yï>Nîówï>NîB�yï<¦îwï<¦îòyî‹ï<¦�ï<¦îVï<¦îgwï<¦î>yî!Úï<¦�ï<¦î"À�wï<¦î$ î,á�î.n î5H î=y�î?�yï:ÿî×wîxï:ÿ�ï:ÿï9Wîð&ï7°î îõ�î‚ î#/�î$¼ï6îî«î#‰î'i ï4`îï2¹îóuï/jîâwîÿï/j�ï/jyîýï/j�ï/jî¤ï/jîµwï/jî\ yî(ï/j�ï/jî(Ëï/jî,wî0oï/j�ï/jî1Kyî5óï/j�ï/jî6­ï/jî9äwî?ï/j�ï/jï-ÂîµyîÂï-Â�ï-Âî,wîÎï-Â�ï-Âîµ�îš�ï,îó yî]ï,�ï,îÇwï,îí�îyuï*sîówîiï*s�ï*syîgï*s�ï*sîwï*sîyîÎï*s�ï*sî ˆï*sî#¿wî(Üï*s�ï*sî)¸yî.>ï*s�ï*sî/ wî4uï*s�ï*sî5R yî<òï*s�ï*sî=\wï*sî?‚�ï(ÌîÆî×�î¼�yï'$îwï'$î¬ îÓîh�yî�ï'$�ï'$î Vwï'$î#bî*S�î+à ï%}îî"!î.uî3Âî8'î:Nï#Õîîõ�î�î"r�î$Wï"-îï †îóî,î'&�î(³ ïÞîóîSî/L�î0Ù ï7îóyîÄï7�ï7î.wï7î"ˆ�î$ï�îóîóïçîóyî ïç�ïçî¬wî ˆïç�ïçî ëî0²yï@îówï@îšî¨�yî!�ï@�wï@yî"Êï@�ï@î#„ï@î&�wï@î+&yï˜îówï˜îšî�yî óï˜�wï˜yî"0ï˜�ï˜î"éï˜î%öwï˜î*‹yïñîówïñîšî �î!ò�yî#&ïñ�ïñî#ßïñî&ìwïñî+�yïIîówïIîšîß�yî!ÄïI�wïIyî#ïI�ïIî#»wïIî&Ç�ï¡î îïúîîüïRî îþyî&ïR�ïRî&Üwî,HïR�ïRï «îyî½ï «�ï «î'wî Éï «�ï «ï îyîPï �ï îºwî [ï �ï �������w��������TVm$������������������������������������������������������������������������3widthEntry:PDStrikeFormat.WidthEntry;bodyOffset:INT;ReadBlock[@boundingBox,SIZE[PDStrikeFormat.BoundingBox]];bodyOffset_wordIndex;ReadBlock[@body,SIZE[PDStrikeFormat.Body]];fontAscent_body.ascent;fontDescent_body.descent;strike_[sOrigin:-body.ascent,fOrigin:0,sMin:0,fMin:0,sSize:body.ascent+body.descent,fSize:body.raster*Environment.bitsPerWord,pointer:buffer+wordIndex,rast:body.raster,lines:body.ascent+body.descent];wordIndex_wordIndex+strike.rast*strike.lines;widthEntryOffset_wordIndex+(header.max-header.min+3)*SIZE[CARDINAL];IFwidthEntryOffset#bodyOffset+body.lengthTHENERRORBadFont;ReadBlock[@prevXInSegment,SIZE[CARDINAL]];xInSegmentOffset_wordIndex;FORchar:CHARIN[header.min..header.max]DOcharPixels:PDInterpBitmap.BitmapDesc_strike;ReadBlock[@xInSegment,SIZE[CARDINAL],xInSegmentOffset];xInSegmentOffset_xInSegmentOffset+SIZE[CARDINAL];ReadBlock[@widthEntry,SIZE[PDStrikeFormat.WidthEntry],widthEntryOffset];widthEntryOffset_widthEntryOffset+SIZE[PDStrikeFormat.WidthEntry];IFwidthEntry#PDStrikeFormat.nullWidthEntryTHEN{IFwidthEntry.width>header.maxwidthTHENERRORBadFont;charPixels.fOrigin_widthEntry.offset+boundingBox.fbbox-prevXInSegment;charPixels.fMin_prevXInSegment;charPixels.fSize_xInSegment-prevXInSegment;IFcharIN[bc..ec]THEN{charBitmap[char]_charPixels;charWidth[char]_widthEntry.width;};};prevXInSegment_xInSegment;ENDLOOP;ReadBlock[@xInSegment,SIZE[CARDINAL],xInSegmentOffset];xInSegmentOffset_xInSegmentOffset+SIZE[CARDINAL];ReadBlock[@widthEntry,SIZE[PDStrikeFormat.WidthEntry],widthEntryOffset];widthEntryOffset_widthEntryOffset+SIZE[PDStrikeFormat.WidthEntry];IFwidthEntry#PDStrikeFormat.nullWidthEntryTHEN{strike.fOrigin_widthEntry.offset+boundingBox.fbbox-prevXInSegment;���qïg/îEÉ�wï_,î î±ï]…î yîšï]…�ï]…îwî¦ï]…�ï]…ï[Ýîyî$ ï[Ý�ï[Ýî$¿wî&›ï[Ý�ï[Ýî&þïZ5î î!�î® ïXŽîyîïXŽ�ïXŽî´wî!‘ïXŽ�ïXŽî!ôïVæî îõ�î‚ ïU?î î±�î> ïS—îîÄ�îQ�ïQðîîm ïPHîîbïN¡îîïLùîî ïKRîîïIªîîöð$ïHîîXïF[îî0 ïD´îîÊïC îïAeîîõ�î�î"r�î$Wï?½îîÖ�ï>î×ð$yî-Yï>�ï>î-øwî/Ôï>�yï>î07wî6nï>�ï>î6Ñ�yï<nîwï<nî¬î~�î!c î(�î*d yî1ïï<n�ï<nî2¨ï<nî5µwï<nî:Jï:Çîyî&2ï:Ç�ï:Çî&Ñwî(­ï:Ç�yï:Çî)wî/Gï:Ç�ï:Çî/ªï9îîD�îÑ yï7xîwï7xîòyî{ï7x�ï7xîFï7xîXwï7xî/yî.°ï7x�ï7xî/•�wï5Ðî îî. �î/—ï4)îyî%Iï4)�ï4)î%éwî'Åï4)�yï4)î((wî._ï4)�ï4)î.Â�î/žï2�îî U�î!âî-"�yî/ï2��ï2�î/¦wî1‚ï2��yï2�î1åwî8ï2��ï2�î8�ï0Úîyî$Üï0Ú�ï0Úî%{wî'Wï0Ú�ï0Úî'ºï/2îèï-‹îîè�î!tî,F�yï+äîèwîdï+ä�ï+äîÇyï*<îwï*<î½ îð�îÕyî3êï*<�ï*<î4¤wï*<î7°�yï(•î'wï(•îÎî#¶�î$ëyî/¦ï(•�ï(•î0_ï(•î3lwï(•î8ï&íî'î"N�ï%Fîúð3ï#žî'î ù�î"†ï!÷î'î ã�î"pyï Oî'wï OîÎyîÞï O�ï OîH�wï Oî´yî"Pï O�ï Oî# wï Oî&�ï¨î8î#é�î%v ï�î8î#Z�î$çïYî8ï±î'ï î î°�î!= yïbîwî·ïb�ïbïºîyî#8ïº�ïºî#×wî%´ïº�yïºî&wî,Nïº�ïºî,±�î-�ïîîD�îÑî+�yî,öï�ïî-•wî/qï�yïî/Ôwî6 ï�ïî6n�ïkîyî"Ëïk�ïkî#jwî%Fïk�ïkî%©ïÄî×ïîîÖ�îcî*5�yî,ï�ïî,¹wî.–ï�ïî.ùyï uîwï uî¬ îß�îÄyî1Ùï u�ï uî2’wï uî5Ÿ�ï Îî î{�îð3ÿ�������©��������TVm$¹��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������4strike.fMin_prevXInSegment;strike.fSize_xInSegment-prevXInSegment;defaultCharBitmap_strike;defaultCharWidth_widthEntry.width;}ELSEERRORBadFont;}ELSEERRORBadFont;FORchar:CHARIN[bc..ec]DOIFcharBitmap[char].pointer=NILTHEN{charBitmap[char]_defaultCharBitmap;charWidth[char]_defaultCharWidth;};ENDLOOP;IFwordIndex*bytesPerWord#bytesTHENERRORBadFont;};FontAscent:PUBLICPROCRETURNS[INTEGER]={RETURN[fontAscent]};FontDescent:PUBLICPROCRETURNS[INTEGER]={RETURN[fontDescent]};TextWidth:PUBLICPROC[string:LONGSTRING,start:NAT_0,length:NAT_NAT.LAST]RETURNS[textWidth:INTEGER]={textWidth_0;FORi:NATIN[start..start+length)DOIFi>=string.lengthTHENEXITELSE{char:CHAR_string[i];IFcharIN[bc..ec]THENtextWidth_textWidth+charWidth[char];};ENDLOOP;};TextToBitmap:PUBLICPROC[dest:PDInterpBitmap.BitmapDesc,string:LONGSTRING,start:NAT_0,length:NAT_NAT.LAST,function:PDInterpBitmap.Function]={w:INTEGER_0;FORi:NATIN[start..start+length)DOIFi>=string.lengthTHENEXITELSE{char:CHAR_string[i];IFcharIN[bc..ec]THEN{bitmap:PDInterpBitmap.BitmapDesc_charBitmap[char];bitmap.fOrigin_bitmap.fOrigin+w;PDInterpBitmap.Transfer[dest,bitmap,function];w_w+charWidth[char];};};ENDLOOP;};END.��qïg/îEÉ�wï_,î î%�î²ï]„î î�îœï[Ýîî ü�î"‰ïZ5îî m�î!úïXŽî�yïVæîïVæîSwïVæîéïU>î�yïS—îóïS—îBwïS—îØyïQïîówïQïîáyîjïQï�ïQïî5ïQïîGwïQïîyî!¹ïQï�ïQïî"Ÿ�ïPHîwïPHî¬î#ù�yî%ÞïPH�ïPHî&ÆïPHî(nwïPHî,3�ïN îîÇ�î!TïLùîî8�î ÅïKQîyïI©îwî¥ïI©�ïI©yïHîówïHîšî"®�î$“yî('ïH�ïHî(àïHî+ìwïHî0‚ïFZîóuïC îâ wî°ïC �ïC yî­ïC �ïC îUïC îfïC î wïC î%�yî%|ïC �ïC î%æwî*¼ïC �ïC î+£�î-ˆ�yî.9ïC �ïC î/ wïC î3¥ uï?¼îâ wîvï?¼�ï?¼yîsï?¼�ï?¼îï?¼î,ï?¼îÓwï?¼î%Þ�yî&Bï?¼�ï?¼î&«wî+‚ï?¼�ï?¼î,i�î.N�yî.þï?¼�ï?¼î/Òwï?¼î4kuï<mîâwîYï<m�ï<myîVï<m�ï<mîþï<mîwï<mî¶yî#hï<m�ï<mî$!ï<mî'Ywî+Åï<m�ï<mî,¢yî0+ï<m�ï<mî1wï<mî3%�î4±î6>yî:ñï<m�ï<mî;Úwï<mî=ë�yï:Åîµwî*ï:Å�yï:Åî�wîfï:Å�ï:ÅyîNï:Å�ï:Åî"wï:ÅîY yî#®ï:Å�ï:Åî$wî(îï:Å�ï:Åî)Õ�î+»�ï9îóîk�îøyï7vîówï7vîáyîBï7v�ï7vî*ï7vî;wï7vîyî&Oï7v�ï7vî'5�ï5Ïîwï5Ïî¬�î“î( yî ï5Ï�ï5Ïî Äï5Ïî#Ðï4'îwï4'îS�ï2îyîŸï2�ï2îjwï2î|�î yï0Øîwï0Øî½yîÍï0Ø�ï0Øî6�wï0Øî£yî ?ï0Ø�ï0Øî øwï0Øî$î*}�î, î2‚�î4gï/0îyï-‰îwî¥ï-‰�ï-‰ï+áîóuï(’îâ wî¢ï(’�ï(’yî ï(’�ï(’îHï(’îYwï(’î!�î$Àî7yî;aï(’�ï(’î<ï&êîµwî"ï&ê�ï&êîþyî‡ï&ê�ï&êîpwï&êî��îî›yî#Nï&ê�ï&êî$6wï&êî&G�yî'Ôï&ê�ï&êî(¼wî*Iï&ê�yï&êî* wî-…ï&ê�ï&êî.bï%Cîµî B�î"'�ï#›îóyîîï#›�ï#›îXwï#›î³�î@yï!ôîówï!ôîáyîBï!ô�ï!ôî*ï!ôî;wï!ôîyî&Oï!ô�ï!ôî'5�ï Lîwï Lî¬�î“î( yî ï L�ï Lî Äï Lî#Ðï¥îwï¥îS�ïýîyîŸïý�ïýîjwïýî|�î yïVîwïVî½yîÍïV�ïVî6�wïVî£yî ?ïV�ïVî øwïVî$�ï®î'îSî.M�î/Úïî' î €�î" î+f�î-Kï_î'î*î/ ï·î'�î©�î5�î·�îœïî'ïhîyïÀîwî¥ïÀ�ïÀïîóyï Êîâwîiï Ê�ï Ê�������‚��������TVm$[������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������PDUser.mesaCopyright(C)1984,XeroxCorporation.Allrightsreserved.MichaelPlass,September4,19841:58:46pmPDTDIRECTORYStreamUSING[Handle];PDUser:DEFINITIONS=BEGINThismoduleprovidesachat-styleuserinterfacetothepeachprinter.Normallyoneinstanceofthiswillberunningontheprinter'stty,andaninstancewillexistforeachopenChatconnection.Thismodule,however,doesnotcreateanyinstances.TalkWithUser:PROC[stream:Stream.Handle];Exitswhenuserquitsortheconnectionisbroken.Assumesabi-directionalstream.END.��xï_:îâ ï]“îâî/î¤îBîZ î'Åî* î-Úï[ëîâî$îî î -î#sî(\î*§yïX�îâwïX�îKyîþïX��ïX�îãwïX�îGïUNîâyî�ïUN�ïUNîƒ wïUNî½�yî¢ïUN�ïUNî[xïS§îóîî¹îð�î$ î%2î(î-¡î/Fî1’î5iî:°ïQÿîÆîTî“î7îÏî dî"4î'Hî);î+‡î0Îî30î5Ôî7Çî=ïPXîÆîî,îSî‘î ð î(‘î+¡î0¯î65î99î;�ïN±îÆî_ uïKbîó wî{ïKb�ïKbyîyïKb�ïKbî wïKbî î#mxïI»îîšîîî Jî"î$O î+î,ïHîî��îµ î!êyïDÅîówî{ïDÅ�ïDÅÿ�������à��������TVm$�ô������������������������������������������������������PDUserImpl.mesaCopyright(C)1984,XeroxCorporation.Allrightsreserved.MichaelPlass,September27,19849:33:14amPDTDIRECTORYPDQueue,PDUser,Process,Stream,Time,PDRemoteStream,NameInfoDefs,String;PDUserImpl:PROGRAMIMPORTSPDQueue,Process,Stream,Time,PDRemoteStream,NameInfoDefs,StringEXPORTSPDUser=BEGINhelloMsg:LONGSTRING_"PeachPDPrintServer";CommandCode:TYPE={login,cancel,check,help,listQueue,messages,print,reprint,resetQueue,setLoginMessage,start,stop,wait,quit,ambiguous,illegal};commandTable:ARRAYCommandCode[login..quit]OFLONGSTRING_[login:"Login",cancel:"Cancel",check:"Check",help:"Help",listQueue:"ListQueue",messages:"Messages",print:"Print",reprint:"Reprint",resetQueue:"ResetQueue",setLoginMessage:"SetLoginMessage",start:"Start",stop:"Stop",wait:"Wait",quit:"Quit"];Upper:PROC[ch:CHAR]RETURNS[CHAR]=INLINE{RETURN[IFchIN['a..'z]THENch-('a-'A)ELSEch]};defaultRegistry:LONGSTRING_".pa"L;loginMessage:LONGSTRING_[160];TalkWithUser:PUBLICPROC[stream:Stream.Handle]={ENABLEStream.EndOfStream,Stream.TimeOut=>GOTOQuit;command:LONGSTRING_[80];user:LONGSTRING_[80];password:LONGSTRING_[80];account:LONGSTRING_[80];loggedIn:BOOLEAN_FALSE;quitting:BOOLEAN_FALSE;��xï_,îâï]„îâî/î¤îBîZ î'Åî* î-Úï[Ýîâî$îî î Þî$$î) î+WyïXŽîâwïXŽîKîî"žî'Õî,àî0ÖïVçîµ îkïS˜îâ yîuïS˜�ïS˜îïQðîówïQðî£î]î"“î'žî+•î78 ïPIîÆyïN¡îówïN¡îµïLúîó�yîØïLú�ïLúî‘wïI«îóyîiïI«�ïI«î"ïI«îZwïI«î K�î!Øî&‹î)�î,sïF\îó yîVïF\�ïF\îwïF\îÇ�î ¬î%2î)¹î-óî1f î7èî>ïD´îÆî° î;î),î,”î/æî38î6t ïC îÆï?¾îó yî*ï?¾�ï?¾îýwï?¾îÐyî0‡ï?¾�ï?¾î1d�ï?¾î2¡ï?¾î6’wï?¾î;ƒ�î=�ï>îîûï<oîî¬ï:Çîî_ï9 îî˜ï7xî î¨ ï5ÑîîY ï4)îîæï2‚îî ï0Úî î± ï/3îîï-‹îîŽï+äîîwï*<îîwï(•îîbï&íîuï#žîówî‘ï#ž�ï#žyî�ï#ž�ï#žî6wï#žî6yîùï#ž�ï#žîÄwîQï#ž�ï#žyî 9ï#ž�ï#žî! wï#žî&D�yî&§ï#ž�ï#žî'rwî*�ï#ž�ï#žî*ç�yî,Ìï#ž�ï#žî-6wï#žî1h�yï!÷îwï!÷îq�yîÔï!÷�ï!÷î>�wï!÷î{yîaï!÷�ï!÷îË�wï!÷î8yî""ï!÷�ï!÷î"Ûwï!÷î%çî'Í�î(Ëî*Æ�î+Äyî."ï!÷�ï!÷î.Ûwï!÷î1qï Oîï�îóyîÿï��ï�î¸ï�îïwï�î#à�î%mï±îó yîéï±�ï±î¢ï±îÙwï±î"Ê�î$Wuïbîó wî{ïb�ïbyîyïb�ïbî ïbî1wïbî"Øî(% î1î�î3Ó�yïºîwïºî)î%¼ î0*yî2¿ïº�ïºî3­wïºî6¤ïîyîßï�ïî˜ïîÏwïî"À�î$Mïkîyîwïk�ïkî0ïkîhwïkîY�î æïÄîyî{ïÄ�ïÄî4ïÄîlwïÄî"]�î#êïîyî•ï�ïîNïî…wïî!w�î#ï uîyî9ï u�ï uîòwï uî]�yî êï u�ï uî!£wî$ˆï u�ï uï Íîyî«ï Í�ï Íîdwï ÍîÏ�yî \ï Í�ï Íî!wî#úï Í�ï Í�������„��������TVm$±������������������������2accessAllowed:BOOLEAN_TRUE;echo:BOOLEAN_TRUE;flushed:BOOLEAN_FALSE;commandCode:CommandCode;lastRequest:INT_-1;PutChar:PROC[char:CHAR]={Stream.PutChar[stream,char];flushed_FALSE;};PutString:PROC[string:LONGSTRING]={Stream.PutString[stream,string];flushed_FALSE;};PutLine:PROC={PutChar['\n];PutChar['\012];};PutOK:PROC={PutLine[];PutChar['o];PutChar['k];PutLine[];};PutXXX:PROC={PutChar['];PutChar['X];PutChar['X];PutChar['X];PutLine[];};sep:CHAR_';DelHit:ERROR=CODE;SendNow:PROC={Stream.SendNow[stream];flushed_TRUE};GetChar:PROCRETURNS[CHAR]={c:CHAR;ignore:INT_0;IFNOTflushedTHENSendNow[];WHILEignore>=0DOmark:NAT_0;timingMark:NAT=5;timingMarkReply:NAT=6;dataMark:NAT=1;c_Stream.GetChar[stream!Stream.SSTChange=>{mark_sst;CONTINUE};];SELECTmarkFROM0=>NULL;dataMark=>{ignore_1};timingMark=>{ignore_1;Stream.SetSST[stream,timingMarkReply]};ENDCASE=>ignore_2;ignore_ignore-1;���qïg/îEÉ�wï_,î yîï_,�ï_,î8wï_,î"¤�yî$0ï_,�ï_,î$êwî'\ï_,�ï_,ï]…îyîÅï]…�ï]…î~wï]…îé�yîvï]…�ï]…î/wî!¢ï]…�ï]…ï[Ýîyî]ï[Ý�ï[Ýîwï[Ýî‚�yî ï[Ý�ï[Ýî Èwî#¬ï[Ý�ï[ÝïZ5î î ïXŽî yîÒïXŽ�ïXŽî<wïXŽîb�îïuïVæîwîïVæ�ïVæyîïVæ�ïVæî©wïVæî¨yî •ïVæ�ïVæî!`wî#íïVæ�ïVæî$Õ�î&º�ïU?îî#½ïS—îîõ�yî‚ïS—�ïS—î;wî ïS—�ïS—ïQðîuïPHîwîÉïPH�ïPHyîÇïPH�ïPHînwïPHînyî" ïPH�ïPHî"ÙïPHî&wî*~ïPH�ïPHî+e�î-J�ïN¡îî$cïLùîîõ�yî‚ïLù�ïLùî;wî ïLù�ïLùïKRîuïIªîwîËïIª�ïIªyîÉïIª�ïIªîqwïIªîp�îU�ïHî ïF[îïD´îuïC îwî?ïC �ïC yî=ïC �ïC îäwïC îä�îÉ�ïAeî ï?½î ï>î ï<nî ï:Çîuï9îwîï9�ï9yîï9�ï9î¿wï9î¾�î£�ï7xîîKï5Ðî ï4)î ï2�î ï0Úî ï/2îï-‹îyîóï-‹�ï-‹î¾wï-‹îÐ�î\�î9�ï+ãîyîï+ã�ï+ãîÕwï+ãî±�yî–ï+ã�ï+ãîawî!Üï+ã�ï+ãuï*<îwî¨ï*<�ï*<yî¦ï*<�ï*<îMwï*<îM�î2î/îî4Í�yî6Zï*<�ï*<î7wî9†ï*<�ï*<î:6�uï(”îwîï(”�ï(”yîï(”�ï(”î¿ï(”î¿wï(”î"Ê�yî#-ï(”�ï(”î#øwî&†ï(”�ï(”î'm�î)R�ï&ìîyî®ï&ì�ï&ìîywîï&ì�ï&ìï%EîyîÒï%E�ï%Eî<wï%Eîb�îïyï#�îï#�î½wï#�î¿yîŸï#��ï#�îXwï#�î"d yï!öîwï!öîvîºî O�yî!„ï!ö�ï!öî"j�wï Nî'yî3ï N�ï Nîwï Nî,�î¹ï§î' yî5ï§�ï§î wï§î".�î$ïÿî'yî"¾ïÿ�ïÿî#¦wïÿî%·�î'œïXî'yîàïX�ïXîÈwïXî Ù�î"¾ï°î'�îF�îÓï î8�î5î&<î(Ñî-�î.¢yî1ï �ï î1âwî7Qï �ï î8�ïaî8yïºî'wïºîúyî�ïº�ïºî Fwïî8�îmyîï�ïîëwî Bï�ïïkî8îxî" î'�î(ŽïÃî8 î Íî#bî(V�î)ãî+‘ïî yï tî8wï tî:î!Ðî&�î' ï Íî'îj�î÷î!;�î"8ÿ�������i��������TVm$ ��������������������������������������������������������������������������������������������������������������������������3ENDLOOP;IFc='\177THEN{PutXXX[];ERRORDelHit};RETURN[c]};GetStringToSpace:PROC[string:LONGSTRING,stopper1:CHAR_',stopper2:CHAR_']={c:CHAR_GetChar[];dashCount:NAT_0;inComment:BOOLEAN_FALSE;commentHit:BOOLEAN_FALSE;string.length_0;UNTILstring.length=string.maxlengthOR(NOTinCommentAND(c=stopper1ORc=stopper2))ORc='\nDOIFc='H-100BORc='A-100BTHEN{IFcommentHitTHEN{PutXXX[];ERRORDelHit};IFstring.length>0THEN{IFechoTHENPutChar[c];string.length_string.length-1;};}ELSEIFc='W-100BTHEN{IFcommentHitTHEN{PutXXX[];ERRORDelHit};WHILEstring.length>0DOIFechoTHENPutChar['H-100B];string.length_string.length-1;ENDLOOP;}ELSE{IFechoTHENPutChar[c];IFc='-THEN{commentHit_TRUE;dashCount_dashCount+1;IFdashCount=2THEN{inComment_NOTinComment;dashCount_0;};}ELSE{WHILEdashCount>0DOIFNOTinCommentTHEN{string[string.length]_'-;string.length_string.length+1;};dashCount_dashCount-1;ENDLOOP;IFNOTinCommentTHEN{string[string.length]_c;string.length_string.length+1;};};};���qïg/îEÉ�yï_eî'wîÈï_e�ï_eyï]¾îwï]¾î½�îÜ�îÁyî_ï]¾�ï]¾îwï]¾î!$ yî(»ï]¾�ï]¾î)twï]¾î-Qyï\îwï\î‚ïZnîuïXÇîwîïXÇ�ïXÇyîïXÇ�ïXÇî¼wïXÇî"»yî'nïXÇ�ïXÇî('ïXÇî+^wî/ËïXÇ�ïXÇî0¨yî6¼ïXÇ�ïXÇî7‡wïXÇî:™�î<%�î=�î=ÞyîCòïXÇ�ïXÇîD½wïXÇîGÏ�îI\�ïXÇîK§�ïWî×�î¼�ïUxîyî®ïUx�ïUxîywïUxî‹�î ïSÐî yî€ïSÐ�ïSÐîiwïSÐîz�î!ïR)î yî$ïR)�ïR)îÝwïR)î#I�yî$ÖïR)�ïR)î%�wî(tïR)�ïR)ïP�î yî‰ïP��ïP�îCwïP�î#®�yî%;ïP��ïP�î%ôwî(ÙïP��ïP�ïNÚî îø�î…yïM2îwïM2îD î!&�î# yïKŠîwïKŠîJ�yîÄïKŠ�ïKŠî¬wïKŠîÆyî"[ïKŠ�ïKŠî#/wïKŠî%� yî-‘ïKŠ�ïKŠî.m�wïKŠî/Æ yïIãîwïIãîJyî™ïIã�ïIãî�ïH;î'wïH;îÎîNîJ�îHyî!ÅïH;�ïH;î"¡�wïH;î#ùî&yî(^�î)\yî,ÙïH;�ïH;î-’wïH;î0ž�yïF”î8wïF”îß yî"ÚïF”�ïF”î#“wïF”î&Ÿ yî.5ïF”�ïF”î.ïwïF”î2ËyïDìî8wïDìîß î"Â�î#ö�yî%+ïDì�ïDìî%äwïDìî(ð�yïCDîIwïCDîðyî 7ïCD�ïCDî ðwïCDî#ý ïA�îI î#,�î$¸ î,›�î-™ï?õîIï>Nî8�yï<¦î'î[wï<¦îî‚î À�î!½yî%:ï<¦�ï<¦î%ówï<¦î(ÿ�yï:þî8wï:þîß yî"Úï:þ�ï:þî#“wï:þî&Ÿ yî.5ï:þ�ï:þî.ïwï:þî2Ëyï9Wî8wï9Wî™ î%{�î&°�yî'åï9W�ï9Wî(Ê�ï7¯îIwï7¯îðyî 7ï7¯�ï7¯î ðwï7¯î#ý î+R�î,Oï6îI î#,�î$¸ î,›�î-™yï4`îIwî êï4`�ï4`ï2¹î8�yï1î'wï1îv�yï/iî8wï/iîßyî&ï/i�ï/iîßwï/iî!ë yï-Âî8wï-Âîß�îþ�îãyî9ï-Â�ï-Âîòwï-Âî"ÿ�ï,îI î#D�yî$Ðï,�ï,î%Šwî'üï,�ï,ï*sîIî":�î#Çî*¸�î,žyï(ËîIwï(Ëîðî#â�î%Ç�yî&ûï(Ë�ï(Ëî'´wï(Ëî*Á�ï'#îZî$ð�yî&|ï'#�ï'#î'ewï'#î) ï%|îZî$K�î%Øï#ÔîZï"-îI�yï …î8wï …î‡�yïÝîIwïÝîªî&›�î'Ð�yî)ïÝ�ïÝî)ê�ï6îZï6îwï6î"yî)™ï6�ï6î*Rwï6î-_�ïŽîkî+f�î,óïçîk î'N�î(Û î0½�î2¢ï?îkï˜îZî$K�î%Øî,Ê�î-ÇyïðîZwî"ûïð�ïðyïHîIïHîðwïHîóyî'ˆïH�ïHî(AwïHî+M�ï¡îZî)U�î*áïùîZ î%=�î&Ê î.¬�î0‘ïRîZï ªîIï î8ÿ�������¯��������TVm$^������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������4c_GetChar[];ENDLOOP;IFstring.length<=string.maxlengthTHENsep_cELSEsep_';IFstring.length=0ANDsep#'\nTHEN{PutChar[sep];GetStringToSpace[string,stopper1,stopper2];};};GetStringToCR:PROC[string:LONGSTRING]={GetStringToSpace[string,'\n,'\n];};GetNumber:PROC[default:INT_1]RETURNS[value:INT_0]={string:LONGSTRING_[80];GetStringToSpace[string];FORi:NATIN[0..string.length)DOc:CHAR_string[i];IFcIN['0..'9]THEN{value_value*10+(c-'0)}ELSE{PutString["Notanumber!"];PutLine[];ERRORDelHit};ENDLOOP;IFstring.length=0THENvalue_default;};PutNumber:PROC[value:INT,w:INTEGER_4]={IFvalue<0THEN{PutChar['-];value_-value;w_w-1};IFvalue>=10THEN{PutNumber[value/10,w-1];value_valueMOD10;w_1};WHILEw>1DOPutChar['];w_w-1;ENDLOOP;PutChar['0+value];};Confirm:PROCRETURNS[yes:BOOLEAN]={response:LONGSTRING_[10];GetStringToSpace[response];IFString.Compare[response,"Yes",FALSE]=0THEN{RETURN[TRUE]}ELSEIFresponse.length=0ORUpper[response[0]]#'NTHEN{PutLine[];PutString["Sorry,youmustsayYesinjusttherightway."];PutLine[];RETURN[FALSE]}ELSEPutXXX[]};GetCommand:PROC={nMatches:NAT_0;matchLength:NAT_0;commandCode_illegal;PutString[">>"];GetStringToSpace[command];IFcommand.length=0THEN{PutLine[];GetCommand[]}���qïg/îEÉ�wï_,î'�îF�îÓ yï]…î'wîÈï]…�ï]…yï[Ýîwï[Ýî½ îŸî!5yî+—ï[Ý�ï[Ýî,Pwï[Ýî/\î1Ñ�î3^�yî4}ï[Ý�ï[Ýî57wï[Ýî7Ìî:A�î;Î�î<«�yïZ5îwïZ5î½ îŸ�î „�yî!¹ïZ5�ïZ5î"ŒwïZ5î$ßî'T�î)9yî+�ïZ5�ïZ5î,FwïZ5î/R�ïXŽî' ïVæî'î& î,“ ïU?î'ïS—îuïQðî wîïQð�ïQðyî}ïQð�ïQðî$wïQðî!$yî%ÖïQð�ïQðî&�ïQðî)Çwî.4ïQð�ïQðî/�î1��ïPHîî$�î';ïN¡îuïLùîwîóïLù�ïLùyîñïLù�ïLùî˜wïLùî˜yî$ïLù�ïLùî$‡wïLùî&­�î(:yî)ÑïLù�ïLùî*¥wïLùî/Ýyî4cïLù�ïLùî4ÍwïLùî6ó�î8€î:�î;ý�ïKRîyîeïKR�ïKRîïKRîUwïKRî"F�î#ÓïIªîyïHîwïHîyîdïH�ïHîMïHî]wïHî4yî(SïH�ïHî)8�wïF[î'yî¿ïF[�ïF[îŠwïF[îœ�î) yïD´î'wïD´îÎ�yîíïD´�ïD´îW�wïD´îÄyîÎïD´�ïD´î ˆwïD´î#”î'î�î){î-%�î.Yî0>�î2#yïC î'wïC îv î"Yî%*�î&T î-‡ yî4ïC �ïC î4ÂwïC î8žyïAeî'wîÈïAe�ïAeyï?½îwï?½î½ îŸ�î „�yî!¹ï?½�ï?½î"rwï?½î%î)(�î*µï>îuï<nîwîÝï<n�ï<nyîÛï<n�ï<nî‚wï<nî‚yî#ï<n�ï<nî#rwî%ï<n�ï<nî%ðyî'ëï<n�ï<nî(Uwï<nî-°�î/<î0Ô�î2¹�yï:Çîwï:Çî½îf�î›�yîÐï:Ç�ï:Çî‰wï:Çî • î(Ñî,z�î.î2¤�î4&�î5²yï9îwï9î½îfîüyîáï9�ï9îšwï9î"¦î0Øî4aî8 �î9—yî=Aï9�ï9î>Rwï7xîèîG�îÉ�îVyï5Ðîwï5Ðîv�îø�î-�yîbï5Ð�ï5ÐîG�wï4)î'î\ï2�î'�î©�î5�î·�îµyï0Úî'wîÈï0Ú�ï0Úï/2îï-‹îuï+ãîwî×ï+ã�ï+ãyîÔï+ã�ï+ãî|ï+ãî|wï+ãî"‡yî%Âï+ã�ï+ãî&{wî+bï+ã�ï+ãî,J�î./�ï*<îyî4ï*<�ï*<îíï*<î$wï*<î$�î%¢ï(”îyï&íîwï&íî½î&‚yî*ñï&í�ï&íî+ªwî.�ï&í�ï&íî/v�î1[�yî2�ï&í�ï&íî3Iwï&íî6U�yï%Eî'wï%Eî“�yîöï%E�ï%Eî¯wî "ï%E�ï%Eï#žî'�yï!öîï!öîdwï!öî î#½�î%£�yî&×ï!ö�ï!öî'´�wï!öî) î4Ä�î6©yî8¨ï!ö�ï!öî9bwï!öî<n�ï Oî' ï§î'î!íî$¤î( î*kî-!î.Ïî1qî3Ðî7"ï�î' yïXî'wïXî“�yîöïX�ïXî¯wî ”ïX�ïXï±î'�yï îwï îdïaîuïºî wî(ïº�ïºyî%ïº�ïºîÍwïºîÍ�î!²�ïîyîÏï�ïî¸wïîÉ�î Vïkî yîíïk�ïkîÕwïkî æ�î"sïÃî îœ�î )ïîï tîyï Íîwï Íî½ î!+�î#�yî$Dï Í�ï Íî$ýwï Íî( î/< ÿ�������™��������TVm$¿������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������5ELSE{FORcmd:CommandCodeIN[login..quit]DOcandidate:LONGSTRING_commandTable[cmd];IFcommand.length<=candidate.lengthTHEN{matchLength_0;FORi:NATIN[0..command.length)DOIFUpper[command[i]]=Upper[candidate[i]]THENmatchLength_i+1ELSEEXIT;ENDLOOP;IFmatchLength=command.lengthTHEN{commandCode_cmd;nMatches_nMatches+1;IFNOTloggedInTHENEXIT};};ENDLOOP;IFnMatches>1THENcommandCode_ambiguousELSEIFcommandCode<=quitTHEN{candidate:LONGSTRING_commandTable[commandCode];FORi:NATIN[command.length..candidate.length)DOPutChar[candidate[i]];ENDLOOP;};};};PutRequestStatus:PROC[request:PDQueue.Request,status:PDQueue.RequestStatus]={PutString[request.requestTime];PutChar['];PutString[request.fileName];IFrequest.copies#1THEN{PutString["("];PutNumber[request.copies,1];PutString["copies)"];};PutString["("];PutString[request.requestor];PutString[")"];SELECTstatusFROMcanceled=>PutString["Cancelled"];waiting=>PutString["Waiting"];printing=>PutString["Printing"];ENDCASE=>NULL;PutLine[];};DoCommand:PROC={GetCommand[];IFNOTloggedInANDcommandCode#loginANDcommandCode#quitTHEN{PutLine[];PutString["Loginfirst,please"];��qïg/îEÉ�yï_,îwï_,îd�yï]…î'wï]…îîž yî'‡ï]…�ï]…î'ñ�wï]…î)^ yî0¯ï]…�ï]…î1•�wï[Ýî8 yîçï[Ý�ï[Ýî  ï[Ýî#Øwï[Ýî(É�î*VyïZ5î8wïZ5îß î%Mî'âyî2%ïZ5�ïZ5î2ÞwïZ5î5ë�ïXŽîI î#§�î%4yïVæîIwïVæî7yî˜ïVæ�ïVæî €ïVæî"‘wïVæî$hyî1ïVæ�ïVæî1÷�ïU?îZwïU?îî+)�î-yî9 ïU?�ïU?î9ÃwïS˜î- î&‹�î(yïQðîZïQðî ©wî#YïQð�ïQðyïPIîZwî"ûïPI�ïPIyïN¡îIwïN¡îð î%N�î'3 yî1¡ïN¡�ïN¡î2ZwïN¡î5f�ïLúîZ î&á�î(mïKRîZî#›�î%(î+h�î-MyïIªîZïIªîwïIªî"yî'¿ïIª�ïIªî(xïIªî+„wïHîZïF[îIyïD´î8wîÙïD´�ïD´yïC î'wïC îÎî�î C�yî!xïC �ïC î"1wïC î%= î.Ä�î0QyïAeî'ïAeîvwïAeî î%£î(9yî+ïAe�ïAeî+ÖwïAeî.â�ï?½î8 yîçï?½�ï?½î  ï?½î#Øwï?½î(É�î*Vyï>î8wï>î&yî†ï>�ï>îoï>î €wï>î"Vð"yî8ï>�ï>î8ô�wï<nîIyï:ÇîIwî êï:Ç�ï:Çï9î8ï7xî'ï5Ðîuï4)îwî§ï4)�ï4)yî¥ï4)�ï4)îMwï4)î"Lî'ýî3ãï2�î×î#]�î%B�ï0Úîï/2îîKï-‹îyï+ãîwï+ãî½ î“�î!x�yî"­ï+ã�ï+ãî#fwï+ãî&r�ï*<î' îZï(”î'î'Ãï&íî' îZî#ï%Eî'ï#žî îIï!öîï Oî îÂyï§îwï§îèyî¿ï§�ï§îxwï�î'îÂîWïXî'îúî�ï±î'îiîþyï î'wï î)yî¾ï �ï î §wî"ÿï �ï ïbî ïºîuïîwîÄï�ïyîÂï�ïîjwïîi�î!N�ïkî yïÄîïÄî½wïÄî¿yîzïÄ�ïÄî MwïÄî"  î,&�î. yî1ˆïÄ�ïÄî2\wïÄî4® î>5�ïîèyïî²wïîw�ï uî' ï Íî'î!×î%�������F��������TVm$’����������������������������������������������������������������������������������������������������������������������������������������������������6PutLine[];}ELSE{SELECTcommandCodeFROMlogin=>{registryMissing:BOOLEAN_TRUE;PutString["--User--"];GetStringToSpace[user];FORi:NATDECREASINGIN[0..user.length)DOIFuser[i]='.THEN{registryMissing_FALSE;EXIT};ENDLOOP;IFregistryMissingTHEN{String.AppendString[user,defaultRegistry];PutString[defaultRegistry];};PutString["--Password--"];echo_FALSE;GetStringToSpace[password!UNWIND=>echo_TRUE];echo_TRUE;IFsep#'\nTHEN{PutString["--Account--"];GetStringToSpace[account];};PutString["--Authenticating..."];SendNow[];SELECTNameInfoDefs.Authenticate[user,password]FROMindividual=>{PutString["OK"];loggedIn_TRUE};allDown=>{PutString["allGVserversdown;I'llhavetotrustyou."];loggedIn_TRUE};badPwd=>{PutString["badpassword"];loggedIn_FALSE};ENDCASE=>{PutString["badname"];loggedIn_FALSE};PutLine[];IFloginMessage.length>0THEN{PutString[loginMessage];PutLine[];};};print=>{fileName:LONGSTRING_[80];separator:LONGSTRING_[80];time:LONGSTRING_[40];requestNumber:INT_0;createDate:LONGSTRING_[40];bytes:INT_0;copies:INT_1;IFNOTaccessAllowedTHEN{PutLine[];PutString["Sorry,youarenotallowedtoqueuerequestsatthistime"];};PutString["--File--"];��qïg/îEÉ�wï_,î' ï]…î'�yï[Ýîwï[Ýîd�yïZ5î'wïZ5îú yî%€ïZ5�ïZ5î&9wïXŽî8îµîJ�ïVæîIyî%GïVæ�ïVæî&�wïVæî+l�yî,ùïVæ�ïVæî-²wî0$ïVæ�ïVæïU?îI î"|î'³ïS—îIyïQðîIwïQðî7yî˜ïQð�ïQðî €ïQðî"‘ ïQðî*¿wïQðî,–yî5ØïQð�ïQðî6¾�ïPHîZwïPHîî#$�î% yî&=ïPH�ïPHî&öwïPHî*î48�yî5ÅïPH�ïPHî6~wî9cïPH�ïPHyî:`ïPH�ïPHî;wî=ïPH�ïPHî=Á�yïN¡îZwî"ûïN¡�ïN¡yïLùîIwïLùîðyî&uïLù�ïLùî'.wïLùî*;�ïKRîZî-XïIªîZïHîZïF[îI î"| î*jïD´îIî��yî ïD´�ïD´î Öwî#»ïD´�ïD´ïC îIî,’�yî-�ïC �ïC î.uwïC î35î5Êî9�yî:žïC �ïC î;Wwî=ÉïC �ïC î>-�ïAeîIî��yî ïAe�ïAeî Öwî#HïAe�ïAeyï?½îIwï?½îðîe�î!Jyî#žï?½�ï?½î$Wwï?½î'c�ï>îZ î$� î+íï<nîZï:ÇîZï9îI î"|î#ó î-Dî.Îï7xîI yï5ÐîIwï5Ðî î4™yî:ùï5Ð�ï5Ðî;²wï4)îZ î#Üî&rî2î7Ñ�yî9^ï4)�ï4)î:wî<Šï4)�ï4)î=:�ï2�îZî"éî%~î.Îî1yî6 î:Nî<uî?¼ï0Úî-î!^î%úî+µ�yî-Aï0Ú�ï0Úî-ûwî0mï0Ú�ï0Úî1�ï/2îZî"¨î%=î/U î6ßî<š�yï-‹î-wî!Ëï-‹�ï-‹î"{�yï+ãîZwï+ãî#\î%òî0 î5Uî;�yî<�ï+ã�ï+ãî=Vwî@;ï+ã�ï+ãî@ì�ï*<îI yï(”îIwï(”îðî)y�î*®�yî+âï(”�ï(”î,œwï(”î/¨�ï&íîZï%EîZ ï#žîZï!öîIï Oî8î î5�ï§îIyî!Ãï§�ï§î"|ï§î%´wï§î*¥�î,2ï�îI yî!µï��ï�î"nï�î%¦wï�î*—�î,$ïXîIyîèïX�ïXî¡ïXî"ØwïXî'É�î)Vï±îI yî%›ï±�ï±î&wï±î(+�î)¸ï îI yî"žï �ï î#Wï î&Žwï î+€�î- ïbîIyîWïb�ïbîÀwïbî!æ�î#sïºîIyîñïº�ïºî [wïºî"€�î$ yïîIïîðwïîó yî(ôï�ïî)­wïî,¹�ïkîZ ïÄîZî(!î*Øî-+î/ î4¶î6dî:ˆî?áïî-î Îï uîZï ÍîI î"|î'9ÿ�������^��������TVm$é������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������7GetStringToSpace[fileName];IFsep#'\nTHEN{PutString["--Copies--"];copies_MIN[GetNumber[default:1],CARDINAL.LAST];};IFsep#'\nTHEN{PutString["--Title--"];GetStringToCR[separator];};bytes_PDRemoteStream.Lookup[fileName,createDate,user,password!PDRemoteStream.Error=>{PutLine[];PutString["Error:"];PutString[expl];PutLine[];GOTOBad;};];Time.AppendCurrent[time];requestNumber_PDQueue.QueueRequest[[fileName,time,user,password,separator,copies]];IFrequestNumber<0THEN{PutLine[];PutString["Printqueuefull,requestdenied."];PutLine[];GOTOBad;};PutLine[];PutString["Printrequest"];PutNumber[requestNumber,0];PutString["queuedfor"];PutString[fileName];PutString["of"];PutString[createDate];PutString["("];PutNumber[bytes];PutString["bytes)"];PutLine[];BEGINmsg:LONGSTRING_[160];String.AppendString[msg,"Versionof"];String.AppendString[msg,createDate];String.AppendString[msg,";"];String.AppendLongNumber[msg,bytes];String.AppendString[msg,"bytes."];PDQueue.LogMessage[msg,requestNumber];END;lastRequest_requestNumber;EXITSBad=>NULL};check=>{��qïg/îEÉ�wï_,îIyï]…îIwï]…îðîe�î!Jyî$"ï]…�ï]…î$Ûwï]…î'è�ï[ÝîZ î$� î+ïZ5îZî!ˆ�yî#ïZ5�ïZ5î$'wî%yïZ5�ïZ5î%Üî2£yî4“ïZ5�ïZ5î5^wî:ÊïZ5�yïZ5î;"wî>ïZ5�ïZ5î>j�ïXŽîZyïVæîIwïVæîðîe�î!Jyî$"ïVæ�ïVæî$ÛwïVæî'è�ïU?îZ î$�î)¹ïS—îZïQðîZïPHîIîÝ�î jî6ì î> ïN¡îî"�ïLùîZî,-î.Â�ïKRîk ïIªîkî*HïHîkïF[îk yïD´îkwïD´î#PïC îkïAeîZï?½îIï>îI î%"�î&®î<Ãï<nîîmî%à î,yï:ÇîIwï:Çîð î&É�î'þ�yî)2ï:Ç�ï:Çî)ëwï:Çî,ø�ï9îZ ï7xîZî'|î+ î.ƒî3W ï5ÐîZ yï4)îZwï4)î!?ï2�îZï0ÚîI ï/2îIî%kî*?ï-‹îIî,èï+ãîI î"|î'gî)¥ï*<îIï(”îI î"|î$5ï&íîIï%EîI î"|ï#žîIï!öîI î"|ï NîI yï§îIwïÿîZyî ¶ïÿ�ïÿî!oïÿî$§wïÿî)˜�î+%ïXîZî-Aî3î4Àï°îZî-A ï îZî-Aî.ïïaîZî1ËïºîZî-A�î.vïîZî.yïkîZwîâïk�ïkïÃîI î"ž�î$+ yïîIwïîî!õyî$Šï�ïî%swï tîIï Íî8îî¯����������������TVm$¸����������������������������������������������������������������������������������������������������������������������������������������8requestNumber:INT;action:PROC[request:PDQueue.Request,status:PDQueue.RequestStatus]={PutLine[];PutNumber[requestNumber,5];PutChar['];IFstatus=notFoundTHEN{PutString["notfound."];PutLine[];}ELSEPutRequestStatus[request,status];};PutString["--RequestNumber<"];IFlastRequest#-1THENPutNumber[lastRequest,1];PutString[">--"];lastRequest_requestNumber_GetNumber[default:lastRequest];IFrequestNumber=-1THENPutLine[]ELSEIFABS[requestNumber]>NAT.LASTTHENaction[[NIL,NIL,NIL,NIL,NIL,1],notFound]ELSEPDQueue.CheckRequest[requestNumber,action];};cancel=>{requestNumber:INT;PutString["--RequestNumber--"];requestNumber_GetNumber[default:-1];IFrequestNumber=-1THENPutLine[]ELSE{owner:LONGSTRING_[80];action:PROC[request:PDQueue.Request,status:PDQueue.RequestStatus]={IFstatus#notFoundTHEN{String.AppendString[owner,request.requestor];};};PDQueue.CheckRequest[requestNumber,action];PutLine[];IFPDQueue.CancelRequest[requestNumber].okTHEN{msg:LONGSTRING_[80];String.AppendString[msg,"Cancelledby"];String.AppendString[msg,user];PDQueue.LogMessage[msg,requestNumber,IFowner.length=0THENNILELSEowner];PutString["Printrequestcancelled."];}ELSE{PutString["Nosuchrequestinqueue."]};PutLine[];};};listQueue=>{action:PROC[requestNumber:CARDINAL,request:PDQueue.Request,status:PDQueue.RequestStatus]RETURNS���qïg/îEÉ�wï_,îI yî%›ï_,�ï_,î&wî'¦ï_,�ï_,ï]…îIyîÛï]…�ï]…î ‚wï]…î#‚î)3î5ï[Ýîî+¢�î-‡�ïZ6îZ ïXŽîZî.ùïVçîZî#�yïU?îZwïU?îî"Ø�î$½yî+*ïU?�ïU?î+ãwïU?î.ï�ïS˜îk î'#î)˜ïQðîk ïPIîk�yïN¡îZwïN¡î ©î0ªïLúîZïKRîI î"|î(È yïIªîIwïIªîð î$E�î&*yî'ØïIª�ïIªî(‘wïIªî+žî:¹ïHîI î$ïF[îI î"ž�î$+ î.�î/�ïD´î yïC îIwïC îð î&É�î(®yî*\ïC �ïC î+wïC î.!yïAeîIïAeî˜ïAeî ?wî"kïAe�ïAeî"Î î- �yî.>ïAe�ïAeî/'wî0³ïAe�yïAeî1 ïAeî4twï?¾îyî vï?¾�ï?¾î!_wî"‚ï?¾�yï?¾î"Úwî$æï?¾�yï?¾î%>wî'Iï?¾�yï?¾î'¡wî)­ï?¾�yï?¾î*wî,ï?¾�ï?¾î,iî.Yyï>îIwï>î˜ð#î7õï<oîIï:Çî8îgîü�ï9 îI yî%›ï9 �ï9 î&wî'¦ï9 �ï9 ï7xîI î"|î(Èî/Cï5ÑîI î%"�î&®î3uyï4)îIwï4)îð î&É�î(®yî*\ï4)�ï4)î+wï4)î.!yï2‚îIwï2‚î˜�ï0ÚîZyî"ï0Ú�ï0Úî"ºï0Úî%òwï0Úî*ã�î,pï/3îZyî!ìï/3�ï/3î"”wï/3î%“î+Dî7*ï-‹î-î-³�î/˜�yï+äîkwï+äî!î$é�î&Ïyî-;ï+ä�ï+äî-ôwï+äî1��ï*<î!|î2®ï(•î!|ï&íîkï%FîZð#î6¸ï#žîZ yï!÷îZwï!÷îð'yî:…ï!÷�ï!÷î;>wï!÷î>J�ï Oîkyî"Çï O�ï Oî#�ï Oî&¸wï Oî+©�î-6ï¨îkî/R î6dî8_ï�îkî/RïYîkî0� yî:ÁïY�ïYî;+�wï±î > yî*Šï±�ï±î+Cï±î.Oï±î0ßwï±î4.ï îkî)�î.a ïbîk�yï»îZwï»î © î*kî-œî2qî4 ïîZ ïlîZïÄîIïî8îbî!÷�ï uîIyîÛï u�ï uî ‚wï uî#‚yî.7ï u�ï uî/wî4nï u�ï uî5Jï Îîî(î,Ryî;Øï Î�ï Îî<¬���������������TVm$‘����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������9[continue:BOOLEAN_TRUE]={PutNumber[requestNumber,5];PutChar['];PutRequestStatus[request,status];};PutLine[];IFPDQueue.GetSuspended[]THEN{PutString["***Printingissuspended***"];PutLine[];};PDQueue.EnumerateRequests[action];};messages=>{action:PROC[message:LONGSTRING]RETURNS[continue:BOOLEAN_TRUE]={IFMatch[message]THEN{PutString[message];PutLine[];};};key:LONGSTRING_[80];Match:PROC[message:LONGSTRING]RETURNS[BOOLEAN]={keyLength:CARDINAL_key.length;IFmessage.length<keyLengthTHENRETURN[FALSE];FORi:NATIN[0..message.length-key.length)DOj:CARDINAL_0;WHILEj#keyLengthANDUpper[message[i+j]]=key[j]DOj_j+1ENDLOOP;IFj=key.lengthTHENRETURN[TRUE];ENDLOOP;RETURN[FALSE];};IFsep#'\nTHEN{PutString["--matchingstring--"];GetStringToCR[key];FORi:NATIN[0..key.length)DOkey[i]_Upper[key[i]]ENDLOOP;};PutLine[];PDQueue.EnumerateMessages[action];};start=>{IFPDQueue.SetSuspended[FALSE].old=TRUETHEN{PDQueue.LogMessage["Printingstarted.",,user];};PutOK[];};stop=>{IFPDQueue.SetSuspended[TRUE].old=FALSETHEN{���qïg/îEÉ�wï_,î yî"žï_,�ï_,î#Xwï_,î(Ã�yî*Pï_,�ï_,î+ wî-{ï_,�ï_,î.c�î0H�ï]…îZî.ùï[ÝîZî#�ïZ5îZî-[ïXŽîZïVæîI yïU?îIwïU?îðyî-&ïU?�ïU?î-ßwïU?î0ë�ïS—îZ î%î'§î,ôî.`î5ïQðîZ ïPHîZïN¡îIð"ïLùîIïKRî8îî!©�ïIªîIyîÛïIª�ïIªî ‚wïIªî#‚yî)¶ïIª�ïIªî*oïIªî-¦wî2ïIª�ïIªyî2ûïIª�ïIªî3ÏwïIªî9 yïHîwïHî"@�yî#ÍïH�ïHî$†wî&ùïH�ïHî'à�î)Å�yïF[îZwïF[î yî(ëïF[�ïF[î)¤wïF[î,°�ïD´îkïC îk ïAeîkï?½îZï>îIyîXï>�ï>îï>î"Hwï>î':�î(Æuï<nîIwî4ï<n�ï<nyî 2ï<n�ï<nî Úwï<nî#Ùyî* ï<n�ï<nî*Æï<nî-þwî2jï<n�ï<nyî3Rï<n�ï<nî4&wï<nî9^�yî9Áï<n�ï<nî:zwî?aï<n�ï<nï:Çî�î�ï9îZ yî$£ï9�ï9î%nwï9î+^�î,ë yï7xîZwï7xî î(f�î)šyî0iï7x�ï7xî1#ï7xî4/wï7xî9›�yî9þï7x�ï7xî:¸wî=œï7x�ï7xî=ÿ�yï5ÐîZwï5Ðî Hyî!©ï5Ð�ï5Ðî"‘ï5Ðî$¢wï5Ðî&yyî8°ï5Ð�ï5Ðî9–�wï4)îkyî Ìï4)�ï4)î!—wï4)î'‡�î)yï2�îkwï2�î#Ì�î$´�î&™yî-hï2��ï2�î.;wï2�î0Žî=o�ï0Úî >yî#ýï0Ú�ï0Úî$ã�wï/3î!|�î"d�î#ñ�î$Ø�î&½�yï-‹î!|wî'ï-‹�ï-‹yï+äîkwï+äî! yî)yï+ä�ï+äî*2ï+äî->wï+äî2«�yî3ï+ä�ï+äî3Çwî69ï+ä�ï+äî6��yï*<îkï(•îZwï(•î"Ç�yî#*ï(•�ï(•î#ãwî&Èï(•�ï(•î'+�ï&íîZyï%EîIwï%Eîðîe�î!Jyî#žï%E�ï%Eî$Wwï%Eî'c�ï#žîZ î$� î+~î0Gï!öîZyï OîZwï Oî Hyî!©ï O�ï Oî"‘ï Oî$¢wï Oî&yyî/Wï O�ï Oî0=�wï Oî1�î5\�î6é yï¨î-wî#Îï¨�ï¨ï�îZïYîI ï±îIð"ï îIïbî8îHîÝ�yïºîIwïºîðyî+Üïº�ïºî,•wî/zïº�ïºî/Ýî2ž�yî4ƒïº�ïºî5<ïºî83wïºî;ù�ïîZî1AïkîZïÄîIïîIï uî8î1îÇ�yï ÍîIwï Íîðyî+Üï Í�ï Íî,•wî/ï Í�ï Íî/kî2,�yî4ï Í�ï Íî4Êï Íî83wï Íî;ù�ÿ�������ß��������TVm$ø����������������������������������������������10PDQueue.LogMessage["Printingsuspended.",,user];};PutOK[];};setLoginMessage=>{old:LONGSTRING_[160];String.Copy[old,loginMessage];PutChar['];GetStringToCR[loginMessage];loginMessage.length_MIN[loginMessage.length,loginMessage.maxlength-3-user.length];String.AppendString[loginMessage,"("];String.AppendString[loginMessage,user];String.AppendChar[loginMessage,')];PutLine[];PutString["Oldmessagewas:"];PutString[old];PutLine[];PDQueue.LogMessage[loginMessage];};reprint=>{ncopies:INT_0;confirm:BOOLEAN_TRUE;PutString["--Numberofcopies--"];ncopies_GetNumber[default:0];IFncopies>1THEN{PutString["--Confirmreprintofmultiplecopies--"];confirm_Confirm[];};IFconfirmTHEN{msg:LONGSTRING_[50];String.AppendString[msg,"Reprintrequestfor"];String.AppendLongDecimal[msg,ncopies];IFncopies=1THENString.AppendString[msg,"copy"]ELSEString.AppendString[msg,"copies"];PDQueue.LogMessage[msg,,user];PDQueue.Reprint[ncopies];PutOK[];}ELSEPutXXX[];};resetQueue=>{PutString["--Doyoureallywanttoresettheentirequeue?--"];IFConfirm[]THEN{PutOK[];PDQueue.Reset[];PDQueue.LogMessage["Queuereset",,user];};};help,illegal=>{PutLine[];���qïg/îEwï_,îZî1Aï]…îZï[ÝîIïZ5îIïXŽî8î#Ñî&f�ïVæîIyî,ïVæ�ïVæîåïVæî"wïVæî'�î(›ïU?îIî%Š ïS—îIî!~ïQðîIïPHîIî'Ò�yî)_ïPH�ïPHî*pwî+ÃïPH�ïPHî,&ïN¡îð&ïLúîIð!î0É�î1þïKRîIð!î0ÉïIªîIî0$ïHîI ïF[îI î$ºî*î-6ïD´îIïC îI ïAeîIð!ï?½îIï>î8îÊî _�ï<nîIyî ·ï<n�ï<nî!!wï<nî#G�î$Ôï:ÇîIyî îï:Ç�ï:Çî!§wï:Çî'�yî(Ÿï:Ç�ï:Çî)Xwî+Ëï:Ç�ï:Çï9îI î"|î(÷î*°î/Ñï7xîIî >�î!Ëî.’yï5ÐîIwï5Ðîðî!å�î#�yî$Oï5Ð�ï5Ðî%wï5Ðî(�ï4)îZ î$�î+î/ î1Yî6Óî;ôï2�îZî"†�î$ ï0ÚîZyï/2îIwï/2îðyî"ï/2�ï/2î"Õwï/2î%á�ï-‹îZyî ¶ï-‹�ï-‹î!oï-‹î$§wï-‹î)˜�î+%ï+ãîZî-Aî3î7Ýî:ï*<îZî1¼yï(”îZwï(”îî#ö�î%Û�yî'ï(”�ï(”î'Éwï(”î*Öî:½�î;ñyï&íîZwï&íî ©î0��î1Åï%EîZï#žîZï!öîZï OîZ�yï§îIwï§î˜ï�îIïXî8 î kî#��ï°îI î"|î%Îî(…î,Oî/¬î1Zî4¡î7�î:ìï îyïbîIwïbîðyî#Eïb�ïbî#þwïbî' �ïºîZïîZïkîZî0e ïÄîZïîIï uî8î«î ·î#L�ï ÍîI ÿ�������S��������TVm$Ý����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������11PutString["Validcommandsare:"];FORcmd:CommandCodeIN[login..quit]DOcandidate:LONGSTRING_commandTable[cmd];PutString[candidate];IFcmd#quitTHENPutString[","];ENDLOOP;PutLine[];};quit=>{loggedIn_FALSE;PutLine[];SendNow[];quitting_TRUE};wait=>{requestNumber:INT_lastRequest;requestStatus:PDQueue.RequestStatus_waiting;action:PROC[request:PDQueue.Request,status:PDQueue.RequestStatus]={requestStatus_status;};toldUserThatItIsPrinting:BOOLEAN_FALSE;DoPrintingMsg:PROC={IFrequestStatus=printingANDNOTtoldUserThatItIsPrintingTHEN{PutString["Printing..."];toldUserThatItIsPrinting_TRUE;};};IFsep#'\nTHEN{PutString["--RequestNumber<"];IFlastRequest#-1THENPutNumber[lastRequest,1];PutString[">--"];lastRequest_requestNumber_GetNumber[default:lastRequest];};PutLine[];IFrequestNumberIN[0..NAT.LAST]THEN{PDQueue.CheckRequest[requestNumber,action];IFrequestStatus=waitingTHEN{PutString["Waiting..."];};DoPrintingMsg[];UNTILrequestStatus=notFoundORrequestStatus=canceledDOSendNow[];Process.Pause[Process.MsecToTicks[10000]];PDQueue.CheckRequest[requestNumber,action];DoPrintingMsg[];PutChar['.];ENDLOOP;PutString["Done."];PutLine[];};};ambiguous=>{��qïg/îEwï_,îIî%­î,’î/_yï]…îIwï]…î7î!À yî+©ï]…�ï]…î,�wï]…î-€ yî4Òï]…�ï]…î5¸�wï[ÝîZ yî$ ï[Ý�ï[Ýî$Ãï[Ýî'úwï[Ýî,ë�î.xïZ5îZyïXŽîZwïXŽîî"�î#öyî&ÚïXŽ�ïXŽî'”wïXŽî*  î2+yïVæîZwî"ûïVæ�ïVæïU?îI ïS—îIïQðî8îî±î%�yî&ªïQð�ïQðî'cwî*HïQð�ïQðî+E î1Ç î9aî>Ž�yïPIî wî6ïPI�ïPIîç�ïN¡î8î1îÇ�ïLúîI yî%›ïLú�ïLúî&wïLúî(+�î)¸ ïKRîI î$,î3O�î4ÜïIªîIyîÛïIª�ïIªî ‚wïIªî#‚î)3î5ïHîî+¢�î-‡�ïF\îZ î%Ä�î'QïD´îZïC îIyî*îïC �ïC î+¨wïC î1�yî2 ïC �ïC î3Ywî6>ïC �ïC uïAeîI wî$ŠïAe�ïAeyî%ˆïAe�ïAeî&/wïAeî)/�î+�yï?¾îZwï?¾î î'k�î)Pyî.’ï?¾�ï?¾î/fï?¾î1¸wï>î-yî-Yï>�ï>î.wï>î1�ï<oîkï:Çîkî.—�yî0$ï:Ç�ï:Çî0Ýwî3Pï:Ç�ï:Çï9 îkï7xîZyï5ÑîIwï5Ñîðîe�î!Jyî#žï5Ñ�ï5Ñî$Wwï5Ñî'c�ï4)îZ î$�î*Ù yï2‚îZwï2‚î î&V�î(;yî)éï2‚�ï2‚î*¢wï2‚î-¯î<Êï0ÚîZ î&1ï/3îZ î$¯�î&< î0�î1¡ï-‹î- ï+äîZï*<îI yï(•îIwï(•îð yî&Éï(•�ï(•î'3�wï(•î( yî*bï(•�ï(•î+Kwî,×ï(•�yï(•î-/wî0ï(•�ï(•yî0ûï(•�ï(•î1´wï(•î4À�ï&íîZð#î6¸yï%FîZwï%Fî î'k�î)Pyî.$ï%F�ï%Fî.Ýwï%Fî1é�ï#žîkï!÷îkï OîZyï¨îZwï¨î!‰ î)ò�î+×yî2Dï¨�ï¨î3 �wï¨î4x î<â�ï�î-yî#Èï��ï�î$®�wïYîk ï±îkð*ï îkð#î8Éïbîkï»îk yïîkwî% ï�ïïlîZïÄîZ ïîZï uîIï Îî8î 3î"É��������n��������TVm$j��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������12PutLine[];PutString["Ambiguouscommand(typeHelp<CR>forhelp)"];PutLine[];};ENDCASE=>ERROR;};};stream.options.signalSSTChange_TRUE;PutLine[];PutString[helloMsg];PutLine[];UNTILloggedInORquittingDODoCommand[!DelHit=>CONTINUE]ENDLOOP;WHILEloggedInDODoCommand[!DelHit=>CONTINUE]ENDLOOP;EXITSQuit=>NULL;};END.��qïg/îEwï_,îI ï]…îIî)Vî/·î3Aî:î<Yï[ÝîI ïZ6îIyïX�î8wïX�î:yî!ÐïX��ïX�î"‰wî%áïX��ïX�ïVçî'ïU@îïS™îî&á�yî(nïS™�ïS™î)'wî+™ïS™�ïS™ïQñî ïPJîïN£î yïLûîwïLûî3yîîïLû�ïLûîÊ�wïLûî"yî$OïLû�ïLûî%5�wïLûî&– î0î4®yî7DïLû�ïLûî8wî=~ïLû�ïLûyïKTî×wîxïKT�ïKTyïI­îwïI­îeyî ïI­�ïI­î�wïI­îg î(áî-yî0ïI­�ïI­î0ßwî6OïI­�ïI­yî76ïI­�ïI­î7ïwî<×ïI­�ïI­yïHîwïHîØî yîžïH�ïHî‡wîÞïH�ïHïF^îyïCîówî{ïC�ïCÿ�������0��������TVm$�ñ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������--PeachSourcesTemp.df--Copyright(C)1984,XeroxCorporation.Allrightsreserved.--MichaelPlass,1-Oct-8413:07:12--PeachPDPrintServerSourcesExports[Ivy]<Plass>Peach>Top>ReleaseAs[Indigo]<Peach>Top>PeachSourcesTemp.df1-Oct-8413:09:20PDTExports[ivy]<Plass>Peach>Documentation>ReleaseAs[Indigo]<Peach>Documentation>PeachDoc.tioga!124-Sep-8411:26:07PDTPeachDoc.press!124-Sep-8411:26:16PDTExports[ivy]<Plass>Peach>PeachSources>ReleaseAs[Indigo]<Peach>PeachSources>PDBitBltTiming.mesa!14-Mar-8411:21:20PSTPDFileFormat.mesa!118-Nov-839:54:35PSTPDInterpBasic.mesa!14-Sep-8410:17:00PDTPDInterpBitmap.mesa!117-Nov-8312:15:22PSTPDInterpBitmapImpl.mesa!14-Sep-8411:30:44PDTPDInterpMainImpl.mesa!120-Sep-849:14:55PDTPDInterpOutput.mesa!120-Sep-849:03:31PDTPDInterpPage.mesa!120-Sep-848:58:46PDTPDInterpPageImpl.mesa!120-Sep-849:17:50PDTPDInterpReader.mesa!14-Sep-849:51:57PDTPDInterpReaderImpl.mesa!113-Sep-8411:35:11PDTPDInterpSysCalls.mesa!14-Sep-849:55:12PDTPDInterpSysCallsDevelImpl.mesa!130-Nov-8310:22:04PSTPDQueue.mesa!113-Sep-8413:18:40PDTPDQueueImpl.mesa!127-Sep-847:48:29PDTPDUser.mesa!14-Sep-8415:05:56PDTPDUserImpl.mesa!127-Sep-849:33:14PDTPDRemoteStream.mesa!17-Sep-8416:13:26PDTPDStrikeFormat.mesa!119-Sep-8413:13:14PDTPDTextBitmap.mesa!119-Sep-8411:30:08PDTPDTextBitmapImpl.mesa!126-Sep-8417:39:54PDTPDRemoteStreamStub.mesa!113-Sep-8413:41:44PDTPDChatServerStub.mesa!113-Sep-8411:34:55PDTPDInterpOutputViewerImpl.mesa!126-Sep-8417:22:14PDT��wï_,îâîYï]…îµî,î®î#îÁî!ã î*�î,Óî0ªï[Ýîµî,îyî½î bïZ6îµî,î.î£îîeïVçîµîËî%˜î,/ïS™î½î)Æî/kî5ïPJîµîËî,GïN£îµïKTî½î(î.mî4ïI­î½î(î.ƒî4ïF^îµîËî+ïD·îµïAhî½î)Äî/Ëî5eï?Áî½î)?î0Šî5sï>î½î)@î.üî4•ï<rî½î)xî0?î5Øï:Ëî½î*Ãî0î6ï9#î½î*î1 î5öï7|î½î)oî0_î5Hï5Õî½î(þî/îî4×ï4-î½î)Åî0µî5žï2†î½î)ñî01î5ï0ßî½î*4î0 î69ï/7î½î)Žî/Íî4¶ï-�î½î*¸î1î7ï+éî½ î) î/uî5ï*Aî½î)Ðî0Àî5©ï(šî½ î(òî.­î4Gï&óî½î)4î0%î5ï%Kî½î*Ùî0”î6.ï#¤î½î)aî/Íî5fï!ýî½î)‚î/îî5ˆï Uî½î*Iî0µî6Oïî½î+î1sî7 ï_î½î)Ýî0Iî5âï¸î½î+Iî1µî7Oÿ�������š��������TVm$_��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� �ÿ TIMESROMAN����������þæ��� �ÿLAUREL���������������þæ��� �ÿGACHA����������������þŸ��� �ÿ TIMESROMAN����������þŸ��� �ÿ TIMESROMAN�����������þæ����ÿ TIMESROMAN����������þŸ����ÿLAUREL���������������þŸ����ÿ TIMESROMAN�����������þŸ����ÿ TIMESROMAN����������þŸ����ÿ TIMESROMAN����������þY����ÿ HELVETICA������������þæ����ÿLOGO�����������������ý‡����ÿ HELVETICA������������þŸ�����ÿ HELVETICA�����������þ������������������������������������������������������������������������h�����ˆ�����Ž�����i�����˜����������Ë���!��Æ���'��Ž���(�����+��š���2��*���9�����>��ˆ���E��&���L��8���S��Ÿ���[�����b��m���i��µ���p��£���w��Œ���|��³���}��S���������†��Ž���Œ��&���‘��ü���˜��¡���™�� ���›�����¡��[���§��a���¬��à���²��¿���¹��½���¿��ª���Á�����Ç��´���Ë��š���Ò��-���×��{���Þ��c���å��3���ë�����ñ��è���ø��}���ý��Ø���� ����í����:����G����_����ª����P��#��æ��*��ª��1��“��8�����>����D��w��J��o��Q��Q��W��B��^��`��e��²��l��â��m��S��p��N��w��s��}��w��„��¢��Š��â��‹����’��Ô��“��A��˜��'��ž��$��¤��ñ��«��c��±����³�� ��¸��=��½��É��Ã��ó��Ê��J��Ï��ç��Õ��D��Ù��ì��ß����ä��ø��é��^��î��v��ð��Ó�õ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������j/ù�_ö����ˆkp��ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ0[ivy]<Plass>Peach>Documentation>PeachDoc.tioga!1�����������������������������������#Monday, October 1, 1984 1:28 pm PDT����������������������������������������������������������������������������������������������������������������������������������������