; TeX output 1996.05.27:1831soDtGGcmr17The7tGGcmss17doafter9Ɵ!", cmsy10 pacqkage#çXQ cmr12PreterSchmitt2K cmsy8y 7MarkWVoSoding=sܣH8Mary1996:bINff cmbx12ContentspI"V cmbx101XDescription]H1 XK`y cmr101.1oWhatUUit'sallabGoutw....p1X1.2oPackqageUUoptionsm......p2I2XImplemen9tationH)2X2.1oTheUUmainmacroj-.....p2X2.2oT*estUUcoGde.........p5IAXTheGNUGeneralPublicLicencer|7UVA.1%Preambleݍ.........p8A.2%T*erms!(andconditionsfor %copying,distribution3and%moGdi cation*B........p8UVA.3%AppGendix:cHowN3toAp-%ply.4TheseT*ermstoYour%NewUUProgramsxo......o12-I1aLDescriptionI N cmbx121.1gWhatit'sallab`outuTIIt's4commonfortheTU>'ExXprimitive"'ExX'scolourhandlingusesthistoinsertappropriateI\specialswhenthescopGeofacolourchangeends.\Thiscausesseveralproblems,Ithough;for` example,extragroupingmustbGeaddedwithinboxestoensurethattheI\specials\don't`leak'outoftheirbGoxandappearinoddplacesinthedocument.IL5ffA͉TU>'ExXusuallysolvesthisproblembyreadingthebGoxcontentsasanargument,Ialthough thisisn'tparticularlydesirable.YThe\doaftermacroprovidedherewillIsolve%theprobleminadi erentway*,byallowingamacrotoregaincontrolafterIallUUthe\aftergroupthingshaveUUbGeenprocessed.XTheUUmacroworkslikethis:4DjI !", cmsy10h#': cmti10do}'after-cmdix::=ПO line10-xП-xПff ?ff'ff'T\doafter+Xff'ff'ff'ff'T& cmsy9h'j cmti9token9i#)ff'ff'ff'ff'Thgroup'i$5ff'ffffugͬ-эITheOhtokenci%ÀcanObGeanytokenyoulike, Pexceptanexplicitbraces,sinceit'sreadasIanundelimitedmacroargument.W]Thehgr}'oupi&YϲisanormalTU>'ExXgroup,surroundedIbyeitherimplicitorexplicitbraces,$\orby\begingroupand\endgrouptokens.Iffr @ -:q% cmsy6L|{Ycmr8TheXs6cmss8doafterpacÎkageiscurrentlyatversion1.01,dated8May1996. [-:yLPÎetercameupwiththebasicimplementationafterIp'ExX2 b> cmmi10"borUUPlainTU>'ExX.Ilatex2eq,insertsUUextraidenti cationcoGdeforaL5ffA͉TU>'ExX2"(packqage.IplainfinsertsUUsomeextracoGdeforaPlainTU>'ExXpackqage.ImacrolJjustUUextractstherawcoGde,forinclusioninanotherpackqage.Itest`TextractsUUsomecoGdefortestingthecurrentimplementation.!čI2aLImplementationI2.1gThemainmacrouTIW*e|startoutputtingcoGdehere.IfthisisaPlainTU>'ExXpackqage,we|mustmake`@'IintoUUaletter.Ls1Sh)ow cmss9macro8jpack9ageA5i Ls2Sh$o cmr9+plainai,W*ekeeptwomacros(Peter'soriginalusedcount Iregisters)$whichkeepcountsofthenumbGersof\aftergroups,X~bothlocallyandIglobally*.^Let'scalltheloGcalcounternandtheglobaloneN.EverytimewegetaIcall<,toour\aftergrouphack,A4we<,setn:=n+1<,andN3:=n,andleave<,thetokenIgiventousforlaterproGcessing.^TWhenweactuallyproGcessan\aftergrouptokenIpropGerly*,setN3:=NfiON1toindicatethatit'sbeenhandled;ywhenthey'realldone,Iwe'llhaveN_6=Hn,whichisexactlywhatwe'dhaveifthereweren'tanytobGeginIwith.I13S\def\ag@cnt@local{0} I14S\let\ag@cnt@global\ag@cnt@localXNow wecometothede nitionofmyversionof\aftergroup.YI'lljustaddtheItoken#\@after@tokenbGeforeevery\aftergrouptokenI# nd.aGThismeansthere'sItwo~callsto\aftergroupforeveryonetheusermakes,Cbutthesethingsaren'tallIthatGcommon,J[soit'sOKGreally*.m4I'llalsobumptheloGcalcounter,andsynchroniseIthem.I15S\def\@my@aftergroup{% I16]\begingroup%I17f\count@\ag@cnt@local%I18f\advance\count@\@ne%I19f\xdef\ag@cnt@global{\the\count@\space}%I20]\endgroup%3|soI21]\let\ag@cnt@local\ag@cnt@global% I22]\@@aftergroup\@after@token\@@aftergroup%I23S}XNowcwhatdoGes\@after@tokenweinsertedabGoveactuallydo?*W*ell, 'thisis Imoreexciting.Thereareactuallytwodi erentvqariantsofthemacro,vwhichareIusedUUatdi erenttimes.\@after@tokenIThedefault\@after@tokenstartsagroup,̓whichwill`catch'\aftergrouptokensIwhichk#Ijthrowatit.2Ijputthetwocountersintosomescratchcountregisters.I(There's[aslightproblemhere:~8PlainTU>'ExXonlygivesusone. pF*orthesakeIof8zevilnessI'lluse\clubpenaltyastheotherone. 6Eeeek.)I7then8zrede neI\@after@tokențtothesecondvqariant,andexecuteit.BThe\@start@after@groupImacroהstartsthegroup,bGecausethiscodeissharedwith\@prepare@afterbelow.I24S\def\@after@token{% I25]\@start@after@group%I26]\@after@token%I27S}I28S\def\@start@after@group{%I29]\begingroup%I30]\count@\ag@cnt@global%I31]\clubpenalty\ag@cnt@local%I32]\let\@after@token\@after@token@i%I33S}f\@after@token@iIIhave\count@*u=N7and\@tempcnta:5=n.O_I'lldecrementN,andifIhaveN3=n, IIknow/thatthisisthelasttokentodo, 7soImustinsertan\@after@allaftertheItoken.iThis=Lwillclosethegroup,BandmaybGeinserttheoriginal\doaftertokenifIappropriate.I34S\def\@after@token@i{% I35]\advance\count@\m@ne%I36]\ifnum\count@=\clubpenalty%I37f\global\let\ag@cnt@global\ag@cnt@local%I38f\expandafter\@after@aftertoken\expandafter\@after@all%I39]\else%I40f\expandafter\@@aftergroup%I41]\fi%I42S}XFinally*,UUestablishadefaultmeaningfor\@after@all.I43S\let\@after@all\endgroupf\@prepare@afterIIfthisgroupishandledby\doafter,Pthenthe rst\aftergrouptokenisn't I\@after@token;UUit's\@prepare@after.XThereUUaresomeextracasestodealwith:XbIfkNl=Tnthentherewereno\aftergrouptokens,sowehaveaneasyjob.bI'llUUjustletthetokendoitsstu directly*.XbOtherwise,4N/[>@n,andthereare\aftergrouptokens.I'llopGenthegroup,bandUUlet\@after@tokendoallthehandling.4+soI44S\def\@prepare@after{% I45]\ifx\ag@cnt@local\ag@cnt@global\else%I46f\expandafter\@prepare@after@i%I47]\fi%I48S}I49S\def\@prepare@after@i#1{%I50]\@start@after@group%I51]\def\@after@all{\@@aftergroup#1\endgroup}%I52S}9\@after@aftertokenIThisRiswhereallthedicultylies.Thenexttokeninthestreamisan\aftergroup Ione,uwhichncouldbGemoreorlessanything. W*ehaveanargument,uwhichissomeIcoGdeUUtodoafterhthetokenhasbeen\aftergrouped.XIfthetokenisanythingotherthanabrace(i.e.,Ԓanexplicitcharacterofcat-Iegory1or2)thenIhavenoproblem;dIcanscoGopupthetokenwithanun-IdelimitedO^macroargument.oButtheonlywayIO]candecideifthistokenisabraceI(nondestructively) 7iswith\futurelet,whichmakesthetokenimplicit,soI $can'tIdecideUUwhetherit'sreallydangerous.XTheret:isapGossiblewayt:ofdoingthis^1whichrelatestonobblingtheo endingItokenwith\stringandsiftingthroughtheresults.TheproblemhereinvolvesIscoGopingvupallthetokensofa\stringedcontrolsequence,whichmayturnoutItoUUbGe`\csname\endcsname'orsomethingequallyhorrid.XThesolutionI'veusedismuchsimpler:I'llchange\bgroupand\egrouptoIstopUUthemfrombGeingimplicitbracesbeforecomparing.I53S\def\@after@aftertoken#1{% I54]\let\bgroup\relax\let\egroup\relax%I55]\toks@{#1}%I56]\futurelet\@let@token\@after@aftertoken@i%I57S}I58S\def\@after@aftertoken@i{%I59]\ifcat\noexpand\@let@token{%I60f\@@aftergroup{%I61]\else\ifcat\noexpand\@let@token}%I62f\@@aftergroup}%I63]\else%I64f\def\@tempa##1{\@@aftergroup##1\the\toks@}%I65f\expandafter\expandafter\expandafter\@tempa%I66]\fi\fi%I67S}XPhew!I68Sh+plainai\catcode`\@=12I69Sh%5" cmmi9=macro8jpack9ageA5i6I2.2gTestco`deuTITheyNfollowingcoGdegives\doafterabitofatesting.ݲIt'sbasedonthetestsuite IIUUgavetocomp.text.tex,althoughit'sbGeenimprovedalittlesincethen.IX-ffr J= "5-:Aacmr61LDueXtoPÎeterSchmitt,again.56soXThef rstthingtodoisde neacontrolsequencewithan`@'signinitsname, Iso]wecantestcatcoGdechanges.bThisalsohidesan\aftergroupwithinamacro,ImakingUUlifemoredicultforprospGectiveimplementations.I70Shtest_i I71S\catcode`\@=11I72S\def\at@name{\aftergroup\saynine}I73S\def\saynine{\say{ix}}I74S\catcode`\@=12XNowde neacommandtowriteastringtotheterminal. 1Thenamewill IprobablyUUbGefamiliartoREXXhackers.I75S\def\say{\immediate\write16}XT*est one:0Thisisreallyeasy;ditjustteststhatthethingworksatall.!Ifyour IimplementationUUfailsthis,it'stimeforama8jorrethink.I76S\say{Testone...(1--2)} I77S\def\saytwo{\say{ii}}I78S\doafter\saytwo{\say{i}}XT*estUUtwo:qDoGes\aftergroupwork?I79S\say{Testtwo...(1--4)}I80S\def\saythree{\say{iii}}I81S\def\sayfour{\say{iv}}I82S\doafter\sayfour{\say{i}\aftergroup\saythree\say{ii}}XT*est<three:Testbracesand\iffalseworkingastheyshould.SeveralpropGosed Isolutionsbasedon\writeingthegrouptoa legetupsetbythistest,JalthoughII،forgotخtoincludeitinthetorturetest.ItalsotestswhetherliteralbracescanIbGe\aftergroupedproperly*.C(Addedanewtesthere,makingsurethat\bgroupIisUUleftasanimplicittoken.)I83S\say{Testthree...(1--4,`\string\bgroup',5)} I84S\def\sayfive{\say{v}}I85S\doafter\sayfive{%I86]\say{i}%I87]\aftergroup\say%I88]\aftergroup{%I89]\aftergroup\romannumeral\aftergroup3%I90]\aftergroup}%I91]\iffalse}\fi%I92]\aftergroup\def%I93]\aftergroup\sayfouretc%I94]\aftergroup{%I95]\aftergroup\say%I96]\aftergroup{%I97]\aftergroupi%I98]\aftergroupv%I99]\aftergroup}%E100]\aftergroup\say%E101]\aftergroup{%E102]\aftergroup\string%E103]\aftergroup\bgroup%E104]\aftergroup}%E105]\aftergroup}%6AsoE106]\aftergroup\sayfouretc% E107]\say{ii}%E108S}XT*estnfour:GMakesuretheimplementationisn'tleakingthings.UThisjustmakes IsureUUthat\aftergroupisitsnormalreasonableself.E109S\say{Testfour...(1--3)}E110S{\say{i}\aftergroup\saythree\say{ii}}XT*estf ve:Nesting,Laftergroup,catcoGdes,grouping.Thisisthe`torture'test IIGgaveotocomp.text.tex,6slightlycorrected(oGops)andamended.CItensuresthatInestedJgroupsand\doaftersworkpropGerly(thelatterisactuallymorelikelythanImightUUbGeimagined).E111S\say{Testfive...(1--14)} E112S\def\sayten{\say{x}}E113S\def\saythirteen{\say{xiii}}E114S\def\sayfourteen{\say{xiv}}E115S\doafter\sayfourteen\begingroup%E116]\say{i}%E117]{\say{ii}\aftergroup\sayfour\say{iii}}%E118]\def\saynum{\say{viii}}%E119]\doafter\sayten{%E120f\say{v}%E121f\def\saynum{\say{vii}}%E122f\catcode`\@=11%E123f\aftergroup\saynum%E124f\say{vi}%E125f\at@name%E126f\saynum%E127]}%E128]\say{xi}%E129]\aftergroup\saythirteen%E130]\say{xii}%E131S\endgroupE132S\endE133Sh=test_iXThat'sUUit.qAllpresentandcorrect.*8I/Nq cmbx12AppendixꨍIAenTheffGNUGeneralPublicLicenceIThecLfollowingisthetextoftheGNUcHGeneralPublicLicence,funderthetermsof IwhichUUthissoftwareisdistrubuted."UyGNUTGENERALPUBLICLICENSEmV*ersionUU2,June1991}bCopyrightUU(C)1989,1991F*reeSoftwareUUFoundation,Inc.7L souJ675UUMassAve,Cambridge,MA02139,USA sbEveryoneUUispGermittedtocopyanddistributeverbatimcopies1ofUUthislicensedoGcument,butchangingitisnotallowed.6IA.1k1PreambleuTIThe{licensesformostsoftware{aredesignedtotakeawayyourfreedomtoshareandIchange)@it.cBycontrast,2theGNU)5GeneralPublicLicenseisintendedtoguaranteeIyour freedomtoshareandchangefreesoftware|tomakesurethesoftwareisfreeIfor1allitsusers.eThisGeneralPublicLicenseappliestomostoftheF*reeSoftwareIF*oundation'ssoftwareandtoanyotherprogramwhoseauthorscommittousingIit.A(SomeotherF*reeSoftwareFoundationsoftwareiscoveredbytheGNULibraryIGeneralUUPublicLicenseinstead.)qY*oucanapplyittoyourprograms,toGo.XWhenwespGeakoffreesoftware,qwearereferringtofreedom,qnotprice.=OurIGeneralPublicLicensesaredesignedtomakesurethatyouhavethefreedomtoIdistributeՇcopiesoffreesoftwareՇ(andchargeforthisserviceifyouwish),thatyouIreceive4sourcecoGdeorcangetitifyouwantit,thatyoucanchangethesoftwareorIuse"piecesofitinnewfreeprograms;3"andthatyouknowyoucandothesethings.XT*oprotectyourrights,weneedtomakerestrictionsthatforbidanyonetodenyIyouTtheserightsortoaskyoutosurrendertherights.WrTheserestrictionstranslateItocertainrespGonsibilitiesforyouifyoudistributecopiesofthesoftware,$orifyouImoGdifyUUit.XF*oro"example,uifyoudistributecopiesofsuchaprogram,uwhethergratisorforIaġfee,tyoumustgivetherecipientsalltherightsthatyouhave.Y*oumustmakeIsureTMthatthey*,TtoGo,receiveTMorcangetthesourcecode.qoAndyoumustshowthemItheseUUtermssotheyknowtheirrights.XW*eprotectyourrightswithtwosteps:"(1)copyrightthesoftware,֘and(2)o erIyouthislicensewhichgivesyoulegalpGermissiontocopy*,bdistributeand/ormoGdifyItheUUsoftware.XAlso,bforeachauthor'sprotectionandours,wewanttomakecertainthatIeveryoneunderstandsthatthereisnowarrantyforthisfreesoftware. eIftheIsoftware%ismoGdi edbysomeoneelseandpassedon,wewantitsrecipientstoIknowthatwhattheyhaveisnottheoriginal, %sothatanyproblemsintroGducedbyIothersUUwillnotre ectontheoriginalauthors'reputations.XFinally*,yany>freeprogramisthreatenedconstantlybysoftwarepatents.-W*eIwish(toavoid(thedangerthatredistributorsofafreeprogramwillindividuallyIobtain)patentlicenses,2ine ectmakingtheprogramproprietary*.cETo)preventthis,Iwe]bhavemadeitclearthatanypatentmustbGelicensedforeveryone'sfreeuseorInotUUlicensedatall.XTheBprecisetermsandconditionsforcopying,}IdistributionandmoGdi cationIfollow.IA.2k1Termsqandconditionsforcopying,lMdistributionandk1mo`di cationuTU80.bThisLicenseappliestoanyprogramorotherworkwhichcontainsanoticebplacedbythecopyrightholdersayingitmaybGedistributedunderthetermsbofthisGeneralPublicLicense.KThe\Program",bGelow,referstoanysuchbprogramorwork,Tanda\workbasedontheProgram"meanseitherthebProgramVoranyderivqativeworkundercopyrightlaw:tthatistosay*,W0awork8 T(sobcontainingMtheProgramorapGortionofit,eitherverbatimorwithmoGdi- b cationsrand/ortranslatedintoanotherlanguage.[(Hereinafter,ytranslationbiseincludedwithoutlimitationintheterm\moGdi cation".)EachlicenseeisbaddressedUUas\you".bActivities3otherthancopying,mdistributionandmoGdi cationarenotcoveredbbyA,thisLicense;GtheyareoutsideitsscopGe.kTheactofrunningtheProgrambisgnotrestricted,ͫandtheoutputfromtheProgramiscoveredgonlyifitsbcontentsRyconstituteaworkbasedontheProgram(indepGendentofhavingbbGeenmadebyrunningtheProgram).BWhetherthatistruedependsonwhatbtheUUProgramdoGes.U81.bY*oucmaycopyanddistributeverbatimcopiesoftheProgram'ssourcecoGdebas`youreceiveit,inanymedium,providedthatyouconspicuouslyandappro-bpriately\publishoneachcopyanappropriatecopyrightnoticeanddisclaimerbof\warranty;`ZkeepintactallthenoticesthatrefertothisLicenseandtothebabsencecofanywarranty;andgiveanyotherrecipientsoftheProgramabcopyUUofthisLicensealongwiththeProgram.bY*ouqmaychargeafeeforthephysicalactoftransferringacopy*,I7andyoubmayUUatyouroptiono erwarrantyprotectioninexchangeforafee.U82.bY*oujmaymoGdifyyourcopyorcopiesoftheProgramoranypGortionofit,bthusformingaworkbasedontheProgram,)2andcopyanddistributesuchbmoGdi cations^orworkunderthetermsofSection1above,provided^thatyoubalsoUUmeetalloftheseconditions:@f8(a)xY*ou'mustcausethemoGdi ed lestocarryprominentnoticesstatingxthatUUyouchangedthe lesandthedateofanychange.e(b)xY*ou)Tmustcauseanyworkthatyoudistributeorpublish,2!thatinwholexor)inpartcontainsorisderivedfromtheProgramoranypartthereof,xto3bGelicensedasawholeatnochargetoallthirdpartiesunderthextermsUUofthisLicense.f(c)xIfthemoGdi edprogramnormallyreadscommandsinteractivelywhenxrun,you*mustcauseit,whenstartedrunningforsuchinteractiveuseinxthe\Amostordinaryway*,]to\AprintordisplayanannouncementincludingxanAappropriatecopyrightAnoticeandanoticethatthereisnowarrantyx(orifabpatenttlicensewouldnotpGermitroyalty-freeredistributionoftheProgrambyballrthosewhoreceivecopiesdirectlyorindirectlythroughyou,thentheonlybwayqyoucouldsatisfybGothitandthisLicensewouldbGetorefrainentirelybfromUUdistributionoftheProgram.bIfnanypGortionofthissectionisheldinvqalidorunenforceableunderanybparticular;circumstance,@thebalanceofthesectionisintendedtoapplyandbtheUUsectionasawholeisintendedtoapplyinothercircumstances.bIt *isnotthepurpGoseofthissectiontoinduceyoutoinfringeanypatentsborAotherpropGertyrightclaimsortocontestvqalidityofanysuchclaims;Gthisbsection?hasthesolepurpGoseofprotectingtheintegrity?ofthefreesoftwarebdistributionΫsystem,whichisimplementedbypubliclicensepractices.DManybpGeople`havemadegenerouscontributionstothewiderangeofsoftwaredis-btributed)throughthatsysteminrelianceonconsistentapplicationofthatbsystem;3itisuptotheauthor/donortodecideifheorsheiswillingtodis-btributesoftwarethroughanyothersystemandalicenseecannotimpGosethatbchoice.bThisAsectionisintendedtomakethoroughlyclearwhatisbGelievedtobGeabconsequenceUUoftherestofthisLicense.U88.bIffthedistributionand/oruseoftheProgramisrestrictedincertaincountriesbeitherTbypatentsorbycopyrightedinterfaces,Ttheoriginalcopyrightholderbwho8placestheProgramunderthisLicensemayaddanexplicitgeograph-bicalI1distributionlimitationexcludingthosecountries,KsothatdistributionisbpGermittedonlyinoramongcountriesnotthusexcluded.Insuchcase,thisbLicense/incorpGoratesthelimitationasifwritteninthebodyofthisLicense.U89.bTheF*reeSoftwareFoundationmaypublishrevisedand/ornewversionsofbthe.GeneralPublicLicensefromtimetotime.SuchnewversionswillbGe11 Ơsobsimilarginspirittothepresentversion,butmaydi erindetailtoaddress bnewUUproblemsorconcerns.bEachversionisgivenadistinguishingversionnumbGer.IftheProgramspe-bci esWaversionnumbGerofthisLicensewhichappliestoitand\anylaterbversion",youhavetheoptionoffollowingthetermsandconditionseitherofbthatT"versionorofanylaterversionpublishedbytheF*reeSoftwareF*ounda-btion.!If\theProgramdoGesnotspecifyaversionnumbGerofthisLicense,^youbmayUUchoGoseanyversioneverpublishedbytheF*reeSoftwareF*oundation.P810.bIfB[youwishtoincorpGoratepartsoftheProgramintootherfreeprogramsbwhosefordamages,uincludinganygeneral,uspQecial,incidental>orcon-bsequen9tialqdamagesarisingoutoftheuseorinabilitytousethebprogramg(includingbutnotlimitedtolossofdataordatabQeingbrenderedinaccurateorlossessustainedb9yyouorthirdpartiesorabfailureoftheProgramtoopQeratewithan9yotherprograms),Tevenbif8suc9hholderorotherpartyhasbQeenadvisedofthepossibilit9yofbsuc9hTdamages.sENDTOFTERMSANDCONDITIONS6IA.3k1App`endix:How{toApplyTheseTermstoYourNewk1ProgramsuTIIf youdevelopanewprogram,OandyouwantittobGeofthegreatestpossibleusetoItheapublic,"thebGestwayatoachieveathisistomakeitfreesoftwarewhicheveryoneIcanUUredistributeandchangeundertheseterms.12 rsoXT*o~doso,/attachthefollowingnoticestotheprogram.|AItissafesttoattach Ithemktothestartofeachsource letomoste ectivelyconveytheexclusionofIwarranty;VandVMeach leshouldhaveatleastthe\copyright"lineandapGointertoIwhereUUthefullnoticeisfound.I ICopyright(C)19yy s,IThisprogramisfreesoftware;youcanredistributeitand/ormodifyIitunderthetermsoftheGNUGeneralPublicLicenseaspublishedbyItheFreeSoftwareFoundation;eitherversion2oftheLicense,orI(atyouroption)anylaterversion.IThisprogramisdistributedinthehopethatitwillbeuseful,IbutWITHOUTANYWARRANTY;withouteventheimpliedwarrantyofIMERCHANTABILITYorFITNESSFORAPARTICULARPURPOSE. s,SeetheIGNUGeneralPublicLicenseformoredetails.IYoushouldhavereceivedacopyoftheGNUGeneralPublicLicenseIalongwiththisprogram;ifnot,writetotheFreeSoftwareIFoundation,Inc.,675MassAve,Cambridge,MA02139,USA.XAlsoUUaddinformationonhowtocontactyoubyelectronicandpapGermail. XIf theprogramisinteractive,make itoutputashortnoticelikethiswhenitIstartsUUinaninteractiveUUmoGde:IGnomovisionversion69,Copyright(C)19yynameofauthor IGnomovisioncomeswithABSOLUTELYNOWARRANTY;fordetailstype`showw'.IThisisfreesoftware,andyouarewelcometoredistributeitIundercertainconditions;type`showc'fordetails.XThedhypGotheticalcommands`showw'and`showc'shouldshowtheappropriate IpartsoftheGeneralPublicLicense.Ofcourse,5pthecommandsyouusemaybGeIcallednsomethingotherthan`showw'and`showc';theycouldevenbGemouse-clicksIorUUmenuitems{whateversuitsyourprogram.XY*oushouldalsogetyouremployer(ifyouworkasaprogrammer)oryourIschoGol,&Kifany*,tosigna\copyrightdisclaimer"fortheprogram,ifnecessary*.^-HereIisUUasample;alterthenames:IYoyodyne,Inc.,herebydisclaimsallcopyrightinterestintheprogram I`Gnomovision'(whichmakespassesatcompilers)writtenbyJamesHacker.I,1April1989ITyCoon,PresidentofViceXThis4GeneralPublicLicensedoGesnotpermitincorporatingyourprograminto Iproprietary[programs."Ifyourprogramisasubroutinelibrary*,youmayconsiderIitmoreusefultopGermitlinkingproprietaryapplicationswiththelibrary*.3CIfthisIiswhatyouwanttodo,usetheGNULibraryGeneralPublicLicenseinsteadofIthisUULicense.13BsoIIndexIThe(italicnumbGers(denotethepageswherethecorrespondingentryisdescribed, InumbGers1)underlinedpointtothede nition,8eallothersindicatetheplaceswhereitIisUUused.I0t : cmbx9SymCbKols I\@3>}.΍}.}.}.}.}.}.}.}.}.}.}.}.}.}. I2,T68,71,74,122I\@@aftergroup- }.΍}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.g}.΍}.}. -3,T5,11,22,40,51,60,62,64I\@after@aftertokenT}.΍}.}.}.}.}.}.}.}.}. 38,T53Tfe ?I\@after@aftertoken@ifč}.΍}.}.}.}.}.}.}. 56,T58I\@after@all}.΍}.}.}.}.}.}.}.}.}.}.}.}. X$38,T43,51I\@after@token- }.΍}.}.}.}.}.}.}.}.}.}.}.}.}. 22,T24Tfe ?I\@after@token@iz}.΍}.}.}.}.}.}.}.}.}.}.}. 32,T34Tfe ?I\@let@token}.΍}.}.}.}.}.}.}.}. ,6,T9,56,59,61I\@my@aftergroupz}.΍}.}.}.}.}.}.}.}.}.}.}. 10,T13Tfe ?I\@prepare@afterz}.΍}.}.}.}.}.}.}.}.}.}.}. 11,T44Tfe ?I\@prepare@after@iyꍑ}.΍}.}.}.}.}.}.}.}.}. 46,T49I\@start@after@group}.΍}.}.}.}.}. X$25,T28,50I\@tempaƈ}.΍}.}.}.}.}.}.}.}.}.}.}.}.}. *5,T11,64,65;dAI\afterassignment}.΍}.}.}.}.}.}.}.}.}.}.}.}.}. yz6I\aftergroup}.΍}.}.}.}.}.}.}. ?L3,T10,72,82,g87{90,92{106,110,117,123,129I\ag@cnt@globalB}.΍}. R14,T19,21,30,37,45I\ag@cnt@local h13,T14,17,21,31,37,45I\at@name}.΍}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}. 72,T125g{CI\clubpenaltyYҍ}.΍}.}.}.}.}.}.}.}.}.}.}.}.}.}. 31,T36I\count@ƈ}.΍}.}.}.}.}.}.}.}.}.}. Q17{19,T30,35,36+DI\doafter}.΍}.}.}. 1,T3TfeR,T78,82,85,115,119\doafter@i@0}.΍}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}. K6,T8RApE \endL}.΍}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.L132RgMF\futurelet@0}.΍}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}. fJ56Q€R\romannumeral- }.΍}.}.}.}.}.}.}.}.}.}.}.}.}.}.}. fJ89RʮS\sayL}.΍}.}.}.}.}.}.}.}.}.}.}.}.}.}.}. s73,T75{84, 86,׀87,95,100,107,109{114,116{118,120,121,124,128,130\sayfive}.΍}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}. 84,T85\sayfour}.΍}.}.}.}.}.}.}.}.}.}.}.}.}. D81,T82,117\sayfouretc}.΍}.}.}.}.}.}.}.}.}.}.}.}.}.}. 93,T106\sayfourteenYҍ}.΍}.}.}.}.}.}.}.}.}.}.}.}. rp114,T115\saynine}.΍}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}. 72,T73\saynumƈ}.΍}.}.}.}.}.}.}.}.}. =118,T121,123,126\saytenƈ}.΍}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}. rp112,T119\saythirteenYҍ}.΍}.}.}.}.}.}.}.}.}.}.}.}. rp113,T129\saythreel}.΍}.}.}.}.}.}.}.}.}.}.}.}. D80,T82,110\saytwoƈ}.΍}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}. 77,T78R T\toks@P}.΍}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}. 55,T6414; 0t : cmbx9/Nq cmbx12, cmmi10K`y cmr10ٓRcmr7O line10