%%
%% This is file `edmac.tex',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% edmac.doc 
%% 
%% IMPORTANT NOTICE:
%% 
%% For the copyright see the source file.
%% 
%% Any modified versions of this file must be renamed
%% with new filenames distinct from edmac.tex.
%% 
%% For distribution of the original source see the terms
%% for copying and modification in the file edmac.doc.
%% 
%% This generated file may be distributed as long as the
%% original source files, as listed above, are part of the
%% same distribution. (The sources need not necessarily be
%% in the same archive or directory.)
{\catcode`\$=9
\gdef\fileversion{ $Revision:   3.17  $ }
\gdef\filedate{ $Date:   12 Jun 1996 17:15:00  $ }}
\def\docdate{12 June 1996}
%% \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         \~}
%%
\ifx\edmacloaded\relax\endinput\else\let\edmacloaded=\relax\fi
{\newlinechar=`\^^J
\message{^^J
 ********************************************************************^^J
 EDMAC Critical edition macros.^^J
 Copyright (C) 1990--1996 John Lavagnino and Dominik Wujastyk.^^J
 This is free software, and you are welcome to redistribute it under^^J
 certain conditions; see the accompanying file COPYING for details.^^J
 ^^J%
\fileversion\space\space\space <\filedate>.^^J
 ********************************************************************^^J^^J }}
\def\makeatletter{\catcode`\@=11 }
\def\makeatother{\catcode`\@=12 }
\makeatletter
\newcount\@tempcnta \newcount\@tempcntb
\def\edmac@warning#1{\immediate\write\sixt@@n{EDMAC warning: #1}}
\newcount\section@num
\section@num=0
\let\extensionchars=\empty
\newif\ifnumbering
\def\beginnumbering{%
  \ifnumbering
     \errmessage{Numbering has already been started}%
     \endnumbering
  \fi
  \global\numberingtrue
  \global\advance\section@num by 1
  \global\absline@num=0
  \global\line@num=0
  \global\subline@num=0
  \global\@lock=0
  \global\sub@lock=0
  \global\sublines@false
  \global\let\next@page@num=\relax
  \global\let\sub@change=\relax
  \message{Section \the\section@num }%
  \line@list@stuff{\jobname.\extensionchars\the\section@num}%
  \end@stuff}
\def\endnumbering{%
  \ifnumbering
    \global\numberingfalse
    \normal@pars
    \ifx\insertlines@list\empty\else
      \global\noteschanged@true
    \fi
    \ifx\line@list\empty\else
      \global\noteschanged@true
    \fi
    \ifnoteschanged@
      \immediate\write\sixt@@n{EDMAC reminder: }%
      \immediate\write\sixt@@n{ The number of footnotes in this section
                                has changed since the last run.}%
      \immediate\write\sixt@@n{ You will need to run TeX two more times
                                before the footnote placement}%
      \immediate\write\sixt@@n{ and line numbering in this section are
                                correct.}%
    \fi
  \else
    \errmessage{Numbering was not started}%
  \fi}
\def\pausenumbering{\endnumbering\global\numberingtrue}
\def\resumenumbering{%
  \ifnumbering
     \global\advance\section@num by 1
     \message{Section \the\section@num\space
                               (continuing the previous section)}%
     \line@list@stuff{\jobname.\extensionchars\the\section@num}%
     \end@stuff
  \else
     \errmessage{Numbering should already have been started.}%
     \endnumbering
     \beginnumbering
  \fi}
\newif\ifbypage@
\def\lineation#1{{%
  \ifnumbering
    \errmessage{You can't use \string\lineation\space
                          within a numbered section}%
  \else
    \def\@tempa{#1}\def\@tempb{page}%
    \ifx\@tempa\@tempb
        \global\bypage@true
    \else
       \def\@tempb{section}%
       \ifx\@tempa\@tempb
           \global\bypage@false
       \else
           \edmac@warning{Bad \string\lineation\space argument.}%
       \fi
    \fi
  \fi}}
\newcount\line@margin
\def\linenummargin#1{{%
  \def\@tempa{#1}\def\@tempb{left}%
  \ifx\@tempa\@tempb
      \global\line@margin=0
  \else
     \def\@tempb{right}%
     \ifx\@tempa\@tempb
         \global\line@margin=1
     \else
       \def\@tempb{outer}%
       \ifx\@tempa\@tempb
           \global\line@margin=2
       \else
         \def\@tempb{inner}%
         \ifx\@tempa\@tempb
             \global\line@margin=3
         \else
             \edmac@warning{Bad \string\linenummargin\space argument.}%
         \fi
       \fi
     \fi
  \fi}}
\newcount\firstlinenum
\newcount\linenumincrement
\firstlinenum=5
\linenumincrement=5
\newcount\firstsublinenum
\newcount\sublinenumincrement
\firstsublinenum=5
\sublinenumincrement=5
\newcount\lock@disp
\def\lockdisp#1{{%
  \def\@tempa{#1}\def\@tempb{first}%
  \ifx\@tempa\@tempb
      \global\lock@disp=0
  \else
     \def\@tempb{last}%
     \ifx\@tempa\@tempb
         \global\lock@disp=1
     \else
       \def\@tempb{all}%
       \ifx\@tempa\@tempb
           \global\lock@disp=2
       \else
           \edmac@warning{Bad \string\lockdisp\space argument.}%
       \fi
     \fi
  \fi}}
\newcount\sublock@disp
\def\sublockdisp#1{{%
  \def\@tempa{#1}\def\@tempb{first}%
  \ifx\@tempa\@tempb
      \global\sublock@disp=0
  \else
     \def\@tempb{last}%
     \ifx\@tempa\@tempb
         \global\sublock@disp=1
     \else
       \def\@tempb{all}%
       \ifx\@tempa\@tempb
           \global\sublock@disp=2
       \else
           \edmac@warning{Bad \string\sublockdisp\space argument.}%
       \fi
     \fi
  \fi}}
\newdimen\linenumsep
\linenumsep=1pc
\ifx\selectfont\undefined
  \let\numlabfont=\sevenrm
\else
  \def\numlabfont{\fontsize{7}{8pt}\rm}
\fi
\def\leftlinenum{\numlabfont\the\line@num
             \ifsublines@
               \ifnum\subline@num>0
                    \unskip\fullstop\the\subline@num
               \fi
             \fi
             \kern\linenumsep}
\def\rightlinenum{\kern\linenumsep \numlabfont\the\line@num
             \ifsublines@
               \ifnum\subline@num>0
                    \unskip\fullstop\the\subline@num
               \fi
             \fi}
\def\list@create#1{\global\let#1=\empty}
\def\list@clear#1{\global\let#1=\empty}
\newtoks\@toksa \newtoks\@toksb
\global\@toksa={\\}
\long\def\xright@appenditem#1\to#2{%
  \global\@toksb=\expandafter{#2}%
  \xdef#2{\the\@toksb\the\@toksa\expandafter{#1}}%
  \global\@toksb={}}
\long\def\xleft@appenditem#1\to#2{%
  \global\@toksb=\expandafter{#2}%
  \xdef#2{\the\@toksa\expandafter{#1}\the\@toksb}%
  \global\@toksb={}}
\def\gl@p#1\to#2{\expandafter\gl@poff#1\gl@poff#1#2}
\long\def\gl@poff\\#1#2\gl@poff#3#4{\gdef#4{#1}\gdef#3{#2}}
\newcount\line@num
\newcount\subline@num
\newif\ifsublines@
\newcount\absline@num
\newcount\@lock
\newcount\sub@lock
\list@create{\line@list}
\list@create{\insertlines@list}
\list@create{\actionlines@list}
\list@create{\actions@list}
\newcount\page@num
\newcount\endpage@num
\newcount\endline@num
\newcount\endsubline@num
\newif\ifnoteschanged@
\newread\@inputcheck
\def\read@linelist#1{%
  \list@clear{\line@list}%
  \list@clear{\insertlines@list}%
  \list@clear{\actionlines@list}%
  \list@clear{\actions@list}%
  \openin\@inputcheck=#1
  \ifeof\@inputcheck
    \edmac@warning{Can't find line-list file #1}%
    \global\noteschanged@true
  \else
    \global\noteschanged@false
    \closein\@inputcheck
  \begingroup
     \catcode`\[=1 \catcode`\]=2
     \makeatletter \catcode`\^^M=9
     \input #1
  \endgroup
 \fi
  \global\page@num=-1
  \ifx\actionlines@list\empty
      \gdef\next@actionline{1000000}%
  \else
      \gl@p\actionlines@list\to\next@actionline
      \gl@p\actions@list\to\next@action
  \fi}
\def\@l{\advance\absline@num by 1
         \ifx\next@page@num\relax \else
             \page@action
             \let\next@page@num=\relax
         \fi
         \ifx\sub@change\relax \else
            \ifnum\sub@change>0
               \sublines@true
            \else
               \sublines@false
            \fi
            \sub@action
            \let\sub@change=\relax
         \fi
         \ifcase\@lock
            \or
               \@lock=2
            \or \or
               \@lock=0
         \fi
         \ifcase\sub@lock
            \or
               \sub@lock=2
            \or \or
               \sub@lock=0
         \fi
         \ifsublines@
              \ifnum\sub@lock<2
                \advance\subline@num by 1
              \fi
         \else
              \ifnum\@lock<2
                \advance\line@num by 1 \subline@num=0
              \fi
         \fi}
\def\@page#1{\ifbypage@
             \line@num=0 \subline@num=0
           \fi
           \page@num=#1
           \def\next@page@num{#1}}
\def\sub@on{\ifsublines@
     \let\sub@change=\relax
  \else
     \def\sub@change{1}%
  \fi}
\def\sub@off{\ifsublines@
     \def\sub@change{-1}%
  \else
     \let\sub@change=\relax
  \fi}
\def\@adv#1{\ifsublines@
       \advance\subline@num by #1
       \ifnum\subline@num<0
          \edmac@warning{\string\advanceline\space produced
              a sub-line number less than zero.}%
          \subline@num=0
       \fi
  \else
       \advance\line@num by #1
       \ifnum\line@num<0
          \edmac@warning{\string\advanceline\space produced
              a line number less than zero.}%
          \line@num=0
       \fi
  \fi
  \set@line@action}
\def\@set#1{\ifsublines@
    \subline@num=#1
  \else
    \line@num=#1
  \fi
  \set@line@action}
\def\page@action{%
  \xright@appenditem{\the\absline@num}\to\actionlines@list
  \xright@appenditem{\next@page@num}\to\actions@list}
\def\set@line@action{%
  \xright@appenditem{\the\absline@num}\to\actionlines@list
  \ifsublines@
       \@tempcnta=-\subline@num
  \else
       \@tempcnta=-\line@num
  \fi
  \advance\@tempcnta by -5000
  \xright@appenditem{\the\@tempcnta}\to\actions@list}
\def\sub@action{%
  \xright@appenditem{\the\absline@num}\to\actionlines@list
  \ifsublines@
      \xright@appenditem{-1001}\to\actions@list
  \else
      \xright@appenditem{-1002}\to\actions@list
  \fi}
\def\lock@on{\futurelet\next\do@lockon}
\def\do@lockon{%
  \ifx\next\lock@off
     \global\let\lock@off=\skip@lockoff
  \else
     \xright@appenditem{\the\absline@num}\to\actionlines@list
     \ifsublines@
       \xright@appenditem{-1005}\to\actions@list
       \ifcase\sub@lock
          \sub@lock=1
       \else
          \sub@lock=0
       \fi
     \else
       \xright@appenditem{-1003}\to\actions@list
       \ifcase\@lock
          \@lock=1
       \else
          \@lock=0
       \fi
     \fi
  \fi}
\def\do@lockoff{%
  \xright@appenditem{\the\absline@num}\to\actionlines@list
  \ifsublines@
    \xright@appenditem{-1006}\to\actions@list
    \ifnum\sub@lock=2
       \sub@lock=3
    \else
       \sub@lock=0
    \fi
  \else
    \xright@appenditem{-1004}\to\actions@list
    \ifnum\@lock=2
       \@lock=3
    \else
       \@lock=0
    \fi
  \fi}
\def\skip@lockoff{\global\let\lock@off=\do@lockoff}
\global\let\lock@off=\do@lockoff
\newcount\insert@count
\def\dummy@ref#1#2{#2}
\def\@ref#1#2{%
  \global\insert@count=#1
  \loop\ifnum\insert@count>0
    \xright@appenditem{\the\absline@num}\to\insertlines@list
    \global\advance\insert@count by -1
  \repeat
  \begingroup
    \let\@ref=\dummy@ref
    \let\page@action=\relax
    \let\sub@action=\relax
    \let\set@line@action=\relax
    \let\@lab=\relax
    #2
    \global\endpage@num=\page@num
    \global\endline@num=\line@num
    \global\endsubline@num=\subline@num
  \endgroup
    \xright@appenditem%
      {\the\page@num|\the\line@num|%
       \ifsublines@ \the\subline@num \else 0\fi|%
       \the\endpage@num|\the\endline@num|%
       \ifsublines@ \the\endsubline@num \else 0\fi}\to\line@list
  #2}
\newwrite\linenum@out
\newif\iffirst@linenum@out@
\first@linenum@out@true
\def\line@list@stuff#1{%
  \read@linelist{#1}%
  \iffirst@linenum@out@
     \immediate\closeout\linenum@out
     \global\first@linenum@out@false
     \immediate\openout\linenum@out=#1
  \else
     \closeout\linenum@out
     \openout\linenum@out=#1
     \page@start
  \fi}
\def\new@line{\write\linenum@out{\string\@l}}
\def\flag@start{%
  \edef\next{\write\linenum@out{%
                  \string\@ref[\the\insert@count][}}%
  \next}
\def\flag@end{\write\linenum@out{]}}
\def\page@start{%
  \iffirst@linenum@out@ \else
    \write\linenum@out{\string\@page[\the\pageno]}%
  \fi}
\def\startsub{\dimen0\lastskip
  \ifdim\dimen0>0pt \unskip \fi
  \write\linenum@out{\string\sub@on}%
  \ifdim\dimen0>0pt \hskip\dimen0 \fi}
\def\endsub{\dimen0\lastskip
  \ifdim\dimen0>0pt \unskip \fi
  \write\linenum@out{\string\sub@off}%
  \ifdim\dimen0>0pt \hskip\dimen0 \fi}
\def\advanceline#1{\write\linenum@out{\string\@adv[#1]}}
\def\setline#1{%
  \ifnum#1<0
    \edmac@warning{Bad setline argument.}%
  \else
    \write\linenum@out{\string\@set[#1]}%
  \fi}
\def\startlock{\write\linenum@out{\string\lock@on}}
\def\endlock{\write\linenum@out{\string\lock@off}}
\list@create{\end@lemmas}
\long\def\dummy@text#1#2/{#1}
\def\@gobble#1{}
\def\no@expands{\let\rm=0\let\it=0\let\sl=0\let\bf=0\let\tt=0%
  \let\b=0\let\c=0\let\d=0\let\t=0%
  \let\select@@lemmafont=0%
  \def\protect{\noexpand\protect\noexpand}%
  \let\startsub=\relax  \let\endsub=\relax
  \let\startlock=\relax \let\endlock=\relax
  \let\label=\@gobble   \let\pageref=\@gobble
  \let\lineref=\@gobble \let\sublineref=\@gobble
  \let\setline=\@gobble \let\advanceline=\@gobble
  \let\text=\dummy@text
  \morenoexpands}
\let\morenoexpands=\relax
\long\def\text#1#2/{\leavevmode
  \begingroup
    \no@expands
    \xdef\@tag{#1}%
    \set@line
    \global\insert@count=0
    \ignorespaces #2\relax
    \flag@start
  \endgroup
  #1%
  \ifx\end@lemmas\empty \else
    \gl@p\end@lemmas\to\x@lemma
    \x@lemma
    \global\let\x@lemma=\relax
  \fi
  \flag@end}
\def\set@line{%
  \ifx\line@list\empty
    \global\noteschanged@true
    \xdef\@nums{000|000|000|000|000|000|\edfont@info}%
 \else
   \gl@p\line@list\to\@tempb
   \xdef\@nums{\@tempb|\edfont@info}%
   \global\let\@tempb=\undefined
 \fi}
\ifx\selectfont\undefined       % we're using Plain fonts
  \def\edfont@info{\the\fam}
\else                           % we're using NFSS
  \def\edfont@info{\f@encoding/\f@family/\f@series/\f@shape}
\fi
\def\lemma#1{\xdef\@tag{#1}\ignorespaces}
\def\linenum#1{%
  \xdef\@tempa{#1|||||||\noexpand\\\@nums}%
  \global\let\@nums=\empty
  \expandafter\line@set\@tempa|\\\ignorespaces}
\def\line@set#1|#2\\#3|#4\\{%
  \gdef\@tempb{#1}%
  \ifx\@tempb\empty
        \@add{#3}%
  \else
        \@add{#1}%
  \fi
  \gdef\@tempb{#4}%
  \ifx\@tempb\empty\else
      \@add{|}\line@set#2\\#4\\%
  \fi}
\def\@add#1{\xdef\@nums{\@nums#1}}
\newbox\raw@text
\newif\ifnumberedpar@
\newcount\num@lines
\newbox\one@line
\newcount\par@line
\def\pstart{\ifnumbering \else
    \errmessage{\string\pstart\space must be used
                 within a numbered section}%
    \beginnumbering
  \fi
  \ifnumberedpar@
    \errmessage{\string\pstart\space encountered while another
                \string\pstart\space was in effect}%
    \pend
  \fi
  \list@clear{\inserts@list}%
  \global\let\next@insert=\empty
  \begingroup\normal@pars
  \global\setbox\raw@text=\vbox\bgroup
  \numberedpar@true}
\def\pend{\ifnumbering \else
  \errmessage{\string\pend\space must be used
                  within a numbered section}%
  \fi
  \ifnumberedpar@ \else
    \errmessage{\string\pend\space must follow a \string\pstart}%
  \fi
  \brokenpenalty=0 \clubpenalty=0
  \displaywidowpenalty=0 \interlinepenalty=0 \predisplaypenalty=0
  \postdisplaypenalty=0 \widowpenalty=0
  \endgraf\global\num@lines=\prevgraf\egroup
  \global\par@line=0
  \loop\ifvbox\raw@text
     \do@line
  \repeat
  \flush@notes
  \endgroup
  \ignorespaces}
\def\autopar{\ifnumbering \else
    \errmessage{\string\autopar\space must be used
                  within a numbered section}%
    \beginnumbering
  \fi
  \everypar={\setbox0=\lastbox
    \endgraf \vskip-\parskip
    \pstart \noindent \kern\wd0
    \let\par=\pend}%
  \ignorespaces}
\def\normal@pars{\everypar={}\let\par\endgraf}
\def\do@line{%
 {\vbadness=10000 \splittopskip=0pt
 \global\setbox\one@line=\vsplit\raw@text to\baselineskip}%
 \unvbox\one@line \global\setbox\one@line=\lastbox
 \getline@num
\hbox to \hsize{\affixline@num{%
  \hfil\hbox to \wd\one@line{\new@line\unhbox\one@line}}}%
 \add@inserts
 \add@penalties}
\def\getline@num{%
  \global\advance\absline@num by 1
  \do@actions
  \do@ballast
  \ifsublines@
     \ifnum\sub@lock<2
       \global\advance\subline@num by 1
     \fi
  \else
     \ifnum\@lock<2
       \global\advance\line@num by 1
       \global\subline@num=0
     \fi
  \fi}
\newcount\ballast@count
\newcount\ballast
\def\do@ballast{\global\ballast@count=0
  \begingroup
    \advance\absline@num by 1
    \ifnum\next@actionline=\absline@num
      \ifnum\next@action>-1001
        \global\advance\ballast@count by -\ballast
       \fi
     \fi
  \endgroup}
\def\do@actions{%
  \global\let\do@actions@next=\relax
  \ifnum\absline@num<\next@actionline\else
    \ifnum\next@action>-1001
       \global\page@num=\next@action
       \ifbypage@
             \global\line@num=0 \global\subline@num=0
       \fi
    \else
       \ifnum\next@action<-4999
          \@tempcnta=-\next@action
          \advance\@tempcnta by -5001
          \ifsublines@
             \global\subline@num=\@tempcnta
          \else
             \global\line@num=\@tempcnta
          \fi
       \else
          \@tempcnta=-\next@action
          \advance\@tempcnta by -1000
          \ifcase\@tempcnta
          \or
             \global\sublines@true
          \or
             \global\sublines@false
          \or
             \ifcase\@lock
               \global\@lock=1
             \else
               \global\@lock=0
             \fi
          \or
             \ifnum\@lock=2
               \global\@lock=3
             \else
               \global\@lock=0
             \fi
          \or
             \ifcase\sub@lock
               \global\sub@lock=1
             \else
               \global\sub@lock=0
             \fi
          \or
             \ifnum\sub@lock=2
               \global\sub@lock=3
             \else
               \global\sub@lock=0
             \fi
          \else
             \edmac@warning{Bad action code,
                                value \next@action.}%
          \fi
       \fi
    \fi
    \ifx\actionlines@list\empty
         \gdef\next@actionline{1000000}%
    \else
         \gl@p\actionlines@list\to\next@actionline
         \gl@p\actions@list\to\next@action
         \global\let\do@actions@next=\do@actions
    \fi
  \fi
\do@actions@next}
\def\affixline@num#1{%
  \ifsublines@
    \@tempcntb=\subline@num
    \ifnum\subline@num>\firstsublinenum
      \@tempcnta=\subline@num
      \advance\@tempcnta by-\firstsublinenum
      \divide\@tempcnta by\sublinenumincrement
      \multiply\@tempcnta by\sublinenumincrement
      \advance\@tempcnta by\firstsublinenum
    \else
      \@tempcnta=\firstsublinenum
    \fi
    \ifcase\sub@lock
      \or
        \ifnum\sublock@disp=1
           \@tempcntb=0 \@tempcnta=1
        \fi
      \or
        \ifnum\sublock@disp=2 \else
           \@tempcntb=0 \@tempcnta=1
        \fi
      \or
        \ifnum\sublock@disp=0
           \@tempcntb=0 \@tempcnta=1
        \fi
    \fi
  \else
    \@tempcntb=\line@num
    \ifnum\line@num>\firstlinenum
       \@tempcnta=\line@num
       \advance\@tempcnta by-\firstlinenum
       \divide\@tempcnta by\linenumincrement
       \multiply\@tempcnta by\linenumincrement
       \advance\@tempcnta by\firstlinenum
    \else
       \@tempcnta=\firstlinenum
    \fi
    \ifcase\@lock
       \or
         \ifnum\lock@disp=1
            \@tempcntb=0 \@tempcnta=1
         \fi
       \or
         \ifnum\lock@disp=2 \else
            \@tempcntb=0 \@tempcnta=1
         \fi
       \or
         \ifnum\lock@disp=0
            \@tempcntb=0 \@tempcnta=1
         \fi
    \fi
  \fi
  \ifnum\@tempcnta=\@tempcntb
    \@tempcntb=\line@margin
    \ifnum\@tempcntb>1
      \advance\@tempcntb by\page@num
    \fi
    \ifodd\@tempcntb
      #1\rlap{{\rightlinenum}}%
    \else
      \llap{{\leftlinenum}}#1%
    \fi
  \else
    #1%
  \fi
  \ifcase\@lock
  \or
    \global\@lock=2
  \or \or
    \global\@lock=0
  \fi
  \ifcase\sub@lock
  \or
    \global\sub@lock=2
  \or \or
    \global\sub@lock=0
  \fi}
\list@create{\inserts@list}
\def\add@inserts{%
  \global\let\add@inserts@next=\relax
  \ifx\inserts@list\empty \else
  \ifx\next@insert\empty
    \ifx\insertlines@list\empty
      \global\noteschanged@true
      \gdef\next@insert{100000}%
    \else
      \gl@p\insertlines@list\to\next@insert
    \fi
  \fi
  \ifnum\next@insert=\absline@num
    \gl@p\inserts@list\to\@insert
    \@insert
    \global\let\@insert=\undefined
    \global\let\next@insert=\empty
    \global\let\add@inserts@next=\add@inserts
  \fi
\fi
\add@inserts@next}
\def\add@penalties{\@tempcnta=\ballast@count
  \ifnum\num@lines>1
    \global\advance\par@line by 1
    \ifnum\par@line=1
      \advance\@tempcnta by \clubpenalty
    \fi
    \@tempcntb=\par@line \advance\@tempcntb by 1
    \ifnum\@tempcntb=\num@lines
      \advance\@tempcnta by \widowpenalty
    \fi
    \ifnum\par@line<\num@lines
      \advance\@tempcnta by \interlinepenalty
    \fi
  \fi
    \ifnum\@tempcnta=0
      \relax
    \else
      \ifnum\@tempcnta>-10000
        \penalty\@tempcnta
      \else
        \penalty -10000
      \fi
    \fi}
\def\flush@notes{%
  \@xloop
    \ifx\inserts@list\empty \else
      \gl@p\inserts@list\to\@insert
      \@insert
      \global\let\@insert=\undefined
  \repeat}
\def\@xloop#1\repeat{%
  \def\body{#1\expandafter\body\fi}%
  \body}
\ifx\selectfont\undefined
  \font\eightrm=cmr8 \font\eighti=cmmi8  \skewchar\eighti='177
  \font\eightsy=cmsy8 \skewchar\eightsy='60 \font\eightbf=cmbx8
  \font\eighttt=cmtt8 \hyphenchar\eighttt=-1 % inhibit hyphenation
  \font\eightsl=cmsl8 \font\eightit=cmti8
  \font\sixrm=cmr8  \font\sixi=cmmi8    \skewchar\sixi='177
  \font\sixsy=cmsy8 \skewchar\sixsy='60 \font\sixbf=cmbx8
  \font\sixtt=cmtt8 \hyphenchar\sixtt=-1 % inhibit hyphenation
  \font\sixsl=cmsl8 \font\sixit=cmti8
  \def\eightpoint{\def\rm{\fam0\eightrm}%
    \textfont0=\eightrm \scriptfont0=\sixrm
                        \scriptscriptfont0=\fiverm
    \textfont1=\eighti  \scriptfont1=\sixi
                        \scriptscriptfont1=\fivei
    \textfont2=\eightsy \scriptfont2=\sixsy
                        \scriptscriptfont2=\fivesy
    \textfont3=\tenex   \scriptfont3=\tenex
                        \scriptscriptfont3=\tenex
    \def\it{\fam\itfam\eightit}\textfont\itfam=\eightit
    \def\sl{\fam\slfam\eightsl}\textfont\slfam=\eightsl
    \def\bf{\fam\bffam\eightbf}\textfont\bffam=\eightbf
    \scriptfont\bffam=\sixbf \scriptscriptfont\bffam=\fivebf
    \def\tt{\fam\ttfam\eighttt}\textfont\ttfam=\eighttt
    \normalbaselineskip=9pt
    \setbox\strutbox=\hbox{\vrule height7pt depth2pt width0pt}%
    \normalbaselines\rm}
  \let\notefontsetup=\eightpoint
  \let\notenumfont=\sevenrm
  \def\select@lemmafont#1|#2|#3|#4|#5|#6|#7|{%
     \ifcase#7
        \rm \or \rm \or \rm \or \rm           % families 0--3
            \or \it \or \sl \or \bf \or \tt   % families 4--7
            \else \rm
     \fi}
\else
  \def\notefontsetup{\fontsize{8}{9pt}\selectfont}
  \def\notenumfont{\fontsize{7}{8pt}\rm}
  \def\select@lemmafont#1|#2|#3|#4|#5|#6|#7|{\select@@lemmafont#7|}
  \def\select@@lemmafont#1/#2/#3/#4|%
    {\fontencoding{#1}\fontfamily{#2}\fontseries{#3}\fontshape{#4}%
    \selectfont}
\fi
\def\Afootnote#1{%
  \ifnumberedpar@
    \xright@appenditem{\noexpand\vAfootnote{A}%
                   {{\@nums}{\@tag}{#1}}}\to\inserts@list
    \global\advance\insert@count by 1
  \else
    \vAfootnote{A}{{0|0|0|0|0|0|0}{}{#1}}%
  \fi\ignorespaces}
\def\Bfootnote#1{%
  \ifnumberedpar@
    \xright@appenditem{\noexpand\vBfootnote{B}%
                   {{\@nums}{\@tag}{#1}}}\to\inserts@list
    \global\advance\insert@count by 1
  \else
    \vBfootnote{B}{{0|0|0|0|0|0|0}{}{#1}}%
  \fi\ignorespaces}
\def\Cfootnote#1{%
  \ifnumberedpar@
    \xright@appenditem{\noexpand\vCfootnote{C}%
                   {{\@nums}{\@tag}{#1}}}\to\inserts@list
    \global\advance\insert@count by 1
  \else
    \vCfootnote{C}{{0|0|0|0|0|0|0}{}{#1}}%
  \fi\ignorespaces}
\def\Dfootnote#1{%
  \ifnumberedpar@
    \xright@appenditem{\noexpand\vDfootnote{D}%
                   {{\@nums}{\@tag}{#1}}}\to\inserts@list
    \global\advance\insert@count by 1
  \else
    \vDfootnote{D}{{0|0|0|0|0|0|0}{}{#1}}%
  \fi\ignorespaces}
\def\Efootnote#1{%
  \ifnumberedpar@
    \xright@appenditem{\noexpand\vEfootnote{E}%
                   {{\@nums}{\@tag}{#1}}}\to\inserts@list
    \global\advance\insert@count by 1
  \else
    \vEfootnote{E}{{0|0|0|0|0|0|0}{}{#1}}%
  \fi\ignorespaces}
\def\normalvfootnote#1#2{\insert\csname #1footins\endcsname\bgroup
  \notefontsetup
  \interlinepenalty\csname inter#1footnotelinepenalty\endcsname
  \splittopskip\ht\strutbox
  \splitmaxdepth\dp\strutbox \floatingpenalty\@MM
  \leftskip\z@skip \rightskip\z@skip
  \spaceskip\z@skip \xspaceskip\z@skip
  \csname #1footfmt\endcsname #2\egroup}
\def\normalfootfmt#1#2#3{%
  \normal@pars
  \parindent=0pt \parfillskip=0pt plus 1fil
  {\notenumfont\printlines#1|}\strut\enspace
      {\select@lemmafont#1|#2}\rbracket\enskip#3\strut\par}
\def\endashchar{{\rm--}}
\def\fullstop{{\rm.}}
\def\rbracket{{\rm\thinspace]}}
\newcount\@pnum \newcount\@ssub \newcount\@elin
\newcount\@esl  \newcount\@dash
\def\printlines#1|#2|#3|#4|#5|#6|#7|{\begingroup
  \@pnum=0 \@dash=0
  \ifbypage@
     \ifnum#4=#1 \else
        \@pnum=1
        \@dash=1
     \fi
  \fi
  \@elin=\@pnum
  \ifnum#2=#5 \else
      \@elin=1
      \@dash=1
  \fi
  \@ssub=0
  \ifnum#3=0 \else
      \@ssub=1
  \fi
  \@esl=0
  \ifnum#6=0 \else
      \ifnum#6=#3
         \@esl=\@elin
      \else
         \@esl=1
         \@dash=1
      \fi
  \fi
  \ifodd\@pnum #1\fullstop\fi
  #2%
  \ifodd\@ssub \fullstop #3\fi
  \ifodd\@dash \endashchar\fi
  \ifodd\@pnum #4\fullstop\fi
  \ifodd\@elin #5\fi
  \ifodd\@esl \ifodd\@elin\fullstop\fi #6\fi
\endgroup}
\def\normalfootstart#1{%
  \vskip\skip\csname #1footins\endcsname
  \leftskip0pt \rightskip0pt
  \csname #1footnoterule\endcsname}
\let\normalfootnoterule=\footnoterule
\def\normalfootgroup#1{\unvbox\csname #1footins\endcsname}
\newinsert\Afootins \newinsert\Bfootins
\newinsert\Cfootins \newinsert\Dfootins
\newinsert\Efootins
\newcount\interAfootnotelinepenalty
\newcount\interBfootnotelinepenalty
\newcount\interCfootnotelinepenalty
\newcount\interDfootnotelinepenalty
\newcount\interEfootnotelinepenalty
\def\footnormal#1{%
  \csname inter#1footnotelinepenalty\endcsname=100
  \expandafter\let\csname #1footstart\endcsname=\normalfootstart
  \expandafter\let\csname v#1footnote\endcsname=\normalvfootnote
  \expandafter\let\csname #1footfmt\endcsname=\normalfootfmt
  \expandafter\let\csname #1footgroup\endcsname=\normalfootgroup
  \expandafter\let\csname #1footnoterule\endcsname=%
                                             \normalfootnoterule
  \count\csname #1footins\endcsname=1000
  \dimen\csname #1footins\endcsname=0.8\vsize
  \skip\csname #1footins\endcsname=12pt plus6pt minus6pt}
\footnormal{A}
\footnormal{B}
\footnormal{C}
\footnormal{D}
\footnormal{E}
\def\footparagraph#1{%
  \expandafter\let\csname #1footstart\endcsname=\parafootstart
  \expandafter\let\csname v#1footnote\endcsname=\para@vfootnote
  \expandafter\let\csname #1footfmt\endcsname=\parafootfmt
  \expandafter\let\csname #1footgroup\endcsname=\para@footgroup
  \count\csname #1footins\endcsname=1000
  \para@footsetup{#1}}
\def\para@footsetup#1{{\notefontsetup
  \dimen0=\baselineskip
  \multiply\dimen0 by 1024
  \divide \dimen0 by \hsize \multiply\dimen0 by 64
  \expandafter
  \xdef\csname #1footfudgefactor\endcsname{%
    \expandafter\en@number\the\dimen0 }}}
{\catcode`p=12 \catcode`t=12 \gdef\en@number#1pt{#1}}
\def\parafootstart#1{%
  \rightskip=0pt \leftskip=0pt \parindent=0pt
  \vskip\skip\csname #1footins\endcsname
  \csname #1footnoterule\endcsname}
\def\para@vfootnote#1#2{\insert\csname #1footins\endcsname
  \bgroup
    \notefontsetup
    \interlinepenalty=\csname inter#1footnotelinepenalty\endcsname
    \splittopskip=\ht\strutbox
    \splitmaxdepth=\dp\strutbox \floatingpenalty=\@MM
    \leftskip0pt \rightskip0pt
    \setbox0=\vbox{\hsize=\maxdimen
      \noindent\csname #1footfmt\endcsname#2}%
    \setbox0=\hbox{\unvxh0}%
    \dp0=0pt
    \ht0=\csname #1footfudgefactor\endcsname\wd0
    \box0
    \penalty0
  \egroup}
\def\unvxh#1{%
  \setbox0=\vbox{\unvbox#1%
    \global\setbox1=\lastbox}%
  \unhbox1
  \unskip            % remove \rightskip,
  \unskip            % remove \parfillskip,
  \unpenalty         % remove \penalty of 10000,
  \hskip\ipn@skip}   % but add the glue to go between the notes
\newskip\ipn@skip
\def\interparanoteglue#1{%
             {\notefontsetup\global\ipn@skip=#1 \relax}}
\interparanoteglue{1em plus.4em minus.4em}
\def\parafootfmt#1#2#3{%
  \normal@pars
  \parindent=0pt \parfillskip=0pt plus1fil
  {\notenumfont\printlines#1|}\enspace
  {\select@lemmafont#1|#2}\rbracket\enskip
  #3\penalty-10 }
\def\para@footgroup#1{%
  \unvbox\csname #1footins\endcsname \makehboxofhboxes
  \setbox0=\hbox{\unhbox0 \removehboxes}%
  \notefontsetup
  \noindent\unhbox0\par}
\def\makehboxofhboxes{\setbox0=\hbox{}%
  \loop
    \unpenalty
    \setbox2=\lastbox
  \ifhbox2
    \setbox0=\hbox{\box2\unhbox0}
  \repeat}
\def\removehboxes{\setbox0=\lastbox
  \ifhbox0{\removehboxes}\unhbox0 \fi}
\newcount\@k \newdimen\@h
\def\rigidbalance#1#2#3{\setbox0=\box#1 \@k=#2 \@h=#3
  \line{\splittopskip=\@h \vbadness=\@M \hfilneg
  \valign{##\vfil\cr\dosplits}}}
\def\dosplits{\ifnum\@k>0 \noalign{\hfil}\splitoff
  \global\advance\@k-1\cr\dosplits\fi}
\def\splitoff{\dimen0=\ht0
  \divide\dimen0 by\@k \advance\dimen0 by\@h
  \setbox2 \vsplit0 to \dimen0
  \unvbox2 }
\def\footthreecol#1{%
  \expandafter\let\csname v#1footnote\endcsname=\threecolvfootnote
  \expandafter\let\csname #1footfmt\endcsname=\threecolfootfmt
  \expandafter\let\csname #1footgroup\endcsname=\threecolfootgroup
  \threecolfootsetup{#1}}
\def\threecolfootsetup#1{%
  \count\csname #1footins\endcsname 333
  \multiply\dimen\csname #1footins\endcsname by 3 }
\def\threecolvfootnote#1#2{%
  \insert\csname #1footins\endcsname\bgroup
  \notefontsetup
  \interlinepenalty=\csname inter#1footnotelinepenalty\endcsname
  \floatingpenalty=20000
  \splittopskip=\ht\strutbox \splitmaxdepth=\dp\strutbox
  \rightskip=0pt \leftskip=0pt
  \csname #1footfmt\endcsname #2\egroup}
\def\threecolfootfmt#1#2#3{%
  \normal@pars
  \hsize .3\hsize
  \parindent=0pt
  \tolerance=5000
  \raggedright
  \leavevmode
  \strut{\notenumfont\printlines#1|}\enspace
  {\select@lemmafont#1|#2}\rbracket\enskip
  #3\strut\par\allowbreak}
\def\threecolfootgroup#1{{\notefontsetup
  \splittopskip=\ht\strutbox
  \expandafter
  \rigidbalance\csname #1footins\endcsname 3 \splittopskip }}
\def\foottwocol#1{%
  \expandafter\let\csname v#1footnote\endcsname=\twocolvfootnote
  \expandafter\let\csname #1footfmt\endcsname=\twocolfootfmt
  \expandafter\let\csname #1footgroup\endcsname=\twocolfootgroup
  \twocolfootsetup{#1}}
\def\twocolfootsetup#1{%
  \count\csname #1footins\endcsname 500
  \multiply\dimen\csname #1footins\endcsname by 2 }
\def\twocolvfootnote#1#2{\insert\csname #1footins\endcsname\bgroup
  \notefontsetup
  \interlinepenalty=\csname inter#1footnotelinepenalty\endcsname
  \floatingpenalty=20000
  \splittopskip=\ht\strutbox \splitmaxdepth=\dp\strutbox
  \rightskip=0pt \leftskip=0pt
  \csname #1footfmt\endcsname #2\egroup}
\def\twocolfootfmt#1#2#3{%
  \normal@pars
  \hsize .45\hsize
  \parindent=0pt
  \tolerance=5000
  \raggedright
  \leavevmode
  \strut{\notenumfont\printlines#1|}\enspace
  {\select@lemmafont#1|#2}\rbracket\enskip
  #3\strut\par\allowbreak}
\def\twocolfootgroup#1{{\notefontsetup
  \splittopskip=\ht\strutbox
  \expandafter
  \rigidbalance\csname #1footins\endcsname 2 \splittopskip}}
\newdimen\crop@vsize \crop@vsize=0pt
\newdimen\crop@hsize \crop@hsize=0pt
\newdimen\head@margin \head@margin=0pt
\newdimen\back@margin \back@margin=0pt
\newdimen\odd@back \odd@back=0pt
\newdimen\even@back \even@back=0pt
\newtoks\@back
\@back={\ifodd\pageno \odd@back \else \even@back\fi}
\newbox\registration@marks
\def\vertical@rules{%
  \hbox to\crop@hsize{%
    \vrule height1pc width\cropwidth depth0pt
    \hfil
    \vrule width\cropwidth depth0pt}}
\def\horizontal@rules{%
  \hbox to\crop@hsize{%
    \llap{\vrule width1pc height\cropwidth \kern\cropgap}%
    \hfil
    \rlap{\kern\cropgap \vrule width1pc height\cropwidth}}}
\newdimen\cropwidth \cropwidth=.4pt
\newdimen\cropgap \cropgap=5pt
\newdimen\magicvskip \magicvskip=\topskip
\let\headlinefont=\rm
\newif\ifcropmarks@
\def\cropsetup#1#2#3#4{\cropmarks@true
  \global\crop@vsize=#1
  \global\crop@hsize=#2
  \global\head@margin=#3
  \global\back@margin=#4
  \global\odd@back=\back@margin
  \global\even@back=\crop@hsize
  \global\advance\even@back by -\hsize
  \global\advance\even@back by -\back@margin
  \setbox\registration@marks=
    \vbox to \crop@vsize{%
      \offinterlineskip
      \vbox to0pt{\vss
        \vertical@rules
        \kern\cropgap
        \horizontal@rules}%
      \vfil
      \vbox to0pt{%
        \horizontal@rules
        \kern\cropgap
        \vertical@rules\vss}}%
  \ht\registration@marks=0pt
  \wd\registration@marks=0pt
  \global\magicvskip=\topskip
  {\headlinefont \global\advance\magicvskip by -\ht\strutbox}%
  \global\advance\magicvskip by -2\baselineskip}
\output{\edmac@output}
\def\edmac@output{\shipout\vbox{\normal@pars
  \ifcropmarks@
    \do@cropmarks
  \else
    \vbox{\makeheadline\pagebody\makefootline}%
  \fi}%
  \advancepageno
  \ifnum\outputpenalty>-\@MM\else\dosupereject\fi}
\def\pagecontents{\page@start
  \ifvoid\topins\else\unvbox\topins\fi
  \dimen@=\dp\@cclv \unvbox\@cclv % open up \box255
  \do@feet
  \ifr@ggedbottom \kern-\dimen@ \vfil \fi}
\def\do@cropmarks{%
  \vbox{\offinterlineskip
    \kern\magicvskip
    \copy\registration@marks
    \kern-\magicvskip}%
  \nointerlineskip
  \kern\head@margin
  \moveright\the\@back\vbox{\makeheadline\pagebody\makefootline}}
\def\do@feet{%
  \ifvoid\footins\else
    \vskip\skip\footins
    \footnoterule
    \unvbox\footins
  \fi
  \ifvoid\Afootins\else
    \Afootstart{A}\Afootgroup{A}%
  \fi
  \ifvoid\Bfootins\else
    \Bfootstart{B}\Bfootgroup{B}%
  \fi
  \ifvoid\Cfootins\else
    \Cfootstart{C}\Cfootgroup{C}%
  \fi
  \ifvoid\Dfootins\else
    \Dfootstart{D}\Dfootgroup{D}%
  \fi
  \ifvoid\Efootins\else
    \Efootstart{E}\Efootgroup{E}%
  \fi}
\list@create{\labelref@list}
\newwrite\@aux
\def\do@labelsfile{%
   \openin\@inputcheck=\jobname.aux
   \ifeof\@inputcheck \else
      \closein\@inputcheck
      \begingroup
         \makeatletter \catcode`\^^M=9
         \input\jobname.aux
      \endgroup
   \fi
   \immediate\openout\@aux=\jobname.aux
   \global\let\do@labelsfile=\relax}
\def\zz@@@{000|000|000} % set three counters to zero in one go
\def\label#1{\do@labelsfile
  \write\linenum@out{\string\@lab}%
  \ifx\labelref@list\empty
    \xdef\label@refs{\zz@@@}%
  \else
    \gl@p\labelref@list\to\label@refs
  \fi
  \edef\next{\write\@aux{\string\make@labels\label@refs|{#1}}}%
  \next}
\def\make@labels#1|#2|#3|#4{%
  \expandafter\ifx\csname the@label#4\endcsname \relax\else
    \edmac@warning{Duplicate definition of label `#4'
                   on page \number\pageno.}%
  \fi
  \expandafter\gdef\csname the@label#4\endcsname{#1|#2|#3}%
  \ignorespaces}
\def\@lab{\xright@appenditem
  {\the\page@num|\the\line@num|%
     \ifsublines@ \the\subline@num \else 0\fi}\to\labelref@list}
\def\pageref#1{\ref@undefined{#1}\getref@num{1}{#1}}
\def\xpageref#1{\getref@num{1}{#1}}
\def\lineref#1{\ref@undefined{#1}\getref@num{2}{#1}}
\def\xlineref#1{\getref@num{2}{#1}}
\def\sublineref#1{\ref@undefined{#1}\getref@num{3}{#1}}
\def\xsublineref#1{\getref@num{3}{#1}}
\def\ref@undefined#1{\do@labelsfile
  \expandafter\ifx\csname the@label#1\endcsname\relax
  \edmac@warning{Reference `#1'
           on page \the\pageno\space undefined. Using `000'.}%
        \fi}
\def\getref@num#1#2{%
  \expandafter
  \ifx\csname the@label#2\endcsname \relax
    000%
  \else
    \expandafter\expandafter\expandafter
    \label@parse\csname the@label#2\endcsname|#1%
  \fi}
\def\label@parse#1|#2|#3|#4{%
  \ifcase #4\relax
  \or #1%
  \or #2%
  \or #3%
  \fi}
\def\xxref#1#2{%
  {\expandafter\ifx\csname the@label#1\endcsname
   \relax \expandafter\let\csname the@label#1\endcsname\zz@@@\fi
   \expandafter\ifx\csname the@label#2\endcsname \relax
   \expandafter\let\csname the@label#2\endcsname\zz@@@\fi
   \linenum{\csname the@label#1\endcsname|%
    \csname the@label#2\endcsname}}}
\def\makelabel#1#2{\expandafter\xdef\csname the@label#1\endcsname{#2}}
\newwrite\@end
\newif\ifend@
\def\end@open#1{\end@true\immediate\openout\@end=#1\relax}
\def\end@close{\end@false\immediate\closeout\@end}
\def\end@stuff{%
 \ifend@\relax\else
   \end@open{\jobname.end}%
 \fi
 \immediate\write\@end{\string\@section{\the\section@num}}}
\def\Aendnote#1{{\newlinechar='40
       \immediate\write\@end{\string\Aend%
                {\ifnumberedpar@\@nums\fi}%
                {\ifnumberedpar@\@tag\fi}{#1}}}\ignorespaces}
\def\Bendnote#1{{\newlinechar='40
       \immediate\write\@end{\string\Bend%
                {\ifnumberedpar@\@nums\fi}%
                {\ifnumberedpar@\@tag\fi}{#1}}}\ignorespaces}
\def\Cendnote#1{{\newlinechar='40
       \immediate\write\@end{\string\Cend%
                {\ifnumberedpar@\@nums\fi}%
                {\ifnumberedpar@\@tag\fi}{#1}}}\ignorespaces}
\def\Dendnote#1{{\newlinechar='40
       \immediate\write\@end{\string\Dend%
                {\ifnumberedpar@\@nums\fi}%
                {\ifnumberedpar@\@tag\fi}{#1}}}\ignorespaces}
\def\Eendnote#1{{\newlinechar='40
       \immediate\write\@end{\string\Eend%
                {\ifnumberedpar@\@nums\fi}%
                {\ifnumberedpar@\@tag\fi}{#1}}}\ignorespaces}
\def\endprint#1#2#3{{\notefontsetup{\notenumfont\printlines#1|}%
      \enspace{\select@lemmafont#1|#2}\enskip#3\par}}
\def\@gobblethree#1#2#3{}
\let\Aend=\@gobblethree
\let\Bend=\@gobblethree
\let\Cend=\@gobblethree
\let\Dend=\@gobblethree
\let\Eend=\@gobblethree
\let\@section=\@gobble
\def\doendnotes#1{\end@close
   \begingroup
      \makeatletter
      \expandafter\let\csname #1end\endcsname=\endprint
      \input\jobname.end
   \endgroup}
\def\noendnotes{\global\let\end@stuff=\relax
                \global\chardef\@end=16 }
\makeatother
\endinput
%%
%% End of file `edmac.tex'.
