#undef	TRIP
#undef	TRAP
#define	STAT
#undef	DEBUG
#include "../common/texmf.h"
#define memmax 262140L 
#define memmin 0 
#define bufsize 3000 
#define errorline 79 
#define halferrorline 50 
#define maxprintline 79 
#define stacksize 300 
#define maxinopen 15 
#define fontmax 255 
#define fontmemsize 72000L 
#define paramsize 60 
#define nestsize 40 
#define maxstrings 7500 
#define stringvacancies 74000L 
#define poolsize 100000L 
#define savesize 4000 
#define triesize 24000 
#define trieopsize 750 
#define negtrieopsize -750 
#define mintrieop 0 
#define maxtrieop 500 
#define dvibufsize 16384 
#define poolname "sitex.pool" 
#define memtop 262140L 
#define maxwl 64 
#define sonderzeichen 0 
#define bsta 1 
#define bstb 2 
#define bstc 3 
#define bstd 4 
#define bste 5 
#define bstf 6 
#define bstg 7 
#define bsth 8 
#define bsti 9 
#define bstj 10 
#define bstk 11 
#define bstl 12 
#define bstm 13 
#define bstn 14 
#define bsto 15 
#define bstp 16 
#define bstq 17 
#define bstr 18 
#define bsts 19 
#define bstt 20 
#define bstu 21 
#define bstv 22 
#define bstw 23 
#define bstx 24 
#define bsty 25 
#define bstz 26 
#define bstae 27 
#define bstoe 28 
#define bstue 29 
#define bstsz 30 
#define trennzeichen 31 
#define keine 1 
#define neben 2 
#define nebenck 3 
#define haupt 4 
#define haupt3 5 
#define tabsize 8191 
#define specletterID 4321 
#define voka 1 
#define voke 2 
#define voki 3 
#define voko 4 
#define voku 5 
#define vokae 6 
#define vokoe 7 
#define vokue 8 
#define vokie 9 
#define vokai 10 
#define vokei 11 
#define vokau 12 
#define vokaeu 13 
#define vokeu 14 
#define voky 15 
#define kons 16 
typedef unsigned char ASCIIcode  ; 
typedef unsigned char eightbits  ; 
typedef integer poolpointer  ; 
typedef integer strnumber  ; 
typedef unsigned char packedASCIIcode  ; 
typedef integer scaled  ; 
typedef integer nonnegativeinteger  ; 
typedef schar smallnumber  ; 
typedef unsigned char quarterword  ; 
typedef integer halfword  ; 
typedef schar twochoices  ; 
typedef schar fourchoices  ; 
#include "memory.h"
typedef schar glueord  ; 
typedef struct {
    short modefield ; 
  halfword headfield, tailfield ; 
  integer pgfield, mlfield ; 
  memoryword auxfield ; 
  quarterword lhmfield, rhmfield ; 
} liststaterecord  ; 
typedef schar groupcode  ; 
typedef struct {
    quarterword statefield, indexfield ; 
  halfword startfield, locfield, limitfield, namefield ; 
} instaterecord  ; 
typedef integer internalfontnumber  ; 
typedef integer fontindex  ; 
typedef integer dviindex  ; 
typedef integer trieopcode  ; 
typedef integer triepointer  ; 
typedef eightbits string80 [81] ; 
typedef eightbits buchstabe  ; 
typedef short aword [maxwl + 1] ; 
typedef aword wort  ; 
typedef boolean sperrvektor [maxwl + 1] ; 
typedef boolean dudt [maxwl + 1] ; 
typedef integer trennvektor [maxwl + 1] ; 
typedef buchstabe ktabtype [256] ; 
typedef unsigned long verdschlue  ; 
typedef verdschlue varr [maxwl + 1] ; 
typedef integer intarr [maxwl + 1] ; 
typedef struct {
    boolean ausnahme ; 
  boolean untrennbar ; 
  integer erste ; 
  integer zweite ; 
  boolean endung, vorsilbe, stamm, ehervor, stammallein ; 
} infotype  ; 
typedef eightbits infobyte  ; 
typedef struct {
    verdschlue tabv ; 
  infobyte tabb ; 
  boolean frei ; 
  boolean wiederfrei ; 
} tableentry  ; 
typedef eightbits hashelement [4] ; 
typedef hashelement htabtype [tabsize + 1] ; 
typedef short hyphpointer  ; 
EXTERN integer bad  ; 
EXTERN ASCIIcode xord[256]  ; 
EXTERN ASCIIcode xchr[256]  ; 
EXTERN char nameoffile[FILENAMESIZE + 1]  ; 
EXTERN integer namelength  ; 
EXTERN ASCIIcode buffer[bufsize + 1]  ; 
EXTERN integer first  ; 
EXTERN integer last  ; 
EXTERN integer maxbufstack  ; 
EXTERN packedASCIIcode strpool[poolsize + 1]  ; 
EXTERN poolpointer strstart[maxstrings + 1]  ; 
EXTERN poolpointer poolptr  ; 
EXTERN strnumber strptr  ; 
EXTERN poolpointer initpoolptr  ; 
EXTERN strnumber initstrptr  ; 
#ifdef INITEX
EXTERN alphafile poolfile  ; 
#endif /* INITEX */
EXTERN alphafile logfile  ; 
EXTERN schar selector  ; 
EXTERN schar dig[23]  ; 
EXTERN integer tally  ; 
EXTERN integer termoffset  ; 
EXTERN integer fileoffset  ; 
EXTERN ASCIIcode trickbuf[errorline + 1]  ; 
EXTERN integer trickcount  ; 
EXTERN integer firstcount  ; 
EXTERN schar interaction  ; 
EXTERN boolean deletionsallowed  ; 
EXTERN schar history  ; 
EXTERN schar errorcount  ; 
EXTERN strnumber helpline[6]  ; 
EXTERN schar helpptr  ; 
EXTERN boolean useerrhelp  ; 
EXTERN integer interrupt  ; 
EXTERN boolean OKtointerrupt  ; 
EXTERN boolean aritherror  ; 
EXTERN scaled remainder  ; 
EXTERN halfword tempptr  ; 
EXTERN memoryword 
#define zmem (zzzaa - (int)(memmin))
  zzzaa[memmax - memmin + 1]  ; 
EXTERN halfword lomemmax  ; 
EXTERN halfword himemmin  ; 
EXTERN integer varused, dynused  ; 
EXTERN halfword avail  ; 
EXTERN halfword memend  ; 
EXTERN halfword rover  ; 
#ifdef DEBUG
EXTERN boolean 
#define freearr (zzzab - (int)(memmin))
  zzzab[memmax - memmin + 1]  ; 
EXTERN boolean 
#define wasfree (zzzac - (int)(memmin))
  zzzac[memmax - memmin + 1]  ; 
EXTERN halfword wasmemend, waslomax, washimin  ; 
EXTERN boolean panicking  ; 
#endif /* DEBUG */
EXTERN integer fontinshortdisplay  ; 
EXTERN integer depththreshold  ; 
EXTERN integer breadthmax  ; 
EXTERN liststaterecord nest[nestsize + 1]  ; 
EXTERN integer nestptr  ; 
EXTERN integer maxneststack  ; 
EXTERN liststaterecord curlist  ; 
EXTERN short shownmode  ; 
EXTERN schar oldsetting  ; 
EXTERN memoryword zeqtb[13510]  ; 
EXTERN quarterword 
#define xeqlevel (zzzad -12663)
  zzzad[847]  ; 
EXTERN twohalves 
#define hash (zzzae -514)
  zzzae[9767]  ; 
EXTERN halfword hashused  ; 
EXTERN boolean nonewcontrolsequence  ; 
EXTERN integer cscount  ; 
EXTERN memoryword savestack[savesize + 1]  ; 
EXTERN integer saveptr  ; 
EXTERN integer maxsavestack  ; 
EXTERN quarterword curlevel  ; 
EXTERN groupcode curgroup  ; 
EXTERN integer curboundary  ; 
EXTERN integer magset  ; 
EXTERN eightbits curcmd  ; 
EXTERN halfword curchr  ; 
EXTERN halfword curcs  ; 
EXTERN halfword curtok  ; 
EXTERN instaterecord inputstack[stacksize + 1]  ; 
EXTERN integer inputptr  ; 
EXTERN integer maxinstack  ; 
EXTERN instaterecord curinput  ; 
EXTERN integer inopen  ; 
EXTERN integer openparens  ; 
EXTERN alphafile inputfile[maxinopen + 1]  ; 
EXTERN integer line  ; 
EXTERN integer linestack[maxinopen + 1]  ; 
EXTERN schar scannerstatus  ; 
EXTERN halfword warningindex  ; 
EXTERN halfword defref  ; 
EXTERN halfword paramstack[paramsize + 1]  ; 
EXTERN integer paramptr  ; 
EXTERN integer maxparamstack  ; 
EXTERN integer alignstate  ; 
EXTERN integer baseptr  ; 
EXTERN halfword parloc  ; 
EXTERN halfword partoken  ; 
EXTERN boolean forceeof  ; 
EXTERN halfword curmark[5]  ; 
EXTERN schar longstate  ; 
EXTERN halfword pstack[9]  ; 
EXTERN integer curval  ; 
EXTERN schar curvallevel  ; 
EXTERN smallnumber radix  ; 
EXTERN glueord curorder  ; 
EXTERN alphafile readfile[16]  ; 
EXTERN schar readopen[17]  ; 
EXTERN halfword condptr  ; 
EXTERN schar iflimit  ; 
EXTERN smallnumber curif  ; 
EXTERN integer ifline  ; 
EXTERN integer skipline  ; 
EXTERN strnumber curname  ; 
EXTERN strnumber curarea  ; 
EXTERN strnumber curext  ; 
EXTERN poolpointer areadelimiter  ; 
EXTERN poolpointer extdelimiter  ; 
EXTERN integer formatdefaultlength  ; 
EXTERN ccharpointer TEXformatdefault  ; 
EXTERN boolean nameinprogress  ; 
EXTERN strnumber jobname  ; 
EXTERN boolean logopened  ; 
EXTERN bytefile dvifile  ; 
EXTERN strnumber outputfilename  ; 
EXTERN strnumber logname  ; 
EXTERN bytefile tfmfile  ; 
EXTERN memoryword fontinfo[fontmemsize + 1]  ; 
EXTERN fontindex fmemptr  ; 
EXTERN internalfontnumber fontptr  ; 
EXTERN fourquarters fontcheck[fontmax + 1]  ; 
EXTERN scaled fontsize[fontmax + 1]  ; 
EXTERN scaled fontdsize[fontmax + 1]  ; 
EXTERN halfword fontparams[fontmax + 1]  ; 
EXTERN strnumber fontname[fontmax + 1]  ; 
EXTERN strnumber fontarea[fontmax + 1]  ; 
EXTERN eightbits fontbc[fontmax + 1]  ; 
EXTERN eightbits fontec[fontmax + 1]  ; 
EXTERN halfword fontglue[fontmax + 1]  ; 
EXTERN boolean fontused[fontmax + 1]  ; 
EXTERN integer hyphenchar[fontmax + 1]  ; 
EXTERN integer skewchar[fontmax + 1]  ; 
EXTERN fontindex bcharlabel[fontmax + 1]  ; 
EXTERN short fontbchar[fontmax + 1]  ; 
EXTERN short fontfalsebchar[fontmax + 1]  ; 
EXTERN integer charbase[fontmax + 1]  ; 
EXTERN integer widthbase[fontmax + 1]  ; 
EXTERN integer heightbase[fontmax + 1]  ; 
EXTERN integer depthbase[fontmax + 1]  ; 
EXTERN integer italicbase[fontmax + 1]  ; 
EXTERN integer ligkernbase[fontmax + 1]  ; 
EXTERN integer kernbase[fontmax + 1]  ; 
EXTERN integer extenbase[fontmax + 1]  ; 
EXTERN integer parambase[fontmax + 1]  ; 
EXTERN fourquarters nullcharacter  ; 
EXTERN integer totalpages  ; 
EXTERN scaled maxv  ; 
EXTERN scaled maxh  ; 
EXTERN integer maxpush  ; 
EXTERN integer lastbop  ; 
EXTERN integer deadcycles  ; 
EXTERN boolean doingleaders  ; 
EXTERN quarterword c, f  ; 
EXTERN scaled ruleht, ruledp, rulewd  ; 
EXTERN halfword g  ; 
EXTERN integer lq, lr  ; 
EXTERN eightbits dvibuf[dvibufsize + 1]  ; 
EXTERN dviindex halfbuf  ; 
EXTERN dviindex dvilimit  ; 
EXTERN dviindex dviptr  ; 
EXTERN integer dvioffset  ; 
EXTERN integer dvigone  ; 
EXTERN halfword downptr, rightptr  ; 
EXTERN scaled dvih, dviv  ; 
EXTERN scaled curh, curv  ; 
EXTERN internalfontnumber dvif  ; 
EXTERN integer curs  ; 
EXTERN scaled totalstretch[4], totalshrink[4]  ; 
EXTERN integer lastbadness  ; 
EXTERN halfword adjusttail  ; 
EXTERN integer packbeginline  ; 
EXTERN twohalves emptyfield  ; 
EXTERN fourquarters nulldelimiter  ; 
EXTERN halfword curmlist  ; 
EXTERN smallnumber curstyle  ; 
EXTERN smallnumber cursize  ; 
EXTERN scaled curmu  ; 
EXTERN boolean mlistpenalties  ; 
EXTERN internalfontnumber curf  ; 
EXTERN quarterword curc  ; 
EXTERN fourquarters curi  ; 
EXTERN integer magicoffset  ; 
EXTERN halfword curalign  ; 
EXTERN halfword curspan  ; 
EXTERN halfword curloop  ; 
EXTERN halfword alignptr  ; 
EXTERN halfword curhead, curtail  ; 
EXTERN halfword justbox  ; 
EXTERN halfword passive  ; 
EXTERN halfword printednode  ; 
EXTERN halfword passnumber  ; 
EXTERN scaled activewidth[7]  ; 
EXTERN scaled curactivewidth[7]  ; 
EXTERN scaled background[7]  ; 
EXTERN scaled breakwidth[7]  ; 
EXTERN boolean noshrinkerroryet  ; 
EXTERN halfword curp  ; 
EXTERN boolean secondpass  ; 
EXTERN boolean finalpass  ; 
EXTERN integer threshold  ; 
EXTERN integer minimaldemerits[4]  ; 
EXTERN integer minimumdemerits  ; 
EXTERN halfword bestplace[4]  ; 
EXTERN halfword bestplline[4]  ; 
EXTERN scaled discwidth  ; 
EXTERN halfword easyline  ; 
EXTERN halfword lastspecialline  ; 
EXTERN scaled firstwidth  ; 
EXTERN scaled secondwidth  ; 
EXTERN scaled firstindent  ; 
EXTERN scaled secondindent  ; 
EXTERN halfword bestbet  ; 
EXTERN integer fewestdemerits  ; 
EXTERN halfword bestline  ; 
EXTERN integer actuallooseness  ; 
EXTERN integer linediff  ; 
EXTERN aword hc  ; 
EXTERN smallnumber hn  ; 
EXTERN halfword ha, hb  ; 
EXTERN integer hyfdebi, hyfdebj  ; 
EXTERN boolean hyfdebb  ; 
EXTERN halfword sip, siq, sir, sis  ; 
EXTERN internalfontnumber hf  ; 
EXTERN short hu[64]  ; 
EXTERN integer hyfchar  ; 
EXTERN ASCIIcode curlang  ; 
EXTERN integer lhyf, rhyf  ; 
EXTERN halfword 
#define dirtyumlaut (zzzaf +1)
  zzzaf[66]  ; 
EXTERN schar hyf[65]  ; 
EXTERN halfword initlist  ; 
EXTERN boolean initlig  ; 
EXTERN boolean initlft  ; 
EXTERN integer hyfpen[65]  ; 
EXTERN trennvektor hyfsi  ; 
EXTERN wort hcsi  ; 
EXTERN halfword hyfdisc[65]  ; 
EXTERN smallnumber hyphenpassed  ; 
EXTERN halfword curl, curr  ; 
EXTERN halfword curq  ; 
EXTERN halfword ligstack  ; 
EXTERN boolean ligaturepresent  ; 
EXTERN boolean lfthit, rthit  ; 
EXTERN halfword trietrl[triesize + 1]  ; 
EXTERN halfword trietro[triesize + 1]  ; 
EXTERN quarterword trietrc[triesize + 1]  ; 
EXTERN smallnumber hyfdistance[trieopsize + 1]  ; 
EXTERN smallnumber hyfnum[trieopsize + 1]  ; 
EXTERN quarterword hyfnext[trieopsize + 1]  ; 
EXTERN integer opstart[256]  ; 
EXTERN ktabtype ktab  ; 
EXTERN htabtype htab  ; 
EXTERN integer anzahl  ; 
EXTERN alphafile hashfile  ; 
EXTERN integer kombtab[6][6]  ; 
EXTERN boolean konsonant[31]  ; 
EXTERN integer revtab[256]  ; 
EXTERN strnumber hyphword[608]  ; 
EXTERN halfword hyphlist[608]  ; 
EXTERN hyphpointer hyphcount  ; 
#ifdef INITEX
EXTERN integer 
#define trieophash (zzzag - (int)(negtrieopsize))
  zzzag[trieopsize - negtrieopsize + 1]  ; 
EXTERN trieopcode trieused[256]  ; 
EXTERN ASCIIcode trieoplang[trieopsize + 1]  ; 
EXTERN trieopcode trieopval[trieopsize + 1]  ; 
EXTERN integer trieopptr  ; 
#endif /* INITEX */
EXTERN trieopcode maxopused  ; 
EXTERN boolean smallop  ; 
#ifdef INITEX
EXTERN packedASCIIcode triec[triesize + 1]  ; 
EXTERN trieopcode trieo[triesize + 1]  ; 
EXTERN triepointer triel[triesize + 1]  ; 
EXTERN triepointer trier[triesize + 1]  ; 
EXTERN triepointer trieptr  ; 
EXTERN triepointer triehash[triesize + 1]  ; 
#endif /* INITEX */
#ifdef INITEX
EXTERN boolean trietaken[triesize + 1]  ; 
EXTERN triepointer triemin[256]  ; 
EXTERN triepointer triemax  ; 
EXTERN boolean trienotready  ; 
#endif /* INITEX */
EXTERN scaled bestheightplusdepth  ; 
EXTERN halfword pagetail  ; 
EXTERN schar pagecontents  ; 
EXTERN scaled pagemaxdepth  ; 
EXTERN halfword bestpagebreak  ; 
EXTERN integer leastpagecost  ; 
EXTERN scaled bestsize  ; 
EXTERN scaled pagesofar[8]  ; 
EXTERN halfword lastglue  ; 
EXTERN integer lastpenalty  ; 
EXTERN scaled lastkern  ; 
EXTERN integer insertpenalties  ; 
EXTERN boolean outputactive  ; 
EXTERN internalfontnumber mainf  ; 
EXTERN fourquarters maini  ; 
EXTERN fourquarters mainj  ; 
EXTERN fontindex maink  ; 
EXTERN halfword mainp  ; 
EXTERN integer mains  ; 
EXTERN halfword bchar  ; 
EXTERN halfword falsebchar  ; 
EXTERN boolean cancelboundary  ; 
EXTERN boolean insdisc  ; 
EXTERN halfword curbox  ; 
EXTERN halfword aftertoken  ; 
EXTERN boolean longhelpseen  ; 
EXTERN strnumber formatident  ; 
EXTERN wordfile fmtfile  ; 
EXTERN integer readyalready  ; 
EXTERN alphafile writefile[16]  ; 
EXTERN boolean writeopen[18]  ; 
EXTERN halfword writeloc  ; 
EXTERN poolpointer editnamestart  ; 
EXTERN integer editnamelength, editline, tfmtemp  ; 

#include "coerce.h"