amstexl.tex
% AMSTEXL.TEX   VERSION 2.0
% Copyright (C) 1990, 1991 American Mathematical Society
% All rights reserved.
\catcode`\@=11
\ifx\amstexloaded@\relax\catcode`\@=\active
 \endinput\else\let\amstexloaded@\relax\fi
\def\W@{\immediate\write\sixt@@n}
\def\CR@{\W@{}\W@{AmS-TeX - Version 2.0L\space\space[LamS-TeX subset]}\W@{}
\W@{COPYRIGHT 1985, 1990 - AMERICAN MATHEMATICAL SOCIETY}
\W@{Use of this macro package is not restricted provided}
\W@{each use is acknowledged upon publication.}\W@{}}
\CR@
\everyjob{\CR@}
\toksdef\toks@@=2
\long\def\rightappend@#1\to#2{\toks@{\\{#1}}\toks@@\expandafter{#2}%
 \xdef#2{\the\toks@@\the\toks@}\toks@{}\toks@@{}}
\def\alloc@#1#2#3#4#5{\global\advance\count1#1by\@ne
 \ch@ck#1#4#2\allocationnumber=\count1#1
 \global#3#5=\allocationnumber}
\newcount\count@@
\newcount\count@@@
\def\FN@{\futurelet\next}
\def\DN@{\def\next@}
\def\DNii@{\def\nextii@}
\def\RIfM@{\relax\ifmmode}
\def\RIfMIfI@{\relax\ifmmode\ifinner}
\def\setboxz@h{\setbox\z@\hbox}
\def\wdz@{\wd\z@}
\def\boxz@{\box\z@}
\def\height{height}
\def\width{width}
\def\depth{depth}
\def\iterate{\body\expandafter\iterate\else\fi}
\newlinechar=`\^^J
\newhelp\defaulthelp@{Sorry, I already gave what help I could...^^J
Maybe you should try asking a human?^^J
An error might have occurred before I noticed any problems.^^J
``If all else fails, read the instructions.''}
\def\eat@#1{}
\def\space@.{\futurelet\space@\relax}
\space@. %
\newhelp\athelp@
{Only certain combinations beginning with @ make sense to me.^^J
Perhaps you wanted \string\@ for a printed @?^^J
I've ignored the character or group after @.}
\def\atdef@#1{\expandafter\def\csname #1@at\endcsname}
\newhelp\defahelp@{If you typed \string\define\space cs instead of
\string\define\string\cs\space^^J
I've substituted an inaccessible control sequence so that your^^J
definition will be completed without mixing me up too badly.^^J
If you typed \string\define{\string\cs} the inaccessible control sequence^^J
was defined to be \string\cs, and the rest of your^^J
definition appears as input.}
\newhelp\defbhelp@{I've ignored your definition, because it might^^J
conflict with other uses that are important to me.}
\def\define{\FN@\define@}
\def\define@{\ifcat\noexpand\next\relax
 \expandafter\define@@\else\errhelp\defahelp@
 \err@{\noexpand\define must be followed by a control
 sequence}\expandafter\def\expandafter\nextii@\fi}
\def\undefined@@@@@@@@@@{}
\def\preloaded@@@@@@@@@@{}
\def\next@@@@@@@@@@{}
\def\define@@#1{\ifx#1\relax\errhelp\defbhelp@
 \err@{\noexpand#1is already defined}\DN@{\DNii@}\else
 \expandafter\ifx\csname\expandafter\eat@\string
 #1@@@@@@@@@@\endcsname\undefined@@@@@@@@@@\errhelp\defbhelp@
 \err@{\noexpand#1can't be defined}\DN@{\DNii@}\else
 \expandafter\ifx\csname\expandafter\eat@\string#1\endcsname\relax
 \global\let#1\undefined\DN@{\def#1}\else\errhelp\defbhelp@
 \err@{\noexpand#1is already defined}\DN@{\DNii@}\fi
 \fi\fi\next@}
\let\redefine\def
\def\predefine#1#2{\let#1#2}
\def\undefine#1{\let#1\undefined}
\def\tie{\unskip\nobreak\ }
\let\graveaccent\`
\let\acuteaccent\'
\let\tildeaccent\~
\let\hataccent\^
\let\underscore\_
\let\B\=
\let\D\.
\let\ic@\/
\def\/{\unskip\ic@}
\def\textfonti{\the\textfont\@ne}
\def\t#1#2{{\edef\next@{\the\font}\textfonti\accent"7F \next@#1#2}}
\def~{\unskip\nobreak\ \ignorespaces}
\def\.{.\spacefactor\@m}
\atdef@;{\leavevmode\null;}
\atdef@:{\leavevmode\null:}
\atdef@?{\leavevmode\null?}
\def\@{\char64 }
\atdef@-{\leavevmode
 \DN@{\ifx\next-\DN@-{\FN@\nextii@}\else
  \DN@{\leavevmode\hbox{-}}\fi\next@}%
 \DNii@{\ifx\next-\DN@-{\leavevmode\hbox{---}}\else
  \DN@{\leavevmode\hbox{--}}\fi\next@}%
 \FN@\next@}
\def\srdr@{\kern.16667em}
\def\drsr@{\kern.02778em}
\def\sldl@{\kern.02778em}
\def\dlsl@{\kern.16667em}
\def\textfontii{\the\textfont\tw@}
\def\lbrace@{\delimiter"4266308 }
\def\rbrace@{\delimiter"5267309 }
\def\{{\RIfM@\lbrace@\else{\textfontii f}\spacefactor\@m\fi}
\def\}{\RIfM@\rbrace@\else
 \let\@sf\empty\ifhmode\edef\@sf{\spacefactor\the\spacefactor}\fi
 {\textfontii g}\@sf\relax\fi}
\let\lbrace\{
\let\rbrace\}
\def\AmSTeX{{\textfontii A}\kern-.1667em\lower.5ex\hbox
 {\textfontii M}\kern-.125em{\textfontii S}-\TeX}
\def\vmodeerr@#1{\Err@{\noexpand#1not allowed between paragraphs}}
\def\mathmodeerr@#1{\Err@{\noexpand#1not allowed in math mode}}
\def\slash{\unskip/\penalty\exhyphenpenalty}
\newskip\saveskip@
\def\dmatherr@#1{\Err@{\noexpand#1not allowed in display math mode}}
\def\nondmatherr@#1{\Err@{\noexpand#1not allowed in non-display math
 mode}}
\def\onlydmatherr@#1{\Err@{\noexpand#1allowed only in display math mode}}
\def\nonmatherr@#1{\Err@{\noexpand#1allowed only in math mode}}
\def\mathbreak{\RIfMIfI@\break\else
 \dmatherr@\mathbreak\fi\else\nonmatherr@\mathbreak\fi}
\def\nomathbreak{\RIfMIfI@\nobreak\else
 \dmatherr@\nomathbreak\fi\else\nonmatherr@\nomathbreak\fi}
\def\allowmathbreak{\RIfMIfI@\allowbreak\else
 \dmatherr@\allowmathbreak\fi\else\nonmatherr@\allowmathbreak\fi}
\def\pagebreak{\RIfM@
 \ifinner\nondmatherr@\pagebreak\else\postdisplaypenalty-\@M\fi
 \else\ifvmode\removelastskip\break\else\vadjust{\break}\fi\fi}
\def\nopagebreak{\RIfM@
 \ifinner\nondmatherr@\nopagebreak\else\postdisplaypenalty\@M\fi
 \else\ifvmode\nobreak\else\vadjust{\nobreak}\fi\fi}
\def\nonvmodeerr@#1{\Err@{\noexpand#1not allowed within a paragraph
 or in math}}
\def\vnonvmode@#1#2{\DNii@{\ifx\next\par\DN@{#1}\else
 \DN@{#2}\fi\next@}%
 \ifvmode\DN@{#1}\else
 \DN@{\FN@\nextii@}\fi\next@}
\def\newpage{\vnonvmode@{\vfill\break}{\nonvmodeerr@\newpage}}
\def\smallpagebreak{\vnonvmode@\smallbreak{\nonvmodeerr@\smallpagebreak}}
\def\medpagebreak{\vnonvmode@\medbreak{\nonvmodeerr@\medpagebreak}}
\def\bigpagebreak{\vnonvmode@\bigbreak{\nonvmodeerr@\bigpagebreak}}
\def\NoBlackBoxes{\global\overfullrule\z@}
\def\BlackBoxes{\global\overfullrule5\p@}
\def\Invalid@#1{\def#1{\Err@{\Invalid@@\string#1}}}
\def\Invalid@@{Invalid use of }
\def\newcodes@{\catcode`\\=12 \catcode`\{=12 \catcode`\}=12 \catcode`\#=12
 \catcode`\%=12\relax}
\def\oldcodes@{\catcode`\\=0 \catcode`\{=1 \catcode`\}=2 \catcode`\#=6
 \catcode`\%=14\relax}
\def\comment{\newcodes@\endlinechar=10 \comment@}
{\lccode`\0=`\\
\lowercase{\gdef\comment@#1^^J{\comment@@#10endcomment\comment@@@}%
\gdef\comment@@#10endcomment{\FN@\comment@@@}%
\gdef\comment@@@#1\comment@@@{\ifx\next\comment@@@\let\next@\comment@
 \else\def\next@{\oldcodes@\endlinechar=`\^^M\relax}%
 \fi\next@}}}
\def\pr@m@s{\ifx'\next\DN@##1{\prim@s}\else\let\next@\egroup\fi\next@}
\def\prime{{\null\prime@\null}}
\mathchardef\prime@="0230
\let\dsize\displaystyle
\let\tsize\textstyle
\let\ssize\scriptstyle
\let\sssize\scriptscriptstyle
\def\,{\RIfM@\mskip\thinmuskip\relax\else\kern.16667em\fi}
\def\!{\RIfM@\mskip-\thinmuskip\relax\else\kern-.16667em\fi}
\let\thinspace\,
\let\negthinspace\!
\def\medspace{\RIfM@\mskip\medmuskip\relax\else\kern.222222em\fi}
\def\negmedspace{\RIfM@\mskip-\medmuskip\relax\else\kern-.222222em\fi}
\def\thickspace{\RIfM@\mskip\thickmuskip\relax\else\kern.27777em\fi}
\let\;\thickspace
\def\negthickspace{\RIfM@\mskip-\thickmuskip\relax\else
 \kern-.27777em\fi}
\atdef@,{\RIfM@\mskip.1\thinmuskip\else\leavevmode\null,\fi}
\atdef@!{\RIfM@\mskip-.1\thinmuskip\else\leavevmode\null!\fi}
\atdef@.{\leavevmode.\spacefactor3000 }
\def\and{\DOTSB\;\mathchar"3026 \;}
\def\implies{\DOTSB\;\Longrightarrow\;}
\def\impliedby{\DOTSB\;\Longleftarrow\;}
\def\frac#1#2{{#1\over#2}}
\def\dfrac#1#2{{\displaystyle{#1\over#2}}}
\def\tfrac#1#2{{\textstyle{#1\over#2}}}
\newdimen\ex@
\ex@.2326ex
\Invalid@\thickness
\def\thickfrac{\DN@{\ifx\next\thickness\let\next@\nextii@\else
 \DN@{\nextii@\thickness1}\fi\next@}%
 \DNii@\thickness##1##2##3{{##2\above##1\ex@##3}}%
 \FN@\next@}
\def\fracwithdelims#1#2#3#4{{#3\overwithdelims#1#2#4}}
\def\thickfracwithdelims#1#2{\def\ldelim@{#1}\def\rdelim@{#2}%
 \DN@{\ifx\next\thickness\let\next@\nextii@\else
 \DN@{\nextii@\thickness1}\fi\next@}%
 \DNii@\thickness##1##2##3{{##2\abovewithdelims
 \ldelim@\rdelim@##1\ex@##3}}%
 \FN@\next@}
\def\binom#1#2{{#1\choose#2}}
\def\dbinom#1#2{{\displaystyle{#1\choose#2}}}
\def\tbinom#1#2{{\textstyle{#1\choose#2}}}
\def\:{\nobreak\hskip.1111em\mathpunct{}\nonscript\mkern-\thinmuskip{:}\hskip
 .3333emplus.0555em\relax}
\def\snug{\unskip\kern-\mathsurround}
\def\topsmash{\top@true\bot@false\smash@}
\def\botsmash{\top@false\bot@true\smash@}
\newif\iftop@
\newif\ifbot@
\def\smash{\top@true\bot@true\smash@}
\def\smash@{\RIfM@\expandafter\mathpalette\expandafter\mathsm@sh\else
 \expandafter\makesm@sh\fi}
\def\finsm@sh{\iftop@\ht\z@\z@\fi\ifbot@\dp\z@\z@\fi\leavevmode\boxz@}
\def\LimitsOnSums{\global\let\slimits@\displaylimits}
\def\NoLimitsOnSums{\global\let\slimits@\nolimits}
\LimitsOnSums
\mathchardef\coprod@="1360       \def\coprod{\DOTSB\coprod@\slimits@}
\mathchardef\bigvee@="1357       \def\bigvee{\DOTSB\bigvee@\slimits@}
\mathchardef\bigwedge@="1356     \def\bigwedge{\DOTSB\bigwedge@\slimits@}
\mathchardef\biguplus@="1355     \def\biguplus{\DOTSB\biguplus@\slimits@}
\mathchardef\bigcap@="1354       \def\bigcap{\DOTSB\bigcap@\slimits@}
\mathchardef\bigcup@="1353       \def\bigcup{\DOTSB\bigcup@\slimits@}
\mathchardef\prod@="1351         \def\prod{\DOTSB\prod@\slimits@}
\mathchardef\sum@="1350          \def\sum{\DOTSB\sum@\slimits@}
\mathchardef\bigotimes@="134E    \def\bigotimes{\DOTSB\bigotimes@\slimits@}
\mathchardef\bigoplus@="134C     \def\bigoplus{\DOTSB\bigoplus@\slimits@}
\mathchardef\bigodot@="134A      \def\bigodot{\DOTSB\bigodot@\slimits@}
\mathchardef\bigsqcup@="1346     \def\bigsqcup{\DOTSB\bigsqcup@\slimits@}
\def\LimitsOnInts{\global\let\ilimits@\displaylimits}
\def\NoLimitsOnInts{\global\let\ilimits@\nolimits}
\NoLimitsOnInts
\def\int{\DOTSI\intop\ilimits@}
\def\oint{\DOTSI\ointop\ilimits@}
\def\intic@{\mathchoice{\hskip.5em}{\hskip.4em}{\hskip.4em}{\hskip.4em}}
\def\negintic@{\mathchoice
 {\hskip-.5em}{\hskip-.4em}{\hskip-.4em}{\hskip-.4em}}
\def\intkern@{\mathchoice{\!\!\!}{\!\!}{\!\!}{\!\!}}
\def\intdots@{\mathchoice{\plaincdots@}
 {{\cdotp}\mkern1.5mu{\cdotp}\mkern1.5mu{\cdotp}}
 {{\cdotp}\mkern1mu{\cdotp}\mkern1mu{\cdotp}}
 {{\cdotp}\mkern1mu{\cdotp}\mkern1mu{\cdotp}}}
\newcount\intno@
\def\iint{\DOTSI\intno@\tw@\FN@\ints@}
\def\iiint{\DOTSI\intno@\thr@@\FN@\ints@}
\def\iiiint{\DOTSI\intno@4 \FN@\ints@}
\def\idotsint{\DOTSI\intno@\z@\FN@\ints@}
\def\ints@{\findlimits@\ints@@}
\newif\iflimtoken@
\newif\iflimits@
\def\findlimits@{\limtoken@true\ifx\next\limits\limits@true
 \else\ifx\next\nolimits\limits@false\else
 \limtoken@false\ifx\ilimits@\nolimits\limits@false\else
 \ifinner\limits@false\else\limits@true\fi\fi\fi\fi}
\def\multint@{\int\ifnum\intno@=\z@\intdots@
 \else\intkern@\fi
 \ifnum\intno@>\tw@\int\intkern@\fi
 \ifnum\intno@>\thr@@\int\intkern@\fi
 \int}
\def\multintlimits@{\intop\ifnum\intno@=\z@\intdots@\else\intkern@\fi
 \ifnum\intno@>\tw@\intop\intkern@\fi
 \ifnum\intno@>\thr@@\intop\intkern@\fi\intop}
\def\ints@@{\iflimtoken@
 \def\ints@@@{\iflimits@\negintic@\mathop{\intic@\multintlimits@}\limits
  \else\multint@\nolimits\fi
  \eat@}
 \else
 \def\ints@@@{\iflimits@\negintic@
  \mathop{\intic@\multintlimits@}\limits\else
  \multint@\nolimits\fi}\fi\ints@@@}
\def\LimitsOnNames{\global\let\nlimits@\displaylimits}
\def\NoLimitsOnNames{\global\let\nlimits@\nolimits@}
\LimitsOnNames
\def\nolimits@{\DN@{\ifx\next\limits\DN@\limits{\nolimits}\else
  \let\next@\nolimits\fi\next@}%
 \FN@\next@}
\def\newmcodes@{\mathcode`\'="0027 \mathcode`\*="002A \mathcode`\.="613A
 \mathcode`\-="002D \mathcode`\/="002F \mathcode`\:="603A }
\def\operatorname#1{\mathop{\newmcodes@\kern\z@\fam\z@#1}\nolimits@}
\def\operatornamewithlimits#1{\mathop{\newmcodes@\kern\z@\fam\z@#1}\nlimits@}
\def\qopname@#1{\mathop{\fam\z@#1}\nolimits@}
\def\qopnamewl@#1{\mathop{\fam\z@#1}\nlimits@}
\def\arccos{\qopname@{arccos}}
\def\arcsin{\qopname@{arcsin}}
\def\arctan{\qopname@{arctan}}
\def\arg{\qopname@{arg}}
\def\cos{\qopname@{cos}}
\def\cosh{\qopname@{cosh}}
\def\cot{\qopname@{cot}}
\def\coth{\qopname@{coth}}
\def\csc{\qopname@{csc}}
\def\deg{\qopname@{deg}}
\def\det{\qopnamewl@{det}}
\def\dim{\qopname@{dim}}
\def\exp{\qopname@{exp}}
\def\gcd{\qopnamewl@{gcd}}
\def\hom{\qopname@{hom}}
\def\inf{\qopnamewl@{inf}}
\def\injlim{\qopnamewl@{inj\,lim}}
\def\ker{\qopname@{ker}}
\def\lg{\qopname@{lg}}
\def\lim{\qopnamewl@{lim}}
\def\liminf{\qopnamewl@{lim\,inf}}
\def\limsup{\qopnamewl@{lim\,sup}}
\def\ln{\qopname@{ln}}
\def\log{\qopname@{log}}
\def\max{\qopnamewl@{max}}
\def\min{\qopnamewl@{min}}
\def\Pr{\qopnamewl@{Pr}}
\def\projlim{\qopnamewl@{proj\,lim}}
\def\sec{\qopname@{sec}}
\def\sin{\qopname@{sin}}
\def\sinh{\qopname@{sinh}}
\def\sup{\qopnamewl@{sup}}
\def\tan{\qopname@{tan}}
\def\tanh{\qopname@{tanh}}
\def\varinjlim{\mathop{\vtop{\ialign{##\crcr
 \hfil\rm lim\hfil\crcr\noalign{\nointerlineskip}\rightarrowfill\crcr
 \noalign{\nointerlineskip\kern-\ex@}\crcr}}}}
\def\varprojlim{\mathop{\vtop{\ialign{##\crcr
 \hfil\rm lim\hfil\crcr\noalign{\nointerlineskip}\leftarrowfill\crcr
 \noalign{\nointerlineskip\kern-\ex@}\crcr}}}}
\def\varliminf{\mathop{\underline{\vrule\height\z@\depth.2ex\width\z@
 \hbox{\rm lim}}}}
\def\varlimsup{\mathop{\overline{\hbox{\rm lim}}}}
\newdimen\buffer@
\buffer@\fontdimen13 \tenex
\newdimen\buffer
\buffer\buffer@
\def\ChangeBuffer#1{\fontdimen13 \tenex#1\relax
 \global\buffer\fontdimen13 \tenex}
\def\ResetBuffer{\fontdimen13 \tenex\buffer@\global\buffer\buffer@}
\def\shave#1{\mathop{\hbox{$\m@th\fontdimen13 \tenex\z@
 \displaystyle{#1}$}}\fontdimen13 \tenex\buffer}
\def\topshave#1{\mathop{\topsmash{\displaystyle{#1}}\vphantom{\shave{#1}}}}
\def\botshave#1{\mathop{\botsmash{\displaystyle{#1}}\vphantom{\shave{#1}}}}
\Invalid@\\
\def\Let@{\relax\iffalse{\fi\let\\\cr\iffalse}\fi}
\Invalid@\vspace
\def\vspace@{\def\vspace##1{\crcr\noalign{\vskip##1\relax}}}
\def\multilimits@{\bgroup\vspace@\Let@
 \baselineskip\fontdimen10 \scriptfont\tw@
 \advance\baselineskip\fontdimen12 \scriptfont\tw@
 \lineskip\thr@@\fontdimen8 \scriptfont\thr@@
 \lineskiplimit\lineskip
 \vbox\bgroup\ialign\bgroup\hfil$\m@th\scriptstyle{##}$\hfil\crcr}
\def\Sb{_\multilimits@}
\def\endSb{\crcr\egroup\egroup\egroup}
\def\Sp{^\multilimits@}
\let\endSp\endSb
\def\spreadlines#1{\RIfMIfI@\onlydmatherr@\spreadlines\else
 \openup#1\relax\fi\else\onlydmatherr@\spreadlines\fi}
\def\Mathstrut@{\copy\Mathstrutbox@}
\newbox\Mathstrutbox@
\setbox\Mathstrutbox@\null
\setbox\z@\hbox{$\m@th($}
\ht\Mathstrutbox@\ht\z@
\dp\Mathstrutbox@\dp\z@
\newdimen\spreadmlines@
\def\spreadmatrixlines#1{\RIfMIfI@
 \onlydmatherr@\spreadmatrixlines\else
 \spreadmlines@#1\relax\fi\else\onlydmatherr@\spreadmatrixlines\fi}
\def\matrix{\null\,\vcenter\bgroup\Let@\vspace@
 \normalbaselines\openup\spreadmlines@\ialign
 \bgroup\hfil$\m@th##$\hfil&&\quad\hfil$\m@th##$\hfil\crcr
 \Mathstrut@\crcr\noalign{\kern-\baselineskip}}
\def\endmatrix{\crcr\Mathstrut@\crcr\noalign{\kern-\baselineskip}\egroup
 \egroup\,}
\def\format{\crcr\egroup\iffalse{\fi\ifnum`}=0 \fi\format@}
\newtoks\hashtoks@
\hashtoks@{#}
\def\format@#1\\{\def\preamble@{#1}%
 \def\l{$\m@th\the\hashtoks@$\hfil}%
 \def\c{\hfil$\m@th\the\hashtoks@$\hfil}%
 \def\r{\hfil$\m@th\the\hashtoks@$}%
 \edef\Preamble@{\preamble@}\ifnum`{=0 \fi\iffalse}\fi
 \ialign\bgroup\span\Preamble@\crcr}
\def\smallmatrix{\null\,\vcenter\bgroup\vspace@\Let@
 \baselineskip9\ex@\lineskip\ex@
 \ialign\bgroup\hfil$\m@th\scriptstyle{##}$\hfil&&\thickspace\hfil
 $\m@th\scriptstyle{##}$\hfil\crcr}
\def\endsmallmatrix{\crcr\egroup\egroup\,}
\def\pmatrix{\left(\matrix}
\def\endpmatrix{\endmatrix\right)}
\def\bmatrix{\left[\matrix}
\def\endbmatrix{\endmatrix\right]}
\def\vmatrix{\left|\matrix}
\def\endvmatrix{\endmatrix\right|}
\def\Vmatrix{\left\|\matrix}
\def\endVmatrix{\endmatrix\right\|}
\def\hdots{\mathinner{\ldotp\ldotp\ldotp}}
\newmuskip\dotsspace@
\dotsspace@1.5mu
\def\strip@#1 {#1}
\def\spacehdots#1\for#2{\multispan{#2}\xleaders
 \hbox{$\m@th\mkern\strip@#1 \dotsspace@.\mkern\strip@#1 \dotsspace@$}\hfill}
\def\hdotsfor#1{\spacehdots\@ne\for{#1}}
\def\multispan@#1{\omit\mscount#1\unskip\loop\ifnum\mscount>\@ne\sp@n\repeat}
\def\spaceinnerhdots#1\for#2\after#3{\multispan@{\strip@#2 }#3\xleaders
 \hbox{$\m@th\mkern\strip@#1 \dotsspace@.\mkern\strip@#1 \dotsspace@$}\hfill}
\def\innerhdotsfor#1\after#2{\spaceinnerhdots\@ne\for#1\after{#2}}
\def\cases{\bgroup\spreadmlines@\jot\left\{\,\matrix\format\l&\quad\l\\}
\def\endcases{\endmatrix\right.\egroup}
\newif\ifinany@
\newif\ifinalign@
\newif\ifingather@
\def\strut@{\copy\strutbox@}
\newbox\strutbox@
\setbox\strutbox@\hbox{\vrule\height8\p@\depth3\p@\width\z@}
\def\topaligned{\null\,\vtop\aligned@}
\def\botaligned{\null\,\vbox\aligned@}
\def\aligned{\null\,\vcenter\aligned@}
\def\aligned@{\bgroup\vspace@\Let@
 \ifinany@\else\openup\jot\fi\ialign
 \bgroup\hfil\strut@$\m@th\displaystyle{##}$&
 $\m@th\displaystyle{{}##}$\hfil\crcr}
\def\endaligned{\crcr\egroup\egroup}
\let\endtopaligned\endaligned
\let\endbotaligned\endaligned
\def\alignedat#1{\null\,\vcenter\bgroup\doat@{#1}\vspace@\Let@
 \ifinany@\else\openup\jot\fi\ialign\bgroup\span\preamble@@\crcr}
\newcount\atcount@
\def\doat@#1{\toks@{\hfil\strut@$\m@th
 \displaystyle{\the\hashtoks@}$&$\m@th\displaystyle
 {{}\the\hashtoks@}$\hfil}%
 \atcount@#1\relax\advance\atcount@\m@ne
 \loop\ifnum\atcount@>\z@\toks@=\expandafter{\the\toks@&\hfil$\m@th
 \displaystyle{\the\hashtoks@}$&$\m@th
 \displaystyle{{}\the\hashtoks@}$\hfil}\advance\atcount@\m@ne\repeat
 \edef\preamble@{\the\toks@}\edef\preamble@@{\preamble@}}
\let\endalignedat\endaligned
\def\gathered{\null\,\vcenter\bgroup\vspace@\Let@
 \ifinany@\else\openup\jot\fi\ialign
 \bgroup\hfil\strut@$\m@th\displaystyle{##}$\hfil\crcr}
\def\endgathered{\crcr\egroup\egroup}
\newif\iftagsleft@
\def\TagsOnLeft{\global\tagsleft@true}
\def\TagsOnRight{\global\tagsleft@false}
\TagsOnLeft
\newif\ifmathtags@
\def\TagsAsMath{\global\mathtags@true}
\def\TagsAsText{\global\mathtags@false}
\TagsAsText
\def\tag#1$${\iftagsleft@\leqno\else\eqno\fi\maketag@#1\maketag@$$}
\interdisplaylinepenalty\@M
\def\allowdisplaybreaks{\RIfMIfI@
 \onlydmatherr@\allowdisplaybreaks\else
 \interdisplaylinepenalty\z@\fi\else\onlydmatherr@\allowdisplaybreaks\fi}
\Invalid@\allowdisplaybreak
\Invalid@\displaybreak
\Invalid@\intertext
\def\allowdisplaybreak@{\def\allowdisplaybreak{\crcr\noalign{\allowbreak}}}
\def\displaybreak@{\def\displaybreak{\crcr\noalign{\break}}}
\def\intertext@{\def\intertext##1{\crcr\noalign{\vskip\belowdisplayskip
 \vbox{\normalbaselines\noindent##1}\vskip\abovedisplayskip}}}
\newskip\centering@
\centering@\z@ plus\@m\p@
\def\align{\relax\ifingather@\DN@{\csname align (in
  \expandafter\eat@\string\\gather)\endcsname}\else
 \ifmmode\ifinner\DN@{\onlydmatherr@\align}\else
  \let\next@\align@\fi
 \else\DN@{\onlydmatherr@\align}\fi\fi\next@}
\newhelp\andhelp@
{An extra & here is so disastrous that you should probably exit^^J
and fix things up.}
\newif\iftag@
\newcount\and@
\def\Tag@{\iftag@\else\errhelp\andhelp@\err@{Extra & on this line}\fi}
\newdimen\lwidth@
\newdimen\rwidth@
\newdimen\maxlwidth@
\newdimen\maxrwidth@
\newdimen\totwidth@
\def\displ@y@{\global\dt@ptrue\openup\jot
 \everycr{\noalign{\global\tag@false\global\and@\z@\ifdt@p\global\dt@pfalse
 \vskip-\lineskiplimit\vskip\normallineskiplimit\else
 \penalty\interdisplaylinepenalty\fi}}}
\def\black@#1{\noalign{\ifdim#1>\displaywidth
 \dimen@\prevdepth\nointerlineskip
 \vskip-\ht\strutbox@\vskip-\dp\strutbox@
 \vbox{\noindent\hbox to#1{\strut@\hfill}}%
 \prevdepth\dimen@
 \fi}}
\newdimen\lineht@
\expandafter\def\csname align (in \expandafter\eat@\string\\gather)\endcsname
  #1\endalign{\vcenter{\align@#1\endalign}}
\Invalid@\endalign
\newif\ifxat@
\def\alignat{\RIfMIfI@\DN@{\onlydmatherr@\alignat}\else
 \DN@{\csname alignat \endcsname}\fi\else
 \DN@{\onlydmatherr@\alignat}\fi\next@}
\newif\ifmeasuring@
\newbox\savealignat@
\Invalid@\endalignat
\def\xalignat{\RIfMIfI@
 \DN@{\onlydmatherr@\xalignat}\else
 \DN@{\csname xalignat \endcsname}\fi\else
 \DN@{\onlydmatherr@\xalignat}\fi\next@}
\Invalid@\endxalignat
\def\xxalignat{\RIfMIfI@
 \DN@{\onlydmatherr@\xxalignat}\else\DN@{\csname xxalignat
  \endcsname}\fi\else
 \DN@{\onlydmatherr@\xxalignat}\fi\next@}
\expandafter\def\csname xxalignat \endcsname#1#2\endxxalignat{\inany@true
 \vspace@\allowdisplaybreak@\displaybreak@\intertext@
 \displ@y\setbox\savealignat@\hbox{$\m@th\displaystyle\Let@
 \xxattag@{#1}\vbox{\halign{\span\preamble@@\crcr#2\crcr}}$}%
 \Let@\xxattag@{#1}\tabskip\z@skip\halign to\displaywidth
 {\span\preamble@@\crcr#2\crcr\black@{\wd\savealignat@}}}
\def\xxattag@#1{\toks@{\tabskip\z@skip\hfil\strut@
 $\m@th\displaystyle{\the\hashtoks@}$&%
 $\m@th\displaystyle{{}\the\hashtoks@}$\hfil\tabskip\centering@&}%
 \atcount@#1\relax\advance\atcount@\m@ne\loop\ifnum\atcount@>\z@
 \toks@=\expandafter{\the\toks@&\hfil$\m@th\displaystyle{\the\hashtoks@}$%
  \tabskip\z@skip&$\m@th\displaystyle{{}\the\hashtoks@}$\hfil
  \tabskip\centering@}\advance\atcount@\m@ne\repeat
 \edef\preamble@{\the\toks@\tabskip\z@skip}\edef\preamble@@{\preamble@}}
\Invalid@\endxxalignat
\newdimen\gwidth@
\newdimen\gmaxwidth@
\def\gmeasure@#1\endgather{\global\gwidth@\z@\global\gmaxwidth@\z@
 \setbox\z@\vbox{\Let@
 \halign{\setboxz@h{$\m@th\displaystyle{##}$}\global\gwidth@\wdz@
 \ifdim\gwidth@>\gmaxwidth@\global\gmaxwidth@\gwidth@\fi
 &\eat@{##}\crcr#1\crcr}}}
\expandafter\def\csname gather \space\endcsname#1\endgather
 {\gmeasure@#1\endgather\tabskip\centering@
 \halign to\displaywidth{\hfil\strut@\setboxz@h{$\m@th\displaystyle{##}$}%
 \global\gwidth@\wdz@\boxz@\hfil&
 \setboxz@h{\strut@{\maketag@##\maketag@}}%
 \dimen@\displaywidth\advance\dimen@-\gwidth@
 \ifdim\dimen@>\tw@\wdz@\llap{\boxz@}\else
 \llap{\vtop{\normalbaselines\null\boxz@}}\fi
 \tabskip\z@skip\crcr#1\crcr\black@\gmaxwidth@}}
\newdimen\glineht@
\expandafter\def\csname gather \endcsname#1\endgather{\gmeasure@#1\endgather
 \ifdim\gmaxwidth@>\displaywidth\let\gdisplaywidth@\gmaxwidth@\else
 \let\gdisplaywidth@\displaywidth\fi\tabskip\centering@\halign to\displaywidth
 {\hfil\strut@\setboxz@h{$\m@th\displaystyle{##}$}%
 \global\gwidth@\wdz@\global\glineht@\ht\z@\boxz@\hfil&\kern-\gdisplaywidth@
 \setboxz@h{\strut@{\maketag@##\maketag@}}%
 \dimen@\displaywidth\advance\dimen@-\gwidth@
 \ifdim\dimen@>\tw@\wdz@\rlap{\boxz@}\else
 \rlap{\vbox{\normalbaselines\boxz@\vbox to\glineht@{}}}\fi
 \tabskip\gdisplaywidth@\crcr#1\crcr\black@\gmaxwidth@}}
\newif\ifctagsplit@
\def\CenteredTagsOnSplits{\global\ctagsplit@true}
\def\TopOrBottomTagsOnSplits{\global\ctagsplit@false}
\TopOrBottomTagsOnSplits
\def\split{\relax\ifinany@\let\next@\insplit@\else
 \ifmmode\ifinner\def\next@{\onlydmatherr@\split}\else
 \let\next@\outsplit@\fi\else
 \def\next@{\onlydmatherr@\split}\fi\fi\next@}
\def\insplit@{\global\setbox9=\vbox\bgroup\vspace@\Let@\ialign\bgroup
 \hfil\strut@$\m@th\displaystyle{##}$&$\m@th\displaystyle{{}##}$\hfill\crcr}
\def\endsplit{\crcr\egroup\egroup\iftagsleft@\expandafter\lendsplit@\else
 \expandafter\rendsplit@\fi}
\def\rendsplit@{\global\setbox\@ne\vbox
 {\unvcopy9 \global\setbox\thr@@\lastbox\unskip}%
 \setboxz@h{\unhcopy\thr@@\unskip\global\setbox\thr@@\lastbox
  \unskip\global\setbox5=\lastbox}%
 \global\setbox7=\hbox{\unhbox\thr@@\unskip}%
 \ifinalign@\ifctagsplit@
  \gdef\split@{\hbox to\wd5 {}&
   \vcenter{\vbox{\moveleft\wd5 \box9}}}%
 \else\gdef\split@{&\vbox{\moveleft\wd5 \box\@ne}\crcr
  \box5 &\box7}\fi
 \else
  \ifctagsplit@\gdef\split@{\vcenter{\box9}}\else
  \gdef\split@{\box\@ne\crcr\hbox{\box\thr@@\box7}}\fi
 \fi
 \split@}
\def\lendsplit@{\global\setbox\@ne\vtop{\unvcopy9}%
 \setbox\z@\vbox{\unvcopy9 \global\setbox\thr@@\lastbox}%
 \setboxz@h{\unhcopy\thr@@\unskip\setbox\z@\lastbox
  \unskip\global\setbox\thr@@\lastbox}%
 \ifinalign@\ifctagsplit@
  \gdef\split@{\hbox to\wd\thr@@{}&
  \vcenter{\vbox{\moveleft\wd\thr@@\box\@ne}}}%
  \else
  \gdef\split@{\hbox to\wd\thr@@{}&\vbox{\moveleft\wd\thr@@\box\@ne}}\fi
 \else
  \ifctagsplit@\gdef\split@{\vcenter{\box\@ne}}\else
  \gdef\split@{\box\@ne}\fi
 \fi\split@}
\def\outsplit@#1$${\align\insplit@#1\endalign$$}
\newdimen\multlinegap@
\multlinegap@1em
\newdimen\multlinetaggap@
\multlinetaggap@1em
\def\MultlineGap#1{\global\multlinegap@#1\relax}
\def\multlinegap#1{\RIfMIfI@\onlydmatherr@\multlinegap\else
 \multlinegap@#1\relax\fi\else\onlydmatherr@\multlinegap\fi}
\def\nomultlinegap{\multlinegap{\z@}}
\def\multline{\RIfMIfI@
 \DN@{\onlydmatherr@\multline}\else
 \DN@{\multline@}\fi\else
 \DN@{\onlydmatherr@\multline}\fi\next@}
\newif\iftagin@
\def\multline@#1$${\inany@true\vspace@\allowdisplaybreak@\displaybreak@
 \tagin@{#1}\iftagsleft@\DN@{\multline@l#1$$}\else
 \DN@{\multline@r#1$$}\fi\next@}
\newdimen\mwidth@
\def\rmmeasure@#1\endmultline{%
 \def\shoveleft##1{##1}\def\shoveright##1{##1}%
 \setbox\z@\vbox{\Let@\halign{\setboxz@h
  {$\m@th\@lign\displaystyle{}##$}\global\mwidth@\wdz@
  \crcr#1\crcr}}}
\newdimen\mlineht@
\newif\ifzerocr@
\newif\ifonecr@
\def\lmmeasure@#1\endmultline{\global\zerocr@true\global\onecr@false
 \everycr{\noalign{\ifonecr@\global\onecr@false\fi
  \ifzerocr@\global\zerocr@false\global\onecr@true\fi}}%
  \def\shoveleft##1{##1}\def\shoveright##1{##1}%
 \setbox\z@\vbox{\Let@\halign{\setboxz@h
  {$\m@th\@lign\displaystyle{}##$}\ifonecr@\global\mwidth@\wdz@
  \global\mlineht@\ht\z@\fi\crcr#1\crcr}}}
\newbox\mtagbox@
\newdimen\ltwidth@
\newdimen\rtwidth@
\def\multline@l#1$${\iftagin@\DN@{\lmultline@@#1$$}\else
 \DN@{\setbox\mtagbox@\null\ltwidth@\z@\rtwidth@\z@
  \lmultline@@@#1$$}\fi\next@}
\def\lmultline@@#1\endmultline\tag#2$${%
 \setbox\mtagbox@\hbox{\maketag@#2\maketag@}%
 \lmmeasure@#1\endmultline\dimen@\mwidth@\advance\dimen@\wd\mtagbox@
 \advance\dimen@\multlinetaggap@
 \ifdim\dimen@>\displaywidth\ltwidth@\z@\else\ltwidth@\wd\mtagbox@\fi
 \lmultline@@@#1\endmultline$$}
\def\lmultline@@@{\displ@y
 \def\shoveright##1{##1\hfilneg\hskip\multlinegap@}%
 \def\shoveleft##1{\setboxz@h{$\m@th\displaystyle{}##1$}%
  \setbox\tw@\hbox{$\m@th\displaystyle##1$}%
  \hfilneg
  \iftagin@
   \ifdim\ltwidth@>\z@\hskip\ltwidth@\hskip\multlinetaggap@\fi
  \else\hskip\multlinegap@\fi\hskip.5\wd\tw@\hskip-.5\wdz@##1}%
  \halign\bgroup\Let@\hbox to\displaywidth
   {\strut@$\m@th\displaystyle\hfil{}##\hfil$}\crcr
   \hfilneg
   \iftagin@
    \ifdim\ltwidth@>\z@
     \box\mtagbox@\hskip\multlinetaggap@
    \else
     \rlap{\vbox{\normalbaselines\hbox{\strut@\box\mtagbox@}%
     \vbox to\mlineht@{}}}\fi
   \else\hskip\multlinegap@\fi}
\def\multline@r#1$${\iftagin@\DN@{\rmultline@@#1$$}\else
 \DN@{\setbox\mtagbox@\null\ltwidth@\z@\rtwidth@\z@
  \rmultline@@@#1$$}\fi\next@}
\def\rmultline@@#1\endmultline\tag#2$${\ltwidth@\z@
 \setbox\mtagbox@\hbox{\maketag@#2\maketag@}%
 \rmmeasure@#1\endmultline\dimen@\mwidth@\advance\dimen@\wd\mtagbox@
 \advance\dimen@\multlinetaggap@
 \ifdim\dimen@>\displaywidth\rtwidth@\z@\else\rtwidth@\wd\mtagbox@\fi
 \rmultline@@@#1\endmultline$$}
\def\rmultline@@@{\displ@y
 \def\shoveright##1{##1\hfilneg\iftagin@\ifdim\rtwidth@>\z@
  \hskip\rtwidth@\hskip\multlinetaggap@\fi\else\hskip\multlinegap@\fi}%
 \def\shoveleft##1{\setboxz@h{$\m@th\displaystyle{}##1$}%
  \setbox\tw@\hbox{$\m@th\displaystyle##1$}%
  \hfilneg\hskip\multlinegap@\hskip.5\wd\tw@\hskip-.5\wdz@##1}%
 \halign\bgroup\Let@\hbox to\displaywidth
  {\strut@$\m@th\displaystyle\hfil{}##\hfil$}\crcr
 \hfilneg\hskip\multlinegap@}
\def\endmultline{\iftagsleft@\expandafter\lendmultline@\else
 \expandafter\rendmultline@\fi}
\def\lendmultline@{\hfilneg\hskip\multlinegap@\crcr\egroup}
\def\rendmultline@{\iftagin@
 \ifdim\rtwidth@>\z@
  \hskip\multlinetaggap@\box\mtagbox@
 \else\llap{\vtop{\normalbaselines\null\hbox{\strut@\box\mtagbox@}}}\fi
 \else\hskip\multlinegap@\fi
 \hfilneg\crcr\egroup}
\def\bmod{\mskip-\medmuskip\mkern5mu\mathbin{\fam\z@ mod}\penalty900
 \mkern5mu\mskip-\medmuskip}
\def\pmod#1{\allowbreak\ifinner\mkern8mu\else\mkern18mu\fi
 ({\fam\z@ mod}\,\,#1)}
\def\pod#1{\allowbreak\ifinner\mkern8mu\else\mkern18mu\fi(#1)}
\def\mod#1{\allowbreak\ifinner\mkern12mu\else\mkern18mu\fi{\fam\z@ mod}\,\,#1}
\newcount\cfraccount@
\def\cfrac{\bgroup\bgroup\global\advance\cfraccount@\@ne\strut
 \iffalse{\fi\def\\{\over\displaystyle}\iffalse}\fi}
\def\lcfrac{\bgroup\bgroup\global\advance\cfraccount@\@ne\strut
 \iffalse{\fi\def\\{\hfill\over\displaystyle}\iffalse}\fi}
\def\rcfrac{\bgroup\bgroup\global\advance\cfraccount@\@ne\strut\hfill
 \iffalse{\fi\def\\{\over\displaystyle}\iffalse}\fi}
\def\endcfrac{\gloop@\ifnum\cfraccount@>\z@\global\advance\cfraccount@\m@ne
 \egroup\hskip-\nulldelimiterspace\egroup\repeat}
\def\binrel@#1{\setboxz@h{\thinmuskip0mu
  \medmuskip\m@ne mu\thickmuskip\@ne mu$#1\m@th$}%
 \setbox\tw@\hbox{\thinmuskip0mu\medmuskip\m@ne mu\thickmuskip
  \@ne mu${}#1{}\m@th$}%
 \setbox\tw@\hbox{\hskip\wd\tw@\hskip-\wdz@}}
\def\overset#1\to#2{\binrel@{#2}\ifdim\wd\tw@<\z@
 \mathbin{\mathop{\kern\z@#2}\limits^{#1}}\else\ifdim\wd\tw@>\z@
 \mathrel{\mathop{\kern\z@#2}\limits^{#1}}\else
 {\mathop{\kern\z@#2}\limits^{#1}}{}\fi\fi}
\def\underset#1\to#2{\binrel@{#2}\ifdim\wd\tw@<\z@
 \mathbin{\mathop{\kern\z@#2}\limits_{#1}}\else\ifdim\wd\tw@>\z@
 \mathrel{\mathop{\kern\z@#2}\limits_{#1}}\else
 {\mathop{\kern\z@#2}\limits_{#1}}{}\fi\fi}
\def\oversetbrace#1\to#2{\overbrace{#2}^{#1}}
\def\undersetbrace#1\to#2{\underbrace{#2}_{#1}}
\def\sideset#1\and#2\to#3{%
 \setboxz@h{$\dsize{\vphantom{#3}}#1{#3}\m@th$}%
 \setbox\tw@\hbox{$\dsize{#3}#2\m@th$}%
 \hskip\wdz@\hskip-\wd\tw@\mathop{\hskip\wd\tw@\hskip-\wdz@
  {\vphantom{#3}}#1{#3}#2}}
\def\rightarrowfill@#1{$#1\m@th\mathord-\mkern-6mu\cleaders
 \hbox{$#1\mkern-2mu\mathord-\mkern-2mu$}\hfill
 \mkern-6mu\mathord\rightarrow$}
\def\leftarrowfill@#1{$#1\m@th\mathord\leftarrow\mkern-6mu\cleaders
 \hbox{$#1\mkern-2mu\mathord-\mkern-2mu$}\hfill\mkern-6mu\mathord-$}
\def\leftrightarrowfill@#1{$#1\m@th\mathord\leftarrow\mkern-6mu\cleaders
 \hbox{$#1\mkern-2mu\mathord-\mkern-2mu$}\hfill
 \mkern-6mu\mathord\rightarrow$}
\def\overrightarrow{\mathpalette\overrightarrow@}
\def\overrightarrow@#1#2{\vbox{\ialign{##\crcr\rightarrowfill@#1\crcr
 \noalign{\kern-\ex@\nointerlineskip}$\m@th\hfil#1#2\hfil$\crcr}}}
\let\overarrow\overrightarrow
\def\overleftarrow{\mathpalette\overleftarrow@}
\def\overleftarrow@#1#2{\vbox{\ialign{##\crcr\leftarrowfill@#1\crcr
 \noalign{\kern-\ex@\nointerlineskip}$\m@th\hfil#1#2\hfil$\crcr}}}
\def\overleftrightarrow{\mathpalette\overleftrightarrow@}
\def\overleftrightarrow@#1#2{\vbox{\ialign{##\crcr\leftrightarrowfill@#1\crcr
 \noalign{\kern-\ex@\nointerlineskip}$\m@th\hfil#1#2\hfil$\crcr}}}
\def\underrightarrow{\mathpalette\underrightarrow@}
\def\underrightarrow@#1#2{\vtop{\ialign{##\crcr$\m@th\hfil#1#2\hfil$\crcr
 \noalign{\nointerlineskip}\rightarrowfill@#1\crcr}}}
\let\underarrow\underrightarrow
\def\underleftarrow{\mathpalette\underleftarrow@}
\def\underleftarrow@#1#2{\vtop{\ialign{##\crcr$\m@th\hfil#1#2\hfil$\crcr
 \noalign{\nointerlineskip}\leftarrowfill@#1\crcr}}}
\def\underleftrightarrow{\mathpalette\underleftrightarrow@}
\def\underleftrightarrow@#1#2{\vtop{\ialign{##\crcr$\m@th\hfil#1#2\hfil$\crcr
 \noalign{\nointerlineskip}\leftrightarrowfill@#1\crcr}}}
\let\DOTSI\relax
\let\DOTSB\relax
\let\DOTSX\relax
\newif\ifmath@
{\uccode`7=`\\ \uccode`8=`m \uccode`9=`a \uccode`0=`t \uccode`!=`h
 \uppercase{\gdef\math@#1#2#3#4#5#6\math@{\global\math@false\ifx 7#1\ifx 8#2%
 \ifx 9#3\ifx 0#4\ifx !#5\xdef\meaning@{#6}\global\math@true\fi\fi\fi\fi\fi}}}
\newif\ifmathch@
{\uccode`7=`c \uccode`8=`h \uccode`9=`\"
 \uppercase{\gdef\mathch@#1#2#3#4#5#6\mathch@{\global\mathch@false
  \ifx 7#1\ifx 8#2\ifx 9#5\global\mathch@true\xdef\meaning@{9#6}\fi\fi\fi}}}
\newcount\classnum@
\def\getmathch@#1.#2\getmathch@{\classnum@#1 \divide\classnum@4096
 \ifcase\number\classnum@\or\or\gdef\thedots@{\dotsb@}\or
 \gdef\thedots@{\dotsb@}\fi}
\newif\ifmathbin@
{\uccode`4=`b \uccode`5=`i \uccode`6=`n
 \uppercase{\gdef\mathbin@#1#2#3{%
  \DNii@##1\mathbin@{\ifx\space@\next\global\mathbin@true\fi}%
 \global\mathbin@false\DN@##1\mathbin@{}%
 \ifx 4#1\ifx 5#2\ifx 6#3\DN@{\FN@\nextii@}\fi\fi\fi\next@}}}
\newif\ifmathrel@
{\uccode`4=`r \uccode`5=`e \uccode`6=`l
 \uppercase{\gdef\mathrel@#1#2#3{%
  \DNii@##1\mathrel@{\ifx\space@\next\global\mathrel@true\fi}%
 \global\mathrel@false\DN@##1\mathrel@{}%
 \ifx 4#1\ifx 5#2\ifx 6#3\DN@{\FN@\nextii@}\fi\fi\fi\next@}}}
\newif\ifmacro@
{\uccode`5=`m \uccode`6=`a \uccode`7=`c
 \uppercase{\gdef\macro@#1#2#3#4\macro@{\global\macro@false
  \ifx 5#1\ifx 6#2\ifx 7#3\global\macro@true
  \xdef\meaning@{\macro@@#4\macro@@}\fi\fi\fi}}}
\def\macro@@#1->#2\macro@@{#2}
\newif\ifDOTS@
\newcount\DOTSCASE@
{\uccode`6=`\\ \uccode`7=`D \uccode`8=`O \uccode`9=`T \uccode`0=`S
 \uppercase{\gdef\DOTS@#1#2#3#4#5{\global\DOTS@false\DN@##1\DOTS@{}%
  \ifx 6#1\ifx 7#2\ifx 8#3\ifx 9#4\ifx 0#5\let\next@\DOTS@@\fi\fi\fi\fi\fi
  \next@}}}
{\uccode`3=`B \uccode`4=`I \uccode`5=`X
 \uppercase{\gdef\DOTS@@#1{%
  \DNii@##1\DOTS@{\ifx\space@\next\global\DOTS@true\fi}%
  \DN@{\FN@\nextii@}%
  \ifx 3#1\global\DOTSCASE@\z@\else
  \ifx 4#1\global\DOTSCASE@\@ne\else
  \ifx 5#1\global\DOTSCASE@\tw@\else\DN@##1\DOTS@{}%
  \fi\fi\fi\next@}}}
\newif\ifnot@
{\uccode`5=`\\ \uccode`6=`n \uccode`7=`o \uccode`8=`t
 \uppercase{\gdef\not@#1#2#3#4{%
  \DNii@##1\not@{\ifx\space@\next\global\not@true\fi}%
 \global\not@false\DN@##1\not@{}%
 \ifx 5#1\ifx 6#2\ifx 7#3\ifx 8#4\DN@{\FN@\nextii@}\fi\fi\fi
 \fi\next@}}}
\newif\ifkeybin@
\def\dots{\RIfM@\expandafter\mdots@\else\expandafter\tdots@\fi}
\def\mdots@{\FN@\mdots@@}
\def\mdots@@{\gdef\thedots@{\dotso@}%
 \ifx\next\boldkey\gdef\thedots@\boldkey{\boldkeydots@}\else
 \ifx\next\boldsymbol\gdef\thedots@\boldsymbol{\boldsymboldots@}\else
 \ifx,\next\gdef\thedots@{\dotsc}%
 \else\ifx\not\next\gdef\thedots@{\dotsb@}%
 \else\keybin@
 \ifkeybin@\gdef\thedots@{\dotsb@}%
 \else\xdef\meaning@{\meaning\next..........}\xdef\meaning@@{\meaning@}%
  \expandafter\math@\meaning@\math@
  \ifmath@
   \expandafter\mathch@\meaning@\mathch@
   \ifmathch@\expandafter\getmathch@\meaning@\getmathch@\fi
  \else\expandafter\macro@\meaning@@\macro@
  \ifmacro@
   \expandafter\not@\meaning@\not@\ifnot@\gdef\thedots@{\dotsb@}%
  \else\expandafter\DOTS@\meaning@\DOTS@
  \ifDOTS@
   \ifcase\number\DOTSCASE@\gdef\thedots@{\dotsb@}%
    \or\gdef\thedots@{\dotsi}\else\fi
  \else\expandafter\math@\meaning@\math@
  \ifmath@\expandafter\mathbin@\meaning@\mathbin@
  \ifmathbin@\gdef\thedots@{\dotsb@}%
  \else\expandafter\mathrel@\meaning@\mathrel@
  \ifmathrel@\gdef\thedots@{\dotsb@}%
  \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi
 \thedots@}
\def\plainldots@{\mathinner{\ldotp\ldotp\ldotp}}
\def\plaincdots@{\mathinner{\cdotp\cdotp\cdotp}}
\def\dotsi{\!\plaincdots@}
\let\dotsb@\plaincdots@
\newif\ifextra@
\newif\ifrightdelim@
\def\rightdelim@{\global\rightdelim@true
 \ifx\next)\else
 \ifx\next]\else
 \ifx\next\rbrack\else
 \ifx\next\}\else
 \ifx\next\rbrace\else
 \ifx\next\rangle\else
 \ifx\next\rceil\else
 \ifx\next\rfloor\else
 \ifx\next\rgroup\else
 \ifx\next\rmoustache\else
 \ifx\next\right\else
 \ifx\next\bigr\else
 \ifx\next\biggr\else
 \ifx\next\Bigr\else
 \ifx\next\Biggr\else\global\rightdelim@false
 \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi}
\def\extra@{%
 \global\extra@false\rightdelim@\ifrightdelim@\global\extra@true
 \else\ifx\next$\global\extra@true
 \else\xdef\meaning@{\meaning\next..........}%
 \expandafter\macro@\meaning@\macro@\ifmacro@
 \expandafter\DOTS@\meaning@\DOTS@
 \ifDOTS@
 \ifnum\DOTSCASE@=\tw@\global\extra@true
 \fi\fi\fi\fi\fi}
\newif\ifbold@
\def\dotso@{%
 \ifbold@
  \let\next\delayed@
  \DNii@{\extra@\plainldots@\ifextra@\,\fi}%
 \else
  \DNii@{\DN@{\extra@\plainldots@\ifextra@\,\fi}\FN@\next@}%
 \fi
 \nextii@}
\def\ldots{\DN@{\extrap@\plainldots@}%
 \FN@\next@}
\def\cdots{\DN@{\extrap@\plaincdots@}%
 \FN@\next@}
\let\dotso\ldots
\let\dotsb\cdots
\let\dotsm\dotsb
\def\cdot{\mathchar"2201 }
\def\longrightarrow{\DOTSB\relbar\joinrel\rightarrow}
\def\Longrightarrow{\DOTSB\Relbar\joinrel\Rightarrow}
\def\longleftarrow{\DOTSB\leftarrow\joinrel\relbar}
\def\Longleftarrow{\DOTSB\Leftarrow\joinrel\Relbar}
\def\longleftrightarrow{\DOTSB\leftarrow\joinrel\rightarrow}
\def\Longleftrightarrow{\DOTSB\Leftarrow\joinrel\Rightarrow}
\def\mapsto{\DOTSB\mapstochar\rightarrow}
\def\longmapsto{\DOTSB\mapstochar\longrightarrow}
\def\hookrightarrow{\DOTSB\lhook\joinrel\rightarrow}
\def\hookleftarrow{\DOTSB\leftarrow\joinrel\rhook}
\def\doteq{\DOTSB\buildrel\textstyle.\over=}
\def\iff{\DOTSB\;\Longleftrightarrow\;}
\def\dddot#1{{\mathop{#1}\limits^{\vbox to-1.4\ex@{\kern-\tw@\ex@
 \hbox{\rm...}\vss}}}}
\def\ddddot#1{{\mathop{#1}\limits^{\vbox to-1.4\ex@{\kern-\tw@\ex@
 \hbox{\rm....}\vss}}}}
\def\sphat{^{\mathchoice{}{}%
 {\,\,\botsmash{\hbox{\lower4\ex@\hbox{$\m@th\widehat{\null}$}}}}%
 {\,\botsmash{\hbox{\lower3\ex@\hbox{$\m@th\hat{\null}$}}}}}}
\def\spcheck{^\vee}
\def\sptilde{^\sim}
\def\spacute{^{\!\botsmash{\hbox{\lower\@ne ex\hbox{\'{}}}}}}
\def\spgrave{^{\mathchoice{}{}{}{\!}%
 \botsmash{\hbox{\lower\@ne ex\hbox{\`{}}}}}}
\def\spdot{^{\hbox{\raise\ex@\hbox{\rm.}}}}
\def\spddot{^{\hbox{\raise\ex@\hbox{\rm..}}}}
\def\spdddot{^{\hbox{\raise\ex@\hbox{\rm...}}}}
\def\spddddot{^{\hbox{\raise\ex@\hbox{\rm....}}}}
\def\spbreve{^{\!\botsmash{\hbox{\lower4\ex@\hbox{\u{}}}}}}
\def\spbar{^-}
\def\spvec{^\rightarrow}
\def\textonlyfont@#1#2{\def#1{\RIfM@
 \Err@{Use \noexpand#1only in text}\else#2\fi}}
\textonlyfont@\rm\tenrm
\textonlyfont@\it\tenit
\textonlyfont@\sl\tensl
\textonlyfont@\bf\tenbf
\def\oldnos#1{\RIfM@{\mathcode`\,="013B \fam\@ne#1}\else
 \leavevmode\hbox{$\m@th\mathcode`\,="013B \fam\@ne#1$}\fi}
\def\text{\RIfM@\expandafter\text@\else\expandafter\text@@\fi}
\def\text@@#1{\leavevmode\hbox{#1}}
\def\mathhexbox@#1#2#3{\text{$\m@th\mathchar"#1#2#3$}}
\def\dag{{\mathhexbox@279}}
\def\ddag{{\mathhexbox@27A}}
\def\S{{\mathhexbox@278}}
\def\P{{\mathhexbox@27B}}
\newif\iffirstchoice@
\firstchoice@true
\def\text@#1{\mathchoice
 {\hbox{\everymath{\displaystyle}\def\textfonti{\the\textfont\@ne}%
  \def\textfontii{\the\textfont\tw@}\textdef@@ T#1}}
 {\hbox{\firstchoice@false
  \everymath{\textstyle}\def\textfonti{\the\textfont\@ne}%
  \def\textfontii{\the\textfont\tw@}\textdef@@ T#1}}
 {\hbox{\firstchoice@false
  \everymath{\scriptstyle}\def\textfonti{\the\scriptfont\@ne}%
  \def\textfontii{\the\scriptfont\tw@}\textdef@@ S\rm#1}}
 {\hbox{\firstchoice@false
  \everymath{\scriptscriptstyle}\def\textfonti
  {\the\scriptscriptfont\@ne}%
  \def\textfontii{\the\scriptscriptfont\tw@}\textdef@@ s\rm#1}}}
\def\textdef@@#1{\textdef@#1\rm\textdef@#1\bf\textdef@#1\sl\textdef@#1\it}
\def\rmfam{0}
\def\textdef@#1#2{%
 \DN@{\csname\expandafter\eat@\string#2fam\endcsname}%
 \if S#1\edef#2{\the\scriptfont\next@\relax}%
 \else\if s#1\edef#2{\the\scriptscriptfont\next@\relax}%
 \else\edef#2{\the\textfont\next@\relax}\fi\fi}
\scriptfont\itfam\tenit \scriptscriptfont\itfam\tenit
\scriptfont\slfam\tensl \scriptscriptfont\slfam\tensl
\newif\iftopfolded@
\newif\ifbotfolded@
\def\topfoldedtext{\topfolded@true\botfolded@false\foldedtext@}
\def\botfoldedtext{\botfolded@true\topfolded@false\foldedtext@}
\def\foldedtext{\topfolded@false\botfolded@false\foldedtext@}
\Invalid@\foldedwidth
\def\foldedtext@{%
 \DN@{\ifx\next\foldedwidth\let\next@\nextii@\else
  \DN@{\nextii@\foldedwidth{.3\hsize}}\fi\next@}%
 \DNii@\foldedwidth##1##2{\setbox\z@\vbox
  {\normalbaselines\hsize##1\relax
  \tolerance1600 \noindent\ignorespaces##2}\ifbotfolded@\boxz@\else
  \iftopfolded@\vtop{\unvbox\z@}\else\vcenter{\boxz@}\fi\fi}%
 \FN@\next@}
\def\bold{\RIfM@\expandafter\bold@\else
 \expandafter\nonmatherr@\expandafter\bold\fi}
\def\bold@#1{{\bold@@{#1}}}
\def\bold@@#1{\fam\bffam\relax#1}
\def\slanted{\RIfM@\expandafter\slanted@\else
 \expandafter\nonmatherr@\expandafter\slanted\fi}
\def\slanted@#1{{\slanted@@{#1}}}
\def\slanted@@#1{\fam\slfam\relax#1}
\def\rom{\RIfM@\expandafter\rom@\else
 \expandafter\nonmatherr@\expandafter\rom\fi}
\def\rom@#1{{\rom@@{#1}}}
\def\rom@@#1{\fam\rmfam\relax#1}
\def\italic{\RIfM@\expandafter\italic@\else
 \expandafter\nonmatherr@\expandafter\italic\fi}
\def\italic@#1{{\italic@@{#1}}}
\def\italic@@#1{\fam\itfam\relax#1}
\def\Cal{\RIfM@\expandafter\Cal@\else
 \expandafter\nonmatherr@\expandafter\Cal\fi}
\def\Cal@#1{{\Cal@@{#1}}}
\def\Cal@@#1{\noaccents@\fam\tw@#1}
\mathchardef\Gamma="0000
\mathchardef\Delta="0001
\mathchardef\Theta="0002
\mathchardef\Lambda="0003
\mathchardef\Xi="0004
\mathchardef\Pi="0005
\mathchardef\Sigma="0006
\mathchardef\Upsilon="0007
\mathchardef\Phi="0008
\mathchardef\Psi="0009
\mathchardef\Omega="000A
\mathchardef\varGamma="0100
\mathchardef\varDelta="0101
\mathchardef\varTheta="0102
\mathchardef\varLambda="0103
\mathchardef\varXi="0104
\mathchardef\varPi="0105
\mathchardef\varSigma="0106
\mathchardef\varUpsilon="0107
\mathchardef\varPhi="0108
\mathchardef\varPsi="0109
\mathchardef\varOmega="010A
\newif\ifmsamloaded@
\newif\ifmsbmloaded@
\newif\ifeufmloaded@
\let\alloc@@\alloc@
\def\hexnumber@#1{\ifcase#1 0\or 1\or 2\or 3\or 4\or 5\or 6\or 7\or 8\or
 9\or A\or B\or C\or D\or E\or F\fi}
\edef\bffam@{\hexnumber@\bffam}
\def\loadmsam{\msamloaded@true
 \font@\tenmsa=msam10
 \font@\sevenmsa=msam7
 \font@\fivemsa=msam5
 \alloc@@8\fam\chardef\sixt@@n\msafam
 \textfont\msafam=\tenmsa
 \scriptfont\msafam=\sevenmsa
 \scriptscriptfont\msafam=\fivemsa
 \edef\msafam@{\hexnumber@\msafam}%
 \mathchardef\dabar@"0\msafam@39
 \def\dashrightarrow{\mathrel{\dabar@\dabar@\mathchar"0\msafam@4B}}%
 \def\dashleftarrow{\mathrel{\mathchar"0\msafam@4C\dabar@\dabar@}}%
 \let\dasharrow\dashrightarrow
 \def\ulcorner{\delimiter"4\msafam@70\msafam@70 }
 \def\urcorner{\delimiter"5\msafam@71\msafam@71 }
 \def\llcorner{\delimiter"4\msafam@78\msafam@78 }
 \def\lrcorner{\delimiter"5\msafam@79\msafam@79 }
 \def\yen{{\mathhexbox@\msafam@55 }}
 \def\checkmark{{\mathhexbox@\msafam@58 }}
 \def\circledR{{\mathhexbox@\msafam@72 }}
 \def\maltese{{\mathhexbox@\msafam@7A }}}
\def\loadmsbm{\msbmloaded@true
 \font@\tenmsb=msbm10
 \font@\sevenmsb=msbm7
 \font@\fivemsb=msbm5
 \alloc@@8\fam\chardef\sixt@@n\msbfam
 \textfont\msbfam=\tenmsb
 \scriptfont\msbfam=\sevenmsb
 \scriptscriptfont\msbfam=\fivemsb
 \edef\msbfam@{\hexnumber@\msbfam}}
\def\widehat#1{\ifmsbmloaded@
 \setboxz@h{$\m@th#1$}\ifdim\wdz@>\tw@ em\mathaccent"0\msbfam@5B{#1}\else
  \mathaccent"0362{#1}\fi
 \else\mathaccent"0362{#1}\fi}
\def\widetilde#1{\ifmsbmloaded@
 \setboxz@h{$\m@th#1$}\ifdim\wdz@>\tw@ em\mathaccent"0\msbfam@5D{#1}\else
  \mathaccent"0365{#1}\fi
 \else\mathaccent"0365{#1}\fi}
\def\newsymbol#1#2#3#4#5{\define#1{}\let\next@\relax
 \ifnum#2=\@ne\ifmsamloaded@\let\next@\msafam@\fi\else
 \ifnum#2=\tw@\ifmsbmloaded@\let\next@\msbfam@\fi\fi\fi
 \ifx\next@\relax
  \ifnum#2>\tw@\Err@{\Invalid@@\string\newsymbol}\else
  \ifnum#2=\@ne\Err@{You must first \string\loadmsam}\else
   \Err@{You must first \string\loadmsbm}\fi\fi
 \else
  \mathchardef#1="#3\next@#4#5
 \fi}
\def\UseAMSsymbols{\input amssym.tex\relax}
\def\Bbb{\RIfM@\expandafter\Bbb@\else
 \expandafter\nonmatherr@\expandafter\Bbb\fi}
\def\Bbb@#1{{\Bbb@@{#1}}}
\def\Bbb@@#1{\noaccents@\fam\msbfam\relax#1}
\def\loadeufm{\eufmloaded@true
 \font@\teneufm=eufm10
 \font@\seveneufm=eufm7
 \font@\fiveeufm=eufm5
 \alloc@@8\fam\chardef\sixt@@n\eufmfam
 \textfont\eufmfam=\teneufm
 \scriptfont\eufmfam=\seveneufm
 \scriptscriptfont\eufmfam=\fiveeufm}
\def\frak{\RIfM@\expandafter\frak@\else
 \expandafter\nonmatherr@\expandafter\frak\fi}
\def\frak@#1{{\frak@@{#1}}}
\def\frak@@#1{\fam\eufmfam\relax#1}
\let\goth\frak
\newif\ifcmmibloaded@
\newif\ifcmbsyloaded@
\def\loadbold{\cmmibloaded@true\cmbsyloaded@true
 \font@\tencmmib=cmmib10 \skewchar\tencmmib='177
 \font@\sevencmmib=cmmib7 \skewchar\sevencmmib='177
 \font@\fivecmmib=cmmib5 \skewchar\fivecmmib='177
 \alloc@@8\fam\chardef\sixt@@n\cmmibfam
 \textfont\cmmibfam=\tencmmib
 \scriptfont\cmmibfam=\sevencmmib
 \scriptscriptfont\cmmibfam=\fivecmmib
 \edef\cmmibfam@{\hexnumber@\cmmibfam}%
 \font@\tencmbsy=cmbsy10 \skewchar\tencmbsy='60
 \font@\sevencmbsy=cmbsy7 \skewchar\sevencmbsy='60
 \font@\fivecmbsy=cmbsy5 \skewchar\fivecmbsy='60
 \alloc@@8\fam\chardef\sixt@@n\cmbsyfam
 \textfont\cmbsyfam=\tencmbsy
 \scriptfont\cmbsyfam=\sevencmbsy
 \scriptscriptfont\cmbsyfam=\fivecmbsy
 \edef\cmbsyfam@{\hexnumber@\cmbsyfam}}
\def\mathchari@#1#2#3{\ifcmmibloaded@\mathchar"#1\cmmibfam@#2#3 \else
 \Err@{First bold symbol font not loaded}\fi}
\def\mathcharii@#1#2#3{\ifcmbsyloaded@\mathchar"#1\cmbsyfam@#2#3 \else
 \Err@{Second bold symbol font not loaded}\fi}
\def\boldsymbol#1{%
 \DN@{\Err@{You can't use \noexpand\boldsymbol with \string#1}#1}%
 \ifcat\noexpand#1A%
   \let\next@\relax
  \ifcmmibloaded@{\fam\cmmibfam#1}\else\Err@{First bold symbol
   font not loaded}\fi
 \else
  \xdef\meaning@{\meaning#1.........}%
  \expandafter\math@\meaning@\math@
  \ifmath@
   \expandafter\mathch@\meaning@\mathch@
   \ifmathch@
    \expandafter\boldsymbol@@\meaning@\boldsymbol@@
   \fi
  \else
   \expandafter\macro@\meaning@\macro@
   \expandafter\delim@\meaning@\delim@
   \ifdelim@
    \expandafter\delim@@\meaning@\delim@@
   \else
    \boldsymbol@{#1}%
   \fi
  \fi
 \fi
 \next@}
\def\mathhexboxii@#1#2{\ifcmbsyloaded@\mathhexbox@{\cmbsyfam@}{#1}{#2}\else
  \Err@{Second bold symbol font not loaded}\fi}
\def\boldsymbol@#1{\let\next@\relax\let\next=#1%
 \ifx\next\cdot\mathcharii@201 \else
 \ifx\next\prime{{\null\mathcharii@030 \null}}\else
 \ifx\next\lbrack\mathchar"4\bffam@5B \else
 \ifx\next\rbrack\mathchar"5\bffam@5D \else
 \ifx\next\{\mathcharii@466 \else
 \ifx\next\lbrace\mathcharii@466 \else
 \ifx\next\}\mathcharii@567 \else
 \ifx\next\rbrace\mathcharii@567 \else
 \ifx\next\surd{{\mathcharii@170}}\else
 \ifx\next\S{{\mathhexboxii@78}}\else
 \ifx\next\P{{\mathhexboxii@7B}}\else
 \ifx\next\dag{{\mathhexboxii@79}}\else
 \ifx\next\ddag{{\mathhexboxii@7A}}\else
 \DN@{\Err@{You can't use \noexpand\boldsymbol with \string#1}#1}%
 \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi}
\def\boldsymbol@@#1.#2\boldsymbol@@{\classnum@#1 \count@@@\classnum@
 \divide\classnum@4096 \count@\classnum@
 \multiply\count@4096 \advance\count@@@-\count@ \count@@\count@@@
 \divide\count@@@\@cclvi \count@\count@@
 \multiply\count@@@\@cclvi \advance\count@@-\count@@@
 \divide\count@@@\@cclvi
 \multiply\classnum@4096 \advance\classnum@\count@@
 \ifnum\count@@@=\z@
  \count@"\bffam@ \multiply\count@\@cclvi
  \advance\classnum@\count@
  \DN@{\mathchar\number\classnum@}%
 \else
  \ifnum\count@@@=\@ne
   \ifcmmibloaded@
   \count@"\cmmibfam@ \multiply\count@\@cclvi
   \advance\classnum@\count@
   \DN@{\mathchar\number\classnum@}%
   \else\DN@{\Err@{First bold symbol font not loaded}}\fi
  \else
   \ifnum\count@@@=\tw@
  \ifcmbsyloaded@
    \count@"\cmbsyfam@ \multiply\count@\@cclvi
    \advance\classnum@\count@
    \DN@{\mathchar\number\classnum@}%
  \else\DN@{\Err@{Second bold symbol font not loaded}}\fi
  \fi
 \fi
\fi}
\newif\ifdelim@
\newcount\delimcount@
{\uccode`6=`\\ \uccode`7=`d \uccode`8=`e \uccode`9=`l
 \uppercase{\gdef\delim@#1#2#3#4#5\delim@
  {\delim@false\ifx 6#1\ifx 7#2\ifx 8#3\ifx 9#4\delim@true
   \xdef\meaning@{#5}\fi\fi\fi\fi}}}
\def\delim@@#1"#2#3#4#5#6\delim@@{\if#32%
\let\next@\relax
 \ifcmbsyloaded@
 \mathcharii@#2#4#5 \else\Err@{Second bold family not loaded}\fi\fi}
\def\vert{\delimiter"026A30C }
\def\Vert{\delimiter"026B30D }
\let\|\Vert
\def\backslash{\delimiter"026E30F }
\def\boldkeydots@#1{\bold@true\let\next=#1\let\delayed@=#1\mdots@@
 \boldkey#1\bold@false}
\def\boldsymboldots@#1{\bold@true\let\next=#1\let\delayed@=#1\mdots@@
 \boldsymbol#1\bold@false}

%\newif\ifeufbloaded@
%\def\loadeufb{\eufbloaded@true
% \font@\teneufb=eufb10
% \font@\seveneufb=eufb7
% \font@\fiveeufb=eufb5
% \alloc@@8\fam\chardef\sixt@@n\eufbfam
% \textfont\eufbfam=\teneufb
% \scriptfont\eufbfam=\seveneufb
% \scriptscriptfont\eufbfam=\fiveeufb
% \edef\eufbfam@{\hexnumber@\eufbfam}}

%\newif\ifeusmloaded@
%\def\loadeusm{\eusmloaded@true
% \font@\teneusm=eusm10
% \font@\seveneusm=eusm7
% \font@\fiveeusm=eusm5
% \alloc@@8\fam\chardef\sixt@@n\eusmfam
% \textfont\eusmfam=\teneusm
% \scriptfont\eusmfam=\seveneusm
% \scriptscriptfont\eusmfam=\fiveeusm
% \edef\eusmfam@{\hexnumber@\eusmfam}}

%\newif\ifeusbloaded@
%\def\loadeusb{\eusbloaded@true
% \font@\teneusb=eusb10
% \font@\seveneusb=eusb7
% \font@\fiveeusb=eusb5
% \alloc@@8\fam\chardef\sixt@@n\eusbfam
% \textfont\eusbfam=\teneusb
% \scriptfont\eusbfam=\seveneusb
% \scriptscriptfont\eusbfam=\fiveeusb
% \edef\eusbfam@{\hexnumber@\eusbfam}}

%\newif\ifeurmloaded@
%\def\loadeurm{\eurmloaded@true
% \font@\teneurm=eurm10
% \font@\seveneurm=eurm7
% \font@\fiveeurm=eurm5
% \alloc@@8\fam\chardef\sixt@@n\eurmfam
% \textfont\eurmfam=\teneurm
% \scriptfont\eurmfam=\seveneurm
% \scriptscriptfont\eurmfam=\fiveeurm
% \edef\eurmfam@{\hexnumber@\eurmfam}}

%\newif\ifeurbloaded@
%\def\loadeurb{\eurbloaded@true
% \font@\teneurb=eurb10
% \font@\seveneurb=eurb7
% \font@\fiveeurb=eurb5
% \alloc@@8\fam\chardef\sixt@@n\eurbfam
% \textfont\eurbfam=\teneurb
% \scriptfont\eurbfam=\seveneurb
% \scriptscriptfont\eurbfam=\fiveeurb
% \edef\eurbfam@{\hexnumber@\eurbfam}}

\def\accentclass@{7}
\def\noaccents@{\def\accentclass@{0}}
\def\makeacc@#1#2{\def#1{\mathaccent"\accentclass@#2 }}
\makeacc@\hat{05E}
\makeacc@\check{014}
\makeacc@\tilde{07E}
\makeacc@\acute{013}
\makeacc@\grave{012}
\makeacc@\dot{05F}
\makeacc@\ddot{07F}
\makeacc@\breve{015}
\makeacc@\bar{016}
\def\vec{\mathaccent"017E }
\newcount\skewcharcount@
\newcount\familycount@
\def\theskewchar@{\global\familycount@\@ne
 \global\skewcharcount@\the\skewchar\textfont\@ne
 \ifnum\fam>\m@ne\ifnum\fam<16
  \global\familycount@\the\fam\relax
  \global\skewcharcount@\the\skewchar\textfont\the\fam\relax\fi\fi
 \ifnum\skewcharcount@>\m@ne
  \ifnum\skewcharcount@<128
  \global\multiply\familycount@256
  \global\advance\skewcharcount@\familycount@
  \global\advance\skewcharcount@28672
  \mathchar\skewcharcount@\else
  \global\skewcharcount@\m@ne\fi\else
 \global\skewcharcount@\m@ne\fi}
\newcount\pointcount@
\def\getpoints@#1.#2\getpoints@{\pointcount@#1 }
\newdimen\accentdimen@
\newcount\accentmu@
\def\dimentomu@{\global\multiply\accentdimen@ 100
 \expandafter\getpoints@\the\accentdimen@\getpoints@
 \multiply\pointcount@18
 \divide\pointcount@\@m
 \global\accentmu@\pointcount@}
\def\Makeacc@#1#2{\def#1{\RIfM@\DN@{\mathaccent@
 {"\accentclass@#2 }}\else\DN@{\nonmatherr@{#1}}\fi\next@}}
\def\unbracefonts@{\let\Cal@\Cal@@\let\rom@\rom@@\let\bold@\bold@@
 \let\slanted@\slanted@@}
\def\mathaccent@#1#2{\ifnum\fam=\m@ne\xdef\thefam@{1}\else
 \xdef\thefam@{\the\fam}\fi
 \global\accentdimen@\z@
 \setboxz@h{\unbracefonts@$\m@th\fam\thefam@\relax#2$}%
 \ifdim\accentdimen@=\z@\DN@{\mathaccent#1{#2}}%
  \setbox\tw@\hbox{\unbracefonts@$\m@th\fam\thefam@\relax#2\theskewchar@$}%
  \setbox4=\hbox{$\m@th\ifnum\skewcharcount@=\m@ne\else
   \mathchar\skewcharcount@\fi$}%
  \global\accentdimen@\wd\tw@\global\advance\accentdimen@-\wdz@
  \global\advance\accentdimen@-\wd4
  \global\multiply\accentdimen@\tw@
  \dimentomu@\global\advance\accentmu@\@ne
 \else\DN@{{\mathaccent#1{#2\mkern\accentmu@ mu}%
    \mkern-\accentmu@ mu}{}}\fi
 \next@}
\Makeacc@\Hat{05E}
\Makeacc@\Check{014}
\Makeacc@\Tilde{07E}
\Makeacc@\Acute{013}
\Makeacc@\Grave{012}
\Makeacc@\Dot{05F}
\Makeacc@\Ddot{07F}
\Makeacc@\Breve{015}
\Makeacc@\Bar{016}
\def\Vec{\RIfM@\DN@{\mathaccent@{"017E }}\else
 \DN@{\nonmatherr@\Vec}\fi\next@}
\def\sqrt#1{\radical"270370 {#1}}
\let\underline@\underline
\let\overline@\overline
\def\underline#1{\underline@{#1}}
\def\overline#1{\overline@{#1}}
\Invalid@\leftroot
\Invalid@\uproot
\newcount\uproot@
\newcount\leftroot@
\def\plainroot@#1\of#2{\setbox\rootbox\hbox{$\m@th\scriptscriptstyle{#1}$}%
 \mathchoice{\r@@t\displaystyle{#2}}{\r@@t\textstyle{#2}}
 {\r@@t\scriptstyle{#2}}{\r@@t\scriptscriptstyle{#2}}\egroup}
\def\r@@t#1#2{\setboxz@h{$\m@th#1\sqrt{#2}$}%
 \dimen@\ht\z@\advance\dimen@-\dp\z@
 \setbox\tw@\hbox{$\m@th#1\mskip\uproot@ mu$}\advance\dimen@ by1.667\wd\tw@
 \mkern-\leftroot@ mu\mkern5mu\raise.6\dimen@\copy\rootbox
 \mkern-10mu\mkern\leftroot@ mu\boxz@}
\def\boxed#1{\setboxz@h{$\m@th\displaystyle{#1}$}\dimen@.4\ex@
 \advance\dimen@3\ex@\advance\dimen@\dp\z@
 \hbox{\lower\dimen@\hbox{%
 \vbox{\hrule\height.4\ex@
 \hbox{\vrule\width.4\ex@\hskip3\ex@\vbox{\vskip3\ex@\boxz@\vskip3\ex@}%
 \hskip3\ex@\vrule\width.4\ex@}\hrule\height.4\ex@}%
 }}}
\newdimen\minaw@
\minaw@11.11128\ex@
\def\pmb{\RIfM@\expandafter\mathpalette\expandafter\pmb@\else
 \expandafter\pmb@@\fi}
\def\pmb@@#1{\leavevmode\setboxz@h{#1}\kern-.025em\copy\z@\kern-\wdz@
 \kern-.05em\copy\z@\kern-\wdz@\kern-.025em\raise.0433em\boxz@}
\def\binrel@@#1{\ifdim\wd\tw@<\z@\mathbin{#1}\else\ifdim\wd\tw@>\z@
 \mathrel{#1}\else{#1}\fi\fi}
\newdimen\pmbraise@
\def\pmb@#1#2{\setbox4=\hbox{$\m@th#1{#2}$}%
 \setbox6=\hbox{$\m@th#1\mkern.7794mu$}\pmbraise@\wd6
 \binrel@{#2}\binrel@@{\mkern-.45mu\copy4 \kern-\wd4
 \mkern-.9mu\copy4 \kern-\wd4 \mkern-.45mu\raise\pmbraise@\box4}}
\font\dummyft@=dummy
\fontdimen1 \dummyft@=\z@
\fontdimen2 \dummyft@=\z@
\fontdimen3 \dummyft@=\z@
\fontdimen4 \dummyft@=\z@
\fontdimen5 \dummyft@=\z@
\fontdimen6 \dummyft@=\z@
\fontdimen7 \dummyft@=\z@
\fontdimen8 \dummyft@=\z@
\fontdimen9 \dummyft@=\z@
\fontdimen10 \dummyft@=\z@
\fontdimen11 \dummyft@=\z@
\fontdimen12 \dummyft@=\z@
\fontdimen13 \dummyft@=\z@
\fontdimen14 \dummyft@=\z@
\fontdimen15 \dummyft@=\z@
\fontdimen16 \dummyft@=\z@
\fontdimen17 \dummyft@=\z@
\fontdimen18 \dummyft@=\z@
\fontdimen19 \dummyft@=\z@
\fontdimen20 \dummyft@=\z@
\fontdimen21 \dummyft@=\z@
\fontdimen22 \dummyft@=\z@
\def\dodummy@{{\def\\##1{\global\let##1\dummyft@}\fontlist@}}
\def\nopages@{\output={\setbox\z@\box255 \deadcycles\z@}%
 \alloc@@5\toks\toksdef\@cclvi\output}
\let\galleys\nopages@
\newif\ifsyntax@
\newcount\countxviii@
\def\syntax{\syntax@true\dodummy@\countxviii@\count18
 \loop\ifnum\countxviii@>\m@ne\textfont\countxviii@=\dummyft@
 \scriptfont\countxviii@=\dummyft@\scriptscriptfont\countxviii@=\dummyft@
 \advance\countxviii@\m@ne\repeat
 \dummyft@\tracinglostchars\z@\nopages@\frenchspacing\hbadness\@M}
\def\S@{S } \def\G@{G } \def\P@{P }
\def\alloc@#1#2#3#4#5{\global\advance\count1#1by\@ne
 \ch@ck#1#4#2\allocationnumber=\count1#1
 \global#3#5=\allocationnumber
 \wlog{\string#5=\string#2\the\allocationnumber}}
\let\proclaim\undefined
\let\=\undefined
\let\>\undefined
\let\cal\undefined
\let\mit\undefined
\let\oldstyle\undefined
\catcode`\@=\active

f230399.tex
\font\black=cmbx10
\font\sblack=cmbx7
\font\ssblack=cmbx5
\font\blackital=cmmib10  \skewchar\blackital='177
\font\sblackital=cmmib7  \skewchar\sblackital='177
\font\ssblackital=cmmib5  \skewchar\ssblackital='177
\font\sanss=cmss10
\font\ssanss=cmss8 scaled 900
\font\sssanss=cmss8 scaled 600
\font\blackss=cmssbx10
\font\italss=cmssi10
\font\teneurm=eurm10
\font\teneurb=eurb10
\font\blackboard=msbm10
\font\sblackboard=msbm7
\font\ssblackboard=cmssbx10 scaled 300
\font\caligr=eusm10
\font\scaligr=eusm7
\font\sscaligr=eusm5

\def\tx#1{{\fam0\relax#1}}

\newfam\bbfam
\textfont\bbfam=\blackboard
\scriptfont\bbfam=\sblackboard
\scriptscriptfont\bbfam=\ssblackboard
\def\bb#1{{\fam\bbfam\relax#1}}

\newfam\ssfam
\textfont\ssfam=\sanss
\scriptfont\ssfam=\ssanss
\scriptscriptfont\ssfam=\sssanss
\def\ss#1{{\fam\ssfam\relax#1}}

\newfam\clfam
\textfont\clfam=\caligr
\scriptfont\clfam=\scaligr
\scriptscriptfont\clfam=\sscaligr
\def\cl#1{{\fam\clfam\relax#1}}

\newfam\gpfam
\def\bs#1{\hbox{$\fam\gpfam\relax#1\textfont\gpfam=\blackss$}}
\def\si#1{\hbox{$\fam\gpfam\relax#1\textfont\gpfam=\italss$}}
\def\eu#1{\hbox{$\fam\gpfam\relax#1\textfont\gpfam=\teneurm$}}
\def\eb#1{\hbox{$\fam\gpfam\relax#1\textfont\gpfam=\teneurb$}}
\def\cb#1{\hbox{$\fam\gpfam\relax#1\textfont\gpfam=\blackcal$}}
\def\fb#1{\hbox{$\fam\gpfam\relax#1\textfont\gpfam=\blackfrak$}}

\font\bsymb=cmsy10 scaled\magstep2
\def\all#1{\setbox0=\hbox{\lower1.5pt\hbox{\bsymb \char"38}}\setbox1=\hbox{$_{#1}$} \box0\lower2pt\box1\;}
\def\exi#1{\setbox0=\hbox{\lower1.5pt\hbox{\bsymb \char"39}}\setbox1=\hbox{$_{#1}$} \box0\lower2pt\box1\;}

\mathchardef\za="710B  %\alpha
\mathchardef\zb="710C  %\beta
\mathchardef\zg="710D  %\gamma
\mathchardef\zd="710E  %\delta
\mathchardef\zve="710F %\epsilon
\mathchardef\zz="7110  %\zeta
\mathchardef\zh="7111  %\eta
\mathchardef\zvy="7112 %\theta
\mathchardef\zi="7113  %\iota
\mathchardef\zk="7114  %\kappa
\mathchardef\zl="7115  %\lambda
\mathchardef\zm="7116  %\mu
\mathchardef\zn="7117  %\nu
\mathchardef\zx="7118  %\xi
\mathchardef\zp="7119  %\pi
\mathchardef\zr="711A  %\rho
\mathchardef\zs="711B  %\sigma
\mathchardef\zt="711C  %\tau
\mathchardef\zu="711D  %\upsilon
\mathchardef\zvf="711E %\phi
\mathchardef\zq="711F  %\chi
\mathchardef\zc="7120  %\psi
\mathchardef\zw="7121  %\omega
\mathchardef\ze="7122  %\varepsilon
\mathchardef\zy="7123  %\vartheta
\mathchardef\zvp="7124  %\varpi
\mathchardef\zvr="7125 %\varrho
\mathchardef\zvs="7126 %\varsigma
\mathchardef\zf="7127  %\varphi
\mathchardef\zG="7000  %\Gamma
\mathchardef\zD="7001  %\Delta
\mathchardef\zY="7002  %\Theta
\mathchardef\zL="7003  %\Lambda
\mathchardef\zX="7004  %\Xi
\mathchardef\zP="7005  %\Pi
\mathchardef\zS="7006  %\Sigma
\mathchardef\zU="7007  %\Upsilon
\mathchardef\zF="7008  %\Phi
\mathchardef\zC="7009  %\Psi
\mathchardef\zW="700A  %\Omega


lamstex.tex
% LAMSTEX.TEX   VERSION 2.01
% COPYRIGHT (C) 1989, 1990, 1991 BY THE TEXPLORATORS CORPORATION
%  3701 W. ALABAMA, SUITE 450-273, HOUSTON, TX 77027
% ALL RIGHTS RESERVED

% ABSOLUTELY NO CHANGES SHOULD BE MADE TO THIS FILE;
% CHANGES SHOULD BE MADE ONLY IN STYLE FILES.

\catcode`\@=11
\ifx\amstexloaded@\relax\else
 \errmessage{AmS-TeX must be loaded before LamS-TeX}\fi
\ifx\laxread@\undefined\else\catcode`\@=\active\endinput\fi
\def\err@#1{\errmessage{LamS-TeX error: #1}}
\def^^L{\par}
\let\+\tabalign
\def\newcount{\alloc@0\count\countdef\insc@unt}
\def\newdimen{\alloc@1\dimen\dimendef\insc@unt}
\def\newskip{\alloc@2\skip\skipdef\insc@unt}
\def\newmuskip{\alloc@3\muskip\muskipdef\@cclvi}
\def\newbox{\alloc@4\box\chardef\insc@unt}
\let\newtoks\relax
\def\newhelp#1#2{\newtoks#1#1\expandafter{\csname#2\endcsname}}
\def\newtoks{\alloc@5\toks\toksdef\@cclvi}
\def\newread{\alloc@6\read\chardef\sixt@@n}
\def\newwrite{\alloc@7\write\chardef\sixt@@n}
\def\newfam{\alloc@8\fam\chardef\sixt@@n}
\def\newlanguage{\alloc@9\language\chardef\@cclvi}
\def\newinsert#1{\global\advance\insc@unt by\m@ne
  \ch@ck0\insc@unt\count
  \ch@ck1\insc@unt\dimen
  \ch@ck2\insc@unt\skip
  \ch@ck4\insc@unt\box
  \allocationnumber=\insc@unt
  \global\chardef#1=\allocationnumber
  \wlog{\string#1=\string\insert\the\allocationnumber}}
\def\newif#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@}
\def\bye{\par\vfill\supereject\end}
\let\beginsection\undefined
\def\Err@#1{\errhelp\defaulthelp@\err@{#1}}
{\catcode`\@=\active
 \edef\next{\gdef\noexpand@{\futurelet\noexpand\next
  \csname at\string@\endcsname}}
 \next
}
\def\at@{\ifcat\noexpand\next a\let\next@\at@@\else
 \ifcat\noexpand\next0\let\next@\at@@\else
 \ifcat\noexpand\next\relax\let\next@\at@@\else
 \let\next@\at@@@\fi\fi\fi\next@}
\def\at@@@{\errhelp\athelp@\err@{Invalid use of @}}
\def\at@@#1{\expandafter
 \ifx\csname\string#1@at\endcsname\relax\let\next@\at@@@\else
 \DN@{\csname\string#1@at\endcsname}\fi\next@}
\def\atdef@#1{\expandafter\def\csname\string#1@at\endcsname}
\newif\iftest@
\def\tagin@#1{\tagin@false
 \DN@##1\tag##2##3\next@{\test@true\ifx\tagin@##2\test@false\fi}%
 \next@#1\tag\tagin@\next@\tagin@false\iftest@\tagin@true\fi}
\let\lkerns@\relax
\def\nolinebreak{\RIfM@\mathmodeerr@\nolinebreak\else
 \ifhmode\saveskip@\lastskip\unskip
 \nobreak\ifdim\saveskip@>\z@\hskip\saveskip@\fi\lkerns@
 \else\vmodeerr@\nolinebreak\fi\fi}
\def\allowlinebreak{\RIfM@\mathmodeerr@\allowlinebreak\else
 \ifhmode\saveskip@\lastskip\unskip
 \allowbreak\ifdim\saveskip@>\z@\hskip\saveskip@\fi\lkerns@
 \else\vmodeerr@\allowlinebreak\fi\fi}
\def\linebreak{\RIfM@\mathmodeerr@\linebreak\else
 \ifhmode\unskip\unkern\break\lkerns@
 \else\vmodeerr@\linebreak\fi\fi}
\let\nkerns@\relax
\def\newline{\RIfM@\mathmodeerr@\newline\else
 \ifhmode\unskip\unkern\null\hfill\break\nkerns@
 \else\vmodeerr@\newline\fi\fi}%
\def\newbox@{\alloc@@4\box\chardef\insc@unt}
\def\newcount@{\alloc@@0\count\countdef\insc@unt}
\def\accentedsymbol#1#2{\expandafter\newbox@\csname\exstring@#1@box\endcsname
 \setbox\csname\exstring@#1@box\endcsname\hbox{$\m@th#2$}%
 \define#1{\copy\csname\exstring@#1@box\endcsname{}}}
\def\rightadd@#1\to#2{\toks@{\\#1}\toks@@\expandafter{#2}\xdef#2{\the\toks@@
 \the\toks@}\toks@{}\toks@@{}}
\def\fontlist@{\\\tenrm\\\sevenrm\\\fiverm\\\teni\\\seveni\\\fivei
 \\\tensy\\\sevensy\\\fivesy\\\tenex\\\tenbf\\\sevenbf\\\fivebf
 \\\tensl\\\tenit}
\def\font@#1=#2 {\rightadd@#1\to\fontlist@\font#1=#2 }
\def\ismember@#1#2{\global\let\Next@ F\let\next@= #2%
 {\def\\##1{\let\nextii@##1\ifx\nextii@\next@\global\let\Next@ T\fi}#1}%
 \test@false\ifx\Next@ T\test@true\fi\let\next@\relax}
\def\FNSS@#1{\let\FNSS@@#1\FN@\FNSS@@@}
\def\FNSS@@@{\ifx\next\space@\def\FNSS@@@@. {\FN@\FNSS@@@}\else
 \def\FNSS@@@@.{\FNSS@@}\fi\FNSS@@@@.}
\atdef@"{\unskip
 \DN@{\ifx\next`\DN@`{\FN@\nextii@}%
  \else\ifx\next\lq\DN@\lq{\FN@\nextii@}%
  \else\DN@####1{\FN@\nextiii@}\fi\fi
  \next@}%
 \DNii@{\ifx\next`\DN@`{\sldl@``}%
  \else\ifx\next\lq\DN@\lq{\sldl@``}%
  \else\DN@{\dlsl@`}\fi\fi\next@}%
 \def\nextiii@{\ifx\next'\DN@'{\srdr@''}%
  \else\ifx\next\rq\DN@\rq{\srdr@''}%
  \else\DN@{\drsr@'}\fi\fi\next@}%
 \FNSS@\next@}
\def\root{%
  \DN@{\ifx\next\uproot\let\next@\nextii@\else
   \ifx\next\leftroot\let\next@\nextiii@\else
   \let\next@\plainroot@\fi\fi\next@}%
  \DNii@\uproot##1{\uproot@##1\relax\FNSS@\nextiv@}%
  \def\nextiv@{\ifx\next\leftroot\let\next@\nextv@\else
   \let\next@\plainroot@\fi\next@}%
  \def\nextv@\leftroot##1{\leftroot@##1\relax\plainroot@}%
  \def\nextiii@\leftroot##1{\leftroot@##1\relax\FNSS@\nextvi@}%
  \def\nextvi@{\ifx\next\uproot\let\next@\nextvii@\else
   \let\next@\plainroot@\fi\next@}%
  \def\nextvii@\uproot##1{\uproot@##1\relax\plainroot@}%
  \bgroup\uproot@\z@\leftroot@\z@
 \FNSS@\next@}
\def\loop#1\repeat{\def\iterate{#1\relax\expandafter\iterate\fi}%
 \iterate\let\iterate\relax}
\def\gloop@#1\repeat{\gdef\iterate@{#1\relax\expandafter\iterate@\fi}%
 \iterate@\global\let\iterate@\relax}
\def\printoptions{\W@{Do you want S(yntax check),
  G(alleys) or P(ages)?^^JType S, G or P, follow by <return>: }\loop
 \read\m@ne to\ans@
 \edef\next@{\def\noexpand\Ans@{\ans@}}\uppercase\expandafter{\next@}%
 \ifx\Ans@\S@\test@true\syntax\else
 \ifx\Ans@\G@\test@true\galleys\else
 \ifx\Ans@\P@\test@true\else
 \test@false\fi\fi\fi
 \iftest@\else\W@{Type S, G or P, follow by <return>: }%
 \repeat}
\expandafter\let\csname A@;\endcsname;
\expandafter\let\csname A@:\endcsname:
\expandafter\let\csname A@?\endcsname?
\expandafter\let\csname A@!\endcsname!
\def\APdef#1{\def\next@{\expandafter\let\csname A@\string#1\endcsname#1}%
 \afterassignment\next@\def#1}
\let\fextra@\,
\def\tdots@{\unskip
 \DN@{$\m@th\mathinner{\ldotp\ldotp\ldotp}\,
   \ifx\next,\,$\else\ifx\next.\,$\else
   \ifx\next;\,$\else
   \expandafter\ifx\csname A@\string;\endcsname\next\fextra@$\else
   \ifx\next:\,$\else
   \expandafter\ifx\csname A@\string:\endcsname\next\fextra@$\else
   \ifx\next?\,$\else
   \expandafter\ifx\csname A@\string?\endcsname\next\fextra@$\else
   \ifx\next!\,$\else
   \expandafter\ifx\csname A@\string!\endcsname\next\fextra@$\else
   $ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi}%
 \ \FN@\next@}
\def\extrap@#1{%
 \ifx\next,\DN@{#1\,}\else
 \ifx\next;\DN@{#1\,}\else
 \expandafter\ifx\csname A@\string;\endcsname\next\DN@{#1\fextra@}\else
 \ifx\next.\DN@{#1\,}\else\extra@
 \ifextra@\DN@{#1\,}\else
 \let\next@#1\fi\fi\fi\fi\fi\next@}
\def\dotsc{\DN@{\ifx\next;\plainldots@\,\else
 \expandafter\ifx\csname A@\string;\endcsname\next\plainldots@\fextra@\else
 \ifx\next.\plainldots@\,\else\extra@\plainldots@
 \ifextra@\,\fi\fi\fi\fi}%
 \FN@\next@}
\def\keybin@{\keybin@true
 \ifx\next+\else\ifx\next=\else\ifx\next<\else\ifx\next>\else\ifx\next-\else
 \ifx\next*\else\ifx\next:\else
 \expandafter\ifx\csname A@\string;\endcsname\next\else
 \keybin@false\fi\fi\fi\fi\fi\fi\fi\fi}
\def\boldkey#1{\ifcat\noexpand#1A%
  \ifcmmibloaded@{\fam\cmmibfam#1}\else
   \Err@{First bold symbol font not loaded}\fi
 \else
 \let\next=#1%
 \ifx#1!\mathchar"5\bffam@21 \else
 \expandafter\ifx\csname A@\string!\endcsname\next\mathchar"5\bffam@21 \else
 \ifx#1(\mathchar"4\bffam@28 \else\ifx#1)\mathchar"5\bffam@29 \else
 \ifx#1+\mathchar"2\bffam@2B \else\ifx#1:\mathchar"3\bffam@3A \else
 \expandafter\ifx\csname A@\string:\endcsname\next\mathchar"3\bffam@3A \else
 \ifx#1;\mathchar"6\bffam@3B \else
 \expandafter\ifx\csname A@\string;\endcsname\next\mathchar"6\bffam@3B \else
 \ifx#1=\mathchar"3\bffam@3D \else
 \ifx#1?\mathchar"5\bffam@3F \else
 \expandafter\ifx\csname A@\string?\endcsname\next\mathchar"5\bffam@3F \else
 \ifx#1[\mathchar"4\bffam@5B \else
 \ifx#1]\mathchar"5\bffam@5D \else
 \ifx#1,\mathchari@63B \else
 \ifx#1-\mathcharii@200 \else
 \ifx#1.\mathchari@03A \else
 \ifx#1/\mathchari@03D \else
 \ifx#1<\mathchari@33C \else
 \ifx#1>\mathchari@33E \else
 \ifx#1*\mathcharii@203 \else
 \ifx#1|\mathcharii@06A \else
 \ifx#10\bold0\else\ifx#11\bold1\else\ifx#12\bold2\else\ifx#13\bold3\else
 \ifx#14\bold4\else\ifx#15\bold5\else\ifx#16\bold6\else\ifx#17\bold7\else
 \ifx#18\bold8\else\ifx#19\bold9\else
  \Err@{\noexpand\boldkey can't be used with #1}%
 \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi
 \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi}
\def\arabic#1{#1}
\def\alph#1{\count@#1\relax\advance\count@96 \ifnum\count@>122
 \Err@{\noexpand\alph invalid for numbers > 26}\else\char\count@\fi}
\def\Alph#1{\count@#1\relax\advance\count@64 \ifnum\count@>90
 \Err@{\noexpand\Alph invalid for numbers > 26}\else\char\count@\fi}
\def\roman#1{\romannumeral#1\relax}
\def\Roman#1{\uppercase\expandafter{\romannumeral#1}}
\def\fnsymbol#1{\count@#1\relax
 \count@@\count@
 \advance\count@\m@ne\divide\count@7
 \count@@@\count@\advance\count@@@\@ne
 \multiply\count@7 \advance\count@@-\count@
 \count@\count@@@
 {\loop
  \ifcase\count@@\or*\or\dag\or\ddag\or\P\or\S\or\text{$\|$}\or\#\fi
  \advance\count@\m@ne\ifnum\count@>\z@\repeat}}
\def\cardnine@#1{\ifcase#1\or one\or two\or three\or four\or five\or
 six\or seven\or eight\or nine\fi}
\let\alloc@\alloc@@
\newcount\ten@
\ten@10
\def\cardinal#1{\count@#1\relax
 \ifnum\count@>99 \number\count@
 \else
  \ifnum\count@=\z@ zero%
  \else
   \ifnum\count@<\ten@\cardnine@\count@
   \else
    \ifnum\count@<20
     \advance\count@-\ten@
     \ifcase\count@ ten\or eleven\or twelve\or thirteen\or fourteen\or
      fifteen\or sixteen\or seventeen\or eighteen\or nineteen\fi
    \else
     \count@@\count@\count@@@\count@@
     \divide\count@\ten@\multiply\count@\ten@
     \advance\count@@@-\count@\divide\count@\ten@
     \ifcase\count@\or\or twenty\or thirty\or forty\or fifty\or sixty\or
      seventy\or eighty\or ninety\fi
     \ifnum\count@@@=\z@\else-\cardnine@\count@@@\fi
    \fi
   \fi
  \fi
 \fi}
\def\ordnine@#1{\ifcase#1\or first\or second\or third\or fourth\or fifth\or
 sixth\or seventh\or eighth\or ninth\fi}
\newcount\count@@@@
\def\ordsuffix@{\count@@@@\count@
 \divide\count@\ten@
 \count@@@\count@\count@@\count@
 \divide\count@@\ten@\multiply\count@@\ten@
 \advance\count@@@-\count@@
 \ifnum\count@@@=\@ne th%
 \else
  \count@@@\count@@@@
  \count@@\count@@@@
  \divide\count@@\ten@\multiply\count@@\ten@
  \advance\count@@@-\count@@
  \ifcase\count@@@ th\or st\or nd\or rd\else th\fi
 \fi}
\def\nordinal#1{\count@#1\relax\number\count@\ordsuffix@}
\def\spordinal#1{\count@#1\relax\number\count@$^{\text{\ordsuffix@}}$}
\def\ordinal#1{\count@#1\relax
 \ifnum\count@>99 \number\count@\ordsuffix@
 \else
   \ifnum\count@=\z@ zeroth%
  \else
    \ifnum\count@<\ten@\ordnine@\count@
    \else
     \ifnum\count@<20 \advance\count@-\ten@
      \ifcase\count@ tenth\or eleventh\or twelfth\or thirteenth\or
       fourteenth\or fifteenth\or sixteenth\or seventeenth\or eighteenth\or
       nineteenth\fi
     \else
      \count@@\count@
      \divide\count@\ten@\multiply\count@\ten@
      \count@@@\count@@\advance\count@@@-\count@
      \divide\count@\ten@
      \ifcase\count@\or\or twent\or thirt\or fort\or fift\or sixt\or sevent\or
       eight\or ninet\fi
      \ifnum\count@@@=\z@ ieth\else y-\ordnine@\count@@@\fi
     \fi
    \fi
  \fi
 \fi}
\font@\tensmc=cmcsc10
\textonlyfont@\smc\tensmc
\newtoks\noexpandtoks@
\noexpandtoks@{\let\arabic\relax\let\alph\relax\let\Alph\relax
 \let\roman\relax\let\Roman\relax\let\fnsymbol\relax\let\rm\relax
 \let\it\relax\let\bf\relax\let\sl\relax\let\smc\relax
 \let\/\relax\let\null\relax}
\def\noexpands@{\the\noexpandtoks@}
\def\Nonexpanding#1{\global\noexpandtoks@
 \expandafter{\the\noexpandtoks@\let#1\relax}}
\def\prevanish@{\saveskip@\z@\ifhmode\saveskip@\lastskip\unskip\fi}
\def\postvanish@{\ifdim\saveskip@>\z@\hskip\saveskip@\fi\FN@\postvanish@@}
\def\postvanish@@{\DN@.{}%
 \ifx\next\space@\ifdim\saveskip@>\z@\DN@. {}\fi\fi\next@.}
\def\invisible#1{\prevanish@\ignorespaces#1\unskip\postvanish@}
\def\vanishlist@{\\\invisible}
\let\noindent@\noindent
\def\noindent{\par\noindent@\FN@\pretendspace@}
\def\pretendspace@{\ismember@\vanishlist@\next
 \iftest@\nobreak\hskip-\p@\hskip\p@\fi}
\let\flushpar\noindent
\newtoks\everypartoks@
\def\noindent@@{\par\everypartoks@\expandafter{\the\everypar}\everypar{}%
 \noindent@\everypar\expandafter{\the\everypartoks@}}
\def\page{\Err@{\noexpand\page has no meaning by itself}}
\let\page@C\pageno
\let\page@P\empty
\let\page@Q\empty
\def\page@S#1{#1\/}
\def\page@F{\rm}
\def\page@N{\arabic}   % cannot be \let
\newif\ifindexing@
\def\indexfile{\ifindexing@\else
 \alloc@@7\write\chardef\sixt@@n\ndx@
 \immediate\openout\ndx@=\jobname.ndx
 \global\indexing@true\fi}
\global\advance\insc@unt\m@ne
\ch@ck0\insc@unt\count
\ch@ck1\insc@unt\dimen
\ch@ck2\insc@unt\skip
\ch@ck4\insc@unt\box
\allocationnumber\insc@unt
\global\chardef\margin@\allocationnumber
\dimen\margin@\maxdimen
\count\margin@\z@
\skip\margin@\z@
\newif\ifindexproofing@
\def\indexproofing{\indexproofing@true}
\def\noindexproofing{\indexproofing@false}
\def\unmacro@#1:#2->#3\unmacro@{\def\macpar@{#2}\def\macdef@{#3}}
\def\starparts@#1{\def\stari@{#1}\def\starii@{#1}\let\stariii@\empty
 \test@false
 \DN@##1*##2##3\next@{\ifx\starparts@##2\test@false\else\test@true\fi}%
 \next@#1*\starparts@\next@
 \iftest@\DN@{\starparts@@#1\starparts@@}\else\let\next@\relax\fi\next@}
\def\starparts@@#1*#2\starparts@@{\def\starii@{#1}\def\stariii@{*#2}}
\def\windex@{\ifindexing@
 \expandafter\unmacro@\meaning\stari@\unmacro@
 \edef\macdef@{\string"\macdef@\string"}%
 \edef\next@{\write\ndx@{\macdef@}}\next@
 \write\ndx@{{\number\pageno}{\page@N}{\page@P}{\page@Q}}%
 \fi
 \ifindexproofing@
  \ifx\stariii@\empty\else
   \expandafter\unmacro@\meaning\stariii@\unmacro@\fi
  \insert\margin@{\hbox{\rm\vrule\height9\p@\depth2\p@\width\z@\starii@
  \ifx\stariii@\empty\else\tt\macdef@\fi}}\fi}
\catcode`\"=\active
\def"{\FN@\quote@}
\def\quote@{\ifx\next"\expandafter\quote@@\else\expandafter\quote@@@\fi}
\def\quote@@@#1"{\starparts@{#1}\starii@\windex@}
\def\quote@@"#1"{\prevanish@\starparts@{#1}\windex@\FN@\quote@@@@}
\def\quote@@@@{\ifx\next"\DN@"{\postvanish@}\else
 \let\next@\postvanish@\fi\next@}
\rightadd@"\to\vanishlist@
\def\idefine#1{\DN@{#1}\DNii@{\noexpand#1}%
 \afterassignment\idefine@\def\nextiii@}
\def\idefine@{\ifindexing@
 \expandafter\let\next@\nextiii@
 \expandafter\unmacro@\meaning\nextiii@\unmacro@
 \immediate\write\ndx@{\noexpand\define\nextii@\macpar@{\macdef@}}\fi}
\def\iabbrev*#1#2{\ifindexing@\toks@{#2}%
 \immediate\write\ndx@{\noexpand\abbrev*\noexpand#1{\the\toks@}}\fi}
\newread\laxread@
\newwrite\laxwrite@
\let\fnpages@\empty
\def\Finit@#1#2\Finit@{\let\nextii@#1\def\nextiii@{#2}}
\catcode`\~=11
\def\getparts@ @#1~#2~#3~#4~#5~#6{\def\nextiv@{#1}%
 \def\nextiii@{#2~#3~#4~#5~}\count@#6\relax}
\newif\ifdocument@
\def\document{\ifdocument@\else\global\document@true
 \let\fontlist@\empty
 \immediate\openin\laxread@=\jobname.lax\relax
 {\endlinechar\m@ne\noexpands@\catcode`\@=11 \catcode`\~=11
  \loop\ifeof\laxread@\else
   \read\laxread@ to\next@
   \ifx\next@\empty
   \else
    \expandafter\Finit@\next@\Finit@
    \if\nextii@ F%
     \expandafter\rightadd@\nextiii@\to\fnpages@
    \else
     \expandafter\getparts@\next@
     \edef\next@{\gdef\csname\nextiv@ @L\endcsname{\nextiii@\number\count@}}%
     \next@
    \fi
   \fi
  \repeat}%
 \immediate\closein\laxread@
 \immediate\openout\laxwrite@=\jobname.lax\relax\fi}
\let\thelabel@\relax
\def\thelabels@{\thelabel@ ~\thelabel@@ ~\thelabel@@@ ~\thelabel@@@@ ~}
\def\label#1{\prevanish@
 \ifx\thelabel@\relax
  \Err@{There's nothing here to be labelled}%
 \else
  {\noexpands@
  \expandafter\ifx\csname#1@L\endcsname\relax
   \expandafter\xdef\csname#1@L\endcsname{\thelabels@0}%
   \immediate\write\laxwrite@{@#1~\thelabels@1}%
  \else
   \edef\next@{@~\csname#1@L\endcsname}%
    \expandafter\getparts@\next@
    \ifodd\count@
    \expandafter\xdef\csname#1@L\endcsname{\thelabels@0}%
    \immediate\write\laxwrite@{@#1~\thelabels@1}%
   \else
    \Err@{Label #1 already used}%
   \fi
  \fi
  }%
 \fi
 \postvanish@}
\rightadd@\label\to\vanishlist@
\def\thepages@{\page@N{\number\page@C}~%
 \page@S{\page@P\page@N{\number\page@C}\page@Q}~%
 \number\page@C ~\page@P\page@N{\number\page@C}\page@Q ~}
\def\pagelabel#1{\prevanish@
 \expandafter\ifx\csname#1@L\endcsname\relax
  {\noexpands@
  \expandafter\xdef\csname#1@L\endcsname{\thepages@2}}%
  \write\laxwrite@{@#1~\thepages@3}%
 \else
  {\noexpands@
  \edef\next@{@~\csname#1@L\endcsname}%
  \expandafter\getparts@\next@
  \ifodd\count@
   \ifnum\count@=\@ne
    \expandafter\xdef\csname#1@L\endcsname{\thelabels@2}%
   \fi
   \write\laxwrite@{@#1~\thepages@3}%
  \else
   \Err@{Label #1 already used}%
  \fi
  }%
 \fi
 \postvanish@}
\rightadd@\pagelabel\to\vanishlist@
\newif\ifreferr@
\referr@true
\def\RefErrors{\global\referr@true}
\def\RefWarnings{\global\referr@false}
\setbox\z@\hbox{\global\count@=`^^30}
\ifnum\count@=48 \let\versionthree@\relax\fi
\def\nolabel@#1#2#3{\expandafter\ifx\csname#2@L\endcsname\relax
 \ifreferr@\Err@{No \noexpand\label found for #2}\else
 \W@{Warning: No \noexpand\label found for #2.}%
 \ifx\versionthree@\relax\W@{l.\number\inputlineno\space ... \string#1{#2}}\fi
 \fi#3\else}
\def\csL@#1{{\noexpands@\xdef\Next@{\csname#1@L\endcsname}}}
\def\ref#1{\nolabel@\ref{#1}\relax
 \DNii@##1~##2\nextii@{##1}%
 \csL@{#1}\expandafter\nextii@\Next@\nextii@\fi}
\def\Ref#1{\nolabel@\Ref{#1}\relax
 \DNii@##1~##2~##3\nextii@{##2}%
 \csL@{#1}\expandafter\nextii@\Next@\nextii@\fi}
\def\nref#1{\nolabel@\nref{#1}\relax
 \DNii@##1~##2~##3~##4\nextii@{##3}%
 \csL@{#1}\expandafter\nextii@\Next@\nextii@\fi}
\def\pref#1{\nolabel@\pref{#1}\relax
 \DNii@##1~##2~##3~##4~##5\nextii@{##4}%
 \csL@{#1}\expandafter\nextii@\Next@\nextii@\fi}
\let\pref@\pref
\def\Evaluatenref#1{\nolabel@\Evaluatenref{#1}{\gdef\Nref{-10000 }}%
 \DNii@##1~##2~##3~##4\nextii@{\DNii@{##3}}%
 \csL@{#1}\expandafter\nextii@\Next@\nextii@
 \xdef\Nref{\nextii@}\fi}
\def\Evaluatepref#1{\nolabel@\Evaluatepref{#1}{\global\let\Pref\empty}%
 \DNii@##1~##2~##3~##4~##5\nextii@{\DNii@{##4}}%
 \csL@{#1}\expandafter\nextii@\Next@\nextii@
 \xdef\Pref{\nextii@}\fi}
\def\readlax#1{\immediate\openin\laxread@=#1.lax\relax
 \ifeof\laxread@\W@{}\W@{File #1.lax not found.}\W@{}\fi
 {\endlinechar\m@ne\noexpands@\catcode`\@=11 \catcode`\~=11
  \loop\ifeof\laxread@\else
   \read\laxread@ to\nextv@
   \ifx\nextv@\empty
   \else
    \expandafter\Finit@\nextv@\Finit@
    \ifx\nextii@ F%
    \else
     \expandafter\getparts@\nextv@
     \expandafter\ifx\csname\nextiv@ @L\endcsname\relax
      \edef\next@{\gdef\csname\nextiv@ @L\endcsname
       {\nextiii@\ifnum\count@=\@ne0\else2\fi}}%
      \next@
     \else
      \Err@{Label \nextiv@\space in #1.lax already used}%
     \fi
    \fi
   \fi
  \repeat}%
 \immediate\closein\laxread@}
\catcode`\~=\active
\def\docstyle#1{\input #1.st\relax}
\def\predocstyle#1{\input #1.stf\relax}
\def\postdocstyle#1{\input #1.stb\relax}
\def\FNSSP@{\FNSS@\pretendspace@}
\everydisplay{\csname displaymath \endcsname}
\expandafter\def\csname displaymath \endcsname#1$${#1$$\FNSSP@}
\def\locallabel@{\let\thelabel@\Thelabel@\let\thelabel@@\Thelabel@@
 \let\thelabel@@@\Thelabel@@@\let\thelabel@@@@\Thelabel@@@@}
\newcount\tag@C
\tag@C\z@
\let\tag@P\empty
\let\tag@Q\empty
\def\tag@S#1{{\rm(}{#1\/}{\rm)}}
\let\tag@N\arabic
\def\tag@F{\rm}
\def\maketag@{\FN@\maketag@@}
\def\maketag@@{\ifx\next\relax\DN@\relax{\FN@\maketag@@}\else
 \ifx\next"\let\next@\maketag@@@\else
 \let\next@\maketag@@@@\fi\fi\next@}
\def\xdefThelabel@#1{\xdef\Thelabel@{#1{\Thelabel@@@}}}
\def\xdefThelabel@@#1{\xdef\Thelabel@@{#1{\Thelabel@@@@}}}
\def\maketag@@@@#1\maketag@{\global\advance\tag@C\@ne
 {\noexpands@
  \xdef\Thelabel@@@{\number\tag@C}%
  \xdefThelabel@\tag@N
  \xdef\Thelabel@@@@{\ifmathtags@$\tag@P\Thelabel@\tag@Q$\else
   \tag@P\Thelabel@\tag@Q\fi}%
  \xdefThelabel@@\tag@S
  }%
 \locallabel@
 \hbox{\tag@F\thelabel@@}%
 #1}
\def\Qlabel@#1{{\noexpands@\xdef\Thelabel@@{#1}%
 \let\style\empty\xdef\Thelabel@@@@{#1}%
 \let\pre\empty\let\post\empty\xdef\Thelabel@{#1}%
 \let\numstyle\empty\xdef\Thelabel@@@{#1}}}
\def\maketag@@@"#1"#2\maketag@{%
 {\let\pre\tag@P\let\post\tag@Q\let\style\tag@S\let\numstyle\tag@N
  \hbox{\tag@F#1}%
  \noexpands@
  \Qlabel@{#1}%
  }%
 \locallabel@
 #2}
\def\align@{\inalign@true\inany@true
 \vspace@\allowdisplaybreak@\displaybreak@\intertext@
 \def\tag{\global\tag@true\ifnum\and@=\z@
  \DN@{&\omit\global\rwidth@\z@&\relax}\else
  \DN@{&\relax}\fi\next@}%
 \iftagsleft@\DN@{\csname align \endcsname}\else
  \DN@{\csname align \space\endcsname}\fi\next@}
\def\noset@{\def\Offset##1##2{\prevanish@\postvanish@}%
 \def\Reset##1##2{\prevanish@\postvanish@}}
\def\measure@#1\endalign{\global\lwidth@\z@\global\rwidth@\z@
 \global\maxlwidth@\z@\global\maxrwidth@\z@
 \global\and@\z@
 \setbox\z@\vbox
  {\noset@\everycr{\noalign{\global\tag@false\global\and@\z@}}\Let@
  \halign{\setboxz@h{$\m@th\displaystyle{\@lign##}$}%
   \global\lwidth@\wdz@
   \ifdim\lwidth@>\maxlwidth@\global\maxlwidth@\lwidth@\fi
   \global\advance\and@\@ne
   &\setboxz@h{$\m@th\displaystyle{{}\@lign##}$}\global\rwidth@\wdz@
   \ifdim\rwidth@>\maxrwidth@\global\maxrwidth@\rwidth@\fi
   \global\advance\and@\@ne
   &\Tag@\eat@{##}\crcr#1\crcr}}%
 \totwidth@\maxlwidth@\advance\totwidth@\maxrwidth@}
\def\prepost@{\global\let\tag@P@\tag@P\global\let\tag@Q@\tag@Q}
\def\reprepost@{\let\tag@P\tag@P@\let\tag@Q\tag@Q@}
\expandafter\def\csname align \space\endcsname#1\endalign
 {\measure@#1\endalign\global\and@\z@
 \ifingather@\everycr{\noalign{\global\and@\z@}}\else\displ@y@\fi
 \Let@\tabskip\centering@
 \halign to\displaywidth
  {\hfil\strut@\setboxz@h{$\m@th\displaystyle{\@lign##\prepost@}$}%
  \boxz@\global\advance\and@\@ne
  \tabskip\z@skip
  &\setboxz@h{$\m@th\displaystyle{{}\@lign##\prepost@}$}%
  \global\rwidth@\wdz@\boxz@\hfil\global\advance\and@\@ne
  \tabskip\centering@
  &\setboxz@h{\@lign\strut@\reprepost@\maketag@##\maketag@}%
  \dimen@\displaywidth\advance\dimen@-\totwidth@
  \divide\dimen@\tw@\advance\dimen@\maxrwidth@\advance\dimen@-\rwidth@
  \ifdim\dimen@<\tw@\wdz@\llap{\vtop{\normalbaselines\null\boxz@}}%
  \else\llap{\boxz@}\fi
  \tabskip\z@skip
  \crcr#1\crcr
  \black@\totwidth@}}
\expandafter\def\csname align \endcsname#1\endalign{\measure@#1\endalign
 \global\and@\z@
 \ifdim\totwidth@>\displaywidth\let\displaywidth@\totwidth@\else
  \let\displaywidth@\displaywidth\fi
 \ifingather@\everycr{\noalign{\global\and@\z@}}\else\displ@y@\fi
 \Let@\tabskip\centering@\halign to\displaywidth
  {\hfil\strut@\setboxz@h{$\m@th\displaystyle{\@lign##\prepost@}$}%
  \global\lwidth@\wdz@\global\lineht@\ht\z@
  \boxz@\global\advance\and@\@ne
  \tabskip\z@skip&\setboxz@h{$\m@th\displaystyle{{}\@lign##\prepost@}$}%
  \ifdim\ht\z@>\lineht@\global\lineht@\ht\z@\fi
  \boxz@\hfil\global\advance\and@\@ne
  \tabskip\centering@&\kern-\displaywidth@
  \setboxz@h{\@lign\strut@\reprepost@\maketag@##\maketag@}%
  \dimen@\displaywidth\advance\dimen@-\totwidth@
  \divide\dimen@\tw@\advance\dimen@\maxlwidth@\advance\dimen@-\lwidth@
  \ifdim\dimen@<\tw@\wdz@
   \rlap{\vbox{\normalbaselines\boxz@\vbox to\lineht@{}}}\else
   \rlap{\boxz@}\fi
  \tabskip\displaywidth@\crcr#1\crcr\black@\totwidth@}}
\def\attag@#1{\let\Maketag@\maketag@\let\TAG@\Tag@
 \let\Prepost@\prepost@\let\Reprepost@\reprepost@
 \let\Tag@\relax\let\maketag@\relax
 \let\prepost@\relax\let\reprepost@\relax
 \ifmeasuring@
  \def\llap@##1{\setboxz@h{##1}\hbox to\tw@\wdz@{}}%
  \def\rlap@##1{\setboxz@h{##1}\hbox to\tw@\wdz@{}}%
 \else\let\llap@\llap\let\rlap@\rlap\fi
 \toks@{\hfil\strut@
  $\m@th\displaystyle{\@lign\the\hashtoks@\prepost@}$%
  \tabskip\z@skip\global\advance\and@\@ne&
  $\m@th\displaystyle{{}\@lign\the\hashtoks@\prepost@}$\hfil
  \ifxat@\tabskip\centering@\fi\global\advance\and@\@ne}%
 \iftagsleft@
  \toks@@{\tabskip\centering@&\Tag@\kern-\displaywidth
   \rlap@{\@lign\reprepost@\maketag@\the\hashtoks@\maketag@}%
   \global\advance\and@\@ne\tabskip\displaywidth}\else
  \toks@@{\tabskip\centering@&\Tag@\llap@{\@lign\reprepost@\maketag@
   \the\hashtoks@\maketag@}\global\advance\and@\@ne\tabskip\z@skip}\fi
 \atcount@#1\relax\advance\atcount@\m@ne
 \loop\ifnum\atcount@>\z@
  \toks@\expandafter{\the\toks@&\hfil$\m@th\displaystyle{\@lign
  \the\hashtoks@\prepost@}$\global\advance\and@\@ne
  \tabskip\z@skip
  &$\m@th\displaystyle{{}\@lign\the\hashtoks@\prepost@}$\hfil\ifxat@
  \tabskip\centering@\fi\global\advance\and@\@ne}\advance\atcount@\m@ne
 \repeat
 \edef\preamble@{\the\toks@\the\toks@@}%
 \edef\preamble@@{\preamble@}%
 \let\maketag@\Maketag@\let\Tag@\TAG@
 \let\prepost@\Prepost@\let\reprepost@\Reprepost@}
\def\unlabel@{\def\label##1{\prevanish@\postvanish@}%
 \def\pagelabel##1{\prevanish@\postvanish@}}
\newcount\tag@CC
\expandafter\def\csname alignat \endcsname#1#2\endalignat
 {\inany@true\xat@false
 \def\tag{\global\tag@true
  \count@#1\relax\multiply\count@\tw@\advance\count@\m@ne
  \gdef\tag@{&}%
  \loop\ifnum\count@>\and@\xdef\tag@{&\omit\tag@}%
  \advance\count@\m@ne\repeat
  \tag@\relax}%
 \vspace@\allowdisplaybreak@\displaybreak@\intertext@
 \displ@y@\measuring@true\tag@CC\tag@C
 \setbox\savealignat@\hbox{\noset@\unlabel@$\m@th\displaystyle\Let@
  \attag@{#1}\vbox{\halign{\span\preamble@@\crcr#2\crcr}}$}%
 \measuring@false
 \Let@\attag@{#1}\tag@C\tag@CC
 \tabskip\centering@\halign to\displaywidth
  {\span\preamble@@\crcr#2\crcr\black@{\wd\savealignat@}}}
\expandafter\def\csname xalignat \endcsname#1#2\endxalignat
 {\inany@true\xat@true
 \def\tag{\global\tag@true
  \count@#1\relax\multiply\count@\tw@\advance\count@\m@ne
  \gdef\tag@{&}%
  \loop\ifnum\count@>\and@\xdef\tag@{&\omit\tag@}%
  \advance\count@\m@ne\repeat
  \tag@\relax}%
 \vspace@\allowdisplaybreak@\displaybreak@\intertext@
 \displ@y@\measuring@true\tag@CC\tag@C
 \setbox\savealignat@\hbox{\noset@\unlabel@$\m@th\displaystyle\Let@
  \attag@{#1}\vbox{\halign{\span\preamble@@\crcr#2\crcr}}$}%
 \measuring@false\Let@\attag@{#1}\tag@C\tag@CC
 \tabskip\centering@\halign to\displaywidth
 {\span\preamble@@\crcr#2\crcr\black@{\wd\savealignat@}}}
\def\gather{\RIfMIfI@\DN@{\onlydmatherr@\gather}\else
 \ingather@true\inany@true\def\tag{&\relax}%
 \vspace@\allowdisplaybreak@\displaybreak@\intertext@
 \displ@y\Let@
 \iftagsleft@\DN@{\csname gather \endcsname}\else
  \DN@{\csname gather \space\endcsname}\fi\fi
 \else\DN@{\onlydmatherr@\gather}\fi\next@}
\def\exstring@{\expandafter\eat@\string}
\def\newcounter#1{\define#1{}%
 \edef\next@{\def\noexpand#1{\futurelet\noexpand\next
  \csname\exstring@#1@Z\endcsname}}\next@
 \edef\next@{\def\csname\exstring@#1@Z\endcsname
  {\global\advance\csname\exstring@#1@C\endcsname\@ne
  {\csname\exstring@#1@F\endcsname\csname\exstring@#1@S\endcsname
   {\csname\exstring@#1@P\endcsname\csname\exstring@#1@N\endcsname
   {\noexpand\number\csname\exstring@#1@C\endcsname}%
   \csname\exstring@#1@Q\endcsname}}%
  \noexpand\ifx\noexpand\next\noexpand\label
   \def\noexpand\next@\noexpand\label########1{{\noexpand\noexpands@
    \xdef\noexpand\Thelabel@{\csname\exstring@#1@N\endcsname
     {\noexpand\number\csname\exstring@#1@C\endcsname}}%
    \xdef\noexpand\Thelabel@@@{\noexpand\number
     \csname\exstring@#1@C\endcsname}%
    \xdef\noexpand\Thelabel@@{\csname\exstring@#1@S\endcsname
     {\csname\exstring@#1@P\endcsname
     \csname\exstring@#1@N\endcsname
     {\noexpand\number\csname\exstring@#1@C\endcsname}%
     \csname\exstring@#1@Q\endcsname}}%
    \xdef\noexpand\Thelabel@@@@{\csname\exstring@#1@P\endcsname
     \csname\exstring@#1@N\endcsname
     {\noexpand\number\csname\exstring@#1@C\endcsname}%
     \csname\exstring@#1@Q\endcsname}}%
    {\noexpand\locallabel@\noexpand\label{########1}}}%
   \noexpand\else\let\noexpand\next@\relax\noexpand\fi\noexpand\next@}}\next@
 \expandafter\newcount@\csname\exstring@#1@C\endcsname
 \expandafter\let\csname\exstring@#1@N\endcsname\arabic
 \expandafter\def\csname\exstring@#1@S\endcsname##1{##1\/}%
 \expandafter\let\csname\exstring@#1@P\endcsname\empty
 \expandafter\let\csname\exstring@#1@Q\endcsname\empty
 \expandafter\def\csname\exstring@#1@F\endcsname{\rm}%
 }
\def\HASH@#1#2{\ifnum#2=\z@\else
 \edef\next@{\toks@{\the\toks@\the\hashtoks@#2}%
 \toks@@{\the\toks@@{\the\hashtoks@#2}}}\next@\expandafter\HASH@\fi}
\def\HASH@@{\toks@{}\toks@@{}\expandafter\HASH@\macpar@00}
\def\usecounter#1#2{\expandafter\ifx\csname\exstring@#1@Z\endcsname
 \relax\Err@{\noexpand#1not created with \string\newcounter}\fi
 \expandafter\let\csname\exstring@#1@@Z\endcsname\relax
 \expandafter\let\csname\exstring@#1@@Z@\endcsname\relax
 \expandafter\let\csname\exstring@#1@@Z@@\endcsname\relax
 \edef\next@{\def\noexpand#2{\futurelet\noexpand\next
  \csname\exstring@#1@@Z\endcsname}}\next@
 \edef\next@{\def\csname\exstring@#1@@Z\endcsname{\noexpand\ifx
  \noexpand\next\noexpand\label\def\noexpand\next@\noexpand\label
   ########1{\csname\exstring@#1@@Z@\endcsname
   {\noexpand#1\noexpand\label{########1}}}%
   \noexpand\else\noexpand\ifx\noexpand\next
   \noexpand"\def\noexpand\next@\noexpand"########1\noexpand"%
   {\csname\exstring@#1@@Z@\endcsname{{\expandafter\noexpand
   \csname\exstring@#1@F\endcsname
   \let\noexpand\pre\expandafter\noexpand\csname\exstring@#1@P\endcsname
   \let\noexpand\post\expandafter\noexpand\csname\exstring@#1@Q\endcsname
   \let\noexpand\style\expandafter\noexpand\csname\exstring@#1@S\endcsname
   \let\noexpand\numstyle\expandafter\noexpand\csname\exstring@#1@N\endcsname
   ########1}}}\noexpand\else
   \def\noexpand\next@{\csname\exstring@#1@@Z@\endcsname{\noexpand#1}}%
   \noexpand\fi\noexpand\fi\noexpand\next@}}\next@
 \def\next@{\expandafter\expandafter\expandafter\unmacro@\expandafter
  \meaning\csname\exstring@#1@@Z@@\endcsname\unmacro@
  \HASH@@
  \edef\next@{\def\csname\exstring@#1@@Z@\endcsname\the\toks@{%
   \expandafter\noexpand\csname\exstring@#1@@Z@@\endcsname\the\toks@@
   \noexpand\FNSSP@}}\next@}%
 \afterassignment\next@
 \expandafter\def\csname\exstring@#1@@Z@@\endcsname}
\def\listbi@{\penalty50 \medskip}
\def\listbii@{\penalty100 \smallskip}
\let\listbiii@\relax
\let\listbiv@\relax
\let\listbv@\relax
\def\listmi@{\advance\leftskip30\p@\relax}
\let\listmii@\listmi@
\let\listmiii@\listmi@
\let\listmiv@\listmi@
\let\listmv@\listmi@
\def\itemi@#1{\noindent@@\llap{#1\hskip5\p@}}
\let\itemii@\itemi@
\let\itemiii@\itemi@
\let\itemiv@\itemi@
\let\itemv@\itemi@
\def\liste@{\penalty-50 \medskip}
\def\listei@{\penalty-100 \smallskip}
\let\listeii@\relax
\let\listeiii@\relax
\let\listeiv@\relax
\expandafter\newcount\csname list@C1\endcsname
\csname list@C1\endcsname\z@
\expandafter\newcount\csname list@C2\endcsname
\csname list@C2\endcsname\z@
\expandafter\newcount\csname list@C3\endcsname
\csname list@C3\endcsname\z@
\expandafter\newcount\csname list@C4\endcsname
\csname list@C4\endcsname\z@
\expandafter\newcount\csname list@C5\endcsname
\csname list@C5\endcsname\z@
\expandafter\let\csname list@P1\endcsname\empty
\expandafter\let\csname list@P2\endcsname\empty
\expandafter\let\csname list@P3\endcsname\empty
\expandafter\let\csname list@P4\endcsname\empty
\expandafter\let\csname list@P5\endcsname\empty
\expandafter\let\csname list@Q1\endcsname\empty
\expandafter\let\csname list@Q2\endcsname\empty
\expandafter\let\csname list@Q3\endcsname\empty
\expandafter\let\csname list@Q4\endcsname\empty
\expandafter\let\csname list@Q5\endcsname\empty
\expandafter\def\csname list@S1\endcsname#1{{\rm(}{#1\/}{\rm)}}
\expandafter\def\csname list@S2\endcsname#1{{\rm(}{#1\/}{\rm)}}
\expandafter\def\csname list@S3\endcsname#1{{\rm(}{#1\/}{\rm)}}
\expandafter\def\csname list@S4\endcsname#1{{\rm(}{#1\/}{\rm)}}
\expandafter\def\csname list@S5\endcsname#1{{\rm(}{#1\/}{\rm)}}
\expandafter\let\csname list@N1\endcsname\arabic
\expandafter\let\csname list@N2\endcsname\arabic
\expandafter\let\csname list@N3\endcsname\arabic
\expandafter\let\csname list@N4\endcsname\arabic
\expandafter\let\csname list@N5\endcsname\arabic
\expandafter\def\csname list@F1\endcsname{\rm}
\expandafter\def\csname list@F2\endcsname{\rm}
\expandafter\def\csname list@F3\endcsname{\rm}
\expandafter\def\csname list@F4\endcsname{\rm}
\expandafter\def\csname list@F5\endcsname{\rm}
\newcount\listlevel@
\listlevel@\z@
\def\list@@C{\csname list@C\number\listlevel@\endcsname}
\def\list@@P{\csname list@P\number\listlevel@\endcsname}
\def\list@@Q{\csname list@Q\number\listlevel@\endcsname}
\def\list@@S{\csname list@S\number\listlevel@\endcsname}
\def\list@@N{\csname list@N\number\listlevel@\endcsname}
\def\list@@F{\csname list@F\number\listlevel@\endcsname}
\newif\iffirstitemi@
\newif\iffirstitemii@
\newif\iffirstitemiii@
\newif\iffirstitemiv@
\newif\iffirstitemv@
\def\Firstitem@true{\csname firstitem\romannumeral\listlevel@
 @true\endcsname}
\def\Firstitem@false{\csname firstitem\romannumeral\listlevel@
 @false\endcsname}
\def\Listm@{\csname listm\romannumeral\listlevel@ @\endcsname}
\def\Item@{\csname item\romannumeral\listlevel@ @\endcsname}
\def\Liste@{\csname liste\romannumeral\listlevel@ @\endcsname}
\newif\iflistcontinue@
\def\keepitem{\listcontinue@true}
\newcount\list@C@
\def\list{%
 \iflistcontinue@\csname list@C1\endcsname\csname list@C@\endcsname\fi
 \global\csname list@C2\endcsname\z@
 \global\csname list@C3\endcsname\z@
 \global\csname list@C4\endcsname\z@
 \global\csname list@C5\endcsname\z@
 \begingroup
 \firstitemi@true
 \listlevel@\@ne
 \def\item{\FN@\item@}%
 \FN@\list@}
\Invalid@\runinitem
\def\list@{\ifx\next\par
 \DN@\par{\FN@\list@}\else
 \ifx\next\runinitem
  \DN@\runinitem{\FN@\runinitem@}\else
  \DN@{\par\dimen@\parskip\parskip\dimen@}\fi\fi\next@}
\newif\ifoutlevel@
\newif\ifrunin@
\def\item@{%
 \ifoutlevel@\Liste@\outlevel@false\fi
 \ifrunin@\runin@false\par
  \dimen@\parskip\parskip\dimen@
  \Listm@\fi
 \iffirstitemi@\listbi@\listmi@\firstitemi@false\else\par\fi
 \iffirstitemii@\listbii@\listmii@\firstitemii@false\else\par\fi
 \iffirstitemiii@\listbiii@\listmiii@\firstitemiii@false\else\par\fi
 \iffirstitemiv@\listbiv@\listmiv@\firstitemiv@false\else\par\fi
 \iffirstitemv@\listbv@\listmv@\firstitemv@false\else\par\fi
 \DN@"##1"{{\let\pre\list@@P\let\post\list@@Q
  \let\style\list@@S\let\numstyle\list@@N
  \vskip-\parskip
  \Item@{\list@@F##1}%
  \noexpands@
  \Qlabel@{##1}}%
  \locallabel@
  \FNSSP@}%
 \DNii@{\global\advance\list@@C\@ne
  {\noexpands@
   \xdef\Thelabel@@@{\number\list@@C}%
   \xdefThelabel@\list@@N
   \xdef\Thelabel@@@@{\list@@P\Thelabel@\list@@Q}%
   \xdefThelabel@@\list@@S
  }%
  \locallabel@
  \vskip-\parskip
  \Item@{\list@@F\thelabel@@}%
  \FN@\pretendspace@}%
 \ifx\next"\expandafter\next@\else\expandafter\nextii@\fi}
\def\runinitem@{%
  \runin@true
  \Firstitem@false
  \DN@"##1"{{\let\pre\list@@P\let\post\list@@Q
   \let\style\list@@S\let\numstyle\list@@N
   \unskip\space{\list@@F##1} %
   \noexpands@
   \Qlabel@{##1}}%
   \locallabel@
   \ignorespaces}%
  \DNii@{\global\advance\list@@C\@ne
   {\noexpands@
    \xdef\Thelabel@@@{\number\list@@C}%
    \xdefThelabel@\list@@N
    \xdef\Thelabel@@@@{\list@@P\Thelabel@\list@@Q}%
    \xdefThelabel@@\list@@S
   }%
   \locallabel@
   \unskip\space{\list@@F\thelabel@@} }%
  \ifx\next"\expandafter\next@\else\expandafter\nextii@\fi}
\def\inlevel{\ifnum\listlevel@=5
 \DN@{\Err@{Already 5 levels down}}\else
 \DN@{\begingroup\advance\listlevel@\@ne
 \Firstitem@true\FN@\inlevel@}\fi\next@}
\def\inlevel@{\ifx\next\par
 \DN@\par{\FN@\inlevel@}\else
 \ifx\next\runinitem
  \DN@\runinitem{\FN@\runinitem@}\else
  \let\next@\relax\fi\fi\next@}
\def\outlevel{\ifnum\listlevel@=\@ne
 \Err@{At top level}\else
 \par\global\list@@C\z@\endgroup\outlevel@true\fi}
\def\endlist{%
 \expandafter\global\csname list@C@\endcsname\csname list@C1\endcsname
 \par
 \global\toks\@ne{}\count@\listlevel@
 {\loop
  \ifnum\count@>\z@\global\toks\@ne\expandafter{\the\toks\@ne\endgroup}%
  \advance\count@\m@ne
  \repeat}%
 \the\toks\@ne
 \liste@
 \listcontinue@false\global\csname list@C1\endcsname\z@
 \vskip-\parskip
 \noindent@@
 \FN@\pretendspace@}
\newif\iffirstdescribe@
\def\describe{\par
 \begingroup\firstdescribe@true
 \def\item##1{%
  \iffirstdescribe@\penalty50 \medskip\vskip-\parskip
  \firstdescribe@false\else\par\fi
  \noindent@@\hangindent2pc\hangafter\@ne
  {\bf##1}\hskip.5em}}
\def\enddescribe{\par\penalty-50 \medskip\vskip-\parskip\endgroup}
\Invalid@\pullin
\Invalid@\pullinmore
\newif\iffirstpull@
\def\margins{\par\begingroup\firstpull@true
 \def\pullin##1##2{\par
  \iffirstpull@\firstpull@false\else\endgroup\fi
  \begingroup\DN@{##1}%
  \ifx\next@\empty\leftskip\z@\else\ifx\next@\space\leftskip\z@
  \else\leftskip##1\fi\fi
  \DN@{##2}\ifx\next@\empty\rightskip\z@\else\ifx\next@\space
  \rightskip\z@\else\rightskip##2\fi\fi\ignorespaces}%
 \def\pullinmore##1##2{\par
  \xdef\Next@{\leftskip\the\leftskip\relax\rightskip\the\rightskip\relax}%
  \iffirstpull@\firstpull@false\else\endgroup\fi
  \begingroup\Next@
  \DN@{##1}%
  \ifx\next@\empty\else\ifx\next@\space\else\advance\leftskip##1\fi\fi
  \DN@{##2}\ifx\next@\empty\else\ifx\next@\space\else
  \advance\rightskip##2\fi\fi\ignorespaces}}
\def\endmargins{\par\endgroup\endgroup}
\newif\ifnopunct@
\newif\ifnospace@
\newif\ifoverlong@
\let\nofrillslist@\empty
\let\overlonglist@\empty
\def\nopunct{\nopunct@true\FN@\nopunct@}
\def\nospace{\nospace@true\FN@\nospace@}
\def\overlong{\overlong@true\FN@\overlong@}
\def\nopunct@{\ifx\next\nospace
 \DN@\nospace{\nospace@true\FN@\nopnos@}\else\ifx\next\overlong
 \DN@\overlong{\overlong@true\FN@\nopol@}\else
 \let\next@\nopunct@@\fi\fi\next@}
\def\nopunct@@#1{\ismember@\nofrillslist@#1%
 \iftest@\let\next@#1\else
 \DN@{\nopunct@false\Err@{\noexpand\nopunct can't be used with
 \string#1}#1}\fi\next@}
\def\nospace@{\ifx\next\nopunct
 \DN@\nopunct{\nopunct@true\FN@\nopnos@}\else\ifx\next\overlong
 \DN@\overlong{\overlong@true\FN@\nosol@}\else
 \let\next@\nospace@@\fi\fi\next@}
\def\nospace@@#1{\ismember@\nofrillslist@#1%
 \iftest@\let\next@#1\else
 \DN@{\nospace@false\Err@{\noexpand\nospace can't be used with
 \string#1}#1}\fi\next@}
\def\overlong@{\ifx\next\nopunct
 \DN@\nopunct{\nopunct@true\FN@\nopol@}\else\ifx\next\nospace
 \DN@\nospace{\nospace@true\FN@\nosol@}\else
 \let\next@\overlong@@\fi\fi\next@}
\def\overlong@@#1{\ismember@\overlonglist@#1%
 \iftest@\let\next@#1\else
 \DN@{\overlong@false\Err@{\noexpand\overlong can't be used with
 \string#1}#1}\fi\next@}
\def\nopnos@{\ifx\next\overlong
 \DN@\overlong{\overlong@true\nopnosol@}\else
 \let\next@\nopnos@@\fi\next@}
\def\nopol@{\ifx\next\nospace
 \DN@\nospace{\nospace@true\nopnosol@}\else
 \let\next@\nopol@@\fi\next@}
\def\nosol@{\ifx\next\nopunct
 \DN@\nopunct{\nopunct@true\nopnosol@}\else
 \let\next@\nosol@@\fi\next@}
\def\nopnos@@#1{\ismember@\nofrillslist@#1%
 \iftest@\let\next@#1\else
 \DN@{\nopunct@false\nospace@false
  \Err@{\noexpand\nopunct\noexpand\nospace
   can't be used with \string#1}#1}\fi\next@}
\def\testii@#1{\ismember@\nofrillslist@#1%
 \iftest@\let\nextiii@ T\else\let\nextiii@ F\fi
 \ismember@\overlonglist@#1%
 \iftest@\let\nextiv@ T\else\let\nextiv@ F\fi
 \test@false\if\nextiii@ T\if\nextiv@ T\test@true\fi\fi}
\def\nopol@@#1{\testii@{#1}%
 \iftest@\let\next@#1%
 \else\DN@{\if\nextiii@ T\else\nopunct@false\fi
  \if\nextiv@ T\else\overlong@false\fi
  \Err@{\if\nextiii@ T\else\noexpand\nopunct\fi
  \if\nextiv@ T\else\noexpand\overlong\fi can't be used
  with \string#1}#1}\fi\next@}
\def\nosol@@#1{\testii@{#1}%
 \iftest@\let\next@#1%
 \else\DN@{\if\nextiii@ T\else\nospace@false\fi
  \if\nextiv@ T\else\overlong@false\fi
  \Err@{\if\nextiii@ T\else\noexpand\nospace\fi
  \if\nextiv@ T\else\noexpand\overlong\fi can't be used
  with \string#1}#1}\fi\next@}
\def\nopnosol@#1{\testii@{#1}%
 \iftest@\let\next@#1%
 \else\DN@{\if\nextiii@ T\else\nopunct@false\nospace@false\fi
  \if\nextiv@ T\else\overlong@false\fi
  \Err@{\if\nextiii@ T\else\noexpand\nopunct\noexpand\nospace\fi
  \if\nextiv@ T\else\noexpand\overlong\fi can't be used
  with \string#1}#1}\fi\next@}
\def\punct@#1{\ifnopunct@\else#1\fi}
\def\addspace@#1{\ifnospace@\else#1\fi}
\def\hss@{\ifoverlong@\z@ plus\@m\p@ minus\@m\p@
 \else \z@ plus\@m\p@\fi}
\rightadd@\demo\to\nofrillslist@
\newif\ifclaim@
\def\exxx@{\expandafter\expandafter\expandafter\eat@\expandafter\string}
\let\colon@:
\def\demo#1{\ifclaim@
 \Err@{Previous \expandafter\noexpand\claimtype@ has
  no matching \string\end\exxx@\claimtype@}%
 \let\next@\relax
 \else
  \par
  \ifdim\lastskip<\smallskipamount\removelastskip\smallskip\fi
  \begingroup
  \noindent@@{\smc\ignorespaces#1\unskip
   \punct@{\null\colon@}\addspace@\enspace}%
  \nopunct@false\nospace@false
  \rm
  \DN@{\FNSSP@}%
 \fi
 \next@}
\def\enddemo{\par\endgroup\nopunct@false\nospace@false\smallskip}
\rightadd@\claim\to\nofrillslist@
\def\claim@F{\smc}
\def\claim@@@F{\csname\exxx@\claimtype@ @F\endcsname}
\def\claimformat@#1#2#3{%
 \medbreak\noindent@@{\smc#1 {\claim@@@F#2} #3%
 \punct@{\null.}\addspace@\enspace}\sl}
\def\claimformat@@#1#2{\claimformat@{\ignorespaces#1\unskip}%
 {\ifx\thelabel@@\empty\unskip\else\thelabel@@\fi}%
 {\ignorespaces#2\unskip}%
 \let\Claimformat@@\claimformat@@\FNSSP@}
\let\Claimformat@@\claimformat@@
\def\claim@@@P{\csname\exxx@\claimtype@ @P\endcsname}
\def\claim@@@Q{\csname\exxx@\claimtype@ @Q\endcsname}
\def\claim@@@S{\csname\exxx@\claimtype@ @S\endcsname}
\def\claim@@@N{\csname\exxx@\claimtype@ @N\endcsname}
\def\claim@@@C{\csname claim@C\claimclass@\endcsname}
\newcount\claim@C
\claim@C\z@
\let\claim@P\empty
\let\claim@Q\empty
\def\claim@S#1{#1\/}
\let\claim@N\arabic
\def\claim{\claim@true\let\claimclass@\empty
 \def\claimtype@{\claim}\FN@\claim@}
\def\claim@{%
 \ifx\next\c
  \let\next@\claim@c
 \else
  \ifx\next"%
   \let\next@\claim@q
  \else
   \begingroup\global\advance\claim@C\@ne
   {\noexpands@
    \xdef\Thelabel@@@{\number\claim@C}%
    \xdefThelabel@\claim@N
    \xdef\Thelabel@@@@{\claim@P\Thelabel@\claim@Q}%
    \xdefThelabel@@\claim@S
   }%
   \locallabel@
   \let\next@\Claimformat@@
  \fi
 \fi
 \next@}
\def\claim@c\c#1{\claim@true\begingroup
 \expandafter
 \ifx\csname claim@C#1\endcsname\relax
  \expandafter\newcount@\csname claim@C#1\endcsname
  \global\csname claim@C#1\endcsname\@ne
 \else
  \global\advance\csname claim@C#1\endcsname\@ne
 \fi
 \def\claimclass@{#1}%
 {\noexpands@
  \xdef\Thelabel@@@{\number\claim@@@C}%
  \xdefThelabel@\claim@@@N
  \xdef\Thelabel@@@@{\claim@@@P\Thelabel@\claim@@@Q}%
  \xdefThelabel@@\claim@@@S
 }%
 \locallabel@
 \FNSS@\claim@c@}
\def\claim@q"#1"{\begingroup
 {\let\pre\claim@@@P\let\post\claim@@@Q
  \let\style\claim@@@S\let\numstyle\claim@@@N
  \noexpands@
  \Qlabel@{#1}}%
 \locallabel@
 \FNSS@\claim@q@}
\def\claim@c@{\ifx\next"%
 \global\advance\claim@@@C\m@ne\let\next@\claim@cq
 \else\let\next@\Claimformat@@\fi\next@}
\def\claim@cq"#1"{{\let\pre\claim@@@P\let\post\claim@@@Q
 \let\style\claim@@@S\let\numstyle\claim@@@N
 \noexpands@
 \Qlabel@{#1}}%
 \locallabel@
 \FNSS@\Claimformat@@}
\def\claim@q@{\ifx\next\c\expandafter\claim@qc
 \else\expandafter\Claimformat@@\fi}
\def\claim@qc\c#1{\expandafter\ifx\csname claim@C#1\endcsname\relax
 \expandafter\newcount@\csname claim@C#1\endcsname
 \global\csname claim@C#1\endcsname\z@\fi
 \FNSS@\Claimformat@@}
\def\endclaim{\endgroup\claim@false\nopunct@false\nospace@false
 \let\Claimformat@@\claimformat@@\medbreak}
\Invalid@\claimclause
\def\newclaim{\FN@\newclaim@}
\def\newclaim@{\ifx\next\claimclause
 \DN@\claimclause##1{\newclaim@@{##1}}\else
 \DN@{\newclaim@@\relax}\fi\next@}
\def\claimlist@{\\\claim}
\newtoks\claim@i
\newtoks\claim@v
\let\noclaimclause@=F
\def\newclaim@@#1#2#3\c#4#5{\define#2{}%
 \rightadd@#2\to\claimlist@\rightadd@#2\to\nofrillslist@%
 \expandafter\def\csname\exstring@#2@P\endcsname{\claim@P}%
 \expandafter\def\csname\exstring@#2@Q\endcsname{\claim@Q}%
 \expandafter\def\csname\exstring@#2@S\endcsname{\claim@S}%
 \expandafter\def\csname\exstring@#2@N\endcsname{\claim@N}%
 \expandafter\def\csname\exstring@#2@F\endcsname{\claim@F}%
 \expandafter\def\csname end\exstring@#2\endcsname{\endclaim}%
 \expandafter\ifx\csname claim@C#4\endcsname\relax
  \expandafter\newcount@\csname claim@C#4\endcsname
  \global\csname claim@C#4\endcsname\z@\fi
 \edef\next@{\let\csname\exstring@#2@C\endcsname
   \csname claim@C#4\endcsname}\next@
 \def#2{\ifx\noclaimclause@ T\else#1\fi
  \global\claim@i{#1}\gdef\claim@iv{#4}\global\claim@v{#5}%
  \def\claimtype@{#2}\def\Claimformat@@{\claimformat@@{#5}}\claim@c\c{#4}}}
\def\shortenclaim#1#2{\define#2{}%
 \ismember@\claimlist@#1%
 \iftest@
  \rightadd@#2\to\nofrillslist@%
  \expandafter\def\csname\exstring@#2@P\endcsname
   {\csname\exstring@#1@P\endcsname}%
  \expandafter\def\csname\exstring@#2@Q\endcsname
   {\csname\exstring@#1@Q\endcsname}%
  \expandafter\def\csname\exstring@#2@S\endcsname
   {\csname\exstring@#1@S\endcsname}%
  \expandafter\def\csname\exstring@#2@N\endcsname
   {\csname\exstring@#1@N\endcsname}%
  \expandafter\def\csname\exstring@#2@F\endcsname
   {\csname\exstring@#1@F\endcsname}%
  \expandafter\def\csname end\exstring@#2\endcsname{\endclaim}%
  \edef\next@{\let\csname\exstring@#2@C\endcsname
    \csname claim\exstring@#1C\endcsname}\next@
  \setbox\z@\vbox{\let\noclaimclause@ T#1""\relax\endgroup}%
  \edef#2{\the\claim@i
   \def\noexpand\claimtype@{\noexpand#2}%
   \def\noexpand\Claimformat@@{\noexpand\claimformat@@{\the\claim@v}\relax}%
   \noexpand\claim@c\noexpand\c{\claim@iv}}%
 \else
  \Err@{\noexpand#1not yet created by \string\newclaim}%
 \fi}
\def\classtest@#1{\DN@{#1}\ifx\next@\claimclass@
 \test@true\else\test@false\fi}
\def\typetest@#1{\DN@{#1}\ifx\next@\claimtype@\test@true\else
  \test@false\fi}
\newif\iftoc@
\def\tocfile{\iftoc@\else\alloc@@7\write\chardef\sixt@@n\toc@
 \immediate\openout\toc@=\jobname.toc
 \alloc@@7\write\chardef\sixt@@n\tic@
 \immediate\openout\tic@=\jobname.tic
 \global\toc@true\fi}
\rightadd@\hl\to\nofrillslist@
\rightadd@\HL\to\overlonglist@
\def\HL@@C{\csname HL@C\HLlevel@\endcsname}
\def\HL@@P{\csname HL@P\HLlevel@\endcsname}
\def\HL@@Q{\csname HL@Q\HLlevel@\endcsname}
\def\HL@@S{\csname HL@S\HLlevel@\endcsname}
\def\HL@@N{\csname HL@N\HLlevel@\endcsname}
\def\HL@@F{\csname HL@F\HLlevel@\endcsname}
\def\HL@@@C{\csname\exxx@\HLtype@ @C\endcsname}
\def\HL@@@P{\csname\exxx@\HLtype@ @P\endcsname}
\def\HL@@@Q{\csname\exxx@\HLtype@ @Q\endcsname}
\def\HL@@@S{\csname\exxx@\HLtype@ @S\endcsname}
\def\HL@@@N{\csname\exxx@\HLtype@ @N\endcsname}
\def\HL#1{\expandafter
 \ifx\csname HL@C#1\endcsname\relax
  \DN@{\Err@{\string\HL#1 not defined in this style}}%
 \else
  \DN@{\gdef\HLlevel@{#1}\def\HLname@{\HL{#1}}\let\HLtype@\relax\FNSS@\HL@}%
 \fi
 \next@}%
\newif\ifquoted@
\let\aftertoc@\relax
\def\HL@{%
 \DN@"##1"##2\endHL{\def\entry@{##2}\quoted@true
  {\noexpands@
  \ifx\HLtype@\relax
   \let\pre\HL@@P\let\post\HL@@Q\let\style\HL@@S\let\numstyle\HL@@N
  \else
   \let\pre\HL@@@P\let\post\HL@@@Q\let\style\HL@@@S\let\numstyle\HL@@@N
  \fi
  \Qlabel@{##1}\let\style\relax\xdef\Qlabel@@@@{##1}%
  \xdef\Thepref@{\Thelabel@@@@}}%
  \csname HL@\HLlevel@\endcsname##2\endHL
  \let\pref\Thepref@
  \csname HL@I\HLlevel@\endcsname
  \csname HL@J\HLlevel@\endcsname
  \let\pref\pref@
  \HLtoc@
  \aftertoc@
  \let\aftertoc@\relax\overlong@false}%
 \DNii@##1\endHL{\def\entry@{##1}\quoted@false
  {\noexpands@
  \ifx\HLtype@\relax
   \global\advance\HL@@C\@ne
   \xdef\Thelabel@@@{\number\HL@@C}%
   \xdefThelabel@{\HL@@N}%
   \xdef\Thelabel@@@@{\HL@@P\Thelabel@\HL@@Q}%
   \xdefThelabel@@{\HL@@S}%
  \else
   \global\advance\HL@@@C\@ne
   \xdef\Thelabel@@@{\number\HL@@@C}%
   \xdefThelabel@{\HL@@@N}%
   \xdef\Thelabel@@@@{\HL@@@P\Thelabel@\HL@@@Q}%
   \xdefThelabel@@{\HL@@@S}%
  \fi
  \xdef\Thepref@{\Thelabel@@@@}}%
  \csname HL@\HLlevel@\endcsname##1\endHL
  \let\pref\Thepref@
  \csname HL@I\HLlevel@\endcsname
  \csname HL@J\HLlevel@\endcsname
  \let\pref\pref@
  \HLtoc@
  \aftertoc@
  \let\aftertoc@\relax\overlong@false}%
 \ifx\next"\expandafter\next@\else\expandafter\nextii@\fi}%
\Invalid@\endHL
\def\hl@@C{\csname hl@C\hllevel@\endcsname}
\def\hl@@P{\csname hl@P\hllevel@\endcsname}
\def\hl@@Q{\csname hl@Q\hllevel@\endcsname}
\def\hl@@S{\csname hl@S\hllevel@\endcsname}
\def\hl@@N{\csname hl@N\hllevel@\endcsname}
\def\hl@@F{\csname hl@F\hllevel@\endcsname}
\def\hl@@@C{\csname\exxx@\hltype@ @C\endcsname}
\def\hl@@@P{\csname\exxx@\hltype@ @P\endcsname}
\def\hl@@@Q{\csname\exxx@\hltype@ @Q\endcsname}
\def\hl@@@S{\csname\exxx@\hltype@ @S\endcsname}
\def\hl@@@N{\csname\exxx@\hltype@ @N\endcsname}
\def\hl#1{\expandafter
 \ifx\csname hl@C#1\endcsname\relax
  \DN@{\Err@{\string\hl#1 not defined in this style}}%
 \else
  \DN@{\gdef\hllevel@{#1}\def\hlname@{\hl{#1}}\let\hltype@\relax\FNSS@\hl@}%
 \fi
 \next@}
\def\hl@{%
 \DN@"##1"##2{\def\entry@{##2}\quoted@true
  {\noexpands@
  \ifx\hltype@\relax
   \let\pre\hl@@P\let\post\hl@@Q\let\style\hl@@S\let\numstyle\hl@@N
  \else
   \let\pre\hl@@@P\let\post\hl@@@Q\let\style\hl@@@S\let\numstyle\hl@@@N
  \fi
  \Qlabel@{##1}\let\style\relax\xdef\Qlabel@@@@{##1}%
  \xdef\Thepref@{\Thelabel@@@@}}%
  \csname hl@\hllevel@\endcsname{##2}%
  \let\pref\Thepref@
  \csname hl@I\hllevel@\endcsname
  \csname hl@J\hllevel@\endcsname
  \let\pref\pref@
  \hltoc@
  \aftertoc@
  \let\aftertoc@\relax\nopunct@false\nospace@false\FNSSP@}%
 \DNii@##1{\def\entry@{##1}\quoted@false
  {\noexpands@
  \ifx\hltype@\relax
   \global\advance\hl@@C\@ne
   \xdef\Thelabel@@@{\number\hl@@C}%
   \xdefThelabel@{\hl@@N}%
   \xdef\Thelabel@@@@{\hl@@P\Thelabel@\hl@@Q}%
   \xdefThelabel@@{\hl@@S}%
  \else
   \global\advance\hl@@@C\@ne
   \xdef\Thelabel@@@{\number\hl@@@C}%
   \xdefThelabel@{\hl@@@N}%
   \xdef\Thelabel@@@@{\hl@@@P\Thelabel@\hl@@@Q}%
   \xdefThelabel@@{\hl@@@S}%
  \fi
  \xdef\Thepref@{\Thelabel@@@@}}%
  \csname hl@\hllevel@\endcsname{##1}%
  \let\pref\Thepref@
  \csname hl@I\hllevel@\endcsname
  \csname hl@J\hllevel@\endcsname
  \let\pref\pref@
  \hltoc@
  \aftertoc@
  \let\aftertoc@\relax\nopunct@false\nospace@false\FNSSP@}%
 \ifx\next"\expandafter\next@\else\expandafter\nextii@\fi}%
\def\six@#1#2 #3 #4 #5 #6 #7 {\DN@{#2}\ifx\next@\empty
 \DN@##1\six@{}\else
 \write#1{ #2 #3 #4 #5 #6 #7}\DN@{\six@#1}\fi
 \next@}
\def\Sixtoc@{\ifx\macdef@\empty\else
 \DN@##1##2\next@{\def\macdef@{##1##2}}%
 \expandafter\next@\macdef@\next@
 \edef\next@
  {\noexpand\six@\toc@\macdef@
  \space\space\space\space\space\space\space\space\space\space\space\space
  \noexpand\six@}%
 \next@\let\macdef@\relax\fi}
\def\QorThelabel@@@@{\ifquoted@
 \noexpand\noexpand\noexpand"\Qlabel@@@@\noexpand\noexpand\noexpand"\else
 \Thelabel@@@@\fi}
\def\HLtoc@{%
 \iftoc@
 \expandafter\expandafter\expandafter\unmacro@
  \expandafter\meaning\csname HL@W\HLlevel@\endcsname\unmacro@
  {\noexpands@\let\style\relax
   \edef\next@{\write\toc@{\noexpand\noexpand\expandafter\noexpand\HLname@
   {\macdef@}{\QorThelabel@@@@}}}%
  \next@}%
  \expandafter\unmacro@\meaning\entry@\unmacro@
  \Sixtoc@
  \write\toc@{\noexpand\Page{\number\pageno}{\page@N}%
   {\page@P}{\page@Q}^^J}%
 \fi}
\def\hltoc@{%
 \iftoc@
 \expandafter\expandafter\expandafter\unmacro@
  \expandafter\meaning\csname hl@W\hllevel@\endcsname\unmacro@
  {\noexpands@\let\style\relax
  \edef\next@{\write\toc@{%
   \ifnopunct@\noexpand\noexpand\noexpand\nopunct\fi
   \ifnospace@\noexpand\noexpand\noexpand\nospace\fi
   \noexpand\noexpand\expandafter\noexpand\hlname@
   {\macdef@}{\QorThelabel@@@@}}}%
  \next@}%
  \expandafter\unmacro@\meaning\entry@\unmacro@
  \Sixtoc@
  \write\toc@{\noexpand\Page{\number\pageno}{\page@N}%
   {\page@P}{\page@Q}^^J}%
 \fi}
\def\mainfile#1{\def\mainfile@{#1}}
\def\checkmainfile@{\ifx\mainfile@\undefined
 \Err@{No \noexpand\mainfile specified}\fi}
\expandafter\newcount@\csname HL@C1\endcsname
\csname HL@C1\endcsname\z@
\expandafter\def\csname HL@S1\endcsname#1{#1\null.}
\expandafter\let\csname HL@N1\endcsname\arabic
\expandafter\let\csname HL@P1\endcsname\empty
\expandafter\let\csname HL@Q1\endcsname\empty
\expandafter\def\csname HL@F1\endcsname{\bf}
\expandafter\let\csname HL@W1\endcsname\empty
\expandafter\newcount@\csname hl@C1\endcsname
\csname hl@C1\endcsname\z@
\expandafter\def\csname hl@S1\endcsname#1{#1\/}
\expandafter\let\csname hl@N1\endcsname\arabic
\expandafter\let\csname hl@P1\endcsname\empty
\expandafter\let\csname hl@Q1\endcsname\empty
\expandafter\def\csname hl@F1\endcsname{\bf}
\expandafter\let\csname hl@W1\endcsname\empty
\expandafter\def\csname HL@1\endcsname#1\endHL{\bigbreak
 {\locallabel@
  \global\setbox\@ne\vbox{\Let@\tabskip\hss@
  \halign to\hsize{\bf\hfil\ignorespaces##\unskip\hfil\cr
  \expandafter\ifx\csname HL@W1\endcsname\empty\else
   \csname HL@W1\endcsname\space\fi
  {\HL@@F\ifx\thelabel@@\empty\else\thelabel@@\space\fi}%
  \ignorespaces#1\crcr}}%
  }%
 \unvbox\@ne\nobreak\medskip}
\expandafter\def\csname hl@1\endcsname#1{\medbreak\noindent@@
 {\locallabel@
 \bf{\hl@@F\ifx\thelabel@@\empty\else\thelabel@@\space\fi}%
 \ignorespaces#1\unskip\punct@{\null.}\addspace@\enspace}}
\expandafter\def\csname HL@I1\endcsname{\Reset\hl1{1}%
 \ifx\pref\empty\newpre\hl1{}\else\newpre\hl1{\pref.}\fi}
\def\NameHL#1#2{\define#2{}%
 \expandafter\ifx\csname HL@R#1\endcsname\relax
 \else
  \def\nextiv@{\let\nextiii@}%
  \expandafter\nextiv@\csname HL@R#1\endcsname
  \expandafter\let\nextiii@\undefined
  \expandafter\let\csname\exxx@\nextiii@ @C\endcsname\relax
  \expandafter\let\csname\exxx@\nextiii@ @P\endcsname\relax
  \expandafter\let\csname\exxx@\nextiii@ @Q\endcsname\relax
  \expandafter\let\csname\exxx@\nextiii@ @S\endcsname\relax
  \expandafter\let\csname\exxx@\nextiii@ @N\endcsname\relax
  \expandafter\let\csname\exxx@\nextiii@ @F\endcsname\relax
  \expandafter\let\csname\exxx@\nextiii@ @W\endcsname\relax
  \expandafter\let\csname end\exxx@\nextiii@\endcsname\undefined
 \fi
 \expandafter\gdef\csname HL@R#1\endcsname{#2}%
 \expandafter\gdef\csname\exstring@#2@R\endcsname{{HL}{#1}}%
 \iftoc@\write\toc@{\noexpand\NameHL#1\noexpand#2^^J}\fi
 \rightadd@#2\to\overlonglist@
 \edef\next@{\let\csname\exstring@#2@C\endcsname\expandafter\noexpand
  \csname HL@C#1\endcsname}\next@
 \edef\next@{\let\csname\exstring@#2@P\endcsname\expandafter\noexpand
  \csname HL@P#1\endcsname}\next@
 \edef\next@{\let\csname\exstring@#2@Q\endcsname\expandafter\noexpand
  \csname HL@Q#1\endcsname}\next@
 \edef\next@{\let\csname\exstring@#2@S\endcsname\expandafter\noexpand
  \csname HL@S#1\endcsname}\next@
 \edef\next@{\let\csname\exstring@#2@N\endcsname\expandafter\noexpand
  \csname HL@N#1\endcsname}\next@
 \edef\next@{\let\csname\exstring@#2@F\endcsname\expandafter\noexpand
  \csname HL@F#1\endcsname}\next@
 \edef\next@{\let\csname\exstring@#2@W\endcsname\expandafter\noexpand
  \csname HL@W#1\endcsname}\next@
 \edef\next@{\def\noexpand#2####1\expandafter\noexpand
  \csname end\exstring@#2\endcsname
  {\def\noexpand\HLtype@{\noexpand#2}%
   \def\noexpand\HLname@{\noexpand#2}%
   \gdef\noexpand\HLlevel@{#1}%
   \noexpand\FNSS@\noexpand\HL@####1\noexpand\endHL}}%
  \next@
 \edef\next@{\noexpand\Invalid@\expandafter\noexpand
  \csname end\exstring@#2\endcsname}%
 \next@}
\def\Namehl#1#2{\define#2{}%
 \expandafter\ifx\csname hl@R#1\endcsname\relax
 \else
  \def\nextiv@{\let\nextiii@}%
  \expandafter\nextiv@\csname hl@R#1\endcsname
  \expandafter\let\nextiii@\undefined
  \expandafter\let\csname\exxx@\nextiii@ @C\endcsname\relax
  \expandafter\let\csname\exxx@\nextiii@ @P\endcsname\relax
  \expandafter\let\csname\exxx@\nextiii@ @Q\endcsname\relax
  \expandafter\let\csname\exxx@\nextiii@ @S\endcsname\relax
  \expandafter\let\csname\exxx@\nextiii@ @N\endcsname\relax
  \expandafter\let\csname\exxx@\nextiii@ @F\endcsname\relax
  \expandafter\let\csname\exxx@\nextiii@ @W\endcsname\relax
 \fi
 \expandafter\gdef\csname hl@R#1\endcsname{#2}%
 \expandafter\gdef\csname\exstring@#2@R\endcsname{{hl}{#1}}%
 \iftoc@\write\toc@{\noexpand\Namehl#1\noexpand#2^^J}\fi
 \rightadd@#2\to\nofrillslist@%
 \edef\next@{\let\csname\exstring@#2@C\endcsname\expandafter\noexpand
  \csname hl@C#1\endcsname}\next@
 \edef\next@{\let\csname\exstring@#2@P\endcsname\expandafter\noexpand
  \csname hl@P#1\endcsname}\next@
 \edef\next@{\let\csname\exstring@#2@Q\endcsname\expandafter\noexpand
  \csname hl@Q#1\endcsname}\next@
 \edef\next@{\let\csname\exstring@#2@S\endcsname\expandafter\noexpand
  \csname hl@S#1\endcsname}\next@
 \edef\next@{\let\csname\exstring@#2@N\endcsname\expandafter\noexpand
  \csname hl@N#1\endcsname}\next@
 \edef\next@{\let\csname\exstring@#2@F\endcsname\expandafter\noexpand
  \csname hl@F#1\endcsname}\next@
 \edef\next@{\let\csname\exstring@#2@W\endcsname\expandafter\noexpand
  \csname hl@W#1\endcsname}\next@
 \edef\next@{\def\noexpand#2{%
  \def\noexpand\hltype@{\noexpand#2}%
  \def\noexpand\hlname@{\noexpand#2}%
  \gdef\noexpand\hllevel@{#1}%
  \noexpand\FNSS@\noexpand\hl@}}%
 \next@}%
\def\Initialize{\FN@\Init@}
\def\Init@{\ifx\next\HL\let\next@\InitH@\else\ifx\next\hl\let\next@\InitH@
  \else\let\next@\InitS@\fi\fi\next@}
\def\InitH@#1#2{\expandafter\ifx\csname\exstring@#1@C#2\endcsname\relax
 \DN@{\Err@{\noexpand#1level #2 not defined in this style}}\else
 \DN@{\expandafter\gdef\csname\exstring@#1@J#2\endcsname}\fi\next@}
\def\InitC@#1#2{\edef\nextii@{\expandafter\noexpand\csname#1\endcsname{#2}}}
\def\InitS@#1{\expandafter\ifx\csname\exstring@#1@R\endcsname\relax
 \Err@{\noexpand#1not defined in this style}\let\next@\relax\else
 \DN@{\let\next@}\expandafter\next@\csname\exstring@#1@R\endcsname
 \expandafter\InitC@\next@
 \DN@{\expandafter\InitH@\nextii@}\fi\next@}
\def\value#1{\expandafter
 \ifx\csname\exstring@#1@C\endcsname\relax
  \expandafter\ifx\csname\exstring@#1@C1\endcsname\relax
   \DN@{\Err@{\noexpand\value can't be used with \string#1}}%
  \else
   \DN@{\value@#1}%
  \fi
 \else
  \DN@{\number\csname\exstring@#1@C\endcsname\relax}%
 \fi
 \next@}
\def\value@#1#2{\expandafter
 \ifx\csname\exstring@#1@C#2\endcsname\relax
  \DN@{\Err@{\string\value\string#1 can't be followed by \string#2}}%
 \else
  \DN@{\number\csname\exstring@#1@C#2\endcsname\relax}%
 \fi
 \next@}
\newcount\Value
\def\Evaluate#1{\expandafter
 \ifx\csname\exstring@#1@C\endcsname\relax
  \expandafter\ifx\csname\exstring@#1@C1\endcsname\relax
   \DN@{\Err@{\noexpand\Evaluate can't be used with \string#1}}%
  \else
   \DN@{\Evaluate@#1}%
  \fi
 \else
  \DN@{\global\Value\csname\exstring@#1@C\endcsname}%
 \fi
 \next@}
\def\Evaluate@#1#2{\expandafter
 \ifx\csname\exstring@#1@C#2\endcsname\relax
  \DN@{\Err@{\string\Evaluate\string#1 can't be followed by \string#2}}%
 \else
  \DN@{\global\Value\csname\exstring@#1@C#2\endcsname}%
 \fi\next@}
\def\pre#1{\expandafter
 \ifx\csname\exstring@#1@P\endcsname\relax
  \expandafter\ifx\csname\exstring@#1@P1\endcsname\relax
   \DN@{\Err@{\noexpand\pre can't be used with \string#1}}%
  \else
   \DN@{\pre@#1}%
  \fi
 \else
  \DN@{{\csname\exstring@#1@P\endcsname}}%
 \fi
 \next@}
\def\pre@#1#2{\expandafter
 \ifx\csname\exstring@#1@P#2\endcsname\relax
  \DN@{\Err@{\string\pre\string#1 can't be followed by \string#2}}%
 \else
  \DN@{{\csname\exstring@#1@P#2\endcsname}}%
 \fi
 \next@}
\def\post#1{\expandafter
 \ifx\csname\exstring@#1@Q\endcsname\relax
  \expandafter\ifx\csname\exstring@#1@Q1\endcsname\relax
   \DN@{\Err@{\noexpand\post can't be used with \string#1}}%
  \else
   \DN@{\post@#1}%
  \fi
 \else
  \DN@{{\csname\exstring@#1@Q\endcsname}}%
 \fi
 \next@}
\def\post@#1#2{\expandafter
 \ifx\csname\exstring@#1@Q#2\endcsname\relax
  \DN@{\Err@{\string\post\string#1 can't be followed by \string#2}}%
 \else
  \DN@{{\csname\exstring@#1@Q#2\endcsname}}%
 \fi
 \next@}
\def\style#1{\expandafter
 \ifx\csname\exstring@#1@S\endcsname\relax
  \expandafter\ifx\csname\exstring@#1@S1\endcsname\relax
   \DN@{\Err@{\noexpand\style can't be used with \string#1}}%
  \else
   \DN@{\style@#1}%
  \fi
 \else
  \DN@{\csname\exstring@#1@S\endcsname}%
 \fi
 \next@}
\def\style@#1#2{\expandafter
 \ifx\csname\exstring@#1@S#2\endcsname\relax
  \DN@{\Err@{\string\style\string#1 can't be followed by \string#2}}%
 \else
  \DN@{\csname\exstring@#1@S#2\endcsname}%
 \fi
 \next@}
\def\fontstyle#1{\expandafter
 \ifx\csname\exstring@#1@F\endcsname\relax
  \expandafter\ifx\csname\exstring@#1@F1\endcsname\relax
   \DN@{\Err@{\noexpand\fontstyle can't be used with \string#1}}%
  \else
   \DN@{\fontstyle@#1}%
  \fi
 \else
  \DN@##1{{\csname\exstring@#1@F\endcsname##1}}%
 \fi
 \next@}
\def\fontstyle@#1#2{\expandafter
 \ifx\csname\exstring@#1@F#2\endcsname\relax
  \DN@{\Err@{\string\fontstyle\string#1 can't be followed by \string#2}}%
 \else
  \DN@##1{{\csname\exstring@#1@F#2\endcsname##1}}%
 \fi
 \next@}
\def\Reset#1{\expandafter
 \ifx\csname\exstring@#1@C\endcsname\relax
  \expandafter\ifx\csname\exstring@#1@C1\endcsname\relax
   \DN@{\Err@{\noexpand\Reset can't be used with \string#1}}%
  \else
   \DN@{\Reset@#1}%
  \fi
 \else
  \DN@##1{\count@##1\relax\ifx#1\page\else\advance\count@\m@ne\fi
   \global\csname\exstring@#1@C\endcsname\count@}%
 \fi
 \next@}
\def\Reset@#1#2{\expandafter
 \ifx\csname\exstring@#1@C#2\endcsname\relax
  \DN@{\Err@{\string\Reset\string#1 can't be followed by \string#2}}%
 \else
  \DN@##1{\count@##1\relax\advance\count@\m@ne
   \global\csname\exstring@#1@C#2\endcsname\count@}%
 \fi
 \next@}
\def\Offset#1{\expandafter
 \ifx\csname\exstring@#1@C\endcsname\relax
  \expandafter\ifx\csname\exstring@#1@C1\endcsname\relax
   \DN@{\Err@{\noexpand\Offset can't be used with \string#1}}%
  \else
   \DN@{\Offset@#1}%
  \fi
 \else
  \DN@##1{\count@##1\relax\advance\count@\m@ne\global\advance
   \csname\exstring@#1@C\endcsname\count@}%
 \fi
 \next@}
\def\Offset@#1#2{\expandafter
 \ifx\csname\exstring@#1@C#2\endcsname\relax
  \DN@{\Err@{\string\Offset\string#1 can't be followed by \string#2}}%
 \else
  \DN@##1{\count@##1\relax\advance\count@\m@ne
   \global\advance\csname\exstring@#1@C#2\endcsname\count@}%
 \fi
 \next@}
\def\getR@#1#2{\def\nextiv@{\let\nextiii@}\expandafter\nextiv@
 \csname\exstring@#1@R#2\endcsname}
\def\letR@#1#2#3{\expandafter\let\csname#1@#3#2\endcsname\Next@}
\def\letR@@#1#2{\expandafter\let\csname\exstring@#1@#2\endcsname\Next@}
\def\newpre#1{\expandafter
 \ifx\csname\exstring@#1@P\endcsname\relax
  \expandafter\ifx\csname\exstring@#1@P1\endcsname\relax
   \DN@{\Err@{\noexpand\newpre can't be used with \string#1}}%
  \else
   \DN@{\newpre@#1}%
  \fi
 \else
  \DN@{%
   \DNii@{%
    \endgroup
    \expandafter\let\csname\exstring@#1@P\endcsname\Next@
    \expandafter\ifx\csname\exstring@#1@R\endcsname\relax\else
    \getR@#1{}\expandafter\letR@\nextiii@ P\fi
    }%
   \begingroup\noexpands@\afterassignment\nextii@\xdef\Next@}%
 \fi
 \next@}
\def\newpre@#1#2{\expandafter
 \ifx\csname\exstring@#1@P#2\endcsname\relax
  \DN@{\Err@{\string\newpre\string#1 can't be followed by \string#2}}%
 \else
  \DN@{%
   \DNii@{%
    \endgroup
    \expandafter\let\csname\exstring@#1@P#2\endcsname\Next@
    \expandafter\ifx\csname\exstring@#1@R#2\endcsname\relax\else
    \getR@#1{#2}\expandafter\letR@@\nextiii@ P\fi
    }%
   \begingroup\noexpands@\afterassignment\nextii@\xdef\Next@}%
 \fi
 \next@}
\def\newpost#1{\expandafter
 \ifx\csname\exstring@#1@Q\endcsname\relax
  \expandafter\ifx\csname\exstring@#1@Q1\endcsname\relax
   \DN@{\Err@{\noexpand\newpost can't be used with \string#1}}%
  \else
   \DN@{\newpost@#1}%
  \fi
 \else
  \DN@{%
   \DNii@{%
    \endgroup
    \expandafter\let\csname\exstring@#1@Q\endcsname\Next@
    \expandafter\ifx\csname\exstring@#1@R\endcsname\relax\else
    \getR@#1{}\expandafter\letR@\nextiii@ Q\fi
    }%
   \begingroup\noexpands@\afterassignment\nextii@\xdef\Next@}%
 \fi
 \next@}
\def\newpost@#1#2{\expandafter
 \ifx\csname\exstring@#1@Q#2\endcsname\relax
  \DN@{\Err@{\string\newpost\string#1 can't be followed by \string#2}}%
 \else
  \DN@{%
   \DNii@{%
    \endgroup
    \expandafter\let\csname\exstring@#1@Q#2\endcsname\Next@
    \expandafter\ifx\csname\exstring@#1@R#2\endcsname\relax\else
    \getR@#1{#2}\expandafter\letR@@\nextiii@ Q\fi
    }%
   \begingroup\noexpands@\afterassignment\nextii@\xdef\Next@}%
 \fi
 \next@}
\def\newstyle#1{\expandafter
 \ifx\csname\exstring@#1@S\endcsname\relax
  \expandafter\ifx\csname\exstring@#1@S1\endcsname\relax
   \DN@{\Err@{\noexpand\newstyle can't be used
    with \string#1}}%
  \else
   \DN@{\newstyle@#1}%
  \fi
 \else
  \DN@{%
   \DNii@{%
    \expandafter\let\csname\exstring@#1@S\endcsname\Next@
    \expandafter\ifx\csname\exstring@#1@R\endcsname\relax\else
    \getR@#1{}\expandafter\letR@\nextiii@ S\fi
    }%
   \afterassignment\nextii@\gdef\Next@}%
 \fi
 \next@}
\def\newstyle@#1#2{\expandafter
 \ifx\csname\exstring@#1@S#2\endcsname\relax
  \DN@{\Err@{\string\newstyle\string#1 can't be followed by
   \string#2}}%
 \else
  \DN@{%
   \DNii@{%
    \expandafter\let\csname\exstring@#1@S#2\endcsname\Next@
    \expandafter\ifx\csname\exstring@#1@R#2\endcsname\relax\else
    \getR@#1{#2}\expandafter\letR@@\nextiii@ S\fi
    }%
   \afterassignment\nextii@\gdef\Next@}%
 \fi
 \next@}
\def\newnumstyle#1{\expandafter
 \ifx\csname\exstring@#1@N\endcsname\relax
  \expandafter\ifx\csname\exstring@#1@N1\endcsname\relax
   \DN@{\Err@{\noexpand\newnumstyle can't be used with
    \string#1}}%
  \else
   \DN@{\newnumstyle@#1}%
  \fi
 \else
  \DN@##1{%
   \gdef\Next@{##1}%
    \expandafter\let\csname\exstring@#1@N\endcsname\Next@
    \expandafter\ifx\csname\exstring@#1@R\endcsname\relax\else
    \getR@#1{}\expandafter\letR@\nextiii@ N\fi
    }%
 \fi
 \next@}
\def\newnumstyle@#1#2{\expandafter
 \ifx\csname\exstring@#1@N#2\endcsname\relax
  \DN@{\Err@{\string\newnumstyle\string#1 can't be followed by
   \string#2}}%
 \else
  \DN@##1{%
   \gdef\Next@{##1}%
    \expandafter\let\csname\exstring@#1@N#2\endcsname\Next@
    \expandafter\ifx\csname\exstring@#1@R#2\endcsname\relax\else
    \getR@#1{#2}\expandafter\letR@@\nextiii@ N\fi
    }%
  \fi
 \next@}
\def\newfontstyle#1{\expandafter
 \ifx\csname\exstring@#1@F\endcsname\relax
  \expandafter\ifx\csname\exstring@#1@F1\endcsname\relax
   \DN@{\Err@{\noexpand\newfontstyle can't be used with
    \string#1}}%
  \else
   \DN@{\newfontstyle@#1}%
  \fi
 \else
  \DN@##1{%
   \gdef\Next@{##1}%
    \expandafter\let\csname\exstring@#1@F\endcsname\Next@
    \expandafter\ifx\csname\exstring@#1@R\endcsname\relax\else
    \getR@#1{}\expandafter\letR@\nextiii@ F\fi
    }%
 \fi
 \next@}
\def\newfontstyle@#1#2{\expandafter
 \ifx\csname\exstring@#1@F#2\endcsname\relax
  \DN@{\Err@{\string\newfontstyle\string#1 can't be followed by
   \string#2}}%
 \else
  \DN@##1{%
   \gdef\Next@{##1}%
    \expandafter\let\csname\exstring@#1@F#2\endcsname\Next@
    \expandafter\ifx\csname\exstring@#1@R#2\endcsname\relax\else
    \getR@#1{#2}\expandafter\letR@@\nextiii@ F\fi
    }%
 \fi
 \next@}
\def\word#1{\expandafter
 \ifx\csname\exstring@#1@W\endcsname\relax
  \expandafter\ifx\csname\exstring@#1@W1\endcsname\relax
   \DN@{\Err@{\noexpand\word can't be used with \string#1}}%
  \else
   \DN@{\word@#1}%
  \fi
 \else
  \DN@{{\csname\exstring@#1@W\endcsname}}%
 \fi
 \next@}
\def\word@#1#2{\expandafter
 \ifx\csname\exstring@#1@W#2\endcsname\relax
  \DN@{\Err@{\string\word\noexpand#1can't be followed by \string#2}}%
 \else
  \DN@{{\csname\exstring@#1@W#2\endcsname}}%
 \fi
 \next@}
\def\newword#1{\expandafter
 \ifx\csname\exstring@#1@W\endcsname\relax
  \expandafter\ifx\csname\exstring@#1@W1\endcsname\relax
   \DN@{\Err@{\noexpand\newword can't be used  with \string#1}}%
  \else
   \DN@{\newword@#1}%
  \fi
 \else
  \DN@{%
   \DNii@{%
    \expandafter\let\csname\exstring@#1@W\endcsname\Next@
    \expandafter\ifx\csname\exstring@#1@R\endcsname\relax\else
     \getR@#1{}\expandafter\letR@\nextiii@ W\fi
    }%
   \afterassignment\nextii@\gdef\Next@}%
 \fi
 \next@}
\def\newword@#1#2{\expandafter
 \ifx\csname\exstring@#1@W#2\endcsname\relax
  \DN@{\Err@{\string\newword\noexpand#1can't be followed by \string#2}}%
 \else
  \DN@{%
   \DNii@{%
    \expandafter\let\csname\exstring@#1@W#2\endcsname\Next@
    \expandafter\ifx\csname\exstring@#1@R#2\endcsname\relax\else
     \getR@#1{#2}\expandafter\letR@@\nextiii@ W\fi
    }%
   \afterassignment\nextii@\gdef\Next@}%
 \fi
 \next@}
\newif\iffn@
\newcount\footmark@C
\footmark@C\z@
\def\footmark@S#1{$^{#1}$}
\let\footmark@N\arabic
\def\footmark@F{\rm}
\def\foottext@S#1{$^{#1}$}
\def\foottext@F{\rm}
\let\modifyfootnote@\relax
\def\modifyfootnote#1{\def\modifyfootnote@{#1}}
\def\vfootnote@#1{\insert\footins
 \bgroup
 \floatingpenalty\@MM\interlinepenalty\interfootnotelinepenalty
 \leftskip\z@\rightskip\z@\spaceskip\z@\xspaceskip\z@
 \rm\splittopskip\ht\strutbox\splitmaxdepth\dp\strutbox
 \locallabel@\noindent@@{\foottext@F#1}\modifyfootnote@
 \footstrut\FN@\fo@t}
\def\fo@t{\ifcat\bgroup\noexpand\next\expandafter\f@@t\else
 \expandafter\f@t\fi}
\def\f@t#1{#1\@foot}
\def\f@@t{\bgroup\aftergroup\@foot\afterassignment\FNSSP@\let\next@}
\def\@foot{\unskip\lower\dp\strutbox\vbox to\dp\strutbox{}\egroup
 \iffn@\expandafter\fn@false\else
 \expandafter\postvanish@\fi}
\newif\ifplainfn@
\plainfn@true
\def\fancyfootnotes{\plainfn@false}
\newcount\fancyfootmarkcount@
\fancyfootmarkcount@\z@
\newcount\lastfnpage@
\lastfnpage@-\@M
\let\justfootmarklist@\empty
\def\footmark{\let\@sf\empty
 \ifhmode\edef\@sf{\spacefactor\the\spacefactor}\/\fi
 \DN@{\ifx"\next\expandafter\nextii@\else\expandafter\footmark@\fi}%
 \DNii@"##1"{%
  \iffirstchoice@
   {\let\style\footmark@S\let\numstyle\footmark@N
   \footmark@F##1%
   \noexpands@
   \let\style\foottext@S
   \Qlabel@{##1}%
   }%
   \iffn@\else
    {\noexpands@
    \xdef\Next@{{\Thelabel@}{\Thelabel@@}{\Thelabel@@@}{\Thelabel@@@@}}%
    }%
    \expandafter\rightappend@\Next@\to\justfootmarklist@
   \fi
  \fi
  \@sf\relax}%
 \FN@\next@}
\def\footmark@{%
 \iffirstchoice@
  \global\advance\footmark@C\@ne
  \ifplainfn@
   \xdef\adjustedfootmark@{\number\footmark@C}%
  \else
   {\let\\\or\xdef\Next@{\ifcase\number\footmark@C\fnpages@\else
     -\@M\fi}}%
   \ifnum\Next@=-\@M
    \xdef\adjustedfootmark@{\number\footmark@C}%
   \else
    \ifnum\Next@=\lastfnpage@
     \global\advance\fancyfootmarkcount@\@ne
    \else
     \global\fancyfootmarkcount@\@ne
     \global\lastfnpage@\Next@
    \fi
    \xdef\adjustedfootmark@{\number\fancyfootmarkcount@}%
   \fi
  \fi
  {\noexpands@
  \xdef\Thelabel@@@{\adjustedfootmark@}%
  \xdefThelabel@\footmark@N
  \xdef\Thelabel@@@@{\Thelabel@}%
  \xdefThelabel@@\foottext@S
  }%
  \iffn@\else
   {\noexpands@
   \xdef\Next@{{\Thelabel@}{\Thelabel@@}{\Thelabel@@@}{\Thelabel@@@@}}%
   }%
   \expandafter\rightappend@\Next@\to\justfootmarklist@
  \fi
  \ifplainfn@
  \else
   \edef\next@{\write\laxwrite@{F\noexpand\the\pageno}}\next@
  \fi
 \fi
 \footmark@S{\footmark@N{\adjustedfootmark@}}%
 \@sf\relax}
\def\foottext{\prevanish@
 \ifx\justfootmarklist@\empty
  \Err@{There is no \noexpand\footmark for this \string\foottext}\fi
 \DN@\\##1##2\next@{\DN@{##1}\gdef\justfootmarklist@{##2}}%
 \expandafter\next@\justfootmarklist@\next@
 \expandafter\foottext@\next@}
\def\foottext@#1#2#3#4{{\noexpands@
  \xdef\Thelabel@{#1}\xdef\Thelabel@@{#2}%
  \xdef\Thelabel@@@{#3}\xdef\Thelabel@@@@{#4}}%
  \vfootnote@{\thelabel@@}}
\rightadd@\foottext\to\vanishlist@
\def\footnote{\fn@true
 \let\@sf\empty
 \ifhmode\edef\@sf{\spacefactor\the\spacefactor}\/\fi
 \DN@{\ifx"\next\expandafter\nextii@\else\expandafter\nextiii@\fi}%
 \DNii@"##1"{\footmark"##1"\vfootnote@{\let\style\foottext@S
  \let\numstyle\footmark@N##1}}%
 \def\nextiii@{\footmark\vfootnote@{\foottext@S{\footmark@N
  {\adjustedfootmark@}}}}%
 \FN@\next@}
\newdimen\litindent
\litindent20\p@
\newbox\litbox@
\newbox\Litbox@
\newcount\interlitpenalty@
\interlitpenalty@\@M
\newcount\litlines@
{\obeyspaces\gdef\defspace@{\def {\allowbreak\hskip.5emminus.15em}}}
{\obeylines\gdef\letM@{\let^^M\CtrlM@}}
\def\CtrlM@{\egroup
 \ifcase\litlines@\advance\litlines@\@ne\or
 \box\litbox@\advance\litlines@\@ne\else
 \penalty\interlitpenalty@\box\litbox@\fi
 \Lit@}
\def\Lit@{\setbox\litbox@\hbox\bgroup\litdefs@\hskip\litindent}
\newcount\littab@
\littab@8
\def\littab#1{\littab@#1\relax}
{\catcode`\^^I=\active\gdef\letTAB@{\let^^I\TAB@}}
\def\TAB@{\egroup
 \dimen@\wd\litbox@
 \advance\dimen@-\litindent
 \setboxz@h{\tt0}%
 \dimen@ii\littab@\wdz@
 \divide\dimen@\dimen@ii
 \multiply\dimen@\dimen@ii
 \advance\dimen@\littab@\wdz@
 \advance\dimen@\litindent
 \setbox\litbox@\hbox\bgroup\litdefs@\hbox to\dimen@{\unhbox\litbox@\hfil}}
{\catcode`\`=\active\gdef`{\relax\lq}}
\let\litbs@\relax
\let\litbs@@\relax
\def\litbackslash#1{%
 \edef\litbs@{\catcode`\string#1=\z@
 \def\noexpand\litbs@@{\def\expandafter\noexpand\csname\string#1\endcsname
  {\char`\string#1}}}}
\def\litcodes@{\catcode`\\=12
 \catcode`\{=12 \catcode`\}=12
 \catcode`\$=12 \catcode`\&=12
 \catcode`\#=12
 \catcode`\^=12 \catcode`\_=12
 \catcode`\@=12 \catcode`\~=12 \catcode`\"=12
 \catcode`\;=12 \catcode`\:=12 \catcode`\!=12 \catcode`\?=12
 \catcode`\%=12 \litbs@\catcode`\`=\active\obeyspaces\defspace@}
\def\activate@#1#2{{\lccode`\~=`#2%
 \lowercase{%
  \if0#1%
  \gdef\Next@{\def~{\egroup\endgroup\bigskip\vskip-\parskip
   \def\next@{\noindent@@\FN@\pretendspace@}\FNSS@\next@}}\else
  \gdef\Next@{\def~{\egroup\egroup\endgroup}}\fi
  }%
 }}
\def\litdefs@{\let\0\empty\let\1\litdelim@\def\ {\char32 }\litbs@@}%
\def\litdelimiter#1{%
 \edef\litdelim@{\char`#1}%
 \def\lit#1{\leavevmode\begingroup\litcodes@\litdefs@
  \tt\hyphenchar\tentt\m@ne\lit@}%
 \def\lit@##1#1{##1\endgroup\null}%
 \def\Lit#1{\ifhmode$$\abovedisplayskip\bigskipamount
  \abovedisplayshortskip\bigskipamount
  \belowdisplayskip\z@\belowdisplayshortskip\z@
  \postdisplaypenalty\@M
  $$\vskip-\baselineskip\else\bigskip\fi
  \begingroup\litlines@\z@
  \catcode`#1=\active\activate@0#1\Next@
  \def\displaybreak{\egroup\break\litlines@\z@\Lit@}%
  \def\allowdisplaybreak{\egroup\allowbreak\litlines@\z@\Lit@}%
  \def\allowdisplaybreaks{\egroup\allowbreak\interlitpenalty@\z@
   \litlines@\z@\Lit@}%
  \litcodes@\tt\catcode`\^^I=\active\letTAB@
  \obeylines\letM@\Lit@}%
 \def\Litbox##1=#1{\begingroup\ifodd##1\relax\aftergroup\global\fi
  \aftergroup\setbox\aftergroup##1\aftergroup\box\aftergroup\Litbox@
  \def\allowdisplaybreak{\egroup\allowbreak\litlines@\z@\Lit@}%
  \def\allowdisplaybreaks{\egroup\allowbreak\interlitpenalty@\z@
   \litlines@\z@\Lit@}%
  \catcode`#1=\active\activate@1#1\Next@
  \litcodes@\tt\catcode`\^^I=\active\letTAB@
  \obeylines\letM@\global\setbox\Litbox@\vbox\bgroup\litindent\z@%
  \litlines@\z@\Lit@}%
}
\newbox\titlebox@
\setbox\titlebox@\vbox{}
\rightadd@\title\to\overlonglist@
\def\title{\begingroup\Let@
 \global\setbox\titlebox@\vbox\bgroup\tabskip\hss@
 \halign to\hsize\bgroup\bf\hfil\ignorespaces##\unskip\hfil\cr}
\def\endtitle{\crcr\egroup\egroup\endgroup\overlong@false}
\newbox\authorbox@
\rightadd@\author\to\overlonglist@
\def\author{\begingroup\Let@
 \global\setbox\authorbox@\vbox\bgroup\tabskip\hss@
 \halign to\hsize\bgroup\rm\hfil\ignorespaces##\unskip\hfil\cr}
\def\endauthor{\crcr\egroup\egroup\endgroup\overlong@false}
\newbox\affilbox@
\def\affil{\begingroup\Let@
 \global\setbox\affilbox@\vbox\bgroup\tabskip\hss@
 \halign to\hsize\bgroup\rm\hfil\ignorespaces##\unskip\hfil\cr}%
\def\endaffil{\crcr\egroup\egroup\endgroup\overlong@false}
\let\date@\relax
\def\date#1{\gdef\date@{\ignorespaces#1\unskip}}
\def\today{\ifcase\month\or January\or February\or March\or April\or May\or
 June\or July\or August\or September\or October\or November\or December\fi
 \space\number\day, \number\year}
\def\maketitle{\hrule\height\z@\vskip-\topskip
 \vskip24\p@ plus12\p@ minus12\p@
 \unvbox\titlebox@
 \ifvoid\authorbox@\else\vskip12\p@ plus6\p@ minus3\p@\unvbox\authorbox@\fi
 \ifvoid\affilbox@\else\vskip10\p@ plus5\p@ minus2\p@\unvbox\affilbox@\fi
 \ifx\date@\relax\else\vskip6\p@ plus2\p@ minus\p@\centerline{\rm\date@}\fi
 \vskip18\p@ plus12\p@ minus6\p@}
\def\cite{%
 \DNii@(##1)##2{{\rm[}{##2}, {##1\/}{\rm]}}%
 \def\nextiii@##1{{\rm[}{##1\/}{\rm]}}%
 \DN@{\ifx\next(\expandafter\nextii@\else\expandafter\nextiii@\fi}%
 \FN@\next@}
\def\makebib@W{Bibliography}
\def\makebibp@W{References}
\def\makebib{\begingroup\rm\bigbreak\centerline{\smc\makebib@W}%
 \nobreak\medskip
 \sfcode`\.=\@m\everypar{}\parindent\z@
 \def\nopunct{\nopunct@true}\def\nospace{\nospace@true}%
 \nopunct@false\nospace@false
 \def\lkerns@{\null\kern\m@ne sp\kern\@ne sp}%
 \def\nkerns@{\null\kern-\tw@ sp\kern\tw@ sp}%
}
\let\endmakebib\endgroup
\newif\ifnoprepunct@
\newif\ifnoprespace@
\newif\ifnoquotes@
\def\noprepunct{\noprepunct@true}
\def\noprespace{\noprespace@true}
\def\noquotes{\noquotes@true}
\newbox\nobox@
\newbox\keybox@
\newbox\bybox@
\newbox\paperbox@
\newbox\paperinfobox@
\newbox\jourbox@
\newbox\volbox@
\newbox\issuebox@
\newbox\yrbox@
\newbox\pgbox@
\newbox\ppbox@
\newbox\bookbox@
\newbox\inbookbox@
\newbox\bookinfobox@
\newbox\publbox@
\newbox\publaddrbox@
\newbox\edbox@
\newbox\edsbox@
\newbox\langbox@
\newbox\translbox@
\newbox\finalinfobox@
\def\setbibinfo@#1{\edef\next@{\ifnopunct@1\else0\fi
 \ifnospace@1\else0\fi\ifnoprepunct@1\else0\fi\ifnoprespace@1\else0\fi
 \ifnoquotes@1\else0\fi}%
 \DNii@{00000}%
 \ifx\next@\nextii@\else\xdef\bibinfo@{\bibinfo@\the#1,\next@}%
 \fi}
\def\getbibinfo@#1{\ifx\bibinfo@\empty
 \let\next@0\let\nextii@0\let\nextiii@0\let\nextiv@0\let\nextv@0\else
 \edef\next@{\def
  \noexpand\next@####1\the#1,####2####3####4####5####6####7\noexpand\next@
  {\let\noexpand\next@####2\let\noexpand\nextii@####3%
  \let\noexpand\nextiii@####4\let\noexpand\nextiv@####5%
  \let\noexpand\nextv@####6}%
  \noexpand\next@\bibinfo@\the#1,00000\noexpand\next@}\next@
 \fi}
\newif\ifbookinquotes@
\def\bookinquotes{\bookinquotes@true}
\newif\ifpaperinquotes@
\def\paperinquotes{\paperinquotes@true}
\newif\ifininbook@
\def\ininbook{\ininbook@true}
\newif\ifopenquotes@
\def\closequotes@{\ifopenquotes@''\openquotes@false\fi}
\newif\ifbeginbib@
\newif\ifendbib@
\newif\ifprevjour@
\newif\ifprevbook@
\newdimen\bibindent@
\bibindent@20\p@
\def\bib{\global\let\bibinfo@\empty\global\let\translinfo@\relax\beginbib@true
 \begingroup\noindent@
 \hangindent\bibindent@\hangafter\@ne\bib@}
\def\v@id#1{\setbox#1\box\voidb@x}
\def\bib@{\v@id\nobox@\v@id\keybox@\v@id\bybox@\v@id\paperbox@
 \v@id\paperinfobox@\v@id\jourbox@\v@id\volbox@\v@id\issuebox@
 \v@id\yrbox@\v@id\pgbox@\v@id\ppbox@\v@id\bookbox@\v@id\inbookbox@
 \v@id\bookinfobox@\v@id\publbox@\v@id\publaddrbox@\v@id\edbox@
 \v@id\edsbox@\v@id\langbox@\v@id\translbox@\v@id\finalinfobox@
 \bgroup}
\def\Setnonemptybox@#1#2{\unskip\setbibinfo@#1\egroup#2%
 \def\aftergroup@{\ifdim\wd#1=\z@\setbox#1\box\voidb@x\fi}%
 \setbox#1\vbox\bgroup\aftergroup\aftergroup@\hsize\maxdimen\leftskip\z@
 \rightskip\z@\hbadness\@M\hfuzz\maxdimen\noindent}
\def\setnonemptybox@#1{\Setnonemptybox@#1\relax}
\def\no{\setnonemptybox@\nobox@}
\def\key{\setnonemptybox@\keybox@\bf}
\def\by{\setnonemptybox@\bybox@}
\def\bysame{\setnonemptybox@\bybox@\leaders\hrule\hskip3em\null}
\def\paper{\setnonemptybox@\paperbox@
 \ifpaperinquotes@\getbibinfo@\paperbox@
 \if\nextv@1\else``\fi\else\it\fi}
\def\paperinfo{\setnonemptybox@\paperinfobox@}
\def\jour{\Setnonemptybox@\jourbox@\prevjour@true}
\def\vol{\setnonemptybox@\volbox@\bf}
\def\issue{\setnonemptybox@\issuebox@}
\def\yr{\setnonemptybox@\yrbox@}
\def\toappear{\noprepunct\finalinfo(to appear)}
\def\pg{\setnonemptybox@\pgbox@}
\def\pp{\setnonemptybox@\ppbox@}
\def\book{\Setnonemptybox@\bookbox@\prevbook@true
 \ifbookinquotes@\getbibinfo@\bookbox@
 \if\nextv@1\else``\fi\else\it\fi}
\def\inbook{\Setnonemptybox@\inbookbox@\prevbook@true
 \ifininbook@ in \fi\ifbookinquotes@\getbibinfo@\inbookbox@
 \if\nextv@1\else``\fi\fi}
\def\bookinfo{\setnonemptybox@\bookinfobox@}
\def\publ{\setnonemptybox@\publbox@}
\def\publaddr{\setnonemptybox@\publaddrbox@}
\def\ed{\setnonemptybox@\edbox@}
\def\eds{\setnonemptybox@\edsbox@}
\def\lang{\setnonemptybox@\langbox@}
\def\finalinfo{\setnonemptybox@\finalinfobox@}
\def\setboxzl@{\setbox\z@\lastbox}
\def\getbox@#1{\setbox\z@\vbox{\vskip-\@M\p@
 \unvbox#1%
 \setboxzl@
 \global\setbox\@ne\hbox{\unhbox\z@\unskip\unskip\unpenalty}%
 \ifdim\lastskip=-\@M\p@\else
 \loop\ifdim\lastskip=-\@M\p@
 \else\unskip\unpenalty\setboxzl@
 \global\setbox\@ne\hbox{\unhbox\z@\unhbox\@ne}%
 \repeat\fi}%
 \unhbox\@ne}
\def\adjustpunct@#1{\count@\lastkern
 \ifnum\count@=\z@#1\closequotes@\else
 \ifnum\count@>\tw@#1\closequotes@\else
 \ifnum\count@<-\tw@#1\closequotes@\else
  \unkern\unkern\setboxzl@
  \skip@\lastskip\unskip
  \count@@\lastpenalty\unpenalty
  \ifnum\count@=\tw@\unskip\setboxzl@\fi
  \ifdim\skip@=\z@\else\hskip\skip@\fi
  #1\closequotes@
  \ifnum\count@=\tw@\null\hfill\fi
  \penalty\count@@
 \fi\fi\fi}
\def\prepunct@#1#2{\getbibinfo@#2%
 \ifnopunct@
 \else
  \if\nextiii@0\adjustpunct@#1\fi
 \fi
 \closequotes@
 \ifnospace@
 \else
  \if\nextiv@0\space\else\fi
 \fi
 \nopunct@false\nospace@false
 \if\next@1\nopunct@true\fi
 \if\nextii@1\nospace@true\fi}
\def\ppunbox@#1#2{\prepunct@{#1}#2%
 \getbox@#2}
\let\semicolon@;
\def\endbib@{%
 \ifbeginbib@
  \ifvoid\nobox@
   \ifvoid\keybox@\else\hbox to\bibindent@{[\getbox@\keybox@]\hss}\fi
  \else\hbox to\bibindent@{\hss\getbox@\nobox@. }\fi
  \ifvoid\bybox@\else\getbox@\bybox@\fi
 \else
  \nopunct@true
  \ifvoid\bybox@\else\ppunbox@\relax\bybox@\fi
 \fi
 \ifvoid\translbox@\else\ppunbox@,\translbox@\fi
 \ifvoid\paperbox@\else\ppunbox@,\paperbox@\ifpaperinquotes@
  \if\nextv@1\else\openquotes@true\fi\fi
 \fi
 \ifvoid\paperinfobox@\else\ppunbox@,\paperinfobox@\fi
 \test@false
 \ifvoid\jourbox@\else\test@true\ppunbox@,\jourbox@\fi
 \ifprevjour@\test@true\fi
 \iftest@
  \ifvoid\volbox@\else\ppunbox@\relax\volbox@\fi
  \ifvoid\issuebox@
   \else\prepunct@\relax\issuebox@ no.~\getbox@\issuebox@\fi
  \ifvoid\yrbox@\else\prepunct@\relax\yrbox@(\getbox@\yrbox@)\fi
  \ifvoid\ppbox@\else\ppunbox@,\ppbox@\fi
  \ifvoid\pgbox@\else\prepunct@,\pgbox@ p.~\getbox@\pgbox@\fi
 \fi
 \test@false
 \ifvoid\bookbox@\else\test@true\ppunbox@,\bookbox@\ifbookinquotes@
  \if\nextv@1\else\openquotes@true\fi\fi\fi
 \ifvoid\inbookbox@\else\test@true\ppunbox@,\inbookbox@\ifbookinquotes@
  \if\nextv@1\else\openquotes@true\fi\fi\fi
 \ifprevbook@\test@true\fi
 \iftest@
  \ifvoid\edbox@\else\prepunct@\relax\edbox@(\getbox@\edbox@, ed.)\fi
  \ifvoid\edsbox@\else\prepunct@\relax\edsbox@(\getbox@\edsbox@, eds.)\fi
  \ifvoid\bookinfobox@\else\ppunbox@,\bookinfobox@\fi
  \ifvoid\publbox@\else\ppunbox@,\publbox@\fi
  \ifvoid\publaddrbox@\else\ppunbox@,\publaddrbox@\fi
  \ifvoid\yrbox@\else\ppunbox@,\yrbox@\fi
  \ifvoid\ppbox@\else\prepunct@,\ppbox@ pp.~\getbox@\ppbox@\fi
  \ifvoid\pgbox@\else\prepunct@,\pgbox@ p.~\getbox@\pgbox@\fi
 \fi
 \ifvoid\finalinfobox@
  \ifendbib@
   \ifnopunct@\else.\closequotes@\fi
  \else
  \ifvoid\langbox@\else\space(\getbox@\langbox@)\fi
   \/\semicolon@\closequotes@
  \fi
 \else
  \ifendbib@
   \ppunbox@{.\spacefactor3000\relax}\finalinfobox@
    \ifnopunct@\else.\fi
  \else
   \ppunbox@,\finalinfobox@\/\semicolon@\fi
 \fi
 \ifvoid\langbox@\else\space(\getbox@\langbox@)\fi
}
\def\endbib{\unskip\egroup\endbib@true\endbib@\par\endgroup}
\def\morebib{\unskip\egroup
 \endbib@false\endbib@
 \global\let\bibinfo@\empty\beginbib@false
 \bib@}
\def\anotherbib{\unskip\egroup
 \endbib@false\endbib@
 \global\let\bibinfo@\empty\beginbib@false
 \prevjour@false\prevbook@false\bib@}
\def\transl{\unskip
 \xdef\translinfo@{\the\translbox@,\ifnopunct@1\else0\fi
 \ifnospace@1\else0\fi\ifnoprepunct@1\else0\fi\ifnoprespace@1\else0\fi0}%
 \egroup\endbib@false\endbib@
 \global\let\bibinfo@\translinfo@\beginbib@false
 \bib@
 \egroup
 \def\aftergroup@{\ifdim\wd\translbox@=\z@\setbox\translbox@\box\voidb@x\fi}%
 \setbox\translbox@\vbox\bgroup\aftergroup\aftergroup@
 \hsize\maxdimen\leftskip\z@\rightskip\z@\hbadness\@M\hfuzz\maxdimen
 \noindent}
\newwrite\auxwrite@
\newread\bbl@
\def\UseBibTeX{\immediate\openout\auxwrite@=\jobname.aux
 \let\cite\BTcite@
 \def\nocite##1{\immediate\write\auxwrite@{\string\citation{##1}}}%
 \def\bibliographystyle##1{\immediate\write\auxwrite@{\string
  \bibstyle{##1}}}%
 \def\bibliography@W{Bibliography}%
 \def\bibliography##1{\immediate\write\auxwrite@{\string\bibdata{##1}}%
  \immediate\openin\bbl@=\jobname.bbl
  \ifeof\bbl@
   \W@{No .bbl file}%
  \else
   \immediate\closein\bbl@
   \begingroup\input bibtex \input\jobname.bbl \endgroup
  \fi}%
 }
\def\BTcite@{%
 \DNii@(##1)##2{{\rm[}\BTcite@@##2,\BTcite@@{\rm, }{##1\/}{\rm]}%
  \immediate\write\auxwrite@{\string\citation{##2}}}%
 \def\nextiii@##1{{\rm[}\BTcite@@##1,\BTcite@@\/{\rm]}%
  \immediate\write\auxwrite@{\string\citation{##1}}}%
 \DN@{\ifx\next(\expandafter\nextii@\else\expandafter\nextiii@\fi}%
 \FN@\next@}%
\def\BTcite@@#1,{\BTcite@@@{#1}\FN@\BTcite@@@@}
\def\BTcite@@@@{\ifx\next\BTcite@@
 \expandafter\eat@\else{\rm, }\expandafter\BTcite@@\fi}
\catcode`\~=11
\def\BTcite@@@#1{\nolabel@\cite{#1}\relax
 \DNii@##1~##2\nextii@{##1}%
 \csL@{#1}\expandafter\nextii@\Next@\nextii@\fi}
\catcode`\~=\active
\let\newblock\relax
\def\beginthebibliography@#1{\rm\setboxz@h{#1\ }\bibindent@\wdz@
 \bigbreak\centerline{\smc\bibliography@W}\nobreak\medskip
 \sfcode`\.=\@m\everypar{}\parindent\z@}
\def\unpurge#1{\input #1\relax}
\def\purge#1{\input #1.tox\relax}
\let\topinsert\undefined
\let\midinsert\undefined
\let\pageinsert\undefined
\newif\iffigproofing@
\def\Figureproofing{\figproofing@true}
\def\noFigureproofing{\figproofing@false}
\newif\ifHby@
\def\Hbyw#1{\global\Hby@true\hbyw\vsize{#1}}
\def\hbyw#1#2{%
 \hbox{%
  \ifHby@
  \else
   \iffigproofing@
    \setbox\z@\vbox{\hrule\width5\p@}\ht\z@\z@
    \vbox to#1{\hrule\height5\p@\width.4\p@\vfil\hrule\height5\p@\width.4\p@}%
    \kern-.4\p@\rlap{\copy\z@}\raise#1\hbox{\rlap{\copy\z@}}%
   \fi
  \fi
  \vbox to#1{\hbox to#2{}\vfil}%
  \ifHby@
  \else
   \iffigproofing@
    \vbox to#1{\hrule\height5\p@\width.4\p@\vfil\hrule\height5\p@\width.4\p@}%
    \kern-.4\p@\llap{\copy\z@}\raise#1\hbox{\llap{\boxz@}}%
   \fi
  \fi}}
\newcount\island@C
\let\island@P\empty
\let\island@Q\empty
\def\island@S#1{#1\null.}
\let\island@N\arabic
\def\island@F{\rm}
\def\island@@@P{\csname\exxx@\islandtype@ @P\endcsname}
\def\island@@@Q{\csname\exxx@\islandtype@ @Q\endcsname}
\def\island@@@S{\csname\exxx@\islandtype@ @S\endcsname}
\def\island@@@N{\csname\exxx@\islandtype@ @N\endcsname}
\def\island@@@F{\csname\exxx@\islandtype@ @F\endcsname}
\def\island@@@C{\csname island@C\islandclass@\endcsname}
\newif\ifplace@
\newif\ifisland@
\def\island{%
 \ifplace@
  \DN@{\let\islandclass@\empty\def\islandtype@{\island}\FN@\island@}%
 \else
  \long\DN@##1\endisland{\Err@{\noexpand\island must be used after some
   type of \string\...place}}%
 \fi
 \next@}
\def\island@{\ifx\next\c\let\next@\island@c\else
 \DN@{\FN@\island@@}\fi\next@}
\def\island@@{\ifcat\bgroup\noexpand\next\let\next@\island@@@\else
 \DN@{\Err@{\noexpand\island must be followed by a {prefix} for
 \string\caption's}}\fi\next@}
\newbox\islandbox@
\newcount\captioncount@
\def\island@@@#1{\def\captionprefix@{#1}\captioncount@\z@
 \global\setbox\islandbox@\vbox\bgroup}
\def\island@c\c#1{%
 \ifplace@
 \DN@{\def\islandclass@{#1}%
  \expandafter\ifx\csname island@C#1\endcsname\relax
  \expandafter\newcount@\csname island@C#1\endcsname
   \global\csname island@C#1\endcsname\z@\fi
  \FNSS@\island@c@}%
 \else
 \DN@{\edef\next@{\long\def\noexpand\next@########1\expandafter\noexpand
  \csname end\exxx@\islandtype@\endcsname{\noexpand\Err@{\noexpand\noexpand
  \expandafter\noexpand
  \islandtype@ must be used after some type of \noexpand\string
   \noexpand\...place}}}\next@\next@}%
 \fi
 \next@}
\def\island@c@{%
 \ifcat\bgroup\noexpand\next
  \let\next@\island@c@@
 \else
  \DN@{\Err@{\noexpand\island\string\c{\expandafter\string\islandclass@} must
   be followed by a {prefix} for \string\caption's}}%
 \fi\next@}
\def\island@c@@#1{\def\captionprefix@{#1}%
 \captioncount@\z@\global\setbox\islandbox@\vbox\bgroup}
\rightadd@\caption\to\nofrillslist@
\newbox\captionbox@
\newbox\Captionbox@
\def\caption{%
 \ifnum\captioncount@=\z@
  \ifnopunct@
   \DN@{\egroup\nopunct@true}%
  \else
   \let\next@\egroup
  \fi
 \else
  \let\next@\relax
 \fi
 \next@
 \advance\captioncount@\@ne
 \FN@\caption@}
\def\caption@{\ifx\next"\expandafter\caption@q\else\expandafter\caption@@\fi}
\def\caption@q"#1"{\quoted@true
 {\noexpands@
 \let\pre\island@@@P\let\post\island@@@Q
 \let\style\island@@@S\let\numstyle\island@@@N
 \Qlabel@{#1}\let\style\relax\xdef\Qlabel@@@@{#1}}%
 \finishcaption@}
\def\caption@@{\quoted@false
 \global\advance\island@@@C\@ne
 {\noexpands@
 \xdef\Thelabel@@@{\number\island@@@C}%
 \xdefThelabel@\island@@@N
 \xdef\Thelabel@@@@{\island@@@P\Thelabel@\island@@@Q}%
 \xdefThelabel@@\island@@@S
 \xdef\Thepref@{\Thelabel@@@@}}%
 \finishcaption@}
\long\def\captionformat@#1#2#3{\rm\strut#1 {\island@@@F#2} #3%
 \punct@.\strut}
\long\def\widerthanisland@#1#2#3{\test@true\setbox\z@\vbox{\hsize\maxdimen
 \noindent@@\captionformat@{#1}{#2}{#3}\par\setboxzl@}%
 \ifdim\wdz@=\z@
  \global\setbox\captionbox@\hbox{\noset@\unlabel@
   \captionformat@{#1}{#2}{#3}}%
  \ifdim\wd\captionbox@>\wd\islandbox@\else\test@false\fi
 \fi}
\long\def\captionformat@@#1#2#3{\widerthanisland@{#1}{#2}{#3}%
 \iftest@
  \global\setbox\captionbox@\vbox{\hsize\wd\islandbox@
   \vskip-\parskip\noindent@@\noset@\unlabel@
   \captionformat@{#1}{#2}{#3}\par}%
 \else
  \global\setbox\captionbox@
   \hbox to\wd\islandbox@{\hfil\box\captionbox@\hfil}%
 \fi}
\long\def\finishcaption@#1{\def\entry@{#1}%
 {\locallabel@
 \captionformat@@
  {\expandafter\ignorespaces\captionprefix@\unskip}%
  {\ifx\thelabel@@\empty\unskip\else\thelabel@@\fi}%
  {\ignorespaces#1\unskip}%
 \ifnum\captioncount@=\@ne
  \global\setbox\islandbox@\vbox{\ticwrite@\vbox{\box\islandbox@}}%
  \global\setbox\Captionbox@\vbox{\box\captionbox@}%
 \else
  \global\setbox\islandbox@\vbox{\unvbox\islandbox@\setboxzl@
   \ticwrite@\boxz@}%
  \global\setbox\Captionbox@\vbox{\unvbox\Captionbox@
   \smallskip\box\captionbox@}%
 \fi}%
 \nopunct@false\nospace@false\ignorespaces}
\def\Sixtic@{\ifx\macdef@\empty\else
 \DN@##1##2\next@{\def\macdef@{##1##2}}%
 \expandafter\next@\macdef@\next@
 \edef\next@
  {\noexpand\six@\tic@\macdef@
  \space\space\space\space\space\space\space\space\space\space\space\space
  \noexpand\six@}%
 \next@\let\macdef@\relax\fi}
\def\ticwrite@{%
 \iftoc@
  {\noexpands@\let\style\relax
  \DN@{\island}%
  \edef\next@{\write\tic@{%
   \ifnopunct@\noexpand\noexpand\noexpand\nopunct\fi
   \ifx\islandtype@\next@\noexpand\noexpand\noexpand\island
    \noexpand\string\noexpand\c{\islandclass@}{\captionprefix@}%
     {\QorThelabel@@@@}\else\noexpand\noexpand\expandafter\noexpand
     \islandtype@{\QorThelabel@@@@}}\fi}%
  \next@}%
  \expandafter\unmacro@\meaning\entry@\unmacro@
  \Sixtic@
  \write\tic@{\noexpand\Page{\number\pageno}{\page@N}{\page@P}{\page@Q}^^J}%
 \fi}
\def\Htrim@#1{%
 \ifHby@
  \dimen@\vsize
  \ifnum\captioncount@=\z@
  \else
   \advance\dimen@-\ht\Captionbox@
   \advance\dimen@-#1%
  \fi
  \global\Hby@false
  \dimen@ii\wd\islandbox@
  \global\setbox\islandbox@\vbox
   {\unvbox\islandbox@\setboxzl@
   \vbox to\z@{\vss\boxz@}\nointerlineskip\hbyw\dimen@\dimen@ii}%
  \global\Hby@true
 \fi}
\newif\ifdata@
\def\iclasstest@#1{\DN@{#1}\ifx\next@\islandclass@
 \test@true\else\test@false\fi}
\skipdef\skipi@=1
\def\endisland{\ifnum\captioncount@=\z@\expandafter\egroup\fi
 \ifdata@
 \else
  \iclasstest@{T}%
  \iftest@
   {\rm\global\skipi@-\dp\strutbox}\global\advance\skipi@\bigskipamount
   \Htrim@\skipi@
   \global\setbox\islandbox@\vbox
    {\ifnum\captioncount@=\z@\else
     \box\Captionbox@
     \nointerlineskip
     \vskip\skipi@\fi
     \box\islandbox@}%
  \else
   {\rm\global\skipi@\dp\strutbox}\global\advance\skipi@\medskipamount
   \Htrim@\skipi@
   \global\setbox\islandbox@\vbox
    {\box\islandbox@
     \ifnum\captioncount@=\z@\else
     \nointerlineskip
     \vskip\skipi@
     \box\Captionbox@
     \fi}%
  \fi
  \ifHby@
  \else
   \dimen@\ht\islandbox@\advance\dimen@\dp\islandbox@
   \ifdim\dimen@>\vsize
    \DN@{\island}%
    \Err@{%
     \ifx\islandtype@\next@\noexpand\island\else
      \expandafter\noexpand\islandtype@\fi
     \ifnum\captioncount@=\z@\else
       with \noexpand\caption\fi
      is larger than page}%
     \ht\islandbox@=\vsize
   \fi
  \fi
 \fi
 \global\Hby@false\island@true}
\def\newisland#1\c#2#3{\define#1{}%
 \iftoc@\immediate\write\tic@{\noexpand\newisland\noexpand#1%
  \string\c{#2}{#3}^^J}\fi
 \expandafter\def\csname\exstring@#1@S\endcsname{\island@S}%
 \expandafter\def\csname\exstring@#1@N\endcsname{\island@N}%
 \expandafter\def\csname\exstring@#1@P\endcsname{\island@P}%
 \expandafter\def\csname\exstring@#1@Q\endcsname{\island@Q}%
 \expandafter\def\csname\exstring@#1@F\endcsname{\island@F}%
 \expandafter\def\csname end\exstring@#1\endcsname{\endisland}%
 \expandafter
 \ifx\csname island@C#2\endcsname\relax
  \expandafter\newcount@\csname island@C#2\endcsname
  \global\csname island@C#2\endcsname\z@
 \fi
 \edef\next@{\noexpand\expandafter\noexpand\let\noexpand
  \csname\exstring@#1@C\noexpand\endcsname
  \csname island@C#2\endcsname}%
 \next@
 \def#1{\def\islandtype@{#1}\island@c\c{#2}{#3}}}
\newisland\Figure\c{F}{Figure}
\newisland\Table\c{T}{Table}
\newbox\islandboxi
\newbox\islandboxii
\newbox\islandboxiii
\newbox\captionboxi
\newbox\captionboxii
\newbox\captionboxiii
\long\def\islandpairdata#1#2{{\data@true
 \place@true
 #1%
 \global\setbox\islandboxi\box\islandbox@
 \global\setbox\captionboxi\box\Captionbox@
 #2%
 \global\setbox\islandboxii\box\islandbox@
 \global\setbox\captionboxii\box\Captionbox@
 }}
\long\def\islandpairbox#1#2{\islandpairdata{#1}{#2}%
 \dimen@\ht\captionboxi
 \ifdim\ht\captionboxii>\dimen@\dimen@\ht\captionboxii\fi
 \ifdim\dimen@>\z@
  \ifdim\ht\captionboxi<\dimen@
   \global\setbox\captionboxi\vbox to\dimen@{\unvbox\captionboxi\vfil}\fi
  \ifdim\ht\captionboxii<\dimen@
   \global\setbox\captionboxii\vbox to\dimen@{\unvbox\captionboxii\vfil}\fi
 \fi
 \global\setbox\islandbox@\vbox
 {\hbox to\hsize{\hfil\box\islandboxi\hfil\box\islandboxii\hfil}%
 \ifdim\dimen@>\z@\nointerlineskip
 {\rm\global\skipi@\dp\strutbox}\global\advance\skipi@\medskipamount
  \vskip\skipi@
  \hbox to\hsize{\hfil\box\captionboxi\hfil\box\captionboxii\hfil}\fi}}
\long\def\islandpairboxa#1#2{\islandpairdata{#1}{#2}%
 \dimen@\ht\captionboxi
 \ifdim\ht\captionboxii>\dimen@\dimen@\ht\captionboxii\fi
 \ifdim\dimen@>\z@
  \ifdim\ht\captionboxi<\dimen@
   \global\setbox\captionboxi\vbox to\dimen@{\vfil\unvbox\captionboxi}\fi
  \ifdim\ht\captionboxii<\dimen@
   \global\setbox\captionboxii\vbox to\dimen@{\vfil\unvbox\captionboxii}\fi
 \fi
 \dimen@ii\ht\islandboxi
 \ifdim\ht\islandboxii>\dimen@ii \dimen@ii\ht\islandboxii\fi
 \ifdim\dimen@ii>\z@
  \ifdim\ht\islandboxi<\dimen@ii
   \global\setbox\islandboxi\vbox to\dimen@ii{\box\islandboxi\vfil}\fi
  \ifdim\ht\islandboxii<\dimen@ii
   \global\setbox\islandboxii\vbox to\dimen@ii{\box\islandboxii\vfil}\fi
 \fi
 \global\setbox\islandbox@\vbox{\ifdim\dimen@>\z@
  \hbox to\hsize{\hfil\box\captionboxi\hfil\box\captionboxii\hfil}%
  \nointerlineskip{\rm\global\skipi@-\dp\strutbox}%
  \global\advance\skipi@\bigskipamount\vskip\skipi@\fi
  \hbox to\hsize{\hfil\box\islandboxi\hfil\box\islandboxii\hfil}}}
\long\def\islandtripledata#1#2#3{{\data@true\place@true
 #1%
 \global\setbox\islandboxi\box\islandbox@
 \global\setbox\captionboxi\box\Captionbox@
 #2%
 \global\setbox\islandboxii\box\islandbox@
 \global\setbox\captionboxii\box\Captionbox@
 #3%
 \global\setbox\islandboxiii\box\islandbox@
 \global\setbox\captionboxiii\box\Captionbox@
 }}
\long\def\islandtriplebox#1#2#3{\islandtripledata{#1}{#2}{#3}%
 \dimen@\ht\captionboxi
 \ifdim\ht\captionboxii>\dimen@ \dimen@\ht\captionboxii\fi
 \ifdim\ht\captionboxiii>\dimen@ \dimen@\ht\captionboxiii\fi
 \ifdim\dimen@>\z@
  \ifdim\ht\captionboxi<\dimen@
   \global\setbox\captionboxi\vbox to\dimen@{\unvbox\captionboxi\vfil}\fi
  \ifdim\ht\captionboxii<\dimen@
   \global\setbox\captionboxii\vbox to\dimen@{\unvbox\captionboxii\vfil}\fi
  \ifdim\ht\captionboxiii<\dimen@
   \global\setbox\captionboxiii\vbox to\dimen@{\unvbox\captionboxiii\vfil}\fi
 \fi
 \global\setbox\islandbox@\vbox
  {\hbox to\hsize{\hfil\box\islandboxi\hfil\box\islandboxii\hfil
   \box\islandboxiii\hfil}%
 \ifdim\dimen@>\z@\nointerlineskip
  {\rm\global\skipi@\dp\strutbox}\global\advance\skipi@\medskipamount
  \vskip\skipi@
  \hbox to\hsize{\hfil\box\captionboxi\hfil\box\captionboxii\hfil
   \box\captionboxiii\hfil}\fi}}
\def\islandtripleboxa#1#2#3{\islandtripledata{#1}{#2}{#3}%
 \dimen@\ht\captionboxi
 \ifdim\ht\captionboxii>\dimen@ \dimen@\ht\captionboxii\fi
 \ifdim\ht\captionboxiii>\dimen@ \dimen@\ht\captionboxiii\fi
 \ifdim\dimen@>\z@
  \ifdim\ht\captionboxi<\dimen@
   \global\setbox\captionboxi\vbox to\dimen@{\vfil\unvbox\captionboxi}\fi
  \ifdim\ht\captionboxii<\dimen@
   \global\setbox\captionboxii\vbox to\dimen@{\vfil\unvbox\captionboxii}\fi
  \ifdim\ht\captionboxiii<\dimen@
   \global\setbox\captionboxiii\vbox to\dimen@{\vfil\unvbox\captionboxiii}\fi
 \fi
 \dimen@ii\ht\islandboxi
 \ifdim\ht\islandboxii>\dimen@ii \dimen@ii\ht\islandboxii\fi
 \ifdim\ht\islandboxiii>\dimen@ii \dimen@ii\ht\islandboxiii\fi
 \ifdim\dimen@ii>\z@
  \ifdim\ht\islandboxi<\dimen@ii
   \global\setbox\islandboxi\vbox to\dimen@ii{\box\islandboxi\vfil}\fi
  \ifdim\ht\islandboxii<\dimen@ii
   \global\setbox\islandboxii\vbox to\dimen@ii{\box\islandboxii\vfil}\fi
  \ifdim\ht\islandboxiii<\dimen@ii
   \global\setbox\islandboxiii\vbox to\dimen@ii{\box\islandboxiii\vfil}\fi
 \fi
 \global\setbox\islandbox@\vbox
  {\ifdim\dimen@>\z@
  \hbox to\hsize{\hfil\box\captionboxi\hfil\box\captionboxii\hfil
   \box\captionboxiii\hfil}%
  \nointerlineskip{\rm\global\skipi@-\dp\strutbox}%
  \global\advance\skipi@\bigskipamount\vskip\skipi@\fi
  \hbox to\hsize{\hfil\box\islandboxi\hfil\box\islandboxii\hfil
   \box\islandboxiii\hfil}}}
\def\Figurepair#1\and#2\endFigurepair{\island@true
 \islandpairbox{\Figure#1\endFigure}{\Figure#2\endFigure}}
\def\Figuretriple#1\and#2\and#3\endFiguretriple{\island@true
 \islandtriplebox{\Figure#1\endFigure}{\Figure#2\endFigure}%
  {\Figure#3\endFigure}}
\def\Tablepair#1\and#2\endTablepair{\island@true
 \islandpairboxa{\Table#1\endTable}{\Table#2\endTable}}
\def\Tabletriple#1\and#2\and#3\endTabletriple{\island@true
 \islandtripleboxa{\Table#1\endTable}{\Table#2\endTable}%
 {\Table#3\endTable}}
\def\place#1{\place@true\island@false
 #1%
 \ifisland@
  \box\islandbox@
 \else
  \Err@{Whoa ... there's no \string\Figure, \string\Table,
   etc., here}%
 \fi
 \place@false}
\newskip\belowtopfigskip
\belowtopfigskip 15\p@ plus 5\p@ minus5\p@
\newskip\abovebotfigskip
\abovebotfigskip 18\p@ plus 6\p@ minus6\p@
\newdimen\minpagesize
\minpagesize 5pc
\dimen@\belowtopfigskip
\advance\dimen@-\abovebotfigskip
\skip\topins\dimen@
\dimen\topins\z@
\newcount\topinscount@
\newbox\topinsdims@
\def\storedim@{\global\setbox\topinsdims@
 \vbox{\hbox to\dimen@{}\unvbox\topinsdims@}}
\def\advancedimtopins@{%
 \ifnum\pageno=\@ne
 \else
   \advance\dimen@\dimen\topins
   \global\dimen\topins\dimen@
 \fi}
\newcount\flipcount@
\def\fliptopins@{%
 \global\flipcount@\z@
 \ifvoid\topins\else
 \setbox\z@\vbox
  {\vskip\p@
   \unvbox\topins
   \global\setbox\topins\vbox{}%
   \loop
    \test@false
    \ifdim\lastskip=\z@\unskip
     \ifdim\lastskip=\z@
      \test@true\fi\fi
    \iftest@
    \global\advance\flipcount@\@ne
    \setboxzl@
    \global\setbox\topins\vbox{\unvbox\topins\boxz@}%
    \unpenalty
   \repeat}\fi}
\newif\ifPar@
\newcount\Parcount@
\newbox\Parbox@
\expandafter\newbox\csname Parfigbox1\endcsname
\expandafter\newbox\csname Parfigbox2\endcsname
\expandafter\newbox\csname Parfigbox3\endcsname
\expandafter\newbox\csname Parfigbox4\endcsname
\expandafter\newbox\csname Parfigbox5\endcsname
\expandafter\newdimen\csname Parprev1\endcsname
\expandafter\newdimen\csname Parprev2\endcsname
\expandafter\newdimen\csname Parprev3\endcsname
\expandafter\newdimen\csname Parprev4\endcsname
\expandafter\newdimen\csname Parprev5\endcsname
\expandafter\newdimen\csname Parprev6\endcsname
\def\Par{\par\global\csname Parprev1\endcsname\prevdepth
 \global\Parcount@\@ne
 \global\Par@true\global\let\Parlist@\empty
 \global\setbox\Parbox@\vbox\bgroup\break}
\def\place@#1#2{%
 \ifisland@
  \ifhmode
   \ifPar@
    \ifnum\Parcount@>5
     \Err@{Only 5 \string\place's allowed per
      \string\Par...\noexpand\endPar paragraph}%
    \else
     \expandafter\expandafter\expandafter
      \global\expandafter\setbox
       \csname Parfigbox\number\Parcount@\endcsname\box\islandbox@
     \global\advance\Parcount@\@ne
     \xdef\Parlist@{\Parlist@#1}%
    \fi
   \else
    \vadjust{#2}%
   \fi
  \else
   #2%
  \fi
 \else
  \Err@{Whoa ... there's no \string\Figure,
   \string\Table, etc., here}%
 \fi
 \place@false}
\long\def\Aplace#1{\prevanish@
 \place@true\island@false
 #1%
 \place@ a\Aplace@
 \postvanish@}
\long\def\AAplace#1{\prevanish@\place@true\island@false
 #1%
 \place@ A\AAplace@
 \postvanish@}
\newif\ifAA@
\def\AAplace@{\AA@true\Aplace@\AA@false}
\let\AAlist@\empty
\def\Aplace@{\allowbreak
 \dimen@=\ht\islandbox@
 \advance\dimen@\abovebotfigskip
 \ht\islandbox@\dimen@
 \advance\dimen@\dp\islandbox@
 \storedim@
 \ifAA@
  \xdef\AAlist@{\AAlist@1}%
  \advancedimtopins@
 \else
  \xdef\AAlist@{\AAlist@0}%
  \ifnum\topinscount@>\@ne\else\advancedimtopins@\fi
 \fi
 \insert\topins{\penalty\z@\splittopskip\z@\floatingpenalty\z@
  \box\islandbox@}%
 \global\advance\topinscount@\@ne}
\long\def\Bplace#1{\prevanish@\place@true\island@false
 #1%
 \place@ b\Bplace@
 \postvanish@}
\def\Bplace@{\allowbreak
 \ifnum\topinscount@=\z@
  \setbox\z@\vbox{\vbox to-\belowtopfigskip{}}%
  \dimen@-\skip\topins
  \ht\z@\dimen@
  \storedim@
  \advancedimtopins@
  \insert\topins{\boxz@}%
  \global\advance\topinscount@\@ne
  \xdef\AAlist@{\AAlist@0}%
 \fi
 \dimen@\ht\islandbox@
 \advance\dimen@\abovebotfigskip
 \ht\islandbox@\dimen@
 \advance\dimen@\dp\islandbox@
 \storedim@
 \xdef\AAlist@{\AAlist@0}%
 \ifnum\topinscount@>\@ne\else\advancedimtopins@\fi
 \insert\topins{\penalty\z@\splittopskip\z@
  \floatingpenalty\z@
  \box\islandbox@}%
 \global\advance\topinscount@\@ne}
\def\breakisland@{\global\setbox\@ne\lastbox\global\skipi@\lastskip\unskip
 \global\setbox\thr@@\lastbox}%
\def\printisland@{\centerline{\box\thr@@}\nobreak\nointerlineskip
 \vskip\skipi@
 \ifdim\ht\@ne<\z@\box\@ne\else\centerline{\box\@ne}\fi}
\def\bottomfigs@{%
 \count@\@ne
 \loop
  \ifnum\count@<\flipcount@
  \nointerlineskip
  \vskip\abovebotfigskip
  \global\setbox\topins\vbox{\unvbox\topins\setboxzl@
   \unvbox\z@
   \breakisland@}%
  \printisland@
  \advance\count@\@ne
  \repeat}
\def\resetdimtopins@{%
 \global\advance\topinscount@-\flipcount@
 \global\setbox\topinsdims@\vbox
  {\unvbox\topinsdims@
   \count@\z@
   \DN@##1##2\next@{\gdef\AAlist@{##2}}%
   \loop
    \ifnum\count@<\flipcount@\setboxzl@
    \expandafter\next@\AAlist@\next@
    \advance\count@\@ne
    \repeat
   \dimen@\z@
   \count@\z@
   \setbox\tw@\vbox{}%
   \edef\nextiii@{\AAlist@}%
   \DN@##1##2\next@{\DNii@{##1}\def\nextiii@{##2}}%
   \loop
    \test@false
    \ifnum\count@<\topinscount@
    \expandafter\next@\nextiii@\next@
     \ifnum\count@<\tw@
      \test@true
     \else
      \if\nextii@ 1\test@true\fi
     \fi
    \fi
    \iftest@
     \setboxzl@
     \advance\dimen@\wdz@
     \setbox\tw@\vbox{\boxz@\unvbox\tw@}%
     \advance\count@\@ne
    \repeat
    \unvbox\tw@
    \global\dimen\topins\dimen@}}
\def\Place@#1#2{%
 \ifisland@
  \ifhmode
   \ifPar@
    \ifnum\Parcount@>5
     \Err@{Only 5 \string\place's allowed per
       \string\Par...\noexpand\endPar paragraph}%
    \else
     \expandafter\expandafter\expandafter\global\expandafter\setbox
      \csname Parfigbox\number\Parcount@\endcsname\box\islandbox@
     \global\advance\Parcount@\@ne
     \xdef\Parlist@{\Parlist@#1}%
     \vadjust{\break}%
    \fi
   \else
    \Err@{\noexpand#2allowed only in a \string\Par...\noexpand\endPar
     paragraph}%
   \fi
  \else
   #2%
  \fi
 \else
  \Err@{Who ... there's no \string\Figure, \string\Table,
   etc., here}%
 \fi
 \place@false}
\newif\ifC@
\newdimen\Cdim@
\long\def\Cplace#1{\prevanish@\place@true\island@false
 #1%
 \Place@ c\Cplace@
 \postvanish@}
\def\Cplace@{\allowbreak
 \ifnum\topinscount@>\z@\else
  \global\C@true\global\Cdim@\pagetotal\fi
 \Aplace@}
\long\def\Mplace#1{\prevanish@\place@true\island@false
 #1%
 \Place@ m\Mplace@
 \postvanish@}
\long\def\MXplace#1{\prevanish@\place@true\island@false
 #1%
 \Place@ M\MXplace@
 \postvanish@}
\newif\ifMX@
\def\MXplace@{\MX@true\Mplace@\MX@false}
\def\Mplace@{\allowbreak
 \dimen@\ht\islandbox@\advance\dimen@\dp\islandbox@
 \ifdim\pagetotal=\z@\else
  \ifdim\lastskip<\abovebotfigskip\advance\dimen@\abovebotfigskip
  \advance\dimen@-\lastskip\fi
 \fi
 \advance\dimen@\pagetotal
 \ifdim\dimen@>\pagegoal
  \Aplace@
 \else
  \nointerlineskip
  \ifdim\lastskip<\abovebotfigskip\removelastskip\vskip\abovebotfigskip\fi
  \setbox\z@\vbox{\unvbox\islandbox@
   \breakisland@}%
  \printisland@
  \ifnum\topinscount@=\z@
   \setbox\z@\vbox{\vbox to-\belowtopfigskip{}}%
   \dimen@-\skip\topins
   \ht\z@\dimen@
   \storedim@
   \advancedimtopins@
   \insert\topins{\boxz@}%
   \global\advance\topinscount@\@ne
   \xdef\AAlist@{\AAlist@0}%
  \fi
  \ifMX@
   \ifnum\topinscount@=\@ne
    \setbox\z@\vbox{\vbox to-\abovebotfigskip{}}%
    \ht\z@\z@
    \dimen@\z@
    \storedim@
    \advancedimtopins@
    \insert\topins{\boxz@}%
    \global\advance\topinscount@\@ne
    \xdef\AAlist@{\AAlist@0}%
   \fi
  \fi
  \nointerlineskip
  \vskip\belowtopfigskip
 \fi}
\expandafter\newbox\csname Parbox1\endcsname
\expandafter\newbox\csname Parbox2\endcsname
\expandafter\newbox\csname Parbox3\endcsname
\expandafter\newbox\csname Parbox4\endcsname
\expandafter\newbox\csname Parbox5\endcsname
\def\endPar{\egroup
 \count@\@ne
 {\vbadness\@M\vfuzz\maxdimen\splitmaxdepth\maxdimen\splittopskip\ht\strutbox
 \setbox\z@\vsplit\Parbox@ to\ht\Parbox@
 \loop
  \ifnum\count@<\Parcount@
  \expandafter\expandafter\expandafter\global\expandafter\setbox
   \csname Parbox\number\count@\endcsname\vsplit\Parbox@ to\ht\Parbox@
  \count@@\count@\advance\count@@\@ne
  \global\csname Parprev\number\count@@\endcsname
   \dp\csname Parbox\number\count@\endcsname
  \advance\count@\@ne
  \repeat}%
 \vskip\parskip
 \count@\@ne
 \def\nextv@##1##2\nextv@{\DN@{##1}\gdef\Parlist@{##2}}%
 \loop
  \ifnum\count@<\Parcount@
   \dimen@\csname Parprev\number\count@\endcsname
   \advance\dimen@\ht\strutbox
   \ifdim\dimen@<\baselineskip
    \advance\dimen@-\baselineskip\vskip-\dimen@
   \else
    \vskip\lineskip
   \fi
   \unvbox\csname Parbox\number\count@\endcsname
   \global\setbox\islandbox@\box\csname Parfigbox\number\count@\endcsname
   \expandafter\nextv@\Parlist@\nextv@
   \if a\next@\Aplace@\else
   \if A\next@\AAplace@\else
   \if b\next@\Bplace@\else
   \if c\next@\Cplace@\else
   \if m\next@\Mplace@\else
   \if M\next@\MXplace@\fi\fi\fi\fi\fi\fi
  \advance\count@\@ne
  \repeat
 \global\Par@false
 \ifvoid\Parbox@
  \prevdepth\csname Parprev\number\count@\endcsname
 \else
  \dimen@\csname Parprev\number\count@\endcsname\advance\dimen@\ht\strutbox
  \ifdim\dimen@<\baselineskip
    \advance\dimen@-\baselineskip\vskip-\dimen@
  \else
    \vskip\lineskip
  \fi
  \dimen@\dp\Parbox@
  \unvbox\Parbox@
  \prevdepth\dimen@
 \fi}
\def\folio{{\page@F\page@S{\page@P\page@N{\number\page@C}\page@Q}}}
\def\advancepageno{\global\advance\pageno\@ne}
\newif\ifspecialsplit@
\newbox\outbox@
\let\shipout@\shipout
\def\plainoutput{\specialsplit@false\ifvoid\topins\else\ifdim\ht\topins=\z@
 \specialsplit@true\advance\minpagesize-\skip\topins\fi\fi
 \fliptopins@
 \setbox\outbox@\vbox{\makeheadline\pagebody\makefootline}%
 {\noexpands@\let\style\relax
 \shipout@\box\outbox@}%
 \advancepageno
 \resetdimtopins@
 \ifvoid\@cclv\else\unvbox\@cclv\penalty\outputpenalty\fi
 \ifnum\outputpenalty>-\@MM\else\dosupereject\fi}
\def\pagebody{\vbox to\vsize{\boxmaxdepth\maxdepth
 \ifvoid\margin@\else
 \rlap{\kern\hsize\vbox to\z@{\kern4\p@\box\margin@\vss}}\fi
 \pagecontents}}
\newif\ifonlytop@
\def\pagecontents{%
 \onlytop@false
 \ifdim\ht\@cclv<\minpagesize\ifnum\flipcount@<\tw@\ifvoid\footins
  \onlytop@true\fi\fi\fi
 \test@false
 \ifC@
  \ifnum\flipcount@=\@ne
   \global\multiply\Cdim@\tw@
   \ifdim\Cdim@>\ht\@cclv
    \test@true
   \fi
  \fi
 \fi
 \global\C@false
 \iftest@
  \dimen@\ht\@cclv
  \advance\dimen@\skip\topins
  {\vfuzz\maxdimen\vbadness\@M
  \splitmaxdepth\maxdepth\splittopskip\topskip
  \setbox\z@\vsplit\@cclv to\dimen@
  \unvbox\z@}%
  \global\setbox\topins\vbox{\unvbox\topins
   \global\setbox\@ne\lastbox}%
  \setbox\z@\vbox{\unvbox\@ne
   \breakisland@}%
  \nointerlineskip
  \vskip\abovebotfigskip
  \printisland@
 \else
  \ifnum\flipcount@>\z@
   \global\setbox\topins\vbox{\unvbox\topins\global\setbox\@ne\lastbox}%
   \setbox\z@\vbox{\unvbox\@ne
    \breakisland@}%
   \printisland@
   \ifonlytop@\kern-\prevdepth\vfill\else\vskip\belowtopfigskip\fi
  \fi
 \fi
 \ifdim\ht\@cclv<\minpagesize
  \ifonlytop@\else\vfill\fi
 \else
  \ifspecialsplit@
   {\vfuzz\maxdimen\vbadness\@M
   \splitmaxdepth\maxdepth\splittopskip\topskip
   \dimen@ii\ht\@cclv \advance\dimen@ii\skip\topins
   \setbox\z@\vsplit\@cclv to\dimen@ii
   \unvbox\z@}%
  \else
   \unvbox\@cclv
  \fi
 \fi
 \bottomfigs@
 \ifvoid\footins\else\vskip\skip\footins\footnoterule\unvbox\footins\fi}
\newread\readdata@
\def\readthedata@#1{\expandafter
 \ifx\csname#1@D\endcsname\relax
  \immediate\openin\readdata@=#1.dat
  \ifeof\readdata@
   \Err@{No file #1.dat}%
  \else
   {\endlinechar\m@ne\gdef\Next@{}%
   \DNii@##1 ##2 ##3pt{\global\data@ht##1\global\data@dp##2%
    \global\data@wd##3pt}%
   \loop
    \ifeof\readdata@
    \else
    \read\readdata@ to\next@
    \ifx\next@\empty\else
     \edef\next@{\expandafter\nextii@\next@}%
     \expandafter\rightadd@\next@\to\Next@
    \fi
    \repeat}%
   \immediate\closein\readdata@
   \expandafter\expandafter\expandafter\global\expandafter
    \let\csname#1@D\endcsname\Next@\global\let\Next@\relax
  \fi
 \fi}
\newdimen\data@ht
\newdimen\data@dp
\newdimen\data@wd
\newif\ifgetdata@
\def\getdata@#1#2{\global\getdata@true\count@#2\relax
 {\let\\\or\xdef\Next@{\ifcase\number\count@#1\else
 \global\noexpand\getdata@false\fi}}\Next@}
\def\paste#1#2{\readthedata@{#1}%
 \getdata@{\csname#1@D\endcsname}{#2}%
 \ifgetdata@
 \dimen@\data@ht \advance\dimen@\data@dp
  \hbox{\special{dvipaste: #1 #2}%
   \lower\data@dp\vbox to\dimen@{\hbox to\data@wd{}\vfil}}%
 \else
  {\lccode`\Z=`\#\lccode`\N=`\N\lccode`\F=`\F%
   \lowercase{\Err@{No data for File [#1], Z#2}}}%
 \fi}
\newdimen\httable
\newdimen\dptable
\newdimen\wdtable
\def\measuretable#1#2{\readthedata@{#1}%
 \getdata@{\csname#1@D\endcsname}{#2}%
 \ifgetdata@
  \httable\data@ht \dptable\data@dp \wdtable\data@wd
 \else
  {\lccode`\Z=`\#\lccode`\N=`\N\lccode`\F=`\F%
  \lowercase{\Err@{No data for File [#1], Z#2}}}%
 \fi}
\def\East#1#2{\setboxz@h{$\m@th\ssize\;{#1}\;\;$}%
 \setbox\tw@\hbox{$\m@th\ssize\;{#2}\;\;$}\setbox4=\hbox{$\m@th#2$}%
 \dimen@\minaw@
 \ifdim\wdz@>\dimen@\dimen@\wdz@\fi\ifdim\wd\tw@>\dimen@\dimen@\wd\tw@\fi
 \ifdim\wd4 >\z@
  \mathrel{\mathop{\hbox to\dimen@{\rightarrowfill}}\limits^{#1}_{#2}}%
 \else
  \mathrel{\mathop{\hbox to\dimen@{\rightarrowfill}}\limits^{#1}}%
 \fi}
\def\West#1#2{\setboxz@h{$\m@th\ssize\;\;{#1}\;$}%
 \setbox\tw@\hbox{$\m@th\ssize\;\;{#2}\;$}\setbox4=\hbox{$\m@th#2$}%
 \dimen@\minaw@
 \ifdim\wdz@>\dimen@\dimen@\wdz@\fi\ifdim\wd\tw@>\dimen@\dimen@\wd\tw@\fi
 \ifdim\wd4 >\z@
  \mathrel{\mathop{\hbox to\dimen@{\leftarrowfill}}\limits^{#1}_{#2}}%
 \else
  \mathrel{\mathop{\hbox to\dimen@{\leftarrowfill}}\limits^{#1}}%
 \fi}
\font\arrow@i=lams1
\font\arrow@ii=lams2
\font\arrow@iii=lams3
\font\arrow@iv=lams4
\font\arrow@v=lams5
\newdimen\standardcgap
\standardcgap40\p@
\newdimen\hunit
\hunit\tw@\p@
\newdimen\standardrgap
\standardrgap32\p@
\newdimen\vunit
\vunit1.6\p@
\def\Cgaps#1{\RIfM@
 \standardcgap#1\standardcgap\relax\hunit#1\hunit\relax
 \else\nonmatherr@\Cgaps\fi}
\def\Rgaps#1{\RIfM@
 \standardrgap#1\standardrgap\relax\vunit#1\vunit\relax
 \else\nonmatherr@\Rgaps\fi}
\newdimen\getdim@
\def\getcgap@#1{\ifcase#1\or\getdim@\z@\else\getdim@\standardcgap\fi}
\def\getrgap@#1{\ifcase#1\getdim@\z@\else\getdim@\standardrgap\fi}
\def\cgaps{\RIfM@\expandafter\cgaps@\else\expandafter\nonmatherr@
 \expandafter\cgaps\fi}
\def\cgaps@{\ifnum\catcode`\;=\active\expandafter\cgapsA@\else
 \expandafter\cgapsO@\fi}
\def\cgapsO@#1{\toks@{\ifcase\i@\or\getdim@=\z@}%
 \gaps@@\standardcgap#1;\gaps@@\gaps@@
 \edef\next@{\the\toks@\noexpand\else\noexpand\getdim@\noexpand\standardcgap
  \noexpand\fi}%
 \toks@=\expandafter{\next@}%
 \edef\getcgap@##1{\i@##1\relax\the\toks@}\toks@{}}
{\catcode`\;=\active
 \gdef\cgapsA@#1{\toks@{\ifcase\i@\or\getdim@=\z@}%
 \gaps@@\standardcgap#1;\gaps@@\gaps@@
 \edef\next@{\the\toks@\noexpand\else\noexpand\getdim@\noexpand\standardcgap
  \noexpand\fi}%
 \toks@=\expandafter{\next@}%
 \edef\getcgap@##1{\i@##1\relax\the\toks@}\toks@{}}
}
\def\Gaps@@{\gaps@@}
\def\gaps@@#1#2;#3{\mgaps@#1#2\mgaps@
 \edef\next@{\the\toks@\noexpand\or\noexpand\getdim@
  \noexpand#1\the\mgapstoks@@}%
 \toks@\expandafter{\next@}%
 \DN@{#3}%
 \ifx\next@\Gaps@@\def\next@##1\gaps@@{}\else
  \def\next@{\gaps@@#1#3}\fi\next@}
{\catcode`\;=\active
 \gdef\rgaps#1{\RIfM@{\ifnum\catcode`\;=\active\def;{\string;}\fi
   \xdef\Next@{\noexpand\rgaps@{#1}}}%
  \Next@\edef\getrgap@##1{\i@##1\relax\the\toks@}\toks@{}\else
  \nonmatherr@\rgaps\fi}
}
\def\rgaps@#1{\toks@{\ifcase\i@\getdim@=\z@}%
 \gaps@@\standardrgap#1;\gaps@@\gaps@@
 \edef\next@{\the\toks@\noexpand\else\noexpand\getdim@\noexpand\standardrgap
  \noexpand\fi}%
 \toks@=\expandafter{\next@}}
\newbox\ZER@
\def\mgaps@#1{\let\mgapsnext@#1\FNSS@\mgaps@@}
\def\mgaps@@{\ifx\next\w\expandafter\mgaps@@@\else
 \expandafter\mgaps@@@@\fi}
\newtoks\mgapstoks@@
\def\mgaps@@@@#1\mgaps@{\getdim@\mgapsnext@\getdim@#1\getdim@
 \edef\next@{\noexpand\getdim@\the\getdim@}%
 \mgapstoks@@\expandafter{\next@}}
\def\mgaps@@@\w#1#2\mgaps@{\mgaps@@@@#2\mgaps@
 \setbox\ZER@\hbox{$\m@th\hskip15\p@\tsize@#1$}%
 \dimen@\wd\ZER@
 \ifdim\dimen@>\getdim@\getdim@\dimen@\fi
 \edef\next@{\noexpand\getdim@\the\getdim@}%
 \mgapstoks@@\expandafter{\next@}}
\def\changewidth#1#2{\setbox\ZER@{$\m@th#2}%
 \hbox to\wd\ZER@{\hss$\m@th#1$\hss}}
\atdef@({\FN@\ARROW@}
\def\ARROW@{\ifx\next)\let\next@\OPTIONS@\else
 \DN@{\csname\string @(\endcsname}\fi\next@}
\newif\ifoptions@
\def\OPTIONS@){\ifoptions@\let\next@\relax\else
 \DN@{\global\options@true\begingroup\optioncodes@}\fi\next@}
\newif\ifN@
\newif\ifE@
\newif\ifNESW@
\newif\ifH@
\newif\ifV@
\newif\ifHshort@
\expandafter\def\csname\string @(\endcsname #1,#2){%
 \ifoptions@\expandafter\endgroup\fi
 \N@false\E@false\H@false\V@false\Hshort@false
 \ifnum#1>\z@\E@true\fi
 \ifnum#1=\z@\V@true\global\tX@false\global\tY@false\global\a@false\fi
 \ifnum#2>\z@\N@true\fi
 \ifnum#2=\z@\H@true\global\tX@false\global\tY@false\global\a@false
  \ifshort@\Hshort@true\fi\fi
 \NESW@false
 \ifN@\ifE@\NESW@true\fi\else\ifE@\else\NESW@true\fi\fi
 \arrow@{#1}{#2}%
 \global\options@false
 \global\scount@\z@\global\tcount@\z@\global\arrcount@\z@
 \global\s@false\global\sxdimen@\z@\global\sydimen@\z@
 \global\tX@false\global\tXdimen@i\z@\global\tXdimen@ii\z@
 \global\tY@false\global\tYdimen@i\z@\global\tYdimen@ii\z@
 \global\a@false\global\exacount@\z@
 \global\x@false\global\xdimen@\z@
 \global\X@false\global\Xdimen@\z@
 \global\y@false\global\ydimen@\z@
 \global\Y@false\global\Ydimen@\z@
 \global\p@false\global\pdimen@\z@
 \global\label@ifalse\global\label@iifalse
 \global\dl@ifalse\global\ldimen@i\z@
 \global\dl@iifalse\global\ldimen@ii\z@
 \global\short@false\global\unshort@false}
\newif\iflabel@i
\newif\iflabel@ii
\newcount\scount@
\newcount\tcount@
\newcount\arrcount@
\newif\ifs@
\newdimen\sxdimen@
\newdimen\sydimen@
\newif\iftX@
\newdimen\tXdimen@i
\newdimen\tXdimen@ii
\newif\iftY@
\newdimen\tYdimen@i
\newdimen\tYdimen@ii
\newif\ifa@
\newcount\exacount@
\newif\ifx@
\newdimen\xdimen@
\newif\ifX@
\newdimen\Xdimen@
\newif\ify@
\newdimen\ydimen@
\newif\ifY@
\newdimen\Ydimen@
\newif\ifp@
\newdimen\pdimen@
\newif\ifdl@i
\newif\ifdl@ii
\newdimen\ldimen@i
\newdimen\ldimen@ii
\newif\ifshort@
\newif\ifunshort@
\def\zero@#1{\ifnum\scount@=\z@
 \if#1e\global\scount@\m@ne\else
 \if#1t\global\scount@\tw@\else
 \if#1h\global\scount@\thr@@\else
 \if#1'\global\scount@6 \else
 \if#1`\global\scount@7 \else
 \if#1(\global\scount@8 \else
 \if#1)\global\scount@9 \else
 \if#1s\global\scount@12 \else
 \if#1H\global\scount@13 \else
 \Err@{\Invalid@@ option \string\0}\fi\fi\fi\fi\fi\fi\fi\fi\fi
 \fi}
\def\one@#1{\ifnum\tcount@=\z@
 \if#1e\global\tcount@\m@ne\else
 \if#1h\global\tcount@\tw@\else
 \if#1t\global\tcount@\thr@@\else
 \if#1'\global\tcount@4 \else
 \if#1`\global\tcount@5 \else
 \if#1(\global\tcount@\ten@ \else
 \if#1)\global\tcount@11 \else
 \if#1s\global\tcount@12 \else
 \if#1H\global\tcount@13 \else
 \Err@{\Invalid@@ option \string\1}\fi\fi\fi\fi\fi\fi\fi\fi\fi
 \fi}
\def\a@#1{\ifnum\arrcount@=\z@
 \if#10\global\arrcount@\m@ne\else
 \if#1+\global\arrcount@\@ne\else
 \if#1-\global\arrcount@\tw@\else
 \if#1=\global\arrcount@\thr@@\else
 \Err@{\Invalid@@ option \string\a}\fi\fi\fi\fi
 \fi}
\def\ds@{\ifnum\catcode`\;=\active\expandafter\dsA@\else
 \expandafter\dsO@\fi}
\def\dsO@(#1;#2){\ds@@{#1}{#2}}
\def\ds@@#1#2{\ifs@\else
 \global\s@true
 \global\sxdimen@\hunit\global\sxdimen@#1\sxdimen@\relax
 \global\sydimen@\vunit\global\sydimen@#2\sydimen@\relax
 \fi}
\def\dtX@{\ifnum\catcode`\;=\active\expandafter\dtXA@\else
 \expandafter\dtXO@\fi}
\def\dtXO@(#1;#2){\dtX@@{#1}{#2}}
\def\dtX@@#1#2{\iftX@\else
 \global\tX@true
 \global\tXdimen@i\hunit\global\tXdimen@i#1\tXdimen@i\relax
 \global\tXdimen@ii\vunit\global\tXdimen@ii#2\tXdimen@ii\relax
 \fi}
\def\dtY@{\ifnum\catcode`\;=\active\expandafter\dtYA@\else
 \expandafter\dtYO@\fi}
\def\dtYO@(#1;#2){\dtY@@{#1}{#2}}
\def\dtY@@#1#2{\iftY@\else
 \global\tY@true
 \global\tYdimen@i\hunit\global\tYdimen@i#1\tYdimen@i\relax
 \global\tYdimen@ii\vunit\global\tYdimen@ii#2\tYdimen@ii\relax
 \fi}
{\catcode`\;=\active
 \gdef\dsA@(#1;#2){\ds@@{#1}{#2}}
 \gdef\dtXA@(#1;#2){\dtX@@{#1}{#2}}
 \gdef\dtYA@(#1;#2){\dtY@@{#1}{#2}}
}
\def\da@#1{\ifa@\else\global\a@true\global\exacount@#1\relax\fi}
\def\dx@#1{\ifx@\else
 \global\x@true
 \global\xdimen@\hunit\global\xdimen@#1\xdimen@\relax
 \fi}
\def\dX@#1{\ifX@\else
 \global\X@true
 \global\Xdimen@\hunit\global\Xdimen@#1\Xdimen@\relax
 \fi}
\def\dy@#1{\ify@\else
 \global\y@true
 \global\ydimen@\vunit\global\ydimen@#1\ydimen@\relax
 \fi}
\def\dY@#1{\ifY@\else
 \global\Y@true
 \global\Ydimen@\vunit\global\Ydimen@#1\Ydimen@\relax
 \fi}
\def\p@@#1{\ifp@\else
 \global\p@true
 \global\pdimen@\hunit\global\divide\pdimen@\tw@
 \global\pdimen@#1\pdimen@\relax
 \fi}
\def\L@#1{\iflabel@i\else
 \global\label@itrue\gdef\label@i{#1}%
 \fi}
\def\l@#1{\iflabel@ii\else
 \global\label@iitrue\gdef\label@ii{#1}%
 \fi}
\def\dL@#1{\ifdl@i\else
 \global\dl@itrue\global\ldimen@i\hunit\global\ldimen@i#1\ldimen@i\relax
 \fi}
\def\dl@#1{\ifdl@ii\else
 \global\dl@iitrue\global\ldimen@ii\hunit\global\ldimen@ii#1\ldimen@ii\relax
 \fi}
\def\s@{\ifunshort@\else\global\short@true\fi}
\def\uns@{\ifshort@\else\global\unshort@true\global\short@false\fi}
\def\optioncodes@{\let\0\zero@\let\1\one@\let\a\a@\let\ds\ds@\let\dtX\dtX@
 \let\dtY\dtY@\let\da\da@\let\dx\dx@\let\dX\dX@\let\dY\dY@\let\dy\dy@
 \let\p\p@@\let\L\L@\let\l\l@\let\dL\dL@\let\dl\dl@\let\s\s@\let\uns\uns@}
\def\slopes@{\\161\\152\\143\\134\\255\\126\\357\\238\\349\\45{10}\\56{11}%
 \\11{12}\\65{13}\\54{14}\\43{15}\\32{16}\\53{17}\\21{18}\\52{19}\\31{20}%
 \\41{21}\\51{22}\\61{23}}
\newcount\tan@i
\newcount\tan@ip
\newcount\tan@ii
\newcount\tan@iip
\newdimen\slope@i
\newdimen\slope@ip
\newdimen\slope@ii
\newdimen\slope@iip
\newcount\angcount@
\newcount\extracount@
\def\slope@{{\slope@i\secondy@\advance\slope@i-\firsty@
 \ifN@\else\multiply\slope@i\m@ne\fi
 \slope@ii\secondx@\advance\slope@ii-\firstx@
 \ifE@\else\multiply\slope@ii\m@ne\fi
 \ifdim\slope@ii<\z@
  \global\tan@i6 \global\tan@ii\@ne\global\angcount@23
 \else
  \dimen@\slope@i\multiply\dimen@6
  \ifdim\dimen@<\slope@ii
   \global\tan@i\@ne\global\tan@ii6 \global\angcount@\@ne
  \else
   \dimen@\slope@ii\multiply\dimen@6
   \ifdim\dimen@<\slope@i
    \global\tan@i6 \global\tan@ii\@ne\global\angcount@23
   \else
    \global\tan@ip\z@\global\tan@iip\@ne
    \def\\##1##2##3{\global\angcount@##3\relax
     \slope@ip\slope@i\slope@iip\slope@ii
     \multiply\slope@iip##1\relax\multiply\slope@ip##2\relax
     \ifdim\slope@iip<\slope@ip
      \global\tan@ip##1\relax\global\tan@iip##2\relax
     \else
      \global\tan@i##1\relax\global\tan@ii##2\relax
      \def\\####1####2####3{}%
     \fi}%
    \slopes@
    \slope@i\secondy@\advance\slope@i-\firsty@
    \ifN@\else\multiply\slope@i\m@ne\fi
    \multiply\slope@i\tan@ii\multiply\slope@i\tan@iip\multiply\slope@i\tw@
    \count@\tan@i\multiply\count@\tan@iip
    \extracount@\tan@ip\multiply\extracount@\tan@ii
    \advance\count@\extracount@
    \slope@ii\secondx@\advance\slope@ii-\firstx@
    \ifE@\else\multiply\slope@ii\m@ne\fi
    \multiply\slope@ii\count@
    \ifdim\slope@i<\slope@ii
     \global\tan@i\tan@ip\global\tan@ii\tan@iip
     \global\advance\angcount@\m@ne
    \fi
   \fi
  \fi
 \fi}%
}
\def\slope@a#1{{\def\\##1##2##3{\ifnum##3=#1\global\tan@i##1\relax
 \global\tan@ii##2\relax\fi}\slopes@}}
\newcount\i@
\newcount\j@
\newcount\colcount@
\newcount\Colcount@
\newcount\tcolcount@
\newdimen\rowht@
\newdimen\rowdp@
\newcount\rowcount@
\newcount\Rowcount@
\newcount\maxcolrow@
\newtoks\colwidthtoks@
\newtoks\Rowheighttoks@
\newtoks\Rowdepthtoks@
\newtoks\widthtoks@
\newtoks\Widthtoks@
\newtoks\heighttoks@
\newtoks\Heighttoks@
\newtoks\depthtoks@
\newtoks\Depthtoks@
\newif\iffirstCDcr@
\def\dotoks@i{%
 \global\widthtoks@\expandafter{\the\widthtoks@\else\getdim@\z@\fi}%
 \global\heighttoks@\expandafter{\the\heighttoks@\else\getdim@\z@\fi}%
 \global\depthtoks@\expandafter{\the\depthtoks@\else\getdim@\z@\fi}}
\def\dotoks@ii{%
 \global\widthtoks@{\ifcase\j@}%
 \global\heighttoks@{\ifcase\j@}%
 \global\depthtoks@{\ifcase\j@}}
\def\preCD@#1\endCD{\setbox\ZER@
 \vbox{%
  \def\arrow@##1##2{{}}%
  \global\rowcount@\m@ne\global\colcount@\z@\global\Colcount@\z@
  \global\firstCDcr@true\toks@{}%
  \global\widthtoks@{\ifcase\j@}%
  \global\Widthtoks@{\ifcase\i@}%
  \global\heighttoks@{\ifcase\j@}%
  \global\Heighttoks@{\ifcase\i@}%
  \global\depthtoks@{\ifcase\j@}%
  \global\Depthtoks@{\ifcase\i@}%
  \global\Rowheighttoks@{\ifcase\i@}%
  \global\Rowdepthtoks@{\ifcase\i@}%
  \Let@
  \everycr{%
   \noalign{%
    \global\advance\rowcount@\@ne
    \ifnum\colcount@<\Colcount@
    \else
     \global\Colcount@\colcount@\global\maxcolrow@\rowcount@
    \fi
    \global\colcount@\z@
    \iffirstCDcr@
     \global\firstCDcr@false
    \else
     \edef\next@{\the\Rowheighttoks@\noexpand\or\noexpand\getdim@\the\rowht@}%
      \global\Rowheighttoks@\expandafter{\next@}%
     \edef\next@{\the\Rowdepthtoks@\noexpand\or\noexpand\getdim@\the\rowdp@}%
      \global\Rowdepthtoks@\expandafter{\next@}%
     \global\rowht@\z@\global\rowdp@\z@
     \dotoks@i
     \edef\next@{\the\Widthtoks@\noexpand\or\the\widthtoks@}%
      \global\Widthtoks@\expandafter{\next@}%
     \edef\next@{\the\Heighttoks@\noexpand\or\the\heighttoks@}%
      \global\Heighttoks@\expandafter{\next@}%
     \edef\next@{\the\Depthtoks@\noexpand\or\the\depthtoks@}%
      \global\Depthtoks@\expandafter{\next@}%
     \dotoks@ii
    \fi}}%
  \tabskip\z@
  \halign{&\setbox\ZER@\hbox{\vrule\height\ten@\p@\width\z@\depth\z@     %1
   $\m@th\displaystyle{##}$}\copy\ZER@
   \ifdim\ht\ZER@>\rowht@\global\rowht@\ht\ZER@\fi
   \ifdim\dp\ZER@>\rowdp@\global\rowdp@\dp\ZER@\fi
   \global\advance\colcount@\@ne
   \edef\next@{\the\widthtoks@\noexpand\or\noexpand\getdim@\the\wd\ZER@}%
    \global\widthtoks@\expandafter{\next@}%
   \edef\next@{\the\heighttoks@\noexpand\or\noexpand\getdim@\the\ht\ZER@}%
    \global\heighttoks@\expandafter{\next@}%
   \edef\next@{\the\depthtoks@\noexpand\or\noexpand\getdim@\the\dp\ZER@}%
    \global\depthtoks@\expandafter{\next@}%
   \cr#1\crcr}}%
 \Rowcount@\rowcount@
 \global\Widthtoks@\expandafter{\the\Widthtoks@\fi\relax}%
 \edef\Width@##1##2{\i@##1\relax\j@##2\relax\the\Widthtoks@}%
 \global\Heighttoks@\expandafter{\the\Heighttoks@\fi\relax}%
 \edef\Height@##1##2{\i@##1\relax\j@##2\relax\the\Heighttoks@}%
 \global\Depthtoks@\expandafter{\the\Depthtoks@\fi\relax}%
 \edef\Depth@##1##2{\i@##1\relax\j@##2\relax\the\Depthtoks@}%
 \edef\next@{\the\Rowheighttoks@\noexpand\fi\relax}%
 \global\Rowheighttoks@\expandafter{\next@}%
 \edef\Rowheight@##1{\i@##1\relax\the\Rowheighttoks@}%
 \edef\next@{\the\Rowdepthtoks@\noexpand\fi\relax}%
 \global\Rowdepthtoks@\expandafter{\next@}%
 \edef\Rowdepth@##1{\i@##1\relax\the\Rowdepthtoks@}%
 \global\colwidthtoks@{\fi}%
 \setbox\ZER@\vbox{%
  \unvbox\ZER@
  \count@\rowcount@
  \loop
   \unskip\unpenalty
   \setbox\ZER@\lastbox
   \ifnum\count@>\maxcolrow@\advance\count@\m@ne
   \repeat
  \hbox{%
   \unhbox\ZER@
   \count@\z@
   \loop
    \unskip
    \setbox\ZER@\lastbox
    \edef\next@{\noexpand\or\noexpand\getdim@\the\wd\ZER@\the\colwidthtoks@}%
     \global\colwidthtoks@\expandafter{\next@}%
    \advance\count@\@ne
    \ifnum\count@<\Colcount@
    \repeat}}%
 \edef\next@{\noexpand\ifcase\noexpand\i@\the\colwidthtoks@}%
  \global\colwidthtoks@\expandafter{\next@}%
 \edef\Colwidth@##1{\i@##1\relax\the\colwidthtoks@}%
 \global\colwidthtoks@{}\global\Rowheighttoks@{}\global\Rowdepthtoks@{}%
 \global\widthtoks@{}\global\Widthtoks@{}\global\heighttoks@{}%
 \global\Heighttoks@{}\global\depthtoks@{}\global\Depthtoks@{}%
}
\newcount\xoff@
\newcount\yoff@
\newcount\endcount@
\newcount\rcount@
\newdimen\firstx@
\newdimen\firsty@
\newdimen\secondx@
\newdimen\secondy@
\newdimen\tocenter@
\newdimen\charht@
\newdimen\charwd@
\def\outside@{\Err@{This arrow points outside the \string\CD}}
\newif\ifsvertex@
\newif\iftvertex@
\def\arrow@#1#2{\global\xoff@#1\relax\global\yoff@#2\relax
 \count@\rowcount@\advance\count@-\yoff@
 \ifnum\count@<\@ne\outside@\else\ifnum\count@>\Rowcount@\outside@\fi\fi
 \count@\colcount@\advance\count@\xoff@
 \ifnum\count@<\@ne\outside@\else\ifnum\count@>\Colcount@\outside@\fi\fi
 \tcolcount@\colcount@\advance\tcolcount@\xoff@
 \Width@\rowcount@\colcount@\divide\getdim@\tw@\tocenter@-\getdim@
 \ifdim\getdim@=\z@
  \firstx@\z@\firsty@\mathaxis@\svertex@true
 \else
  \svertex@false
  \ifHshort@
   \Colwidth@\colcount@\divide\getdim@\tw@
   \ifE@ \firstx@\getdim@ \else \firstx@-\getdim@ \fi
  \else
   \ifE@ \firstx@\getdim@ \else \firstx@-\getdim@ \fi
  \fi
  \ifE@
   \ifH@ \advance\firstx@\thr@@\p@ \else \advance\firstx@-\thr@@\p@ \fi  %2
  \else
   \ifH@ \advance\firstx@-\thr@@\p@ \else \advance\firstx@\thr@@\p@ \fi  %3
  \fi
  \ifN@
   \Height@\rowcount@\colcount@ \firsty@\getdim@                         %4
   \ifV@ \advance\firsty@\thr@@\p@ \fi                                   %5
  \else
   \ifV@
    \Depth@\rowcount@\colcount@ \firsty@-\getdim@                        %6
    \advance\firsty@-\thr@@\p@                                           %7
   \else
    \firsty@\z@                                                          %8
   \fi
  \fi
 \fi
 \ifV@
 \else
  \Colwidth@\colcount@\divide\getdim@\tw@
  \ifE@\secondx@\getdim@\else\secondx@-\getdim@\fi
  \ifE@\else\getcgap@\colcount@\advance\secondx@-\getdim@\fi
  \endcount@\colcount@\advance\endcount@\xoff@
  \count@\colcount@
  \ifE@
   \advance\count@\@ne
   \loop
    \ifnum\count@<\endcount@
    \Colwidth@\count@\advance\secondx@\getdim@
    \getcgap@\count@\advance\secondx@\getdim@
    \advance\count@\@ne
    \repeat
  \else
   \advance\count@\m@ne
   \loop
    \ifnum\count@>\endcount@
    \Colwidth@\count@\advance\secondx@-\getdim@
    \getcgap@\count@\advance\secondx@-\getdim@
    \advance\count@\m@ne
    \repeat
  \fi
  \Colwidth@\count@\divide\getdim@\tw@
  \ifHshort@
  \else
   \ifE@\advance\secondx@\getdim@\else\advance\secondx@-\getdim@\fi
  \fi
  \ifE@\getcgap@\count@\advance\secondx@\getdim@\fi
  \rcount@\rowcount@\advance\rcount@-\yoff@
  \Width@\rcount@\count@\divide\getdim@\tw@
  \tvertex@false
  \ifH@\ifdim\getdim@=\z@\tvertex@true\Hshort@false\fi\fi
  \ifHshort@
  \else
   \ifE@\advance\secondx@-\getdim@\else\advance\secondx@\getdim@\fi
  \fi
  \iftvertex@
   \advance\secondx@.4\p@
  \else
   \ifE@\advance\secondx@-\thr@@\p@\else\advance\secondx@\thr@@\p@\fi    %9
  \fi
 \fi
 \ifH@
 \else
  \ifN@
   \Rowheight@\rowcount@\secondy@\getdim@
  \else
   \Rowdepth@\rowcount@\secondy@-\getdim@
   \getrgap@\rowcount@\advance\secondy@-\getdim@
  \fi
  \endcount@\rowcount@\advance\endcount@-\yoff@
  \count@\rowcount@
  \ifN@
   \advance\count@\m@ne
   \loop
    \ifnum\count@>\endcount@
    \Rowheight@\count@\advance\secondy@\getdim@
    \Rowdepth@\count@\advance\secondy@\getdim@
    \getrgap@\count@\advance\secondy@\getdim@
    \advance\count@\m@ne
    \repeat
  \else
   \advance\count@\@ne
   \loop
    \ifnum\count@<\endcount@
    \Rowheight@\count@\advance\secondy@-\getdim@
    \Rowdepth@\count@\advance\secondy@-\getdim@
    \getrgap@\count@\advance\secondy@-\getdim@
    \advance\count@\@ne
    \repeat
  \fi
  \tvertex@false
  \ifV@\Width@\count@\colcount@\ifdim\getdim@=\z@\tvertex@true\fi\fi
  \ifN@
   \getrgap@\count@\advance\secondy@\getdim@
   \Rowdepth@\count@\advance\secondy@\getdim@
   \iftvertex@
    \advance\secondy@\mathaxis@
   \else
    \Depth@\count@\tcolcount@\advance\secondy@-\getdim@
    \advance\secondy@-\thr@@\p@                                          %10
   \fi
  \else
   \Rowheight@\count@\advance\secondy@-\getdim@
   \iftvertex@
    \advance\secondy@\mathaxis@
   \else
    \Height@\count@\tcolcount@\advance\secondy@\getdim@
    \advance\secondy@\thr@@\p@                                           %11
   \fi
  \fi
 \fi
 \ifV@\else\advance\firstx@\sxdimen@\fi
 \ifH@\else\advance\firsty@\sydimen@\fi
 \iftX@
  \advance\secondy@\tXdimen@ii
  \advance\secondx@\tXdimen@i
  \slope@
 \else
  \iftY@
   \advance\secondy@\tYdimen@ii
   \advance\secondx@\tYdimen@i
   \slope@
   \secondy@\secondx@\advance\secondy@-\firstx@
   \ifNESW@\else\multiply\secondy@\m@ne\fi
   \multiply\secondy@\tan@i\divide\secondy@\tan@ii\advance\secondy@\firsty@
  \else
   \ifa@
    \slope@
    \ifNESW@\global\advance\angcount@\exacount@\else
     \global\advance\angcount@-\exacount@\fi
    \ifnum\angcount@>23 \global\angcount@23 \fi
    \ifnum\angcount@<\@ne\global\angcount@\@ne\fi
    \slope@a\angcount@
    \ifY@
     \advance\secondy@\Ydimen@
    \else
     \ifX@
      \advance\secondx@\Xdimen@
      \dimen@\secondx@\advance\dimen@-\firstx@
      \ifNESW@\else\multiply\dimen@\m@ne\fi
      \multiply\dimen@\tan@i\divide\dimen@\tan@ii
      \advance\dimen@\firsty@\secondy@\dimen@
     \fi
    \fi
   \else
    \ifH@\else\ifV@\else\slope@\fi\fi
   \fi
  \fi
 \fi
 \ifH@\else\ifV@\else\ifsvertex@\else
  \dimen@6\p@\multiply\dimen@\tan@ii
  \count@\tan@i\advance\count@\tan@ii\divide\dimen@\count@
  \ifE@\advance\firstx@\dimen@\else\advance\firstx@-\dimen@\fi
  \multiply\dimen@\tan@i\divide\dimen@\tan@ii
  \ifN@\advance\firsty@\dimen@\else\advance\firsty@-\dimen@\fi
 \fi\fi\fi
 \ifp@
  \ifH@\else\ifV@\else
   \getcos@\pdimen@\advance\firsty@\dimen@\advance\secondy@\dimen@
   \ifNESW@\advance\firstx@-\dimen@ii\else\advance\firstx@\dimen@ii\fi
  \fi\fi
 \fi
 \ifH@\else\ifV@\else
  \ifnum\tan@i>\tan@ii
   \charht@\ten@\p@\charwd@\ten@\p@
   \multiply\charwd@\tan@ii\divide\charwd@\tan@i
  \else
   \charwd@\ten@\p@\charht@\ten@\p@
   \divide\charht@\tan@ii\multiply\charht@\tan@i
  \fi
  \ifnum\tcount@=\thr@@
   \ifN@\advance\secondy@-.3\charht@\else\advance\secondy@.3\charht@\fi
  \fi
  \ifnum\scount@=\tw@
   \ifE@\advance\firstx@.3\charht@\else\advance\firstx@-.3\charht@\fi
  \fi
  \ifnum\tcount@=12
   \ifN@\advance\secondy@-\charht@\else\advance\secondy@\charht@\fi
  \fi
  \iftY@
  \else
   \ifa@
    \ifX@
    \else
     \secondx@\secondy@\advance\secondx@-\firsty@
     \ifNESW@\else\multiply\secondx@\m@ne\fi
     \multiply\secondx@\tan@ii\divide\secondx@\tan@i
     \advance\secondx@\firstx@
    \fi
   \fi
  \fi
 \fi\fi
 \ifH@\harrow@\else\ifV@\varrow@\else\arrow@@\fi\fi}
\newdimen\mathaxis@
\mathaxis@90\p@\divide\mathaxis@36
\def\harrow@b{\ifE@\hskip\tocenter@\hskip\firstx@\fi}
\def\harrow@bb{\ifE@\hskip\xdimen@\else\hskip\Xdimen@\fi}
\def\harrow@e{\ifE@\else\hskip-\firstx@\hskip-\tocenter@\fi}
\def\harrow@ee{\ifE@\hskip-\Xdimen@\else\hskip-\xdimen@\fi}
\def\harrow@{\dimen@\secondx@\advance\dimen@-\firstx@
 \ifE@\let\next@\rlap\else\multiply\dimen@\m@ne\let\next@\llap\fi
 \next@{%
  \harrow@b
  \smash{\raise\pdimen@\hbox to\dimen@
   {\harrow@bb\arrow@ii
    \ifnum\arrcount@=\m@ne\else\ifnum\arrcount@=\thr@@\else
     \ifE@
      \ifnum\scount@=\m@ne
      \else
       \ifcase\scount@\or\or\char118 \or\char117 \or\or\or\char119 \or
       \char120 \or\char121 \or\char122 \or\or\or\arrow@i\char125 \or
       \char117 \hskip\thr@@\p@\char117 \hskip-\thr@@\p@\fi
      \fi
     \else
      \ifnum\tcount@=\m@ne
      \else
       \ifcase\tcount@\char117 \or\or\char117 \or\char118 \or\char119 \or
       \char120 \or\or\or\or\or\char121 \or\char122 \or\arrow@i\char125
       \or\char117 \hskip\thr@@\p@\char117 \hskip-\thr@@\p@\fi
      \fi
     \fi
    \fi\fi
    \dimen@\mathaxis@\advance\dimen@.2\p@
    \dimen@ii\mathaxis@\advance\dimen@ii-.2\p@
    \ifnum\arrcount@=\m@ne
     \let\leads@\null
    \else
     \ifcase\arrcount@
      \def\leads@{\hrule\height\dimen@\depth-\dimen@ii}\or
      \def\leads@{\hrule\height\dimen@\depth-\dimen@ii}\or
      \def\leads@{\hbox to\ten@\p@{%
       \leaders\hrule\height\dimen@\depth-\dimen@ii\hfil
       \hfil
      \leaders\hrule\height\dimen@\depth-\dimen@ii\hskip\z@ plus2fil\relax
       \hfil
       \leaders\hrule\height\dimen@\depth-\dimen@ii\hfil}}\or
     \def\leads@{\hbox{\hbox to\ten@\p@{\dimen@\mathaxis@\advance\dimen@1.2\p@
       \dimen@ii\dimen@\advance\dimen@ii-.4\p@
       \leaders\hrule\height\dimen@\depth-\dimen@ii\hfil}%
       \kern-\ten@\p@
       \hbox to\ten@\p@{\dimen@\mathaxis@\advance\dimen@-1.2\p@
       \dimen@ii\dimen@\advance\dimen@ii-.4\p@
       \leaders\hrule\height\dimen@\depth-\dimen@ii\hfil}}}\fi
    \fi
    \cleaders\leads@\hfil
    \ifnum\arrcount@=\m@ne\else\ifnum\arrcount@=\thr@@\else
     \arrow@i
     \ifE@
      \ifnum\tcount@=\m@ne
      \else
       \ifcase\tcount@\char119 \or\or\char119 \or\char120 \or\char121 \or
       \char122 \or \or\or\or\or\char123 \or\char124 \or
       \char125 \or\char119 \hskip-\thr@@\p@\char119 \hskip\thr@@\p@\fi
      \fi
     \else
      \ifcase\scount@\or\or\char120 \or\char119 \or\or\or\char121 \or\char122
      \or\char123 \or\char124 \or\or\or\char125 \or
      \char119 \hskip-\thr@@\p@\char119 \hskip\thr@@\p@\fi
     \fi
    \fi\fi
    \harrow@ee}}%
  \harrow@e}%
 \iflabel@i
  \dimen@ii\z@\setbox\ZER@\hbox{$\m@th\tsize@@\label@i$}%
  \ifnum\arrcount@=\m@ne
  \else
   \advance\dimen@ii\mathaxis@
   \advance\dimen@ii\dp\ZER@\advance\dimen@ii\tw@\p@
   \ifnum\arrcount@=\thr@@\advance\dimen@ii\tw@\p@\fi
  \fi
  \advance\dimen@ii\pdimen@
  \next@{\harrow@b\smash{\raise\dimen@ii\hbox to\dimen@
   {\harrow@bb\hskip\tw@\ldimen@i\hfil\box\ZER@\hfil\harrow@ee}}\harrow@e}%
 \fi
 \iflabel@ii
  \ifnum\arrcount@=\m@ne
  \else
   \setbox\ZER@\hbox{$\m@th\tsize@\label@ii$}%
   \dimen@ii-\ht\ZER@\advance\dimen@ii-\tw@\p@
   \ifnum\arrcount@=\thr@@\advance\dimen@ii-\tw@\p@\fi
   \advance\dimen@ii\mathaxis@\advance\dimen@ii\pdimen@
   \next@{\harrow@b\smash{\raise\dimen@ii\hbox to\dimen@
    {\harrow@bb\hskip\tw@\ldimen@ii\hfil\box\ZER@\hfil\harrow@ee}}\harrow@e}%
  \fi
 \fi}
\let\tsize@\tsize
\def\tsizeCDlabels{\let\tsize@\tsize}
\def\ssizeCDlabels{\let\tsize@\ssize}
\def\tsize@@{\ifnum\arrcount@=\m@ne\else\tsize@\fi}
\def\varrow@{\dimen@\secondy@\advance\dimen@-\firsty@
 \ifN@\else\multiply\dimen@\m@ne\fi
 \setbox\ZER@\vbox to\dimen@
  {\ifN@\vskip-\Ydimen@\else\vskip\ydimen@\fi
   \ifnum\arrcount@=\m@ne\else\ifnum\arrcount@=\thr@@\else
    \hbox{\arrow@iii
     \ifN@
      \ifnum\tcount@=\m@ne
      \else
       \ifcase\tcount@\char117 \or\or\char117 \or\char118 \or\char119 \or
       \char120 \or\or\or\or\or\char121 \or\char122 \or\char123 \or
       \vbox{\hbox{\char117}\nointerlineskip\vskip\thr@@\p@
       \hbox{\char117}\vskip-\thr@@\p@}\fi
      \fi
     \else
      \ifcase\scount@\or\or\char118 \or\char117 \or\or\or\char119 \or
      \char120 \or\char121 \or\char122 \or\or\or\char123 \or
      \vbox{\hbox{\char117}\nointerlineskip\vskip\thr@@\p@
      \hbox{\char117}\vskip-\thr@@\p@}\fi
     \fi}%
    \nointerlineskip
   \fi\fi
   \ifnum\arrcount@=\m@ne
    \let\leads@\null
   \else
    \ifcase\arrcount@\let\leads@\vrule\or\let\leads@\vrule\or
    \def\leads@{\vbox to\ten@\p@{%
     \hrule\height1.67\p@\depth\z@\width.4\p@
     \vfil
     \hrule\height3.33\p@\depth\z@\width.4\p@
     \vfil
     \hrule\height1.67\p@\depth\z@\width.4\p@}}\or
    \def\leads@{\hbox{\vrule\height\p@\hskip\tw@\p@\vrule}}\fi
   \fi
  \cleaders\leads@\vfill\nointerlineskip
   \ifnum\arrcount@=\m@ne\else\ifnum\arrcount@=\thr@@\else
    \hbox{\arrow@iv
     \ifN@
      \ifcase\scount@\or\or\char118 \or\char117 \or\or\or\char119 \or
      \char120 \or\char121 \or\char122 \or\or\or\arrow@iii\char123 \or
      \vbox{\hbox{\char117}\nointerlineskip\vskip-\thr@@\p@
      \hbox{\char117}\vskip\thr@@\p@}\fi
     \else
      \ifnum\tcount@=\m@ne
      \else
       \ifcase\tcount@\char117 \or\or\char117 \or\char118 \or\char119 \or
       \char120 \or\or\or\or\or\char121 \or\char122 \or\arrow@iii\char123 \or
       \vbox{\hbox{\char117}\nointerlineskip\vskip-\thr@@\p@
       \hbox{\char117}\vskip\thr@@\p@}\fi
      \fi
     \fi}%
   \fi\fi
   \ifN@\vskip\ydimen@\else\vskip-\Ydimen@\fi}%
 \ifN@
  \dimen@ii\firsty@
 \else
  \dimen@ii-\firsty@\advance\dimen@ii\ht\ZER@\multiply\dimen@ii\m@ne
 \fi
 \rlap{\smash{\hskip\tocenter@\hskip\pdimen@\raise\dimen@ii\box\ZER@}}%
 \iflabel@i
  \setbox\ZER@\vbox to\dimen@{\vfil
   \hbox{$\m@th\tsize@@\label@i$}\vskip\tw@\ldimen@i\vfil}%
  \rlap{\smash{\hskip\tocenter@\hskip\pdimen@
  \ifnum\arrcount@=\m@ne\let\next@\relax\else\let\next@\llap\fi
  \next@{\raise\dimen@ii\hbox{\ifnum\arrcount@=\m@ne\hskip-.5\wd\ZER@\fi
   \box\ZER@\ifnum\arrcount@=\m@ne\else\hskip\tw@\p@\fi}}}}%
 \fi
 \iflabel@ii
  \ifnum\arrcount@=\m@ne
  \else
   \setbox\ZER@\vbox to\dimen@{\vfil
    \hbox{$\m@th\tsize@\label@ii$}\vskip\tw@\ldimen@ii\vfil}%
   \rlap{\smash{\hskip\tocenter@\hskip\pdimen@
   \rlap{\raise\dimen@ii\hbox{\ifnum\arrcount@=\thr@@\hskip4.5\p@\else
    \hskip2.5\p@\fi\box\ZER@}}}}%
  \fi
 \fi
}
\newdimen\goal@
\newdimen\shifted@
\newcount\Tcount@
\newcount\Scount@
\newbox\shaft@
\newcount\slcount@
\def\getcos@#1{%
 \ifnum\tan@i<\tan@ii
  \dimen@#1%
  \ifnum\slcount@<8 \count@9 \else \ifnum\slcount@<12 \count@8 \else
   \count@7 \fi\fi
  \multiply\dimen@\count@\divide\dimen@\ten@
  \dimen@ii\dimen@\multiply\dimen@ii\tan@i\divide\dimen@ii\tan@ii
 \else
  \dimen@ii#1%
  \count@-\slcount@\advance\count@24
  \ifnum\count@<8 \count@9 \else \ifnum\count@<12 \count@8
   \else\count@7 \fi\fi
  \multiply\dimen@ii\count@\divide\dimen@ii\ten@
  \dimen@\dimen@ii\multiply\dimen@\tan@ii\divide\dimen@\tan@i
 \fi}
\newdimen\adjust@
\def\Nnext@{\ifN@\let\next@\raise\else\let\next@\lower\fi}
\def\arrow@@{\slcount@\angcount@
 \ifNESW@
  \ifnum\angcount@<\ten@
   \let\arrowfont@\arrow@i\global\advance\angcount@\m@ne
   \global\multiply\angcount@13
  \else
   \ifnum\angcount@<19
    \let\arrowfont@\arrow@ii\global\advance\angcount@-\ten@
    \global\multiply\angcount@13
   \else
    \let\arrowfont@\arrow@iii\global\advance\angcount@-19
    \global\multiply\angcount@13
  \fi\fi
  \Tcount@\angcount@
 \else
  \ifnum\angcount@<5
   \let\arrowfont@\arrow@iii\global\advance\angcount@\m@ne
   \global\multiply\angcount@13 \global\advance\angcount@65
  \else
   \ifnum\angcount@<14
    \let\arrowfont@\arrow@iv\global\advance\angcount@-5
    \global\multiply\angcount@13
   \else
    \ifnum\angcount@<23
     \let\arrowfont@\arrow@v\global\advance\angcount@-14
     \global\multiply\angcount@13
    \else
     \let\arrowfont@\arrow@i\global\angcount@117
  \fi\fi\fi
  \ifnum\angcount@=117 \Tcount@115 \else\Tcount@\angcount@\fi
 \fi
 \Scount@\Tcount@
 \ifE@
  \ifnum\tcount@=\z@\advance\Tcount@\tw@\else\ifnum\tcount@=13
   \advance\Tcount@\tw@\else\advance\Tcount@\tcount@\fi\fi
  \ifnum\scount@=\z@\else\ifnum\scount@=13 \advance\Scount@\thr@@\else
   \advance\Scount@\scount@\fi\fi
 \else
  \ifcase\tcount@\advance\Tcount@\thr@@\or\or\advance\Tcount@\thr@@\or
  \advance\Tcount@\tw@\or\advance\Tcount@6 \or\advance\Tcount@7
  \or\or\or\or\or\advance\Tcount@8 \or\advance\Tcount@9 \or
  \advance\Tcount@12 \or\advance\Tcount@\thr@@\fi
  \ifcase\scount@\or\or\advance\Scount@\thr@@\or\advance\Scount@\tw@\or
  \or\or\advance\Scount@4 \or\advance\Scount@5 \or\advance\Scount@\ten@
  \or\advance\Scount@11 \or\or\or\advance\Scount@12 \or\advance
  \Scount@\tw@\fi
 \fi
 \ifcase\arrcount@\or\or\global\advance\angcount@\@ne\else\fi
 \ifN@\shifted@\firsty@\else\shifted@-\firsty@\fi
 \ifE@\else\advance\shifted@\charht@\fi
 \goal@\secondy@\advance\goal@-\firsty@
 \ifN@\else\multiply\goal@\m@ne\fi
 \setbox\shaft@\hbox{\arrowfont@\char\angcount@}%
 \ifnum\arrcount@=\thr@@
  \getcos@{1.5\p@}%
  \setbox\shaft@\hbox to\wd\shaft@{\arrowfont@
   \rlap{\hskip\dimen@ii
    \smash{\ifNESW@\let\next@\lower\else\let\next@\raise\fi
     \next@\dimen@\hbox{\arrowfont@\char\angcount@}}}%
   \rlap{\hskip-\dimen@ii
    \smash{\ifNESW@\let\next@\raise\else\let\next@\lower\fi
      \next@\dimen@\hbox{\arrowfont@\char\angcount@}}}\hfil}%
 \fi
 \rlap{\smash{\hskip\tocenter@\hskip\firstx@
  \ifnum\arrcount@=\m@ne
  \else
   \ifnum\arrcount@=\thr@@
   \else
    \ifnum\scount@=\m@ne
    \else
     \ifnum\scount@=\z@
     \else
      \setbox\ZER@\hbox{\ifnum\angcount@=117 \arrow@v\else\arrowfont@\fi
       \char\Scount@}%
      \ifNESW@
       \ifnum\scount@=\tw@
        \dimen@\shifted@\advance\dimen@-\charht@
        \ifN@\hskip-\wd\ZER@\fi
        \Nnext@
        \next@\dimen@\copy\ZER@
        \ifN@\else\hskip-\wd\ZER@\fi
       \else
        \Nnext@
        \ifN@\else\hskip-\wd\ZER@\fi
        \next@\shifted@\copy\ZER@
        \ifN@\hskip-\wd\ZER@\fi
       \fi
       \ifnum\scount@=12
        \advance\shifted@\charht@\advance\goal@-\charht@
        \ifN@\hskip\wd\ZER@\else\hskip-\wd\ZER@\fi
       \fi
       \ifnum\scount@=13
        \getcos@{\thr@@\p@}%
        \ifN@\hskip\dimen@\else\hskip-\wd\ZER@\hskip-\dimen@\fi
        \adjust@\shifted@\advance\adjust@\dimen@ii
        \Nnext@
        \next@\adjust@\copy\ZER@
        \ifN@\hskip-\dimen@\hskip-\wd\ZER@\else\hskip\dimen@\fi
       \fi
      \else
       \ifN@\hskip-\wd\ZER@\fi
       \ifnum\scount@=\tw@
        \ifN@\hskip\wd\ZER@\else\hskip-\wd\ZER@\fi
        \dimen@\shifted@\advance\dimen@-\charht@
        \Nnext@
        \next@\dimen@\copy\ZER@
        \ifN@\hskip-\wd\ZER@\fi
       \else
        \Nnext@
        \next@\shifted@\copy\ZER@
        \ifN@\else\hskip-\wd\ZER@\fi
       \fi
       \ifnum\scount@=12
        \advance\shifted@\charht@\advance\goal@-\charht@
        \ifN@\hskip-\wd\ZER@\else\hskip\wd\ZER@\fi
       \fi
       \ifnum\scount@=13
        \getcos@{\thr@@\p@}%
        \ifN@\hskip-\wd\ZER@\hskip-\dimen@\else\hskip\dimen@\fi
        \adjust@\shifted@\advance\adjust@\dimen@ii
        \Nnext@
        \next@\adjust@\copy\ZER@
        \ifN@\hskip\dimen@\else\hskip-\dimen@\hskip-\wd\ZER@\fi
       \fi
      \fi
  \fi\fi\fi\fi
  \ifnum\arrcount@=\m@ne
  \else
   \loop
    \ifdim\goal@>\charht@
    \ifE@\else\hskip-\charwd@\fi
    \Nnext@
    \next@\shifted@\copy\shaft@
    \ifE@\else\hskip-\charwd@\fi
    \advance\shifted@\charht@\advance\goal@-\charht@
    \repeat
   \ifdim\goal@>\z@
    \dimen@\charht@\advance\dimen@-\goal@
    \divide\dimen@\tan@i\multiply\dimen@\tan@ii
    \ifE@\hskip-\dimen@\else\hskip-\charwd@\hskip\dimen@\fi
    \adjust@\shifted@\advance\adjust@-\charht@\advance\adjust@\goal@
    \Nnext@
    \next@\adjust@\copy\shaft@
    \ifE@\else\hskip-\charwd@\fi
   \else
    \adjust@\shifted@\advance\adjust@-\charht@
   \fi
  \fi
  \ifnum\arrcount@=\m@ne
  \else
   \ifnum\arrcount@=\thr@@
   \else
    \ifnum\tcount@=\m@ne
    \else
     \setbox\ZER@
      \hbox{\ifnum\angcount@=117 \arrow@v\else\arrowfont@\fi\char\Tcount@}%
     \ifnum\tcount@=\thr@@
      \advance\adjust@\charht@
      \ifE@\else\ifN@\hskip-\charwd@\else\hskip-\wd\ZER@\fi\fi
     \else
      \ifnum\tcount@=12
       \advance\adjust@\charht@
       \ifE@\else\ifN@\hskip-\charwd@\else\hskip-\wd\ZER@\fi\fi
      \else
       \ifE@\hskip-\wd\ZER@\fi
     \fi\fi
     \Nnext@
     \next@\adjust@\copy\ZER@
     \ifnum\tcount@=13
      \hskip-\wd\ZER@
      \getcos@{\thr@@\p@}%
      \ifE@\hskip-\dimen@\else\hskip\dimen@\fi
      \advance\adjust@-\dimen@ii
      \Nnext@
      \next@\adjust@\box\ZER@
     \fi
  \fi\fi\fi}}%
 \iflabel@i
  \rlap{\hskip\tocenter@
  \dimen@\firstx@\advance\dimen@\secondx@\divide\dimen@\tw@
  \advance\dimen@\ldimen@i
  \dimen@ii\firsty@\advance\dimen@ii\secondy@\divide\dimen@ii\tw@
  \global\multiply\ldimen@i\tan@i\global\divide\ldimen@i\tan@ii
  \ifNESW@\advance\dimen@ii\ldimen@i\else\advance\dimen@ii-\ldimen@i\fi
  \setbox\ZER@\hbox{\ifNESW@\else\ifnum\arrcount@=\thr@@\hskip4\p@\else
   \hskip\tw@\p@\fi\fi
   $\m@th\tsize@@\label@i$\ifNESW@\ifnum\arrcount@=\thr@@\hskip4\p@\else
   \hskip\tw@\p@\fi\fi}%
  \ifnum\arrcount@=\m@ne
   \ifNESW@\advance\dimen@.5\wd\ZER@\advance\dimen@\p@\else
    \advance\dimen@-.5\wd\ZER@\advance\dimen@-\p@\fi
   \advance\dimen@ii-.5\ht\ZER@
  \else
   \advance\dimen@ii\dp\ZER@
   \ifnum\slcount@<6 \advance\dimen@ii\tw@\p@\fi
  \fi
  \hskip\dimen@
  \ifNESW@\let\next@\llap\else\let\next@\rlap\fi
  \next@{\smash{\raise\dimen@ii\box\ZER@}}}%
 \fi
 \iflabel@ii
  \ifnum\arrcount@=\m@ne
  \else
   \rlap{\hskip\tocenter@
   \dimen@\firstx@\advance\dimen@\secondx@\divide\dimen@\tw@
   \ifNESW@\advance\dimen@\ldimen@ii\else\advance\dimen@-\ldimen@ii\fi
   \dimen@ii\firsty@\advance\dimen@ii\secondy@\divide\dimen@ii\tw@
   \global\multiply\ldimen@ii\tan@i\global\divide\ldimen@ii\tan@ii
   \advance\dimen@ii\ldimen@ii
   \setbox\ZER@\hbox{\ifNESW@\ifnum\arrcount@=\thr@@\hskip4\p@\else
    \hskip\tw@\p@\fi\fi
    $\m@th\tsize@\label@ii$\ifNESW@\else\ifnum\arrcount@=\thr@@\hskip4\p@
    \else\hskip\tw@\p@\fi\fi}%
   \advance\dimen@ii-\ht\ZER@
   \ifnum\slcount@<9 \advance\dimen@ii-\thr@@\p@\fi
   \ifNESW@\let\next@\rlap\else\let\next@\llap\fi
   \hskip\dimen@\next@{\smash{\raise\dimen@ii\box\ZER@}}}%
  \fi
 \fi
}
\def\outCD@#1{\def#1{\Err@{\noexpand#1must not be used within \string\CD}}}
\newskip\preCDskip@
\newskip\postCDskip@
\preCDskip@\z@
\postCDskip@\z@
\def\preCDspace#1{\RIfMIfI@
 \onlydmatherr@\preCDspace\else\advance\preCDskip@#1\relax\fi\else
 \onlydmatherr@\preCDspace\fi}
\def\postCDspace#1{\RIfMIfI@
 \onlydmatherr@\postCDspace\else\advance\postCDskip@#1\relax\fi\else
 \onlydmatherr@\postCDspace\fi}
\def\predisplayspace#1{\RIfMIfI@
 \onlydmatherr@\predisplayspace\else
 \advance\abovedisplayskip#1\relax
 \advance\abovedisplayshortskip#1\relax\fi
 \else\onlydmatherr@\preCDspace\fi}
\def\postdisplayspace#1{\RIfMIfI@
 \onlydmatherr@\postdisplayspace\else
 \advance\belowdisplayskip#1\relax
 \advance\belowdisplayshortskip#1\relax\fi
 \else\onlydmatherr@\postdisplayspace\fi}
\def\PreCDSpace#1{\global\preCDskip@#1\relax}
\def\PostCDSpace#1{\global\postCDskip@#1\relax}
\def\CD#1\endCD{%
 \outCD@\cgaps\outCD@\rgaps\outCD@\Cgaps\outCD@\Rgaps
 \preCD@#1\endCD
 \advance\abovedisplayskip\preCDskip@
 \advance\abovedisplayshortskip\preCDskip@
 \advance\belowdisplayskip\postCDskip@
 \advance\belowdisplayshortskip\postCDskip@
 \vcenter{\offinterlineskip
  \vskip\preCDskip@\Let@\global\colcount@\@ne\global\rowcount@\z@
  \everycr{%
   \noalign{%
    \ifnum\rowcount@=\Rowcount@
    \else
     \getrgap@\rowcount@\vskip\getdim@
     \global\advance\rowcount@\@ne\global\colcount@\@ne
    \fi}}%
  \tabskip\z@
  \halign{&\global\xoff@\z@\global\yoff@\z@
   \getcgap@\colcount@\hskip\getdim@
   \hfil\vrule\height\ten@\p@\width\z@\depth\z@
   $\m@th\displaystyle{##}$\hfil
   \global\advance\colcount@\@ne\cr
   #1\crcr}\vskip\postCDskip@}%
 \preCDskip@\z@\postCDskip@\z@
 \def\getcgap@##1{\ifcase##1\or\getdim@\z@\else\getdim@\standardcgap\fi}%
 \def\getrgap@##1{\ifcase##1\getdim@\z@\else\getdim@\standardrgap\fi}%
 \let\Width@\relax\let\Height@\relax\let\Depth@\relax\let\Rowheight@\relax
 \let\Rowdepth@\relax\let\Colwidth@\relax
}
\let\enddocument\bye
\def\alloc@#1#2#3#4#5{\global\advance\count1#1by\@ne
  \ch@ck#1#4#2%
  \allocationnumber=\count1#1%
  \global#3#5=\allocationnumber
  \wlog{\string#5=\string#2\the\allocationnumber}}
\catcode`\@=\active

m230399.tex
%File information: C:\TEXTS\STZ\M230399.TEX 0      29   27/03/99   19:39
%--------------------------------------------------------------
\catcode`\"=12
\input f230399
\catcode`\"=\active

\loadmsam
\newsymbol\blacktriangle 104E
\def\oT{\overset\circ\to\sT}
\def\oV{\overset\circ\to V}
\def\kq{{\dot q}}
\def\kp{{\dot p}}
\def\kD{{\dot D}}
\def\kkq{{\ddot q}}

\newcounter\secno
\define\sect#1{\bigpagebreak
	\flushpar {\secno.}\,{\bf #1}\vskip1.2mm}
\newfontstyle\secno{\bf}

\def\*{{\textstyle *}}

\def\proof{\demo{Proof}}
\def\endproof{\hfill \vrule height4pt width6pt depth2pt \enddemo}
\def\R{{\bb R}}
\def\cD{{\cl D}}
\def\sT{{\ss T}}
\def\st{{\ss t}}
\def\xD{\tx{D}}


stz.tex
%File information: C:\TEXTS\STZ\STZ.TEX .      48   27/03/99   22:12
%--------------------------------------------------------------
\input amstexl
\input lamstex
\input m230399
\docstyle{paper}
\hsize=37pc
\hoffset=-10pt
\vsize=53pc
\voffset=6pt
\TagsOnRight
\document


    \title
        A note on holonomic constraints
    \endtitle

    \author
        W\l odzimierz M. Tulczyjew \\
        Istituto Nazionale di Fisica Nucleare,
        Sezione di Napoli, Italy \\
        {\tt tulczy\@campus.unicam.it} \\

    \endauthor

    \maketitle

    \vskip5mm
    \centerline{In honour of my friend John Stachel.}
    \vskip5mm


	\input stz1          %Introduction
	\input stz2          %Geometric structures
	\input stz3          %Holonomic constraints in statics
	\input stz4          %Models of holonomic constraints in statics
	\input stz5          %Kinematics and constraints
	\input stz6          %dynamics of unconstrained material points
	\input stz7          %dynamics of constrained material points
	\input stz8          %Models of holonomic constraints in dynamics
	\input stz9          %References

\enddocument






stz1.tex
%File information: C:\TEXTS\STZ\STZ1.TEX        32   27/03/99   19:46
%--------------------------------------------------------------
		\sect{Introduction.}
	This note is a preliminary account of research undertaken jointly with G. Marmo
of Napoli and P. Urbanski of Warsaw.

	We propose a new description of dynamics of autonomous mechanical systems which
includes the momentum-velocity relation.  This description is formulated as a
variational principle of virtual action more complete than the Hamilton Principle.
The inclusion of constraints in this description is the main topic of the present
note.  We give examples and models of constraints in variational formulations of
statics and dynamics of autonomous systems.

	A complete description of the dynamics of a mechanical system involves both
external forces and momenta.  In a fixed time interval the dynamics is a relation
between the motion of the system in configuration space, external forces applied to
the system during the time interval, and the initial and final momenta.  This
relation is derived from a variational principle which involves variations of the
end points.  Constrained systems are idealized representations of unconstrained
systems.  Such idealizations are appropriate when forces at our disposal are unable
to move the configuration of the system away from a subset of the configuration
space by a perceptible distance.  This description fits at least the case of
holonomic constraints.  We believe that constraints should be imposed on virtual
displacements.  Holonomic constraints are usually interpreted as restrictions on
configurations of a mechanical system.  Nonholonomic constraints are additional
restrictions imposed on velocities.  This traditional terminology is not adapted to
our concept of constraints as imposed on virtual displacements and only indirectly
affecting configurations and velocities.  Our concept of nonholonomic constraints
makes perfect sense for static systems even if velocities do not appear in the
description of such systems.  We will use the terms {\it configuration constraints}
and {\it velocity constraints} instead of {\it holonomic} and {\it nonholonomic}
constraints.


stz2.tex
%File information: C:\TEXTS\STZ\STZ2.TEX        57   27/03/99   19:46
%--------------------------------------------------------------
        \sect{Geometric structures.}

    Let $Q$ be the Euclidean affine space of Newtonian mechanics.  The model space
for $Q$ is a vector space $V$ of dimension 3. The Euclidean structure is represented
by a metric tensor $g \colon V \rightarrow V^\*$.  The space $V^\*$ is the dual of
the model space.  The canonical pairing is a bilinear mapping
        $$\langle\,,\,\rangle \colon V^\* \times V \rightarrow \R.
                                                                                \tag \label{Fkk1}$$

    We denote by $q_1 - q_0$ the vector associated with the points $q_0$ and $q_1$.
We write $q_1 = q_0 + v$ if $v = q_1 - q_0$.  The norm $\|v\|$ of a vector $v \in
V$ is defined by
        $$\|v\| = \sqrt{\langle g(v), v\rangle}.
                                                                                \tag \label{Fkk2}$$

    The derivative of a function $F \colon Q \rightarrow \R$ is the mapping
        $$\xD F \colon Q \times V \rightarrow \R \colon (q,v) \mapsto \frac{d}{ds}
F(q + sv)|_{s=0}.
                                                                                \tag \label{Fkk3}$$

    The first and second derivatives of a differentiable curve $\zg \colon \R
\rightarrow Q$ are mappings $\dot\zg \colon \R \rightarrow V$ and $\ddot\zg \colon
\R \rightarrow V$.

    The tangent bundle $\sT Q$ is identified with $Q \times V$, the cotangent bundle
$\sT^\*Q$ is identified with $Q \times V^\*$, the second tangent bundle $\sT^2 Q$ is
identified with $ Q \times V \times V$, the iterated tangent bundle $\sT\sT Q$ is
identified with $Q \times V \times V \times V$, and the tangent of the cotangent
bundle $\sT\sT^\*Q$ is identified with $Q \times V^\* \times V \times V^\*$.  We have
the projections
        $$\zt_Q \colon \sT Q \rightarrow Q \colon (q,\kq) \mapsto q,
                                                                                \tag \label{Fki}$$
        $$\zt_{\sT Q} \colon \sT\sT Q \rightarrow \sT Q \colon (q,\kq,\zd q,\zd\kq)
\mapsto (q,\kq),
                                                                                \tag \label{Fkj}$$
        $$\sT\zt_Q \colon \sT\sT Q \rightarrow \sT Q \colon (q,\kq,\zd q,\zd\kq)
\mapsto (q,\zd q),
                                                                                \tag \label{Fkk}$$
    and the canonical involution
        $$\zk_Q \colon \sT\sT Q \rightarrow \sT\sT Q \colon (q,\kq,\zd q,\zd\kq)
\mapsto (q,\zd q,\kq,\zd\kq).
                                                                                \tag \label{Fkk4}$$

    For each subset $C$ of $Q$ we have the {\it tangent set}
        $$\align
    \sT C = \left\{(q,\zd q) \in \sT Q \right.;\;&\text{ there is a curve }\; \zg \colon \R
\rightarrow Q \\
    &\left.\text{such that }\; \zg(0) = q, \xD\zg(0) = \zd q, \;\text{ and }\; \zg(s) \in C
\;\text{ if }\; s \geq 0\right\}
                                                                                \tag \label{Fsta5}\endalign$$

    The space
        $$\oT Q = Q \times \oV = \left\{(q,v) \in \sT Q ;\; v \neq 0 \right\}
                                                                                \tag \label{Fsta6}$$
    is the tangent bundle with the zero section removed.

    
stz3.tex
%File information: C:\TEXTS\STZ\STZ3.TEX       190   27/03/99   19:46
%--------------------------------------------------------------
    \sect{Statics of a material point.}

    We consider the statics of a material point in the Euclidean affine space $Q$ of
Newtonian physics.

    An element $(q,\zd q)$ of $\sT Q$ is a {\it virtual displacement} and an element
$(q,f)$ of $\sT^\*Q$ represents an {\it external force}.  The evaluation
        $$\langle(q,f), (q,\zd q)\rangle = \langle f, \zd q\rangle
                                                                                \tag \label{Fcc1}$$
     of an external force $(q,f) \in \sT^\*Q$ on a virtual displacement $(q,\zd q)
\in \sT Q$ is the {\it virtual} work performed by an external device controlling the
configuration of the system.

    {\it Admissible displacements} form a subset $C^1 \subset \sT Q$.  If $(q,\zd
q)$ is an admissible displacement, then $(q,k\zd q)$ is again an admissible
displacement for each number $k \geq 0$.  The set $C^1$ represents constraints imposed
on virtual displacements.  Implicitly it restricts {\it admissible configurations}
to the set
        $$C^0 = \left\{q \in Q ;\; (q,\zd q) \in C^1 \;\text{ for some }\; \zd q \in
V \right\}.
                                                                                \tag \label{Fcc2}$$
    The inclusion $C^1 \subset \sT C^0$ is usually satisfied.  We say that
constraints are {\it configuration constraints} if $C^1 = \sT C^0$.  The set $C =
C^0$ itself is called a {\it configuration constraint}.  A {\it simple two-sided
configuration constraint} is an embedded submanifold $C \subset Q$

    There is a function
        $$\zs \colon C^1 \rightarrow \R
                                                                                \tag \label{Fcc3}$$
    assigning to each admissible virtual displacement the virtual work that an
external device has to perform in order to effect this displacement.  This {\it
virtual work function} is differentiable on $C^1 \cap \oT Q$ and positive
homogeneous in the sense that
        $$\zs(q,k\zd q) = k\zs(q,\zd q)
                                                                                \tag \label{Fcc4}$$
    if $k \geq 0$.  A typical example of a virtual work function is the mapping
        $$\zs \colon C^1 \rightarrow \R \colon (q,\zd q) \mapsto \xD U(q,\zd q)
                                                                                \tag \label{Fcc5}$$
    derived from an {\it internal energy function} $U$ defined in a domain large
enough to make the derivative $\xD U(q,\zd q)$ meaningful.  In the case of a
configuration constraint $C \subset Q$ it is enough to have the internal energy defined
on $C$. The function
        $$\zs \colon C^1 \rightarrow \R \colon (q,\zd q) \mapsto \zr(q)\|\zd q\|
                                                                                \tag \label{Fcc6}$$
    represents virtual work due to friction.

    The response of the system to external control is represented by a set $S
\subset \sT^\*Q$ of external forces satisfying the {\it principle of virtual work}
        $$\langle f, \zd q\rangle \leq \zs(q,\zd q)  \;\text{ for each virtual
displacement }\; (q,\zd q) \in C^1.
                                                                                \tag \label{Fcc7}$$
    The set $S$ is the {\it constitutive set} of the system.  It can be viewed as
the list of possible configurations of the system together with external forces
compatible with these configurations.  If $\zs(q,-\zd q) = - \zs(q,\zd q)$ and the
constraints are two-sided, then the principle of virtual work assumes the simpler
form
        $$\langle f, \zd q\rangle = \zs(q,\zd q)  \;\text{ for each virtual
displacement }\; (q,\zd q) \in C^1.
                                                                                \tag \label{Fcc8}$$

        \claim \c{e}{Example}{}{\rm                                                     \label{Ccc1}
    Let a material point be constrained to a circular hoop with the center at $q_0
\in Q$ and radius $a$ in the plane orthogonal to a unit vector $n \in V$.  We have
two-sided configuration constraints
        $$C^0 = \left\{q \in Q;\; \langle g(q - q_0), n\rangle = 0, \|q - q_0\| =
a \right\},
                                                                                \tag \label{Fcc9}$$
        $$C^1 = \sT C^0 = \left\{(q,\zd q) \in \sT Q;\; \langle g(q - q_0), n\rangle
= 0, \|q - q_0\| = a, \langle g(\zd q), n\rangle = 0, \langle g(\zd q),
u(q)\rangle = 0 \right\},
                                                                                \tag \label{Fcc10}$$
    where $u(q)$ is the unit vector $(q - q_0)\|q - q_0\|^{-1}$.  The constitutive
set
        $$\align
    S &= \left\{(q,f) \in \sT^\*Q;\; q \in C^0, \langle f, \zd q\rangle = 0 \;\text{
for each }\; (q,\zd q) \in C^1 \right\} \\
        &= \left\{(q,f) \in \sT^\*Q;\; \langle g(q - q_0), n\rangle = 0, \|q - q_0\|
= a, \langle f, u(q) \rangle = 0, \langle f, n \rangle = 0 \right\}
                                                                                \tag \label{Fcc11}\endalign$$
    represents the statics of the system without friction and the constitutive set
        $$\align
    S &= \left\{(q,f) \in \sT^\*Q;\; q \in C^0, \langle f, \zd q\rangle \leq
\zr\|\zd q\| \;\text{ for each }\; (q,\zd q) \in C^1 \right\} \\
        &= \left\{(q,f) \in \sT^\*Q;\; \langle g(q - q_0), n\rangle = 0, \|q - q_0\|
= a, \langle f, u(q) \rangle^2 + \langle f, n \rangle^2 \leq \zr^2 \right\}
                                                                                \tag \label{Fcc12}\endalign$$
    takes constant friction into account.
        }{\hfill    $\blacktriangle$}\endclaim

        \claim \c{e}{Example}{}{\rm                                                     \label{Ccc2}
    Let a material point be constrained to the exterior of a solid ball with the
centre at $q_0 \in Q$ and radius $a$.  In its displacements on the surface of the
ball the point encounters friction proportional to the component of the external
force pressing the point against the surface.  Correct representation of the statics
of the point is obtained with one-sided constraints
        $$C^0 = \left\{q \in Q;\; \|q - q_0\| \geq a \right\},
                                                                                \tag \label{Fcc13}$$
        $$C^1 = \left\{(q,\zd q) \in \sT Q;\; \|q - q_0\| \geq a, \langle g(\zd q),
u(q) \rangle \geq \zn\sqrt{\|\zd q\|^2 - \langle g(\zd q), u(q) \rangle^2} \;\text{
if }\; \|q - q_0\| = a \right\}
                                                                                \tag \label{Fcc14}$$
    and the constitutive set
        $$\align
    S &= \left\{(q,f) \in \sT^\*Q;\; q \in C^0, \langle f, \zd q\rangle \leq 0
\;\text{ for each }\; (q,\zd q) \in C^1 \right\} \\
        &= \left\{(q,f) \in \sT^\*Q;\; \|q - q_0\| \geq a, f = 0 \;\text{ if }\; \|q -
q_0\| > a, \vphantom{\sqrt{\|^2}}\right. \\
        & \hskip20mm\left. \zn\langle f, u(q) \rangle + \sqrt{\|f\|^2 - \langle f, u(q)
\rangle^2} \leq 0 \;\text{ if }\; \|q - q_0\| = a \right\},
                                                                                \tag \label{Fcc15}\endalign$$
    where $u(q) = (q - q_0)\|q - q_0\|^{-1}$.  The constraints in this example are
not configuration constraints.
        }{\hfill    $\blacktriangle$}\endclaim

        \claim \c{e}{Example}{}{\rm                                                     \label{Ccc3}
    Let $i$, $j$, and $k$ be mutually orthogonal unit vectors and let $q_0$ be a
point.  Let one-sided configuration constraints be specified by
        $$C^0 = \left\{q \in Q;\; \langle g(q - q_0), i \rangle \geq 0, \langle g(q
- q_0), j \rangle \geq 0 \right\}
                                                                                \tag \label{Fcc16}$$
    and
        $$\align
    C^1 &= \sT C^0 \\
    &=\left\{(q,\zd q) \in \sT Q;\; \langle g(q - q_0), i \rangle \geq 0, \langle g(q
- q_0), j \rangle \geq 0, \right. \\
    &\hskip10mm \left. \langle g(\zd q), i \rangle \geq 0, \;\text{ if}\; \langle g(q
- q_0), i \rangle = 0, \langle g(\zd q), j \rangle \geq 0, \;\text{ if}\; \langle g(q
- q_0), j \rangle = 0 \right\}.
                                                                                \tag \label{Fcc17}\endalign$$
    The statics of a material point not subject to internal forces is represented by
the constitutive set
        $$\align
    S &= \left\{(q,f) \in \sT^\*Q;\; q \in C^0, \langle f, \zd q\rangle \leq
 \;\text{ for each }\; (q,\zd q) \in C^1 \right\} \\
        &= \left\{(q,f) \in \sT^\*Q;\; \langle g(q - q_0), i \rangle \geq 0, \langle
g(q - q_0), j \rangle \geq 0, \langle f, k\rangle = 0, \right. \\
    &\hskip10mm \left. \langle f, i\rangle = 0 \;\text{ and }\; \langle f, j\rangle
\leq 0 \;\text{ if }\; \langle g(q - q_0), j \rangle = 0 \;\text{ and }\; \langle
g(q - q_0), i \rangle \neq 0, \right. \\
    &\hskip10mm \left. \langle f, j\rangle = 0 \;\text{ and }\; \langle f, i\rangle
\leq 0 \;\text{ if }\; \langle g(q - q_0), i \rangle = 0 \;\text{ and }\; \langle
g(q - q_0), j \rangle \neq 0, \right. \\
    &\hskip10mm \left. \langle f, i\rangle \leq 0 \;\text{ and }\; \langle f, j\rangle
\leq 0 \;\text{ if }\; \langle g(q - q_0), i \rangle = 0 \;\text{ and }\; \langle
g(q - q_0), j \rangle = 0 \right\}
                                                                                \tag \label{Fcc18}\endalign$$
        }{\hfill    $\blacktriangle$}\endclaim

        \claim \c{e}{Example}{}{\rm                                                     \label{Ccc4}
    In terms of the vectors $i$, $j$, and $k$ and the point $q_0$ of the preceding
example we define one-sided configuration constraints by
        $$C^0 = \left\{q \in Q;\; \langle g(q - q_0), i \rangle \leq 0 \;\text{ or
}\; \langle g(q - q_0), j \rangle \leq 0 \right\}
                                                                                \tag \label{Fcc19}$$
    and
        $$\align
    \hskip-2mm C^1 &= \sT C^0 \\
    &=\left\{(q,\zd q) \in \sT Q;\; \langle g(q - q_0), i \rangle \leq 0 \;\text{ or
}\; \langle g(q - q_0), j \rangle \leq 0, \right. \\
    &\hskip7mm \left.\langle g(\zd q), i \rangle \leq 0 \;\text{ if }\; \langle
g(q - q_0), i \rangle = 0 \;\text{ and }\; \langle g(q - q_0), j \rangle \neq
0,\right. \\
    &\hskip7mm \left.\langle g(\zd q), j \rangle \leq 0 \;\text{ if }\; \langle g(q - q_0), j \rangle = 0
\;\text{ and }\; \langle g(q - q_0), i \rangle \neq 0,\right. \\
    &\hskip7mm \left.\langle g(\zd q), i \rangle
\leq 0 \;\text{ or }\; \langle g(\zd q), j \rangle \leq 0 \;\text{ if }\; \langle
g(q - q_0), i \rangle = 0 \;\text{ and }\; \langle g(q - q_0), j \rangle = 0 \right\}.
                                                                                \tag \label{Fcc20}\endalign$$
    The statics of a material point not subject to internal forces is represented by
the constitutive set
        $$\align
    S &= \left\{(q,f) \in \sT^\*Q;\; q \in C^0, \langle f, \zd q\rangle \leq
 \;\text{ for each }\; (q,\zd q) \in C^1 \right\} \\
    &=\left\{(q,f) \in \sT^\*Q;\; \langle g(q - q_0), i \rangle \leq 0 \;\text{ or
}\; \langle g(q - q_0), j \rangle \leq 0, \langle f, k\rangle = 0 \right. \\
    &\hskip10mm \left. \langle f, i\rangle = 0 \;\text{ and }\; \langle f, j\rangle
\geq 0 \;\text{ if }\; \langle g(q - q_0), j \rangle = 0 \;\text{ and }\; \langle
g(q - q_0), i \rangle \neq 0, \right. \\
    &\hskip10mm \left. \langle f, j\rangle = 0 \;\text{ and }\; \langle f, i\rangle
\geq 0 \;\text{ if }\; \langle g(q - q_0), i \rangle = 0 \;\text{ and }\; \langle
g(q - q_0), j \rangle \neq 0, \right. \\
    &\hskip10mm \left. \langle f, i\rangle \geq 0 \;\text{ and }\; \langle f, j\rangle
\geq 0 \;\text{ if }\; \langle g(q - q_0), i \rangle = 0 \;\text{ and }\; \langle
g(q - q_0), j \rangle = 0 \right\}
                                                                                \tag \label{Fcc21}\endalign$$
        }{\hfill    $\blacktriangle$}\endclaim



    
stz4.tex
%File information: C:\TEXTS\STZ\STZ4.TEX       151   27/03/99   19:46
%--------------------------------------------------------------
    \sect{Modeling configuration constraints in statics.}

    We believe that constraint static systems are idealized representations of
unconstrained systems.  The magnitude of the force that an external device can apply
to a static system is limited and instruments used to observe displacements have a
limited resolution.  Idealizations take these limitations into account.  We restrict
the analysis to configuration constraints.  A definition of configuration
constraints will be based on the assumption that the norms of external forces at our
disposal have an upper bound $F$ and that displacements of distances less than $d$
can not be detected.

    Let $C$ be a subset of $Q$.  We denote by $d(q,C)$ the distance of a point $q
\in Q$ from $C$.  If $C \subset Q$ is an embedded submanifold or a submanifold with
smooth boundary, then for each configuration $q$ sufficiently close to $C$ there is
a unique point $q_C \in C$ nearest to $q$.  The distance $d(q,C) = \|q - q_C\|$ of
$q$ from $C$ is a well defined function in a neighbourhood of $C$.  If $q$ is not in
$C$, then $q_C \neq q$ and the unit vector $e(q) = (q - q_C)\|q - q_C\|^{-1}$ is
orthogonal to $C$ or the boundary of $C$ at $q_C$.

    Let $C \subset Q$ be an embedded submanifold or a submanifold with smooth
boundary and let $S \subset \sT^\*Q$ be the constitutive set of a static system
derived from the principle of virtual work
        $$\langle f, \zd q\rangle \leq \zs(q,\zd q) \;\text{ for each virtual
displacement }\; (q,\zd q) \in \sT C.
                                                                                \tag \label{Fdd3}$$
    A model of this static system is constructed by choosing a function
$\overline\zs$ on $\sT Q$ such that $\zs$ is the restriction of $\overline\zs$ to
$\sT C$ and replacing the original principle of virtual work by the principle
        $$\langle f, \zd q\rangle \leq \overline\zs(q,\zd q) + kd(q,C)\langle
g(e(q)), \zd q\rangle  \;\text{ for each virtual displacement }\; (q,\zd q).
                                                                                \tag \label{Fdd4}$$
    The term $kd(q,C)\langle g(e(q)), \zd q\rangle$ is the directional derivative
$\xD K(q,\zd q)$ of the elastic internal energy function
        $$K(q) = \frac{k}{2} (d(q,C))^2
                                                                                \tag \label{Fdd5}$$
    defined in the neighbourhood of $C$ in which the distance function $d(q,C)$ is
well defined.  The inequalities
        $$kd(q,C) \leq \langle f, e(q)\rangle + \zs(q,- e(q))
                                                                                \tag \label{Fdd6}$$
    and
        $$kd(q,C) \leq |\langle f, e(q)\rangle| + |\zs(q,- e(q))|
                                                                                \tag \label{Fdd7}$$
    are derived from the principle of virtual work by setting $\zd q = -e(q)$.  We
will assume that $F \ll kd$ and expect that the inequality $|\zs(q,- e(q))| \ll kd$
is satisfied.  These inequalities together with $|\langle f, e(q)\rangle| \leq \|f\|
\leq F$ result in $d(q,C) \ll d$.  It follows that using external forces at our
disposal we can not induce the material point to assume configurations at noticeable
distances away from $C$.  It also follows that within the limits imposed by $\|f\|
\leq F$ the component $\langle f, e(q)\rangle$ is arbitrary.  Examples will be used to
clarify details and present variations of this construction.

        \claim \c{e}{Example}{}{\rm                                                     \label{Cdd1}
    Let $C$ be the set $C^0$ of Example \Ref{Ccc1}.  We obtain the equation
        $$(d(q,C))^2 = \|q - q_0\|^2 - 2a\sqrt{\|q - q_0\|^2 - \langle g(q - q_0),
n\rangle^2} + a^2
                                                                                \tag \label{Fdd8}$$
    for the distance $d(q,C)$ of $q$ from $C$ if this distance is less than $a$.  If
$d(q,C) \neq 0$, then
        $$e(q) = \frac{q - q_0 - \langle g(q - q_0), n\rangle n}{\sqrt{\|q - q_0\|^2
- \langle g(q - q_0), n\rangle^2}}
                                                                                \tag \label{Fdd9}$$
    is the unit vector orthogonal to $C$ at the point $q' \in C$ closest to $q$
pointing from $q'$ to $q$.  Let a function $\overline\zs \colon \sT Q \rightarrow
\R$ be defined by $\overline\zs(q,n) = 0$, $\overline\zs(q,q - q_0) = 0$, and
$\overline\zs(q,\zd q) = \zr\|\zd q\|$ if $\langle g(\zd q), n\rangle = 0$ and
$\langle g(\zd q), q - q_0 \rangle = 0$.  The unconstrained system represented by
the principle of virtual work
        $$\langle f, \zd q\rangle \leq \overline\zs(q,\zd q) + kd(q,C)\langle
g(e(q)), \zd q\rangle  \;\text{ for each virtual displacement }\; (q,\zd q)
                                                                                \tag \label{Fdd10}$$
    is a model of the constrained system of Example \Ref{Ccc1}.   It follows from the
principle of virtual work that $f = kd(q,C)g(e(q)) + f'$, where the component $f'$
satisfies relations $\langle f', n\rangle = 0$, $\langle f', q - q_0\rangle = 0$,
and $\|f'\| \leq \zr$.  If $k \rightarrow \infty$, then $d(q,C) \rightarrow 0$.  Any
value can be obtained for the component $kd(q,C)g(e(q))$ as $k \rightarrow \infty$
and $d(q,C) \rightarrow 0$.  This is in agreement with the principle of virtual work
of Example \Ref{Ccc1}.
        }{\hfill    $\blacktriangle$}\endclaim

        \claim \c{e}{Example}{}{\rm                                                     \label{Cdd2}
    Let $C$ be the set $C^0$ of Example \Ref{Ccc2} and let $u(q) = (q - q_0)\|q -
q_0\|^{-1}$.  The distance $d(q,C)$ is equal to $\|q - q_0\| - a$.  A function
$\zs \colon \sT Q \rightarrow \R$ is defined by $\zs(q,\zd q) = 0$
if $\|q - q_0\| \geq a$ and
        $$\zs(q,\zd q) = -kd(q,C)\langle g(u(q)),\zd q\rangle + kd(q,C)\zn\sqrt{\|\zd
q\|^2 - \langle g(u(q)),\zd q\rangle^2}
                                                                                \tag \label{Fdd11}$$
     if $\|q - q_0\| < a$.  The principle of virtual work
        $$\langle f, \zd q\rangle \leq \zs(q,\zd q) \;\text{ for each virtual
displacement }\; (q,\zd q) \in \sT Q
                                                                                \tag \label{Fdd12}$$
    implies the following relations for the external force $f$.  If $\|q - q_0\|
\geq a$, then $f = 0$.  If $\|q - q_0\| < a$, then $f = -kd(q,C)g(u(q)) + f'$ with
$\langle f', u(q)\rangle = 0$ and $\langle f', \zd q\rangle \leq kd(q,C)\zn\|\zd
q\|$ if $\langle g(u(q)), \zd q\rangle = 0$.  If $k \rightarrow \infty$, then
$d(q,C) \rightarrow 0$.  The component $\langle f, u(q)\rangle = - kd(q,C)$ can have
any negative limit and $\langle f', \zd q\rangle \leq -\langle f,
u(q)\rangle\zn\|\zd q\|$.  This is in agreement with the principle of virtual work
of Example \Ref{Ccc2}.
        }{\hfill    $\blacktriangle$}\endclaim

        \claim \c{e}{Example}{}{\rm                                                     \label{Cdd3}
    A model for the system in Example \Ref{Ccc3} can be easily constructed even if
the boundary of the set $C = C^0$ is not smooth.  The distance $d(q,C)$ is defined
by
        $$d(q,C) = - \langle g(i), q - q_0\rangle
                                                                                \tag \label{Fjj}$$
     if $\langle g(j), q - q_0\rangle \geq 0$ and $\langle g(i), q - q_0\rangle <
0$,
        $$d(q,C) = - \langle g(j), q - q_0\rangle
                                                                                \tag \label{Fmk}$$
     if $\langle g(i), q - q_0\rangle \geq 0$ and $\langle g(j), q - q_0\rangle <
0$, and
        $$d(q,C) = \sqrt{\langle g(i), q - q_0\rangle^2 + \langle g(j), q -
q_0\rangle^2}
                                                                                \tag \label{Fll}$$
     if $\langle g(i), q - q_0\rangle < 0$ and $\langle g(j), q - q_0\rangle < 0$.
A vector field $e(q)$ is defined is defined outside of $C$ by $e(q) = - i$ if
$\langle g(j), q - q_0\rangle \geq 0$ and $\langle g(i), q - q_0\rangle < 0$,
        $$e(q) = - j
                                                                                \tag \label{Fgf}$$
     if $\langle g(i), q - q_0\rangle \geq 0$ and $\langle g(j), q - q_0\rangle <
0$, and
        $$e(q) = (\langle g(i), q - q_0\rangle i + \langle g(j), q - q_0\rangle
j)(d(q,C))^{-1}
                                                                                \tag \label{Fbg}$$
     if $\langle g(i), q - q_0\rangle < 0$ and $\langle g(j), q - q_0\rangle < 0$.
A function $\zs$ on $\sT Q$ is defined by $\zs(q,\zd q) = 0$ if $q \in C$ and
$\zs(q,\zd q) = k\langle g(e(q)), \zd q\rangle$ if $q \notin C$.  The constitutive
set of Example \Ref{Ccc3} is obtained from the principle of virtual work
        $$\langle f, \zd q\rangle = \zs(q,\zd q) \;\text{ for each virtual
displacement }\; (q,\zd q) \in \sT Q
                                                                                \tag \label{Fdd13}$$
    with $k \rightarrow \infty$ and $d(q,C) \rightarrow 0$.
        }{\hfill    $\blacktriangle$}\endclaim

        \claim \c{e}{Example}{}{\rm                                                     \label{Cdd4}
    The construction of the model in the preceding example followed exactly the
prescription given at the beginning of the present section.  This construction can
not be directly applied to the set $C = C^0$ of Example \Ref{Ccc4}.  It can be applied
to the modified set
        $$\align
    C_\ze = C_0 \setminus &\left\{q \in Q;\; \langle g(i), q - q_0\rangle < r,
\langle g(j), q - q_0\rangle < r,\right. \\
    &\hskip10mm \left. (\langle g(i), q - q_0\rangle - r)^2 + (\langle
g(j), q - q_0\rangle - r)^2 > r \right\}.
                                                                                \tag \label{Fdd15}\endalign$$
    The original set $C_0$ is obtained as the limit as $r \rightarrow 0$.
        }{\hfill    $\blacktriangle$}\endclaim

    
stz5.tex
%File information: C:\TEXTS\STZ\STZ5.TEX       127   27/03/99   19:46
%--------------------------------------------------------------
        \sect{Kinematics of autonomous systems and scleronomic constraints.}

    Motions of a material point in the Euclidean affine space $Q$ are curves $\zx
\colon I \rightarrow Q$ parameterized by time $t$ in an open interval $I \subset \R$.
We have the {\it tangent prolongation} $(\zx,\dot\zx) \colon I \rightarrow \sT Q
\colon t \mapsto (\zx(t),\dot\zx(t))$ and the {\it second tangent prolongation}
$(\zx,\dot\zx,\ddot\zx) \colon I \rightarrow \sT^2 Q \colon t \mapsto
(\zx(t),\dot\zx(t),\ddot\zx(t))$ of a motion $\zx$.

    Variational formulations of analytical mechanics require the concept of a {\it
virtual displacement} of a motion.  A virtual displacement of a motion $\zx$ is a
mapping $(\zx,\zd\zx) \colon I \rightarrow \sT Q \colon t \mapsto
(\zx(t),\zd\zx(t))$.  This mapping is obtained from a homotopy
        $$\zq \colon \R \times I \rightarrow Q.
                                                                                \tag \label{Fsd1}$$
    The base curve $\zq(0,\cdot)$ is the motion $\zx$.  The virtual displacement is
the mapping
        $$(\zx,\zd\zx) \colon I \rightarrow \sT Q \colon t \mapsto
\st\zq(\cdot,t)(0).
                                                                                \tag \label{Fsd2}$$
    A mapping $(\zx,\dot\zx,\zd\zx,\zd\dot\zx) \colon I \rightarrow \sT\sT Q \colon
t \mapsto (\zx(t),\dot\zx(t),\zd\zx(t),\zd\dot\zx(t))$ is obtained from a virtual
displacement $(\zx,\zd\zx)$ as the composition $\zk_q \circ
(\zx,\zd\zx,\dot\zx,\zd\dot\zx)$ of the tangent prolongation
$(\zx,\zd\zx,\dot\zx,\zd\dot\zx)$ with the involution $\zk_Q$.  Virtual
displacements are subject to constraints.  All considered versions of constraints
can eventually be reduced to differential equations formulated in terms of a subset
$C^{(1,1)} \subset \sT\sT Q$ such that if $(q,\kq,\zd q,\zd\kq) \in C^{(1,1)}$, then
$(q,\kq,k\zd q,k\zd\kq) \in C^{(1,1)}$ for each number $k \geq 0$.  An {\it admissible
virtual displacement} $(\zx,\zd\zx)$ is required to satisfy the condition
        $$(\zx(t),\dot\zx(t),\zd\zx(t),\zd\dot\zx(t)) \in C^{(1,1)}
                                                                                \tag \label{Fsd3}$$
    for each $t \in I$.  This condition implies conditions
        $$(\zx(t),\dot\zx(t)) \in C^{(0,1)},
                                                                                \tag \label{Fsd4}$$
        $$(\zx(t),\zd\zx(t)) \in C^{(1,0)},
                                                                                \tag \label{Fsd5}$$
    and
        $$\zx(t) \in C^{(0,0)}
                                                                                \tag \label{Fsd6}$$
    for each $t \in I$.  Sets $C^{(0,1)}$, $C^{(1,0)}$, and $C^{(0,0)}$ are
defined by

%projections!!!!!!!!


        $$C^{(0,1)} = \left\{(q,\kq) \in \sT Q ;\; (q,\kq,\zd q,\zd\kq) \in
C^{(1,1)} \;\text{ for some }\; (\zd q,\zd\kq) \in V \times V \right\},
                                                                                \tag \label{Fsd7}$$
        $$C^{(1,0)} = \left\{(q,\zd q) \in \sT Q ;\; (q,\kq,\zd q,\zd\kq) \in
C^{(1,1)} \;\text{ for some }\; (\kq,\zd\kq) \in V \times V \right\},
                                                                                \tag \label{Fsd8}$$
    and
        $$C^{(0,0)} = \left\{q \in Q ;\; (q,\kq) \in C^{(0,1)} \;\text{ for some
}\; \kq \in V \right\}.
                                                                                \tag \label{Fsd9}$$

    Condition \Ref{Fsd4} is a differential equation for the motion $\zx \colon
I \rightarrow Q$.  Constraints are usually discussed it terms of this equation.
The inclusion
        $$C^{(0,1)} \subset \sT C^{(0,0)}
                                                                                \tag \label{Fsd10}$$
    must be satisfied since it is a necessary integrability condition for the
equation \Ref{Fsd4}.  Constraints will be called {\it configuration constraints} if
        $$C^{(0,1)} = \sT C^{(0,0)}.
                                                                                \tag \label{Fsd11}$$
    Velocity constraints are said to be {\it linear} if the set $C^{(0,0)}$ is a
submanifold of $Q$ and $C^{(0,1)}$ is a distribution on this submanifold.  Linear
constraints are said to be {\it holonomic} if $C^{(0,1)}$ is integrable in the
sense of Frobenius.  Configuration constraints are a special case of holonomic
constraints.  Sets $C^{(1,0)}$ and $C^{(1,1)}$ are not usually discussed directly
even if information contained in the {\it velocity constraints} $C^{(0,1)}$ is not
sufficient for the application of variational methods.  The condition \Ref{Fsd3} is
equivalent to
        $$(\zx(t),\zd\zx(t),\dot\zx(t),\zd\dot\zx(t)) = \st(\zx,\zd\zx)(t) \in
\zk_Q(C^{(1,1)}) \subset \sT\sT Q.
                                                                                \tag \label{Fsd12}$$
    It is a differential equation for the virtual displacement $(\zx,\zd\zx) \colon
I \rightarrow \sT Q$.  The inclusion
        $$C^{(1,1)} \subset \zk_Q(\sT C^{(1,0)})
                                                                                \tag \label{Fsd13}$$
    is a necessary integrability condition for this equation.

    Two different methods of constructing the set $C^{(1,1)}$ from the velocity
constraints $C^{(0,1)}$ are found in an article of Arnold, Kozlov, and Neishtadt
[Arn].
        \list
    \item In {\it vaconomic mechanics} the natural construction
        $$C^{(1,1)} = \sT C^{(0,1)}
                                                                                \tag \label{Fsd14}$$
    is used.  This construction is the result of the differential equation
        $$\st\zq(s,\cdot)(t) \in C^{(0,1)}
                                                                                \tag \label{Fsd15}$$
    imposed on curves $\zq(s,\cdot)$ also with $s \neq 0$.  See [Arn] for
modifications of this construction necessary when virtual displacements vanishing at
the ends of a time interval are required.  With these modifications the formula
\Ref{Fsd14} is still valid.  The set $C^{(1,0)}$ is the tangent set $\sT C^{(0,0)}$
of $C^{(0,0)}$.
    \item The {\it d'Alembert-Lagrange} principle is based on the inclusion
        $$C^{(1,1)} \subset \overline{C^{(1,1)}} = \left\{(q,\kq,\zd q,\zd\kq) \in
\sT\sT Q ;\; (q,\kq,0,\zd q) \in \sT C^{(0,1)} \right\}.
                                                                                \tag \label{Fsd16}$$
    This construction derives from the condition
        $$\st\zq(\cdot \,t)(s) \in C^{(1,0)}
                                                                                \tag \label{Fsd17}$$
    for each $t \in I$ and each $s$ and the condition
        $$\st\zq(0,\cdot)(t) \in C^{(0,1)}
                                                                                \tag \label{Fsd18}$$
    imposed on the base curve $\zx = \zq(0,\cdot)$ but not the curves $\zq(s,\cdot)$
for $s \neq 0$.  The set $\overline{C^{(1,1)}}$ may not represent an integrable
differential equation \Ref{Fsd12} for $(\zx,\zd\zx)$.  The set $C^{(1,1)}$ is the
integrable part of $\overline{C^{(1,1)}}$.  If $C^{(0,1)}$ is a vector subbundle of
$\sT Q$, then $C^{(1,0)} = C^{(0,1)}$.  If $C^{(0,1)}$ is an affine subbundle, then
$C^{(1,0)}$ is the model bundle.  In both cases
        $$\overline{C^{(1,1)}} = \left\{(q,\kq,\zd q,\zd\kq) \in \sT\sT Q ;\;
(q,\kq) \in C^{(0,1)}, (q,\zd q) \in C^{(1,0)} \right\}
                                                                                \tag \label{Fsd19}$$
    and
        $$C^{(1,1)} = \overline{C^{(1,1)}} \cap \sT(\zt_{\sT Q}(\overline{C^{(1,1)}})).
                                                                                \tag \label{Fsd20}$$
        \endlist

    For configuration constraints both construction give the same result
        $$C^{(1,1)} = \sT\sT C^{(0,0)}.
                                                                                \tag \label{Fsd21}$$

    
stz6.tex
%File information: C:\TEXTS\STZ\STZ6.TEX 6     209   28/03/99   10:47
%--------------------------------------------------------------
        \sect{Dynamics of unconstrained autonomous systems.}

    We see four possible formulations of dynamics.
\vskip2mm

    {\bf A.} Dynamics of a material point can be specified as a collection of {\it
boundary value relations with external forces} associated with time intervals.  A
boundary value relation for a time interval $[a,b] \subset \R$ is a relation between
an arc $\zx \colon [a,b] \rightarrow Q$, a mapping $(\zx,\zf) \colon [a,b]
\rightarrow \sT^\*Q$, and two covectors $(\zx(a),\zp(a))$ and $(\zx(b),\zp(b))$. The
mapping $(\zx,\zf)$ represents the {\it external force} applied to the material
point along the arc $\zx$ the covectors $(\zx(a),\zp(a))$, $(\zx(b),\zp(b))$ are the
{\it initial momentum} and {\it final momentum}.  It is convenient to consider the
arc $\zx \colon [a,b] \rightarrow Q$ and the mapping $(\zx,\zf) \colon [a,b]
\rightarrow \sT^\*Q$ the restrictions to the interval $[a,b]$ of mappings $\zx
\colon I \rightarrow Q$ and $(\zx,\zf) \colon I \rightarrow \sT^\*Q$ defined on an
open interval $I \subset \R$ containing $[a,b]$.  The covectors $(\zx(a),\zp(a))$
and $(\zx(b),\zp(b))$ will be considered values of a mapping $(\zx,\zp) \colon I
\rightarrow \sT^\*Q$ at the ends of the interval.  The two mappings $(\zx,\zf)
\colon I \rightarrow \sT^\*Q$ and $(\zx,\zp) \colon I \rightarrow \sT^\*Q$ can be
combined in a single mapping
        $$(\zx,\zf,\zp) \colon I \rightarrow Q \times V^\* \times V^\*.
                                                                                \tag \label{Fll1}$$

    An element
        $$((\zx,\zf) \colon [a,b] \rightarrow \sT^\*Q,(\zx(a),\zp(a)),(\zx(b),\zp(b)))
                                                                                \tag \label{Fll2}$$
     of the boundary value relation $D_{[a,b]}$ for an interval $[a,b]$ satisfies
the {\it virtual action principle}
        $$\align
    \int_a^b \langle \zf(t), \zd\zx(t)\rangle dt &- \langle \zp(b),
\zd\zx(b)\rangle + \langle \zp(a), \zd\zx(a)\rangle \\
        &= \int_a^b \left(\zl(\zx(t),\dot\zx(t),\zd\zx(t),\zd\dot\zx(t)) - m\langle
g(\dot\zx(t)), \zd\dot\zx(t)\rangle \right)dt.
                                                                                \tag \label{Fll3}\endalign$$
    for each virtual displacement $(\zx,\zd\zx) \colon [a,b] \rightarrow \sT Q$
obtained as a restriction to $[a,b]$ of a virtual displacement $(\zx,\zd\zx) \colon
I \rightarrow \sT Q$.  The term
        $$m\langle g(\dot\zx(t)), \zd\dot\zx(t)\rangle
                                                                                \tag \label{Fll4}$$
    is the derivative $\xD T(\zx(t),\dot\zx(t),\zd\zx(t),\zd\dot\zx(t))$ of the {\it
kinetic energy} function
        $$T \colon \sT Q \rightarrow \R \colon (q,\kq) \mapsto \frac{m}{2} \|\kq\|^2
                                                                                \tag \label{Fll5}$$
    of a material point with mass $m$.  The function $\zl \colon \sT\sT Q
\rightarrow \R$ represents the virtual action of internal forces.  For the sake of
simplicity we assume that $\zl$ is a linear form (a linear function of $(\zd
q,\zd\kq)$).  The proposed principle of virtual action is more general than the
Hamilton Principle.  Note that the virtual displacements $(\zx(a),\zd\zx(a))$ and
$(\zx(b),\zd\zx(b))$ of the end points of the arc do not vanish.  Variational
principles with variations of end points but without external forces were considered
by Schwinger.  The momentum-velocity relation is a law of physics and is a part of
dynamics of a material point.  This relation is included in the Schwinger version of
the principle of virtual action but not in the Hamilton Principle.

    Examples of the virtual action function $\zl$ include the function
        $$\zl \colon \sT\sT Q \rightarrow \R \colon (q,\kq,\zd q,\zd\kq)
\mapsto e\langle A(q), \zd\kq\rangle + e\langle \xD A(q,\zd q), \kq\rangle
                                                                                \tag \label{Fll6}$$
    for a charged particle in a magnetic field derived from the vector potential $A
\colon Q \rightarrow V^\*$ and the function
        $$\zl \colon \sT\sT Q \rightarrow \R \colon (q,\kq,\zd q,\zd\kq)
\mapsto \zg\langle g(\kq), \zd q\rangle
                                                                                \tag \label{Fll7}$$
    for a material point immersed in a viscous medium.  In the first of these
examples the function $\zl(q,\kq,\zd q,\zd\kq)$ is the derivative
$\xD\za(q,\kq,\zd q,\zd\kq)$ of the function $\za \colon \sT Q \rightarrow \R
\colon (q,\kq) \mapsto e\langle A(q), \kq\rangle$.  We will continue the
analysis assuming that the function $\zl$ is of the simpler type
        $$\zl \colon \sT\sT Q \rightarrow \R \colon (q,\kq,\zd q,\zd\kq)
\mapsto \langle \zm(q), \zd q\rangle,
                                                                                \tag \label{Fll8}$$
    where $\zm$ is a mapping from $\sT Q$ to $V^\*$.  The principle of virtual
action assumes the simpler form
        $$\align
    \int_a^b \langle \zf(t), \zd\zx(t)\rangle dt &- \langle \zp(b),
\zd\zx(b)\rangle + \langle \zp(a), \zd\zx(a)\rangle \\
        &= \int_a^b \left(\langle \zm(\zx(t)),\zd\zx(t)\rangle - m\langle g(\dot\zx(t)),
\zd\dot\zx(t)\rangle \right)dt.
                                                                                \tag \label{Fll9}\endalign$$
    Equivalent versions of this variational principle
        $$\align
    \int_a^b \langle \zf(t), &\zd\zx(t)\rangle dt - \langle \zp(b), \zd\zx(b)\rangle
+ \langle \zp(a), \zd\zx(a)\rangle \\
        &= \int_a^b \left(m\langle g(\ddot\zx(t)), \zd\zx(t)\rangle + \langle
\zm(\zx(t)),\zd\zx(t)\rangle\right)dt \\
    &\hskip30mm - m\langle g(\dot\zx(b)), \zd\zx(b)\rangle + m\langle g(\dot\zx(a)),
\zd\zx(a)\rangle
                                                                                \tag \label{Fll10}\endalign$$
\vskip-2mm
    \noindent and
\vskip-2mm
        $$\align
    \int_a^b &\left(\langle \zf(t) - \dot\zp(t), \zd\zx(t)\rangle - \langle
\zp(t), \zd\dot\zx(t)\rangle\right) dt \\
            &\hskip10mm = \int_a^b \left( \langle \zm(\zx(t)),\zd\zx(t)\rangle -
m\langle g(\dot\zx(t)), \zd\dot\zx(t)\rangle\right)dt
                                                                                \tag \label{Fll11}\endalign$$
    are easily derived by using the identities
        $$\align
    \int_a^b \left(\langle \dot\zp(t), \zd\zx(t)\rangle + \langle \zp(t),
\zd\dot\zx(t)\rangle\right) dt &= \int_a^b \frac{d}{dt} \langle \zp(t),
\zd\zx(t)\rangle dt \\
        &= \langle \zp(b), \zd\zx(b)\rangle - \langle \zp(a), \zd\zx(a)\rangle
                                                                                \tag \label{Fll12}\endalign$$
\vskip-2mm
    \noindent and
\vskip-2mm
        $$\align
    \int_a^b \left(m\langle g(\ddot\zx(t)), \zd\zx(t)\rangle + m\langle
g(\dot\zx(t)), \zd\dot\zx(t)\rangle \right)dt &= \int_a^b m\frac{d}{dt} \langle
g(\dot\zx(t)), \zd\zx(t)\rangle dt \\
    &= m\langle g(\dot\zx(b)), \zd\zx(b)\rangle - m\langle g(\dot\zx(a)),
\zd\zx(a)\rangle.
                                                                                \tag \label{Fll13}\endalign$$

\centerline{\vrule width30mm height0.5pt}
\vskip2mm

    {\bf B.} Dynamics can be specified as the collection $\cD$ of curves
        $$(\zx,\zf,\zp) \colon I \rightarrow Q \times V^\* \times V^\*
                                                                                \tag \label{Fll14}$$
    defined on open intervals $I \subset \R$ with the property that for each time
interval $[a,b] \subset I$ the arc $(\zx,\zf)|[a,b]$ and the covectors
$(\zx(a),\zp(a))$ and $(\zx(b),\zp(b))$ are in the boundary relation $D_{[a,b]}$.

\centerline{\vrule width30mm height0.5pt}
\vskip2mm

    {\bf C.} Dynamics can be specified as differential equations
        $$\zf(t) - \dot\zp(t) = \zm(\zx(t))
                                                                                \tag \label{Fll15}$$
\vskip-2mm
    \noindent and
\vskip-2mm
        $$\zp(t) = g(\dot\zx(t))
                                                                                \tag \label{Fll16}$$
    for mappings $(\zx,\zf,\zp) \colon I \rightarrow Q \times V^\* \times V^\*$.
These equations will be denoted by $\kD$.

\centerline{\vrule width30mm height0.5pt}
\vskip2mm

    {\bf D.} Dynamics can be specified as differential equations
        $$\zf(t) = mg(\ddot\zx(t)) + \zm(\zx(t))
                                                                                \tag \label{Fll17}$$
\vskip-2mm
    \noindent and
\vskip-2mm
        $$\zp(t) = g(\dot\zx(t))
                                                                                \tag \label{Fll18}$$
    for mappings $(\zx,\zf,\zp) \colon I \rightarrow Q \times V^\* \times V^\*$.
These equations will be denoted by $E$.

\nobreak
\centerline{\vrule width30mm height0.5pt}
\vskip2mm

    Of the four formulations of dynamics version {\bf A} is fundamental.  The family
of curves $\cD$ and the differential equations $\kD$ and $E$ introduced in {\bf B},
{\bf C}, and {\bf D} are auxiliary objects.

    Differential equations $\kD$ and $E$ are obviously equivalent.

    We show that the family $\cD$ is the set of solutions of the equations $\kD$.
The proof is based on version \Ref{Fll11} of the principle of virtual action.  If a
curve $(\zx,\zf,\zp) \colon I \rightarrow Q \times V^\* \times V^\*$ is in $\cD$ and
$(\zx,\zd\zx) \colon I \rightarrow \sT Q$ is an arbitrary virtual displacement, then
the equality \Ref{Fll11} holds for all intervals $[a,b] \subset I$.  It follows that
the equality
        $$\langle \zf(t) - \dot\zp(t), \zd\zx(t)\rangle - \langle
\zp(t), \zd\dot\zx(t)\rangle =  \langle \zm(\zx(t)),\zd\zx(t)\rangle -
m\langle g(\dot\zx(t)), \zd\dot\zx(t)\rangle
                                                                                \tag \label{Fll19}$$
    holds at each $t \in I$.  This implies that equations $\kD$ are satisfied due to
arbitrariness of the vectors $\zd\zx(t)$ and $\zd\dot\zx(t)$.  Conversely if
$(\zx,\zf,\zp) \colon I \rightarrow Q \times V^\* \times V^\*$ is a solution of
$\kD$, then the equality \Ref{Fll19} holds in $I$ with an arbitrary displacement
$(\zx,\zd\zx) \colon I \rightarrow \sT Q$.  The validity of the principle of virtual
action for each time interval $[a,b] \subset I$ is established by integration.
Hence, $(\zx,\zf,\zp)$ is in $\cD$.

    It follows from the definition of $\cD$ that this family is constructed from the
boundary value relations.  We show that elements of boundary value relations can be
constructed from elements of $\cD$.  Let $[a,b]$ be a time interval included in an
open interval $I \subset \R$ and let $(\zx,\zf,\zp) \colon I \rightarrow Q \times
V^\* \times V^\*$ be a mapping such that
$(\zx,\zf)|[a,b],(\zx(a),\zp(a)),(\zx(b),\zp(b)))$ is in $D_{[a,b]}$.  It follows
from version \Ref{Fll10} of the principle of virtual action that the mapping
$(\zx,\zf)$ satisfies the equation
        $$\zf(t) = mg(\ddot\zx(t)) + \zm(\zx(t))
                                                                                \tag \label{Fll20}$$
    in $[a,b]$ and that
        $$\zp(a) = g(\dot\zx(a)) \;\text{ and }\; \zp(b) = g(\dot\zx(b)).
                                                                                \tag \label{Fll21}$$
    Let mappings $\zf' \colon I \rightarrow V^\*$ and $\zp' \colon I \rightarrow
V^\*$ be defined by
        $$\zf'(t) = mg(\ddot\zx(t)) + \zm(\zx(t))
                                                                                \tag \label{Fll22}$$
    and
        $$\zp'(t) = mg(\dot\zx(t)).
                                                                                \tag \label{Fll23}$$
    The mapping $(\zx,\zf',\zp') \colon I \rightarrow Q \times V^\* \times V^\*$ is
in $\cD$ since it is a solution of $E$.  The boundary value data extracted from this
mapping are in the boundary value relation since $(\zx,\zf')|[a,b] =
(\zx,\zf)|[a,b]$, $\zp'(a) = \zp(a)$, and $\zp'(b) = \zp(b)$.


    
stz7.tex
%File information: C:\TEXTS\STZ\STZ7.TEX       107   27/03/99   19:46
%--------------------------------------------------------------
        \sect{Dynamics with configuration constraints.}

    We list four possible formulations of dynamics with constraints analogous to
the four formulations in the preceding section.  As defined in Section 5 an
admissible virtual displacement is a mapping $(\zx,\zd\zx) \colon I \rightarrow \sT
Q$ satisfying the condition
        $$(\zx(t),\dot\zx(t),\zd\zx(t),\zd\dot\zx(t)) \in C^{(1,1)} = \sT\sT C^{(0,0)}
                                                                                \tag \label{Frr1}$$
    for each $t \in I$.

\vskip2mm

    {\bf A.} Dynamics of a material point can be considered a collection of {\it
boundary value relations} associated with time intervals.  An element
        $$((\zx,\zf) \colon [a,b] \rightarrow \sT^\*Q,(\zx(a),\zp(a)),(\zx(b),\zp(b)))
                                                                                \tag \label{Frr2}$$
     of the boundary value relation $D_{[a,b]}$ for an interval $[a,b]$ satisfies
the {\it virtual action principle}
        $$\align
    \int_a^b \langle \zf(t), \zd\zx(t)\rangle dt &- \langle \zp(b),
\zd\zx(b)\rangle + \langle \zp(a), \zd\zx(a)\rangle \\
        &= \int_a^b \left(\langle \zm(\zx(t)),\zd\zx(t)\rangle - m\langle g(\dot\zx(t)),
\zd\dot\zx(t)\rangle \right)dt.
                                                                                \tag \label{Frr3}\endalign$$
    for each admissible virtual displacement $(\zx,\zd\zx) \colon [a,b] \rightarrow
\sT Q$ obtained as a restriction to $[a,b]$ of an admissible virtual displacement
$(\zx,\zd\zx) \colon I \rightarrow \sT Q$.  The mapping $\zm$ is defined on
$C^{(1,0)} = \sT C^{(0,0)}$.  The condition $\zx(t) \in C^{(0,0)}$ for each $t \in I$
is implied.

    There are again the equivalent versions of this variational principle
        $$\align
    \int_a^b \langle \zf(t), &\zd\zx(t)\rangle dt - \langle \zp(b), \zd\zx(b)\rangle
+ \langle \zp(a), \zd\zx(a)\rangle \\
        &= \int_a^b \left(m\langle g(\ddot\zx(t)), \zd\zx(t)\rangle + \langle
\zm(\zx(t)),\zd\zx(t)\rangle\right)dt \\
    &\hskip30mm - m\langle g(\dot\zx(b)), \zd\zx(b)\rangle + m\langle g(\dot\zx(a)),
\zd\zx(a)\rangle
                                                                                \tag \label{Frr4}\endalign$$
    and
        $$\align
    \int_a^b &\left(\langle \zf(t) - \dot\zp(t), \zd\zx(t)\rangle - \langle
\zp(t), \zd\dot\zx(t)\rangle\right) dt \\
            &\hskip10mm = \int_a^b \left( \langle \zm(\zx(t)),\zd\zx(t)\rangle -
m\langle g(\dot\zx(t)), \zd\dot\zx(t)\rangle\right)dt.
                                                                                \tag \label{Frr5}\endalign$$

\centerline{\vrule width30mm height0.5pt}
\vskip2mm

    {\bf B.} Dynamics can be specified as the collection $\cD$ of curves
        $$(\zx,\zf,\zp) \colon I \rightarrow Q \times V^\* \times V^\*
                                                                                \tag \label{Frr6}$$
    defined on open intervals $I \subset \R$ such that for each time interval $[a,b]
\subset I$ the arc $(\zx,\zf)|[a,b]$ and the covectors $(\zx(a),\zp(a))$ and
$(\zx(b),\zp(b))$ are in the boundary relation $D_{[a,b]}$.

\centerline{\vrule width30mm height0.5pt}
\vskip2mm

    {\bf C.} Dynamics can be specified as the differential equation
        $$\langle \zf(t) - \dot\zp(t), \zd\zx(t) \rangle - \langle \zp(t),
\zd\dot\zx(t)\rangle = \langle \zm(\zx(t)), \zd\zx(t) \rangle -\langle
g(\dot\zx(t)), \zd\dot\zx(t)\rangle
                                                                                \tag \label{Frr7}$$
    to be satisfied by a curve $(\zx,\zf,\zp) \colon I \rightarrow Q \times V^\*
\times V^\*$ at each $t \in I$ and for each $(q,\dot\zx(t),\zd\zx(t),\zd\dot\zx(t))
\in C^{(1,1)}$. This is equivalent to equations
        $$\langle \zf(t) - \dot\zp(t), \zd\zx(t) \rangle = \langle \zm(\zx(t)),
\zd\zx(t) \rangle
                                                                                \tag \label{Frr8}$$
    and
        $$\langle \zp(t), \zd\zx(t)\rangle = \langle g(\dot\zx(t)), \zd\zx(t)\rangle
                                                                                \tag \label{Frr9}$$
    satisfied at each $t \in I$ for each $(\zx(t),\zd\zx(t)) \in C^{(1,0)}$.

\centerline{\vrule width30mm height0.5pt}
\vskip2mm

    {\bf D.} Dynamics can be specified as the differential equations
        $$\langle \zf(t),\zd\zx(t) \rangle = \langle mg(\ddot\zx(t)) + \zm(\zx(t)),
\zd\zx(t)\rangle
                                                                                \tag \label{Frr10}$$
    and
        $$\langle \zp(t), \zd\zx(t) \rangle = \langle g(\dot\zx(t)), \zd\zx(t)
\rangle
                                                                                \tag \label{Frr11}$$
    satisfied by a mapping $(\zx,\zf,\zp) \colon I \rightarrow Q \times V^\*
\times V^\*$ at each $t \in I$ and each $(\zx(t),\zd\zx(t)) \in C^{(1,0)}$.

\centerline{\vrule width30mm height0.5pt}
\vskip2mm

    The four formulations are valid for configuration constraints and are equivalent
as in the case of unconstrained systems.  The situation is much more complex in the
case of more general constraints.  The method of models could be a tool for testing
the validity of different formulations.  We will apply this tool to the
momentum-velocity relation.  Note that the usual momentum-velocity relation
        $$\zp(t) = g(\dot\zx(t))
                                                                                \tag \label{Frr12}$$
    is replaced by the equation \Ref{Frr11}.  We will attempt a justification of
this modification of the momentum-velocity relation based on models of configuration
constraints.



    
stz8.tex
%File information: C:\TEXTS\STZ\STZ8.TEX        84   27/03/99   19:46
%--------------------------------------------------------------
        \sect{Models of autonomous systems with configuration constraints.}

    Let a material point of mass $m$ be constrained to a plane $C^{(0,0)} \subset Q$
passing through a point $q_0$ and orthogonal to a unit vector $n$.  We will assume
that there are no internal forces and no external forces are applied.  The
constraint will be modeled by a strong internal elastic force $k\langle g(q - q_0),
n\rangle g(n)$.  Let an initial momentum $(\zx(a),\zp(a))$ such that $\zx(a) \in
C^{(0,0)}$ and $\langle \zp(a), n\rangle = 0$ be applied to the point.  The solution
of the dynamical equations will be the mapping $(\zx,\zf,\zp) \colon R \rightarrow Q
\times V^\* \times V^\*$ with $\zx(t) = \zx(a) + m^{-1}g^{-1}(\zp(a))(t - a)$,
$\zf(t) = 0$, and $\zp(t) = \zp(a)$.  If the constraint is replaced by the elastic
force the solution mapping will be the same.  Let now the initial momentum have a
non zero component $\langle \zp(a), n\rangle$.  For the unconstrained model the
solution is the mapping $(\zx,\zf,\zp)$ with
        $$\zx(t) = \zx(a) + m^{-1}\left(g^{-1}(\zp(a)) - \langle \zp(a), n\rangle n
\right)(t - a) + \zw^{-1}\langle \zp(a), n\rangle n\sin\zw(t - a),
                                                                                \tag \label{Fgg1}$$
    $\zf(t) = 0$,
        $$\zp(t) = \zp(a) + \langle \zp(a), n\rangle g(n)(\cos\zw(t - a) - 1),
                                                                                \tag \label{Fgg2}$$
    and $\zw = \sqrt{k/m}$.  The oscillation may be invisible since the amplitude
$\zw^{-1}\langle \zp(a), n\rangle$ may be small due to the high value of $\zw$.  The
rapidly changing component $\langle \zp(a), n\rangle g(n)\cos\zw(t - a)$ of the
momentum transverse to the plane $C^{(0,0)}$ depends on the initial value $\langle
\zp(a), n\rangle g(n)$ and is arbitrary within certain limits.  This component can
be detected by making the material point collide with an unconstrained mass.  Time
dependent external forces and curvature of constraint set $C^{(0,0)}$ may even cause
the transverse component of momentum influence the visible part of the motion along
the constraint.  The element of the boundary value relation for the idealized
constrained system is composed of the mapping $(\zx,\zf) \colon [a,b] \rightarrow Q
\times V^\*$ with $\zx(t) = \zx(a) + m^{-1}\left(g^{-1}(\zp(a)) - \langle \zp(a),
n\rangle n \right)(t - a)$, $\zf(t) = 0$, and covectors $(\zx(a),\zp(a))$ and
$(\zx(b),\zp(b))$ satisfying the equality $\zp(b) - \langle \zp(b), n\rangle g(n) =
\zp(a) - \langle \zp(a), n\rangle g(n)$.  The transverse component $\langle \zp(a),
n\rangle g(n)$ of the initial momentum is arbitrary.  Due to the rapidity of
oscillations the final value of the transverse component $\langle \zp(b), n\rangle
g(n)$ of final momentum should be considered arbitrary and independent of the initial
value.

    This analysis based on a purely elastic model suggests that the virtual action
principle
        $$\align
    \int_a^b \langle \zf(t), &\zd\zx(t)\rangle dt - \langle \zp(b), \zd\zx(b)\rangle
+ \langle \zp(a), \zd\zx(a)\rangle \\
        &= \int_a^b \left(m\langle g(\ddot\zx(t)), \zd\zx(t)\rangle + \langle
\zm(\zx(t)),\zd\zx(t)\rangle\right)dt \\
    &\hskip30mm - m\langle g(\dot\zx(b)), \zd\zx(b)\rangle + m\langle g(\dot\zx(a)),
\zd\zx(a)\rangle
                                                                                \tag \label{Fgg3}\endalign$$
    for each admissible virtual displacement $(\zx,\zd\zx) \colon [a,b] \rightarrow
\sT Q$ is appropriate for material points subject to configuration constraints.  If
this formulation of dynamics with configuration constraints is adopted, then the
momentum-velocity relation

        \centerline{{\it momentum} = {\it mass} $\times$ {\it velocity}}

    is no longer valid.  Velocity is the rate of change of configuration.  The
component of velocity transverse to the constraint set is zero.  This is not true of
the transverse component of momentum.  Along directions tangent to the constraint
the usual momentum-velocity relation holds.  Other models may be found appropriate
in certain situations.  When a rigid bar is struck with a hammer it starts an
invisible vibration detectable through the sound it emits.  The sound is due to
momentum (and energy) transfer to air molecules colliding with the surface of the
bar.  The vibration will eventually die away although it may continue for a long
time if the bar is placed in vacuum.  The inevitable damping can be taken into
account by supplementing the elastic force $k\langle g(q - q_0), n\rangle g(n)$ with
a viscous damping force $\zg \langle g(\dot\zx(t)), n\rangle g(n)$.  It may be
appropriate to consider the transverse component of the initial momentum arbitrary
and the transverse component of the final momentum effectively reduced to zero.  In
cases of relatively short time intervals the effect of the damping can be ignored.
In cases of strong damping and relatively long time intervals.  It may be correct to
assume that the transverse component of the initial momentum is completely absorbed
in an essentially inelastic collision with the suspension and not transferred to the
material point.  In such cases the boundary value relation will be a solution of the
Hamilton principle with external forces:
        $$\int_a^b \langle \zf(t), \zd\zx(t)\rangle dt = \int_a^b \left(m\langle
g(\ddot\zx(t)), \zd\zx(t)\rangle + \langle \zm(\zx(t)),\zd\zx(t)\rangle\right)dt
                                                                                \tag \label{Fgg4}$$
    for each admissible virtual displacement $(\zx,\zd\zx) \colon [a,b] \rightarrow
\sT Q$ with $\zd\zx(a) = 0$ and $\zd\zx(b) = 0$.  The equalities $\zp(a) =
g(\dot\zx(a))$ and $\zp(b) = g(\dot\zx(b))$ supplement the variational principle.


    
stz9.tex
%File information: C:\TEXTS\STZ\STZ9.TEX        17   27/03/99   19:46
%--------------------------------------------------------------
		\sect{References.}

[Arn] V.I. Arnold, V.V. Kozlov, and A.I. Neishtadt, Mathematical Aspects of Classical
and Celestial Mechanics in {\it Dynamical Systems III}, V.I. Arnold (Ed.),
Springer-Verlag











    