%% 
%% This is file `latex.ltx', generated 
%% on <1994/9/26> with the docstrip utility (2.2h).
%% 
%% The original source files were:
%% 
%% ltdirchk.dtx  (with options: `initex,2ekernel,dircheck')
%% ltplain.dtx  (with options: `2ekernel')
%% ltvers.dtx  (with options: `2ekernel')
%% ltalloc.dtx  (with options: `2ekernel')
%% ltdefns.dtx  (with options: `2ekernel')
%% ltcntrl.dtx  (with options: `2ekernel')
%% lterror.dtx  (with options: `2ekernel')
%% ltpar.dtx  (with options: `2ekernel')
%% ltspace.dtx  (with options: `2ekernel')
%% ltlogos.dtx  (with options: `2ekernel')
%% ltfiles.dtx  (with options: `2ekernel')
%% ltoutenc.dtx  (with options: `2ekernel')
%% ltfss.dtx  (with options: `!driver')
%% ltfntcmd.dtx  (with options: `2ekernel')
%% ltcounts.dtx  (with options: `2ekernel')
%% ltpageno.dtx  (with options: `2ekernel')
%% ltxref.dtx  (with options: `2ekernel')
%% ltlength.dtx  (with options: `2ekernel')
%% ltmiscen.dtx  (with options: `2ekernel')
%% ltlists.dtx  (with options: `2ekernel')
%% ltboxes.dtx  (with options: `2ekernel')
%% lttab.dtx  (with options: `2ekernel')
%% ltpictur.dtx  (with options: `2ekernel')
%% ltthm.dtx  (with options: `2ekernel')
%% ltsect.dtx  (with options: `2ekernel')
%% ltfloat.dtx  (with options: `2ekernel')
%% ltidxglo.dtx  (with options: `2ekernel')
%% ltbibl.dtx  (with options: `2ekernel')
%% ltpage.dtx  (with options: `2ekernel')
%% ltoutput.dtx  (with options: `2ekernel')
%% ltclass.dtx  (with options: `2ekernel')
%% ltfinal.dtx  (with options: `2ekernel')
%% 
%% Copyright 1994 the LaTeX3 project and the individual authors. 
%% All rights reserved. For further copyright information see the file 
%% legal.txt, and any other copyright indicated in this file. 
%% 
%% This file is part of the LaTeX2e system. 
%% ---------------------------------------- 
%% 
%% This system is distributed in the hope that it will be useful, 
%% but WITHOUT ANY WARRANTY; without even the implied warranty of 
%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 
%% 
%% 
%% IMPORTANT NOTICE: 
%% 
%% For error reports in case of UNCHANGED versions see readme files. 
%% 
%% Please do not request updates from us directly. Distribution is 
%% done through Mail-Servers and TeX organizations. 
%% 
%% You are not allowed to change this file. 
%% 
%% You are allowed to distribute this file under the condition that 
%% it is distributed together with all files mentioned in 00readme.txt. 
%% 
%% If you receive only some of these files from someone, complain! 
%% 
%% You are NOT ALLOWED to distribute this file alone. You are NOT 
%% ALLOWED to take money for the distribution or use of either this 
%% file or a changed version, except for a nominal charge for copying 
%% etc. 
%%% File: ltdirchk
\catcode`\{=1
\catcode`\}=2
\catcode`\#=6
\catcode`\^=7
\chardef\active=13
\catcode`\@=11
\countdef\count@=255
\let\bgroup={ \let\egroup=}
\ifx\@@input\@undefined\let\@@input\input\fi
\ifx\@@end\@undefined\let\@@end\end\fi
\chardef\@inputcheck0
\chardef\sixt@@n=16
\newlinechar`\^^J
\def\typeout{\immediate\write17}
\def\dospecials{\do\ \do\\\do\{\do\}\do\$\do\&%
  \do\#\do\^\do\_\do\%\do\~}
\def\@makeother#1{\catcode`#1=12\relax}
\def\space{ }
\def\@tempswafalse{\let\if@tempswa\iffalse}
\def\@tempswatrue{\let\if@tempswa\iftrue}
\let\if@tempswa\iffalse
\def\loop#1\repeat{\def\body{#1}\iterate}
\def\iterate{\body \let\next\iterate \else\let\next\relax\fi \next}
\let\repeat\fi
\def\two@digits#1{\ifnum#1<10 0\fi\number#1}
\long\def\@firstoftwo#1#2{#1}
\long\def\@secondoftwo#1#2{#2}
\def\ProvidesFile#1{%
  \begingroup
    \catcode`\ 10 %
    \@makeother\/%
    \@ifnextchar[{\@providesfile{#1}}{\@providesfile{#1}[]}}
\def\@providesfile#1[#2]{%
    \wlog{File: #1 #2}%
    \expandafter\xdef\csname ver@#1\endcsname{#2}%
  \endgroup}
\def\@empty{}
\catcode`\%=12
\def\@percentchar{%}
\catcode`\%=14
\let\@currdir\@undefined
\let\input@path\@undefined
\let\filename@parse\@undefined
\def\strip@prefix#1>{}
\input texsys.cfg
\begingroup
\count@\time
\divide\count@ 60
\count2=-\count@
\multiply\count2 60
\advance\count2 \time
\edef\today{%
  \the\year/\two@digits{\the\month}/\two@digits{\the\day}:%
    \two@digits{\the\count@}:\two@digits{\the\count2}}
\immediate\openout15=texsys.aux
\immediate\write15{\today^^J}
\immediate\closeout15 %
\def\IfFileExists#1#2#3{%
  \openin\@inputcheck#1 %
  \ifeof\@inputcheck
     #3\relax
  \else
    \read\@inputcheck to \@tempa
    \ifx\@tempa\today
      \typeout{#1 found}#2\relax
    \else
      \typeout{BAD: old file \@tempa (should be \today)}%
      #3\relax
    \fi
  \fi
  \closein\@inputcheck}
\endlinechar=-1
\ifx\@currdir\@undefined
  \IfFileExists{./texsys.aux}{\gdef\@currdir{./}}%
    {\IfFileExists{[]texsys.aux}{\gdef\@currdir{[]}}%
      {\IfFileExists{:texsys.aux}{\gdef\@currdir{:}}{}}}
  \ifx\@currdir\@undefined
    \global\let\@currdir\@empty
    \typeout{^^J***^^J%
      No syntax for the current directory could be found^^J%
      ***}%
  \fi
\else
  \IfFileExists{\@currdir texsys.aux}{}{%
    \edef\@tempa{\errhelp{%
      texsys.cfg specifies the current directory syntax to be^^J%
      \meaning\@currdir^^J%
      but this does not work on this system.^^J%
      Remove texsys.cfg and restart.}}\@tempa
    \errmessage{Bad texsys.cfg file: \noexpand\@currdir}\@@end}
\fi
\immediate\closeout15 %
\endgroup
\typeout{^^J***^^J%
         \noexpand\@currdir set to:
           \expandafter\strip@prefix\meaning\@currdir.^^J%
         ***}
  \typeout{***^^J%
    Assuming \noexpand\openin and \noexpand\input^^J%
    \ifx\input@path\@undefined
      have the same search path.^^J%
    \else
      have different  search paths.^^J%
      LaTeX will use the path specified by \noexpand\input@path:^^J%
    \fi
    ***}

\ifx\filename@parse\@undefined
  \def\@tempa{./}\ifx\@currdir\@tempa
    \typeout{^^J***^^JDefining UNIX/DOS style filename parser.^^J***}
    \def\filename@parse#1{%
      \let\filename@area\@empty
      \expandafter\filename@path#1/\\}
    \def\filename@path#1/#2\\{%
      \ifx\\#2\\%
         \def\@tempa{\filename@simple#1.\\}%
      \else
         \edef\filename@area{\filename@area#1/}%
         \def\@tempa{\filename@path#2\\}%
      \fi
      \@tempa}
  \else\def\@tempa{[]}\ifx\@currdir\@tempa
    \typeout{^^J***^^JDefining VMS style filename parser.^^J***}
    \def\filename@parse#1{%
      \let\filename@area\@empty
      \expandafter\filename@path#1]\\}
    \def\filename@path#1]#2\\{%
      \ifx\\#2\\%
         \def\@tempa{\filename@simple#1.\\}%
      \else
         \edef\filename@area{\filename@area#1]}%
         \def\@tempa{\filename@path#2\\}%
      \fi
      \@tempa}
  \else\def\@tempa{:}\ifx\@currdir\@tempa
    \typeout{^^J***^^JDefining Mac style filename parser.^^J***}
    \def\filename@parse#1{%
      \let\filename@area\@empty
      \expandafter\filename@path#1:\\}
    \def\filename@path#1:#2\\{%
      \ifx\\#2\\%
         \def\@tempa{\filename@simple#1.\\}%
      \else
         \edef\filename@area{\filename@area#1:}%
         \def\@tempa{\filename@path#2\\}%
      \fi
      \@tempa}
  \else
    \typeout{^^J***^^JDefining generic filename parser.^^J***}
    \def\filename@parse#1{%
      \let\filename@area\@empty
      \expandafter\filename@simple#1.\\}
  \fi\fi\fi
  \def\filename@simple#1.#2\\{%
    \ifx\\#2\\%
       \let\filename@ext\relax
    \else
       \edef\filename@ext{\filename@dot#2\\}%
    \fi
    \edef\filename@base{#1}}
  \def\filename@dot#1.\\{#1}
\else
  \typeout{^^J***^^J%
    \noexpand\filename@parse was defined in texsys.cfg:^^J%
    \expandafter\strip@prefix\meaning\filename@parse.^^J%
    ***}
\fi
\ifx\@TeXversion\@undefined
  \ifx\undefined\inputlineno
    \def\@TeXversion{2}
  \fi
\fi
%%% File: ltplain
%% \CharacterTable
%%  {Upper-case    \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
%%   Lower-case    \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
%%   Digits        \0\1\2\3\4\5\6\7\8\9
%%   Exclamation   \!     Double quote  \"     Hash (number) \#
%%   Dollar        \$     Percent       \%     Ampersand     \&
%%   Acute accent  \'     Left paren    \(     Right paren   \)
%%   Asterisk      \*     Plus          \+     Comma         \,
%%   Minus         \-     Point         \.     Solidus       \/
%%   Colon         \:     Semicolon     \;     Less than     \<
%%   Equals        \=     Greater than  \>     Question mark \?
%%   Commercial at \@     Left bracket  \[     Backslash     \\
%%   Right bracket \]     Circumflex    \^     Underscore    \_
%%   Grave accent  \`     Left brace    \{     Vertical bar  \|
%%   Right brace   \}     Tilde         \~}
%%
\catcode`\{=1 % left brace is begin-group character
\catcode`\}=2 % right brace is end-group character
\catcode`\$=3 % dollar sign is math shift
\catcode`\&=4 % ampersand is alignment tab
\catcode`\#=6 % hash mark is macro parameter character
\catcode`\^=7 % circumflex and uparrow are for superscripts
\catcode`\_=8 % underline and downarrow are for subscripts
\catcode`\^^I=10 % ascii tab is a blank space
\chardef\active=13 \catcode`\~=\active % tilde is active
\catcode`\^^L=\active \outer\def^^L{\par}% ascii form-feed is \outer\par
\message{Preloading the plain format: codes,}
\def\dospecials{\do\ \do\\\do\{\do\}\do\$\do\&%
  \do\#\do\^\do\_\do\%\do\~}
\catcode`@=11
\mathcode`\ ="8000 % \space
\mathcode`\!="5021
\mathcode`\'="8000 % ^\prime
\mathcode`\(="4028
\mathcode`\)="5029
\mathcode`\*="2203 % \ast
\mathcode`\+="202B
\mathcode`\,="613B
\mathcode`\-="2200
\mathcode`\.="013A
\mathcode`\/="013D
\mathcode`\:="303A
\mathcode`\;="603B
\mathcode`\<="313C
\mathcode`\=="303D
\mathcode`\>="313E
\mathcode`\?="503F
\mathcode`\[="405B
\mathcode`\\="026E % \backslash
\mathcode`\]="505D
\mathcode`\_="8000 % \_
\mathcode`\{="4266
\mathcode`\|="026A
\mathcode`\}="5267
\sfcode`\)=0 \sfcode`\'=0 \sfcode`\]=0
\delcode`\(="028300
\delcode`\)="029301
\delcode`\[="05B302
\delcode`\]="05D303
\delcode`\<="26830A
\delcode`\>="26930B
\delcode`\/="02F30E
\delcode`\|="26A30C
\delcode`\\="26E30F
\chardef\@ne=1
\chardef\tw@=2
\chardef\thr@@=3
\chardef\sixt@@n=16
\chardef\@cclv=255
\mathchardef\@cclvi=256
\mathchardef\@m=1000
\mathchardef\@M=10000
\mathchardef\@MM=20000
\message{registers,}
\count10=22 % allocates \count registers 23, 24, ...
\count11=9 % allocates \dimen registers 10, 11, ...
\count12=9 % allocates \skip registers 10, 11, ...
\count13=9 % allocates \muskip registers 10, 11, ...
\count14=9 % allocates \box registers 10, 11, ...
\count15=9 % allocates \toks registers 10, 11, ...
\count16=-1 % allocates input streams 0, 1, ...
\count17=-1 % allocates output streams 0, 1, ...
\count18=3 % allocates math families 4, 5, ...
\count19=0 % allocates \language codes 1, 2, ...
\count20=255 % allocates insertions 254, 253, ...
\countdef\insc@unt=20 % the insertion counter
\countdef\allocationnumber=21 % the most recent allocation
\countdef\m@ne=22 \m@ne=-1 % a handy constant
\def\wlog{\immediate\write\m@ne} % write on log file (only)
\countdef\count@=255
\dimendef\dimen@=0
\dimendef\dimen@i=1 % global only
\dimendef\dimen@ii=2
\skipdef\skip@=0
\toksdef\toks@=0
\def\newcount{\alloc@0\count\countdef\insc@unt}
\def\newdimen{\alloc@1\dimen\dimendef\insc@unt}
\def\newskip{\alloc@2\skip\skipdef\insc@unt}
\outer\def\newmuskip{\alloc@3\muskip\muskipdef\@cclvi}
\def\newbox{\alloc@4\box\chardef\insc@unt}
\let\newtoks=\relax % we do this to allow plain.tex to be read in twice
\outer\def\newhelp#1#2{\newtoks#1#1\expandafter{\csname#2\endcsname}}
\outer\def\newtoks{\alloc@5\toks\toksdef\@cclvi}
\outer\def\newread{\alloc@6\read\chardef\sixt@@n}
\def\newwrite{\alloc@7\write\chardef\sixt@@n}
\def\newfam{\alloc@8\fam\chardef\sixt@@n}
\outer\def\newlanguage{\alloc@9\language\chardef\@cclvi}
\def\alloc@#1#2#3#4#5{\global\advance\count1#1by\@ne
  \ch@ck#1#4#2% make sure there's still room
  \allocationnumber=\count1#1%
  \global#3#5=\allocationnumber
  \wlog{\string#5=\string#2\the\allocationnumber}}
\outer\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\ch@ck#1#2#3{\ifnum\count1#1<#2%
  \else\errmessage{No room for a new #3}\fi}
\newdimen\maxdimen \maxdimen=16383.99999pt % the largest legal <dimen>
\newskip\hideskip \hideskip=-1000pt plus 1fill % negative but can grow
\newskip\@centering \@centering=0pt plus 1000pt minus 1000pt
\newdimen\p@ \p@=1pt % this saves macro space and time
\newdimen\z@ \z@=0pt % can be used both for 0pt and 0
\newskip\z@skip \z@skip=0pt plus0pt minus0pt
\newbox\voidb@x % permanently void box register
\outer\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@} % the condition starts out false
\def\@if#1#2{\csname\expandafter\if@\string#1#2\endcsname}
{\uccode`1=`i \uccode`2=`f \uppercase{\gdef\if@12{}}} % `if' is required
\message{compatibility for TeX 2, }
\ifx\undefined\inputlineno
  \newcount\inputlineno
  \inputlineno-1               % this could be used to detect that
                               % an old TeX is in force
  \ifx\undefined\language      % extra test for MLTeX 2, RmS 91/11/07
    \newcount\language
  \fi
  \newcount\lefthyphenmin
  \newcount\righthyphenmin
  \newcount\errorcontextlines
  \newcount\holdinginserts
  \newdimen\emergencystretch
  \newcount\badness
  \let\noboundary\relax
  \newcount\setlanguage
\fi
\message{parameters,}
\pretolerance=100
\tolerance=200 % INITEX sets this to 10000
\hbadness=1000
\vbadness=1000
\linepenalty=10
\hyphenpenalty=50
\exhyphenpenalty=50
\binoppenalty=700
\relpenalty=500
\clubpenalty=150
\widowpenalty=150
\displaywidowpenalty=50
\brokenpenalty=100
\predisplaypenalty=10000
\doublehyphendemerits=10000
\finalhyphendemerits=5000
\adjdemerits=10000
\tracinglostchars=1
\uchyph=1
\defaulthyphenchar=`\-
\defaultskewchar=-1
\newlinechar=-1
\delimiterfactor=901
\showboxbreadth=-1
\showboxdepth=-1
\errorcontextlines=-1
\hfuzz=0.1pt
\vfuzz=0.1pt
\overfullrule=5pt
\hsize=6.5in
\vsize=8.9in
\maxdepth=4pt
\splitmaxdepth=\maxdimen
\boxmaxdepth=\maxdimen
\delimitershortfall=5pt
\nulldelimiterspace=1.2pt
\scriptspace=0.5pt
\parindent=20pt
\parskip=0pt plus 1pt
\abovedisplayskip=12pt plus 3pt minus 9pt
\abovedisplayshortskip=0pt plus 3pt
\belowdisplayskip=12pt plus 3pt minus 9pt
\belowdisplayshortskip=7pt plus 3pt minus 4pt
\topskip=10pt
\splittopskip=10pt
\parfillskip=0pt plus 1fil
\thinmuskip=3mu
\medmuskip=4mu plus 2mu minus 4mu
\thickmuskip=5mu plus 5mu
\newskip\smallskipamount \smallskipamount=3pt plus 1pt minus 1pt
\newskip\medskipamount \medskipamount=6pt plus 2pt minus 2pt
\newskip\bigskipamount \bigskipamount=12pt plus 4pt minus 4pt
\newskip\normalbaselineskip \normalbaselineskip=12pt
\newskip\normallineskip \normallineskip=1pt
\newdimen\normallineskiplimit \normallineskiplimit=0pt
\newdimen\jot \jot=3pt
\newcount\interdisplaylinepenalty \interdisplaylinepenalty=100
\newcount\interfootnotelinepenalty \interfootnotelinepenalty=100
\def\magstephalf{1095 }
\def\magstep#1{\ifcase#1 \@m\or 1200\or 1440\or 1728\or
               2074\or 2488\fi\relax}
%% Additional \preloaded fonts can be specified here.
%% (And those that were \preloaded above can be eliminated.)
\message{macros,}
\def\frenchspacing{\sfcode`\.\@m \sfcode`\?\@m \sfcode`\!\@m
  \sfcode`\:\@m \sfcode`\;\@m \sfcode`\,\@m}
\def\nonfrenchspacing{\sfcode`\.3000\sfcode`\?3000\sfcode`\!3000%
  \sfcode`\:2000\sfcode`\;1500\sfcode`\,1250 }
\def\normalbaselines{\lineskip\normallineskip
  \baselineskip\normalbaselineskip \lineskiplimit\normallineskiplimit}
\def\^^M{\ } % control <return> = control <space>
\def\^^I{\ } % same for <tab>
\def\lq{`} \def\rq{'}
\def\lbrack{[} \def\rbrack{]}
\let\endgraf=\par \let\endline=\cr
\def\space{ }
\def\empty{}
\def\null{\hbox{}}
\let\bgroup={ \let\egroup=}
{\catcode`\^^M=\active % these lines must end with %
  \gdef\obeylines{\catcode`\^^M\active \let^^M\par}%
  \global\let^^M\par} % this is in case ^^M appears in a \write
\def\obeyspaces{\catcode`\ \active}
{\obeyspaces\global\let =\space}
\let\repeat=\fi % this makes \loop...\if...\repeat skippable
\def\loop#1\repeat{\def\iterate{#1\expandafter\iterate\fi}%
  \iterate \let\iterate\relax}
\def\thinspace{\kern .16667em }
\def\negthinspace{\kern-.16667em }
\def\enspace{\kern.5em }
\def\enskip{\hskip.5em\relax}
\def\quad{\hskip1em\relax}
\def\qquad{\hskip2em\relax}
\def\smallskip{\vskip\smallskipamount}
\def\medskip{\vskip\medskipamount}
\def\bigskip{\vskip\bigskipamount}
\def\nointerlineskip{\prevdepth-1000\p@}
\def\offinterlineskip{\baselineskip-1000\p@
  \lineskip\z@ \lineskiplimit\maxdimen}
\def\vglue{\afterassignment\vgl@\skip@=}
\def\vgl@{\par \dimen@\prevdepth \hrule \@height\z@
  \nobreak\vskip\skip@ \prevdepth\dimen@}
\def\hglue{\afterassignment\hgl@\skip@=}
\def\hgl@{\leavevmode \count@\spacefactor \vrule \@width\z@
  \nobreak\hskip\skip@ \spacefactor\count@}
\def~{\penalty\@M \ } % tie
\def\slash{/\penalty\exhyphenpenalty} % a `/' that acts like a `-'
\def\break{\penalty-\@M}
\def\nobreak{\penalty \@M}
\def\allowbreak{\penalty \z@}
\def\filbreak{\par\vfil\penalty-200\vfilneg}
\def\goodbreak{\par\penalty-500 }
\def\eject{\par\break}
\def\supereject{\par\penalty-\@MM}
\def\removelastskip{\ifdim\lastskip=\z@\else\vskip-\lastskip\fi}
\def\smallbreak{\par\ifdim\lastskip<\smallskipamount
  \removelastskip\penalty-50\smallskip\fi}
\def\medbreak{\par\ifdim\lastskip<\medskipamount
  \removelastskip\penalty-100\medskip\fi}
\def\bigbreak{\par\ifdim\lastskip<\bigskipamount
  \removelastskip\penalty-200\bigskip\fi}
\def\@@line{\hbox to\hsize}
\def\leftline#1{\@@line{#1\hss}}
\def\rightline#1{\@@line{\hss#1}}
\def\centerline#1{\@@line{\hss#1\hss}}
\def\rlap#1{\hbox to\z@{#1\hss}}
\def\llap#1{\hbox to\z@{\hss#1}}
\def\m@th{\mathsurround\z@}
\def\underbar#1{$\setbox\z@\hbox{#1}\dp\z@\z@
  \m@th \underline{\box\z@}$}
\newbox\strutbox
\setbox\strutbox=\hbox{\vrule height8.5pt depth3.5pt width\z@}
\def\strut{\relax\ifmmode\copy\strutbox\else\unhcopy\strutbox\fi}
\def\hidewidth{\hskip\hideskip} % for alignment entries that
                                % can stick out
\def\ialign{\everycr{}\tabskip\z@skip\halign} % initialized \halign
\newcount\mscount
\def\multispan#1{\omit \mscount#1\relax
  \loop\ifnum\mscount>\@ne \sp@n\repeat}
\def\sp@n{\span\omit\advance\mscount\m@ne}
\def\hang{\hangindent\parindent}
\def\textindent#1{\indent\llap{#1\enspace}\ignorespaces}
\def\narrower{\advance\leftskip\parindent
  \advance\rightskip\parindent}
\outer\def\proclaim #1. #2\par{\medbreak
  \noindent{\bfseries#1.\enspace}{\slshape#2\par}%
  \ifdim\lastskip<\medskipamount \removelastskip\penalty55\medskip\fi}
\def\ttraggedright{\reset@font\ttfamily\rightskip\z@ plus2em\relax}
\chardef\%=`\%
\chardef\&=`\&
\chardef\#=`\#
\chardef\$=`\$
\chardef\ss="19
\chardef\ae="1A
\chardef\oe="1B
\chardef\o="1C
\chardef\AE="1D
\chardef\OE="1E
\chardef\O="1F
\chardef\i="10 \chardef\j="11 % dotless letters
\def\aa{\accent23a}
\def\l{\char32l}
\def\L{\leavevmode\setbox0\hbox{L}\hbox to\wd0{\hss\char32L}}
\def\leavevmode{\unhbox\voidb@x} % begins a paragraph, if necessary
\def\mathhexbox#1#2#3{\leavevmode
  \hbox{$\m@th \mathchar"#1#2#3$}}
\def\dag{\mathhexbox279}
\def\ddag{\mathhexbox27A}
\def\S{\mathhexbox278}
\def\P{\mathhexbox27B}
\def\oalign#1{\leavevmode\vtop{\baselineskip\z@skip \lineskip.25ex%
  \ialign{##\crcr#1\crcr}}} % put characters over each other
\def\ooalign{\lineskiplimit-\maxdimen \oalign}
\def\sh@ft#1{\dimen\z@.00#1ex\multiply\dimen\z@\fontdimen1\font
  \kern-.0156\dimen\z@} % compensate for slant in lowered accents
\def\copyright{{\ooalign{\hfil\raise.07ex\hbox{c}%
                \hfil\crcr\mathhexbox20D}}}
\def\dots{\ldots}
\def\TeX{T\kern-.1667em\lower.5ex\hbox{E}\kern-.125emX}
\def\pt#1{{\edef\next{\the\font}\the\textfont1\accent127\next#1}}
\def\t{\protect\pt}
\def\hrulefill{\leavevmode\leaders\hrule\hfill\kern\z@}
\def\dotfill{\leavevmode\cleaders
     \hbox{$\m@th \mkern1.5mu.\mkern1.5mu$}\hfill\kern\z@}
\def\rightarrowfill{$\m@th\mathord-\mkern-6mu%
  \cleaders\hbox{$\mkern-2mu\mathord-\mkern-2mu$}\hfill
  \mkern-6mu\mathord\rightarrow$}
\def\leftarrowfill{$\m@th\mathord\leftarrow\mkern-6mu%
  \cleaders\hbox{$\mkern-2mu\mathord-\mkern-2mu$}\hfill
  \mkern-6mu\mathord-$}
\mathchardef\braceld="37A \mathchardef\bracerd="37B
\mathchardef\bracelu="37C \mathchardef\braceru="37D
\def\downbracefill{$\m@th \setbox\z@\hbox{$\braceld$}%
  \braceld\leaders\vrule \@height\ht\z@ \@depth\z@\hfill\braceru
  \bracelu\leaders\vrule \@height\ht\z@ \@depth\z@\hfill\bracerd$}
\def\upbracefill{$\m@th \setbox\z@\hbox{$\braceld$}%
  \bracelu\leaders\vrule \@height\ht\z@ \@depth\z@\hfill\bracerd
  \braceld\leaders\vrule \@height\ht\z@ \@depth\z@\hfill\braceru$}
\message{math definitions,}
\let\sp=^ \let\sb=_
\def\,{\mskip\thinmuskip}
\def\>{\mskip\medmuskip}
\def\;{\mskip\thickmuskip}
\def\!{\mskip-\thinmuskip}
\def\*{\discretionary{\thinspace\the\textfont2\char2}{}{}}
{\catcode`\'=\active \gdef'{^\bgroup\prim@s}}
\def\prim@s{\prime\futurelet\next\pr@m@s}
\def\pr@m@s{\ifx'\next\let\nxt\pr@@@s \else\ifx^\next\let\nxt\pr@@@t
  \else\let\nxt\egroup\fi\fi \nxt}
\def\pr@@@s#1{\prim@s} \def\pr@@@t#1#2{#2\egroup}
{\catcode`\_=\active \gdef_{\_}} % _ in math is
                                 % either subscript or \_
\mathchardef\alpha="010B
\mathchardef\beta="010C
\mathchardef\gamma="010D
\mathchardef\delta="010E
\mathchardef\epsilon="010F
\mathchardef\zeta="0110
\mathchardef\eta="0111
\mathchardef\theta="0112
\mathchardef\iota="0113
\mathchardef\kappa="0114
\mathchardef\lambda="0115
\mathchardef\mu="0116
\mathchardef\nu="0117
\mathchardef\xi="0118
\mathchardef\pi="0119
\mathchardef\rho="011A
\mathchardef\sigma="011B
\mathchardef\tau="011C
\mathchardef\upsilon="011D
\mathchardef\phi="011E
\mathchardef\chi="011F
\mathchardef\psi="0120
\mathchardef\omega="0121
\mathchardef\varepsilon="0122
\mathchardef\vartheta="0123
\mathchardef\varpi="0124
\mathchardef\varrho="0125
\mathchardef\varsigma="0126
\mathchardef\varphi="0127
\mathchardef\Gamma="7000
\mathchardef\Delta="7001
\mathchardef\Theta="7002
\mathchardef\Lambda="7003
\mathchardef\Xi="7004
\mathchardef\Pi="7005
\mathchardef\Sigma="7006
\mathchardef\Upsilon="7007
\mathchardef\Phi="7008
\mathchardef\Psi="7009
\mathchardef\Omega="700A
\mathchardef\aleph="0240
\def\hbar{{\mathchar'26\mkern-9muh}}
\mathchardef\imath="017B
\mathchardef\jmath="017C
\mathchardef\ell="0160
\mathchardef\wp="017D
\mathchardef\Re="023C
\mathchardef\Im="023D
\mathchardef\partial="0140
\mathchardef\infty="0231
\mathchardef\prime="0230
\mathchardef\emptyset="023B
\mathchardef\nabla="0272
\def\surd{{\mathchar"1270}}
\mathchardef\top="023E
\mathchardef\bot="023F
\def\angle{{\vbox{\ialign{$\m@th\scriptstyle##$\crcr
      \not\mathrel{\mkern14mu}\crcr
      \noalign{\nointerlineskip}
      \mkern2.5mu\leaders\hrule \@height.34pt\hfill\mkern2.5mu\crcr}}}}
\mathchardef\triangle="0234
\mathchardef\forall="0238
\mathchardef\exists="0239
\mathchardef\neg="023A \let\lnot=\neg
\mathchardef\flat="015B
\mathchardef\natural="015C
\mathchardef\sharp="015D
\mathchardef\clubsuit="027C
\mathchardef\diamondsuit="027D
\mathchardef\heartsuit="027E
\mathchardef\spadesuit="027F
\mathchardef\coprod="1360
\mathchardef\bigvee="1357
\mathchardef\bigwedge="1356
\mathchardef\biguplus="1355
\mathchardef\bigcap="1354
\mathchardef\bigcup="1353
\mathchardef\intop="1352 \def\int{\intop\nolimits}
\mathchardef\prod="1351
\mathchardef\sum="1350
\mathchardef\bigotimes="134E
\mathchardef\bigoplus="134C
\mathchardef\bigodot="134A
\mathchardef\ointop="1348 \def\oint{\ointop\nolimits}
\mathchardef\bigsqcup="1346
\mathchardef\smallint="1273
\mathchardef\triangleleft="212F
\mathchardef\triangleright="212E
\mathchardef\bigtriangleup="2234
\mathchardef\bigtriangledown="2235
\mathchardef\wedge="225E \let\land=\wedge
\mathchardef\vee="225F \let\lor=\vee
\mathchardef\cap="225C
\mathchardef\cup="225B
\mathchardef\ddagger="227A
\mathchardef\dagger="2279
\mathchardef\sqcap="2275
\mathchardef\sqcup="2274
\mathchardef\uplus="225D
\mathchardef\amalg="2271
\mathchardef\diamond="2205
\mathchardef\bullet="220F
\mathchardef\wr="226F
\mathchardef\div="2204
\mathchardef\odot="220C
\mathchardef\oslash="220B
\mathchardef\otimes="220A
\mathchardef\ominus="2209
\mathchardef\oplus="2208
\mathchardef\mp="2207
\mathchardef\pm="2206
\mathchardef\circ="220E
\mathchardef\bigcirc="220D
\mathchardef\setminus="226E % for set difference A\setminus B
\mathchardef\cdot="2201
\mathchardef\ast="2203
\mathchardef\times="2202
\mathchardef\star="213F
\mathchardef\propto="322F
\mathchardef\sqsubseteq="3276
\mathchardef\sqsupseteq="3277
\mathchardef\parallel="326B
\mathchardef\mid="326A
\mathchardef\dashv="3261
\mathchardef\vdash="3260
\mathchardef\nearrow="3225
\mathchardef\searrow="3226
\mathchardef\nwarrow="322D
\mathchardef\swarrow="322E
\mathchardef\Leftrightarrow="322C
\mathchardef\Leftarrow="3228
\mathchardef\Rightarrow="3229
\def\neq{\not=} \let\ne=\neq
\mathchardef\leq="3214 \let\le=\leq
\mathchardef\geq="3215 \let\ge=\geq
\mathchardef\succ="321F
\mathchardef\prec="321E
\mathchardef\approx="3219
\mathchardef\succeq="3217
\mathchardef\preceq="3216
\mathchardef\supset="321B
\mathchardef\subset="321A
\mathchardef\supseteq="3213
\mathchardef\subseteq="3212
\mathchardef\in="3232
\mathchardef\ni="3233 \let\owns=\ni
\mathchardef\gg="321D
\mathchardef\ll="321C
\mathchardef\not="3236
\mathchardef\leftrightarrow="3224
\mathchardef\leftarrow="3220 \let\gets=\leftarrow
\mathchardef\rightarrow="3221 \let\to=\rightarrow
\mathchardef\mapstochar="3237 \def\mapsto{\mapstochar\rightarrow}
\mathchardef\sim="3218
\mathchardef\simeq="3227
\mathchardef\perp="323F
\mathchardef\equiv="3211
\mathchardef\asymp="3210
\mathchardef\smile="315E
\mathchardef\frown="315F
\mathchardef\leftharpoonup="3128
\mathchardef\leftharpoondown="3129
\mathchardef\rightharpoonup="312A
\mathchardef\rightharpoondown="312B
\def\joinrel{\mathrel{\mkern-3mu}}
\def\relbar{\mathrel{\smash-}} % \smash, because -
                               % has the same height as +
\def\Relbar{\mathrel=}
\mathchardef\lhook="312C \def\hookrightarrow{\lhook\joinrel\rightarrow}
\mathchardef\rhook="312D \def\hookleftarrow{\leftarrow\joinrel\rhook}
\def\bowtie{\mathrel\triangleright\joinrel\mathrel\triangleleft}
\def\models{\mathrel|\joinrel=}
\def\Longrightarrow{\Relbar\joinrel\Rightarrow}
\def\longrightarrow{\protect\@lra}
  \def\@lra{\relbar\joinrel\rightarrow}
\def\longleftarrow{\protect\@lla}
   \def\@lla{\leftarrow\joinrel\relbar}
\def\Longleftarrow{\Leftarrow\joinrel\Relbar}
\def\longmapsto{\mapstochar\longrightarrow}
\def\longleftrightarrow{\leftarrow\joinrel\rightarrow}
\def\Longleftrightarrow{\Leftarrow\joinrel\Rightarrow}
\def\iff{\;\Longleftrightarrow\;}
\mathchardef\ldotp="613A % ldot as a punctuation mark
\mathchardef\cdotp="6201 % cdot as a punctuation mark
\mathchardef\colon="603A % colon as a punctuation mark
\def\@ldots{\mathinner{\ldotp\ldotp\ldotp}}
\def\ldots{\protect\pldots}
\def\pldots{\relax\ifmmode\@ldots\else\mbox{$\m@th\@ldots\,$}\fi}
\def\cdots{\mathinner{\cdotp\cdotp\cdotp}}
\def\vdots{\vbox{\baselineskip4\p@ \lineskiplimit\z@
    \kern6\p@\hbox{.}\hbox{.}\hbox{.}}}
\def\ddots{\mathinner{\mkern1mu\raise7\p@
    \vbox{\kern7\p@\hbox{.}}\mkern2mu
    \raise4\p@\hbox{.}\mkern2mu\raise\p@\hbox{.}\mkern1mu}}
\def\acute{\mathaccent"7013 }
\def\grave{\mathaccent"7012 }
\def\ddot{\mathaccent"707F }
\def\tilde{\mathaccent"707E }
\def\bar{\mathaccent"7016 }
\def\breve{\mathaccent"7015 }
\def\check{\mathaccent"7014 }
\def\hat{\mathaccent"705E }
\def\vec{\mathaccent"017E }
\def\dot{\mathaccent"705F }
\def\widetilde{\mathaccent"0365 }
\def\widehat{\mathaccent"0362 }
\def\overrightarrow#1{\vbox{\m@th\ialign{##\crcr
      \rightarrowfill\crcr\noalign{\kern-\p@\nointerlineskip}
      $\hfil\displaystyle{#1}\hfil$\crcr}}}
\def\overleftarrow#1{\vbox{\m@th\ialign{##\crcr
      \leftarrowfill\crcr\noalign{\kern-\p@\nointerlineskip}
      $\hfil\displaystyle{#1}\hfil$\crcr}}}
\def\overbrace#1{\mathop{\vbox{\m@th\ialign{##\crcr\noalign{\kern3\p@}
      \downbracefill\crcr\noalign{\kern3\p@\nointerlineskip}
      $\hfil\displaystyle{#1}\hfil$\crcr}}}\limits}
\def\underbrace#1{\mathop{\vtop{\m@th\ialign{##\crcr
   $\hfil\displaystyle{#1}\hfil$\crcr\noalign{\kern3\p@\nointerlineskip}
   \upbracefill\crcr\noalign{\kern3\p@}}}}\limits}
\def\skew#1#2#3{{#2{#3\mkern#1mu}\mkern-#1mu}{}}
\def\lmoustache{\delimiter"437A340 } % top from (, bottom from )
\def\rmoustache{\delimiter"537B341 } % top from ), bottom from (
\def\lgroup{\delimiter"462833A } % extensible ( with sharper tips
\def\rgroup{\delimiter"562933B } % extensible ) with sharper tips
\def\arrowvert{\delimiter"26A33C } % arrow without arrowheads
\def\Arrowvert{\delimiter"26B33D }% double arrow without arrowheads
\def\bracevert{\delimiter"77C33E }% the vertical bar that extends braces
\def\Vert{\delimiter"26B30D } \let\|=\Vert
\def\vert{\delimiter"26A30C }
\def\uparrow{\delimiter"3222378 }
\def\downarrow{\delimiter"3223379 }
\def\updownarrow{\delimiter"326C33F }
\def\Uparrow{\delimiter"322A37E }
\def\Downarrow{\delimiter"322B37F }
\def\Updownarrow{\delimiter"326D377 }
\def\backslash{\delimiter"26E30F } % for double coset G\backslash H
\def\rangle{\delimiter"526930B }
\def\langle{\delimiter"426830A }
\def\rbrace{\delimiter"5267309 } \let\}=\rbrace
\def\lbrace{\delimiter"4266308 } \let\{=\lbrace
\def\rceil{\delimiter"5265307 }
\def\lceil{\delimiter"4264306 }
\def\rfloor{\delimiter"5263305 }
\def\lfloor{\delimiter"4262304 }
\def\bigl{\mathopen\big}
\def\bigm{\mathrel\big}
\def\bigr{\mathclose\big}
\def\Bigl{\mathopen\Big}
\def\Bigm{\mathrel\Big}
\def\Bigr{\mathclose\Big}
\def\biggl{\mathopen\bigg}
\def\biggm{\mathrel\bigg}
\def\biggr{\mathclose\bigg}
\def\Biggl{\mathopen\Bigg}
\def\Biggm{\mathrel\Bigg}
\def\Biggr{\mathclose\Bigg}
\def\big#1{{\hbox{$\left#1\vbox to8.5\p@{}\right.\n@space$}}}
\def\Big#1{{\hbox{$\left#1\vbox to11.5\p@{}\right.\n@space$}}}
\def\bigg#1{{\hbox{$\left#1\vbox to14.5\p@{}\right.\n@space$}}}
\def\Bigg#1{{\hbox{$\left#1\vbox to17.5\p@{}\right.\n@space$}}}
\def\n@space{\nulldelimiterspace\z@ \m@th}
\def\choose{\atopwithdelims()}
\def\brack{\atopwithdelims[]}
\def\brace{\atopwithdelims\{\}}
\def\sqrt{\radical"270370 }
\def\mathpalette#1#2{\mathchoice{#1\displaystyle{#2}}%
  {#1\textstyle{#2}}{#1\scriptstyle{#2}}{#1\scriptscriptstyle{#2}}}
\newbox\rootbox
\def\root#1\of{\setbox\rootbox\hbox{$\m@th\scriptscriptstyle{#1}$}
  \mathpalette\r@@t}
\def\r@@t#1#2{\setbox\z@\hbox{$\m@th#1\sqrt{#2}$}
  \dimen@\ht\z@ \advance\dimen@-\dp\z@
  \mkern5mu\raise.6\dimen@\copy\rootbox \mkern-10mu \box\z@}
\newif\ifv@ \newif\ifh@
\def\vphantom{\v@true\h@false\ph@nt}
\def\hphantom{\v@false\h@true\ph@nt}
\def\phantom{\v@true\h@true\ph@nt}
\def\ph@nt{\ifmmode\def\next{\mathpalette\mathph@nt}%
  \else\let\next\makeph@nt\fi\next}
\def\makeph@nt#1{\setbox\z@\hbox{#1}\finph@nt}
\def\mathph@nt#1#2{\setbox\z@\hbox{$\m@th#1{#2}$}\finph@nt}
\def\finph@nt{\setbox\tw@\null
  \ifv@ \ht\tw@\ht\z@ \dp\tw@\dp\z@\fi
  \ifh@ \wd\tw@\wd\z@\fi \box\tw@}
\def\mathstrut{\vphantom(}
\def\smash{\relax % \relax, in case this comes first in \halign
  \ifmmode\def\next{\mathpalette\mathsm@sh}\else\let\next\makesm@sh
  \fi\next}
\def\makesm@sh#1{\setbox\z@\hbox{#1}\finsm@sh}
\def\mathsm@sh#1#2{\setbox\z@\hbox{$\m@th#1{#2}$}\finsm@sh}
\def\finsm@sh{\ht\z@\z@ \dp\z@\z@ \box\z@}
\def\cong{\mathrel{\mathpalette\@vereq\sim}} % congruence sign
\def\@vereq#1#2{\lower.5\p@\vbox{\baselineskip\z@skip\lineskip-.5\p@
    \ialign{$\m@th#1\hfil##\hfil$\crcr#2\crcr=\crcr}}}
\def\notin{\mathrel{\m@th\mathpalette\c@ncel\in}}
\def\c@ncel#1#2{\m@th\ooalign{$\hfil#1\mkern1mu/\hfil$\crcr$#1#2$}}
\def\rightleftharpoons{\mathrel{\mathpalette\rlh@{}}}
\def\rlh@#1{\vcenter{\m@th\hbox{\ooalign{\raise2pt
          \hbox{$#1\rightharpoonup$}\crcr
        $#1\leftharpoondown$}}}}
\def\buildrel#1\over#2{\mathrel{\mathop{\kern\z@#2}\limits^{#1}}}
\def\doteq{\buildrel\textstyle.\over=}
\def\bmod{\mskip-\medmuskip\mkern5mu
  \mathbin{\rm mod}\penalty900\mkern5mu\mskip-\medmuskip}
\def\pmod#1{\allowbreak\mkern18mu({\rm mod}\,\,#1)}
\def\cases#1{\left\{\,\vcenter{\normalbaselines\m@th
    \ialign{$##\hfil$&\quad{##}\hfil\crcr#1\crcr}}\right.}
\def\matrix#1{\null\,\vcenter{\normalbaselines\m@th
    \ialign{\hfil$##$\hfil&&\quad\hfil$##$\hfil\crcr
      \mathstrut\crcr\noalign{\kern-\baselineskip}
      #1\crcr\mathstrut\crcr\noalign{\kern-\baselineskip}}}\,}
\def\pmatrix#1{\left(\matrix{#1}\right)}
\def\bordermatrix#1{\begingroup \m@th
  \@tempdima 8.75\p@
  \setbox\z@\vbox{%
    \def\cr{\crcr\noalign{\kern2\p@\global\let\cr\endline}}%
    \ialign{$##$\hfil\kern2\p@\kern\@tempdima&\thinspace\hfil$##$\hfil
      &&\quad\hfil$##$\hfil\crcr
      \omit\strut\hfil\crcr\noalign{\kern-\baselineskip}%
      #1\crcr\omit\strut\cr}}%
  \setbox\tw@\vbox{\unvcopy\z@\global\setbox\@ne\lastbox}%
  \setbox\tw@\hbox{\unhbox\@ne\unskip\global\setbox\@ne\lastbox}%
  \setbox\tw@\hbox{$\kern\wd\@ne\kern-\@tempdima\left(\kern-\wd\@ne
    \global\setbox\@ne\vbox{\box\@ne\kern2\p@}%
    \vcenter{\kern-\ht\@ne\unvbox\z@\kern-\baselineskip}\,\right)$}%
  \null\;\vbox{\kern\ht\@ne\box\tw@}\endgroup}
\def\openup{\afterassignment\@penup\dimen@=}
\def\@penup{\advance\lineskip\dimen@
  \advance\baselineskip\dimen@
  \advance\lineskiplimit\dimen@}
\newif\ifdt@p
\def\displ@y{\global\dt@ptrue\openup\jot\m@th
  \everycr{\noalign{\ifdt@p \global\dt@pfalse
      \vskip-\lineskiplimit \vskip\normallineskiplimit
      \else \penalty\interdisplaylinepenalty \fi}}}
\def\@lign{\tabskip\z@skip\everycr{}} % restore inside \displ@y
\def\displaylines#1{\displ@y
  \halign{\hbox to\displaywidth{$\@lign\hfil\displaystyle##\hfil$}\crcr
    #1\crcr}}
\newinsert\footins
\skip\footins=\bigskipamount % space added when footnote is present
\count\footins=1000 % footnote magnification factor (1 to 1)
\dimen\footins=8in % maximum footnotes per page
\def\footnoterule{\kern-3\p@
  \hrule \@width 2in \kern 2.6\p@} % the \hrule is .4pt high
\def\tracingall{\tracingcommands\tw@\tracingstats\tw@
  \tracingpages\@ne\tracingoutput\@ne\tracinglostchars\@ne
  \tracingmacros\tw@\tracingparagraphs\@ne\tracingrestores\@ne
  \showboxbreadth\maxdimen\showboxdepth\maxdimen\errorstopmode
  \errorcontextlines\maxdimen\tracingonline\@ne}
\def\showhyphens#1{\setbox0\vbox{\parfillskip\z@skip\hsize\maxdimen
  \tenrm
  \pretolerance\m@ne\tolerance\m@ne\hbadness0\showboxdepth0\ #1}}
\nonfrenchspacing % punctuation affects the spacing
%%% File: ltvers
\def\fmtname{LaTeX2e}
\edef\fmtversion{1994/06/01}
\everyjob{\typeout{\fmtname\space<\fmtversion>}}
\immediate\write16{\fmtname\space<\fmtversion>}
%%% File: ltalloc.dtx
\message{counters,}
\chardef\@xxxii=32
\mathchardef\@Mi=10001
\mathchardef\@Mii=10002
\mathchardef\@Miii=10003
\mathchardef\@Miv=10004
\newcount\@tempcnta
\newcount\@tempcntb
\newif\if@tempswa\@tempswatrue
\newdimen\@tempdima
\newdimen\@tempdimb
\newdimen\@tempdimc
\newbox\@tempboxa
\newskip\@flushglue \@flushglue = 0pt plus 1fil
\newskip\@tempskipa
\newskip\@tempskipb
\newtoks\@temptokena
%%% File: ltdefns.dtx
\catcode`\~=13 \def~{\penalty\@M \ }
\newread\@inputcheck
\newwrite\@unused
\newwrite\@mainaux
\def\two@digits#1{\ifnum#1<10 0\fi\number#1}
\def\typeout#1{\begingroup\let\protect\string
    \immediate\write\@unused{#1}\endgroup}
\newlinechar`\^^J
\let\@@par=\par
\let\@@hyph=\-        % Original defin
\def\-{\discretionary{-}{}{}}
\let\@dischyph=\-
\let\@@italiccorr=\/
\def\@height{height}
\def\@depth{depth}
\def\@width{width}
\def\@minus{minus}
\def\@plus{plus}
\message{hacks,}
\def\typein{%
  \let\@typein\relax\@ifnextchar[{\@xtypein}{\@xtypein[\@typein]}}
\def\@xtypein[#1]#2{\typeout{#2}\read\@inputcheck
   to#1\ifx #1\@defpar \def#1{}\else
   \@iden{\expandafter\@strip\expandafter
   #1#1\@gobble\@gobble} \@gobble\fi\@typein}
\def\@strip#1#2 \@gobble{\def #1{#2}}
\def\@defpar{\par}
\def\@iden#1{#1}
\def\@namedef#1{\expandafter\def\csname #1\endcsname}
\def\@nameuse#1{\csname #1\endcsname}
\def\@cons#1#2{\begingroup\let\@elt\relax\xdef#1{#1\@elt #2}\endgroup}
\def\@car#1#2\@nil{#1}
\def\@cdr#1#2\@nil{#2}
\def\@carcube#1#2#3#4\@nil{#1#2#3}
\long\def\@renewenv#1[#2]#3#4{\expandafter\renewcommand
     \csname #1\endcsname[#2]{#3}\long
     \expandafter\def\csname end#1\endcsname{#4}}
\def\newcommand#1{%
  \@ifnextchar [{\@newcommand#1}{\@newcommand#1[0]}}
\def\@newcommand#1[#2]{%
  \@ifnextchar [{\@xargdef#1[#2]}%
                {\@argdef#1[#2]}}
\long\def\@argdef#1[#2]#3{%
   \@ifdefinable #1{\@yargdef#1\@ne{#2}{#3}}}
\long\def\@xargdef#1[#2][#3]#4{%
  \@ifdefinable#1{%
     \expandafter\def\expandafter#1\expandafter{%
          \expandafter
          \@ifnextchar
          \expandafter
             [%
          \csname\string#1\expandafter\endcsname
          \expandafter
          {\csname\string#1\endcsname[#3]}}%
       \expandafter\@yargdef
          \csname\string#1\endcsname
           \tw@
           {#2}%
           {#4}}}
\long\def\@yargdef#1#2#3{%
  \@tempcnta#3\relax
  \advance \@tempcnta \@ne
  \let\@hash@\relax
  \edef\@tempa{\ifx#2\tw@ [\@hash@1]\fi}%
  \@tempcntb #2%
  \@whilenum\@tempcntb <\@tempcnta
     \do{%
         \edef\@tempa{\@tempa\@hash@\the\@tempcntb}%
         \advance\@tempcntb \@ne}%
  \let\@hash@##%
  \long\expandafter\def\expandafter#1\@tempa}
\long\def\@reargdef#1[#2]#3{%
  \@yargdef#1\@ne{#2}{#3}}
\def\renewcommand#1{%
  {\escapechar\m@ne\xdef\@gtempa{{\string#1}}}%
  \expandafter\@ifundefined\@gtempa
     {\@latex@error{\string#1 undefined}\@ehc}%
     {}%
  \let\@ifdefinable\@rc@ifdefinable
  \newcommand#1}
\long\def\@ifdefinable #1#2{%
      \edef\@tempa{\expandafter\@gobble\string #1}%
     \@ifundefined\@tempa
         {\edef\@tempb{\expandafter\@carcube \@tempa xxx\@nil}%
          \ifx \@tempb\@qend \@notdefinable\else
          \ifx \@tempa\@qrelax \@notdefinable\else  #2\fi\fi}%
         \@notdefinable}
\let\@@ifdefinable\@ifdefinable
\long\def\@rc@ifdefinable#1#2{%
  \let\@ifdefinable\@@ifdefinable
  #2}
\def\newenvironment#1#2#{%
  \@newenv{#1}{#2}}
\def\renewenvironment#1{%
  \@ifundefined{#1}%
     {\@latex@error{Environment #1 undefined}\@ehc
     }{}%
  \expandafter\let\csname#1\endcsname\relax
  \newenvironment{#1}}
\long\def\@newenv#1#2#3#4{%
  \expandafter\newcommand
     \csname #1\endcsname#2{#3}\long
     \long\expandafter\def\csname end#1\endcsname{#4}}
\def\providecommand#1{%
  {\escapechar\m@ne\xdef\@gtempa{{\string#1}}}%
  \expandafter\@ifundefined\@gtempa
    {\def\@tempa{\newcommand#1}}%
    {\def\@tempa{\renewcommand\@tempa}}%
   \@tempa}%
\def\CheckCommand#1#2#{\@check@c#1{#2}}
\def\@check@c#1#2#3{%
  \expandafter\let\csname\string\@tempa\endcsname\relax
  \renewcommand\@tempa#2{#3}%
  \@ifundefined{\string\@tempa}%
   {\@check@eq#1\@tempa}%
   {\expandafter\@check@eq
           \csname\string#1\expandafter\endcsname
           \csname\string\@tempa\endcsname}}
\def\@check@eq#1#2{%
  \ifx#1#2\else
     \@latex@warning@no@line
               {Command \noexpand#1 has
                changed.\MessageBreak
                Check if current package is valid}%
  \fi}
\def\@gobble#1{}
\def\@gobbletwo#1#2{}
\def\@gobblefour#1#2#3#4{}
\long\def\@firstofone#1{#1}
\long\def\@firstoftwo#1#2{#1}
\long\def\@secondoftwo#1#2{#2}
\def\@expandtwoargs#1#2#3{%
\edef\@tempa{\noexpand#1{#2}{#3}}\@tempa}
\edef\@backslashchar{\expandafter\@gobble\string\\}
\def\@unexpandable@protect{\noexpand\protect\noexpand}
\def\@unexpandable@noexpand{\noexpand\noexpand\noexpand}
\def\DeclareRobustCommand#1{%
   \ifx#1\@undefined\else\ifx#1\relax\else
      \@latex@info{Redefining \string#1}%
   \fi\fi
   \edef\@tempa{\string#1}%
   \def\@tempb{#1}%
   \edef\@tempb{\expandafter\strip@prefix\meaning\@tempb}%
   \edef#1{%
      \ifx\@tempa\@tempb
         \noexpand\@protected@short
         \noexpand#1%
      \else
         \noexpand\protect
      \fi
      \expandafter\noexpand\csname
         \expandafter\@gobble\string#1 \endcsname
   }%
   \let\@ifdefinable\@rc@ifdefinable
   \expandafter\newcommand\csname
      \expandafter\@gobble\string#1 \endcsname
}
{
\catcode`\ =\catcode`\a%
\gdef\@protected@short{\protect\relax \@protected@short@\@gobble}%
\gdef\@protected@short@\@gobble#1#2{\protect#1}%
\global\let\relax \@gobble%
}
\def\@ifundefined#1{%
  \expandafter\ifx\csname#1\endcsname\relax
    \expandafter\@firstoftwo
  \else
    \expandafter\@secondoftwo
  \fi}
\def\@preamblecmds{}
\def\@onlypreamble#1{%
  \expandafter\gdef\expandafter\@preamblecmds\expandafter{%
       \@preamblecmds\do#1}}
\@onlypreamble\@onlypreamble
\edef\@qend{\expandafter\@cdr\string\end\@nil}
\edef\@qrelax{\expandafter\@cdr\string\relax\@nil}
\def\@ifnextchar#1#2#3{%
  \let\@tempe=#1\def\@tempa{#2}\def\@tempb{#3}\futurelet
    \@tempc\@ifnch}
\def\@ifnch{\ifx \@tempc \@sptoken \let\@tempd\@xifnch
      \else \ifx \@tempc \@tempe\let\@tempd\@tempa\else
          \let\@tempd\@tempb\fi
      \fi \@tempd}
\def\makeatletter{\catcode`\@=11\relax}
\def\makeatother{\catcode`\@=12\relax}
\def\:{\let\@sptoken= } \:  % this makes \@sptoken a space token
\def\:{\@xifnch} \expandafter\def\: {\futurelet\@tempc\@ifnch}
\def\@ifstar#1#2{\@ifnextchar *{\def\@tempa*{#1}\@tempa}{#2}}
\long\def\@dblarg#1{\@ifnextchar[{#1}{\@xdblarg{#1}}}
\long\def\@xdblarg#1#2{#1[{#2}]{#2}}
\def\@sanitize{\@makeother\ \@makeother\\\@makeother\$\@makeother\&%
\@makeother\#\@makeother\^\@makeother\_\@makeother\%\@makeother\~}
%%% File: ltcntrl.dtx
\message{control,}
\def\@whilenoop#1{}
\def\@whilenum#1\do #2{\ifnum #1\relax #2\relax\@iwhilenum{#1\relax
     #2\relax}\fi}
\def\@iwhilenum#1{\ifnum #1\let\@nextwhile\@iwhilenum
         \else\let\@nextwhile\@whilenoop\fi\@nextwhile{#1}}
\def\@whiledim#1\do #2{\ifdim #1\relax#2\@iwhiledim{#1\relax#2}\fi}
\def\@iwhiledim#1{\ifdim #1\let\@nextwhile\@iwhiledim
        \else\let\@nextwhile\@whilenoop\fi\@nextwhile{#1}}
\long\def\@whileswnoop#1\fi{}
\long\def\@whilesw#1\fi#2{#1#2\@iwhilesw{#1#2}\fi\fi}
\long\def\@iwhilesw#1\fi{#1\let\@nextwhile\@iwhilesw
         \else\let\@nextwhile\@whileswnoop\fi\@nextwhile{#1}\fi}
\def\@nnil{\@nil}
\def\@empty{}
\def\@fornoop#1\@@#2#3{}
\def\@for#1:=#2\do#3{\edef\@fortmp{#2}\ifx\@fortmp\@empty \else
    \expandafter\@forloop#2,\@nil,\@nil\@@#1{#3}\fi}
\def\@forloop#1,#2,#3\@@#4#5{\def#4{#1}\ifx #4\@nnil \else
       #5\def#4{#2}\ifx #4\@nnil \else#5\@iforloop #3\@@#4{#5}\fi\fi}
\def\@iforloop#1,#2\@@#3#4{\def#3{#1}\ifx #3\@nnil
       \let\@nextwhile\@fornoop \else
      #4\relax\let\@nextwhile\@iforloop\fi\@nextwhile#2\@@#3{#4}}
\def\@tfor#1:={\@tf@r#1 }
\def\@tf@r#1#2\do#3{\def\@fortmp{#2}\ifx\@fortmp\space\else
    \@tforloop#2\@nil\@nil\@@#1{#3}\fi}
\def\@tforloop#1#2\@@#3#4{\def#3{#1}\ifx #3\@nnil
       \let\@nextwhile\@fornoop \else
      #4\relax\let\@nextwhile\@tforloop\fi\@nextwhile#2\@@#3{#4}}
\def\@break@tfor#1\@@#2#3{\fi\fi}
\def\@removeelement#1#2#3{%
  \def\@tempa##1,#1,##2\@tempa{##1,##2\@tempb}%
  \def\@tempb##1,\@tempb##2\@tempb{\ifx,##1\@empty\else##1\fi}%
  \edef#3{\expandafter\@tempb\@tempa,#2,\@tempb,#1,\@tempa}}
\let\protect=\relax
\def\@setprotect{%
  \let\@@protect\protect
  \def\protect{\noexpand\protect\noexpand}}
\def\@resetprotect{\let\protect\@@protect}
%%% File: lterror.dtx
\message{errors,}
\let\MessageBreak\relax
\DeclareRobustCommand{\GenericInfo}[2]{%
   \begingroup
      \def\MessageBreak{^^J#1}%
      \let\protect\string
      \immediate\write\m@ne{#2\on@line.}%
   \endgroup
}
\DeclareRobustCommand{\GenericWarning}[2]{%
   \begingroup
      \def\MessageBreak{^^J#1}%
      \let\protect\string
      \immediate\write\@unused{^^J#2\on@line.^^J}%
   \endgroup
}
\bgroup
\lccode`\@=`\ %
\lccode`\~=`\ %
\lccode`\}=`\ %
\lccode`\{=`\ %
\lccode`\T=`\T%
\lccode`\H=`\H%
\catcode`\ =11\relax%
\lowercase{%
\egroup%
\dimen@\ifx\@TeXversion\@undefined4\else\@TeXversion\fi\p@%
\ifdim\dimen@>3.14\p@%
\DeclareRobustCommand{\GenericError}[4]{%
\begingroup%
\immediate\write\@unused{}%
\def\MessageBreak{^^J}%
\let\protect\string%
\edef%
\@err@                                                                 %
{{#4}}%
\errhelp
\@err@                                                                 %
\let
\@err@                                                                 %
\@empty
\def\MessageBreak{^^J#1}%
\def~{\errmessage{%
#2.^^J^^J%
#3^^J%
Type  H <return>  for immediate help%
\@err@                                                                 %
}}%
~%
\endgroup}%
\else%
\DeclareRobustCommand{\GenericError}[4]{%
\begingroup%
\immediate\write\@unused{}%
\def\MessageBreak{^^J}%
\let\protect\string%
\edef%
\@err@                                                                 %
{{#4}}%
\errhelp
\@err@                                                                 %
\let
\@err@                                                                 %
\errmessage
\def\MessageBreak{^^J#1}%
\def~{\typeout{! %
#2.^^J^^J%
#3^^J%
Type  H <return>  for immediate help.}%
\@err@                                                                 %
{}}%
~%
\endgroup}%
\fi}%
\def\PackageError#1#2#3{%
   \GenericError{%
      (#1)\@spaces\@spaces\@spaces\@spaces
   }{%
      Package #1 Error: #2%
   }{%
      See the #1 package documentation for explanation.%
   }{#3}%
}
\def\PackageWarning#1#2{%
   \GenericWarning{%
      (#1)\@spaces\@spaces\@spaces\@spaces
   }{%
      Package #1 Warning: #2%
   }%
}
\def\PackageWarningNoLine#1#2{%
   \PackageWarning{#1}{#2\@gobble}%
}
\def\PackageInfo#1#2{%
   \GenericInfo{%
      (#1) \@spaces\@spaces\@spaces
   }{%
      Package #1 Info: #2%
   }%
}
\def\ClassError#1#2#3{%
   \GenericError{%
      (#1) \space\@spaces\@spaces\@spaces
   }{%
      Class #1 Error: #2%
   }{%
      See the #1 class documentation for explanation.%
   }{#3}%
}
\def\ClassWarning#1#2{%
   \GenericWarning{%
      (#1) \space\@spaces\@spaces\@spaces
   }{%
      Class #1 Warning: #2%
   }%
}
\def\ClassWarningNoLine#1#2{%
   \ClassWarning{#1}{#2\@gobble}%
}
\def\ClassInfo#1#2{%
   \GenericInfo{%
      (#1) \space\space\@spaces\@spaces
   }{%
      Class #1 Info: #2%
   }%
}
\def\@latex@error#1#2{%
   \GenericError{%
      \space\space\space\@spaces\@spaces\@spaces
   }{%
      LaTeX Error: #1%
   }{%
      See the LaTeX manual or LaTeX Companion for explanation.%
   }{#2}%
}
\def\@latex@warning#1{%
   \GenericWarning{%
      \space\space\space\@spaces\@spaces\@spaces
   }{%
      LaTeX Warning: #1%
   }%
}
\def\@latex@warning@no@line#1{%
   \@latex@warning{#1\@gobble}}
\def\@latex@info#1{%
   \GenericInfo{%
      \@spaces\@spaces\@spaces
   }{%
      LaTeX Info: #1%
   }%
}
\def\@latex@info@no@line#1{%
  \@latex@info{#1\@gobble}}
\let\c@errorcontextlines\errorcontextlines
\c@errorcontextlines=-1
\ifnum\inputlineno=\m@ne
  \let\on@line\empty
\else
  \def\on@line{ on input line \the\inputlineno}
\fi
\let\@warning\@latex@warning
\let\@@warning\@latex@warning@no@line
\let\@latexerr\@latex@error
\def\@spaces{\space\space\space\space}
\def\@eha{Your command was ignored.\MessageBreak
Type \space I <command> <return> \space to replace it
  with another command,\MessageBreak
or \space <return> \space to continue without it.}
\def\@ehb{You've lost some text. \space \@ehc}
\def\@ehc{Try typing \space <return>
  \space to proceed.\MessageBreak
If that doesn't work, type \space X <return> \space to
  quit.}
\def\@ehd{You're in trouble here.  \space\@ehc}
\def\@notdefinable{\@latex@error{%
   Command \@backslashchar\@tempa\space already defined%
}\@eha}
\def\@nolnerr{\@latex@error{There's no line here to end}\@eha}
\def\@nocounterr#1{\@latex@error{No counter '#1' defined}\@eha}
\def\@nocnterr{\@nocounterr{??}}
\def\@ctrerr{\@latex@error{Counter too large}\@ehb}
\def\@nodocument{\@latex@error{Missing \protect\begin{document}}\@ehd}
\def\@badend#1{%
  \@latex@error{\protect\begin{\@currenvir}\@currenvline\space ended
                    by \protect\end{#1}}\@eha}
\def\@badmath{\@latex@error{Bad math environment delimiter}\@eha}
\def\@toodeep{\@latex@error{Too deeply nested}\@ehd}
\def\@badpoptabs{%
  \@latex@error{\protect\pushtabs \space and \protect\poptabs
      \space don't match}\@ehd}
\def\@badtab{\@latex@error{Undefined tab position}\@ehd}
\def\@preamerr#1{%
  \begingroup
    \let\protect\relax
    \@latex@error{\ifcase #1 Illegal character\or
     Missing @-exp\or Missing p-arg\fi\space
     in array arg}\@ehd
  \endgroup}
\def\@badlinearg{%
  \@latex@error{%
       Bad \protect\line\space or \protect\vector \space argument}\@ehb}
\def\@parmoderr{\@latex@error{Not in outer par mode}\@ehb}
\def\@fltovf{\@latex@error{Too many unprocessed floats}\@ehb}
\def\@latexbug{\@latex@error{This may be a LaTeX bug}{Call for help}}
\def\@noitemerr{\@latex@error{Something's wrong--perhaps a missing
\protect\item}\@ehc}
\def\@notprerr {\@latex@error{Can be used only in preamble}\@eha}
\def\@inmatherr#1{%
   \relax
   \ifmmode
     \@latex@error{Command \protect#1 invalid in math mode}\@ehc
   \fi}
%%% File: ltpar.dtx
\message{par,}
\def\@par{\let\par\@@par\par}
\def\@setpar#1{\def\par{#1}\def\@par{#1}}
\def\@restorepar{\def\par{\@par}}
%%% File: ltspace.dtx
\message{spacing,}
\def\nopagebreak{\@ifnextchar[\@nopgbk{\@nopgbk[4]}}
\def\@nopgbk[#1]{\ifvmode \penalty \@getpen{#1}\else
\@bsphack\vadjust{\penalty \@getpen{#1}}\@esphack\fi}
\def\pagebreak{\@ifnextchar[\@pgbk{\@pgbk[4]}}
\def\@pgbk[#1]{\ifvmode \penalty -\@getpen{#1}\else
\@bsphack\vadjust{\penalty -\@getpen{#1}}\@esphack\fi}
\def\nolinebreak{\@ifnextchar[\@nolnbk{\@nolnbk[4]}}
\def\@nolnbk[#1]{\ifvmode \@nolnerr\else \@tempskipa\lastskip
     \unskip \penalty \@getpen{#1}\ifdim \@tempskipa >\z@
     \hskip\@tempskipa\ignorespaces\fi\fi}
\def\linebreak{\@ifnextchar[\@lnbk{\@lnbk[4]}}
\def\@lnbk[#1]{\ifvmode \@nolnerr\else
     \unskip\penalty -\@getpen{#1}\fi}
\def\samepage{\interlinepenalty\@M
   \postdisplaypenalty\@M
   \interdisplaylinepenalty\@M
   \@beginparpenalty\@M
   \@endparpenalty\@M
   \@itempenalty\@M
   \@secpenalty\@M
   \interfootnotelinepenalty\@M}
\def\newline{\ifvmode \@nolnerr \else \unskip\nobreak\hfil
  \penalty -\@M\fi}
\def\@normalcr{%
  \@ifstar
    {\vadjust{\penalty\@M}\@xnewline}%
    \@xnewline}
\def\@xnewline{\@ifnextchar[\@newline\newline}
\def\@newline[#1]{\ifhmode\unskip\fi\vspace{#1}\newline}
\let\\=\@normalcr
\def\@getpen#1{\ifcase #1 0 \or \@lowpenalty\or
         \@medpenalty \or \@highpenalty
         \else \@M \fi}
\newif\if@nobreak \@nobreakfalse
\newdimen\@savsk
\newcount\@savsf
\def\@Esphack{\relax\ifmmode\else\ifhmode\spacefactor\@savsf
     \ifdim \@savsk >\z@ \global\@ignoretrue \ignorespaces
  \fi \fi\fi}
\def \@bsphack{%
   \relax \ifhmode
     \@savsk \lastskip
     \@savsf \spacefactor
   \fi
}
\def \@esphack{%
     \relax \ifhmode
       \spacefactor \@savsf
       \ifdim \@savsk>\z@
         \ignorespaces
       \fi
     \fi
}
\def \@Esphack{%
     \relax \ifhmode
       \spacefactor \@savsf
       \ifdim \@savsk>\z@
         \global\@ignoretrue
         \ignorespaces
       \fi
     \fi
}
\def \@vbsphack{ %
   \relax \ifvmode
     \leavevmode
     \@savsk 1sp
     \@savsf \spacefactor
   \else
     \ifhmode
       \@savsk \lastskip
       \@savsf \spacefactor
     \fi
   \fi
}
\def\addvspace#1{\ifvmode
     \if@minipage\else
          \ifdim \lastskip =\z@ \vskip #1\relax
             \else \@tempskipb#1\relax\@xaddvskip
     \fi\fi
  \else\@noitemerr\fi}
\def\@xaddvskip{\ifdim \lastskip <\@tempskipb\vskip-\lastskip\vskip
             \@tempskipb
        \else  \ifdim \@tempskipb<\z@
                 \ifdim \lastskip <\z@
                    \else \advance\@tempskipb\lastskip
                           \vskip -\lastskip \vskip \@tempskipb
      \fi\fi\fi}
\def\addpenalty#1{\ifvmode
   \if@minipage\else\if@nobreak\else
      \ifdim\lastskip=\z@ \penalty#1\relax
         \else \@tempskipb\lastskip
               \vskip -\lastskip \penalty#1\vskip\@tempskipb
      \fi\fi\fi
   \else\@noitemerr\fi}
\def\vspace{\@ifstar\@vspacer\@vspace}
\def\@vspace#1{\ifvmode
    \dimen@\prevdepth \vskip #1\vskip\z@skip \prevdepth\dimen@
       \else
        \@bsphack\vadjust{\dimen@\prevdepth
            \vskip #1\vskip\z@skip \prevdepth\dimen@}\@esphack\fi}
\def\@vspacer#1{\ifvmode \dimen@\prevdepth
         \hrule \@height\z@ \nobreak \vskip #1\vskip\z@skip
           \prevdepth\dimen@
        \else
         \@bsphack\vadjust{\dimen@\prevdepth \hrule \@height\z@ \nobreak
            \vskip #1\vskip\z@skip \prevdepth\dimen@}\@esphack\fi}
\def\smallskip{\vspace\smallskipamount}
\def\medskip{\vspace\medskipamount}
\def\bigskip{\vspace\bigskipamount}
\def\endtrivlist{\if@newlist\@noitemerr\fi
   \if@inlabel\indent\fi
   \ifhmode\unskip \par\fi
   \if@noparlist \else
      \ifdim\lastskip >\z@ \@tempskipa\lastskip \vskip -\lastskip
         \advance\@tempskipa\parskip \advance\@tempskipa -\@outerparskip
         \vskip\@tempskipa
   \fi\@endparenv\fi}
\def\@endparenv{%
  \addpenalty\@endparpenalty\addvspace\@topsepadd\@endpetrue}
\def\@doendpe{\@endpetrue
     \def\par{\@restorepar\everypar{}\par\@endpefalse}\everypar
               {\setbox\z@\lastbox\everypar{}\@endpefalse}}
\newif\if@endpe
\@endpefalse
\DeclareRobustCommand{\,}{%
   \relax\ifmmode\mskip\thinmuskip\else\thinspace\fi
}
\def\@{\spacefactor\@m}
\DeclareRobustCommand{\hspace}{\@ifstar\@hspacer\@hspace}
\def\@hspace#1{\hskip #1\relax}
\def\@hspacer#1{\vrule \@width\z@\nobreak
                \hskip #1\hskip \z@skip}
                      % extra \hskip 0pt added 12/17/85 to guard
                      % against a following \unskip
                      % \relax added 13 Oct 88 for usual TeX lossage
                      % replaced both changes by \hskip\z@skip 27 Nov 91
\newskip\fill \fill = 0pt plus 1fill
\def\stretch#1{\z@ \@plus #1fill\relax}
{\catcode`\^^M=13 \gdef\obeycr{\catcode`\^^M=13 \def^^M{\\}\@gobblecr}%
\gdef\restorecr{\catcode`\^^M=5 }} %} BRACE MATCHING
%%% File: ltlogos
\def\TeX{T\kern-.1667em\lower.5ex\hbox{E}\kern-.125emX\@}
\DeclareRobustCommand{\LaTeX}{L\kern-.36em
        {\setbox0\hbox{T}%
         \vbox to\ht0{\hbox{$\m@th$%
                            \csname S@\f@size\endcsname
                            \fontsize\sf@size\z@
                            \math@fontsfalse\selectfont
                            A}%
                      \vss}%
        }%
        \kern-.15em
        \TeX}
\DeclareRobustCommand{\LaTeXe}{\mbox{%
  \if b\expandafter\@car\f@series\@nil\boldmath\fi
  \LaTeX\kern.15em 2${}_{\textstyle\varepsilon}$}}
%%% File: ltfiles
\message{files,}
\newif\if@filesw \@fileswtrue
\newif\if@partsw \@partswfalse
\newwrite\@mainaux
\newwrite\@partaux
\newcount\@clubpenalty
\def\document{\endgroup
  \ifx\@unusedoptionlist\@empty\else
    \@latex@warning@no@line{Unused global option(s):^^J%
            \@spaces[\@unusedoptionlist]}%
  \fi
  \@colht\textheight
  \@colroom\textheight \vsize\textheight
  \columnwidth\textwidth
  \@clubpenalty\clubpenalty
  \if@twocolumn
    \advance\columnwidth -\columnsep
    \divide\columnwidth\tw@ \hsize\columnwidth \@firstcolumntrue
  \fi
  \hsize\columnwidth \linewidth\hsize
  \begingroup\@floatplacement\@dblfloatplacement
   \makeatletter\let\@writefile\@gobbletwo
   \global\@multiplelabelsfalse
   \@input{\jobname.aux}%
  \endgroup
  \if@filesw
    \immediate\openout\@mainaux\jobname.aux
    \immediate\write\@mainaux{\relax}%
  \fi
  \process@table
  \let\glb@currsize\@empty  %% Force math initialisation.
  \normalsize\the\every@size
  \everypar{}\@noskipsecfalse\G@refundefinedfalse
  \@begindocumenthook
  \let\@begindocumenthook\@undefined
  \ifx\@listfiles\@undefined
    \let\@filelist\relax
    \let\@addtofilelist\@gobble
  \fi
  \def\do##1{\let ##1\@notprerr}%
  \@preamblecmds
  \let\do\noexpand
}
\def\nofiles{\@fileswfalse \typeout
   {No auxiliary output files.}\typeout{}}
\@onlypreamble\nofiles
\let\@auxout=\@mainaux
\def\includeonly#1{\@partswtrue\edef\@partlist{#1}}
\def\include#1{\relax
  \ifnum\@auxout=\@partaux
    \@latex@error{\string\include\space cannot be nested}\@eha
  \else \@include#1 \fi}
\def\@include#1 {\clearpage
\if@filesw \immediate\write\@mainaux{\string\@input{#1.aux}}\fi
\@tempswatrue\if@partsw \@tempswafalse\edef\@tempb{#1}\@for
\@tempa:=\@partlist\do{\ifx\@tempa\@tempb\@tempswatrue\fi}\fi
\if@tempswa \let\@auxout\@partaux \if@filesw
\immediate\openout\@partaux #1.aux
\immediate\write\@partaux{\relax}\fi\@input@{#1.tex}\clearpage
\@writeckpt{#1}\if@filesw \immediate\closeout\@partaux \fi
\else\@nameuse{cp@#1}\fi\let\@auxout\@mainaux}
\def\@writeckpt#1{\if@filesw
\immediate\write\@partaux{\string\@setckpt{#1}\@charlb}%
{\let\@elt\@wckptelt \cl@@ckpt}\immediate\write\@partaux{\@charrb}\fi}
\def\@wckptelt#1{\immediate\write\@partaux
{\string\setcounter{#1}{\the\@nameuse{c@#1}}}}
\def\@setckpt#1{\global\@namedef{cp@#1}}
{\catcode`[=1 \catcode`]=2
\catcode`{=11 \catcode`}=11
\gdef\@charlb[{]
\gdef\@charrb[}]
]% }brace matching
\def\IfFileExists#1#2#3{%
  \openin\@inputcheck#1 %
  \ifeof\@inputcheck
    \ifx\input@path\@undefined
      \def\@tempa{#3}%
    \else
      \def\@tempa{\@iffileonpath{#1}{#2}{#3}}%
    \fi
  \else
    \closein\@inputcheck
    \edef\@filef@und{#1 }%
    \def\@tempa{#2}%
  \fi
  \@tempa}
\def\@iffileonpath#1#2#3{%
  \def\@tempa{#3}%
  \expandafter\@tfor\expandafter\@tempb\expandafter
             :\expandafter=\input@path\do{%
    \openin\@inputcheck\@tempb#1 %
    \ifeof\@inputcheck\else
      \edef\@filef@und{\@tempb#1 }%
      \def\@tempa{#2}%
      \closein\@inputcheck
      \@break@tfor
    \fi}%
  \@tempa}
\def\InputIfFileExists#1#2{%
  \IfFileExists{#1}%
    {#2\@addtofilelist{#1}\@@input \@filef@und}}
\def\input{\@ifnextchar\bgroup\@iinput\@@input}
\def\@iinput#1{%
  \InputIfFileExists{#1}{}%
  {\filename@parse{#1}%
   \edef\@tempa{\noexpand\@missingfileerror
     {\filename@area\filename@base}%
     {\ifx\filename@ext\relax tex\else\filename@ext\fi}}%
   \@tempa}}
\def\@input#1{%
  \IfFileExists{#1}{\@@input\@filef@und}{\typeout{No file #1.}}}
\def\@input@#1{\InputIfFileExists{#1}{}{\typeout{No file #1.}}}
\def\@obsoletefile#1#2{%
   \@latex@warning@no@line{inputting `#1' instead of obsolete `#2'}}
\@onlypreamble\@obsoletefile
%%% File: ltoutenc
\message{font encodings,}
\def\DeclareTextCommand#1#2{%
   \expandafter\DeclareRobustCommand\expandafter#1%
      \expandafter{%
         \csname#2-cmd\expandafter\endcsname
         \csname#2\string#1\endcsname
      }%
   \let\@ifdefinable\@rc@ifdefinable
   \expandafter\newcommand\csname#2\string#1\endcsname
}
\@onlypreamble\DeclareTextCommand
\def\@changed@cmd#1{%
   \expandafter\@changed@x\string#1\@changed@x
}
\bgroup
   \lccode`\|=`\\
   \lowercase{
\egroup
   \def\@changed@x|#1|#2\@changed@x{%
      \expandafter\def\csname#2 \expandafter\endcsname
         \expandafter{%
            \csname\f@encoding -cmd\expandafter\endcsname
            \csname\f@encoding |#2\endcsname
      }%
      \expandafter\ifx\csname\f@encoding |#2\endcsname\relax
         \@latexerr{Command |#2 undefined in encoding \f@encoding}\@eha
      \else
         \csname\f@encoding |#2\expandafter\endcsname
      \fi
   }
}
\def\DeclareTextAccent#1#2#3{%
   \DeclareTextCommand#1{#2}[1]{{\accent#3 ##1}}
}
\def\DeclareTextSymbol#1#2#3{%
   \expandafter\DeclareRobustCommand\expandafter#1%
      \expandafter{%
         \csname\f@encoding -cmd\expandafter\endcsname
         \csname\f@encoding \string#1\endcsname
      }%
   \expandafter\chardef\csname#2\string#1\endcsname#3\relax
}
\def\DeclareTextComposite#1#2#3#4{%
   \expandafter\let\expandafter\@tempa\csname#2\string#1\endcsname
   \edef\@tempb{\string##1}%
   \edef\@tempc{\expandafter\@strip@args\meaning\@tempa:-\@strip@args}%
   \ifx\@tempb\@tempc
      \expandafter\expandafter\expandafter\ifx
         \expandafter\@car\@tempa\relax\relax\@nil
         \@text@composite
      \else
         \edef\@tempb##1{%
            \def\expandafter\noexpand\csname#2\string#1\endcsname####1{%
               \noexpand\@text@composite
                  \expandafter\noexpand\csname#2\string#1\endcsname
                  {####1}%
                  {##1}%
            }%
         }%
         \expandafter\@tempb\expandafter{\@tempa{##1}}%
      \fi
      \bgroup
         \lccode`\@=#4\relax
         \lowercase{%
      \egroup
         \def\@tempa##1##2{@}%
      }%
      \expandafter\let\csname\expandafter\string\csname
         #2\endcsname\string#1-\string#3\endcsname\@tempa
   \else
      \@latexerr{%
         \string\DeclareTextComposite\space used on
         inappropriate command \string#1%
      }\@eha
   \fi
}
\@onlypreamble\DeclareTextComposite
\def\@text@composite#1#2{%
   \csname\string#1-\string#2\endcsname\@firstofone
}
\def\@strip@args#1:#2-#3\@strip@args{#2}
\def\a#1{\expandafter\protect\csname#1 \endcsname}
%% Copyright (C) 1989-94 by Frank Mittelbach and Rainer Sch\"opf.
%% All rights reserved.
%%
%% This is file `ltfss.dtx', generated
%% on <1994/9/26> with the docstrip utility (2.2h).
%%
%% The original source files were:
%%
%% fam.dtx  (with options: `compat,2ekernel')
%% tracefnt.dtx
%% setsize.dtx
%% latint.dtx  (with options: `compat,2ekernel')
%% lfonts.dtx  (with options: `compat')
%%
%% Copyright 1994 the LaTeX3 project and the individual authors.
%% All rights reserved. For further copyright information see the file
%% legal.txt, and any other copyright indicated in this file.
%%
%% This file is part of the LaTeX2e system.
%% ----------------------------------------
%%
%% This system is distributed in the hope that it will be useful,
%% but WITHOUT ANY WARRANTY; without even the implied warranty of
%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
%%
%%
%% IMPORTANT NOTICE:
%%
%% For error reports in case of UNCHANGED versions see bugs.txt.
%%
%% Please do not request updates from us directly. Distribution is
%% done through Mail-Servers and TeX organizations.
%%
%% You are not allowed to change this file.
%%
%% You are allowed to distribute this file under the condition that
%% it is distributed together with all files mentioned in manifest.txt.
%%
%% If you receive only some of these files from someone, complain!
%%
%% You are NOT ALLOWED to distribute this file alone. You are NOT
%% ALLOWED to take money for the distribution or use of either this
%% file or a changed version, except for a nominal charge for copying
%% etc.
%%% File: fam
%% \CharacterTable
%%  {Upper-case    \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
%%   Lower-case    \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
%%   Digits        \0\1\2\3\4\5\6\7\8\9
%%   Exclamation   \!     Double quote  \"     Hash (number) \#
%%   Dollar        \$     Percent       \%     Ampersand     \&
%%   Acute accent  \'     Left paren    \(     Right paren   \)
%%   Asterisk      \*     Plus          \+     Comma         \,
%%   Minus         \-     Point         \.     Solidus       \/
%%   Colon         \:     Semicolon     \;     Less than     \<
%%   Equals        \=     Greater than  \>     Question mark \?
%%   Commercial at \@     Left bracket  \[     Backslash     \\
%%   Right bracket \]     Circumflex    \^     Underscore    \_
%%   Grave accent  \`     Left brace    \{     Vertical bar  \|
%%   Right brace   \}     Tilde         \~}
%% Copyright (C) 1989-1994 Frank Mittelbach and Rainer Sch\"opf,
%% all rights reserved.
\def\@nomath#1{\relax\ifmmode
   \@font@warning{Command \noexpand#1invalid in math mode}\fi}
\def\no@alphabet@error#1{\relax \ifmmode
    \@latex@error{Math alphabet identifier \noexpand#1is undefined
                in math version `\math@version'}%
        {Your requested math alphabet is undefined in the current
         math version.^^JCheck the spelling or use the
         \noexpand\SetMathAlphabet command.}
     \fi}
\def\new@mathgroup{\alloc@8\mathgroup\chardef\sixt@@n}
\let\mathgroup\fam
\let\newfam\new@mathgroup
\def\new@fontshape#1#2#3#4{%
     \warn@rel@i\new@fontshape\DeclareFontShape
     \expandafter\scan@fontshape\@gobble#4<\@nil><<%
     \DeclareFontShape{U}{#1}{#2}{#3}{\next}}
\def\scan@fontshape{%
  \def\next{}%
  \def\@tempe{}%        holds last info
  \scan@@fontshape
}

\def\warn@rel@i#1#2{%
 \@font@warning{***  NFSS release 1 command
               \noexpand#1found\MessageBreak
   ***  Update by using release 2 command
        \string#2.\MessageBreak
   ***  Recovery is probably possible}%
}

\def\scan@@fontshape#1>#2#3<{%
  \ifx\@nil#1%
    \edef\next{\next\@tempe}%
  \else
    \def\@tempb{#1}%       nick names
    \def\@tempc{#3}%
    \in@{ at}{#3}%
    \ifin@
      \in@{pt}{#3}%  not a proof but a good chance
      \ifin@
        \def\@tempa##1 at##2pt##3\@nil{%
           \def\@tempb{##2}%
           \def\@tempc{##1}%
           }%
        \@tempa#3\@nil
      \fi
    \fi
    \ifnum 0<0#2
      \edef\@tempd{subf*\@tempc}%
      \ifcase #2\or
      \or
      \else
        \errmessage{*** What's this? NFSS release 0? ***}%
      \fi
    \else
      \edef\@tempd{#2\@tempc}%
    \fi
    \ifx\@tempd\@tempe
      \edef\next{\next<\@tempb>}%
    \else
      \edef\next{\next\@tempe<\@tempb>}%  add old info
      \let\@tempe\@tempd
    \fi
    \expandafter\scan@@fontshape
  \fi
}

\def\DeclareFontShape{\begingroup
   \nfss@catcodes
   \expandafter\endgroup
   \DeclareFontShape@}
\def\DeclareFontShape@#1#2#3#4#5#6{%
   \expandafter\ifx\csname #1+#2\endcsname\undefined
     \@latex@error{Font family `#1+#2' unknown}\@eha
   \else
     \expandafter
       \xdef\csname#1/#2/#3/#4\endcsname{\expandafter\noexpand
                                   \csname #5\endcsname}%
     \def\@tempa{#6}%
     \global
     \expandafter\let\csname#5\expandafter\endcsname
        \ifx\@tempa\@empty
          \@empty
        \else
          \@tempa
        \fi
   \fi
  }
\def\subst@fontshape#1#2#3#4#5#6{%
     \warn@rel@i\subst@fontshape\DeclareFontShape
     \DeclareFontShape{U}{#1}{#2}{#3}{<->sub*#4/#5/#6}{}}
\def\DeclareFixedFont#1#2#3#4#5#6{%
   \begingroup
      \math@fontsfalse
      \every@size{}%
      \fontsize{#6}\z@
      \usefont{#2}{#3}{#4}{#5}%
      \global\expandafter\let\expandafter#1\the\font
   \endgroup
  }
\def\do@subst@correction{%
       \xdef\subst@correction{%
          \font@name
          \global\expandafter\font
            \csname \curr@fontshape/\f@size\endcsname
            \noexpand\fontname\font
           \relax}%
       \aftergroup\subst@correction
}
\def\extra@def#1#2#3{%
     \warn@rel@i\extra@def\DeclareFontFamily
     \DeclareFontFamily{U}{#1}{}%
}
\def\DeclareFontFamily#1#2#3{%
 \@ifundefined{T@#1}%
    {%
     \@latex@error{Encoding scheme  `#1' unknown}\@eha
    }%
    {%
     \def\@tempa{#3}%
     \global
     \expandafter\let\csname #1+#2\expandafter\endcsname
            \ifx \@tempa\@empty
              \@empty
            \else \@tempa
            \fi
    }%
}
\let\cdp@list\@empty
\def\DeclareFontEncoding{%
   \begingroup
   \catcode`\ 9%
   \catcode`\^^M9%
   \expandafter\endgroup
   \DeclareFontEncoding@}
\def\DeclareFontEncoding@#1#2#3{%
  \expandafter
  \ifx\csname T@#1\endcsname\relax
     \def\cdp@elt{\noexpand\cdp@elt}%
     \xdef\cdp@list{\cdp@list\cdp@elt{#1}%
                    {\default@family}{\default@series}%
                    {\default@shape}}%
     \expandafter\let\csname#1-cmd\endcsname\@changed@cmd
  \else
     \@font@info{Redeclaring font encoding #1}%
  \fi
  \global\@namedef{T@#1}{#2}%
  \global\@namedef{M@#1}{\default@M#3}%
  }

\def\DeclareFontSubstitution#1#2#3#4{%
  \expandafter
  \ifx\csname T@#1\endcsname\relax
    \@latex@error{Encoding scheme  `#1' unknown}\@eha
  \else
    \begingroup
       \def\@tempa{#1}%
       \toks@{}%
       \def\cdp@elt##1##2##3##4{%
          \def\@tempb{##1}%
          \ifx\@tempa\@tempb
             \addto@hook\toks@{\cdp@elt{#1}{#2}{#3}{#4}}%
          \else
             \addto@hook\toks@{\cdp@elt{##1}{##2}{##3}{##4}}%
          \fi}%
        \cdp@list
        \xdef\cdp@list{\the\toks@}%
    \endgroup
    \global
    \@namedef{D@#1}{%
           \def\default@family{#2}%
           \def\default@series{#3}%
           \def\default@shape{#4}%
           }%
  \fi
 }

%%    \end{macrocode}                % split file for small TeX's
%%    \begin{macrocode}

\def\DeclareFontEncodingDefaults#1#2{%
  \ifx\relax#1\else
    \ifx\default@T\@empty\else
      \@font@info{Overwriting encoding scheme text defaults}%
    \fi
    \gdef\default@T{#1}%
  \fi
  \ifx\relax#2\else
    \ifx\default@M\@empty\else
      \@font@info{Overwriting encoding scheme math defaults}%
    \fi
    \gdef\default@M{#2}%
  \fi
}
\let\default@T\@empty
\let\default@M\@empty

\def\default@mextra#1{%
  \warn@rel@i\default@mextra\DeclareFontEncodingDefaults
  \DeclareFontEncodingDefaults{\relax}{#1}%
}
\def\preload@sizes{%
     \warn@rel@i\preload@sizes\DeclarePreloadSizes
     \DeclarePreloadSizes{U}%
}
\def\DeclarePreloadSizes#1#2#3#4#5{%
 \@ifundefined{T@#1}%
   {\@latex@error{Encoding scheme  `#1' unknown}\@eha}%
   {%
   \begingroup
    \def\next##1,{%
        \if>##1>%
          \let\next\relax
        \else
          \xdef\font@name{\csname#1/#2/#3/#4/##1\endcsname}%
          \pickup@font
          \global\expandafter\let\font@name\relax
        \fi
        \next}%
     \next#5,,%
   \endgroup
   }%
}
\newif\ifmath@fonts \math@fontstrue
\def\DeclareMathSizes{%
  \@ifstar{\@DeclareMathSizes\math@fontsfalse}%
          {\@DeclareMathSizes{}}}

\def\@DeclareMathSizes#1#2#3#4#5{%
    \@defaultunits\dimen@#2pt\relax\@nnil
    \def\@tempa{#3}%
    \ifx\@tempa\@empty
      \expandafter \let
        \csname S@\strip@pt\dimen@\endcsname
        \math@fontsfalse
    \else
      \expandafter \gdef
      \csname S@\strip@pt\dimen@\endcsname
            {\gdef\tf@size{#3}\gdef\sf@size{#4}%
                             \gdef\ssf@size{#5}%
             #1%
                             }%
    \fi}
\DeclareRobustCommand\fontencoding[1]{%
    \expandafter\ifx\csname T@#1\endcsname\relax
      \@latex@error{Encoding scheme `#1' unknown}\@eha
    \else
      \edef\@tempa{#1}%
      \ifx\@tempa\f@encoding
      \else
        \edef\enc@update{%
          \let
            \expandafter\noexpand\csname\f@encoding -cmd\endcsname
            \noexpand\@changed@cmd
          \let
            \expandafter\noexpand\csname#1-cmd\endcsname
            \relax
          \noexpand\default@T
          \expandafter\noexpand\csname T@#1\endcsname
          \expandafter\noexpand\csname D@#1\endcsname
          \let\noexpand\enc@update\relax
          }%
        \let\f@encoding\@tempa
      \fi
    \fi
}
\let\enc@update\relax
\DeclareRobustCommand\fontfamily[1]{\edef\f@family{#1}}
\DeclareRobustCommand\fontseries[1]{\edef\f@series{#1}}
\DeclareRobustCommand\fontshape [1]{\edef\f@shape{#1}}
\def\usefont#1#2#3#4{\fontencoding{#1}\fontfamily{#2}%
             \fontseries{#3}\fontshape{#4}\selectfont
             \ignorespaces}
\DeclareRobustCommand\linespread[1]
   {\set@fontsize{#1}\f@size\f@baselineskip}
\DeclareRobustCommand\fontsize[2]
   {\set@fontsize\baselinestretch{#1}{#2}}
\let\f@encoding\@empty
\let\f@family\@empty
\let\f@series\@empty
\let\f@shape\@empty
\let\f@size\@empty
\let\f@baselineskip\@empty
\let\f@linespread\@empty

\def\@defaultunits{\afterassignment\remove@to@nnil}
\begingroup
  \catcode`P=12
  \catcode`T=12
  \lowercase{
    \def\x{\def\rem@pt##1.##2PT{##1\ifnum##2>\z@.##2\fi}}}
  \expandafter\endgroup\x
\def\strip@pt{\expandafter\rem@pt\the}
\DeclareRobustCommand\mathversion[1]
         {\@nomath\mathversion
          \expandafter\ifx\csname mv@#1\endcsname\relax
          \@latex@error{Math version `#1' is not defined}\@eha\else
          \edef\math@version{#1}%
  \gdef\glb@currsize{}%
          \aftergroup\glb@settings
          \fi}
\let\frozen@everymath\everymath
\let\frozen@everydisplay\everydisplay
\newtoks\everymath
\newtoks\everydisplay
\frozen@everymath = {\check@mathfonts
                     \the\everymath}
\frozen@everydisplay = {\check@mathfonts
                        \the\everydisplay}
\newif\if@inmath
\let\curr@math@size\@empty
\def\pickup@font{%
    \expandafter \ifx \font@name \relax
       \define@newfont
    \fi}
{\catcode`\/=12
\gdef\split@name#1/#2/#3/#4/#5\@nil{\def\f@encoding{#1}%
                                    \def\f@family{#2}%
                                    \def\f@series{#3}%
                                    \def\f@shape{#4}%
                                    \def\f@size{#5}}}
\def\curr@fontshape{\f@encoding/\f@family/\f@series/\f@shape}
\def\define@newfont{%
  \begingroup
    \escapechar\m@ne
    \expandafter\expandafter\expandafter
       \split@name\expandafter\string\font@name\@nil
      \try@load@fontshape % try always
    \expandafter\ifx
       \csname\curr@fontshape\endcsname \relax
      \wrong@fontshape\else
      \extract@font\fi
  \endgroup}

\def\try@load@fontshape{%
   \expandafter
   \ifx\csname \f@encoding+\f@family\endcsname\relax
     \@font@info{Try loading font information for
                   \f@encoding+\f@family}%
    \global\expandafter\let
       \csname\f@encoding+\f@family\endcsname\@empty
     \makeatletter
     \nfss@catcodes
     \@input@{\f@encoding\f@family.fd}%
   \fi
}
\def\nfss@catcodes{%
     \catcode`\ 9\relax
     \catcode`\^^M9\relax
     \catcode`\\\z@
     \catcode`\{\@ne
     \catcode`\}\tw@
     \catcode`\%14\relax
   \@makeother\<%
   \@makeother\>%
   \@makeother\*%
   \@makeother\.%
   \@makeother\-%
   \@makeother\/%
}
\def\DeclareErrorFont#1#2#3#4#5{%
      \xdef\error@fontshape{%
          \noexpand\expandafter\noexpand\split@name\noexpand\string
          \expandafter\noexpand\csname#1/#2/#3/#4/#5\endcsname
          \noexpand\@nil}%
      \gdef\default@family{#2}%
      \gdef\default@series{#3}%
      \gdef\default@shape{#4}%
      \global\let\f@family\default@family
      \global\let\f@series\default@series
      \global\let\f@shape\default@shape
      \gdef\f@size{#5}%
      \gdef\f@baselineskip{#5pt}%
}
\def\wrong@fontshape{%
    \csname D@\f@encoding\endcsname      % install defaults if in math
    \edef\@tempa{\csname\curr@fontshape\endcsname}%
  \ifx\last@fontshape\@tempa
     \errmessage{Corrupted NFSS tables}%
     \error@fontshape
  \else
    \let\f@shape\default@shape
    \expandafter\ifx\csname\curr@fontshape\endcsname\relax
       \let\f@series\default@series
        \expandafter
          \ifx\csname\curr@fontshape\endcsname\relax
           \let\f@family\default@family
        \fi \fi
  \fi
    \@font@warning{Font shape `\@tempa' undefined\MessageBreak
                  using `\curr@fontshape' instead}%
    \global\let\last@fontshape\@tempa
    \G@defaultsubstrue
    \global\expandafter\expandafter\expandafter\let\expandafter\@tempa
           \csname\curr@fontshape\endcsname
    \xdef\font@name{%
      \csname\curr@fontshape/\f@size\endcsname}%
    \pickup@font}
\newif\ifG@defaultsubs
\def\G@defaultsubstrue{\global\let\ifG@defaultsubs\iftrue}
\def\G@defaultsubsfalse{\global\let\ifG@defaultsubs\iffalse}
\def\strip@prefix#1>{}
\def\err@rel@i#1#2{%
  \@latex@error{***  NFSS release 1 command \noexpand#1found%
          ^^J***  Recovery not possible. Use \string#2}%
       {The new release of NFSS doesn't support the
        #1 command^^Jany longer.
        Please upgrade your file to the syntax of NFSS
        release 2^^Jusing the #2 command.}%
  \batchmode\input.\relax
}
\def\define@mathalphabet#1#2#3#4#5#6{%
      \err@rel@i\define@mathalphabet\DeclareMathAlphabet
}
\let\install@mathalphabet\gdef
\def\define@mathgroup#1#2#3#4#5{%
      \err@rel@i\define@mathgroup\DeclareSymbolFont
}
\let\math@fonts\@empty
\def\extract@alph@from@version#1#2#3{%
     \def\@tempa##1\install@mathalphabet#3##2##3\@nil{%
         \def\@tempb{##2}%
         \def\@tempc####1{\gdef#1{##1####1##3}}}%
     \expandafter\@tempa#1\@nil
     \def\@tempa\select@group#3##1##2\@nil{%
        \@tempc{%
           \getanddefine@fonts{#2}##2%
           \install@mathalphabet#3{\use@mathgroup##1{#2}}}%
        \gdef#3{\use@mathgroup##1{#2}}}%
     \expandafter\@tempa\@tempb\@nil
     }
\let\math@bgroup\bgroup
\def\math@egroup#1{#1\egroup}
\def\calculate@math@sizes{%
  \@font@info{Calculating math sizes for size <\f@size>}%
  \dimen@\f@size \p@
  \@tempdimb \defaultscriptratio \dimen@
  \dimen@ \defaultscriptscriptratio \dimen@
  \expandafter\xdef\csname S@\f@size\endcsname{%
    \gdef\noexpand\tf@size{\f@size}%
    \gdef\noexpand\sf@size{\strip@pt\@tempdimb}%
    \gdef\noexpand\ssf@size{\strip@pt\dimen@}%
    \noexpand\math@fontstrue}}
\def\defaultscriptratio{.7}
\def\defaultscriptscriptratio{.5}
\ifx\noaccents@\undefined
  \let\noaccents@\@empty
\fi
\def\showhyphens#1{\setbox0\vbox{\parfillskip\z@skip\hsize\maxdimen
  \reset@font
  \pretolerance\m@ne\tolerance\m@ne\hbadness\z@\showboxdepth\z@\ #1}}
\long\def\addto@hook#1#2{#1\expandafter{\the#1#2}}
\ifx\inputlineno\undefined
  \let\on@line\@empty
\else
  \ifnum\inputlineno=\m@ne
    \let\on@line\@empty
  \else
    \def\on@line{ on input line \the\inputlineno}
  \fi
\fi

%%% File: tracefnt
\def\filename{tracefnt}
\def\fileversion{v2.3k}
\def\filedate{1994/05/29}
\def\docdate {1994/01/17}
%% Copyright (C) 1989-94 by Frank Mittelbach and Rainer Sch\"opf.
%% Copyright (C) 1994 by LaTeX3 project. All rights reserved.
\def\tracingfonts{%
  \@font@warning{Command \noexpand\tracingfonts
           not provided.\MessageBreak
           Use the `tracefnt' package.\MessageBreak Command found:}%
       \count@}
\def\@font@warning#1{%
   \GenericWarning{(Font)\@spaces\@spaces\@spaces\space\space}%
                  {LaTeX Font Warning: #1}%
}
\def\@font@info#1{%
   \GenericInfo{(Font)\@spaces\@spaces\space\@spaces\space}%
               {LaTeX Font Info: \space\space\space#1}%
}
\def\extract@font{%
   \get@external@font
   \global\expandafter\font\font@name\external@font\relax
    \font@name \relax
    \csname \f@encoding+\f@family\endcsname
    \csname\curr@fontshape\endcsname
    \relax
       }
\def\get@external@font{%
   \let\external@font\@empty
   \edef\font@info{\expandafter\expandafter\expandafter\string
        \csname \curr@fontshape \endcsname}%
   \try@size@range
   \ifx\external@font\@empty
      \try@size@substitution
      \ifx\external@font\@empty
         \@latex@error{Font \expandafter \string\font@name\space
                     not found}\@eha
         \error@fontshape
         \get@external@font
   \fi\fi
}
\DeclareRobustCommand\selectfont
        {%
    \ifx\f@linespread\baselinestretch \else
      \set@fontsize\baselinestretch\f@size\f@baselineskip \fi
    \xdef\font@name{%
      \csname\curr@fontshape/\f@size\endcsname}%
    \pickup@font
    \font@name
    \size@update
    \enc@update
    }
\def\set@fontsize#1#2#3{%
    \@defaultunits\@tempdimb#2pt\relax\@nnil
    \edef\f@size{\strip@pt\@tempdimb}%
    \@defaultunits\@tempskipa#3pt\relax\@nnil
    \edef\f@baselineskip{\the\@tempskipa}%
    \edef\f@linespread{#1}%
    \let\baselinestretch\f@linespread
      \def\size@update{%
        \baselineskip\f@baselineskip\relax
        \baselineskip\f@linespread\baselineskip
        \normalbaselineskip\baselineskip
        \setbox\strutbox\hbox{%
          \vrule\@height.7\baselineskip
                \@depth.3\baselineskip
                \@width\z@}%
        \the\every@size
        \let\size@update\relax}%
  }
\let\size@update\relax
\def\glb@settings{\begingroup
     \expandafter\ifx\csname S@\f@size\endcsname\relax
       \calculate@math@sizes
     \fi
     \csname S@\f@size\endcsname
      \ifmath@fonts
        \escapechar\m@ne
        \csname mv@\math@version \endcsname
      \else
        \math@fontstrue
      \fi
    \globaldefs\@ne
    \math@fonts
    \let \glb@currsize \f@size
  \endgroup
  \the\every@size
}

\def\check@mathfonts{%
  \ifx \glb@currsize \f@size
  \else
     \glb@settings
     \if@inmath
       \aftergroup\restglb@settings
     \fi
  \fi
  \let\curr@math@size\f@size
  \@inmathtrue
}
\def\restglb@settings{%
      \begingroup
        \let\f@size\curr@math@size
        \ifx\glb@currsize \f@size
        \else
          \glb@settings
        \fi
      \endgroup
}
\def\baselinestretch{1}
\newtoks\every@size
\every@size={}
\def\use@mathgroup#1#2{\relax\ifmmode
     \math@bgroup
         \expandafter\ifx\csname M@\f@encoding\endcsname#1\else
         #1\fi
         \mathgroup#2\relax
     \expandafter\math@egroup\fi}%
\def\getanddefine@fonts#1#2{%
  \xdef\font@name{\csname \string#2/\tf@size\endcsname}%
  \pickup@font \let\textfont@name\font@name
  \xdef\font@name{\csname \string#2/\sf@size\endcsname}%
  \pickup@font \let\scriptfont@name\font@name
  \xdef\font@name{\csname \string#2/\ssf@size\endcsname}%
  \pickup@font
  \edef\math@fonts{\math@fonts
               \textfont#1\textfont@name
               \scriptfont#1\scriptfont@name
               \scriptscriptfont#1\font@name}%
    }
\def\ifnot@nil#1{\def\@tempa{#1}%
  \ifx\@tempa\@nnil \expandafter\@gobble\else \expandafter\@iden\fi}
\def\remove@to@nnil#1\@nnil{}
\def\remove@angles#1>{\set@simple@size@args}
\def\remove@star#1*{#1}
\def\gobble@font@spec#1\@nil<\@nnil{}
\def\extract@sizefn#1*#2\@nil{%
  \if>#2>\set@size@funct@args#1\@nil
         \let\sizefn@info\@empty
  \else\expandafter\set@size@funct@args\remove@star#2\@nil
       \def\sizefn@info{#1}\fi
  }
%% this could be replaced by \try@size@range making the subst slower!
\def\try@simple@size{%
    \def\@tempa{\def\extract@fontinfo####1}%
    \expandafter\@tempa\expandafter<\f@size>##2<##3\@nnil{%
          \ifnot@nil{##2}%
            {\set@simple@size@args##2<##3\@nnil
             \execute@size@function\sizefn@info
            }}%
    \expandafter\expandafter
    \expandafter\extract@fontinfo\expandafter\font@info
    \expandafter<\f@size>\@nil<\@nnil
}
\def\set@simple@size@args#1<{%
          \if<#1<%
            \expandafter\remove@angles
          \else
            \extract@sizefn#1*\@nil
            \expandafter\remove@to@nnil
          \fi}
\def\extract@rangefontinfo#1<#2>{%
       \is@range#2->\@nil#2>}
\def\is@range#1-#2\@nil{%
   \if>#2\expandafter\check@single\else
      \expandafter\check@range\fi}
\newdimen\lower@bound
\newdimen\upper@bound
\def\check@range#1-#2>#3<#4\@nnil{%
  \ifnot@nil{#3}{%
     \def\next{\extract@rangefontinfo<#4\@nnil}%
     \upper@bound0#2\p@
     \ifdim\upper@bound=\z@ \upper@bound\maxdimen\fi
     \ifdim \f@size \p@<\upper@bound
       \lower@bound0#1\p@
       \ifdim \f@size \p@<\lower@bound
        \else
          \set@simple@size@args#3<#4\@nnil
          \execute@size@function\sizefn@info
         \ifx\external@font\@empty
         \else
           \let\next\@empty
         \fi
       \fi
     \fi
     \next}}
\def\check@single#1>#2<#3\@nnil{%
     \def\next{\extract@rangefontinfo<#3\@nnil}%
     \ifdim \f@size \p@=#1\p@
        \set@simple@size@args#2<#3\@nnil
        \execute@size@function\sizefn@info
        \ifx\external@font\@empty
        \else
          \let\next\@empty
        \fi
     \fi
     \next}
\def\set@size@funct@args{\@ifnextchar[%
  \set@size@funct@args@{\set@size@funct@args@[]}}
\def\set@size@funct@args@[#1]#2\@nil{%
  \def\mandatory@arg{#2}%
  \def\optional@arg{#1}}
\def\DeclareSizeFunction#1#2{\@namedef{s@fct@#1}{#2}}
\def\execute@size@function#1{%
      \csname s@fct@#1\endcsname
}
\def\try@size@range{%
    \expandafter\extract@rangefontinfo\font@info <-*>\@nil<\@nnil
}

\def\try@size@substitution{%
    \@tempdimb\z@
    \@tempdimc\maxdimen
    \let\lower@font@size\@empty
    \let\higher@font@size\@empty
    \expandafter\extract@subfontinfo\font@info <\number\@M>\@nil<\@nnil
    \dimen@-\f@size\p@
    \advance\@tempdimb\dimen@
    \@tempdimb-\@tempdimb
    \advance\@tempdimc\dimen@
    \ifdim\@tempdimb<\@tempdimc
      \subst@size\lower@font@size\@tempdimb
      \subst@size\higher@font@size\@tempdimc
    \else
      \subst@size\higher@font@size\@tempdimc
      \subst@size\lower@font@size\@tempdimb
   \fi}
\def\subst@size#1#2{%
  \ifx#1\@empty\else
   \ifx\external@font\@empty
      \ifdim#2>\font@submax\relax
        \xdef\font@submax{\the#2}% #2 should be register
      \fi
      \let\f@user@size\f@size
      \let\f@size#1%
      \ifdim#2>\fontsubfuzz\relax
        \@font@warning{Font shape `\curr@fontshape'
                    in size <\f@user@size> not
                    available\MessageBreak
                    size <\f@size> substituted}%
      \fi
      \try@simple@size
      \do@subst@correction
  \fi
 \fi}
\def\font@submax{0pt}
\def\fontsubfuzz{.4pt}
\def\extract@subfontinfo#1<#2>{%
  \is@simple#2->\is@simple}
\def\is@simple#1-#2\is@simple{%
   \let\next\extract@subfontinfo
   \if>#2%
      \dimen@ #1\p@
      \ifdim \f@size\p@<\dimen@
        \ifdim \dimen@ <\@M\p@
          \def\higher@font@size{#1}%
          \@tempdimc\dimen@
        \fi
        \let\next\gobble@font@spec
      \else
        \def\lower@font@size{#1}%
        \@tempdimb\dimen@
      \fi
    \fi\next}
\DeclareSizeFunction{}{\empty@sfcnt\@font@warning}
\DeclareSizeFunction{s}{\empty@sfcnt\@font@info}

\def\empty@sfcnt#1{%
      \@tempdimb \f@size\p@
      \ifx\optional@arg\@empty
      \else
        \@tempdimb \optional@arg\@tempdimb
        #1{Font shape `\curr@fontshape'
            will be\MessageBreak
            scaled to size \the\@tempdimb}%
      \fi
      \edef\external@font{\mandatory@arg\space at\the\@tempdimb}}
\DeclareSizeFunction{gen}{\gen@sfcnt\@font@warning}
\DeclareSizeFunction{sgen}{\gen@sfcnt\@font@info}

\def\gen@sfcnt{%
      \edef\mandatory@arg{\mandatory@arg\f@size}%
      \empty@sfcnt}
\DeclareSizeFunction{sub}{\sub@sfcnt\@font@warning}
\DeclareSizeFunction{ssub}{\sub@sfcnt\@font@info}
\def\sub@sfcnt#1{%
    \edef\mandatory@arg{\f@encoding/\mandatory@arg}%
    \begingroup
     \expandafter\split@name\mandatory@arg/\@nil
     \try@load@fontshape
    \endgroup
    \let\f@user@size\f@size
    \expandafter
    \ifx\csname\mandatory@arg\endcsname\relax
      \errmessage{No declaration for shape \mandatory@arg}%
      \error@fontshape
    \else
      #1{Font shape `\curr@fontshape' in size <\f@size> not
                    available\MessageBreak
                    Font shape `\mandatory@arg' tried instead}%
      \expandafter\split@name\mandatory@arg/\@nil
    \fi
    \edef\f@size{\f@user@size}%
    \get@external@font
    \do@subst@correction
}
\DeclareSizeFunction{subf}{\subf@sfcnt\@font@warning}
\DeclareSizeFunction{ssubf}{\subf@sfcnt\@font@info}
\def\subf@sfcnt#1{%
      #1{Font shape `\curr@fontshape'
                    in size \f@size\space
                    not available\MessageBreak
                    external font `\mandatory@arg'
                    used}%
      \empty@sfcnt#1%
      }
\DeclareSizeFunction{fixed}{\fixed@sfcnt\@font@warning}
\DeclareSizeFunction{sfixed}{\fixed@sfcnt\@font@info}
\def\fixed@sfcnt#1{%
  \ifx\optional@arg\@empty
    \let\external@font\mandatory@arg
  \else
    \edef\external@font{\mandatory@arg\space at\optional@arg pt}%
  \fi
  #1{External font `\external@font' loaded for size\MessageBreak
     <\f@size>}%
}

\def\filename{setsize}
\def\fileversion{v2.1c}
\def\filedate{1994/05/13}
\def\docdate {1993/12/03}

%% File `setsize.dtx'.
%% Copyright (C) 1989-1994 Frank Mittelbach and Rainer Sch\"opf,
%% all rights reserved.

 \def\@vpt{5}
 \def\@vipt{6}
 \def\@viipt{7}
 \def\@viiipt{8}
 \def\@ixpt{9}
 \def\@xpt{10}
 \def\@xipt{10.95}
 \def\@xiipt{12}
 \def\@xivpt{14.4}
 \def\@xviipt{17.28}
 \def\@xxpt{20.74}
 \def\@xxvpt{24.88}
 \DeclareMathSizes{5}{5}{5}{5}
 \DeclareMathSizes{6}{6}{5}{5}
 \DeclareMathSizes{7}{7}{5}{5}
 \DeclareMathSizes{8}{8}{6}{5}
 \DeclareMathSizes{9}{9}{6}{5}
 \DeclareMathSizes{\@xpt}{\@xpt}{7}{5}
 \DeclareMathSizes{\@xipt}{\@xipt}{8}{6}
 \DeclareMathSizes{\@xiipt}{\@xiipt}{8}{6}
 \DeclareMathSizes{\@xivpt}{\@xivpt}{\@xpt}{7}
 \DeclareMathSizes{\@xviipt}{\@xviipt}{\@xiipt}{\@xpt}
 \DeclareMathSizes{\@xxpt}{\@xxpt}{\@xivpt}{\@xiipt}
 \DeclareMathSizes{\@xxvpt}{\@xxvpt}{\@xxpt}{\@xviipt}

%%    \end{macrocode}                % split file for small TeX's
%%    \begin{macrocode}
%%% File: latint

\def\in@#1#2{%
 \def\in@@##1#1##2##3\in@@{%
  \ifx\in@##2\in@false\else\in@true\fi}%
 \in@@#2#1\in@\in@@}
\newif\ifin@
\let\version@list=\@empty
\let\if@no@font@opt\iftrue
\def\@no@font@optfalse{\let\if@no@font@opt\iffalse}
\def\newmathalphabet{%
  \if@no@font@opt
    \@latex@error{*** NFSS release 1 command
                    \noexpand\newmathalphabet found%
     ^^J \space*** Automatic recovery not possible.%
     ^^J \space*** TYPE H for Help%
              }%
       {Please look at the file usrguide.tex for hints on
        how to resolve this problem.}%
  \else
     \warn@rel@i\newmathalphabet\DeclareMathAlphabet
  \fi
  \@ifstar\newmathalphabet@@@
          \newmathalphabet@@}
\def\newmathalphabet@@#1{\DeclareMathAlphabet#1{U}{}{}{}}
\def\newmathalphabet@@@#1#2#3#4{%
       \DeclareMathAlphabet{#1}{U}{#2}{#3}{#4}}
\let\alpha@list\@empty
\def\addtoversion#1#2{%
  \warn@rel@i\addtoversion\SetMathAlphabet
  \SetMathAlphabet#2{#1}{U}}
\count18=-1

\def\stepcounter #1{\global\advance\csname c@#1\endcsname\@ne
  \begingroup\let\@elt\@stpelt \csname cl@#1\endcsname\endgroup }

\newif\ifrestore@version \restore@versiontrue

\def\select@group#1#2#3{\relax
 \ifmmode
  \ifnum\csname c@mv@\math@version\endcsname<\sixt@@n
     \begingroup
       \escapechar\m@ne
       \getanddefine@fonts{\csname c@mv@\math@version\endcsname}#3%
       \globaldefs\@ne  \math@fonts
     \endgroup
     \ifrestore@version
        \global\restore@versionfalse
        \xdef\restore@mathversion
             {\expandafter\noexpand\csname mv@\math@version\endcsname
              \global\csname c@mv@\math@version\endcsname
              \number\csname c@mv@\math@version\endcsname\relax}%
        \aftergroup\dorestore@version
     \fi
     \xdef#1{\noexpand\use@mathgroup\noexpand#2%
             {\number\csname c@mv@\math@version\endcsname}}%
     \stepcounter{mv@\math@version}%
   \else
     \let#1\relax
     \@latex@error{Too many math alphabets used in
                   version \math@version}%
        \@eha
   \fi
 \else \expandafter\non@alpherr\fi
 #1}

\def\non@alpherr#1{\@latex@error{%
    \expandafter\@firstoftwo\string#1 allowed only in math mode}\@ehd}

\def\dorestore@version
 {\ifmmode
    \aftergroup\dorestore@version
  \else
    \global\restore@versiontrue
    \begingroup
      \let\getanddefine@fonts\@gobbletwo
      \restore@mathversion
    \endgroup
  \fi}%

\def\document@select@group#1#2#3{\relax
 \ifmmode
   \ifnum\csname c@mv@\math@version\endcsname<\sixt@@n
     \begingroup
       \escapechar\m@ne
       \getanddefine@fonts{\csname c@mv@\math@version\endcsname}#3%
       \globaldefs\@ne  \math@fonts
     \endgroup
     \expandafter\extract@alph@from@version
         \csname mv@\math@version\expandafter\endcsname
         \expandafter{\number\csname
                       c@mv@\math@version\endcsname}%
          #1%
     \stepcounter{mv@\math@version}%
   \else
     \let#1\relax
     \@latex@error{Too many math alphabets used
                   in version \math@version}%
        \@eha
  \fi
 \else \expandafter\non@alpherr\fi
 #1}

\def\process@table{%
    \def\cdp@elt##1##2##3##4{%
        \@font@info{Checking defaults for
                  ##1/##2/##3/##4}%
        \expandafter
        \ifx\csname##1/##2/##3/##4\endcsname\relax
          \begingroup
           \def\f@encoding{##1}\def\f@family{##2}%
           \try@load@fontshape
          \endgroup
        \fi
        \expandafter
        \ifx\csname##1/##2/##3/##4\endcsname\relax
             \@latex@error{This NFSS system isn't set up properly}%
                       {For encoding scheme ##1 the defaults
                        ##2/##3/##4 do not form a valid font shape}%
        \else
             \@font@info{... okay}%
        \fi}%
    \cdp@list
    \begingroup
       \escapechar\m@ne
       \error@fontshape
       \expandafter\ifx\csname \curr@fontshape\endcsname\relax
          \begingroup
            \try@load@fontshape
           \endgroup
       \fi
       \expandafter\ifx\csname \curr@fontshape\endcsname\relax
         \@latex@error{This NFSS system isn't set up properly}%
            {The system maintainer forgot to specify a suitable
             substitution
             font shape using the \noexpand\DeclareErrorFont
             command}%
       \fi
    \endgroup
    \let\select@group\document@select@group
    \fontencoding{\encodingdefault}%
    \fontfamily{\familydefault}%
    \fontseries{\seriesdefault}%
    \fontshape{\shapedefault}%
 \everyjob{}%
}

\@onlypreamble\@xDeclareMathDelimiter
\@onlypreamble\@DeclareMathDelimiter
\@onlypreamble\DeclareFontEncoding
\@onlypreamble\DeclareFontEncoding@
\@onlypreamble\DeclareFontEncodingDefaults
\@onlypreamble\DeclareFontSubstitution
\@onlypreamble\DeclareErrorFont
\@onlypreamble\DeclareMathAccent
\@onlypreamble\DeclareMathAlphabet
\@onlypreamble\DeclareMathDelimiter
\@onlypreamble\DeclareMathRadical
\@onlypreamble\DeclareMathSizes
\@onlypreamble\DeclareMathSymbol
\@onlypreamble\DeclareMathVersion
\@onlypreamble\DeclarePreloadSizes
\@onlypreamble\DeclareSizeFunction
\@onlypreamble\DeclareSymbolFont
\@onlypreamble\DeclareSymbolFontAlphabet
\@onlypreamble\SetMathAlphabet
\@onlypreamble\SetMathAlphabet@
\@onlypreamble\SetSymbolFont
\@onlypreamble\SetSymbolFont@
\@onlypreamble\alpha@elt
\@onlypreamble\alpha@list
\@onlypreamble\cdp@elt
\@onlypreamble\cdp@list
\@onlypreamble\dorestore@version
\@onlypreamble\get@cdp
\@onlypreamble\group@elt
\@onlypreamble\group@list
\@onlypreamble\ifrestore@version
\@onlypreamble\mathchar@type
\@onlypreamble\new@mathalphabet
\@onlypreamble\new@mathgroup
\@onlypreamble\new@mathversion
\@onlypreamble\new@symbolfont
\@onlypreamble\process@table
\@onlypreamble\restore@mathversion
\@onlypreamble\restore@versionfalse
\@onlypreamble\restore@versiontrue
\@onlypreamble\set@@mathdelimiter
\@onlypreamble\set@mathaccent
\@onlypreamble\set@mathchar
\@onlypreamble\set@mathchar
\@onlypreamble\set@mathdelimiter
\@onlypreamble\set@mathradical
\@onlypreamble\set@mathsymbol
\@onlypreamble\set@mathsymbol
\@onlypreamble\version@elt
\@onlypreamble\version@list
\@onlypreamble\addtoversion
\@onlypreamble\default@mextra
\@onlypreamble\define@mathalphabet
\@onlypreamble\define@mathgroup
\@onlypreamble\extra@def
\@onlypreamble\new@fontshape
\@onlypreamble\newmathalphabet
\@onlypreamble\newmathalphabet@@
\@onlypreamble\newmathalphabet@@@
\@onlypreamble\preload@sizes
\@onlypreamble\scan@fontshape
\@onlypreamble\scan@@fontshape
\@onlypreamble\subst@fontshape

%%    \end{macrocode}                % split file for small TeX's
%%    \begin{macrocode}

\def\DeclareMathVersion#1{%
  \expandafter\new@mathversion\csname mv@#1\endcsname}

\def\new@mathversion#1{%
  \expandafter\in@\expandafter#1\expandafter{\version@list}%
  \ifin@
    \@font@info{Redeclaring math version
               `\expandafter\@gobblefour\string#1'}%
  \else
    \global\expandafter\newcount\csname c@\expandafter
                                \@gobble\string#1\endcsname
    \def\version@elt{\noexpand\version@elt\noexpand}%
    \edef\version@list{\version@list\version@elt#1}%
  \fi
  \toks@{}%
  \count@\z@
  \def\group@elt##1##2{%
       \advance\count@\@ne
       \addto@hook\toks@{\getanddefine@fonts##1##2}%
       }%
  \group@list
  \global\csname c@\expandafter\@gobble\string#1\endcsname\count@
  \def\alpha@elt##1##2##3{%
       \ifx##2\no@alphabet@error
         \toks@\expandafter{\the\toks@\install@mathalphabet##1%
             {\no@alphabet@error##1}}%
       \else
         \toks@\expandafter{\the\toks@\install@mathalphabet##1%
             {\select@group##1##2##3}}%
       \fi
          }%
  \alpha@list
  \xdef#1{\the\toks@}%
}

\def\DeclareSymbolFont#1#2#3#4#5{%
 \@tempswafalse
 \edef\@tempb{#2}%
 \def\cdp@elt##1##2##3##4{\def\@tempc{##1}%
      \ifx\@tempb\@tempc \@tempswatrue\fi}%
 \cdp@list
 \if@tempswa
   \@ifundefined{sym#1}{%
      \expandafter\new@mathgroup\csname sym#1\endcsname
      \expandafter\new@symbolfont\csname sym#1\endcsname
                        {#2}{#3}{#4}{#5}}%
     {%
      \@font@info{Redeclaring symbol font `#1'}%
      \def\group@elt##1##2{%
          \expandafter\ifx\csname sym#1\endcsname##1%
               \expandafter\addto@hook\expandafter
                  \toks@\expandafter{\expandafter\group@elt
                  \expandafter##1\csname#2/#3/#4/#5\endcsname}%
             \else
               \addto@hook\toks@{\group@elt##1##2}%
             \fi
          }%
      \toks@{}%
      \group@list
      \def\version@elt##1{%
          \expandafter
          \SetSymbolFont@\expandafter##1\csname#2/#3/#4/#5\expandafter
              \endcsname \csname sym#1\endcsname
          }%
      \version@list
     }%
  \else
    \@latex@error{Encoding scheme  `#2' unknown}\@eha
  \fi
  }
\let\group@list\@empty

\def\new@symbolfont#1#2#3#4#5{%
    \toks@\expandafter{\group@list}%
    \edef\group@list{\the\toks@\noexpand\group@elt\noexpand#1%
                     \expandafter\noexpand\csname#2/#3/#4/#5\endcsname}%
    \def\version@elt##1{\toks@\expandafter{##1}%
                   \edef##1{\the\toks@\noexpand\getanddefine@fonts
                   #1\expandafter\noexpand\csname#2/#3/#4/#5\endcsname}%
                  \global\advance\csname c@\expandafter
                                 \@gobble\string##1\endcsname\@ne
                 }%
    \version@list
}

\def\SetSymbolFont#1#2#3#4#5#6{%
 \@tempswafalse
 \edef\@tempb{#3}%
 \def\cdp@elt##1##2##3##4{\def\@tempc{##1}%
      \ifx\@tempb\@tempc \@tempswatrue\fi}%
 \cdp@list
 \if@tempswa
  \expandafter\SetSymbolFont@
    \csname mv@#2\expandafter\endcsname\csname#3/#4/#5/#6\expandafter
    \endcsname \csname sym#1\endcsname
 \else
  \@latex@error{Encoding scheme  `#3' unknown}\@eha
 \fi
}

\def\SetSymbolFont@#1#2#3{%
  \expandafter\in@\expandafter#1\expandafter{\version@list}%
  \ifin@
    \expandafter\in@\expandafter#3\expandafter{\group@list}%
    \ifin@
      \begingroup
        \expandafter\get@cdp\string#2\@nil\@tempa
        \toks@{}%
        \def\install@mathalphabet##1##2{%
             \addto@hook\toks@{\install@mathalphabet##1{##2}}%
            }%
        \def\getanddefine@fonts##1##2{%
          \ifnum##1=#3%
             \addto@hook\toks@{\getanddefine@fonts#3#2}%
             \expandafter\get@cdp\string##2\@nil\@tempb
             \ifx\@tempa\@tempb\else
                \@font@warning{Encoding `\@tempb' has changed
                    to `\@tempa' for symbol font\MessageBreak
                   `\expandafter\@gobblefour\string#3' in the
                    math version `\expandafter
                    \@gobblefour\string#1'}%
             \fi
             \@font@info{%
                Overwriting symbol font
                `\expandafter\@gobblefour\string#3' in
                 version `\expandafter
                \@gobblefour\string#1'\MessageBreak
                \@spaces \expandafter\@gobble\string##2 -->
                         \expandafter\@gobble\string#2}%
          \else
             \addto@hook\toks@{\getanddefine@fonts##1##2}%
          \fi}%
         #1%
         \xdef#1{\the\toks@}%
      \endgroup
    \else
       \@latex@error{Symbol font `\expandafter\@gobblefour\string#3'
                  not defined}\@eha
    \fi
  \else
    \@latex@error{Math version `\expandafter\@gobblefour\string#1'
       is not
       defined}{You probably mispelled the name of the math
       version.^^JOr you have to specify an additional package.}%
  \fi
}

\def\get@cdp#1#2/#3\@nil#4{\def#4{#2}}

\def\DeclareMathAlphabet#1#2#3#4#5{%
 \@tempswafalse
 \edef\@tempb{#2}%
 \def\cdp@elt##1##2##3##4{\def\@tempc{##1}%
      \ifx\@tempb\@tempc \@tempswatrue\fi}%
 \cdp@list
 \if@tempswa
   \expandafter\ifx
   \csname\expandafter\@gobble\string#1\endcsname
   \relax
      \new@mathalphabet#1{#2}{#3}{#4}{#5}%
   \else
     \edef\@tempa{\noexpand\in@{\string\select@group}%
         {\expandafter\meaning\csname @\expandafter
          \@gobble\string#1\endcsname}}%
     \@tempa
     \ifin@
       \@font@info{Redeclaring math alphabet \string#1}%
       \def\version@elt##1{%
         \expandafter\SetMathAlphabet@\expandafter
            ##1\csname#2/#3/#4/#5\expandafter\endcsname
            \csname M@#2\expandafter\endcsname
            \csname @\expandafter\@gobble\string#1\endcsname#1}%
       \version@list
     \else
       \edef\@tempa{\noexpand\in@{\string\use@mathgroup}%
         {\expandafter\meaning\csname @\expandafter
          \@gobble\string#1\endcsname}}%
       \@tempa
       \ifin@
         \@font@info{Redeclaring math alphabet \string#1}%
         \new@mathalphabet#1{#2}{#3}{#4}{#5}%
       \else
         \@latex@error{Command `\string#1' already defined}\@eha
       \fi
     \fi
  \fi
 \else
  \@latex@error{Encoding scheme  `#2' unknown}\@eha
 \fi
  }

\def\new@mathalphabet#1#2#3#4#5{%
    \toks@\expandafter{\alpha@list}%
    \edef#1{\expandafter\noexpand\csname @\expandafter
            \@gobble\string#1\endcsname
            \if/#5/%
               \noexpand\no@alphabet@error
               \noexpand\no@alphabet@error
            \else
               \expandafter\noexpand\csname M@#2\endcsname
               \expandafter\noexpand\csname#2/#3/#4/#5\endcsname
            \fi
           }%
    \toks2\expandafter{#1}%
    \edef\alpha@list{\the\toks@\noexpand\alpha@elt\the\toks2}%
    \def\version@elt##1{\toks@\expandafter{##1}%
                   \edef##1{\the\toks@\install@mathalphabet
                            \expandafter\noexpand
                            \csname @\expandafter\@gobble
                               \string#1\endcsname
                           {\if/#5/%
                             \noexpand\no@alphabet@error
                             \noexpand#1%
                            \else
                             \noexpand\select@group\the\toks2
                            \fi}}%
                 }%
    \version@list
    \expandafter\edef\csname @\expandafter\@gobble
                \string#1\endcsname{\if/#5/%
              \noexpand\no@alphabet@error
              \noexpand#1%
            \else
              \noexpand\select@group\the\toks2
            \fi}%
    \edef#1{\noexpand\protect
            \expandafter\noexpand\csname @\expandafter
            \@gobble\string#1\endcsname}%
}

\let\alpha@list\@empty

\def\SetMathAlphabet#1#2#3#4#5#6{%
 \@tempswafalse
 \edef\@tempb{#3}%
 \def\cdp@elt##1##2##3##4{\def\@tempc{##1}%
      \ifx\@tempb\@tempc \@tempswatrue\fi}%
 \cdp@list
 \if@tempswa
  \expandafter\SetMathAlphabet@
    \csname mv@#2\expandafter\endcsname\csname#3/#4/#5/#6\expandafter
    \endcsname \csname M@#3\expandafter\endcsname
    \csname @\expandafter\@gobble\string#1\endcsname#1%
 \else
  \@latex@error{Encoding scheme  `#3' unknown}\@eha
 \fi
}

\def\SetMathAlphabet@#1#2#3#4#5{%
  \expandafter\in@\expandafter#1\expandafter{\version@list}%
  \ifin@
    \expandafter\in@\expandafter#4\expandafter{\alpha@list}%
    \ifin@
      \begingroup
        \toks@{}%
        \def\getanddefine@fonts##1##2{%
             \addto@hook\toks@{\getanddefine@fonts##1##2}%
            }%
        \def\@tempc##1##2##3##4{%                % for message below
            \expandafter\@gobble\string##4}%
        \def\install@mathalphabet##1##2{%
          \ifx##1#4%
             \addto@hook\toks@
                {\install@mathalphabet#4{\select@group#4#3#2}}%
             \@font@info{Overwriting math alphabet
                `\string#5' in version `\expandafter
                 \@gobblefour\string#1'\MessageBreak
                 \@spaces \@tempc##2 -->
                        \expandafter\@gobble\string#2}%
          \else
             \addto@hook\toks@{\install@mathalphabet##1{##2}}%
          \fi
          }%
        #1%
        \xdef#1{\the\toks@}%
      \endgroup
    \else
       \edef\@tempa{\noexpand\in@{\string\use@mathgroup}{\meaning#4}}%
       \@tempa
       \ifin@
         \def\@tempb##1\use@mathgroup##2##3{%
             \def\@tempb{##3}\def\@tempc{##2}}%
         \expandafter\@tempb#4%
         \begingroup
           \def\install@mathalphabet##1##2{%
               \addto@hook\toks@{\install@mathalphabet##1{##2}}%
               }%
            \def\getanddefine@fonts##1##2{%
              \addto@hook\toks@{\getanddefine@fonts##1##2}%
              \ifnum##1=\@tempb
                 \expandafter
                 \addto@hook\expandafter\toks@
                 \expandafter{\expandafter\install@mathalphabet
                 \expandafter#4\expandafter
                       {\expandafter\select@group\expandafter
                         #4\@tempc##2}}%
              \fi
                      }%
           \def\version@elt##1{%
               \toks@{}%
               ##1%
               \xdef##1{\the\toks@}%
              }%
           \version@list
         \endgroup
         \expandafter\gdef\expandafter\alpha@list\expandafter
             {\alpha@list
              \alpha@elt #4\no@alphabet@error \no@alphabet@error}%
         \gdef#4{\no@alphabet@error #5}% fake things :-)
         \SetMathAlphabet@{#1}{#2}{#3}#4#5%
       \else
         \@latex@error{Command `\string#5' not defined as a
                       math alphabet}%
            {Use \noexpand\DeclareMathAlphabet to define it.}%
       \fi
    \fi
  \else
    \@latex@error{Math version `\expandafter\@gobblefour\string#1'
       is not
       defined}{You probably mispelled the name of the math
       version.^^JOr you have to specify an additional package.}%
  \fi
}

\def\DeclareMathAccent#1#2#3#4{%
  \expandafter\in@\csname sym#3\expandafter\endcsname
     \expandafter{\group@list}%
  \ifin@
    \begingroup
      \count\z@=#4\relax
      \count\tw@\count\z@
      \divide\count\z@\sixt@@n
      \count@\count\z@
      \multiply\count@\sixt@@n
      \advance\count\tw@-\count@
      \if\relax\noexpand#1% is command?
        \edef\@tempa{\noexpand\in@{\string\mathaccent}{\meaning#1}}%
        \@tempa
        \ifin@
          \expandafter\set@mathaccent
             \csname sym#3\endcsname#1#2%
             {\hexnumber@{\count\z@}\hexnumber@{\count\tw@}}%
          \@font@info{Redeclaring math accent \string#1}%
        \else
          \expandafter\ifx
          \csname\expandafter\@gobble\string#1\endcsname
          \relax
            \expandafter\set@mathaccent
               \csname sym#3\endcsname#1#2%
               {\hexnumber@{\count\z@}\hexnumber@{\count\tw@}}%
          \else
            \@latex@error{Command `\string#1' already defined}\@eha
          \fi
        \fi
      \else
       \@latex@error{Not a command name: `\noexpand#1'}\@eha
      \fi
    \endgroup
  \else
    \@latex@error{Symbol font `#3' is not defined}\@eha
  \fi
}

\def\set@mathaccent#1#2#3#4{%
  \xdef#2{\mathaccent"\mathchar@type#3\hexnumber@#1#4\relax}}

\def\DeclareMathSymbol#1#2#3#4{%
  \expandafter\in@\csname sym#3\expandafter\endcsname
     \expandafter{\group@list}%
  \ifin@
    \begingroup
      \count\z@=#4\relax
      \count\tw@\count\z@
      \divide\count\z@\sixt@@n
      \count@\count\z@
      \multiply\count@\sixt@@n
      \advance\count\tw@-\count@
      \if\relax\noexpand#1% is command?
        \edef\@tempa{\noexpand\in@{\string\mathchar}{\meaning#1}}%
        \@tempa
        \ifin@
          \expandafter\set@mathsymbol
             \csname sym#3\endcsname#1#2%
             {\hexnumber@{\count\z@}\hexnumber@{\count\tw@}}%
          \@font@info{Redeclaring math symbol \string#1}%
        \else
            \expandafter\ifx
            \csname\expandafter\@gobble\string#1\endcsname
            \relax
            \expandafter\set@mathsymbol
               \csname sym#3\endcsname#1#2%
               {\hexnumber@{\count\z@}\hexnumber@{\count\tw@}}%
          \else
            \@latex@error{Command `\string#1' already defined}\@eha
          \fi
        \fi
      \else
        \expandafter\set@mathchar
          \csname sym#3\endcsname#1#2
          {\hexnumber@{\count\z@}\hexnumber@{\count\tw@}}%
      \fi
    \endgroup
  \else
    \@latex@error{Symbol font `#3' is not defined}\@eha
  \fi
}

\def\set@mathchar#1#2#3#4{%
  \global\mathcode`#2="\mathchar@type#3\hexnumber@#1#4\relax}

\def\set@mathsymbol#1#2#3#4{%
  \global\mathchardef#2"\mathchar@type#3\hexnumber@#1#4\relax}

\def\DeclareMathDelimiter#1{%
   \if\relax\noexpand#1%
      \def\next{\@DeclareMathDelimiter#1}%
   \else
      \def\next{\@xDeclareMathDelimiter#1}%
   \fi
   \next
}

\def\@DeclareMathDelimiter#1#2#3#4#5#6{%
  \expandafter\in@\csname sym#3\expandafter\endcsname
     \expandafter{\group@list}%
  \ifin@
    \expandafter\in@\csname sym#5\expandafter\endcsname
       \expandafter{\group@list}%
    \ifin@
      \begingroup
        \count\z@=#4\relax
        \count\tw@\count\z@
        \divide\count\z@\sixt@@n
        \count@\count\z@
        \multiply\count@\sixt@@n
        \advance\count\tw@-\count@
        \edef\@tempc{\hexnumber@{\count\z@}\hexnumber@{\count\tw@}}%
      %
        \count\z@=#6\relax
        \count\tw@\count\z@
        \divide\count\z@\sixt@@n
        \count@\count\z@
        \multiply\count@\sixt@@n
        \advance\count\tw@-\count@
        \edef\@tempd{\hexnumber@{\count\z@}\hexnumber@{\count\tw@}}%
      %
        \edef\@tempa{\noexpand\in@{\string\delimiter}{\meaning#1}}%
        \@tempa
        \ifin@
          \expandafter\set@mathdelimiter
             \csname sym#3\expandafter\endcsname
             \csname sym#5\endcsname#1#2%
             \@tempc\@tempd
          \@font@info{Redeclaring math delimiter \string#1}%
        \else
            \expandafter\ifx
            \csname\expandafter\@gobble\string#1\endcsname
            \relax
            \expandafter\set@mathdelimiter
              \csname sym#3\expandafter\endcsname
              \csname sym#5\endcsname#1#2%
              \@tempc\@tempd
          \else
            \@latex@error{Command `\string#1' already defined}\@eha
          \fi
        \fi
      \endgroup
    \else
      \@latex@error{Symbol font `#5' is not defined}\@eha
    \fi
  \else
    \@latex@error{Symbol font `#3' is not defined}\@eha
  \fi
}

\def\@xDeclareMathDelimiter#1#2#3#4#5{%
  \expandafter\in@\csname sym#2\expandafter\endcsname
     \expandafter{\group@list}%
  \ifin@
    \expandafter\in@\csname sym#4\expandafter\endcsname
       \expandafter{\group@list}%
    \ifin@
      \begingroup
        \count\z@=#3\relax
        \count\tw@\count\z@
        \divide\count\z@\sixt@@n
        \count@\count\z@
        \multiply\count@\sixt@@n
        \advance\count\tw@-\count@
        \edef\@tempc{\hexnumber@{\count\z@}\hexnumber@{\count\tw@}}%
      %
        \count\z@=#5\relax
        \count\tw@\count\z@
        \divide\count\z@\sixt@@n
        \count@\count\z@
        \multiply\count@\sixt@@n
        \advance\count\tw@-\count@
        \edef\@tempd{\hexnumber@{\count\z@}\hexnumber@{\count\tw@}}%
        \expandafter\set@@mathdelimiter
           \csname sym#2\expandafter\endcsname\csname sym#4\endcsname#1%
           \@tempc\@tempd
      \endgroup
    \else
      \@latex@error{Symbol font `#4' is not defined}\@eha
    \fi
  \else
    \@latex@error{Symbol font `#2' is not defined}\@eha
  \fi
}

\def\set@mathdelimiter#1#2#3#4#5#6{%
  \xdef#3{\delimiter"\mathchar@type#4\hexnumber@#1#5%
                                     \hexnumber@#2#6\relax}}

\def\set@@mathdelimiter#1#2#3#4#5{%
  \global\delcode`#3="\hexnumber@#1#4\hexnumber@#2#5\relax}

\def\DeclareMathRadical#1#2#3#4#5{%
  \edef\@tempa{\noexpand\in@{\string\radical}{\meaning#1}}%
  \@tempa
  \ifin@
    \expandafter\in@\csname sym#2\expandafter\endcsname
       \expandafter{\group@list}%
    \ifin@
      \expandafter\in@\csname sym#4\expandafter\endcsname
         \expandafter{\group@list}%
      \ifin@
        \begingroup
          \count\z@=#3\relax
          \count\tw@\count\z@
          \divide\count\z@\sixt@@n
          \count@\count\z@
          \multiply\count@\sixt@@n
          \advance\count\tw@-\count@
          \edef\@tempc{\hexnumber@{\count\z@}\hexnumber@{\count\tw@}}%
        %
          \count\z@=#5\relax
          \count\tw@\count\z@
          \divide\count\z@\sixt@@n
          \count@\count\z@
          \multiply\count@\sixt@@n
          \advance\count\tw@-\count@
          \edef\@tempd{\hexnumber@{\count\z@}\hexnumber@{\count\tw@}}%
          \expandafter\set@mathradical
             \csname sym#2\expandafter\endcsname
             \csname sym#4\endcsname#1%
             \@tempc\@tempd
        \endgroup
      \else
        \@latex@error{Symbol font `#4' is not defined}\@eha
      \fi
    \else
      \@latex@error{Symbol font `#2' is not defined}\@eha
    \fi
  \else
    \@latex@error{Command `\string#1' already defined}\@eha
  \fi
}

\def\set@mathradical#1#2#3#4#5{%
  \xdef#3{\delimiter"\hexnumber@#1#4\hexnumber@#2#5\relax}}

\let\mathalpha\relax % just a dummy currently

\def\mathchar@type#1{%
  \ifodd 2#11 #1\else             % is this non-negative number?
    \ifx#1\mathord 0\else
     \ifx#1\mathop   1\else
       \ifx#1\mathbin 2\else
         \ifx#1\mathrel 3\else
           \ifx#1\mathopen 4\else
             \ifx#1\mathclose 5\else
               \ifx#1\mathpunct 6\else
                   7%             % anything else is variable ord
               \fi
             \fi
           \fi
         \fi
       \fi
     \fi
    \fi
  \fi}

\def\DeclareSymbolFontAlphabet#1#2{%
   \expandafter\DeclareSymbolFontAlphabet@
     \csname @\expandafter\@gobble\string#1\endcsname{#2}#1}

\def\DeclareSymbolFontAlphabet@#1#2#3{%
    \@tempswatrue
  \expandafter\in@\csname sym#2\expandafter\endcsname
     \expandafter{\group@list}%
  \ifin@
    \expandafter\in@\expandafter#1\expandafter{\alpha@list}%
    \ifin@
      \@font@info{Redeclaring math alphabet \string#3}%
      \toks@{}%
      \def\alpha@elt##1##2##3{%
          \ifx##1#1\else\addto@hook\toks@{\alpha@elt##1##2##3}\fi}%
      \alpha@list
      \xdef\alpha@list{\the\toks@}%
      \def\version@elt##1{%
          \begingroup
            \toks@{}%
            \def\getanddefine@fonts####1####2{%
               \addto@hook\toks@{\getanddefine@fonts####1####2}}%
            \def\install@mathalphabet####1####2{%
               \ifx####1#1\else
                 \addto@hook\toks@{\install@mathalphabet
                                    ####1{####2}}\fi}%
            ##1%
            \xdef##1{\the\toks@}%
          \endgroup
          }%
      \version@list
    \else
      \expandafter\ifx
      \csname\expandafter\@gobble\string#1\endcsname
      \relax
      \else
        \edef\@tempa{\noexpand\in@{\string\use@mathgroup}{\meaning#1}}%
        \@tempa
        \ifin@
          \@font@info{Redeclaring math alphabet \string#3}%
        \else
          \@tempswafalse
          \@latex@error{Command `\string#3' already defined}\@eha
        \fi
      \fi
    \fi
   \else
     \@tempswafalse
     \@latex@error{Unknown symbol font `#2'}\@eha
   \fi
   \if@tempswa
     \def\group@elt##1##2{%
        \expandafter\ifx\csname sym#2\endcsname##1%
        \expandafter\@tempa\string##2\@nil
        \fi}%
     \def\@tempa##1##2/##3\@nil{%
        \def\@tempa{##2}}%
     \group@list
     \toks@{\relax\ifmmode \else \non@alpherr#1\fi}%
     \edef#1{\the\toks@
             \noexpand\use@mathgroup
             \expandafter\noexpand\csname M@\@tempa\endcsname
             \csname sym#2\endcsname}%
     \def#3{\protect#1}%
   \fi
}
%%    \end{macrocode}                % split file for small TeX's
%%    \begin{macrocode}
%%% File: lfonts
\def\fileversion{v2.1o}
\def\filedate{1994/05/19}
\def\docdate {1994/01/12}

%% File `lfonts.dtx'.
%% Copyright (C) 1989-1994 Frank Mittelbach and Rainer Sch\"opf,
%% all rights reserved.
\DeclareMathVersion{normal}
\DeclareMathVersion{bold}
\font\tenex = cmex10
\DeclareRobustCommand\rmfamily
        {\not@math@alphabet\rmfamily\mathrm
         \fontfamily\rmdefault\selectfont}
\DeclareRobustCommand\sffamily
        {\not@math@alphabet\sffamily\mathsf
         \fontfamily\sfdefault\selectfont}
\DeclareRobustCommand\ttfamily
        {\not@math@alphabet\ttfamily\mathtt
         \fontfamily\ttdefault\selectfont}
\DeclareRobustCommand\bfseries
        {\not@math@alphabet\bfseries\mathbf
         \fontseries\bfdefault\selectfont}
\DeclareRobustCommand\mdseries
        {\not@math@alphabet\mdseries\relax
         \fontseries\mddefault\selectfont}
\DeclareRobustCommand\upshape
        {\not@math@alphabet\upshape\relax
         \fontshape\updefault\selectfont}
\DeclareRobustCommand\slshape
        {\not@math@alphabet\slshape\relax
         \fontshape\sldefault\selectfont}
\DeclareRobustCommand\scshape
        {\not@math@alphabet\scshape\relax
         \fontshape\scdefault\selectfont}
\DeclareRobustCommand\itshape
        {\not@math@alphabet\itshape\mathit
         \fontshape\itdefault\selectfont}
\DeclareRobustCommand\em
        {\@nomath\em \ifdim \fontdimen\@ne\font >\z@
                       \upshape \else \itshape \fi}
\def\not@math@alphabet#1#2{%
   \relax
   \ifmmode
     \@latex@error{Command \noexpand#1invalid in math mode}%
        {%
         Please
         \ifx#2\relax
            define a new math alphabet^^J%
            if you want to use a special font in math mode%
          \else
            use the math alphabet #2instead of
            the #1command%
         \fi
         .
        }%
   \fi}
\def\boldmath{\@nomath\boldmath
              \mathversion{bold}}
\def\unboldmath{\@nomath\unboldmath
              \mathversion{normal}}
\def\math@version{normal}
\def\newfont#1#2{\@ifdefinable#1{\global
                        \font#1=#2\relax}}
\def\symbol#1{\char #1\relax}
\def\@setfontsize#1#2#3{\@nomath#1%
    \ifx\protect\relax
      \let\@currsize#1%
    \fi
    \fontsize{#2}{#3}\selectfont}
\def\@setsize#1#2#3#4{\@setfontsize#1{#4}{#2}}
\def\oldstylenums#1{%
   \begingroup
    \spaceskip\fontdimen\tw@\font
    \usefont{OML}{cmm}{\f@series}{it}%
    \mathgroup\symletters #1%
   \endgroup
}
\def\hexnumber@#1{\ifcase\number#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}
\def\operator@font{\mathgroup\symoperators}
\def\log{\mathop{\operator@font log}\nolimits}
\def\lg{\mathop{\operator@font lg}\nolimits}
\def\ln{\mathop{\operator@font ln}\nolimits}
\def\lim{\mathop{\operator@font lim}}
\def\limsup{\mathop{\operator@font lim\,sup}}
\def\liminf{\mathop{\operator@font lim\,inf}}
\def\sin{\mathop{\operator@font sin}\nolimits}
\def\arcsin{\mathop{\operator@font arcsin}\nolimits}
\def\sinh{\mathop{\operator@font sinh}\nolimits}
\def\cos{\mathop{\operator@font cos}\nolimits}
\def\arccos{\mathop{\operator@font arccos}\nolimits}
\def\cosh{\mathop{\operator@font cosh}\nolimits}
\def\tan{\mathop{\operator@font tan}\nolimits}
\def\arctan{\mathop{\operator@font arctan}\nolimits}
\def\tanh{\mathop{\operator@font tanh}\nolimits}
\def\cot{\mathop{\operator@font cot}\nolimits}
\def\coth{\mathop{\operator@font coth}\nolimits}
\def\sec{\mathop{\operator@font sec}\nolimits}
\def\csc{\mathop{\operator@font csc}\nolimits}
\def\max{\mathop{\operator@font max}}
\def\min{\mathop{\operator@font min}}
\def\sup{\mathop{\operator@font sup}}
\def\inf{\mathop{\operator@font inf}}
\def\arg{\mathop{\operator@font arg}\nolimits}
\def\ker{\mathop{\operator@font ker}\nolimits}
\def\dim{\mathop{\operator@font dim}\nolimits}
\def\hom{\mathop{\operator@font hom}\nolimits}
\def\det{\mathop{\operator@font det}}
\def\exp{\mathop{\operator@font exp}\nolimits}
\def\Pr{\mathop{\operator@font Pr}}
\def\gcd{\mathop{\operator@font gcd}}
\def\deg{\mathop{\operator@font deg}\nolimits}

\def\bmod{\mskip-\medmuskip\mkern5mu
  \mathbin{\operator@font mod}\penalty900\mkern5mu\mskip-\medmuskip}
\def\pmod#1{\allowbreak\mkern18mu({\operator@font mod}\,\,#1)}
\def\nfss@text#1{{\mbox{#1}}}

\DeclareRobustCommand\copyright
    {{\ooalign{\hfil
     \raise.07ex\hbox{\mdseries\upshape c}\hfil\crcr
     \mathhexbox20D}}}
\DeclareRobustCommand\normalfont
                 {\usefont\encodingdefault
                          \familydefault
                          \seriesdefault
                          \shapedefault}
\let\reset@font\normalfont
\def\not@base#1{\@latex@error
  {Command \noexpand#1not provided in base LaTeX2e}%
  {Load the latexsym or the amsfonts package to
   define this symbol}}
\def\mho{\not@base\mho}
\def\Join{\not@base\Join}
\def\Box{\not@base\Box}
\def\Diamond{\not@base\Diamond}
\def\leadsto{\not@base\leadsto}
\def\sqsubset{\not@base\sqsubset}
\def\sqsupset{\not@base\sqsupset}
\def\lhd{\not@base\lhd}
\def\unlhd{\not@base\unlhd}
\def\rhd{\not@base\rhd}
\def\unrhd{\not@base\unrhd}
\DeclareErrorFont{OT1}{cmr}{m}{n}{10}  %%% don't modify this setting
                                       %%% overwrite it in fontdef.cfg
                                       %%% if necessary
\IfFileExists{fontdef.cfg}
           {\typeout{*************************************^^J%
                     *^^J%
                     * Local config file fontdef.cfg used^^J%
                     *^^J%
                     *************************************}%
            \@@input fontdef.cfg }
           {\@@input fontdef.ltx }
\IfFileExists{preload.cfg}
           {\typeout{*************************************^^J%
                     *^^J%
                     * Local config file preload.cfg used^^J%
                     *^^J%
                     *************************************}%
            \@@input preload.cfg }
           {\@@input preload.ltx }
\let\@acci\' \let\@accii\` \let\@acciii\=
\def\mit{\warn@rel@i\mit\mathnormal
         \mathnormal}
\def\cal{\warn@rel@i\cal\mathcal
         \mathcal}

%% File: ltfntcmd
%%
%% \CharacterTable
%%  {Upper-case    \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
%%   Lower-case    \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
%%   Digits        \0\1\2\3\4\5\6\7\8\9
%%   Exclamation   \!     Double quote  \"     Hash (number) \#
%%   Dollar        \$     Percent       \%     Ampersand     \&
%%   Acute accent  \'     Left paren    \(     Right paren   \)
%%   Asterisk      \*     Plus          \+     Comma         \,
%%   Minus         \-     Point         \.     Solidus       \/
%%   Colon         \:     Semicolon     \;     Less than     \<
%%   Equals        \=     Greater than  \>     Question mark \?
%%   Commercial at \@     Left bracket  \[     Backslash     \\
%%   Right bracket \]     Circumflex    \^     Underscore    \_
%%   Grave accent  \`     Left brace    \{     Vertical bar  \|
%%   Right brace   \}     Tilde         \~}
\def \DeclareTextFontCommand #1#2{%
  \DeclareRobustCommand#1[1]{%
    \ifmmode
      \nfss@text{#2 ##1}%
    \else
      \leavevmode
      {\check@nocorr{##1}%
       #2\check@icl ##1\check@icr
       \expandafter}%
    \fi
                       }%
}
\DeclareTextFontCommand{\textrm}{\rmfamily}
\DeclareTextFontCommand{\textsf}{\sffamily}
\DeclareTextFontCommand{\texttt}{\ttfamily}
\DeclareTextFontCommand{\textnormal}{\normalfont}
\DeclareTextFontCommand{\textbf}{\bfseries}
\DeclareTextFontCommand{\textmd}{\mdseries}
\DeclareTextFontCommand{\textit}{\itshape}
\DeclareTextFontCommand{\textsl}{\slshape}
\DeclareTextFontCommand{\textsc}{\scshape}
\DeclareTextFontCommand{\textup}{\upshape}
\DeclareTextFontCommand{\emph}{\em}
\let \nocorr \relax
\def \check@nocorr #1{\check@nocorr@ #1\nocorr\@nil}
\def \check@nocorr@ #1#2\nocorr#3\@nil {%
  \let \check@icl \maybe@ic
  \def \check@icr {\aftergroup \maybe@ic}%
  \def \@tempa {\nocorr}%
  \def \@tempb {#1}%
  \def \@tempc {#3}%
  \ifx \@tempa \@tempb
    \ifx \@tempc \@empty
      \let \check@icl \@empty
    \else
      \let \check@icl \@empty
      \let \check@icr \@empty
    \fi
  \else
    \ifx \@tempc \@empty
    \else
      \let \check@icr \@empty
    \fi
  \fi
}
\def \maybe@ic {\futurelet\@let@token\maybe@ic@}
\def \maybe@ic@ {%
  \ifdim \fontdimen\@ne\font>\z@
  \else
    \@tempswatrue
    \expandafter\@tfor\expandafter\@tempa\expandafter:\expandafter=%
        \nocorrlist
    \do \test@next
    \if@tempswa \sw@slant \fi
  \fi
}
\def \test@next {%
  \expandafter\let\expandafter\@tempb\expandafter=\@tempa\relax
  \ifx\@tempb\@let@token
    \@tempswafalse
    \let\@nextwhile\@fornoop
    \expandafter\@gobblefour
  \fi
}
\def \sw@slant {%
  \ifdim \lastskip=\z@
    \fix@penalty
  \else
    \skip@ \lastskip
    \unskip
    \fix@penalty
    \hskip \skip@
  \fi
}
\def \fix@penalty {%
  \ifnum \lastpenalty=\z@
    \@@italiccorr
  \else
    \count@ \lastpenalty
    \unpenalty
    \@@italiccorr
    \penalty \count@
  \fi
}
\def \nocorrlist {,.}
\ifx \nfss@text\undefined
  \def \nfss@text {\leavevmode\hbox}
\fi
\def \DeclareOldFontCommand #1#2#3{%
  \DeclareRobustCommand #1{\@fontswitch {#2}{#3}}%
}
\def \@fontswitch #1#2{%
  \ifmmode
     \let \math@bgroup \relax
     \def \math@egroup {\let \math@bgroup \@@math@bgroup
                        \let \math@egroup \@@math@egroup}%
     #2%
  \else
     #1%
  \fi
}
\let \@@math@bgroup \math@bgroup
\let \@@math@egroup \math@egroup
\@onlypreamble \DeclareTextFontCommand
\@onlypreamble \DeclareOldFontCommand
\def\normalsize{%
  \@latex@error {The font size command \noexpand\normalsize
              is not defined: there is probably something wrong with
              the class file}\@eha
}
%%% File: ltcounts
\message{env. counters,}
\def\setcounter#1#2{\@ifundefined{c@#1}{\@nocounterr{#1}}%
{\global\csname c@#1\endcsname#2\relax}}
\def\addtocounter#1#2{\@ifundefined{c@#1}{\@nocounterr{#1}}%
{\global\advance\csname c@#1\endcsname #2\relax}}
\def\newcounter#1{\expandafter\@ifdefinable \csname c@#1\endcsname
    {\@definecounter{#1}}\@ifnextchar[{\@newctr{#1}}{}}
\def\value#1{\csname c@#1\endcsname}
\def\@newctr#1[#2]{%
  \@ifundefined{c@#2}{\@nocounterr{#2}}{\@addtoreset{#1}{#2}}}
\def\stepcounter#1{\addtocounter{#1}\@ne
    \begingroup\let\@elt\@stpelt \csname cl@#1\endcsname\endgroup}
\def\@stpelt#1{\global\csname c@#1\endcsname \z@}
\def\cl@@ckpt{\@elt{page}}
\def\@definecounter#1{\expandafter\newcount\csname c@#1\endcsname
     \setcounter{#1}0 \expandafter\gdef\csname cl@#1\endcsname{}%
     \@addtoreset
     {#1}{@ckpt}\expandafter\gdef\csname p@#1\endcsname{}\expandafter
     \gdef\csname the#1\endcsname{\arabic{#1}}}
\def\@addtoreset#1#2{\expandafter\@cons\csname cl@#2\endcsname {{#1}}}
\def\arabic#1{\@arabic{\csname c@#1\endcsname}}
\def\roman#1{\@roman{\csname c@#1\endcsname}}
\def\Roman#1{\@Roman{\csname c@#1\endcsname}}
\def\alph#1{\@alph{\csname c@#1\endcsname}}
\def\Alph#1{\@Alph{\csname c@#1\endcsname}}
\def\fnsymbol#1{\@fnsymbol{\csname c@#1\endcsname}}
\def\@arabic#1{\number #1}  %% changed 29 Apr 86
\def\@roman#1{\romannumeral #1}
\def\@Roman#1{\expandafter\uppercase\expandafter{\romannumeral #1}}
\def\@alph#1{%
  \ifcase#1\or a\or b\or c\or d\or e\or f\or g\or h\or i\or j\or
   k\or l\or m\or n\or o\or p\or q\or r\or s\or t\or u\or v\or w\or x\or
    y\or z\else\@ctrerr\fi}
\def\@Alph#1{%
  \ifcase#1\or A\or B\or C\or D\or E\or F\or G\or H\or I\or J\or
   K\or L\or M\or N\or O\or P\or Q\or R\or S\or T\or U\or V\or W\or X\or
    Y\or Z\else\@ctrerr\fi}
\def\@fnsymbol#1{\ifcase#1\or *\or \dagger\or \ddagger\or
   \mathchar "278\or \mathchar "27B\or \|\or **\or \dagger\dagger
   \or \ddagger\ddagger \else\@ctrerr\fi\relax}
%%% File: ltpageno
\message{page nos.,}
\countdef\c@page=0 \c@page=1
\def\cl@page{}
\def\pagenumbering#1{%
  \global\c@page \@ne \gdef\thepage{\csname @#1\endcsname
   \c@page}}
%%% File: ltxref
\message{x-ref,}
\newif\ifG@refundefined
\def\G@refundefinedtrue{\global\let\ifG@refundefined\iftrue}
\def\G@refundefinedfalse{\global\let\ifG@refundefined\iffalse}
\def\@setref#1#2#3{%
  \ifx#1\relax
   \protect\G@refundefinedtrue
   \nfss@text{\reset@font\bfseries ??}%
   \@latex@warning{Reference `#3' on page \thepage \space
             undefined}%
  \else
   \expandafter#2#1\null
  \fi}
\def\ref#1{\expandafter\@setref\csname r@#1\endcsname\@firstoftwo{#1}}
\def\pageref#1{\expandafter\@setref\csname r@#1\endcsname
                                   \@secondoftwo{#1}}
\def\newlabel#1#2{\@ifundefined{r@#1}%
  {}%
  {\global\@multiplelabelstrue
   \@latex@warning@no@line{Label `#1' multiply defined}}%
   \global\@namedef{r@#1}{#2}}
\newif\if@multiplelabels
\def\label#1{\@bsphack\if@filesw {\let\thepage\relax
   \let\protect\@unexpandable@noexpand
   \edef\@tempa{\write\@auxout{\string
      \newlabel{#1}{{\@currentlabel}{\thepage}}}}%
   \expandafter}\@tempa
   \if@nobreak \ifvmode\nobreak\fi\fi\fi\@esphack}
\def\refstepcounter#1{\stepcounter{#1}\let\@tempa\protect
\let\protect\@unexpandable@protect
\edef\@currentlabel{\csname p@#1\endcsname\csname the#1\endcsname}%
\let\protect\@tempa}
\def\@currentlabel{}
%%% File: ltlength
\message{lengths,}
\def\newlength#1{\@ifdefinable#1{\newskip#1}}
\def\setlength#1#2{#1#2\relax}
\def\addtolength#1#2{\advance#1 #2\relax}
\def\@settodim#1#2#3{\setbox\@tempboxa\hbox{{#3}}#2#1\@tempboxa
       \setbox\@tempboxa\box\voidb@x}
\def\settoheight{\@settodim\ht}
\def\settodepth {\@settodim\dp}
\def\settowidth {\@settodim\wd}
\def\@settopoint#1{\divide#1\p@\multiply#1\p@}
%%% File: ltmiscen
\message{environments,}
\def\@currenvir{document}
\@onlypreamble\document
\@onlypreamble\documentstyle
\@onlypreamble\@documentstyle

\@onlypreamble\@options
\@onlypreamble\@preamblecmds
\@onlypreamble\@optionlist
\@onlypreamble\@optionfiles

\@onlypreamble\nofiles
\@onlypreamble\includeonly
\@onlypreamble\makeindex
\@onlypreamble\makeglossary
\newif\if@ignore
\def\enddocument{%
   \@checkend{document}%
   \@enddocumenthook
   \clearpage
   \begingroup
     \if@filesw
       \immediate\closeout\@mainaux
       \def\@setckpt##1##2{}%
       \def\newlabel{\@testdef r}%
       \def\bibcite{\@testdef b}%
       \@tempswafalse
       \makeatletter \input\jobname.aux
       \ifdim \font@submax >\fontsubfuzz\relax
         \@font@warning{Size substitutions with differences\MessageBreak
                    up to \font@submax\space have occured.\@gobbletwo}%
       \fi
       \ifG@defaultsubs
         \@font@warning{Some font shapes were not available, defaults
                       substituted.\@gobbletwo}%
       \fi
       \ifG@refundefined\@latex@warning@no@line{There were
                         undefined references}\fi
       \if@multiplelabels
         \@latex@warning@no@line{There were multiply-defined labels}%
       \else
         \if@tempswa
           \@latex@warning@no@line{Label(s) may have changed.
                Rerun to get cross-references right}%
         \fi
       \fi
     \fi
  \endgroup\deadcycles\z@\@@end}
\def\@testdef #1#2#3{%
  \def\@tempa{#3}\expandafter \ifx \csname #1@#2\endcsname
 \@tempa  \else \@tempswatrue \fi}
\long\def\@writefile#1#2{\@ifundefined{tf@#1}{}{%
   \let\protect\@unexpandable@protect
   \immediate\write\csname tf@#1\endcsname{#2}%
   \let\protect\relax}}
 % \long added 8 Feb 90, as suggested by Chris Rowley
\def\stop{\clearpage\deadcycles\z@\let\par\@@par\@@end}
\everypar{\@nodocument} %% To get an error if text appears before the
\nullfont               %% \begin{document}
\def\begin#1{\@ifundefined{#1}{\def\@tempa{\@latex@error{Environment #1
  undefined}\@eha}}{\def\@tempa{\def\@currenvir{#1}%
  \edef\@currenvline{\on@line}%
  \csname #1\endcsname}}\global\@ignorefalse %% \global...added 2 May 90
     \begingroup\@endpefalse\@tempa}
\def\end#1{\csname end#1\endcsname\@checkend{#1}%
  \expandafter\endgroup \if@endpe \@doendpe \fi
  \if@ignore \global\@ignorefalse \ignorespaces\fi}
\def\@checkend#1{\def\@tempa{#1}\ifx
      \@tempa\@currenvir \else\@badend{#1}\fi}
\let\@currenvline\empty
\message{math,}
\def\({\relax\ifmmode\@badmath\else$%%$BRACE MATCH HACK
\fi}
\def\){\relax\ifmmode\ifinner$\else\@badmath%%$ BRACE MATCH HACK
\fi\else \@badmath\fi}
\def\[{\relax\ifmmode\@badmath\else
    \ifvmode
      \nointerlineskip \makebox[.6\linewidth]\fi$$%%$$ BRACE MATCH HACK
\fi}
\def\]{\relax\ifmmode\ifinner\@badmath\else$$\fi%%$$ BRACE MATCH HACK
        \else \@badmath \fi\ignorespaces}
\let\math=\(
\let\endmath=\)
\def\displaymath{\[}
\def\enddisplaymath{\]\global\@ignoretrue}
\@definecounter{equation}
\def\equation{$$ % $$ BRACE MATCHING HACK
\refstepcounter{equation}}
\def\endequation{\eqno \hbox{\@eqnnum}% $$ BRACE MATCHING HACK
$$\global\@ignoretrue}
\def\@eqnnum{{\reset@font\rmfamily (\theequation)}}
\def\stackrel#1#2{\mathrel{\mathop{#2}\limits^{#1}}}
\def\frac#1#2{{\begingroup#1\endgroup\over#2}}
\let\@@sqrt=\sqrt
\def\sqrt{\@ifnextchar[\@sqrt\@@sqrt}
\def\@sqrt[#1]{\root #1\of}
\let\:=\>
\newcount\@eqcnt
\newcount\@eqpen
\newif\if@eqnsw\@eqnswtrue
\@centering = 0pt plus 1000pt
\def\eqnarray{\stepcounter{equation}%
\def\@currentlabel{\p@equation\theequation}%
\global\@eqnswtrue\m@th
\global\@eqcnt\z@\tabskip\@centering\let\\\@eqncr
$$\everycr{}\halign to\displaywidth\bgroup\hskip\@centering
  $\displaystyle\tabskip\z@skip{##}$\@eqnsel&\global\@eqcnt\@ne
  \hskip \tw@\arraycolsep \hfil${##}$\hfil
  &\global\@eqcnt\tw@ \hskip \tw@\arraycolsep
  $\displaystyle{##}$\hfil
   \tabskip\@centering&\global\@eqcnt\thr@@
       \hbox to\z@\bgroup\hss##\egroup\tabskip\z@skip\cr}

\def\endeqnarray{\@@eqncr\egroup
      \global\advance\c@equation\m@ne$$\global\@ignoretrue}

\let\@eqnsel=\relax
\def\nonumber{\global\@eqnswfalse}
\def\@eqncr{{\ifnum0=`}\fi\@ifstar{\global\@eqpen\@M
    \@yeqncr}{\global\@eqpen\interdisplaylinepenalty \@yeqncr}}
\def\@yeqncr{\@ifnextchar [\@xeqncr{\@xeqncr[\z@skip]}}
\def\@xeqncr[#1]{\ifnum0=`{\fi}\@@eqncr
   \noalign{\penalty\@eqpen\vskip\jot\vskip #1\relax}}
\def\@@eqncr{\let\@tempa\relax
    \ifcase\@eqcnt \def\@tempa{& & &}\or \def\@tempa{& &}%
     \or \def\@tempa{&}\else
       \let\@tempa\@empty
       \@latex@error{Too many columns in eqnarray environment}\@ehc\fi
     \@tempa \if@eqnsw\@eqnnum\stepcounter{equation}\fi
     \global\@eqnswtrue\global\@eqcnt\z@\cr}
\let\@seqncr=\@eqncr
\@namedef{eqnarray*}{\def\@eqncr{\nonumber\@seqncr}\eqnarray}
\@namedef{endeqnarray*}{\nonumber\endeqnarray}
\def\lefteqn#1{\hbox to\z@{$\displaystyle #1$\hss}}
\DeclareRobustCommand\ensuremath[1]{\ifmmode{#1}\else$#1$\fi}
\message{center,}
\def\@centercr{\ifhmode \unskip\else \@nolnerr\fi
       \par\@ifstar{\penalty \@M\@xcentercr}\@xcentercr}
\def\@xcentercr{\addvspace{-\parskip}\@ifnextchar
    [\@icentercr\ignorespaces}
\def\@icentercr[#1]{\vskip #1\ignorespaces}
\def\center{\trivlist \centering\item\relax}
\def\centering{\let\\\@centercr\rightskip\@flushglue\leftskip\@flushglue
\parindent\z@\parfillskip\z@skip}
\let\endcenter=\endtrivlist
\newskip\@rightskip \@rightskip \z@skip
\def\flushleft{\trivlist \raggedright\item\relax}
\def\raggedright{%
  \let\\\@centercr\@rightskip\@flushglue \rightskip\@rightskip
  \leftskip\z@skip
  \parindent\z@}
\let\endflushleft=\endtrivlist
\def\flushright{\trivlist \raggedleft\item\relax}
\def\raggedleft{\let\\\@centercr\rightskip\z@skip\leftskip\@flushglue
  \parindent\z@\parfillskip\z@skip}
\let\endflushright=\endtrivlist
\message{verbatim,}
{\catcode`\^^M=13 \gdef\@gobblecr{\@ifnextchar
\@gobble\ignorespaces}}
{\catcode`\ =\active%
\gdef\@vobeyspaces{\catcode`\ \active\let \@xobeysp}}
\def\@xobeysp{\leavevmode\penalty10000\ }
\begingroup \catcode `|=0 \catcode `[= 1
\catcode`]=2 \catcode `\{=12 \catcode `\}=12
\catcode`\\=12 |gdef|@xverbatim#1\end{verbatim}[#1|end[verbatim]]
|gdef|@sxverbatim#1\end{verbatim*}[#1|end[verbatim*]]
|endgroup
\def\@gobble#1{}
\def\@verbatim{\trivlist \item\relax
  \if@minipage\else\vskip\parskip\fi
  \leftskip\@totalleftmargin\rightskip\z@skip
  \parindent\z@\parfillskip\@flushglue\parskip\z@skip
  \@@par
  \@tempswafalse
  \def\par{%
    \if@tempswa
      \leavevmode \null \@@par\penalty\interlinepenalty
    \else
      \@tempswatrue
      \ifhmode\@@par\penalty\interlinepenalty\fi
    \fi}%
  \obeylines \verbatim@font \@noligs
  \let\do\@makeother \dospecials
  \everypar \expandafter{\the\everypar \unpenalty}%
}
\def\verbatim{\@verbatim \frenchspacing\@vobeyspaces \@xverbatim}
\def\endverbatim{\if@newlist \leavevmode\fi\endtrivlist}
\def\verbatim@font{\normalfont\ttfamily}
\@namedef{verbatim*}{\@verbatim\@sxverbatim}
\expandafter\let\csname endverbatim*\endcsname =\endverbatim
\def\@makeother#1{\catcode`#1=12\relax}
\let\verb@balance@group\@empty

\def\verb@egroup{\global\let\verb@balance@group\@empty\egroup}

\begingroup
  \obeylines%
  \gdef\verb@eol@error{\obeylines%
    \def^^M{\verb@egroup\@latex@error{%
            \noexpand\verb ended by end of line}\@ehc}}%
\endgroup
\def\verb{\relax\ifmmode\hbox\else\leavevmode\null\fi
  \bgroup \@noligs
    \verbatim@font \verb@eol@error \let\do\@makeother \dospecials
    \@ifstar\@sverb\@verb}
\def\@sverb#1{%
  \catcode`#1\active
  \lccode`\~`#1%
  \gdef\verb@balance@group{\verb@egroup
     \@latex@error{\noexpand\verb illegal in command argument}\@ehc}%
  \aftergroup\verb@balance@group
  \lowercase{\let~\verb@egroup}}%
\def\@verb{\@vobeyspaces \frenchspacing \@sverb}
\def\verbatim@nolig@list{\do\`\do\<\do\>\do\,\do\'\do\-}
\def\do@noligs#1{%
  \catcode`#1\active
  \begingroup
     \lccode`\~=`#1\relax
     \lowercase{\endgroup\def~{\leavevmode\kern\z@\char`#1}}}
\def\@noligs{\let\do\do@noligs \verbatim@nolig@list}
\newskip\topsep
\newskip\partopsep
\newskip\itemsep
\newskip\parsep
\newskip\@topsep
\newskip\@topsepadd
\newskip\@outerparskip
\newdimen\leftmargin
\newdimen\rightmargin
\newdimen\listparindent
\newdimen\itemindent
\newdimen\labelwidth
\newdimen\labelsep
\newdimen\linewidth
\newdimen\@totalleftmargin \@totalleftmargin=\z@
\newdimen\leftmargini
\newdimen\leftmarginii
\newdimen\leftmarginiii
\newdimen\leftmarginiv
\newdimen\leftmarginv
\newdimen\leftmarginvi
\newcount\@listdepth \@listdepth=0
\newcount\@itempenalty
\newcount\@beginparpenalty
\newcount\@endparpenalty
\newbox\@labels
\newif\if@inlabel \@inlabelfalse
\newif\if@newlist   \@newlistfalse
\newif\if@noparitem \@noparitemfalse
\newif\if@noparlist \@noparlistfalse
\newif\if@noitemarg \@noitemargfalse
\newif\if@nmbrlist  \@nmbrlistfalse
\def\list#1#2{\ifnum \@listdepth >5\relax \@toodeep
     \else \global\advance\@listdepth\@ne \fi
  \rightmargin \z@ \listparindent\z@ \itemindent\z@
  \csname @list\romannumeral\the\@listdepth\endcsname
  \def\@itemlabel{#1}\let\makelabel\@mklab \@nmbrlistfalse #2\relax
  \@trivlist
  \parskip\parsep \parindent\listparindent
  \advance\linewidth -\rightmargin \advance\linewidth -\leftmargin
  \advance\@totalleftmargin \leftmargin
  \parshape \@ne \@totalleftmargin \linewidth
  \ignorespaces}
\newcount\par@deathcycles

\def\@trivlist{\@topsepadd\topsep
  \if@noskipsec \leavevmode \fi
  \ifvmode \advance\@topsepadd\partopsep \else \unskip\par\fi
  \if@inlabel \@noparitemtrue \@noparlisttrue
    \else \@noparlistfalse \@topsep\@topsepadd \fi
    \advance\@topsep \parskip
  \leftskip\z@skip\rightskip\@rightskip \parfillskip\@flushglue
  \par@deathcycles\z@
  \@setpar{\if@newlist
             \advance\par@deathcycles\@ne
             \ifnum\par@deathcycles>\@m
               \@noitemerr{\@@par}\fi
           \else{\@@par}\fi}%
  \global\@newlisttrue \@outerparskip\parskip}
\def\trivlist{\parsep\parskip\@nmbrlistfalse
  \@trivlist \labelwidth\z@ \leftmargin\z@
  \itemindent\z@
  \let\@itemlabel\@empty
  \def\makelabel##1{##1}}
\def\endlist{\global\advance\@listdepth\m@ne
    \endtrivlist}
\def\@mklab#1{\hfil #1}
\def\item{\@inmatherr\item
  \@ifnextchar [\@item{\@noitemargtrue \@item[\@itemlabel]}}
\def\@donoparitem{\@noparitemfalse
   \global\setbox\@labels\hbox{\hskip -\leftmargin
                               \unhbox\@labels
                                \hskip \leftmargin}\if@minipage\else
  \@tempskipa\lastskip
  \vskip -\lastskip \advance\@tempskipa\@outerparskip
  \advance\@tempskipa -\parskip \vskip\@tempskipa\fi}
\def\@item[#1]{\if@noparitem \@donoparitem
  \else \if@inlabel \indent \par \fi
         \ifhmode \unskip\unskip \par \fi
         \if@newlist \if@nobreak \@nbitem \else
                        \addpenalty\@beginparpenalty
                        \addvspace\@topsep \addvspace{-\parskip}\fi
           \else \addpenalty\@itempenalty \addvspace\itemsep
          \fi
    \global\@inlabeltrue
\fi
\everypar{\global\@minipagefalse\global\@newlistfalse
          \if@inlabel
            \global\@inlabelfalse
            \kern -\parindent
            \box\@labels
            \penalty\z@
          \fi
          \everypar{}}%
\global\@nobreakfalse
\if@noitemarg \@noitemargfalse \if@nmbrlist
      \refstepcounter{\@listctr}\fi \fi
\sbox\@tempboxa{\makelabel{#1}}%
\global\setbox\@labels
 \hbox{\unhbox\@labels \hskip \itemindent
       \hskip -\labelwidth \hskip -\labelsep
       \ifdim \wd\@tempboxa >\labelwidth
                \box\@tempboxa
          \else \hbox to\labelwidth {\unhbox\@tempboxa}\fi
       \hskip \labelsep}\ignorespaces}
\def\makelabel#1{\@latex@error{Lonely \string\item--perhaps a missing
        list environment}\@ehc}
\def\@nbitem{\@tempskipa\@outerparskip \advance\@tempskipa -\parskip
              \addvspace{\@tempskipa}}
\def\usecounter#1{\@nmbrlisttrue\def\@listctr{#1}\setcounter{#1}\z@}
\newcount\@enumdepth \@enumdepth = 0
\@definecounter{enumi}
\@definecounter{enumii}
\@definecounter{enumiii}
\@definecounter{enumiv}
\def\enumerate{\ifnum \@enumdepth >3 \@toodeep\else
      \advance\@enumdepth \@ne
      \edef\@enumctr{enum\romannumeral\the\@enumdepth}\list
      {\csname label\@enumctr\endcsname}{\usecounter
        {\@enumctr}\def\makelabel##1{\hss\llap{##1}}}\fi}
\let\endenumerate =\endlist
\newcount\@itemdepth \@itemdepth = 0
\def\itemize{%
  \ifnum \@itemdepth >3 \@toodeep\else \advance\@itemdepth \@ne
  \edef\@itemitem{labelitem\romannumeral\the\@itemdepth}%
  \list{\csname\@itemitem\endcsname}%
       {\def\makelabel##1{\hss\llap{##1}}}\fi}
\let\enditemize =\endlist
%%% File: ltboxes
\message{boxes,}
\def\makebox{%
  \leavevmode
  \@ifnextchar(%)
    \@makepicbox
    {\@ifnextchar[\@makebox\mbox}}
\def\mbox#1{\leavevmode\hbox{#1}}
\def\@makebox[#1]{%
  \@ifnextchar [{\@imakebox[#1]}{\@imakebox[#1][c]}}
\long\def\@begin@tempboxa#1#2{%
   \begingroup
     \setbox\@tempboxa#1{\color@begingroup#2\color@endgroup}%
     \def\width{\wd\@tempboxa}%
     \def\height{\ht\@tempboxa}%
     \def\depth{\dp\@tempboxa}%
     \let\totalheight\@ovri
     \totalheight\height
     \advance\totalheight\depth}
\let\@end@tempboxa\endgroup
\def\bm@c{\hss\unhbox\@tempboxa\hss}
\def\bm@l{\unhbox\@tempboxa\hss}\let\bm@t\bm@l
\def\bm@r{\hss\unhbox\@tempboxa}\let\bm@b\bm@r
\def\bm@s{\unhbox\@tempboxa}
\long\def\@imakebox[#1][#2]#3{%
  \@begin@tempboxa\hbox{#3}%
    \setlength\@tempdima{#1}%       support calc
    \hbox to\@tempdima{\csname bm@#2\endcsname}%
  \@end@tempboxa}
\def\@makepicbox(#1,#2){%
  \@ifnextchar[{\@imakepicbox(#1,#2)}{\@imakepicbox(#1,#2)[]}}
\long\def\@imakepicbox(#1,#2)[#3]#4{%
  \vbox to#2\unitlength
   {\let\mb@b\vss \let\mb@l\hss\let\mb@r\hss
    \let\mb@t\vss
    \@tfor\@tempa :=#3\do{%
      \if s\@tempa
        \let\mb@l\relax\let\mb@r\relax
      \else
        \expandafter\let\csname mb@\@tempa\endcsname\relax
      \fi}%
    \mb@t
    \hbox to #1\unitlength{\mb@l #4\mb@r}%
    \mb@b
    \kern\z@}}
\let\set@color\relax
\let\color@begingroup\relax
\let\color@endgroup\relax
\let\color@setgroup\relax
\let\normalcolor\relax
\def\newsavebox#1{\@ifdefinable{#1}{\newbox#1}}
\def\savebox#1{%
  \@ifnextchar(%)
    {\@savepicbox#1}{\@ifnextchar[{\@savebox#1}{\sbox#1}}}
\def\sbox#1#2{\setbox#1\hbox{%
  \color@setgroup#2\color@endgroup}}
\def\@savebox#1[#2]{%
  \@ifnextchar [{\@isavebox#1[#2]}{\@isavebox#1[#2][c]}}
\long\def\@isavebox#1[#2][#3]#4{%
  \setbox#1\hbox{%
    \color@setgroup
      \@imakebox[#2][#3]{#4}%
    \color@endgroup}}
\def\@savepicbox#1(#2,#3){%
  \@ifnextchar[%]
    {\@isavepicbox#1(#2,#3)}{\@isavepicbox#1(#2,#3)[]}}
\long\def\@isavepicbox#1(#2,#3)[#4]#5{%
  \setbox#1\hbox{%
    \color@setgroup
      \@imakepicbox(#2,#3)[#4]{#5}
    \color@endgroup}}
\def\lrbox#1{%
  \edef\@tempa{%
    \endgroup
    \setbox#1\hbox{%
      \begingroup\aftergroup}%
        \def\noexpand\@currenvir{\@currenvir}%
        \def\noexpand\@currenvline{\on@line}}%
  \@tempa
    \@endpefalse
    \color@setgroup
      \ignorespaces}
\def\endlrbox{\unskip\color@endgroup}
\def\usebox#1{\leavevmode\copy #1\relax}
\long\def\frame#1{%
  \leavevmode
  \hbox{%
    \hskip-\@wholewidth
    \vbox{%
      \vskip-\@wholewidth
      \hrule \@height\@wholewidth
      \hbox{%
        \vrule\@width\@wholewidth
        #1%
        \vrule\@width\@wholewidth}%
      \hrule\@height\@wholewidth
      \vskip-\@wholewidth}%
    \hskip-\@wholewidth}}
\newdimen\fboxrule
\newdimen\fboxsep
\def\fbox#1{%
  \setbox\@tempboxa\hbox{%
    \color@begingroup
      \kern\fboxsep#1\kern\fboxsep
    \color@endgroup}%
  \@frameb@x\relax}
\def\framebox{%
  \@ifnextchar(%)
    \@framepicbox{\@ifnextchar[\@framebox\fbox}}
\def\@framebox[#1]{%
  \@ifnextchar[%]
    {\@iframebox[#1]}%
    {\@iframebox[#1][c]}}
\long\def\@iframebox[#1][#2]#3{%
  \leavevmode
  \@begin@tempboxa\hbox{#3}%
    \setlength\@tempdima{#1}%
    \setbox\@tempboxa\hbox to\@tempdima
         {\kern\fboxsep\csname bm@#2\endcsname\kern\fboxsep}%
    \@frameb@x{\kern-\fboxrule}%
  \@end@tempboxa}
\def\@frameb@x#1{%
  \@tempdima\fboxrule
  \advance\@tempdima\fboxsep
  \advance\@tempdima\dp\@tempboxa
  \hbox{%
    \lower\@tempdima\hbox{%
      \vbox{%
        \hrule\@height\fboxrule
        \hbox{%
          \vrule\@width\fboxrule
          #1%
          \vbox{%
            \vskip\fboxsep
            \box\@tempboxa
            \vskip\fboxsep}%
          #1%
          \vrule\@width\fboxrule}%
        \hrule\@height\fboxrule}}}}
\def\@framepicbox(#1,#2){%
  \@ifnextchar[{\@iframepicbox(#1,#2)}{\@iframepicbox(#1,#2)[]}}
\long\def\@iframepicbox(#1,#2)[#3]#4{%
  \frame{\@imakepicbox(#1,#2)[#3]{#4}}}
\def\parbox{%
  \@ifnextchar[%]
    \@iparbox
    {\@iiiparbox c\@empty[s]}}
\def\@iparbox[#1]{%
  \@ifnextchar[%]
    {\@iiparbox{#1}}%
    {\@iiiparbox{#1}\@empty[s]}}
\def\@iiparbox#1[#2]{%
  \@ifnextchar[%]
    {\@iiiparbox{#1}{#2}}%
    {\@iiiparbox{#1}{#2}[#1]}}
\long\def\@iiiparbox#1#2[#3]#4#5{%
  \leavevmode
  \@pboxswfalse
  \setlength\@tempdima{#4}%
  \@begin@tempboxa\vbox{\hsize\@tempdima\@parboxrestore#5\endgraf}%
    \ifx\@empty#2\else
      \setlength\@tempdimb{#2}%
      \def\@empty{to\@tempdimb}%
    \fi
    \if#1b\vbox
    \else\if #1t\vtop
    \else\ifmmode\vcenter
    \else\@pboxswtrue $\vcenter
    \fi\fi\fi
    \@empty{\let\hss\vss\let\unhbox\unvbox
       \csname bm@#3\endcsname}%
    \if@pboxsw \m@th$\fi
  \@end@tempboxa}
\def\@arrayparboxrestore{%
  \let\par\@@par
  \let\-\@dischyph
  \let\'\@acci\let\`\@accii\let\=\@acciii
  \parindent\z@ \parskip\z@skip
  \everypar{}%
  \linewidth\hsize
  \@totalleftmargin\z@
  \leftskip\z@skip \rightskip\z@skip \@rightskip\z@skip
  \parfillskip\@flushglue \lineskip\normallineskip
  \baselineskip\normalbaselineskip
  \sloppy}
\def\@parboxrestore{\@arrayparboxrestore\let\\\@normalcr}
\newif\if@minipage \@minipagefalse
\def\minipage{%
  \@ifnextchar[%]
    \@iminipage
    {\@iiiminipage c\@empty[s]}}
\def\@iminipage[#1]{%
  \@ifnextchar[%]
    {\@iiminipage{#1}}%
    {\@iiiminipage{#1}\@empty[s]}}
\def\@iiminipage#1[#2]{%
  \@ifnextchar[%]
    {\@iiiminipage{#1}{#2}}%
    {\@iiiminipage{#1}{#2}[#1]}}
\def\@iiiminipage#1#2[#3]#4{%
  \leavevmode
  \@pboxswfalse
  \setlength\@tempdima{#4}%
  \def\@mpargs{{#1}{#2}[#3]{#4}}%
  \setbox\@tempboxa\vbox\bgroup
    \color@begingroup
      \hsize\@tempdima
      \textwidth\hsize \columnwidth\hsize
      \@parboxrestore
      \def\@mpfn{mpfootnote}\def\thempfn{\thempfootnote}\c@mpfootnote\z@
      \let\@footnotetext\@mpfootnotetext
      \let\@listdepth\@mplistdepth \@mplistdepth\z@
      \@minipagerestore\global\@minipagetrue %% \global added 24 May 89
      \everypar{\global\@minipagefalse\everypar{}}}
 \let\@minipagerestore=\relax
\def\endminipage{%
    \par
    \unskip
    \ifvoid\@mpfootins\else
      \vskip\skip\@mpfootins
      \footnoterule
      \unvbox\@mpfootins
    \fi
    \global\@minipagefalse   %% added 24 May 89
  \color@endgroup
  \egroup
  \expandafter\@iiiparbox\@mpargs{\unvbox\@tempboxa}}
\newcount\@mplistdepth
\newinsert\@mpfootins
\long\def\@mpfootnotetext#1{%
  \global\setbox\@mpfootins\vbox{%
    \unvbox\@mpfootins
    \reset@font\footnotesize
    \hsize\columnwidth
    \@parboxrestore
    \let\@tempa\protect\def\protect{\noexpand\protect\noexpand}%
    \edef\@currentlabel{\csname p@mpfootnote\endcsname\@thefnmark}%
    \let\protect\@tempa
    \color@begingroup
      \@makefntext{%
        \rule\z@\footnotesep\ignorespaces#1\@finalstrut\strutbox}%
    \color@endgroup}}
\newif\if@pboxsw
\def\rule{\@ifnextchar[\@rule{\@rule[\z@]}}
\def\@rule[#1]#2#3{%
  \@tempdima#3\advance\@tempdima #1%
  \leavevmode
  \hbox{\vrule\@width#2\@height\@tempdima\@depth-#1}}
\let\@@underline\underline
\def\underline#1{%
  \relax
  \ifmmode\@@underline{#1}%
  \else $\@@underline{\hbox{#1}}\m@th$\relax\fi}
\def\raisebox#1{\@ifnextchar[{\@rsbox{#1}}{\@irsbox{#1}[]}}
\def\@rsbox#1[#2]{%
  \@ifnextchar[{\@iirsbox{#1}[#2]}{\@irsbox{#1}[#2]}}
\long\def\@irsbox#1[#2]#3{%
  \@begin@tempboxa\hbox{#3}%
    \setlength\@tempdima{#1}%
    \ifx\\#2\\\else\setlength{\@tempdimb}{#2}\fi
    \setbox\@tempboxa\hbox{\raise\@tempdima\box\@tempboxa}%
    \leavevmode
    \ifx\\#2\\\else\ht\@tempboxa\@tempdimb\fi
    \box\@tempboxa
  \@end@tempboxa}
\long\def\@iirsbox#1[#2][#3]#4{%
  \@begin@tempboxa\hbox{#4}%
    \setlength\@tempdima{#1}%
    \setlength\@tempdimb{#2}%
    \setlength\dimen@{#3}%
    \setbox\@tempboxa\hbox{\raise\@tempdima\box\@tempboxa}%
    \leavevmode
    \ht\@tempboxa\@tempdimb
    \dp\@tempboxa\dimen@
    \box\@tempboxa
  \@end@tempboxa}
\def\@finalstrut#1{%
  \ifhmode
    \unskip\vrule\@width\z@\@height\z@\@depth\dp#1%
  \fi}
%%% File: lttab
\newif\if@rjfield
\newdimen\@gtempa
\chardef\@firsttab=\the\allocationnumber
\newdimen\@gtempa\newdimen\@gtempa\newdimen\@gtempa\newdimen\@gtempa
\newdimen\@gtempa\newdimen\@gtempa\newdimen\@gtempa\newdimen\@gtempa
\newdimen\@gtempa\newdimen\@gtempa\newdimen\@gtempa\newdimen\@gtempa
\newdimen\@gtempa
\chardef\@maxtab=\the\allocationnumber
\dimen\@firsttab=0pt
\newcount\@nxttabmar
\newcount\@curtabmar
\newcount\@curtab
\newcount\@hightab
\newcount\@tabpush
\newbox\@curline
\newbox\@curfield
\newbox\@tabfbox
\def\@startline{\global\@curtabmar\@nxttabmar
   \global\@curtab\@curtabmar\global\setbox\@curline\hbox
    {}\@startfield\strut}
\def\@stopline{\unskip\@stopfield\if@rjfield \global\@rjfieldfalse
   \@tempdima\@totalleftmargin \advance\@tempdima\linewidth
\hbox to\@tempdima{\@itemfudge\hskip\dimen\@curtabmar
   \box\@curline\hfil\box\@curfield}\else\@addfield
   \hbox{\@itemfudge\hskip\dimen\@curtabmar\box\@curline}\fi}
\def\@startfield{%
  \global\setbox\@curfield\hbox\bgroup\color@begingroup}
\def\@stopfield{%
  \color@endgroup\egroup}
\def\@contfield{%
  \global\setbox\@curfield\hbox\bgroup\color@begingroup
  \unhbox\@curfield}
\def\@addfield{\global\setbox\@curline\hbox{\unhbox
     \@curline\unhbox\@curfield}}
\def\@ifatmargin{\ifdim \wd\@curline =\z@}
\def\@tabcr{\@stopline \@ifstar{\penalty \@M \@xtabcr}\@xtabcr}
\def\@xtabcr{\@ifnextchar[\@itabcr{\@startline\ignorespaces}}
\def\@itabcr[#1]{\vskip #1\@startline\ignorespaces}
\def\kill{\@stopfield\@startline\ignorespaces}
\def\tabbing{\lineskip \z@skip\let\>\@rtab\let\<\@ltab\let\=\@settab
     \let\+\@tabplus\let\-\@tabminus\let\`\@tabrj\let\'\@tablab
     \let\\=\@tabcr
     \global\@hightab\@firsttab
     \global\@nxttabmar\@firsttab
     \dimen\@firsttab\@totalleftmargin
     \global\@tabpush\z@ \global\@rjfieldfalse
     \trivlist \item\relax
     \if@minipage\else\vskip\parskip\fi
     \setbox\@tabfbox\hbox{\rlap{\indent\hskip\@totalleftmargin
       \the\everypar}}\def\@itemfudge{\box\@tabfbox}%
     \@startline\ignorespaces}
\def\endtabbing{%
  \@stopline\ifnum\@tabpush >\z@ \@badpoptabs \fi\endtrivlist}
\def\@rtab{\@stopfield\@addfield\ifnum \@curtab<\@hightab
      \global\advance\@curtab \@ne \else\@badtab\fi
      \@tempdima\dimen\@curtab
      \advance\@tempdima -\dimen\@curtabmar
      \advance\@tempdima -\wd\@curline
      \global\setbox\@curline\hbox{\unhbox\@curline\hskip\@tempdima}%
      \@startfield\ignorespaces}
\def\@settab{\@stopfield\@addfield\ifnum \@curtab <\@maxtab
      \global\advance\@curtab \@ne \else
         \@latex@error{Tab overflow}\@ehd\fi
      \ifnum\@curtab >\@hightab
      \@hightab\@curtab\fi
      \dimen\@curtab\dimen\@curtabmar
      \advance\dimen\@curtab \wd\@curline\@startfield\ignorespaces}
\def\@ltab{\@ifatmargin\ifnum\@curtabmar >\@firsttab
      \global\advance\@curtab \m@ne \global\advance\@curtabmar\m@ne\else
      \@badtab\fi\else
      \@latex@error{\string\<\space in mid line}\@ehd\fi\ignorespaces}
\def\@tabplus {\ifnum \@nxttabmar <\@hightab
      \global\advance\@nxttabmar \@ne \else
      \@badtab\fi\ignorespaces}
\def\@tabminus{\ifnum\@nxttabmar >\@firsttab
      \global\advance\@nxttabmar \m@ne \else
      \@badtab\fi\ignorespaces}
\def\@tabrj{%
  \@stopfield\@addfield\global\@rjfieldtrue\@startfield\ignorespaces}
\def\@tablab{\@stopfield\global\setbox\@curline\hbox{\box\@curline
     \hskip -\wd\@curfield \hskip -\tabbingsep \box\@curfield
      \hskip \tabbingsep}\@startfield\ignorespaces}
\def\pushtabs{%
  \@stopfield\@addfield\global\advance\@tabpush \@ne \begingroup
       \@contfield}
\def\poptabs{\@stopfield\@addfield\ifnum\@tabpush >\z@ \endgroup
     \global\advance\@tabpush \m@ne \else
     \@badpoptabs\fi\@contfield}
\newdimen\tabbingsep
\def\extracolsep#1{\tabskip #1\relax}
\def\array{\let\@acol\@arrayacol \let\@classz\@arrayclassz
 \let\@classiv\@arrayclassiv
 \let\\\@arraycr\let\@halignto\@empty\@tabarray}
\def\endarray{\crcr\egroup\egroup}
\def\endtabular{\crcr\egroup\egroup $\egroup}
\expandafter \let \csname endtabular*\endcsname = \endtabular
\def\tabular{\let\@halignto\@empty\@tabular}
\@namedef{tabular*}#1{\def\@halignto{to#1}\@tabular}
\def\@tabular{\leavevmode \hbox \bgroup $\let\@acol\@tabacol
   \let\@classz\@tabclassz
   \let\@classiv\@tabclassiv \let\\\@tabularcr\@tabarray}
\def\@tabarray{\m@th\@ifnextchar[\@array{\@array[c]}}
\def\@array[#1]#2{\setbox\@arstrutbox\hbox{\vrule
     \@height\arraystretch \ht\strutbox
     \@depth\arraystretch \dp\strutbox
     \@width\z@}\@mkpream{#2}\edef\@preamble{\ialign \noexpand\@halignto
      \bgroup \@arstrut \@preamble \tabskip\z@skip \cr}%
      \let\@startpbox\@@startpbox \let\@endpbox\@@endpbox
      \if #1t\vtop \else \if#1b\vbox \else \vcenter \fi\fi
      \bgroup \let\par\@empty
       \let\@sharp##\let\protect\relax
       \lineskip\z@skip\baselineskip\z@skip\@preamble}
\def\@arraycr{${\ifnum0=`}\fi\@ifstar\@xarraycr\@xarraycr}
\def\@xarraycr{\@ifnextchar[\@argarraycr{\ifnum0=`{\fi}${}\cr}}
\def\@argarraycr[#1]{%
  \ifnum0=`{\fi}${}\ifdim #1>\z@ \@xargarraycr{#1}\else
   \@yargarraycr{#1}\fi}
\def\@tabularcr{{\ifnum0=`}\fi\@ifstar\@xtabularcr\@xtabularcr}
\def\@xtabularcr{\@ifnextchar[\@argtabularcr{\ifnum0=`{\fi}\cr}}
\def\@argtabularcr[#1]{\ifnum0=`{\fi}\ifdim #1>\z@
   \unskip\@xargarraycr{#1}\else \@yargarraycr{#1}\fi}
\def\@xargarraycr#1{\@tempdima #1\advance\@tempdima \dp \@arstrutbox
   \vrule \@height\z@ \@depth\@tempdima \@width\z@ \cr}
\def\@yargarraycr#1{\cr\noalign{\vskip #1}}
\def\multicolumn#1#2#3{\multispan{#1}\begingroup
\@mkpream{#2}%
\def\@sharp{#3}\let\protect\relax
  \let\@startpbox\@@startpbox\let\@endpbox\@@endpbox
  \@arstrut \@preamble\hbox{}\endgroup\ignorespaces}
\def\@xexnoop #1\@@{}
\def\@expast#1{\@xexpast #1*0x\@@}
\def\@xexpast#1*#2#3#4\@@{\edef\@tempa{#1}\@tempcnta#2\relax
    \ifnum\@tempcnta >\z@ \@whilenum\@tempcnta >\z@\do
       {\edef\@tempa{\@tempa#3}\advance\@tempcnta \m@ne}%
       \let\@tempb\@xexpast
      \else \let\@tempb\@xexnoop\fi
    \expandafter\@tempb \@tempa #4\@@}
\newif\if@firstamp
\def\@addamp{\if@firstamp \@firstampfalse \else
    \edef\@preamble{\@preamble &}\fi}
\def\@arrayacol{\edef\@preamble{\@preamble \hskip \arraycolsep}}
\def\@tabacol{\edef\@preamble{\@preamble \hskip \tabcolsep}}
\def\@ampacol{\@addamp \@acol}
\def\@acolampacol{\@acol\@addamp\@acol}
\def\@mkpream#1{\@firstamptrue\@lastchclass6
\let\@preamble\@empty
\let\protect\@unexpandable@protect
\let\@sharp\relax
\let\@startpbox\relax\let\@endpbox\relax
\@expast{#1}%
\expandafter\@tfor \expandafter
  \@nextchar \expandafter:\expandafter=\@tempa\do{\@testpach\@nextchar
  \ifcase \@chclass \@classz \or \@classi \or \@classii \or \@classiii
    \or \@classiv \or\@classv \fi\@lastchclass\@chclass}%
\ifcase \@lastchclass \@acol
    \or \or \@preamerr \@ne\or \@preamerr \tw@\or \or \@acol \fi}
\def\@arrayclassz{\ifcase \@lastchclass \@acolampacol \or \@ampacol \or
   \or \or \@addamp \or
   \@acolampacol \or \@firstampfalse \@acol \fi
\edef\@preamble{\@preamble
  \ifcase \@chnum
     \hfil$\relax\@sharp$\hfil \or $\relax\@sharp$\hfil
    \or \hfil$\relax\@sharp$\fi}}
\def\@tabclassz{\ifcase \@lastchclass \@acolampacol \or \@ampacol \or
   \or \or \@addamp \or
   \@acolampacol \or \@firstampfalse \@acol \fi
\edef\@preamble{\@preamble{%
  \ifcase \@chnum
     \hfil\ignorespaces\@sharp\unskip\hfil
     \or \ignorespaces\@sharp\unskip\hfil
     \or \hfil\hskip\z@skip \ignorespaces\@sharp\unskip\fi}}}
\def\@classi{\ifcase \@lastchclass \@acol \@arrayrule \or
   \@addtopreamble{\hskip \doublerulesep}\@arrayrule\or
   \or \or \@arrayrule \or
   \@acol \@arrayrule \or \@arrayrule \fi}
\def\@classii{\ifcase \@lastchclass \or
   \@addtopreamble{\hskip .5\arrayrulewidth}\fi}
\def\@classiii{\ifcase \@lastchclass \@acolampacol \or
   \@addamp\@acol \or
   \or \or \@addamp \or
   \@acolampacol \or \@ampacol \fi}
\def\@tabclassiv{\@addtopreamble\@nextchar}
\def\@arrayclassiv{\@addtopreamble{$\@nextchar$}}
\def\@classv{\@addtopreamble{\@startpbox{\@nextchar}\ignorespaces
\@sharp\@endpbox}}
\def\@addtopreamble#1{\edef\@preamble{\@preamble #1}}
\newcount\@chclass
\newcount\@lastchclass
\newcount\@chnum
\newdimen\arraycolsep
\newdimen\tabcolsep
\newdimen\arrayrulewidth
\newdimen\doublerulesep
\def\arraystretch{1}    % Default value.
\newbox\@arstrutbox
\def\@arstrut{%
  \relax\ifmmode\copy\@arstrutbox\else\unhcopy\@arstrutbox\fi}
\def\@arrayrule{\@addtopreamble{\hskip -.5\arrayrulewidth
   \vrule \@width \arrayrulewidth\hskip -.5\arrayrulewidth}}
\def\@testpach#1{\@chclass \ifnum \@lastchclass=\tw@ 4 \else
    \ifnum \@lastchclass=3 5 \else
     \z@ \if #1c\@chnum \z@ \else
                              \if #1l\@chnum \@ne \else
                              \if #1r\@chnum \tw@ \else
          \@chclass \if #1|\@ne \else
                    \if #1@\tw@ \else
                    \if #1p3 \else \z@ \@preamerr 0\fi
  \fi  \fi  \fi  \fi  \fi  \fi
\fi}
\def\hline{%
  \noalign{\ifnum0=`}\fi\hrule \@height \arrayrulewidth \futurelet
   \@tempa\@xhline}
\def\@xhline{\ifx\@tempa\hline
               \vskip\doublerulesep
               \vskip-\arrayrulewidth
             \fi
      \ifnum0=`{\fi}}
\def\vline{\vrule \@width \arrayrulewidth}
\newcount\@cla
\newcount\@clb
\def\cline#1{\@cline[#1]}
\def\@cline[#1-#2]{\noalign{\global\@cla#1\relax
\global\advance\@cla\m@ne
\ifnum\@cla>\z@\global\let\@gtempa\@clinea\else
  \global\let\@gtempa\@clineb\fi
\global\@clb#2\relax
\global\advance\@clb-\@cla}\@gtempa
\noalign{\vskip-\arrayrulewidth}}
\def\@clinea{\multispan\@cla&\multispan\@clb
\unskip\leaders\hrule \@height \arrayrulewidth \hfill
\cr}
\def\@clineb{\multispan\@clb
\unskip\leaders\hrule \@height \arrayrulewidth \hfill
\cr}

\def\@startpbox#1{\vtop\bgroup \hsize #1\@arrayparboxrestore}
\def\@endpbox{\@finalstrut\@arstrutbox\par\egroup\hfil}
\let\@@startpbox=\@startpbox
\let\@@endpbox=\@endpbox
%%% File: ltpictur
\newdimen\@wholewidth
\newdimen\@halfwidth
\newdimen\unitlength \unitlength =1pt
\newbox\@picbox
\newdimen\@picht
\def\picture#1(#2,#3){%
  \@ifnextchar({\@picture(#2,#3)}{\@picture(#2,#3)(0,0)}}
\def\@picture(#1,#2)(#3,#4){%
  \@picht#2\unitlength
  \setbox\@picbox\hbox to#1\unitlength\bgroup
    \hskip -#3\unitlength
    \lower #4\unitlength\hbox\bgroup
      \ignorespaces}
\def\endpicture{%
  \egroup\hss\egroup
    \ht\@picbox\@picht\dp\@picbox\z@
    \mbox{\box\@picbox}}
\long\def\put(#1,#2)#3{%
  \@killglue\raise#2\unitlength
  \hbox to\z@{\kern#1\unitlength #3\hss}%
  \ignorespaces}
\def\multiput(#1,#2)#3{%
  \@xdim #1\unitlength
  \@ydim #2\unitlength
   \@multiput(}
\long\def\@multiput(#1,#2)#3#4{%
  \@killglue\@multicnt #3\relax
  \@whilenum \@multicnt >\z@\do
    {\raise\@ydim\hbox to\z@{\kern\@xdim #4\hss}%
     \advance\@multicnt\m@ne
     \advance\@xdim#1\unitlength\advance\@ydim#2\unitlength}%
  \ignorespaces}
\def\@killglue{\unskip\@whiledim \lastskip >\z@\do{\unskip}}
\def\thinlines{\let\@linefnt\tenln \let\@circlefnt\tencirc
  \@wholewidth\fontdimen8\tenln \@halfwidth .5\@wholewidth}
\def\thicklines{\let\@linefnt\tenlnw \let\@circlefnt\tencircw
  \@wholewidth\fontdimen8\tenlnw \@halfwidth .5\@wholewidth}
\def\linethickness#1{\@wholewidth #1\relax \@halfwidth .5\@wholewidth}
\def\shortstack{\@ifnextchar[\@shortstack{\@shortstack[c]}}
\def\@shortstack[#1]{\leavevmode
\vbox\bgroup\baselineskip-\p@\lineskip 3\p@\let\mb@l\hss
\let\mb@r\hss \expandafter\let\csname mb@#1\endcsname\relax
\let\\\@stackcr\@ishortstack}
\def\@ishortstack#1{\ialign{\mb@l {##}\unskip\mb@r\cr #1\crcr}\egroup}
\def\@stackcr{\@ifstar\@ixstackcr\@ixstackcr}
\def\@ixstackcr{\@ifnextchar[\@istackcr{\cr\ignorespaces}}
\def\@istackcr[#1]{\cr\noalign{\vskip #1}\ignorespaces}
\newif\if@negarg
\def\line(#1,#2)#3{\@xarg #1\relax \@yarg #2\relax
\@linelen #3\unitlength
\ifdim\@linelen<\z@\@badlinearg\else
  \ifnum\@xarg =\z@ \@vline
    \else \ifnum\@yarg =\z@ \@hline \else \@sline\fi
  \fi
\fi}
\def\@sline{\ifnum\@xarg<\z@ \@negargtrue \@xarg -\@xarg \@yyarg -\@yarg
  \else \@negargfalse \@yyarg \@yarg \fi
\ifnum \@yyarg >\z@ \@tempcnta\@yyarg \else \@tempcnta -\@yyarg \fi
\ifnum\@tempcnta>6 \@badlinearg\@tempcnta\z@ \fi
\ifnum\@xarg>6 \@badlinearg\@xarg \@ne \fi
\setbox\@linechar\hbox{\@linefnt\@getlinechar(\@xarg,\@yyarg)}%
\ifnum \@yarg >\z@ \let\@upordown\raise \@clnht\z@
   \else\let\@upordown\lower \@clnht \ht\@linechar\fi
\@clnwd \wd\@linechar
\if@negarg
  \hskip -\wd\@linechar \def\@tempa{\hskip -2\wd\@linechar}%
\else
     \let\@tempa\relax
\fi
\@whiledim \@clnwd <\@linelen \do
  {\@upordown\@clnht\copy\@linechar
   \@tempa
   \advance\@clnht \ht\@linechar
   \advance\@clnwd \wd\@linechar}%
\advance\@clnht -\ht\@linechar
\advance\@clnwd -\wd\@linechar
\@tempdima\@linelen\advance\@tempdima -\@clnwd
\@tempdimb\@tempdima\advance\@tempdimb -\wd\@linechar
\if@negarg \hskip -\@tempdimb \else \hskip \@tempdimb \fi
\multiply\@tempdima \@m
\@tempcnta \@tempdima
\@tempdima \wd\@linechar \divide\@tempcnta \@tempdima
\@tempdima \ht\@linechar \multiply\@tempdima \@tempcnta
\divide\@tempdima \@m
\advance\@clnht \@tempdima
\ifdim \@linelen <\wd\@linechar
   \hskip \wd\@linechar
  \else\@upordown\@clnht\copy\@linechar\fi}
\def\@hline{\ifnum \@xarg <\z@ \hskip -\@linelen \fi
\vrule \@height \@halfwidth \@depth \@halfwidth \@width \@linelen
\ifnum \@xarg <\z@ \hskip -\@linelen \fi}
 \def\@getlinechar(#1,#2){\@tempcnta#1\relax\multiply\@tempcnta 8%
\advance\@tempcnta -9\ifnum #2>\z@ \advance\@tempcnta #2\relax\else
\advance\@tempcnta -#2\relax\advance\@tempcnta 64 \fi
\char\@tempcnta}
\def\vector(#1,#2)#3{\@xarg #1\relax \@yarg #2\relax
\@tempcnta \ifnum\@xarg<\z@ -\@xarg\else\@xarg\fi
\ifnum\@tempcnta<5\relax
\@linelen #3\unitlength
\ifdim\@linelen<\z@\@badlinearg\else
  \ifnum\@xarg =\z@ \@vvector
    \else \ifnum\@yarg =\z@ \@hvector \else \@svector\fi
  \fi
\fi
\else\@badlinearg\fi}
\def\@hvector{\@hline\hbox to\z@{\@linefnt
\ifnum \@xarg <\z@ \@getlarrow(1,0)\hss\else
    \hss\@getrarrow(1,0)\fi}}
\def\@vvector{\ifnum \@yarg <\z@ \@downvector \else \@upvector \fi}
\def\@svector{\@sline
\@tempcnta\@yarg \ifnum\@tempcnta <\z@ \@tempcnta -\@tempcnta\fi
\ifnum\@tempcnta <5%
  \hskip -\wd\@linechar
  \@upordown\@clnht \hbox{\@linefnt  \if@negarg
  \@getlarrow(\@xarg,\@yyarg)\else \@getrarrow(\@xarg,\@yyarg)\fi}%
\else\@badlinearg\fi}
\def\@getlarrow(#1,#2){\ifnum #2=\z@ \@tempcnta'33 \else
\@tempcnta #1\relax\multiply\@tempcnta \sixt@@n \advance\@tempcnta
-9 \@tempcntb #2\relax\multiply\@tempcntb \tw@
\ifnum \@tempcntb >\z@ \advance\@tempcnta \@tempcntb
\else\advance\@tempcnta -\@tempcntb\advance\@tempcnta 64
\fi\fi\char\@tempcnta}
\def\@getrarrow(#1,#2){\@tempcntb #2\relax
\ifnum\@tempcntb <\z@ \@tempcntb -\@tempcntb\relax\fi
\ifcase \@tempcntb\relax \@tempcnta'55 \or
\ifnum #1<\thr@@ \@tempcnta #1\relax\multiply\@tempcnta
24\advance\@tempcnta -6 \else \ifnum #1=\thr@@ \@tempcnta 49
\else\@tempcnta 58 \fi\fi\or
\ifnum #1<\thr@@ \@tempcnta=#1\relax\multiply\@tempcnta
24\advance\@tempcnta -\thr@@ \else \@tempcnta 51 \fi\or
\@tempcnta #1\relax\multiply\@tempcnta
\sixt@@n \advance\@tempcnta -\tw@ \else
\@tempcnta #1\relax\multiply\@tempcnta
\sixt@@n \advance\@tempcnta 7 \fi\ifnum #2<\z@ \advance\@tempcnta 64 \fi
\char\@tempcnta}
\def\@vline{\ifnum \@yarg <\z@ \@downline \else \@upline\fi}
\def\@upline{%
  \hbox to\z@{\hskip -\@halfwidth \vrule \@width \@wholewidth
   \@height \@linelen \@depth \z@\hss}}
\def\@downline{%
  \hbox to\z@{\hskip -\@halfwidth \vrule \@width \@wholewidth
   \@height \z@ \@depth \@linelen \hss}}
\def\@upvector{\@upline\setbox\@tempboxa\hbox{\@linefnt\char'66}\raise
     \@linelen \hbox to\z@{\lower \ht\@tempboxa\box\@tempboxa\hss}}
\def\@downvector{\@downline\lower \@linelen
      \hbox to\z@{\@linefnt\char'77\hss}}
\def\dashbox#1(#2,#3){\leavevmode\hbox to\z@{\baselineskip \z@skip
\lineskip \z@skip
\@dashdim #2\unitlength
\@dashcnt \@dashdim \advance\@dashcnt 200
\@dashdim #1\unitlength\divide\@dashcnt \@dashdim
\ifodd\@dashcnt\@dashdim \z@
\advance\@dashcnt \@ne \divide\@dashcnt \tw@
\else \divide\@dashdim \tw@ \divide\@dashcnt \tw@
\advance\@dashcnt \m@ne
\setbox\@dashbox \hbox{\vrule \@height \@halfwidth \@depth \@halfwidth
\@width \@dashdim}\put(0,0){\copy\@dashbox}%
\put(0,#3){\copy\@dashbox}%
\put(#2,0){\hskip-\@dashdim\copy\@dashbox}%
\put(#2,#3){\hskip-\@dashdim\box\@dashbox}%
\multiply\@dashdim \thr@@
\fi
\setbox\@dashbox \hbox{\vrule \@height \@halfwidth \@depth \@halfwidth
\@width #1\unitlength\hskip #1\unitlength}\@tempcnta\z@
\put(0,0){\hskip\@dashdim \@whilenum \@tempcnta <\@dashcnt
\do{\copy\@dashbox\advance\@tempcnta \@ne }}\@tempcnta\z@
\put(0,#3){\hskip\@dashdim \@whilenum \@tempcnta <\@dashcnt
\do{\copy\@dashbox\advance\@tempcnta \@ne }}%
\@dashdim #3\unitlength
\@dashcnt \@dashdim \advance\@dashcnt 200
\@dashdim #1\unitlength\divide\@dashcnt \@dashdim
\ifodd\@dashcnt \@dashdim \z@
\advance\@dashcnt \@ne \divide\@dashcnt \tw@
\else
\divide\@dashdim \tw@ \divide\@dashcnt \tw@
\advance\@dashcnt \m@ne
\setbox\@dashbox\hbox{\hskip -\@halfwidth
\vrule \@width \@wholewidth
\@height \@dashdim}\put(0,0){\copy\@dashbox}%
\put(#2,0){\copy\@dashbox}%
\put(0,#3){\lower\@dashdim\copy\@dashbox}%
\put(#2,#3){\lower\@dashdim\copy\@dashbox}%
\multiply\@dashdim \thr@@
\fi
\setbox\@dashbox\hbox{\vrule \@width \@wholewidth
\@height #1\unitlength}\@tempcnta\z@
\put(0,0){\hskip -\@halfwidth \vbox{\@whilenum \@tempcnta <\@dashcnt
\do{\vskip #1\unitlength\copy\@dashbox\advance\@tempcnta \@ne }%
\vskip\@dashdim}}\@tempcnta\z@
\put(#2,0){\hskip -\@halfwidth \vbox{\@whilenum \@tempcnta<\@dashcnt
\do{\vskip #1\unitlength\copy\@dashbox\advance\@tempcnta \@ne }%
\vskip\@dashdim}}}\@makepicbox(#2,#3)}
\newif\if@ovt
\newif\if@ovb
\newif\if@ovl
\newif\if@ovr
\newdimen\@ovxx
\newdimen\@ovyy
\newdimen\@ovdx
\newdimen\@ovdy
\newdimen\@ovro
\newdimen\@ovri
\def\@getcirc#1{\@tempdima #1\relax \advance\@tempdima 2\p@
  \@tempcnta\@tempdima
  \@tempdima 4\p@ \divide\@tempcnta\@tempdima
  \ifnum \@tempcnta >10\relax \@tempcnta 10\relax\fi
  \ifnum \@tempcnta >\z@ \advance\@tempcnta\m@ne
    \else \@latex@warning{Oval too small}\fi
  \multiply\@tempcnta 4\relax
  \setbox \@tempboxa \hbox{\@circlefnt
  \char \@tempcnta}\@tempdima \wd \@tempboxa}
\def\@put#1#2#3{\raise #2\hbox to\z@{\hskip #1#3\hss}}
\def\oval(#1,#2){\@ifnextchar[{\@oval(#1,#2)}{\@oval(#1,#2)[]}}
\def\@oval(#1,#2)[#3]{\begingroup\boxmaxdepth \maxdimen
  \@ovttrue \@ovbtrue \@ovltrue \@ovrtrue
  \@tfor\@tempa :=#3\do{\csname @ov\@tempa false\endcsname}\@ovxx
  #1\unitlength \@ovyy #2\unitlength
  \@tempdimb \ifdim \@ovyy >\@ovxx \@ovxx\else \@ovyy \fi
  \advance \@tempdimb -2\p@
  \@getcirc \@tempdimb
  \@ovro \ht\@tempboxa \@ovri \dp\@tempboxa
  \@ovdx\@ovxx \advance\@ovdx -\@tempdima \divide\@ovdx \tw@
  \@ovdy\@ovyy \advance\@ovdy -\@tempdima \divide\@ovdy \tw@
  \@circlefnt \setbox\@tempboxa
  \hbox{\if@ovr \@ovvert32\kern -\@tempdima \fi
  \if@ovl \kern \@ovxx \@ovvert01\kern -\@tempdima \kern -\@ovxx \fi
  \if@ovt \@ovhorz \kern -\@ovxx \fi
  \if@ovb \raise \@ovyy \@ovhorz \fi}\advance\@ovdx\@ovro
  \advance\@ovdy\@ovro \ht\@tempboxa\z@ \dp\@tempboxa\z@
  \@put{-\@ovdx}{-\@ovdy}{\box\@tempboxa}%
  \endgroup}
\def\@ovvert#1#2{\vbox to\@ovyy{%
    \if@ovb \@tempcntb \@tempcnta \advance \@tempcntb #1\relax
      \kern -\@ovro \hbox{\char \@tempcntb}\nointerlineskip
    \else \kern \@ovri \kern \@ovdy \fi
    \leaders\vrule \@width \@wholewidth\vfil \nointerlineskip
    \if@ovt \@tempcntb \@tempcnta \advance \@tempcntb #2\relax
      \hbox{\char \@tempcntb}%
    \else \kern \@ovdy \kern \@ovro \fi}}
\def\@ovhorz{\hbox to\@ovxx{\kern \@ovro
    \if@ovr \else \kern \@ovdx \fi
    \leaders \hrule \@height \@wholewidth \hfil
    \if@ovl \else \kern \@ovdx \fi
    \kern \@ovri}}
\def\circle{\@inmatherr\circle\@ifstar\@dot\@circle}
\def\@circle#1{%
  \begingroup \boxmaxdepth \maxdimen \@tempdimb #1\unitlength
   \ifdim \@tempdimb >15.5\p@ \@getcirc\@tempdimb
      \@ovro\ht\@tempboxa
     \setbox\@tempboxa\hbox{\@circlefnt
      \advance\@tempcnta\tw@ \char \@tempcnta
      \advance\@tempcnta\m@ne \char \@tempcnta \kern -2\@tempdima
      \advance\@tempcnta\tw@
      \raise \@tempdima \hbox{\char\@tempcnta}\raise \@tempdima
        \box\@tempboxa}\ht\@tempboxa\z@ \dp\@tempboxa\z@
      \@put{-\@ovro}{-\@ovro}{\box\@tempboxa}%
   \else  \@circ\@tempdimb{96}\fi\endgroup}
\def\@dot#1{\@tempdimb #1\unitlength \@circ\@tempdimb{112}}
\def\@circ#1#2{\@tempdima #1\relax \advance\@tempdima .5\p@
   \@tempcnta\@tempdima \@tempdima \p@
   \divide\@tempcnta\@tempdima
   \ifnum\@tempcnta >15\relax \@tempcnta 15\relax \fi
   \ifnum \@tempcnta >\z@ \advance\@tempcnta\m@ne\fi
   \advance\@tempcnta #2\relax
   \@circlefnt \char\@tempcnta}
\thinlines
\newcount\@xarg
\newcount\@yarg
\newcount\@yyarg
\newcount\@multicnt
\newdimen\@xdim
\newdimen\@ydim
\newbox\@linechar
\newdimen\@linelen
\newdimen\@clnwd
\newdimen\@clnht
\newdimen\@dashdim
\newbox\@dashbox
\newcount\@dashcnt
\newcommand\qbeziermax{500}
\newcommand\qbezier[2][0]{\bezier{#1}#2}
\def\bezier#1)#2(#3)#4({\@bezier#1)(#3)(}
\def\@bezier#1(#2,#3)(#4,#5)(#6,#7){%
  \ifnum #1=\z@
      \@ovxx #4\unitlength
        \advance\@ovxx -#2\unitlength
        \ifdim \@ovxx<\z@ \@ovxx -\@ovxx \fi
      \@ovdx #6\unitlength
        \advance\@ovdx -#4\unitlength
        \ifdim \@ovdx<\z@ \@ovdx -\@ovdx \fi
        \ifdim \@ovxx<\@ovdx \@ovxx \@ovdx \fi
      \@ovyy #5\unitlength
        \advance\@ovyy -#3\unitlength
        \ifdim \@ovyy<\z@ \@ovyy -\@ovyy \fi
      \@ovdy #7\unitlength
        \advance\@ovdy -#5\unitlength
        \ifdim \@ovdy<\z@  \@ovdy -\@ovdy \fi
        \ifdim \@ovyy<\@ovdy \@ovyy  \@ovdy \fi
      \@multicnt
         \ifdim \@ovxx>\@ovyy \@ovxx \else \@ovyy \fi
      \@ovxx .5\@halfwidth \divide\@multicnt\@ovxx
      \ifnum \qbeziermax<\@multicnt \@multicnt\qbeziermax\relax \fi
  \else \@multicnt#1\relax \fi
  \@tempcnta\@multicnt \advance\@tempcnta\@ne
  \@ovdx #4\unitlength \advance\@ovdx -#2\unitlength
      \multiply\@ovdx \tw@
  \@ovxx #6\unitlength \advance\@ovxx -#2\unitlength
      \advance\@ovxx -\@ovdx \divide\@ovxx\@multicnt
  \@ovdy #5\unitlength \advance\@ovdy -#3\unitlength
       \multiply\@ovdy \tw@
  \@ovyy #7\unitlength \advance\@ovyy -#3\unitlength
      \advance\@ovyy -\@ovdy \divide\@ovyy\@multicnt
  \setbox\@tempboxa\hbox{\vrule \@height\@halfwidth
                               \@depth \@halfwidth
                               \@width \@wholewidth}%
   \put(#2,#3){%
     \count@\z@
     \@whilenum{\count@<\@tempcnta}\do
        {\@xdim\count@\@ovxx
           \advance\@xdim\@ovdx
           \divide\@xdim\@multicnt
           \multiply\@xdim\count@
         \@ydim\count@\@ovyy
            \advance\@ydim\@ovdy
            \divide\@ydim\@multicnt
            \multiply\@ydim\count@
         \raise \@ydim
            \hbox to\z@{\kern\@xdim
                        \unhcopy\@tempboxa\hss}%
         \advance\count@\@ne}}}
%%% File: ltthm
\def\newtheorem#1{\@ifnextchar[{\@othm{#1}}{\@nthm{#1}}}
\def\@nthm#1#2{%
\@ifnextchar[{\@xnthm{#1}{#2}}{\@ynthm{#1}{#2}}}
\def\@xnthm#1#2[#3]{\expandafter\@ifdefinable\csname #1\endcsname
{\@definecounter{#1}\@newctr{#1}[#3]%
\expandafter\xdef\csname the#1\endcsname{\expandafter\noexpand
  \csname the#3\endcsname \@thmcountersep \@thmcounter{#1}}%
\global\@namedef{#1}{%
  \@thm{#1}{#2}}\global\@namedef{end#1}{\@endtheorem}}}
\def\@ynthm#1#2{\expandafter\@ifdefinable\csname #1\endcsname
{\@definecounter{#1}%
\expandafter\xdef\csname the#1\endcsname{\@thmcounter{#1}}%
\global\@namedef{#1}{%
  \@thm{#1}{#2}}\global\@namedef{end#1}{\@endtheorem}}}
\def\@othm#1[#2]#3{%
  \@ifundefined{c@#2}{\@nocounterr{#2}}%
  {\expandafter\@ifdefinable\csname #1\endcsname
  {\global\@namedef{the#1}{\@nameuse{the#2}}%
\global\@namedef{#1}{\@thm{#2}{#3}}%
\global\@namedef{end#1}{\@endtheorem}}}}
\def\@thm#1#2{\refstepcounter
    {#1}\@ifnextchar[{\@ythm{#1}{#2}}{\@xthm{#1}{#2}}}
\def\@xthm#1#2{\@begintheorem{#2}{\csname the#1\endcsname}\ignorespaces}
\def\@ythm#1#2[#3]{\@opargbegintheorem{#2}{\csname
       the#1\endcsname}{#3}\ignorespaces}
\def\@thmcounter#1{\noexpand\arabic{#1}}
\def\@thmcountersep{.}
\def\@begintheorem#1#2{\trivlist
   \item[\hskip \labelsep{\bfseries #1\ #2}]\itshape}
\def\@opargbegintheorem#1#2#3{\trivlist
      \item[\hskip \labelsep{\bfseries #1\ #2\ (#3)}]\itshape}
\def\@endtheorem{\endtrivlist}
%%% File: ltsect
\message{title,}
\def\title#1{\gdef\@title{#1}}
\def\@title{\@latex@error{No \noexpand\title given}\@ehc}
\def\author#1{\gdef\@author{#1}}
\def\@author{\@latex@warning@no@line{No \noexpand\author given}}
\def\date#1{\gdef\@date{#1}}
\gdef\@date{\today}
\def\thanks#1{\footnotemark\begingroup
\def\protect{\noexpand\protect\noexpand}\xdef\@thanks{\@thanks
  \protect\footnotetext[\the\c@footnote]{#1}}\endgroup}
\def\@thanks{}
\def\and{%%                             % \begin{tabular}
\end{tabular}\hskip 1em \@plus.17fil%
\begin{tabular}[t]{c}%% \end{tabular}
}
\message{sectioning,}
\newcount\@secpenalty
\@secpenalty = -300
\newif\if@noskipsec \@noskipsectrue
\def\@startsection#1#2#3#4#5#6{\if@noskipsec \leavevmode \fi
   \par \@tempskipa #4\relax
   \@afterindenttrue
   \ifdim \@tempskipa <\z@
     \@tempskipa -\@tempskipa \@afterindentfalse
   \fi
   \if@nobreak \everypar{}\else
     \addpenalty{\@secpenalty}\addvspace{\@tempskipa}\fi \@ifstar
     {\@ssect{#3}{#4}{#5}{#6}}%
     {\@dblarg{\@sect{#1}{#2}{#3}{#4}{#5}{#6}}}}
\def\@sect#1#2#3#4#5#6[#7]#8{\ifnum #2>\c@secnumdepth
     \let\@svsec\@empty\else
     \refstepcounter{#1}%
     \let\@@protect\protect
     \def\protect{\noexpand\protect\noexpand}%
     \edef\@svsec{\@seccntformat{#1}}%
     \let\protect\@@protect\fi
     \@tempskipa #5\relax
      \ifdim \@tempskipa>\z@
        \begingroup #6\relax
          \@hangfrom{\hskip #3\relax\@svsec}%
                    {\interlinepenalty \@M #8\par}%
        \endgroup
       \csname #1mark\endcsname{#7}\addcontentsline
         {toc}{#1}{\ifnum #2>\c@secnumdepth \else
                      \protect\numberline{\csname the#1\endcsname}\fi
                    #7}\else
        \def\@svsechd{#6\hskip #3\relax  %% \relax added 2 May 90
                   \@svsec #8\csname #1mark\endcsname
                      {#7}\addcontentsline
                           {toc}{#1}{\ifnum #2>\c@secnumdepth \else
                           \protect\numberline{\csname the#1\endcsname}%
                                     \fi
                       #7}}\fi
     \@xsect{#5}}
\def\@seccntformat#1{\csname the#1\endcsname\hskip 1em}
\def\@xsect#1{\@tempskipa #1\relax
      \ifdim \@tempskipa>\z@
       \par \nobreak
       \vskip \@tempskipa
       \@afterheading
    \else \global\@nobreakfalse \global\@noskipsectrue
       \everypar{\if@noskipsec \global\@noskipsecfalse
                   \clubpenalty\@M \hskip -\parindent
                   \begingroup \@svsechd \endgroup \unskip
                   \@tempskipa #1\relax
                   \hskip -\@tempskipa
                  \else \clubpenalty \@clubpenalty
                    \everypar{}\fi}\fi\ignorespaces}
\def\@ssect#1#2#3#4#5{\@tempskipa #3\relax
   \ifdim \@tempskipa>\z@
     \begingroup #4\@hangfrom{\hskip #1}{\interlinepenalty \@M #5\par}%
     \endgroup
   \else \def\@svsechd{#4\hskip #1\relax #5}\fi
    \@xsect{#3}}
\newif\if@afterindent \@afterindenttrue
\def\@afterheading{\global\@nobreaktrue
      \everypar{\if@nobreak
                   \global\@nobreakfalse
                   \clubpenalty \@M
                   \if@afterindent \else {\setbox\z@\lastbox}\fi
                 \else \clubpenalty \@clubpenalty
                    \everypar{}\fi}}
\def\@hangfrom#1{\setbox\@tempboxa\hbox{{#1}}%
      \hangindent \wd\@tempboxa\noindent\box\@tempboxa}
\newcount\c@secnumdepth
\newcount\c@tocdepth
\def\secdef#1#2{\@ifstar{#2}{\@dblarg{#1}}}
\def\sectionmark#1{}
\def\subsectionmark#1{}
\def\subsubsectionmark#1{}
\def\paragraphmark#1{}
\def\subparagraphmark#1{}
\message{contents,}
\def\@starttoc#1{\begingroup
  \makeatletter
  \@input{\jobname.#1}\if@filesw
  \expandafter\newwrite\csname tf@#1\endcsname
             \immediate\openout
                 \csname tf@#1\endcsname \jobname.#1\relax
  \fi \global\@nobreakfalse \endgroup}
\def\addcontentsline#1#2#3{\if@filesw \begingroup
\let\label\@gobble \let\index\@gobble \let\glossary\@gobble
\let\protect\@unexpandable@protect
\@temptokena{\thepage}%
\edef\@tempa{\write \@auxout{\string\@writefile{#1}{\protect
     \contentsline{#2}{#3}{\the\@temptokena}}}}\@tempa
   \if@nobreak \ifvmode\nobreak\fi\fi\endgroup\fi}
\long\def\addtocontents#1#2{\if@filesw \begingroup
\let\label\@gobble \let\index\@gobble \let\glossary\@gobble
\let\protect\@unexpandable@protect
\edef\@tempa{\write \@auxout {\string\@writefile{#1}{#2}}}\@tempa
  \if@nobreak \ifvmode\nobreak\fi\fi\endgroup\fi}
\def\contentsline#1{\csname l@#1\endcsname}
\def\@dottedtocline#1#2#3#4#5{\ifnum #1>\c@tocdepth \else
  \vskip \z@ \@plus.2\p@
  {\leftskip #2\relax \rightskip \@tocrmarg \parfillskip -\rightskip
    \parindent #2\relax\@afterindenttrue
   \interlinepenalty\@M
   \leavevmode
   \@tempdima #3\relax
   \advance\leftskip \@tempdima \hbox{}\hskip -\leftskip
    {#4}\nobreak\leaders\hbox{$\m@th \mkern \@dotsep mu.\mkern \@dotsep
       mu$}\hfill \nobreak
           \hbox to\@pnumwidth{\hfil\reset@font\rmfamily #5}\par}\fi}
\def\numberline#1{\hbox to\@tempdima{#1\hfil}}

%%% File: ltfloat
\message{floats,}
\newcount\@floatpenalty
\def\caption{\refstepcounter\@captype \@dblarg{\@caption\@captype}}
\long\def\@caption#1[#2]#3{\par\addcontentsline{\csname
  ext@#1\endcsname}{#1}{\protect\numberline{\csname
  the#1\endcsname}{\ignorespaces #2}}\begingroup
    \@parboxrestore
    \normalsize
    \@makecaption{\csname fnum@#1\endcsname}{\ignorespaces #3}\par
  \endgroup}
\def\@float#1{\@ifnextchar[{\@xfloat{#1}}{\edef\@tempa{\noexpand\@xfloat
    {#1}[\csname fps@#1\endcsname]}\@tempa}}
\def\@xfloat#1[#2]{%
   \def \@captype {#1}%
   \def \@fps {#2}%
   \def \@tempb {!}%
   \ifx \@tempb \@fps
     \@fpsadddefault
   \else
     \ifx \@fps \@empty
       \@fpsadddefault
     \fi
   \fi
   \ifhmode
     \@bsphack
     \@floatpenalty -\@Mii
   \else
     \@floatpenalty-\@Miii
   \fi
   \ifinner
     \@parmoderr\@floatpenalty\z@
   \else
     \@next\@currbox\@freelist
       {\@tempcnta \sixt@@n
        \expandafter \@tfor \expandafter \@tempa
          \expandafter :\expandafter =\@fps\do
           {\if \@tempa h%
              \ifodd \@tempcnta
              \else
                \advance \@tempcnta \@ne
              \fi
            \fi
            \if \@tempa t%
              \@setfpsbit \tw@
            \fi
            \if \@tempa b%
              \@setfpsbit 4%
            \fi
            \if \@tempa p%
              \@setfpsbit 8%
            \fi
            \if \@tempa !%
              \ifnum \@tempcnta>15
                \advance\@tempcnta -\sixt@@n\relax
              \fi
            \fi
            }%
        \@tempcntb \csname ftype@\@captype \endcsname
        \multiply \@tempcntb \@xxxii
        \advance \@tempcnta \@tempcntb
        \global \count\@currbox \@tempcnta
        }%
     \@fltovf
   \fi
   \global\setbox\@currbox\vbox\bgroup
   \color@begingroup
   \normalcolor
   \hsize\columnwidth \@parboxrestore
   \if@nobreak
     \def\outer@nobreak{\global\@nobreaktrue}\global\@nobreakfalse
   \fi
}
\def\end@float{\par\vskip\z@skip%% \par\vskip\z@ added 15 Dec 87
   \color@endgroup
   \outer@nobreak
   \egroup
   \ifnum\@floatpenalty <\z@
     \@largefloatcheck
     \@cons\@currlist\@currbox
     \ifnum\@floatpenalty <-\@Mii
        \penalty -\@Miv
        \@tempdima\prevdepth    %% saving and restoring \prevdepth added
        \vbox{}%                %% 26 May 87 to prevent extra vertical
        \prevdepth \@tempdima   %% space when used in vertical mode
        \penalty\@floatpenalty
      \else
        \vadjust{\penalty -\@Miv \vbox{}\penalty\@floatpenalty}\@Esphack
     \fi\fi}
\let\outer@nobreak\@empty
\def\end@dblfloat{\if@twocolumn
     \par\vskip\z@skip\egroup %% \par\vskip\z@ added 15 Dec 87\egroup
     \ifnum\@floatpenalty <\z@
       \@largefloatcheck
       \@cons\@dbldeferlist\@currbox
     \fi
      \ifnum \@floatpenalty =-\@Mii \@Esphack\fi\else\end@float\fi}
\def \@largefloatcheck{%
  \ifdim \ht\@currbox>\textheight
    \@tempdima -\textheight
    \advance \@tempdima \ht\@currbox
    \@latex@warning {Float too large for page by \the\@tempdima}%
    \ht\@currbox \textheight
  \fi
}
\def\@dblfloat{\if@twocolumn\let\@tempa\@dbflt\else\let\@tempa\@float\fi
  \@tempa}
\def\@dbflt#1{\@ifnextchar[{\@xdblfloat{#1}}{\@xdblfloat{#1}[tp]}}
\def\@xdblfloat#1[#2]{%
  \@xfloat{#1}[#2]\hsize\textwidth\linewidth\textwidth}
\def\@floatplacement{\global\@topnum\c@topnumber
    % Textpage bit, global:
   \global\@toproom \topfraction\@colht
   \global\@botnum  \c@bottomnumber
   \global\@botroom \bottomfraction\@colht
   \global\@colnum  \c@totalnumber
    % Floatpage bit, local:
   \@fpmin   \floatpagefraction\@colht}
\def \@dblfloatplacement {%
  \global \@dbltopnum \c@dbltopnumber
  \global \@dbltoproom \dbltopfraction\@colht
  \@textmin \@colht
  \advance \@textmin -\@dbltoproom
  \@fpmin \dblfloatpagefraction\textheight
  \@fptop \@dblfptop
  \@fpsep \@dblfpsep
  \@fpbot \@dblfpbot
}
\def\marginpar{\ifhmode \@bsphack\@floatpenalty -\@Mii\else
   \@floatpenalty-\@Miii\fi\ifinner
      \@parmoderr\@floatpenalty\z@
    \else\@next\@currbox\@freelist{}{}\@next\@marbox\@freelist{\global
      \count\@marbox\m@ne}{\@floatpenalty\z@ \@fltovf
         \def\@currbox{\@tempboxa}\def\@marbox{\@tempboxa}}\fi
     \@ifnextchar [\@xmpar\@ympar}
\long\def\@xmpar[#1]#2{\@savemarbox\@marbox{#1}\@savemarbox\@currbox
   {#2}\@xympar}
\long\def\@ympar#1{\@savemarbox\@marbox{#1}\global\setbox\@currbox
     \copy\@marbox\@xympar}
\long\def\@savemarbox#1#2{%
  \global\setbox#1\vtop{%
    \hsize\marginparwidth
       \@parboxrestore #2}}
\def\@xympar{\ifnum\@floatpenalty <\z@\@cons\@currlist\@marbox\fi
     \setbox\@tempboxa\vbox   %% added 3 Jan 88
     \bgroup\color@begingroup
       \end@float\global\@ignorefalse\@esphack}
\def\reversemarginpar{\global\@mparbottom\z@ \@reversemargintrue}
\def\normalmarginpar{\global\@mparbottom\z@ \@reversemarginfalse}
\message{footnotes,}
\@definecounter{footnote}
\def\thefootnote{\arabic{footnote}}
\@definecounter{mpfootnote}
\def\thempfootnote{\alph{mpfootnote}}
\def\@makefnmark{\hbox{$^{\@thefnmark}\m@th$}}
\newdimen\footnotesep
\def\footnote{\@ifnextchar[\@xfootnote{\stepcounter{\@mpfn}%
     \begingroup%\let\protect\noexpand
         \def\protect{\noexpand\protect\noexpand}%
       \xdef\@thefnmark{\thempfn}\endgroup
     \@footnotemark\@footnotetext}}
\def\@xfootnote[#1]{\begingroup \csname c@\@mpfn\endcsname #1\relax
   \def\protect{\noexpand\protect\noexpand}%
   \xdef\@thefnmark{\thempfn}\endgroup
   \@footnotemark\@footnotetext}
\long\def\@footnotetext#1{\insert\footins{%
    \reset@font\footnotesize
    \interlinepenalty\interfootnotelinepenalty
    \splittopskip\footnotesep
    \splitmaxdepth \dp\strutbox \floatingpenalty \@MM
    \hsize\columnwidth \@parboxrestore
    \let\@tempa\protect
    \def\protect{\noexpand\protect\noexpand}%
    \edef\@currentlabel{\csname p@footnote\endcsname\@thefnmark}%
    \let\protect\@tempa
    \color@begingroup
      \normalcolor
      \@makefntext{%
        \rule\z@\footnotesep\ignorespaces#1\@finalstrut\strutbox}
    \color@endgroup}}
\def\footnotemark{\@ifnextchar[\@xfootnotemark{\stepcounter{footnote}%
     \begingroup\def\protect{\noexpand\protect\noexpand}%
       \xdef\@thefnmark{\thefootnote}\endgroup
     \@footnotemark}}
\def\@xfootnotemark[#1]{\begingroup \c@footnote #1\relax
   \def\protect{\noexpand\protect\noexpand}%
   \xdef\@thefnmark{\thefootnote}\endgroup \@footnotemark}
\def\@footnotemark{\leavevmode\ifhmode
  \edef\@x@sf{\the\spacefactor}\fi \@makefnmark
   \ifhmode\spacefactor\@x@sf\fi\relax}
\def\footnotetext{\@ifnextchar [\@xfootnotenext
   {\begingroup\def\protect{\noexpand\protect\noexpand}%
      \xdef\@thefnmark{\thempfn}\endgroup
    \@footnotetext}}
\def\@xfootnotenext[#1]{\begingroup \csname c@\@mpfn\endcsname #1\relax
   \def\protect{\noexpand\protect\noexpand}%
   \xdef\@thefnmark{\thempfn}\endgroup \@footnotetext}
\def\@mpfn{footnote}
\def\thempfn{\thefootnote}
%%% File: ltidxglo
\message{index,}
\def\makeindex{\if@filesw \newwrite\@indexfile
  \immediate\openout\@indexfile=\jobname.idx
  \def\index{\@bsphack\begingroup
             \let\protect\@unexpandable@noexpand
             \@sanitize
             \@wrindex}\typeout
  {Writing index file \jobname.idx }\fi}
\def\@wrindex#1{\let\thepage\relax
   \edef\@tempa{\write\@indexfile{\string
      \indexentry{#1}{\thepage}}}\expandafter\endgroup\@tempa
   \if@nobreak \ifvmode\nobreak\fi\fi\@esphack}
\def\index{\@bsphack\begingroup \@sanitize\@index}
\def\@index#1{\endgroup\@esphack}

\def\makeglossary{\if@filesw \newwrite\@glossaryfile
  \immediate\openout\@glossaryfile=\jobname.glo
  \def\glossary{\@bsphack\begingroup
                \let\protect\@unexpandable@noexpand
                \@sanitize
                \@wrglossary}\typeout
  {Writing glossary file \jobname.glo }\fi}
\def\@wrglossary#1{\let\thepage\relax
   \edef\@tempa{\write\@glossaryfile{\string
      \glossaryentry{#1}{\thepage}}}\expandafter\endgroup\@tempa
   \if@nobreak \ifvmode\nobreak\fi\fi\@esphack}
\def\glossary{\@bsphack\begingroup\@sanitize\@index}
%%% File: ltbibl
\message{bibliography,}
\def\bibitem{\@ifnextchar[{\@lbibitem}{\@bibitem}}
\def\@lbibitem[#1]#2{\item[\@biblabel{#1}\hfill]\if@filesw
      {\let\protect\noexpand
       \immediate
       \write\@auxout{\string\bibcite{#2}{#1}}}\fi\ignorespaces}
\def\@bibitem#1{\item\if@filesw \immediate\write\@auxout
       {\string\bibcite{#1}{\the\value{\@listctr}}}\fi\ignorespaces}
\def\bibcite#1#2{\global\@namedef{b@#1}{#2}}
\let\citation\@gobble
\def\cite{\@ifnextchar [{\@tempswatrue\@citex}{\@tempswafalse\@citex[]}}
\def\@citex[#1]#2{%
  \let\@citea\@empty
  \@cite{\@for\@citeb:=#2\do
    {\@citea\def\@citea{,\penalty\@m\ }%
     \edef\@citeb{\expandafter\@iden\@citeb}%
     \if@filesw\immediate\write\@auxout{\string\citation{\@citeb}}\fi
     \@ifundefined{b@\@citeb}{{\reset@font\bfseries ?}%
       \G@refundefinedtrue\@latex@warning
       {Citation `\@citeb' on page \thepage \space undefined}}%
     {\hbox{\csname b@\@citeb\endcsname}}}}{#1}}
\let\bibdata=\@gobble
\let\bibstyle=\@gobble
\def\bibliography#1{\if@filesw
  \immediate\write\@auxout{\string\bibdata{#1}}\fi
  \@input@{\jobname.bbl}}
\def\bibliographystyle#1{\if@filesw\immediate\write\@auxout
    {\string\bibstyle{#1}}\fi}
\def\nocite#1{\@bsphack
  \@for\@citeb:=#1\do{%
    \edef\@citeb{\expandafter\@iden\@citeb}%
    \if@filesw\immediate\write\@auxout{\string\citation{\@citeb}}\fi
    \@ifundefined{b@\@citeb}{\G@refundefinedtrue
        \@latex@warning{Citation `\@citeb' undefined}}{}}%
  \@esphack}
\def\@cite#1#2{[{#1\if@tempswa , #2\fi}]}
\def\@biblabel#1{[#1]}
%%% File: ltpage
\def\pagestyle#1{%
  \@ifundefined{ps@#1}%
    \undefinedpagestyle
    {\@nameuse{ps@#1}}}
\def\thispagestyle#1{%
  \@ifundefined{ps@#1}%
    \undefinedpagestyle
    {\global\@specialpagetrue\gdef\@specialstyle{#1}}}
\def\ps@empty{%
  \let\@mkboth\@gobbletwo\let\@oddhead\@empty\let\@oddfoot\@empty
  \let\@evenhead\@empty\let\@evenfoot\@empty}
\def\ps@plain{\let\@mkboth\@gobbletwo
     \let\@oddhead\@empty\def\@oddfoot{\reset@font\rmfamily\hfil\thepage
     \hfil}\let\@evenhead\@empty\let\@evenfoot\@oddfoot}
\let\@leftmark\@firstoftwo
\let\@rightmark\@secondoftwo
\def\markboth#1#2{\gdef\@themark{{#1}{#2}}{%
     \let\protect\@unexpandable@protect
     \let\label\relax \let\index\relax \let\glossary\relax
     \mark{\@themark}}\if@nobreak\ifvmode\nobreak\fi\fi}
\def\markright#1{{\let\protect\@unexpandable@protect
     \let\label\relax \let\index\relax \let\glossary\relax
     \expandafter\@markright\@themark
     {#1}\mark{\@themark}}\if@nobreak\ifvmode\nobreak\fi\fi}
\def\@markright#1#2#3{\gdef\@themark{{#1}{#3}}}
\def\leftmark{\expandafter\@leftmark\botmark{}{}}
\def\rightmark{\expandafter\@rightmark\firstmark{}{}}
\def\@themark{{}{}}
\def\raggedbottom{%
  \def\@textbottom{\vskip \z@ \@plus.0001fil}\let\@texttop\relax}
\def\flushbottom{%
  \let\@textbottom\relax \let\@texttop\relax}
\def\sloppy{\tolerance 9999
            \emergencystretch 3em
            \hfuzz .5\p@ \vfuzz .5\p@}
\def\sloppypar{\par\sloppy}
\def\endsloppypar{\par}
\def\fussy{\tolerance 200 \hfuzz .1\p@ \vfuzz .1\p@}
\overfullrule 0pt
%%% File: ltoutput
\message{output,}
\maxdeadcycles = 100
\let\@elt\relax
\def\@next#1#2#3#4{\ifx#2\@empty #4\else
   \expandafter\@xnext #2\@@#1#2#3\fi}
\def\@xnext \@elt #1#2\@@#3#4{\def#3{#1}\gdef#4{#2}}
\newif \if@test
\def\@bitor#1#2{\global\@testfalse {\let\@elt\@xbitor
   \@tempcnta #1\relax #2}}
\def\@xbitor #1{\@tempcntb \count#1
   \ifnum \@tempcnta =\z@
   \else
     \divide\@tempcntb\@tempcnta
     \ifodd\@tempcntb \global\@testtrue\fi
   \fi}
\newinsert\bx@A
\newinsert\bx@B
\newinsert\bx@C
\newinsert\bx@D
\newinsert\bx@E
\newinsert\bx@F
\newinsert\bx@G
\newinsert\bx@H
\newinsert\bx@I
\newinsert\bx@J
\newinsert\bx@K
\newinsert\bx@L
\newinsert\bx@M
\newinsert\bx@N
\newinsert\bx@O
\newinsert\bx@P
\newinsert\bx@Q
\newinsert\bx@R
\gdef\@freelist{\@elt\bx@A\@elt\bx@B\@elt\bx@C\@elt\bx@D\@elt\bx@E
               \@elt\bx@F\@elt\bx@G\@elt\bx@H\@elt\bx@I\@elt\bx@J
                \@elt\bx@K\@elt\bx@L\@elt\bx@M\@elt\bx@N
                \@elt\bx@O\@elt\bx@P\@elt\bx@Q\@elt\bx@R}
\gdef\@toplist{}
\gdef\@botlist{}
\gdef\@midlist{}
\gdef\@currlist{}
\gdef\@deferlist{}
\gdef\@dbltoplist{}
\gdef\@dbldeferlist{}
\newdimen\topmargin
\newdimen\oddsidemargin
\newdimen\evensidemargin
\let\@themargin=\oddsidemargin
\newdimen\headheight
\newdimen\headsep
\newdimen\footskip
\newdimen\textheight
\newdimen\textwidth
\newdimen\columnwidth
\newdimen\columnsep
\newdimen\columnseprule
\newdimen\marginparwidth
\newdimen\marginparsep
\newdimen\marginparpush
\newdimen\@maxdepth
\@maxdepth = \maxdepth
\newdimen\paperheight
\newdimen\paperwidth
\newif \if@insert
\newif \if@fcolmade
\newif \if@specialpage \@specialpagefalse
\newif \if@firstcolumn \@firstcolumntrue
\newif \if@twocolumn   \@twocolumnfalse
\newif \if@twoside     \@twosidefalse
\newif \if@reversemargin \@reversemarginfalse
\newif \if@mparswitch  \@mparswitchfalse
\newcount \col@number
\col@number \@ne
\newcount\@topnum
\newdimen\@toproom
\newcount\@dbltopnum
\newdimen\@dbltoproom
\newcount\@botnum
\newdimen\@botroom
\newcount\@colnum
\newdimen\@textmin
\newdimen\@fpmin
\newdimen\@colht
\newdimen\@colroom
\newdimen\@pageht
\newdimen\@pagedp
\newdimen\@mparbottom \@mparbottom\z@
\newcount\@currtype
\newbox\@outputbox
\newbox\@leftcolumn
\newbox\@holdpg
\def\@thehead{\@oddhead} % initialization
\def\@thefoot{\@oddfoot}
\def\clearpage{\newpage \write\m@ne{}\vbox{}\penalty -\@Mi}
\def\cleardoublepage{\clearpage\if@twoside \ifodd\c@page\else
    \hbox{}\newpage\if@twocolumn\hbox{}\newpage\fi\fi\fi}
\def\onecolumn{%
  \clearpage
  \global\columnwidth\textwidth
  \global\hsize\columnwidth
  \global\linewidth\columnwidth
  \global\@twocolumnfalse
  \col@number \@ne
  \@floatplacement}
\def \newpage {\par\vfil\penalty -\@M}
\def \@emptycol {\vbox{}\penalty -\@M}
\def \twocolumn {%
  \clearpage
  \global\columnwidth\textwidth
  \global\advance\columnwidth-\columnsep
  \global\divide\columnwidth\tw@
  \global\hsize\columnwidth
  \global\linewidth\columnwidth
  \global\@twocolumntrue
  \global\@firstcolumntrue
  \col@number \tw@
  \@ifnextchar [\@topnewpage\@floatplacement
}
\long\def \@topnewpage [#1]{%
  \@next\@currbox\@freelist{}{}%
  \global\setbox\@currbox
  \vbox{%
        \hsize\textwidth
        \@parboxrestore
        \col@number \@ne
        #1%
        \vskip -\dbltextfloatsep
        }%
  \ifdim \ht\@currbox>\textheight
    \ht\@currbox \textheight
  \fi
  \global \count\@currbox \tw@
  \@tempdima -\ht\@currbox
  \advance \@tempdima -\dbltextfloatsep
  \global \advance \@colht \@tempdima
  \ifx \@dbltoplist \@empty
  \else
    \@latexerr{Float(s) lost}\@ehb
    \let \@dbltoplist \@empty
  \fi
  \@cons \@dbltoplist \@currbox
  \global \@dbltopnum \m@ne
  \ifdim \@colht<3\baselineskip
    \@latex@warning@no@line {Optional argument of \noexpand\twocolumn
                too tall on page \thepage}%
    \@emptycol
    \if@firstcolumn
    \else
      \@emptycol
    \fi
  \else
    \global \vsize \@colht
    \global \@colroom \@colht
    \@floatplacement
  \fi
}
\output {%
  \let \par \@@par
  \ifnum \outputpenalty<-\@M
    \@specialoutput
  \else
    \@makecol
    \@opcol
    \@startcolumn
    \@whilesw \if@fcolmade \fi
      {%
       \@opcol\@startcolumn}%
  \fi
  \ifnum \outputpenalty>-\@Miv
    \ifdim \@colroom<2\baselineskip
      \@latex@warning@no@line {Text page \thepage\space
                               contains only floats}%
      \@emptycol
      \if@twocolumn
        \if@firstcolumn
        \else
          \@emptycol
        \fi
      \fi
    \else
      \global \vsize \@colroom
    \fi
  \else
    \global \vsize \maxdimen
  \fi
}
\def\@specialoutput{%
   \ifnum \outputpenalty>-\@Mii
     \@doclearpage
   \else
     \ifnum \outputpenalty<-\@Miii
       \ifnum \outputpenalty<-\@MM \deadcycles \z@ \fi
       \global \setbox\@holdpg \vbox {\unvbox\@cclv}%
     \else
       \global \setbox\@holdpg \vbox{%
                      \unvbox\@holdpg
                      \unvbox\@cclv
                      \setbox\@tempboxa \lastbox
                      \unskip
                                     }%
       \@pagedp \dp\@holdpg
       \@pageht \ht\@holdpg
       \unvbox \@holdpg
       \@next\@currbox\@currlist{%
         \ifnum \count\@currbox>\z@
           \advance \@pageht \@pagedp
           \ifvoid\footins \else
             \advance \@pageht \ht\footins
             \advance \@pageht \skip\footins
             \advance \@pageht \dp\footins
           \fi
           \ifvbox \@kludgeins
             \ifdim \wd\@kludgeins=\z@
               \advance \@pageht \ht\@kludgeins
             \fi
           \fi
           \@reinserts
           \@addtocurcol
         \else
           \@reinserts
           \@addmarginpar
         \fi
         }\@latexbug
       \ifnum \outputpenalty<\z@ \addpenalty \interlinepenalty \fi
     \fi
   \fi
}
\def \@doclearpage {%
     \ifvoid\footins
       \setbox\@tempboxa\vsplit\@cclv to\z@ \unvbox\@tempboxa
       \setbox\@tempboxa\box\@cclv
       \xdef\@deferlist{\@toplist\@botlist\@deferlist}%
       \global \let \@toplist \@empty
       \global \let \@botlist \@empty
       \global \@colroom \@colht
       \ifx \@currlist\@empty
       \else
          \@latexerr{Float(s) lost}\@ehb
          \global \let \@currlist \@empty
       \fi
       \@makefcolumn\@deferlist
       \@whilesw\if@fcolmade \fi{\@opcol\@makefcolumn\@deferlist}%
       \if@twocolumn
         \if@firstcolumn
           \xdef\@dbldeferlist{\@dbltoplist\@dbldeferlist}%
           \global \let \@dbltoplist \@empty
           \global \@colht \textheight
           \begingroup
              \@dblfloatplacement
              \@makefcolumn\@dbldeferlist
              \@whilesw\if@fcolmade \fi{\@outputpage
                                        \@makefcolumn\@dbldeferlist}%
           \endgroup
         \else
           \vbox{}\clearpage
         \fi
       \fi
     \else
       \setbox\@cclv\vbox{\box\@cclv\vfil}%
       \@makecol\@opcol
       \clearpage
     \fi
}
\def \@opcol {%
  \if@twocolumn
    \@outputdblcol
  \else
    \@outputpage
  \fi
  \global \@mparbottom \z@ \global \@textfloatsheight \z@
  \@floatplacement
}
\def \@makecol {%
   \ifvoid\footins
     \setbox\@outputbox \box\@cclv
   \else
     \setbox\@outputbox \vbox {%
       \boxmaxdepth \@maxdepth
       \unvbox \@cclv
       \vskip \skip\footins
       \footnoterule
       \unvbox \footins
       }%
   \fi
   \xdef\@freelist{\@freelist\@midlist}%
   \global \let \@midlist \@empty
   \@combinefloats
   \ifvbox\@kludgeins
     \@makespecialcolbox
   \else
     \setbox\@outputbox \vbox to\@colht {%
       \@texttop
       \dimen@ \dp\@outputbox
       \unvbox \@outputbox
       \vskip -\dimen@
       \@textbottom
       }%
   \fi
   \global \maxdepth \@maxdepth
}
\def \@reinserts{%
  \ifvoid\footins\else\insert\footins{\unvbox\footins}\fi
  \ifvbox\@kludgeins\insert\@kludgeins{\unvbox\@kludgeins}\fi
}
\def \@makespecialcolbox {%
   \setbox\@outputbox \vbox {%
     \@texttop
     \dimen@ \dp\@outputbox
     \unvbox\@outputbox
     \vskip-\dimen@
     }%
   \@tempdima \@colht
   \ifdim \wd\@kludgeins>\z@
     \advance \@tempdima -\ht\@outputbox
     \advance \@tempdima \pageshrink
     \setbox\@outputbox \vbox to \@colht {%
       \unvbox\@outputbox
       \vskip \@tempdima
       \@textbottom
       }%
   \else
     \advance \@tempdima -\ht\@kludgeins
     \setbox \@outputbox \vbox to \@colht {%
       \vbox to \@tempdima {%
         \unvbox\@outputbox
         \@textbottom}%
       \vss}%
   \fi
   {\setbox \@tempboxa \box \@kludgeins}%
}
\let \@texttop \relax
\let \@textbottom \relax
\def\@activechar@info #1{%
      \@latex@info@no@line {Active #1 character found while
                            output routine is active
                            \MessageBreak
                            This may be a bug in a package file
                            you are using}%
}
\begingroup
\obeylines\obeyspaces%
\gdef\@resetactivechars{%
\def^^M{\@activechar@info{EOL}\space}%
\def {\@activechar@info{space}\space}}%
\endgroup
\def\@outputpage{%
  \let \protect \@unexpandable@protect
  \shipout \vbox{%
    \let \protect \relax
    \aftergroup\let \aftergroup\protect \aftergroup\relax
    \@shipoutsetup
    \vskip \topmargin
    \moveright\@themargin \vbox {%
      \setbox\@tempboxa \vbox to\headheight{%
        \vfil
        \color@begingroup
          \normalcolor
          \hbox to\textwidth {%
            \let \label \@gobble
            \let \index \@gobble
            \let \glossary \@gobble %% 21 Jun 91
            \@thehead
            }%
        \color@endgroup
        }%                        %% 22 Feb 87
      \dp\@tempboxa \z@
      \box\@tempboxa
      \vskip \headsep
      \box\@outputbox
      \baselineskip \footskip
      \color@begingroup
        \normalcolor
        \hbox to\textwidth{%
          \let \label \@gobble
          \let \index \@gobble      %% 22 Feb 87
          \let \glossary \@gobble   %% 21 Jun 91
          \@thefoot
          }%
      \color@endgroup
      }%
    }%
  \global \@colht \textheight
  %      \endgroup
  \stepcounter{page}%
  \let\firstmark\botmark
}
\def \@shipoutsetup {%
     \@resetactivechars
     \let\-\@dischyph
     \let\'\@acci\let\`\@accii\let\=\@acciii
     \if@specialpage
       \global\@specialpagefalse\@nameuse{ps@\@specialstyle}%
     \fi
     \if@twoside
       \ifodd\count\z@ \let\@thehead\@oddhead \let\@thefoot\@oddfoot
            \let\@themargin\oddsidemargin
       \else \let\@thehead\@evenhead
          \let\@thefoot\@evenfoot \let\@themargin\evensidemargin
       \fi
     \fi
     \reset@font
     \normalsize
     \baselineskip\z@skip \lineskip\z@skip \lineskiplimit\z@
     \let\par\@@par          %% 15 Sep 87
}
\def \@combinefloats {%
    \ifx \@toplist\@empty \else \@cflt \fi
    \ifx \@botlist\@empty \else \@cflb \fi
}
\def \@cflt{%
    \let \@elt \@comflelt
    \setbox\@tempboxa \vbox{}%
    \@toplist
    \setbox\@outputbox \vbox{%
                             \boxmaxdepth \maxdepth
                             \unvbox\@tempboxa
                             \vskip -\floatsep
                             \topfigrule
                             \vskip \textfloatsep
                             \unvbox\@outputbox
                             }%
    \let\@elt\relax
    \xdef\@freelist{\@freelist\@toplist}%
    \global\let\@toplist\@empty
}
\def \@cflb {%
    \let\@elt\@comflelt
    \setbox\@tempboxa \vbox{}%
    \@botlist
    \setbox\@outputbox \vbox{%
                             \unvbox\@outputbox
                             \vskip \textfloatsep
                             \botfigrule
                             \unvbox\@tempboxa
                             \vskip -\floatsep
                             }%
    \let\@elt\relax
    \xdef\@freelist{\@freelist\@botlist}%
    \global \let \@botlist\@empty
}
\def\@comflelt#1{\setbox\@tempboxa
      \vbox{\unvbox\@tempboxa\box #1\vskip\floatsep}}
\def\@comdblflelt#1{\setbox\@tempboxa
      \vbox{\unvbox\@tempboxa\box #1\vskip\dblfloatsep}}
\def \@combinedblfloats{%
  \ifx \@dbltoplist \@empty
  \else
    \setbox\@tempboxa \vbox{}%
    \let \@elt \@comdblflelt
    \@dbltoplist
    \let \@elt \relax
    \xdef \@freelist {\@freelist\@dbltoplist}%
    \global\let \@dbltoplist \@empty
    \setbox\@outputbox \vbox to\textheight
      {%\boxmaxdepth\maxdepth   %% probably not needed, CAR
       \unvbox\@tempboxa\vskip-\dblfloatsep
       \ifnum \@dbltopnum>\m@ne
         \dblfigrule
       \fi
       \vskip \dbltextfloatsep
       \box\@outputbox
       }%
  \fi
}
\def \@startcolumn {%
  \global \@colroom \@colht
  \@tryfcolumn \@deferlist
  \if@fcolmade
  \else
    \begingroup
      \let \@tempb \@deferlist
      \global \let \@deferlist \@empty
      \let \@elt \@scolelt
      \@tempb
    \endgroup
  \fi
}
\def \@startdblcolumn {%
  \@tryfcolumn \@dbldeferlist
  \if@fcolmade
  \else
    \begingroup
      \let \@tempb \@dbldeferlist
      \global \let \@dbldeferlist \@empty
      \let \@elt \@sdblcolelt
      \@tempb
    \endgroup
  \fi
}
\def \@tryfcolumn #1{%
  \global \@fcolmadefalse
  \ifx #1\@empty
  \else
    \xdef\@trylist{#1}%
    \global \let \@failedlist \@empty
    \begingroup
      \let \@elt \@xtryfc \@trylist
    \endgroup
    \if@fcolmade
      \@vtryfc #1%
    \fi
  \fi
}
\def\@testfp #1{\@tempcnta\count #1\divide\@tempcnta 8\relax
   \ifodd\@tempcnta \else \global\@testtrue\fi}
\def\@scolelt#1{\def\@currbox{#1}\@addtonextcol}
\def\@sdblcolelt#1{\def\@currbox{#1}\@addtodblcol}
\def\@vtryfc #1{\global\setbox\@outputbox\vbox{}\let\@elt\@wtryfc
       \@flsucceed \global\setbox\@outputbox
       \vbox to\@colht{\vskip \@fptop
       \vskip -\@fpsep \unvbox \@outputbox
       \vskip \@fpbot}\let\@elt\relax
       \xdef #1{\@failedlist\@flfail}%
       \xdef\@freelist{\@freelist\@flsucceed}}
\def\@wtryfc #1{\global\setbox\@outputbox\vbox{\unvbox\@outputbox
    \vskip\@fpsep\box #1}}
\def\@xtryfc #1{\@next\@tempa\@trylist{}{}\@currtype
  \count #1\divide\@currtype\@xxxii \multiply\@currtype\@xxxii
  \@bitor \@currtype \@failedlist \@testfp #1\ifdim
    \ht #1>\@colht \global\@testtrue\fi
    \if@test \@cons\@failedlist #1\else \@ytryfc #1\fi}
\def\@ytryfc #1{\begingroup \gdef\@flsucceed{\@elt #1}%
  \global\let\@flfail\@empty
  \@tempdima\ht #1\let\@elt\@ztryfc \@trylist
  \ifdim \@tempdima >\@fpmin
     \global\@fcolmadetrue \else \@cons\@failedlist #1\fi
  \endgroup \if@fcolmade \let\@elt\@gobble \fi}
\def\@ztryfc #1{\@tempcnta\count #1\divide\@tempcnta\@xxxii
    \multiply\@tempcnta\@xxxii \@bitor \@tempcnta {\@failedlist
    \@flfail}\@testfp #1\@tempdimb\@tempdima
    \advance\@tempdimb\ht #1\advance
    \@tempdimb\@fpsep \ifdim \@tempdimb >\@colht \global\@testtrue\fi
    \if@test \@cons\@flfail #1\else
      \@cons\@flsucceed #1\@tempdima\@tempdimb
    \fi}
\def \@addtobot {%
   \@getfpsbit 4\relax
   \ifodd \@tempcnta
     \@flsetnum \@botnum
     \ifnum \@botnum>\z@
       \@tempswafalse
       \@flcheckspace \@botroom \@botlist
       \if@tempswa
         \global \maxdepth \z@
         \@flupdates \@botnum \@botroom \@botlist
         \@inserttrue
       \fi
     \fi
   \fi
}
\def \@addtotoporbot {%
   \@getfpsbit \tw@
   \ifodd \@tempcnta
     \@flsetnum \@topnum
     \ifnum \@topnum>\z@
       \@tempswafalse
       \@flcheckspace \@toproom \@toplist
       \if@tempswa
         \@bitor\@currtype{\@midlist\@botlist}%
         \if@test
         \else
          \@flupdates \@topnum \@toproom \@toplist
          \@inserttrue
         \fi
       \fi
     \fi
   \fi
   \if@insert
   \else
     \@addtobot
   \fi
}
\def \@addtocurcol {%
   \@insertfalse
   \@setfloattypecounts
   \ifnum \@fpstype=8
   \else
     \ifnum \@fpstype=24
     \else
       \@flsettextmin
       \advance \@textmin \@textfloatsheight
       \@reqcolroom \@pageht
       \ifdim \@textmin>\@reqcolroom
         \@reqcolroom \@textmin
       \fi
       \advance \@reqcolroom \ht\@currbox
       \ifdim \@colroom>\@reqcolroom
         \@flsetnum \@colnum
         \ifnum \@colnum>\z@
           \@bitor\@currtype\@deferlist
           \if@test
           \else
             \@bitor\@currtype\@botlist
             \if@test
               \@addtobot
             \else
               \ifodd \count\@currbox
                 \advance \@reqcolroom \intextsep
                 \ifdim \@colroom>\@reqcolroom
                   \global \advance \@colnum \m@ne
                   \global \advance \@textfloatsheight \ht\@currbox
                   \global \advance \@textfloatsheight 2\intextsep
                   \@cons \@midlist \@currbox
                   \addpenalty \interlinepenalty
                   \vskip \intextsep
                   \box\@currbox
                   \penalty\interlinepenalty
                   \vskip\intextsep
                   \ifnum\outputpenalty <-\@Mii \vskip -\parskip\fi
                   \outputpenalty \z@
                   \@inserttrue
                 \fi
               \fi
               \if@insert
               \else
                 \@addtotoporbot
               \fi
             \fi
           \fi
         \fi
       \fi
     \fi
   \fi
   \if@insert
   \else
     \@resethfps
     \@cons\@deferlist\@currbox
   \fi
}
\def\@addtonextcol{%
  \begingroup
   \@insertfalse
   \@setfloattypecounts
   \ifnum \@fpstype=8
   \else
     \ifnum \@fpstype=24
     \else
       \@flsettextmin
       \@reqcolroom \ht\@currbox
       \advance \@reqcolroom \@textmin
       \ifdim \@colroom>\@reqcolroom
         \@flsetnum \@colnum
         \ifnum\@colnum>\z@
            \@bitor\@currtype\@deferlist
            \if@test
            \else
              \@addtotoporbot
            \fi
         \fi
       \fi
     \fi
   \fi
   \if@insert
   \else
     \@cons\@deferlist\@currbox
   \fi
  \endgroup
}
\def\@addtodblcol{%
  \begingroup
   \@insertfalse
   \@setfloattypecounts
   \@getfpsbit \tw@
   \ifodd\@tempcnta
     \@flsetnum \@dbltopnum
     \ifnum \@dbltopnum>\z@
       \@tempswafalse
       \ifdim \@dbltoproom>\ht\@currbox
         \@tempswatrue
       \else
         \ifnum \@fpstype<\sixt@@n
           \advance \@dbltoproom \@textmin
           \ifdim \@dbltoproom>\ht\@currbox
             \@tempswatrue
           \fi
           \advance \@dbltoproom -\@textmin
         \fi
       \fi
       \if@tempswa
           \@bitor \@currtype \@dbldeferlist
           \if@test
           \else
              \@tempdima -\ht\@currbox
              \advance\@tempdima
                -\ifx \@dbltoplist\@empty \dbltextfloatsep \else
                                          \dblfloatsep \fi
              \global \advance \@dbltoproom \@tempdima
              \global \advance \@colht \@tempdima
              \global \advance \@dbltopnum \m@ne
              \@cons \@dbltoplist \@currbox
              \@inserttrue
           \fi
       \fi
     \fi
   \fi
   \if@insert
   \else
     \@cons\@dbldeferlist\@currbox
   \fi
  \endgroup
}
\def\@addmarginpar{\@next\@marbox\@currlist{\@cons\@freelist\@marbox
    \@cons\@freelist\@currbox}\@latexbug\@tempcnta\@ne
    \if@twocolumn
        \if@firstcolumn \@tempcnta\m@ne \fi
    \else
      \if@mparswitch
         \ifodd\c@page \else\@tempcnta\m@ne \fi
      \fi
      \if@reversemargin \@tempcnta -\@tempcnta \fi
    \fi
    \ifnum\@tempcnta <\z@  \global\setbox\@marbox\box\@currbox \fi
    \@tempdima\@mparbottom
    \advance\@tempdima -\@pageht
    \advance\@tempdima\ht\@marbox
    \ifdim\@tempdima >\z@
      \@latex@warning@no@line {Marginpar on page \thepage\space moved}%
    \else
      \@tempdima\z@
    \fi
    \global\@mparbottom\@pageht
    \global\advance\@mparbottom\@tempdima
    \global\advance\@mparbottom\dp\@marbox
    \global\advance\@mparbottom\marginparpush
    \advance\@tempdima -\ht\@marbox
    \global\setbox \@marbox
                   \vbox {\vskip \@tempdima
                          \box \@marbox}%
    \global \ht\@marbox \z@
    \global \dp\@marbox \z@
    \kern -\@pagedp
    \nointerlineskip
    \hbox to\columnwidth
      {\ifnum \@tempcnta >\z@
          \hskip\columnwidth \hskip\marginparsep
       \else
          \hskip -\marginparsep \hskip -\marginparwidth
       \fi
       \box\@marbox \hss}%
    \nointerlineskip
    \hbox{\vrule \@height\z@ \@width\z@ \@depth\@pagedp}}
\newinsert \@kludgeins
\dimen\@kludgeins \maxdimen
\count\@kludgeins 1000
\def \enlargethispage {%
   \@ifstar
     {%
      \@enlargepage{\hbox{\kern\p@}}}%
     {%
      \@enlargepage\@empty}%
}
\def\@enlargepage#1#2{%
   \@tempskipa#2\relax
   \ifdim \@tempskipa>.5\maxdimen
     \@latexerr{Suggested extra height (\the\@tempskipa)
                dangerously large}\@eha
   \else
     \ifdim \vsize<.5\maxdimen
       \@bsphack
         \insert\@kludgeins{#1\vskip-\@tempskipa}%
       \@esphack
     \else
       \@latexerr{Page height already too large}\@eha
     \fi
   \fi
}
\def \@tracemessage #1{\typeout{LaTeX2e: #1}}
\def \tracefloats{\let \tr@ce \@tracemessage}
\def \notrace {\let \tr@ce \@gobble}
\notrace
\def \@traceval #1{\tr@ce{\string #1 = \the #1}}
\def \tracefloatvals{%
  \@dblfloatplacement
  \@floatplacement
  \@traceval\@colnum
  \@traceval\@colroom
  \@traceval\@topnum
  \@traceval\@toproom
  \@traceval\@botnum
  \@traceval\@botroom
  \@traceval\@fpmin
  \tr@ce{\string\textfraction = \textfraction}%
  \@traceval\@dbltopnum
  \@traceval\@dbltoproom
}
\def \suppressfloats {%
   \@ifnextchar [%
     \@flstop
    {\global \@colnum \z@}%
}
\def \@flstop [#1]{%
   \if t#1%
     \global \@topnum \z@
   \fi
   \if b#1%
     \global \@botnum \z@
   \fi
}
\newcount \@fpstype
\newdimen \@reqcolroom
\newdimen \@textfloatsheight
\def \@fpsadddefault {%
   \edef \@fps {\@fps\csname fps@\@captype \endcsname}%
}
\def \@setfloattypecounts {%
  \@currtype \count\@currbox
  \@fpstype \count\@currbox
  \divide\@currtype\@xxxii \multiply\@currtype\@xxxii
  \advance \@fpstype -\@currtype
}
\def \@getfpsbit {%
   \@boxfpsbit \@currbox
}
\def \@boxfpsbit #1#2{%
   \@tempcnta \count#1%
   \divide \@tempcnta #2\relax
}
\def \@testfp #1{%
   \@boxfpsbit #18\relax % Really `#1 8' for human readers!
   \ifodd \@tempcnta
   \else
     \global \@testtrue
   \fi
}
\def \@setfpsbit #1{%
   \@tempcntb \@tempcnta
   \divide \@tempcntb #1\relax
   \ifodd \@tempcntb
   \else
     \advance \@tempcnta #1\relax
   \fi
}
\def \@resethfps {%
   \let\@tempa\@empty
   \ifnum \@fpstype=\@ne
      \def \@tempa {!}%
      \@fpstype 17
   \fi
   \ifnum \@fpstype=17
     \global \advance \count\@currbox \tw@
     \@latex@warning@no@line {`\@tempa h' float specifier changed to
                              `\@tempa ht'}%
   \fi
}
\def \@flsetnum #1{%
   \ifnum \@fpstype<\sixt@@n
     \ifnum #1=\z@
       #1\@ne
     \fi
   \fi
}
\def \@flsettextmin {%
   \ifnum \@fpstype<\sixt@@n
     \@textmin \z@
   \else
     \@textmin \textfraction\@colht
   \fi
}
\def \@flcheckspace #1#2{%
   \advance \@reqcolroom
     \ifx #2\@empty \textfloatsep \else \floatsep \fi
   \ifdim \@colroom>\@reqcolroom
     \ifdim #1>\ht\@currbox
       \@tempswatrue
     \else
       \ifnum \@fpstype<\sixt@@n
         \@tempswatrue
       \fi
     \fi
   \fi
}
\def \@flupdates #1#2#3{%
   \global \advance #1\m@ne
   \global \advance \@colnum \m@ne
   \@tempdima -\ht\@currbox
   \advance \@tempdima
     -\ifx #3\@empty \textfloatsep \else \floatsep \fi
   \global \advance #2\@tempdima
   \global \advance \@colroom \@tempdima
   \@cons #3\@currbox
}
\def\@makefcolumn #1{%
  \begingroup
    \@fpmin \z@
    \let \@testfp \@gobble
    \@tryfcolumn #1%
  \endgroup
}
\def\@outputdblcol{%
  \if@firstcolumn
    \global \@firstcolumnfalse
    \global \setbox\@leftcolumn \box\@outputbox
  \else
    \global \@firstcolumntrue
    \setbox\@outputbox \vbox {%
                         \hbox to\textwidth {%
                           \hbox to\columnwidth {%
                             \box\@leftcolumn \hss}%
                           \hfil
                           \vrule \@width\columnseprule
                           \hfil
                           \hbox to\columnwidth {%
                             \box\@outputbox \hss}%
                                             }%
                              }%
    \@combinedblfloats
    \@outputpage
    \begingroup
      \@dblfloatplacement
      \@startdblcolumn
      \@whilesw\if@fcolmade \fi
        {\@outputpage
         \@startdblcolumn}%
    \endgroup
  \fi
}
\newcount\c@topnumber
\setcounter{topnumber}{2}
\newcommand\topfraction{.7}
\newcount\c@bottomnumber
\setcounter{bottomnumber}{1}
\newcommand\bottomfraction{.3}
\newcount\c@totalnumber
\setcounter{totalnumber}{3}
\newcommand\textfraction{.2}
\newcommand\floatpagefraction{.5}
\newcount\c@dbltopnumber
\setcounter{dbltopnumber}{2}
\newcommand\dbltopfraction{.7}
\newcommand\dblfloatpagefraction{.5}
\newskip\floatsep
\newskip\textfloatsep
\newskip\intextsep
\setlength\floatsep    {12\p@ \@plus 2\p@ \@minus 2\p@}
\setlength\textfloatsep{20\p@ \@plus 2\p@ \@minus 4\p@}
\setlength\intextsep   {12\p@ \@plus 2\p@ \@minus 2\p@}
\newskip\dblfloatsep
\newskip\dbltextfloatsep
\setlength\dblfloatsep    {12\p@ \@plus 2\p@ \@minus 2\p@}
\setlength\dbltextfloatsep{20\p@ \@plus 2\p@ \@minus 4\p@}
\newskip\@fptop
\newskip\@fpsep
\newskip\@fpbot
\setlength\@fptop{0\p@ \@plus 1fil}
\setlength\@fpsep{8\p@ \@plus 2fil}
\setlength\@fpbot{0\p@ \@plus 1fil}
\newskip\@dblfptop
\newskip\@dblfpsep
\newskip\@dblfpbot
\setlength\@dblfptop{0\p@ \@plus 1fil}
\setlength\@dblfpsep{8\p@ \@plus 2fil}
\setlength\@dblfpbot{0\p@ \@plus 1fil}
\let\topfigrule=\relax
\let\botfigrule=\relax
\let\dblfigrule=\relax
%%% File: ltclass
\newif\if@compatibility
\def\@documentclasshook{%
   \ifx\@normalsize\@undefined
      \let\@normalsize\normalsize
   \fi
}
\let\@declaredoptions\@empty
\let\@classoptionslist\relax
\let\@unusedoptionlist\@empty
\let\CurrentOption\@empty
\let\@currname\@empty
\global\let\@currext=\@empty
\def\@clsextension{cls}
\def\@pkgextension{sty}
\@onlypreamble\@clsextension
\@onlypreamble\@pkgextension
\def\@pushfilename{%
  \xdef\@currnamestack{%
    {\@currname}%
    {\@currext}%
    {\the\catcode`\@}%
    \@currnamestack}}
\@onlypreamble\@pushfilename
\def\@popfilename{\expandafter\@p@pfilename\@currnamestack\@nil}
\@onlypreamble\@popfilename
\def\@p@pfilename#1#2#3#4\@nil{%
  \gdef\@currname{#1}%
  \gdef\@currext{#2}%
  \catcode`\@#3\relax
  \gdef\@currnamestack{#4}}
\@onlypreamble\@p@pfilename
\gdef\@currnamestack{}
\@onlypreamble\@currnamestack
\def\@ptionlist#1{%
  \@ifundefined{opt@#1}\@empty{\csname opt@#1\endcsname}}
\@onlypreamble\@ptionlist
\def\@ifpackageloaded{\@ifl@aded\@pkgextension}
\def\@ifclassloaded{\@ifl@aded\@clsextension}
\@onlypreamble\@ifpackageloaded
\@onlypreamble\@ifclassloaded
\def\@ifl@aded#1#2{%
  \expandafter\ifx\csname ver@#2.#1\endcsname\relax
    \expandafter\@secondoftwo
  \else
    \expandafter\@firstoftwo
  \fi}
\@onlypreamble\@ifl@aded
\def\@ifpackagelater{\@ifl@ter\@pkgextension}
\def\@ifclasslater{\@ifl@ter\@clsextension}
\@onlypreamble\@ifpackagelater
\@onlypreamble\@ifclasslater
\def\@ifl@ter#1#2{%
  \expandafter\@ifl@t@r
    \csname ver@#2.#1\endcsname}
\@onlypreamble\@ifl@ter
\def\@ifl@t@r#1#2{%
  \ifnum\expandafter\@parse@version#1//00\@nil<%
        \expandafter\@parse@version#2//00\@nil
    \expandafter\@secondoftwo
  \else
    \expandafter\@firstoftwo
  \fi}
\@onlypreamble\@ifl@t@r
\def\@parse@version#1/#2/#3#4#5\@nil{#1#2#3#4 }
\@onlypreamble\@parse@version
\def\@ifpackagewith{\@if@ptions\@pkgextension}
\def\@ifclasswith{\@if@ptions\@clsextension}
\@onlypreamble\@ifpackagewith
\@onlypreamble\@ifclasswith
\def\@if@ptions#1#2{%
  \@expandtwoargs\@if@pti@ns{\@ptionlist{#2.#1}}}
\@onlypreamble\@if@ptions
\def\@if@pti@ns#1#2{%
  \let\@tempa\@firstoftwo
  \@for\@tempb:=#2\do{%
    \expandafter\in@\expandafter{\expandafter,\@tempb,}{,#1,}%
    \ifin@\else\let\@tempa\@secondoftwo\fi}%
  \@tempa}
\@onlypreamble\@if@pti@ns
\def\ProvidesPackage#1{%
  \xdef\@gtempa{#1}%
  \ifx\@gtempa\@currname\else
    \@latex@warning@no@line{You have requested
      \@cls@pkg\space`\@currname',\MessageBreak
       but the \@cls@pkg\space provides `#1'}%
  \fi
  \@ifnextchar[\@pr@videpackage{\@pr@videpackage[]}}%]
\@onlypreamble\ProvidesPackage
\def\@pr@videpackage[#1]{%
  \expandafter\xdef\csname ver@\@currname.\@currext\endcsname{#1}%
  \ifx\@currext\@clsextension
    \typeout{Document Class: \@gtempa\space#1}%
  \else
    \wlog{Package: \@gtempa\space#1}%
  \fi}
\@onlypreamble\@pr@videpackage
\let\ProvidesClass\ProvidesPackage
\@onlypreamble\ProvidesClass
\def\ProvidesFile#1{%
  \begingroup
    \catcode`\ 10 %
    \@makeother\/%
    \@ifnextchar[{\@providesfile{#1}}{\@providesfile{#1}[]}}
\def\@providesfile#1[#2]{%
    \wlog{File: #1 #2}%
    \expandafter\xdef\csname ver@#1\endcsname{#2}%
  \endgroup}
\def\@pass@ptions#1#2#3{%
  \expandafter\xdef\csname opt@#3.#1\endcsname{%
    \@ifundefined{opt@#3.#1}\@empty
      {\csname opt@#3.#1\endcsname,}%
    \zap@space#2 \@empty}}
\@onlypreamble\@pass@ptions
\def\PassOptionsToPackage{\@pass@ptions\@pkgextension}
\def\PassOptionsToClass{\@pass@ptions\@clsextension}
\@onlypreamble\PassOptionsToPackage
\@onlypreamble\PassOptionsToClass
\def\DeclareOption{%
  \let\@fileswith@pti@ns\@badrequireerror
  \@ifstar{\@defdefault@ds}\@declareoption}
\def\@declareoption#1#2{%
   \xdef\@declaredoptions{\@declaredoptions,#1}%
   \@namedef{ds@#1}{#2}}
\def\@defdefault@ds#1{\def\default@ds{#1}}
\@onlypreamble\DeclareOption
\@onlypreamble\@declareoption
\@onlypreamble\@defdefault@ds
\def\OptionNotUsed{%
  \ifx\@currext\@clsextension
    \xdef\@unusedoptionlist{%
      \ifx\@unusedoptionlist\@empty\else\@unusedoptionlist,\fi
      \CurrentOption}%
  \fi}
\@onlypreamble\OptionNotUsed
\def\ProcessOptions{%
  \let\ds@\@empty
  \edef\@curroptions{\@ptionlist{\@currname.\@currext}}%
  \@ifstar\@xprocess@ptions\@process@ptions}
\@onlypreamble\ProcessOptions
\def\@process@ptions{%
  \@for\CurrentOption:=\@declaredoptions\do{%
    \ifx\CurrentOption\@empty\else
      \@expandtwoargs\in@{,\CurrentOption,}{%
         ,\ifx\@currext\@clsextension\else\@classoptionslist,\fi
         \@curroptions,}%
      \ifin@
        \@use@ption
        \expandafter\let\csname ds@\CurrentOption\endcsname\@empty
      \fi
    \fi}%
  \@process@pti@ns}
\@onlypreamble\@process@ptions
\def\@xprocess@ptions{%
  \ifx\@currext\@clsextension\else
    \@for\CurrentOption:=\@classoptionslist\do{%
      \ifx\CurrentOption\@empty\else
        \@expandtwoargs\in@{,\CurrentOption,}{,\@declaredoptions,}%
        \ifin@
          \@use@ption
          \expandafter\let\csname ds@\CurrentOption\endcsname\@empty
        \fi
      \fi}%
  \fi
  \@process@pti@ns}
\@onlypreamble\@xprocess@ptions
\def\@process@pti@ns{%
  \@for\CurrentOption:=\@curroptions\do{%
    \@ifundefined{ds@\CurrentOption}%
      {\@use@ption
       \default@ds}%
      \@use@ption}%
  \@for\CurrentOption:=\@declaredoptions\do{%
    \expandafter\let\csname ds@\CurrentOption\endcsname\relax}%
  \let\@fileswith@pti@ns\@@fileswith@pti@ns
  \AtEndOfPackage{\let\@unprocessedoptions\relax}}
\@onlypreamble\@process@pti@ns
\def\@options{\ProcessOptions*}
\@onlypreamble\@options
\def\@use@ption{%
  \@expandtwoargs\@removeelement\CurrentOption
  \@unusedoptionlist\@unusedoptionlist
  \csname ds@\CurrentOption\endcsname}
\@onlypreamble\@use@ption
\def\ExecuteOptions#1{%
  \def\@tempa##1\@nil{%
    \@for\CurrentOption:=#1\do{\csname ds@\CurrentOption\endcsname}%
    \edef\CurrentOption{##1}}%
  \expandafter\@tempa\CurrentOption\@nil}
\@onlypreamble\ExecuteOptions
\def\documentclass{%
  \let\documentclass\@twoclasseserror
  \let\usepackage\RequirePackage
  \@fileswithoptions\@clsextension}
\@onlypreamble\documentclass
\def\documentstyle{%
  \makeatletter\input{latex209.def}\makeatother
  \documentclass}
\@onlypreamble\documentstyle
\def\RequirePackage{%
  \@fileswithoptions\@pkgextension}
\@onlypreamble\RequirePackage
\def\LoadClass{%
  \ifx\@currext\@pkgextension
     \@latex@error
      {\noexpand\LoadClass in package file}%
      {You may only use \noexpand\LoadClass in a class file.}%
  \fi
  \@fileswithoptions\@clsextension}
\@onlypreamble\LoadClass
\def\usepackage#1#{%
  \@latex@error
    {\noexpand \usepackage before \string\documentclass}%
    {\noexpand \usepackage may only appear in the document
      preamble, i.e.,\MessageBreak
      between \noexpand\documentclass and
      \string\begin{document}.}%
  \@gobble}
\@onlypreamble\usepackage
\def\NeedsTeXFormat#1{%
  \def\@tempa{#1}%
  \ifx\@tempa\fmtname
    \expandafter\@needsformat
  \else
     \@latex@error{This file needs format `\@tempa'%
       \MessageBreak but this is `\fmtname'}{%
       The current input file will not be processed
       further,\MessageBreak
       because it was written for some other flavor of
       TeX.\MessageBreak\@ehd}%
     \endinput \fi}
\@onlypreamble\NeedsTeXFormat
\def\@needsformat{%
  \@ifnextchar[%]
    \@needsf@rmat
    {}}
\@onlypreamble\@needsformat
\def\@needsf@rmat[#1]{%
    \@ifl@t@r\fmtversion{#1}{}%
    {\@latex@warning@no@line
        {You have requested release `#1' of LaTeX,\MessageBreak
         but only release `\fmtversion' is available}}}
\@onlypreamble\@needsf@rmat
\def\zap@space#1 #2{%
  #1%
  \ifx#2\@empty\else\expandafter\zap@space\fi
  #2}
\def\@fileswithoptions#1{%
  \@ifnextchar[%]
    {\@fileswith@ptions#1}%
    {\@fileswith@ptions#1[]}}
\@onlypreamble\@fileswithoptions
\def\@fileswith@ptions#1[#2]#3{%
  \@ifnextchar[%]
  {\@fileswith@pti@ns#1[#2]#3}%
  {\@fileswith@pti@ns#1[#2]#3[]}}
\@onlypreamble\@fileswith@ptions
\def\@fileswith@pti@ns#1[#2]#3[#4]{%
  \ifx#1\@clsextension
    \ifx\@classoptionslist\relax
      \xdef\@classoptionslist{\zap@space#2 \@empty}%
      \def\@tempa{%
        \@onefilewithoptions#3[#2][#4]#1%
        \@documentclasshook}%
    \else
      \def\@tempa{%
        \@onefilewithoptions#3[#2][#4]#1}%
    \fi
  \else
    \def\@tempb##1,{%
      \ifx\@nil##1\relax\else
        \ifx\relax##1\relax\else
         \noexpand\@onefilewithoptions##1[#2][#4]\noexpand\@pkgextension
        \fi
        \expandafter\@tempb
      \fi}%
      \edef\@tempa{\zap@space#3 \@empty}%
      \edef\@tempa{\expandafter\@tempb\@tempa,\@nil,}%
  \fi
  \@tempa}
\@onlypreamble\@fileswith@pti@ns
\def\@onefilewithoptions#1[#2][#3]#4{%
  \@pushfilename
  \xdef\@currname{#1}%
  \global\let\@currext#4%
  \expandafter\let\csname\@currname.\@currext-h@@k\endcsname\@empty
  \let\CurrentOption\@empty
  \@reset@ptions
  \makeatletter
  \def\@tempa{%
    \@ifl@aded\@currext{#1}%
      {\@if@ptions\@currext{#1}{#2}{}%
        {\@latex@error
            {Option clash for \@cls@pkg\space #1}%
            {The package #1 has already been loaded
             with options:\MessageBreak
             \space\space[\@ptionlist{#1.\@currext}]\MessageBreak
             There has now been an attempt to load it
              with options\MessageBreak
             \space\space[#2]\MessageBreak
             Adding the line:\MessageBreak
             \space\space\string\usepackage
                  [\@ptionlist{#1.\@currext},#2]{#1}\MessageBreak
             to your document may fix this.\MessageBreak
             Try typing \space <return> \space to proceed.}}}%
      {\@pass@ptions\@currext{#2}{#1}%
       \global\expandafter
       \let\csname ver@\@currname.\@currext\endcsname\@empty
       \InputIfFileExists
         {\@currname.\@currext}%
         {}%
         {\@missingfileerror\@currname\@currext}%
    \let\@unprocessedoptions\@@unprocessedoptions
    \csname\@currname.\@currext-h@@k\endcsname
    \expandafter\let\csname\@currname.\@currext-h@@k\endcsname
              \@undefined
    \@unprocessedoptions}
    \@ifl@ter\@currext{#1}{#3}{}%
      {\@latex@warning@no@line
         {You have requested,\on@line,
          version\MessageBreak
            `#3' of \@cls@pkg\space #1,\MessageBreak
          but only version\MessageBreak
           `\csname ver@#1.\@currext\endcsname'\MessageBreak
          is available}}%
    \ifx\@currext\@clsextension\let\LoadClass\@twoloadclasserror\fi
    \@popfilename
    \@reset@ptions}%
  \@tempa}
\@onlypreamble\@onefilewithoptions
\let\@@fileswith@pti@ns\@fileswith@pti@ns
\@onlypreamble\@@fileswith@pti@ns
\def\@reset@ptions{%
  \global\ifx\@currext\@clsextension
    \let\default@ds\OptionNotUsed
   \else
    \let\default@ds\@unknownoptionerror
  \fi
  \global\let\ds@\@empty
  \global\let\@declaredoptions\@empty}
\@onlypreamble\@reset@ptions
\let\@begindocumenthook\@empty
\let\@enddocumenthook\@empty
\def\g@addto@macro#1#2{{%
  \toks@\expandafter{#1#2}%
  \xdef#1{\the\toks@}}}
\def\AtEndOfPackage{%
  \expandafter\g@addto@macro\csname\@currname.\@currext-h@@k\endcsname}
\let\AtEndOfClass\AtEndOfPackage
\@onlypreamble\AtEndOfPackage
\@onlypreamble\AtEndOfClass
\def\AtBeginDocument{\g@addto@macro\@begindocumenthook}
\def\AtEndDocument{\g@addto@macro\@enddocumenthook}
\@onlypreamble\AtBeginDocument
\def\@cls@pkg{%
  \ifx\@currext\@clsextension
    document class%
  \else
    package%
  \fi}
\@onlypreamble\@cls@pkg
\def\@unknownoptionerror{%
  \@latex@error
    {Unknown option `\CurrentOption' for \@cls@pkg\space`\@currname'}%
    {The option `\CurrentOption' was not declared in
     \@cls@pkg\space`\@currname', perhaps you\MessageBreak
      misspelled its name.
     Try typing \space <return>
     \space to proceed.}}
\@onlypreamble\@unknownoptionerror
\def\@@unprocessedoptions{%
  \ifx\@currext\@pkgextension
    \edef\@curroptions{\@ptionlist{\@currname.\@currext}}%
    \@for\CurrentOption:=\@curroptions\do\@unknownoptionerror
  \fi}
\@onlypreamble\@unprocessedoptions
\@onlypreamble\@@unprocessedoptions
\def\@badrequireerror#1[#2]#3[#4]{%
  \@latex@error
    {\noexpand\RequirePackage or \noexpand\LoadClass
         in Options Section}%
    {The \@cls@pkg\space `\@currname' is defective.\MessageBreak
     It attempts to load `#3' in the options section, i.e.,\MessageBreak
     between \noexpand\DeclareOption and \string\ProcessOptions.}}
\@onlypreamble\@badrequireerror
\def\@twoloadclasserror{%
  \@latex@error
    {Two \noexpand\LoadClass commands}%
    {You may only use one \noexpand\LoadClass in a class file}}
\@onlypreamble\@twoloadclasserror
\def\@twoclasseserror#1#{%
  \@latex@error
    {Two \noexpand\documentclass or \noexpand\documentstyle commands}%
    {The document may only declare one class.}\@gobble}
\@onlypreamble\@twoclasseserror
\def\@missingfileerror#1#2{%
     \typeout{^^J! LaTeX Error: File `#1.#2' not found.^^J^^J%
      Type X to quit or <RETURN> to proceed,^^J%
      or enter new name. (Default extension: #2)^^J}%
     \message{Enter file name: }%
      {\endlinechar\m@ne
       \global\read\m@ne to\@gtempa}%
    \ifx\@gtempa\@empty
    \else
      \def\@tempa{x}\ifx\@tempa\@gtempa\batchmode\@@end\fi
      \def\@tempa{X}\ifx\@tempa\@gtempa\batchmode\@@end\fi
      \filename@parse\@gtempa
      \edef\filename@ext{%
        \ifx\filename@ext\relax#2\else\filename@ext\fi}%
     \edef\@tempa{%
       \noexpand\InputIfFileExists
         {\filename@area\filename@base.\filename@ext}%
         {}%
         {\noexpand\@missingfileerror
            {\filename@area\filename@base}{\filename@ext}}}%
      \@tempa
    \fi}
\def\two@digits#1{\ifnum#1<10 0\fi\number#1}
\begingroup%
\gdef\filecontents{\@tempswatrue\filec@ntents}%
\catcode`\*=11 %
\gdef\filecontents*{\@tempswafalse\filec@ntents}%
\catcode`\^^M\active%
\catcode`\^^L\active\let^^L\relax%
\catcode`\^^I\active%
\gdef\filec@ntents#1{%
  \openin\@inputcheck#1 %
  \ifeof\@inputcheck%
    \@latex@warning@no@line%
        {Writing file `\@currdir#1'}%
    \chardef\verbatim@out15 %
    \ch@ck7\verbatim@out\write%
  \else%
    \@latex@warning@no@line%
            {File `#1' already exists on the system.\MessageBreak%
             Not generating it from this source}%
    \def\immediate##1\relax{}%
  \fi%
  \immediate\openout\verbatim@out=#1\relax%
  \if@tempswa%
    \immediate\write\verbatim@out{%
      \@percentchar\@percentchar\space LaTeX2e file `#1'^^J%
      \@percentchar\@percentchar\space  generated by the %
         `filecontents' environment^^J%
      \@percentchar\@percentchar\space from source `\jobname' on %
         \number\year/\two@digits\month/\two@digits\day.^^J%
      \@percentchar\@percentchar}\relax%
  \fi%
  \let\do\@makeother\dospecials%
  \@vwrend%
\catcode`\^^L\active%
\let\L\@undefined%
\def^^L{\@ifundefined L^^J^^J^^J}%
\catcode`\^^I\active%
\let\I\@undefined%
\def^^I{\@ifundefined I\space\space}%
  \catcode`\^^M\active%
  \def^^M##1^^M%
    {\def\@tempb{##1}%
     \ifx\@tempb\@tempa\expandafter\end\expandafter{\@currenvir}%
     \else\immediate\write\verbatim@out{##1}\relax\expandafter^^M\fi}}%
\endgroup%
\begingroup
\catcode`/=0
\catcode`<=\catcode`{
\catcode`>=\catcode`}
\catcode`|=\catcode`\%
/catcode`/\=12
/catcode`/{=12
/catcode`/}=12
/catcode`/%=12
/catcode`/*=11
/gdef/@percentchar<%>
/gdef/@vwrend</edef/@tempa<\end{/@currenvir}>>
/gdef/endfilecontents<|
  /immediate/closeout/verbatim@out/relax
  /ifx/L/@undefined/else
    /@latex@warning@no@line<Form Feed has been converted to Blank Line>|
  /fi
  /ifx/I/@undefined/else
    /@latex@warning@no@line<Tab has been converted to Space>|
  /fi
  /immediate/write/@unused<>/relax>
/global/let/endfilecontents*/endfilecontents|
/@onlypreamble/filecontents
/@onlypreamble/endfilecontents
/@onlypreamble/filecontents*
/@onlypreamble/endfilecontents*
/endgroup
\@onlypreamble\@vwrend
\let\@filelist\@gobble
\def\@addtofilelist#1{%
  \xdef\@filelist{\@filelist,#1}}
\def\listfiles{%
  \let\listfiles\relax
  \def\@listfiles##1##2##3##4##5##6##7##8##9\@@{%
     \def\@tempd{\\}%
     \@tfor\@tempc:=##1##2##3##4##5##6##7##8\do{%
       \ifx\@tempc\@tempd
         \edef\filename@area{ \filename@area}%
       \fi}}%
  \AtEndDocument{%
     \typeout{^^J *File List*}%
     \@for\@currname:=\@filelist\do{%
       \filename@parse\@currname
       \edef\@tempa{%
          \filename@base.%
          \ifx\filename@ext\relax tex\else\filename@ext\fi}%
       \expandafter\let\expandafter\@tempb\csname ver@\@tempa\endcsname
       \expandafter\expandafter\expandafter\@listfiles\expandafter
             \filename@area\filename@base\\\\\\\\\\\\\\\\\\\@@
       \typeout{%
         \filename@area\@tempa
         \ifx\@tempb\relax\else\@spaces\@tempb\fi}}%
     \typeout{ ***********^^J}}}
\@onlypreamble\listfiles

%%% File: ltfinal
\def\showoverfull{\tracingonline\@ne}
\def\showoutput{\tracingonline\@ne\tracingoutput\@ne
    \showboxbreadth\maxdimen\showboxdepth\maxdimen\errorstopmode}
\tracingstats1
\errhelp{}
\newcount\@lowpenalty
\newcount\@medpenalty
\newcount\@highpenalty
\unitlength = 1pt
\fboxsep = 3pt
\fboxrule = .4pt
\@maxdepth       = \maxdepth
\vsize = 1000pt
\@colroom = \vsize
\@colht = \vsize
\textheight=.5\maxdimen
\textwidth=\textheight
\ps@empty
\InputIfFileExists{lthyphen.cfg}
           {\typeout{********************************************^^J%
                     * Local configuration file lthyphen.cfg used^^J%
                     ********************************************}}
           {\@@input lthyphen.ltx }
\ifdim \font@submax >\z@
   \@font@warning{Size substitutions with differences\MessageBreak
                 up to \font@submax\space have occured.\MessageBreak
                \MessageBreak
                Please check the transcript file
                carefully\MessageBreak
                and redo the format generation if necessary!
                \@gobbletwo}%
   \errhelp{Only stopped, to give you time to
            read the above message.}
   \errmessage{}
\def\font@submax{0pt}
\fi
\def\@tempa#1#2{%
   \@tempcnta#1\relax
   \@tempcntb#2\relax
   \@tempb
}
\def\@tempb{%
   \ifnum\@tempcnta>\@tempcntb\else
      \@tempc\@tempcnta
      \advance\@tempcnta\@ne
      \expandafter\@tempb
   \fi
}
\catcode`\ =10
\catcode`\#=6
\catcode`\$=3
\catcode`\%=14
\catcode`\&=4
\catcode`\\=0
\catcode`\^=7
\catcode`\_=8
\catcode`\{=1
\catcode`\}=2
\catcode`\~=13
\catcode`\@=11
\catcode`\^^I=10
\catcode`\^^J=12
\catcode`\^^L=13
\catcode`\^^M=5
\def\@tempc#1{\catcode#1=12\relax}
\@tempc{`\!}
\@tempc{`\"}
\@tempa{`\'}{`\?}
\@tempc{`\[}
\@tempc{`\]}
\@tempc{`\`}
\@tempc{`\|}
\def\@tempc#1{\catcode#1=11\relax}
\@tempa{`\A}{`\Z}
\@tempa{`\a}{`\z}
\def\@tempc#1{\catcode#1=15\relax}
\@tempa{0}{`\^^H}
\@tempc{`\^^K}
\@tempa{`\^^N}{31}
\ifnum\inputlineno=\m@ne
  \catcode"7F=15
\else
  \@tempa{"7F}{"FF}
\fi
\def\@tempc#1{%
   \count@=#1\advance\count@ by -"20
   \uccode#1=\count@
   \lccode#1=#1
}
\@tempa{`\a}{`\z}
\ifnum\inputlineno=\m@ne\else
  \@tempa{"A0}{"BC}
  \@tempa{"E0}{"FF}
\fi
\def\@tempc#1{%
   \count@=#1\advance\count@ by "20
   \uccode#1=#1
   \lccode#1=\count@
   \sfcode#1=999
}
\@tempa{`\A}{`\Z}
\ifnum\inputlineno=\m@ne\else
  \@tempa{"80}{"9C}
  \@tempa{"C0}{"DF}
\fi
\uccode`\^^Y=`\I     % dotless i
\lccode`\^^Y=`\^^Y   % dotless i
\uccode`\^^Z=`\J     % dotless j, ae in OT1
\lccode`\^^Z=`\^^Z   % dotless j, ae in OT1
\ifnum\inputlineno=\m@ne\else
  \lccode`\^^9d=`\i    % dotted I
  \uccode`\^^9d=`\^^9d % dotted I
  \lccode`\^^9e=`\^^9e % d-bar
  \uccode`\^^9e=`\^^d0 % d-bar
\fi
\let\@tempa=\@undefined
\let\@tempb=\@undefined
\let\@tempc=\@undefined
\IfFileExists{ltpatch.ltx}
  {\typeout{***********************************^^J%
            * Applying patch file ltpatch.ltx *^^J%
            ***********************************}
   \def\fmtversion@topatch{unknown}
   \input{ltpatch.ltx}
   \ifx\fmtversion\fmtversion@topatch
      \ifx\patch@level\@undefined
        \typeout{^^J^^J^^J%
         !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!^^J%
         !! Patch file `ltpatch.ltx' not suitable for this^^J%
         !! version of LaTeX.^^J^^J%
         !! Please check if initex found an old patch file:^^J%
         !! --- if so, rename it or delete it, and redo the^^J%
         !! initex run.^^J%
         !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!^^J}%
        \batchmode \@@end
      \else
        \everyjob{%
          \typeout{%
            \fmtname\space<\fmtversion> patch level \patch@level}}%
        \the\everyjob
      \fi
   \else
      \typeout{^^J^^J^^J%
     !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!^^J%
     !! Patch file `ltpatch.ltx' (for version <\fmtversion@topatch>)^^J%
     !! is not suitable for version <\fmtversion> of LaTeX.^^J^^J%
     !! Please check if initex found an old patch file:^^J%
     !! --- if so, rename it or delete it, and redo the^^J%
     !!     initex run.^^J%
     !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!^^J}%
       \batchmode \@@end
   \fi
   \let\fmtversion@topatch\relax
  }{}
\let\@filelist\@gobble
\makeatother
\dump
\endinput
%% 
%% End of file `latex.ltx'.
