summaryrefslogtreecommitdiff
path: root/info/examples/tex-in-practice/texipexp.tex
diff options
context:
space:
mode:
Diffstat (limited to 'info/examples/tex-in-practice/texipexp.tex')
-rw-r--r--info/examples/tex-in-practice/texipexp.tex6888
1 files changed, 6888 insertions, 0 deletions
diff --git a/info/examples/tex-in-practice/texipexp.tex b/info/examples/tex-in-practice/texipexp.tex
new file mode 100644
index 0000000000..710fc3013e
--- /dev/null
+++ b/info/examples/tex-in-practice/texipexp.tex
@@ -0,0 +1,6888 @@
+% This is the inputd format source code file in a flat version
+% This file is generated based on running initex with all files
+% belonging to this format. Do NOT change this file, because
+% it is automatically generated directly from all the .tip
+% files. The same copyright which applies to the individual .tip
+% files applies to this file too, obviously
+% This macro source file is from the four volume series
+% \"TeX in Practice\" by Stephan von Bechtolsheim, published
+% 1993 by Springer-Verlag, New York.
+% Copyright 1993 Stephan von Bechtolsheim.
+% No warranty or liability is assumed.
+% This macro may be copied freely if no fees other than
+% media cost or shipping charges are charged and as long
+% as this copyright and the following source code itself
+% is not changed. Please see the series for further information.
+\input plain.tex
+\def\InputD #1{} \def\InputDList{}
+\catcode`\@ = 11
+\def\NameDef #1{%
+ \expandafter\def\csname #1\endcsname
+}
+\def\NameEdef #1{%
+ \expandafter\edef\csname #1\endcsname
+}
+\def\NameGdef #1{%
+ \expandafter\gdef\csname #1\endcsname
+}
+\def\NameXdef #1{%
+ \expandafter\xdef\csname #1\endcsname
+}
+\def\NameNewDef #1{%
+ \if\NameDefinedConditional{#1}%
+ \errmessage{\string\NameNewDef: "#1" already defined.}%
+ \fi
+ \NameDef{#1}%
+}
+\def\NameReDef #1{%
+ \if\NameDefinedConditional{#1}%
+ \else
+ \errmessage{\string\NameReDef: "#1" never defined before.}%
+ \fi
+ \NameDef{#1}%
+}
+\def\NameUse #1{\csname #1\endcsname}
+\def\NameUseFlagUndefined #1{%
+ \if\NameDefinedConditional{#1}%
+ \NameUse{#1}%
+ \else
+ \errmessage{\string\NameUseFlagUndefined: token "#1"
+ is undefined.}%
+ \fi
+}
+\newif\if@NameDefined
+\def\NameDefinedConditional #1{%
+ TT\fi
+ \expandafter\ifx\csname #1\endcsname \relax
+ \@NameDefinedfalse
+ \else
+ \@NameDefinedtrue
+ \fi
+ \if@NameDefined
+}
+\catcode`\@ = 12
+\NameDef{@InputD-namedef.tip}{}
+\def\AbsoluteDimension #1#2{%
+ \ifdim #1 < 0pt
+ #2 = -#1\relax
+ \else
+ #2 = #1\relax
+ \fi
+}
+\NameDef{@InputD-absdimen.tip}{}
+\def\AbsoluteValue #1#2{%
+ \ifnum #1<0
+ #2 = -#1\relax
+ \else
+ #2 = #1\relax
+ \fi
+}
+\NameDef{@InputD-absval.tip}{}
+\def\DefineAcronym #1#2#3{%
+ \def #1{%
+ #2 (#3)%
+ \gdef#1{#2}%
+ }%
+}
+\NameDef{@InputD-acronym.tip}{}
+\catcode`\@ = 11
+\newcount\@DoLoopNesting
+\@DoLoopNesting = 0
+\newcount\@DoLoopLimit
+\newcount\@DoLoopLimitTwo
+\newcount\@DoLoopLimitThree
+\def\DoLoop #1#2#3#4#5{%
+ \global\advance\@DoLoopNesting by 1
+ \ifnum\@DoLoopNesting > 3
+ \errmessage{\string\DoLoop: nesting beyond three levels
+ is not supported.}%
+ \fi
+ \ifnum #3 = 0
+ \errmessage{\string\DoLoop: step value (parameter 3) is 0!}%
+ \else
+ \ifcase\@DoLoopNesting
+ \or
+ \@DoLoop{#1}{#2}{#3}{#4}{#5}%
+ {\@DoLoopLimit}{\DoLoopBody}%
+ \or
+ \@DoLoop{#1}{#2}{#3}{#4}{#5}%
+ {\@DoLoopLimitTwo}{\DoLoopBodyTwo}%
+ \or
+ \@DoLoop{#1}{#2}{#3}{#4}{#5}%
+ {\@DoLoopLimitThree}{\DoLoopBodyThree}%
+ \fi
+ \fi
+ \global\advance\@DoLoopNesting by -1
+}
+\def\@DoLoop #1#2#3#4#5#6#7{%
+ \ifnum #3 > 0
+ #6 = #4%
+ \advance#6 by 1
+ #1 = #2%
+ \@DoLoopBodyPositive{#1}{#3}{#5}%
+ {#6}{#7}%
+ \else
+ #6 = #4%
+ \advance#6 by -1
+ #1 = #2%
+ \@DoLoopBodyNegative{#1}{#3}{#5}%
+ {#6}{#7}%
+ \fi
+ \@DoLoopIterate{#7}%
+}
+\def\@DoLoopBodyPositive #1#2#3#4#5{%
+ \def #5{%
+ \ifnum #1 < #4\relax
+ #3%
+ \advance #1 by #2%
+ }%
+}
+\def\@DoLoopBodyNegative #1#2#3#4#5{%
+ \def #5{%
+ \ifnum #1 > #4\relax
+ #3%
+ \advance #1 by #2%
+ }%
+}
+\def\@DoLoopIterate #1{%
+ #1\relax
+ \def\@DoLoopNext{\@DoLoopIterate{#1}}%
+ \else
+ \def\@DoLoopNext{\relax}%
+ \fi
+ \@DoLoopNext
+}
+\catcode`\@ = 12
+\NameDef{@InputD-doloop.tip}{}
+\catcode`\@ = 11
+\newcount\AdvanceByTabStopsCount
+\def\AdvanceByTabStops #1{%
+ \def\@MakeTabChars{}%
+ \DoLoop{\AdvanceByTabStopsCount}{2}{1}{#1}%
+ {\edef\@MakeTabChars{\@MakeTabChars&}}%
+ \@MakeTabChars
+}
+\catcode`\@ = 12
+\NameDef{@InputD-advtabst.tip}{}
+\newtoks\AfterEveryPar
+\AfterEveryPar = {}
+\catcode`\@ = 11
+\def\SetUpAfterEveryPar{%
+ \def\par{%
+ \ifhmode
+ \ifinner
+ \else
+ \endgraf
+ \the\AfterEveryPar
+ \fi
+ \fi
+ }%
+}
+\catcode`\@ = 12
+\NameDef{@InputD-aevpar.tip}{}
+\catcode`\@ = 11
+\newif\if@InRange
+\def\InRangeConditional #1#2#3{%
+ TT\fi
+ \@InRangetrue
+ \ifnum #1<#2\relax
+ \@InRangefalse
+ \fi
+ \ifnum #1>#3\relax
+ \@InRangefalse
+ \fi
+ \if@InRange
+}
+
+\def\CheckRange #1#2#3#4{%
+ \ifnum #1 < #2\relax
+ \errmessage{Value \number#1 \space out of range #2..#3: #4}%
+ \fi
+ \ifnum #1>#3\relax
+ \errmessage{Value \number#1 \space out of range #2..#3: #4}%
+ \fi
+}
+\def\CheckZeroOneRange #1#2{%
+ \CheckRange{#1}{0}{1}{#2}%
+}
+\catcode`\@ = 12
+\NameDef{@InputD-rangetst.tip}{}
+\catcode`\@ = 11
+\def\Sunday{0}
+\def\Monday{1}
+\def\Tuesday{2}
+\def\Wednesday{3}
+\def\Thursday{4}
+\def\Friday{5}
+\def\Saturday{6}
+\def\ProvideDayOfWeek #1#2#3{%
+ \CheckRange{#1}{0}{6}%
+ {\string\ProvideDayOfWeek: day of week outside
+ of 0 .. 6 range.}%
+ \ifcase #1\relax
+ \def#3{Sunday}\or
+ \def#3{Monday}\or
+ \def#3{Tuesday}\or
+ \def#3{Wednesday}\or
+ \def#3{Thursday}\or
+ \def#3{Friday}\or
+ \def#3{Saturday}%
+ \fi
+ \ifnum #2 = 0
+ \else
+ \def\@ProvideDayOfWeek ##1##2##3##4;{%
+ \def#3{##1##2##3}%
+ }%
+ \expandafter\@ProvideDayOfWeek#3;%
+ \fi
+}
+\def\PrintDayOfWeek #1#2{%
+ \ProvideDayOfWeek{#1}{#2}{\@PrintDayOfWeek}%
+ \@PrintDayOfWeek
+}
+\catcode`\@ = 12
+\NameDef{@InputD-dateofw.tip}{}
+\def\CheckLegalMonth #1{%
+ \CheckRange{#1}{1}{12}%
+ {\string\CheckLegalMonth: month #1 out of range.}%
+}
+\NameDef{@InputD-legmonth.tip}{}
+\def\CheckLegalYear #1{%
+ \ifnum #1 < \EarliestYearDate
+ \errmessage{\string\CheckLegalYear: year #1
+ < \the\EarliestYearDate\space
+ encountered, illegal.}%
+ \fi
+}
+\NameDef{@InputD-legyear.tip}{}
+\catcode`\@ = 11
+\newcount\@IModNCount
+\newcount\@IModNCountCopy
+\def\IModN #1#2#3{%
+ \@IModNCount = #1\relax
+ \@IModNCountCopy = #1\relax
+ \ifnum \@IModNCount < 0
+ \errmessage{\string\IModN: \string#1
+ (value \the\@IModNCount) is negative.}%
+ \fi
+ \ifnum #2< 1
+ \errmessage{\string\IModN: \string#2
+ (value #2) is negative or zero.}%
+ \fi
+ \divide\@IModNCount by #2\relax
+ \multiply\@IModNCount by #2\relax
+ #3 = \@IModNCountCopy
+ \advance #3by -\@IModNCount
+}
+\catcode`\@ = 12
+\NameDef{@InputD-imodn.tip}{}
+\catcode`\@ = 11
+\newif\if@LeapYear
+\def\LeapYearConditional #1{%
+ TT\fi
+ {%
+ \count0 = #1\relax
+ \IModN{\count0}{4}{\count1}%
+ \ifnum\count1 = 0
+ \global\@LeapYeartrue
+ \IModN{\count0}{100}{\count2}%
+ \IModN{\count0}{400}{\count3}%
+ \ifnum\count2 = 0
+ \global\@LeapYearfalse
+ \fi
+ \ifnum\count3 = 0
+ \global\@LeapYeartrue
+ \fi
+ \else
+ \global\@LeapYearfalse
+ \fi
+ }%
+ \if@LeapYear
+}
+\catcode`\@ = 12
+\NameDef{@InputD-isleapyr.tip}{}
+\def\NumberOfDaysInMonth #1#2#3{%
+ \CheckLegalYear{#1}%
+ \CheckLegalMonth{#2}%
+ \ifcase #2\relax
+ \or
+ #3 = 31
+ \or
+ #3 = 28
+ \if\LeapYearConditional{#1}%
+ #3 = 29
+ \fi
+ \or
+ #3 = 31
+ \or
+ #3 = 30
+ \or
+ #3 = 31
+ \or
+ #3 = 30
+ \or
+ #3 = 31
+ \or
+ #3 = 31
+ \or
+ #3 = 30
+ \or
+ #3 = 31
+ \or
+ #3 = 30
+ \or
+ #3 = 31
+ \fi
+}
+\NameDef{@InputD-ndaysmo.tip}{}
+\catcode`\@ = 11
+\newcount\@TempCheckDate
+\def\CheckDate #1#2#3{%
+ \CheckLegalYear{#1}%
+ \CheckLegalMonth{#2}%
+ \NumberOfDaysInMonth{#1}{#2}{\@TempCheckDate}%
+ \CheckRange{#3}{1}{\@TempCheckDate}%
+ {\string\CheckDate: provided date #1-#2-#3 is illegal.}%
+}
+\catcode`\@ = 12
+\NameDef{@InputD-legdate.tip}{}
+\def\CopyDate #1#2#3#4#5#6{%
+ #4 = #1\relax
+ #5 = #2\relax
+ #6 = #3\relax
+}
+\NameDef{@InputD-copydate.tip}{}
+\catcode`\@ = 11
+\newcount\@TempNextDay
+\def\NextDay #1#2#3#4#5#6{%
+ \CheckDate{#1}{#2}{#3}%
+ \CopyDate{#1}{#2}{#3}{#4}{#5}{#6}%
+ \advance #6 by 1
+ \NumberOfDaysInMonth{#1}{#2}{\@TempNextDay}%
+ \ifnum #6 > \@TempNextDay
+ #6 = 1
+ \advance #5 by 1
+ \ifnum #5 = 13
+ #5 = 1
+ \advance #4 by 1
+ \fi
+ \fi
+}
+\catcode`\@ = 12
+\NameDef{@InputD-nextday.tip}{}
+\def\NumberOfDaysInYear #1#2{%
+ \if\LeapYearConditional{#1}%
+ #2 = 366
+ \else
+ #2 = 365
+ \fi
+}
+\NameDef{@InputD-numdyr.tip}{}
+\catcode`\@ = 11
+\def\ProvideMonth #1#2#3{%
+ \CheckLegalMonth{#1}%
+ \ifcase #1\relax
+ \or
+ \def#3{January}\or
+ \def#3{February}\or
+ \def#3{March}\or
+ \def#3{April}\or
+ \def#3{May}\or
+ \def#3{June}\or
+ \def#3{July}\or
+ \def#3{August}\or
+ \def#3{September}\or
+ \def#3{October}\or
+ \def#3{November}\or
+ \def#3{December}%
+ \fi
+ \ifnum #2 = 1
+ \def\@TempProvideMonth ##1##2##3##4\@Del{%
+ \xdef#3{##1##2##3}%
+ }%
+ \expandafter\@TempProvideMonth#3\@Del
+ \fi
+}
+\def\PrintMonth #1#2{%
+ {%
+ \ProvideMonth{#1}{#2}{\@PrintMonth}%
+ \@PrintMonth
+ }%
+}
+\def\PrintCurrentMonth{%
+ \PrintMonth{\month}{0}%
+}
+\catcode`\@ = 12
+\NameDef{@InputD-prmonth.tip}{}
+\catcode`\@ = 11
+\newcount\@YearTemp
+\newcount\@YearTop
+\newcount\@MonthTemp
+\newcount\@MonthTop
+\newcount\@TempAD
+\def\ArbitraryDayOfWeek #1#2#3#4{%
+ \CheckDate{#1}{#2}{#3}%
+ #4 = \DayOfWeekOfEarliestDate
+ \@YearTop = #1\relax
+ \advance\@YearTop by -1
+ \DoLoop{\@YearTemp}{\EarliestYearDate}{1}{\@YearTop}{%
+ \NumberOfDaysInYear{\@YearTemp}{\@TempAD}%
+ \advance #4 by \@TempAD
+ }%
+ \IModN{#4}{7}{#4}%
+ \@MonthTop = #2\relax
+ \advance\@MonthTop by -1
+ \DoLoop{\@MonthTemp}{1}{1}{\@MonthTop}{%
+ \NumberOfDaysInMonth{#1}{\@MonthTemp}{\@TempAD}%
+ \advance #4 by \@TempAD
+ }%
+ \IModN{#4}{7}{#4}%
+ \advance #4 by #3\relax
+ \advance #4 by -1
+ \IModN{#4}{7}{#4}%
+}
+\catcode`\@ = 12
+\NameDef{@InputD-arbday.tip}{}
+\catcode`\@ = 11
+\newcount\@TempEarliest
+\newcount\EarliestYearDate
+\EarliestYearDate = 1583
+\newcount\DayOfWeekOfEarliestDate
+\DayOfWeekOfEarliestDate = \Saturday
+\def\VerifyInitDate{%
+ {%
+ \ArbitraryDayOfWeek{2000}{1}{1}{\@TempEarliest}%
+ \ifnum\@TempEarliest = \Saturday
+ \message{\string\VerifyInitDate: initialization
+ correct (initialization year:
+ \the\EarliestYearDate).}%
+ \else
+ \errmessage{\string\VerifyInitDate: January 1 of 2000
+ is a Saturday! Computation reports it is
+ day \the\@TempEarliest\space. Initialization error.}%
+ \fi
+ }%
+}
+\catcode`\@ = 12
+\NameDef{@InputD-earliest.tip}{}
+\catcode`\@ = 11
+\newcount\@TempPrevDay
+\def\PrevDay #1#2#3#4#5#6{%
+ \CheckDate{#1}{#2}{#3}%
+ \CopyDate{#1}{#2}{#3}{#4}{#5}{#6}%
+ \advance #6 by -1
+ \ifnum #6 = 0
+ \advance #5 by -1
+ \ifnum #5 = 0
+ #5 = 12
+ \advance #4 by -1
+ \fi
+ \NumberOfDaysInMonth{#4}{#5}{#6}%
+ \fi
+}
+\catcode`\@ = 12
+\NameDef{@InputD-prevday.tip}{}
+\catcode`\@ = 11
+\def\NextMonth #1#2#3#4{%
+ \CheckDate{#1}{#2}{1}%
+ #3 = #1\relax
+ #4 = #2\relax
+ \advance #4 by 1
+ \ifnum #4 = 13
+ #4 = 1
+ \advance #3 by 1
+ \fi
+}
+\catcode`\@ = 12
+\NameDef{@InputD-nextmon.tip}{}
+\catcode`\@ = 11
+\def\PrevMonth #1#2#3#4{%
+ \CheckDate{#1}{#2}{1}%
+ #3 = #1\relax
+ #4 = #2\relax
+ \advance #4 by -1
+ \ifnum #4 = 0
+ #4 = 12
+ \advance #3 by -1
+ \fi
+}
+\catcode`\@ = 12
+\NameDef{@InputD-prevmon.tip}{}
+\catcode`\@ = 11
+\newcount\@LeadingZCount
+\def\LeadingZ #1{%
+ \@LeadingZCount = #1\relax
+ \ifnum \@LeadingZCount < 10
+ 0%
+ \fi
+ \the\@LeadingZCount
+}
+\catcode`\@ = 12
+\NameDef{@InputD-leadingz.tip}{}
+\newcount\Hour
+\newcount\Minute
+\def\PrintMilTime{%
+ \Hour = \time
+ \divide\Hour by 60
+ \Minute = \Hour
+ \multiply\Minute by 60
+ \advance\Minute by -\time
+ \Minute = -\Minute
+ \LeadingZ{\the\Hour}:\LeadingZ{\the\Minute}%
+}
+\NameDef{@InputD-pmtime.tip}{}
+\def\TodayX{%
+ \PrintCurrentMonth~\the\day, \the\year
+}
+\newcount\TodayYCount
+\def\TodayY{%
+ {%
+ \ArbitraryDayOfWeek{\year}{\month}{\day}{\TodayYCount}%
+ \PrintDayOfWeek{\TodayYCount}{0},
+ }%
+ \TodayX
+}
+\def\TodayZ{%
+ \TodayY, \PrintMilTime
+}
+\NameDef{@InputD-todayx.tip}{}
+\catcode`\@ = 11
+\newcount\@InitialDayOfMonth
+\newcount\@MCDays
+\newcount\@MonthlyCalendarBodyTemp
+\def\MonthlyCalendarBody #1#2#3{%
+ {%
+ \CheckDate{#1}{#2}{1}%
+ \ArbitraryDayOfWeek{#1}%
+ {#2}{1}{\@InitialDayOfMonth}%
+ \gdef #3{}%
+ \DoLoop{\@MonthlyCalendarBodyTemp}%
+ {1}{1}{\@InitialDayOfMonth}%
+ {\xdef#3{#3&}}
+ \NumberOfDaysInMonth{#1}{#2}{\@MCDays}%
+ \DoLoop{\@MonthlyCalendarBodyTemp}{1}{1}{\@MCDays}{%
+ \xdef#3{#3\the\@MonthlyCalendarBodyTemp}%
+ \ifnum\@InitialDayOfMonth = \Saturday
+ \xdef#3{#3\cr}%
+ \else
+ \xdef#3{#3&}%
+ \fi
+ \advance\@InitialDayOfMonth by 1
+ \IModN{\@InitialDayOfMonth}{7}{\@InitialDayOfMonth}%
+ }%
+ }%
+ \xdef#3{#3\crcr}%
+}
+\newcount\@MonthlyCalendarCount
+\def\MonthlyCalendar #1#2#3{%
+ {%
+ \MonthlyCalendarBody{#1}{#2}{\TableBody}%
+ \vtop{
+ \hsize = #3\relax
+ \ProvideMonth{#2}{0}{\MonthNameTemp}%
+ \@MonthlyCalendarCount = #1\relax
+ \centerline{\MyStrut\MonthNameTemp\space
+ \the\@MonthlyCalendarCount}%
+ \smallskip
+ \hrule
+ \smallskip
+ \tabskip = 0pt
+ \halign to \hsize{
+ % So
+ \hfil##\relax \tabskip = 0pt plus 1fil&
+ \hfil##& % Mo
+ \hfil##& % Tu
+ \hfil##& % We
+ \hfil##& % Th
+ \hfil##& % Fr
+ \hfil##\relax \tabskip = 0pt
+ \cr
+ \omit\hfil So\hfil&
+ \omit\hfil Mo\hfil&
+ \omit\hfil Tu\hfil&
+ \omit\hfil We\hfil&
+ \omit\hfil Th\hfil&
+ \omit\hfil Fr\hfil&
+ \omit\hfil Sa\hfil\cr
+ \TableBody
+ }%
+ \smallskip
+ \hrule
+ }%
+ }%
+}%
+\catcode`\@ = 12
+\NameDef{@InputD-mocal.tip}{}
+\def\ThreeMonthlyCalendars #1#2#3{%
+ \hbox{%
+ \count0 = #1
+ \count1 = #2
+ \MonthlyCalendar{\count0}{\count1}{#3}%
+ \hskip 10pt
+ \NextMonth{\count0}{\count1}{\count0}{\count1}%
+ \MonthlyCalendar{\count0}{\count1}{#3}%
+ \NextMonth{\count0}{\count1}{\count0}{\count1}%
+ \hskip 10pt
+ \MonthlyCalendar{\count0}{\count1}{#3}%
+ }
+}
+\NameDef{@InputD-mocal3.tip}{}
+\def\YearlyCalendar #1#2#3{%
+ \vbox{%
+ \dimen0 = #2\relax
+ \ifdim\dimen0 = 0.0pt
+ \dimen0 = \hsize
+ \fi
+ \dimen1 = #3\relax
+ \ifdim\dimen1 = 0.0pt
+ \dimen1 = \dimen0
+ \divide\dimen1 by 3
+ \advance\dimen1 by -5pt
+ \fi
+ \hsize = \dimen0
+ \centerline{\Large\bf Year #1}
+ \bigskip
+ \line{%
+ \MonthlyCalendar{#1}{1}{\dimen1}%
+ \hfil
+ \MonthlyCalendar{#1}{2}{\dimen1}%
+ \hfil
+ \MonthlyCalendar{#1}{3}{\dimen1}%
+ }%
+ \bigskip
+ \line{%
+ \MonthlyCalendar{#1}{4}{\dimen1}%
+ \hfil
+ \MonthlyCalendar{#1}{5}{\dimen1}%
+ \hfil
+ \MonthlyCalendar{#1}{6}{\dimen1}%
+ }%
+ \bigskip
+ \line{%
+ \MonthlyCalendar{#1}{7}{\dimen1}%
+ \hfil
+ \MonthlyCalendar{#1}{8}{\dimen1}%
+ \hfil
+ \MonthlyCalendar{#1}{9}{\dimen1}%
+ }%
+ \bigskip
+ \line{%
+ \MonthlyCalendar{#1}{10}{\dimen1}%
+ \hfil
+ \MonthlyCalendar{#1}{11}{\dimen1}%
+ \hfil
+ \MonthlyCalendar{#1}{12}{\dimen1}%
+ }%
+ }
+}
+\NameDef{@InputD-yearcal.tip}{}
+\catcode`\@ = 11
+\newcount\@ComputeMondayOfDateDay
+\newcount\@ComputeMondayOfDateDayTwo
+\def\ComputeMondayOfDate #1#2#3#4#5#6{%
+ #4 = #1\relax
+ #5 = #2\relax
+ #6 = #3\relax
+ \ArbitraryDayOfWeek{#4}{#5}{#6}{\@ComputeMondayOfDateDay}%
+ \ifnum\@ComputeMondayOfDateDay = \Sunday
+ \@ComputeMondayOfDateDay = 6
+ \else
+ \advance\@ComputeMondayOfDateDay by -1
+ \fi
+ \DoLoop{\@ComputeMondayOfDateDayTwo}
+ {\@ComputeMondayOfDateDay}{-1}{1}%
+ {\PrevDay{#4}{#5}{#6}{#4}{#5}{#6}}%
+}
+\catcode`\@ = 12
+\NameDef{@InputD-mondofda.tip}{}
+\catcode`\@ = 11
+\newcount\@NextOrPrevWeekSameDayCount
+\def\@NextOrPrevWeekSameDay #1#2#3#4#5#6#7{%
+ #4 = #1\relax
+ #5 = #2\relax
+ #6 = #3\relax
+ \DoLoop{\@NextOrPrevWeekSameDayCount}{1}{1}{7}%
+ {#7{#4}{#5}{#6}{#4}{#5}{#6}}%
+}
+\def\NextWeekSameDay #1#2#3#4#5#6{%
+ \@NextOrPrevWeekSameDay
+ {#1}{#2}{#3}{#4}{#5}{#6}{\NextDay}%
+}
+\def\PrevWeekSameDay #1#2#3#4#5#6{%
+ \@NextOrPrevWeekSameDay
+ {#1}{#2}{#3}{#4}{#5}{#6}{\PrevDay}%
+}
+\catcode`\@ = 12
+\NameDef{@InputD-norpweek.tip}{}
+\catcode`\@ = 11
+\newcount\@WeekOfYearCounter
+\newcount\@WeekOfYearYear
+\newcount\@WeekOfYearMonth
+\newcount\@WeekOfYearDay
+\newcount\@WeekOfYearCopy
+\def\WeekOfYear #1#2#3#4{%
+ \@WeekOfYearCopy = #1\relax
+ \ComputeMondayOfDate{#1}{#2}{#3}%
+ {\@WeekOfYearYear}{\@WeekOfYearMonth}{\@WeekOfYearDay}%
+ \def\@WeekOfYearCounter{#4}%
+ \@WeekOfYearCounter = 1
+ \@WeekOfYear
+}
+\newif\if@YearStop
+\def\@WeekOfYear{%
+ \@YearStopfalse
+ \ifnum\@WeekOfYearCopy > \@WeekOfYearYear
+ \@YearStoptrue
+ \else
+ \ifnum\@WeekOfYearMonth = 1
+ \ifnum\@WeekOfYearDay = 1
+ \@YearStoptrue
+ \fi
+ \fi
+ \fi
+ \if@YearStop
+ \def\@WeekOfYearNext{\relax}%
+ \else
+ \def\@WeekOfYearNext{\@WeekOfYear}%
+ \expandafter\advance\@WeekOfYearCounter by 1
+ \PrevWeekSameDay{\@WeekOfYearYear}{\@WeekOfYearMonth}%
+ {\@WeekOfYearDay}%
+ {\@WeekOfYearYear}{\@WeekOfYearMonth}%
+ {\@WeekOfYearDay}%
+ \fi
+ \@WeekOfYearNext
+}
+\catcode`\@ = 12
+\NameDef{@InputD-weekofyr.tip}{}
+\NameDef{@InputD-alldate.tip}{}
+\def\AlwaysBaselineskip{%
+ \lineskiplimit = -\maxdimen
+}
+\NameDef{@InputD-alwbase.tip}{}
+\def\angt #1{%
+ \leavevmode
+ \hbox{$\langle$}%
+ {\rm #1}%
+ \hbox{$\rangle$}%
+}
+\NameDef{@InputD-angt.tip}{}
+\newif\ifShowX
+\ShowXfalse
+\def\ShowX #1{%
+ \ifShowX
+ {%
+ \nonstopmode
+ \show #1%
+ }%
+ \fi
+}
+\NameDef{@InputD-showx.tip}{}
+\catcode`\@ = 11
+\newif\if@TestSubString
+\def\SubStringConditional #1#2{%
+ TT\fi
+ \edef\@MainString{#1}%
+ \edef\@SubStringConditionalTemp{{#1}{#2}}%
+ \expandafter\@SubStringConditional\@SubStringConditionalTemp
+}
+\def\@SubStringConditional #1#2{%
+ \def\@TestSubS ##1#2##2\@Del{%
+ \def\@TestTemp{##1}%
+ }%
+ \ShowX{\@TestSubS}%
+ \@TestSubS #1#2\@Del
+ \ShowX{\@TestTemp}%
+ \ifx\@MainString\@TestTemp
+ \@TestSubStringfalse
+ \else
+ \@TestSubStringtrue
+ \fi
+ \if@TestSubString
+}
+\catcode`\@ = 12
+\NameDef{@InputD-testsubs.tip}{}
+\catcode`\@ = 11
+\def\RecursionMacroEnd #1#2#3{%
+ #1\relax
+ \def\@RecursionMacroEndNext{#2}%
+ \else
+ \def\@RecursionMacroEndNext{#3}%
+ \fi
+ \@RecursionMacroEndNext
+}
+\catcode`\@ = 12
+\NameDef{@InputD-endrec.tip}{}
+\catcode`\@ = 11
+\def\ReplaceSubStrings #1#2#3#4{%
+ \def\@ReplaceResult{#1}%
+ \edef\@ReplaceMain{#2}%
+ \edef\@ReplaceSub{#3}%
+ \edef\@ReplaceSubRep{#4}%
+ \@ReplaceSubStrings
+}
+\def\@ReplaceSubStrings{%
+ \RecursionMacroEnd
+ {\if\SubStringConditional{\@ReplaceMain}{\@ReplaceSub}}%
+ {\@ReplaceSubStringsDo}{\@ReplaceSubStringsDone}%
+}
+\def\@ReplaceSubStringsDoX{%
+ \def\@ReplaceSubStringsDoA ##1%
+}%
+\def\@ReplaceSubStringsDo{%
+ \expandafter\@ReplaceSubStringsDoX \@ReplaceSub
+ ##2\@EndReplaceSubStrings{%
+ \edef\@ReplaceMain{##1\@ReplaceSubRep ##2}%
+ }%
+ \ShowX{\@ReplaceSubStringsDoA}%
+ \ShowX{\@ReplaceMain}%
+ \expandafter\@ReplaceSubStringsDoA\@ReplaceMain
+ \@EndReplaceSubStrings
+ \ShowX{\@ReplaceMain}%
+ \@ReplaceSubStrings
+}
+\def\@ReplaceSubStringsDone{%
+ \expandafter\edef\@ReplaceResult{\@ReplaceMain}%
+}
+\catcode`\@ = 12
+\NameDef{@InputD-restring.tip}{}
+\catcode`\@ = 11
+\def\StringsEqualConditional #1#2{%
+ TT\fi
+ \edef\@StringsEqualOneConditional{#1}%
+ \edef\@StringsEqualTwoConditional{#2}%
+ \ifx\@StringsEqualOneConditional\@StringsEqualTwoConditional
+}
+\def\EmptyStringConditional #1{%
+ TT\fi
+ \if\StringsEqualConditional{#1}{}%
+}
+\def\EmptyStringConditionalISpaces #1{%
+ TT\fi
+ \ReplaceSubStrings{\@EmptyStringConditionalISpaces}{#1}%
+ { }{}%
+ \if\EmptyStringConditional
+ {\@EmptyStringConditionalISpaces}%
+}
+\catcode`\@ = 12
+\NameDef{@InputD-compst.tip}{}
+\catcode`\@ = 11
+\def\@EmptyRefList{}
+\def\EmptyListConditional #1{%
+ TT\fi
+ \ifx#1\@EmptyRefList
+}
+\newtoks\@AppendTokOne
+\newtoks\@AppendTokTwo
+\def\LeftAppendElement #1#2{%
+ \edef\@AppendTemp{\noexpand\\{#2}}%
+ \@AppendTokOne = \expandafter{\@AppendTemp}%
+ \@AppendTokTwo = \expandafter{#1}%
+ \edef#1{\the\@AppendTokOne \the\@AppendTokTwo}%
+}
+\def\RightAppendElement #1#2{%
+ \edef\@AppendTemp{\noexpand\\{#2}}%
+ \@AppendTokOne = \expandafter{\@AppendTemp}%
+ \@AppendTokTwo = \expandafter{#1}%
+ \edef#1{\the\@AppendTokTwo \the\@AppendTokOne}%
+}
+\def\CarOfList #1#2{%
+ \def\@CarTemp \\##1##2\@EndCarList{\def#2{##1}}%
+ \expandafter\@CarTemp#1\@EndCarList
+}
+\def\CdrOfList #1#2{%
+ \def\@CdrTemp \\##1##2\@EndCdrList{\def#2{##2}}%
+ \expandafter\@CdrTemp#1\@EndCdrList
+}
+\def\DropFirstElementOfList #1{%
+ \if\EmptyListConditional{#1}%
+ \errhelp = {\string\DropFirstElementOfList: list is
+ empty. No first element to drop.}%
+ \errmessage{\string\DropFirstElementOfList: List
+ \noexpand#1 is empty.}%
+ \else
+ \def\@DropFirstElementTemp \\##1##2\@EndCdrList{\def#1{##2}}%
+ \expandafter\@DropFirstElementTemp#1\@EndCdrList
+ \fi
+}
+\def\CarCarOfList #1#2{%
+ \let\@CarCarOfListList = #1%
+ \DropFirstElementOfList{\@CarCarOfListList}%
+ \CarOfList{\@CarCarOfListList}{#2}
+}
+\def\ForEveryListElement #1#2{%
+ \let\@ForEveryList = #1%
+ \let\@ForEveryListElementMacro = #2%
+ \@ForEveryListElement
+}
+\def\@ForEveryListElement{%
+ \if\EmptyListConditional{\@ForEveryList}%
+ \let\@ForEveryListElementNext = \relax
+ \else
+ \CarOfList{\@ForEveryList}{\@ForEveryListElementElement}%
+ \@ForEveryListElementMacro{\@ForEveryListElementElement}%
+ \DropFirstElementOfList{\@ForEveryList}%
+ \let\@ForEveryListElementNext = \@ForEveryListElement
+ \fi
+ \@ForEveryListElementNext
+}
+\newif\if@MemberList
+\def\MemberOfListConditional #1#2{%
+ TT\fi
+ \@MemberListfalse
+ {%
+ \def\\##1{%
+ \if\StringsEqualConditional{#2}{##1}%
+ \global\@MemberListtrue
+ \fi
+ }%
+ #1%
+ }%
+ \if@MemberList
+}
+\def\ReverseList #1#2{%
+ \def\@ReverseListOut{}%
+ \ForEveryListElement{#1}{\@ReverseList}%
+ \let#2 = \@ReverseListOut
+}
+\def\@ReverseList #1{%
+ \LeftAppendElement{\@ReverseListOut}{#1}%
+}
+\def\LastElementOfList #1#2{%
+ \ReverseList{#1}{#1}%
+ \CarOfList{#1}{#2}%
+ \ReverseList{#1}{#1}%
+}
+\def\DropLastElementOfList #1{%
+ \ReverseList{#1}{#1}%
+ \DropFirstElementOfList{#1}%
+ \ReverseList{#1}{#1}%
+}
+\def\NumberOfListElements #1#2{%
+ \let\@NumberOfListElementsList = #1%
+ \def\@NumberOfListElementsCount{#2}%
+ \@NumberOfListElementsCount = 0
+ \@NumberOfListElements
+}
+\def\@NumberOfListElements{%
+ \if\EmptyListConditional{\@NumberOfListElementsList}%
+ \let\@NumberOfListElementsNext = \relax
+ \else
+ \advance\@NumberOfListElementsCount by 1
+ \DropFirstElementOfList{\@NumberOfListElementsList}%
+ \let\@NumberOfListElementsNext = \@NumberOfListElements
+ \fi
+ \@NumberOfListElementsNext
+}
+\newcount\@NumberOfListElCCount
+\def\NumberOfListElementsNumConditional #1{%
+ 0=0\fi
+ \NumberOfListElements{#1}{\@NumberOfListElCCount}%
+ \ifnum\@NumberOfListElCCount
+}
+\def\CombineTwoLists #1#2#3{%
+ \def\@CombineTwoLists{\def\@CombineTwoListsResult}%
+ \expandafter\expandafter\expandafter
+ \expandafter\expandafter\expandafter
+ \expandafter\@CombineTwoLists
+ \expandafter\expandafter\expandafter{\expandafter#1#2}%
+ \let #3 = \@CombineTwoListsResult
+}
+\catcode`\@ = 12
+\NameDef{@InputD-list-mac.tip}{}
+\catcode`\@ = 11
+\def\IndexLastElement #1#2{%
+ \NumberOfListElements{#1}{#2}%
+ \advance #2 by -1
+}
+\newcount\@ArrayIndexCheckCount
+\def\ArrayIndexCheck #1#2{%
+ \IndexLastElement{#1}{\@ArrayIndexCheckCount}%
+ \ifnum\@ArrayIndexCheckCount = -1
+ \errmessage{\string\ArrayIndexCheck: array \string#2
+ is empty.}%
+ \else
+ \CheckRange{#2}{0}{\@ArrayIndexCheckCount}%
+ {\string\ArrayIndexCheck: index \number#2 out
+ of range in list \string#1}%
+ \fi
+}
+\newcount\@AccessArrayElementLimit
+\newcount\@AccessArrayElementCount
+\def\AccessArrayElement #1#2#3{%
+ \ArrayIndexCheck{#1}{#2}%
+ \let\@AccessArrayElementList = #1%
+ \@AccessArrayElementLimit = #2\relax
+ \DoLoop{\@AccessArrayElementCount}%
+ {1}{1}{\@AccessArrayElementLimit}%
+ {\DropFirstElementOfList{\@AccessArrayElementList}}%
+ \CarOfList{\@AccessArrayElementList}{#3}%
+}
+\newcount\@ModifyArrayElementCount
+\newcount\@ModifyArrayElementLimit
+\def\ModifyArrayElement #1#2#3{%
+ \ArrayIndexCheck{#1}{2}%
+ \IndexLastElement{#1}{\@ModifyArrayElementLimit}%
+ \let\@ModifyArrayList = #1%
+ \def\@ModifyArrayRet{}%
+ \DoLoop{\@ModifyArrayElementCount}%
+ {0}{1}{\@ModifyArrayElementLimit}%
+ {%
+ \CarOfList{\@ModifyArrayList}%
+ {\@ModifyArrayElement}%
+ \DropFirstElementOfList{\@ModifyArrayList}%
+ \ifnum\@ModifyArrayElementCount = #2\relax
+ \RightAppendElement{\@ModifyArrayRet}{#3}%
+ \else
+ \RightAppendElement
+ {\@ModifyArrayRet}%
+ {\@ModifyArrayElement}%
+ \fi
+ }%
+ \let #1 = \@ModifyArrayRet
+}
+\newcount\@InsertArrayElementCount
+\newcount\@InsertArrayElementCountTwo
+\def\InsertArrayElement #1#2#3{%
+ \ifnum\NumberOfListElementsNumConditional{#1}=0
+ \errmessage{\string\InsertArrayElement: empty array}%
+ \fi
+ \ifnum\NumberOfListElementsNumConditional{#1}=#2
+ \else
+ \ArrayIndexCheck{#1}{#2}%
+ \fi
+ \def\@InsertArrayElementListPre{}%
+ \ifnum #2>0
+ \@InsertArrayElementCount = #2\relax
+ \advance\@InsertArrayElementCount by -1
+ \ExtractSubArray{#1}{0}{\@InsertArrayElementCount}%
+ {\@InsertArrayElementListPre}%
+ \fi
+ \def\@InsertArrayElementListPost{}%
+ \IndexLastElement{#1}{\@InsertArrayElementCount}%
+ \ifnum #2 > \@InsertArrayElementCount
+ \else
+ \ExtractSubArray{#1}{#2}{\@InsertArrayElementCount}%
+ {\@InsertArrayElementListPost}%
+ \fi
+ \RightAppendElement{\@InsertArrayElementListPre}{#3}%
+ \CombineTwoLists
+ {\@InsertArrayElementListPre}%
+ {\@InsertArrayElementListPost}%
+ {\@InsertArrayElementListPre}%
+ \let #1 = \@InsertArrayElementListPre
+}
+\newcount\@DeleteArrayElementCount
+\newcount\@DeleteArrayElementLimit
+\def\DeleteArrayElement #1#2{%
+ \ArrayIndexCheck{#1}{#2}%
+ \let\@DeleteArrayElementList = #1%
+ \IndexLastElement{#1}{\@DeleteArrayElementLimit}%
+ \ifnum\@DeleteArrayElementLimit = -1
+ \errmessage{\string\DeleteArrayElement: empty array.}%
+ \fi
+ \def\@DeleteArrayElementResultList{}%
+ \DoLoop{\@DeleteArrayElementCount}%
+ {0}{1}{\@DeleteArrayElementLimit}%
+ {%
+ \CarOfList{\@DeleteArrayElementList}%
+ {\@DeleteArrayElement}%
+ \DropFirstElementOfList{\@DeleteArrayElementList}%
+ \ifnum\@DeleteArrayElementCount = #2\relax
+ \else
+ \RightAppendElement
+ {\@DeleteArrayElementResultList}%
+ {\@DeleteArrayElement}%
+ \fi
+ }%
+ \let #1=\@DeleteArrayElementResultList
+}
+\newcount\@DeleteArrayElementRangeCount
+\newcount\@DeleteArrayElementRangeLimit
+\def\DeleteArrayElementRange #1#2#3{%
+ \ArrayIndexCheck{#1}{#2}%
+ \ArrayIndexCheck{#1}{#3}%
+ \ifnum #2>#3
+ \errmessage{\string\DeleteArrayElementRange:
+ first index larger than second. Makes no
+ sense}%
+ \fi
+ \@DeleteArrayElementRangeLimit = #3\relax
+ \advance\@DeleteArrayElementRangeLimit by -#2%
+ \advance\@DeleteArrayElementRangeLimit by 1
+ \DoLoop{\@DeleteArrayElementRangeCount}{1}{1}%
+ {\@DeleteArrayElementRangeLimit}%
+ {\DropArrayElement{#1}{#2}}%
+}
+\newcount\@ShowArrayCount
+\newcount\@ShowArrayLimit
+\def\ShowArray #1{%
+ \wlog{\string\ShowArray: begin}%
+ \IndexLastElement{#1}{\@ShowArrayLimit}%
+ \ifnum\@ShowArrayLimit = -1
+ \wlog{** empty array **}%
+ \else
+ \DoLoop{\@ShowArrayCount}{0}{1}{\@ShowArrayLimit}{%
+ \AccessArrayElement{#1}{\@ShowArrayCount}%
+ {\@ShowArrayElement}%
+ \wlog{Index \the\@ShowArrayCount:
+ "\@ShowArrayElement"}%
+ }%
+ \fi
+ \wlog{\string\ShowArray: end}%
+ \wlog{}%
+}
+\def\@TokenToListDoneMacro{\@TokensToListDone}%
+\def\TokensToTeXList #1#2{%
+ \def#1{}%
+ \def\@TokensToListName{#1}%
+ \@TokensToList #2\@TokensToListDone
+}
+\def\@TokensToList #1{%
+ \def\@TokensToListMacArgOne{#1}%
+ \ifx\@TokensToListMacArgOne\@TokenToListDoneMacro
+ \let\@TokensToListNext = \relax
+ \else
+ \expandafter\RightAppendElement\@TokensToListName{#1}%
+ \let\@TokensToListNext = \@TokensToList
+ \fi
+ \@TokensToListNext
+}
+\newcount\@ExtractArrayCount
+\newcount\@ExtractArrayLimit
+\newif\if@ExtractCopy
+\def\ExtractSubArray #1#2#3#4{%
+ \ArrayIndexCheck{#1}{#2}%
+ \ArrayIndexCheck{#1}{#3}%
+ \ifnum #3<#2
+ \errmessage{\string\ExtractSubArray: first index >
+ second index, error}%
+ \fi
+ \def\@ExtractSubArrayResult{}%
+ \IndexLastElement{#1}{\@ExtractArrayLimit}%
+ \DoLoop{\@ExtractArrayCount}{0}{1}{\@ExtractArrayLimit}%
+ {%
+ \@ExtractCopytrue
+ \ifnum\@ExtractArrayCount < #2\relax
+ \@ExtractCopyfalse
+ \fi
+ \ifnum\@ExtractArrayCount > #3\relax
+ \@ExtractCopyfalse
+ \fi
+ \if@ExtractCopy
+ \AccessArrayElement
+ {#1}%
+ {\@ExtractArrayCount}%
+ {\@SubArrayElement}%
+ \RightAppendElement
+ {\@ExtractSubArrayResult}%
+ {\@SubArrayElement}%
+ \fi
+ }%
+ \let #4 = \@ExtractSubArrayResult
+}
+\catcode`\@ = 12
+\NameDef{@InputD-arraymac.tip}{}
+\def\ZeroBox #1{%
+ \wd#1 = 0pt
+ \ht#1 = 0pt
+ \dp#1 = 0pt
+}
+\def\ZeroBoxOut #1{%
+ \ZeroBox{#1}%
+ \box#1%
+}
+\NameDef{@InputD-box-zero.tip}{}
+\catcode`\@ = 11
+\newbox\@PrintAtPositionBox
+\def\PrintAtPosition #1#2#3#4{%
+ \setbox\@PrintAtPositionBox = \hbox{%
+ \hskip #1\relax
+ \lower #2\hbox{%
+ #3%
+ }%
+ }%
+ #4 = \dp\@PrintAtPositionBox
+ \ZeroBoxOut{\@PrintAtPositionBox}%
+}
+\catcode`\@ = 12
+\def\SetUpPrintAtPosition{%
+ \nopagenumbers
+ \topskip = 0pt
+ \offinterlineskip
+}
+\NameDef{@InputD-atpos.tip}{}
+\catcode`\@ = 11
+\def\NewEnvironment #1{%
+ \wlog{\string\NewEnvironment: new environment #1.}%
+ \NameNewDef{@@B-#1}{%
+ \bgroup
+ \def\@CurEnvName{#1}%
+ \NameUse{@Begin#1}%
+ }%
+ \NameNewDef{@@E-#1}{%
+ \NameUse{@End#1}%
+ \if\StringsEqualConditional{#1}{\@CurEnvName}%
+ \else
+ \errmessage{Ending environment: mismatch in
+ environment names: specified: #1,
+ expected: \@CurEnvName}%
+ \fi
+ \egroup
+ }%
+}
+\def\B #1{%
+ \NameUse{@@B-#1}%
+}
+\def\E #1{%
+ \NameUse{@@E-#1}%
+}
+\catcode`\@ = 12
+\NameDef{@InputD-be-env.tip}{}
+\catcode`\@ = 11
+\newbox\@BulletBox
+\setbox\@BulletBox =
+ \hbox{%
+ \hskip -2.3pt
+ \lower 2.5pt \hbox{$\bullet$}%
+ }
+\ZeroBox{\@BulletBox}
+\catcode`\@ = 12
+\NameDef{@InputD-box-bul.tip}{}
+\catcode`\@ = 11
+\newbox\@BoxingBox
+\newbox\@BaseLineLeaders
+\catcode`\@ = 12
+\NameDef{@InputD-box-bb.tip}{}
+\newdimen\BoxRuleThickness
+\BoxRuleThickness = 0.4pt
+\NameDef{@InputD-box-thck.tip}{}
+\catcode`\@ = 11
+\newif\ifBulletAndBaseLine
+\BulletAndBaseLinetrue
+\def\RulesOutSide #1#2#3{%
+ {%
+ \setbox 0 = \hbox{%
+ \ifBulletAndBaseLine
+ \copy\@BulletBox
+ \fi
+ \hskip -\BoxRuleThickness
+ \vrule width \BoxRuleThickness height #1 depth #2%
+ \hskip #3%
+ \vrule width \BoxRuleThickness height #1 depth #2%
+ \dimen0 = #3%
+ \advance \dimen0 by 2\BoxRuleThickness
+ \hskip -\dimen0
+ \dimen2 = #1%
+ \advance\dimen2 by \BoxRuleThickness
+ \vrule width \dimen0 height \dimen2 depth -#1%
+ \hskip -\dimen0
+ \dimen2 = #2%
+ \advance\dimen2 by \BoxRuleThickness
+ \vrule width \dimen0 height -#2 depth \dimen2
+ }%
+ \ZeroBoxOut{0}%
+ }%
+}
+\def\RulesInSide #1#2#3{%
+ {%
+ \setbox 0 = \hbox{%
+ \ifBulletAndBaseLine
+ \copy\@BulletBox
+ \fi
+ \vrule width \BoxRuleThickness height #1 depth #2%
+ \hskip #3%
+ \hskip -\BoxRuleThickness
+ \hskip -\BoxRuleThickness
+ \vrule width \BoxRuleThickness height #1 depth #2%
+ \hskip -#3%
+ \dimen2 = #1%
+ \advance\dimen2 by -\BoxRuleThickness
+ \vrule width #3 height #1 depth -\dimen2
+ \hskip -#3%
+ \dimen2 = #2%
+ \advance\dimen2 by -\BoxRuleThickness
+ \vrule width #3 height -\dimen2 depth #2%
+ }%
+ \ZeroBoxOut{0}%
+ }%
+}
+\def\RulesOnSide #1#2#3{%
+ {%
+ \setbox 0 = \hbox{%
+ \ifBulletAndBaseLine
+ \copy\@BulletBox
+ \fi
+ \hskip -0.5\BoxRuleThickness
+ \vrule width \BoxRuleThickness height #1 depth #2%
+ \hskip #3%
+ \hskip -\BoxRuleThickness
+ \vrule width \BoxRuleThickness height #1 depth #2%
+ \hskip -#3%
+ \hskip -\BoxRuleThickness
+ \dimen0 = #3%
+ \advance\dimen0 by \BoxRuleThickness
+ \dimen2 = #1%
+ \advance\dimen2 by 0.5\BoxRuleThickness
+ \dimen4 = #1%
+ \advance\dimen4 by -0.5\BoxRuleThickness
+ \dimen4 = -\dimen4
+ \vrule width \dimen0 height \dimen2 depth \dimen4
+ \hskip -\dimen0
+ \dimen2 = #2%
+ \advance\dimen2 by -0.5\BoxRuleThickness
+ \dimen2 = -\dimen2
+ \dimen4 = #2%
+ \advance\dimen4 by 0.5\BoxRuleThickness
+ \vrule width \dimen0 height \dimen2 depth \dimen4
+ }%
+ \ZeroBoxOut{0}%
+ }%
+}
+\catcode`\@ = 12
+\NameDef{@InputD-boxing5.tip}{}
+\catcode`\@ = 11
+\def\BoxingE #1{%
+ \hbox{%
+ \setbox\@BoxingBox = #1%
+ \setbox\@BaseLineLeaders = \hbox to \wd\@BoxingBox{%
+ \xleaders\hbox to 4pt{%
+ \hskip 1pt
+ \vrule depth 0.4pt height 0.4pt width 2pt
+ \hfil
+ }%
+ \hfil
+ }%
+ \ZeroBox{\@BaseLineLeaders}%
+ \ifBulletAndBaseLine
+ \box\@BaseLineLeaders
+ \fi
+ \RulesOnSide
+ {\ht\@BoxingBox}%
+ {\dp\@BoxingBox}%
+ {\wd\@BoxingBox}%
+ \box\@BoxingBox
+ }%
+}
+\catcode`\@ = 12
+\NameDef{@InputD-boxing6.tip}{}
+\catcode`\@ = 11
+\newbox\@VcenterXBox
+\newdimen\@VcenterDimen
+\def\VcenterX{%
+ \hbox\bgroup
+ \mathsurround = 0pt
+ \futurelet\@VCenterXToken\@VCenterXA
+}
+\def\@VCenterXA{%
+ \ifx\@VCenterXToken\bgroup
+ \let\@VcenterXNext = \@VcenterXOrdinary
+ \else
+ \ifx\@VCenterXToken t%
+ \let\@VcenterXNext = \@VcenterXTo
+ \else
+ \let\@VcenterXNext = \@VcenterXSpread
+ \fi
+ \fi
+ \@VcenterXNext
+}
+\def\@VcenterXOrdinary{%
+ \def\@VcenterCommand{\vcenter}%
+ \afterassignment\@VcenterXB
+ \let\@VcenterDrop =
+}
+\def\@VcenterXTo to{%
+ \def\@VcenterCommand{to}%
+ \afterassignment\@VcenterXToSpread
+ \@VcenterDimen =
+}
+\def\@VcenterXSpread spread{%
+ \def\@VcenterCommand{spread}%
+ \afterassignment\@VcenterXToSpread
+ \@VcenterDimen =
+}
+\def\@VcenterXToSpread{%
+ \edef\@VcenterCommand{%
+ \vcenter\@VcenterCommand \the\@VcenterDimen
+ }%
+ \afterassignment\@VcenterXB
+ \let\@VcenterDrop =
+}
+\def\@VcenterXB{%
+ \setbox\@VcenterXBox = \hbox\bgroup
+ $%
+ \@VcenterCommand\bgroup
+ \aftergroup\@VcenterXC
+}
+\def\@VcenterXC{%
+ $%
+ \egroup
+ \box\@VcenterXBox
+ \egroup
+}
+\catcode`\@ = 12
+\NameDef{@InputD-vcentx.tip}{}
+\catcode`\@ = 11
+\newdimen\@BoxRDimen
+\newbox\@BoxRBox
+\newcount\@BoxRNumber
+\def\HboxR{%
+ \hbox\bgroup
+ \def\@WhichBox{\hbox}%
+ \def\@WhichBoxDimen{}%
+ \@BoxRaa
+}
+\def\VboxR{%
+ \vbox\bgroup
+ \def\@WhichBox{\vbox}%
+ \def\@WhichBoxDimen{}%
+ \@BoxRaa
+}
+\def\VtopR{%
+ \vtop\bgroup
+ \def\@WhichBox{\vtop}%
+ \def\@WhichBoxDimen{}%
+ \@BoxRaa
+}
+\def\VcenterXR{%
+ \hbox\bgroup
+ \def\@WhichBox{\VcenterX}%
+ \def\@WhichBoxDimen{}%
+ \@BoxRaa
+}
+\def\BoxR{%
+ \hbox\bgroup
+ \def\@WhichBox{\hbox}%
+ \def\@WhichBoxDimen{}%
+ \afterassignment\@BoxRB
+ \@BoxRNumber =
+}
+\def\@BoxRB{%
+ \HboxR{\box\@BoxRNumber}%
+ \egroup
+}
+\def\CopyR{%
+ \hbox\bgroup
+ \def\@WhichBox{\hbox}%
+ \def\@WhichBoxDimen{}%
+ \afterassignment\@CopyRbb
+ \@BoxRNumber =
+}
+\def\@CopyRbb{%
+ \HboxR{\copy\@BoxRNumber}%
+ \egroup
+}
+\def\@BoxRaa{%
+ \futurelet\@BoxRSymbol\@BoxRA
+}
+\def\@BoxRA{%
+ \ifx\@BoxRSymbol\bgroup
+ \let\@BoxitNext = \@BoxRb
+ \else
+ \if\@BoxRSymbol t%
+ \let\@BoxitNext = \@BoxRbTo
+ \else
+ \let\@BoxitNext = \@BoxRbSpread
+ \fi
+ \fi
+ \@BoxitNext
+}
+\def\@BoxRb{%
+ \afterassignment\@BoxRbTwo
+ \let\@BoxDrop =
+}
+\def\@BoxRbTwo{%
+ \setbox\@BoxRBox = \expandafter\@WhichBox\@WhichBoxDimen\bgroup
+ \aftergroup\@BoxRbThree
+}
+\def\@BoxRbThree{%
+ \BoxingE{\box\@BoxRBox}%
+ \egroup
+}
+\def\@BoxRbTo to{%
+ \def\@WhichBoxDimen{to}%
+ \afterassignment\@BoxRbMoreSpreadTo
+ \@BoxRDimen =
+}
+\def\@BoxRbSpread spread{%
+ \def\@WhichBoxDimen{spread}%
+ \afterassignment\@BoxRbMoreSpreadTo
+ \@BoxRDimen =
+}
+\def\@BoxRbMoreSpreadTo{%
+ \edef\@WhichBoxDimen{\@WhichBoxDimen \the\@BoxRDimen}%
+ \afterassignment\@BoxRbTwo
+ \let\@BoxDrop =
+}
+\catcode`\@ = 12
+\NameDef{@InputD-boxing7.tip}{}
+\def\BoxLarger #1#2{%
+ \vbox{%
+ \vskip #2
+ \hbox{%
+ \hskip #2%
+ \hbox{#1}%
+ \hskip #2%
+ }%
+ \vskip #2
+ }%
+}
+\NameDef{@InputD-box-larg.tip}{}
+\def\EmptyBox #1#2#3{%
+ \hbox{%
+ \setbox 0 = \hbox{}%
+ \ht0 = #1%
+ \dp0 = #2%
+ \wd0 = #3%
+ \box 0%
+ }%
+}
+\NameDef{@InputD-emptybox.tip}{}
+\catcode`\@ = 11
+\newbox\@EmptyRuledBox
+\def\EmptyRuledBox #1#2#3{%
+ \setbox\@EmptyRuledBox = \hbox{}%
+ \ht\@EmptyRuledBox = #1\relax
+ \dp\@EmptyRuledBox = #2\relax
+ \wd\@EmptyRuledBox = #3\relax
+ \HboxR{\box\@EmptyRuledBox}%
+}
+\catcode`\@ = 12
+\NameDef{@InputD-emprubox.tip}{}
+\def\EliminateRuledBoxes{%
+ \let\HboxR = \hbox
+ \let\VboxR = \vbox
+ \let\VtopR = \vtop
+ \let\VcenterXR = \VcenterX
+ \let\BoxR = \box
+ \let\CopyR = \copy
+}
+\NameDef{@InputD-boxrelim.tip}{}
+\def\LineR{\HboxR to \hsize}
+\def\LeftlineR #1{\LineR{#1\hss}}
+\def\RightlineR #1{\LineR{\hss#1}}
+\def\CenterlineR #1{\LineR{\hss#1\hss}}
+\NameDef{@InputD-linesr.tip}{}
+\NameDef{@InputD-box-mac.tip}{}
+\catcode`\@ = 11
+\newdimen\@BigLetDown
+\newdimen\@BigLetDimen
+\newcount\@BigLetCount
+\newbox\@BigLetBox
+\newdimen\BigLetSep
+\BigLetSep = 2pt
+\newdimen\BigLetH
+\BigLetH = 2pt
+\def\BigLetPar #1{%
+ \par
+ \setbox\@BigLetBox = \hbox{#1\hskip\BigLetSep}%
+ \setbox\@BigLetBox = \vtop{%
+ \dimen0 = \baselineskip
+ \offinterlineskip
+ \hbox{}
+ \vskip -0.7\dimen0
+ \box\@BigLetBox
+ \vbox to \BigLetH{}
+ }%
+ \@BigLetDimen = \dp\@BigLetBox
+ \advance\@BigLetDimen by 0.7\baselineskip
+ \advance\@BigLetDimen by 1.0\baselineskip
+ \divide\@BigLetDimen by \baselineskip
+ \@BigLetCount = \@BigLetDimen
+ \dp\@BigLetBox = 0pt
+ \hangafter = -\@BigLetCount
+ \hangindent = \wd\@BigLetBox
+ \noindent
+ \hskip -\hangindent
+ \box \@BigLetBox
+ \ignorespaces
+}
+\catcode`\@ = 12
+\NameDef{@InputD-bletpar.tip}{}
+\def\BoxingA #1{%
+ \vbox{%
+ \hrule
+ \hbox{%
+ \vrule
+ #1%
+ \vrule
+ }%
+ \hrule
+ }%
+}
+\NameDef{@InputD-boxing1.tip}{}
+
+\def\BoxingB #1{%
+ \vbox{%
+ \hrule height \BoxRuleThickness
+ \hbox{%
+ \vrule width \BoxRuleThickness
+ #1%
+ \vrule width \BoxRuleThickness
+ }%
+ \hrule height \BoxRuleThickness
+ }%
+}
+\NameDef{@InputD-boxing2.tip}{}
+\catcode`\@ = 11
+\def\BoxingC #1{%
+ \vbox{%
+ \hrule height \BoxRuleThickness
+ \hbox{%
+ \vrule width \BoxRuleThickness
+ \copy\@BulletBox
+ #1%
+ \vrule width \BoxRuleThickness
+ }%
+ \hrule height \BoxRuleThickness
+ }%
+}
+\catcode`\@ = 12
+\NameDef{@InputD-boxing3.tip}{}
+\catcode`\@ = 11
+\def\BoxingD #1{%
+ \vbox{%
+ \setbox\@BoxingBox = #1%
+ \setbox\@BaseLineLeaders = \hbox to \wd\@BoxingBox{%
+ \xleaders\hbox to 4pt{%
+ \hskip 1pt
+ \vrule depth 0.4pt height 0.4pt width 2pt
+ \hfil
+ }%
+ \hfil
+ }%
+ \ZeroBox{\@BaseLineLeaders}%
+ \hrule height \BoxRuleThickness
+ \hbox{%
+ \vrule width \BoxRuleThickness
+ \copy\@BulletBox
+ \box\@BaseLineLeaders
+ \box\@BoxingBox
+ \vrule width \BoxRuleThickness
+ }%
+ \hrule height \BoxRuleThickness
+ }%
+}
+\catcode`\@ = 12
+\NameDef{@InputD-boxing4.tip}{}
+\catcode`\@ = 11
+\def\newcountOF{\alloc@0\count\countdef\insc@unt}
+\def\newdimenOF{\alloc@1\dimen\dimendef\insc@unt}
+\def\newskipOF{\alloc@2\skip\skipdef\insc@unt}
+\def\newmuskipOF{\alloc@3\muskip\muskipdef\@cclvi}
+\def\newboxOF{\alloc@4\box\chardef\insc@unt}
+\def\newhelpOF#1#2{\newtoksOF#1#1\expandafter{\csname#2\endcsname}}
+\def\newtoksOF{\alloc@5\toks\toksdef\@cclvi}
+\def\newreadOF{\alloc@6\read\chardef\sixt@@n}
+\def\newwriteOF{\alloc@7\write\chardef\sixt@@n}
+\def\newfamOF{\alloc@8\fam\chardef\sixt@@n}
+\def\newifOF#1{\count@\escapechar \escapechar\m@ne
+ \expandafter\expandafter\expandafter
+ \edef\@if#1{true}{\let\noexpand#1=\noexpand\iftrue}%
+ \expandafter\expandafter\expandafter
+ \edef\@if#1{false}{\let\noexpand#1=\noexpand\iffalse}%
+ \@if#1{false}\escapechar\count@} % the condition starts out false
+\def\newlanguageOF{\alloc@9\language\chardef\@cclvi}
+\catcode`\@ = 12
+\NameDef{@InputD-newoutfr.tip}{}
+\edef\FourSpaces{\space\space\space\space}
+\edef\EightSpaces{\FourSpaces\FourSpaces}
+\NameDef{@InputD-mspaces.tip}{}
+\catcode`\@ = 11
+\newcount\@BoxRQStart
+\newcount\@BoxRQEnd
+\newcount\@BoxRQLength
+\newcount\@BoxRQCount
+\newcount\@BoxRQLast
+\newcount\@BoxRQFirst
+\def\@LoadBRQCounters #1{%
+ \if\NameDefinedConditional{@BoxRQ-Start-#1}%
+ \@BoxRQStart = \NameUse{@BoxRQ-Start-#1}%
+ \@BoxRQEnd = \NameUse{@BoxRQ-End-#1}%
+ \@BoxRQLength= \NameUse{@BoxRQ-Length-#1}%
+ \@BoxRQCount = \NameUse{@BoxRQ-Count-#1}%
+ \@BoxRQLast = \NameUse{@BoxRQ-Last-#1}%
+ \@BoxRQFirst = \NameUse{@BoxRQ-First-#1}%
+ \else
+ \errmessage{\string\@LoadBRQCounters: no queue "#1".}%
+ \fi
+}
+\def\@RestoreBRQCounters #1{%
+ \NameXdef{@BoxRQ-Start-#1}{\the\@BoxRQStart}%
+ \NameXdef{@BoxRQ-End-#1}{\the\@BoxRQEnd}%
+ \NameXdef{@BoxRQ-Length-#1}{\the\@BoxRQLength}%
+ \NameXdef{@BoxRQ-Count-#1}{\the\@BoxRQCount}%
+ \NameXdef{@BoxRQ-Last-#1}{\the\@BoxRQLast}%
+ \NameXdef{@BoxRQ-First-#1}{\the\@BoxRQFirst}%
+}
+\newcount\@BoxRQTempA \newcount\@BoxRQTempB
+\def\SetUpBoxRegisterQueue #1#2{%
+ \@BoxRQStart = \count14
+ \advance\@BoxRQStart by 1
+ \@BoxRQTempA = \@BoxRQStart
+ \DoLoop{\@BoxRQTempB}{1}{1}{#2}%
+ {\newboxOF\@WhoCaresBoxRegisterIndexA
+ \advance\@BoxRQTempA by 1 }
+ \advance\@BoxRQTempA by -1
+ \@BoxRQEnd = \@BoxRQTempA
+ \wlog{\string\SetUpBoxRegisterQueue: queue "#1."}%
+ \wlog{\EightSpaces Box registers
+ \the\@BoxRQStart\space through
+ \the\@BoxRQEnd\space allocated.}%
+ \wlog{\EightSpaces (#2 registers).}%
+ \@BoxRQCount = 0
+ \@BoxRQLength = #2
+ \@RestoreBRQCounters{#1}%
+}
+\def\AddBoxToQueue #1#2{%
+ \@LoadBRQCounters{#1}%
+ \wlog{\string\AddBoxToQueue: length: \the\@BoxRQLength,
+ count: \the\@BoxRQCount}%
+ \ifnum\@BoxRQCount = \@BoxRQLength
+ \errmessage{\string\AddBoxToQueue: Queue "#1" is full.}%
+ \else
+ \ifnum\@BoxRQCount = 0
+ \@BoxRQLast = \@BoxRQStart
+ \@BoxRQFirst = \@BoxRQStart
+ \fi
+ \global\setbox\@BoxRQLast = #2%
+ \advance\@BoxRQLast by 1
+ \ifnum\@BoxRQLast > \@BoxRQEnd
+ \@BoxRQLast = \@BoxRQStart
+ \fi
+ \advance\@BoxRQCount by 1
+ \@RestoreBRQCounters{#1}%
+ \fi
+}
+\def\CopyFirstElementFromQueue #1#2{%
+ \@LoadBRQCounters{#1}%
+ \ifnum\@BoxRQCount = 0
+ \errmessage{\string\CopyFirstElementFromQueue: empty "#1"}%
+ \else
+ \setbox #2 = \copy\@BoxRQFirst
+ \fi
+}
+\def\DropFirstBoxOfQueue #1{%
+ \@LoadBRQCounters{#1}%
+ \ifnum\@BoxRQCount = 0
+ \errmessage{\string\DropFirstBoxOfQueue: "#1" is empty.}%
+ \else
+ \advance\@BoxRQCount by -1
+ \ifnum\@BoxRQCount = 0
+ \else
+ \advance\@BoxRQFirst by 1
+ \ifnum\@BoxRQFirst > \@BoxRQEnd
+ \@BoxRQFirst = \@BoxRQStart
+ \fi
+ \fi
+ \fi
+ \@RestoreBRQCounters{#1}%
+}
+\def\EmptyBoxRegisterQueueConditional #1{%
+ TT\fi
+ \@LoadBRQCounters{#1}%
+ \ifnum\@BoxRQCount = 0
+}
+\catcode`\@ = 12
+\NameDef{@InputD-boxrqu.tip}{}
+\def\CenterlineP #1{%
+ \centerline{#1\unskip .}
+}
+\NameDef{@InputD-centerlp.tip}{}
+\def\BeginCenter{%
+ \par
+ \begingroup
+ \rightskip = 1in plus 4em
+ \leftskip = \rightskip
+ \spaceskip = .3333em
+ \xspaceskip = .5em
+ \parfillskip = 0pt
+ \noindent
+}
+\def\EndCenter{%
+ \par
+ \endgroup
+}
+\NameDef{@InputD-centerng.tip}{}
+\def\CenterOrParagraph #1{%
+ {%
+ \par
+ \setbox 0 = \hbox{#1}%
+ \ifdim\wd0 > \hsize
+ \noindent #1\par
+ \else
+ \centerline{\box0}%
+ \fi
+ }%
+}
+\NameDef{@InputD-centpar.tip}{}
+\def\hboxE #1{%
+ {%
+ \setbox0 = \hbox{#1}%
+ \setbox1 = \hbox{}%
+ \wd1 = \wd0
+ \ht1 = \ht0
+ \dp1 = \dp0
+ \HboxR{\box 1}%
+ }%
+}
+\NameDef{@InputD-charbo.tip}{}
+\catcode`\@ = 11
+\newdimen\@AdvanceBoxD
+\def\AdvanceBoxDimension #1#2{%
+ \@AdvanceBoxD = #1\relax
+ \advance\@AdvanceBoxD by #2\relax
+ #1 = \@AdvanceBoxD
+}
+\catcode`\@ = 12
+\NameDef{@InputD-chboxd.tip}{}
+\catcode`\@ = 11
+\def\ClearBoxReg #1{%
+ \setbox #1 = \box\voidb@x
+}
+\catcode`\@ = 12
+\NameDef{@InputD-clearb.tip}{}
+\def\InitialCollectInfo{%
+ \gdef\Collect{}%
+}
+\InitialCollectInfo
+\long\def\AddInfo #1{%
+ \xdef\Collect{\Collect #1}%
+}
+\NameDef{@InputD-collect.tip}{}
+\newtoks\CollectTokens
+\CollectTokens = {}
+\def\AddInfo #1{%
+ \expandafter\expandafter\expandafter
+ \CollectTokens\expandafter{%
+ \the\CollectTokens #1}
+}
+\NameDef{@InputD-coltok.tip}{}
+\catcode`\@ = 11
+\def\MakeOther #1{\catcode `#1 = 12 }
+\def\MakeActive #1{\catcode `#1 = \active\relax}
+\def\MakeEolActive{\MakeActive{\^^M}}
+\def\MakeTabActive{\MakeActive{\^^I}}
+\def\MkOthersNoCB{%
+ \MakeOther{\ }%
+ \MakeOther{\\}%
+ \MakeOther{\$}%
+ \MakeOther{\&}%
+ \MakeOther{\#}%
+ \MakeOther{\^}\MakeOther{\^^K}%
+ \MakeOther{\_}\MakeOther{\^^A}%
+ \MakeOther{\%}%
+ \MakeOther{\~}%
+}
+\def\MkOthers{%
+ \MakeOther{\{}%
+ \MakeOther{\}}%
+ \MkOthersNoCB
+}
+{\catcode`\^^I = 11
+\gdef\@TabAsLiteral{^^I}%
+}
+\catcode`\[ = 1
+\catcode`\] = 2
+[
+ \catcode`\{ = 12
+ \catcode`\} = 12
+ \gdef\LeftBraceText[{]
+ \gdef\RightBraceText[}]
+]
+\catcode`\[ = 12
+\catcode`\] = 12
+\def\AcuteAccentText{\'{}}
+\def\AcuteAccentTt{{\tt\AcuteAccentText}}
+\def\AmpersandText{\char`\&}
+\def\AmpersandTt{{\tt\AmpersandText}}
+\def\ApostropheText{'{}}
+\def\ApostropheTt{{\tt\ApostropheText}}
+\def\AtSignText{@}
+\def\AtSignTt{{\tt\AtSignText}}
+{%
+ \catcode`| = 0
+ |catcode`\\ = 12
+ |gdef|Backslash{\}
+}
+\def\BackslashTt{{\tt\char`\\}}
+\def\CaretText{\char`\^{}}
+\def\CaretTt{{\tt\CaretText}}
+\def\DollarSignText{\$}
+\def\DollarSignTt{{\tt\DollarSignText}}
+{
+ \catcode`\# = 12
+ \gdef\PoundSign{#}
+}
+\def\pounds{{\it\char'44 }}
+\def\DoubleQuoteTt{{\tt"}}
+\def\EmDashText{{}---{}}
+\def\EmDashTt{{\tt\EmDashText}}
+\def\EnDashText{{}--{}}
+\def\EnDashTt{{\tt\EnDashText}}
+\def\ExclamationPointText{!}
+\def\ExclamationPointTt{{\tt\ExclamationPointText}}
+\def\GreaterThanSign{>}
+\def\GreaterThanSignTt{{\tt\GreaterThanSign}}
+\def\HyphenText{-}
+\def\HyphenTt{{\tt\HyphenText}}
+\def\OpenExclamationText{>}
+\def\OpenExclamationTt{{\tt\OpenExclamationText}}
+\def\LeftBraceTt{{\tt\LeftBraceText}}
+\def\LeftBracketText{[}
+\def\LeftBracketTt{{\tt\LeftBracketText}}
+\def\LeftParenthesisText{(}
+\def\LeftParenthesisTt{{\tt\LeftParenthesisText}}
+\def\LeftQuoteText{`{}}
+\def\LeftQuoteTt{{\tt\LeftQuoteText}}
+\def\LessThanSign{<}
+\def\LessThanSignTt{{\tt\LessThanSign}}
+\def\MinusSignText{-}
+\def\MinusSignTt{{\tt\MinusSignText}}
+\def\OpenQuestionText{<}
+\def\OpenQuestionTt{{\tt\OpenQuestionText}}
+\def\PlusSignText{+}
+\def\PlusSignTt{{\tt\PlusSignText}}
+\def\PercentSignText{\%}
+\def\PercentSignTt{{\tt\PercentSignText}}
+{
+ \catcode`\% = 12
+ \gdef\PercentSignPure{%}
+}
+\def\PeriodText{.}
+\def\PeriodTt{{\tt\PeriodText}}
+\def\PoundSignText{\#}
+\def\PoundSignTt{{\tt\PoundSignText}}
+\def\QuestionMarkText{?}
+\def\QuestionMarkTt{{\tt\QuestionMarkText}}
+\def\RightBraceTt{{\tt\RightBraceText}}
+\def\RightBracketText{]}
+\def\RightBracketTt{{\tt\RightBracketText}}
+\def\RightQuoteText{'{}}
+\def\RightQuoteTt{{\tt\RightQuoteText}}
+\def\RightParenthesisText{)}
+\def\RightParenthesisTt{{\tt\RightParenthesisText}}
+\def\SpaceText{ }
+\def\VisibleSpaceTt{{\tt\char"20}}
+\def\TildeText{\char`\~{}}
+\def\TildeTt{{\tt\TildeText}}
+\def\UnderscoreText{\char`\_}
+\def\UnderscoreTt{{\tt\UnderscoreText}}
+\def\VerbControlSpace{\ }
+\catcode`\@ = 12
+\NameDef{@InputD-verb-bas.tip}{}
+\catcode`\@ = 11
+\newread\@FileExistsS
+\newif\if@FileExistsAnswer
+\def\FileExistsConditional #1{%
+ TT\fi
+ \openin\@FileExistsS = #1
+ \ifeof\@FileExistsS
+ \@FileExistsAnswerfalse
+ \else
+ \closein\@FileExistsS
+ \@FileExistsAnswertrue
+ \fi
+ \if@FileExistsAnswer
+}
+\catcode`\@ = 12
+\NameDef{@InputD-fexist.tip}{}
+\catcode`\@ = 11
+\newcount\@CompareFilesResult
+\newread\@ReadCompareOne
+\newread\@ReadCompareTwo
+\def\CompareFilesConditional #1#2{%
+ TT\fi
+ \if\FileExistsConditional{#1}%
+ \else
+ \errmessage{\string\CompareFilesConditional: first file "#1"
+ does not exist.}%
+ \fi
+ \if\FileExistsConditional{#2}%
+ \else
+ \errmessage{\string\CompareFilesConditional: second file "#2"
+ does not exist.}%
+ \fi
+ \global\@CompareFilesResult = 0
+ \begingroup
+ \MkOthers
+ \openin\@ReadCompareOne = #1
+ \openin\@ReadCompareTwo = #2
+ \@CompareFiles
+}
+
+\def\@CompareFiles{%
+ \read\@ReadCompareOne to \@CompareOneString
+ \read\@ReadCompareTwo to \@CompareTwoString
+ \ifeof\@ReadCompareOne
+ \ifeof\@ReadCompareOne
+ \global\@CompareFilesResult = 1
+ \else
+ \global\@CompareFilesResult = 2
+ \fi
+ \else
+ \ifeof\@ReadCompareOne
+ \global\@CompareFilesResult = 2
+ \else
+ \ifx\@CompareOneString\@CompareTwoString
+ \else
+ \global\@CompareFilesResult = 2
+ \fi
+ \fi
+ \fi
+ \RecursionMacroEnd
+ {\ifnum \@CompareFilesResult = 0\relax}%
+ {\@CompareFiles}{\@EndCompareFiles}%
+}
+\def\@EndCompareFiles{%
+ \endgroup
+ \closein\@ReadCompareOne
+ \closein\@ReadCompareTwo
+ \ifnum\@CompareFilesResult = 1
+}
+\catcode`\@ = 12
+\NameDef{@InputD-comfiles.tip}{}
+\catcode`\@ = 11
+\newwrite\GenericOStream
+\newif\if@GenericOStreamOpen
+\@GenericOStreamOpenfalse
+\def\OpenGenericOStream #1{%
+ \if@GenericOStreamOpen
+ \errmessage{\string\OpenGenericOStream: generic
+ output stream currently open.}%
+ \else
+ \global\@GenericOStreamOpentrue
+ \immediate\openout\GenericOStream = #1%
+ \fi
+}
+\def\CloseGenericOStream{%
+ \if@GenericOStreamOpen
+ \global\@GenericOStreamOpenfalse
+ \immediate\closeout\GenericOStream
+ \else
+ \errhelp{Stream not in use.}%
+ \errmessage{\string\CloseGenericOStream:
+ stream is NOT open for output.}%
+ \fi
+}
+\catcode`\@ = 12
+\NameDef{@InputD-genostr.tip}{}
+\catcode`\@ = 11
+\newread\@StringsEqualConditionalCatInput
+\def\StringsEqualConditionalCat #1#2{%
+ TT\fi
+ \edef\@StringsEqualOneConditionalCat{#1}%
+ \edef\@StringsEqualTwoConditionalCat{#2}%
+ \OpenGenericOStream{compst.tmp}%
+ \immediate\write\GenericOStream{%
+ \@StringsEqualOneConditionalCat{#1}%
+ }%
+ \immediate\write\GenericOStream{%
+ \@StringsEqualTwoConditionalCat{#1}%
+ }%
+ \CloseGenericOStream
+ \openin\@StringsEqualConditionalCatInput = compst.tmp
+ \read\@StringsEqualConditionalCatInput to
+ \@StringsEqualOneConditionalCatR
+ \read\@StringsEqualConditionalCatInput to
+ \@StringsEqualTwoConditionalCatR
+ \closein\@StringsEqualConditionalCatInput
+ \ifx
+ \@StringsEqualOneConditionalCatR
+ \@StringsEqualTwoConditionalCatR
+}
+\catcode`\@ = 12
+\NameDef{@InputD-compstca.tip}{}
+\catcode`\@ = 11
+\newif\if@LetterConditional
+\newcount\@LetterConditionalCounter
+\def\@LetterConditional #1#2;{%
+ \@LetterConditionalCounter = `#1\relax
+}
+\def\LetterConditional #1{%
+ TT\fi
+ \@LetterConditionalfalse
+ \edef\@LetterConditionalString{#1}%
+ \expandafter\@LetterConditional\@LetterConditionalString ;
+ \if\InRangeConditional{\@LetterConditionalCounter}{`\a}{`\z}%
+ \@LetterConditionaltrue
+ \fi
+ \if\InRangeConditional{\@LetterConditionalCounter}{`\A}{`\Z}%
+ \@LetterConditionaltrue
+ \fi
+ \if@LetterConditional
+}
+\catcode`\@ = 12
+\NameDef{@InputD-condltr.tip}{}
+\catcode`\@ = 11
+\def\@TestTrail #1 #2\@Del{%
+ \def\@RemTspTemp{#1}%
+}
+\def\RemTsp #1#2{%
+ \edef\@RemTspTempOne{#2#2 }%
+ \expandafter\@TestTrail\@RemTspTempOne\@Del
+ \if\StringsEqualConditional{#2#2}{\@RemTspTemp}%
+ \def#1{#2}%
+ \else
+ \edef\@RemTspTempA{\noexpand\edef\noexpand#1{\@RemTspTemp}}%
+ \@RemTspTempA
+ \fi
+}
+\def\@TestLead #1 #2\@Del{\def\@RemLspOne{#1}}
+\def\RemLsp #1#2{%
+ \edef\@TempRemLsp{#2#2\space}%
+ \expandafter\@TestLead\@TempRemLsp\@Del
+ \if\EmptyStringConditional{\@RemLspOne}%
+ \expandafter\@RemLspThree #2\@Del{#1}%
+ \else
+ \def#1{#2}%
+ \fi
+}
+\edef\@RemLspTwo{%
+ \def\noexpand\@RemLspThree\space ##1\noexpand\@Del##2{%
+ \def##2{##1}%
+ }%
+}
+\@RemLspTwo
+\catcode`\@ = 12
+\NameDef{@InputD-remtlsp.tip}{}
+\newcount\StringLengthResult
+\catcode`\@ = 11
+\newbox\@StringLengthBoxA
+\newbox\@StringLengthBoxB
+\def\StringLength #1{%
+ \setbox\@StringLengthBoxA = \hbox{\tt #1}%
+ \setbox\@StringLengthBoxB = \hbox{\tt A}%
+ \StringLengthResult = \wd\@StringLengthBoxA
+ \divide\StringLengthResult by \wd\@StringLengthBoxB
+}
+\catcode`\@ = 12
+\NameDef{@InputD-strleng.tip}{}
+\catcode`\@ = 11
+\def\ConvertArgsToListAndAppend #1#2{%
+ \def\@Co{#1}%
+ \@ItemRec #2,\@Delimiter
+}
+\def\@ItemRec #1,{%
+ \RemLsp{\@ItemTemp}{#1}%
+ \expandafter\RightAppendElement\@Co{\@ItemTemp}%
+ \futurelet\@ItemRecTok\@ItemRecOne
+}
+\def\@ItemRecOne{%
+ \RecursionMacroEnd{\ifx\@ItemRecTok\@Delimiter}%
+ {\@ItemRecEnd}{\@ItemRec}%
+}
+\def\@ItemRecEnd\@Delimiter{}
+\catcode`\@ = 12
+\NameDef{@InputD-conval.tip}{}
+\catcode`\@ = 11
+\def\arabic #1{\number#1}
+\def\roman #1{%
+ \romannumeral #1%
+}
+\def\Roman #1{%
+ \ifcase #1\or
+ I\or II\or III\or IV\or V\or
+ VI\or VII\or VIII\or IX\or X\or
+ XI\or XII\or XIII\or XIV\or XV\or
+ XVI\or XVII\or XVIII\or XIX\or XX\or
+ XXI\or XXII\or XXIII\or XXIV\or XV%
+ \else
+ \errmessage{\string\Roman: argument \number#1 out
+ of range, larger than 25.}%
+ \fi
+}
+\def\alph #1{%
+ \ifcase #1%
+ \or a\or b\or c\or d\or e\or f\or g\or h\or i%
+ \else
+ \@Morealph{#1}%
+ \fi
+}
+\def\@Morealph #1{%
+ \ifcase #1%
+ \or \or \or \or \or \or \or \or \or
+ \or j\or k\or l\or m\or n\or o\or p\or q\or r%
+ \or s\or t\or u\or v\or w\or x\or y\or z%
+ \else
+ \errmessage{\string\@Morealph: argument too large.}%
+ \fi
+}
+\def\Alph #1{%
+ \ifcase #1%
+ \or A\or B\or C\or D\or E\or F\or G\or H\or I%
+ \else
+ \@MoreAlph{#1}%
+ \fi
+}
+\def\@MoreAlph #1{%
+ \ifcase #1%
+ \or \or \or \or \or \or \or \or \or
+ \or J\or K\or L\or M\or N\or O\or P\or Q\or R%
+ \or S\or T\or U \or V\or W\or X\or Y\or Z%
+ \else
+ \errmessage{\string\@MoreAlph: argument too large.}%
+ \fi
+}
+\catcode`\@ = 12
+\NameDef{@InputD-printco.tip}{}
+\catcode`\@ = 11
+\def\NewCounter #1#2#3#4{%
+ \wlog{\string\NewCounter: allocating new counter "#1."}%
+ \if\NameDefinedConditional{@C-#1}%
+ \errmessage{\string\NewCounter: counter "#1" was
+ allocated previously.}%
+ \fi
+ \expandafter\newcountOF\csname @C-#1\endcsname
+ \ReassignCounter{#1}{#2}{#3}{#4}%
+ \NameDef{@ResetC-#1}{}%
+}
+\def\ReassignCounter #1#2#3#4{%
+ \if\NameDefinedConditional{@C-#1}%
+ \else
+ \errmessage{\string\ReassignCounter: counter "#1"
+ not defined before.}%
+ \fi
+ \NameDef{@TheC-#1}{%
+ \expandafter\expandafter\expandafter#2%
+ \expandafter{\csname @C-#1\endcsname}%
+ }%
+ \NameDef{@TheArabicC-#1}{%
+ \expandafter\the\csname @C-#1\endcsname
+ }%
+ \NameDef{@PriC-#1}{#3}%
+ \NameDef{@RefC-#1}{#4}%
+}
+\def\TheCounter #1{%
+ \NameUse{@TheC-#1}%
+}
+\def\TheArabicCounter #1{%
+ \NameUse{@TheArabicC-#1}%
+}
+\def\PrintCounter #1{%
+ \NameUse{@PriC-#1}%
+}
+\def\RefCounter #1{%
+ \NameUse{@RefC-#1}%
+}
+\let\RefCounterTwo = \RefCounter
+\def\CounterToRegister #1#2{%
+ #1 = \csname @C-#2\endcsname\relax
+}
+\def\AddCounterToResetList #1#2{%
+ {%
+ \def\@ResetCounter{\noexpand\@ResetCounter}%
+ \expandafter\xdef\csname @ResetC-#2\endcsname{%
+ \csname @ResetC-#2\endcsname\@ResetCounter{#1}%
+ }%
+ }%
+}
+\def\StepCounter #1{%
+ \global\expandafter\advance\csname @C-#1\endcsname by 1
+ \NameUse{@ResetC-#1}%
+}
+\def\SetCounter #1#2{%
+ \global\expandafter\csname @C-#1\endcsname = #2\relax
+}
+\def\AssignCounterToReg #1#2{%
+ #2 = \expandafter\csname @C-#1\endcsname
+ \relax
+}
+\def\@ResetCounter #1{%
+ \global\csname @C-#1\endcsname = 0
+}
+\catcode`\@ = 12
+\NameDef{@InputD-counters.tip}{}
+\newcount\ReturnNumberOfLinesInFile
+\catcode`\@ = 11
+\newcount\@CharCodeNumberOfLines
+{
+ \catcode`\^^M = \active %
+ \gdef\@SetUpLineCounting{%
+ \gdef
+ {\global\advance\ReturnNumberOfLinesInFile by 1 }%
+ }%
+}
+\def\NumberOfLinesInFile #1{%
+ \begingroup
+ \global\ReturnNumberOfLinesInFile = 0
+ \DoLoop{\@CharCodeNumberOfLines}{0}{1}{127}%
+ {\catcode\@CharCodeNumberOfLines = 9 }
+ \@SetUpLineCounting
+ \catcode`\^^M = \active
+ \input #1
+ \endgroup
+ \ifnum\ReturnNumberOfLinesInFile = 1
+ \if\CompareFilesConditional{#1}{nul}%
+ \ReturnNumberOfLinesInFile = 0
+ \fi
+ \fi
+}
+\catcode`\@ = 12
+\NameDef{@InputD-countl.tip}{}
+\def\CenterRightLines #1#2{
+ \setbox 0 = \hbox{#1}
+ \dimen0 = \hsize
+ \advance\dimen0 by -\wd0
+ \divide\dimen0 by 2
+ \rightline{#1\hskip\dimen0}
+ \rightline{#2\hskip\dimen0}
+}
+\NameDef{@InputD-crline.tip}{}
+\catcode`\@ = 11
+\newcount\@CreateArrayCount
+\def\CCreateArray #1#2#3{%
+ \NameEdef{#1-low}{\number#2}%
+ \NameEdef{#1-high}{#3}%
+ \ifnum #3<#2
+ \errmessage{\string\CCreateArray: low array boundary
+ \number#2 is larger than upper array boundary
+ \number#3}%
+ \fi
+ \DoLoop{\@CreateArrayCount}{#2}{1}{#3}{%
+ \NameDef{#1-\the\@CreateArrayCount}{}%
+ }
+}
+\newcount\@ConvertStringIntoArrayLength
+\newcount\@ConvertStringIntoArrayCount
+\def\ConvertStringIntoArray #1#2{%
+ \def\@ConvertArrayName{#1}%
+ \edef\@ConvertArrayString{#2}%
+ \StringLength{\@ConvertArrayString}%
+ \@ConvertStringIntoArrayLength = \StringLengthResult
+ \advance\@ConvertStringIntoArrayLength by -1
+ \CCreateArray{\@ConvertArrayName}%
+ {0}{\the\@ConvertStringIntoArrayLength}%
+ \@ConvertStringIntoArrayCount = 0
+ \expandafter\@ConvertStringIntoArray
+ \@ConvertArrayString\@ConvertEnd
+}
+\def\@ConvertStringIntoArray #1#2\@ConvertEnd{%
+ \CLoadArrayElementEdef{\@ConvertArrayName}%
+ {\the\@ConvertStringIntoArrayCount}{#1}%
+ \if\EmptyStringConditional{#2}%
+ \def\@ConvertStringIntoArrayNext{}%
+ \else
+ \advance\@ConvertStringIntoArrayCount by 1\relax
+ \def\@ConvertStringIntoArrayNext{%
+ \@ConvertStringIntoArray #2\@ConvertEnd%
+ }%
+ \fi
+ \@ConvertStringIntoArrayNext
+}
+\def\CCheckIndex #1#2{%
+ \expandafter\ifx\csname #1-low\endcsname\relax
+ \errmessage{\string\CCheckIndex: no array #1.}%
+ \fi
+ \ifnum #2<\NameUse{#1-low}%
+ \errmessage{Index #2 for array #1 too small.}%
+ \fi
+ \ifnum #2>\NameUse{#1-high}%
+ \errmessage{Index #2 for array #1 too large.}%
+ \fi
+}
+\def\CArrayAccess #1#2#3{%
+ \CCheckIndex{#1}{#2}%
+ \edef#3{\NameUse{#1-#2}}%
+}
+\newcount\@CArrayAccessIntervalCount
+\def\CArrayAccessInterval #1#2#3#4{%
+ \CCheckIndex{#1}{#2}%
+ \CCheckIndex{#1}{#3}%
+ \ifnum #2>#3\relax
+ \errmessage{\string\CArrayAccessInterval: low index
+ (\PoundSignText 2) > high index
+ (PoundSignText 3).}%
+ \fi
+ \def#4{}%
+ \DoLoop
+ {\@CArrayAccessIntervalCount}{#2}{1}{#3}{%
+ \CArrayAccess{#1}{\the\@CArrayAccessIntervalCount}%
+ {\@CArrayAccessInterval}%
+ \edef#4{#4\@CArrayAccessInterval}%
+ }%
+}
+\def\CLoadArrayElement #1#2#3{%
+ \CCheckIndex{#1}{#2}%
+ \NameDef{#1-#2}{#3}%
+}
+\def\CLoadArrayElementEdef #1#2#3{%
+ \CCheckIndex{#1}{#2}%
+ \NameEdef{#1-#2}{#3}%
+}
+\newcount\@CShowArrayCount
+\def\CShowArray #1{%
+ \DoLoop
+ {\@CShowArrayCount}%
+ {\NameUse{#1-low}}%
+ {1}%
+ {\NameUse{#1-high}}%
+ {\wlog{Index \the\@CShowArrayCount:
+ \NameUse{#1-\the\@CShowArrayCount}}}%
+}
+\catcode`\@ = 12
+\NameDef{@InputD-csar.tip}{}
+\newcount\BackslashCharCode
+\BackslashCharCode = `\\
+\edef\mac #1{%
+ {%
+ \noexpand\tt
+ \char\the\BackslashCharCode\space
+ #1%
+ }%
+}
+\NameDef{@InputD-cssprint.tip}{}
+\def\CSToString #1#2{%
+ {%
+ \escapechar = -1
+ \xdef#1{\string #2}%
+ }%
+}
+\NameDef{@InputD-cstostr.tip}{}
+\catcode`\@ = 11
+\newread\@CatIn
+\def\CSToStringCat #1#2{%
+ {%
+ \escapechar = -1
+ \OpenGenericOStream{cstostrc.tmp}%
+ \immediate\write\GenericOStream{\string#2\%}%
+ \CloseGenericOStream
+ \openin\@CatIn = cstostrc.tmp
+ \global\read\@CatIn to #1%
+ \closein\@CatIn
+ }%
+}
+\catcode`\@ = 12
+\NameDef{@InputD-cstostrc.tip}{}
+\catcode`\@ = 11
+\newif\if@ControlSequenceConditional
+\def\ControlSequenceConditional #1{%
+ TT\fi
+ {%
+ \escapechar = -1
+ \xdef\@ControlSequenceConditionalOne{\string#1}%
+ \escapechar = `:\relax
+ \xdef\@ControlSequenceConditionalTwo{\string#1}%
+ }%
+ \ifx\@ControlSequenceConditionalOne
+ \@ControlSequenceConditionalTwo
+ \@ControlSequenceConditionalfalse
+ \else
+ \@ControlSequenceConditionaltrue
+ \fi
+ \if@ControlSequenceConditional
+}
+\catcode`\@ = 12
+\NameDef{@InputD-ctestcs.tip}{}
+\catcode`\@ = 11
+\long\def\DoLongFutureLet #1#2#3#4{%
+ \def\@FutureLetDecide{%
+ #1#2\@FutureLetToken
+ \def\@FutureLetNext{#3}%
+ \else
+ \def\@FutureLetNext{#4}%
+ \fi
+ \@FutureLetNext
+ }%
+ \futurelet\@FutureLetToken\@FutureLetDecide
+}
+\def\DoFutureLet #1#2#3#4{\DoLongFutureLet{#1}{#2}{#3}{#4}}
+\catcode`\@ = 12
+\NameDef{@InputD-futlet.tip}{}
+\catcode`\@ = 11
+\def\DblArg #1{%
+ \def\@DblArgTemp{#1}%
+ \DoFutureLet{\ifx}{[}{\@DblArgTemp}{\@DblArgB}%
+}
+\def\@DblArgB #1{\@DblArgTemp[#1]{#1}}
+\catcode`\@ = 12
+\NameDef{@InputD-dblarg.tip}{}
+\catcode`\@ = 11
+\def\GobbleDoMore #1#2{%
+ \def\@GobbleDoMore ##1#1{}%
+ \expandafter#2\@GobbleDoMore
+}
+\catcode`\@ = 12
+\NameDef{@InputD-gobblemo.tip}{}
+\catcode`\@ = 11
+\def\DefaultArg #1#2#3{%
+ \def\@DefaultArgMacro{#1}%
+ \edef\@EmptyOtherArg{#2}%
+ \edef\@DefaultArgDefault{#3}%
+ \@DefaultArg #2\@DefaultArgEnd
+}
+\def\@DefaultArg{%
+ \futurelet\@DefaultArgSymbol\@DefaultArgOne
+}
+\def\@DefaultArgOne{%
+ \ifx\@DefaultArgSymbol\@DefaultArgEnd
+ \expandafter\edef\@DefaultArgMacro{\@DefaultArgDefault}%
+ \else
+ \expandafter\edef\@DefaultArgMacro{\@EmptyOtherArg}%
+ \fi
+ \GobbleDoMore{\@DefaultArgEnd}{\relax}%
+}
+\catcode`\@ = 12
+\NameDef{@InputD-defauarg.tip}{}
+\def\DicEntry #1{%
+ \par
+ \hangafter = 1
+ \hangindent = 5pt
+ \noindent
+ {\bf #1}%
+ \mark{#1}%
+ \hskip 1em plus .2em minus .2em
+ \ignorespaces
+}
+\NameDef{@InputD-dicentry.tip}{}
+\catcode`\@ = 11
+\newif\if@PrefixResult
+\newcount\@LengthPrefixString
+\newcount\@LengthMainString
+\def\PrefixConditional #1#2{%
+ TT\fi
+ \StringLength{#1}%
+ \@LengthMainString = \StringLengthResult
+ \StringLength{#2}%
+ \@LengthPrefixString = \StringLengthResult
+ \ifnum\@LengthMainString < \@LengthPrefixString
+ \@PrefixResultfalse
+ \else
+ \@PrefixConditionalTwo{#1}{#2}%
+ \fi
+ \if@PrefixResult
+}
+\def\@PrefixConditionalTwo #1#2{%
+ \edef\@PrefixBoth{#1#2}%
+ \edef\@PrefixTemp{%
+ \def\noexpand\@TestPrefix ####1#2####2\noexpand\@Del{%
+ \noexpand\if\noexpand\EmptyStringConditional{####1}%
+ }%
+ }%
+ \ShowX\@PrefixTemp
+ \@PrefixTemp
+ \ShowX{\@TestPrefix}%
+ \expandafter\@TestPrefix\@PrefixBoth\@Del
+ \@PrefixResulttrue
+ \else
+ \@PrefixResultfalse
+ \fi
+}
+\catcode`\@ = 12
+\NameDef{@InputD-isprefix.tip}{}
+\catcode`\@ = 11
+\def\DropPrefix #1#2#3{%
+ \if\PrefixConditional{#1}{#2}%
+ \edef\@PrefixConditionalTemp{%
+ \def\noexpand\@PrefixConditionalTempTwo #2####1%
+ \noexpand\@Del{%
+ \def\noexpand #3{####1}}%
+ }%
+ \@PrefixConditionalTemp
+ \ShowX{\@PrefixConditionalTemp}%
+ \expandafter\@PrefixConditionalTempTwo #1\@Del
+ \else
+ \wlog{\string\DropPrefix: "#2" is NOT a prefix of "#1"}%
+ \edef#3{#1}%
+ \fi
+}
+\catcode`\@ = 12
+\NameDef{@InputD-droppre.tip}{}
+{
+ \catcode`\p = 12
+ \catcode`\t = 12
+ \NameGdef{DropPoints}#1pt{\NameGdef{DropPointsResult}{#1}}
+}
+\NameDef{@InputD-droppt.tip}{}
+\def\DumpOneReg #1{%
+ \wlog{Parameter "\string#1", value = \the#1}%
+}
+\def\DumpAllRegs{%
+ \wlog{\string\DumpAllRegs: Counter parameters first.}%
+ \DumpOneReg{\time}%
+ \DumpOneReg{\day}%
+ \DumpOneReg{\month}%
+ \DumpOneReg{\year}%
+ \DumpOneReg{\pretolerance}%
+ \DumpOneReg{\tolerance}%
+ \DumpOneReg{\doublehyphendemerits}%
+ \DumpOneReg{\finalhyphendemerits}%
+ \DumpOneReg{\adjdemerits}%
+ \DumpOneReg{\linepenalty}%
+ \DumpOneReg{\looseness}%
+ \DumpOneReg{\linepenalty}%
+ \DumpOneReg{\hyphenpenalty}%
+ \DumpOneReg{\exhyphenpenalty}%
+ \DumpOneReg{\binoppenalty}%
+ \DumpOneReg{\relpenalty}%
+ \DumpOneReg{\clubpenalty}%
+ \DumpOneReg{\widowpenalty}%
+ \DumpOneReg{\displaywidowpenalty}%
+ \DumpOneReg{\brokenpenalty}%
+ \DumpOneReg{\predisplaypenalty}%
+ \DumpOneReg{\postdisplaypenalty}%
+ \DumpOneReg{\interlinepenalty}%
+ \DumpOneReg{\floatingpenalty}%
+ \DumpOneReg{\outputpenalty}%
+ \DumpOneReg{\pausing}%
+ \DumpOneReg{\tracingonline}%
+ \DumpOneReg{\tracinglostchars}%
+ \DumpOneReg{\tracingmacros}%
+ \DumpOneReg{\tracingstats}%
+ \DumpOneReg{\tracingparagraphs}%
+ \DumpOneReg{\tracingpages}%
+ \DumpOneReg{\tracingoutput}%
+ \DumpOneReg{\tracingcommands}%
+ \DumpOneReg{\tracingrestores}%
+ \DumpOneReg{\mag}%
+ \DumpOneReg{\uchyph}%
+ \DumpOneReg{\lefthyphenmin}%
+ \DumpOneReg{\righthyphenmin}%
+ \DumpOneReg{\defaultskewchar}%
+ \DumpOneReg{\escapechar}%
+ \DumpOneReg{\endlinechar}%
+ \DumpOneReg{\newlinechar}%
+ \DumpOneReg{\fam}%
+ \DumpOneReg{\hbadness}%
+ \DumpOneReg{\vbadness}%
+ \DumpOneReg{\badness}%
+ \DumpOneReg{\showboxdepth}%
+ \DumpOneReg{\showboxbreadth}%
+ \DumpOneReg{\deadcycles}%
+ \DumpOneReg{\maxdeadcycles}%
+ \DumpOneReg{\holdinginserts}%
+ \DumpOneReg{\hangafter}%
+ \DumpOneReg{\globaldefs}%
+ \DumpOneReg{\delimiterfactor}%
+ \DumpOneReg{\inputlineno}%
+ \DumpOneReg{\language}%
+ \wlog{\string\DumpAllRegs: Dimension parameters next.}%
+ \DumpOneReg{\hfuzz}%
+ \DumpOneReg{\vfuzz}%
+ \DumpOneReg{\overfullrule}%
+ \DumpOneReg{\lineskiplimit}%
+ \DumpOneReg{\maxdepth}%
+ \DumpOneReg{\splitmaxdepth}%
+ \DumpOneReg{\boxmaxdepth}%
+ \DumpOneReg{\delimitershortfall}%
+ \DumpOneReg{\nulldelimiterspace}%
+ \DumpOneReg{\scriptspace}%
+ \DumpOneReg{\mathsurround}%
+ \DumpOneReg{\predisplaysize}%
+ \DumpOneReg{\displaywidth}%
+ \DumpOneReg{\displayindent}%
+ \DumpOneReg{\parindent}%
+ \DumpOneReg{\hangindent}%
+ \DumpOneReg{\hoffset}%
+ \DumpOneReg{\voffset}%
+ \wlog{\string\DumpAllRegs: Glue parameters last.}%
+ \DumpOneReg{\baselineskip}%
+ \DumpOneReg{\lineskip}%
+ \DumpOneReg{\topskip}%
+ \DumpOneReg{\splittopskip}%
+ \DumpOneReg{\parskip}%
+ \DumpOneReg{\leftskip}%
+ \DumpOneReg{\rightskip}%
+ \DumpOneReg{\emergencystretch}%
+ \DumpOneReg{\abovedisplayskip}%
+ \DumpOneReg{\abovedisplayshortskip}%
+ \DumpOneReg{\belowdisplayskip}%
+ \DumpOneReg{\belowdisplayshortskip}%
+ \wlog{\string\DumpAllRegs: done.}%
+}%
+\NameDef{@InputD-dumppars.tip}{}
+\catcode`\@ = 11
+\def\GenAeol #1{%
+ \edef #1{%
+ \bgroup
+ \noexpand\MakeEolActive
+ \noexpand\@GenAeolOne{%
+ \csname\string #1-2\endcsname}%
+ }%
+ \NameDef{\string #1-2}##1%
+}
+{
+ \MakeEolActive
+ \gdef\@GenAeolOne #1#2
+ {%
+ \egroup%
+ #1{#2}%
+ }%
+}
+\catcode`\@ = 12
+\NameDef{@InputD-genaeol.tip}{}
+\catcode`\@ = 11
+\newif\if@VerbFirstLineSuppress
+\def\OpenVerbWrFile #1#2#3{%
+ \immediate\openout #3 = #1.#2
+ \wlog{\string\OpenVerbWrFile: opened "#1.#2" for
+ literal writing.}%
+}
+\def\CloseVerbWrFile #1{%
+ \immediate\closeout #1
+ \wlog{\string\CloseVerbWrFile: closed file for literal writing.}%
+}
+\def\BeginVerbWr #1#2{%
+ \begingroup
+ \def\@VerbWrStream{#1}%
+ \CSToStringCat{\@EndVerbWrSt}{#2}%
+ \wlog{\string\BeginVerbWr: begin}%
+ \MkOthers
+ \MakeEolActive
+ \@VerbWrTabHandling
+ \@VerbFirstLineSuppresstrue
+ \expandafter\expandafter\expandafter
+ \@BeginVerbWrY\expandafter{\@EndVerbWrSt}%
+}
+{
+ \catcode `| = 0
+ \catcode`\\ =12
+ |gdef|@BeginVerbWrY #1{%
+ |def|@BeginVerbWrX ##1\#1{%
+ |@BeginVerbWr ##1%
+ |@VerbWrDoneToken
+ |@VerbWrDone
+ }
+ |@BeginVerbWrX
+ }
+}
+\def\@VerbWrTabHandling{%
+ \MakeTabActive
+ \@VerbWrTabHandlingOne
+}
+{\MakeTabActive
+\gdef\@VerbWrTabHandlingOne{\def^^I{\@TabAsLiteral}}%
+}
+\def\@BeginVerbWr{%
+ \DoFutureLet{\ifx}%
+ {\@VerbWrDoneToken}%
+ {\GobbleDoMore
+ {\@VerbWrDoneToken}{\relax}}%
+ {\@BeginVerbWrTwo}%
+}
+\GenAeol{\@BeginVerbWrTwo}{%
+ \if@VerbFirstLineSuppress
+ \@VerbFirstLineSuppressfalse
+ \else
+ \immediate\write\@VerbWrStream{#1}%
+ \fi
+ \@BeginVerbWr
+}
+\def\@VerbWrDone{%
+ \endgroup
+ \wlog{\string\@VerbWrDone: done}%
+}
+\catcode`\@ = 12
+\NameDef{@InputD-verbwr.tip}{}
+\catcode`\@ = 11
+\def\@DefEndNoteFileExt{eno}
+\newwrite\@EndNoteStream
+\newcount\@EndNoteCounter
+\def\StartEndNoteWriting #1#2#3#4{%
+ \@EndNoteCounter = 0
+ \DefaultArg{\@EndNoteBaseName}{#1}{\jobname}%
+ \DefaultArg{\@EndNoteFileExt}{#2}{\@DefEndNoteFileExt}%
+ \edef\@EndNoteFileName{\@EndNoteBaseName.\@EndNoteFileExt}%
+ \wlog{\string\StartEndNoteWriting: output will be written to file
+ "\@EndNoteFileName".}
+ \edef\@EndNoteBefore{\string#3}%
+ \edef\@EndNoteAfter{\string#4}%
+ \OpenVerbWrFile{\@EndNoteBaseName}{\@EndNoteFileExt}%
+ {\@EndNoteStream}%
+}
+\def\BeginEndNote{%
+ \advance\@EndNoteCounter by 1
+ \ifnum\@EndNoteCounter > 1
+ \immediate\write\@EndNoteStream{\@EndNoteAfter}%
+ \fi
+ \immediate\write\@EndNoteStream{\@EndNoteBefore}%
+ \BeginVerbWr{\@EndNoteStream}{\EndEndNote}
+}
+\def\EndEndNoteWriting{%
+ \immediate\write\@EndNoteStream{\@EndNoteAfter}%
+ \CloseVerbWrFile{\@EndNoteStream}%
+}
+\def\ReadInEndNotes{%
+ \input \@EndNoteFileName
+}
+\catcode`\@ = 12
+\NameDef{@InputD-endn-mac.tip}{}
+\catcode`\@ = 11
+\newdimen \Delta@XY
+\newskip\@ParListBeforeAfter
+\newskip\@ParListBetweenLabels
+\newskip\@ParListAfterLabel
+\newcount\@LabeledParNesting \@LabeledParNesting = 0
+\newcount\@LabelCounter
+\def\BeginAList #1#2#3#4#5#6#7{%
+ \par
+ \bgroup
+ \advance\leftskip by #1
+ \advance\rightskip by #2
+ \advance \@LabeledParNesting by 1
+ \@LabelCounter = 0
+ \Delta@XY = #3
+ \ifdim\Delta@XY < 0pt
+ \errmessage{\string\BeginAList: negative Delta{xy},
+ made positive.}%
+ \fi
+ \@ParListBeforeAfter = #4
+ \@ParListBetweenLabels = #5
+ \@ParListAfterLabel = #6
+ \SetParIndent{#7}
+}
+\def\EndAList{%
+ \par
+ \vskip\@ParListBeforeAfter
+ \egroup
+}
+\def\@GenLabel #1{%
+ \par
+ \advance\@LabelCounter by 1
+ \ifnum\@LabelCounter = 1
+ \parskip = \@ParListBeforeAfter
+ \else
+ \parskip = \@ParListBetweenLabels
+ \fi
+ \noindent
+ \hbox to 0pt{#1}%
+ \parskip = \@ParListAfterLabel
+ \ignorespaces
+}
+\def\ItemLL #1{%
+ \@GenLabel{%
+ \hskip -\Delta@XY
+ #1%
+ \hfil
+ }%
+}
+\def\ItemLR #1{%
+ \@GenLabel{%
+ \hss
+ #1%
+ \hskip\Delta@XY
+ }%
+}
+\def\ItemRL #1{%
+ \@GenLabel{%
+ \hskip\Delta@XY
+ #1%
+ \hss
+ }%
+}
+\def\ItemRR #1{%
+ \@GenLabel{%
+ \hfil
+ #1%
+ \hskip -\Delta@XY
+ }%
+}
+\catcode`\@ = 12
+\NameDef{@InputD-parv-1.tip}{}
+\catcode`\@ = 11
+\newcount\@EnumerateListDepth
+\@EnumerateListDepth = 0
+\NewCounter{Enumerate1}{\arabic}%
+ {\TheCounter{Enumerate1}.}{\TheCounter{Enumerate1}}
+\NewCounter{Enumerate2}{\alph}%
+ {(\TheCounter{Enumerate2})}%
+ {\TheCounter{Enumerate1}.\TheCounter{Enumerate2}}
+\NewCounter{Enumerate3}{\roman}%
+ {\TheCounter{Enumerate3}.}%
+ {\RefCounter{Enumerate2}.\TheCounter{Enumerate3}}
+\NewCounter{Enumerate4}{\Alph}%
+ {\TheCounter{Enumerate4}.}%
+ {\RefCounter{Enumerate3}.\TheCounter{Enumerate4}}
+\def\BeginEnumerate{%
+ \begingroup
+ \global\advance\@EnumerateListDepth by 1
+ \ifcase\@EnumerateListDepth
+ \errmessage{\string\BeginEnumerate: no level
+ zero.}%
+ \or
+ \SetCounter{Enumerate1}{0}%
+ \@BeginEnumerateLevelOne
+ \def\Label ##1{\@Label{##1}{\RefCounter{Enumerate1}}{1}}%
+ \def\Item{%
+ \StepCounter{Enumerate1}%
+ \ItemLR{\PrintCounter{Enumerate1}}%
+ }%
+ \or
+ \SetCounter{Enumerate2}{0}%
+ \@BeginEnumerateLevelTwo
+ \def\Label ##1{\@Label{##1}{\RefCounter{Enumerate2}}{1}}%
+ \def\Item{%
+ \StepCounter{Enumerate2}%
+ \ItemLR{\PrintCounter{Enumerate2}}%
+ }%
+ \or
+ \SetCounter{Enumerate3}{0}%
+ \@BeginEnumerateLevelThree
+ \def\Label ##1{\@Label{##1}{\RefCounter{Enumerate3}}{1}}%
+ \def\Item{%
+ \StepCounter{Enumerate3}%
+ \ItemLR{\PrintCounter{Enumerate3}}%
+ }%
+ \or
+ \SetCounter{Enumerate4}{0}%
+ \@BeginEnumerateLevelFour
+ \def\Label ##1{\@Label{##1}{\RefCounter{Enumerate4}}{1}}%
+ \def\Item{%
+ \StepCounter{Enumerate4}%
+ \ItemLR{\PrintCounter{Enumerate4}}%
+ }%
+ \else
+ \errmessage{\string\BeginEnumerate: maximum
+ nesting level of 4 exceeded.}%
+ \fi
+}
+\def\EndEnumerate{%
+ \EndAList
+ \endgroup
+ \global\advance\@EnumerateListDepth by -1
+}
+\catcode`\@ = 12
+\NameDef{@InputD-enumlist.tip}{}
+\def\ErrMessage #1{%
+ \errmessage{#1}%
+ \end
+}
+\NameDef{@InputD-errmess.tip}{}
+\def\PrintEven #1{%
+ \ifodd #1\relax
+ \else
+ Number #1 is even.
+ \fi
+}
+\NameDef{@InputD-evenprin.tip}{}
+\everypar = {%
+ \EvalEveryPars
+ \ClearEveryPars
+}
+\def\EvalEveryParsCE{%
+ \EveryParC
+ \EveryParD
+ \EveryParE
+}
+\def\EvalEveryPars{%
+ \EveryParA
+ \EveryParB
+ \EvalEveryParsCE
+ \EveryParZ
+}
+\def\ClearEveryPars{%
+ \gdef\EveryParA{}%
+ \gdef\EveryParB{}%
+ \gdef\EveryParC{}%
+ \gdef\EveryParD{}%
+ \gdef\EveryParE{}%
+}
+\def\ClearEveryParsAll{%
+ \ClearEveryPars
+ \gdef\EveryParZ{}%
+}
+\ClearEveryParsAll
+\NameDef{@InputD-everypar.tip}{}
+\def\FigureBox #1#2{%
+ \BoxingA{%
+ \EmptyBox{#1}{0pt}{#2}%
+ }%
+}
+\NameDef{@InputD-figbox.tip}{}
+\def\OverallSize #1#2{%
+ #1 = \ht#2\relax
+ \advance#1 by \dp#2\relax
+}
+\NameDef{@InputD-sumhd.tip}{}
+\def\LogPageTG #1{%
+ \wlog{\string\LogPageTG [#1]:}%
+ \wlog{\string\pagetotal: \the\pagetotal,
+ \string\pagegoal: \the\pagegoal}%
+}
+\NameDef{@InputD-lpagetg.tip}{}
+\newdimen\FreePageSpace
+\def\ComputeFreeSpaceOnPage{%
+ \par
+ \LogPageTG{\string\ComputeFreeSpaceOnPage}%
+ \ifdim\pagetotal = 0pt
+ \FreePageSpace = \vsize
+ \else
+ \FreePageSpace = \pagegoal
+ \advance\FreePageSpace by -\pagetotal
+ \fi
+}
+\def\FreeSpaceConditional{%
+ 0pt = 0pt \fi
+ \ComputeFreeSpaceOnPage
+ \ifdim\FreePageSpace
+}
+\NameDef{@InputD-freespac.tip}{}
+\def\FigureInPar #1#2#3#4#5{%
+ \par
+ \message{\string\FigureInPar: start}%
+ {%
+ \setbox 0 = \vbox{#1}
+ \OverallSize{\dimen0}{0}%
+ \advance\dimen0 by #2
+ \advance\dimen0 by #3
+ \advance\dimen0 by #4
+ \advance\dimen0 by #4
+ \advance\dimen0 by \parskip
+ \message{\string\FigureInPar:
+ available space: \the\FreePageSpace}%
+ \setbox 0 = \HboxR{\EmptyBox{#2}{0pt}{\hsize}}%
+ \ifdim\FreeSpaceConditional < \dimen0
+ \message{\string\FigureInPar:
+ insufficient space: make it a \string\topinsert.}%
+ #1\unskip
+ \space
+ #5%
+ \par
+ \topinsert
+ \box0
+ \endinsert
+ \else
+ \message{\string\FigureInPar:
+ Sufficient space: put it here.}%
+ #1\unskip
+ \space
+ \vadjust{%
+ \vskip #4
+ \box0
+ \vskip #4
+ }%
+ #5\par
+ \fi
+ }
+}
+\NameDef{@InputD-figinpar.tip}{}
+\catcode`\@ = 11
+\def\FirstLineSpecial #1{%
+ \par
+ \begingroup
+ #1
+ \def\@FLDTemp{}%
+ \dimen0 = \parindent
+ \setbox0 = \hbox{ }%
+ \advance\dimen0 by -\wd0
+ \@FLDOne
+}
+\def\@FLDOne #1 {%
+ \wlog{\string\@FLDOne: called with "#1".}%
+ \xdef\@FLDTempa{#1\ }%
+ \@FLDTwo
+}
+\def\@FLDTwo{%
+ \wlog{\string\@FLDTwo: called}%
+ \setbox0 = \hbox{\@FLDTempa}%
+ \advance\dimen0 by \wd0
+ \ifdim\dimen0 < \hsize
+ \edef\@FLDTemp{\@FLDTemp\@FLDTempa}%
+ \let\@FLDNext = \@FLDOne
+ \else
+ \leavevmode
+ \@FLDTemp
+ \unskip
+ \break
+ \aftergroup\@FLDTempa
+ \let\@FLDNext = \endgroup
+ \fi
+ \@FLDNext
+}
+\catcode`\@ = 12
+\NameDef{@InputD-firstldi.tip}{}
+\def\ReportCharSize #1#2{%
+ {%
+ \count0 = #2\relax
+ \setbox 0 = \hbox{#1\char\count0}%
+ \wlog{\string\ReportCharSize: Font \string#1,
+ character code \the\count0}%
+ \wlog{ht / dp / wd: \the\ht0 \space / \the\dp0
+ \space / \the\wd0}%
+ }%
+}
+\NameDef{@InputD-fo-char.tip}{}
+\def\CharactersPerPica #1{%
+ \setbox0 = \hbox{%
+ #1\relax
+ This paragraph has 423 characters. We know that
+ because we counted it. It is very simple to count, because
+ the Emacs editor we are using has a function ``advance
+ by one character.'' And with the prefix command (that's
+ Emacs terminology) you can execute ``advance by
+ one character'' 423~times. Now, let's hope that this text
+ is representative of ordinary text so that our average
+ number of characters per pica is correct.
+ }%
+ {%
+ \count1 = \wd0
+ \divide\count1 by 100
+ \count0 = 423
+ \multiply\count0 by 65536
+ \multiply\count0 by 12
+ \divide\count0 by \count1
+ \count2 = \count0
+ \divide\count2 by 100
+ \IModN{\count0}{100}{\count3}%
+ \the\count2.\LeadingZ{\count3}%
+ }%
+}
+\NameDef{@InputD-font-cpp.tip}{}
+\def\FormLine #1#2#3{%
+ {%
+ \setbox0 = \hbox{#2}%
+ \dimen0 = #1%
+ \advance\dimen0 by -\wd0
+ \hbox{%
+ \box0
+ \hbox to 0pt{%
+ \vrule width \dimen0 height 0.4pt depth 0pt
+ \hss
+ }%
+ \raise 3pt \hbox to \dimen0 {\hfil #3\hfil}%
+ }%
+ }%
+}
+\NameDef{@InputD-formline.tip}{}
+\catcode`\@ = 11
+\def\@OctPrintFontTable#1{%
+ \hbox{%
+ \rm\'{}%
+ \kern-.2em
+ \it #1\/%
+ \kern.05em
+ }%
+}
+\def\@HexPrintFontTable#1{%
+ \hbox{\rm\H{}\tt#1}%
+}
+\def\@OddLineFontTable#1{%
+ \cr
+ \noalign{\nointerlineskip}
+ \multispan{19}\hrulefill&
+ \setbox0 = \hbox{%
+ \lower 2.3pt\hbox{%
+ \@HexPrintFontTable{#1x}%
+ }%
+ }%
+ \smash{\box0}%
+ \cr
+ \noalign{\nointerlineskip}
+}
+\def\@EvenLineFontTable{\cr\noalign{\hrule}}
+\def\@FontTableStrut{\lower4.5pt\vbox to 14pt{}}
+\def\BeginFontTable #1{%
+ $$
+ \postdisplaypenalty = 0
+ \global\count@=0
+ #1
+ \halign to\hsize\bgroup
+ \@FontTableStrut##\relax \tabskip = 0pt plus 10pt&
+ &\hfil##\hfil&\vrule##%
+ \cr
+ \lower6.5pt\null
+ &&&
+ \@OctPrintFontTable0&&
+ \@OctPrintFontTable1&&
+ \@OctPrintFontTable2&&
+ \@OctPrintFontTable3&&
+ \@OctPrintFontTable4&&
+ \@OctPrintFontTable5&&
+ \@OctPrintFontTable6&&
+ \@OctPrintFontTable7&
+ \@EvenLineFontTable
+}
+\def\EndFontTable{%
+ \raise 11.5pt\null
+ &&&
+ \@HexPrintFontTable 8&&
+ \@HexPrintFontTable 9&&
+ \@HexPrintFontTable A&&
+ \@HexPrintFontTable B&&
+ \@HexPrintFontTable C&&
+ \@HexPrintFontTable D&&
+ \@HexPrintFontTable E&&
+ \@HexPrintFontTable F&
+ \cr
+ \egroup
+ $$%
+}
+\def\:{%
+ \setbox0 = \hbox{%
+ \char\count@
+ }%
+ \ifdim\ht0 > 7.5pt
+ \@RepositionFontTable
+ \else
+ \ifdim\dp0 > 2.5pt
+ \@RepositionFontTable
+ \fi
+ \fi
+ \box0
+ \global\advance\count@ by 1
+}
+\def\@RepositionFontTable{%
+ \setbox0 = \hbox{%
+ $
+ \vcenter{%
+ \kern 2pt
+ \box0
+ \kern 2pt
+ }
+ $%
+ }%
+}
+\def\NormalFontTable{%
+ &\@OctPrintFontTable{00x}&&\:&&\:&&\:&&\:&&\:&&\:&&
+ \:&&\:&&\@OddLineFontTable0
+ &\@OctPrintFontTable{01x}&&\:&&\:&&\:&&\:&&\:&&\:&&
+ \:&&\:&\@EvenLineFontTable
+ &\@OctPrintFontTable{02x}&&\:&&\:&&\:&&\:&&\:&&\:&&
+ \:&&\:&&\@OddLineFontTable1
+ &\@OctPrintFontTable{03x}&&\:&&\:&&\:&&\:&&\:&&\:&&
+ \:&&\:&\@EvenLineFontTable
+ &\@OctPrintFontTable{04x}&&\:&&\:&&\:&&\:&&\:&&\:&&
+ \:&&\:&&\@OddLineFontTable2
+ &\@OctPrintFontTable{05x}&&\:&&\:&&\:&&\:&&\:&&\:&&
+ \:&&\:&\@EvenLineFontTable
+ &\@OctPrintFontTable{06x}&&\:&&\:&&\:&&\:&&\:&&\:&&
+ \:&&\:&&\@OddLineFontTable3
+ &\@OctPrintFontTable{07x}&&\:&&\:&&\:&&\:&&\:&&\:&&
+ \:&&\:&\@EvenLineFontTable
+ &\@OctPrintFontTable{10x}&&\:&&\:&&\:&&\:&&\:&&\:&&
+ \:&&\:&&\@OddLineFontTable4
+ &\@OctPrintFontTable{11x}&&\:&&\:&&\:&&\:&&\:&&\:&&
+ \:&&\:&\@EvenLineFontTable
+ &\@OctPrintFontTable{12x}&&\:&&\:&&\:&&\:&&\:&&\:&&
+ \:&&\:&&\@OddLineFontTable5
+ &\@OctPrintFontTable{13x}&&\:&&\:&&\:&&\:&&\:&&\:&&
+ \:&&\:&\@EvenLineFontTable
+ &\@OctPrintFontTable{14x}&&\:&&\:&&\:&&\:&&\:&&\:&&
+ \:&&\:&&\@OddLineFontTable6
+ &\@OctPrintFontTable{15x}&&\:&&\:&&\:&&\:&&\:&&\:&&
+ \:&&\:&\@EvenLineFontTable
+ &\@OctPrintFontTable{16x}&&\:&&\:&&\:&&\:&&\:&&\:&&
+ \:&&\:&&\@OddLineFontTable7
+ &\@OctPrintFontTable{17x}&&\:&&\:&&\:&&\:&&\:&&\:&&
+ \:&&\:&\@EvenLineFontTable
+}
+\def\MoreFontTable{%
+ &\@OctPrintFontTable{20x}&&\:&&\:&&\:&&\:&&\:&&\:&&
+ \:&&\:&&\@OddLineFontTable8
+ &\@OctPrintFontTable{21x}&&\:&&\:&&\:&&\:&&\:&&\:&&
+ \:&&\:&\@EvenLineFontTable
+ &\@OctPrintFontTable{22x}&&\:&&\:&&\:&&\:&&\:&&\:&&
+ \:&&\:&&\@OddLineFontTable9
+ &\@OctPrintFontTable{23x}&&\:&&\:&&\:&&\:&&\:&&\:&&
+ \:&&\:&\@EvenLineFontTable
+ &\@OctPrintFontTable{24x}&&\:&&\:&&\:&&\:&&\:&&\:&&
+ \:&&\:&&\@OddLineFontTable A
+ &\@OctPrintFontTable{25x}&&\:&&\:&&\:&&\:&&\:&&\:&&
+ \:&&\:&\@EvenLineFontTable
+ &\@OctPrintFontTable{26x}&&\:&&\:&&\:&&\:&&\:&&\:&&
+ \:&&\:&&\@OddLineFontTable B
+ &\@OctPrintFontTable{27x}&&\:&&\:&&\:&&\:&&\:&&\:&&
+ \:&&\:&\@EvenLineFontTable
+ &\@OctPrintFontTable{30x}&&\:&&\:&&\:&&\:&&\:&&\:&&
+ \:&&\:&&\@OddLineFontTable C
+ &\@OctPrintFontTable{31x}&&\:&&\:&&\:&&\:&&\:&&\:&&
+ \:&&\:&\@EvenLineFontTable
+ &\@OctPrintFontTable{32x}&&\:&&\:&&\:&&\:&&\:&&\:&&
+ \:&&\:&&\@OddLineFontTable D
+ &\@OctPrintFontTable{33x}&&\:&&\:&&\:&&\:&&\:&&\:&&
+ \:&&\:&\@EvenLineFontTable
+ &\@OctPrintFontTable{34x}&&\:&&\:&&\:&&\:&&\:&&\:&&
+ \:&&\:&&\@OddLineFontTable E
+ &\@OctPrintFontTable{35x}&&\:&&\:&&\:&&\:&&\:&&\:&&
+ \:&&\:&\@EvenLineFontTable
+ &\@OctPrintFontTable{36x}&&\:&&\:&&\:&&\:&&\:&&\:&&
+ \:&&\:&&\@OddLineFontTable F
+ &\@OctPrintFontTable{37x}&&\:&&\:&&\:&&\:&&\:&&\:&&
+ \:&&\:&\@EvenLineFontTable
+}
+\catcode`\@ = 12
+\NameDef{@InputD-fotable.tip}{}
+\catcode`\@ = 11
+\def\ForEachToken #1#2{%
+ \def\@ForEachTokenMacro{#2}%
+ \expandafter\@ForEachToken\the#1\@ForEachTokenDel
+}
+\def\@ForEachToken #1{%
+ \if\StringsEqualConditional{\string\@ForEachTokenDel}{\string#1}%
+ \let\@ForEachTokenNext = \relax % Done.
+ \else
+ \@ForEachTokenMacro{#1}% % Call macro and continue.
+ \let\@ForEachTokenNext = \@ForEachToken
+ \fi
+ \@ForEachTokenNext
+}
+\catcode`\@ = 12
+\NameDef{@InputD-fotok.tip}{}
+\def\frac #1#2{%
+ {#1 \over #2}%
+}
+\NameDef{@InputD-frac.tip}{}
+\newdimen\CurrentFontSize
+\def\DefineFontSizeGroup #1#2{%
+ \wlog{\string\DefineFontSizeGroup: defining group "#1" (#2 pt)}%
+ \NameDef{FontSize#1}{%
+ \def\rm{\fam = 0 \NameUse{#1rm}}%
+ \def\bf{\fam = \bffam \NameUse{#1bf}}%
+ \def\it{\fam = \itfam \NameUse{#1it}}%
+ \def\tt{\fam = \ttfam \NameUse{#1tt}}%
+ \def\sc{\NameUse{#1sc}}%
+ \def\sl{\fam = \slfam \NameUse{#1sl}}%
+ \CurrentFontSize = #2pt
+ \baselineskip = \LineSpaceMultFactor\CurrentFontSize
+ \rm
+ }
+}
+\def\LineSpaceMultFactor{1.2}
+\NameDef{@InputD-fsized.tip}{}
+\catcode`\@ = 11
+\def\FutureLetNoSpace #1#2{%
+ \def\@FutureLetTokenA{#1}%
+ \def\@FutureLetTokenB{#2}%
+ \@FutureLetOne
+}
+\def\@FutureLetOne{%
+ \DoFutureLet{\ifx}{ }%
+ {\@FutureLetThree}{\@FutureLetOk}%
+}
+\edef\@FutureLetNoSpaceTemp{%
+ \def\noexpand\@FutureLetThree\space{\noexpand\@FutureLetOne}%
+}
+\@FutureLetNoSpaceTemp
+\def\@FutureLetOk{%
+ \expandafter\futurelet\@FutureLetTokenA\@FutureLetTokenB
+}
+\long\def\DoLongFutureLetNoSpace #1#2#3#4{%
+ \def\@FutureLetDecideNoSpace{%
+ #1#2\@FutureLetTokenNoSpace
+ \def\@FutureLetNextNoSpace{#3}%
+ \else
+ \def\@FutureLetNextNoSpace{#4}%
+ \fi
+ \@FutureLetNextNoSpace
+ }%
+ \FutureLetNoSpace{\@FutureLetTokenNoSpace}%
+ {\@FutureLetDecideNoSpace}%
+}
+\def\DoFutureLetNoSpace #1#2#3#4{%
+ \DoLongFutureLetNoSpace{#1}{#2}{#3}{#4}%
+}
+\catcode`\@ = 12
+\NameDef{@InputD-funospac.tip}{}
+\def\ParLookAhead #1#2{%
+ \DoLongFutureLetNoSpace{\ifx}{\par}%
+ {#1}{#2}%
+}
+\NameDef{@InputD-futpar.tip}{}
+\catcode`\@ = 11
+\newskip\@MaxVskipGlue
+\def\MaxVskip #1{%
+ \par
+ \@MaxVskipGlue = #1\relax
+ \ifdim\lastskip < \@MaxVskipGlue
+ \ifdim\lastskip = 0pt
+ \else
+ \vskip -\lastskip
+ \fi
+ \vskip\@MaxVskipGlue
+ \fi
+}
+\catcode`\@ = 12
+\NameDef{@InputD-vsmax.tip}{}
+\newdimen\NormalParIndent
+\def\SetParIndent #1{%
+ \NormalParIndent = #1%
+ \parindent = #1%
+}
+\def\SuppressNextParIndent{%
+ \global\parindent = 0pt
+ \gdef\EveryParA{%
+ \global\parindent = \NormalParIndent
+ % \hskip-\parindent
+ }%
+}
+\def\CancelSuppressNextParIndent{%
+ \global\parindent = \NormalParIndent
+ \gdef\EveryParA{}%
+}
+\NameDef{@InputD-parin.tip}{}
+\newtoks\EveryHeading
+\EveryHeading = {}
+\catcode`\@ = 11
+\newcount\@GenericHeadingCount
+\newcount\@GenericHeadingIndent
+\def\LineBreakHeading{%
+ \errmessage{%
+ \string\LineBreakHeading/\string\LineBreakToc:
+ can only be used inside a heading.}%
+}
+\let\LineBreakToc = \LineBreakHeading
+\def\IgnoreInRunnningHead #1{%
+ #1%
+}
+\def\GenericHeading #1#2#3#4#5{%
+ \par
+ \the\EveryHeading
+ \@GenericHeadingCount = #1
+ \@GenericHeadingIndent = #5
+ \MaxVskip{#2}%
+ \ifdim\leftskip = 0pt
+ \else
+ \message{\string\GenericHeading: \noexpand\leftskip
+ is non-zero, forgotten to terminate a list?}%
+ \fi
+ \begingroup
+ \interlinepenalty = 10000
+ \parindent = 0pt
+ \parskip = 0pt
+ \ifnum #4 = 1
+ \hyphenpenalty = 10000
+ \fi
+ \ifnum #3 = 1
+ \rightskip = 0pt plus 50pt
+ \fi
+ \@GenericHeading
+}
+\def\@GenericHeading #1#2#3#4#5#6#7{%
+ #3%
+ \def\LineBreakHeading{\hfil\break}%
+ \def\LineBreakToc{ }%
+ \ifdim #4 > 0pt
+ \ifnum\@GenericHeadingIndent = 0
+ \hangindent = #4
+ \hangafter = 1
+ \leavevmode
+ \hbox to #4{#5\hfil}%
+ \else
+ \leavevmode
+ \hbox to #4{#5\hfil}%
+ \fi
+ \else
+ \setbox0 = \hbox{#5\hskip -#4}
+ \ifnum\@GenericHeadingIndent = 0
+ \hangindent = \wd0
+ \hangafter = 1
+ \leavevmode
+ \box0
+ \else
+ \leavevmode
+ \box0
+ \fi
+ \fi
+ #6%
+ \if\NameDefinedConditional{WriteToAuxSpecial}%
+ \def\LineBreakToc{\hfil\break}%
+ \def\LineBreakHeading{ }%
+ \WriteToAuxSpecial{toc}{\the\@GenericHeadingCount}%
+ {#5}{#7}{\PrintCounter{PageNo}}%
+ \fi
+ \par
+ \endgroup
+ \nobreak
+ \vskip #1
+ \ifnum #2 = 0
+ \SuppressNextParIndent
+ \fi
+}
+\catcode`\@ = 12
+\NameDef{@InputD-genhead.tip}{}
+\newcount\ResultNumberOfLines
+\def\GetNumberOfLines #1#2{%
+ {%
+ \setbox 0 = \vbox{%
+ \hsize = #2
+ #1
+ \par
+ \global\ResultNumberOfLines = \prevgraf
+ }%
+ }%
+}
+\NameDef{@InputD-getnuml.tip}{}
+\def\GobbleOne #1{}
+\def\GobbleTwo #1#2{}
+\def\GobbleThree#1#2#3{}
+\def\GobbleFour #1#2#3#4{}
+\def\GobbleFive #1#2#3#4#5{}
+\def\GobbleSix #1#2#3#4#5#6{}
+\def\GobbleSeven#1#2#3#4#5#6#7{}
+\def\GobbleEight#1#2#3#4#5#6#7#8{}
+\def\GobbleNine #1#2#3#4#5#6#7#8#9{}
+\NameDef{@InputD-gobble.tip}{}
+\catcode`\@ = 11
+\newdimen\@ScaleLength
+\def\SetScale #1{%
+ \@ScaleLength = #1
+}
+\SetScale{1mm}
+\newdimen\@LineThickness
+\def\SetLineThickness #1{%
+ \@LineThickness = #1
+}
+\SetLineThickness{0.3mm}
+\newbox\@GraphDataBox
+\def\SetGraphDataBox #1{%
+ \dimen0 = #1%
+ \setbox\@GraphDataBox =
+ \hbox{%
+ \hskip -0.5\dimen0
+ \vrule height 0.5\dimen0
+ depth 0.5\dimen0
+ width 1.0\dimen0
+ }%
+ \ZeroBox{\@GraphDataBox}%
+}
+\SetGraphDataBox{2mm}
+\def\DrawDataBox (#1,#2){%
+ {%
+ \setbox0 = \hbox{%
+ \hskip #1\@ScaleLength
+ \raise #2\@ScaleLength\copy\@GraphDataBox
+ }%
+ \ZeroBoxOut{0}%
+ }%
+}
+\def\DrawHLine (#1,#2)#3{%
+ {%
+ \setbox0 = \hbox{%
+ \hskip #1\@ScaleLength
+ \raise #2\@ScaleLength
+ \hbox{%
+ \vrule height 0.5\@LineThickness
+ depth 0.5\@LineThickness
+ width #3\@ScaleLength
+ }%
+ }%
+ \ZeroBoxOut{0}%
+ }%
+}
+\def\DrawVLine (#1,#2)#3{%
+ {%
+ \setbox0 = \hbox{%
+ \hskip #1\@ScaleLength
+ \hskip -0.5\@LineThickness
+ \raise #2\@ScaleLength
+ \hbox{%
+ \vrule height #3\@ScaleLength
+ depth 0pt
+ width \@LineThickness
+ }%
+ }%
+ \ZeroBoxOut{0}%
+ }%
+}
+\catcode`\@ = 12
+\NameDef{@InputD-graphmac.tip}{}
+\def\Hex #1{%
+ {%
+ \count0 = #1%
+ \count1 = #1%
+ \divide\count0 by 16
+ \count2 = \count0
+ \multiply \count2 by -16
+ \advance \count1 by \count2
+ \ifnum \count0 > 0
+ \Hex{\count0}%
+ \fi
+ \HexDigit{\count1}%
+ }%
+}
+\def\HexDigit #1{%
+ {%
+ \count0 = #1\relax
+ \ifnum \count0 < 10
+ \number\count0 % or \the\count0
+ \else
+ \advance\count0 by -10
+ \advance\count0 by `A
+ \char\count0
+ \fi
+ }%
+}
+\NameDef{@InputD-hex.tip}{}
+\newif\ifEvenConditionalResult
+\def\EvenConditional #1{%
+ TT\fi
+ \ifodd #1\relax
+ \EvenConditionalResultfalse
+ \else
+ \EvenConditionalResulttrue
+ \fi
+ \ifEvenConditionalResult
+}
+\NameDef{@InputD-ifeven.tip}{}
+\catcode`\@ = 11
+\newif\if@Def
+\def\XDefinedConditional #1{%
+ TT\fi
+ \ifx #1\@AlwaysUndefinedToken
+ \@Deffalse
+ \else
+ \@Deftrue
+ \fi
+ \if@Def
+}
+\catcode`\@ = 12
+\NameDef{@InputD-ifx-def.tip}{}
+\catcode`\@ = 11
+\def\IfXConditional #1#2{%
+ TT\fi
+ \def\@IfXConditionalOne{#1}%
+ \def\@IfXConditionalTwo{#2}%
+ \ifx\@IfXConditionalOne\@IfXConditionalTwo
+}
+\catcode`\@ = 12
+\NameDef{@InputD-ifx-mac.tip}{}
+\def\InputAt #1{%
+ \catcode`\@ = 11
+ \input #1
+ \catcode`\@ = 12
+}
+\NameDef{@InputD-input-at.tip}{}
+\catcode`\@ = 11
+\def\InputC #1{%
+ \if\FileExistsConditional{#1}%
+ \input #1
+ \else
+ \message{\string\InputC: there is no file "#1".}%
+ \fi
+}
+\def\InputCWithAt #1{%
+ \catcode`@ = 11
+ \InputC{#1}%
+ \catcode`@ = 12
+}
+\catcode`\@ = 12
+\NameDef{@InputD-inputc.tip}{}
+\catcode`\@ = 11
+\def\ReverseString #1#2{%
+ \def\@ReverseStringName{#1}%
+ \def\@ReversedString{}%
+ \edef\@ReverseTemp{#2}%
+ \ShowX\@ReverseTemp
+ \expandafter\@ReverseString\@ReverseTemp\@Del
+}
+\def\@ReverseString #1{%
+ \ifx #1\@Del
+ \expandafter\edef\@ReverseStringName{\@ReversedString}%
+ \let\@ReverseStringNext = \relax
+ \else
+ \edef\@ReversedString{#1\@ReversedString}%
+ \let\@ReverseStringNext = \@ReverseString
+ \def\@ReverseStringNext{\@ReverseString}%
+ \fi
+ \@ReverseStringNext
+}
+\catcode`\@ = 12
+\NameDef{@InputD-reverses.tip}{}
+\catcode`\@ = 11
+\def\SuffixConditional #1#2{%
+ TT\fi
+ \ReverseString{\@MainSuffixString}{#1}%
+ \ReverseString{\@SuffixSuffixString}{#2}%
+ \if\PrefixConditional{\@MainSuffixString}{\@SuffixSuffixString}%
+}
+\catcode`\@ = 12
+\NameDef{@InputD-issuffix.tip}{}
+\catcode`\@ = 11
+\newcount\@ItemListDepth
+\@ItemListDepth = 0
+\def\BeginItemize{%
+ \begingroup
+ \global\advance\@ItemListDepth by 1
+ \ifcase\@ItemListDepth\or
+ \@BeginItemizeLevelOne
+ \def\Item{\ItemLL{$\bullet$}}%
+ \or
+ \@BeginItemizeLevelTwo
+ \def\Item{\ItemLL{--}}%
+ \or
+ \@BeginItemizeLevelThree
+ \def\Item{\ItemLL{*}}%
+ \or
+ \@BeginItemizeLevelFour
+ \def\Item{\ItemLL{+}}%
+ \else
+ \errmessage{\string\BeginItemize: maximum nesting of
+ 4 exceeded.}%
+ \fi
+}
+\def\EndItemize{%
+ \EndAList
+ \endgroup
+ \global\advance\@ItemListDepth by -1
+}
+\catcode`\@ = 12
+\NameDef{@InputD-itemizel.tip}{}
+\def\hang{%
+ \hangindent = \parindent
+}
+\def\item{%
+ \par
+ \hang
+ \textindent
+}
+\def\itemitem{%
+ \par
+ \indent
+ \hangindent = 2\parindent
+ \textindent
+}
+\def\textindent #1{%
+ \indent
+ \llap{#1\enspace}%
+ \ignorespaces
+}
+\def\itemitemitem{%
+ \par
+ \indent
+ \indent
+ \hangindent = 3\parindent
+ \textindent
+}
+\NameDef{@InputD-itemplan.tip}{}
+\catcode`\@ = 11
+\def\WordsToTeXList #1#2\EndWordsToTeXList{%
+ \def\@WordsToTeXListName{#1}%
+ \expandafter\def\@WordsToTeXListName{}%
+ \@WordsToTeXListNextName #2 \EndWordsToTeXList
+}
+\def\@WordsToTeXListNextName #1 {%
+ \if\EmptyStringConditional{#1}%
+ \else
+ \expandafter\RightAppendElement\@WordsToTeXListName{#1}%
+ \fi
+ \DoFutureLet{\ifx}{\EndWordsToTeXList}%
+ {\@WordsToTeXListEnd}{\@WordsToTeXListNextName}%
+}
+\def\@WordsToTeXListEnd\EndWordsToTeXList{}
+\catcode`\@ = 12
+\NameDef{@InputD-wtolist.tip}{}
+\catcode`\@ = 11
+\newdimen\@MaximumCurrentLineWidth
+\newdimen\@LineWidthLastLine
+\newdimen\@LineWidthMinDiff
+\newbox\@IPCurrentLineBox
+\newbox\@IPCurrentLineBoxTry
+\def\InvertedPyramid #1#2#3{%
+ \WordsToTeXList{\IVList}#3\EndWordsToTeXList
+ \def\LineLengthList{#1}%
+ \@LineWidthLastLine = 0pt
+ \@LineWidthMinDiff = #2
+ \CarOfList{\IVList}{\@IVListTemp}
+ \DropFirstElementOfList{\IVList}
+ \setbox\@IPCurrentLineBox = \hbox{\@IVListTemp}%
+ \CarOfList{\LineLengthList}{\@IVListTemp}%
+ \@MaximumCurrentLineWidth = \@IVListTemp
+ \DropFirstElementOfList{\LineLengthList}%
+ \ForEveryListElement{\IVList}{\@IVListTypeset}%
+ \ifvoid\@IPCurrentLineBox
+ \errmessage{\string\InvertedPyramid:
+ empty \string\@IPCurrentLineBox}%
+ \else
+ \centerline{\box\@IPCurrentLineBox}%
+ \fi
+}
+\def\@IVListTypeset #1{%
+ \setbox\@IPCurrentLineBoxTry =
+ \hbox{\copy\@IPCurrentLineBox \space#1}%
+ \ifdim\wd\@IPCurrentLineBoxTry < \@MaximumCurrentLineWidth
+ \setbox\@IPCurrentLineBox = \box\@IPCurrentLineBoxTry
+ \else
+ \@LineWidthLastLine = \wd\@IPCurrentLineBox
+ \centerline{\box\@IPCurrentLineBox}%
+ \setbox\@IPCurrentLineBox = \hbox{#1}%
+ \CarOfList{\LineLengthList}{\@IVListTemp}%
+ \@MaximumCurrentLineWidth = \@IVListTemp
+ \DropFirstElementOfList{\LineLengthList}%
+ \dimen0 = \@LineWidthLastLine
+ \advance\dimen0 by -\@MaximumCurrentLineWidth
+ \ifdim\dimen0 < \@LineWidthMinDiff
+ \@MaximumCurrentLineWidth = \@LineWidthLastLine
+ \advance\@MaximumCurrentLineWidth by -\@LineWidthMinDiff
+ \fi
+ \fi
+}
+\catcode`\@ = 12
+\NameDef{@InputD-ivpyr.tip}{}
+\catcode`\@ = 11
+\newcount\@ValueOfDecimalPosition
+\newcount\@ValueOfDecimalPositionLoopCount
+\def\ValueOfDecimalPosition #1#2#3{%
+ \CheckRange{#2}{0}{9}{\string\ValueOfDecimalPosition:
+ \#2 must be in the range 0 .. 9}%
+ \AbsoluteValue{#1}{\@ValueOfDecimalPosition}%
+ \DoLoop{\@ValueOfDecimalPositionLoopCount}{1}{1}{#2}%
+ {\global\divide\@ValueOfDecimalPosition by 10}%
+ \IModN{\@ValueOfDecimalPosition}{10}{#3}%
+}
+\catcode`\@ = 12
+\NameDef{@InputD-valdecpo.tip}{}
+\catcode`\@ = 11
+\newcount\@LargestDecimalPlaceCount
+\def\LargestDecimalPlace #1#2{%
+ \AbsoluteValue{#1}{\@LargestDecimalPlaceCount}%
+ \wlog{We make progress}%
+ #2 = 0
+ \@LargestDecimalPlaceMore{#2}%
+}
+\def\@LargestDecimalPlaceMore #1{%
+ \wlog{One round: \the#1}%
+ \ifnum\@LargestDecimalPlaceCount < 10
+ \def\@LargestDecimalPlaceMoreNext{}%
+ \else
+ \advance #1 by 1
+ \divide\@LargestDecimalPlaceCount by 10
+ \def\@LargestDecimalPlaceMoreNext{%
+ \@LargestDecimalPlaceMore{#1}%
+ }%
+ \fi
+ \@LargestDecimalPlaceMoreNext
+}
+\catcode`\@ = 12
+\NameDef{@InputD-largdp.tip}{}
+\catcode`\@ = 11
+\def\\{%
+ \hfil\break
+ \hbox{}%
+ \DoFutureLet{\ifx}{[}{\@HfilBreakHskip}{\ignorespaces}%
+}
+\def\@HfilBreakHskip [#1]{%
+ \hskip #1%
+ \ignorespaces
+}
+\catcode`\@ = 12
+\NameDef{@InputD-lbpar.tip}{}
+\catcode`\@ = 11
+\def\LoadCountZeroToNine #1#2#3#4#5#6#7#8#9{%
+ \count0 = #1\relax
+ \count1 = #2\relax
+ \count2 = #3\relax
+ \count3 = #4\relax
+ \count4 = #5\relax
+ \count5 = #6\relax
+ \count6 = #7\relax
+ \count7 = #8\relax
+ \count8 = #9\relax
+ \@LoadCountNine
+}
+\def\@LoadCountNine #1{%
+ \count9 = #1\relax
+}
+\catcode`\@ = 12
+\NameDef{@InputD-lc0to9.tip}{}
+\def\RightLeaderLine #1{%
+ \line{\leaders\hrule\hss #1}%
+}
+
+\def\LeftLeaderLine #1{%
+ \line{#1\leaders\hrule\hss}%
+}
+
+\def\CenterLeaderLine #1{%
+ \line{\leaders\hrule\hss #1\leaders\hrule\hss}%
+}
+\NameDef{@InputD-leadline.tip}{}
+\def\LeftDisplay #1$${%
+ \leftline{%
+ \hskip 20pt
+ $
+ \displaystyle {#1}
+ $%
+ }%
+ $$
+}
+\NameDef{@InputD-leftdm.tip}{}
+\def\LoadFontOnDemand #1#2{%
+ \def #1{%
+ \global\font#1 = #2\relax
+ #1%
+ \message{\string\LoadFontOnDemand: font \string#1
+ (#2) loaded on demand.}%
+ }%
+}
+\NameDef{@InputD-lfondem.tip}{}
+\catcode`\@ = 11
+\newif\if@Defined
+\def\DefinedConditional #1{%
+ TT\fi
+ \ifx\@UndefinedToken #1%
+ \@Definedfalse
+ \else
+ \@Definedtrue
+ \fi
+ \if@Defined
+}
+\catcode`\@ = 12
+\NameDef{@InputD-testdef.tip}{}
+\def\FormatIsLaTeXConditional{%
+ TT\fi
+ \if\DefinedConditional{\documentstyle}%
+}
+\NameDef{@InputD-loadedla.tip}{}
+\def\BeginMath{%
+ \ifmath
+ \ifinner
+ \errmessage{\string\BeginMath: already in math
+ mode, \string\BeginMath ignored.}%
+ \else
+ \errmessage{\string\BeginMath: in display math
+ mode, terminated and math mode started.}%
+ $$
+ $
+ \fi
+ \else
+ $\relax
+ \fi
+}
+\def\EndMath{%
+ \ifmath
+ \ifinner
+ $%
+ \else
+ \errmessage{\string\EndMath: you are in display math
+ mode! Should have used \string\EndDisplayMath!}%
+ $$
+ \fi
+ \else
+ \errmessage{\string\EndMath: already in math
+ mode, \string\EndMath ignored.}%
+ \fi
+}
+\def\BeginDisplayMath{%
+ \ifmath
+ \ifinner
+ \errmessage{\string\BeginDisplayMath: in inline
+ math mode, terminate it, start display math.}%
+ $
+ $$
+ \else
+ \errmessage{\string\BeginDisplayMath: already in math
+ mode, \string\BeginDisplayMath ignored.}%
+ \fi
+ \else
+ $$
+ \fi
+}
+\def\EndDisplayMath{%
+ \ifmath
+ \ifinner
+ \errmessage{\string\EndDisplayMath: inline
+ math mode in effect, did you intend to
+ write \string\EndMath?}%
+ $%
+ \else
+ $$
+ \fi
+ \else
+ \errmessage{\string\EndDisplayMath: not in math
+ mode, \string\EndDisplayMath ignored.}%
+ \fi
+}
+\NameDef{@InputD-mathenv.tip}{}
+\def\MaxDimen #1#2#3#4{%
+ \ifdim #2<#3\relax
+ #4#1 = #3\relax
+ \else
+ #4#1 = #2\relax
+ \fi
+}
+\def\MinDimen #1#2#3#4{%
+ \ifdim #2<#3\relax
+ #4#1 = #2\relax
+ \else
+ #4#1 = #3\relax
+ \fi
+}
+\NameDef{@InputD-maxmindi.tip}{}
+\def\ModuloOneAdvanceNumCond #1#2{%
+ 0=0\fi
+ \global\advance #1 by 1
+ \ifnum #1 = #2\relax
+ \global #1 = 0
+ \fi
+ \ifnum #1%
+}
+\NameDef{@InputD-modonead.tip}{}
+\def\MultiRowDel #1#2{%
+ {%
+ \mathsurround = 0pt
+ \setbox 0 = \hbox{%
+ $%
+ \vcenter{%
+ \hbox{%
+ $
+ \left#1%
+ \vrule height #2 depth #2 width 0pt
+ \right.
+ $%
+ }%
+ }%
+ $%
+ }%
+ \ht0 = 0pt
+ \dp0 = 0pt
+ \box 0
+ }%
+}
+\def\MultiRowDel #1#2{%
+ {%
+ \mathsurround = 0pt
+ \setbox 0 = \hbox{%
+ $
+ \left#1%
+ \vrule height #2 depth #2 width 0pt
+ \right.
+ $%
+ }%
+ \ht0 = 0pt
+ \dp0 = 0pt
+ \box 0
+ }%
+}
+\NameDef{@InputD-mrdel.tip}{}
+\catcode`\@ = 11
+\newbox\@NBox
+\def\NaturalHeight #1#2{%
+ \setbox\@NBox = \vbox{\unvcopy #2}
+ #1 = \ht\@NBox
+}
+\def\NaturalDepth #1#2{%
+ \setbox\@NBox = \vbox{\unvcopy #2}
+ #1 = \dp\@NBox
+}
+\catcode`\@ = 12
+\NameDef{@InputD-nathd.tip}{}
+\catcode`\@ = 11
+\def\NextCharTest #1#2#3{%
+ \def\@NextCharTestYes #1{#2}%
+ \def\@NextCharTestNo {#3}%
+ \DoFutureLet{\ifx}{#1}{\@NextCharTestYes}{\@NextCharTestNo}%
+}
+\catcode`\@ = 12
+\NameDef{@InputD-nctest.tip}{}
+\catcode`\@ = 11
+\def\pagecontents{%
+ \wlog{\noexpand\pagecontents from op-pagec.tip called.}%
+ \NameUse{@ShowPlainLists}%
+ \ifvoid\topins
+ \wlog{\string\pagecontents: no topinserts.}%
+ \if\NameDefinedConditional{@TopInsertSize}%
+ \ifdim\@TopInsertSize < 20pt
+ \global\@TopInsertSize = 0pt
+ \fi
+ \fi
+ \else
+ \NameUse{ChangeBarPush}%
+ \NameUse{@UpdateTopInsertSize}%
+ \unvbox\topins
+ \NameUse{ChangeBarPop}%
+ \fi
+ \dimen@ = \dp 255
+ \unvbox 255
+ \ifvoid\footins
+ \else
+ \@PrintFootnotePlain
+ \fi
+ \ifr@ggedbottom
+ \kern -\dimen@
+ \vfil
+ \fi
+}
+\def\@PrintFootnotePlain{%
+ \vskip\skip\footins
+ \footnoterule
+ \unvbox\footins
+}
+\catcode`\@ = 12
+\NameDef{@InputD-op-pagec.tip}{}
+\catcode`\@ = 11
+\def\endinsert{%
+ \egroup
+ \if@mid
+ \dimen@ = \ht0
+ \advance\dimen@ by \dp0
+ \advance\dimen@ by 12pt
+ \advance\dimen@ by \pagetotal
+ \ifdim\dimen@ > \pagegoal
+ \@midfalse
+ \p@gefalse
+ \fi
+ \fi
+ \NameUse{MidInsertFix}%
+ \if@mid
+ \bigskip
+ \box 0
+ \bigbreak
+ \else
+ \insert\topins{%
+ \penalty 100
+ \splittopskip = 0pt
+ \splitmaxdepth = \maxdimen
+ \floatingpenalty = 0
+ \ifp@ge
+ \dimen@ = \dp0
+ \vbox to \vsize{
+ \unvbox 0
+ \kern -\dimen@
+ }%
+ \NameUse{MidInsertFixPage}%
+ \else
+ \NameUse{EndInsertTopInsFix}%
+ \NameUse{MidInsertFixTop}%
+ \box 0
+ \nobreak
+ \bigskip
+ \fi
+ }
+ \fi
+ \endgroup
+}
+\catcode`\@ = 12
+\NameDef{@InputD-op-endin.tip}{}
+\catcode`\@ = 11
+\newdimen\@TopInsertSize
+\@TopInsertSize = 0pt
+\def\ReportTopInsertSize #1{%
+ \wlog{\string\@TopInsertSize: "#1"}%
+ \wlog{\EightSpaces The value of \noexpand\@TopInsertSize is
+ \the\@TopInsertSize}%
+}
+\def\MidInsertFix{%
+ \ReportTopInsertSize{\string\MidInsertFix}%
+ \ifdim\@TopInsertSize > 0pt
+ \@midfalse
+ \p@gefalse
+ \fi
+}
+\def\MidInsertFixPage{%
+ \ReportTopInsertSize{\string\MidInsertFixPage[1]}%
+ \global\advance\@TopInsertSize by \vsize
+ \ReportTopInsertSize{\string\MidInsertFixPage[2]}%
+}
+\def\MidInsertFixTop{%
+ \ReportTopInsertSize{\string\MidInsertFixTop[1]}%
+ \global\advance\@TopInsertSize by \ht0
+ \global\advance\@TopInsertSize by \dp0
+ \ReportTopInsertSize{\string\MidInsertFixTop[2]}%
+}
+\def\@UpdateTopInsertSize{%
+ \ReportTopInsertSize{\string\@UpdateTopInsertSize[1]}%
+ \global\advance\@TopInsertSize by -\ht\topins
+ \global\advance\@TopInsertSize by -\dp\topins
+ \ReportTopInsertSize{\string\@UpdateTopInsertSize[2]}%
+}
+\catcode`\@ = 12
+\NameDef{@InputD-new-midi.tip}{}
+\catcode`\@ = 11
+\def\NewDef #1{%
+ \ifx #1\@UndefinedToken
+ \else
+ \errhelp = {\string\NewDef:
+ The name of the macro to be defined which you
+ provided is already in use. Use \show to find out
+ what the name is used for. The macro definition
+ will nevertheless be executed.}%
+ \errmessage{\string\NewDef: "\string#1" already defined.}%
+ \fi
+ \def #1%
+}
+\def\ReDef #1{%
+ \ifx #1\@UndefinedToken
+ \errhelp = {\string\ReDef:
+ The name of the macro to be redefined which you
+ provided has never been used before. The macro definition
+ will nevertheless be executed. }%
+ \errmessage{\string\ReDef: "\string#1" never defined
+ before.}%
+ \fi
+ \def #1%
+}
+\catcode`\@ = 12
+\NameDef{@InputD-newdef.tip}{}
+\def\NewFont #1{%
+ \if\DefinedConditional{#1}%
+ \errmessage{\string\NewFont: intended font name
+ "\string#1" already used.}
+ \fi
+ \font #1%
+}
+\NameDef{@InputD-newfont.tip}{}
+\catcode`\@ = 11
+\let\@input = \input
+\def\input{%
+ \DoFutureLet{\ifx}{\bgroup}{\@InputA}{\@input}%
+}
+\def\@InputA #1{\@input #1}
+\catcode`\@ = 12
+\NameDef{@InputD-newinput.tip}{}
+\def\NewPage{%
+ \vfill
+ \eject
+}
+\NameDef{@InputD-newpage.tip}{}
+\def\NewLineMessage #1{%
+ {%
+ \newlinechar = `\|%
+ \message{|#1}%
+ }%
+}
+\NameDef{@InputD-nlm.tip}{}
+\def\NewPageRightHand{%
+ \vfill\supereject
+ \ifodd\count0
+ \else
+ \hbox{}
+ \vfill\eject
+ \fi
+}
+\def\ShouldBeRightHandPage{%
+ \ifodd\count0
+ \else
+ \errmessage{\string\ShouldBeRightHandPage:
+ current page number is \the\count0.
+ Should be odd and NOT EVEN.}%
+ \NewPageRightHand
+ \fi
+}
+\def\NewPageLeftHand{%
+ \vfill\supereject
+ \ifodd\count0
+ \hbox{}
+ \vfill\eject
+ \fi
+}
+\NameDef{@InputD-npright.tip}{}
+\catcode`\@ = 11
+\def\@OneDigitNumberText #1#2{%
+ \ifcase #2\relax
+ \ifnum #1=0
+ \else
+ zero%
+ \fi
+ \or
+ one\or
+ two\or
+ three\or
+ four\or
+ five\or
+ six\or
+ seven\or
+ eight\or
+ nine%
+ \else
+ \errmessage{\string\@OneDigitNumberText: number
+ \number#2 out of range.}%
+ \fi
+}
+\newcount\@NumberToConvert
+\newcount\@NumberToConvertTwo
+\newcount\@NumberToConvertAndFlag
+\def\NumberToText #1{%
+ \@NumberToConvert = #1\relax
+ \ifnum\@NumberToConvert < 0
+ minus
+ \@NumberToConvert = -\@NumberToConvert
+ \fi
+ \CheckRange{\@NumberToConvert}{0}{999999}%
+ {\string\NumberToText: numbers >= 1.000.000
+ not handled.}%
+ \@NumberToConvertAndFlag = 0
+ \ifnum\@NumberToConvert > 999
+ \@NumberToConvertTwo = \@NumberToConvert
+ \divide\@NumberToConvert by 1000
+ \@NumberToText
+ \space thousand and
+ \IModN{\@NumberToConvertTwo}{1000}{\@NumberToConvert}%
+ \fi
+ \CheckRange{\@NumberToConvert}{0}{999}%
+ {\string\NumberToText: internal error 1}%
+ \@NumberToText
+}
+\newcount\@NumberToTextTmp
+\def\@NumberToText{%
+ \ifnum\@NumberToConvert > 99
+ \ValueOfDecimalPosition{\@NumberToConvert}{2}%
+ {\@NumberToTextTmp}%
+ \@OneDigitNumberText{1}{\@NumberToTextTmp}%
+ \space hundred and
+ \IModN{\@NumberToConvert}{100}{\@NumberToConvert}%
+ \fi
+ \ValueOfDecimalPosition{\@NumberToConvert}{1}%
+ {\@NumberToTextTmp}%
+ \ifnum\@NumberToTextTmp > 1
+ \ifcase\@NumberToTextTmp
+ \errmessage{\string\@NumberToText:
+ internal error 1.}%
+ \or
+ \errmessage{\string\@NumberToText:
+ internal error 2.}%
+ \or
+ twenty\or
+ thirty\or
+ forty\or
+ fifty\or
+ sixty\or
+ seventy\or
+ eighty\or
+ ninety%
+ \else
+ \errmessage{\string\@NumberToText:
+ internal error 4.}%
+ \fi
+ \IModN{\@NumberToConvert}{10}{\@NumberToTextTmp}%
+ \@OneDigitNumberText{0}{\@NumberToTextTmp}%
+ \else
+ \ifnum\@NumberToTextTmp = 1
+ \advance\@NumberToConvert by -10
+ \ifcase\@NumberToConvert
+ ten\or
+ eleven\or
+ twelve\or
+ thirteen\or
+ fourteen\or
+ fifteen\or
+ sixteen\or
+ seventeen\or
+ eighteen\or
+ nineteen%
+ \fi
+ \else
+ \@OneDigitNumberText{1}{\@NumberToConvert}%
+ \fi
+ \fi
+}
+\catcode`\@ = 12
+\NameDef{@InputD-ntotext.tip}{}
+\catcode`\@ = 11
+\newcount\@NumberConditionalCounter
+\def\@NumberConditional #1#2;{%
+ \@NumberConditionalCounter = `#1\relax
+}
+\def\NumberConditional #1{%
+ TT\fi
+ \edef\@NumberConditionalString{#1}%
+ \expandafter\@NumberConditional\@NumberConditionalString ;
+ \if\InRangeConditional{\@NumberConditionalCounter}{`\0}{`\9}%
+}
+\catcode`\@ = 12
+\NameDef{@InputD-numcond.tip}{}
+\catcode`\@ = 11
+\newcount\@WhileNesting
+\@WhileNesting = 0
+\def\WhileNum #1#2{%
+ \global\advance\@WhileNesting by 1
+ \edef\@WhileArgOne{{\the\@WhileNesting}}%
+ \expandafter\@WhileNum\@WhileArgOne{#1}{#2}%
+ \global\advance\@WhileNesting by -1
+}
+\def\@WhileNum #1#2#3{%
+ \ifnum #2\relax
+ #3\relax
+ \NameDef{@WhileNum-#1}{\@WhileNum{#1}{#2}{#3}}%
+ \else
+ \NameDef{@WhileNum-#1}{}%
+ \fi
+ \NameUse{@WhileNum-#1}{}%
+}
+\catcode`\@ = 12
+\NameDef{@InputD-numwhile.tip}{}
+\catcode`\@ = 11
+\def\ObeyLines{%
+ \catcode`\^^M = \active
+ \@EnableActiveEndOfLine
+}
+{
+ \catcode`\^^M=\active % Lines must end with '%'.
+ \gdef\@EnableActiveEndOfLine{%
+ \def
+ {\leavevmode\par}%
+ }%
+}
+\catcode`\@ = 12
+\NameDef{@InputD-oblines.tip}{}
+\catcode`\@ = 11
+\def\ObeySpaces{%
+ \catcode`\ = \active
+ \@InitActiveSpace
+}
+{\catcode`\ = \active
+\gdef\@InitActiveSpace{\edef {\VerbControlSpace}}}
+\catcode`\@ = 12
+\NameDef{@InputD-obspaces.tip}{}
+\def\Oct #1{%
+ {%
+ \count4 = #1%
+ \count0 = \count4
+ \divide\count0 by 8
+ \ifnum \count0 > 0
+ \Oct{\count0}%
+ \fi
+ \count2 = \count0
+ \multiply \count2 by -8
+ \advance \count4 by \count2
+ \the\count4
+ }%
+}
+\NameDef{@InputD-oct.tip}{}
+\def\PrintOdd #1{%
+ \ifodd #1\relax
+ Number #1 is odd.
+ \fi
+}
+\NameDef{@InputD-oddprin.tip}{}
+\def\PrintOddEven #1{%
+ \ifodd #1\relax
+ The number #1 is odd.
+ \else
+ The number #1 is even.
+ \fi
+}
+\NameDef{@InputD-oeprin.tip}{}
+\catcode`\@ = 11
+\def\OptArgX #1#2{%
+ \let\@OptArgXTemp = #1%
+ \def\@OptArgXDefault{[#2]}%
+ \DoLongFutureLet{\ifx}{[}{\@OptArgXTemp}{\@OptArgXB}%
+}
+\def\@OptArgXB{\expandafter\@OptArgXTemp\@OptArgXDefault}
+\catcode`\@ = 12
+\NameDef{@InputD-optargx.tip}{}
+\def\ParFl #1#2\par{%
+ \par
+ $$
+ \vbox{
+ \setbox 0 = \hbox{#1}
+ \hsize = \wd0
+ \noindent
+ \unhbox 0
+ \space
+ #2
+ }
+ $$
+ \par
+}
+\NameDef{@InputD-par-fl.tip}{}
+\def\PickFirstOfTwo #1#2{#1}
+\def\PickSecondOfTwo #1#2{#2}
+\NameDef{@InputD-pickfs.tip}{}
+\catcode`\@ = 11
+\newif\if@LabelsOk
+\def\@LabelRefPrefix{@REF-}
+\def\@LabelIsDefined #1{%
+ TT\fi
+ \if\NameDefinedConditional{\@LabelRefPrefix#1}%
+}
+\def\@NewLabel #1#2#3{%
+ \if\@LabelIsDefined{#1}%
+ \wlog{\string\@NewLabel: warning: label "#1"
+ already defined.}%
+ \fi
+ \NameGdef{\@LabelRefPrefix #1}{{#2}{#3}}%
+}
+\let\Saved@NewLabel = \@NewLabel
+\def\Ref #1{%
+ \@ref{0}{#1}%
+ \if\StringsEqualConditional{\@TheExpandedLabel}{??}%
+ {??}%
+ \else
+ \@TheExpandedLabel
+ \fi
+ \@PrintAfterLabel
+}
+\def\PageRef #1{%
+ \@ref{1}{#1}%
+ \if\StringsEqualConditional{\@TheExpandedLabel}{??}%
+ {??}%
+ \else
+ \@TheExpandedLabel
+ \fi
+ \@PrintAfterLabel
+}
+\def\@MostRecentLabel{}
+\def\@ref #1#2{%
+ \xdef\@PrintAfterLabel{}%
+ \DefaultArg{\@ThisLabel}{#2}{\@MostRecentLabel}%
+ \if\StringsEqualConditional{\@ThisLabel}{.}%
+ \xdef\@ThisLabel{\@MostRecentLabel}%
+ \xdef\@PrintAfterLabel{.}%
+ \fi
+ \if\StringsEqualConditional{\@ThisLabel}{,}%
+ \xdef\@ThisLabel{\@MostRecentLabel}%
+ \xdef\@PrintAfterLabel{,}%
+ \fi
+ \if\StringsEqualConditional{\@ThisLabel}{)}%
+ \xdef\@ThisLabel{\@MostRecentLabel}%
+ \xdef\@PrintAfterLabel{)}%
+ \fi
+ \if\StringsEqualConditional{\@ThisLabel}{;}%
+ \xdef\@ThisLabel{\@MostRecentLabel}%
+ \xdef\@PrintAfterLabel{;}%
+ \fi
+ \xdef\@MostRecentLabel{\@ThisLabel}%
+ \if\@LabelIsDefined{\@ThisLabel}%
+ \edef\@CrefTemp{\NameUse{\@LabelRefPrefix\@ThisLabel}}%
+ \ifcase #1\relax
+ \edef\@TheExpandedLabel{%
+ \expandafter\PickFirstOfTwo\@CrefTemp}%
+ \or
+ \edef\@TheExpandedLabel{%
+ \expandafter\PickSecondOfTwo\@CrefTemp}%
+ \fi
+ \else
+ \def\@TheExpandedLabel{??}
+ \wlog{\string\@ref: Label \@ThisLabel\space undefined.}%
+ \fi
+}
+\catcode`\@ = 12
+\NameDef{@InputD-part-cr.tip}{}
+\def\PrintInDollar #1{%
+ {%
+ \ifnum #1 < 0
+ $-$%
+ \count0 = -#1\relax
+ \else
+ \count0 = #1\relax
+ \fi
+ \count2 = \count0
+ \divide\count0 by 100
+ \the\count0.%
+ \multiply\count0 by 100
+ \advance\count2 by -\count0
+ \ifnum\count2 < 10
+ 0%
+ \fi
+ \the\count2
+ }%
+}
+\NameDef{@InputD-pdollars.tip}{}
+\catcode`\@ = 11
+\def\PartSourceFileNameExtension{tex}
+\def\AuxFileNameExtension{aux}
+\def\TocFileNameExtension{toc}
+\def\LofFileNameExtension{lof}
+\def\LotFileNameExtension{lot}
+\def\TmpFileNameExtension{tmp}
+\newwrite\@PartAuxStream
+\newwrite\@TmpFileStream
+\def\i@write{\immediate\write}
+\def\i@openout{\immediate\openout}
+\def\i@closeout{\immediate\closeout}
+
+\def\@ip@write{\i@write\@PartAuxStream}
+\def\@p@write{\write\@PartAuxStream}
+\def\@IgnoreAuxStuff{%
+ \let\@NewLabel = \GobbleThree
+ \let\@SetCounter = \GobbleTwo
+ \let\@ForSpecialFile = \GobbleFive
+}
+\def\@ReadInAuxFiles{%
+ {%
+ \def\\##1{\InputCWithAt{##1.aux}}%
+ \@AllPartsOfDocumentList
+ }%
+}
+\catcode`\@ = 12
+\NameDef{@InputD-pm-bas.tip}{}
+\catcode`\@ = 11
+\def\WriteAuxFileComment #1{%
+ \@p@write{\PercentSignPure\space #1.}%
+}
+\catcode`\@ = 12
+\NameDef{@InputD-pm-auxco.tip}{}
+\catcode`\@ = 11
+\NewCounter{PageNo}{\arabic}{\TheCounter{PageNo}}%
+ {\TheCounter{PageNo}}
+\NewCounter{SWPageNo}{\arabic}%
+ {\TheCounter{SWPageNo}}{\TheCounter{SWPageNo}}
+\def\@PageNumbersToCounterRegs{%
+ \CounterToRegister{\global\pageno}{PageNo}%
+}
+\SetCounter{PageNo}{1}
+\@PageNumbersToCounterRegs
+\def\advancepageno{%
+ \StepCounter{PageNo}%
+ \StepCounter{SWPageNo}%
+ \@PageNumbersToCounterRegs
+}
+\def\folio{%
+ \PrintCounter{PageNo}%
+}
+\catcode`\@ = 12
+\NameDef{@InputD-pm-pagen.tip}{}
+\catcode`\@ = 11
+\def\WriteCountersToAuxFile{%
+ \@WriteCounter{ChapterNo}%
+ \@WriteCounter{SectionNo}%
+ \@WriteCounter{PageNo}%
+}
+\def\@WriteCounter #1{%
+ \@ip@write{%
+ \noexpand\@SetCounter
+ {#1}%
+ {\expandafter\the\csname @C-#1\endcsname}}%
+}
+\catcode`\@ = 12
+\NameDef{@InputD-pm-wrc.tip}{}
+\def\BoldfaceFake #1#2{%
+ \hbox{%
+ \hbox to #2{#1\hss}%
+ \hbox to #2{#1\hss}%
+ \hbox {#1}% % Last time print text with reg. width.
+ }%
+}
+\NameDef{@InputD-poorbold.tip}{}
+\def\PrintAlph #1{%
+ {%
+ \count0 = #1%
+ \advance\count0 by -1
+ \advance\count0 by `\a
+ \char\count0
+ }%
+}
+\NameDef{@InputD-pralph.tip}{}
+\def\ShowBoxAll #1{%
+ {%
+ \nonstopmode
+ \showboxdepth = 10000
+ \showboxbreadth = 10000
+ \showbox #1%
+ }%
+}
+\def\ShowBoxDepthOne #1{%
+ {%
+ \nonstopmode
+ \showboxdepth = 1
+ \showboxbreadth = 10000
+ \showbox #1%
+ }%
+}
+\def\ShowBoxDepthTwo #1{%
+ {%
+ \nonstopmode
+ \showboxdepth = 2
+ \showboxbreadth = 10000
+ \showbox #1%
+ }%
+}
+\NameDef{@InputD-shboxes.tip}{}
+\def\PrintHyphens #1{%
+ {%
+ \setbox 0 = \vbox{%
+ \pretolerance = -1
+ \hyphenpenalty = -10000
+ \hsize = 0pt
+ \leftskip = 0pt
+ \rightskip = 0pt
+ \parfillskip = 0pt
+ \parindent = 0pt
+ \hfuzz = \maxdimen
+ \interlinepenalty = 0
+ \clubpenalty = 0
+ \widowpenalty = 0
+ \brokenpenalty = 0
+ \hskip 0pt
+ #1
+ }%
+ \setbox2 = \hbox{}%
+ \setbox 9 = \vbox{%
+ \unvbox 0
+ \loop
+ \unskip
+ \setbox 1 = \lastbox
+ \ifhbox 1
+ \global\setbox 2 = \hbox{%
+ \unhbox 1
+ \discretionary{}{}{}%
+ \unhbox 2
+ }%
+ \repeat
+ }%
+ \unhbox 2
+ }%
+}
+\NameDef{@InputD-prhyph.tip}{}
+\def\PrimitiveMarker{%
+ \leavevmode
+ {%
+ \footnotesize\tt
+ \llap{*}%
+ }%
+}
+\NameDef{@InputD-primmark.tip}{}
+\newcount\AstCount
+\def\PrintAsterisk #1{%
+ \AstCount = #1
+ \ifnum\AstCount < 0
+ \errmessage{\string\PrintAsterisk: negative counter.}%
+ \AstCount = 0
+ \fi
+ \PrintAsteriskRec
+}
+\def\PrintAsteriskRec{%
+ *%
+ \advance\AstCount by -1
+ \ifnum\AstCount = 0
+ \let\next = \relax
+ \else
+ \let\next = \PrintAsteriskRec
+ \fi
+ \next
+}
+\NameDef{@InputD-printast.tip}{}
+\def\PrintRegister #1{%
+ The current value of {\tt\string #1} is \the#1.%
+}
+\def\LogRegister #1{%
+ \message{The current value of \string#1 is \the#1.}
+}
+\NameDef{@InputD-printreg.tip}{}
+\def\PrintMode{%
+ \ifinner
+ \ifvmode \message{Current mode: inner vertical}\fi
+ \ifhmode \message{Current mode: restricted horizontal}\fi
+ \ifmmode \message{Current mode: (inline) math}\fi
+ \else
+ \ifvmode \message{Current mode: (regular) vertical}\fi
+ \ifhmode \message{Current mode: (regular) horizontal}\fi
+ \ifmmode \message{Current mode: display math}\fi
+ \fi
+}
+\NameDef{@InputD-prmode.tip}{}
+\catcode`\@ = 11
+\newif\ifProtWrite
+\ProtWritetrue
+\newcount\@ProtCount
+\newcount\@ProtCountX
+\newwrite\@ProtWrite
+\def\InitProtWrite{%
+ \ifProtWrite
+ \immediate\openout\@ProtWrite = \jobname.prt
+ \fi
+}
+\def\CloseProtWrite{%
+ \immediate\closeout\@ProtWrite
+}
+\def\WriteProtocol #1#2{%
+ \ifProtWrite
+ {%
+ \@ProtCount = #1\relax
+ \def\@WriteSpace{}%
+ \DoLoop{\count1}{1}{1}{\@ProtCount}%
+ {\edef\@WriteSpace{\@WriteSpace\FourSpaces}}%
+ \immediate\write\@ProtWrite{\@WriteSpace #2}%
+ }%
+ \fi
+}
+\def\BoxToProtocol #1#2#3{%
+ \ifProtWrite
+ {%
+ \WriteProtocol {#1}{\string\BoxToProtocol: #3}%
+ \@ProtCountX = #1\relax
+ \advance\@ProtCountX by 1
+ \ifvoid #2%
+ \WriteProtocol{\@ProtCountX}{Box register #2
+ is void.}%
+ \else
+ \ifhbox #2%
+ \WriteProtocol{\@ProtCountX}{Box register #2
+ is an hbox.}%
+ \else
+ \WriteProtocol{\@ProtCountX}{Box register #2
+ is a vbox.}%
+ \fi
+ \fi
+ \ifvoid #2%
+ \else
+ \WriteProtocol{\@ProtCountX}%
+ {Dimensions: (\the\ht#2+\the\dp#2)*\the\wd#2.}%
+ \fi
+ }%
+ \fi
+}
+\catcode`\@ = 12
+\NameDef{@InputD-prot.tip}{}
+\def\ReportBoxType #1{%
+ \message{\string\ReportBoxType: }%
+ \ifvoid #1\message{Box register #1 is void.}\fi
+ \ifhbox #1\message{Box register #1 contains a horizontal box.}\fi
+ \ifvbox #1\message{Box register #1 contains a vertical box.}\fi
+}
+\NameDef{@InputD-rboxt.tip}{}
+\catcode`\@ = 11
+\newread\@ReadNumberStream
+\newcount\ReadANumberResult
+\def\InitReadNumbers #1{%
+ \openin\@ReadNumberStream = #1
+}
+\def\@ReadANumberPar{\par}
+\def\ReadANumber{%
+ \ifeof\@ReadNumberStream
+ \ReadANumberResult = -1
+ \else
+ \read\@ReadNumberStream to \@ReadANumberTemp
+ \ifx\@ReadANumberTemp\@ReadANumberPar
+ \ReadANumberResult = -1
+ \else
+ \ReadANumberResult = \@ReadANumberTemp
+ \fi
+ \fi
+}
+\catcode`\@ = 12
+\NameDef{@InputD-readnu.tip}{}
+\catcode`\@ = 11
+\newbox\@ReduceToStrutBox
+\def\ReduceToStrut #1{%
+ \setbox\@ReduceToStrutBox = \hbox{#1}%
+ \vrule height \ht\@ReduceToStrutBox
+ depth \dp\@ReduceToStrutBox
+ width 0pt
+}
+\catcode`\@ = 12
+\NameDef{@InputD-redtost.tip}{}
+\catcode`\@ = 11
+\def\MakeRobust{}
+\def\TreatAsRobust #1{%
+ \def #1{%
+ \noexpand #1%
+ }%
+}
+\newtoks\@RobustTokenList
+\@RobustTokenList = {}
+\def\AddToRobustList #1{%
+ \@RobustTokenList = \expandafter{\the\@RobustTokenList #1}%
+}
+\def\Robusting{%
+ \ForEachToken{\@RobustTokenList}{\TreatAsRobust}%
+}
+\catcode`\@ = 12
+\NameDef{@InputD-robust.tip}{}
+\catcode`\@ = 11
+\newcount\@SampleParCounter
+\newcount\@SampleParSentenceCounter
+\@SampleParCounter = 1
+\def\SamplePar #1#2{%
+ \@SampleParSentenceCounter = 0
+ Identification of this paragraph: {\it #1}.
+ {\it Sample paragraph~\the\@SampleParCounter,
+ with~#2 sentences}. So here we go,
+ and when you check the number of sentences, then note
+ that these first two sentences do {\it not\/} count.
+ \loop
+ \advance\@SampleParSentenceCounter by 1
+ This is one of the many sentences this macro
+ generates, to be more specific it is sentence
+ number~\the\@SampleParSentenceCounter\space of~#2.
+ \ifnum\@SampleParSentenceCounter < #2
+ \repeat
+ \par
+ \global\advance\@SampleParCounter by 1
+}
+\catcode`\@ = 12
+\NameDef{@InputD-samplepa.tip}{}
+\catcode`\@ = 11
+\newdimen\@StrutBaseDimension
+\newdimen\@StrutSkipTemp
+\def\ComputeStrut{%
+ \@StrutBaseDimension = \baselineskip
+ \ifdim\baselineskip < 0pt
+ \errhelp = {You probably called \string\offinterlineskip
+ before \string\ComputeStrut}
+ \errmessage{\string\ComputeStrut: negative
+ \string\baselineskip (\the\baselineskip)}%
+ \fi
+}
+\def\MyStrut{%
+ \vrule height 0.7\@StrutBaseDimension
+ depth 0.3\@StrutBaseDimension
+ width 0pt
+}
+\def\HigherStrut #1{%
+ \@StrutSkipTemp = 0.7\@StrutBaseDimension
+ \advance\@StrutSkipTemp by #1%
+ \vrule height \@StrutSkipTemp
+ depth 0.3\@StrutBaseDimension
+ width 0pt
+}
+\def\DeeperStrut #1{%
+ \@StrutSkipTemp = 0.3\@StrutBaseDimension
+ \advance\@StrutSkipTemp by #1%
+ \vrule height 0.7\@StrutBaseDimension
+ depth \@StrutSkipTemp
+ width 0pt
+}
+\ComputeStrut
+\catcode`\@ = 12
+\NameDef{@InputD-setstrut.tip}{}
+\def\ShiftRefPointUpOrDown #1#2{%
+ \AdvanceBoxDimension{\ht#1}{#2}%
+ \ifdim\ht#1 < 0pt
+ \ht#1 = 0pt
+ \fi
+ \AdvanceBoxDimension{\dp#1}{-#2}%
+ \ifdim\dp#1 < 0pt
+ \dp#1 = 0pt
+ \fi
+}
+\NameDef{@InputD-shiftudb.tip}{}
+\catcode`\@ = 11
+\newif\ifShowPlainLists
+\ShowPlainListsfalse
+\def\@ShowPlainLists{%
+ \ifShowPlainLists
+ \wlog{*** \string\@ShowPlainLists: main vertical list ***}%
+ \wlog{*** Page number (\string\count0): \the\count0
+ \space***}%
+ \ShowBoxDepthOne{255}%
+ \ifvoid\footins
+ \wlog{\string\@ShowPlainLists: no footnotes.}%
+ \else
+ \wlog{*** \string\@ShowPlainLists: footnote box ***}%
+ \ShowBoxDepthOne{\footins}%
+ \fi
+ \ifvoid\topins
+ \wlog{\string\@ShowPlainLists: no topinserts.}%
+ \else
+ \wlog{*** \string\@ShowPlainLists: top inserts ***}%
+ \ShowBoxDepthTwo{\topins}%
+ \fi
+ \wlog{*** \string\@ShowPlainLists: end dump of
+ page: \the\count0 \space ***}%
+ \fi
+}
+\catcode`\@ = 12
+\NameDef{@InputD-showpll.tip}{}
+\def\SignatureLine #1#2{%
+ \hbox{%
+ \hbox to 0pt{%
+ \vrule width #1 height 0.6pt depth 0pt
+ \hss % Equivalent to \hskip -#1.
+ }%
+ \lower 10pt \hbox to #1{\hfil #2\hfil}%
+ }%
+}
+\NameDef{@InputD-sigline.tip}{}
+\catcode`\@ = 11
+\def\SaveSpaceFactor{%
+ \xdef\@SavedSpaceFactor{%
+ \spacefactor = \the\spacefactor
+ }%
+}
+\def\RestoreSpaceFactor{%
+ \@SavedSpaceFactor
+}
+\catcode`\@ = 12
+\NameDef{@InputD-spacefac.tip}{}
+\catcode`\@ = 11
+\newcount\@PPLineNumber
+\newbox\@PrintParWithLinesBox
+\newbox\@PrintParWithLinesTemp
+\def\PrintParWithLineNumbers #1{%
+ \par
+ \@PPLineNumber = 1
+ \splittopskip = 0.6666\baselineskip
+ \setbox\@PrintParWithLinesBox = \vbox{#1}
+ \@PrintParWithLineNumbers
+}
+\def\@PrintParWithLineNumbers{
+ \ifvoid\@PrintParWithLinesBox
+ \let\@PPNext = \relax
+ \else
+ \setbox\@PrintParWithLinesTemp =
+ \vsplit\@PrintParWithLinesBox to 0.666\baselineskip
+ \hbox{%
+ \llap{%
+ \the\@PPLineNumber:%
+ \hskip 10pt
+ }%
+ \box \@PrintParWithLinesTemp
+ }%
+ \advance\@PPLineNumber by 1
+ \wlog{Line \the\@PPLineNumber}%
+ \let\@PPNext = \@PrintParWithLineNumbers
+ \fi
+ \@PPNext
+}
+\catcode`\@ = 12
+\NameDef{@InputD-splitpar.tip}{}
+\def\SameSizeMath{
+ \textfont0 = \tenrm
+ \scriptfont0 = \tenrm
+ \scriptscriptfont0 = \tenrm
+ \textfont1 = \tenit
+ \scriptfont1 = \tenit
+ \scriptscriptfont1 = \tenit
+ \textfont2 = \tensy
+ \scriptfont2 = \tensy
+ \scriptscriptfont2 = \tensy
+ \textfont3 = \tenex
+ \scriptfont3 = \tenex
+ \scriptscriptfont3 = \tenex
+ \textfont\itfam = \tenit
+ \textfont\slfam = \tensl
+ \textfont\bffam = \tenbf
+ \scriptfont\bffam = \tenbf
+ \scriptscriptfont\bffam = \tenbf
+ \textfont\ttfam = \tentt
+}
+\NameDef{@InputD-ssmath.tip}{}
+\catcode`\@ = 11
+\newcount\@StringSwitchMatchCount
+\def\StringSwitch #1#2{%
+ \edef\@StringSwitchMasterString{#1}%
+ \if\EmptyStringConditional{#1}%
+ \errmessage{\string\StringSwitch: master string
+ must not be the empty string.}%
+ \fi
+ \def\@StringSwitchMatchCommonCode{#2}%
+ \@StringSwitchMatchCount = 0
+ \@StringSwitch
+}
+\def\@StringSwitchOne #1#2{%
+ \def\@StringSwitchString{#1}%
+ \def\@StringSwitchAction{#2}%
+}
+\def\@StringSwitch #1{%
+ \@StringSwitchOne #1%
+ \if\EmptyStringConditional{\@StringSwitchString}%
+ \ifcase\@StringSwitchMatchCount
+ \@StringSwitchAction
+ \or
+ \else
+ \errmessage{\string\StringSwitch: double match.}%
+ \fi
+ \def\@StringSwitchNext{}%
+ \else
+ \if\StringsEqualConditional{\@StringSwitchMasterString}%
+ {\@StringSwitchString}%
+ \advance\@StringSwitchMatchCount by 1
+ \@StringSwitchMatchCommonCode
+ \@StringSwitchAction
+ \fi
+ \def\@StringSwitchNext{\@StringSwitch}%
+ \fi
+ \@StringSwitchNext
+}
+\catcode`\@ = 12
+\NameDef{@InputD-stswitch.tip}{}
+\def\SubstituteFontX #1#2#3#4{%
+ \def#1{%
+ \message{%
+ \string\SubstituteFontX: No \string#2 font of
+ #3pt, using \noexpand\rm instead.%
+ }%
+ \global\let #1 = #4%
+ #1%
+ }%
+}
+\NameDef{@InputD-substf.tip}{}
+\catcode`\@ = 11
+\newbox\@SwapBox
+\def\SwapBoxRegs #1#2{%
+ \setbox\@SwapBox = \box#1%
+ \setbox#1 = \box#2%
+ \setbox#2 = \box\@SwapBox
+}
+\catcode`\@ = 12
+\NameDef{@InputD-swapbox.tip}{}
+\def\TableBeginCentered{%
+ $$
+ \vbox\bgroup
+ \offinterlineskip
+ \tabskip = 0pt
+ \halign\bgroup
+}
+\def\TableEndCentered{%
+ \crcr
+ \egroup
+ \egroup
+ $$
+}
+\NameDef{@InputD-tabcent.tip}{}
+\catcode`\@ = 11
+\newbox\@WidthSavingBox
+\def\WidthSavingBox #1#2{%
+ \setbox\@WidthSavingBox = \hbox{#1}%
+ \MaxDimen{#2}{#2}{\wd\@WidthSavingBox}{\global}%
+ \box\@WidthSavingBox
+}
+\catcode`\@ = 12
+\NameDef{@InputD-tabswb.tip}{}
+\catcode`\@ = 11
+\newcount\@GenTocEntryLevel
+\def\GenTocEntry #1#2#3#4{%
+ \par
+ \bgroup
+ \global\@GenTocEntryLevel = #1
+ \leftskip = #4
+ \parindent = #2
+ \advance\parindent by -#4
+ \dimen0 = #3
+ \advance\dimen0 by -#2
+ \@GenTocEntry
+}
+\def\@GenTocEntry #1#2#3#4#5#6#7#8{%
+ \rightskip = #1 plus 1in
+ \parfillskip = #2
+ \advance\parfillskip by -#1
+ #7
+ \ifdim #3 > 0pt
+ \setbox0 = \hbox to #3{\hfil.\hfil}
+ \else
+ \setbox0 = \box\voidb@x
+ \fi
+ \leavevmode
+ \hbox to \dimen0 {#5\hfil}%
+ {%
+ #6%
+ \unskip
+ }%
+ \ifvoid 0
+ \hfill
+ \else
+ \nobreak\leaders\copy0\hskip #4plus 1fil
+ \fi
+ #8%
+ \par
+ \egroup
+}
+\catcode`\@ = 12
+\NameDef{@InputD-toc-mac.tip}{}
+\def\Today{%
+ \the\month/\the\day/\the\year
+}
+\NameDef{@InputD-today.tip}{}
+\catcode`\@ = 11
+\def\EndInsertTopInsFix{%
+ \ifdim\dp0 > 10pt
+ \wlog{\string\endinsert: \string\topinsert
+ material deeper than 10pt}%
+ \dp0 = 10pt
+ \fi
+ \MaxDimen{\dimen0}{\dp0}{0pt}{}
+ \dimen1 = \vsize
+ \advance\dimen1 by -\dimen0
+ \advance\dimen1 by -12pt
+ \ifdim\ht0 > \dimen1
+ \wlog{\string\endinsert: \noexpand\topinsert
+ material too long (\the\ht0),}%
+ \wlog{\EightSpaces shortened to \the\dimen1.}%
+ \ht0 = \dimen1
+ \fi
+}
+\catcode`\@ = 12
+\NameDef{@InputD-topinfix.tip}{}
+\def\Bref #1#2#3{%
+ #1 (19#2#3)%
+}
+\NameDef{@InputD-ts-brefm.tip}{}
+\def\td{%
+ \hskip 0.5em plus 0.1em minus 0.1em
+ $\bullet$%
+ \hskip 0.5em plus 0.1em minus 0.1em
+}
+\NameDef{@InputD-ts-bul.tip}{}
+\def\ChapterHeadingTeXIP #1#2{%
+ \setbox 1 =
+ \vbox to 13pc{
+ \hyphenpenalty = 10000
+ \parindent = 0pt
+ \huge
+ \bf
+ \baselineskip = 21pt
+ \AlwaysBaselineskip
+ \setbox 0 = \hbox{#1}%
+ \copy0
+ \parskip = 3pc
+ \advance\parskip by -\dp0
+ \advance\parskip by -\ht0
+ \advance\parskip by -\baselineskip
+ \wlog{\string\ChapterHeadingTeXIP: computed value
+ of \noexpand\parskip is \the\parskip.}%
+ \spaceskip = 0.3333em
+ \xspaceskip = \spaceskip
+ \rightskip = 0pt plus 4em
+ #2
+ \par
+ \vfil
+ }
+ \box 1
+ \SuppressNextParIndent
+}
+\NameDef{@InputD-ts-chhe.tip}{}
+\catcode`\@ = 11
+\NewCounter{ChapterNo}{\arabic}%
+ {\TheCounter{ChapterNo}}{\TheCounter{ChapterNo}}
+\def\Chapter{\DblArg{\@Chapter}}%
+\def\@Chapter [#1]#2{%
+ \ShouldBeRightHandPage
+ \StepCounter{ChapterNo}%
+ \gdef\@LeftRunningHead{#2}%
+ \SetPageLayout{4}
+ \ChapterHeadingTeXIP{\PrintCounter{ChapterNo}}{#2}
+ \WriteToAuxSpecial{toc}{1}%
+ {\PrintCounter{ChapterNo}}{#1}{\PrintCounter{PageNo}}%
+ \WriteToAuxSpecial{lof}{0}{}{}{}%
+ \WriteToAuxSpecial{lot}{0}{}{}{}%
+ \def\Label ##1{\@Label{##1}{\RefCounter{ChapterNo}}{1}}%
+}
+\NewCounter{AppendixNo}{\Alph}%
+ {\TheCounter{AppendixNo}}{\TheCounter{AppendixNo}}
+\AddCounterToResetList{SectionNo}{AppendixNo}
+\AddCounterToResetList{AppendixNo}{VolumeNo}
+\def\Appendix{\DblArg{\@Appendix}}%
+\def\@Appendix [#1]#2{%
+ \NewPageRightHand
+ \StepCounter{AppendixNo}%
+ \ReassignCounter{SectionNo}{\arabic}%
+ {\PrintCounter{AppendixNo}.\TheCounter{SectionNo}}%
+ {\PrintCounter{AppendixNo}.\TheCounter{SectionNo}}%
+ \SetPageLayout{4}
+ \ChapterHeadingTeXIP{Appendix \PrintCounter{AppendixNo}}{#2}
+ \WriteToAuxSpecial{toc}{1}%
+ {\PrintCounter{AppendixNo}}{#1}{\PrintCounter{PageNo}}%
+ \def\Label ##1{\@Label{##1}{\RefCounter{AppendixNo}}{1}}%
+ \ignorespaces
+}
+\def\DoneWithAppendices{%
+ \ReassignCounter{SectionNo}{\alph}%
+ {\TheCounter{ChapterNo}.\TheCounter{SectionNo}}%
+ {\TheCounter{ChapterNo}.\TheCounter{SectionNo}}
+ \def\Label ##1{\@Label{##1}{\RefCounter{ChapterNo}}{1}}%
+}
+\catcode`\@ = 12
+\NameDef{@InputD-ts-chap.tip}{}
+\catcode`\@ = 11
+\def\@PageRef #1{%
+ \def\@PageRefResult{}%
+ \@ref{1}{#1}%
+ \if\StringsEqualConditional{\@TheExpandedLabel}{??}%
+ \def\@PageRefResult{??}%
+ \else
+ \if\PrefixConditional{\@TheExpandedLabel}%
+ {\TheCounter{VolumeNo}-}%
+ \DropPrefix{\@TheExpandedLabel}{\TheCounter{VolumeNo}-}%
+ {\@TheShortenedLabel}%
+ \edef\@PageRefResult{\@TheShortenedLabel}%
+ \else
+ \edef\@PageRefResult{\@TheExpandedLabel}%
+ \fi
+ \fi
+}
+\catcode`\@ = 12
+\NameDef{@InputD-ts-pager.tip}{}
+\catcode`\@ = 11
+\newcount\@PageRefLimitLow
+\newcount\@PageRefLimitHigh
+\newif\if@CloseByReference
+\newcount\@PageCloseRefCount
+\newcount\@PageNumberActual
+\def\NoSpecialPageRef{%
+ \global\@NoSpecialPageReftrue
+}
+\newif\if@NoSpecialPageRef
+\@NoSpecialPageReffalse
+\def\@PageRef #1{%
+ \def\@PageRefResult{}%
+ \global\@CloseByReferencefalse
+ \StepCounter{CloseByReferenceCount}%
+ \CounterToRegister{\global\@PageCloseRefCount}%
+ {CloseByReferenceCount}%
+ \@ref{1}{#1}%
+ \if\StringsEqualConditional{\@TheExpandedLabel}{??}%
+ \def\@PageRefResult{??}%
+ \else
+ \if\PrefixConditional
+ {\@TheExpandedLabel}%
+ {\TheCounter{VolumeNo}-}%
+ \DropPrefix{\@TheExpandedLabel}{\TheCounter{VolumeNo}-}%
+ {\@TheShortenedLabel}%
+ \def\@PageRefResult{\@TheShortenedLabel}%
+ \Label{@READ@-%
+ \@ThisLabel-\the\@PageCloseRefCount}%
+ \@PageRefLimitLow = \@TheShortenedLabel
+ \advance\@PageRefLimitLow by -1
+ \@PageRefLimitHigh = \@TheShortenedLabel
+ \advance\@PageRefLimitHigh by 1
+ \edef\@Ref@Temp@Name{%
+ \@LabelRefPrefix @READ@-%
+ \@ThisLabel-\the\@PageCloseRefCount
+ }%
+ \if\NameDefinedConditional{\@Ref@Temp@Name}%
+ \edef\@Ref@Temp@NameTwo{%
+ \NameUse{\@Ref@Temp@Name}%
+ }%
+ \wlog{@READ@: 1 \@Ref@Temp@Name /
+ \@Ref@Temp@NameTwo}%
+ \edef\@Ref@Temp@NameThree{%
+ \expandafter\PickSecondOfTwo
+ \@Ref@Temp@NameTwo
+ }%
+ \wlog{@READ@ 1a: \@Ref@Temp@NameThree}%
+ \DropPrefix
+ {\@Ref@Temp@NameThree}%
+ {\TheCounter{VolumeNo}-}%
+ {\@ResultLocalRef}%
+ \@PageNumberActual = \@ResultLocalRef
+ \else
+ \wlog{@READ@ 2}%
+ \@PageNumberActual = \count0
+ \@PageRefLimitLow = -10
+ \@PageRefLimitHigh = -10
+ \fi
+ \if\InRangeConditional
+ {\@PageNumberActual}%
+ {\@PageRefLimitLow}%
+ {\@PageRefLimitHigh}%
+ \wlog{@READ@ 3}%
+ \@CloseByReferencetrue
+ \if@NoSpecialPageRef
+ \@CloseByReferencefalse
+ \fi
+ \else
+ \wlog{@READ@ 4}%
+ \@CloseByReferencefalse
+ \fi
+ \global\@NoSpecialPageReffalse
+ \if@CloseByReference
+ \ifnum\@PageNumberActual = \@PageRefLimitLow
+ \wlog{\string\PageRef: Reference "\@ThisLabel,"
+ on page \the\@PageNumberActual
+ \space refers to the next page.}%
+ \def\@PageRefResult{the next}%
+ \fi
+ \ifnum\@PageNumberActual = \@TheShortenedLabel
+ \wlog{\string\PageRef: Reference "\@ThisLabel"
+ on page \the\@PageNumberActual
+ \space refers to the current page.}%
+ \def\@PageRefResult{this}%
+ \fi
+ \ifnum\@PageNumberActual = \@PageRefLimitHigh
+ \wlog{\string\PageRef: Reference "\@ThisLabel"
+ on page \the\@PageNumberActual
+ \space refers to the preceding page.}%
+ \def\@PageRefResult{the previous}%
+ \fi
+ \fi
+ \else
+ \def\@PageRefResult{\@TheExpandedLabel}%
+ \fi
+ \fi
+ \edef\@PageRefResult{\@PageRefResult}%
+}
+\catcode`\@ = 12
+\NameDef{@InputD-ts-page2.tip}{}
+\catcode`\@ = 11
+\def\PageRef #1{%
+ \@PageRef{#1}%
+ \@PageRefResult
+ \@PrintAfterLabel
+}
+\def\Page #1{%
+ \PageShortForm~\@PageRef{#1}%
+ \@PageRefResult
+ \@PrintAfterLabel
+}
+\def\OnPage #1{%
+ \@PageRef{#1}%
+ \if@CloseByReference
+ on \@PageRefResult\space page%
+ \else
+ on \PageShortForm~\@PageRefResult
+ \fi
+ \@PrintAfterLabel
+}
+\def\AtPage #1{%
+ \@PageRef{#1}%
+ \if@CloseByReference
+ at \@PageRefResult\space page%
+ \else
+ at \PageShortForm~\@PageRefResult
+ \fi
+ \@PrintAfterLabel
+}
+\def\CommaPage #1{%
+ \@PageRef{#1}%
+ \if@CloseByReference
+ \space on \@PageRefResult\space page%
+ \@PrintAfterLabel
+ \else
+ ,\space
+ \PageShortForm~\@PageRefResult
+ \@PrintAfterLabel
+ \fi
+}
+\def\CommaPageComma{%
+ \@PageRef{,}%
+ \if@CloseByReference
+ \space on \@PageRefResult\space page\space
+ \else
+ ,\space
+ \PageShortForm~\@PageRefResult
+ \@PrintAfterLabel
+ \space
+ \fi
+}
+\def\PageShortForm{p.}
+\def\PagesShortForm{pp.}
+\def\see #1#2{%
+ see \@SeeSee{#1}{#2}%
+}
+\def\See #1#2{%
+ See \@SeeSee{#1}{#2}%
+}
+\def\@SeeSee #1#2{%
+ \SectionRef{#1}%
+ \if\StringsEqualConditional{#2}{,}%
+ \CommaPageComma
+ \let\@SeeSeeEnd = \ignorespaces
+ \else
+ \CommaPage
+ #2%
+ \let\@SeeSeeEnd = \relax
+ \fi
+ \@SeeSeeEnd
+}
+\def\ChapterRef #1{%
+ Chapter~\Ref{#1}%
+}
+\def\SectionRef #1{%
+ \Ref{#1}%
+}
+\def\ItemRef #1{%
+ item~\Ref{#1}%
+}
+\def\FigRef #1{%
+ Fig.~\Ref{#1}%
+}
+\def\FigureRef #1{%
+ Figure~\Ref{#1}%
+}
+\def\TableRef #1{%
+ Table~\Ref{#1}%
+}
+\def\AppendixRef #1{%
+ Appendix~\Ref{#1}%
+}
+\def\PagesRef #1#2{%
+ \PagesShortForm~\PageRef{#1}--\PageRef{#2}%
+}
+\catcode`\@ = 12
+\NameDef{@InputD-ts-crm.tip}{}
+\newdimen\HsizeTeXIP
+\newdimen\VsizeTeXIP
+\newcount\ClubPenalty
+\newcount\WidowPenalty
+\newcount\InterlinePenalty
+\newcount\BrokenPenalty
+\NameDef{@InputD-ts-dime1.tip}{}
+\newif\ifWritePageLog
+\WritePageLogfalse
+\newwrite\PageLogStream
+\def\WritePageLogFile{%
+ \immediate\openout\PageLogStream = \jobname.plog
+ \WritePageLogtrue
+}
+\newcount\BadnessSave
+\ShowPlainListsfalse
+\catcode`\@ = 11
+\newcount\@PageLayoutCode
+\def\SetPageLayout #1{%
+ \global\@PageLayoutCode = #1
+ \CheckRange{\@PageLayoutCode}{0}{5}%
+ {\string\SetPageLayout: }
+}
+\SetPageLayout{0}%
+\def\@LeftRunningHead{}
+\def\@RightRunningHead{}
+\newcount\@SavedPageLayoutCode
+\def\NewPageRightHandSpecial{%
+ \vfill
+ \supereject
+ \ifodd\count0
+ \wlog{\string\NewPageRightHandSpecial: no empty
+ page to generate (\string\count0 = \the\count0)}%
+ \else
+ \hbox{}
+ \@SavedPageLayoutCode = \@PageLayoutCode
+ \SetPageLayout{1}%
+ \wlog{\string\NewPageRightHandSpecial: empty page
+ generated,
+ (\string\count0 = \the\count0).}%
+ \vfill
+ \eject
+ \SetPageLayout{\@SavedPageLayoutCode}%
+ \fi
+}
+\newdimen\OddPagesHorizontalShift
+\newdimen\EvenPagesHorizontalShift
+\newdimen\CurrentPageShift
+\def\plainoutput{%
+ \@ShowPlainLists
+ \edef\@LeftRunningHead{\@LeftRunningHead}%
+ \edef\@RightRunningHead{\@RightRunningHead}%
+ \ifnum\@PageLayoutCode = 0
+ \else
+ \headline = {}
+ \footline = {}
+ \fi
+ \ifcase\@PageLayoutCode
+ \or
+ \or
+ \global\@PageLayoutCode = 3
+ \or
+ \@PageLayoutCodeThree
+ \or
+ \global\@PageLayoutCode = 5
+ \or
+ \ifodd\count0
+ \headline = {%
+ \small\rm
+ \hfil
+ \botmark
+ \hskip 18pt
+ \PrintCounter{PageNo}%
+ }%
+ \else
+ \headline = {%
+ \small\rm
+ \PrintCounter{PageNo}%
+ \hskip 18pt
+ \@LeftRunningHead
+ \hfil
+ }%
+ \fi
+ \else
+ \errmessage{\string\plainoutput: \string\@PageLayoutCode
+ out of range.}%
+ \fi
+ \setbox 4 = \vbox{%
+ \pagebody
+ }%
+ \ifWritePageLog
+ \immediate\write\PageLogStream{%
+ Part name: \CurrentPartName, Page \the\count0
+ }%
+ \immediate\write\PageLogStream{%
+ Page \the\count0:
+ stretch: \the\pagestretch,
+ shrink: \the\pageshrink,
+ outputpenalty: \the\outputpenalty
+ }%
+ \immediate\write\PageLogStream{%
+ pagefilstretch: \the\pagefilstretch,
+ pagefillstretch: \the\pagefillstretch
+ }%
+ \immediate\write\PageLogStream{%
+ ht 255: \the\ht255,
+ dp 255: \the\dp255
+ }%
+ \NaturalHeight{\dimen0}{255}%
+ \NaturalDepth{\dimen1}{255}%
+ \immediate\write\PageLogStream{%
+ Natural height: \the\dimen0,
+ Natural depth: \the\dimen1
+ }%
+ \dimen2 = \vsize
+ \advance\dimen2 by -\dimen0
+ \immediate\write\PageLogStream{%
+ Ideal height: \the\vsize,
+ Difference: \the\dimen2
+ }%
+ \immediate\write\PageLogStream{%
+ badness: \the\BadnessSave,
+ height: \the\ht4,
+ depth: \the\dp4
+ }%
+ \immediate\write\PageLogStream{}%
+ \fi
+ \setbox 5 = \vbox{%
+ \makeheadline
+ \box 4
+ \makefootline
+ }%
+ \@MakeRobustMacros
+ \ifodd\count0
+ \CurrentPageShift = \OddPagesHorizontalShift
+ \else
+ \CurrentPageShift = \EvenPagesHorizontalShift
+ \fi
+ \wlog{Redefined \string\plainoutput (ts-outpu.tip):
+ Shifting: shift amount is \the\CurrentPageShift\space\space
+ (page is \the\pageno).}%
+ \setbox 6 = \vbox{%
+ \moveright\CurrentPageShift \box5
+ }%
+ \shipout\box6
+ \advancepageno
+ \ifnum\outputpenalty > -10000
+ \else
+ \dosupereject
+ \fi
+}
+\def\@PageLayoutCodeThree{%
+ \ifodd\count0
+ \headline = {%
+ \small\rm
+ \hfil
+ \@RightRunningHead
+ \hskip 18pt
+ \PrintCounter{PageNo}%
+ }%
+ \else
+ \headline = {%
+ \small\rm
+ \PrintCounter{PageNo}%
+ \hskip 18pt
+ \@LeftRunningHead
+ \hfil
+ }%
+ \fi
+}
+\catcode`\@ = 12
+\NameDef{@InputD-ts-outpu.tip}{}
+\def\SetUpTeXIPValues #1#2#3#4#5#6#7#8#9{%
+ \HsizeTeXIP = #1\relax
+ \hsize = \HsizeTeXIP
+ \VsizeTeXIP = #2\relax
+ \vsize = \VsizeTeXIP
+ \SetParIndent{20pt}
+ \ClubPenalty = #4\relax
+ \clubpenalty = \ClubPenalty
+ \WidowPenalty = #5\relax
+ \widowpenalty = \WidowPenalty
+ \InterlinePenalty = #6\relax
+ \interlinepenalty = \InterlinePenalty
+ \BrokenPenalty = #7\relax
+ \brokenpenalty = \BrokenPenalty
+ \OddPagesHorizontalShift = 0pt
+ \EvenPagesHorizontalShift = 0pt
+ \overfullrule = #8\relax
+ \parskip = #9\relax
+}
+\SetUpTeXIPValues{6.5in}{8.9in}{20pt}{100}{100}{100}{100}%
+ {5pt}{0pt plus 1pt}
+\NameDef{@InputD-ts-dime2.tip}{}
+\def\SubstituteFont #1#2#3#4{%
+ \expandafter\newifOF \csname if-\string#1\endcsname
+ \csname if-\string#1true\endcsname
+ \def#1{%
+ \csname if-\string#1\endcsname
+ \message{%
+ \string\SubstituteFont: No \string#2 font at
+ size #3pt, using \noexpand\rm instead.%
+ }%
+ \global\csname if-\string#1false\endcsname
+ \fi
+ #4%
+ }%
+}
+\NameDef{@InputD-ts-subst.tip}{}
+\font\RmLargerThanLife = cmr17 scaled \magstep5
+\NewFont\Vrm = cmr5
+\NewFont\Vit = cmti7 at 5pt
+\NewFont\Vbf = cmbx5
+\NewFont\Vsc = cmcsc10 at 5pt
+\SubstituteFont{\Vtt}{\tt}{7}{\VIIrm}
+\SubstituteFont{\Vsc}{\sc}{7}{\VIIrm}
+\SubstituteFont{\Vsl}{\sl}{7}{\VIIrm}
+\NewFont\VIIrm = cmr7
+\NewFont\VIIit = cmti7
+\NewFont\VIIbf = cmbx7
+\NewFont\VIIsc = cmcsc10 at 7pt
+\SubstituteFont{\VIItt}{\tt}{7}{\VIIrm}
+\SubstituteFont{\VIIsl}{\sl}{7}{\VIIrm}
+\NewFont\VIIIrm = cmr8
+\NewFont\VIIIit = cmti8
+\NewFont\VIIIbf = cmbx8
+\NewFont\VIIItt = cmtt8
+\NewFont\VIIIsc = cmcsc10 at 8pt
+\SubstituteFont{\VIIIsl}{\sl}{8}{\VIIIrm}
+\NewFont\IXrm = cmr9
+\NewFont\IXit = cmti9
+\NewFont\IXbf = cmbx9
+\NewFont\IXtt = cmtt9
+\NewFont\IXsc = cmcsc10 at 9pt
+\SubstituteFont{\IXsl}{\sl}{9}{\IXrm}
+\NewFont\Xrm = cmr10
+\NewFont\Xit = cmti10
+\NewFont\Xbf = cmbx10
+\NewFont\Xtt = cmtt10
+\NewFont\Xsc = cmcsc10
+\NewFont\Xsl = cmcsc10
+\NewFont\XIIrm = cmr12
+\NewFont\XIIit = cmti12
+\NewFont\XIIbf = cmbx12
+\NewFont\XIItt = cmtt12
+\NewFont\XIIsc = cmcsc10 scaled \magstep 1
+\NewFont\XIIsl = cmcsc10 scaled \magstep 1
+\NewFont\XIIIrm = cmr12 scaled \magstephalf
+\NewFont\XIIIit = cmti12 scaled \magstephalf
+\NewFont\XIIIbf = cmbx12 scaled \magstephalf
+\NewFont\XIIItt = cmtt12 scaled \magstephalf
+\NewFont\XIIIsc = cmcsc10 scaled \magstephalf
+\NewFont\XIIIsl = cmcsc10 scaled \magstephalf
+\NewFont\XVIIrm = cmr12 scaled \magstep 2
+\NewFont\XVIIit = cmti12 scaled \magstep 2
+\NewFont\XVIIbf = cmbx12 scaled \magstep 2
+\NewFont\XVIItt = cmtt12 scaled \magstep 2
+\NewFont\XVIIsc = cmcsc10 scaled \magstep 3
+\NewFont\XVIIsl = cmcsc10 scaled \magstep 3
+\NewFont\XXIrm = cmr17 scaled \magstep 1
+\NewFont\XXIit = cmti12 scaled \magstep 3
+\NewFont\XXIbf = cmbx12 scaled \magstep 3
+\NewFont\XXIsc = cmcsc10 scaled \magstep 4
+\LoadFontOnDemand{\XXItt}{cmtt12 scaled \magstep 3}
+\SubstituteFont{\XXIsl}{\sl}{20.74}{\XXIrm}
+\NewFont\XXVrm = cmr17 scaled \magstep 2
+\NewFont\XXVit = cmti12 scaled \magstep 4
+\NewFont\XXVbf = cmbx12 scaled \magstep 4
+\NewFont\XXVsc = cmcsc10 at 5pt
+\LoadFontOnDemand{\XXVtt}{cmtt12 scaled \magstep 4}
+\SubstituteFont{\XXVsl}{\sl}{20.74}{\XXVrm}
+\DefineFontSizeGroup{V}{5}
+\DefineFontSizeGroup{VII}{7}
+\DefineFontSizeGroup{VIII}{8}
+\DefineFontSizeGroup{IX}{9}
+\DefineFontSizeGroup{X}{10}
+\DefineFontSizeGroup{XII}{12}
+\DefineFontSizeGroup{XIII}{13.14}
+\DefineFontSizeGroup{XVII}{17.28}
+\DefineFontSizeGroup{XXI}{20.74}
+\DefineFontSizeGroup{XXV}{24.88}
+\let\tiny = \FontSizeV
+\let\scriptsize = \FontSizeVII
+\let\footnotesize = \FontSizeVIII
+\let\small = \FontSizeIX
+\let\normalsize = \FontSizeX
+\let\large = \FontSizeXII
+\let\Large = \FontSizeXIII
+\let\LARGE = \FontSizeXVII
+\let\huge = \FontSizeXXI
+\let\Huge = \FontSizeXXV
+\def\LineSpaceMultFactor{1.2}
+\normalsize
+\NameDef{@InputD-ts-fonts.tip}{}
+\catcode`\@ = 11
+\newcount\@WidestLoopCounter
+\newbox\@WidestLoopBox
+\def\FindWidestChar #1#2#3#4{%
+ #1 = 0pt
+ \DoLoop{\@WidestLoopCounter}{#3}{1}{#4}{%
+ \setbox\@WidestLoopBox = \hbox{%
+ #2%
+ \char\@WidestLoopCounter
+ }%
+ \MaxDimen{#1}{#1}{\wd\@WidestLoopBox}{}%
+ }%
+}
+\catcode`\@ = 12
+\NameDef{@InputD-widestc.tip}{}
+\catcode`\@ = 11
+\newdimen\@WidthLevelOneLabels
+\FindWidestChar{\@WidthLevelOneLabels}{\normalsize\rm}%
+ {`\0}{`\9}
+\setbox 0 = \hbox{.\hskip 1em}
+\advance\@WidthLevelOneLabels by \wd0
+\def\@BeginEnumerateLevelOne{%
+ \BeginAList{\@WidthLevelOneLabels}{0pt}{1em}%
+ {12pt}{0pt}%
+ {0pt}{15pt}%
+}
+\newdimen\@WidthLevelTwoLabels
+\FindWidestChar{\@WidthLevelTwoLabels}{\normalsize\rm}%
+ {`\a}{`\j}
+\setbox 0 = \hbox{()\hskip 1em}
+\advance\@WidthLevelTwoLabels by \wd0
+\def\@BeginEnumerateLevelTwo{%
+ \BeginAList{\@WidthLevelTwoLabels}{0pt}{10pt}%
+ {6pt}{0pt}%
+ {0pt}{15pt}%
+}
+\newdimen\@WidthLevelThreeLabels
+\setbox 0 = \hbox{viii.\hskip 1em}
+\@WidthLevelThreeLabels = \wd0
+\def\@BeginEnumerateLevelThree{%
+ \BeginAList{\@WidthLevelThreeLabels}{0pt}{10pt}%
+ {6pt}{0pt}%
+ {0pt}{15pt}%
+}
+\newdimen\@WidthLevelFourLabels
+\FindWidestChar{\@WidthLevelFourLabels}{\normalsize\rm}%
+ {`\A}{`\J}
+\setbox0 = \hbox{()\hskip 1em}
+\advance\@WidthLevelFourLabels by \wd0
+\def\@BeginEnumerateLevelFour{%
+ \BeginAList{\@WidthLevelFourLabels}{0pt}{10pt}%
+ {6pt}{0pt}%
+ {0pt}{15pt}%
+}
+\def\EnumerateLevelOneExtended{%
+ \par
+ \FindWidestChar{\@WidthLevelOneLabels}{\normalsize\rm}%
+ {`\0}{`\9}
+ \multiply\@WidthLevelOneLabels by 2
+ \setbox 0 = \hbox{.\hskip 1em}%
+ \advance\@WidthLevelOneLabels by \wd0
+}
+\catcode`\@ = 12
+\NameDef{@InputD-ts-enum.tip}{}
+\catcode`\@ = 11
+\NewCounter{FigureNo}{\arabic}%
+ {\TheCounter{ChapterNo}.\TheCounter{FigureNo}}%
+ {\TheCounter{ChapterNo}.\TheCounter{FigureNo}}%
+\NewCounter{TableNo}{\arabic}%
+ {\TheCounter{ChapterNo}.\TheCounter{TableNo}}%
+ {\TheCounter{ChapterNo}.\TheCounter{TableNo}}%
+\AddCounterToResetList{FigureNo}{ChapterNo}
+\AddCounterToResetList{TableNo}{ChapterNo}
+\def\Caption{\DblArg{\@Caption}}
+\def\@Caption [#1]#2{%
+ \errmessage{\string\@Caption: caption out of place, caption
+ text = #1.}%
+}
+\def\BeginFigure{%
+ \DoFutureLet{\ifx}{[}{\@BeginFigure}{\@BeginFigure[t]}%
+}
+\newif\if@FigureInsertOk
+\def\@BeginFigure[#1]{%
+ \begingroup
+ \def\@UseThisInsert{}%
+ \@FigureInsertOkfalse
+ \if\StringsEqualConditional{#1}{t}%
+ \def\@UseThisInsert{\topinsert}%
+ \@FigureInsertOktrue
+ \fi
+ \if\StringsEqualConditional{#1}{p}%
+ \def\@UseThisInsert{\pageinsert}%
+ \@FigureInsertOktrue
+ \fi
+ \if@FigureInsertOk
+ \else
+ \errmessage{\string\@BeginFigure: illegal argument
+ "#1." Use [t] instead.}%
+ \def\@UseThisInsert{\topinsert}%
+ \fi
+ \gdef\FigureCaptionText{}%
+ \gdef\FigureCaptionTextLof{}%
+ \StepCounter{FigureNo}%
+ \def\Label ##1{\@Label{##1}{\RefCounter{FigureNo}}{0}}%
+ \def\@Caption [##1]##2{%
+ \gdef\FigureCaptionTextLof{##1}%
+ \gdef\FigureCaptionText{##2}%
+ \wlog{\noexpand\@Caption (figures), caption text saved:
+ ##2.}%
+ }%
+ \setbox 0 = \vbox\bgroup
+}
+\def\EndFigure{%
+ \egroup
+ \@UseThisInsert
+ \box0
+ \if\EmptyStringConditional{\FigureCaptionText}%
+ \else
+ \bigskip
+ \CenterOrParagraph{%
+ \small
+ Figure~\PrintCounter{FigureNo}.
+ \FigureCaptionText
+ }%
+ \WriteToAuxSpecial{lof}{1}{\PrintCounter{FigureNo}}%
+ {\FigureCaptionTextLof}{\PrintCounter{PageNo}}%
+ \fi
+ \endinsert
+ \endgroup
+}
+\def\BeginTable{%
+ \begingroup
+ \gdef\TableCaptionText{}%
+ \gdef\TableCaptionTextLot{}%
+ \StepCounter{TableNo}%
+ \def\Label ##1{\@Label{##1}{\RefCounter{TableNo}}{0}}%
+ \def\@Caption [##1]##2{%
+ \gdef\TableCaptionText{##2}%
+ \gdef\TableCaptionTextLot{##1}%
+ \wlog{\noexpand\@Caption for tables: ##2}%
+ }%
+ \setbox 0 = \vbox\bgroup
+}
+\def\EndTable{%
+ \egroup
+ \topinsert
+ \if\EmptyStringConditional{\TableCaptionText}%
+ \else
+ \smallskip
+ \CenterOrParagraph{%
+ \small
+ Table~\PrintCounter{TableNo}.
+ \TableCaptionText}%
+ \WriteToAuxSpecial{lot}{1}{\PrintCounter{TableNo}}%
+ {\TableCaptionTextLot}{\PrintCounter{PageNo}}%
+ \smallskip
+ \fi
+ \box0
+ \endinsert
+ \endgroup
+}
+\catcode`\@ = 12
+\NameDef{@InputD-ts-float.tip}{}
+\catcode`\@ = 11
+\NewCounter{FootNote}{\arabic}%
+ {\TheCounter{FootNote}}%
+ {\PrintCounter{FootNote}}
+\AddCounterToResetList{FootNote}{ChapterNo}
+\def\FootNote #1{%
+ \StepCounter{FootNote}%
+ \footnote{$^{\PrintCounter{FootNote}}$}%
+ {%
+ \small
+ \baselineskip = 9pt
+ #1%
+ }%
+}
+\skip\footins = 18.4pt
+\def\@PrintFootnotePlain{%
+ \vskip 12pt plus 2pt minus 1pt
+ \hrule width 5pc height 0.4pt depth 0pt
+ \vskip 6pt plus 1pt minus 0.5pt
+ \unvbox\footins
+}
+\catcode`\@ = 12
+\NameDef{@InputD-ts-foot.tip}{}
+\NewCounter{VolumeNo}{\Roman}%
+ {\TheCounter{VolumeNo}}{\TheCounter{VolumeNo}}
+\ReassignCounter{PageNo}{\arabic}%
+ {\TheCounter{PageNo}}%
+ {\TheCounter{VolumeNo}-\TheCounter{PageNo}}
+\NameDef{@InputD-ts-vol.tip}{}
+\catcode`\@ = 11
+\NewCounter{SectionNo}{\arabic}%
+ {\PrintCounter{ChapterNo}.\TheCounter{SectionNo}}%
+ {\PrintCounter{ChapterNo}.\TheCounter{SectionNo}}%
+\NewCounter{SubSectionNo}{\arabic}%
+ {\PrintCounter{SectionNo}.\TheCounter{SubSectionNo}}%
+ {\PrintCounter{SectionNo}.\TheCounter{SubSectionNo}}%
+\NewCounter{SubSubSectionNo}{\arabic}%
+ {\PrintCounter{SubSectionNo}.\TheCounter{SubSubSectionNo}}%
+ {\PrintCounter{SubSectionNo}.\TheCounter{SubSubSectionNo}}%
+\NewCounter{CloseByReferenceCount}{\arabic}%
+ {\PrintCounter{CloseByReferenceCount}}%
+ {\PrintCounter{CloseByReferenceCount}}%
+\AddCounterToResetList{SectionNo}{ChapterNo}%
+\AddCounterToResetList{SubSectionNo}{SectionNo}%
+\AddCounterToResetList{SubSubSectionNo}{SubSectionNo}%
+\def\Section{\DblArg{\@Section}}%
+\def\@Section [#1]#2{%
+ \StepCounter{SectionNo}%
+ \def\Label ##1{\@Label{##1}{\RefCounter{SectionNo}}{1}}%
+ \GenericHeading{2}{36pt plus 10pt minus 2pt}%
+ {1}{1}{1}{24pt}{0}%
+ {\Large\baselineskip = 15pt}{-13pt}%
+ {\PrintCounter{SectionNo}}{#2}{#1}%
+ \gdef\EveryParB{%
+ {%
+ \@MakeRobustMacros
+ \def\LineBreakToc{ }%
+ \def\LineBreakHeading{ }%
+ \def\IgnoreInRunningHead ####1{%
+ \relax$\ldots$%
+ }%
+ \mark{#2}%
+ }%
+ }%
+}
+\def\SubSection{\DblArg{\@SubSection}}%
+\def\@SubSection [#1]#2{%
+ \StepCounter{SubSectionNo}%
+ \def\Label ##1{\@Label{##1}{\RefCounter{SubSectionNo}}{1}}%
+ \GenericHeading{3}{30pt plus 8pt minus 2pt}%
+ {1}{1}{1}{18pt}{0}%
+ {\large\baselineskip = 14pt}{-12pt}%
+ {\PrintCounter{SubSectionNo}}{#2}{#1}%
+}
+\def\SubSubSection{\DblArg{\@SubSubSection}}%
+\def\@SubSubSection [#1]#2{%
+ \ifnum\TheCounter{SubSectionNo} = 0
+ \errhelp = {The reason is probably that \string\Section
+ occurred directly followed by \string\SubSubSection
+ (that is you forgot a \string\SubSection in between).}%
+ \errmessage{\string\@SubSubSection: Counter "SubSectionNo"
+ is zero.}%
+ \fi
+ \StepCounter{SubSubSectionNo}%
+ \def\Label ##1{\@Label{##1}{\RefCounter{SubSubSectionNo}}{1}}%
+ \GenericHeading{4}{24pt plus 6pt minus 1pt}%
+ {1}{1}{1}{18pt}{0}%
+ {\normalsize}{-10pt}%
+ {\PrintCounter{SubSubSectionNo}}{#2}{#1}%
+}
+\catcode`\@ = 12
+\NameDef{@InputD-ts-shead.tip}{}
+\NameDef{@InputD-ts-hall.tip}{}
+\catcode`\@ = 11
+\def\label{\Label}
+\def\WriteCountersToAuxFile{%
+ \@WriteCounter{VolumeNo}%
+ \@WriteCounter{ChapterNo}%
+ \@WriteCounter{AppendixNo}%
+ \@WriteCounter{SectionNo}%
+ \@WriteCounter{SubSectionNo}%
+ \@WriteCounter{SubSubSectionNo}%
+ \@WriteCounter{PageNo}%
+ \@WriteCounter{SWPageNo}%
+ \@WriteCounter{FigureNo}%
+ \@WriteCounter{TableNo}%
+ \@WriteCounter{CloseByReferenceCount}%
+}
+\def\Label #1{%
+ \message{\noexpand\Label currently undefined,
+ label "#1" ignored.}%
+}
+\catcode`\@ = 12
+\NameDef{@InputD-ts-hmore.tip}{}
+\lefthyphenmin = 2
+\righthyphenmin = 3
+\hyphenation{Ado-be}
+\hyphenation{after}
+\hyphenation{base-line-skip}
+\hyphenation{man-u-script}
+\hyphenation{obey-lines}
+\hyphenation{obey-spaces}
+\hyphenation{other-wise}
+\NameDef{@InputD-ts-hyph.tip}{}
+\catcode`\@ = 11
+\def\@BeginItemizeLevelOne{%
+ \BeginAList
+ {15pt}{0pt}{15pt}%
+ {12pt}{0pt}%
+ {0pt}{15pt}%
+}
+\def\@BeginItemizeLevelTwo{%
+ \BeginAList
+ {15pt}{0pt}{15pt}%
+ {6pt}{0pt}%
+ {0pt}{15pt}%
+}
+\def\@BeginItemizeLevelThree{%
+ \BeginAList
+ {15pt}{0pt}{15pt}%
+ {4pt}{0pt}%
+ {0pt}{15pt}%
+}
+\def\@BeginItemizeLevelFour{%
+ \BeginAList
+ {15pt}{0pt}{15pt}%
+ {4pt}{0pt}%
+ {0pt}{15pt}%
+}
+\catcode`\@ = 12
+\NameDef{@InputD-ts-itize.tip}{}
+\def\TeXIP{%
+ \TeX{} in Practice%
+}
+\def\WEB{%
+ {\tt WEB}%
+}
+\NameDef{@InputD-ts-lazy.tip}{}
+\def\EntryIntolof #1#2#3#4{%
+ \ifcase #1
+ \MaxVskip{12pt}%
+ \or
+ \GenTocEntry{#1}{10pt}{50pt}{50pt}{25pt}%
+ {0pt}{5pt}{0.5in}{#2}{#3}{\rm}{#4}
+ \else
+ \errmessage{\string\EntryIntolof/lot: illegal level.}%
+ \fi
+}
+\let\EntryIntolot = \EntryIntolof
+\NameDef{@InputD-ts-loft.tip}{}
+\def\PS{{\sc Post\-Script}}
+\font\MetafontLogoFont = logo10 scaled \magstep0
+\def\MF{{\MetafontLogoFont METAFONT}}
+\def\textfontii{\the\textfont2}
+\def\AmSTeX{{\textfontii A}\kern-.1667em\lower.5ex\hbox
+ {\textfontii M}\kern-.125em{\textfontii S}-\TeX}
+\def\LaTeX{{\rm L\kern-.36em\raise.3ex\hbox{\sc a}\kern-.15em
+ T\kern-.1667em\lower.7ex\hbox{E}\kern-.125emX}}
+\NameDef{@InputD-ts-logo.tip}{}
+\catcode`\@ = 11
+\def\@MakeRobustMacros{%
+ \TreatAsRobust\rm
+ \TreatAsRobust\bf
+ \TreatAsRobust\it
+ \TreatAsRobust\tt
+ \TreatAsRobust\sc
+ \TreatAsRobust\mac
+ \TreatAsRobust\break
+ \TreatAsRobust\dots
+ \TreatAsRobust\MF
+ \TreatAsRobust\TeX
+ \TreatAsRobust\LaTeX
+ \TreatAsRobust\PS
+ \TreatAsRobust\AmSTeX
+ \TreatAsRobust\ldots
+ \TreatAsRobust\cdots
+ \TreatAsRobust\dots
+ \def\MakeRobust ##1{%
+ \noexpand\MakeRobust
+ \noexpand##1%
+ }%
+}
+\catcode`\@ = 12
+\NameDef{@InputD-ts-robst.tip}{}
+\def\TeXIPVersionNumber{1.0}
+\NameDef{@InputD-ts-vers.tip}{}
+\def\MyNarrower{\narrower\narrower}
+\frenchspacing
+\NameDef{@InputD-ts-set.tip}{}
+\def\EntryIntotoc #1#2#3#4{%
+ \par
+ \ifcase #1
+ \bigskip
+ \or
+ \bigskip
+ \else
+ \relax
+ \fi
+ \ifcase #1
+ \GenTocEntry{0}{0pt}{20pt}{20pt}{30pt}%
+ {0pt}{5pt}{0.5in}{#2}{#3}{\rm}{#4}
+ \or
+ \GenTocEntry{1}{0pt}{40pt}{40pt}{30pt}%
+ {0pt}{10pt}{0.5in}{#2}{#3}{\bf}{#4}
+ \or
+ \GenTocEntry{2}{10pt}{50pt}{50pt}{30pt}%
+ {0pt}{5pt}{0.5in}{#2}{#3}{\rm}{#4}
+ \or
+ \GenTocEntry{#1}{20pt}{60pt}{60pt}{30pt}%
+ {0pt}{5pt}{0.5in}{#2}{#3}{\rm}{#4}
+ \or
+ \else
+ \errmessage{\string\EntryIntotoc: no level #1 subdivision
+ in this series.}
+ \fi
+}
+\NameDef{@InputD-ts-toc.tip}{}
+\newdimen\LeftSkipVerbatim
+\LeftSkipVerbatim = 0.3in
+\def\VerbatimFont{\tt}
+\newcount\VerbatimTab
+\VerbatimTab = 8
+\newif\ifVerbLineNum
+\VerbLineNumtrue
+\newskip\DisplayVerbatimVskip
+\DisplayVerbatimVskip = 0pt plus 2pt minus 1pt
+\newif\ifCaretTab
+\CaretTabfalse
+\newtoks\VerbatimTokBegin \VerbatimTokBegin = {}
+\newtoks\VerbatimTokLine \VerbatimTokLine = {}
+\newtoks\VerbatimTokEnd \VerbatimTokEnd = {}
+\catcode`\@ = 11
+\newdimen\@VerbatimLr
+\@VerbatimLr = 1.5pt
+\newif\if@IgnoreFirstNewLine
+\if\FormatIsLaTeXConditional
+ \def\@VerbatimPar{\par\@@par}%
+ \def\@VerbatimNlf{\tiny}%
+\else
+ \def\@VerbatimPar{\par}%
+ \def\@VerbatimNlf{\tiny}%
+\fi
+\newcount\@VerbatimLineNumber
+\newif\if@VerbatimL
+\newdimen\Verb@TabSize
+\def\@VObeySpaces{%
+ \MakeActive{\ }%
+ \@@VObeySpaces
+}
+{%
+\MakeActive{\ }%
+\gdef\@@VObeySpaces{%
+\def {\VerbControlSpace}%
+}%
+}
+\def\@VObeyTabs{%
+ \MakeTabActive
+ \@@VObeyTabs
+}
+{
+ \MakeTabActive
+ \gdef\@@VObeyTabs{%
+ \def^^I{\Verb@Tab}%
+ }
+}
+\def\Verb@Tab{%
+ \leavevmode
+ \egroup
+ \dimen0 = \wd0
+ \divide\dimen0 by \Verb@TabSize
+ \advance\dimen0 by 1sp
+ \multiply\dimen0 by \Verb@TabSize
+ \wd0 = \dimen0
+ \box0
+ \setbox 0 = \hbox\bgroup
+}
+\def\@VObeyEol{%
+ \MakeEolActive %
+ \@@VObeyEol
+}
+{
+ \MakeEolActive %
+ \gdef\@@VObeyEol{%
+ \let^^M = \Verb@Eol%
+ }%
+}
+\def\Verb@Eol{%
+ \if@IgnoreFirstNewLine
+ \else
+ \leavevmode
+ \egroup
+ \box 0
+ \endgraf
+ \fi
+ \@IgnoreFirstNewLinefalse
+}
+\def\@VCaret{%
+ \MakeActive{\^}%
+ \@@VCaret
+}
+{
+ \MakeActive{\^}%
+ \gdef\@@VCaret{%
+ \def^{%
+ \futurelet\@VSymbol\@@VCaretTwo
+ }%
+ \def\@@VCaretTwo{%
+ \ifx \@VSymbol^%
+ \let\@VerbNext = \@@VCaretThree
+ \else
+ \CaretText
+ \let\@VerbNext = \relax
+ \fi
+ \@VerbNext
+ }%
+ \def\@@VCaretThree ^{%
+ \futurelet\@VSymbol\@@VCaretFour
+ }%
+ \def\@@VCaretFour{%
+ \ifx \@VSymbol I%
+ \Verb@Tab
+ \else
+ \CaretText\CaretText\@VSymbol
+ \fi
+ \GobbleOne
+ }%
+ }%
+}
+\def\@StartVerbatim #1{%
+ \begingroup
+ \@VerbatimPar
+ \vskip\DisplayVerbatimVskip
+ \if\FormatIsLaTeXConditional
+ \else
+ \CancelSuppressNextParIndent
+ \fi
+ \setbox0 = \hbox{\VerbatimFont X}
+ \Verb@TabSize = \wd0
+ \multiply\Verb@TabSize by \VerbatimTab
+ \parskip = 0pt
+ \parindent = 0pt
+ \leftskip = \LeftSkipVerbatim
+ \rightskip = 0pt
+ \parfillskip = 0pt plus 1fil
+ \spaceskip = 0pt
+ \xspaceskip = 0pt
+ \VerbatimFont
+ \if@VerbatimL
+ \else
+ \global\@VerbatimLineNumber = 0
+ \fi
+ \global\@VerbatimLfalse
+ \ifnum #1 = 0
+ \@IgnoreFirstNewLinetrue
+ \else
+ \@IgnoreFirstNewLinefalse
+ \fi
+ \if\FormatIsLaTeXConditional
+ \everypar = {\EveryParZ}%
+ \fi
+ \def\EveryParZ{%
+ \the\VerbatimTokLine
+ \global\advance\@VerbatimLineNumber by 1
+ \ifVerbLineNum
+ \raise \@VerbatimLr \hbox to 0pt{%
+ \hss
+ \@VerbatimNlf
+ \the\@VerbatimLineNumber
+ \hskip 10pt
+ }%
+ \fi
+ \setbox 0 = \hbox\bgroup
+ }%
+ \MkOthers
+ \@VObeySpaces
+ \@VObeyTabs
+ \@VObeyEol
+ \ifCaretTab
+ \@VCaret
+ \fi
+}
+\def\@DoneVerbatim{%
+ \endgroup
+ \vskip\DisplayVerbatimVskip
+ \def\@VerbatimEndSpecialDeal{}%
+ \if\FormatIsLaTeXConditional
+ \else
+ \def\@VerbatimEndSpecialDeal{%
+ \ParLookAhead
+ {\SuppressNextParIndent}%
+ {}
+ }%
+ \fi
+ \@VerbatimEndSpecialDeal
+}
+\def\BeginVerbatim{%
+ \@StartVerbatim{0}%
+ \@BeginVerbatim
+}
+{ \catcode `| = 0 % | becomes escape character.
+ \catcode`\\ =12 % \ becomes regular character.
+ |gdef|@BeginVerbatim #1\EndVerbatim{%
+ #1%
+ |@DoneVerbatim
+ }
+}
+\def\BVerB{%
+ \@StartVerbatim{0}%
+ \@BVerB
+}
+{
+ \catcode `| = 0 % | becomes escape character.
+ \catcode`\\ =12 % \ becomes regular character.
+ |gdef|@BVerB #1\EVerB{%
+ #1%
+ |@DoneVerbatim
+ }
+}
+\def\AppendVerbatimL #1{%
+ \global\@VerbatimLtrue
+ \global\advance\@VerbatimLineNumber by #1\relax
+}
+\def\StartVerbatimL #1{%
+ \global\@VerbatimLtrue
+ \global\@VerbatimLineNumber = #1\relax
+}
+\newcount\@SaveVerbatimLineNumber
+\def\PushVerbatimL{%
+ \global\@SaveVerbatimLineNumber = \@VerbatimLineNumber
+ \global\VerbLineNumfalse
+}
+\def\PopVerbatimL{%
+ \global\@VerbatimLineNumber = \@SaveVerbatimLineNumber
+ \global\VerbLineNumtrue
+}
+\catcode`\@ = 12
+\NameDef{@InputD-verbdisp.tip}{}
+\catcode`\@ = 11
+\def\ListVerb #1{%
+ \@StartVerbatim{1}%
+ \input #1
+ \@DoneVerbatim
+}
+\def\ListVerbIfFileExists #1{%
+ \par
+ \if\FileExistsConditional{#1}%
+ \ListVerb{#1}%
+ \else
+ \centerline{$\bullet$ File {\tt #1} not found. $\bullet$}%
+ \wlog{\string\ListVerbIfFileExists: no file "#1".}%
+ \fi
+}
+\def\ListVerbAndSource #1{%
+ \ListVerb{#1}%
+ \input #1
+}
+\catcode`\@ = 12
+\NameDef{@InputD-verb-mac.tip}{}
+\catcode`\@ = 11
+{\catcode`\ = \active
+\gdef\@InitActiveSpace{\edef {\VerbControlSpace}}}
+\newif\if@VerbSpaceControl
+\def\Verb{%
+ \NextCharTest{*}{\@VerbSpaceControltrue \@VerbA}%
+ {\@VerbSpaceControlfalse\@VerbA}%
+}
+\def\@VerbA #1{%
+ \bgroup
+ \tt
+ \MkOthers
+ \if@VerbSpaceControl
+ \else
+ \catcode`\ = \active
+ \@InitActiveSpace
+ \fi
+ \def\@VerbTemp ##1#1{%
+ ##1% % Simply print the argument.
+ \egroup % Undo font change and category code changes.
+ }%
+ \@VerbTemp
+}
+\catcode`\@ = 12
+\NameDef{@InputD-verb.tip}{}
+\catcode`\@ = 11
+\newwrite\@VStream
+\newif\if@VStreamOpen
+\@VStreamOpenfalse
+\newcount\@VerbWriteCount
+\@VerbWriteCount = 0
+\def\BeginVerbWrite #1#2{%
+ \global\advance\@VerbWriteCount by 1
+ \wlog{\string\BeginVerbWrite: [\the\@VerbWriteCount]}%
+ \DefaultArg{\@VerbWriteBaseName}{#1}{\jobname}%
+ \DefaultArg{\@VerbWriteFileExt}{#2}{ver}%
+ \xdef\@VerbWriteFileName{\@VerbWriteBaseName.\@VerbWriteFileExt}%
+ \if@VStreamOpen
+ \errmessage{\string\BeginVerbWrite: ERROR, file still open.}%
+ \fi
+ \OpenVerbWrFile{\@VerbWriteBaseName}{\@VerbWriteFileExt}%
+ {\@VStream}%
+ \global\@VStreamOpentrue
+ \BeginVerbWr{\@VStream}{\EndVerbWrite}%
+}
+\def\CloseVerbWriteFile{%
+ \if@VStreamOpen
+ \CloseVerbWrFile{\@VStream}%
+ \global\@VStreamOpenfalse
+ \fi
+}
+\def\AppendVerbWrite{%
+ \wlog{\string\AppendVerbWrite: [\the\@VerbWriteCount]}%
+ \if@VStreamOpen
+ \else
+ \errmessage{\string\AppendVerbWrite: no file open.}%
+ \fi
+ \xdef\@VerbWriteFileName{\@VerbWriteBaseName.\@VerbWriteFileExt}%
+ \BeginVerbWr{\@VStream}{\EndVerbWrite}%
+}
+\def\VerbAsVerb{%
+ \CloseVerbWriteFile
+ {%
+ \CaretTabtrue
+ \ListVerb{\@VerbWriteFileName}%
+ }%
+}
+\def\VerbAsSource{%
+ \CloseVerbWriteFile
+ \input \@VerbWriteFileName \relax
+}
+\catcode`\@ = 12
+\NameDef{@InputD-vwrt-mac.tip}{}
+\catcode`\@ = 11
+\def\@btex{%
+ \par
+ \bgroup
+ \small
+}
+\def\@etex{%
+ \nobreak
+ \egroup
+ \if\FormatIsLaTeXConditional
+ \def\@EtexEnd{}%
+ \else
+ \def\@EtexEnd{%
+ \ParLookAhead
+ {}%
+ {\SuppressNextParIndent}%
+ }%
+ \fi
+ \@EtexEnd
+}
+\def\btex{%
+ \@btex
+ \@StartVerbatim{0}%
+ \btex@more
+}
+{
+ \catcode `| = 0 % | becomes escape character.
+ \catcode`\\ = 12 % \ now prints.
+ |gdef|btex@more #1\etex{%
+ #1%
+ |@DoneVerbatim
+ |@etex
+ }%
+}
+\catcode`\@ = 12
+\NameDef{@InputD-ts-verb1.tip}{}
+\catcode`\@ = 11
+\def\Btexalt{%
+ \@btex
+ \@StartVerbatim{0}%
+ \btex@morealt
+}
+{
+ \catcode `| = 0 % | becomes escape character.
+ \catcode`\\ = 12 % \ now prints.
+ |gdef|btex@morealt #1\Etexalt{%
+ #1%
+ |@DoneVerbatim
+ |@etex
+ }%
+}
+\catcode`\@ = 12
+\NameDef{@InputD-ts-verb2.tip}{}
+\catcode`\@ = 11
+\def\verb{\Verb}
+\VerbLineNumtrue
+\VerbatimTab = 4
+\DisplayVerbatimVskip = 5pt
+\def\VerbatimFont{\small\tt}%
+\def\ListVerbTeXIP #1{%
+ \par
+ \medskip
+ \vskip 60pt
+ \vskip -60pt
+ \def\ListAsFileName{#1}%
+ \def\LabelName{code-#1}%
+ \if\SuffixConditional{#1}{.flf}%
+ \def\ListAsFileName ##1.flf{\def\ListAsFileName{##1.log}}%
+ \ListAsFileName #1%
+ \def\LabelName{}%
+ \else
+ \if\SuffixConditional{#1}{.flf2}%
+ \def\ListAsFileName ##1.flf2{\def\ListAsFileName{##1.log}}%
+ \ListAsFileName #1%
+ \def\LabelName{}%
+ \fi
+ \fi
+ \if\StringsEqualConditional{#1}{\jobname.ver}%
+ \def\ListAsFileName{}%
+ \def\LabelName{}%
+ \fi
+ \if\StringsEqualConditional{#1}{ex-verbwr.ver}
+ \def\LabelName{}%
+ \fi
+ \if\EmptyStringConditional{\LabelName}%
+ \else
+ \Label{code-#1}%
+ \fi
+ \if\EmptyStringConditional{\ListAsFileName}
+ \else
+ \centerline{%
+ $\bullet$%
+ \space
+ \tt\ListAsFileName
+ \space
+ $\bullet$%
+ }%
+ \fi
+ \@btex
+ \@StartVerbatim{1}%
+ \wlog{[\string\ListVerbTeXIP:}%
+ \input #1
+ \wlog{]}% svb: this was \message before
+ \@DoneVerbatim
+ \@etex
+}
+\catcode`\@ = 12
+\NameDef{@InputD-ts-verb.tip}{}
+\newif\ifIndexSpecial
+\IndexSpecialfalse
+\catcode`\@ = 11
+\newwrite\IdxStream
+\newwrite\IdxStreamSource
+\newif\if@IndexFilesOpen
+\@IndexFilesOpenfalse
+\def\OpenIndexFiles #1{%
+ \if\EmptyStringConditional{#1}%
+ \gdef\@IndexFileBaseName{\jobname}%
+ \else
+ \gdef\@IndexFileBaseName{#1}%
+ \fi
+ \if@IndexFilesOpen
+ \message{\string\OpenIndexFiles: index files
+ already open.}%
+ \message{\string\OpenIndexFiles: will close
+ old files, open new ones with basename
+ "\@IndexFileBaseName".}%
+ \immediate\closeout\IdxStream
+ \immediate\closeout\IdxStreamSource
+ \fi
+ \@IndexFilesOpentrue
+ \immediate\openout\IdxStream = \@IndexFileBaseName.idx
+ \immediate\openout\IdxStreamSource = \@IndexFileBaseName.idx2
+ \SetIndexStream{\IdxStream}%
+}
+\def\CloseIndexFiles{%
+ \if@IndexFilesOpen
+ \immediate\closeout\IdxStream
+ \immediate\closeout\IdxStreamSource
+ \@IndexFilesOpenfalse
+ \fi
+}
+\def\SetIndexStream #1{%
+ \let\IdxStreamUse = #1%
+}
+\def\Index{%
+ \begingroup
+ \MkOthersNoCB
+ \@Index
+}
+\xdef\@IndexSuffixMod{}%
+\def\@Index #1{%
+ \let\PrintCounter = \relax
+ \xdef\IndexTemp{%
+ \write\IdxStreamUse{%
+ \string\indexentry{#1\@IndexSuffixMod}%
+ {\PrintCounter{SWPageNo}}}%
+ }%
+ \ifIndexSpecial
+ \SideNoteText{I: #1}%
+ \fi
+ \xdef\@IndexSuffixMod{}%
+ \endgroup
+ \IndexTemp
+}
+\def\IndexP #1{%
+ \Index{#1}%
+ #1%
+}
+\def\IndexCS #1{%
+ \CSToString{\@IndexCSTemp}{#1}%
+ \expandafter\expandafter\expandafter
+ \Index{%
+ \@IndexCSTemp
+ @%
+ {%
+ \string\tt
+ \string\string
+ \string#1%
+ }%
+ }%
+}
+\def\IndexCSX #1{%
+ \CSToString{\@IndexCSTemp}{#1}%
+ \expandafter\expandafter\expandafter
+ \Index{%
+ #1%
+ @%
+ {%
+ \string\tt
+ \string\string
+ \Backslash#1%
+ }%
+ }%
+}
+\def\IndexCSP #1{%
+ \IndexCS{#1}%
+ {\tt\string#1}%
+}
+\def\IndexPrim #1{%
+ \CSToString{\@IndexCSTemp}{#1}%
+ \expandafter\expandafter\expandafter
+ \Index{\@IndexCSTemp @%
+ {\string\tt\string\string\string#1}|PRIMITIVE}%
+}
+\def\IndexPrimP #1{%
+ \IndexPrim{#1}%
+ {\tt\string #1}%
+}
+\def\IndexPar{\Index{par@\string\PrintParPrimitive}}
+\def\PrintParPrimitive{\BackslashTt{\tt par}}
+\def\IndexBye{\Index{bye@\string\PrintByePrimitive}}
+\def\PrintByePrimitive{\BackslashTt{\tt bye}}
+\def\IndexIf{\Index{if@\string\PrintIf|PRIMITIVE}}
+\def\PrintIf{{\tt\string\if}}
+\def\IndexElse{\Index{else@\string\PrintElse|PRIMITIVE}}
+\def\PrintElse{{\tt\string\else}}
+\def\IndexFi{\Index{fi@\string\PrintFi|PRIMITIVE}}
+\def\PrintFi{{\tt\string\fi}}
+\def\IndexIfCase{\Index{ifcase@\string\PrintIfCase|PRIMITIVE}}
+\def\PrintIfCase{{\tt\string\ifcase}}
+\def\IndexIfCat{\Index{ifcat@\string\PrintIfCat|PRIMITIVE}}
+\def\PrintIfCat{{\tt\string\ifcat}}
+\def\IndexIfX{\Index{ifx@\string\PrintIfX|PRIMITIVE}}
+\def\PrintIfX{{\tt\string\ifx}}
+\def\IndexIfOdd{\Index{ifodd@\string\PrintIfOdd|PRIMITIVE}}
+\def\PrintIfOdd{{\tt\string\ifodd}}
+\def\IndexIfHbox{\Index{ifhbox@\string\PrintIfHbox|PRIMITIVE}}
+\def\PrintIfHbox{{\tt\string\ifhbox}}
+\def\IndexIfVbox{\Index{ifvbox@\string\PrintIfVbox|PRIMITIVE}}
+\def\PrintIfVbox{{\tt\string\ifvbox}}
+\def\IndexIfVoid{\Index{ifvoid@\string\PrintIfVoid|PRIMITIVE}}
+\def\PrintIfVoid{{\tt\string\ifvoid}}
+\def\IndexIfNum{\Index{ifnum@\string\PrintIfNum|PRIMITIVE}}
+\def\PrintIfNum{{\tt\string\ifnum}}
+\def\IndexIfDim{\Index{ifdim@\string\PrintIfDim|PRIMITIVE}}
+\def\PrintIfDim{{\tt\string\ifdim}}
+\def\IndexIfHmode{\Index{ifhmode@\string\PrintIfHmode|PRIMITIVE}}
+\def\PrintIfHmode{{\tt\string\ifhmode}}
+\def\IndexIfVmode{\Index{ifvmode@\string\PrintIfVmode|PRIMITIVE}}
+\def\PrintIfVmode{{\tt\string\ifvmode}}
+\def\IndexIfMmode{\Index{ifvmode@\string\PrintIfMmode|PRIMITIVE}}
+\def\PrintIfMmode{{\tt\string\ifvmode}}
+\def\IndexIfInner{\Index{ifinner@\string\PrintIfInner|PRIMITIVE}}
+\def\PrintIfInner{{\tt\string\ifinner}}
+\def\IndexIfEof{\Index{ifeof@\string\PrintIfEof|PRIMITIVE}}
+\def\PrintIfEof{{\tt\string\ifeof}}%
+\def\IndexIfTrue{\Index{iftrue@\string\PrintIfTrue|PRIMITIVE}}
+\def\PrintIfTrue{{\tt\string\iftrue}}%
+\def\IndexIfFalse{\Index{iffalse@\string\PrintIfFalse|PRIMITIVE}}
+\def\PrintIfFalse{{\tt\string\iffalse}}%
+\def\IndexRepeat{\Index{repeat@\string\PrintRepeat}}
+\def\PrintRepeat{{\tt\string\repeat}}%
+\xdef\@IndexSuffixMod{}%
+\def\IndexPSet #1{%
+ \CSToString{\@IndexPSetResult}{#1}%
+ \xdef\@IndexSuffixMod{|IndexP\@IndexPSetResult}%
+}
+\def\IndexPit #1{{\it #1}}
+\def\IndexPbf #1{{\bf #1}}
+\catcode`\@ = 12
+\NameDef{@InputD-ts-wind.tip}{}
+\def\WriteCounterOutImmediately #1#2{%
+ \OpenGenericOStream{#1}%
+ \immediate\write\GenericOStream
+ {\PrintCounter{#2}}%
+ \CloseGenericOStream
+}
+\NameDef{@InputD-ts-writc.tip}{}
+\catcode`\@ = 11
+\newdimen\@VtboxDim
+\newbox\@VtboxBox
+\def\Vtbox #1#2{%
+ \@VtboxDim = \ht#1%
+ \advance\@VtboxDim by \dp#1%
+ \setbox\@VtboxBox = \vbox{\unvcopy #1}%
+ \advance\@VtboxDim by -\ht\@VtboxBox
+ \advance\@VtboxDim by -\dp\@VtboxBox
+ #2\setbox #1 = \vtop spread \@VtboxDim {\unvbox #1}%
+}
+\catcode`\@ = 12
+\NameDef{@InputD-vtbox.tip}{}
+\def\WritingParShape{%
+ \wlog{\string\WritingParShape: begin}%
+ \wlog{}%
+ \wlog{\string\pretolerance: \the\pretolerance}%
+ \wlog{\string\tolerance: \the\tolerance}%
+ \wlog{\string\prevgraf: \the\prevgraf}%
+ \wlog{}%
+ \wlog{\string\parskip: \the\parskip}%
+ \wlog{\string\baselineskip: \the\baselineskip}%
+ \wlog{\string\lineskip: \the\lineskip}%
+ \wlog{\string\lineskiplimit: \the\lineskiplimit}%
+ \wlog{}%
+ \wlog{\string\parindent: \the\parindent}%
+ \wlog{\string\hsize: \the\hsize}%
+ \wlog{\string\leftskip: \the\leftskip}%
+ \wlog{\string\rightskip: \the\rightskip}%
+ \wlog{\string\parfillskip: \the\parfillskip}%
+ \wlog{\string\spaceskip: \the\spaceskip}%
+ \wlog{\string\xspaceskip: \the\xspaceskip}%
+ \wlog{}%
+ \wlog{\string\hyphenpenalty: \the\hyphenpenalty}%
+ \wlog{\string\exhyphenpenalty: \the\exhyphenpenalty}%
+ \wlog{\string\lefthyphenmin: \the\lefthyphenmin}%
+ \wlog{\string\righthyphenmin: \the\righthyphenmin}%
+ \wlog{\string\lefthyphenmin: \the\lefthyphenmin}%
+ \wlog{}%
+ \wlog{\string\adjdemerits: \the\adjdemerits}%
+ \wlog{\string\doublehyphendemerits: \the\doublehyphendemerits}%
+ \wlog{\string\finalhyphendemerits: \the\finalhyphendemerits}%
+ \wlog{\string\linepenalty: \the\linepenalty}%
+ \wlog{\string\sfcode\string\`.: \the\sfcode`\.}%
+ \wlog{\string\hyphenchar: \the\hyphenchar\tenrm}%
+ \wlog{}%
+ \wlog{\string\binoppenalty: \the\binoppenalty}%
+ \wlog{\string\relpenalty: \the\relpenalty}%
+ \wlog{}%
+ \wlog{\string\everypar: \the\everypar}%
+ \wlog{\string\WritingParShape: end}%
+}
+\NameDef{@InputD-wl-parcp.tip}{}
+\catcode`\@ = 11
+\newwrite\@VerbArgStream
+\def\WriteVerbatimArgument #1#2{%
+ \immediate\openout\@VerbArgStream = #1
+ \def\@AfterWriteVerbatimArgument{#2}%
+ \begingroup
+ \MkOthersNoCB
+ \@WriteVerbatimArgument
+}
+\def\@WriteVerbatimArgument #1{%
+ \immediate\write\@VerbArgStream{#1}%
+ \immediate\closeout\@VerbArgStream
+ \endgroup
+ \@AfterWriteVerbatimArgument
+}
+\catcode`\@ = 12
+\NameDef{@InputD-wrverbar.tip}{}
+\catcode`\@ = 11
+\newcount\X@ParShapeCountA
+\newcount\X@ParShapeCountB
+\newcount\X@ParShapeCountC
+\newdimen\X@ParShapeDimenA
+\newdimen\X@ParShapeDimenB
+\def\XParShape{%
+ \def\X@ParShapeCollect{ }%
+ \X@ParShapeCountC = 0
+ \afterassignment\X@ParShapeB
+ \X@ParShapeCountA
+}
+\def\X@ParShapeB{%
+ \ifnum\X@ParShapeCountA = 0
+ \let\@XParShapeNext = \X@ParShapeD
+ \else
+ \advance\X@ParShapeCountA by -1
+ \let\@XParShapeNext = \X@ParShapeC
+ \fi
+ \@XParShapeNext
+}
+\def\X@ParShapeD{%
+ \parshape = \X@ParShapeCountC\X@ParShapeCollect
+}
+\def\X@ParShapeC #1 #2 #3 #4 #5 {%
+ \message{\string\X@ParShapeC: #1, #2, #3, #4, #5}%
+ \X@ParShapeDimenA = #2%
+ \X@ParShapeDimenB = #4%
+ \DoLoop{\X@ParShapeCountB}{1}{1}{#1}%
+ {%
+ \edef\X@ParShapeCollect{%
+ \space
+ \X@ParShapeCollect
+ \the\X@ParShapeDimenA
+ \space
+ \the\X@ParShapeDimenB
+ \space
+ }%
+ \advance\X@ParShapeCountC by 1
+ \advance\X@ParShapeDimenA by #3\relax
+ \advance\X@ParShapeDimenB by #5\relax
+ }%
+ \X@ParShapeB
+}
+\catcode`\@ = 12
+\NameDef{@InputD-x-parsh.tip}{}
+\newif\ifInputDVerbose
+\InputDVerbosefalse
+\catcode`\@ = 11
+\newif\if@InputDList
+\@InputDListfalse
+\def\@InputDPrefix{@InputD-}
+\NameDef{\@InputDPrefix namedef.tip}{}
+\def\InputD #1{%
+ \if\NameDefinedConditional{\@InputDPrefix #1}%
+ \ifInputDVerbose
+ \wlog{\string\InputD: file "#1" was read-in before.}%
+ \fi
+ \else
+ \NameDef{\@InputDPrefix #1}{}%
+ \input #1
+ \if@InputDList
+ \immediate\write\@InputDStream{#1}%
+ \fi
+ \fi
+}
+\catcode`\@ = 12
+\dump