summaryrefslogtreecommitdiff
path: root/texmf-dist
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-01-11 12:14:02 +0900
committerNorbert Preining <norbert@preining.info>2019-01-11 12:14:02 +0900
commitecacc7b84cdebdf9b1707a44c930b243bcfad52d (patch)
tree332f813c137c22497dbf77b79e51285e737fa9d7 /texmf-dist
parentfe58f035cd3842213361d407fb3129cb4aa2d1ee (diff)
eqexam update
Diffstat (limited to 'texmf-dist')
-rw-r--r--texmf-dist/doc/latex/eqexam/README.md10
-rw-r--r--texmf-dist/doc/latex/eqexam/eqecus.opt (renamed from texmf-dist/tex/latex/eqexam/eqecus.opt)0
-rw-r--r--texmf-dist/doc/latex/eqexam/eqexamman.pdfbin580529 -> 624441 bytes
-rw-r--r--texmf-dist/doc/latex/eqexam/eqexamman.tex (renamed from texmf-dist/source/latex/eqexam/doc/eqexamman.tex)911
-rw-r--r--texmf-dist/doc/latex/eqexam/examples/fig1.epsbin834475 -> 831714 bytes
-rw-r--r--texmf-dist/doc/latex/eqexam/examples/flextended-opt.pdfbin0 -> 28355 bytes
-rw-r--r--texmf-dist/doc/latex/eqexam/examples/flextended-opt.tex106
-rw-r--r--texmf-dist/doc/latex/eqexam/examples/graph.eps18284
-rw-r--r--texmf-dist/doc/latex/eqexam/examples/hw03.tex1
-rw-r--r--texmf-dist/doc/latex/eqexam/examples/quiz01.pdfbin33181 -> 0 bytes
-rw-r--r--texmf-dist/doc/latex/eqexam/examples/quiz01.tex4
-rw-r--r--texmf-dist/doc/latex/eqexam/examples/selectversion_tst.pdfbin29031 -> 0 bytes
-rw-r--r--texmf-dist/doc/latex/eqexam/examples/selectversion_tst.tex9
-rw-r--r--texmf-dist/doc/latex/eqexam/examples/test01.pdfbin115104 -> 0 bytes
-rw-r--r--texmf-dist/doc/latex/eqexam/examples/test01.synctex4789
-rw-r--r--texmf-dist/doc/latex/eqexam/examples/test01.tex9
-rw-r--r--texmf-dist/doc/latex/eqexam/fortextbook.zip (renamed from texmf-dist/source/latex/eqexam/doc/fortextbook.zip)bin718935 -> 718935 bytes
-rw-r--r--texmf-dist/doc/latex/eqexam/fortextbook/fortextbook.pdf (renamed from texmf-dist/source/latex/eqexam/doc/fortextbook/fortextbook.pdf)bin577912 -> 577912 bytes
-rw-r--r--texmf-dist/doc/latex/eqexam/script/eqAttach.asp (renamed from texmf-dist/source/latex/eqexam/script/eqAttach.asp)0
-rw-r--r--texmf-dist/source/latex/eqexam/eqexam.drv66
-rw-r--r--texmf-dist/source/latex/eqexam/eqexam.dtx2216
-rw-r--r--texmf-dist/source/latex/eqexam/eqexam.ins5
-rw-r--r--texmf-dist/tex/latex/eqexam/aebrandom.def5
-rw-r--r--texmf-dist/tex/latex/eqexam/eqalone.def87
-rw-r--r--texmf-dist/tex/latex/eqexam/eqexam.def791
-rw-r--r--texmf-dist/tex/latex/eqexam/eqexam.sty6931
-rw-r--r--texmf-dist/tex/latex/eqexam/eqtextb.def1530
-rw-r--r--texmf-dist/tex/latex/eqexam/flextended.def303
-rw-r--r--texmf-dist/tex/latex/eqexam/fortextbook.sty62
29 files changed, 17245 insertions, 18874 deletions
diff --git a/texmf-dist/doc/latex/eqexam/README.md b/texmf-dist/doc/latex/eqexam/README.md
index b79ff587..325e2bd3 100644
--- a/texmf-dist/doc/latex/eqexam/README.md
+++ b/texmf-dist/doc/latex/eqexam/README.md
@@ -1,5 +1,5 @@
The eqexam Package
-Dated: 2017-03-16
+Dated: 2018-12-13
Author: D. P. Story
eqExam is a LaTeX package for writing exams, tests, quizzes,
@@ -40,6 +40,14 @@ this package are as follows:
folder. See also the series of blogs at
http://www.acrotex.net/blog/?tag=fortextbook
+What's New (2018-12-13) Changes to support the mi-solns package
+
+What's New (2018-04-15) Minor bug fixes
+
+What's New (2018-02-19): Extended the vertical space fill types
+and added \fillineol. Refer to the table of contents under Sections 10.11
+and 10.12.
+
Sample files, previous distributed with eqexam are now available from
http://www.acrotex.net/blog/?cat=107
diff --git a/texmf-dist/tex/latex/eqexam/eqecus.opt b/texmf-dist/doc/latex/eqexam/eqecus.opt
index 15c45866..15c45866 100644
--- a/texmf-dist/tex/latex/eqexam/eqecus.opt
+++ b/texmf-dist/doc/latex/eqexam/eqecus.opt
diff --git a/texmf-dist/doc/latex/eqexam/eqexamman.pdf b/texmf-dist/doc/latex/eqexam/eqexamman.pdf
index 15c7fbc1..b15be4c4 100644
--- a/texmf-dist/doc/latex/eqexam/eqexamman.pdf
+++ b/texmf-dist/doc/latex/eqexam/eqexamman.pdf
Binary files differ
diff --git a/texmf-dist/source/latex/eqexam/doc/eqexamman.tex b/texmf-dist/doc/latex/eqexam/eqexamman.tex
index c8ec9c86..d1c16c01 100644
--- a/texmf-dist/source/latex/eqexam/doc/eqexamman.tex
+++ b/texmf-dist/doc/latex/eqexam/eqexamman.tex
@@ -8,6 +8,9 @@
centertitlepage},
eforms
]{aeb_pro}
+\usepackage[bypasspkgpagestyle,nomarginwrite,usecustomdesign,
+ useclassmaketitle,flextended
+]{eqexam}
%\usepackage[designv,
% latextoc,forcolorpaper,
% centertitlepage]{web}
@@ -19,10 +22,11 @@
\usepackage{eqexaman}
-%\usepackage{srcltx}
+\usepackage{srcltx}
\hfuzz=1pt
+
\def\AEBBook{\textsl{{Acro\!\TeX} eDucation System Tools: {\LaTeX} for interactive PDF documents}}
\def\AEBP{\textsf{AeB Pro}}
@@ -33,13 +37,19 @@
\font\zqacr=zqacr at 8pt
-
+\newcommand\Com[2][]{\texttt{#2}}
+\newcommand\sCom[2][]{}
+\newif\ifusebw \usebwfalse
\setlength{\mathindent}{\leftmargini}
+
+\edef\amtIndent{\the\parindent}
+
%\def\meta#1{\textit{$\langle$#1$\rangle$}}
\makeatletter
+\let\ipkg\@gobble
%\def\numberline#1{{\setlength{\fboxsep}{0pt}\fbox{\hb@xt@\@tempdima{#1\hfil}}}}
%\renewcommand*\l@section{\addvspace{2pt}\@dottedtocline{1}{1.5em}{2.5em}}
@@ -53,6 +63,12 @@
%\renewcommand*\l@subsubsection{\@dottedtocline{3}{8.2em}{1.2em}}
%\renewcommand*\l@subsubsection{\@dottedtocline{3}{7em}{1.2em}}
+\renewcommand{\paragraph}
+ {\@startsection{paragraph}{4}{0pt}{6pt}{-3pt}
+ {\normalfont\normalsize\bfseries}}
+\renewcommand{\subparagraph}
+ {\@startsection{subparagraph}{5}{\parindent}{6pt}{-3pt}%
+ {\normalfont\normalsize\bfseries}}
\newcommand{\exAeBBlogPDF}[2][\urlAcroTeXBlog/]{\par\ifdim\lastskip>0pt\relax\vskip-\lastskip\fi
\vskip\medskipamount\noindent\makebox[0pt][r]{%
@@ -82,16 +98,18 @@
\def\AcroBlog{{Acro\!\TeX} Blog}
\newlength{\aebdimen}
\def\anglemeta#1{$\langle\textit{\texttt{#1}}\rangle$}
+\let\ameta\anglemeta
\def\meta#1{\textit{\texttt{#1}}}
\let\pkg\textsf
\let\env\texttt
\let\opt\texttt
\let\app\textsf
+\def\lp{(}\def\rp{)}
\def\AEB{\textsf{AeB}}
\def\AcroTeX{Acro\!\TeX}
\def\HTML{HTML}\def\FDF{FDF}
\def\PDF{PDF}\def\URL{URL}
-\let\amtIndent\leftmargini
+%\let\amtIndent\leftmargini
\def\bNH{\begin{NoHyper}}\def\eNH{\end{NoHyper}}
\def\nhnameref#1{\bNH\nameref{#1}\eNH}
\def\nhNameref#1{\bNH\Nameref{#1}\eNH}
@@ -118,11 +136,12 @@
\def\FitItIn{\eq@fititin}
\def\endredpoint{\FitItIn{{\large\ifusebw\color{black}\else\color{red}\fi$\blacktriangleleft$}}}
+\reversemarginpar
%\makeindex
-\title{The \texorpdfstring{\textsf{eqexam} Package\\}{eqexam Package, }
-part of the\texorpdfstring{\\Acro\TeX}{AcroTeX} eDucation Bundle}
+\title[dps]{The \texorpdfstring{\textsf{eqexam} Package\\}{eqexam Package, }
+part of the\texorpdfstring{\\}{ }\texorpdfstring{\AcroTeX}{AcroTeX} eDucation Bundle}
\author{D. P. Story}
\subject{%
A LaTeX package for creating Test, quizzes, both for paper and for
@@ -131,9 +150,12 @@ part of the\texorpdfstring{\\Acro\TeX}{AcroTeX} eDucation Bundle}
\keywords{LaTeX, hyperref, PDF, exercises, quizzes}
\university{{\AcroT} Software Development Team}
\email{dpstory@acrotex.net}
-\version{v4.9, 2017/03/16}
+\version{5.1.3, 2018/12/13}
\copyrightyears{2005-\the\year}
+\renewcommand{\exsectitletext}{Solutions to exams in this manual}
+
+
\chngDocObjectTo{\newDO}{doc}
\begin{docassembly}
var titleOfManual="The eqexam Manual";
@@ -178,7 +200,7 @@ _path=_path.substring(0,pos)+"/"+manualfilename;
\section{Forward}
-For the past several years (this year is 2016), I've been writing a book
+For the past several years (this year is \the\year), I've been writing a book
titled,
\begin{quote}
\AEBBook.
@@ -199,7 +221,7 @@ on this documentation. \verb!:-{)!
\begin{flushright}
Dr. D. P. Story\\[3pt]
-January 16, 2016
+\today
\end{flushright}
\section{Introduction}
@@ -434,7 +456,7 @@ conform to a book style. The following are some basics on formatting for
The following two commands appear in \textsf{eqexam}, the first sets some basic
page parameters.
-\begin{Verbatim}[xleftmargin=\leftmargini,fontsize=\fontsize{9}{11}\selectfont]
+\begin{Verbatim}[xleftmargin=\amtIndent,fontsize=\fontsize{9}{11}\selectfont]
\newcommand{\eqeSetExamPageParams}{%
\setlength{\headheight}{12pt}
\setlength{\topmargin}{-.5in}
@@ -448,7 +470,7 @@ page parameters.
\end{Verbatim}
The second command calculates values for \cs{textwidth} and \cs{textheight}
based on the the settings of the first command.
-\begin{Verbatim}[xleftmargin=\leftmargini,fontsize=\fontsize{9}{11}\selectfont]
+\begin{Verbatim}[xleftmargin=\amtIndent,fontsize=\fontsize{9}{11}\selectfont]
\newcommand{\eqExamPageLayout}{%
\setlength\textwidth\paperwidth
\addtolength{\textwidth}{-2in}
@@ -480,7 +502,7 @@ neither \cs{eqeSetExamPageParams} nor \cs{eqExamPageLayout} should be executed.
\newtopic The following commands directly effect how the problems are
displayed within an \textsf{eqexam} environment.
-\begin{Verbatim}[xleftmargin=\leftmargini,fontsize=\fontsize{9}{11}\selectfont]
+\begin{Verbatim}[xleftmargin=\amtIndent,fontsize=\fontsize{9}{11}\selectfont]
\eqexammargin{\normalsize\normalfont\bfseries00.\ }
\end{Verbatim}
The command \cs{eqexammargin} is a convenient way of specifying the
@@ -492,7 +514,7 @@ even between problems, though this is not a intuitive option). Normally it
is executed once for the entire document; but may be executed multiple
times to change margins.
-\begin{Verbatim}[xleftmargin=\leftmargini,fontsize=\fontsize{9}{11}\selectfont]
+\begin{Verbatim}[xleftmargin=\amtIndent,fontsize=\fontsize{9}{11}\selectfont]
\newcommand{\widthtpboxes}{35pt}
\end{Verbatim}
This command sets the width of the boxes that appear in the right margin
@@ -501,7 +523,7 @@ when one of more of the options \texttt{pointsonright},
used. These boxes are used for exams, and not relevant for problem sets of
textbooks. Normally, this parameter is not redefined.
-\begin{Verbatim}[xleftmargin=\leftmargini,fontsize=\fontsize{9}{11}\selectfont]
+\begin{Verbatim}[xleftmargin=\amtIndent,fontsize=\fontsize{9}{11}\selectfont]
\newenvironment{eqequestions}{%
\begin{list}{}{%
\setlength{\labelwidth}{\eqemargin}%
@@ -524,14 +546,14 @@ examples.
Of course, we begin with the standard article class, and the
\textsf{eqexam} package:
-\begin{Verbatim}[xleftmargin=\leftmargini,commandchars=!()]
+\begin{Verbatim}[xleftmargin=\amtIndent,commandchars=!()]
\documentclass{article}
\usepackage[!meta(options)]{eqexam}
\end{Verbatim}
\noindent The \meta{options} are discussed in
section~\ref{eqoptions}. Next comes a exam identification
information:
-\begin{Verbatim}[xleftmargin=\leftmargini,fontsize=\fontsize{9}{11}\selectfont]
+\begin{Verbatim}[xleftmargin=\amtIndent,fontsize=\fontsize{9}{11}\selectfont]
\title[T1]{Test 1}
\subject[C1]{Calculus I}
\author{D. P. Story}
@@ -592,7 +614,7 @@ environments.\footnote{Remember, this was originally a personal
package, meant to suit my own needs.}
\newtopic After the preamble, we then say
-\begin{Verbatim}[xleftmargin=\leftmargini,fontsize=\fontsize{9}{11}\selectfont]
+\begin{Verbatim}[xleftmargin=\amtIndent,fontsize=\fontsize{9}{11}\selectfont]
\begin{document}
\maketitle
@@ -644,7 +666,7 @@ environment. It has one optional argument, heading text for the
instructions; if this optional parameter is not provided, then the default
word is used, the default word is determined by \cs{defaultInstructions},
its default definition is
-\begin{Verbatim}[xleftmargin=\leftmargini]
+\begin{Verbatim}[xleftmargin=\amtIndent]
\defaultInstructions{Instructions.}
\end{Verbatim}
Following this label, the total number of points for this part is
@@ -655,7 +677,7 @@ environment has a color associated with it, and is visible when you
compile the document with the \texttt{forcolorpaper} option. This
color can be set by the command \cs{instructionsColor}; this command
takes a single argument, a named color:
-\begin{Verbatim}[xleftmargin=\leftmargini]
+\begin{Verbatim}[xleftmargin=\amtIndent]
\instructionsColor{blue}
\end{Verbatim}
\noindent The above is the default definition.
@@ -684,13 +706,13 @@ itself may contain special constructs such as one or more fill-in
the blanks.
The syntax for \texttt{problem} is
-\begin{Verbatim}[xleftmargin=\leftmargini,fontsize=\fontsize{9}{11}\selectfont,
+\begin{Verbatim}[xleftmargin=\amtIndent,fontsize=\fontsize{9}{11}\selectfont,
commandchars=!()]
\begin{problem}[!meta(num)|*!meta(num)|empty][h|H]
!anglemeta(Statement of question, which may contain special constructs)
...
...
-\begin{solution}[!meta(vspace)]
+\begin{solution}[!meta(vspace),nLines=!meta(n)]
...
...
\end{solution}
@@ -731,7 +753,7 @@ specify the \texttt{solutionsafter} option.
To make things work correctly, if you do not want to have points
for a question and want to hide the solution, use `\texttt{[]}'
(empty brackets with no spaces) for the first argument.
-\begin{Verbatim}[xleftmargin=\leftmargini,fontsize=\fontsize{9}{11}\selectfont]
+\begin{Verbatim}[xleftmargin=\amtIndent,fontsize=\fontsize{9}{11}\selectfont]
\begin{problem}[][H]
($5$ Points Extra Credit) Solve this problem for extra credit.
\begin{solution}
@@ -744,12 +766,18 @@ the solution appears just for \texttt{solutonsafter}.
\noindent Here, this problem has no points that will be added into
the total number of points for the test.
-The \texttt{solution} environment encloses the solutions. This environment
-is optional. The environment takes one optional parameter, namely the
-vertical space to leave for the student to work the problem. This vertical
+The \texttt{solution} environment encloses the solutions. This environment is
+optional. The environment takes at most two optional parameters,
+\meta{vspace} and \texttt{nLines=\meta{n}}. The \meta{vspace} parameter is a
+length that determines the amount of vertical space to leave for the student
+to work the problem. The
+\texttt{nLines=\meta{n}}\FmtMP{\texttt{nLines=\meta{n}} explained}
+specification signals \pkg{eqexam} to leave \meta{n} lines of vertical space;
+each line is \cs{wlVspace} in height. (For more information on \cs{wlVspace},
+read about the \texttt{linegap} key in Section~\ref{ss:VSFT}.) This vertical
space is \emph{created only} when the document author takes the
-\texttt{nosolutions} option. For example,
-\begin{Verbatim}[xleftmargin=\leftmargini,fontsize=\fontsize{9}{11}\selectfont]
+\texttt{nosolutions} or \texttt{vspacewithsolns} option. For example,
+\begin{Verbatim}[xleftmargin=\amtIndent,fontsize=\fontsize{9}{11}\selectfont]
\begin{problem}[10]
Do this problem.
\begin{solution}[2in]
@@ -757,9 +785,10 @@ This is the solution.
\end{solution}
\end{problem}
\end{Verbatim}
-\noindent This defines a $10$ point problem and leaves $2$ inches
-of vertical space following the problem statement for the student
-to respond, provided the \texttt{nosolutions} option has been taken.
+This defines a $10$ point problem and leaves $2$ inches of vertical space
+following the problem statement for the student to respond. The vertical
+space is generated provided the \texttt{nosolutions} or \opt{vspacewithsolns}
+option has been taken.
Be aware that the solution environment searches for its optional
parameter, and will expand macros looking for a left bracket (\texttt{[}).
@@ -773,19 +802,19 @@ can lead to compilation stopping. Suggested workarounds:
\item Supply empty brackets: \verb!\begin{solution}[]!
\item Use \cs{relax}: \verb!\begin{solution}\relax\textbf{...}!.
The \cs{relax} should not be on the line by itself.
-\begin{Verbatim}[xleftmargin=\leftmargini,fontsize=\fontsize{9}{11}\selectfont]
+\begin{Verbatim}[xleftmargin=\amtIndent,fontsize=\fontsize{9}{11}\selectfont]
\begin{solution}\relax % Not this
\textbf{...}
...
\end{Verbatim}
The above causes an unwanted newline. The next two examples show the
``correct'' method.
-\begin{Verbatim}[xleftmargin=\leftmargini,fontsize=\fontsize{9}{11}\selectfont]
+\begin{Verbatim}[xleftmargin=\amtIndent,fontsize=\fontsize{9}{11}\selectfont]
\begin{solution}\relax\textbf{...} % correct
...
\end{Verbatim}
\noexpand The \cs{relax} appearing on the second line.
-\begin{Verbatim}[xleftmargin=\leftmargini,fontsize=\fontsize{9}{11}\selectfont]
+\begin{Verbatim}[xleftmargin=\amtIndent,fontsize=\fontsize{9}{11}\selectfont]
\begin{solution}
\relax\textbf{...} % correct
...
@@ -796,7 +825,7 @@ these workarounds is too much trouble, you can use a global solution. Use
\cs{noSolnOpt} to globally turn off the check for the option parameter by
the \texttt{solution} environment; \cs{ckSolnOpt} turns on parameter
checking (the default). To summarize:
-\begin{Verbatim}[xleftmargin=\leftmargini,fontsize=\fontsize{9}{11}\selectfont]
+\begin{Verbatim}[xleftmargin=\amtIndent,fontsize=\fontsize{9}{11}\selectfont]
\ckSolnOpt % turn on checking for the optional argument (the default)
\noSolnOpt % turn off checking for the optional argument
\end{Verbatim}
@@ -806,6 +835,12 @@ parameter checking.
\redpoint See \Nameref{eqoptions} for more details on
the two options \texttt{nosolutions} and \texttt{solutionsafter}.
+\paragraph*{Optional arguments of \env{solution} environment.}
+The \env{solution} environment takes at most two optional arguments \meta{vspace} and \texttt{nLines=\meta{n}}.
+If both are specified, by default the \meta{vspace} parameter is used. The command
+\cs{usenLineDimen} changes the preference to the line specification; \cs{useVspaceDimen} switches
+the preference back to the \meta{vspace} dimension.
+
\subsubsection{\texttt{problem*}}\label{problemstar}
This environment is used when you want to ask a multi-part
@@ -813,19 +848,19 @@ question, a series of related questions that are to be treated as
a group.
The syntax is
-\begin{Verbatim}[xleftmargin=\leftmargini,fontsize=\fontsize{9}{11}\selectfont,
+\begin{Verbatim}[xleftmargin=\amtIndent,fontsize=\fontsize{9}{11}\selectfont,
commandchars=!()]
\begin{problem*}[!meta(num)|!anglemeta(num)ea|\auto|empty][\Do!anglemeta(do_num)]
Do each of the following problems, and be quick about it.
\begin{parts}
\item[h|H] The first question.
-\begin{solution}[1.5in]
+\begin{solution}[!meta(vspace),nLines=!meta(n)]
This is the solution to the first problem.
\end{solution}
\item[h|H] The second question.
-\begin{solution}[3in]
+\begin{solution}[!meta(vspace),nLines=!meta(n)]
This is the solution to the second problem.
\end{solution}
@@ -860,7 +895,7 @@ the first one takes one of four values:
\item[*\cs{auto}] The points appear ``in-line'' rather than
in the margin.
-\begin{Verbatim}[xleftmargin=\leftmargini,fontsize=\fontsize{9}{11}\selectfont]
+\begin{Verbatim}[xleftmargin=\amtIndent,fontsize=\fontsize{9}{11}\selectfont]
\begin{problem*}[\auto]
Do each of the following problems, and be quick about it.
\begin{parts}
@@ -900,7 +935,7 @@ This is what \texttt{[\cs{Do}\anglemeta{do\_num}]} does. When you specify
added into the exam total. This second parameter is only checked
if the first parameter is \texttt{[\anglemeta{num}ea]}. For example,
specifying
-\begin{Verbatim}[xleftmargin=\leftmargini,fontsize=\fontsize{9}{11}\selectfont]
+\begin{Verbatim}[xleftmargin=\amtIndent,fontsize=\fontsize{9}{11}\selectfont]
\begin{problem*}[5ea][\Do3]
\end{Verbatim}
creates a $15$ point question. This assumes there are $3$ or
@@ -911,7 +946,7 @@ is used, they are \cs{DoNum} and \cs{OutOfNum}; these expand to
the (English) word for the number of problems to do, and the
(English) word for the total number of problems. For example, if
there were five parts to the problem below,\dots
-\begin{Verbatim}[xleftmargin=\leftmargini,fontsize=\fontsize{9}{11}\selectfont]
+\begin{Verbatim}[xleftmargin=\amtIndent,fontsize=\fontsize{9}{11}\selectfont]
\begin{problem*}[5ea][\Do3]
Solve exactly \textit{\DoNum} of the following {\OutOfNum}
problems. ....
@@ -940,7 +975,7 @@ have asked to be able to pose multi-part questions without the
introductory sentence. This is harder request than it sounds, but now
there is the \cs{leadinitem} command. Study the code below.
-\begin{Verbatim}[xleftmargin=\leftmargini,fontsize=\fontsize{9}{11}\selectfont]
+\begin{Verbatim}[xleftmargin=\amtIndent,fontsize=\fontsize{9}{11}\selectfont]
\begin{problem*}[\auto]
\leadinitem\PTs{3} The first question.
\begin{solution}[1.5in]
@@ -978,6 +1013,37 @@ from appearing at the end of the document (but it appears with
\texttt{solutionsafter} or with \texttt{answerkey}), and \texttt{H} removes the solution in
all cases.
+\paragraph{\texorpdfstring{\cs{tableadin}}{\CMD{tableadin}}} There is a
+tabular version of the \cs{leadinitem} command just discussed. Consider the following code:
+\begin{Verbatim}[xleftmargin=\amtIndent,fontsize=\fontsize{9}{11}\selectfont]
+\autotabOn
+\begin{problem*}[\auto]
+\tableadin
+\begin{parts}[2}
+\item\PTs{4} The first question.
+\begin{solution}[1.5in]
+This is the solution to the first problem.
+\end{solution}
+%
+\item\PTs{4} The second question.
+\begin{solution}[3in]
+This is the solution to the second problem.
+\end{solution}
+...
+\end{parts}
+\end{problem*}
+\end{Verbatim}
+The results of this code is viewed as follows, when typeset.
+
+\bigskip
+\noindent\hfill\begin{minipage}{\linewidth-2\leftmargini}
+\noindent\llap{($10^{\text{pts}}$)\quad}\textbf{1.}\ (a)\ The first question.\qquad\hskip2\tabcolsep
+(b)\ The second question.\\[3pt]
+\phantom{\textbf{1.}\ }\dots
+\end{minipage}
+\bigskip
+
+
\subsubsection{Page Breaking}
The \texttt{exam}, \texttt{problem} and \texttt{problem*}
@@ -988,7 +1054,7 @@ If an \texttt{exam} environment begins at the lower third of the
page, it is moved to the next page. You can influence this page
break by using \cs{fvsizeskip} just before the beginning of the
\texttt{exam} environment, like so,
-\begin{Verbatim}[xleftmargin=\leftmargini]
+\begin{Verbatim}[xleftmargin=\amtIndent]
\fvsizeskip{.4}
\end{Verbatim}
\noindent \cs{fvsizeskip} takes a decimal number between $0$ and
@@ -999,7 +1065,7 @@ default value is $.3$.
There is a similar algorithm for \texttt{problem} and
\texttt{problem} but is measured as a multiple of
\cs{baselineskip}. If you place
-\begin{Verbatim}[xleftmargin=\leftmargini]
+\begin{Verbatim}[xleftmargin=\amtIndent]
\nbaselineskip{8}
\end{Verbatim}
\noindent just before a problem that appears near the bottom of
@@ -1055,7 +1121,7 @@ will appear when you compile the document with the
\redpoint An example of \cs{fillin}.
-\begin{Verbatim}[xleftmargin=\leftmargini,fontsize=\fontsize{9}{11}\selectfont]
+\begin{Verbatim}[xleftmargin=\amtIndent,fontsize=\fontsize{9}{11}\selectfont]
\begin{problem}[5]
It is well known that \fillin{1in}{Newton} and \fillin{1in}{Leibniz}
are jointly credited as the founders of modern calculus.
@@ -1111,13 +1177,13 @@ formatting options: This one:
\newtopic The first alignment is the default. To get the second
alignment, you need to set the value of \cs{fillinWidth} to the
common width value of the \cs{TF} fields. For example:
-\begin{Verbatim}[xleftmargin=\leftmargini]
+\begin{Verbatim}[xleftmargin=\amtIndent]
\fillinWidth\defaultTFwidth
\end{Verbatim}
\noindent When \cs{fillinWidth} is set to a positive length (the
common width of the \cs{TF} field), the second alignment above is
created.
-\begin{Verbatim}[xleftmargin=\leftmargini,fontsize=\fontsize{9}{11}\selectfont]
+\begin{Verbatim}[xleftmargin=\amtIndent,fontsize=\fontsize{9}{11}\selectfont]
\begin{problem*}[3ea]
\textit{True} or \textit{False}.
@@ -1158,7 +1224,7 @@ option, \cs{TF} generates a text field.
There is no special command for a longer response question, just
leave enough vertical white space for the student to respond, for
example,
-\begin{Verbatim}[xleftmargin=\leftmargini,fontsize=\fontsize{9}{11}\selectfont]
+\begin{Verbatim}[xleftmargin=\amtIndent,fontsize=\fontsize{9}{11}\selectfont]
\begin{problem}[5]
Do this problem
\begin{solution}[1.5in]
@@ -1182,7 +1248,7 @@ taken, the choices are made into radio button fields so that
are permitted, the \texttt{manswers} environment can be used, see
\Nameref{multiSelect}.
-\begin{Verbatim}[xleftmargin=\leftmargini,fontsize=\fontsize{9}{11}\selectfont]
+\begin{Verbatim}[xleftmargin=\amtIndent,fontsize=\fontsize{9}{11}\selectfont]
\begin{problem*}[\auto] Answer each of the following.
\begin{parts} %\sqLinks
\item\PTs{5} In what year did Columbus sail the ocean blue?
@@ -1227,7 +1293,7 @@ Beginning with Version 1.3, an alternate style of specifying the
alternatives is defined. A new pair of commands are defined: \cs{bChoices}
and \cs{eChoices}. These two enclose the alternatives like so:
-\begin{Verbatim}[xleftmargin=\leftmargini,fontsize=\fontsize{9}{11}\selectfont]
+\begin{Verbatim}[xleftmargin=\amtIndent,fontsize=\fontsize{9}{11}\selectfont]
\begin{exam}{Exam1}
\begin{instructions}
Select the ``best'' answer and darken the corresponding oval on
@@ -1293,7 +1359,7 @@ Then the package option \texttt{allowcirc4mc} is used, the font standard
can use it to create circles, instead of rectangles, to indicate the parts
in a multiple choice (MC) question. To use circles in a multiple choice
question, execute the command,
-\begin{Verbatim}[xleftmargin=\leftmargini]
+\begin{Verbatim}[xleftmargin=\amtIndent]
\useCircForMC
\end{Verbatim}
prior to the MC question.
@@ -1301,7 +1367,7 @@ prior to the MC question.
\goodbreak
To return to the use of rectangles, execute the command,
-\begin{Verbatim}[xleftmargin=\leftmargini]
+\begin{Verbatim}[xleftmargin=\amtIndent]
\useRectForMC
\end{Verbatim}
prior to the MC question.
@@ -1330,7 +1396,7 @@ proofing symbols.
\hskip#2\relax}}}}}}
\makeatother
-\begin{Verbatim}[xleftmargin=\leftmargini,commandchars=!()]
+\begin{Verbatim}[xleftmargin=\amtIndent,commandchars=!()]
\useCheckForProof (!normalfont Check !ding(52), the default)
\useCrossForProof (!normalfont Cross !ding(56), alternative to check)
\useCircForProof (!normalfont Circle !circGlyph(x)(1pt), appropriate with )\useCircForMC
@@ -1338,7 +1404,7 @@ proofing symbols.
All of these user friendly commands are based on the \cs{proofingsymbol}
command. For example, the definitions of \cs{useCheckForProof} and
\cs{useCrossForProof} are,
-\begin{Verbatim}[xleftmargin=\leftmargini,commandchars=!()]
+\begin{Verbatim}[xleftmargin=\amtIndent,commandchars=!()]
\newcommand{\useCheckForProof}{\symbolchoice{check}%
\proofingsymbol{\ding{52}}}
\newcommand{\useCrossForProof}{\symbolchoice{cross}%
@@ -1376,7 +1442,7 @@ the back of the document and markup up as they are with the
have the same choices, you must write to the solutions file using
\cs{writeToSolnFile}. Below is an example.
-\begin{Verbatim}[xleftmargin=\leftmargini,fontsize=\fontsize{9}{11}\selectfont]
+\begin{Verbatim}[xleftmargin=\amtIndent,fontsize=\fontsize{9}{11}\selectfont]
\useCircForMC\useCircForProof
\writeToSolnFile{\protect\useCircForMC\protect\useCircForProof}
\begin{problem}[5] In what year did Columbus sail the ocean blue?
@@ -1394,7 +1460,7 @@ Any multiple choice question that follows will also draw circles for
multiple choice questions, and mark them with a filled circle.
To shift back to the default, expand the following commands prior the next
question.
-\begin{Verbatim}[xleftmargin=\leftmargini,fontsize=\fontsize{9}{11}\selectfont]
+\begin{Verbatim}[xleftmargin=\amtIndent,fontsize=\fontsize{9}{11}\selectfont]
\useRectForMC\useCheckForProof
\writeToSolnFile{\protect\useRectForMC\protect\useCheckForProof}
...
@@ -1412,7 +1478,7 @@ and \texttt{email} options.
Use the \texttt{manswers} environment in the same way you use
\texttt{answers}, except code in more than one correct answer. For
example,
-\begin{Verbatim}[xleftmargin=\leftmargini,fontsize=\fontsize{9}{11}\selectfont]
+\begin{Verbatim}[xleftmargin=\amtIndent,fontsize=\fontsize{9}{11}\selectfont]
\begin{problem}[5]
Which of the following are primary colors?
\begin{manswers}{6} % specify tabular with 6 columns
@@ -1462,7 +1528,7 @@ pair \cs{bChoices} and \cs{eChoices}. The
\end{itemize}
\newtopic The following is an example of the \texttt{random} option of \cs{bChoices}.
-\begin{Verbatim}[xleftmargin=\leftmargini,fontsize=\fontsize{9}{11}\selectfont]
+\begin{Verbatim}[xleftmargin=\amtIndent,fontsize=\fontsize{9}{11}\selectfont]
\begin{problem}[5]
Try to guess the correct answer.
\begin{answers}{3}
@@ -1492,7 +1558,7 @@ these) will placed at the end of the list.
\newtopic Additionally, there are five other commands that support the
randomization feature.
-\begin{Verbatim}[xleftmargin=\leftmargini]
+\begin{Verbatim}[xleftmargin=\amtIndent]
\saveRandomSeed
\inputRandomSeed
\end{Verbatim}
@@ -1540,7 +1606,7 @@ of the choices as you expect it to, it could be that
\textsf{eqexam} is reading an old \texttt{.sav} file. Either delete that file
in your source folder, or comment out \cs{inputRandomSeed} in your document.
-\begin{Verbatim}[xleftmargin=\leftmargini,commandchars=!()]
+\begin{Verbatim}[xleftmargin=\amtIndent,commandchars=!()]
\useRandomSeed{!meta(num)}
\end{Verbatim}
@@ -1550,13 +1616,13 @@ questions rearranged for each. Save the seed value used by
and copy and paste line you see into your document, for example, it
could read \cs{randomi=132088850}. Then use \cs{useRandomSeed} to
use that seed value for that class, for example
-\begin{Verbatim}[xleftmargin=\leftmargini]
+\begin{Verbatim}[xleftmargin=\amtIndent]
\useRandomSeed{132088850} % 11:00 class
% \useRandomSeed{634952429} % 12:30 class
\end{Verbatim}
Of course comment out \cs{inputRandomSeed}.
-\begin{Verbatim}[xleftmargin=\leftmargini]
+\begin{Verbatim}[xleftmargin=\amtIndent]
\turnOnRandomize
\obeyLocalRandomize
\end{Verbatim}
@@ -1564,7 +1630,7 @@ Of course comment out \cs{inputRandomSeed}.
The command \cs{turnOnRandomize} overrides all local settings of \cs{bChoices}
and causes all choice lists to be randomized. While \cs{obeyLocalRandomize}
returns control to the local settings. For example,
-\begin{Verbatim}[xleftmargin=\leftmargini]
+\begin{Verbatim}[xleftmargin=\amtIndent]
\turnOnRandomize
...
\bChoices
@@ -1575,7 +1641,7 @@ returns control to the local settings. For example,
\end{Verbatim}
will cause the choice list to be randomized, even though the
\texttt{random} option was not specified. Whereas, in this code
-\begin{Verbatim}[xleftmargin=\leftmargini,fontsize=\fontsize{9}{11}\selectfont]
+\begin{Verbatim}[xleftmargin=\amtIndent,fontsize=\fontsize{9}{11}\selectfont]
\turnOnRandomize
...
\obeyLocalRandomize
@@ -1669,7 +1735,7 @@ mark up this vertical space with additional instructions, a
diagram or a figure. The problem is how can the author write over
the provided white space. For this, \textsf{eqexam} provides the
\texttt{workarea} environment. The syntax is:
-%\begin{Verbatim}[xleftmargin=\leftmargini,fontsize=\fontsize{9}{11}\selectfont]
+%\begin{Verbatim}[xleftmargin=\amtIndent,fontsize=\fontsize{9}{11}\selectfont]
\settowidth{\aebdimen}{\ttfamily\anglemeta{Material that will overwrite the solutions vertical space}}
\begin{dCmd}[commandchars=!()]{\aebdimen+2\fboxsep+2\fboxrule}
\begin{workarea}[!meta(width)]{!meta(depth)}
@@ -1687,7 +1753,7 @@ The required \meta{depth} parameter is the depth of the work area and it
should match the optional parameter of the \texttt{solutions} environment,
directly above it.
-\begin{Verbatim}[xleftmargin=\leftmargini,fontsize=\fontsize{9}{11}\selectfont]
+\begin{Verbatim}[xleftmargin=\amtIndent,fontsize=\fontsize{9}{11}\selectfont]
\begin{problem}[3]
This is a question.
@@ -1739,7 +1805,7 @@ environment (when the \texttt{nosolutions} option is in effect).
As with \texttt{workarea}, \cs{placeAtxy} does nothing if the
\texttt{nosolutions} option has not been taken.
-\begin{Verbatim}[xleftmargin=\leftmargini,fontsize=\fontsize{9}{11}\selectfont]
+\begin{Verbatim}[xleftmargin=\amtIndent,fontsize=\fontsize{9}{11}\selectfont]
\begin{problem}[3]
This is a question.
\begin{solution}[2in]
@@ -1821,7 +1887,7 @@ default value of the optional parameter for the \texttt{panel} environment
is now \texttt{r} rather than \texttt{l}.
\redpoint Consider the following example.
-\begin{Verbatim}[numbers=left,xleftmargin=\leftmargini,fontsize=\fontsize{9}{11}\selectfont]
+\begin{Verbatim}[numbers=left,xleftmargin=\amtIndent,fontsize=\fontsize{9}{11}\selectfont]
\begin{problem}[7]
This is a question worth $7$ points.
\begin{splitsolution}
@@ -1871,7 +1937,7 @@ parameter.
There is a small gap of \texttt{3pt} (the default) inserted between the
panel and the solution. The value of this gap is contained in the
\cs{panelgap} command,
-\begin{Verbatim}[xleftmargin=\leftmargini]
+\begin{Verbatim}[xleftmargin=\amtIndent]
\newcommand\panelgap{3pt}
\end{Verbatim}
which can be redefined.
@@ -1884,7 +1950,7 @@ overlap the next problem. This is because, unlike the solutions inside a
environment) are typeset in a \texttt{minipage} with a specified depth.
To extend the height of the solution, use the following method.
-\begin{Verbatim}[xleftmargin=\leftmargini]
+\begin{Verbatim}[xleftmargin=\amtIndent]
\begin{splitsolution}[\panelheight+1in]
...
\end{splitsolution}
@@ -1894,13 +1960,13 @@ This sets the total height to be the natural height of the panel plus 1 inch.
\section{\textsf{eqexam} Options}\label{eqoptions}
The options documented here are entered as optional arguments of the eqexam package:
-\begin{Verbatim}[xleftmargin=\leftmargini,commandchars=!()]
+\begin{Verbatim}[xleftmargin=\amtIndent,commandchars=!()]
\usepackage[!meta(optionals)]{eqexam}
\end{Verbatim}
The optional arguments can also be introduced through \texttt{exambuilder.cfg}, the configuration file.
Create a text file with the name of \texttt{exambuilder.cfg}
and create the line shown below.
-\begin{Verbatim}[xleftmargin=\leftmargini,commandchars=!()]
+\begin{Verbatim}[xleftmargin=\amtIndent,commandchars=!()]
\ExecuteOptionsX{!meta(optionals)}
\end{Verbatim}
Place \texttt{exambuilder.cfg} in the folder of the source file and not on the {\LaTeX}
@@ -2028,7 +2094,7 @@ number of new ones.
The design of the separation rule may be modified by the document author
by redefining \cs{separationrule}, its definition is given below:
-\begin{Verbatim}[xleftmargin=\leftmargini]
+\begin{Verbatim}[xleftmargin=\amtIndent]
\newcommand{\separationrule}{\makebox[\linewidth]%
{\centering\rule{.67\linewidth}{.4pt}}}
\end{Verbatim}
@@ -2107,7 +2173,7 @@ See \Nameref{solutionsonly} for further details.
\cs{jobname.sol} file and when \cs{jobname.sol} are input back
in, the command \cs{showAllAnsAtEnd} is executed. The definition
of \cs{showAllAnsAtEnd} is
-\begin{Verbatim}[xleftmargin=\leftmargini]
+\begin{Verbatim}[xleftmargin=\amtIndent]
\newcommand{\showAllAnsAtEnd}{%
\makeAnsEnvForSolnsAtEnd
\answerkeytrue\eq@proofingtrue
@@ -2136,6 +2202,10 @@ See \Nameref{vspacewithsolns} for further details.
globally change the default, from within, it will only change the
default locally.
+\item[\texttt{flextended}] When this option is taken, additional code is
+ input to support filler lines, refer to Section~\ref{ss:VSFT} for
+ details; in particular, read \Nameref{sss:flxtnd}.
+
\item[\texttt{myconfig}] If this option is taken, \textsf{eqexam}
looks for the configuration file \texttt{eqexam.cfg}. This
configuration file is input at the end of the package, and can be used
@@ -2290,7 +2360,7 @@ The first one \texttt{web.cfg} may be already present on your hard
drive if you use the {\AcroB}. Typically, desired default driver
option is placed in here, for example, \texttt{web.cfg} might
contain the single line,
-\begin{Verbatim}[xleftmargin=\leftmargini]
+\begin{Verbatim}[xleftmargin=\amtIndent]
\ExecuteOptions{dvips}
\end{Verbatim}
\noindent for users of the \textsf{dvips} application for
@@ -2371,7 +2441,7 @@ folder. See the file \texttt{fortextbook.pdf} and its source file
\texttt{fortextbook.ltx}.
To use the \texttt{fortextbook} option, a whole panoply of options are needed,
-\begin{Verbatim}[xleftmargin=\leftmargini]
+\begin{Verbatim}[xleftmargin=\amtIndent]
\usepackage[%
fortextbook,ftbsolns,usecustomdesign,
forcolorpaper,noseparationrule,usexkv
@@ -2381,7 +2451,7 @@ Accompanying the \textsf{eqexam} is a simple wrapper package called
\texttt{fortextbook}, which basically calls \textsf{eqexam} with all the above
options. So, the textbook author needs only to specify,
-\begin{Verbatim}[xleftmargin=\leftmargini]
+\begin{Verbatim}[xleftmargin=\amtIndent]
\usepackage{fortextbook}
\end{Verbatim}
The documentation for this option is quite extensive and is
@@ -2449,7 +2519,7 @@ minimum of two pieces of information: the path to the server-side
script \textsf{eqAttach.asp} and the email address of the person
the results are to be sent. The command \cs{SubmitInfo} is used to
supply this info, for example,
-\begin{Verbatim}[xleftmargin=\leftmargini]
+\begin{Verbatim}[xleftmargin=\amtIndent]
\SubmitInfo{http://localhost/scripts}{dpstory@uakron.edu}
\end{Verbatim}
This command takes two arguments, the first is the URL to the
@@ -2480,14 +2550,14 @@ student ``John Q. Student''.
\begin{flushleft}
Message Subject:
-\begin{Verbatim}[xleftmargin=\leftmargini]
+\begin{Verbatim}[xleftmargin=\amtIndent]
Exam Results: Test 1 of U. S. History
\end{Verbatim}
\end{flushleft}
\begin{flushleft}
Message Body:
-\begin{Verbatim}[xleftmargin=\leftmargini]
+\begin{Verbatim}[xleftmargin=\amtIndent]
Exam Information:
Course Name: U. S. History
Exam: Test 1
@@ -2505,13 +2575,13 @@ course. The default value for this is \cs{websubject}, obtained
from the \cs{subject} macro used in the preamble; however, if you
want a different name in the email, perhaps with more information
included, you can redefine the value using this macro.
-\begin{Verbatim}[xleftmargin=\leftmargini]
+\begin{Verbatim}[xleftmargin=\amtIndent]
\EmailCourseName{\websubject} % the default
\end{Verbatim}
\noindent\textbf{\color{red}Important:} When you use {\TeX}
formatting in the subject, such as
-\begin{Verbatim}[xleftmargin=\leftmargini]
+\begin{Verbatim}[xleftmargin=\amtIndent]
\subject{\bfseries Calculus 1}
\end{Verbatim}
and you are using the \texttt{email} option, it will
@@ -2525,13 +2595,13 @@ the course. The default value for this is \cs{webtitle}, obtained
from the \cs{title} macro used in the preamble; however, if you
want a different name in the email, perhaps with more information
included, you can redefine the value using this macro.
-\begin{Verbatim}[xleftmargin=\leftmargini]
+\begin{Verbatim}[xleftmargin=\amtIndent]
\EmailExamName{\webtitle} % the default
\end{Verbatim}
\noindent\textbf{\color{red}Important:} If you use some {\TeX}
formatting in the title, such as
-\begin{Verbatim}[xleftmargin=\leftmargini]
+\begin{Verbatim}[xleftmargin=\amtIndent]
\title{\bfseries Test 1}
\end{Verbatim}
and you are using the \texttt{email} option, it will be necessary
@@ -2543,11 +2613,11 @@ email!
\redpoint\cs{EmailSubject} The document author might want a custom
subject in the email, instead of the standard one. By using this
macro, he can design his own email subject.
-\begin{Verbatim}[xleftmargin=\leftmargini]
+\begin{Verbatim}[xleftmargin=\amtIndent]
\EmailSubject{} % the default
\end{Verbatim}
\noindent In this case \textsf{eqAttach.asp} inserts the standard one.
-\begin{Verbatim}[xleftmargin=\leftmargini]
+\begin{Verbatim}[xleftmargin=\amtIndent]
Exam Results: \webtitle of \websubject
\end{Verbatim}
\noindent The email would read ``\texttt{Exam Results: Test 1 of
@@ -2555,7 +2625,7 @@ Calculus I}'', for example.
To change the email subject we would put the following command in
the preamble:
-\begin{Verbatim}[xleftmargin=\leftmargini]
+\begin{Verbatim}[xleftmargin=\amtIndent]
\EmailSubject{Another Set of Cool Results}
\end{Verbatim}
@@ -2563,7 +2633,7 @@ the preamble:
(\textsf{eqAttach.asp}) returns a message acknowledging the
receipt of the data, this command allows the document author to
customize the return message. The default definition is:
-\begin{Verbatim}[xleftmargin=\leftmargini]
+\begin{Verbatim}[xleftmargin=\amtIndent]
\ServerRetnMsg{}
\end{Verbatim}
\noindent In this case \textsf{eqAttach.asp} inserts the standard
@@ -2571,14 +2641,14 @@ one, ``Exam results successfully sent to your instructor!''.
To change the return message to something more meaningful, put
this command in the preamble, for example,
-\begin{Verbatim}[xleftmargin=\leftmargini]
+\begin{Verbatim}[xleftmargin=\amtIndent]
\ServerRetnMsg{Your responses to the \\TeX Survey have been
received, thank you!}
\end{Verbatim}
\redpoint\cs{SubmitButtonLabel} is the label that appears on the
submit button.
-\begin{Verbatim}[xleftmargin=\leftmargini]
+\begin{Verbatim}[xleftmargin=\amtIndent]
\SubmitButtonLabel{Submit} % the default
\end{Verbatim}
@@ -2640,7 +2710,7 @@ two methods of sending e-mail:
The script needs to be modified appropriate to your server, in
particular, search down in \texttt{eqAttach.asp} for the
configuration line
-\begin{Verbatim}[xleftmargin=\leftmargini,fontsize=\fontsize{9}{11}\selectfont]
+\begin{Verbatim}[xleftmargin=\amtIndent,fontsize=\fontsize{9}{11}\selectfont]
eqMail.Configuration.Fields.Item
("http://schemas.microsoft.com/cdo/configuration/smtpserver")
= "mySMTP"
@@ -2654,14 +2724,14 @@ message to the document that indicates the receipt of the data,
this message is``Exam results successfully sent to your
instructor!'' The message, as explained earlier, can be changed
using the \cs{ServerRetnMsg}, like so
-\begin{Verbatim}[xleftmargin=\leftmargini,fontsize=\fontsize{9}{11}\selectfont]
+\begin{Verbatim}[xleftmargin=\amtIndent,fontsize=\fontsize{9}{11}\selectfont]
\ServerRetnMsg{Your TeX survey results have been received, thank you.}
\end{Verbatim}
\noindent Now, if for whatever reason you don't want this
confirmation message to return to the document for display in
alert box, you can sent the \texttt{silent} as part of the query
string. For example, if
-\begin{Verbatim}[xleftmargin=\leftmargini,fontsize=\fontsize{9}{11}\selectfont]
+\begin{Verbatim}[xleftmargin=\amtIndent,fontsize=\fontsize{9}{11}\selectfont]
\SubmitInfo{http://myWebSite/scripts/eqAttach.asp?silent\#FDF}
{myname@mymailprovider}
\end{Verbatim}
@@ -2677,7 +2747,7 @@ to the document that sent the \texttt{FDF}, it may be a url (an
address on the Internet) or it could be a file specification of a
local hard drive. If you specify \texttt{nopath} in the query
string, like so
-\begin{Verbatim}[xleftmargin=\leftmargini,fontsize=\fontsize{9}{11}\selectfont]
+\begin{Verbatim}[xleftmargin=\amtIndent,fontsize=\fontsize{9}{11}\selectfont]
\SubmitInfo{http://myWebSite/scripts/eqAttach.asp?nopath\#FDF}
{myname@mymailprovider}
\end{Verbatim}
@@ -2733,14 +2803,14 @@ information.
to enter his/her name, and also defines the text box form field,
in the case the \texttt{online} or \texttt{email} options are
taken. There are two (design) parameters for \cs{eqexamName}
-\begin{Verbatim}[xleftmargin=\leftmargini,commandchars=!()]
+\begin{Verbatim}[xleftmargin=\amtIndent,commandchars=!()]
\eqexamName[!meta(eforms_opts)]{!meta(width)}
\end{Verbatim}
\noindent The first optional parameter can be used to modify the
appearance of the text field, see the \href{eformman.pdf}{eForms}
documentation for details. The second parameter is the width of
the field. The default definition is
-\begin{Verbatim}[xleftmargin=\leftmargini]
+\begin{Verbatim}[xleftmargin=\amtIndent]
\eqexamName[\Ff\FfRequired]{2.25in}
\end{Verbatim}
\noindent Here, the text field that will be generated (when
@@ -2758,14 +2828,14 @@ student Identification number (SID), and also defines the text box
form field, in the case the \texttt{online} or \texttt{email}
options are taken. There are two (design) parameters for
\cs{eqSID}
-\begin{Verbatim}[xleftmargin=\leftmargini,commandchars=!()]
+\begin{Verbatim}[xleftmargin=\amtIndent,commandchars=!()]
\newcommand\eqSID[!meta(eforms_opts)]{!meta(width)}
\end{Verbatim}
\noindent The first optional parameter can be used to modify the
appearance of the text field, see the \href{eformman.pdf}{eForms}
documentation for details. The second parameter is the width of
the field. The default definition is
-\begin{Verbatim}[xleftmargin=\leftmargini]
+\begin{Verbatim}[xleftmargin=\amtIndent]
\eqSID[\Ff\FfRequired]{2.25in}
\end{Verbatim}
\noindent Here, the text field that will be generated (when
@@ -2782,14 +2852,14 @@ enter his/her student email address, and also defines the text box
form field, in the case the \texttt{online} or \texttt{email}
options are taken. There are two (design) parameters for
\cs{eqEmail}
-\begin{Verbatim}[xleftmargin=\leftmargini,commandchars=!()]
+\begin{Verbatim}[xleftmargin=\amtIndent,commandchars=!()]
\newcommand\eqEmail[!meta(eforms_opts)]{!meta(width)}
\end{Verbatim}
\noindent The first optional parameter can be used to modify the
appearance of the text field, see the \href{eformman.pdf}{eForms}
documentation for details. The second parameter is the width of
the field. The default definition is
-\begin{Verbatim}[xleftmargin=\leftmargini,]
+\begin{Verbatim}[xleftmargin=\amtIndent,]
\eqEmail{2.25in}
\end{Verbatim}
\noindent Here, the text field that will be generated (when
@@ -2810,7 +2880,7 @@ of the first page of the exam is created by the {\LaTeX}
(redefined) command \cs{maketitle}. The \cs{maketitle} has some
code to place the email button in the top margin, followed by the
expansion of the command \cs{maketitledesign}, whose definition is
-\begin{Verbatim}[xleftmargin=\leftmargini,fontsize=\fontsize{9}{11}\selectfont]
+\begin{Verbatim}[xleftmargin=\amtIndent,fontsize=\fontsize{9}{11}\selectfont]
\newcommand\maketitledesign
{%
\makebox[\textwidth]{\normalsize
@@ -2820,7 +2890,7 @@ expansion of the command \cs{maketitledesign}, whose definition is
}
\end{Verbatim}
This command can be redefined using \cs{renewcommand} to suite your needs, for example,
-\begin{Verbatim}[xleftmargin=\leftmargini,fontsize=\fontsize{9}{11}\selectfont]
+\begin{Verbatim}[xleftmargin=\amtIndent,fontsize=\fontsize{9}{11}\selectfont]
\makeatletter
\renewcommand\maketitledesign
{%
@@ -2882,7 +2952,7 @@ can be designed in so many different ways.
\cs{place\-Cover\-Page\-Logo}, a simple command used to insert a logo on the cover page.
The logo can be used to cover the score in the next page if the
instructor places the score under the logo. Example of usage
-\begin{Verbatim}[xleftmargin=\leftmargini,fontsize=\fontsize{9}{11}\selectfont]
+\begin{Verbatim}[xleftmargin=\amtIndent,fontsize=\fontsize{9}{11}\selectfont]
\placeCoverPageLogo{5in}{-1.5in}{\includegraphics{nwfsc_logo}}
\end{Verbatim}
Working from the upper left corner, the first parameter is the amount to move to logo
@@ -2911,7 +2981,7 @@ still hold. Generally, it is recommended that the new command be used,
\end{Verbatim}
Changes the left header text of the running header. This command defines an
internal macro \cs{eq@lhead} that actually contains the text. The default is
-\begin{Verbatim}[xleftmargin=\leftmargini]
+\begin{Verbatim}[xleftmargin=\amtIndent]
\lheadeqe{\shortwebsubject/\shortwebtitle}
\end{Verbatim}
@@ -2921,7 +2991,7 @@ internal macro \cs{eq@lhead} that actually contains the text. The default is
Changes the center header text of the running header.
This command defines an internal macro \cs{eq@chead} that actually
contains the text. The default is
-\begin{Verbatim}[xleftmargin=\leftmargini,fontsize=\fontsize{9}{11}\selectfont]
+\begin{Verbatim}[xleftmargin=\amtIndent,fontsize=\fontsize{9}{11}\selectfont]
\cheadeqe{-- Page \arabic{page}\space of \nPagesOnExam\space--}
\end{Verbatim}
@@ -2935,7 +3005,7 @@ contains the text.
\end{enumerate}
If you want to redesign the layout of the running
header, here is the macro that the above components fill.
-\begin{Verbatim}[xleftmargin=\leftmargini,fontsize=\fontsize{9}{11}\selectfont]
+\begin{Verbatim}[xleftmargin=\amtIndent,fontsize=\fontsize{9}{11}\selectfont]
\newcommand\runExamHeader{\eq@lhead\hfill\eq@chead\hfill\eq@rhead}
\end{Verbatim}
@@ -2951,7 +3021,7 @@ and right of each header are defined by the commands \cs{lheadSol},
\noindent Changes the left header text of the running header. This
command defines an
internal macro \cs{eq@lheadSol} that actually contains the text. The default is
-\begin{Verbatim}[xleftmargin=\leftmargini]
+\begin{Verbatim}[xleftmargin=\amtIndent]
\lheadSol{\shortwebsubject/\shortwebtitle}
\end{Verbatim}
@@ -2962,7 +3032,7 @@ internal macro \cs{eq@lheadSol} that actually contains the text. The default is
\noindent Changes the center header text of the running header.
This command defines an internal macro \cs{eq@cheadSol} that
actually contains the text. The default is
-\begin{Verbatim}[xleftmargin=\leftmargini,fontsize=\fontsize{9}{11}\selectfont]
+\begin{Verbatim}[xleftmargin=\amtIndent,fontsize=\fontsize{9}{11}\selectfont]
\cheadSol{-- Page \arabic{page}\space of \nPagesOnExam\space--}
\end{Verbatim}
@@ -2976,7 +3046,7 @@ actually contains the text. The default definition is
\end{enumerate}
\noindent If you want to redesign the layout of the running
header, here is the macro that the above components fill.
-\begin{Verbatim}[xleftmargin=\leftmargini]
+\begin{Verbatim}[xleftmargin=\amtIndent]
\newcommand\runExamHeaderSol
{\eq@lheadSol\hfill\eq@cheadSol\hfill\eq@rheadSol}
\end{Verbatim}
@@ -3003,7 +3073,7 @@ three comprise the definition of \cs{runExamFooter}
\end{dCmd}
\noindent The \cs{settotalsbox} and \cs{runExamFooter} then appear in the definition
of \cs{@oddfoot} in the definition of the \texttt{eqExamheadings} page style.
-\begin{Verbatim}[xleftmargin=\leftmargini]
+\begin{Verbatim}[xleftmargin=\amtIndent]
\renewcommand{\@oddfoot}{\settotalsbox\runExamFooter}
\end{Verbatim}
When doing any re-definition of the running footers at the \cs{@oddfoot} command,
@@ -3030,7 +3100,7 @@ exam. The command takes an optional argument, the \meta{exam\_name}
(this is the name given the exam as the required argument of the
\texttt{exam} environment). If the argument is not given, the name of the
current exam is used (when executed within an \texttt{exam} environment).
-When \cs{nQuesInExam} outside an \texttt{exam} environment, the value of
+If \cs{nQuesInExam} appears outside an \texttt{exam} environment, the value of
the optional argument needs to be specified.
\newtopic There are several commands are useful for documents that have several
@@ -3060,7 +3130,7 @@ final exam has two parts:
\end{eqComments}
\end{Verbatim}
-\promoteNewPageHere{10pt}
+%\promoteNewPageHere{10pt}
\handpoint The calculation of \cs{percentForPart} is done in one of two ways:
\begin{enumerate}
@@ -3108,14 +3178,14 @@ or in one of the \texttt{.cfg} files.
\item\cs{examNameLabel}: On each page of the exam, there is a place
for the student to enter her/his name. \cs{examNameLabel} can be
used to define the name label, the default is
-\begin{Verbatim}[xleftmargin=\leftmargini]
+\begin{Verbatim}[xleftmargin=\amtIndent]
\examNameLabel{Name:}
\end{Verbatim}
\item \cs{examAnsKeyLabel}: When the \texttt{answerkey} option is in
effect, the line in which the student enters her/his name (labeled by
\cs{examNameLabel}) is filled by the value of the text macro
\cs{examAnsKeyLabel}. The default definition is
-\begin{Verbatim}[xleftmargin=\leftmargini]
+\begin{Verbatim}[xleftmargin=\amtIndent]
\examAnsKeyLabel{Answer Key}
\end{Verbatim}
Thus, when the \texttt{answerkey}
@@ -3126,31 +3196,31 @@ option is used, the name field appears as follows:
\item\cs{ptLabel} and \cs{ptsLabel}: Labels for indicating the points of a problem, the first is
the singular form of the second. The default is
-\begin{Verbatim}[xleftmargin=\leftmargini]
+\begin{Verbatim}[xleftmargin=\amtIndent]
\ptLabel{pt} % singular form
\ptsLabel{pts} % plural form
\end{Verbatim}
\item\cs{eachLabel}: Label for indicating the common point value of each of several parts
of the same problem.
-\begin{Verbatim}[xleftmargin=\leftmargini]
+\begin{Verbatim}[xleftmargin=\amtIndent]
\eachLabel{ea.}
\end{Verbatim}
\item\cs{pointLabel} and \cs{pointsLabel}: The word for `points' used in the \texttt{instructions} environment
that lists the number of points in this exam. The default is
-\begin{Verbatim}[xleftmargin=\leftmargini]
+\begin{Verbatim}[xleftmargin=\amtIndent]
\pointLabel{point} % singular form
\pointsLabel{points} % plural form
\end{Verbatim}
The \cs{pointsLabel} command defines \cs{eq@pointsLabel}, which,
in turn, is used in the \cs{summaryTotalsTxt}, the definition of
which follows:
-\begin{Verbatim}[xleftmargin=\leftmargini]
+\begin{Verbatim}[xleftmargin=\amtIndent]
\newcommand{\summaryTotalsTxt}
{($\summaryPointTotal\,\text{\eqpointsLabel}$)}
\end{Verbatim}
\item\cs{defaultInstructions}: The \texttt{instructions} environment has a default heading.
The command \cs{defaultInstructions} allows you to change this heading. The default is
-\begin{Verbatim}[xleftmargin=\leftmargini]
+\begin{Verbatim}[xleftmargin=\amtIndent]
\defaultInstructions{Instructions.}
\end{Verbatim}
\end{itemize}
@@ -3165,7 +3235,7 @@ When the \texttt{forcolorpaper} option is used, various elements---such as
section titles, instruction headers, color for fill-in problems, and so on---have default colors. In
this section we list the color controls, along with their default definitions.
-\begin{Verbatim}[numbers=left,xleftmargin=\leftmargini,fontsize=\fontsize{10}{14}\selectfont]
+\begin{Verbatim}[numbers=left,xleftmargin=\amtIndent,fontsize=\fontsize{10}{14}\selectfont]
\proofingsymbolColor{red}
\instructionsColor{blue}
\eqCommentsColor{blue}
@@ -3236,7 +3306,7 @@ For small variations in text, there is the \cs{ifAB} macro,
\ifAB{!anglemeta(Version A text)}{!anglemeta(Version B text)}
\end{dCmd}
\noindent for example, one could say,
-\begin{Verbatim}[xleftmargin=\leftmargini]
+\begin{Verbatim}[xleftmargin=\amtIndent]
\begin{problem}[2]
Compute $\frac{d}{dx}\ifAB{x^2}{x^3}$.
\end{problem}
@@ -3244,7 +3314,7 @@ Compute $\frac{d}{dx}\ifAB{x^2}{x^3}$.
\noindent For longer variations, the \texttt{comments} package is
used to create comment environments that are included or excluded.
The two environments are \texttt{verA} and \texttt{verB}.
-\begin{Verbatim}[xleftmargin=\leftmargini]
+\begin{Verbatim}[xleftmargin=\amtIndent]
\begin{problem}[2]
Compute $\frac{d}{dx}\ifAB{x^2}{x^3}$.
@@ -3285,7 +3355,7 @@ another macro \cs{nExam}, which has no arguments, but expands to
The \textsf{eqexam} package defines two commands \cs{Exam} and
\cs{sExam} to automatically enter the test information for the
current version. In the preamble, you can say,
-\begin{Verbatim}[xleftmargin=\leftmargini]
+\begin{Verbatim}[xleftmargin=\amtIndent]
\title[\sExam]{\Exam}
\end{Verbatim}
\noindent \cs{Exam} is the long version of the test name, and takes as its
@@ -3298,27 +3368,27 @@ commands,
\begin{enumerate}
\item \cs{VersionAtext\darg{\meta{text}}} This is the text for the long
version of the exam name for ``Version A''. The default text is
-\begin{Verbatim}[xleftmargin=\leftmargini]
+\begin{Verbatim}[xleftmargin=\amtIndent]
\VersionAtext{Exam~\nExam--Version A}
\end{Verbatim}
\item \cs{VersionBtext\darg{\meta{text}}} This is the text for the long
version of the exam name for ``Version B''. The default text is
-\begin{Verbatim}[xleftmargin=\leftmargini]
+\begin{Verbatim}[xleftmargin=\amtIndent]
\VersionAtext{Exam~\nExam--Version B}
\end{Verbatim}
\item \cs{shortVersionAtext\darg{\meta{text}}} This is the text for the
short version of the exam name for ``Version A''. The default text
is
-\begin{Verbatim}[xleftmargin=\leftmargini]
+\begin{Verbatim}[xleftmargin=\amtIndent]
\VersionAtext{Exam~\nExam A}
\end{Verbatim}
\item \cs{shortVersionBtext\darg{\meta{text}}} This is the text for the
short version of the exam name for ``Version B''. The default text
is
-\begin{Verbatim}[xleftmargin=\leftmargini]
+\begin{Verbatim}[xleftmargin=\amtIndent]
\VersionAtext{Exam~\nExam B}
\end{Verbatim}
\end{enumerate}
@@ -3329,7 +3399,7 @@ appear before \cs{title} in the preamble.\medskip
\noindent Below is a ``typical'' example of how to correctly
redefine all the version text.
-\begin{Verbatim}[xleftmargin=\leftmargini,fontsize=\fontsize{9}{11}\selectfont]
+\begin{Verbatim}[xleftmargin=\amtIndent,fontsize=\fontsize{9}{11}\selectfont]
\documentclass{article}
\usepackage{amsmath}
\usepackage[forpaper,pointsonleft,noparttotals,nosolutions]{eqexam}
@@ -3362,7 +3432,7 @@ The steps for creating a multiple version \textsf{eqexam} document are as follow
\end{dCmd}
\noindent In the preamble, declare the number of versions for this document
using \cs{numVersions}, e.g., \verb|\numVersions{3}|.
-\begin{Verbatim}[xleftmargin=\leftmargini,commandchars=!()]
+\begin{Verbatim}[xleftmargin=\amtIndent,commandchars=!()]
\longTitleText
{!anglemeta(Text_1)}
{!anglemeta(Text_2)}
@@ -3370,7 +3440,7 @@ The steps for creating a multiple version \textsf{eqexam} document are as follow
{!anglemeta(Text_n)}
\endlongTitleText
\end{Verbatim}
-\begin{Verbatim}[xleftmargin=\leftmargini,commandchars=!()]
+\begin{Verbatim}[xleftmargin=\amtIndent,commandchars=!()]
\shortTitleText
{!anglemeta(Text_1)}
{!anglemeta(Text_2)}
@@ -3387,7 +3457,7 @@ generated.
\newtopic Next, state the long and short titles for the document,
one for each of the declared number of versions given earlier in \cs{numVersions}.
For example, we can use the value \cs{nExam} in our titles. Usage:
-\begin{Verbatim}[xleftmargin=\leftmargini]
+\begin{Verbatim}[xleftmargin=\amtIndent]
\longTitleText
{Test~\nExam--Version A}
{Test~\nExam--Version B}
@@ -3412,7 +3482,7 @@ text macros for each of the versions declared using \cs{numVersions}. The syntax
\end{dCmd}
For example, assuming \verb|\numVersions{3}|, \verb|\forVersion{a}| (or \verb|\forVersion{A}|) defines $3$ text commands \cs{vA}, \cs{vB} and
\cs{vC}, each taking one argument, the text you want to display:
-\begin{Verbatim}[xleftmargin=\leftmargini]
+\begin{Verbatim}[xleftmargin=\amtIndent]
Name the \vA{place}\vB{date}\vC{year} of the signing
of the Magna Carta.
\end{Verbatim}
@@ -3422,7 +3492,7 @@ does more than that! It also creates a series of comment environments
\verb|\begin{verA}/\end{verA}|, \verb|\begin{verB}/\end{verB}|, \verb|\begin{verC}/\end{verC}|, etc.,
where only the version for which this compile applies will be typeset,
the others are commented out.
-\begin{Verbatim}[xleftmargin=\leftmargini,fontsize=\fontsize{9}{11}\selectfont]
+\begin{Verbatim}[xleftmargin=\amtIndent,fontsize=\fontsize{9}{11}\selectfont]
\numVersions{3}
\forVersion{b}
...
@@ -3445,7 +3515,7 @@ Solve the equation for $\vA{x}\vB{y}\vC{z}$:
\noindent Here is a final example of the multiple version scheme, taken from the preamble of one of
my Calculus tests.
-\begin{Verbatim}[xleftmargin=\leftmargini,fontsize=\fontsize{9}{11}\selectfont]
+\begin{Verbatim}[xleftmargin=\amtIndent,fontsize=\fontsize{9}{11}\selectfont]
\documentclass{article}
\usepackage{amsmath,graphicx}
\usepackage[forpaper,pointsonleft,nototals,nosolutions]{eqexam}
@@ -3491,7 +3561,7 @@ which version that is typeset in the document.
You can place the \cs{selectVersion} command in front of a question or a part of a question
that has multiple versions. Through this command you can select which version to typeset,
provided the option \texttt{obeylocalversions} is set. For example,
-\begin{Verbatim}[xleftmargin=\leftmargini]
+\begin{Verbatim}[xleftmargin=\amtIndent]
\selectVersion{3}{4}
\begin{problem}[10]
...
@@ -3527,11 +3597,11 @@ localizations, for example.
\redpoint Points that appear in the left margin (the
\texttt{pointsonleft} or \texttt{pointsonboth} options). There are two text macros
that are used,
-\begin{Verbatim}[xleftmargin=\leftmargini]
+\begin{Verbatim}[xleftmargin=\amtIndent]
\newcommand\leftmarginPtsTxt[1]{(\small$#1^{\text{pts}}$)}
\end{Verbatim}
\noindent when the total points for that problem are shown, and the other
-\begin{Verbatim}[xleftmargin=\leftmargini]
+\begin{Verbatim}[xleftmargin=\amtIndent]
\newcommand\leftmarginPtsEaTxt[1]
{(\small$#1_{\text{ea.}}^{\text{pts}}$)}
\end{Verbatim}
@@ -3543,7 +3613,7 @@ environment with \verb+\begin{problem*}[3ea]+, for example).
\texttt{pointsonright} or \texttt{pointsonboth}). These points appear
in the bottom half of a box, the text for that box is determined by the
following definition.
-\begin{Verbatim}[xleftmargin=\leftmargini]
+\begin{Verbatim}[xleftmargin=\amtIndent]
\newcommand\marginpointsboxtext[2]{\small$#1\,\text{pts}$}
\end{Verbatim}
\noindent By the way, the purpose of the upper part of the box is
@@ -3553,14 +3623,14 @@ received for that problem.
\redpoint Points specified by the \cs{PTs} command. This text is
defined by \cs{itemPTsTxt} as follows. See the paragraphs on
\Nameref{problemstar} for a discussion of the use of \cs{PTs}.
-\begin{Verbatim}[xleftmargin=\leftmargini]
+\begin{Verbatim}[xleftmargin=\amtIndent]
\newcommand\itemPTsTxt[1]{($#1$ pts)}
\end{Verbatim}
\redpoint \textbf{The totals box.} When you specify either option
\texttt{totalsonleft} or \texttt{totalsonright}, you get a page totals
box appearing in the lower left or right bottom corner.
-\begin{Verbatim}[xleftmargin=\leftmargini,fontsize=\small]
+\begin{Verbatim}[xleftmargin=\amtIndent,fontsize=\small]
\newcommand\totalsboxtext{\small$\theeqpointsthispage\,\text{pts}$}
\end{Verbatim}
where \texttt{eqpointsthispage} is a counter whose value
@@ -3585,7 +3655,7 @@ environment to give initial instructions for an exam, the total
points appears automatically in the text, unless you specify the
\texttt{nosummarytotals} option. This text is defined by
\cs{summaryTotalsTxt}, whose definition follows:
-\begin{Verbatim}[xleftmargin=\leftmargini,fontsize=\fontsize{9}{11}\selectfont]
+\begin{Verbatim}[xleftmargin=\amtIndent,fontsize=\fontsize{9}{11}\selectfont]
\newcommand\summaryTotalsTxt{($\summaryPointTotal\,\text{points}$)}
\end{Verbatim}
\noindent where \cs{summaryPointTotal} is a macro that expands to
@@ -3599,7 +3669,7 @@ additional instructions from within the body or the exam, use the
\cs{eqComments} environment. The \cs{eqComments} environment has
one optional argument, a formatted heading for the comments you
want to make. For example,
-\begin{Verbatim}[xleftmargin=\leftmargini,fontsize=\fontsize{9}{11}\selectfont]
+\begin{Verbatim}[xleftmargin=\amtIndent,fontsize=\fontsize{9}{11}\selectfont]
\begin{eqComments}[Proofs.]
Solve each of the problems~5--8 on a separate sheet of paper,
do not write on the back of the paper. Follow the instructions
@@ -3615,7 +3685,7 @@ is visible when you compile the document with the
\texttt{forcolorpaper} option. \cs{eqCommentsColor} colors the text that may appear
in the optional argument of the environment; \cs{eqCommentsColorBody} colors the body
of the text. Each take a single named color argument.
-\begin{Verbatim}[xleftmargin=\leftmargini]
+\begin{Verbatim}[xleftmargin=\amtIndent]
\eqCommentsColor{blue}
\eqCommentsColorBody{black}
\end{Verbatim}
@@ -3626,7 +3696,7 @@ The above are the default definition.
In order to reduce the number of pages needed for an exam, I often
cheat by asking the student to work on the back of one of the test
pages.
-\begin{Verbatim}[xleftmargin=\leftmargini]
+\begin{Verbatim}[xleftmargin=\amtIndent]
\newcommand\bopText{on the back of page~\boPage}
\newcommand\bopCoverPageText{(the cover page)}
\newcommand\OnBackOfPage[1][\bopText]{%
@@ -3640,7 +3710,7 @@ For this, I use the \cs{OnBackOfPage} command
\noindent The optional argument allows you to enter variational
text, text that varies from the default text. The default text is
contained in \cs{bopText} macro, its definition is
-\begin{Verbatim}[xleftmargin=\leftmargini]
+\begin{Verbatim}[xleftmargin=\amtIndent]
\newcommand\bopText{on the back of page~\boPage}
\end{Verbatim}
\noindent where \cs{boPage} is the page the student is instructed
@@ -3669,16 +3739,16 @@ In the case of working on the back of the cover page, there is a variation on th
instructions, \cs{OnBackOfPage} expands to ``on the back of page 1 (the cover page)''.
The phrase ``(the cover page)'' can be redefined using the \cs{bopCoverPageText} command.
The definition of this command is
-\begin{Verbatim}[xleftmargin=\leftmargini]
+\begin{Verbatim}[xleftmargin=\amtIndent]
\newcommand\bopCoverPageText{\space(the cover page)}
\end{Verbatim}
\noindent We could change this as follows,
-\begin{Verbatim}[xleftmargin=\leftmargini]
+\begin{Verbatim}[xleftmargin=\amtIndent]
\renewcommand\bopCoverPageText{, the cover page}
\end{Verbatim}
\noindent so that it would now read, ``on the back of page 1, the cover page''. To remove this feature
altogether, you could redefine as
-\begin{Verbatim}[xleftmargin=\leftmargini]
+\begin{Verbatim}[xleftmargin=\amtIndent]
\renewcommand\bopCoverPageText{}
\end{Verbatim}
@@ -3695,7 +3765,7 @@ counter value, and ends the \texttt{parts} environment. The pop restarts the
\newtopic
In the \texttt{multicols} environment below, we \cs{pushProblem}, then close \texttt{multicols}, we execute \cs{popProblem}, and then continue with the multi-parts in single column.
-\begin{Verbatim}[xleftmargin=\leftmargini,fontsize=\fontsize{9}{11}\selectfont]
+\begin{Verbatim}[xleftmargin=\amtIndent,fontsize=\fontsize{9}{11}\selectfont]
\begin{problem*}[\auto]
Do each of the following without error.
\begin{multicols}{2}
@@ -3716,7 +3786,7 @@ Do each of the following without error.
\newtopic In the example, the first two questions appear in two
column format, while the third appears in single column format. The
same thing can be done in reverse, like so:
-\begin{Verbatim}[xleftmargin=\leftmargini,fontsize=\fontsize{9}{11}\selectfont]
+\begin{Verbatim}[xleftmargin=\amtIndent,fontsize=\fontsize{9}{11}\selectfont]
\begin{problem*}[\auto]
Do each of the following without error.
\begin{parts}
@@ -3753,7 +3823,7 @@ The command \cs{qNewPage} (questions newpage) and \cs{aNewPage}
The first one expands to \cs{newpage} when the \cs{ifanswerkey} is
false and the second one expands to \cs{newpage} when the
\cs{ifanswerkey} is true; their definitions are
-\begin{Verbatim}[xleftmargin=\leftmargini]
+\begin{Verbatim}[xleftmargin=\amtIndent]
\newcommand\qNewPage{\ifanswerkey\else\newpage\fi}
\newcommand\aNewPage{\ifanswerkey\newpage\fi}
\end{Verbatim}
@@ -3785,7 +3855,7 @@ problems which include \textbf{2}, \textbf{6} and \textbf{12(b)(d)} and
it is desired to provide solutions to these problem. For this
purpose, \textsf{eqexam} provides \cs{forproblem} and \cs{foritem}. These
commands are used as follows:
-\begin{Verbatim}[xleftmargin=\leftmargini,fontsize=\fontsize{9}{11}\selectfont]
+\begin{Verbatim}[xleftmargin=\amtIndent,fontsize=\fontsize{9}{11}\selectfont]
\begin{exam}{HW\nExam}
\begin{instructions}[Description] (10 points)
Selected solutions from Assignments~24, 25, \S7.1.
@@ -3854,7 +3924,7 @@ link; \cs{REF*} does the same. When \cs{aebshowgraylettersfalse} is
in effect, \cs{REF} does not capitalize the reference.
\redpoint Below is an example of this.
-\begin{Verbatim}[xleftmargin=\leftmargini,fontsize=\fontsize{9}{11}\selectfont]
+\begin{Verbatim}[xleftmargin=\amtIndent,fontsize=\fontsize{9}{11}\selectfont]
\begin{problem}[5]
Answer this if you can!
\begin{answers}{2}
@@ -3904,7 +3974,7 @@ Place \cs{placeMarkerHere} outside of a \texttt{problem}/\texttt{problem*} envir
a unique name; for example \verb!\placeMarkerHere{bQForm}!. Place
\cs{calcFromMarkers} wherever you wish a calculation to be displayed, for example,
-\begin{Verbatim}[xleftmargin=\leftmargini,fontsize=\fontsize{9}{11}\selectfont]
+\begin{Verbatim}[xleftmargin=\amtIndent,fontsize=\fontsize{9}{11}\selectfont]
\placeMarkerHere{bQForm}
\begin{eqComments}[Quadratic Formula\calcFromMarkers{eQForm}{bForm}.]
Solve each of the following equations using the quadratic formula.
@@ -3929,7 +3999,7 @@ The formatting for the total points between markers is determined by the optiona
of \cs{calcFromMarkers}, and if there is no optional first parameter, by a global command,
\cs{markerTotalFmt}, which sets the default formatting. The default definition of
\cs{markerTotalFmt} is
-\begin{Verbatim}[xleftmargin=\leftmargini]
+\begin{Verbatim}[xleftmargin=\amtIndent]
\markerTotalFmt{ (\themarkerCnt\space points)}
\end{Verbatim}
The command \cs{themarkerCnt} references the counter \texttt{markerCnt} in which the calculations are made.
@@ -3937,7 +4007,7 @@ Any redefinition of \cs{markerTotalFmt} should use \cs{themarkerCnt} to referenc
You use the optional first parameter the same way as the definition of \cs{marker\-Total\-Fmt}. You can say, for
example, you can type
-\begin{Verbatim}[xleftmargin=\leftmargini]
+\begin{Verbatim}[xleftmargin=\amtIndent]
\calcFromMarkers[ $\themarkerCnt^{\text{pts}}$]{eQForm}{bForm}
\end{Verbatim}
to get a formatted total \verb*! $12^{\text{pts}}$!, which typesets to ` $12^{\text{pts}}$'.
@@ -3945,13 +4015,13 @@ to get a formatted total \verb*! $12^{\text{pts}}$!, which typesets to ` $12^{\t
You might have noticed that I've inserted a space character at the beginning of the definition
\verb*!\markerTotalFmt{ (\themarkerCnt\space points)}!, and place \cs{calc\-From\-Markers} up against
the previous word, as in
-\begin{Verbatim}[xleftmargin=\leftmargini]
+\begin{Verbatim}[xleftmargin=\amtIndent]
Quadratic Formula\calcFromMarkers{eQForm}{bForm}.
\end{Verbatim}
This is so that when the required totals are not defined---early in the {\LaTeX}ing process---there
is no space between \texttt{Formula} and the period (.); this is nothing but a cosmetic trivial point. After
you {\LaTeX} enough times, the full expansion appears as,
-\begin{Verbatim}[xleftmargin=\leftmargini]
+\begin{Verbatim}[xleftmargin=\amtIndent]
Quadratic Formula (12 points).
\end{Verbatim}
@@ -3962,7 +4032,7 @@ When the document author uses the \texttt{usexkv} option, and the
\textsf{xkeyval} package is found on the document author's system,
the \cs{fillin} command is redefined to use key-value pairs in the
optional first argument. The syntax for \cs{fillin} now is,
-%\begin{Verbatim}[xleftmargin=\leftmargini,fontsize=\fontsize{9}{11}\selectfont]
+%\begin{Verbatim}[xleftmargin=\amtIndent,fontsize=\fontsize{9}{11}\selectfont]
\begin{dCmd}[commandchars=!(),fontsize=\small]{\linewidth}
\fillin[
underline=true|false,u,b,boxed=true|false,boxpretext=!anglemeta(text),
@@ -3978,7 +4048,7 @@ to set the appearance and behavior of the field. The keys are described below.
\item The second parameter \meta{width} is the amount of horizontal
space to leave for the student to write in the response. For example,
-\begin{Verbatim}[xleftmargin=\leftmargini]
+\begin{Verbatim}[xleftmargin=\amtIndent]
\fillin[boxed,boxsize=Large]{1.5in}{$2x - 3$}
\end{Verbatim}
Yields the following results, depending on the option.
@@ -3991,7 +4061,7 @@ Yields the following results, depending on the option.
If this parameter is left empty,
the \textsf{eqexam} uses the \meta{answer} parameter to determine the width of the field.
The code
-\begin{Verbatim}[xleftmargin=\leftmargini]
+\begin{Verbatim}[xleftmargin=\amtIndent]
\fillin[boxed,boxsize=Large]{}{$2x - 3$}
\end{Verbatim}
gives a box the same width as the answer, $2x-3$, which is not very wide
@@ -4000,7 +4070,7 @@ the student would see this box
$\boxed{\text{\Large\strut}\text{\phantom{$2x-3$}}}$. Though we can typeset the
answer into this box, it is too narrow for the student to write the answer
into; a better strategy is as follows:
-\begin{Verbatim}[xleftmargin=\leftmargini,fontsize=\small]
+\begin{Verbatim}[xleftmargin=\amtIndent,fontsize=\small]
\fillin[boxed,boxsize=Large]{\ifNoSolutions{1.5in}{}}{$2x - 3$}
\end{Verbatim}
Now, when the file is compiled under different options, we obtain
@@ -4065,7 +4135,7 @@ appears when the document is compiled with the \texttt{answerkey} option.
This key allows you to create a box or arbitrary dimension.
A simple example would be
-\begin{Verbatim}[xleftmargin=\leftmargini,fontsize=\small]
+\begin{Verbatim}[xleftmargin=\amtIndent,fontsize=\small]
\fillin[boxed,enclosesoln,parbox={[t][1in]}]{2.4in}{%
The box is 2.4 inch wide and 1 inch high. The solution to
this problem appears when \texttt{answerkey} is in effect.
@@ -4128,7 +4198,7 @@ example appears below.
enclosed in braces, as just illustrated.
Here is an example of the use of this key-value pair:
-\begin{Verbatim}[xleftmargin=\leftmargini,fontsize=\small]
+\begin{Verbatim}[xleftmargin=\amtIndent,fontsize=\small]
\fillin[parbox={[t][.5in]},boxed,hiddenbox,
boxpretext={\textbf{\textcolor{black}{Conclusion: }}},
format=\normalfont,enclosesoln]{\linewidth}{%
@@ -4181,7 +4251,7 @@ or additional spacing appears around the box.
the \meta{answer} and \meta{text} (the value of \texttt{boxpretext}). Several formatting commands can appear
as the value; thus, \verb!format={\bfseries\Large}! makes the answer, when \texttt{answerkey} is in effect, appear in large bold font.
The default is \verb!format={\fillInFormatDefault}!, where the definition of the command \cs{fillInFormatDefault} is
-\begin{Verbatim}[xleftmargin=\leftmargini]
+\begin{Verbatim}[xleftmargin=\amtIndent]
\newcommand{\fillInFormatDefault}{\bfseries}
\end{Verbatim}
\end{description}
@@ -4197,7 +4267,7 @@ point of the content. For example, \texttt{lift=10pt} lowers the underlining by
\frac{1}{2}+\frac{1}{3} = \raisebox{-10pt}{\underbar{\raisebox{10pt}{\makebox[1in]{\ensuremath{\displaystyle\frac{3}{4}}}}}}
\end{equation*}
The expression on the right corresponds to
-\begin{Verbatim}[xleftmargin=\leftmargini]
+\begin{Verbatim}[xleftmargin=\amtIndent]
$...\fillin[lift=10pt]{1in}{\frac{3}{4}}...$
\end{Verbatim}
The underline is lowered to include the baseline of the denominator of the fraction.
@@ -4225,11 +4295,11 @@ the number three-fourths is underlined plus \texttt{3pt} more.
\end{description}
The keys are processed by an \cs{edef}, this allows you to define a
command with your favorite options; for example, you can define
-\begin{Verbatim}[xleftmargin=\leftmargini]
+\begin{Verbatim}[xleftmargin=\amtIndent]
\newcommand{\myBoxOpts}{boxed,boxsize=Large,align=l}
\end{Verbatim}
then in the exam, type
-\begin{Verbatim}[xleftmargin=\leftmargini]
+\begin{Verbatim}[xleftmargin=\amtIndent]
$\frac{\sqrt{-18}}{\sqrt{6}}=\fillin[\myBoxOpts]{1.5in}{3\imath}$
\end{Verbatim}
@@ -4242,7 +4312,7 @@ command is in math mode, then \cs{fillin} puts the \meta{answer} and
\texttt{boxpretext} in math mode too; if \cs{fillin} command \emph{not in
math mode} (i.e., it is in text mode), \cs{fillin} typesets the
\meta{answer} and \texttt{boxpretext} in text mode. For example,
-\begin{Verbatim}[xleftmargin=\leftmargini]
+\begin{Verbatim}[xleftmargin=\amtIndent]
Let $ x = 4 $ and $ y = -3 $ and let $ z = 2x - 4y $ then
$\fillin[boxed,align=l,boxpretext={z=}]{1in}{20}$
\end{Verbatim}
@@ -4252,7 +4322,7 @@ Let $ x = 4 $ and $ y = -3 $ and let $ z = 2x - 4y $ then
\fbox{\makebox[1in][l]{$ z=20 $ }}
\end{quote}
Here is an example in text mode
-\begin{Verbatim}[xleftmargin=\leftmargini]
+\begin{Verbatim}[xleftmargin=\amtIndent]
The first president of the US is
\fillin[boxed,align=c]{1.5in}{Washington}
\end{Verbatim}
@@ -4262,7 +4332,7 @@ The first president of the US is
\fbox{\makebox[1.5in][c]{Washington}}
\end{quote}
Here is an example of mixed mode
-\begin{Verbatim}[xleftmargin=\leftmargini]
+\begin{Verbatim}[xleftmargin=\amtIndent]
The width of a rectangle is 20 feet and length is 15 feet.
Find the area: $\fillin[boxed,align=l,
boxpretext={\text{Area: }}]{1in}{300\,\text{feet}}$
@@ -4278,17 +4348,49 @@ Find the area: \fbox{\makebox[1in][l]{Area: $300\,\text{feet}$}}
\paragraph*{\cs{fillin} not boxed.} The \cs{fillin} command will typeset
the answer in math mode if \cs{fillin} is in math mode, and in text mode,
otherwise. For example, each of the following typesets the same.
-\begin{Verbatim}[xleftmargin=\leftmargini]
+\begin{Verbatim}[xleftmargin=\amtIndent]
The area of a circle of radius $2$ is \fillin[u]{.5in}{$4\pi$}
The area of a circle of radius $2$ is $\fillin[u]{.5in}{4\pi}$
\end{Verbatim}
-\subsection{Vertical Space Fill Types}
+\subsubsection{\texorpdfstring{\protect\cs{fillineol}}{\CMD{fillineol}}: Fill-in to end-of-line}
+
+The \cs{fillineol} is a variant of \cs{fillin}, its main feature is that the
+width parameter of the \cs{fillin} command is automatically calculated to the
+end of the line.
+\settowidth{\aebdimen}{\small\ttfamily\string
+ \fillineol*\darg{\ameta{phrase}}[\ameta{fillin-opts}]\darg{\ameta{answer}}}%
+\begin{dCmd}[commandchars=!(),fontsize=\small]{\aebdimen+2\fboxsep+2\fboxrule}
+\fillineol*{!ameta(phrase)}[!ameta(fillin-opts)]{!ameta(answer)}
+\end{dCmd}
+\fillineol{Calculus originator, Isaac }[boxed,align=l,boxsize=Large]{Newton}
+\begin{Verbatim}[fontsize=\small]
+\fillineol{Calculus originator, Isaac }[boxed,align=l,boxsize=Large]{Newton}
+\end{Verbatim}
+The star-option allows \ameta{phrase} to contain verbatim text; in this case,
+the \textsf{collectbox} package is required.
+
+The \cs{fillineol} command takes the \ameta{phrase}, measures its width, and
+uses the result as the value of \ameta{width} in the \cs{fillin} command.
+Usually, the \ameta{phrase} occurs at the beginning of the sentence. However,
+that is not always convenient.
+
+For this next example, the fill-in occurs at the end of the sentence, which
+wraps around to the next line. Enter the name of your professor for the
+course you are cur\-\fillineol{rently taking, his name is }{Dr.\ D. P. Story}
+
+\exAeBBlogPDF{p=1356} The demo file for this feature is named
+\texttt{\href{\urlAcroTeXBlog/?p=1356}{fillineol.pdf}}, found on the {\AcroTeX} Blog website.
+
+
+\subsection{Vertical Space Fill Types}\label{ss:VSFT}
When the \texttt{nosolutions} or the \texttt{vspacewithsolns} is used, a
-vertical space is generated by the \texttt{solution} environment.
-Previously, this has just been a vertical white space, now, we provide
-the ability to fill the space with horizontal rules of different types.
+vertical space is generated by the \texttt{solution} environment. Previously,
+this has just been a vertical white space, now, we provide the ability to
+fill the space with horizontal rules of different types.\footnote{The filler
+line feature has been rewritten and extended from previous versions of
+\pkg{eqexam}.}
%\redpoint The demo file for these features is \texttt{hw03.tex}.
@@ -4306,6 +4408,7 @@ the ability to fill the space with horizontal rules of different types.
vertical white space, the second command reverts back to the default,
plain vertical white space.
+\begin{comment}
\newtopic The next set of commands determine the type of line to be drawn
in the white space.
\settowidth{\aebdimen}{\ttfamily\string\fillTypeDashLine}
@@ -4327,6 +4430,387 @@ dashed lines; draw dotted lines; draw the default line type (\cs{fillTypeHRule)}
\noindent The default color is \texttt{gray} and the default vertical
spacing between lines is
\texttt{14pt}.
+\end{comment}
+
+The \cs{setFillLinesFmt} command is used to set the design parameters
+of filler lines.
+\settowidth{\aebdimen}{\ttfamily\string\setFillLinesFmt\darg{\meta{KV-pairs}}}
+\begin{dCmd}[commandchars=!()]{\aebdimen+2\fboxsep+2\fboxrule}
+\setFillLinesFmt{!meta(KV-pairs)}
+\end{dCmd}
+There is an extensive list of key-value pairs.
+
+\begin{comment}
+%The default values are shown in parentheses above.
+%The \cs{eqWLSpacing} command sets the length register \Com[, length\ipkg{eqexam}|textbf]{wlVspace}
+%to its argument \meta{vskip}; \cs{wlVspace} is the vertical space between lines.
+%
+%The \cs{eqWriteLineColor} command passes a color to the fill lines.
+%
+%Properties of fill lines are set through key-value pairs of the command
+%\cs{fillLinesNumFmt}; the properties are not local, but continue to be
+%applied until they are explicitly changed. The properties are,
+%\bVerb\columnseprule0pt\columnsep0pt
+\end{comment}
+
+\newtopic\noindent
+\textbf{Key-value pairs of \cs{setFillLinesFmt}.} These key-values
+document-wide scope \emph{if not declared within a group}.
+
+\begin{description}
+\item[\texttt{fltype=\ameta{\upshape{line|dash|dots|blank|grid}}}] When the
+ value of \texttt{fltype} is different from \texttt{grid}, the key
+ determines the type of horizontal line drawn (including a
+ ``blank'' line); when \texttt{fltype=grid}, the type of line drawn is
+ determined by \texttt{gridtype}, described below. The default
+ is \texttt{line}.
+
+ When \texttt{fltype=grid} and neither \texttt{bgonly} nor
+ \texttt{outlineonly} are specified, a grid is drawn consisting of
+ horizontal and vertical lines. The thickness of the lines drawn is
+ determined by the length. The
+ default is \cs{setlength\darg{\string\flfboxrule}\darg{.4pt}}. Any dotted
+ line is unaffected by the value of \cs{flfboxrule}.
+\end{description}
+The rest of the keys are listed in alphabetical order. The \texttt{fltype} key
+is separated out due to its importance.
+\begin{description}
+
+%\item[\texttt{fontfamily=\anglemeta{family}}{\sIndexttKey[\ipkg{web}|textbf]{fontfamily}}]
+% Font family to use for section titles, permitted values are
+% \texttt{rmfamily}, \texttt{sffamily}, \texttt{ttfamily}.
+
+\item [\texttt{align=\ameta{\upshape{default|left}}}] This key sets the
+ horizontal alignment of the filler lines; a key-value of
+ \texttt{align=default} is the natural way of aligning the filler lines,
+ while \texttt{align=left} shifts the lines to the left margin. The
+ default is \texttt{default}, \texttt{align} is equivalent to
+ \texttt{align=default}.
+
+% Refer to the paragraph \textbf{\nhnameref{para:fl-align}} on
+% page~\pageref{para:fl-align} and Example~\ref{exmpl:aligntypes} that
+% follows it.
+
+\item [\texttt{bgcolor=\ameta{named\_color}}] The color of the background,
+ when \texttt{bgonly} is in effect.
+
+\item [\texttt{bgonly*=\ameta{\upshape{true|false}}}] When the key is set to
+ true, \pkg{eqexam} colors the targeted region with the color determined
+ by the \texttt{bgcolor} key. This key\FmtMP{\texttt{fltype=grid}
+ required} is \emph{ignored} unless \texttt{fltype=grid}.
+
+ If \texttt{bgonly[=true]} is declared, \texttt{bgonly=false} must be
+ declared later to turn off this effect, as \pkg{eqexam} cannot determine
+ the intention. If the star-form is used (\texttt{bgonly*[=true]}),
+ \texttt{bgonly} is automatically set to false after the next region is
+ drawn.
+ Use the \texttt{bgonly} key to create backgrounds for several consecutive
+ regions. Use the \texttt{bgonly*} form of the key for a single region.
+% See Problem~1\,(g) of Example~\ref{exmpl:fillertypes}.
+
+% for example, \setFillLinesFmt{fltype=grid,bgonly} then later we say
+% \setFillLinesFmt{fltype=grid,gridtype=dash}, do we continue with bgonly,
+% or switch over to a true grid?
+
+\item [\texttt{equalcells=\ameta{\upshape{true|false}}}] This key is only
+ effective when \texttt{fltype=grid}, but the keys \texttt{bgonly} and
+ \texttt{outlineonly} are both false. When the key \texttt{equalcells} (or
+ the key-value \texttt{equalcells=true}) is specified, grid cells of equal
+ width are drawn; the total width of a row may not be equal to the
+ \cs{linewidth}, however. The key is initially set to \texttt{false}.
+
+% An example of the default (cells not necessarily equal) is found in
+% problem 1\,(\ref{item:gridtype}) on page~\pageref{item:gridtype}.
+
+ The command versions of this key may also be expanded explicitly; these are
+ \Com[\ipkg{eqexam}|textbf]{equalCellSizesOn} and
+ \Com[\ipkg{eqexam}|textbf]{equalCellSizesOff}.
+
+\item [\texttt{color=\ameta{named\_color}}] The value of the \texttt{color}
+ key sets the color to be used when drawing filler lines (both horizontal
+ and vertical).
+
+\item [\texttt{gridtype=\ameta{\upshape{line|dash|dots}}}] The value of
+ the key \texttt{gridtype} determines the line type when
+ \texttt{fltype=grid}, otherwise, the value of this key is ignored. Values
+ of \texttt{line} and \texttt{dash} obey the value of \cs{flfboxrule}.
+
+\item [\texttt{linegap=\ameta{dimen}}] The ``gap'' between two horizontal or
+ vertical lines; the \texttt{linegap} key sets the length register \Com[,
+ length\ipkg{eqexam}|textbf]{wlVspace}\FmtMP{the gap is \cs{wlVspace}} to
+ \ameta{dimen}. This key executes the command
+ \Com[\ipkg{eqexam}|textbf]{eqWLSpacing}\texttt{\darg{\ameta{dimen}}}. The
+ default is 14pt.
+
+\item [\texttt{numbers=\ameta{\upshape{none|left|right}}}] The
+ \texttt{numbers} key controls whether the lines are numbered and their
+ relative position to the line; the default is not to number the lines (\texttt{numbers=none}).
+
+\item [\texttt{numbersep=\ameta{dimen}}] The value of \texttt{numbersep} sets
+ the separation between the line and the number, the default is 2pt.
+
+\item [\texttt{numfmt=\ameta{num-fmt}}] This key-value pair formats the line
+ numbers. Within the value \ameta{num-fmt}, the macro \cs{flnum} refers
+ to the number itself; for example,\[
+ \texttt{numfmt=\string\textcolor\darg{red}\darg{\string\flnum}}\]
+ produces red line numbers. The initial declaration for
+ this key is \texttt{numfmt=\cs{flnum}}, which creates a black line
+ number.
+
+ The font size\FmtMP{font size of the numbers} of the line numbers is
+ \cs{tiny}, but this can be overwritten by incorporating a size into the
+ \texttt{numfmt} (\texttt{numfmt=\string\small\string\flnum}).
+
+%\promoteNewPage[2\baselineskip]
+
+\item [\texttt{outlineonly*=\ameta{\upshape{true|false}}}]\label{item:outlineonly} If this key is
+ true\FmtMP{\texttt{fltype=grid} required}, an outline of the region is drawn using line type determined by
+ \texttt{gridtype}. This key is \emph{ignored} unless
+ \texttt{fltype=grid}.
+
+ If \texttt{outlineonly[=true]} is declared, \texttt{outlineonly=false}
+ must be declared later to turn off this effect, as \pkg{eqexam} cannot
+ determine the intention. If the star-form is used
+ (\texttt{outlineonly*}), \texttt{outlineonly} is automatically set
+ to false after the next region is drawn. Use the \texttt{outlineonly} key
+ to create backgrounds for several consecutive regions. Use the
+ \texttt{outlineonly*} form of the key for a single region.
+
+% See Problem
+% 1\,(f) of Example~\ref{exmpl:fillertypes} for an illustration of this feature.
+
+\item [\texttt{topline=\ameta{\upshape{true|false}}}] If true, \pkg{eqexam}
+ draws an extra horizontal line above the topmost line. Any vertical lines
+ are extended to meet this additional line.
+
+% See Problem 1\,(b) of Example~\ref{exmpl:fillertypes}.
+\end{description}
+
+\begingroup
+
+%\writeToSolnFile{^^J\protect\iffalse^^J}%
+
+
+\useFillerLines
+\turnflnosolnsOn
+\turnContAnnotOn
+\setFillLinesFmt{fltype=line,numbers=left}
+
+\noindent
+The following is an example of filler lines under the \env{nosolutions} assumption.
+\separationruleOff
+\chngToNoSolns
+%\solutionsonlytrue
+\RecordThisExamOff
+\begin{exam}[Filler Lines 1]{fl1}
+\begin{problem}
+Expound on all you know on the subject.
+%\priorworkareaCmds{\baselineskip\wlVspace}
+\begin{priorworkarea}\baselineskip\wlVspace
+When the \opt{flextended} option is not in force, these three lines are blank. However, in this example,
+\opt{flextended} is active, and I can write to these lines. Refer to `\nameref{sss:flxtnd}' below.
+\end{priorworkarea}
+\begin{solution}[42pt]
+Your guess is as good as mine.
+\end{solution}
+\end{problem}
+
+\turnflnosolnsOff
+\setFillLinesFmt{fltype=grid,gridtype=line,numbers=right,topline,color=lightgray}
+
+\begin{problem}
+Expound on all you know on the subject.
+\begin{priorworkarea}
+Essay area.
+\end{priorworkarea}
+\begin{solution}[\sameVspace]
+Your guess is as good as mine.
+\end{solution}
+\belowexskip{0pt}
+\end{problem}
+%\belowsqskip{\vskip0pt}
+\end{exam}
+\noindent
+The verbatim listing of this example is presented and discussed in the next section.
+
+%\writeToSolnFile{\protect\fi^^J}%
+\endgroup \therearesolutionsfalse % do not record this as a solution at the end
+
+\subsubsection{On the \texttt{flextended} option}\label{sss:flxtnd}
+
+The \texttt{flextended} option brings in code that extends filler lines. It
+defines one new environment \env{priorworkarea}, and several commands. One
+significant enhancement is the ability to write to the lined regions in the
+\opt{nosolutions}\FmtMP{\opt{nosolutions}}, \opt{vspacewithsolns}\FmtMP{\opt{vspacewith\-solns}}, and
+\env{answerkey} options are in effect.
+
+The contents of the \env{priorworkarea} environment will be superimposed on the filler lines
+when the \opt{nosolution} or \opt{vspacewithsolns} option is in effect. It is placed prior to
+the \env{solution} environment.
+\begin{Verbatim}[xleftmargin=\amtIndent,commandchars=!()]
+\begin{priorworkarea}
+!quad!ameta(content)
+\end{priorworkarea}
+\begin{solution}[!meta(vspace)]
+!quad!ameta(solution)
+\end{solution}
+\end{Verbatim}
+For the \ameta{content} to be superimposed on the vertical space specified by
+the optional parameter \meta{vspace} of the \env{solution} environment,
+\cs{useFillerLines} must be in force and \cs{turnflnosolnsOn} must be
+expanded prior to the statement of the problem. (Turn off the writing to the
+vertical space with \cs{turnflnosolnsOff}).
+The verbatim listing of the example above, which does use the
+\opt{flextended} option as well as the \env{priorworkarea}
+environment is presented below.
+\begin{Verbatim}[xleftmargin=\amtIndent,fontsize=\small]
+\begin{exam}{fl1}\chngToNoSolns
+
+\begin{problem}
+Expound on all you know on the subject.
+\begin{priorworkarea}\baselineskip\wlVspace
+When the \texttt{flextended} option is not in force, these three
+lines are blank. However, in this example, \textsf{flextended} is
+active, and I can write to these lines. Refer to ...
+\end{priorworkarea}
+
+\begin{solution}[nLines=3]
+Your guess is as good as mine. ...
+\end{solution}
+\end{problem}
+
+\turnflnosolnsOff
+\setFillLinesFmt{fltype=grid,gridtype=line,
+ numbers=right,topline,color=lightgray}
+\begin{problem}
+Expound on all you know on the subject.
+\begin{priorworkarea}
+Essay area.
+\end{priorworkarea}
+
+\begin{solution}[nLines=3]
+Your guess is as good as mine.
+\end{solution}
+\end{problem}
+\end{exam}
+\end{Verbatim}
+
+%\vspace{3\wlVspace}
+
+For the \opt{answerkey} option\FmtMP{\opt{answerkey}}, content of the
+\env{solution} environment is written to the vertical space allotted by is
+optional parameter, \meta{vspace}. As with \env{priorworkarea} there is a
+gatekeeper command \cs{turnflanskeyOn}. For the content to be written to the
+vertical space, \cs{userFillerLines} and \cs{turnflanskeyOn} must be
+expanded. To turn off writing to the vertical space, expand
+\cs{turnflanskeyOff}.
+
+\newtopic\noindent
+The last example is repeated, but under the assumption of the \opt{answerkey} option.
+
+\useFillerLines
+\turnflanskeyOn
+\turnContAnnotOn
+\DoNotFitItIn
+\acvspace{2\wlVspace}
+
+\fvsizeskip{.1}
+\noExamTitleInSolns
+\begin{exam}[Filler Lines 2]{fl2}\AnswerKey
+\flPageBreakMsg{\textbf{Problem~{\eqeCurrProb} continues on next page\strut}}%
+
+\begin{problem}
+Expound on all you know on the subject.
+%\priorworkareaCmds{\baselineskip\wlVspace}
+\begin{priorworkarea}\baselineskip\wlVspace
+When the \opt{flextended} option is not in force, these three lines are blank. However, in this example,
+\opt{flextended} is active, and I can write to these lines. Refer to `\nameref{sss:flxtnd}' below.
+\end{priorworkarea}
+\solutionafterExCmds{\baselineskip\wlVspace
+ \parindent\wlVspace}%\tweakBreakPoint{5pt}
+\begin{solution}[nLines=10] %\baselineskip\wlVspace\parindent\wlVspace
+Your guess is as good as mine. The content has the capability of breaking across pages.
+
+I've added more lines because this problem has a chance breaking across a page boundary.
+Let's prattle on until we go to the next page.\vspace{2\baselineskip}
+
+We'll jump down a couple of lines cause I don't have much to say. Gotta keep
+going to get to the next page. If all works as it should, I'll see you one
+the other side! Perfect! As mentioned in the `\nameref{sss:BAP}' below. There
+are limitations to this wonder.
+\end{solution}
+\end{problem}
+
+\turnflnosolnsOff
+\setFillLinesFmt{fltype=grid,gridtype=line,numbers=right,topline,color=lightgray}
+
+\begin{problem}
+Expound on all you know on the subject.
+\begin{priorworkarea}
+Essay area.
+\end{priorworkarea}
+\begin{solution}[42pt]
+Your guess is as good as mine.
+\end{solution}
+\end{problem}
+All in all, this is very cool.
+\belowsqskip{\vskip0pt}
+\end{exam}
+
+
+\subsubsection{Breaking across pages}\label{sss:BAP}
+When the vertical space of the \env{solution} environment is filled with
+filler lines (assuming \cs{useFillerLines} is in force), \emph{the lines and the
+content can break across pages}, provided the content is not within a box. It
+has limited capabilities of breaking across columns (for
+\texttt{fltype=line|dash|dots}), but when the \opt{flextended} option is in
+effect, may fail dramatically at superimposing the content over the filler
+lines.
+
+When \cs{turnContAnnotOn} is expanded prior to the problem, should the fill
+lines break across a page boundary, the annotation string
+(\Com[\ipkg{eqexam}]{annotContStr}) appears at the top of the next page. The
+topic of annotating solutions is taken up again in the next section.
+
+\subsubsection{Annotating a continuing problem with
+\texorpdfstring{\cs{useFillerLines}}{\CMD{\useFillerLines}}}\label{para:cnwithFL}
+
+When the command \Com[\ipkg{eqexam}]{useFillerLines} is expanded, any vertical
+space declared with the optional argument of \env{solution} is created one
+line at a time. Just before each of the lines is drawn, two commands are
+expanded, the first just prior to the a page break, if one occurs, and the
+second just after the page break, if one occurs. The second command is the internal
+version of \Com[\ipkg{eqexam}]{insertContAnnot}, the first command is accessed through
+the command \cs{priorPageBreakMsg}.
+\settowidth{\aebdimen}{\ttfamily\string\priorPageBreakMsg\darg{\meta{msg}}}
+\begin{dCmd}[commandchars=!()]{\aebdimen+2\fboxsep+2\fboxrule}
+\priorPageBreakMsg{!meta(msg)}
+\flPageBreakMsg{!meta(msg)}
+\end{dCmd}
+The \cs{priorPageBreakMsg} command allows you to insert \meta{msg} at the
+beginning of each line, but does not determine whether a page break is near.
+The \cs{flPageBreakMsg} command, which uses both \cs{priorPageBreakMsg} and
+\Com[\ipkg{eqexam}]{emitMessageNearBottom}, is the appropriate vehicle for
+writing \meta{msg} just prior to a page break. Its definition is found next.
+\begin{Verbatim}[xleftmargin=\amtIndent,fontsize=\small]
+\newcommand{\flPageBreakMsg}[1]{%
+ \priorPageBreakMsg{\emitMessageNearBottom[\iacvspace]
+ {\eqfititin{{\Large\strut}#1}}}}
+\end{Verbatim}
+The command may be redefined for your needs. Notice that the star-option of
+the command \cs{emitMessageNearBottom} \emph{is not taken}, so the command does not
+create a new page if near the bottom, but it does create a message
+(\texttt{\#1}). The optional argument of \cs{emitMessageNearBottom} is set to
+\texttt{\cs{iacvspace}}, this is the interpretation of `near the bottom' of
+the page. A recommended value for \cs{iavspace} is \texttt{2\cs{wlVspace}}
+(\cs{acvspace\darg{2\cs{wlVspace}}}). A typical declaration might be,
+\begin{Verbatim}[xleftmargin=15pt,fontsize=\small,commandchars=!()]
+% Set \iacvspace for \insertContAnnot and \emitMessageNearBottom
+\acvspace{2\wlVspace} %!sffamily(<-- the recommended value)
+\flPageBreakMsg{\textbf{Problem~{\eqeCurrProb}!lp(\thepartno)!rp\space
+ continues on next page}}
+\end{Verbatim}
+At the top of the next page the \cs{annotContStr} string appears as well.
\subsection{Keep vertical space with \texttt{answerkey}}
@@ -4344,7 +4828,7 @@ a time.
Below is a simple example to illustrate the above points. In the example below,
we simulate
-\begin{Verbatim}[xleftmargin=\leftmargini]
+\begin{Verbatim}[xleftmargin=\amtIndent]
\begin{solution}[1in]
$ x+1 = 4 \implies x = 3 $
\end{solution}
@@ -4379,7 +4863,7 @@ reverts to the old behavior of \textsf{eqexam}.
Here is a representation of the effects of the command \cs{vspacewithkeyOn}.
-\begin{Verbatim}[xleftmargin=\leftmargini]
+\begin{Verbatim}[xleftmargin=\amtIndent]
\begin{solution}[1in]
$ x+1 = 4 \implies x = 3 $
\end{solution}
@@ -4460,9 +4944,8 @@ or between \texttt{exam} environments.
\cs{annotContStr} may be redefined, but be sure to include the problem
number \cs{eqeCurrProb}.
-The insertion of the continuation annotation uses \cs{promoteNewPage}, see
-Section~\ref{aqpNewPage} on page~\pageref{aqpNewPage} for a description of
-\cs{promoteNewPage}.
+The insertion of the continuation annotation uses the \cs{promoteNewPage} command, see
+Section~\ref{aqpNewPage} on page~\pageref{aqpNewPage} for a description of this command.
\settowidth{\aebdimen}{\ttfamily\string\newcommand\darg{\string\ic@vspacedefault}\darg{1in}}
\begin{dCmd}[commandchars=!()]{\aebdimen+2\fboxsep+2\fboxrule}
@@ -4470,13 +4953,59 @@ Section~\ref{aqpNewPage} on page~\pageref{aqpNewPage} for a description of
\resetacvspace
\newcommand{\ic@vspacedefault}{1in}
\end{dCmd}
-\noindent The above three lines describes some commands for controlling the generation of a new page
-through the use of \cs{promoteNewPage}. The first one \cs{acvspace} is used to set the option
-parameter of \cs{promoteNewPage}. The default value for promoting a new page is \texttt{.25in}, as
-defined by \cs{ic@vspacedefault}, which can be redefined. The command \cs{resetacvspace} resets
-the optional argument of \cs{promoteNewPage} back to its default. All definitions are local, so the revert to
-their original values when a group is exited.
-
+\noindent The above three lines describes some commands for controlling the
+generation of a new page through the use of \cs{promoteNewPage}. The first
+one \cs{acvspace} defines the value of the length
+\cs{iacvspace}\FmtMP{\cs{iacvspace}}, which is used to set the option
+parameter of \cs{promoteNewPage}. The default value for promoting a new page
+is \texttt{1in}, as defined by \cs{ic@vspacedefault}, which can be
+redefined. The command \cs{resetacvspace} resets the optional argument of
+\cs{promoteNewPage} back to its default. All definitions are local, so the
+revert to their original values when a group is exited.
+
+\paragraph*{Automatic annotation.}\label{para:autoAnnot}\leavevmode
+\index{annotating a continuing problem!automatic}%
+Just prior to an \cs{item} within a \env{parts} environment\FmtMP{for items
+in a \env{parts} env.}, the command \Com[\ipkg{eqexam}]{promoteNewPage} is
+expanded with optional argument of \cs{iacvspace} in this case. This command
+calculates the amount of space remaining on the page, if it is less than
+\cs{iacvspace}, a \cs{newpage} is emitted and \cs{annotContStr} is typeset at
+the top of the next page. As a result of this algorithm, if there is more
+space than \cs{iacvspace}, but a page break occurs by the {\TeX} page
+breaking algorithm, the continuation string does not
+appear.\footnote{Remember, after each \cs{item} a \env{solution} environment
+may request vertical space for the student to do his work.} If you don't get
+the continuation annotation at the page break, change \cs{iacvspace}
+(possibly to a smaller value) through its \cs{acvspace} interface command.
+
+When the \Com[\ipkg{eqexam}]{useFillerLines} command is used, there are
+additional automatic automation commands, refer to the paragraph
+\textbf{\nhnameref{para:cnwithFL}} on page~\pageref{para:cnwithFL}.
+
+\paragraph*{Manual annotation.}\label{para:manAnnot}\leavevmode
+\index{annotating a continuing problem!automatic}%
+There are two commands for manually inserting
+annotations into the document.
+\settowidth{\aebdimen}{\ttfamily\string\emitMessageNearBottom*[\meta{vspace}]\darg{\meta{msg}}}%
+\begin{dCmd}[commandchars=!()]{\aebdimen+2\fboxsep+2\fboxrule}
+\insertContAnnot[!meta(vspace)]
+\emitMessageNearBottom*[!meta(vspace)]{!meta(msg)}
+\end{dCmd}
+For both commands, the default value for the optional argument \meta{vspace}
+is \cs{iacvspace}. Both commands start with a \cs{par}, meaning they must be
+in vertical mode to work, so they should not be used within a paragraph. Each
+command determines the amount of space left (\meta{spaceleft}) on the page.
+
+For \cs{insertContAnnot}, if $\meta{spaceleft} < \meta{vspace}$, a
+\cs{newpage} command is expanded and the continuation string
+\cs{annotContStr} is inserted at the top of the next page; otherwise, it does
+nothing.
+
+The action of \cs{emitMessageNearBottom} is similar but it \emph{does not
+insert} start a new page (\cs{newpage}) unless the star-option (\texttt*) is
+specified. If $\meta{spaceleft} < \meta{vspace}$, then \meta{msg} is typeset
+(at the bottom of the page). If the star-option is specified, a \cs{newpage}
+is invoked and \cs{annotContStr} is typeset at the top of the next page.
\subsection{The Exam Record}\label{examrecord}
@@ -4495,7 +5024,7 @@ found at the \textbf{\ulSetLink{http://www.acrotex.net/blog}{Acro\TeX{} Blog}}
See Figure~\ref{fig:ExamRecord}, page~\pageref{fig:ExamRecord}.
There are several commands that can be used to customize the layout of the \textbf{Exam Record}
-\begin{Verbatim}[xleftmargin=\leftmargini,numbers=left]
+\begin{Verbatim}[xleftmargin=\amtIndent,numbers=left]
\eqeSumryHoriz
\eqeSumryVert
\end{Verbatim}
@@ -4505,7 +5034,7 @@ arrangement, the latter is a vertical arrangement, \cs{eqeSumryVert} is the defa
\newtopic Below are several text commands for customizing the text in the \textbf{Exam Record}
box:
-\begin{Verbatim}[xleftmargin=\leftmargini,numbers=left]
+\begin{Verbatim}[xleftmargin=\amtIndent,numbers=left]
\newcommand{\cpSumryHeader}{\textbf{Exam Record}}
\newcommand{\cpSumryPts}{\,\text{pts}}
\newcommand{\cpSumryPage}{Page}
@@ -4533,14 +5062,14 @@ to put in the \textbf{Exam Record}, in this case, you can executed
\cs{useCustomPartNames} in the preamble. This allows you to define your own names
that are to appear in the \textbf{Exam Record}. To define your custom names, use
the \cs{customNaming} command:
-\begin{Verbatim}[xleftmargin=\leftmargini,commandchars=+\(\)]
+\begin{Verbatim}[xleftmargin=\amtIndent,commandchars=+\(\)]
\customNaming{+meta(name)}{+meta(text)}
\end{Verbatim}
where, \meta{name} is the name of the exam, and \meta{text} is the text to appear
in the \textbf{Exam Record}. For example, the following definitions might be made
for a two part final exam, the first part the instructor is free to pose questions,
the second part are Department supplied questions.
-\begin{Verbatim}[xleftmargin=\leftmargini]
+\begin{Verbatim}[xleftmargin=\amtIndent]
\customNaming{Part1}{Instr Qs:}
\customNaming{Part2}{Dept Qs:}
\end{Verbatim}
@@ -4550,7 +5079,7 @@ the second part are Department supplied questions.
I have defined the command In response to a user who wanted more
information about problem ranges between two marks, the command
\cs{calcQsBtwnMarkers} is the proposed solution. The syntax is\dots
-\begin{Verbatim}[xleftmargin=\leftmargini,commandchars=+\(\)]
+\begin{Verbatim}[xleftmargin=\amtIndent,commandchars=+\(\)]
\calcQsBtwnMarkers[+meta(Mrk2)]{+meta(Mrk1)}
\end{Verbatim}
The required parameter (\meta{Mrk1}) is called the \emph{primary mark}.
diff --git a/texmf-dist/doc/latex/eqexam/examples/fig1.eps b/texmf-dist/doc/latex/eqexam/examples/fig1.eps
index d40a7d65..9ea1b0cb 100644
--- a/texmf-dist/doc/latex/eqexam/examples/fig1.eps
+++ b/texmf-dist/doc/latex/eqexam/examples/fig1.eps
Binary files differ
diff --git a/texmf-dist/doc/latex/eqexam/examples/flextended-opt.pdf b/texmf-dist/doc/latex/eqexam/examples/flextended-opt.pdf
new file mode 100644
index 00000000..1a5f1cab
--- /dev/null
+++ b/texmf-dist/doc/latex/eqexam/examples/flextended-opt.pdf
Binary files differ
diff --git a/texmf-dist/doc/latex/eqexam/examples/flextended-opt.tex b/texmf-dist/doc/latex/eqexam/examples/flextended-opt.tex
new file mode 100644
index 00000000..23bf670a
--- /dev/null
+++ b/texmf-dist/doc/latex/eqexam/examples/flextended-opt.tex
@@ -0,0 +1,106 @@
+\documentclass{article}
+\usepackage[fleqn]{amsmath}
+\usepackage[pdf,forcolorpaper,nopoints,useforms,
+% Try compiling this file under one of these options:
+ nosolutions,
+% answerkey,
+% vspacewithsolns,
+ flextended
+]{eqexam}[2018/01/12]
+
+\subject[Essay]{Extending Fill Lines}
+\title[HW]{Essay HW}
+\author{Dr.\ D. P. Story}
+\date{Spring 2018}
+\duedate{03/07/2018}
+\keywords{Homework due \theduedate}
+
+\forceNoColor
+\DoNotFitItIn
+\useFillerLines
+\vspacewithkeyOn
+\turnflnosolnsOn
+\turnflanskeyOn
+\turnContAnnotOn
+\setFillLinesFmt{fltype=line,numbers=left}
+
+\solAtEndFormatting{\eqequesitemsep{3pt}}
+
+\let\opt\texttt
+\let\env\texttt
+
+% these commands pass their arguments to the priorworkarea and solution
+% environments, respectively.
+\priorworkareaCmds{\baselineskip\wlVspace\parindent\wlVspace}
+\solutionafterExCmds{\baselineskip\wlVspace
+ \parindent\wlVspace}
+
+\begin{document}
+
+\maketitle
+
+\begin{exam}{fl1}
+
+\begin{instructions}[]
+Respond to each problem, use your best effort. Turn in your essays by the end of the day.
+\end{instructions}
+
+\flPageBreakMsg{\textbf{Problem~{\eqeCurrProb} continues on next page\strut}}%
+
+\begin{problem}
+Expound on all you know on the subject.
+\begin{priorworkarea}
+When the \opt{flextended} option is not in force, these three lines are blank. However, in this example,
+\opt{flextended} is active, and I can write to these lines.
+\end{priorworkarea}
+\begin{solution}[nLines=3]
+Your guess is as good as mine.
+\end{solution}
+\end{problem}
+
+\setFillLinesFmt{fltype=grid,gridtype=line,numbers=right,topline,color=lightgray}
+
+\begin{problem}
+Expound on all you know on the subject.
+\begin{priorworkarea}
+Essay area.
+\end{priorworkarea}
+\begin{solution}[42pt]
+Your guess is as good as mine.
+\end{solution}
+\end{problem}
+
+\vspace{2.1in}
+\smash{\makebox[\linewidth][c]{\parbox{.5\linewidth}{\bfseries\slshape
+ This space left blank so the next problem can break across the page.}}}
+\vspace{2.1in}
+
+\begin{problem}
+Expound on all you know on the subject.
+\begin{priorworkarea}
+When the \opt{flextended} option is not in force, these three lines are
+blank. However, in this example, \opt{flextended} is active, and I can write
+to these lines.
+
+The contents of the \env{priorworkarea} environment can also break across a
+page boundary. We'll try to make it so.\vspace{2\baselineskip}
+
+Are we on the next page? I think yes.
+\end{priorworkarea}
+\begin{solution}[nLines=10]
+Your guess is as good as mine. The content has the capability of breaking across pages.
+
+I've added more lines because this problem has a chance breaking across a page boundary.
+Let's prattle on until we go to the next page.\vspace{\baselineskip}
+
+We'll jump down a couple of lines cause I don't have much to say. Gotta keep
+going to get to the next page. If all works as it should, I'll see you one
+the other side! Perfect! \vspace{3\baselineskip}
+
+\noindent
+All in all, this is very cool.\enspace dps
+\end{solution}
+\end{problem}
+\end{exam}
+
+\end{document}
diff --git a/texmf-dist/doc/latex/eqexam/examples/graph.eps b/texmf-dist/doc/latex/eqexam/examples/graph.eps
index 240e89ef..bf1e4599 100644
--- a/texmf-dist/doc/latex/eqexam/examples/graph.eps
+++ b/texmf-dist/doc/latex/eqexam/examples/graph.eps
@@ -1,7977 +1,7977 @@
-%!PS-Adobe-3.1 EPSF-3.0
-%ADO_DSC_Encoding: Windows Roman
-%%Title: graph.pdf
-%%Creator: Adobe Acrobat 10.0.1
-%%For: D. P. Story
-%%CreationDate: 4/8/2011, 3:22:12 PM
-%%BoundingBox: -1 0 257 195
-%%HiResBoundingBox: 0 0 256.7930 194.9510
-%%CropBox: 0 0 256.7930 194.9510
-%%LanguageLevel: 2
-%%DocumentNeededResources: (atend)
-%%DocumentSuppliedResources: (atend)
-%%DocumentNeededFeatures: (atend)
-%%DocumentSuppliedFeatures: (atend)
-%%DocumentData: Clean7Bit
-%%Pages: (atend)
-%%DocumentProcessColors: Black
-%%DocumentCustomColors: (atend)
-%%EndComments
-%%BeginDefaults
-%%ViewingOrientation: 1 0 0 1
-%%EndDefaults
-%%BeginProlog
-%%BeginResource: procset Adobe_AGM_Utils 1.0 0
-%%Version: 1.0 0
-%%Copyright: Copyright(C)2000-2006 Adobe Systems, Inc. All Rights Reserved.
-systemdict/setpacking known
-{currentpacking true setpacking}if
-userdict/Adobe_AGM_Utils 75 dict dup begin put
-/bdf
-{bind def}bind def
-/nd{null def}bdf
-/xdf
-{exch def}bdf
-/ldf
-{load def}bdf
-/ddf
-{put}bdf
-/xddf
-{3 -1 roll put}bdf
-/xpt
-{exch put}bdf
-/ndf
-{
- exch dup where{
- pop pop pop
- }{
- xdf
- }ifelse
-}def
-/cdndf
-{
- exch dup currentdict exch known{
- pop pop
- }{
- exch def
- }ifelse
-}def
-/gx
-{get exec}bdf
-/ps_level
- /languagelevel where{
- pop systemdict/languagelevel gx
- }{
- 1
- }ifelse
-def
-/level2
- ps_level 2 ge
-def
-/level3
- ps_level 3 ge
-def
-/ps_version
- {version cvr}stopped{-1}if
-def
-/set_gvm
-{currentglobal exch setglobal}bdf
-/reset_gvm
-{setglobal}bdf
-/makereadonlyarray
-{
- /packedarray where{pop packedarray
- }{
- array astore readonly}ifelse
-}bdf
-/map_reserved_ink_name
-{
- dup type/stringtype eq{
- dup/Red eq{
- pop(_Red_)
- }{
- dup/Green eq{
- pop(_Green_)
- }{
- dup/Blue eq{
- pop(_Blue_)
- }{
- dup()cvn eq{
- pop(Process)
- }if
- }ifelse
- }ifelse
- }ifelse
- }if
-}bdf
-/AGMUTIL_GSTATE 22 dict def
-/get_gstate
-{
- AGMUTIL_GSTATE begin
- /AGMUTIL_GSTATE_clr_spc currentcolorspace def
- /AGMUTIL_GSTATE_clr_indx 0 def
- /AGMUTIL_GSTATE_clr_comps 12 array def
- mark currentcolor counttomark
- {AGMUTIL_GSTATE_clr_comps AGMUTIL_GSTATE_clr_indx 3 -1 roll put
- /AGMUTIL_GSTATE_clr_indx AGMUTIL_GSTATE_clr_indx 1 add def}repeat pop
- /AGMUTIL_GSTATE_fnt rootfont def
- /AGMUTIL_GSTATE_lw currentlinewidth def
- /AGMUTIL_GSTATE_lc currentlinecap def
- /AGMUTIL_GSTATE_lj currentlinejoin def
- /AGMUTIL_GSTATE_ml currentmiterlimit def
- currentdash/AGMUTIL_GSTATE_do xdf/AGMUTIL_GSTATE_da xdf
- /AGMUTIL_GSTATE_sa currentstrokeadjust def
- /AGMUTIL_GSTATE_clr_rnd currentcolorrendering def
- /AGMUTIL_GSTATE_op currentoverprint def
- /AGMUTIL_GSTATE_bg currentblackgeneration cvlit def
- /AGMUTIL_GSTATE_ucr currentundercolorremoval cvlit def
- currentcolortransfer cvlit/AGMUTIL_GSTATE_gy_xfer xdf cvlit/AGMUTIL_GSTATE_b_xfer xdf
- cvlit/AGMUTIL_GSTATE_g_xfer xdf cvlit/AGMUTIL_GSTATE_r_xfer xdf
- /AGMUTIL_GSTATE_ht currenthalftone def
- /AGMUTIL_GSTATE_flt currentflat def
- end
-}def
-/set_gstate
-{
- AGMUTIL_GSTATE begin
- AGMUTIL_GSTATE_clr_spc setcolorspace
- AGMUTIL_GSTATE_clr_indx{AGMUTIL_GSTATE_clr_comps AGMUTIL_GSTATE_clr_indx 1 sub get
- /AGMUTIL_GSTATE_clr_indx AGMUTIL_GSTATE_clr_indx 1 sub def}repeat setcolor
- AGMUTIL_GSTATE_fnt setfont
- AGMUTIL_GSTATE_lw setlinewidth
- AGMUTIL_GSTATE_lc setlinecap
- AGMUTIL_GSTATE_lj setlinejoin
- AGMUTIL_GSTATE_ml setmiterlimit
- AGMUTIL_GSTATE_da AGMUTIL_GSTATE_do setdash
- AGMUTIL_GSTATE_sa setstrokeadjust
- AGMUTIL_GSTATE_clr_rnd setcolorrendering
- AGMUTIL_GSTATE_op setoverprint
- AGMUTIL_GSTATE_bg cvx setblackgeneration
- AGMUTIL_GSTATE_ucr cvx setundercolorremoval
- AGMUTIL_GSTATE_r_xfer cvx AGMUTIL_GSTATE_g_xfer cvx AGMUTIL_GSTATE_b_xfer cvx
- AGMUTIL_GSTATE_gy_xfer cvx setcolortransfer
- AGMUTIL_GSTATE_ht/HalftoneType get dup 9 eq exch 100 eq or
- {
- currenthalftone/HalftoneType get AGMUTIL_GSTATE_ht/HalftoneType get ne
- {
- mark AGMUTIL_GSTATE_ht{sethalftone}stopped cleartomark
- }if
- }{
- AGMUTIL_GSTATE_ht sethalftone
- }ifelse
- AGMUTIL_GSTATE_flt setflat
- end
-}def
-/get_gstate_and_matrix
-{
- AGMUTIL_GSTATE begin
- /AGMUTIL_GSTATE_ctm matrix currentmatrix def
- end
- get_gstate
-}def
-/set_gstate_and_matrix
-{
- set_gstate
- AGMUTIL_GSTATE begin
- AGMUTIL_GSTATE_ctm setmatrix
- end
-}def
-/AGMUTIL_str256 256 string def
-/AGMUTIL_src256 256 string def
-/AGMUTIL_dst64 64 string def
-/AGMUTIL_srcLen nd
-/AGMUTIL_ndx nd
-/AGMUTIL_cpd nd
-/capture_cpd{
- //Adobe_AGM_Utils/AGMUTIL_cpd currentpagedevice ddf
-}def
-/thold_halftone
-{
- level3
- {sethalftone currenthalftone}
- {
- dup/HalftoneType get 3 eq
- {
- sethalftone currenthalftone
- }{
- begin
- Width Height mul{
- Thresholds read{pop}if
- }repeat
- end
- currenthalftone
- }ifelse
- }ifelse
-}def
-/rdcmntline
-{
- currentfile AGMUTIL_str256 readline pop
- (%)anchorsearch{pop}if
-}bdf
-/filter_cmyk
-{
- dup type/filetype ne{
- exch()/SubFileDecode filter
- }{
- exch pop
- }
- ifelse
- [
- exch
- {
- AGMUTIL_src256 readstring pop
- dup length/AGMUTIL_srcLen exch def
- /AGMUTIL_ndx 0 def
- AGMCORE_plate_ndx 4 AGMUTIL_srcLen 1 sub{
- 1 index exch get
- AGMUTIL_dst64 AGMUTIL_ndx 3 -1 roll put
- /AGMUTIL_ndx AGMUTIL_ndx 1 add def
- }for
- pop
- AGMUTIL_dst64 0 AGMUTIL_ndx getinterval
- }
- bind
- /exec cvx
- ]cvx
-}bdf
-/filter_indexed_devn
-{
- cvi Names length mul names_index add Lookup exch get
-}bdf
-/filter_devn
-{
- 4 dict begin
- /srcStr xdf
- /dstStr xdf
- dup type/filetype ne{
- 0()/SubFileDecode filter
- }if
- [
- exch
- [
- /devicen_colorspace_dict/AGMCORE_gget cvx/begin cvx
- currentdict/srcStr get/readstring cvx/pop cvx
- /dup cvx/length cvx 0/gt cvx[
- Adobe_AGM_Utils/AGMUTIL_ndx 0/ddf cvx
- names_index Names length currentdict/srcStr get length 1 sub{
- 1/index cvx/exch cvx/get cvx
- currentdict/dstStr get/AGMUTIL_ndx/load cvx 3 -1/roll cvx/put cvx
- Adobe_AGM_Utils/AGMUTIL_ndx/AGMUTIL_ndx/load cvx 1/add cvx/ddf cvx
- }for
- currentdict/dstStr get 0/AGMUTIL_ndx/load cvx/getinterval cvx
- ]cvx/if cvx
- /end cvx
- ]cvx
- bind
- /exec cvx
- ]cvx
- end
-}bdf
-/AGMUTIL_imagefile nd
-/read_image_file
-{
- AGMUTIL_imagefile 0 setfileposition
- 10 dict begin
- /imageDict xdf
- /imbufLen Width BitsPerComponent mul 7 add 8 idiv def
- /imbufIdx 0 def
- /origDataSource imageDict/DataSource get def
- /origMultipleDataSources imageDict/MultipleDataSources get def
- /origDecode imageDict/Decode get def
- /dstDataStr imageDict/Width get colorSpaceElemCnt mul string def
- imageDict/MultipleDataSources known{MultipleDataSources}{false}ifelse
- {
- /imbufCnt imageDict/DataSource get length def
- /imbufs imbufCnt array def
- 0 1 imbufCnt 1 sub{
- /imbufIdx xdf
- imbufs imbufIdx imbufLen string put
- imageDict/DataSource get imbufIdx[AGMUTIL_imagefile imbufs imbufIdx get/readstring cvx/pop cvx]cvx put
- }for
- DeviceN_PS2{
- imageDict begin
- /DataSource[DataSource/devn_sep_datasource cvx]cvx def
- /MultipleDataSources false def
- /Decode[0 1]def
- end
- }if
- }{
- /imbuf imbufLen string def
- Indexed_DeviceN level3 not and DeviceN_NoneName or{
- /srcDataStrs[imageDict begin
- currentdict/MultipleDataSources known{MultipleDataSources{DataSource length}{1}ifelse}{1}ifelse
- {
- Width Decode length 2 div mul cvi string
- }repeat
- end]def
- imageDict begin
- /DataSource[AGMUTIL_imagefile Decode BitsPerComponent false 1/filter_indexed_devn load dstDataStr srcDataStrs devn_alt_datasource/exec cvx]cvx def
- /Decode[0 1]def
- end
- }{
- imageDict/DataSource[1 string dup 0 AGMUTIL_imagefile Decode length 2 idiv string/readstring cvx/pop cvx names_index/get cvx/put cvx]cvx put
- imageDict/Decode[0 1]put
- }ifelse
- }ifelse
- imageDict exch
- load exec
- imageDict/DataSource origDataSource put
- imageDict/MultipleDataSources origMultipleDataSources put
- imageDict/Decode origDecode put
- end
-}bdf
-/write_image_file
-{
- begin
- {(AGMUTIL_imagefile)(w+)file}stopped{
- false
- }{
- Adobe_AGM_Utils/AGMUTIL_imagefile xddf
- 2 dict begin
- /imbufLen Width BitsPerComponent mul 7 add 8 idiv def
- MultipleDataSources{DataSource 0 get}{DataSource}ifelse type/filetype eq{
- /imbuf imbufLen string def
- }if
- 1 1 Height MultipleDataSources not{Decode length 2 idiv mul}if{
- pop
- MultipleDataSources{
- 0 1 DataSource length 1 sub{
- DataSource type dup
- /arraytype eq{
- pop DataSource exch gx
- }{
- /filetype eq{
- DataSource exch get imbuf readstring pop
- }{
- DataSource exch get
- }ifelse
- }ifelse
- AGMUTIL_imagefile exch writestring
- }for
- }{
- DataSource type dup
- /arraytype eq{
- pop DataSource exec
- }{
- /filetype eq{
- DataSource imbuf readstring pop
- }{
- DataSource
- }ifelse
- }ifelse
- AGMUTIL_imagefile exch writestring
- }ifelse
- }for
- end
- true
- }ifelse
- end
-}bdf
-/close_image_file
-{
- AGMUTIL_imagefile closefile(AGMUTIL_imagefile)deletefile
-}def
-statusdict/product known userdict/AGMP_current_show known not and{
- /pstr statusdict/product get def
- pstr(HP LaserJet 2200)eq
- pstr(HP LaserJet 4000 Series)eq or
- pstr(HP LaserJet 4050 Series )eq or
- pstr(HP LaserJet 8000 Series)eq or
- pstr(HP LaserJet 8100 Series)eq or
- pstr(HP LaserJet 8150 Series)eq or
- pstr(HP LaserJet 5000 Series)eq or
- pstr(HP LaserJet 5100 Series)eq or
- pstr(HP Color LaserJet 4500)eq or
- pstr(HP Color LaserJet 4600)eq or
- pstr(HP LaserJet 5Si)eq or
- pstr(HP LaserJet 1200 Series)eq or
- pstr(HP LaserJet 1300 Series)eq or
- pstr(HP LaserJet 4100 Series)eq or
- {
- userdict/AGMP_current_show/show load put
- userdict/show{
- currentcolorspace 0 get
- /Pattern eq
- {false charpath f}
- {AGMP_current_show}ifelse
- }put
- }if
- currentdict/pstr undef
-}if
-/consumeimagedata
-{
- begin
- AGMIMG_init_common
- currentdict/MultipleDataSources known not
- {/MultipleDataSources false def}if
- MultipleDataSources
- {
- DataSource 0 get type
- dup/filetype eq
- {
- 1 dict begin
- /flushbuffer Width cvi string def
- 1 1 Height cvi
- {
- pop
- 0 1 DataSource length 1 sub
- {
- DataSource exch get
- flushbuffer readstring pop pop
- }for
- }for
- end
- }if
- dup/arraytype eq exch/packedarraytype eq or DataSource 0 get xcheck and
- {
- Width Height mul cvi
- {
- 0 1 DataSource length 1 sub
- {dup DataSource exch gx length exch 0 ne{pop}if}for
- dup 0 eq
- {pop exit}if
- sub dup 0 le
- {exit}if
- }loop
- pop
- }if
- }
- {
- /DataSource load type
- dup/filetype eq
- {
- 1 dict begin
- /flushbuffer Width Decode length 2 idiv mul cvi string def
- 1 1 Height{pop DataSource flushbuffer readstring pop pop}for
- end
- }if
- dup/arraytype eq exch/packedarraytype eq or/DataSource load xcheck and
- {
- Height Width BitsPerComponent mul 8 BitsPerComponent sub add 8 idiv Decode length 2 idiv mul mul
- {
- DataSource length dup 0 eq
- {pop exit}if
- sub dup 0 le
- {exit}if
- }loop
- pop
- }if
- }ifelse
- end
-}bdf
-/addprocs
-{
- 2{/exec load}repeat
- 3 1 roll
- [5 1 roll]bind cvx
-}def
-/modify_halftone_xfer
-{
- currenthalftone dup length dict copy begin
- currentdict 2 index known{
- 1 index load dup length dict copy begin
- currentdict/TransferFunction known{
- /TransferFunction load
- }{
- currenttransfer
- }ifelse
- addprocs/TransferFunction xdf
- currentdict end def
- currentdict end sethalftone
- }{
- currentdict/TransferFunction known{
- /TransferFunction load
- }{
- currenttransfer
- }ifelse
- addprocs/TransferFunction xdf
- currentdict end sethalftone
- pop
- }ifelse
-}def
-/clonearray
-{
- dup xcheck exch
- dup length array exch
- Adobe_AGM_Core/AGMCORE_tmp -1 ddf
- {
- Adobe_AGM_Core/AGMCORE_tmp 2 copy get 1 add ddf
- dup type/dicttype eq
- {
- Adobe_AGM_Core/AGMCORE_tmp get
- exch
- clonedict
- Adobe_AGM_Core/AGMCORE_tmp 4 -1 roll ddf
- }if
- dup type/arraytype eq
- {
- Adobe_AGM_Core/AGMCORE_tmp get exch
- clonearray
- Adobe_AGM_Core/AGMCORE_tmp 4 -1 roll ddf
- }if
- exch dup
- Adobe_AGM_Core/AGMCORE_tmp get 4 -1 roll put
- }forall
- exch{cvx}if
-}bdf
-/clonedict
-{
- dup length dict
- begin
- {
- dup type/dicttype eq
- {clonedict}if
- dup type/arraytype eq
- {clonearray}if
- def
- }forall
- currentdict
- end
-}bdf
-/DeviceN_PS2
-{
- /currentcolorspace AGMCORE_gget 0 get/DeviceN eq level3 not and
-}bdf
-/Indexed_DeviceN
-{
- /indexed_colorspace_dict AGMCORE_gget dup null ne{
- dup/CSDBase known{
- /CSDBase get/CSD get_res/Names known
- }{
- pop false
- }ifelse
- }{
- pop false
- }ifelse
-}bdf
-/DeviceN_NoneName
-{
- /Names where{
- pop
- false Names
- {
- (None)eq or
- }forall
- }{
- false
- }ifelse
-}bdf
-/DeviceN_PS2_inRip_seps
-{
- /AGMCORE_in_rip_sep where
- {
- pop dup type dup/arraytype eq exch/packedarraytype eq or
- {
- dup 0 get/DeviceN eq level3 not and AGMCORE_in_rip_sep and
- {
- /currentcolorspace exch AGMCORE_gput
- false
- }{
- true
- }ifelse
- }{
- true
- }ifelse
- }{
- true
- }ifelse
-}bdf
-/base_colorspace_type
-{
- dup type/arraytype eq{0 get}if
-}bdf
-/currentdistillerparams where{pop currentdistillerparams/CoreDistVersion get 5000 lt}{true}ifelse
-{
- /pdfmark_5{cleartomark}bind def
-}{
- /pdfmark_5{pdfmark}bind def
-}ifelse
-/ReadBypdfmark_5
-{
- currentfile exch 0 exch/SubFileDecode filter
- /currentdistillerparams where
- {pop currentdistillerparams/CoreDistVersion get 5000 lt}{true}ifelse
- {flushfile cleartomark}
- {/PUT pdfmark}ifelse
-}bdf
-/ReadBypdfmark_5_string
-{
- 2 dict begin
- /makerString exch def string/tmpString exch def
- {
- currentfile tmpString readline not{pop exit}if
- makerString anchorsearch
- {
- pop pop cleartomark exit
- }{
- 3 copy/PUT pdfmark_5 pop 2 copy(\n)/PUT pdfmark_5
- }ifelse
- }loop
- end
-}bdf
-/xpdfm
-{
- {
- dup 0 get/Label eq
- {
- aload length[exch 1 add 1 roll/PAGELABEL
- }{
- aload pop
- [{ThisPage}<<5 -2 roll>>/PUT
- }ifelse
- pdfmark_5
- }forall
-}bdf
-/lmt{
- dup 2 index le{exch}if pop dup 2 index ge{exch}if pop
-}bdf
-/int{
- dup 2 index sub 3 index 5 index sub div 6 -2 roll sub mul exch pop add exch pop
-}bdf
-/ds{
- Adobe_AGM_Utils begin
-}bdf
-/dt{
- currentdict Adobe_AGM_Utils eq{
- end
- }if
-}bdf
-systemdict/setpacking known
-{setpacking}if
-%%EndResource
-%%BeginResource: procset Adobe_AGM_Core 2.0 0
-%%Version: 2.0 0
-%%Copyright: Copyright(C)1997-2007 Adobe Systems, Inc. All Rights Reserved.
-systemdict/setpacking known
-{
- currentpacking
- true setpacking
-}if
-userdict/Adobe_AGM_Core 209 dict dup begin put
-/Adobe_AGM_Core_Id/Adobe_AGM_Core_2.0_0 def
-/AGMCORE_str256 256 string def
-/AGMCORE_save nd
-/AGMCORE_graphicsave nd
-/AGMCORE_c 0 def
-/AGMCORE_m 0 def
-/AGMCORE_y 0 def
-/AGMCORE_k 0 def
-/AGMCORE_cmykbuf 4 array def
-/AGMCORE_screen[currentscreen]cvx def
-/AGMCORE_tmp 0 def
-/AGMCORE_&setgray nd
-/AGMCORE_&setcolor nd
-/AGMCORE_&setcolorspace nd
-/AGMCORE_&setcmykcolor nd
-/AGMCORE_cyan_plate nd
-/AGMCORE_magenta_plate nd
-/AGMCORE_yellow_plate nd
-/AGMCORE_black_plate nd
-/AGMCORE_plate_ndx nd
-/AGMCORE_get_ink_data nd
-/AGMCORE_is_cmyk_sep nd
-/AGMCORE_host_sep nd
-/AGMCORE_avoid_L2_sep_space nd
-/AGMCORE_distilling nd
-/AGMCORE_composite_job nd
-/AGMCORE_producing_seps nd
-/AGMCORE_ps_level -1 def
-/AGMCORE_ps_version -1 def
-/AGMCORE_environ_ok nd
-/AGMCORE_CSD_cache 0 dict def
-/AGMCORE_currentoverprint false def
-/AGMCORE_deltaX nd
-/AGMCORE_deltaY nd
-/AGMCORE_name nd
-/AGMCORE_sep_special nd
-/AGMCORE_err_strings 4 dict def
-/AGMCORE_cur_err nd
-/AGMCORE_current_spot_alias false def
-/AGMCORE_inverting false def
-/AGMCORE_feature_dictCount nd
-/AGMCORE_feature_opCount nd
-/AGMCORE_feature_ctm nd
-/AGMCORE_ConvertToProcess false def
-/AGMCORE_Default_CTM matrix def
-/AGMCORE_Default_PageSize nd
-/AGMCORE_Default_flatness nd
-/AGMCORE_currentbg nd
-/AGMCORE_currentucr nd
-/AGMCORE_pattern_paint_type 0 def
-/knockout_unitsq nd
-currentglobal true setglobal
-[/CSA/Gradient/Procedure]
-{
- /Generic/Category findresource dup length dict copy/Category defineresource pop
-}forall
-setglobal
-/AGMCORE_key_known
-{
- where{
- /Adobe_AGM_Core_Id known
- }{
- false
- }ifelse
-}ndf
-/flushinput
-{
- save
- 2 dict begin
- /CompareBuffer 3 -1 roll def
- /readbuffer 256 string def
- mark
- {
- currentfile readbuffer{readline}stopped
- {cleartomark mark}
- {
- not
- {pop exit}
- if
- CompareBuffer eq
- {exit}
- if
- }ifelse
- }loop
- cleartomark
- end
- restore
-}bdf
-/getspotfunction
-{
- AGMCORE_screen exch pop exch pop
- dup type/dicttype eq{
- dup/HalftoneType get 1 eq{
- /SpotFunction get
- }{
- dup/HalftoneType get 2 eq{
- /GraySpotFunction get
- }{
- pop
- {
- abs exch abs 2 copy add 1 gt{
- 1 sub dup mul exch 1 sub dup mul add 1 sub
- }{
- dup mul exch dup mul add 1 exch sub
- }ifelse
- }bind
- }ifelse
- }ifelse
- }if
-}def
-/np
-{newpath}bdf
-/clp_npth
-{clip np}def
-/eoclp_npth
-{eoclip np}def
-/npth_clp
-{np clip}def
-/graphic_setup
-{
- /AGMCORE_graphicsave save store
- concat
- 0 setgray
- 0 setlinecap
- 0 setlinejoin
- 1 setlinewidth
- []0 setdash
- 10 setmiterlimit
- np
- false setoverprint
- false setstrokeadjust
- //Adobe_AGM_Core/spot_alias gx
- /Adobe_AGM_Image where{
- pop
- Adobe_AGM_Image/spot_alias 2 copy known{
- gx
- }{
- pop pop
- }ifelse
- }if
- /sep_colorspace_dict null AGMCORE_gput
- 100 dict begin
- /dictstackcount countdictstack def
- /showpage{}def
- mark
-}def
-/graphic_cleanup
-{
- cleartomark
- dictstackcount 1 countdictstack 1 sub{end}for
- end
- AGMCORE_graphicsave restore
-}def
-/compose_error_msg
-{
- grestoreall initgraphics
- /Helvetica findfont 10 scalefont setfont
- /AGMCORE_deltaY 100 def
- /AGMCORE_deltaX 310 def
- clippath pathbbox np pop pop 36 add exch 36 add exch moveto
- 0 AGMCORE_deltaY rlineto AGMCORE_deltaX 0 rlineto
- 0 AGMCORE_deltaY neg rlineto AGMCORE_deltaX neg 0 rlineto closepath
- 0 AGMCORE_&setgray
- gsave 1 AGMCORE_&setgray fill grestore
- 1 setlinewidth gsave stroke grestore
- currentpoint AGMCORE_deltaY 15 sub add exch 8 add exch moveto
- /AGMCORE_deltaY 12 def
- /AGMCORE_tmp 0 def
- AGMCORE_err_strings exch get
- {
- dup 32 eq
- {
- pop
- AGMCORE_str256 0 AGMCORE_tmp getinterval
- stringwidth pop currentpoint pop add AGMCORE_deltaX 28 add gt
- {
- currentpoint AGMCORE_deltaY sub exch pop
- clippath pathbbox pop pop pop 44 add exch moveto
- }if
- AGMCORE_str256 0 AGMCORE_tmp getinterval show( )show
- 0 1 AGMCORE_str256 length 1 sub
- {
- AGMCORE_str256 exch 0 put
- }for
- /AGMCORE_tmp 0 def
- }{
- AGMCORE_str256 exch AGMCORE_tmp xpt
- /AGMCORE_tmp AGMCORE_tmp 1 add def
- }ifelse
- }forall
-}bdf
-/AGMCORE_CMYKDeviceNColorspaces[
- [/Separation/None/DeviceCMYK{0 0 0}]
- [/Separation(Black)/DeviceCMYK{0 0 0 4 -1 roll}bind]
- [/Separation(Yellow)/DeviceCMYK{0 0 3 -1 roll 0}bind]
- [/DeviceN[(Yellow)(Black)]/DeviceCMYK{0 0 4 2 roll}bind]
- [/Separation(Magenta)/DeviceCMYK{0 exch 0 0}bind]
- [/DeviceN[(Magenta)(Black)]/DeviceCMYK{0 3 1 roll 0 exch}bind]
- [/DeviceN[(Magenta)(Yellow)]/DeviceCMYK{0 3 1 roll 0}bind]
- [/DeviceN[(Magenta)(Yellow)(Black)]/DeviceCMYK{0 4 1 roll}bind]
- [/Separation(Cyan)/DeviceCMYK{0 0 0}]
- [/DeviceN[(Cyan)(Black)]/DeviceCMYK{0 0 3 -1 roll}bind]
- [/DeviceN[(Cyan)(Yellow)]/DeviceCMYK{0 exch 0}bind]
- [/DeviceN[(Cyan)(Yellow)(Black)]/DeviceCMYK{0 3 1 roll}bind]
- [/DeviceN[(Cyan)(Magenta)]/DeviceCMYK{0 0}]
- [/DeviceN[(Cyan)(Magenta)(Black)]/DeviceCMYK{0 exch}bind]
- [/DeviceN[(Cyan)(Magenta)(Yellow)]/DeviceCMYK{0}]
- [/DeviceCMYK]
-]def
-/ds{
- Adobe_AGM_Core begin
- /currentdistillerparams where
- {
- pop currentdistillerparams/CoreDistVersion get 5000 lt
- {<</DetectBlends false>>setdistillerparams}if
- }if
- /AGMCORE_ps_version xdf
- /AGMCORE_ps_level xdf
- errordict/AGM_handleerror known not{
- errordict/AGM_handleerror errordict/handleerror get put
- errordict/handleerror{
- Adobe_AGM_Core begin
- $error/newerror get AGMCORE_cur_err null ne and{
- $error/newerror false put
- AGMCORE_cur_err compose_error_msg
- }if
- $error/newerror true put
- end
- errordict/AGM_handleerror get exec
- }bind put
- }if
- /AGMCORE_environ_ok
- ps_level AGMCORE_ps_level ge
- ps_version AGMCORE_ps_version ge and
- AGMCORE_ps_level -1 eq or
- def
- AGMCORE_environ_ok not
- {/AGMCORE_cur_err/AGMCORE_bad_environ def}if
- /AGMCORE_&setgray systemdict/setgray get def
- level2{
- /AGMCORE_&setcolor systemdict/setcolor get def
- /AGMCORE_&setcolorspace systemdict/setcolorspace get def
- }if
- /AGMCORE_currentbg currentblackgeneration def
- /AGMCORE_currentucr currentundercolorremoval def
- /AGMCORE_Default_flatness currentflat def
- /AGMCORE_distilling
- /product where{
- pop systemdict/setdistillerparams known product(Adobe PostScript Parser)ne and
- }{
- false
- }ifelse
- def
- /AGMCORE_GSTATE AGMCORE_key_known not{
- /AGMCORE_GSTATE 21 dict def
- /AGMCORE_tmpmatrix matrix def
- /AGMCORE_gstack 32 array def
- /AGMCORE_gstackptr 0 def
- /AGMCORE_gstacksaveptr 0 def
- /AGMCORE_gstackframekeys 14 def
- /AGMCORE_&gsave/gsave ldf
- /AGMCORE_&grestore/grestore ldf
- /AGMCORE_&grestoreall/grestoreall ldf
- /AGMCORE_&save/save ldf
- /AGMCORE_&setoverprint/setoverprint ldf
- /AGMCORE_gdictcopy{
- begin
- {def}forall
- end
- }def
- /AGMCORE_gput{
- AGMCORE_gstack AGMCORE_gstackptr get
- 3 1 roll
- put
- }def
- /AGMCORE_gget{
- AGMCORE_gstack AGMCORE_gstackptr get
- exch
- get
- }def
- /gsave{
- AGMCORE_&gsave
- AGMCORE_gstack AGMCORE_gstackptr get
- AGMCORE_gstackptr 1 add
- dup 32 ge{limitcheck}if
- /AGMCORE_gstackptr exch store
- AGMCORE_gstack AGMCORE_gstackptr get
- AGMCORE_gdictcopy
- }def
- /grestore{
- AGMCORE_&grestore
- AGMCORE_gstackptr 1 sub
- dup AGMCORE_gstacksaveptr lt{1 add}if
- dup AGMCORE_gstack exch get dup/AGMCORE_currentoverprint known
- {/AGMCORE_currentoverprint get setoverprint}{pop}ifelse
- /AGMCORE_gstackptr exch store
- }def
- /grestoreall{
- AGMCORE_&grestoreall
- /AGMCORE_gstackptr AGMCORE_gstacksaveptr store
- }def
- /save{
- AGMCORE_&save
- AGMCORE_gstack AGMCORE_gstackptr get
- AGMCORE_gstackptr 1 add
- dup 32 ge{limitcheck}if
- /AGMCORE_gstackptr exch store
- /AGMCORE_gstacksaveptr AGMCORE_gstackptr store
- AGMCORE_gstack AGMCORE_gstackptr get
- AGMCORE_gdictcopy
- }def
- /setoverprint{
- dup/AGMCORE_currentoverprint exch AGMCORE_gput AGMCORE_&setoverprint
- }def
- 0 1 AGMCORE_gstack length 1 sub{
- AGMCORE_gstack exch AGMCORE_gstackframekeys dict put
- }for
- }if
- level3/AGMCORE_&sysshfill AGMCORE_key_known not and
- {
- /AGMCORE_&sysshfill systemdict/shfill get def
- /AGMCORE_&sysmakepattern systemdict/makepattern get def
- /AGMCORE_&usrmakepattern/makepattern load def
- }if
- /currentcmykcolor[0 0 0 0]AGMCORE_gput
- /currentstrokeadjust false AGMCORE_gput
- /currentcolorspace[/DeviceGray]AGMCORE_gput
- /sep_tint 0 AGMCORE_gput
- /devicen_tints[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]AGMCORE_gput
- /sep_colorspace_dict null AGMCORE_gput
- /devicen_colorspace_dict null AGMCORE_gput
- /indexed_colorspace_dict null AGMCORE_gput
- /currentcolor_intent()AGMCORE_gput
- /customcolor_tint 1 AGMCORE_gput
- /absolute_colorimetric_crd null AGMCORE_gput
- /relative_colorimetric_crd null AGMCORE_gput
- /saturation_crd null AGMCORE_gput
- /perceptual_crd null AGMCORE_gput
- currentcolortransfer cvlit/AGMCore_gray_xfer xdf cvlit/AGMCore_b_xfer xdf
- cvlit/AGMCore_g_xfer xdf cvlit/AGMCore_r_xfer xdf
- <<
- /MaxPatternItem currentsystemparams/MaxPatternCache get
- >>
- setuserparams
- end
-}def
-/ps
-{
- /setcmykcolor where{
- pop
- Adobe_AGM_Core/AGMCORE_&setcmykcolor/setcmykcolor load put
- }if
- Adobe_AGM_Core begin
- /setcmykcolor
- {
- 4 copy AGMCORE_cmykbuf astore/currentcmykcolor exch AGMCORE_gput
- 1 sub 4 1 roll
- 3{
- 3 index add neg dup 0 lt{
- pop 0
- }if
- 3 1 roll
- }repeat
- setrgbcolor pop
- }ndf
- /currentcmykcolor
- {
- /currentcmykcolor AGMCORE_gget aload pop
- }ndf
- /setoverprint
- {pop}ndf
- /currentoverprint
- {false}ndf
- /AGMCORE_cyan_plate 1 0 0 0 test_cmyk_color_plate def
- /AGMCORE_magenta_plate 0 1 0 0 test_cmyk_color_plate def
- /AGMCORE_yellow_plate 0 0 1 0 test_cmyk_color_plate def
- /AGMCORE_black_plate 0 0 0 1 test_cmyk_color_plate def
- /AGMCORE_plate_ndx
- AGMCORE_cyan_plate{
- 0
- }{
- AGMCORE_magenta_plate{
- 1
- }{
- AGMCORE_yellow_plate{
- 2
- }{
- AGMCORE_black_plate{
- 3
- }{
- 4
- }ifelse
- }ifelse
- }ifelse
- }ifelse
- def
- /AGMCORE_have_reported_unsupported_color_space false def
- /AGMCORE_report_unsupported_color_space
- {
- AGMCORE_have_reported_unsupported_color_space false eq
- {
- (Warning: Job contains content that cannot be separated with on-host methods. This content appears on the black plate, and knocks out all other plates.)==
- Adobe_AGM_Core/AGMCORE_have_reported_unsupported_color_space true ddf
- }if
- }def
- /AGMCORE_composite_job
- AGMCORE_cyan_plate AGMCORE_magenta_plate and AGMCORE_yellow_plate and AGMCORE_black_plate and def
- /AGMCORE_in_rip_sep
- /AGMCORE_in_rip_sep where{
- pop AGMCORE_in_rip_sep
- }{
- AGMCORE_distilling
- {
- false
- }{
- userdict/Adobe_AGM_OnHost_Seps known{
- false
- }{
- level2{
- currentpagedevice/Separations 2 copy known{
- get
- }{
- pop pop false
- }ifelse
- }{
- false
- }ifelse
- }ifelse
- }ifelse
- }ifelse
- def
- /AGMCORE_producing_seps AGMCORE_composite_job not AGMCORE_in_rip_sep or def
- /AGMCORE_host_sep AGMCORE_producing_seps AGMCORE_in_rip_sep not and def
- /AGM_preserve_spots
- /AGM_preserve_spots where{
- pop AGM_preserve_spots
- }{
- AGMCORE_distilling AGMCORE_producing_seps or
- }ifelse
- def
- /AGM_is_distiller_preserving_spotimages
- {
- currentdistillerparams/PreserveOverprintSettings known
- {
- currentdistillerparams/PreserveOverprintSettings get
- {
- currentdistillerparams/ColorConversionStrategy known
- {
- currentdistillerparams/ColorConversionStrategy get
- /sRGB ne
- }{
- true
- }ifelse
- }{
- false
- }ifelse
- }{
- false
- }ifelse
- }def
- /convert_spot_to_process where{pop}{
- /convert_spot_to_process
- {
- //Adobe_AGM_Core begin
- dup map_alias{
- /Name get exch pop
- }if
- dup dup(None)eq exch(All)eq or
- {
- pop false
- }{
- AGMCORE_host_sep
- {
- gsave
- 1 0 0 0 setcmykcolor currentgray 1 exch sub
- 0 1 0 0 setcmykcolor currentgray 1 exch sub
- 0 0 1 0 setcmykcolor currentgray 1 exch sub
- 0 0 0 1 setcmykcolor currentgray 1 exch sub
- add add add 0 eq
- {
- pop false
- }{
- false setoverprint
- current_spot_alias false set_spot_alias
- 1 1 1 1 6 -1 roll findcmykcustomcolor 1 setcustomcolor
- set_spot_alias
- currentgray 1 ne
- }ifelse
- grestore
- }{
- AGMCORE_distilling
- {
- pop AGM_is_distiller_preserving_spotimages not
- }{
- //Adobe_AGM_Core/AGMCORE_name xddf
- false
- //Adobe_AGM_Core/AGMCORE_pattern_paint_type get 0 eq
- AGMUTIL_cpd/OverrideSeparations known and
- {
- AGMUTIL_cpd/OverrideSeparations get
- {
- /HqnSpots/ProcSet resourcestatus
- {
- pop pop pop true
- }if
- }if
- }if
- {
- AGMCORE_name/HqnSpots/ProcSet findresource/TestSpot gx not
- }{
- gsave
- [/Separation AGMCORE_name/DeviceGray{}]AGMCORE_&setcolorspace
- false
- AGMUTIL_cpd/SeparationColorNames 2 copy known
- {
- get
- {AGMCORE_name eq or}forall
- not
- }{
- pop pop pop true
- }ifelse
- grestore
- }ifelse
- }ifelse
- }ifelse
- }ifelse
- end
- }def
- }ifelse
- /convert_to_process where{pop}{
- /convert_to_process
- {
- dup length 0 eq
- {
- pop false
- }{
- AGMCORE_host_sep
- {
- dup true exch
- {
- dup(Cyan)eq exch
- dup(Magenta)eq 3 -1 roll or exch
- dup(Yellow)eq 3 -1 roll or exch
- dup(Black)eq 3 -1 roll or
- {pop}
- {convert_spot_to_process and}ifelse
- }
- forall
- {
- true exch
- {
- dup(Cyan)eq exch
- dup(Magenta)eq 3 -1 roll or exch
- dup(Yellow)eq 3 -1 roll or exch
- (Black)eq or and
- }forall
- not
- }{pop false}ifelse
- }{
- false exch
- {
- /PhotoshopDuotoneList where{pop false}{true}ifelse
- {
- dup(Cyan)eq exch
- dup(Magenta)eq 3 -1 roll or exch
- dup(Yellow)eq 3 -1 roll or exch
- dup(Black)eq 3 -1 roll or
- {pop}
- {convert_spot_to_process or}ifelse
- }
- {
- convert_spot_to_process or
- }
- ifelse
- }
- forall
- }ifelse
- }ifelse
- }def
- }ifelse
- /AGMCORE_avoid_L2_sep_space
- version cvr 2012 lt
- level2 and
- AGMCORE_producing_seps not and
- def
- /AGMCORE_is_cmyk_sep
- AGMCORE_cyan_plate AGMCORE_magenta_plate or AGMCORE_yellow_plate or AGMCORE_black_plate or
- def
- /AGM_avoid_0_cmyk where{
- pop AGM_avoid_0_cmyk
- }{
- AGM_preserve_spots
- userdict/Adobe_AGM_OnHost_Seps known
- userdict/Adobe_AGM_InRip_Seps known or
- not and
- }ifelse
- {
- /setcmykcolor[
- {
- 4 copy add add add 0 eq currentoverprint and{
- pop 0.0005
- }if
- }/exec cvx
- /AGMCORE_&setcmykcolor load dup type/operatortype ne{
- /exec cvx
- }if
- ]cvx def
- }if
- /AGMCORE_IsSeparationAProcessColor
- {
- dup(Cyan)eq exch dup(Magenta)eq exch dup(Yellow)eq exch(Black)eq or or or
- }def
- AGMCORE_host_sep{
- /setcolortransfer
- {
- AGMCORE_cyan_plate{
- pop pop pop
- }{
- AGMCORE_magenta_plate{
- 4 3 roll pop pop pop
- }{
- AGMCORE_yellow_plate{
- 4 2 roll pop pop pop
- }{
- 4 1 roll pop pop pop
- }ifelse
- }ifelse
- }ifelse
- settransfer
- }
- def
- /AGMCORE_get_ink_data
- AGMCORE_cyan_plate{
- {pop pop pop}
- }{
- AGMCORE_magenta_plate{
- {4 3 roll pop pop pop}
- }{
- AGMCORE_yellow_plate{
- {4 2 roll pop pop pop}
- }{
- {4 1 roll pop pop pop}
- }ifelse
- }ifelse
- }ifelse
- def
- /AGMCORE_RemoveProcessColorNames
- {
- 1 dict begin
- /filtername
- {
- dup/Cyan eq 1 index(Cyan)eq or
- {pop(_cyan_)}if
- dup/Magenta eq 1 index(Magenta)eq or
- {pop(_magenta_)}if
- dup/Yellow eq 1 index(Yellow)eq or
- {pop(_yellow_)}if
- dup/Black eq 1 index(Black)eq or
- {pop(_black_)}if
- }def
- dup type/arraytype eq
- {[exch{filtername}forall]}
- {filtername}ifelse
- end
- }def
- level3{
- /AGMCORE_IsCurrentColor
- {
- dup AGMCORE_IsSeparationAProcessColor
- {
- AGMCORE_plate_ndx 0 eq
- {dup(Cyan)eq exch/Cyan eq or}if
- AGMCORE_plate_ndx 1 eq
- {dup(Magenta)eq exch/Magenta eq or}if
- AGMCORE_plate_ndx 2 eq
- {dup(Yellow)eq exch/Yellow eq or}if
- AGMCORE_plate_ndx 3 eq
- {dup(Black)eq exch/Black eq or}if
- AGMCORE_plate_ndx 4 eq
- {pop false}if
- }{
- gsave
- false setoverprint
- current_spot_alias false set_spot_alias
- 1 1 1 1 6 -1 roll findcmykcustomcolor 1 setcustomcolor
- set_spot_alias
- currentgray 1 ne
- grestore
- }ifelse
- }def
- /AGMCORE_filter_functiondatasource
- {
- 5 dict begin
- /data_in xdf
- data_in type/stringtype eq
- {
- /ncomp xdf
- /comp xdf
- /string_out data_in length ncomp idiv string def
- 0 ncomp data_in length 1 sub
- {
- string_out exch dup ncomp idiv exch data_in exch ncomp getinterval comp get 255 exch sub put
- }for
- string_out
- }{
- string/string_in xdf
- /string_out 1 string def
- /component xdf
- [
- data_in string_in/readstring cvx
- [component/get cvx 255/exch cvx/sub cvx string_out/exch cvx 0/exch cvx/put cvx string_out]cvx
- [/pop cvx()]cvx/ifelse cvx
- ]cvx/ReusableStreamDecode filter
- }ifelse
- end
- }def
- /AGMCORE_separateShadingFunction
- {
- 2 dict begin
- /paint? xdf
- /channel xdf
- dup type/dicttype eq
- {
- begin
- FunctionType 0 eq
- {
- /DataSource channel Range length 2 idiv DataSource AGMCORE_filter_functiondatasource def
- currentdict/Decode known
- {/Decode Decode channel 2 mul 2 getinterval def}if
- paint? not
- {/Decode[1 1]def}if
- }if
- FunctionType 2 eq
- {
- paint?
- {
- /C0[C0 channel get 1 exch sub]def
- /C1[C1 channel get 1 exch sub]def
- }{
- /C0[1]def
- /C1[1]def
- }ifelse
- }if
- FunctionType 3 eq
- {
- /Functions[Functions{channel paint? AGMCORE_separateShadingFunction}forall]def
- }if
- currentdict/Range known
- {/Range[0 1]def}if
- currentdict
- end}{
- channel get 0 paint? AGMCORE_separateShadingFunction
- }ifelse
- end
- }def
- /AGMCORE_separateShading
- {
- 3 -1 roll begin
- currentdict/Function known
- {
- currentdict/Background known
- {[1 index{Background 3 index get 1 exch sub}{1}ifelse]/Background xdf}if
- Function 3 1 roll AGMCORE_separateShadingFunction/Function xdf
- /ColorSpace[/DeviceGray]def
- }{
- ColorSpace dup type/arraytype eq{0 get}if/DeviceCMYK eq
- {
- /ColorSpace[/DeviceN[/_cyan_/_magenta_/_yellow_/_black_]/DeviceCMYK{}]def
- }{
- ColorSpace dup 1 get AGMCORE_RemoveProcessColorNames 1 exch put
- }ifelse
- ColorSpace 0 get/Separation eq
- {
- {
- [1/exch cvx/sub cvx]cvx
- }{
- [/pop cvx 1]cvx
- }ifelse
- ColorSpace 3 3 -1 roll put
- pop
- }{
- {
- [exch ColorSpace 1 get length 1 sub exch sub/index cvx 1/exch cvx/sub cvx ColorSpace 1 get length 1 add 1/roll cvx ColorSpace 1 get length{/pop cvx}repeat]cvx
- }{
- pop[ColorSpace 1 get length{/pop cvx}repeat cvx 1]cvx
- }ifelse
- ColorSpace 3 3 -1 roll bind put
- }ifelse
- ColorSpace 2/DeviceGray put
- }ifelse
- end
- }def
- /AGMCORE_separateShadingDict
- {
- dup/ColorSpace get
- dup type/arraytype ne
- {[exch]}if
- dup 0 get/DeviceCMYK eq
- {
- exch begin
- currentdict
- AGMCORE_cyan_plate
- {0 true}if
- AGMCORE_magenta_plate
- {1 true}if
- AGMCORE_yellow_plate
- {2 true}if
- AGMCORE_black_plate
- {3 true}if
- AGMCORE_plate_ndx 4 eq
- {0 false}if
- dup not currentoverprint and
- {/AGMCORE_ignoreshade true def}if
- AGMCORE_separateShading
- currentdict
- end exch
- }if
- dup 0 get/Separation eq
- {
- exch begin
- ColorSpace 1 get dup/None ne exch/All ne and
- {
- ColorSpace 1 get AGMCORE_IsCurrentColor AGMCORE_plate_ndx 4 lt and ColorSpace 1 get AGMCORE_IsSeparationAProcessColor not and
- {
- ColorSpace 2 get dup type/arraytype eq{0 get}if/DeviceCMYK eq
- {
- /ColorSpace
- [
- /Separation
- ColorSpace 1 get
- /DeviceGray
- [
- ColorSpace 3 get/exec cvx
- 4 AGMCORE_plate_ndx sub -1/roll cvx
- 4 1/roll cvx
- 3[/pop cvx]cvx/repeat cvx
- 1/exch cvx/sub cvx
- ]cvx
- ]def
- }{
- AGMCORE_report_unsupported_color_space
- AGMCORE_black_plate not
- {
- currentdict 0 false AGMCORE_separateShading
- }if
- }ifelse
- }{
- currentdict ColorSpace 1 get AGMCORE_IsCurrentColor
- 0 exch
- dup not currentoverprint and
- {/AGMCORE_ignoreshade true def}if
- AGMCORE_separateShading
- }ifelse
- }if
- currentdict
- end exch
- }if
- dup 0 get/DeviceN eq
- {
- exch begin
- ColorSpace 1 get convert_to_process
- {
- ColorSpace 2 get dup type/arraytype eq{0 get}if/DeviceCMYK eq
- {
- /ColorSpace
- [
- /DeviceN
- ColorSpace 1 get
- /DeviceGray
- [
- ColorSpace 3 get/exec cvx
- 4 AGMCORE_plate_ndx sub -1/roll cvx
- 4 1/roll cvx
- 3[/pop cvx]cvx/repeat cvx
- 1/exch cvx/sub cvx
- ]cvx
- ]def
- }{
- AGMCORE_report_unsupported_color_space
- AGMCORE_black_plate not
- {
- currentdict 0 false AGMCORE_separateShading
- /ColorSpace[/DeviceGray]def
- }if
- }ifelse
- }{
- currentdict
- false -1 ColorSpace 1 get
- {
- AGMCORE_IsCurrentColor
- {
- 1 add
- exch pop true exch exit
- }if
- 1 add
- }forall
- exch
- dup not currentoverprint and
- {/AGMCORE_ignoreshade true def}if
- AGMCORE_separateShading
- }ifelse
- currentdict
- end exch
- }if
- dup 0 get dup/DeviceCMYK eq exch dup/Separation eq exch/DeviceN eq or or not
- {
- exch begin
- ColorSpace dup type/arraytype eq
- {0 get}if
- /DeviceGray ne
- {
- AGMCORE_report_unsupported_color_space
- AGMCORE_black_plate not
- {
- ColorSpace 0 get/CIEBasedA eq
- {
- /ColorSpace[/Separation/_ciebaseda_/DeviceGray{}]def
- }if
- ColorSpace 0 get dup/CIEBasedABC eq exch dup/CIEBasedDEF eq exch/DeviceRGB eq or or
- {
- /ColorSpace[/DeviceN[/_red_/_green_/_blue_]/DeviceRGB{}]def
- }if
- ColorSpace 0 get/CIEBasedDEFG eq
- {
- /ColorSpace[/DeviceN[/_cyan_/_magenta_/_yellow_/_black_]/DeviceCMYK{}]def
- }if
- currentdict 0 false AGMCORE_separateShading
- }if
- }if
- currentdict
- end exch
- }if
- pop
- dup/AGMCORE_ignoreshade known
- {
- begin
- /ColorSpace[/Separation(None)/DeviceGray{}]def
- currentdict end
- }if
- }def
- /shfill
- {
- AGMCORE_separateShadingDict
- dup/AGMCORE_ignoreshade known
- {pop}
- {AGMCORE_&sysshfill}ifelse
- }def
- /makepattern
- {
- exch
- dup/PatternType get 2 eq
- {
- clonedict
- begin
- /Shading Shading AGMCORE_separateShadingDict def
- Shading/AGMCORE_ignoreshade known
- currentdict end exch
- {pop<</PatternType 1/PaintProc{pop}/BBox[0 0 1 1]/XStep 1/YStep 1/PaintType 1/TilingType 3>>}if
- exch AGMCORE_&sysmakepattern
- }{
- exch AGMCORE_&usrmakepattern
- }ifelse
- }def
- }if
- }if
- AGMCORE_in_rip_sep{
- /setcustomcolor
- {
- exch aload pop
- dup 7 1 roll inRip_spot_has_ink not {
- 4{4 index mul 4 1 roll}
- repeat
- /DeviceCMYK setcolorspace
- 6 -2 roll pop pop
- }{
- //Adobe_AGM_Core begin
- /AGMCORE_k xdf/AGMCORE_y xdf/AGMCORE_m xdf/AGMCORE_c xdf
- end
- [/Separation 4 -1 roll/DeviceCMYK
- {dup AGMCORE_c mul exch dup AGMCORE_m mul exch dup AGMCORE_y mul exch AGMCORE_k mul}
- ]
- setcolorspace
- }ifelse
- setcolor
- }ndf
- /setseparationgray
- {
- [/Separation(All)/DeviceGray{}]setcolorspace_opt
- 1 exch sub setcolor
- }ndf
- }{
- /setseparationgray
- {
- AGMCORE_&setgray
- }ndf
- }ifelse
- /findcmykcustomcolor
- {
- 5 makereadonlyarray
- }ndf
- /setcustomcolor
- {
- exch aload pop pop
- 4{4 index mul 4 1 roll}repeat
- setcmykcolor pop
- }ndf
- /has_color
- /colorimage where{
- AGMCORE_producing_seps{
- pop true
- }{
- systemdict eq
- }ifelse
- }{
- false
- }ifelse
- def
- /map_index
- {
- 1 index mul exch getinterval{255 div}forall
- }bdf
- /map_indexed_devn
- {
- Lookup Names length 3 -1 roll cvi map_index
- }bdf
- /n_color_components
- {
- base_colorspace_type
- dup/DeviceGray eq{
- pop 1
- }{
- /DeviceCMYK eq{
- 4
- }{
- 3
- }ifelse
- }ifelse
- }bdf
- level2{
- /mo/moveto ldf
- /li/lineto ldf
- /cv/curveto ldf
- /knockout_unitsq
- {
- 1 setgray
- 0 0 1 1 rectfill
- }def
- level2/setcolorspace AGMCORE_key_known not and{
- /AGMCORE_&&&setcolorspace/setcolorspace ldf
- /AGMCORE_ReplaceMappedColor
- {
- dup type dup/arraytype eq exch/packedarraytype eq or
- {
- /AGMCORE_SpotAliasAry2 where{
- begin
- dup 0 get dup/Separation eq
- {
- pop
- dup length array copy
- dup dup 1 get
- current_spot_alias
- {
- dup map_alias
- {
- false set_spot_alias
- dup 1 exch setsepcolorspace
- true set_spot_alias
- begin
- /sep_colorspace_dict currentdict AGMCORE_gput
- pop pop pop
- [
- /Separation Name
- CSA map_csa
- MappedCSA
- /sep_colorspace_proc load
- ]
- dup Name
- end
- }if
- }if
- map_reserved_ink_name 1 xpt
- }{
- /DeviceN eq
- {
- dup length array copy
- dup dup 1 get[
- exch{
- current_spot_alias{
- dup map_alias{
- /Name get exch pop
- }if
- }if
- map_reserved_ink_name
- }forall
- ]1 xpt
- }if
- }ifelse
- end
- }if
- }if
- }def
- /setcolorspace
- {
- dup type dup/arraytype eq exch/packedarraytype eq or
- {
- dup 0 get/Indexed eq
- {
- AGMCORE_distilling
- {
- /PhotoshopDuotoneList where
- {
- pop false
- }{
- true
- }ifelse
- }{
- true
- }ifelse
- {
- aload pop 3 -1 roll
- AGMCORE_ReplaceMappedColor
- 3 1 roll 4 array astore
- }if
- }{
- AGMCORE_ReplaceMappedColor
- }ifelse
- }if
- DeviceN_PS2_inRip_seps{AGMCORE_&&&setcolorspace}if
- }def
- }if
- }{
- /adj
- {
- currentstrokeadjust{
- transform
- 0.25 sub round 0.25 add exch
- 0.25 sub round 0.25 add exch
- itransform
- }if
- }def
- /mo{
- adj moveto
- }def
- /li{
- adj lineto
- }def
- /cv{
- 6 2 roll adj
- 6 2 roll adj
- 6 2 roll adj curveto
- }def
- /knockout_unitsq
- {
- 1 setgray
- 8 8 1[8 0 0 8 0 0]{<ffffffffffffffff>}image
- }def
- /currentstrokeadjust{
- /currentstrokeadjust AGMCORE_gget
- }def
- /setstrokeadjust{
- /currentstrokeadjust exch AGMCORE_gput
- }def
- /setcolorspace
- {
- /currentcolorspace exch AGMCORE_gput
- }def
- /currentcolorspace
- {
- /currentcolorspace AGMCORE_gget
- }def
- /setcolor_devicecolor
- {
- base_colorspace_type
- dup/DeviceGray eq{
- pop setgray
- }{
- /DeviceCMYK eq{
- setcmykcolor
- }{
- setrgbcolor
- }ifelse
- }ifelse
- }def
- /setcolor
- {
- currentcolorspace 0 get
- dup/DeviceGray ne{
- dup/DeviceCMYK ne{
- dup/DeviceRGB ne{
- dup/Separation eq{
- pop
- currentcolorspace 3 gx
- currentcolorspace 2 get
- }{
- dup/Indexed eq{
- pop
- currentcolorspace 3 get dup type/stringtype eq{
- currentcolorspace 1 get n_color_components
- 3 -1 roll map_index
- }{
- exec
- }ifelse
- currentcolorspace 1 get
- }{
- /AGMCORE_cur_err/AGMCORE_invalid_color_space def
- AGMCORE_invalid_color_space
- }ifelse
- }ifelse
- }if
- }if
- }if
- setcolor_devicecolor
- }def
- }ifelse
- /sop/setoverprint ldf
- /lw/setlinewidth ldf
- /lc/setlinecap ldf
- /lj/setlinejoin ldf
- /ml/setmiterlimit ldf
- /dsh/setdash ldf
- /sadj/setstrokeadjust ldf
- /gry/setgray ldf
- /rgb/setrgbcolor ldf
- /cmyk[
- /currentcolorspace[/DeviceCMYK]/AGMCORE_gput cvx
- /setcmykcolor load dup type/operatortype ne{/exec cvx}if
- ]cvx bdf
- level3 AGMCORE_host_sep not and{
- /nzopmsc{
- 6 dict begin
- /kk exch def
- /yy exch def
- /mm exch def
- /cc exch def
- /sum 0 def
- cc 0 ne{/sum sum 2#1000 or def cc}if
- mm 0 ne{/sum sum 2#0100 or def mm}if
- yy 0 ne{/sum sum 2#0010 or def yy}if
- kk 0 ne{/sum sum 2#0001 or def kk}if
- AGMCORE_CMYKDeviceNColorspaces sum get setcolorspace
- sum 0 eq{0}if
- end
- setcolor
- }bdf
- }{
- /nzopmsc/cmyk ldf
- }ifelse
- /sep/setsepcolor ldf
- /devn/setdevicencolor ldf
- /idx/setindexedcolor ldf
- /colr/setcolor ldf
- /csacrd/set_csa_crd ldf
- /sepcs/setsepcolorspace ldf
- /devncs/setdevicencolorspace ldf
- /idxcs/setindexedcolorspace ldf
- /cp/closepath ldf
- /clp/clp_npth ldf
- /eclp/eoclp_npth ldf
- /f/fill ldf
- /ef/eofill ldf
- /@/stroke ldf
- /nclp/npth_clp ldf
- /gset/graphic_setup ldf
- /gcln/graphic_cleanup ldf
- /ct/concat ldf
- /cf/currentfile ldf
- /fl/filter ldf
- /rs/readstring ldf
- /AGMCORE_def_ht currenthalftone def
- /clonedict Adobe_AGM_Utils begin/clonedict load end def
- /clonearray Adobe_AGM_Utils begin/clonearray load end def
- currentdict{
- dup xcheck 1 index type dup/arraytype eq exch/packedarraytype eq or and{
- bind
- }if
- def
- }forall
- /getrampcolor
- {
- /indx exch def
- 0 1 NumComp 1 sub
- {
- dup
- Samples exch get
- dup type/stringtype eq{indx get}if
- exch
- Scaling exch get aload pop
- 3 1 roll
- mul add
- }for
- ColorSpaceFamily/Separation eq
- {sep}
- {
- ColorSpaceFamily/DeviceN eq
- {devn}{setcolor}ifelse
- }ifelse
- }bdf
- /sssetbackground{
- aload pop
- ColorSpaceFamily/Separation eq
- {sep}
- {
- ColorSpaceFamily/DeviceN eq
- {devn}{setcolor}ifelse
- }ifelse
- }bdf
- /RadialShade
- {
- 40 dict begin
- /ColorSpaceFamily xdf
- /background xdf
- /ext1 xdf
- /ext0 xdf
- /BBox xdf
- /r2 xdf
- /c2y xdf
- /c2x xdf
- /r1 xdf
- /c1y xdf
- /c1x xdf
- /rampdict xdf
- /setinkoverprint where{pop/setinkoverprint{pop}def}if
- gsave
- BBox length 0 gt
- {
- np
- BBox 0 get BBox 1 get moveto
- BBox 2 get BBox 0 get sub 0 rlineto
- 0 BBox 3 get BBox 1 get sub rlineto
- BBox 2 get BBox 0 get sub neg 0 rlineto
- closepath
- clip
- np
- }if
- c1x c2x eq
- {
- c1y c2y lt{/theta 90 def}{/theta 270 def}ifelse
- }{
- /slope c2y c1y sub c2x c1x sub div def
- /theta slope 1 atan def
- c2x c1x lt c2y c1y ge and{/theta theta 180 sub def}if
- c2x c1x lt c2y c1y lt and{/theta theta 180 add def}if
- }ifelse
- gsave
- clippath
- c1x c1y translate
- theta rotate
- -90 rotate
- {pathbbox}stopped
- {0 0 0 0}if
- /yMax xdf
- /xMax xdf
- /yMin xdf
- /xMin xdf
- grestore
- xMax xMin eq yMax yMin eq or
- {
- grestore
- end
- }{
- /max{2 copy gt{pop}{exch pop}ifelse}bdf
- /min{2 copy lt{pop}{exch pop}ifelse}bdf
- rampdict begin
- 40 dict begin
- background length 0 gt{background sssetbackground gsave clippath fill grestore}if
- gsave
- c1x c1y translate
- theta rotate
- -90 rotate
- /c2y c1x c2x sub dup mul c1y c2y sub dup mul add sqrt def
- /c1y 0 def
- /c1x 0 def
- /c2x 0 def
- ext0
- {
- 0 getrampcolor
- c2y r2 add r1 sub 0.0001 lt
- {
- c1x c1y r1 360 0 arcn
- pathbbox
- /aymax exch def
- /axmax exch def
- /aymin exch def
- /axmin exch def
- /bxMin xMin axmin min def
- /byMin yMin aymin min def
- /bxMax xMax axmax max def
- /byMax yMax aymax max def
- bxMin byMin moveto
- bxMax byMin lineto
- bxMax byMax lineto
- bxMin byMax lineto
- bxMin byMin lineto
- eofill
- }{
- c2y r1 add r2 le
- {
- c1x c1y r1 0 360 arc
- fill
- }
- {
- c2x c2y r2 0 360 arc fill
- r1 r2 eq
- {
- /p1x r1 neg def
- /p1y c1y def
- /p2x r1 def
- /p2y c1y def
- p1x p1y moveto p2x p2y lineto p2x yMin lineto p1x yMin lineto
- fill
- }{
- /AA r2 r1 sub c2y div def
- AA -1 eq
- {/theta 89.99 def}
- {/theta AA 1 AA dup mul sub sqrt div 1 atan def}
- ifelse
- /SS1 90 theta add dup sin exch cos div def
- /p1x r1 SS1 SS1 mul SS1 SS1 mul 1 add div sqrt mul neg def
- /p1y p1x SS1 div neg def
- /SS2 90 theta sub dup sin exch cos div def
- /p2x r1 SS2 SS2 mul SS2 SS2 mul 1 add div sqrt mul def
- /p2y p2x SS2 div neg def
- r1 r2 gt
- {
- /L1maxX p1x yMin p1y sub SS1 div add def
- /L2maxX p2x yMin p2y sub SS2 div add def
- }{
- /L1maxX 0 def
- /L2maxX 0 def
- }ifelse
- p1x p1y moveto p2x p2y lineto L2maxX L2maxX p2x sub SS2 mul p2y add lineto
- L1maxX L1maxX p1x sub SS1 mul p1y add lineto
- fill
- }ifelse
- }ifelse
- }ifelse
- }if
- c1x c2x sub dup mul
- c1y c2y sub dup mul
- add 0.5 exp
- 0 dtransform
- dup mul exch dup mul add 0.5 exp 72 div
- 0 72 matrix defaultmatrix dtransform dup mul exch dup mul add sqrt
- 72 0 matrix defaultmatrix dtransform dup mul exch dup mul add sqrt
- 1 index 1 index lt{exch}if pop
- /hires xdf
- hires mul
- /numpix xdf
- /numsteps NumSamples def
- /rampIndxInc 1 def
- /subsampling false def
- numpix 0 ne
- {
- NumSamples numpix div 0.5 gt
- {
- /numsteps numpix 2 div round cvi dup 1 le{pop 2}if def
- /rampIndxInc NumSamples 1 sub numsteps div def
- /subsampling true def
- }if
- }if
- /xInc c2x c1x sub numsteps div def
- /yInc c2y c1y sub numsteps div def
- /rInc r2 r1 sub numsteps div def
- /cx c1x def
- /cy c1y def
- /radius r1 def
- np
- xInc 0 eq yInc 0 eq rInc 0 eq and and
- {
- 0 getrampcolor
- cx cy radius 0 360 arc
- stroke
- NumSamples 1 sub getrampcolor
- cx cy radius 72 hires div add 0 360 arc
- 0 setlinewidth
- stroke
- }{
- 0
- numsteps
- {
- dup
- subsampling{round cvi}if
- getrampcolor
- cx cy radius 0 360 arc
- /cx cx xInc add def
- /cy cy yInc add def
- /radius radius rInc add def
- cx cy radius 360 0 arcn
- eofill
- rampIndxInc add
- }repeat
- pop
- }ifelse
- ext1
- {
- c2y r2 add r1 lt
- {
- c2x c2y r2 0 360 arc
- fill
- }{
- c2y r1 add r2 sub 0.0001 le
- {
- c2x c2y r2 360 0 arcn
- pathbbox
- /aymax exch def
- /axmax exch def
- /aymin exch def
- /axmin exch def
- /bxMin xMin axmin min def
- /byMin yMin aymin min def
- /bxMax xMax axmax max def
- /byMax yMax aymax max def
- bxMin byMin moveto
- bxMax byMin lineto
- bxMax byMax lineto
- bxMin byMax lineto
- bxMin byMin lineto
- eofill
- }{
- c2x c2y r2 0 360 arc fill
- r1 r2 eq
- {
- /p1x r2 neg def
- /p1y c2y def
- /p2x r2 def
- /p2y c2y def
- p1x p1y moveto p2x p2y lineto p2x yMax lineto p1x yMax lineto
- fill
- }{
- /AA r2 r1 sub c2y div def
- AA -1 eq
- {/theta 89.99 def}
- {/theta AA 1 AA dup mul sub sqrt div 1 atan def}
- ifelse
- /SS1 90 theta add dup sin exch cos div def
- /p1x r2 SS1 SS1 mul SS1 SS1 mul 1 add div sqrt mul neg def
- /p1y c2y p1x SS1 div sub def
- /SS2 90 theta sub dup sin exch cos div def
- /p2x r2 SS2 SS2 mul SS2 SS2 mul 1 add div sqrt mul def
- /p2y c2y p2x SS2 div sub def
- r1 r2 lt
- {
- /L1maxX p1x yMax p1y sub SS1 div add def
- /L2maxX p2x yMax p2y sub SS2 div add def
- }{
- /L1maxX 0 def
- /L2maxX 0 def
- }ifelse
- p1x p1y moveto p2x p2y lineto L2maxX L2maxX p2x sub SS2 mul p2y add lineto
- L1maxX L1maxX p1x sub SS1 mul p1y add lineto
- fill
- }ifelse
- }ifelse
- }ifelse
- }if
- grestore
- grestore
- end
- end
- end
- }ifelse
- }bdf
- /GenStrips
- {
- 40 dict begin
- /ColorSpaceFamily xdf
- /background xdf
- /ext1 xdf
- /ext0 xdf
- /BBox xdf
- /y2 xdf
- /x2 xdf
- /y1 xdf
- /x1 xdf
- /rampdict xdf
- /setinkoverprint where{pop/setinkoverprint{pop}def}if
- gsave
- BBox length 0 gt
- {
- np
- BBox 0 get BBox 1 get moveto
- BBox 2 get BBox 0 get sub 0 rlineto
- 0 BBox 3 get BBox 1 get sub rlineto
- BBox 2 get BBox 0 get sub neg 0 rlineto
- closepath
- clip
- np
- }if
- x1 x2 eq
- {
- y1 y2 lt{/theta 90 def}{/theta 270 def}ifelse
- }{
- /slope y2 y1 sub x2 x1 sub div def
- /theta slope 1 atan def
- x2 x1 lt y2 y1 ge and{/theta theta 180 sub def}if
- x2 x1 lt y2 y1 lt and{/theta theta 180 add def}if
- }
- ifelse
- gsave
- clippath
- x1 y1 translate
- theta rotate
- {pathbbox}stopped
- {0 0 0 0}if
- /yMax exch def
- /xMax exch def
- /yMin exch def
- /xMin exch def
- grestore
- xMax xMin eq yMax yMin eq or
- {
- grestore
- end
- }{
- rampdict begin
- 20 dict begin
- background length 0 gt{background sssetbackground gsave clippath fill grestore}if
- gsave
- x1 y1 translate
- theta rotate
- /xStart 0 def
- /xEnd x2 x1 sub dup mul y2 y1 sub dup mul add 0.5 exp def
- /ySpan yMax yMin sub def
- /numsteps NumSamples def
- /rampIndxInc 1 def
- /subsampling false def
- xStart 0 transform
- xEnd 0 transform
- 3 -1 roll
- sub dup mul
- 3 1 roll
- sub dup mul
- add 0.5 exp 72 div
- 0 72 matrix defaultmatrix dtransform dup mul exch dup mul add sqrt
- 72 0 matrix defaultmatrix dtransform dup mul exch dup mul add sqrt
- 1 index 1 index lt{exch}if pop
- mul
- /numpix xdf
- numpix 0 ne
- {
- NumSamples numpix div 0.5 gt
- {
- /numsteps numpix 2 div round cvi dup 1 le{pop 2}if def
- /rampIndxInc NumSamples 1 sub numsteps div def
- /subsampling true def
- }if
- }if
- ext0
- {
- 0 getrampcolor
- xMin xStart lt
- {
- xMin yMin xMin neg ySpan rectfill
- }if
- }if
- /xInc xEnd xStart sub numsteps div def
- /x xStart def
- 0
- numsteps
- {
- dup
- subsampling{round cvi}if
- getrampcolor
- x yMin xInc ySpan rectfill
- /x x xInc add def
- rampIndxInc add
- }repeat
- pop
- ext1{
- xMax xEnd gt
- {
- xEnd yMin xMax xEnd sub ySpan rectfill
- }if
- }if
- grestore
- grestore
- end
- end
- end
- }ifelse
- }bdf
-}def
-/pt
-{
- end
-}def
-/dt{
-}def
-/pgsv{
- //Adobe_AGM_Core/AGMCORE_save save put
-}def
-/pgrs{
- //Adobe_AGM_Core/AGMCORE_save get restore
-}def
-systemdict/findcolorrendering known{
- /findcolorrendering systemdict/findcolorrendering get def
-}if
-systemdict/setcolorrendering known{
- /setcolorrendering systemdict/setcolorrendering get def
-}if
-/test_cmyk_color_plate
-{
- gsave
- setcmykcolor currentgray 1 ne
- grestore
-}def
-/inRip_spot_has_ink
-{
- dup//Adobe_AGM_Core/AGMCORE_name xddf
- convert_spot_to_process not
-}def
-/map255_to_range
-{
- 1 index sub
- 3 -1 roll 255 div mul add
-}def
-/set_csa_crd
-{
- /sep_colorspace_dict null AGMCORE_gput
- begin
- CSA get_csa_by_name setcolorspace_opt
- set_crd
- end
-}
-def
-/map_csa
-{
- currentdict/MappedCSA known{MappedCSA null ne}{false}ifelse
- {pop}{get_csa_by_name/MappedCSA xdf}ifelse
-}def
-/setsepcolor
-{
- /sep_colorspace_dict AGMCORE_gget begin
- dup/sep_tint exch AGMCORE_gput
- TintProc
- end
-}def
-/setdevicencolor
-{
- /devicen_colorspace_dict AGMCORE_gget begin
- Names length copy
- Names length 1 sub -1 0
- {
- /devicen_tints AGMCORE_gget 3 1 roll xpt
- }for
- TintProc
- end
-}def
-/sep_colorspace_proc
-{
- /AGMCORE_tmp exch store
- /sep_colorspace_dict AGMCORE_gget begin
- currentdict/Components known{
- Components aload pop
- TintMethod/Lab eq{
- 2{AGMCORE_tmp mul NComponents 1 roll}repeat
- LMax sub AGMCORE_tmp mul LMax add NComponents 1 roll
- }{
- TintMethod/Subtractive eq{
- NComponents{
- AGMCORE_tmp mul NComponents 1 roll
- }repeat
- }{
- NComponents{
- 1 sub AGMCORE_tmp mul 1 add NComponents 1 roll
- }repeat
- }ifelse
- }ifelse
- }{
- ColorLookup AGMCORE_tmp ColorLookup length 1 sub mul round cvi get
- aload pop
- }ifelse
- end
-}def
-/sep_colorspace_gray_proc
-{
- /AGMCORE_tmp exch store
- /sep_colorspace_dict AGMCORE_gget begin
- GrayLookup AGMCORE_tmp GrayLookup length 1 sub mul round cvi get
- end
-}def
-/sep_proc_name
-{
- dup 0 get
- dup/DeviceRGB eq exch/DeviceCMYK eq or level2 not and has_color not and{
- pop[/DeviceGray]
- /sep_colorspace_gray_proc
- }{
- /sep_colorspace_proc
- }ifelse
-}def
-/setsepcolorspace
-{
- current_spot_alias{
- dup begin
- Name map_alias{
- exch pop
- }if
- end
- }if
- dup/sep_colorspace_dict exch AGMCORE_gput
- begin
- CSA map_csa
- /AGMCORE_sep_special Name dup()eq exch(All)eq or store
- AGMCORE_avoid_L2_sep_space{
- [/Indexed MappedCSA sep_proc_name 255 exch
- {255 div}/exec cvx 3 -1 roll[4 1 roll load/exec cvx]cvx
- ]setcolorspace_opt
- /TintProc{
- 255 mul round cvi setcolor
- }bdf
- }{
- MappedCSA 0 get/DeviceCMYK eq
- currentdict/Components known and
- AGMCORE_sep_special not and{
- /TintProc[
- Components aload pop Name findcmykcustomcolor
- /exch cvx/setcustomcolor cvx
- ]cvx bdf
- }{
- AGMCORE_host_sep Name(All)eq and{
- /TintProc{
- 1 exch sub setseparationgray
- }bdf
- }{
- AGMCORE_in_rip_sep MappedCSA 0 get/DeviceCMYK eq and
- AGMCORE_host_sep or
- Name()eq and{
- /TintProc[
- MappedCSA sep_proc_name exch 0 get/DeviceCMYK eq{
- cvx/setcmykcolor cvx
- }{
- cvx/setgray cvx
- }ifelse
- ]cvx bdf
- }{
- AGMCORE_producing_seps MappedCSA 0 get dup/DeviceCMYK eq exch/DeviceGray eq or and AGMCORE_sep_special not and{
- /TintProc[
- /dup cvx
- MappedCSA sep_proc_name cvx exch
- 0 get/DeviceGray eq{
- 1/exch cvx/sub cvx 0 0 0 4 -1/roll cvx
- }if
- /Name cvx/findcmykcustomcolor cvx/exch cvx
- AGMCORE_host_sep{
- AGMCORE_is_cmyk_sep
- /Name cvx
- /AGMCORE_IsSeparationAProcessColor load/exec cvx
- /not cvx/and cvx
- }{
- Name inRip_spot_has_ink not
- }ifelse
- [
- /pop cvx 1
- ]cvx/if cvx
- /setcustomcolor cvx
- ]cvx bdf
- }{
- /TintProc{setcolor}bdf
- [/Separation Name MappedCSA sep_proc_name load]setcolorspace_opt
- }ifelse
- }ifelse
- }ifelse
- }ifelse
- }ifelse
- set_crd
- setsepcolor
- end
-}def
-/additive_blend
-{
- 3 dict begin
- /numarrays xdf
- /numcolors xdf
- 0 1 numcolors 1 sub
- {
- /c1 xdf
- 1
- 0 1 numarrays 1 sub
- {
- 1 exch add/index cvx
- c1/get cvx/mul cvx
- }for
- numarrays 1 add 1/roll cvx
- }for
- numarrays[/pop cvx]cvx/repeat cvx
- end
-}def
-/subtractive_blend
-{
- 3 dict begin
- /numarrays xdf
- /numcolors xdf
- 0 1 numcolors 1 sub
- {
- /c1 xdf
- 1 1
- 0 1 numarrays 1 sub
- {
- 1 3 3 -1 roll add/index cvx
- c1/get cvx/sub cvx/mul cvx
- }for
- /sub cvx
- numarrays 1 add 1/roll cvx
- }for
- numarrays[/pop cvx]cvx/repeat cvx
- end
-}def
-/exec_tint_transform
-{
- /TintProc[
- /TintTransform cvx/setcolor cvx
- ]cvx bdf
- MappedCSA setcolorspace_opt
-}bdf
-/devn_makecustomcolor
-{
- 2 dict begin
- /names_index xdf
- /Names xdf
- 1 1 1 1 Names names_index get findcmykcustomcolor
- /devicen_tints AGMCORE_gget names_index get setcustomcolor
- Names length{pop}repeat
- end
-}bdf
-/setdevicencolorspace
-{
- dup/AliasedColorants known{false}{true}ifelse
- current_spot_alias and{
- 7 dict begin
- /names_index 0 def
- dup/names_len exch/Names get length def
- /new_names names_len array def
- /new_LookupTables names_len array def
- /alias_cnt 0 def
- dup/Names get
- {
- dup map_alias{
- exch pop
- dup/ColorLookup known{
- dup begin
- new_LookupTables names_index ColorLookup put
- end
- }{
- dup/Components known{
- dup begin
- new_LookupTables names_index Components put
- end
- }{
- dup begin
- new_LookupTables names_index[null null null null]put
- end
- }ifelse
- }ifelse
- new_names names_index 3 -1 roll/Name get put
- /alias_cnt alias_cnt 1 add def
- }{
- /name xdf
- new_names names_index name put
- dup/LookupTables known{
- dup begin
- new_LookupTables names_index LookupTables names_index get put
- end
- }{
- dup begin
- new_LookupTables names_index[null null null null]put
- end
- }ifelse
- }ifelse
- /names_index names_index 1 add def
- }forall
- alias_cnt 0 gt{
- /AliasedColorants true def
- /lut_entry_len new_LookupTables 0 get dup length 256 ge{0 get length}{length}ifelse def
- 0 1 names_len 1 sub{
- /names_index xdf
- new_LookupTables names_index get dup length 256 ge{0 get length}{length}ifelse lut_entry_len ne{
- /AliasedColorants false def
- exit
- }{
- new_LookupTables names_index get 0 get null eq{
- dup/Names get names_index get/name xdf
- name(Cyan)eq name(Magenta)eq name(Yellow)eq name(Black)eq
- or or or not{
- /AliasedColorants false def
- exit
- }if
- }if
- }ifelse
- }for
- lut_entry_len 1 eq{
- /AliasedColorants false def
- }if
- AliasedColorants{
- dup begin
- /Names new_names def
- /LookupTables new_LookupTables def
- /AliasedColorants true def
- /NComponents lut_entry_len def
- /TintMethod NComponents 4 eq{/Subtractive}{/Additive}ifelse def
- /MappedCSA TintMethod/Additive eq{/DeviceRGB}{/DeviceCMYK}ifelse def
- currentdict/TTTablesIdx known not{
- /TTTablesIdx -1 def
- }if
- end
- }if
- }if
- end
- }if
- dup/devicen_colorspace_dict exch AGMCORE_gput
- begin
- currentdict/AliasedColorants known{
- AliasedColorants
- }{
- false
- }ifelse
- dup not{
- CSA map_csa
- }if
- /TintTransform load type/nulltype eq or{
- /TintTransform[
- 0 1 Names length 1 sub
- {
- /TTTablesIdx TTTablesIdx 1 add def
- dup LookupTables exch get dup 0 get null eq
- {
- 1 index
- Names exch get
- dup(Cyan)eq
- {
- pop exch
- LookupTables length exch sub
- /index cvx
- 0 0 0
- }
- {
- dup(Magenta)eq
- {
- pop exch
- LookupTables length exch sub
- /index cvx
- 0/exch cvx 0 0
- }{
- (Yellow)eq
- {
- exch
- LookupTables length exch sub
- /index cvx
- 0 0 3 -1/roll cvx 0
- }{
- exch
- LookupTables length exch sub
- /index cvx
- 0 0 0 4 -1/roll cvx
- }ifelse
- }ifelse
- }ifelse
- 5 -1/roll cvx/astore cvx
- }{
- dup length 1 sub
- LookupTables length 4 -1 roll sub 1 add
- /index cvx/mul cvx/round cvx/cvi cvx/get cvx
- }ifelse
- Names length TTTablesIdx add 1 add 1/roll cvx
- }for
- Names length[/pop cvx]cvx/repeat cvx
- NComponents Names length
- TintMethod/Subtractive eq
- {
- subtractive_blend
- }{
- additive_blend
- }ifelse
- ]cvx bdf
- }if
- AGMCORE_host_sep{
- Names convert_to_process{
- exec_tint_transform
- }
- {
- currentdict/AliasedColorants known{
- AliasedColorants not
- }{
- false
- }ifelse
- 5 dict begin
- /AvoidAliasedColorants xdf
- /painted? false def
- /names_index 0 def
- /names_len Names length def
- AvoidAliasedColorants{
- /currentspotalias current_spot_alias def
- false set_spot_alias
- }if
- Names{
- AGMCORE_is_cmyk_sep{
- dup(Cyan)eq AGMCORE_cyan_plate and exch
- dup(Magenta)eq AGMCORE_magenta_plate and exch
- dup(Yellow)eq AGMCORE_yellow_plate and exch
- (Black)eq AGMCORE_black_plate and or or or{
- /devicen_colorspace_dict AGMCORE_gget/TintProc[
- Names names_index/devn_makecustomcolor cvx
- ]cvx ddf
- /painted? true def
- }if
- painted?{exit}if
- }{
- 0 0 0 0 5 -1 roll findcmykcustomcolor 1 setcustomcolor currentgray 0 eq{
- /devicen_colorspace_dict AGMCORE_gget/TintProc[
- Names names_index/devn_makecustomcolor cvx
- ]cvx ddf
- /painted? true def
- exit
- }if
- }ifelse
- /names_index names_index 1 add def
- }forall
- AvoidAliasedColorants{
- currentspotalias set_spot_alias
- }if
- painted?{
- /devicen_colorspace_dict AGMCORE_gget/names_index names_index put
- }{
- /devicen_colorspace_dict AGMCORE_gget/TintProc[
- names_len[/pop cvx]cvx/repeat cvx 1/setseparationgray cvx
- 0 0 0 0/setcmykcolor cvx
- ]cvx ddf
- }ifelse
- end
- }ifelse
- }
- {
- AGMCORE_in_rip_sep{
- Names convert_to_process not
- }{
- level3
- }ifelse
- {
- [/DeviceN Names MappedCSA/TintTransform load]setcolorspace_opt
- /TintProc level3 not AGMCORE_in_rip_sep and{
- [
- Names/length cvx[/pop cvx]cvx/repeat cvx
- ]cvx bdf
- }{
- {setcolor}bdf
- }ifelse
- }{
- exec_tint_transform
- }ifelse
- }ifelse
- set_crd
- /AliasedColorants false def
- end
-}def
-/setindexedcolorspace
-{
- dup/indexed_colorspace_dict exch AGMCORE_gput
- begin
- currentdict/CSDBase known{
- CSDBase/CSD get_res begin
- currentdict/Names known{
- currentdict devncs
- }{
- 1 currentdict sepcs
- }ifelse
- AGMCORE_host_sep{
- 4 dict begin
- /compCnt/Names where{pop Names length}{1}ifelse def
- /NewLookup HiVal 1 add string def
- 0 1 HiVal{
- /tableIndex xdf
- Lookup dup type/stringtype eq{
- compCnt tableIndex map_index
- }{
- exec
- }ifelse
- /Names where{
- pop setdevicencolor
- }{
- setsepcolor
- }ifelse
- currentgray
- tableIndex exch
- 255 mul cvi
- NewLookup 3 1 roll put
- }for
- [/Indexed currentcolorspace HiVal NewLookup]setcolorspace_opt
- end
- }{
- level3
- {
- currentdict/Names known{
- [/Indexed[/DeviceN Names MappedCSA/TintTransform load]HiVal Lookup]setcolorspace_opt
- }{
- [/Indexed[/Separation Name MappedCSA sep_proc_name load]HiVal Lookup]setcolorspace_opt
- }ifelse
- }{
- [/Indexed MappedCSA HiVal
- [
- currentdict/Names known{
- Lookup dup type/stringtype eq
- {/exch cvx CSDBase/CSD get_res/Names get length dup/mul cvx exch/getinterval cvx{255 div}/forall cvx}
- {/exec cvx}ifelse
- /TintTransform load/exec cvx
- }{
- Lookup dup type/stringtype eq
- {/exch cvx/get cvx 255/div cvx}
- {/exec cvx}ifelse
- CSDBase/CSD get_res/MappedCSA get sep_proc_name exch pop/load cvx/exec cvx
- }ifelse
- ]cvx
- ]setcolorspace_opt
- }ifelse
- }ifelse
- end
- set_crd
- }
- {
- CSA map_csa
- AGMCORE_host_sep level2 not and{
- 0 0 0 0 setcmykcolor
- }{
- [/Indexed MappedCSA
- level2 not has_color not and{
- dup 0 get dup/DeviceRGB eq exch/DeviceCMYK eq or{
- pop[/DeviceGray]
- }if
- HiVal GrayLookup
- }{
- HiVal
- currentdict/RangeArray known{
- {
- /indexed_colorspace_dict AGMCORE_gget begin
- Lookup exch
- dup HiVal gt{
- pop HiVal
- }if
- NComponents mul NComponents getinterval{}forall
- NComponents 1 sub -1 0{
- RangeArray exch 2 mul 2 getinterval aload pop map255_to_range
- NComponents 1 roll
- }for
- end
- }bind
- }{
- Lookup
- }ifelse
- }ifelse
- ]setcolorspace_opt
- set_crd
- }ifelse
- }ifelse
- end
-}def
-/setindexedcolor
-{
- AGMCORE_host_sep{
- /indexed_colorspace_dict AGMCORE_gget
- begin
- currentdict/CSDBase known{
- CSDBase/CSD get_res begin
- currentdict/Names known{
- map_indexed_devn
- devn
- }
- {
- Lookup 1 3 -1 roll map_index
- sep
- }ifelse
- end
- }{
- Lookup MappedCSA/DeviceCMYK eq{4}{1}ifelse 3 -1 roll
- map_index
- MappedCSA/DeviceCMYK eq{setcmykcolor}{setgray}ifelse
- }ifelse
- end
- }{
- level3 not AGMCORE_in_rip_sep and/indexed_colorspace_dict AGMCORE_gget/CSDBase known and{
- /indexed_colorspace_dict AGMCORE_gget/CSDBase get/CSD get_res begin
- map_indexed_devn
- devn
- end
- }
- {
- setcolor
- }ifelse
- }ifelse
-}def
-/ignoreimagedata
-{
- currentoverprint not{
- gsave
- dup clonedict begin
- 1 setgray
- /Decode[0 1]def
- /DataSource<FF>def
- /MultipleDataSources false def
- /BitsPerComponent 8 def
- currentdict end
- systemdict/image gx
- grestore
- }if
- consumeimagedata
-}def
-/add_res
-{
- dup/CSD eq{
- pop
- //Adobe_AGM_Core begin
- /AGMCORE_CSD_cache load 3 1 roll put
- end
- }{
- defineresource pop
- }ifelse
-}def
-/del_res
-{
- {
- aload pop exch
- dup/CSD eq{
- pop
- {//Adobe_AGM_Core/AGMCORE_CSD_cache get exch undef}forall
- }{
- exch
- {1 index undefineresource}forall
- pop
- }ifelse
- }forall
-}def
-/get_res
-{
- dup/CSD eq{
- pop
- dup type dup/nametype eq exch/stringtype eq or{
- AGMCORE_CSD_cache exch get
- }if
- }{
- findresource
- }ifelse
-}def
-/get_csa_by_name
-{
- dup type dup/nametype eq exch/stringtype eq or{
- /CSA get_res
- }if
-}def
-/paintproc_buf_init
-{
- /count get 0 0 put
-}def
-/paintproc_buf_next
-{
- dup/count get dup 0 get
- dup 3 1 roll
- 1 add 0 xpt
- get
-}def
-/cachepaintproc_compress
-{
- 5 dict begin
- currentfile exch 0 exch/SubFileDecode filter/ReadFilter exch def
- /ppdict 20 dict def
- /string_size 16000 def
- /readbuffer string_size string def
- currentglobal true setglobal
- ppdict 1 array dup 0 1 put/count xpt
- setglobal
- /LZWFilter
- {
- exch
- dup length 0 eq{
- pop
- }{
- ppdict dup length 1 sub 3 -1 roll put
- }ifelse
- {string_size}{0}ifelse string
- }/LZWEncode filter def
- {
- ReadFilter readbuffer readstring
- exch LZWFilter exch writestring
- not{exit}if
- }loop
- LZWFilter closefile
- ppdict
- end
-}def
-/cachepaintproc
-{
- 2 dict begin
- currentfile exch 0 exch/SubFileDecode filter/ReadFilter exch def
- /ppdict 20 dict def
- currentglobal true setglobal
- ppdict 1 array dup 0 1 put/count xpt
- setglobal
- {
- ReadFilter 16000 string readstring exch
- ppdict dup length 1 sub 3 -1 roll put
- not{exit}if
- }loop
- ppdict dup dup length 1 sub()put
- end
-}def
-/make_pattern
-{
- exch clonedict exch
- dup matrix currentmatrix matrix concatmatrix 0 0 3 2 roll itransform
- exch 3 index/XStep get 1 index exch 2 copy div cvi mul sub sub
- exch 3 index/YStep get 1 index exch 2 copy div cvi mul sub sub
- matrix translate exch matrix concatmatrix
- 1 index begin
- BBox 0 get XStep div cvi XStep mul/xshift exch neg def
- BBox 1 get YStep div cvi YStep mul/yshift exch neg def
- BBox 0 get xshift add
- BBox 1 get yshift add
- BBox 2 get xshift add
- BBox 3 get yshift add
- 4 array astore
- /BBox exch def
- [xshift yshift/translate load null/exec load]dup
- 3/PaintProc load put cvx/PaintProc exch def
- end
- gsave 0 setgray
- makepattern
- grestore
-}def
-/set_pattern
-{
- dup/PatternType get 1 eq{
- dup/PaintType get 1 eq{
- currentoverprint sop[/DeviceGray]setcolorspace 0 setgray
- }if
- }if
- setpattern
-}def
-/setcolorspace_opt
-{
- dup currentcolorspace eq{pop}{setcolorspace}ifelse
-}def
-/updatecolorrendering
-{
- currentcolorrendering/RenderingIntent known{
- currentcolorrendering/RenderingIntent get
- }
- {
- Intent/AbsoluteColorimetric eq
- {
- /absolute_colorimetric_crd AGMCORE_gget dup null eq
- }
- {
- Intent/RelativeColorimetric eq
- {
- /relative_colorimetric_crd AGMCORE_gget dup null eq
- }
- {
- Intent/Saturation eq
- {
- /saturation_crd AGMCORE_gget dup null eq
- }
- {
- /perceptual_crd AGMCORE_gget dup null eq
- }ifelse
- }ifelse
- }ifelse
- {
- pop null
- }
- {
- /RenderingIntent known{null}{Intent}ifelse
- }ifelse
- }ifelse
- Intent ne{
- Intent/ColorRendering{findresource}stopped
- {
- pop pop systemdict/findcolorrendering known
- {
- Intent findcolorrendering
- {
- /ColorRendering findresource true exch
- }
- {
- /ColorRendering findresource
- product(Xerox Phaser 5400)ne
- exch
- }ifelse
- dup Intent/AbsoluteColorimetric eq
- {
- /absolute_colorimetric_crd exch AGMCORE_gput
- }
- {
- Intent/RelativeColorimetric eq
- {
- /relative_colorimetric_crd exch AGMCORE_gput
- }
- {
- Intent/Saturation eq
- {
- /saturation_crd exch AGMCORE_gput
- }
- {
- Intent/Perceptual eq
- {
- /perceptual_crd exch AGMCORE_gput
- }
- {
- pop
- }ifelse
- }ifelse
- }ifelse
- }ifelse
- 1 index{exch}{pop}ifelse
- }
- {false}ifelse
- }
- {true}ifelse
- {
- dup begin
- currentdict/TransformPQR known{
- currentdict/TransformPQR get aload pop
- 3{{}eq 3 1 roll}repeat or or
- }
- {true}ifelse
- currentdict/MatrixPQR known{
- currentdict/MatrixPQR get aload pop
- 1.0 eq 9 1 roll 0.0 eq 9 1 roll 0.0 eq 9 1 roll
- 0.0 eq 9 1 roll 1.0 eq 9 1 roll 0.0 eq 9 1 roll
- 0.0 eq 9 1 roll 0.0 eq 9 1 roll 1.0 eq
- and and and and and and and and
- }
- {true}ifelse
- end
- or
- {
- clonedict begin
- /TransformPQR[
- {4 -1 roll 3 get dup 3 1 roll sub 5 -1 roll 3 get 3 -1 roll sub div
- 3 -1 roll 3 get 3 -1 roll 3 get dup 4 1 roll sub mul add}bind
- {4 -1 roll 4 get dup 3 1 roll sub 5 -1 roll 4 get 3 -1 roll sub div
- 3 -1 roll 4 get 3 -1 roll 4 get dup 4 1 roll sub mul add}bind
- {4 -1 roll 5 get dup 3 1 roll sub 5 -1 roll 5 get 3 -1 roll sub div
- 3 -1 roll 5 get 3 -1 roll 5 get dup 4 1 roll sub mul add}bind
- ]def
- /MatrixPQR[0.8951 -0.7502 0.0389 0.2664 1.7135 -0.0685 -0.1614 0.0367 1.0296]def
- /RangePQR[-0.3227950745 2.3229645538 -1.5003771057 3.5003465881 -0.1369979095 2.136967392]def
- currentdict end
- }if
- setcolorrendering_opt
- }if
- }if
-}def
-/set_crd
-{
- AGMCORE_host_sep not level2 and{
- currentdict/ColorRendering known{
- ColorRendering/ColorRendering{findresource}stopped not{setcolorrendering_opt}if
- }{
- currentdict/Intent known{
- updatecolorrendering
- }if
- }ifelse
- currentcolorspace dup type/arraytype eq
- {0 get}if
- /DeviceRGB eq
- {
- currentdict/UCR known
- {/UCR}{/AGMCORE_currentucr}ifelse
- load setundercolorremoval
- currentdict/BG known
- {/BG}{/AGMCORE_currentbg}ifelse
- load setblackgeneration
- }if
- }if
-}def
-/set_ucrbg
-{
- dup null eq {pop /AGMCORE_currentbg load}{/Procedure get_res}ifelse
- dup currentblackgeneration eq {pop}{setblackgeneration}ifelse
- dup null eq {pop /AGMCORE_currentucr load}{/Procedure get_res}ifelse
- dup currentundercolorremoval eq {pop}{setundercolorremoval}ifelse
-}def
-/setcolorrendering_opt
-{
- dup currentcolorrendering eq{
- pop
- }{
- product(HP Color LaserJet 2605)anchorsearch{
- pop pop pop
- }{
- pop
- clonedict
- begin
- /Intent Intent def
- currentdict
- end
- setcolorrendering
- }ifelse
- }ifelse
-}def
-/cpaint_gcomp
-{
- convert_to_process//Adobe_AGM_Core/AGMCORE_ConvertToProcess xddf
- //Adobe_AGM_Core/AGMCORE_ConvertToProcess get not
- {
- (%end_cpaint_gcomp)flushinput
- }if
-}def
-/cpaint_gsep
-{
- //Adobe_AGM_Core/AGMCORE_ConvertToProcess get
- {
- (%end_cpaint_gsep)flushinput
- }if
-}def
-/cpaint_gend
-{np}def
-/T1_path
-{
- currentfile token pop currentfile token pop mo
- {
- currentfile token pop dup type/stringtype eq
- {pop exit}if
- 0 exch rlineto
- currentfile token pop dup type/stringtype eq
- {pop exit}if
- 0 rlineto
- }loop
-}def
-/T1_gsave
- level3
- {/clipsave}
- {/gsave}ifelse
- load def
-/T1_grestore
- level3
- {/cliprestore}
- {/grestore}ifelse
- load def
-/set_spot_alias_ary
-{
- dup inherit_aliases
- //Adobe_AGM_Core/AGMCORE_SpotAliasAry xddf
-}def
-/set_spot_normalization_ary
-{
- dup inherit_aliases
- dup length
- /AGMCORE_SpotAliasAry where{pop AGMCORE_SpotAliasAry length add}if
- array
- //Adobe_AGM_Core/AGMCORE_SpotAliasAry2 xddf
- /AGMCORE_SpotAliasAry where{
- pop
- AGMCORE_SpotAliasAry2 0 AGMCORE_SpotAliasAry putinterval
- AGMCORE_SpotAliasAry length
- }{0}ifelse
- AGMCORE_SpotAliasAry2 3 1 roll exch putinterval
- true set_spot_alias
-}def
-/inherit_aliases
-{
- {dup/Name get map_alias{/CSD put}{pop}ifelse}forall
-}def
-/set_spot_alias
-{
- /AGMCORE_SpotAliasAry2 where{
- /AGMCORE_current_spot_alias 3 -1 roll put
- }{
- pop
- }ifelse
-}def
-/current_spot_alias
-{
- /AGMCORE_SpotAliasAry2 where{
- /AGMCORE_current_spot_alias get
- }{
- false
- }ifelse
-}def
-/map_alias
-{
- /AGMCORE_SpotAliasAry2 where{
- begin
- /AGMCORE_name xdf
- false
- AGMCORE_SpotAliasAry2{
- dup/Name get AGMCORE_name eq{
- /CSD get/CSD get_res
- exch pop true
- exit
- }{
- pop
- }ifelse
- }forall
- end
- }{
- pop false
- }ifelse
-}bdf
-/spot_alias
-{
- true set_spot_alias
- /AGMCORE_&setcustomcolor AGMCORE_key_known not{
- //Adobe_AGM_Core/AGMCORE_&setcustomcolor/setcustomcolor load put
- }if
- /customcolor_tint 1 AGMCORE_gput
- //Adobe_AGM_Core begin
- /setcustomcolor
- {
- //Adobe_AGM_Core begin
- dup/customcolor_tint exch AGMCORE_gput
- 1 index aload pop pop 1 eq exch 1 eq and exch 1 eq and exch 1 eq and not
- current_spot_alias and{1 index 4 get map_alias}{false}ifelse
- {
- false set_spot_alias
- /sep_colorspace_dict AGMCORE_gget null ne
- {/sep_colorspace_dict AGMCORE_gget/ForeignContent known not}{false}ifelse
- 3 1 roll 2 index{
- exch pop/sep_tint AGMCORE_gget exch
- }if
- mark 3 1 roll
- setsepcolorspace
- counttomark 0 ne{
- setsepcolor
- }if
- pop
- not{/sep_tint 1.0 AGMCORE_gput/sep_colorspace_dict AGMCORE_gget/ForeignContent true put}if
- pop
- true set_spot_alias
- }{
- AGMCORE_&setcustomcolor
- }ifelse
- end
- }bdf
- end
-}def
-/begin_feature
-{
- Adobe_AGM_Core/AGMCORE_feature_dictCount countdictstack put
- count Adobe_AGM_Core/AGMCORE_feature_opCount 3 -1 roll put
- {Adobe_AGM_Core/AGMCORE_feature_ctm matrix currentmatrix put}if
-}def
-/end_feature
-{
- 2 dict begin
- /spd/setpagedevice load def
- /setpagedevice{get_gstate spd set_gstate}def
- stopped{$error/newerror false put}if
- end
- count Adobe_AGM_Core/AGMCORE_feature_opCount get sub dup 0 gt{{pop}repeat}{pop}ifelse
- countdictstack Adobe_AGM_Core/AGMCORE_feature_dictCount get sub dup 0 gt{{end}repeat}{pop}ifelse
- {Adobe_AGM_Core/AGMCORE_feature_ctm get setmatrix}if
-}def
-/set_negative
-{
- //Adobe_AGM_Core begin
- /AGMCORE_inverting exch def
- level2{
- currentpagedevice/NegativePrint known AGMCORE_distilling not and{
- currentpagedevice/NegativePrint get//Adobe_AGM_Core/AGMCORE_inverting get ne{
- true begin_feature true{
- <</NegativePrint//Adobe_AGM_Core/AGMCORE_inverting get>>setpagedevice
- }end_feature
- }if
- /AGMCORE_inverting false def
- }if
- }if
- AGMCORE_inverting{
- [{1 exch sub}/exec load dup currenttransfer exch]cvx bind settransfer
- AGMCORE_distilling{
- erasepage
- }{
- gsave np clippath 1/setseparationgray where{pop setseparationgray}{setgray}ifelse
- /AGMIRS_&fill where{pop AGMIRS_&fill}{fill}ifelse grestore
- }ifelse
- }if
- end
-}def
-/lw_save_restore_override{
- /md where{
- pop
- md begin
- initializepage
- /initializepage{}def
- /pmSVsetup{}def
- /endp{}def
- /pse{}def
- /psb{}def
- /orig_showpage where
- {pop}
- {/orig_showpage/showpage load def}
- ifelse
- /showpage{orig_showpage gR}def
- end
- }if
-}def
-/pscript_showpage_override{
- /NTPSOct95 where
- {
- begin
- showpage
- save
- /showpage/restore load def
- /restore{exch pop}def
- end
- }if
-}def
-/driver_media_override
-{
- /md where{
- pop
- md/initializepage known{
- md/initializepage{}put
- }if
- md/rC known{
- md/rC{4{pop}repeat}put
- }if
- }if
- /mysetup where{
- /mysetup[1 0 0 1 0 0]put
- }if
- Adobe_AGM_Core/AGMCORE_Default_CTM matrix currentmatrix put
- level2
- {Adobe_AGM_Core/AGMCORE_Default_PageSize currentpagedevice/PageSize get put}if
-}def
-/capture_mysetup
-{
- /Pscript_Win_Data where{
- pop
- Pscript_Win_Data/mysetup known{
- Adobe_AGM_Core/save_mysetup Pscript_Win_Data/mysetup get put
- }if
- }if
-}def
-/restore_mysetup
-{
- /Pscript_Win_Data where{
- pop
- Pscript_Win_Data/mysetup known{
- Adobe_AGM_Core/save_mysetup known{
- Pscript_Win_Data/mysetup Adobe_AGM_Core/save_mysetup get put
- Adobe_AGM_Core/save_mysetup undef
- }if
- }if
- }if
-}def
-/driver_check_media_override
-{
- /PrepsDict where
- {pop}
- {
- Adobe_AGM_Core/AGMCORE_Default_CTM get matrix currentmatrix ne
- Adobe_AGM_Core/AGMCORE_Default_PageSize get type/arraytype eq
- {
- Adobe_AGM_Core/AGMCORE_Default_PageSize get 0 get currentpagedevice/PageSize get 0 get eq and
- Adobe_AGM_Core/AGMCORE_Default_PageSize get 1 get currentpagedevice/PageSize get 1 get eq and
- }if
- {
- Adobe_AGM_Core/AGMCORE_Default_CTM get setmatrix
- }if
- }ifelse
-}def
-AGMCORE_err_strings begin
- /AGMCORE_bad_environ(Environment not satisfactory for this job. Ensure that the PPD is correct or that the PostScript level requested is supported by this printer. )def
- /AGMCORE_color_space_onhost_seps(This job contains colors that will not separate with on-host methods. )def
- /AGMCORE_invalid_color_space(This job contains an invalid color space. )def
-end
-/set_def_ht
-{AGMCORE_def_ht sethalftone}def
-/set_def_flat
-{AGMCORE_Default_flatness setflat}def
-end
-systemdict/setpacking known
-{setpacking}if
-%%EndResource
-%%BeginResource: procset Adobe_CoolType_Core 2.31 0
-%%Copyright: Copyright 1997-2006 Adobe Systems Incorporated. All Rights Reserved.
-%%Version: 2.31 0
-10 dict begin
-/Adobe_CoolType_Passthru currentdict def
-/Adobe_CoolType_Core_Defined userdict/Adobe_CoolType_Core known def
-Adobe_CoolType_Core_Defined
- {/Adobe_CoolType_Core userdict/Adobe_CoolType_Core get def}
-if
-userdict/Adobe_CoolType_Core 70 dict dup begin put
-/Adobe_CoolType_Version 2.31 def
-/Level2?
- systemdict/languagelevel known dup
- {pop systemdict/languagelevel get 2 ge}
- if def
-Level2? not
- {
- /currentglobal false def
- /setglobal/pop load def
- /gcheck{pop false}bind def
- /currentpacking false def
- /setpacking/pop load def
- /SharedFontDirectory 0 dict def
- }
-if
-currentpacking
-true setpacking
-currentglobal false setglobal
-userdict/Adobe_CoolType_Data 2 copy known not
- {2 copy 10 dict put}
-if
-get
- begin
- /@opStackCountByLevel 32 dict def
- /@opStackLevel 0 def
- /@dictStackCountByLevel 32 dict def
- /@dictStackLevel 0 def
- end
-setglobal
-currentglobal true setglobal
-userdict/Adobe_CoolType_GVMFonts known not
- {userdict/Adobe_CoolType_GVMFonts 10 dict put}
-if
-setglobal
-currentglobal false setglobal
-userdict/Adobe_CoolType_LVMFonts known not
- {userdict/Adobe_CoolType_LVMFonts 10 dict put}
-if
-setglobal
-/ct_VMDictPut
- {
- dup gcheck{Adobe_CoolType_GVMFonts}{Adobe_CoolType_LVMFonts}ifelse
- 3 1 roll put
- }bind def
-/ct_VMDictUndef
- {
- dup Adobe_CoolType_GVMFonts exch known
- {Adobe_CoolType_GVMFonts exch undef}
- {
- dup Adobe_CoolType_LVMFonts exch known
- {Adobe_CoolType_LVMFonts exch undef}
- {pop}
- ifelse
- }ifelse
- }bind def
-/ct_str1 1 string def
-/ct_xshow
-{
- /_ct_na exch def
- /_ct_i 0 def
- currentpoint
- /_ct_y exch def
- /_ct_x exch def
- {
- pop pop
- ct_str1 exch 0 exch put
- ct_str1 show
- {_ct_na _ct_i get}stopped
- {pop pop}
- {
- _ct_x _ct_y moveto
- 0
- rmoveto
- }
- ifelse
- /_ct_i _ct_i 1 add def
- currentpoint
- /_ct_y exch def
- /_ct_x exch def
- }
- exch
- @cshow
-}bind def
-/ct_yshow
-{
- /_ct_na exch def
- /_ct_i 0 def
- currentpoint
- /_ct_y exch def
- /_ct_x exch def
- {
- pop pop
- ct_str1 exch 0 exch put
- ct_str1 show
- {_ct_na _ct_i get}stopped
- {pop pop}
- {
- _ct_x _ct_y moveto
- 0 exch
- rmoveto
- }
- ifelse
- /_ct_i _ct_i 1 add def
- currentpoint
- /_ct_y exch def
- /_ct_x exch def
- }
- exch
- @cshow
-}bind def
-/ct_xyshow
-{
- /_ct_na exch def
- /_ct_i 0 def
- currentpoint
- /_ct_y exch def
- /_ct_x exch def
- {
- pop pop
- ct_str1 exch 0 exch put
- ct_str1 show
- {_ct_na _ct_i get}stopped
- {pop pop}
- {
- {_ct_na _ct_i 1 add get}stopped
- {pop pop pop}
- {
- _ct_x _ct_y moveto
- rmoveto
- }
- ifelse
- }
- ifelse
- /_ct_i _ct_i 2 add def
- currentpoint
- /_ct_y exch def
- /_ct_x exch def
- }
- exch
- @cshow
-}bind def
-/xsh{{@xshow}stopped{Adobe_CoolType_Data begin ct_xshow end}if}bind def
-/ysh{{@yshow}stopped{Adobe_CoolType_Data begin ct_yshow end}if}bind def
-/xysh{{@xyshow}stopped{Adobe_CoolType_Data begin ct_xyshow end}if}bind def
-currentglobal true setglobal
-/ct_T3Defs
-{
-/BuildChar
-{
- 1 index/Encoding get exch get
- 1 index/BuildGlyph get exec
-}bind def
-/BuildGlyph
-{
- exch begin
- GlyphProcs exch get exec
- end
-}bind def
-}bind def
-setglobal
-/@_SaveStackLevels
- {
- Adobe_CoolType_Data
- begin
- /@vmState currentglobal def false setglobal
- @opStackCountByLevel
- @opStackLevel
- 2 copy known not
- {
- 2 copy
- 3 dict dup/args
- 7 index
- 5 add array put
- put get
- }
- {
- get dup/args get dup length 3 index lt
- {
- dup length 5 add array exch
- 1 index exch 0 exch putinterval
- 1 index exch/args exch put
- }
- {pop}
- ifelse
- }
- ifelse
- begin
- count 1 sub
- 1 index lt
- {pop count}
- if
- dup/argCount exch def
- dup 0 gt
- {
- args exch 0 exch getinterval
- astore pop
- }
- {pop}
- ifelse
- count
- /restCount exch def
- end
- /@opStackLevel @opStackLevel 1 add def
- countdictstack 1 sub
- @dictStackCountByLevel exch @dictStackLevel exch put
- /@dictStackLevel @dictStackLevel 1 add def
- @vmState setglobal
- end
- }bind def
-/@_RestoreStackLevels
- {
- Adobe_CoolType_Data
- begin
- /@opStackLevel @opStackLevel 1 sub def
- @opStackCountByLevel @opStackLevel get
- begin
- count restCount sub dup 0 gt
- {{pop}repeat}
- {pop}
- ifelse
- args 0 argCount getinterval{}forall
- end
- /@dictStackLevel @dictStackLevel 1 sub def
- @dictStackCountByLevel @dictStackLevel get
- end
- countdictstack exch sub dup 0 gt
- {{end}repeat}
- {pop}
- ifelse
- }bind def
-/@_PopStackLevels
- {
- Adobe_CoolType_Data
- begin
- /@opStackLevel @opStackLevel 1 sub def
- /@dictStackLevel @dictStackLevel 1 sub def
- end
- }bind def
-/@Raise
- {
- exch cvx exch errordict exch get exec
- stop
- }bind def
-/@ReRaise
- {
- cvx $error/errorname get errordict exch get exec
- stop
- }bind def
-/@Stopped
- {
- 0 @#Stopped
- }bind def
-/@#Stopped
- {
- @_SaveStackLevels
- stopped
- {@_RestoreStackLevels true}
- {@_PopStackLevels false}
- ifelse
- }bind def
-/@Arg
- {
- Adobe_CoolType_Data
- begin
- @opStackCountByLevel @opStackLevel 1 sub get
- begin
- args exch
- argCount 1 sub exch sub get
- end
- end
- }bind def
-currentglobal true setglobal
-/CTHasResourceForAllBug
- Level2?
- {
- 1 dict dup
- /@shouldNotDisappearDictValue true def
- Adobe_CoolType_Data exch/@shouldNotDisappearDict exch put
- begin
- count @_SaveStackLevels
- {(*){pop stop}128 string/Category resourceforall}
- stopped pop
- @_RestoreStackLevels
- currentdict Adobe_CoolType_Data/@shouldNotDisappearDict get dup 3 1 roll ne dup 3 1 roll
- {
- /@shouldNotDisappearDictValue known
- {
- {
- end
- currentdict 1 index eq
- {pop exit}
- if
- }
- loop
- }
- if
- }
- {
- pop
- end
- }
- ifelse
- }
- {false}
- ifelse
- def
-true setglobal
-/CTHasResourceStatusBug
- Level2?
- {
- mark
- {/steveamerige/Category resourcestatus}
- stopped
- {cleartomark true}
- {cleartomark currentglobal not}
- ifelse
- }
- {false}
- ifelse
- def
-setglobal
-/CTResourceStatus
- {
- mark 3 1 roll
- /Category findresource
- begin
- ({ResourceStatus}stopped)0()/SubFileDecode filter cvx exec
- {cleartomark false}
- {{3 2 roll pop true}{cleartomark false}ifelse}
- ifelse
- end
- }bind def
-/CTWorkAroundBugs
- {
- Level2?
- {
- /cid_PreLoad/ProcSet resourcestatus
- {
- pop pop
- currentglobal
- mark
- {
- (*)
- {
- dup/CMap CTHasResourceStatusBug
- {CTResourceStatus}
- {resourcestatus}
- ifelse
- {
- pop dup 0 eq exch 1 eq or
- {
- dup/CMap findresource gcheck setglobal
- /CMap undefineresource
- }
- {
- pop CTHasResourceForAllBug
- {exit}
- {stop}
- ifelse
- }
- ifelse
- }
- {pop}
- ifelse
- }
- 128 string/CMap resourceforall
- }
- stopped
- {cleartomark}
- stopped pop
- setglobal
- }
- if
- }
- if
- }bind def
-/ds
- {
- Adobe_CoolType_Core
- begin
- CTWorkAroundBugs
- /mo/moveto load def
- /nf/newencodedfont load def
- /msf{makefont setfont}bind def
- /uf{dup undefinefont ct_VMDictUndef}bind def
- /ur/undefineresource load def
- /chp/charpath load def
- /awsh/awidthshow load def
- /wsh/widthshow load def
- /ash/ashow load def
- /@xshow/xshow load def
- /@yshow/yshow load def
- /@xyshow/xyshow load def
- /@cshow/cshow load def
- /sh/show load def
- /rp/repeat load def
- /.n/.notdef def
- end
- currentglobal false setglobal
- userdict/Adobe_CoolType_Data 2 copy known not
- {2 copy 10 dict put}
- if
- get
- begin
- /AddWidths? false def
- /CC 0 def
- /charcode 2 string def
- /@opStackCountByLevel 32 dict def
- /@opStackLevel 0 def
- /@dictStackCountByLevel 32 dict def
- /@dictStackLevel 0 def
- /InVMFontsByCMap 10 dict def
- /InVMDeepCopiedFonts 10 dict def
- end
- setglobal
- }bind def
-/dt
- {
- currentdict Adobe_CoolType_Core eq
- {end}
- if
- }bind def
-/ps
- {
- Adobe_CoolType_Core begin
- Adobe_CoolType_GVMFonts begin
- Adobe_CoolType_LVMFonts begin
- SharedFontDirectory begin
- }bind def
-/pt
- {
- end
- end
- end
- end
- }bind def
-/unload
- {
- systemdict/languagelevel known
- {
- systemdict/languagelevel get 2 ge
- {
- userdict/Adobe_CoolType_Core 2 copy known
- {undef}
- {pop pop}
- ifelse
- }
- if
- }
- if
- }bind def
-/ndf
- {
- 1 index where
- {pop pop pop}
- {dup xcheck{bind}if def}
- ifelse
- }def
-/findfont systemdict
- begin
- userdict
- begin
- /globaldict where{/globaldict get begin}if
- dup where pop exch get
- /globaldict where{pop end}if
- end
- end
-Adobe_CoolType_Core_Defined
- {/systemfindfont exch def}
- {
- /findfont 1 index def
- /systemfindfont exch def
- }
-ifelse
-/undefinefont
- {pop}ndf
-/copyfont
- {
- currentglobal 3 1 roll
- 1 index gcheck setglobal
- dup null eq{0}{dup length}ifelse
- 2 index length add 1 add dict
- begin
- exch
- {
- 1 index/FID eq
- {pop pop}
- {def}
- ifelse
- }
- forall
- dup null eq
- {pop}
- {{def}forall}
- ifelse
- currentdict
- end
- exch setglobal
- }bind def
-/copyarray
- {
- currentglobal exch
- dup gcheck setglobal
- dup length array copy
- exch setglobal
- }bind def
-/newencodedfont
- {
- currentglobal
- {
- SharedFontDirectory 3 index known
- {SharedFontDirectory 3 index get/FontReferenced known}
- {false}
- ifelse
- }
- {
- FontDirectory 3 index known
- {FontDirectory 3 index get/FontReferenced known}
- {
- SharedFontDirectory 3 index known
- {SharedFontDirectory 3 index get/FontReferenced known}
- {false}
- ifelse
- }
- ifelse
- }
- ifelse
- dup
- {
- 3 index findfont/FontReferenced get
- 2 index dup type/nametype eq
- {findfont}
- if ne
- {pop false}
- if
- }
- if
- dup
- {
- 1 index dup type/nametype eq
- {findfont}
- if
- dup/CharStrings known
- {
- /CharStrings get length
- 4 index findfont/CharStrings get length
- ne
- {
- pop false
- }
- if
- }
- {pop}
- ifelse
- }
- if
- {
- pop
- 1 index findfont
- /Encoding get exch
- 0 1 255
- {2 copy get 3 index 3 1 roll put}
- for
- pop pop pop
- }
- {
- currentglobal
- 4 1 roll
- dup type/nametype eq
- {findfont}
- if
- dup gcheck setglobal
- dup dup maxlength 2 add dict
- begin
- exch
- {
- 1 index/FID ne
- 2 index/Encoding ne and
- {def}
- {pop pop}
- ifelse
- }
- forall
- /FontReferenced exch def
- /Encoding exch dup length array copy def
- /FontName 1 index dup type/stringtype eq{cvn}if def dup
- currentdict
- end
- definefont ct_VMDictPut
- setglobal
- }
- ifelse
- }bind def
-/SetSubstituteStrategy
- {
- $SubstituteFont
- begin
- dup type/dicttype ne
- {0 dict}
- if
- currentdict/$Strategies known
- {
- exch $Strategies exch
- 2 copy known
- {
- get
- 2 copy maxlength exch maxlength add dict
- begin
- {def}forall
- {def}forall
- currentdict
- dup/$Init known
- {dup/$Init get exec}
- if
- end
- /$Strategy exch def
- }
- {pop pop pop}
- ifelse
- }
- {pop pop}
- ifelse
- end
- }bind def
-/scff
- {
- $SubstituteFont
- begin
- dup type/stringtype eq
- {dup length exch}
- {null}
- ifelse
- /$sname exch def
- /$slen exch def
- /$inVMIndex
- $sname null eq
- {
- 1 index $str cvs
- dup length $slen sub $slen getinterval cvn
- }
- {$sname}
- ifelse def
- end
- {findfont}
- @Stopped
- {
- dup length 8 add string exch
- 1 index 0(BadFont:)putinterval
- 1 index exch 8 exch dup length string cvs putinterval cvn
- {findfont}
- @Stopped
- {pop/Courier findfont}
- if
- }
- if
- $SubstituteFont
- begin
- /$sname null def
- /$slen 0 def
- /$inVMIndex null def
- end
- }bind def
-/isWidthsOnlyFont
- {
- dup/WidthsOnly known
- {pop pop true}
- {
- dup/FDepVector known
- {/FDepVector get{isWidthsOnlyFont dup{exit}if}forall}
- {
- dup/FDArray known
- {/FDArray get{isWidthsOnlyFont dup{exit}if}forall}
- {pop}
- ifelse
- }
- ifelse
- }
- ifelse
- }bind def
-/ct_StyleDicts 4 dict dup begin
- /Adobe-Japan1 4 dict dup begin
- Level2?
- {
- /Serif
- /HeiseiMin-W3-83pv-RKSJ-H/Font resourcestatus
- {pop pop/HeiseiMin-W3}
- {
- /CIDFont/Category resourcestatus
- {
- pop pop
- /HeiseiMin-W3/CIDFont resourcestatus
- {pop pop/HeiseiMin-W3}
- {/Ryumin-Light}
- ifelse
- }
- {/Ryumin-Light}
- ifelse
- }
- ifelse
- def
- /SansSerif
- /HeiseiKakuGo-W5-83pv-RKSJ-H/Font resourcestatus
- {pop pop/HeiseiKakuGo-W5}
- {
- /CIDFont/Category resourcestatus
- {
- pop pop
- /HeiseiKakuGo-W5/CIDFont resourcestatus
- {pop pop/HeiseiKakuGo-W5}
- {/GothicBBB-Medium}
- ifelse
- }
- {/GothicBBB-Medium}
- ifelse
- }
- ifelse
- def
- /HeiseiMaruGo-W4-83pv-RKSJ-H/Font resourcestatus
- {pop pop/HeiseiMaruGo-W4}
- {
- /CIDFont/Category resourcestatus
- {
- pop pop
- /HeiseiMaruGo-W4/CIDFont resourcestatus
- {pop pop/HeiseiMaruGo-W4}
- {
- /Jun101-Light-RKSJ-H/Font resourcestatus
- {pop pop/Jun101-Light}
- {SansSerif}
- ifelse
- }
- ifelse
- }
- {
- /Jun101-Light-RKSJ-H/Font resourcestatus
- {pop pop/Jun101-Light}
- {SansSerif}
- ifelse
- }
- ifelse
- }
- ifelse
- /RoundSansSerif exch def
- /Default Serif def
- }
- {
- /Serif/Ryumin-Light def
- /SansSerif/GothicBBB-Medium def
- {
- (fonts/Jun101-Light-83pv-RKSJ-H)status
- }stopped
- {pop}{
- {pop pop pop pop/Jun101-Light}
- {SansSerif}
- ifelse
- /RoundSansSerif exch def
- }ifelse
- /Default Serif def
- }
- ifelse
- end
- def
- /Adobe-Korea1 4 dict dup begin
- /Serif/HYSMyeongJo-Medium def
- /SansSerif/HYGoThic-Medium def
- /RoundSansSerif SansSerif def
- /Default Serif def
- end
- def
- /Adobe-GB1 4 dict dup begin
- /Serif/STSong-Light def
- /SansSerif/STHeiti-Regular def
- /RoundSansSerif SansSerif def
- /Default Serif def
- end
- def
- /Adobe-CNS1 4 dict dup begin
- /Serif/MKai-Medium def
- /SansSerif/MHei-Medium def
- /RoundSansSerif SansSerif def
- /Default Serif def
- end
- def
-end
-def
-Level2?{currentglobal true setglobal}if
-/ct_BoldRomanWidthProc
- {
- stringwidth 1 index 0 ne{exch .03 add exch}if setcharwidth
- 0 0
- }bind def
-/ct_Type0WidthProc
- {
- dup stringwidth 0 0 moveto
- 2 index true charpath pathbbox
- 0 -1
- 7 index 2 div .88
- setcachedevice2
- pop
- 0 0
- }bind def
-/ct_Type0WMode1WidthProc
- {
- dup stringwidth
- pop 2 div neg -0.88
- 2 copy
- moveto
- 0 -1
- 5 -1 roll true charpath pathbbox
- setcachedevice
- }bind def
-/cHexEncoding
-[/c00/c01/c02/c03/c04/c05/c06/c07/c08/c09/c0A/c0B/c0C/c0D/c0E/c0F/c10/c11/c12
-/c13/c14/c15/c16/c17/c18/c19/c1A/c1B/c1C/c1D/c1E/c1F/c20/c21/c22/c23/c24/c25
-/c26/c27/c28/c29/c2A/c2B/c2C/c2D/c2E/c2F/c30/c31/c32/c33/c34/c35/c36/c37/c38
-/c39/c3A/c3B/c3C/c3D/c3E/c3F/c40/c41/c42/c43/c44/c45/c46/c47/c48/c49/c4A/c4B
-/c4C/c4D/c4E/c4F/c50/c51/c52/c53/c54/c55/c56/c57/c58/c59/c5A/c5B/c5C/c5D/c5E
-/c5F/c60/c61/c62/c63/c64/c65/c66/c67/c68/c69/c6A/c6B/c6C/c6D/c6E/c6F/c70/c71
-/c72/c73/c74/c75/c76/c77/c78/c79/c7A/c7B/c7C/c7D/c7E/c7F/c80/c81/c82/c83/c84
-/c85/c86/c87/c88/c89/c8A/c8B/c8C/c8D/c8E/c8F/c90/c91/c92/c93/c94/c95/c96/c97
-/c98/c99/c9A/c9B/c9C/c9D/c9E/c9F/cA0/cA1/cA2/cA3/cA4/cA5/cA6/cA7/cA8/cA9/cAA
-/cAB/cAC/cAD/cAE/cAF/cB0/cB1/cB2/cB3/cB4/cB5/cB6/cB7/cB8/cB9/cBA/cBB/cBC/cBD
-/cBE/cBF/cC0/cC1/cC2/cC3/cC4/cC5/cC6/cC7/cC8/cC9/cCA/cCB/cCC/cCD/cCE/cCF/cD0
-/cD1/cD2/cD3/cD4/cD5/cD6/cD7/cD8/cD9/cDA/cDB/cDC/cDD/cDE/cDF/cE0/cE1/cE2/cE3
-/cE4/cE5/cE6/cE7/cE8/cE9/cEA/cEB/cEC/cED/cEE/cEF/cF0/cF1/cF2/cF3/cF4/cF5/cF6
-/cF7/cF8/cF9/cFA/cFB/cFC/cFD/cFE/cFF]def
-/ct_BoldBaseFont
- 11 dict begin
- /FontType 3 def
- /FontMatrix[1 0 0 1 0 0]def
- /FontBBox[0 0 1 1]def
- /Encoding cHexEncoding def
- /_setwidthProc/ct_BoldRomanWidthProc load def
- /_bcstr1 1 string def
- /BuildChar
- {
- exch begin
- _basefont setfont
- _bcstr1 dup 0 4 -1 roll put
- dup
- _setwidthProc
- 3 copy
- moveto
- show
- _basefonto setfont
- moveto
- show
- end
- }bind def
- currentdict
- end
-def
-systemdict/composefont known
-{
-/ct_DefineIdentity-H
-{
- /Identity-H/CMap resourcestatus
- {
- pop pop
- }
- {
- /CIDInit/ProcSet findresource begin
- 12 dict begin
- begincmap
- /CIDSystemInfo 3 dict dup begin
- /Registry(Adobe)def
- /Ordering(Identity)def
- /Supplement 0 def
- end def
- /CMapName/Identity-H def
- /CMapVersion 1.000 def
- /CMapType 1 def
- 1 begincodespacerange
- <0000><FFFF>
- endcodespacerange
- 1 begincidrange
- <0000><FFFF>0
- endcidrange
- endcmap
- CMapName currentdict/CMap defineresource pop
- end
- end
- }
- ifelse
-}
-def
-/ct_BoldBaseCIDFont
- 11 dict begin
- /CIDFontType 1 def
- /CIDFontName/ct_BoldBaseCIDFont def
- /FontMatrix[1 0 0 1 0 0]def
- /FontBBox[0 0 1 1]def
- /_setwidthProc/ct_Type0WidthProc load def
- /_bcstr2 2 string def
- /BuildGlyph
- {
- exch begin
- _basefont setfont
- _bcstr2 1 2 index 256 mod put
- _bcstr2 0 3 -1 roll 256 idiv put
- _bcstr2 dup _setwidthProc
- 3 copy
- moveto
- show
- _basefonto setfont
- moveto
- show
- end
- }bind def
- currentdict
- end
-def
-}if
-Level2?{setglobal}if
-/ct_CopyFont{
- {
- 1 index/FID ne 2 index/UniqueID ne and
- {def}{pop pop}ifelse
- }forall
-}bind def
-/ct_Type0CopyFont
-{
- exch
- dup length dict
- begin
- ct_CopyFont
- [
- exch
- FDepVector
- {
- dup/FontType get 0 eq
- {
- 1 index ct_Type0CopyFont
- /_ctType0 exch definefont
- }
- {
- /_ctBaseFont exch
- 2 index exec
- }
- ifelse
- exch
- }
- forall
- pop
- ]
- /FDepVector exch def
- currentdict
- end
-}bind def
-/ct_MakeBoldFont
-{
- dup/ct_SyntheticBold known
- {
- dup length 3 add dict begin
- ct_CopyFont
- /ct_StrokeWidth .03 0 FontMatrix idtransform pop def
- /ct_SyntheticBold true def
- currentdict
- end
- definefont
- }
- {
- dup dup length 3 add dict
- begin
- ct_CopyFont
- /PaintType 2 def
- /StrokeWidth .03 0 FontMatrix idtransform pop def
- /dummybold currentdict
- end
- definefont
- dup/FontType get dup 9 ge exch 11 le and
- {
- ct_BoldBaseCIDFont
- dup length 3 add dict copy begin
- dup/CIDSystemInfo get/CIDSystemInfo exch def
- ct_DefineIdentity-H
- /_Type0Identity/Identity-H 3 -1 roll[exch]composefont
- /_basefont exch def
- /_Type0Identity/Identity-H 3 -1 roll[exch]composefont
- /_basefonto exch def
- currentdict
- end
- /CIDFont defineresource
- }
- {
- ct_BoldBaseFont
- dup length 3 add dict copy begin
- /_basefont exch def
- /_basefonto exch def
- currentdict
- end
- definefont
- }
- ifelse
- }
- ifelse
-}bind def
-/ct_MakeBold{
- 1 index
- 1 index
- findfont
- currentglobal 5 1 roll
- dup gcheck setglobal
- dup
- /FontType get 0 eq
- {
- dup/WMode known{dup/WMode get 1 eq}{false}ifelse
- version length 4 ge
- and
- {version 0 4 getinterval cvi 2015 ge}
- {true}
- ifelse
- {/ct_Type0WidthProc}
- {/ct_Type0WMode1WidthProc}
- ifelse
- ct_BoldBaseFont/_setwidthProc 3 -1 roll load put
- {ct_MakeBoldFont}ct_Type0CopyFont definefont
- }
- {
- dup/_fauxfont known not 1 index/SubstMaster known not and
- {
- ct_BoldBaseFont/_setwidthProc /ct_BoldRomanWidthProc load put
- ct_MakeBoldFont
- }
- {
- 2 index 2 index eq
- {exch pop }
- {
- dup length dict begin
- ct_CopyFont
- currentdict
- end
- definefont
- }
- ifelse
- }
- ifelse
- }
- ifelse
- pop pop pop
- setglobal
-}bind def
-/?str1 256 string def
-/?set
- {
- $SubstituteFont
- begin
- /$substituteFound false def
- /$fontname 1 index def
- /$doSmartSub false def
- end
- dup
- findfont
- $SubstituteFont
- begin
- $substituteFound
- {false}
- {
- dup/FontName known
- {
- dup/FontName get $fontname eq
- 1 index/DistillerFauxFont known not and
- /currentdistillerparams where
- {pop false 2 index isWidthsOnlyFont not and}
- if
- }
- {false}
- ifelse
- }
- ifelse
- exch pop
- /$doSmartSub true def
- end
- {
- 5 1 roll pop pop pop pop
- findfont
- }
- {
- 1 index
- findfont
- dup/FontType get 3 eq
- {
- 6 1 roll pop pop pop pop pop false
- }
- {pop true}
- ifelse
- {
- $SubstituteFont
- begin
- pop pop
- /$styleArray 1 index def
- /$regOrdering 2 index def
- pop pop
- 0 1 $styleArray length 1 sub
- {
- $styleArray exch get
- ct_StyleDicts $regOrdering
- 2 copy known
- {
- get
- exch 2 copy known not
- {pop/Default}
- if
- get
- dup type/nametype eq
- {
- ?str1 cvs length dup 1 add exch
- ?str1 exch(-)putinterval
- exch dup length exch ?str1 exch 3 index exch putinterval
- add ?str1 exch 0 exch getinterval cvn
- }
- {
- pop pop/Unknown
- }
- ifelse
- }
- {
- pop pop pop pop/Unknown
- }
- ifelse
- }
- for
- end
- findfont
- }if
- }
- ifelse
- currentglobal false setglobal 3 1 roll
- null copyfont definefont pop
- setglobal
- }bind def
-setpacking
-userdict/$SubstituteFont 25 dict put
-1 dict
- begin
- /SubstituteFont
- dup $error exch 2 copy known
- {get}
- {pop pop{pop/Courier}bind}
- ifelse def
- /currentdistillerparams where dup
- {
- pop pop
- currentdistillerparams/CannotEmbedFontPolicy 2 copy known
- {get/Error eq}
- {pop pop false}
- ifelse
- }
- if not
- {
- countdictstack array dictstack 0 get
- begin
- userdict
- begin
- $SubstituteFont
- begin
- /$str 128 string def
- /$fontpat 128 string def
- /$slen 0 def
- /$sname null def
- /$match false def
- /$fontname null def
- /$substituteFound false def
- /$inVMIndex null def
- /$doSmartSub true def
- /$depth 0 def
- /$fontname null def
- /$italicangle 26.5 def
- /$dstack null def
- /$Strategies 10 dict dup
- begin
- /$Type3Underprint
- {
- currentglobal exch false setglobal
- 11 dict
- begin
- /UseFont exch
- $WMode 0 ne
- {
- dup length dict copy
- dup/WMode $WMode put
- /UseFont exch definefont
- }
- if def
- /FontName $fontname dup type/stringtype eq{cvn}if def
- /FontType 3 def
- /FontMatrix[.001 0 0 .001 0 0]def
- /Encoding 256 array dup 0 1 255{/.notdef put dup}for pop def
- /FontBBox[0 0 0 0]def
- /CCInfo 7 dict dup
- begin
- /cc null def
- /x 0 def
- /y 0 def
- end def
- /BuildChar
- {
- exch
- begin
- CCInfo
- begin
- 1 string dup 0 3 index put exch pop
- /cc exch def
- UseFont 1000 scalefont setfont
- cc stringwidth/y exch def/x exch def
- x y setcharwidth
- $SubstituteFont/$Strategy get/$Underprint get exec
- 0 0 moveto cc show
- x y moveto
- end
- end
- }bind def
- currentdict
- end
- exch setglobal
- }bind def
- /$GetaTint
- 2 dict dup
- begin
- /$BuildFont
- {
- dup/WMode known
- {dup/WMode get}
- {0}
- ifelse
- /$WMode exch def
- $fontname exch
- dup/FontName known
- {
- dup/FontName get
- dup type/stringtype eq{cvn}if
- }
- {/unnamedfont}
- ifelse
- exch
- Adobe_CoolType_Data/InVMDeepCopiedFonts get
- 1 index/FontName get known
- {
- pop
- Adobe_CoolType_Data/InVMDeepCopiedFonts get
- 1 index get
- null copyfont
- }
- {$deepcopyfont}
- ifelse
- exch 1 index exch/FontBasedOn exch put
- dup/FontName $fontname dup type/stringtype eq{cvn}if put
- definefont
- Adobe_CoolType_Data/InVMDeepCopiedFonts get
- begin
- dup/FontBasedOn get 1 index def
- end
- }bind def
- /$Underprint
- {
- gsave
- x abs y abs gt
- {/y 1000 def}
- {/x -1000 def 500 120 translate}
- ifelse
- Level2?
- {
- [/Separation(All)/DeviceCMYK{0 0 0 1 pop}]
- setcolorspace
- }
- {0 setgray}
- ifelse
- 10 setlinewidth
- x .8 mul
- [7 3]
- {
- y mul 8 div 120 sub x 10 div exch moveto
- 0 y 4 div neg rlineto
- dup 0 rlineto
- 0 y 4 div rlineto
- closepath
- gsave
- Level2?
- {.2 setcolor}
- {.8 setgray}
- ifelse
- fill grestore
- stroke
- }
- forall
- pop
- grestore
- }bind def
- end def
- /$Oblique
- 1 dict dup
- begin
- /$BuildFont
- {
- currentglobal exch dup gcheck setglobal
- null copyfont
- begin
- /FontBasedOn
- currentdict/FontName known
- {
- FontName
- dup type/stringtype eq{cvn}if
- }
- {/unnamedfont}
- ifelse
- def
- /FontName $fontname dup type/stringtype eq{cvn}if def
- /currentdistillerparams where
- {pop}
- {
- /FontInfo currentdict/FontInfo known
- {FontInfo null copyfont}
- {2 dict}
- ifelse
- dup
- begin
- /ItalicAngle $italicangle def
- /FontMatrix FontMatrix
- [1 0 ItalicAngle dup sin exch cos div 1 0 0]
- matrix concatmatrix readonly
- end
- 4 2 roll def
- def
- }
- ifelse
- FontName currentdict
- end
- definefont
- exch setglobal
- }bind def
- end def
- /$None
- 1 dict dup
- begin
- /$BuildFont{}bind def
- end def
- end def
- /$Oblique SetSubstituteStrategy
- /$findfontByEnum
- {
- dup type/stringtype eq{cvn}if
- dup/$fontname exch def
- $sname null eq
- {$str cvs dup length $slen sub $slen getinterval}
- {pop $sname}
- ifelse
- $fontpat dup 0(fonts/*)putinterval exch 7 exch putinterval
- /$match false def
- $SubstituteFont/$dstack countdictstack array dictstack put
- mark
- {
- $fontpat 0 $slen 7 add getinterval
- {/$match exch def exit}
- $str filenameforall
- }
- stopped
- {
- cleardictstack
- currentdict
- true
- $SubstituteFont/$dstack get
- {
- exch
- {
- 1 index eq
- {pop false}
- {true}
- ifelse
- }
- {begin false}
- ifelse
- }
- forall
- pop
- }
- if
- cleartomark
- /$slen 0 def
- $match false ne
- {$match(fonts/)anchorsearch pop pop cvn}
- {/Courier}
- ifelse
- }bind def
- /$ROS 1 dict dup
- begin
- /Adobe 4 dict dup
- begin
- /Japan1 [/Ryumin-Light/HeiseiMin-W3
- /GothicBBB-Medium/HeiseiKakuGo-W5
- /HeiseiMaruGo-W4/Jun101-Light]def
- /Korea1 [/HYSMyeongJo-Medium/HYGoThic-Medium]def
- /GB1 [/STSong-Light/STHeiti-Regular]def
- /CNS1 [/MKai-Medium/MHei-Medium]def
- end def
- end def
- /$cmapname null def
- /$deepcopyfont
- {
- dup/FontType get 0 eq
- {
- 1 dict dup/FontName/copied put copyfont
- begin
- /FDepVector FDepVector copyarray
- 0 1 2 index length 1 sub
- {
- 2 copy get $deepcopyfont
- dup/FontName/copied put
- /copied exch definefont
- 3 copy put pop pop
- }
- for
- def
- currentdict
- end
- }
- {$Strategies/$Type3Underprint get exec}
- ifelse
- }bind def
- /$buildfontname
- {
- dup/CIDFont findresource/CIDSystemInfo get
- begin
- Registry length Ordering length Supplement 8 string cvs
- 3 copy length 2 add add add string
- dup 5 1 roll dup 0 Registry putinterval
- dup 4 index(-)putinterval
- dup 4 index 1 add Ordering putinterval
- 4 2 roll add 1 add 2 copy(-)putinterval
- end
- 1 add 2 copy 0 exch getinterval $cmapname $fontpat cvs exch
- anchorsearch
- {pop pop 3 2 roll putinterval cvn/$cmapname exch def}
- {pop pop pop pop pop}
- ifelse
- length
- $str 1 index(-)putinterval 1 add
- $str 1 index $cmapname $fontpat cvs putinterval
- $cmapname length add
- $str exch 0 exch getinterval cvn
- }bind def
- /$findfontByROS
- {
- /$fontname exch def
- $ROS Registry 2 copy known
- {
- get Ordering 2 copy known
- {get}
- {pop pop[]}
- ifelse
- }
- {pop pop[]}
- ifelse
- false exch
- {
- dup/CIDFont resourcestatus
- {
- pop pop
- save
- 1 index/CIDFont findresource
- dup/WidthsOnly known
- {dup/WidthsOnly get}
- {false}
- ifelse
- exch pop
- exch restore
- {pop}
- {exch pop true exit}
- ifelse
- }
- {pop}
- ifelse
- }
- forall
- {$str cvs $buildfontname}
- {
- false(*)
- {
- save exch
- dup/CIDFont findresource
- dup/WidthsOnly known
- {dup/WidthsOnly get not}
- {true}
- ifelse
- exch/CIDSystemInfo get
- dup/Registry get Registry eq
- exch/Ordering get Ordering eq and and
- {exch restore exch pop true exit}
- {pop restore}
- ifelse
- }
- $str/CIDFont resourceforall
- {$buildfontname}
- {$fontname $findfontByEnum}
- ifelse
- }
- ifelse
- }bind def
- end
- end
- currentdict/$error known currentdict/languagelevel known and dup
- {pop $error/SubstituteFont known}
- if
- dup
- {$error}
- {Adobe_CoolType_Core}
- ifelse
- begin
- {
- /SubstituteFont
- /CMap/Category resourcestatus
- {
- pop pop
- {
- $SubstituteFont
- begin
- /$substituteFound true def
- dup length $slen gt
- $sname null ne or
- $slen 0 gt and
- {
- $sname null eq
- {dup $str cvs dup length $slen sub $slen getinterval cvn}
- {$sname}
- ifelse
- Adobe_CoolType_Data/InVMFontsByCMap get
- 1 index 2 copy known
- {
- get
- false exch
- {
- pop
- currentglobal
- {
- GlobalFontDirectory 1 index known
- {exch pop true exit}
- {pop}
- ifelse
- }
- {
- FontDirectory 1 index known
- {exch pop true exit}
- {
- GlobalFontDirectory 1 index known
- {exch pop true exit}
- {pop}
- ifelse
- }
- ifelse
- }
- ifelse
- }
- forall
- }
- {pop pop false}
- ifelse
- {
- exch pop exch pop
- }
- {
- dup/CMap resourcestatus
- {
- pop pop
- dup/$cmapname exch def
- /CMap findresource/CIDSystemInfo get{def}forall
- $findfontByROS
- }
- {
- 128 string cvs
- dup(-)search
- {
- 3 1 roll search
- {
- 3 1 roll pop
- {dup cvi}
- stopped
- {pop pop pop pop pop $findfontByEnum}
- {
- 4 2 roll pop pop
- exch length
- exch
- 2 index length
- 2 index
- sub
- exch 1 sub -1 0
- {
- $str cvs dup length
- 4 index
- 0
- 4 index
- 4 3 roll add
- getinterval
- exch 1 index exch 3 index exch
- putinterval
- dup/CMap resourcestatus
- {
- pop pop
- 4 1 roll pop pop pop
- dup/$cmapname exch def
- /CMap findresource/CIDSystemInfo get{def}forall
- $findfontByROS
- true exit
- }
- {pop}
- ifelse
- }
- for
- dup type/booleantype eq
- {pop}
- {pop pop pop $findfontByEnum}
- ifelse
- }
- ifelse
- }
- {pop pop pop $findfontByEnum}
- ifelse
- }
- {pop pop $findfontByEnum}
- ifelse
- }
- ifelse
- }
- ifelse
- }
- {//SubstituteFont exec}
- ifelse
- /$slen 0 def
- end
- }
- }
- {
- {
- $SubstituteFont
- begin
- /$substituteFound true def
- dup length $slen gt
- $sname null ne or
- $slen 0 gt and
- {$findfontByEnum}
- {//SubstituteFont exec}
- ifelse
- end
- }
- }
- ifelse
- bind readonly def
- Adobe_CoolType_Core/scfindfont/systemfindfont load put
- }
- {
- /scfindfont
- {
- $SubstituteFont
- begin
- dup systemfindfont
- dup/FontName known
- {dup/FontName get dup 3 index ne}
- {/noname true}
- ifelse
- dup
- {
- /$origfontnamefound 2 index def
- /$origfontname 4 index def/$substituteFound true def
- }
- if
- exch pop
- {
- $slen 0 gt
- $sname null ne
- 3 index length $slen gt or and
- {
- pop dup $findfontByEnum findfont
- dup maxlength 1 add dict
- begin
- {1 index/FID eq{pop pop}{def}ifelse}
- forall
- currentdict
- end
- definefont
- dup/FontName known{dup/FontName get}{null}ifelse
- $origfontnamefound ne
- {
- $origfontname $str cvs print
- ( substitution revised, using )print
- dup/FontName known
- {dup/FontName get}{(unspecified font)}
- ifelse
- $str cvs print(.\n)print
- }
- if
- }
- {exch pop}
- ifelse
- }
- {exch pop}
- ifelse
- end
- }bind def
- }
- ifelse
- end
- end
- Adobe_CoolType_Core_Defined not
- {
- Adobe_CoolType_Core/findfont
- {
- $SubstituteFont
- begin
- $depth 0 eq
- {
- /$fontname 1 index dup type/stringtype ne{$str cvs}if def
- /$substituteFound false def
- }
- if
- /$depth $depth 1 add def
- end
- scfindfont
- $SubstituteFont
- begin
- /$depth $depth 1 sub def
- $substituteFound $depth 0 eq and
- {
- $inVMIndex null ne
- {dup $inVMIndex $AddInVMFont}
- if
- $doSmartSub
- {
- currentdict/$Strategy known
- {$Strategy/$BuildFont get exec}
- if
- }
- if
- }
- if
- end
- }bind put
- }
- if
- }
- if
- end
-/$AddInVMFont
- {
- exch/FontName 2 copy known
- {
- get
- 1 dict dup begin exch 1 index gcheck def end exch
- Adobe_CoolType_Data/InVMFontsByCMap get exch
- $DictAdd
- }
- {pop pop pop}
- ifelse
- }bind def
-/$DictAdd
- {
- 2 copy known not
- {2 copy 4 index length dict put}
- if
- Level2? not
- {
- 2 copy get dup maxlength exch length 4 index length add lt
- 2 copy get dup length 4 index length add exch maxlength 1 index lt
- {
- 2 mul dict
- begin
- 2 copy get{forall}def
- 2 copy currentdict put
- end
- }
- {pop}
- ifelse
- }
- if
- get
- begin
- {def}
- forall
- end
- }bind def
-end
-end
-%%EndResource
-currentglobal true setglobal
-%%BeginResource: procset Adobe_CoolType_Utility_MAKEOCF 1.23 0
-%%Copyright: Copyright 1987-2006 Adobe Systems Incorporated.
-%%Version: 1.23 0
-systemdict/languagelevel known dup
- {currentglobal false setglobal}
- {false}
-ifelse
-exch
-userdict/Adobe_CoolType_Utility 2 copy known
- {2 copy get dup maxlength 27 add dict copy}
- {27 dict}
-ifelse put
-Adobe_CoolType_Utility
- begin
- /@eexecStartData
- <BAB431EA07F209EB8C4348311481D9D3F76E3D15246555577D87BC510ED54E
- 118C39697FA9F6DB58128E60EB8A12FA24D7CDD2FA94D221FA9EC8DA3E5E6A1C
- 4ACECC8C2D39C54E7C946031DD156C3A6B4A09AD29E1867A>def
- /@recognizeCIDFont null def
- /ct_Level2? exch def
- /ct_Clone? 1183615869 internaldict dup
- /CCRun known not
- exch/eCCRun known not
- ct_Level2? and or def
-ct_Level2?
- {globaldict begin currentglobal true setglobal}
-if
- /ct_AddStdCIDMap
- ct_Level2?
- {{
- mark
- Adobe_CoolType_Utility/@recognizeCIDFont currentdict put
- {
- ((Hex)57 StartData
- 0615 1e27 2c39 1c60 d8a8 cc31 fe2b f6e0
- 7aa3 e541 e21c 60d8 a8c9 c3d0 6d9e 1c60
- d8a8 c9c2 02d7 9a1c 60d8 a849 1c60 d8a8
- cc36 74f4 1144 b13b 77)0()/SubFileDecode filter cvx exec
- }
- stopped
- {
- cleartomark
- Adobe_CoolType_Utility/@recognizeCIDFont get
- countdictstack dup array dictstack
- exch 1 sub -1 0
- {
- 2 copy get 3 index eq
- {1 index length exch sub 1 sub{end}repeat exit}
- {pop}
- ifelse
- }
- for
- pop pop
- Adobe_CoolType_Utility/@eexecStartData get eexec
- }
- {cleartomark}
- ifelse
- }}
- {{
- Adobe_CoolType_Utility/@eexecStartData get eexec
- }}
- ifelse bind def
-userdict/cid_extensions known
-dup{cid_extensions/cid_UpdateDB known and}if
- {
- cid_extensions
- begin
- /cid_GetCIDSystemInfo
- {
- 1 index type/stringtype eq
- {exch cvn exch}
- if
- cid_extensions
- begin
- dup load 2 index known
- {
- 2 copy
- cid_GetStatusInfo
- dup null ne
- {
- 1 index load
- 3 index get
- dup null eq
- {pop pop cid_UpdateDB}
- {
- exch
- 1 index/Created get eq
- {exch pop exch pop}
- {pop cid_UpdateDB}
- ifelse
- }
- ifelse
- }
- {pop cid_UpdateDB}
- ifelse
- }
- {cid_UpdateDB}
- ifelse
- end
- }bind def
- end
- }
-if
-ct_Level2?
- {end setglobal}
-if
- /ct_UseNativeCapability? systemdict/composefont known def
- /ct_MakeOCF 35 dict def
- /ct_Vars 25 dict def
- /ct_GlyphDirProcs 6 dict def
- /ct_BuildCharDict 15 dict dup
- begin
- /charcode 2 string def
- /dst_string 1500 string def
- /nullstring()def
- /usewidths? true def
- end def
- ct_Level2?{setglobal}{pop}ifelse
- ct_GlyphDirProcs
- begin
- /GetGlyphDirectory
- {
- systemdict/languagelevel known
- {pop/CIDFont findresource/GlyphDirectory get}
- {
- 1 index/CIDFont findresource/GlyphDirectory
- get dup type/dicttype eq
- {
- dup dup maxlength exch length sub 2 index lt
- {
- dup length 2 index add dict copy 2 index
- /CIDFont findresource/GlyphDirectory 2 index put
- }
- if
- }
- if
- exch pop exch pop
- }
- ifelse
- +
- }def
- /+
- {
- systemdict/languagelevel known
- {
- currentglobal false setglobal
- 3 dict begin
- /vm exch def
- }
- {1 dict begin}
- ifelse
- /$ exch def
- systemdict/languagelevel known
- {
- vm setglobal
- /gvm currentglobal def
- $ gcheck setglobal
- }
- if
- ?{$ begin}if
- }def
- /?{$ type/dicttype eq}def
- /|{
- userdict/Adobe_CoolType_Data known
- {
- Adobe_CoolType_Data/AddWidths? known
- {
- currentdict Adobe_CoolType_Data
- begin
- begin
- AddWidths?
- {
- Adobe_CoolType_Data/CC 3 index put
- ?{def}{$ 3 1 roll put}ifelse
- CC charcode exch 1 index 0 2 index 256 idiv put
- 1 index exch 1 exch 256 mod put
- stringwidth 2 array astore
- currentfont/Widths get exch CC exch put
- }
- {?{def}{$ 3 1 roll put}ifelse}
- ifelse
- end
- end
- }
- {?{def}{$ 3 1 roll put}ifelse} ifelse
- }
- {?{def}{$ 3 1 roll put}ifelse}
- ifelse
- }def
- /!
- {
- ?{end}if
- systemdict/languagelevel known
- {gvm setglobal}
- if
- end
- }def
- /:{string currentfile exch readstring pop}executeonly def
- end
- ct_MakeOCF
- begin
- /ct_cHexEncoding
- [/c00/c01/c02/c03/c04/c05/c06/c07/c08/c09/c0A/c0B/c0C/c0D/c0E/c0F/c10/c11/c12
- /c13/c14/c15/c16/c17/c18/c19/c1A/c1B/c1C/c1D/c1E/c1F/c20/c21/c22/c23/c24/c25
- /c26/c27/c28/c29/c2A/c2B/c2C/c2D/c2E/c2F/c30/c31/c32/c33/c34/c35/c36/c37/c38
- /c39/c3A/c3B/c3C/c3D/c3E/c3F/c40/c41/c42/c43/c44/c45/c46/c47/c48/c49/c4A/c4B
- /c4C/c4D/c4E/c4F/c50/c51/c52/c53/c54/c55/c56/c57/c58/c59/c5A/c5B/c5C/c5D/c5E
- /c5F/c60/c61/c62/c63/c64/c65/c66/c67/c68/c69/c6A/c6B/c6C/c6D/c6E/c6F/c70/c71
- /c72/c73/c74/c75/c76/c77/c78/c79/c7A/c7B/c7C/c7D/c7E/c7F/c80/c81/c82/c83/c84
- /c85/c86/c87/c88/c89/c8A/c8B/c8C/c8D/c8E/c8F/c90/c91/c92/c93/c94/c95/c96/c97
- /c98/c99/c9A/c9B/c9C/c9D/c9E/c9F/cA0/cA1/cA2/cA3/cA4/cA5/cA6/cA7/cA8/cA9/cAA
- /cAB/cAC/cAD/cAE/cAF/cB0/cB1/cB2/cB3/cB4/cB5/cB6/cB7/cB8/cB9/cBA/cBB/cBC/cBD
- /cBE/cBF/cC0/cC1/cC2/cC3/cC4/cC5/cC6/cC7/cC8/cC9/cCA/cCB/cCC/cCD/cCE/cCF/cD0
- /cD1/cD2/cD3/cD4/cD5/cD6/cD7/cD8/cD9/cDA/cDB/cDC/cDD/cDE/cDF/cE0/cE1/cE2/cE3
- /cE4/cE5/cE6/cE7/cE8/cE9/cEA/cEB/cEC/cED/cEE/cEF/cF0/cF1/cF2/cF3/cF4/cF5/cF6
- /cF7/cF8/cF9/cFA/cFB/cFC/cFD/cFE/cFF]def
- /ct_CID_STR_SIZE 8000 def
- /ct_mkocfStr100 100 string def
- /ct_defaultFontMtx[.001 0 0 .001 0 0]def
- /ct_1000Mtx[1000 0 0 1000 0 0]def
- /ct_raise{exch cvx exch errordict exch get exec stop}bind def
- /ct_reraise
- {cvx $error/errorname get(Error: )print dup( )cvs print
- errordict exch get exec stop
- }bind def
- /ct_cvnsi
- {
- 1 index add 1 sub 1 exch 0 4 1 roll
- {
- 2 index exch get
- exch 8 bitshift
- add
- }
- for
- exch pop
- }bind def
- /ct_GetInterval
- {
- Adobe_CoolType_Utility/ct_BuildCharDict get
- begin
- /dst_index 0 def
- dup dst_string length gt
- {dup string/dst_string exch def}
- if
- 1 index ct_CID_STR_SIZE idiv
- /arrayIndex exch def
- 2 index arrayIndex get
- 2 index
- arrayIndex ct_CID_STR_SIZE mul
- sub
- {
- dup 3 index add 2 index length le
- {
- 2 index getinterval
- dst_string dst_index 2 index putinterval
- length dst_index add/dst_index exch def
- exit
- }
- {
- 1 index length 1 index sub
- dup 4 1 roll
- getinterval
- dst_string dst_index 2 index putinterval
- pop dup dst_index add/dst_index exch def
- sub
- /arrayIndex arrayIndex 1 add def
- 2 index dup length arrayIndex gt
- {arrayIndex get}
- {
- pop
- exit
- }
- ifelse
- 0
- }
- ifelse
- }
- loop
- pop pop pop
- dst_string 0 dst_index getinterval
- end
- }bind def
- ct_Level2?
- {
- /ct_resourcestatus
- currentglobal mark true setglobal
- {/unknowninstancename/Category resourcestatus}
- stopped
- {cleartomark setglobal true}
- {cleartomark currentglobal not exch setglobal}
- ifelse
- {
- {
- mark 3 1 roll/Category findresource
- begin
- ct_Vars/vm currentglobal put
- ({ResourceStatus}stopped)0()/SubFileDecode filter cvx exec
- {cleartomark false}
- {{3 2 roll pop true}{cleartomark false}ifelse}
- ifelse
- ct_Vars/vm get setglobal
- end
- }
- }
- {{resourcestatus}}
- ifelse bind def
- /CIDFont/Category ct_resourcestatus
- {pop pop}
- {
- currentglobal true setglobal
- /Generic/Category findresource
- dup length dict copy
- dup/InstanceType/dicttype put
- /CIDFont exch/Category defineresource pop
- setglobal
- }
- ifelse
- ct_UseNativeCapability?
- {
- /CIDInit/ProcSet findresource begin
- 12 dict begin
- begincmap
- /CIDSystemInfo 3 dict dup begin
- /Registry(Adobe)def
- /Ordering(Identity)def
- /Supplement 0 def
- end def
- /CMapName/Identity-H def
- /CMapVersion 1.000 def
- /CMapType 1 def
- 1 begincodespacerange
- <0000><FFFF>
- endcodespacerange
- 1 begincidrange
- <0000><FFFF>0
- endcidrange
- endcmap
- CMapName currentdict/CMap defineresource pop
- end
- end
- }
- if
- }
- {
- /ct_Category 2 dict begin
- /CIDFont 10 dict def
- /ProcSet 2 dict def
- currentdict
- end
- def
- /defineresource
- {
- ct_Category 1 index 2 copy known
- {
- get
- dup dup maxlength exch length eq
- {
- dup length 10 add dict copy
- ct_Category 2 index 2 index put
- }
- if
- 3 index 3 index put
- pop exch pop
- }
- {pop pop/defineresource/undefined ct_raise}
- ifelse
- }bind def
- /findresource
- {
- ct_Category 1 index 2 copy known
- {
- get
- 2 index 2 copy known
- {get 3 1 roll pop pop}
- {pop pop/findresource/undefinedresource ct_raise}
- ifelse
- }
- {pop pop/findresource/undefined ct_raise}
- ifelse
- }bind def
- /resourcestatus
- {
- ct_Category 1 index 2 copy known
- {
- get
- 2 index known
- exch pop exch pop
- {
- 0 -1 true
- }
- {
- false
- }
- ifelse
- }
- {pop pop/findresource/undefined ct_raise}
- ifelse
- }bind def
- /ct_resourcestatus/resourcestatus load def
- }
- ifelse
- /ct_CIDInit 2 dict
- begin
- /ct_cidfont_stream_init
- {
- {
- dup(Binary)eq
- {
- pop
- null
- currentfile
- ct_Level2?
- {
- {cid_BYTE_COUNT()/SubFileDecode filter}
- stopped
- {pop pop pop}
- if
- }
- if
- /readstring load
- exit
- }
- if
- dup(Hex)eq
- {
- pop
- currentfile
- ct_Level2?
- {
- {null exch/ASCIIHexDecode filter/readstring}
- stopped
- {pop exch pop(>)exch/readhexstring}
- if
- }
- {(>)exch/readhexstring}
- ifelse
- load
- exit
- }
- if
- /StartData/typecheck ct_raise
- }
- loop
- cid_BYTE_COUNT ct_CID_STR_SIZE le
- {
- 2 copy cid_BYTE_COUNT string exch exec
- pop
- 1 array dup
- 3 -1 roll
- 0 exch put
- }
- {
- cid_BYTE_COUNT ct_CID_STR_SIZE div ceiling cvi
- dup array exch 2 sub 0 exch 1 exch
- {
- 2 copy
- 5 index
- ct_CID_STR_SIZE
- string
- 6 index exec
- pop
- put
- pop
- }
- for
- 2 index
- cid_BYTE_COUNT ct_CID_STR_SIZE mod string
- 3 index exec
- pop
- 1 index exch
- 1 index length 1 sub
- exch put
- }
- ifelse
- cid_CIDFONT exch/GlyphData exch put
- 2 index null eq
- {
- pop pop pop
- }
- {
- pop/readstring load
- 1 string exch
- {
- 3 copy exec
- pop
- dup length 0 eq
- {
- pop pop pop pop pop
- true exit
- }
- if
- 4 index
- eq
- {
- pop pop pop pop
- false exit
- }
- if
- }
- loop
- pop
- }
- ifelse
- }bind def
- /StartData
- {
- mark
- {
- currentdict
- dup/FDArray get 0 get/FontMatrix get
- 0 get 0.001 eq
- {
- dup/CDevProc known not
- {
- /CDevProc 1183615869 internaldict/stdCDevProc 2 copy known
- {get}
- {
- pop pop
- {pop pop pop pop pop 0 -1000 7 index 2 div 880}
- }
- ifelse
- def
- }
- if
- }
- {
- /CDevProc
- {
- pop pop pop pop pop
- 0
- 1 cid_temp/cid_CIDFONT get
- /FDArray get 0 get
- /FontMatrix get 0 get div
- 7 index 2 div
- 1 index 0.88 mul
- }def
- }
- ifelse
- /cid_temp 15 dict def
- cid_temp
- begin
- /cid_CIDFONT exch def
- 3 copy pop
- dup/cid_BYTE_COUNT exch def 0 gt
- {
- ct_cidfont_stream_init
- FDArray
- {
- /Private get
- dup/SubrMapOffset known
- {
- begin
- /Subrs SubrCount array def
- Subrs
- SubrMapOffset
- SubrCount
- SDBytes
- ct_Level2?
- {
- currentdict dup/SubrMapOffset undef
- dup/SubrCount undef
- /SDBytes undef
- }
- if
- end
- /cid_SD_BYTES exch def
- /cid_SUBR_COUNT exch def
- /cid_SUBR_MAP_OFFSET exch def
- /cid_SUBRS exch def
- cid_SUBR_COUNT 0 gt
- {
- GlyphData cid_SUBR_MAP_OFFSET cid_SD_BYTES ct_GetInterval
- 0 cid_SD_BYTES ct_cvnsi
- 0 1 cid_SUBR_COUNT 1 sub
- {
- exch 1 index
- 1 add
- cid_SD_BYTES mul cid_SUBR_MAP_OFFSET add
- GlyphData exch cid_SD_BYTES ct_GetInterval
- 0 cid_SD_BYTES ct_cvnsi
- cid_SUBRS 4 2 roll
- GlyphData exch
- 4 index
- 1 index
- sub
- ct_GetInterval
- dup length string copy put
- }
- for
- pop
- }
- if
- }
- {pop}
- ifelse
- }
- forall
- }
- if
- cleartomark pop pop
- end
- CIDFontName currentdict/CIDFont defineresource pop
- end end
- }
- stopped
- {cleartomark/StartData ct_reraise}
- if
- }bind def
- currentdict
- end def
- /ct_saveCIDInit
- {
- /CIDInit/ProcSet ct_resourcestatus
- {true}
- {/CIDInitC/ProcSet ct_resourcestatus}
- ifelse
- {
- pop pop
- /CIDInit/ProcSet findresource
- ct_UseNativeCapability?
- {pop null}
- {/CIDInit ct_CIDInit/ProcSet defineresource pop}
- ifelse
- }
- {/CIDInit ct_CIDInit/ProcSet defineresource pop null}
- ifelse
- ct_Vars exch/ct_oldCIDInit exch put
- }bind def
- /ct_restoreCIDInit
- {
- ct_Vars/ct_oldCIDInit get dup null ne
- {/CIDInit exch/ProcSet defineresource pop}
- {pop}
- ifelse
- }bind def
- /ct_BuildCharSetUp
- {
- 1 index
- begin
- CIDFont
- begin
- Adobe_CoolType_Utility/ct_BuildCharDict get
- begin
- /ct_dfCharCode exch def
- /ct_dfDict exch def
- CIDFirstByte ct_dfCharCode add
- dup CIDCount ge
- {pop 0}
- if
- /cid exch def
- {
- GlyphDirectory cid 2 copy known
- {get}
- {pop pop nullstring}
- ifelse
- dup length FDBytes sub 0 gt
- {
- dup
- FDBytes 0 ne
- {0 FDBytes ct_cvnsi}
- {pop 0}
- ifelse
- /fdIndex exch def
- dup length FDBytes sub FDBytes exch getinterval
- /charstring exch def
- exit
- }
- {
- pop
- cid 0 eq
- {/charstring nullstring def exit}
- if
- /cid 0 def
- }
- ifelse
- }
- loop
- }def
- /ct_SetCacheDevice
- {
- 0 0 moveto
- dup stringwidth
- 3 -1 roll
- true charpath
- pathbbox
- 0 -1000
- 7 index 2 div 880
- setcachedevice2
- 0 0 moveto
- }def
- /ct_CloneSetCacheProc
- {
- 1 eq
- {
- stringwidth
- pop -2 div -880
- 0 -1000 setcharwidth
- moveto
- }
- {
- usewidths?
- {
- currentfont/Widths get cid
- 2 copy known
- {get exch pop aload pop}
- {pop pop stringwidth}
- ifelse
- }
- {stringwidth}
- ifelse
- setcharwidth
- 0 0 moveto
- }
- ifelse
- }def
- /ct_Type3ShowCharString
- {
- ct_FDDict fdIndex 2 copy known
- {get}
- {
- currentglobal 3 1 roll
- 1 index gcheck setglobal
- ct_Type1FontTemplate dup maxlength dict copy
- begin
- FDArray fdIndex get
- dup/FontMatrix 2 copy known
- {get}
- {pop pop ct_defaultFontMtx}
- ifelse
- /FontMatrix exch dup length array copy def
- /Private get
- /Private exch def
- /Widths rootfont/Widths get def
- /CharStrings 1 dict dup/.notdef
- <d841272cf18f54fc13>dup length string copy put def
- currentdict
- end
- /ct_Type1Font exch definefont
- dup 5 1 roll put
- setglobal
- }
- ifelse
- dup/CharStrings get 1 index/Encoding get
- ct_dfCharCode get charstring put
- rootfont/WMode 2 copy known
- {get}
- {pop pop 0}
- ifelse
- exch
- 1000 scalefont setfont
- ct_str1 0 ct_dfCharCode put
- ct_str1 exch ct_dfSetCacheProc
- ct_SyntheticBold
- {
- currentpoint
- ct_str1 show
- newpath
- moveto
- ct_str1 true charpath
- ct_StrokeWidth setlinewidth
- stroke
- }
- {ct_str1 show}
- ifelse
- }def
- /ct_Type4ShowCharString
- {
- ct_dfDict ct_dfCharCode charstring
- FDArray fdIndex get
- dup/FontMatrix get dup ct_defaultFontMtx ct_matrixeq not
- {ct_1000Mtx matrix concatmatrix concat}
- {pop}
- ifelse
- /Private get
- Adobe_CoolType_Utility/ct_Level2? get not
- {
- ct_dfDict/Private
- 3 -1 roll
- {put}
- 1183615869 internaldict/superexec get exec
- }
- if
- 1183615869 internaldict
- Adobe_CoolType_Utility/ct_Level2? get
- {1 index}
- {3 index/Private get mark 6 1 roll}
- ifelse
- dup/RunInt known
- {/RunInt get}
- {pop/CCRun}
- ifelse
- get exec
- Adobe_CoolType_Utility/ct_Level2? get not
- {cleartomark}
- if
- }bind def
- /ct_BuildCharIncremental
- {
- {
- Adobe_CoolType_Utility/ct_MakeOCF get begin
- ct_BuildCharSetUp
- ct_ShowCharString
- }
- stopped
- {stop}
- if
- end
- end
- end
- end
- }bind def
- /BaseFontNameStr(BF00)def
- /ct_Type1FontTemplate 14 dict
- begin
- /FontType 1 def
- /FontMatrix [0.001 0 0 0.001 0 0]def
- /FontBBox [-250 -250 1250 1250]def
- /Encoding ct_cHexEncoding def
- /PaintType 0 def
- currentdict
- end def
- /BaseFontTemplate 11 dict
- begin
- /FontMatrix [0.001 0 0 0.001 0 0]def
- /FontBBox [-250 -250 1250 1250]def
- /Encoding ct_cHexEncoding def
- /BuildChar/ct_BuildCharIncremental load def
- ct_Clone?
- {
- /FontType 3 def
- /ct_ShowCharString/ct_Type3ShowCharString load def
- /ct_dfSetCacheProc/ct_CloneSetCacheProc load def
- /ct_SyntheticBold false def
- /ct_StrokeWidth 1 def
- }
- {
- /FontType 4 def
- /Private 1 dict dup/lenIV 4 put def
- /CharStrings 1 dict dup/.notdef<d841272cf18f54fc13>put def
- /PaintType 0 def
- /ct_ShowCharString/ct_Type4ShowCharString load def
- }
- ifelse
- /ct_str1 1 string def
- currentdict
- end def
- /BaseFontDictSize BaseFontTemplate length 5 add def
- /ct_matrixeq
- {
- true 0 1 5
- {
- dup 4 index exch get exch 3 index exch get eq and
- dup not
- {exit}
- if
- }
- for
- exch pop exch pop
- }bind def
- /ct_makeocf
- {
- 15 dict
- begin
- exch/WMode exch def
- exch/FontName exch def
- /FontType 0 def
- /FMapType 2 def
- dup/FontMatrix known
- {dup/FontMatrix get/FontMatrix exch def}
- {/FontMatrix matrix def}
- ifelse
- /bfCount 1 index/CIDCount get 256 idiv 1 add
- dup 256 gt{pop 256}if def
- /Encoding
- 256 array 0 1 bfCount 1 sub{2 copy dup put pop}for
- bfCount 1 255{2 copy bfCount put pop}for
- def
- /FDepVector bfCount dup 256 lt{1 add}if array def
- BaseFontTemplate BaseFontDictSize dict copy
- begin
- /CIDFont exch def
- CIDFont/FontBBox known
- {CIDFont/FontBBox get/FontBBox exch def}
- if
- CIDFont/CDevProc known
- {CIDFont/CDevProc get/CDevProc exch def}
- if
- currentdict
- end
- BaseFontNameStr 3(0)putinterval
- 0 1 bfCount dup 256 eq{1 sub}if
- {
- FDepVector exch
- 2 index BaseFontDictSize dict copy
- begin
- dup/CIDFirstByte exch 256 mul def
- FontType 3 eq
- {/ct_FDDict 2 dict def}
- if
- currentdict
- end
- 1 index 16
- BaseFontNameStr 2 2 getinterval cvrs pop
- BaseFontNameStr exch definefont
- put
- }
- for
- ct_Clone?
- {/Widths 1 index/CIDFont get/GlyphDirectory get length dict def}
- if
- FontName
- currentdict
- end
- definefont
- ct_Clone?
- {
- gsave
- dup 1000 scalefont setfont
- ct_BuildCharDict
- begin
- /usewidths? false def
- currentfont/Widths get
- begin
- exch/CIDFont get/GlyphDirectory get
- {
- pop
- dup charcode exch 1 index 0 2 index 256 idiv put
- 1 index exch 1 exch 256 mod put
- stringwidth 2 array astore def
- }
- forall
- end
- /usewidths? true def
- end
- grestore
- }
- {exch pop}
- ifelse
- }bind def
- currentglobal true setglobal
- /ct_ComposeFont
- {
- ct_UseNativeCapability?
- {
- 2 index/CMap ct_resourcestatus
- {pop pop exch pop}
- {
- /CIDInit/ProcSet findresource
- begin
- 12 dict
- begin
- begincmap
- /CMapName 3 index def
- /CMapVersion 1.000 def
- /CMapType 1 def
- exch/WMode exch def
- /CIDSystemInfo 3 dict dup
- begin
- /Registry(Adobe)def
- /Ordering
- CMapName ct_mkocfStr100 cvs
- (Adobe-)search
- {
- pop pop
- (-)search
- {
- dup length string copy
- exch pop exch pop
- }
- {pop(Identity)}
- ifelse
- }
- {pop (Identity)}
- ifelse
- def
- /Supplement 0 def
- end def
- 1 begincodespacerange
- <0000><FFFF>
- endcodespacerange
- 1 begincidrange
- <0000><FFFF>0
- endcidrange
- endcmap
- CMapName currentdict/CMap defineresource pop
- end
- end
- }
- ifelse
- composefont
- }
- {
- 3 2 roll pop
- 0 get/CIDFont findresource
- ct_makeocf
- }
- ifelse
- }bind def
- setglobal
- /ct_MakeIdentity
- {
- ct_UseNativeCapability?
- {
- 1 index/CMap ct_resourcestatus
- {pop pop}
- {
- /CIDInit/ProcSet findresource begin
- 12 dict begin
- begincmap
- /CMapName 2 index def
- /CMapVersion 1.000 def
- /CMapType 1 def
- /CIDSystemInfo 3 dict dup
- begin
- /Registry(Adobe)def
- /Ordering
- CMapName ct_mkocfStr100 cvs
- (Adobe-)search
- {
- pop pop
- (-)search
- {dup length string copy exch pop exch pop}
- {pop(Identity)}
- ifelse
- }
- {pop(Identity)}
- ifelse
- def
- /Supplement 0 def
- end def
- 1 begincodespacerange
- <0000><FFFF>
- endcodespacerange
- 1 begincidrange
- <0000><FFFF>0
- endcidrange
- endcmap
- CMapName currentdict/CMap defineresource pop
- end
- end
- }
- ifelse
- composefont
- }
- {
- exch pop
- 0 get/CIDFont findresource
- ct_makeocf
- }
- ifelse
- }bind def
- currentdict readonly pop
- end
- end
-%%EndResource
-setglobal
-%%BeginResource: procset Adobe_CoolType_Utility_T42 1.0 0
-%%Copyright: Copyright 1987-2004 Adobe Systems Incorporated.
-%%Version: 1.0 0
-userdict/ct_T42Dict 15 dict put
-ct_T42Dict begin
-/Is2015?
-{
- version
- cvi
- 2015
- ge
-}bind def
-/AllocGlyphStorage
-{
- Is2015?
- {
- pop
- }
- {
- {string}forall
- }ifelse
-}bind def
-/Type42DictBegin
-{
-25 dict begin
- /FontName exch def
- /CharStrings 256 dict
-begin
- /.notdef 0 def
- currentdict
-end def
- /Encoding exch def
- /PaintType 0 def
- /FontType 42 def
- /FontMatrix[1 0 0 1 0 0]def
- 4 array astore cvx/FontBBox exch def
- /sfnts
-}bind def
-/Type42DictEnd
-{
- currentdict dup/FontName get exch definefont end
-ct_T42Dict exch
-dup/FontName get exch put
-}bind def
-/RD{string currentfile exch readstring pop}executeonly def
-/PrepFor2015
-{
-Is2015?
-{
- /GlyphDirectory
- 16
- dict def
- sfnts 0 get
- dup
- 2 index
- (glyx)
- putinterval
- 2 index
- (locx)
- putinterval
- pop
- pop
-}
-{
- pop
- pop
-}ifelse
-}bind def
-/AddT42Char
-{
-Is2015?
-{
- /GlyphDirectory get
- begin
- def
- end
- pop
- pop
-}
-{
- /sfnts get
- 4 index
- get
- 3 index
- 2 index
- putinterval
- pop
- pop
- pop
- pop
-}ifelse
-}bind def
-/T0AddT42Mtx2
-{
-/CIDFont findresource/Metrics2 get begin def end
-}bind def
-end
-%%EndResource
-currentglobal true setglobal
-%%BeginFile: MMFauxFont.prc
-%%Copyright: Copyright 1987-2001 Adobe Systems Incorporated.
-%%All Rights Reserved.
-userdict /ct_EuroDict 10 dict put
-ct_EuroDict begin
-/ct_CopyFont
-{
- { 1 index /FID ne {def} {pop pop} ifelse} forall
-} def
-/ct_GetGlyphOutline
-{
- gsave
- initmatrix newpath
- exch findfont dup
- length 1 add dict
- begin
- ct_CopyFont
- /Encoding Encoding dup length array copy
- dup
- 4 -1 roll
- 0 exch put
- def
- currentdict
- end
- /ct_EuroFont exch definefont
- 1000 scalefont setfont
- 0 0 moveto
- [
- <00> stringwidth
- <00> false charpath
- pathbbox
- [
- {/m cvx} {/l cvx} {/c cvx} {/cp cvx} pathforall
- grestore
- counttomark 8 add
-}
-def
-/ct_MakeGlyphProc
-{
- ] cvx
- /ct_PSBuildGlyph cvx
- ] cvx
-} def
-/ct_PSBuildGlyph
-{
- gsave
- 8 -1 roll pop
- 7 1 roll
- 6 -2 roll ct_FontMatrix transform 6 2 roll
- 4 -2 roll ct_FontMatrix transform 4 2 roll
- ct_FontMatrix transform
- currentdict /PaintType 2 copy known {get 2 eq}{pop pop false} ifelse
- dup 9 1 roll
- {
- currentdict /StrokeWidth 2 copy known
- {
- get 2 div
- 0 ct_FontMatrix dtransform pop
- 5 1 roll
- 4 -1 roll 4 index sub
- 4 1 roll
- 3 -1 roll 4 index sub
- 3 1 roll
- exch 4 index add exch
- 4 index add
- 5 -1 roll pop
- }
- {
- pop pop
- }
- ifelse
- }
- if
- setcachedevice
- ct_FontMatrix concat
- ct_PSPathOps begin
- exec
- end
- {
- currentdict /StrokeWidth 2 copy known
- { get }
- { pop pop 0 }
- ifelse
- setlinewidth stroke
- }
- {
- fill
- }
- ifelse
- grestore
-} def
-/ct_PSPathOps 4 dict dup begin
- /m {moveto} def
- /l {lineto} def
- /c {curveto} def
- /cp {closepath} def
-end
-def
-/ct_matrix1000 [1000 0 0 1000 0 0] def
-/ct_AddGlyphProc
-{
- 2 index findfont dup length 4 add dict
- begin
- ct_CopyFont
- /CharStrings CharStrings dup length 1 add dict copy
- begin
- 3 1 roll def
- currentdict
- end
- def
- /ct_FontMatrix ct_matrix1000 FontMatrix matrix concatmatrix def
- /ct_PSBuildGlyph /ct_PSBuildGlyph load def
- /ct_PSPathOps /ct_PSPathOps load def
- currentdict
- end
- definefont pop
-}
-def
-systemdict /languagelevel known
-{
- /ct_AddGlyphToPrinterFont {
- 2 copy
- ct_GetGlyphOutline 3 add -1 roll restore
- ct_MakeGlyphProc
- ct_AddGlyphProc
- } def
-}
-{
- /ct_AddGlyphToPrinterFont {
- pop pop restore
- Adobe_CTFauxDict /$$$FONTNAME get
- /Euro
- Adobe_CTFauxDict /$$$SUBSTITUTEBASE get
- ct_EuroDict exch get
- ct_AddGlyphProc
- } def
-} ifelse
-/AdobeSansMM
-{
-556 0 24 -19 541 703
- {
- 541 628 m
- 510 669 442 703 354 703 c
- 201 703 117 607 101 444 c
- 50 444 l
- 25 372 l
- 97 372 l
- 97 301 l
- 49 301 l
- 24 229 l
- 103 229 l
- 124 67 209 -19 350 -19 c
- 435 -19 501 25 509 32 c
- 509 131 l
- 492 105 417 60 343 60 c
- 267 60 204 127 197 229 c
- 406 229 l
- 430 301 l
- 191 301 l
- 191 372 l
- 455 372 l
- 479 444 l
- 194 444 l
- 201 531 245 624 348 624 c
- 433 624 484 583 509 534 c
- cp
- 556 0 m
- }
-ct_PSBuildGlyph
-} def
-/AdobeSerifMM
-{
-500 0 10 -12 484 692
- {
- 347 298 m
- 171 298 l
- 170 310 170 322 170 335 c
- 170 362 l
- 362 362 l
- 374 403 l
- 172 403 l
- 184 580 244 642 308 642 c
- 380 642 434 574 457 457 c
- 481 462 l
- 474 691 l
- 449 691 l
- 433 670 429 657 410 657 c
- 394 657 360 692 299 692 c
- 204 692 94 604 73 403 c
- 22 403 l
- 10 362 l
- 70 362 l
- 69 352 69 341 69 330 c
- 69 319 69 308 70 298 c
- 22 298 l
- 10 257 l
- 73 257 l
- 97 57 216 -12 295 -12 c
- 364 -12 427 25 484 123 c
- 458 142 l
- 425 101 384 37 316 37 c
- 256 37 189 84 173 257 c
- 335 257 l
- cp
- 500 0 m
- }
-ct_PSBuildGlyph
-} def
-end
-%%EndFile
-setglobal
-Adobe_CoolType_Core begin /$None SetSubstituteStrategy end
-%%BeginResource: procset Adobe_AGM_Image 1.0 0
-%%Version: 1.0 0
-%%Copyright: Copyright(C)2000-2006 Adobe Systems, Inc. All Rights Reserved.
-systemdict/setpacking known
-{
- currentpacking
- true setpacking
-}if
-userdict/Adobe_AGM_Image 71 dict dup begin put
-/Adobe_AGM_Image_Id/Adobe_AGM_Image_1.0_0 def
-/nd{
- null def
-}bind def
-/AGMIMG_&image nd
-/AGMIMG_&colorimage nd
-/AGMIMG_&imagemask nd
-/AGMIMG_mbuf()def
-/AGMIMG_ybuf()def
-/AGMIMG_kbuf()def
-/AGMIMG_c 0 def
-/AGMIMG_m 0 def
-/AGMIMG_y 0 def
-/AGMIMG_k 0 def
-/AGMIMG_tmp nd
-/AGMIMG_imagestring0 nd
-/AGMIMG_imagestring1 nd
-/AGMIMG_imagestring2 nd
-/AGMIMG_imagestring3 nd
-/AGMIMG_imagestring4 nd
-/AGMIMG_imagestring5 nd
-/AGMIMG_cnt nd
-/AGMIMG_fsave nd
-/AGMIMG_colorAry nd
-/AGMIMG_override nd
-/AGMIMG_name nd
-/AGMIMG_maskSource nd
-/AGMIMG_flushfilters nd
-/invert_image_samples nd
-/knockout_image_samples nd
-/img nd
-/sepimg nd
-/devnimg nd
-/idximg nd
-/ds
-{
- Adobe_AGM_Core begin
- Adobe_AGM_Image begin
- /AGMIMG_&image systemdict/image get def
- /AGMIMG_&imagemask systemdict/imagemask get def
- /colorimage where{
- pop
- /AGMIMG_&colorimage/colorimage ldf
- }if
- end
- end
-}def
-/ps
-{
- Adobe_AGM_Image begin
- /AGMIMG_ccimage_exists{/customcolorimage where
- {
- pop
- /Adobe_AGM_OnHost_Seps where
- {
- pop false
- }{
- /Adobe_AGM_InRip_Seps where
- {
- pop false
- }{
- true
- }ifelse
- }ifelse
- }{
- false
- }ifelse
- }bdf
- level2{
- /invert_image_samples
- {
- Adobe_AGM_Image/AGMIMG_tmp Decode length ddf
- /Decode[Decode 1 get Decode 0 get]def
- }def
- /knockout_image_samples
- {
- Operator/imagemask ne{
- /Decode[1 1]def
- }if
- }def
- }{
- /invert_image_samples
- {
- {1 exch sub}currenttransfer addprocs settransfer
- }def
- /knockout_image_samples
- {
- {pop 1}currenttransfer addprocs settransfer
- }def
- }ifelse
- /img/imageormask ldf
- /sepimg/sep_imageormask ldf
- /devnimg/devn_imageormask ldf
- /idximg/indexed_imageormask ldf
- /_ctype 7 def
- currentdict{
- dup xcheck 1 index type dup/arraytype eq exch/packedarraytype eq or and{
- bind
- }if
- def
- }forall
-}def
-/pt
-{
- end
-}def
-/dt
-{
-}def
-/AGMIMG_flushfilters
-{
- dup type/arraytype ne
- {1 array astore}if
- dup 0 get currentfile ne
- {dup 0 get flushfile}if
- {
- dup type/filetype eq
- {
- dup status 1 index currentfile ne and
- {closefile}
- {pop}
- ifelse
- }{pop}ifelse
- }forall
-}def
-/AGMIMG_init_common
-{
- currentdict/T known{/ImageType/T ldf currentdict/T undef}if
- currentdict/W known{/Width/W ldf currentdict/W undef}if
- currentdict/H known{/Height/H ldf currentdict/H undef}if
- currentdict/M known{/ImageMatrix/M ldf currentdict/M undef}if
- currentdict/BC known{/BitsPerComponent/BC ldf currentdict/BC undef}if
- currentdict/D known{/Decode/D ldf currentdict/D undef}if
- currentdict/DS known{/DataSource/DS ldf currentdict/DS undef}if
- currentdict/O known{
- /Operator/O load 1 eq{
- /imagemask
- }{
- /O load 2 eq{
- /image
- }{
- /colorimage
- }ifelse
- }ifelse
- def
- currentdict/O undef
- }if
- currentdict/HSCI known{/HostSepColorImage/HSCI ldf currentdict/HSCI undef}if
- currentdict/MD known{/MultipleDataSources/MD ldf currentdict/MD undef}if
- currentdict/I known{/Interpolate/I ldf currentdict/I undef}if
- currentdict/SI known{/SkipImageProc/SI ldf currentdict/SI undef}if
- /DataSource load xcheck not{
- DataSource type/arraytype eq{
- DataSource 0 get type/filetype eq{
- /_Filters DataSource def
- currentdict/MultipleDataSources known not{
- /DataSource DataSource dup length 1 sub get def
- }if
- }if
- }if
- currentdict/MultipleDataSources known not{
- /MultipleDataSources DataSource type/arraytype eq{
- DataSource length 1 gt
- }
- {false}ifelse def
- }if
- }if
- /NComponents Decode length 2 div def
- currentdict/SkipImageProc known not{/SkipImageProc{false}def}if
-}bdf
-/imageormask_sys
-{
- begin
- AGMIMG_init_common
- save mark
- level2{
- currentdict
- Operator/imagemask eq{
- AGMIMG_&imagemask
- }{
- use_mask{
- process_mask AGMIMG_&image
- }{
- AGMIMG_&image
- }ifelse
- }ifelse
- }{
- Width Height
- Operator/imagemask eq{
- Decode 0 get 1 eq Decode 1 get 0 eq and
- ImageMatrix/DataSource load
- AGMIMG_&imagemask
- }{
- BitsPerComponent ImageMatrix/DataSource load
- AGMIMG_&image
- }ifelse
- }ifelse
- currentdict/_Filters known{_Filters AGMIMG_flushfilters}if
- cleartomark restore
- end
-}def
-/overprint_plate
-{
- currentoverprint{
- 0 get dup type/nametype eq{
- dup/DeviceGray eq{
- pop AGMCORE_black_plate not
- }{
- /DeviceCMYK eq{
- AGMCORE_is_cmyk_sep not
- }if
- }ifelse
- }{
- false exch
- {
- AGMOHS_sepink eq or
- }forall
- not
- }ifelse
- }{
- pop false
- }ifelse
-}def
-/process_mask
-{
- level3{
- dup begin
- /ImageType 1 def
- end
- 4 dict begin
- /DataDict exch def
- /ImageType 3 def
- /InterleaveType 3 def
- /MaskDict 9 dict begin
- /ImageType 1 def
- /Width DataDict dup/MaskWidth known{/MaskWidth}{/Width}ifelse get def
- /Height DataDict dup/MaskHeight known{/MaskHeight}{/Height}ifelse get def
- /ImageMatrix[Width 0 0 Height neg 0 Height]def
- /NComponents 1 def
- /BitsPerComponent 1 def
- /Decode DataDict dup/MaskD known{/MaskD}{[1 0]}ifelse get def
- /DataSource Adobe_AGM_Core/AGMIMG_maskSource get def
- currentdict end def
- currentdict end
- }if
-}def
-/use_mask
-{
- dup/Mask known {dup/Mask get}{false}ifelse
-}def
-/imageormask
-{
- begin
- AGMIMG_init_common
- SkipImageProc{
- currentdict consumeimagedata
- }
- {
- save mark
- level2 AGMCORE_host_sep not and{
- currentdict
- Operator/imagemask eq DeviceN_PS2 not and{
- imagemask
- }{
- AGMCORE_in_rip_sep currentoverprint and currentcolorspace 0 get/DeviceGray eq and{
- [/Separation/Black/DeviceGray{}]setcolorspace
- /Decode[Decode 1 get Decode 0 get]def
- }if
- use_mask{
- process_mask image
- }{
- DeviceN_NoneName DeviceN_PS2 Indexed_DeviceN level3 not and or or AGMCORE_in_rip_sep and
- {
- Names convert_to_process not{
- 2 dict begin
- /imageDict xdf
- /names_index 0 def
- gsave
- imageDict write_image_file{
- Names{
- dup(None)ne{
- [/Separation 3 -1 roll/DeviceGray{1 exch sub}]setcolorspace
- Operator imageDict read_image_file
- names_index 0 eq{true setoverprint}if
- /names_index names_index 1 add def
- }{
- pop
- }ifelse
- }forall
- close_image_file
- }if
- grestore
- end
- }{
- Operator/imagemask eq{
- imagemask
- }{
- image
- }ifelse
- }ifelse
- }{
- Operator/imagemask eq{
- imagemask
- }{
- image
- }ifelse
- }ifelse
- }ifelse
- }ifelse
- }{
- Width Height
- Operator/imagemask eq{
- Decode 0 get 1 eq Decode 1 get 0 eq and
- ImageMatrix/DataSource load
- /Adobe_AGM_OnHost_Seps where{
- pop imagemask
- }{
- currentgray 1 ne{
- currentdict imageormask_sys
- }{
- currentoverprint not{
- 1 AGMCORE_&setgray
- currentdict imageormask_sys
- }{
- currentdict ignoreimagedata
- }ifelse
- }ifelse
- }ifelse
- }{
- BitsPerComponent ImageMatrix
- MultipleDataSources{
- 0 1 NComponents 1 sub{
- DataSource exch get
- }for
- }{
- /DataSource load
- }ifelse
- Operator/colorimage eq{
- AGMCORE_host_sep{
- MultipleDataSources level2 or NComponents 4 eq and{
- AGMCORE_is_cmyk_sep{
- MultipleDataSources{
- /DataSource DataSource 0 get xcheck
- {
- [
- DataSource 0 get/exec cvx
- DataSource 1 get/exec cvx
- DataSource 2 get/exec cvx
- DataSource 3 get/exec cvx
- /AGMCORE_get_ink_data cvx
- ]cvx
- }{
- DataSource aload pop AGMCORE_get_ink_data
- }ifelse def
- }{
- /DataSource
- Width BitsPerComponent mul 7 add 8 idiv Height mul 4 mul
- /DataSource load
- filter_cmyk 0()/SubFileDecode filter def
- }ifelse
- /Decode[Decode 0 get Decode 1 get]def
- /MultipleDataSources false def
- /NComponents 1 def
- /Operator/image def
- invert_image_samples
- 1 AGMCORE_&setgray
- currentdict imageormask_sys
- }{
- currentoverprint not Operator/imagemask eq and{
- 1 AGMCORE_&setgray
- currentdict imageormask_sys
- }{
- currentdict ignoreimagedata
- }ifelse
- }ifelse
- }{
- MultipleDataSources NComponents AGMIMG_&colorimage
- }ifelse
- }{
- true NComponents colorimage
- }ifelse
- }{
- Operator/image eq{
- AGMCORE_host_sep{
- /DoImage true def
- currentdict/HostSepColorImage known{HostSepColorImage not}{false}ifelse
- {
- AGMCORE_black_plate not Operator/imagemask ne and{
- /DoImage false def
- currentdict ignoreimagedata
- }if
- }if
- 1 AGMCORE_&setgray
- DoImage
- {currentdict imageormask_sys}if
- }{
- use_mask{
- process_mask image
- }{
- image
- }ifelse
- }ifelse
- }{
- Operator/knockout eq{
- pop pop pop pop pop
- currentcolorspace overprint_plate not{
- knockout_unitsq
- }if
- }if
- }ifelse
- }ifelse
- }ifelse
- }ifelse
- cleartomark restore
- }ifelse
- currentdict/_Filters known{_Filters AGMIMG_flushfilters}if
- end
-}def
-/sep_imageormask
-{
- /sep_colorspace_dict AGMCORE_gget begin
- CSA map_csa
- begin
- AGMIMG_init_common
- SkipImageProc{
- currentdict consumeimagedata
- }{
- save mark
- AGMCORE_avoid_L2_sep_space{
- /Decode[Decode 0 get 255 mul Decode 1 get 255 mul]def
- }if
- AGMIMG_ccimage_exists
- MappedCSA 0 get/DeviceCMYK eq and
- currentdict/Components known and
- Name()ne and
- Name(All)ne and
- Operator/image eq and
- AGMCORE_producing_seps not and
- level2 not and
- {
- Width Height BitsPerComponent ImageMatrix
- [
- /DataSource load/exec cvx
- {
- 0 1 2 index length 1 sub{
- 1 index exch
- 2 copy get 255 xor put
- }for
- }/exec cvx
- ]cvx bind
- MappedCSA 0 get/DeviceCMYK eq{
- Components aload pop
- }{
- 0 0 0 Components aload pop 1 exch sub
- }ifelse
- Name findcmykcustomcolor
- customcolorimage
- }{
- AGMCORE_producing_seps not{
- level2{
- //Adobe_AGM_Core/AGMCORE_pattern_paint_type get 2 ne AGMCORE_avoid_L2_sep_space not and currentcolorspace 0 get/Separation ne and{
- [/Separation Name MappedCSA sep_proc_name exch dup 0 get 15 string cvs(/Device)anchorsearch{pop pop 0 get}{pop}ifelse exch load]setcolorspace_opt
- /sep_tint AGMCORE_gget setcolor
- }if
- currentdict imageormask
- }{
- currentdict
- Operator/imagemask eq{
- imageormask
- }{
- sep_imageormask_lev1
- }ifelse
- }ifelse
- }{
- AGMCORE_host_sep{
- Operator/knockout eq{
- currentdict/ImageMatrix get concat
- knockout_unitsq
- }{
- currentgray 1 ne{
- AGMCORE_is_cmyk_sep Name(All)ne and{
- level2{
- Name AGMCORE_IsSeparationAProcessColor
- {
- Operator/imagemask eq{
- //Adobe_AGM_Core/AGMCORE_pattern_paint_type get 2 ne{
- /sep_tint AGMCORE_gget 1 exch sub AGMCORE_&setcolor
- }if
- }{
- invert_image_samples
- }ifelse
- }{
- //Adobe_AGM_Core/AGMCORE_pattern_paint_type get 2 ne{
- [/Separation Name[/DeviceGray]
- {
- sep_colorspace_proc AGMCORE_get_ink_data
- 1 exch sub
- }bind
- ]AGMCORE_&setcolorspace
- /sep_tint AGMCORE_gget AGMCORE_&setcolor
- }if
- }ifelse
- currentdict imageormask_sys
- }{
- currentdict
- Operator/imagemask eq{
- imageormask_sys
- }{
- sep_image_lev1_sep
- }ifelse
- }ifelse
- }{
- Operator/imagemask ne{
- invert_image_samples
- }if
- currentdict imageormask_sys
- }ifelse
- }{
- currentoverprint not Name(All)eq or Operator/imagemask eq and{
- currentdict imageormask_sys
- }{
- currentoverprint not
- {
- gsave
- knockout_unitsq
- grestore
- }if
- currentdict consumeimagedata
- }ifelse
- }ifelse
- }ifelse
- }{
- //Adobe_AGM_Core/AGMCORE_pattern_paint_type get 2 ne{
- currentcolorspace 0 get/Separation ne{
- [/Separation Name MappedCSA sep_proc_name exch 0 get exch load]setcolorspace_opt
- /sep_tint AGMCORE_gget setcolor
- }if
- }if
- currentoverprint
- MappedCSA 0 get/DeviceCMYK eq and
- Name AGMCORE_IsSeparationAProcessColor not and
- //Adobe_AGM_Core/AGMCORE_pattern_paint_type get 2 ne{Name inRip_spot_has_ink not and}{false}ifelse
- Name(All)ne and{
- imageormask_l2_overprint
- }{
- currentdict imageormask
- }ifelse
- }ifelse
- }ifelse
- }ifelse
- cleartomark restore
- }ifelse
- currentdict/_Filters known{_Filters AGMIMG_flushfilters}if
- end
- end
-}def
-/colorSpaceElemCnt
-{
- mark currentcolor counttomark dup 2 add 1 roll cleartomark
-}bdf
-/devn_sep_datasource
-{
- 1 dict begin
- /dataSource xdf
- [
- 0 1 dataSource length 1 sub{
- dup currentdict/dataSource get/exch cvx/get cvx/exec cvx
- /exch cvx names_index/ne cvx[/pop cvx]cvx/if cvx
- }for
- ]cvx bind
- end
-}bdf
-/devn_alt_datasource
-{
- 11 dict begin
- /convProc xdf
- /origcolorSpaceElemCnt xdf
- /origMultipleDataSources xdf
- /origBitsPerComponent xdf
- /origDecode xdf
- /origDataSource xdf
- /dsCnt origMultipleDataSources{origDataSource length}{1}ifelse def
- /DataSource origMultipleDataSources
- {
- [
- BitsPerComponent 8 idiv origDecode length 2 idiv mul string
- 0 1 origDecode length 2 idiv 1 sub
- {
- dup 7 mul 1 add index exch dup BitsPerComponent 8 idiv mul exch
- origDataSource exch get 0()/SubFileDecode filter
- BitsPerComponent 8 idiv string/readstring cvx/pop cvx/putinterval cvx
- }for
- ]bind cvx
- }{origDataSource}ifelse 0()/SubFileDecode filter def
- [
- origcolorSpaceElemCnt string
- 0 2 origDecode length 2 sub
- {
- dup origDecode exch get dup 3 -1 roll 1 add origDecode exch get exch sub 2 BitsPerComponent exp 1 sub div
- 1 BitsPerComponent 8 idiv{DataSource/read cvx/not cvx{0}/if cvx/mul cvx}repeat/mul cvx/add cvx
- }for
- /convProc load/exec cvx
- origcolorSpaceElemCnt 1 sub -1 0
- {
- /dup cvx 2/add cvx/index cvx
- 3 1/roll cvx/exch cvx 255/mul cvx/cvi cvx/put cvx
- }for
- ]bind cvx 0()/SubFileDecode filter
- end
-}bdf
-/devn_imageormask
-{
- /devicen_colorspace_dict AGMCORE_gget begin
- CSA map_csa
- 2 dict begin
- dup
- /srcDataStrs[3 -1 roll begin
- AGMIMG_init_common
- currentdict/MultipleDataSources known{MultipleDataSources{DataSource length}{1}ifelse}{1}ifelse
- {
- Width Decode length 2 div mul cvi
- {
- dup 65535 gt{1 add 2 div cvi}{exit}ifelse
- }loop
- string
- }repeat
- end]def
- /dstDataStr srcDataStrs 0 get length string def
- begin
- AGMIMG_init_common
- SkipImageProc{
- currentdict consumeimagedata
- }{
- save mark
- AGMCORE_producing_seps not{
- level3 not{
- Operator/imagemask ne{
- /DataSource[[
- DataSource Decode BitsPerComponent currentdict/MultipleDataSources known{MultipleDataSources}{false}ifelse
- colorSpaceElemCnt/devicen_colorspace_dict AGMCORE_gget/TintTransform get
- devn_alt_datasource 1/string cvx/readstring cvx/pop cvx]cvx colorSpaceElemCnt 1 sub{dup}repeat]def
- /MultipleDataSources true def
- /Decode colorSpaceElemCnt[exch{0 1}repeat]def
- }if
- }if
- currentdict imageormask
- }{
- AGMCORE_host_sep{
- Names convert_to_process{
- CSA get_csa_by_name 0 get/DeviceCMYK eq{
- /DataSource
- Width BitsPerComponent mul 7 add 8 idiv Height mul 4 mul
- DataSource Decode BitsPerComponent currentdict/MultipleDataSources known{MultipleDataSources}{false}ifelse
- 4/devicen_colorspace_dict AGMCORE_gget/TintTransform get
- devn_alt_datasource
- filter_cmyk 0()/SubFileDecode filter def
- /MultipleDataSources false def
- /Decode[1 0]def
- /DeviceGray setcolorspace
- currentdict imageormask_sys
- }{
- AGMCORE_report_unsupported_color_space
- AGMCORE_black_plate{
- /DataSource
- DataSource Decode BitsPerComponent currentdict/MultipleDataSources known{MultipleDataSources}{false}ifelse
- CSA get_csa_by_name 0 get/DeviceRGB eq{3}{1}ifelse/devicen_colorspace_dict AGMCORE_gget/TintTransform get
- devn_alt_datasource
- /MultipleDataSources false def
- /Decode colorSpaceElemCnt[exch{0 1}repeat]def
- currentdict imageormask_sys
- }{
- gsave
- knockout_unitsq
- grestore
- currentdict consumeimagedata
- }ifelse
- }ifelse
- }
- {
- /devicen_colorspace_dict AGMCORE_gget/names_index known{
- Operator/imagemask ne{
- MultipleDataSources{
- /DataSource[DataSource devn_sep_datasource/exec cvx]cvx def
- /MultipleDataSources false def
- }{
- /DataSource/DataSource load dstDataStr srcDataStrs 0 get filter_devn def
- }ifelse
- invert_image_samples
- }if
- currentdict imageormask_sys
- }{
- currentoverprint not Operator/imagemask eq and{
- currentdict imageormask_sys
- }{
- currentoverprint not
- {
- gsave
- knockout_unitsq
- grestore
- }if
- currentdict consumeimagedata
- }ifelse
- }ifelse
- }ifelse
- }{
- currentdict imageormask
- }ifelse
- }ifelse
- cleartomark restore
- }ifelse
- currentdict/_Filters known{_Filters AGMIMG_flushfilters}if
- end
- end
- end
-}def
-/imageormask_l2_overprint
-{
- currentdict
- currentcmykcolor add add add 0 eq{
- currentdict consumeimagedata
- }{
- level3{
- currentcmykcolor
- /AGMIMG_k xdf
- /AGMIMG_y xdf
- /AGMIMG_m xdf
- /AGMIMG_c xdf
- Operator/imagemask eq{
- [/DeviceN[
- AGMIMG_c 0 ne{/Cyan}if
- AGMIMG_m 0 ne{/Magenta}if
- AGMIMG_y 0 ne{/Yellow}if
- AGMIMG_k 0 ne{/Black}if
- ]/DeviceCMYK{}]setcolorspace
- AGMIMG_c 0 ne{AGMIMG_c}if
- AGMIMG_m 0 ne{AGMIMG_m}if
- AGMIMG_y 0 ne{AGMIMG_y}if
- AGMIMG_k 0 ne{AGMIMG_k}if
- setcolor
- }{
- /Decode[Decode 0 get 255 mul Decode 1 get 255 mul]def
- [/Indexed
- [
- /DeviceN[
- AGMIMG_c 0 ne{/Cyan}if
- AGMIMG_m 0 ne{/Magenta}if
- AGMIMG_y 0 ne{/Yellow}if
- AGMIMG_k 0 ne{/Black}if
- ]
- /DeviceCMYK{
- AGMIMG_k 0 eq{0}if
- AGMIMG_y 0 eq{0 exch}if
- AGMIMG_m 0 eq{0 3 1 roll}if
- AGMIMG_c 0 eq{0 4 1 roll}if
- }
- ]
- 255
- {
- 255 div
- mark exch
- dup dup dup
- AGMIMG_k 0 ne{
- /sep_tint AGMCORE_gget mul MappedCSA sep_proc_name exch pop load exec 4 1 roll pop pop pop
- counttomark 1 roll
- }{
- pop
- }ifelse
- AGMIMG_y 0 ne{
- /sep_tint AGMCORE_gget mul MappedCSA sep_proc_name exch pop load exec 4 2 roll pop pop pop
- counttomark 1 roll
- }{
- pop
- }ifelse
- AGMIMG_m 0 ne{
- /sep_tint AGMCORE_gget mul MappedCSA sep_proc_name exch pop load exec 4 3 roll pop pop pop
- counttomark 1 roll
- }{
- pop
- }ifelse
- AGMIMG_c 0 ne{
- /sep_tint AGMCORE_gget mul MappedCSA sep_proc_name exch pop load exec pop pop pop
- counttomark 1 roll
- }{
- pop
- }ifelse
- counttomark 1 add -1 roll pop
- }
- ]setcolorspace
- }ifelse
- imageormask_sys
- }{
- write_image_file{
- currentcmykcolor
- 0 ne{
- [/Separation/Black/DeviceGray{}]setcolorspace
- gsave
- /Black
- [{1 exch sub/sep_tint AGMCORE_gget mul}/exec cvx MappedCSA sep_proc_name cvx exch pop{4 1 roll pop pop pop 1 exch sub}/exec cvx]
- cvx modify_halftone_xfer
- Operator currentdict read_image_file
- grestore
- }if
- 0 ne{
- [/Separation/Yellow/DeviceGray{}]setcolorspace
- gsave
- /Yellow
- [{1 exch sub/sep_tint AGMCORE_gget mul}/exec cvx MappedCSA sep_proc_name cvx exch pop{4 2 roll pop pop pop 1 exch sub}/exec cvx]
- cvx modify_halftone_xfer
- Operator currentdict read_image_file
- grestore
- }if
- 0 ne{
- [/Separation/Magenta/DeviceGray{}]setcolorspace
- gsave
- /Magenta
- [{1 exch sub/sep_tint AGMCORE_gget mul}/exec cvx MappedCSA sep_proc_name cvx exch pop{4 3 roll pop pop pop 1 exch sub}/exec cvx]
- cvx modify_halftone_xfer
- Operator currentdict read_image_file
- grestore
- }if
- 0 ne{
- [/Separation/Cyan/DeviceGray{}]setcolorspace
- gsave
- /Cyan
- [{1 exch sub/sep_tint AGMCORE_gget mul}/exec cvx MappedCSA sep_proc_name cvx exch pop{pop pop pop 1 exch sub}/exec cvx]
- cvx modify_halftone_xfer
- Operator currentdict read_image_file
- grestore
- }if
- close_image_file
- }{
- imageormask
- }ifelse
- }ifelse
- }ifelse
-}def
-/indexed_imageormask
-{
- begin
- AGMIMG_init_common
- save mark
- currentdict
- AGMCORE_host_sep{
- Operator/knockout eq{
- /indexed_colorspace_dict AGMCORE_gget dup/CSA known{
- /CSA get get_csa_by_name
- }{
- /Names get
- }ifelse
- overprint_plate not{
- knockout_unitsq
- }if
- }{
- Indexed_DeviceN{
- /devicen_colorspace_dict AGMCORE_gget dup/names_index known exch/Names get convert_to_process or{
- indexed_image_lev2_sep
- }{
- currentoverprint not{
- knockout_unitsq
- }if
- currentdict consumeimagedata
- }ifelse
- }{
- AGMCORE_is_cmyk_sep{
- Operator/imagemask eq{
- imageormask_sys
- }{
- level2{
- indexed_image_lev2_sep
- }{
- indexed_image_lev1_sep
- }ifelse
- }ifelse
- }{
- currentoverprint not{
- knockout_unitsq
- }if
- currentdict consumeimagedata
- }ifelse
- }ifelse
- }ifelse
- }{
- level2{
- Indexed_DeviceN{
- /indexed_colorspace_dict AGMCORE_gget begin
- }{
- /indexed_colorspace_dict AGMCORE_gget dup null ne
- {
- begin
- currentdict/CSDBase known{CSDBase/CSD get_res/MappedCSA get}{CSA}ifelse
- get_csa_by_name 0 get/DeviceCMYK eq ps_level 3 ge and ps_version 3015.007 lt and
- AGMCORE_in_rip_sep and{
- [/Indexed[/DeviceN[/Cyan/Magenta/Yellow/Black]/DeviceCMYK{}]HiVal Lookup]
- setcolorspace
- }if
- end
- }
- {pop}ifelse
- }ifelse
- imageormask
- Indexed_DeviceN{
- end
- }if
- }{
- Operator/imagemask eq{
- imageormask
- }{
- indexed_imageormask_lev1
- }ifelse
- }ifelse
- }ifelse
- cleartomark restore
- currentdict/_Filters known{_Filters AGMIMG_flushfilters}if
- end
-}def
-/indexed_image_lev2_sep
-{
- /indexed_colorspace_dict AGMCORE_gget begin
- begin
- Indexed_DeviceN not{
- currentcolorspace
- dup 1/DeviceGray put
- dup 3
- currentcolorspace 2 get 1 add string
- 0 1 2 3 AGMCORE_get_ink_data 4 currentcolorspace 3 get length 1 sub
- {
- dup 4 idiv exch currentcolorspace 3 get exch get 255 exch sub 2 index 3 1 roll put
- }for
- put setcolorspace
- }if
- currentdict
- Operator/imagemask eq{
- AGMIMG_&imagemask
- }{
- use_mask{
- process_mask AGMIMG_&image
- }{
- AGMIMG_&image
- }ifelse
- }ifelse
- end end
-}def
- /OPIimage
- {
- dup type/dicttype ne{
- 10 dict begin
- /DataSource xdf
- /ImageMatrix xdf
- /BitsPerComponent xdf
- /Height xdf
- /Width xdf
- /ImageType 1 def
- /Decode[0 1 def]
- currentdict
- end
- }if
- dup begin
- /NComponents 1 cdndf
- /MultipleDataSources false cdndf
- /SkipImageProc{false}cdndf
- /Decode[
- 0
- currentcolorspace 0 get/Indexed eq{
- 2 BitsPerComponent exp 1 sub
- }{
- 1
- }ifelse
- ]cdndf
- /Operator/image cdndf
- end
- /sep_colorspace_dict AGMCORE_gget null eq{
- imageormask
- }{
- gsave
- dup begin invert_image_samples end
- sep_imageormask
- grestore
- }ifelse
- }def
-/cachemask_level2
-{
- 3 dict begin
- /LZWEncode filter/WriteFilter xdf
- /readBuffer 256 string def
- /ReadFilter
- currentfile
- 0(%EndMask)/SubFileDecode filter
- /ASCII85Decode filter
- /RunLengthDecode filter
- def
- {
- ReadFilter readBuffer readstring exch
- WriteFilter exch writestring
- not{exit}if
- }loop
- WriteFilter closefile
- end
-}def
-/spot_alias
-{
- /mapto_sep_imageormask
- {
- dup type/dicttype ne{
- 12 dict begin
- /ImageType 1 def
- /DataSource xdf
- /ImageMatrix xdf
- /BitsPerComponent xdf
- /Height xdf
- /Width xdf
- /MultipleDataSources false def
- }{
- begin
- }ifelse
- /Decode[/customcolor_tint AGMCORE_gget 0]def
- /Operator/image def
- /SkipImageProc{false}def
- currentdict
- end
- sep_imageormask
- }bdf
- /customcolorimage
- {
- Adobe_AGM_Image/AGMIMG_colorAry xddf
- /customcolor_tint AGMCORE_gget
- <<
- /Name AGMIMG_colorAry 4 get
- /CSA[/DeviceCMYK]
- /TintMethod/Subtractive
- /TintProc null
- /MappedCSA null
- /NComponents 4
- /Components[AGMIMG_colorAry aload pop pop]
- >>
- setsepcolorspace
- mapto_sep_imageormask
- }ndf
- Adobe_AGM_Image/AGMIMG_&customcolorimage/customcolorimage load put
- /customcolorimage
- {
- Adobe_AGM_Image/AGMIMG_override false put
- current_spot_alias{dup 4 get map_alias}{false}ifelse
- {
- false set_spot_alias
- /customcolor_tint AGMCORE_gget exch setsepcolorspace
- pop
- mapto_sep_imageormask
- true set_spot_alias
- }{
- //Adobe_AGM_Image/AGMIMG_&customcolorimage get exec
- }ifelse
- }bdf
-}def
-/snap_to_device
-{
- 6 dict begin
- matrix currentmatrix
- dup 0 get 0 eq 1 index 3 get 0 eq and
- 1 index 1 get 0 eq 2 index 2 get 0 eq and or exch pop
- {
- 1 1 dtransform 0 gt exch 0 gt/AGMIMG_xSign? exch def/AGMIMG_ySign? exch def
- 0 0 transform
- AGMIMG_ySign?{floor 0.1 sub}{ceiling 0.1 add}ifelse exch
- AGMIMG_xSign?{floor 0.1 sub}{ceiling 0.1 add}ifelse exch
- itransform/AGMIMG_llY exch def/AGMIMG_llX exch def
- 1 1 transform
- AGMIMG_ySign?{ceiling 0.1 add}{floor 0.1 sub}ifelse exch
- AGMIMG_xSign?{ceiling 0.1 add}{floor 0.1 sub}ifelse exch
- itransform/AGMIMG_urY exch def/AGMIMG_urX exch def
- [AGMIMG_urX AGMIMG_llX sub 0 0 AGMIMG_urY AGMIMG_llY sub AGMIMG_llX AGMIMG_llY]concat
- }{
- }ifelse
- end
-}def
-level2 not{
- /colorbuf
- {
- 0 1 2 index length 1 sub{
- dup 2 index exch get
- 255 exch sub
- 2 index
- 3 1 roll
- put
- }for
- }def
- /tint_image_to_color
- {
- begin
- Width Height BitsPerComponent ImageMatrix
- /DataSource load
- end
- Adobe_AGM_Image begin
- /AGMIMG_mbuf 0 string def
- /AGMIMG_ybuf 0 string def
- /AGMIMG_kbuf 0 string def
- {
- colorbuf dup length AGMIMG_mbuf length ne
- {
- dup length dup dup
- /AGMIMG_mbuf exch string def
- /AGMIMG_ybuf exch string def
- /AGMIMG_kbuf exch string def
- }if
- dup AGMIMG_mbuf copy AGMIMG_ybuf copy AGMIMG_kbuf copy pop
- }
- addprocs
- {AGMIMG_mbuf}{AGMIMG_ybuf}{AGMIMG_kbuf}true 4 colorimage
- end
- }def
- /sep_imageormask_lev1
- {
- begin
- MappedCSA 0 get dup/DeviceRGB eq exch/DeviceCMYK eq or has_color not and{
- {
- 255 mul round cvi GrayLookup exch get
- }currenttransfer addprocs settransfer
- currentdict imageormask
- }{
- /sep_colorspace_dict AGMCORE_gget/Components known{
- MappedCSA 0 get/DeviceCMYK eq{
- Components aload pop
- }{
- 0 0 0 Components aload pop 1 exch sub
- }ifelse
- Adobe_AGM_Image/AGMIMG_k xddf
- Adobe_AGM_Image/AGMIMG_y xddf
- Adobe_AGM_Image/AGMIMG_m xddf
- Adobe_AGM_Image/AGMIMG_c xddf
- AGMIMG_y 0.0 eq AGMIMG_m 0.0 eq and AGMIMG_c 0.0 eq and{
- {AGMIMG_k mul 1 exch sub}currenttransfer addprocs settransfer
- currentdict imageormask
- }{
- currentcolortransfer
- {AGMIMG_k mul 1 exch sub}exch addprocs 4 1 roll
- {AGMIMG_y mul 1 exch sub}exch addprocs 4 1 roll
- {AGMIMG_m mul 1 exch sub}exch addprocs 4 1 roll
- {AGMIMG_c mul 1 exch sub}exch addprocs 4 1 roll
- setcolortransfer
- currentdict tint_image_to_color
- }ifelse
- }{
- MappedCSA 0 get/DeviceGray eq{
- {255 mul round cvi ColorLookup exch get 0 get}currenttransfer addprocs settransfer
- currentdict imageormask
- }{
- MappedCSA 0 get/DeviceCMYK eq{
- currentcolortransfer
- {255 mul round cvi ColorLookup exch get 3 get 1 exch sub}exch addprocs 4 1 roll
- {255 mul round cvi ColorLookup exch get 2 get 1 exch sub}exch addprocs 4 1 roll
- {255 mul round cvi ColorLookup exch get 1 get 1 exch sub}exch addprocs 4 1 roll
- {255 mul round cvi ColorLookup exch get 0 get 1 exch sub}exch addprocs 4 1 roll
- setcolortransfer
- currentdict tint_image_to_color
- }{
- currentcolortransfer
- {pop 1}exch addprocs 4 1 roll
- {255 mul round cvi ColorLookup exch get 2 get}exch addprocs 4 1 roll
- {255 mul round cvi ColorLookup exch get 1 get}exch addprocs 4 1 roll
- {255 mul round cvi ColorLookup exch get 0 get}exch addprocs 4 1 roll
- setcolortransfer
- currentdict tint_image_to_color
- }ifelse
- }ifelse
- }ifelse
- }ifelse
- end
- }def
- /sep_image_lev1_sep
- {
- begin
- /sep_colorspace_dict AGMCORE_gget/Components known{
- Components aload pop
- Adobe_AGM_Image/AGMIMG_k xddf
- Adobe_AGM_Image/AGMIMG_y xddf
- Adobe_AGM_Image/AGMIMG_m xddf
- Adobe_AGM_Image/AGMIMG_c xddf
- {AGMIMG_c mul 1 exch sub}
- {AGMIMG_m mul 1 exch sub}
- {AGMIMG_y mul 1 exch sub}
- {AGMIMG_k mul 1 exch sub}
- }{
- {255 mul round cvi ColorLookup exch get 0 get 1 exch sub}
- {255 mul round cvi ColorLookup exch get 1 get 1 exch sub}
- {255 mul round cvi ColorLookup exch get 2 get 1 exch sub}
- {255 mul round cvi ColorLookup exch get 3 get 1 exch sub}
- }ifelse
- AGMCORE_get_ink_data currenttransfer addprocs settransfer
- currentdict imageormask_sys
- end
- }def
- /indexed_imageormask_lev1
- {
- /indexed_colorspace_dict AGMCORE_gget begin
- begin
- currentdict
- MappedCSA 0 get dup/DeviceRGB eq exch/DeviceCMYK eq or has_color not and{
- {HiVal mul round cvi GrayLookup exch get HiVal div}currenttransfer addprocs settransfer
- imageormask
- }{
- MappedCSA 0 get/DeviceGray eq{
- {HiVal mul round cvi Lookup exch get HiVal div}currenttransfer addprocs settransfer
- imageormask
- }{
- MappedCSA 0 get/DeviceCMYK eq{
- currentcolortransfer
- {4 mul HiVal mul round cvi 3 add Lookup exch get HiVal div 1 exch sub}exch addprocs 4 1 roll
- {4 mul HiVal mul round cvi 2 add Lookup exch get HiVal div 1 exch sub}exch addprocs 4 1 roll
- {4 mul HiVal mul round cvi 1 add Lookup exch get HiVal div 1 exch sub}exch addprocs 4 1 roll
- {4 mul HiVal mul round cvi Lookup exch get HiVal div 1 exch sub}exch addprocs 4 1 roll
- setcolortransfer
- tint_image_to_color
- }{
- currentcolortransfer
- {pop 1}exch addprocs 4 1 roll
- {3 mul HiVal mul round cvi 2 add Lookup exch get HiVal div}exch addprocs 4 1 roll
- {3 mul HiVal mul round cvi 1 add Lookup exch get HiVal div}exch addprocs 4 1 roll
- {3 mul HiVal mul round cvi Lookup exch get HiVal div}exch addprocs 4 1 roll
- setcolortransfer
- tint_image_to_color
- }ifelse
- }ifelse
- }ifelse
- end end
- }def
- /indexed_image_lev1_sep
- {
- /indexed_colorspace_dict AGMCORE_gget begin
- begin
- {4 mul HiVal mul round cvi Lookup exch get HiVal div 1 exch sub}
- {4 mul HiVal mul round cvi 1 add Lookup exch get HiVal div 1 exch sub}
- {4 mul HiVal mul round cvi 2 add Lookup exch get HiVal div 1 exch sub}
- {4 mul HiVal mul round cvi 3 add Lookup exch get HiVal div 1 exch sub}
- AGMCORE_get_ink_data currenttransfer addprocs settransfer
- currentdict imageormask_sys
- end end
- }def
-}if
-end
-systemdict/setpacking known
-{setpacking}if
-%%EndResource
-currentdict Adobe_AGM_Utils eq {end} if
-%%EndProlog
-%%BeginSetup
-Adobe_AGM_Utils begin
-2 2010 Adobe_AGM_Core/ds gx
-Adobe_CoolType_Core/ds get exec
-Adobe_AGM_Image/ds gx
-[/NamespacePush pdfmark_5
-[/_objdef {Doc_Metadata} /type /stream /OBJ pdfmark_5
-[{Doc_Metadata} 1281 (% &end XMP packet& %) ReadBypdfmark_5_string
-<?xpacket begin='' id='W5M0MpCehiHzreSzNTczkc9d'?>
-<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.2-c001 63.139439, 2010/09/27-13:37:26 ">
- <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
- <rdf:Description rdf:about=""
- xmlns:xmp="http://ns.adobe.com/xap/1.0/"
- xmlns:dc="http://purl.org/dc/elements/1.1/"
- xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/"
- xmlns:pdf="http://ns.adobe.com/pdf/1.3/"
- xmp:ModifyDate="2011-04-08T15:21:07-05:00"
- xmp:CreateDate="2011-04-08T15:21:07-05:00"
- xmp:MetadataDate="2011-04-08T15:21:07-05:00"
- xmp:CreatorTool="DVIPSONE 2.3.4.149 http://www.YandY.com"
- dc:format="application/pdf"
- xmpMM:DocumentID="uuid:4672a2a6-f2a2-46c1-a618-bae4e40b5b67"
- xmpMM:InstanceID="uuid:840d3c6d-0825-497a-9944-212dd7f55635"
- pdf:Producer="Acrobat Distiller 10.0.1 (Windows)">
- <dc:title>
- <rdf:Alt>
- <rdf:li xml:lang="x-default">test03</rdf:li>
- </rdf:Alt>
- </dc:title>
- <dc:description>
- <rdf:Alt>
- <rdf:li xml:lang="x-default">TeX output 2011.04.08:1517</rdf:li>
- </rdf:Alt>
- </dc:description>
- <dc:creator>
- <rdf:Seq>
- <rdf:li>Donald Story (Complimentary Copy) 4662 2009-10-23 13:17:17</rdf:li>
- </rdf:Seq>
- </dc:creator>
- </rdf:Description>
- </rdf:RDF>
-</x:xmpmeta>
+%!PS-Adobe-3.1 EPSF-3.0
+%ADO_DSC_Encoding: Windows Roman
+%%Title: graph.pdf
+%%Creator: Adobe Acrobat 10.0.1
+%%For: D. P. Story
+%%CreationDate: 4/8/2011, 3:22:12 PM
+%%BoundingBox: -1 0 257 195
+%%HiResBoundingBox: 0 0 256.7930 194.9510
+%%CropBox: 0 0 256.7930 194.9510
+%%LanguageLevel: 2
+%%DocumentNeededResources: (atend)
+%%DocumentSuppliedResources: (atend)
+%%DocumentNeededFeatures: (atend)
+%%DocumentSuppliedFeatures: (atend)
+%%DocumentData: Clean7Bit
+%%Pages: (atend)
+%%DocumentProcessColors: Black
+%%DocumentCustomColors: (atend)
+%%EndComments
+%%BeginDefaults
+%%ViewingOrientation: 1 0 0 1
+%%EndDefaults
+%%BeginProlog
+%%BeginResource: procset Adobe_AGM_Utils 1.0 0
+%%Version: 1.0 0
+%%Copyright: Copyright(C)2000-2006 Adobe Systems, Inc. All Rights Reserved.
+systemdict/setpacking known
+{currentpacking true setpacking}if
+userdict/Adobe_AGM_Utils 75 dict dup begin put
+/bdf
+{bind def}bind def
+/nd{null def}bdf
+/xdf
+{exch def}bdf
+/ldf
+{load def}bdf
+/ddf
+{put}bdf
+/xddf
+{3 -1 roll put}bdf
+/xpt
+{exch put}bdf
+/ndf
+{
+ exch dup where{
+ pop pop pop
+ }{
+ xdf
+ }ifelse
+}def
+/cdndf
+{
+ exch dup currentdict exch known{
+ pop pop
+ }{
+ exch def
+ }ifelse
+}def
+/gx
+{get exec}bdf
+/ps_level
+ /languagelevel where{
+ pop systemdict/languagelevel gx
+ }{
+ 1
+ }ifelse
+def
+/level2
+ ps_level 2 ge
+def
+/level3
+ ps_level 3 ge
+def
+/ps_version
+ {version cvr}stopped{-1}if
+def
+/set_gvm
+{currentglobal exch setglobal}bdf
+/reset_gvm
+{setglobal}bdf
+/makereadonlyarray
+{
+ /packedarray where{pop packedarray
+ }{
+ array astore readonly}ifelse
+}bdf
+/map_reserved_ink_name
+{
+ dup type/stringtype eq{
+ dup/Red eq{
+ pop(_Red_)
+ }{
+ dup/Green eq{
+ pop(_Green_)
+ }{
+ dup/Blue eq{
+ pop(_Blue_)
+ }{
+ dup()cvn eq{
+ pop(Process)
+ }if
+ }ifelse
+ }ifelse
+ }ifelse
+ }if
+}bdf
+/AGMUTIL_GSTATE 22 dict def
+/get_gstate
+{
+ AGMUTIL_GSTATE begin
+ /AGMUTIL_GSTATE_clr_spc currentcolorspace def
+ /AGMUTIL_GSTATE_clr_indx 0 def
+ /AGMUTIL_GSTATE_clr_comps 12 array def
+ mark currentcolor counttomark
+ {AGMUTIL_GSTATE_clr_comps AGMUTIL_GSTATE_clr_indx 3 -1 roll put
+ /AGMUTIL_GSTATE_clr_indx AGMUTIL_GSTATE_clr_indx 1 add def}repeat pop
+ /AGMUTIL_GSTATE_fnt rootfont def
+ /AGMUTIL_GSTATE_lw currentlinewidth def
+ /AGMUTIL_GSTATE_lc currentlinecap def
+ /AGMUTIL_GSTATE_lj currentlinejoin def
+ /AGMUTIL_GSTATE_ml currentmiterlimit def
+ currentdash/AGMUTIL_GSTATE_do xdf/AGMUTIL_GSTATE_da xdf
+ /AGMUTIL_GSTATE_sa currentstrokeadjust def
+ /AGMUTIL_GSTATE_clr_rnd currentcolorrendering def
+ /AGMUTIL_GSTATE_op currentoverprint def
+ /AGMUTIL_GSTATE_bg currentblackgeneration cvlit def
+ /AGMUTIL_GSTATE_ucr currentundercolorremoval cvlit def
+ currentcolortransfer cvlit/AGMUTIL_GSTATE_gy_xfer xdf cvlit/AGMUTIL_GSTATE_b_xfer xdf
+ cvlit/AGMUTIL_GSTATE_g_xfer xdf cvlit/AGMUTIL_GSTATE_r_xfer xdf
+ /AGMUTIL_GSTATE_ht currenthalftone def
+ /AGMUTIL_GSTATE_flt currentflat def
+ end
+}def
+/set_gstate
+{
+ AGMUTIL_GSTATE begin
+ AGMUTIL_GSTATE_clr_spc setcolorspace
+ AGMUTIL_GSTATE_clr_indx{AGMUTIL_GSTATE_clr_comps AGMUTIL_GSTATE_clr_indx 1 sub get
+ /AGMUTIL_GSTATE_clr_indx AGMUTIL_GSTATE_clr_indx 1 sub def}repeat setcolor
+ AGMUTIL_GSTATE_fnt setfont
+ AGMUTIL_GSTATE_lw setlinewidth
+ AGMUTIL_GSTATE_lc setlinecap
+ AGMUTIL_GSTATE_lj setlinejoin
+ AGMUTIL_GSTATE_ml setmiterlimit
+ AGMUTIL_GSTATE_da AGMUTIL_GSTATE_do setdash
+ AGMUTIL_GSTATE_sa setstrokeadjust
+ AGMUTIL_GSTATE_clr_rnd setcolorrendering
+ AGMUTIL_GSTATE_op setoverprint
+ AGMUTIL_GSTATE_bg cvx setblackgeneration
+ AGMUTIL_GSTATE_ucr cvx setundercolorremoval
+ AGMUTIL_GSTATE_r_xfer cvx AGMUTIL_GSTATE_g_xfer cvx AGMUTIL_GSTATE_b_xfer cvx
+ AGMUTIL_GSTATE_gy_xfer cvx setcolortransfer
+ AGMUTIL_GSTATE_ht/HalftoneType get dup 9 eq exch 100 eq or
+ {
+ currenthalftone/HalftoneType get AGMUTIL_GSTATE_ht/HalftoneType get ne
+ {
+ mark AGMUTIL_GSTATE_ht{sethalftone}stopped cleartomark
+ }if
+ }{
+ AGMUTIL_GSTATE_ht sethalftone
+ }ifelse
+ AGMUTIL_GSTATE_flt setflat
+ end
+}def
+/get_gstate_and_matrix
+{
+ AGMUTIL_GSTATE begin
+ /AGMUTIL_GSTATE_ctm matrix currentmatrix def
+ end
+ get_gstate
+}def
+/set_gstate_and_matrix
+{
+ set_gstate
+ AGMUTIL_GSTATE begin
+ AGMUTIL_GSTATE_ctm setmatrix
+ end
+}def
+/AGMUTIL_str256 256 string def
+/AGMUTIL_src256 256 string def
+/AGMUTIL_dst64 64 string def
+/AGMUTIL_srcLen nd
+/AGMUTIL_ndx nd
+/AGMUTIL_cpd nd
+/capture_cpd{
+ //Adobe_AGM_Utils/AGMUTIL_cpd currentpagedevice ddf
+}def
+/thold_halftone
+{
+ level3
+ {sethalftone currenthalftone}
+ {
+ dup/HalftoneType get 3 eq
+ {
+ sethalftone currenthalftone
+ }{
+ begin
+ Width Height mul{
+ Thresholds read{pop}if
+ }repeat
+ end
+ currenthalftone
+ }ifelse
+ }ifelse
+}def
+/rdcmntline
+{
+ currentfile AGMUTIL_str256 readline pop
+ (%)anchorsearch{pop}if
+}bdf
+/filter_cmyk
+{
+ dup type/filetype ne{
+ exch()/SubFileDecode filter
+ }{
+ exch pop
+ }
+ ifelse
+ [
+ exch
+ {
+ AGMUTIL_src256 readstring pop
+ dup length/AGMUTIL_srcLen exch def
+ /AGMUTIL_ndx 0 def
+ AGMCORE_plate_ndx 4 AGMUTIL_srcLen 1 sub{
+ 1 index exch get
+ AGMUTIL_dst64 AGMUTIL_ndx 3 -1 roll put
+ /AGMUTIL_ndx AGMUTIL_ndx 1 add def
+ }for
+ pop
+ AGMUTIL_dst64 0 AGMUTIL_ndx getinterval
+ }
+ bind
+ /exec cvx
+ ]cvx
+}bdf
+/filter_indexed_devn
+{
+ cvi Names length mul names_index add Lookup exch get
+}bdf
+/filter_devn
+{
+ 4 dict begin
+ /srcStr xdf
+ /dstStr xdf
+ dup type/filetype ne{
+ 0()/SubFileDecode filter
+ }if
+ [
+ exch
+ [
+ /devicen_colorspace_dict/AGMCORE_gget cvx/begin cvx
+ currentdict/srcStr get/readstring cvx/pop cvx
+ /dup cvx/length cvx 0/gt cvx[
+ Adobe_AGM_Utils/AGMUTIL_ndx 0/ddf cvx
+ names_index Names length currentdict/srcStr get length 1 sub{
+ 1/index cvx/exch cvx/get cvx
+ currentdict/dstStr get/AGMUTIL_ndx/load cvx 3 -1/roll cvx/put cvx
+ Adobe_AGM_Utils/AGMUTIL_ndx/AGMUTIL_ndx/load cvx 1/add cvx/ddf cvx
+ }for
+ currentdict/dstStr get 0/AGMUTIL_ndx/load cvx/getinterval cvx
+ ]cvx/if cvx
+ /end cvx
+ ]cvx
+ bind
+ /exec cvx
+ ]cvx
+ end
+}bdf
+/AGMUTIL_imagefile nd
+/read_image_file
+{
+ AGMUTIL_imagefile 0 setfileposition
+ 10 dict begin
+ /imageDict xdf
+ /imbufLen Width BitsPerComponent mul 7 add 8 idiv def
+ /imbufIdx 0 def
+ /origDataSource imageDict/DataSource get def
+ /origMultipleDataSources imageDict/MultipleDataSources get def
+ /origDecode imageDict/Decode get def
+ /dstDataStr imageDict/Width get colorSpaceElemCnt mul string def
+ imageDict/MultipleDataSources known{MultipleDataSources}{false}ifelse
+ {
+ /imbufCnt imageDict/DataSource get length def
+ /imbufs imbufCnt array def
+ 0 1 imbufCnt 1 sub{
+ /imbufIdx xdf
+ imbufs imbufIdx imbufLen string put
+ imageDict/DataSource get imbufIdx[AGMUTIL_imagefile imbufs imbufIdx get/readstring cvx/pop cvx]cvx put
+ }for
+ DeviceN_PS2{
+ imageDict begin
+ /DataSource[DataSource/devn_sep_datasource cvx]cvx def
+ /MultipleDataSources false def
+ /Decode[0 1]def
+ end
+ }if
+ }{
+ /imbuf imbufLen string def
+ Indexed_DeviceN level3 not and DeviceN_NoneName or{
+ /srcDataStrs[imageDict begin
+ currentdict/MultipleDataSources known{MultipleDataSources{DataSource length}{1}ifelse}{1}ifelse
+ {
+ Width Decode length 2 div mul cvi string
+ }repeat
+ end]def
+ imageDict begin
+ /DataSource[AGMUTIL_imagefile Decode BitsPerComponent false 1/filter_indexed_devn load dstDataStr srcDataStrs devn_alt_datasource/exec cvx]cvx def
+ /Decode[0 1]def
+ end
+ }{
+ imageDict/DataSource[1 string dup 0 AGMUTIL_imagefile Decode length 2 idiv string/readstring cvx/pop cvx names_index/get cvx/put cvx]cvx put
+ imageDict/Decode[0 1]put
+ }ifelse
+ }ifelse
+ imageDict exch
+ load exec
+ imageDict/DataSource origDataSource put
+ imageDict/MultipleDataSources origMultipleDataSources put
+ imageDict/Decode origDecode put
+ end
+}bdf
+/write_image_file
+{
+ begin
+ {(AGMUTIL_imagefile)(w+)file}stopped{
+ false
+ }{
+ Adobe_AGM_Utils/AGMUTIL_imagefile xddf
+ 2 dict begin
+ /imbufLen Width BitsPerComponent mul 7 add 8 idiv def
+ MultipleDataSources{DataSource 0 get}{DataSource}ifelse type/filetype eq{
+ /imbuf imbufLen string def
+ }if
+ 1 1 Height MultipleDataSources not{Decode length 2 idiv mul}if{
+ pop
+ MultipleDataSources{
+ 0 1 DataSource length 1 sub{
+ DataSource type dup
+ /arraytype eq{
+ pop DataSource exch gx
+ }{
+ /filetype eq{
+ DataSource exch get imbuf readstring pop
+ }{
+ DataSource exch get
+ }ifelse
+ }ifelse
+ AGMUTIL_imagefile exch writestring
+ }for
+ }{
+ DataSource type dup
+ /arraytype eq{
+ pop DataSource exec
+ }{
+ /filetype eq{
+ DataSource imbuf readstring pop
+ }{
+ DataSource
+ }ifelse
+ }ifelse
+ AGMUTIL_imagefile exch writestring
+ }ifelse
+ }for
+ end
+ true
+ }ifelse
+ end
+}bdf
+/close_image_file
+{
+ AGMUTIL_imagefile closefile(AGMUTIL_imagefile)deletefile
+}def
+statusdict/product known userdict/AGMP_current_show known not and{
+ /pstr statusdict/product get def
+ pstr(HP LaserJet 2200)eq
+ pstr(HP LaserJet 4000 Series)eq or
+ pstr(HP LaserJet 4050 Series )eq or
+ pstr(HP LaserJet 8000 Series)eq or
+ pstr(HP LaserJet 8100 Series)eq or
+ pstr(HP LaserJet 8150 Series)eq or
+ pstr(HP LaserJet 5000 Series)eq or
+ pstr(HP LaserJet 5100 Series)eq or
+ pstr(HP Color LaserJet 4500)eq or
+ pstr(HP Color LaserJet 4600)eq or
+ pstr(HP LaserJet 5Si)eq or
+ pstr(HP LaserJet 1200 Series)eq or
+ pstr(HP LaserJet 1300 Series)eq or
+ pstr(HP LaserJet 4100 Series)eq or
+ {
+ userdict/AGMP_current_show/show load put
+ userdict/show{
+ currentcolorspace 0 get
+ /Pattern eq
+ {false charpath f}
+ {AGMP_current_show}ifelse
+ }put
+ }if
+ currentdict/pstr undef
+}if
+/consumeimagedata
+{
+ begin
+ AGMIMG_init_common
+ currentdict/MultipleDataSources known not
+ {/MultipleDataSources false def}if
+ MultipleDataSources
+ {
+ DataSource 0 get type
+ dup/filetype eq
+ {
+ 1 dict begin
+ /flushbuffer Width cvi string def
+ 1 1 Height cvi
+ {
+ pop
+ 0 1 DataSource length 1 sub
+ {
+ DataSource exch get
+ flushbuffer readstring pop pop
+ }for
+ }for
+ end
+ }if
+ dup/arraytype eq exch/packedarraytype eq or DataSource 0 get xcheck and
+ {
+ Width Height mul cvi
+ {
+ 0 1 DataSource length 1 sub
+ {dup DataSource exch gx length exch 0 ne{pop}if}for
+ dup 0 eq
+ {pop exit}if
+ sub dup 0 le
+ {exit}if
+ }loop
+ pop
+ }if
+ }
+ {
+ /DataSource load type
+ dup/filetype eq
+ {
+ 1 dict begin
+ /flushbuffer Width Decode length 2 idiv mul cvi string def
+ 1 1 Height{pop DataSource flushbuffer readstring pop pop}for
+ end
+ }if
+ dup/arraytype eq exch/packedarraytype eq or/DataSource load xcheck and
+ {
+ Height Width BitsPerComponent mul 8 BitsPerComponent sub add 8 idiv Decode length 2 idiv mul mul
+ {
+ DataSource length dup 0 eq
+ {pop exit}if
+ sub dup 0 le
+ {exit}if
+ }loop
+ pop
+ }if
+ }ifelse
+ end
+}bdf
+/addprocs
+{
+ 2{/exec load}repeat
+ 3 1 roll
+ [5 1 roll]bind cvx
+}def
+/modify_halftone_xfer
+{
+ currenthalftone dup length dict copy begin
+ currentdict 2 index known{
+ 1 index load dup length dict copy begin
+ currentdict/TransferFunction known{
+ /TransferFunction load
+ }{
+ currenttransfer
+ }ifelse
+ addprocs/TransferFunction xdf
+ currentdict end def
+ currentdict end sethalftone
+ }{
+ currentdict/TransferFunction known{
+ /TransferFunction load
+ }{
+ currenttransfer
+ }ifelse
+ addprocs/TransferFunction xdf
+ currentdict end sethalftone
+ pop
+ }ifelse
+}def
+/clonearray
+{
+ dup xcheck exch
+ dup length array exch
+ Adobe_AGM_Core/AGMCORE_tmp -1 ddf
+ {
+ Adobe_AGM_Core/AGMCORE_tmp 2 copy get 1 add ddf
+ dup type/dicttype eq
+ {
+ Adobe_AGM_Core/AGMCORE_tmp get
+ exch
+ clonedict
+ Adobe_AGM_Core/AGMCORE_tmp 4 -1 roll ddf
+ }if
+ dup type/arraytype eq
+ {
+ Adobe_AGM_Core/AGMCORE_tmp get exch
+ clonearray
+ Adobe_AGM_Core/AGMCORE_tmp 4 -1 roll ddf
+ }if
+ exch dup
+ Adobe_AGM_Core/AGMCORE_tmp get 4 -1 roll put
+ }forall
+ exch{cvx}if
+}bdf
+/clonedict
+{
+ dup length dict
+ begin
+ {
+ dup type/dicttype eq
+ {clonedict}if
+ dup type/arraytype eq
+ {clonearray}if
+ def
+ }forall
+ currentdict
+ end
+}bdf
+/DeviceN_PS2
+{
+ /currentcolorspace AGMCORE_gget 0 get/DeviceN eq level3 not and
+}bdf
+/Indexed_DeviceN
+{
+ /indexed_colorspace_dict AGMCORE_gget dup null ne{
+ dup/CSDBase known{
+ /CSDBase get/CSD get_res/Names known
+ }{
+ pop false
+ }ifelse
+ }{
+ pop false
+ }ifelse
+}bdf
+/DeviceN_NoneName
+{
+ /Names where{
+ pop
+ false Names
+ {
+ (None)eq or
+ }forall
+ }{
+ false
+ }ifelse
+}bdf
+/DeviceN_PS2_inRip_seps
+{
+ /AGMCORE_in_rip_sep where
+ {
+ pop dup type dup/arraytype eq exch/packedarraytype eq or
+ {
+ dup 0 get/DeviceN eq level3 not and AGMCORE_in_rip_sep and
+ {
+ /currentcolorspace exch AGMCORE_gput
+ false
+ }{
+ true
+ }ifelse
+ }{
+ true
+ }ifelse
+ }{
+ true
+ }ifelse
+}bdf
+/base_colorspace_type
+{
+ dup type/arraytype eq{0 get}if
+}bdf
+/currentdistillerparams where{pop currentdistillerparams/CoreDistVersion get 5000 lt}{true}ifelse
+{
+ /pdfmark_5{cleartomark}bind def
+}{
+ /pdfmark_5{pdfmark}bind def
+}ifelse
+/ReadBypdfmark_5
+{
+ currentfile exch 0 exch/SubFileDecode filter
+ /currentdistillerparams where
+ {pop currentdistillerparams/CoreDistVersion get 5000 lt}{true}ifelse
+ {flushfile cleartomark}
+ {/PUT pdfmark}ifelse
+}bdf
+/ReadBypdfmark_5_string
+{
+ 2 dict begin
+ /makerString exch def string/tmpString exch def
+ {
+ currentfile tmpString readline not{pop exit}if
+ makerString anchorsearch
+ {
+ pop pop cleartomark exit
+ }{
+ 3 copy/PUT pdfmark_5 pop 2 copy(\n)/PUT pdfmark_5
+ }ifelse
+ }loop
+ end
+}bdf
+/xpdfm
+{
+ {
+ dup 0 get/Label eq
+ {
+ aload length[exch 1 add 1 roll/PAGELABEL
+ }{
+ aload pop
+ [{ThisPage}<<5 -2 roll>>/PUT
+ }ifelse
+ pdfmark_5
+ }forall
+}bdf
+/lmt{
+ dup 2 index le{exch}if pop dup 2 index ge{exch}if pop
+}bdf
+/int{
+ dup 2 index sub 3 index 5 index sub div 6 -2 roll sub mul exch pop add exch pop
+}bdf
+/ds{
+ Adobe_AGM_Utils begin
+}bdf
+/dt{
+ currentdict Adobe_AGM_Utils eq{
+ end
+ }if
+}bdf
+systemdict/setpacking known
+{setpacking}if
+%%EndResource
+%%BeginResource: procset Adobe_AGM_Core 2.0 0
+%%Version: 2.0 0
+%%Copyright: Copyright(C)1997-2007 Adobe Systems, Inc. All Rights Reserved.
+systemdict/setpacking known
+{
+ currentpacking
+ true setpacking
+}if
+userdict/Adobe_AGM_Core 209 dict dup begin put
+/Adobe_AGM_Core_Id/Adobe_AGM_Core_2.0_0 def
+/AGMCORE_str256 256 string def
+/AGMCORE_save nd
+/AGMCORE_graphicsave nd
+/AGMCORE_c 0 def
+/AGMCORE_m 0 def
+/AGMCORE_y 0 def
+/AGMCORE_k 0 def
+/AGMCORE_cmykbuf 4 array def
+/AGMCORE_screen[currentscreen]cvx def
+/AGMCORE_tmp 0 def
+/AGMCORE_&setgray nd
+/AGMCORE_&setcolor nd
+/AGMCORE_&setcolorspace nd
+/AGMCORE_&setcmykcolor nd
+/AGMCORE_cyan_plate nd
+/AGMCORE_magenta_plate nd
+/AGMCORE_yellow_plate nd
+/AGMCORE_black_plate nd
+/AGMCORE_plate_ndx nd
+/AGMCORE_get_ink_data nd
+/AGMCORE_is_cmyk_sep nd
+/AGMCORE_host_sep nd
+/AGMCORE_avoid_L2_sep_space nd
+/AGMCORE_distilling nd
+/AGMCORE_composite_job nd
+/AGMCORE_producing_seps nd
+/AGMCORE_ps_level -1 def
+/AGMCORE_ps_version -1 def
+/AGMCORE_environ_ok nd
+/AGMCORE_CSD_cache 0 dict def
+/AGMCORE_currentoverprint false def
+/AGMCORE_deltaX nd
+/AGMCORE_deltaY nd
+/AGMCORE_name nd
+/AGMCORE_sep_special nd
+/AGMCORE_err_strings 4 dict def
+/AGMCORE_cur_err nd
+/AGMCORE_current_spot_alias false def
+/AGMCORE_inverting false def
+/AGMCORE_feature_dictCount nd
+/AGMCORE_feature_opCount nd
+/AGMCORE_feature_ctm nd
+/AGMCORE_ConvertToProcess false def
+/AGMCORE_Default_CTM matrix def
+/AGMCORE_Default_PageSize nd
+/AGMCORE_Default_flatness nd
+/AGMCORE_currentbg nd
+/AGMCORE_currentucr nd
+/AGMCORE_pattern_paint_type 0 def
+/knockout_unitsq nd
+currentglobal true setglobal
+[/CSA/Gradient/Procedure]
+{
+ /Generic/Category findresource dup length dict copy/Category defineresource pop
+}forall
+setglobal
+/AGMCORE_key_known
+{
+ where{
+ /Adobe_AGM_Core_Id known
+ }{
+ false
+ }ifelse
+}ndf
+/flushinput
+{
+ save
+ 2 dict begin
+ /CompareBuffer 3 -1 roll def
+ /readbuffer 256 string def
+ mark
+ {
+ currentfile readbuffer{readline}stopped
+ {cleartomark mark}
+ {
+ not
+ {pop exit}
+ if
+ CompareBuffer eq
+ {exit}
+ if
+ }ifelse
+ }loop
+ cleartomark
+ end
+ restore
+}bdf
+/getspotfunction
+{
+ AGMCORE_screen exch pop exch pop
+ dup type/dicttype eq{
+ dup/HalftoneType get 1 eq{
+ /SpotFunction get
+ }{
+ dup/HalftoneType get 2 eq{
+ /GraySpotFunction get
+ }{
+ pop
+ {
+ abs exch abs 2 copy add 1 gt{
+ 1 sub dup mul exch 1 sub dup mul add 1 sub
+ }{
+ dup mul exch dup mul add 1 exch sub
+ }ifelse
+ }bind
+ }ifelse
+ }ifelse
+ }if
+}def
+/np
+{newpath}bdf
+/clp_npth
+{clip np}def
+/eoclp_npth
+{eoclip np}def
+/npth_clp
+{np clip}def
+/graphic_setup
+{
+ /AGMCORE_graphicsave save store
+ concat
+ 0 setgray
+ 0 setlinecap
+ 0 setlinejoin
+ 1 setlinewidth
+ []0 setdash
+ 10 setmiterlimit
+ np
+ false setoverprint
+ false setstrokeadjust
+ //Adobe_AGM_Core/spot_alias gx
+ /Adobe_AGM_Image where{
+ pop
+ Adobe_AGM_Image/spot_alias 2 copy known{
+ gx
+ }{
+ pop pop
+ }ifelse
+ }if
+ /sep_colorspace_dict null AGMCORE_gput
+ 100 dict begin
+ /dictstackcount countdictstack def
+ /showpage{}def
+ mark
+}def
+/graphic_cleanup
+{
+ cleartomark
+ dictstackcount 1 countdictstack 1 sub{end}for
+ end
+ AGMCORE_graphicsave restore
+}def
+/compose_error_msg
+{
+ grestoreall initgraphics
+ /Helvetica findfont 10 scalefont setfont
+ /AGMCORE_deltaY 100 def
+ /AGMCORE_deltaX 310 def
+ clippath pathbbox np pop pop 36 add exch 36 add exch moveto
+ 0 AGMCORE_deltaY rlineto AGMCORE_deltaX 0 rlineto
+ 0 AGMCORE_deltaY neg rlineto AGMCORE_deltaX neg 0 rlineto closepath
+ 0 AGMCORE_&setgray
+ gsave 1 AGMCORE_&setgray fill grestore
+ 1 setlinewidth gsave stroke grestore
+ currentpoint AGMCORE_deltaY 15 sub add exch 8 add exch moveto
+ /AGMCORE_deltaY 12 def
+ /AGMCORE_tmp 0 def
+ AGMCORE_err_strings exch get
+ {
+ dup 32 eq
+ {
+ pop
+ AGMCORE_str256 0 AGMCORE_tmp getinterval
+ stringwidth pop currentpoint pop add AGMCORE_deltaX 28 add gt
+ {
+ currentpoint AGMCORE_deltaY sub exch pop
+ clippath pathbbox pop pop pop 44 add exch moveto
+ }if
+ AGMCORE_str256 0 AGMCORE_tmp getinterval show( )show
+ 0 1 AGMCORE_str256 length 1 sub
+ {
+ AGMCORE_str256 exch 0 put
+ }for
+ /AGMCORE_tmp 0 def
+ }{
+ AGMCORE_str256 exch AGMCORE_tmp xpt
+ /AGMCORE_tmp AGMCORE_tmp 1 add def
+ }ifelse
+ }forall
+}bdf
+/AGMCORE_CMYKDeviceNColorspaces[
+ [/Separation/None/DeviceCMYK{0 0 0}]
+ [/Separation(Black)/DeviceCMYK{0 0 0 4 -1 roll}bind]
+ [/Separation(Yellow)/DeviceCMYK{0 0 3 -1 roll 0}bind]
+ [/DeviceN[(Yellow)(Black)]/DeviceCMYK{0 0 4 2 roll}bind]
+ [/Separation(Magenta)/DeviceCMYK{0 exch 0 0}bind]
+ [/DeviceN[(Magenta)(Black)]/DeviceCMYK{0 3 1 roll 0 exch}bind]
+ [/DeviceN[(Magenta)(Yellow)]/DeviceCMYK{0 3 1 roll 0}bind]
+ [/DeviceN[(Magenta)(Yellow)(Black)]/DeviceCMYK{0 4 1 roll}bind]
+ [/Separation(Cyan)/DeviceCMYK{0 0 0}]
+ [/DeviceN[(Cyan)(Black)]/DeviceCMYK{0 0 3 -1 roll}bind]
+ [/DeviceN[(Cyan)(Yellow)]/DeviceCMYK{0 exch 0}bind]
+ [/DeviceN[(Cyan)(Yellow)(Black)]/DeviceCMYK{0 3 1 roll}bind]
+ [/DeviceN[(Cyan)(Magenta)]/DeviceCMYK{0 0}]
+ [/DeviceN[(Cyan)(Magenta)(Black)]/DeviceCMYK{0 exch}bind]
+ [/DeviceN[(Cyan)(Magenta)(Yellow)]/DeviceCMYK{0}]
+ [/DeviceCMYK]
+]def
+/ds{
+ Adobe_AGM_Core begin
+ /currentdistillerparams where
+ {
+ pop currentdistillerparams/CoreDistVersion get 5000 lt
+ {<</DetectBlends false>>setdistillerparams}if
+ }if
+ /AGMCORE_ps_version xdf
+ /AGMCORE_ps_level xdf
+ errordict/AGM_handleerror known not{
+ errordict/AGM_handleerror errordict/handleerror get put
+ errordict/handleerror{
+ Adobe_AGM_Core begin
+ $error/newerror get AGMCORE_cur_err null ne and{
+ $error/newerror false put
+ AGMCORE_cur_err compose_error_msg
+ }if
+ $error/newerror true put
+ end
+ errordict/AGM_handleerror get exec
+ }bind put
+ }if
+ /AGMCORE_environ_ok
+ ps_level AGMCORE_ps_level ge
+ ps_version AGMCORE_ps_version ge and
+ AGMCORE_ps_level -1 eq or
+ def
+ AGMCORE_environ_ok not
+ {/AGMCORE_cur_err/AGMCORE_bad_environ def}if
+ /AGMCORE_&setgray systemdict/setgray get def
+ level2{
+ /AGMCORE_&setcolor systemdict/setcolor get def
+ /AGMCORE_&setcolorspace systemdict/setcolorspace get def
+ }if
+ /AGMCORE_currentbg currentblackgeneration def
+ /AGMCORE_currentucr currentundercolorremoval def
+ /AGMCORE_Default_flatness currentflat def
+ /AGMCORE_distilling
+ /product where{
+ pop systemdict/setdistillerparams known product(Adobe PostScript Parser)ne and
+ }{
+ false
+ }ifelse
+ def
+ /AGMCORE_GSTATE AGMCORE_key_known not{
+ /AGMCORE_GSTATE 21 dict def
+ /AGMCORE_tmpmatrix matrix def
+ /AGMCORE_gstack 32 array def
+ /AGMCORE_gstackptr 0 def
+ /AGMCORE_gstacksaveptr 0 def
+ /AGMCORE_gstackframekeys 14 def
+ /AGMCORE_&gsave/gsave ldf
+ /AGMCORE_&grestore/grestore ldf
+ /AGMCORE_&grestoreall/grestoreall ldf
+ /AGMCORE_&save/save ldf
+ /AGMCORE_&setoverprint/setoverprint ldf
+ /AGMCORE_gdictcopy{
+ begin
+ {def}forall
+ end
+ }def
+ /AGMCORE_gput{
+ AGMCORE_gstack AGMCORE_gstackptr get
+ 3 1 roll
+ put
+ }def
+ /AGMCORE_gget{
+ AGMCORE_gstack AGMCORE_gstackptr get
+ exch
+ get
+ }def
+ /gsave{
+ AGMCORE_&gsave
+ AGMCORE_gstack AGMCORE_gstackptr get
+ AGMCORE_gstackptr 1 add
+ dup 32 ge{limitcheck}if
+ /AGMCORE_gstackptr exch store
+ AGMCORE_gstack AGMCORE_gstackptr get
+ AGMCORE_gdictcopy
+ }def
+ /grestore{
+ AGMCORE_&grestore
+ AGMCORE_gstackptr 1 sub
+ dup AGMCORE_gstacksaveptr lt{1 add}if
+ dup AGMCORE_gstack exch get dup/AGMCORE_currentoverprint known
+ {/AGMCORE_currentoverprint get setoverprint}{pop}ifelse
+ /AGMCORE_gstackptr exch store
+ }def
+ /grestoreall{
+ AGMCORE_&grestoreall
+ /AGMCORE_gstackptr AGMCORE_gstacksaveptr store
+ }def
+ /save{
+ AGMCORE_&save
+ AGMCORE_gstack AGMCORE_gstackptr get
+ AGMCORE_gstackptr 1 add
+ dup 32 ge{limitcheck}if
+ /AGMCORE_gstackptr exch store
+ /AGMCORE_gstacksaveptr AGMCORE_gstackptr store
+ AGMCORE_gstack AGMCORE_gstackptr get
+ AGMCORE_gdictcopy
+ }def
+ /setoverprint{
+ dup/AGMCORE_currentoverprint exch AGMCORE_gput AGMCORE_&setoverprint
+ }def
+ 0 1 AGMCORE_gstack length 1 sub{
+ AGMCORE_gstack exch AGMCORE_gstackframekeys dict put
+ }for
+ }if
+ level3/AGMCORE_&sysshfill AGMCORE_key_known not and
+ {
+ /AGMCORE_&sysshfill systemdict/shfill get def
+ /AGMCORE_&sysmakepattern systemdict/makepattern get def
+ /AGMCORE_&usrmakepattern/makepattern load def
+ }if
+ /currentcmykcolor[0 0 0 0]AGMCORE_gput
+ /currentstrokeadjust false AGMCORE_gput
+ /currentcolorspace[/DeviceGray]AGMCORE_gput
+ /sep_tint 0 AGMCORE_gput
+ /devicen_tints[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]AGMCORE_gput
+ /sep_colorspace_dict null AGMCORE_gput
+ /devicen_colorspace_dict null AGMCORE_gput
+ /indexed_colorspace_dict null AGMCORE_gput
+ /currentcolor_intent()AGMCORE_gput
+ /customcolor_tint 1 AGMCORE_gput
+ /absolute_colorimetric_crd null AGMCORE_gput
+ /relative_colorimetric_crd null AGMCORE_gput
+ /saturation_crd null AGMCORE_gput
+ /perceptual_crd null AGMCORE_gput
+ currentcolortransfer cvlit/AGMCore_gray_xfer xdf cvlit/AGMCore_b_xfer xdf
+ cvlit/AGMCore_g_xfer xdf cvlit/AGMCore_r_xfer xdf
+ <<
+ /MaxPatternItem currentsystemparams/MaxPatternCache get
+ >>
+ setuserparams
+ end
+}def
+/ps
+{
+ /setcmykcolor where{
+ pop
+ Adobe_AGM_Core/AGMCORE_&setcmykcolor/setcmykcolor load put
+ }if
+ Adobe_AGM_Core begin
+ /setcmykcolor
+ {
+ 4 copy AGMCORE_cmykbuf astore/currentcmykcolor exch AGMCORE_gput
+ 1 sub 4 1 roll
+ 3{
+ 3 index add neg dup 0 lt{
+ pop 0
+ }if
+ 3 1 roll
+ }repeat
+ setrgbcolor pop
+ }ndf
+ /currentcmykcolor
+ {
+ /currentcmykcolor AGMCORE_gget aload pop
+ }ndf
+ /setoverprint
+ {pop}ndf
+ /currentoverprint
+ {false}ndf
+ /AGMCORE_cyan_plate 1 0 0 0 test_cmyk_color_plate def
+ /AGMCORE_magenta_plate 0 1 0 0 test_cmyk_color_plate def
+ /AGMCORE_yellow_plate 0 0 1 0 test_cmyk_color_plate def
+ /AGMCORE_black_plate 0 0 0 1 test_cmyk_color_plate def
+ /AGMCORE_plate_ndx
+ AGMCORE_cyan_plate{
+ 0
+ }{
+ AGMCORE_magenta_plate{
+ 1
+ }{
+ AGMCORE_yellow_plate{
+ 2
+ }{
+ AGMCORE_black_plate{
+ 3
+ }{
+ 4
+ }ifelse
+ }ifelse
+ }ifelse
+ }ifelse
+ def
+ /AGMCORE_have_reported_unsupported_color_space false def
+ /AGMCORE_report_unsupported_color_space
+ {
+ AGMCORE_have_reported_unsupported_color_space false eq
+ {
+ (Warning: Job contains content that cannot be separated with on-host methods. This content appears on the black plate, and knocks out all other plates.)==
+ Adobe_AGM_Core/AGMCORE_have_reported_unsupported_color_space true ddf
+ }if
+ }def
+ /AGMCORE_composite_job
+ AGMCORE_cyan_plate AGMCORE_magenta_plate and AGMCORE_yellow_plate and AGMCORE_black_plate and def
+ /AGMCORE_in_rip_sep
+ /AGMCORE_in_rip_sep where{
+ pop AGMCORE_in_rip_sep
+ }{
+ AGMCORE_distilling
+ {
+ false
+ }{
+ userdict/Adobe_AGM_OnHost_Seps known{
+ false
+ }{
+ level2{
+ currentpagedevice/Separations 2 copy known{
+ get
+ }{
+ pop pop false
+ }ifelse
+ }{
+ false
+ }ifelse
+ }ifelse
+ }ifelse
+ }ifelse
+ def
+ /AGMCORE_producing_seps AGMCORE_composite_job not AGMCORE_in_rip_sep or def
+ /AGMCORE_host_sep AGMCORE_producing_seps AGMCORE_in_rip_sep not and def
+ /AGM_preserve_spots
+ /AGM_preserve_spots where{
+ pop AGM_preserve_spots
+ }{
+ AGMCORE_distilling AGMCORE_producing_seps or
+ }ifelse
+ def
+ /AGM_is_distiller_preserving_spotimages
+ {
+ currentdistillerparams/PreserveOverprintSettings known
+ {
+ currentdistillerparams/PreserveOverprintSettings get
+ {
+ currentdistillerparams/ColorConversionStrategy known
+ {
+ currentdistillerparams/ColorConversionStrategy get
+ /sRGB ne
+ }{
+ true
+ }ifelse
+ }{
+ false
+ }ifelse
+ }{
+ false
+ }ifelse
+ }def
+ /convert_spot_to_process where{pop}{
+ /convert_spot_to_process
+ {
+ //Adobe_AGM_Core begin
+ dup map_alias{
+ /Name get exch pop
+ }if
+ dup dup(None)eq exch(All)eq or
+ {
+ pop false
+ }{
+ AGMCORE_host_sep
+ {
+ gsave
+ 1 0 0 0 setcmykcolor currentgray 1 exch sub
+ 0 1 0 0 setcmykcolor currentgray 1 exch sub
+ 0 0 1 0 setcmykcolor currentgray 1 exch sub
+ 0 0 0 1 setcmykcolor currentgray 1 exch sub
+ add add add 0 eq
+ {
+ pop false
+ }{
+ false setoverprint
+ current_spot_alias false set_spot_alias
+ 1 1 1 1 6 -1 roll findcmykcustomcolor 1 setcustomcolor
+ set_spot_alias
+ currentgray 1 ne
+ }ifelse
+ grestore
+ }{
+ AGMCORE_distilling
+ {
+ pop AGM_is_distiller_preserving_spotimages not
+ }{
+ //Adobe_AGM_Core/AGMCORE_name xddf
+ false
+ //Adobe_AGM_Core/AGMCORE_pattern_paint_type get 0 eq
+ AGMUTIL_cpd/OverrideSeparations known and
+ {
+ AGMUTIL_cpd/OverrideSeparations get
+ {
+ /HqnSpots/ProcSet resourcestatus
+ {
+ pop pop pop true
+ }if
+ }if
+ }if
+ {
+ AGMCORE_name/HqnSpots/ProcSet findresource/TestSpot gx not
+ }{
+ gsave
+ [/Separation AGMCORE_name/DeviceGray{}]AGMCORE_&setcolorspace
+ false
+ AGMUTIL_cpd/SeparationColorNames 2 copy known
+ {
+ get
+ {AGMCORE_name eq or}forall
+ not
+ }{
+ pop pop pop true
+ }ifelse
+ grestore
+ }ifelse
+ }ifelse
+ }ifelse
+ }ifelse
+ end
+ }def
+ }ifelse
+ /convert_to_process where{pop}{
+ /convert_to_process
+ {
+ dup length 0 eq
+ {
+ pop false
+ }{
+ AGMCORE_host_sep
+ {
+ dup true exch
+ {
+ dup(Cyan)eq exch
+ dup(Magenta)eq 3 -1 roll or exch
+ dup(Yellow)eq 3 -1 roll or exch
+ dup(Black)eq 3 -1 roll or
+ {pop}
+ {convert_spot_to_process and}ifelse
+ }
+ forall
+ {
+ true exch
+ {
+ dup(Cyan)eq exch
+ dup(Magenta)eq 3 -1 roll or exch
+ dup(Yellow)eq 3 -1 roll or exch
+ (Black)eq or and
+ }forall
+ not
+ }{pop false}ifelse
+ }{
+ false exch
+ {
+ /PhotoshopDuotoneList where{pop false}{true}ifelse
+ {
+ dup(Cyan)eq exch
+ dup(Magenta)eq 3 -1 roll or exch
+ dup(Yellow)eq 3 -1 roll or exch
+ dup(Black)eq 3 -1 roll or
+ {pop}
+ {convert_spot_to_process or}ifelse
+ }
+ {
+ convert_spot_to_process or
+ }
+ ifelse
+ }
+ forall
+ }ifelse
+ }ifelse
+ }def
+ }ifelse
+ /AGMCORE_avoid_L2_sep_space
+ version cvr 2012 lt
+ level2 and
+ AGMCORE_producing_seps not and
+ def
+ /AGMCORE_is_cmyk_sep
+ AGMCORE_cyan_plate AGMCORE_magenta_plate or AGMCORE_yellow_plate or AGMCORE_black_plate or
+ def
+ /AGM_avoid_0_cmyk where{
+ pop AGM_avoid_0_cmyk
+ }{
+ AGM_preserve_spots
+ userdict/Adobe_AGM_OnHost_Seps known
+ userdict/Adobe_AGM_InRip_Seps known or
+ not and
+ }ifelse
+ {
+ /setcmykcolor[
+ {
+ 4 copy add add add 0 eq currentoverprint and{
+ pop 0.0005
+ }if
+ }/exec cvx
+ /AGMCORE_&setcmykcolor load dup type/operatortype ne{
+ /exec cvx
+ }if
+ ]cvx def
+ }if
+ /AGMCORE_IsSeparationAProcessColor
+ {
+ dup(Cyan)eq exch dup(Magenta)eq exch dup(Yellow)eq exch(Black)eq or or or
+ }def
+ AGMCORE_host_sep{
+ /setcolortransfer
+ {
+ AGMCORE_cyan_plate{
+ pop pop pop
+ }{
+ AGMCORE_magenta_plate{
+ 4 3 roll pop pop pop
+ }{
+ AGMCORE_yellow_plate{
+ 4 2 roll pop pop pop
+ }{
+ 4 1 roll pop pop pop
+ }ifelse
+ }ifelse
+ }ifelse
+ settransfer
+ }
+ def
+ /AGMCORE_get_ink_data
+ AGMCORE_cyan_plate{
+ {pop pop pop}
+ }{
+ AGMCORE_magenta_plate{
+ {4 3 roll pop pop pop}
+ }{
+ AGMCORE_yellow_plate{
+ {4 2 roll pop pop pop}
+ }{
+ {4 1 roll pop pop pop}
+ }ifelse
+ }ifelse
+ }ifelse
+ def
+ /AGMCORE_RemoveProcessColorNames
+ {
+ 1 dict begin
+ /filtername
+ {
+ dup/Cyan eq 1 index(Cyan)eq or
+ {pop(_cyan_)}if
+ dup/Magenta eq 1 index(Magenta)eq or
+ {pop(_magenta_)}if
+ dup/Yellow eq 1 index(Yellow)eq or
+ {pop(_yellow_)}if
+ dup/Black eq 1 index(Black)eq or
+ {pop(_black_)}if
+ }def
+ dup type/arraytype eq
+ {[exch{filtername}forall]}
+ {filtername}ifelse
+ end
+ }def
+ level3{
+ /AGMCORE_IsCurrentColor
+ {
+ dup AGMCORE_IsSeparationAProcessColor
+ {
+ AGMCORE_plate_ndx 0 eq
+ {dup(Cyan)eq exch/Cyan eq or}if
+ AGMCORE_plate_ndx 1 eq
+ {dup(Magenta)eq exch/Magenta eq or}if
+ AGMCORE_plate_ndx 2 eq
+ {dup(Yellow)eq exch/Yellow eq or}if
+ AGMCORE_plate_ndx 3 eq
+ {dup(Black)eq exch/Black eq or}if
+ AGMCORE_plate_ndx 4 eq
+ {pop false}if
+ }{
+ gsave
+ false setoverprint
+ current_spot_alias false set_spot_alias
+ 1 1 1 1 6 -1 roll findcmykcustomcolor 1 setcustomcolor
+ set_spot_alias
+ currentgray 1 ne
+ grestore
+ }ifelse
+ }def
+ /AGMCORE_filter_functiondatasource
+ {
+ 5 dict begin
+ /data_in xdf
+ data_in type/stringtype eq
+ {
+ /ncomp xdf
+ /comp xdf
+ /string_out data_in length ncomp idiv string def
+ 0 ncomp data_in length 1 sub
+ {
+ string_out exch dup ncomp idiv exch data_in exch ncomp getinterval comp get 255 exch sub put
+ }for
+ string_out
+ }{
+ string/string_in xdf
+ /string_out 1 string def
+ /component xdf
+ [
+ data_in string_in/readstring cvx
+ [component/get cvx 255/exch cvx/sub cvx string_out/exch cvx 0/exch cvx/put cvx string_out]cvx
+ [/pop cvx()]cvx/ifelse cvx
+ ]cvx/ReusableStreamDecode filter
+ }ifelse
+ end
+ }def
+ /AGMCORE_separateShadingFunction
+ {
+ 2 dict begin
+ /paint? xdf
+ /channel xdf
+ dup type/dicttype eq
+ {
+ begin
+ FunctionType 0 eq
+ {
+ /DataSource channel Range length 2 idiv DataSource AGMCORE_filter_functiondatasource def
+ currentdict/Decode known
+ {/Decode Decode channel 2 mul 2 getinterval def}if
+ paint? not
+ {/Decode[1 1]def}if
+ }if
+ FunctionType 2 eq
+ {
+ paint?
+ {
+ /C0[C0 channel get 1 exch sub]def
+ /C1[C1 channel get 1 exch sub]def
+ }{
+ /C0[1]def
+ /C1[1]def
+ }ifelse
+ }if
+ FunctionType 3 eq
+ {
+ /Functions[Functions{channel paint? AGMCORE_separateShadingFunction}forall]def
+ }if
+ currentdict/Range known
+ {/Range[0 1]def}if
+ currentdict
+ end}{
+ channel get 0 paint? AGMCORE_separateShadingFunction
+ }ifelse
+ end
+ }def
+ /AGMCORE_separateShading
+ {
+ 3 -1 roll begin
+ currentdict/Function known
+ {
+ currentdict/Background known
+ {[1 index{Background 3 index get 1 exch sub}{1}ifelse]/Background xdf}if
+ Function 3 1 roll AGMCORE_separateShadingFunction/Function xdf
+ /ColorSpace[/DeviceGray]def
+ }{
+ ColorSpace dup type/arraytype eq{0 get}if/DeviceCMYK eq
+ {
+ /ColorSpace[/DeviceN[/_cyan_/_magenta_/_yellow_/_black_]/DeviceCMYK{}]def
+ }{
+ ColorSpace dup 1 get AGMCORE_RemoveProcessColorNames 1 exch put
+ }ifelse
+ ColorSpace 0 get/Separation eq
+ {
+ {
+ [1/exch cvx/sub cvx]cvx
+ }{
+ [/pop cvx 1]cvx
+ }ifelse
+ ColorSpace 3 3 -1 roll put
+ pop
+ }{
+ {
+ [exch ColorSpace 1 get length 1 sub exch sub/index cvx 1/exch cvx/sub cvx ColorSpace 1 get length 1 add 1/roll cvx ColorSpace 1 get length{/pop cvx}repeat]cvx
+ }{
+ pop[ColorSpace 1 get length{/pop cvx}repeat cvx 1]cvx
+ }ifelse
+ ColorSpace 3 3 -1 roll bind put
+ }ifelse
+ ColorSpace 2/DeviceGray put
+ }ifelse
+ end
+ }def
+ /AGMCORE_separateShadingDict
+ {
+ dup/ColorSpace get
+ dup type/arraytype ne
+ {[exch]}if
+ dup 0 get/DeviceCMYK eq
+ {
+ exch begin
+ currentdict
+ AGMCORE_cyan_plate
+ {0 true}if
+ AGMCORE_magenta_plate
+ {1 true}if
+ AGMCORE_yellow_plate
+ {2 true}if
+ AGMCORE_black_plate
+ {3 true}if
+ AGMCORE_plate_ndx 4 eq
+ {0 false}if
+ dup not currentoverprint and
+ {/AGMCORE_ignoreshade true def}if
+ AGMCORE_separateShading
+ currentdict
+ end exch
+ }if
+ dup 0 get/Separation eq
+ {
+ exch begin
+ ColorSpace 1 get dup/None ne exch/All ne and
+ {
+ ColorSpace 1 get AGMCORE_IsCurrentColor AGMCORE_plate_ndx 4 lt and ColorSpace 1 get AGMCORE_IsSeparationAProcessColor not and
+ {
+ ColorSpace 2 get dup type/arraytype eq{0 get}if/DeviceCMYK eq
+ {
+ /ColorSpace
+ [
+ /Separation
+ ColorSpace 1 get
+ /DeviceGray
+ [
+ ColorSpace 3 get/exec cvx
+ 4 AGMCORE_plate_ndx sub -1/roll cvx
+ 4 1/roll cvx
+ 3[/pop cvx]cvx/repeat cvx
+ 1/exch cvx/sub cvx
+ ]cvx
+ ]def
+ }{
+ AGMCORE_report_unsupported_color_space
+ AGMCORE_black_plate not
+ {
+ currentdict 0 false AGMCORE_separateShading
+ }if
+ }ifelse
+ }{
+ currentdict ColorSpace 1 get AGMCORE_IsCurrentColor
+ 0 exch
+ dup not currentoverprint and
+ {/AGMCORE_ignoreshade true def}if
+ AGMCORE_separateShading
+ }ifelse
+ }if
+ currentdict
+ end exch
+ }if
+ dup 0 get/DeviceN eq
+ {
+ exch begin
+ ColorSpace 1 get convert_to_process
+ {
+ ColorSpace 2 get dup type/arraytype eq{0 get}if/DeviceCMYK eq
+ {
+ /ColorSpace
+ [
+ /DeviceN
+ ColorSpace 1 get
+ /DeviceGray
+ [
+ ColorSpace 3 get/exec cvx
+ 4 AGMCORE_plate_ndx sub -1/roll cvx
+ 4 1/roll cvx
+ 3[/pop cvx]cvx/repeat cvx
+ 1/exch cvx/sub cvx
+ ]cvx
+ ]def
+ }{
+ AGMCORE_report_unsupported_color_space
+ AGMCORE_black_plate not
+ {
+ currentdict 0 false AGMCORE_separateShading
+ /ColorSpace[/DeviceGray]def
+ }if
+ }ifelse
+ }{
+ currentdict
+ false -1 ColorSpace 1 get
+ {
+ AGMCORE_IsCurrentColor
+ {
+ 1 add
+ exch pop true exch exit
+ }if
+ 1 add
+ }forall
+ exch
+ dup not currentoverprint and
+ {/AGMCORE_ignoreshade true def}if
+ AGMCORE_separateShading
+ }ifelse
+ currentdict
+ end exch
+ }if
+ dup 0 get dup/DeviceCMYK eq exch dup/Separation eq exch/DeviceN eq or or not
+ {
+ exch begin
+ ColorSpace dup type/arraytype eq
+ {0 get}if
+ /DeviceGray ne
+ {
+ AGMCORE_report_unsupported_color_space
+ AGMCORE_black_plate not
+ {
+ ColorSpace 0 get/CIEBasedA eq
+ {
+ /ColorSpace[/Separation/_ciebaseda_/DeviceGray{}]def
+ }if
+ ColorSpace 0 get dup/CIEBasedABC eq exch dup/CIEBasedDEF eq exch/DeviceRGB eq or or
+ {
+ /ColorSpace[/DeviceN[/_red_/_green_/_blue_]/DeviceRGB{}]def
+ }if
+ ColorSpace 0 get/CIEBasedDEFG eq
+ {
+ /ColorSpace[/DeviceN[/_cyan_/_magenta_/_yellow_/_black_]/DeviceCMYK{}]def
+ }if
+ currentdict 0 false AGMCORE_separateShading
+ }if
+ }if
+ currentdict
+ end exch
+ }if
+ pop
+ dup/AGMCORE_ignoreshade known
+ {
+ begin
+ /ColorSpace[/Separation(None)/DeviceGray{}]def
+ currentdict end
+ }if
+ }def
+ /shfill
+ {
+ AGMCORE_separateShadingDict
+ dup/AGMCORE_ignoreshade known
+ {pop}
+ {AGMCORE_&sysshfill}ifelse
+ }def
+ /makepattern
+ {
+ exch
+ dup/PatternType get 2 eq
+ {
+ clonedict
+ begin
+ /Shading Shading AGMCORE_separateShadingDict def
+ Shading/AGMCORE_ignoreshade known
+ currentdict end exch
+ {pop<</PatternType 1/PaintProc{pop}/BBox[0 0 1 1]/XStep 1/YStep 1/PaintType 1/TilingType 3>>}if
+ exch AGMCORE_&sysmakepattern
+ }{
+ exch AGMCORE_&usrmakepattern
+ }ifelse
+ }def
+ }if
+ }if
+ AGMCORE_in_rip_sep{
+ /setcustomcolor
+ {
+ exch aload pop
+ dup 7 1 roll inRip_spot_has_ink not {
+ 4{4 index mul 4 1 roll}
+ repeat
+ /DeviceCMYK setcolorspace
+ 6 -2 roll pop pop
+ }{
+ //Adobe_AGM_Core begin
+ /AGMCORE_k xdf/AGMCORE_y xdf/AGMCORE_m xdf/AGMCORE_c xdf
+ end
+ [/Separation 4 -1 roll/DeviceCMYK
+ {dup AGMCORE_c mul exch dup AGMCORE_m mul exch dup AGMCORE_y mul exch AGMCORE_k mul}
+ ]
+ setcolorspace
+ }ifelse
+ setcolor
+ }ndf
+ /setseparationgray
+ {
+ [/Separation(All)/DeviceGray{}]setcolorspace_opt
+ 1 exch sub setcolor
+ }ndf
+ }{
+ /setseparationgray
+ {
+ AGMCORE_&setgray
+ }ndf
+ }ifelse
+ /findcmykcustomcolor
+ {
+ 5 makereadonlyarray
+ }ndf
+ /setcustomcolor
+ {
+ exch aload pop pop
+ 4{4 index mul 4 1 roll}repeat
+ setcmykcolor pop
+ }ndf
+ /has_color
+ /colorimage where{
+ AGMCORE_producing_seps{
+ pop true
+ }{
+ systemdict eq
+ }ifelse
+ }{
+ false
+ }ifelse
+ def
+ /map_index
+ {
+ 1 index mul exch getinterval{255 div}forall
+ }bdf
+ /map_indexed_devn
+ {
+ Lookup Names length 3 -1 roll cvi map_index
+ }bdf
+ /n_color_components
+ {
+ base_colorspace_type
+ dup/DeviceGray eq{
+ pop 1
+ }{
+ /DeviceCMYK eq{
+ 4
+ }{
+ 3
+ }ifelse
+ }ifelse
+ }bdf
+ level2{
+ /mo/moveto ldf
+ /li/lineto ldf
+ /cv/curveto ldf
+ /knockout_unitsq
+ {
+ 1 setgray
+ 0 0 1 1 rectfill
+ }def
+ level2/setcolorspace AGMCORE_key_known not and{
+ /AGMCORE_&&&setcolorspace/setcolorspace ldf
+ /AGMCORE_ReplaceMappedColor
+ {
+ dup type dup/arraytype eq exch/packedarraytype eq or
+ {
+ /AGMCORE_SpotAliasAry2 where{
+ begin
+ dup 0 get dup/Separation eq
+ {
+ pop
+ dup length array copy
+ dup dup 1 get
+ current_spot_alias
+ {
+ dup map_alias
+ {
+ false set_spot_alias
+ dup 1 exch setsepcolorspace
+ true set_spot_alias
+ begin
+ /sep_colorspace_dict currentdict AGMCORE_gput
+ pop pop pop
+ [
+ /Separation Name
+ CSA map_csa
+ MappedCSA
+ /sep_colorspace_proc load
+ ]
+ dup Name
+ end
+ }if
+ }if
+ map_reserved_ink_name 1 xpt
+ }{
+ /DeviceN eq
+ {
+ dup length array copy
+ dup dup 1 get[
+ exch{
+ current_spot_alias{
+ dup map_alias{
+ /Name get exch pop
+ }if
+ }if
+ map_reserved_ink_name
+ }forall
+ ]1 xpt
+ }if
+ }ifelse
+ end
+ }if
+ }if
+ }def
+ /setcolorspace
+ {
+ dup type dup/arraytype eq exch/packedarraytype eq or
+ {
+ dup 0 get/Indexed eq
+ {
+ AGMCORE_distilling
+ {
+ /PhotoshopDuotoneList where
+ {
+ pop false
+ }{
+ true
+ }ifelse
+ }{
+ true
+ }ifelse
+ {
+ aload pop 3 -1 roll
+ AGMCORE_ReplaceMappedColor
+ 3 1 roll 4 array astore
+ }if
+ }{
+ AGMCORE_ReplaceMappedColor
+ }ifelse
+ }if
+ DeviceN_PS2_inRip_seps{AGMCORE_&&&setcolorspace}if
+ }def
+ }if
+ }{
+ /adj
+ {
+ currentstrokeadjust{
+ transform
+ 0.25 sub round 0.25 add exch
+ 0.25 sub round 0.25 add exch
+ itransform
+ }if
+ }def
+ /mo{
+ adj moveto
+ }def
+ /li{
+ adj lineto
+ }def
+ /cv{
+ 6 2 roll adj
+ 6 2 roll adj
+ 6 2 roll adj curveto
+ }def
+ /knockout_unitsq
+ {
+ 1 setgray
+ 8 8 1[8 0 0 8 0 0]{<ffffffffffffffff>}image
+ }def
+ /currentstrokeadjust{
+ /currentstrokeadjust AGMCORE_gget
+ }def
+ /setstrokeadjust{
+ /currentstrokeadjust exch AGMCORE_gput
+ }def
+ /setcolorspace
+ {
+ /currentcolorspace exch AGMCORE_gput
+ }def
+ /currentcolorspace
+ {
+ /currentcolorspace AGMCORE_gget
+ }def
+ /setcolor_devicecolor
+ {
+ base_colorspace_type
+ dup/DeviceGray eq{
+ pop setgray
+ }{
+ /DeviceCMYK eq{
+ setcmykcolor
+ }{
+ setrgbcolor
+ }ifelse
+ }ifelse
+ }def
+ /setcolor
+ {
+ currentcolorspace 0 get
+ dup/DeviceGray ne{
+ dup/DeviceCMYK ne{
+ dup/DeviceRGB ne{
+ dup/Separation eq{
+ pop
+ currentcolorspace 3 gx
+ currentcolorspace 2 get
+ }{
+ dup/Indexed eq{
+ pop
+ currentcolorspace 3 get dup type/stringtype eq{
+ currentcolorspace 1 get n_color_components
+ 3 -1 roll map_index
+ }{
+ exec
+ }ifelse
+ currentcolorspace 1 get
+ }{
+ /AGMCORE_cur_err/AGMCORE_invalid_color_space def
+ AGMCORE_invalid_color_space
+ }ifelse
+ }ifelse
+ }if
+ }if
+ }if
+ setcolor_devicecolor
+ }def
+ }ifelse
+ /sop/setoverprint ldf
+ /lw/setlinewidth ldf
+ /lc/setlinecap ldf
+ /lj/setlinejoin ldf
+ /ml/setmiterlimit ldf
+ /dsh/setdash ldf
+ /sadj/setstrokeadjust ldf
+ /gry/setgray ldf
+ /rgb/setrgbcolor ldf
+ /cmyk[
+ /currentcolorspace[/DeviceCMYK]/AGMCORE_gput cvx
+ /setcmykcolor load dup type/operatortype ne{/exec cvx}if
+ ]cvx bdf
+ level3 AGMCORE_host_sep not and{
+ /nzopmsc{
+ 6 dict begin
+ /kk exch def
+ /yy exch def
+ /mm exch def
+ /cc exch def
+ /sum 0 def
+ cc 0 ne{/sum sum 2#1000 or def cc}if
+ mm 0 ne{/sum sum 2#0100 or def mm}if
+ yy 0 ne{/sum sum 2#0010 or def yy}if
+ kk 0 ne{/sum sum 2#0001 or def kk}if
+ AGMCORE_CMYKDeviceNColorspaces sum get setcolorspace
+ sum 0 eq{0}if
+ end
+ setcolor
+ }bdf
+ }{
+ /nzopmsc/cmyk ldf
+ }ifelse
+ /sep/setsepcolor ldf
+ /devn/setdevicencolor ldf
+ /idx/setindexedcolor ldf
+ /colr/setcolor ldf
+ /csacrd/set_csa_crd ldf
+ /sepcs/setsepcolorspace ldf
+ /devncs/setdevicencolorspace ldf
+ /idxcs/setindexedcolorspace ldf
+ /cp/closepath ldf
+ /clp/clp_npth ldf
+ /eclp/eoclp_npth ldf
+ /f/fill ldf
+ /ef/eofill ldf
+ /@/stroke ldf
+ /nclp/npth_clp ldf
+ /gset/graphic_setup ldf
+ /gcln/graphic_cleanup ldf
+ /ct/concat ldf
+ /cf/currentfile ldf
+ /fl/filter ldf
+ /rs/readstring ldf
+ /AGMCORE_def_ht currenthalftone def
+ /clonedict Adobe_AGM_Utils begin/clonedict load end def
+ /clonearray Adobe_AGM_Utils begin/clonearray load end def
+ currentdict{
+ dup xcheck 1 index type dup/arraytype eq exch/packedarraytype eq or and{
+ bind
+ }if
+ def
+ }forall
+ /getrampcolor
+ {
+ /indx exch def
+ 0 1 NumComp 1 sub
+ {
+ dup
+ Samples exch get
+ dup type/stringtype eq{indx get}if
+ exch
+ Scaling exch get aload pop
+ 3 1 roll
+ mul add
+ }for
+ ColorSpaceFamily/Separation eq
+ {sep}
+ {
+ ColorSpaceFamily/DeviceN eq
+ {devn}{setcolor}ifelse
+ }ifelse
+ }bdf
+ /sssetbackground{
+ aload pop
+ ColorSpaceFamily/Separation eq
+ {sep}
+ {
+ ColorSpaceFamily/DeviceN eq
+ {devn}{setcolor}ifelse
+ }ifelse
+ }bdf
+ /RadialShade
+ {
+ 40 dict begin
+ /ColorSpaceFamily xdf
+ /background xdf
+ /ext1 xdf
+ /ext0 xdf
+ /BBox xdf
+ /r2 xdf
+ /c2y xdf
+ /c2x xdf
+ /r1 xdf
+ /c1y xdf
+ /c1x xdf
+ /rampdict xdf
+ /setinkoverprint where{pop/setinkoverprint{pop}def}if
+ gsave
+ BBox length 0 gt
+ {
+ np
+ BBox 0 get BBox 1 get moveto
+ BBox 2 get BBox 0 get sub 0 rlineto
+ 0 BBox 3 get BBox 1 get sub rlineto
+ BBox 2 get BBox 0 get sub neg 0 rlineto
+ closepath
+ clip
+ np
+ }if
+ c1x c2x eq
+ {
+ c1y c2y lt{/theta 90 def}{/theta 270 def}ifelse
+ }{
+ /slope c2y c1y sub c2x c1x sub div def
+ /theta slope 1 atan def
+ c2x c1x lt c2y c1y ge and{/theta theta 180 sub def}if
+ c2x c1x lt c2y c1y lt and{/theta theta 180 add def}if
+ }ifelse
+ gsave
+ clippath
+ c1x c1y translate
+ theta rotate
+ -90 rotate
+ {pathbbox}stopped
+ {0 0 0 0}if
+ /yMax xdf
+ /xMax xdf
+ /yMin xdf
+ /xMin xdf
+ grestore
+ xMax xMin eq yMax yMin eq or
+ {
+ grestore
+ end
+ }{
+ /max{2 copy gt{pop}{exch pop}ifelse}bdf
+ /min{2 copy lt{pop}{exch pop}ifelse}bdf
+ rampdict begin
+ 40 dict begin
+ background length 0 gt{background sssetbackground gsave clippath fill grestore}if
+ gsave
+ c1x c1y translate
+ theta rotate
+ -90 rotate
+ /c2y c1x c2x sub dup mul c1y c2y sub dup mul add sqrt def
+ /c1y 0 def
+ /c1x 0 def
+ /c2x 0 def
+ ext0
+ {
+ 0 getrampcolor
+ c2y r2 add r1 sub 0.0001 lt
+ {
+ c1x c1y r1 360 0 arcn
+ pathbbox
+ /aymax exch def
+ /axmax exch def
+ /aymin exch def
+ /axmin exch def
+ /bxMin xMin axmin min def
+ /byMin yMin aymin min def
+ /bxMax xMax axmax max def
+ /byMax yMax aymax max def
+ bxMin byMin moveto
+ bxMax byMin lineto
+ bxMax byMax lineto
+ bxMin byMax lineto
+ bxMin byMin lineto
+ eofill
+ }{
+ c2y r1 add r2 le
+ {
+ c1x c1y r1 0 360 arc
+ fill
+ }
+ {
+ c2x c2y r2 0 360 arc fill
+ r1 r2 eq
+ {
+ /p1x r1 neg def
+ /p1y c1y def
+ /p2x r1 def
+ /p2y c1y def
+ p1x p1y moveto p2x p2y lineto p2x yMin lineto p1x yMin lineto
+ fill
+ }{
+ /AA r2 r1 sub c2y div def
+ AA -1 eq
+ {/theta 89.99 def}
+ {/theta AA 1 AA dup mul sub sqrt div 1 atan def}
+ ifelse
+ /SS1 90 theta add dup sin exch cos div def
+ /p1x r1 SS1 SS1 mul SS1 SS1 mul 1 add div sqrt mul neg def
+ /p1y p1x SS1 div neg def
+ /SS2 90 theta sub dup sin exch cos div def
+ /p2x r1 SS2 SS2 mul SS2 SS2 mul 1 add div sqrt mul def
+ /p2y p2x SS2 div neg def
+ r1 r2 gt
+ {
+ /L1maxX p1x yMin p1y sub SS1 div add def
+ /L2maxX p2x yMin p2y sub SS2 div add def
+ }{
+ /L1maxX 0 def
+ /L2maxX 0 def
+ }ifelse
+ p1x p1y moveto p2x p2y lineto L2maxX L2maxX p2x sub SS2 mul p2y add lineto
+ L1maxX L1maxX p1x sub SS1 mul p1y add lineto
+ fill
+ }ifelse
+ }ifelse
+ }ifelse
+ }if
+ c1x c2x sub dup mul
+ c1y c2y sub dup mul
+ add 0.5 exp
+ 0 dtransform
+ dup mul exch dup mul add 0.5 exp 72 div
+ 0 72 matrix defaultmatrix dtransform dup mul exch dup mul add sqrt
+ 72 0 matrix defaultmatrix dtransform dup mul exch dup mul add sqrt
+ 1 index 1 index lt{exch}if pop
+ /hires xdf
+ hires mul
+ /numpix xdf
+ /numsteps NumSamples def
+ /rampIndxInc 1 def
+ /subsampling false def
+ numpix 0 ne
+ {
+ NumSamples numpix div 0.5 gt
+ {
+ /numsteps numpix 2 div round cvi dup 1 le{pop 2}if def
+ /rampIndxInc NumSamples 1 sub numsteps div def
+ /subsampling true def
+ }if
+ }if
+ /xInc c2x c1x sub numsteps div def
+ /yInc c2y c1y sub numsteps div def
+ /rInc r2 r1 sub numsteps div def
+ /cx c1x def
+ /cy c1y def
+ /radius r1 def
+ np
+ xInc 0 eq yInc 0 eq rInc 0 eq and and
+ {
+ 0 getrampcolor
+ cx cy radius 0 360 arc
+ stroke
+ NumSamples 1 sub getrampcolor
+ cx cy radius 72 hires div add 0 360 arc
+ 0 setlinewidth
+ stroke
+ }{
+ 0
+ numsteps
+ {
+ dup
+ subsampling{round cvi}if
+ getrampcolor
+ cx cy radius 0 360 arc
+ /cx cx xInc add def
+ /cy cy yInc add def
+ /radius radius rInc add def
+ cx cy radius 360 0 arcn
+ eofill
+ rampIndxInc add
+ }repeat
+ pop
+ }ifelse
+ ext1
+ {
+ c2y r2 add r1 lt
+ {
+ c2x c2y r2 0 360 arc
+ fill
+ }{
+ c2y r1 add r2 sub 0.0001 le
+ {
+ c2x c2y r2 360 0 arcn
+ pathbbox
+ /aymax exch def
+ /axmax exch def
+ /aymin exch def
+ /axmin exch def
+ /bxMin xMin axmin min def
+ /byMin yMin aymin min def
+ /bxMax xMax axmax max def
+ /byMax yMax aymax max def
+ bxMin byMin moveto
+ bxMax byMin lineto
+ bxMax byMax lineto
+ bxMin byMax lineto
+ bxMin byMin lineto
+ eofill
+ }{
+ c2x c2y r2 0 360 arc fill
+ r1 r2 eq
+ {
+ /p1x r2 neg def
+ /p1y c2y def
+ /p2x r2 def
+ /p2y c2y def
+ p1x p1y moveto p2x p2y lineto p2x yMax lineto p1x yMax lineto
+ fill
+ }{
+ /AA r2 r1 sub c2y div def
+ AA -1 eq
+ {/theta 89.99 def}
+ {/theta AA 1 AA dup mul sub sqrt div 1 atan def}
+ ifelse
+ /SS1 90 theta add dup sin exch cos div def
+ /p1x r2 SS1 SS1 mul SS1 SS1 mul 1 add div sqrt mul neg def
+ /p1y c2y p1x SS1 div sub def
+ /SS2 90 theta sub dup sin exch cos div def
+ /p2x r2 SS2 SS2 mul SS2 SS2 mul 1 add div sqrt mul def
+ /p2y c2y p2x SS2 div sub def
+ r1 r2 lt
+ {
+ /L1maxX p1x yMax p1y sub SS1 div add def
+ /L2maxX p2x yMax p2y sub SS2 div add def
+ }{
+ /L1maxX 0 def
+ /L2maxX 0 def
+ }ifelse
+ p1x p1y moveto p2x p2y lineto L2maxX L2maxX p2x sub SS2 mul p2y add lineto
+ L1maxX L1maxX p1x sub SS1 mul p1y add lineto
+ fill
+ }ifelse
+ }ifelse
+ }ifelse
+ }if
+ grestore
+ grestore
+ end
+ end
+ end
+ }ifelse
+ }bdf
+ /GenStrips
+ {
+ 40 dict begin
+ /ColorSpaceFamily xdf
+ /background xdf
+ /ext1 xdf
+ /ext0 xdf
+ /BBox xdf
+ /y2 xdf
+ /x2 xdf
+ /y1 xdf
+ /x1 xdf
+ /rampdict xdf
+ /setinkoverprint where{pop/setinkoverprint{pop}def}if
+ gsave
+ BBox length 0 gt
+ {
+ np
+ BBox 0 get BBox 1 get moveto
+ BBox 2 get BBox 0 get sub 0 rlineto
+ 0 BBox 3 get BBox 1 get sub rlineto
+ BBox 2 get BBox 0 get sub neg 0 rlineto
+ closepath
+ clip
+ np
+ }if
+ x1 x2 eq
+ {
+ y1 y2 lt{/theta 90 def}{/theta 270 def}ifelse
+ }{
+ /slope y2 y1 sub x2 x1 sub div def
+ /theta slope 1 atan def
+ x2 x1 lt y2 y1 ge and{/theta theta 180 sub def}if
+ x2 x1 lt y2 y1 lt and{/theta theta 180 add def}if
+ }
+ ifelse
+ gsave
+ clippath
+ x1 y1 translate
+ theta rotate
+ {pathbbox}stopped
+ {0 0 0 0}if
+ /yMax exch def
+ /xMax exch def
+ /yMin exch def
+ /xMin exch def
+ grestore
+ xMax xMin eq yMax yMin eq or
+ {
+ grestore
+ end
+ }{
+ rampdict begin
+ 20 dict begin
+ background length 0 gt{background sssetbackground gsave clippath fill grestore}if
+ gsave
+ x1 y1 translate
+ theta rotate
+ /xStart 0 def
+ /xEnd x2 x1 sub dup mul y2 y1 sub dup mul add 0.5 exp def
+ /ySpan yMax yMin sub def
+ /numsteps NumSamples def
+ /rampIndxInc 1 def
+ /subsampling false def
+ xStart 0 transform
+ xEnd 0 transform
+ 3 -1 roll
+ sub dup mul
+ 3 1 roll
+ sub dup mul
+ add 0.5 exp 72 div
+ 0 72 matrix defaultmatrix dtransform dup mul exch dup mul add sqrt
+ 72 0 matrix defaultmatrix dtransform dup mul exch dup mul add sqrt
+ 1 index 1 index lt{exch}if pop
+ mul
+ /numpix xdf
+ numpix 0 ne
+ {
+ NumSamples numpix div 0.5 gt
+ {
+ /numsteps numpix 2 div round cvi dup 1 le{pop 2}if def
+ /rampIndxInc NumSamples 1 sub numsteps div def
+ /subsampling true def
+ }if
+ }if
+ ext0
+ {
+ 0 getrampcolor
+ xMin xStart lt
+ {
+ xMin yMin xMin neg ySpan rectfill
+ }if
+ }if
+ /xInc xEnd xStart sub numsteps div def
+ /x xStart def
+ 0
+ numsteps
+ {
+ dup
+ subsampling{round cvi}if
+ getrampcolor
+ x yMin xInc ySpan rectfill
+ /x x xInc add def
+ rampIndxInc add
+ }repeat
+ pop
+ ext1{
+ xMax xEnd gt
+ {
+ xEnd yMin xMax xEnd sub ySpan rectfill
+ }if
+ }if
+ grestore
+ grestore
+ end
+ end
+ end
+ }ifelse
+ }bdf
+}def
+/pt
+{
+ end
+}def
+/dt{
+}def
+/pgsv{
+ //Adobe_AGM_Core/AGMCORE_save save put
+}def
+/pgrs{
+ //Adobe_AGM_Core/AGMCORE_save get restore
+}def
+systemdict/findcolorrendering known{
+ /findcolorrendering systemdict/findcolorrendering get def
+}if
+systemdict/setcolorrendering known{
+ /setcolorrendering systemdict/setcolorrendering get def
+}if
+/test_cmyk_color_plate
+{
+ gsave
+ setcmykcolor currentgray 1 ne
+ grestore
+}def
+/inRip_spot_has_ink
+{
+ dup//Adobe_AGM_Core/AGMCORE_name xddf
+ convert_spot_to_process not
+}def
+/map255_to_range
+{
+ 1 index sub
+ 3 -1 roll 255 div mul add
+}def
+/set_csa_crd
+{
+ /sep_colorspace_dict null AGMCORE_gput
+ begin
+ CSA get_csa_by_name setcolorspace_opt
+ set_crd
+ end
+}
+def
+/map_csa
+{
+ currentdict/MappedCSA known{MappedCSA null ne}{false}ifelse
+ {pop}{get_csa_by_name/MappedCSA xdf}ifelse
+}def
+/setsepcolor
+{
+ /sep_colorspace_dict AGMCORE_gget begin
+ dup/sep_tint exch AGMCORE_gput
+ TintProc
+ end
+}def
+/setdevicencolor
+{
+ /devicen_colorspace_dict AGMCORE_gget begin
+ Names length copy
+ Names length 1 sub -1 0
+ {
+ /devicen_tints AGMCORE_gget 3 1 roll xpt
+ }for
+ TintProc
+ end
+}def
+/sep_colorspace_proc
+{
+ /AGMCORE_tmp exch store
+ /sep_colorspace_dict AGMCORE_gget begin
+ currentdict/Components known{
+ Components aload pop
+ TintMethod/Lab eq{
+ 2{AGMCORE_tmp mul NComponents 1 roll}repeat
+ LMax sub AGMCORE_tmp mul LMax add NComponents 1 roll
+ }{
+ TintMethod/Subtractive eq{
+ NComponents{
+ AGMCORE_tmp mul NComponents 1 roll
+ }repeat
+ }{
+ NComponents{
+ 1 sub AGMCORE_tmp mul 1 add NComponents 1 roll
+ }repeat
+ }ifelse
+ }ifelse
+ }{
+ ColorLookup AGMCORE_tmp ColorLookup length 1 sub mul round cvi get
+ aload pop
+ }ifelse
+ end
+}def
+/sep_colorspace_gray_proc
+{
+ /AGMCORE_tmp exch store
+ /sep_colorspace_dict AGMCORE_gget begin
+ GrayLookup AGMCORE_tmp GrayLookup length 1 sub mul round cvi get
+ end
+}def
+/sep_proc_name
+{
+ dup 0 get
+ dup/DeviceRGB eq exch/DeviceCMYK eq or level2 not and has_color not and{
+ pop[/DeviceGray]
+ /sep_colorspace_gray_proc
+ }{
+ /sep_colorspace_proc
+ }ifelse
+}def
+/setsepcolorspace
+{
+ current_spot_alias{
+ dup begin
+ Name map_alias{
+ exch pop
+ }if
+ end
+ }if
+ dup/sep_colorspace_dict exch AGMCORE_gput
+ begin
+ CSA map_csa
+ /AGMCORE_sep_special Name dup()eq exch(All)eq or store
+ AGMCORE_avoid_L2_sep_space{
+ [/Indexed MappedCSA sep_proc_name 255 exch
+ {255 div}/exec cvx 3 -1 roll[4 1 roll load/exec cvx]cvx
+ ]setcolorspace_opt
+ /TintProc{
+ 255 mul round cvi setcolor
+ }bdf
+ }{
+ MappedCSA 0 get/DeviceCMYK eq
+ currentdict/Components known and
+ AGMCORE_sep_special not and{
+ /TintProc[
+ Components aload pop Name findcmykcustomcolor
+ /exch cvx/setcustomcolor cvx
+ ]cvx bdf
+ }{
+ AGMCORE_host_sep Name(All)eq and{
+ /TintProc{
+ 1 exch sub setseparationgray
+ }bdf
+ }{
+ AGMCORE_in_rip_sep MappedCSA 0 get/DeviceCMYK eq and
+ AGMCORE_host_sep or
+ Name()eq and{
+ /TintProc[
+ MappedCSA sep_proc_name exch 0 get/DeviceCMYK eq{
+ cvx/setcmykcolor cvx
+ }{
+ cvx/setgray cvx
+ }ifelse
+ ]cvx bdf
+ }{
+ AGMCORE_producing_seps MappedCSA 0 get dup/DeviceCMYK eq exch/DeviceGray eq or and AGMCORE_sep_special not and{
+ /TintProc[
+ /dup cvx
+ MappedCSA sep_proc_name cvx exch
+ 0 get/DeviceGray eq{
+ 1/exch cvx/sub cvx 0 0 0 4 -1/roll cvx
+ }if
+ /Name cvx/findcmykcustomcolor cvx/exch cvx
+ AGMCORE_host_sep{
+ AGMCORE_is_cmyk_sep
+ /Name cvx
+ /AGMCORE_IsSeparationAProcessColor load/exec cvx
+ /not cvx/and cvx
+ }{
+ Name inRip_spot_has_ink not
+ }ifelse
+ [
+ /pop cvx 1
+ ]cvx/if cvx
+ /setcustomcolor cvx
+ ]cvx bdf
+ }{
+ /TintProc{setcolor}bdf
+ [/Separation Name MappedCSA sep_proc_name load]setcolorspace_opt
+ }ifelse
+ }ifelse
+ }ifelse
+ }ifelse
+ }ifelse
+ set_crd
+ setsepcolor
+ end
+}def
+/additive_blend
+{
+ 3 dict begin
+ /numarrays xdf
+ /numcolors xdf
+ 0 1 numcolors 1 sub
+ {
+ /c1 xdf
+ 1
+ 0 1 numarrays 1 sub
+ {
+ 1 exch add/index cvx
+ c1/get cvx/mul cvx
+ }for
+ numarrays 1 add 1/roll cvx
+ }for
+ numarrays[/pop cvx]cvx/repeat cvx
+ end
+}def
+/subtractive_blend
+{
+ 3 dict begin
+ /numarrays xdf
+ /numcolors xdf
+ 0 1 numcolors 1 sub
+ {
+ /c1 xdf
+ 1 1
+ 0 1 numarrays 1 sub
+ {
+ 1 3 3 -1 roll add/index cvx
+ c1/get cvx/sub cvx/mul cvx
+ }for
+ /sub cvx
+ numarrays 1 add 1/roll cvx
+ }for
+ numarrays[/pop cvx]cvx/repeat cvx
+ end
+}def
+/exec_tint_transform
+{
+ /TintProc[
+ /TintTransform cvx/setcolor cvx
+ ]cvx bdf
+ MappedCSA setcolorspace_opt
+}bdf
+/devn_makecustomcolor
+{
+ 2 dict begin
+ /names_index xdf
+ /Names xdf
+ 1 1 1 1 Names names_index get findcmykcustomcolor
+ /devicen_tints AGMCORE_gget names_index get setcustomcolor
+ Names length{pop}repeat
+ end
+}bdf
+/setdevicencolorspace
+{
+ dup/AliasedColorants known{false}{true}ifelse
+ current_spot_alias and{
+ 7 dict begin
+ /names_index 0 def
+ dup/names_len exch/Names get length def
+ /new_names names_len array def
+ /new_LookupTables names_len array def
+ /alias_cnt 0 def
+ dup/Names get
+ {
+ dup map_alias{
+ exch pop
+ dup/ColorLookup known{
+ dup begin
+ new_LookupTables names_index ColorLookup put
+ end
+ }{
+ dup/Components known{
+ dup begin
+ new_LookupTables names_index Components put
+ end
+ }{
+ dup begin
+ new_LookupTables names_index[null null null null]put
+ end
+ }ifelse
+ }ifelse
+ new_names names_index 3 -1 roll/Name get put
+ /alias_cnt alias_cnt 1 add def
+ }{
+ /name xdf
+ new_names names_index name put
+ dup/LookupTables known{
+ dup begin
+ new_LookupTables names_index LookupTables names_index get put
+ end
+ }{
+ dup begin
+ new_LookupTables names_index[null null null null]put
+ end
+ }ifelse
+ }ifelse
+ /names_index names_index 1 add def
+ }forall
+ alias_cnt 0 gt{
+ /AliasedColorants true def
+ /lut_entry_len new_LookupTables 0 get dup length 256 ge{0 get length}{length}ifelse def
+ 0 1 names_len 1 sub{
+ /names_index xdf
+ new_LookupTables names_index get dup length 256 ge{0 get length}{length}ifelse lut_entry_len ne{
+ /AliasedColorants false def
+ exit
+ }{
+ new_LookupTables names_index get 0 get null eq{
+ dup/Names get names_index get/name xdf
+ name(Cyan)eq name(Magenta)eq name(Yellow)eq name(Black)eq
+ or or or not{
+ /AliasedColorants false def
+ exit
+ }if
+ }if
+ }ifelse
+ }for
+ lut_entry_len 1 eq{
+ /AliasedColorants false def
+ }if
+ AliasedColorants{
+ dup begin
+ /Names new_names def
+ /LookupTables new_LookupTables def
+ /AliasedColorants true def
+ /NComponents lut_entry_len def
+ /TintMethod NComponents 4 eq{/Subtractive}{/Additive}ifelse def
+ /MappedCSA TintMethod/Additive eq{/DeviceRGB}{/DeviceCMYK}ifelse def
+ currentdict/TTTablesIdx known not{
+ /TTTablesIdx -1 def
+ }if
+ end
+ }if
+ }if
+ end
+ }if
+ dup/devicen_colorspace_dict exch AGMCORE_gput
+ begin
+ currentdict/AliasedColorants known{
+ AliasedColorants
+ }{
+ false
+ }ifelse
+ dup not{
+ CSA map_csa
+ }if
+ /TintTransform load type/nulltype eq or{
+ /TintTransform[
+ 0 1 Names length 1 sub
+ {
+ /TTTablesIdx TTTablesIdx 1 add def
+ dup LookupTables exch get dup 0 get null eq
+ {
+ 1 index
+ Names exch get
+ dup(Cyan)eq
+ {
+ pop exch
+ LookupTables length exch sub
+ /index cvx
+ 0 0 0
+ }
+ {
+ dup(Magenta)eq
+ {
+ pop exch
+ LookupTables length exch sub
+ /index cvx
+ 0/exch cvx 0 0
+ }{
+ (Yellow)eq
+ {
+ exch
+ LookupTables length exch sub
+ /index cvx
+ 0 0 3 -1/roll cvx 0
+ }{
+ exch
+ LookupTables length exch sub
+ /index cvx
+ 0 0 0 4 -1/roll cvx
+ }ifelse
+ }ifelse
+ }ifelse
+ 5 -1/roll cvx/astore cvx
+ }{
+ dup length 1 sub
+ LookupTables length 4 -1 roll sub 1 add
+ /index cvx/mul cvx/round cvx/cvi cvx/get cvx
+ }ifelse
+ Names length TTTablesIdx add 1 add 1/roll cvx
+ }for
+ Names length[/pop cvx]cvx/repeat cvx
+ NComponents Names length
+ TintMethod/Subtractive eq
+ {
+ subtractive_blend
+ }{
+ additive_blend
+ }ifelse
+ ]cvx bdf
+ }if
+ AGMCORE_host_sep{
+ Names convert_to_process{
+ exec_tint_transform
+ }
+ {
+ currentdict/AliasedColorants known{
+ AliasedColorants not
+ }{
+ false
+ }ifelse
+ 5 dict begin
+ /AvoidAliasedColorants xdf
+ /painted? false def
+ /names_index 0 def
+ /names_len Names length def
+ AvoidAliasedColorants{
+ /currentspotalias current_spot_alias def
+ false set_spot_alias
+ }if
+ Names{
+ AGMCORE_is_cmyk_sep{
+ dup(Cyan)eq AGMCORE_cyan_plate and exch
+ dup(Magenta)eq AGMCORE_magenta_plate and exch
+ dup(Yellow)eq AGMCORE_yellow_plate and exch
+ (Black)eq AGMCORE_black_plate and or or or{
+ /devicen_colorspace_dict AGMCORE_gget/TintProc[
+ Names names_index/devn_makecustomcolor cvx
+ ]cvx ddf
+ /painted? true def
+ }if
+ painted?{exit}if
+ }{
+ 0 0 0 0 5 -1 roll findcmykcustomcolor 1 setcustomcolor currentgray 0 eq{
+ /devicen_colorspace_dict AGMCORE_gget/TintProc[
+ Names names_index/devn_makecustomcolor cvx
+ ]cvx ddf
+ /painted? true def
+ exit
+ }if
+ }ifelse
+ /names_index names_index 1 add def
+ }forall
+ AvoidAliasedColorants{
+ currentspotalias set_spot_alias
+ }if
+ painted?{
+ /devicen_colorspace_dict AGMCORE_gget/names_index names_index put
+ }{
+ /devicen_colorspace_dict AGMCORE_gget/TintProc[
+ names_len[/pop cvx]cvx/repeat cvx 1/setseparationgray cvx
+ 0 0 0 0/setcmykcolor cvx
+ ]cvx ddf
+ }ifelse
+ end
+ }ifelse
+ }
+ {
+ AGMCORE_in_rip_sep{
+ Names convert_to_process not
+ }{
+ level3
+ }ifelse
+ {
+ [/DeviceN Names MappedCSA/TintTransform load]setcolorspace_opt
+ /TintProc level3 not AGMCORE_in_rip_sep and{
+ [
+ Names/length cvx[/pop cvx]cvx/repeat cvx
+ ]cvx bdf
+ }{
+ {setcolor}bdf
+ }ifelse
+ }{
+ exec_tint_transform
+ }ifelse
+ }ifelse
+ set_crd
+ /AliasedColorants false def
+ end
+}def
+/setindexedcolorspace
+{
+ dup/indexed_colorspace_dict exch AGMCORE_gput
+ begin
+ currentdict/CSDBase known{
+ CSDBase/CSD get_res begin
+ currentdict/Names known{
+ currentdict devncs
+ }{
+ 1 currentdict sepcs
+ }ifelse
+ AGMCORE_host_sep{
+ 4 dict begin
+ /compCnt/Names where{pop Names length}{1}ifelse def
+ /NewLookup HiVal 1 add string def
+ 0 1 HiVal{
+ /tableIndex xdf
+ Lookup dup type/stringtype eq{
+ compCnt tableIndex map_index
+ }{
+ exec
+ }ifelse
+ /Names where{
+ pop setdevicencolor
+ }{
+ setsepcolor
+ }ifelse
+ currentgray
+ tableIndex exch
+ 255 mul cvi
+ NewLookup 3 1 roll put
+ }for
+ [/Indexed currentcolorspace HiVal NewLookup]setcolorspace_opt
+ end
+ }{
+ level3
+ {
+ currentdict/Names known{
+ [/Indexed[/DeviceN Names MappedCSA/TintTransform load]HiVal Lookup]setcolorspace_opt
+ }{
+ [/Indexed[/Separation Name MappedCSA sep_proc_name load]HiVal Lookup]setcolorspace_opt
+ }ifelse
+ }{
+ [/Indexed MappedCSA HiVal
+ [
+ currentdict/Names known{
+ Lookup dup type/stringtype eq
+ {/exch cvx CSDBase/CSD get_res/Names get length dup/mul cvx exch/getinterval cvx{255 div}/forall cvx}
+ {/exec cvx}ifelse
+ /TintTransform load/exec cvx
+ }{
+ Lookup dup type/stringtype eq
+ {/exch cvx/get cvx 255/div cvx}
+ {/exec cvx}ifelse
+ CSDBase/CSD get_res/MappedCSA get sep_proc_name exch pop/load cvx/exec cvx
+ }ifelse
+ ]cvx
+ ]setcolorspace_opt
+ }ifelse
+ }ifelse
+ end
+ set_crd
+ }
+ {
+ CSA map_csa
+ AGMCORE_host_sep level2 not and{
+ 0 0 0 0 setcmykcolor
+ }{
+ [/Indexed MappedCSA
+ level2 not has_color not and{
+ dup 0 get dup/DeviceRGB eq exch/DeviceCMYK eq or{
+ pop[/DeviceGray]
+ }if
+ HiVal GrayLookup
+ }{
+ HiVal
+ currentdict/RangeArray known{
+ {
+ /indexed_colorspace_dict AGMCORE_gget begin
+ Lookup exch
+ dup HiVal gt{
+ pop HiVal
+ }if
+ NComponents mul NComponents getinterval{}forall
+ NComponents 1 sub -1 0{
+ RangeArray exch 2 mul 2 getinterval aload pop map255_to_range
+ NComponents 1 roll
+ }for
+ end
+ }bind
+ }{
+ Lookup
+ }ifelse
+ }ifelse
+ ]setcolorspace_opt
+ set_crd
+ }ifelse
+ }ifelse
+ end
+}def
+/setindexedcolor
+{
+ AGMCORE_host_sep{
+ /indexed_colorspace_dict AGMCORE_gget
+ begin
+ currentdict/CSDBase known{
+ CSDBase/CSD get_res begin
+ currentdict/Names known{
+ map_indexed_devn
+ devn
+ }
+ {
+ Lookup 1 3 -1 roll map_index
+ sep
+ }ifelse
+ end
+ }{
+ Lookup MappedCSA/DeviceCMYK eq{4}{1}ifelse 3 -1 roll
+ map_index
+ MappedCSA/DeviceCMYK eq{setcmykcolor}{setgray}ifelse
+ }ifelse
+ end
+ }{
+ level3 not AGMCORE_in_rip_sep and/indexed_colorspace_dict AGMCORE_gget/CSDBase known and{
+ /indexed_colorspace_dict AGMCORE_gget/CSDBase get/CSD get_res begin
+ map_indexed_devn
+ devn
+ end
+ }
+ {
+ setcolor
+ }ifelse
+ }ifelse
+}def
+/ignoreimagedata
+{
+ currentoverprint not{
+ gsave
+ dup clonedict begin
+ 1 setgray
+ /Decode[0 1]def
+ /DataSource<FF>def
+ /MultipleDataSources false def
+ /BitsPerComponent 8 def
+ currentdict end
+ systemdict/image gx
+ grestore
+ }if
+ consumeimagedata
+}def
+/add_res
+{
+ dup/CSD eq{
+ pop
+ //Adobe_AGM_Core begin
+ /AGMCORE_CSD_cache load 3 1 roll put
+ end
+ }{
+ defineresource pop
+ }ifelse
+}def
+/del_res
+{
+ {
+ aload pop exch
+ dup/CSD eq{
+ pop
+ {//Adobe_AGM_Core/AGMCORE_CSD_cache get exch undef}forall
+ }{
+ exch
+ {1 index undefineresource}forall
+ pop
+ }ifelse
+ }forall
+}def
+/get_res
+{
+ dup/CSD eq{
+ pop
+ dup type dup/nametype eq exch/stringtype eq or{
+ AGMCORE_CSD_cache exch get
+ }if
+ }{
+ findresource
+ }ifelse
+}def
+/get_csa_by_name
+{
+ dup type dup/nametype eq exch/stringtype eq or{
+ /CSA get_res
+ }if
+}def
+/paintproc_buf_init
+{
+ /count get 0 0 put
+}def
+/paintproc_buf_next
+{
+ dup/count get dup 0 get
+ dup 3 1 roll
+ 1 add 0 xpt
+ get
+}def
+/cachepaintproc_compress
+{
+ 5 dict begin
+ currentfile exch 0 exch/SubFileDecode filter/ReadFilter exch def
+ /ppdict 20 dict def
+ /string_size 16000 def
+ /readbuffer string_size string def
+ currentglobal true setglobal
+ ppdict 1 array dup 0 1 put/count xpt
+ setglobal
+ /LZWFilter
+ {
+ exch
+ dup length 0 eq{
+ pop
+ }{
+ ppdict dup length 1 sub 3 -1 roll put
+ }ifelse
+ {string_size}{0}ifelse string
+ }/LZWEncode filter def
+ {
+ ReadFilter readbuffer readstring
+ exch LZWFilter exch writestring
+ not{exit}if
+ }loop
+ LZWFilter closefile
+ ppdict
+ end
+}def
+/cachepaintproc
+{
+ 2 dict begin
+ currentfile exch 0 exch/SubFileDecode filter/ReadFilter exch def
+ /ppdict 20 dict def
+ currentglobal true setglobal
+ ppdict 1 array dup 0 1 put/count xpt
+ setglobal
+ {
+ ReadFilter 16000 string readstring exch
+ ppdict dup length 1 sub 3 -1 roll put
+ not{exit}if
+ }loop
+ ppdict dup dup length 1 sub()put
+ end
+}def
+/make_pattern
+{
+ exch clonedict exch
+ dup matrix currentmatrix matrix concatmatrix 0 0 3 2 roll itransform
+ exch 3 index/XStep get 1 index exch 2 copy div cvi mul sub sub
+ exch 3 index/YStep get 1 index exch 2 copy div cvi mul sub sub
+ matrix translate exch matrix concatmatrix
+ 1 index begin
+ BBox 0 get XStep div cvi XStep mul/xshift exch neg def
+ BBox 1 get YStep div cvi YStep mul/yshift exch neg def
+ BBox 0 get xshift add
+ BBox 1 get yshift add
+ BBox 2 get xshift add
+ BBox 3 get yshift add
+ 4 array astore
+ /BBox exch def
+ [xshift yshift/translate load null/exec load]dup
+ 3/PaintProc load put cvx/PaintProc exch def
+ end
+ gsave 0 setgray
+ makepattern
+ grestore
+}def
+/set_pattern
+{
+ dup/PatternType get 1 eq{
+ dup/PaintType get 1 eq{
+ currentoverprint sop[/DeviceGray]setcolorspace 0 setgray
+ }if
+ }if
+ setpattern
+}def
+/setcolorspace_opt
+{
+ dup currentcolorspace eq{pop}{setcolorspace}ifelse
+}def
+/updatecolorrendering
+{
+ currentcolorrendering/RenderingIntent known{
+ currentcolorrendering/RenderingIntent get
+ }
+ {
+ Intent/AbsoluteColorimetric eq
+ {
+ /absolute_colorimetric_crd AGMCORE_gget dup null eq
+ }
+ {
+ Intent/RelativeColorimetric eq
+ {
+ /relative_colorimetric_crd AGMCORE_gget dup null eq
+ }
+ {
+ Intent/Saturation eq
+ {
+ /saturation_crd AGMCORE_gget dup null eq
+ }
+ {
+ /perceptual_crd AGMCORE_gget dup null eq
+ }ifelse
+ }ifelse
+ }ifelse
+ {
+ pop null
+ }
+ {
+ /RenderingIntent known{null}{Intent}ifelse
+ }ifelse
+ }ifelse
+ Intent ne{
+ Intent/ColorRendering{findresource}stopped
+ {
+ pop pop systemdict/findcolorrendering known
+ {
+ Intent findcolorrendering
+ {
+ /ColorRendering findresource true exch
+ }
+ {
+ /ColorRendering findresource
+ product(Xerox Phaser 5400)ne
+ exch
+ }ifelse
+ dup Intent/AbsoluteColorimetric eq
+ {
+ /absolute_colorimetric_crd exch AGMCORE_gput
+ }
+ {
+ Intent/RelativeColorimetric eq
+ {
+ /relative_colorimetric_crd exch AGMCORE_gput
+ }
+ {
+ Intent/Saturation eq
+ {
+ /saturation_crd exch AGMCORE_gput
+ }
+ {
+ Intent/Perceptual eq
+ {
+ /perceptual_crd exch AGMCORE_gput
+ }
+ {
+ pop
+ }ifelse
+ }ifelse
+ }ifelse
+ }ifelse
+ 1 index{exch}{pop}ifelse
+ }
+ {false}ifelse
+ }
+ {true}ifelse
+ {
+ dup begin
+ currentdict/TransformPQR known{
+ currentdict/TransformPQR get aload pop
+ 3{{}eq 3 1 roll}repeat or or
+ }
+ {true}ifelse
+ currentdict/MatrixPQR known{
+ currentdict/MatrixPQR get aload pop
+ 1.0 eq 9 1 roll 0.0 eq 9 1 roll 0.0 eq 9 1 roll
+ 0.0 eq 9 1 roll 1.0 eq 9 1 roll 0.0 eq 9 1 roll
+ 0.0 eq 9 1 roll 0.0 eq 9 1 roll 1.0 eq
+ and and and and and and and and
+ }
+ {true}ifelse
+ end
+ or
+ {
+ clonedict begin
+ /TransformPQR[
+ {4 -1 roll 3 get dup 3 1 roll sub 5 -1 roll 3 get 3 -1 roll sub div
+ 3 -1 roll 3 get 3 -1 roll 3 get dup 4 1 roll sub mul add}bind
+ {4 -1 roll 4 get dup 3 1 roll sub 5 -1 roll 4 get 3 -1 roll sub div
+ 3 -1 roll 4 get 3 -1 roll 4 get dup 4 1 roll sub mul add}bind
+ {4 -1 roll 5 get dup 3 1 roll sub 5 -1 roll 5 get 3 -1 roll sub div
+ 3 -1 roll 5 get 3 -1 roll 5 get dup 4 1 roll sub mul add}bind
+ ]def
+ /MatrixPQR[0.8951 -0.7502 0.0389 0.2664 1.7135 -0.0685 -0.1614 0.0367 1.0296]def
+ /RangePQR[-0.3227950745 2.3229645538 -1.5003771057 3.5003465881 -0.1369979095 2.136967392]def
+ currentdict end
+ }if
+ setcolorrendering_opt
+ }if
+ }if
+}def
+/set_crd
+{
+ AGMCORE_host_sep not level2 and{
+ currentdict/ColorRendering known{
+ ColorRendering/ColorRendering{findresource}stopped not{setcolorrendering_opt}if
+ }{
+ currentdict/Intent known{
+ updatecolorrendering
+ }if
+ }ifelse
+ currentcolorspace dup type/arraytype eq
+ {0 get}if
+ /DeviceRGB eq
+ {
+ currentdict/UCR known
+ {/UCR}{/AGMCORE_currentucr}ifelse
+ load setundercolorremoval
+ currentdict/BG known
+ {/BG}{/AGMCORE_currentbg}ifelse
+ load setblackgeneration
+ }if
+ }if
+}def
+/set_ucrbg
+{
+ dup null eq {pop /AGMCORE_currentbg load}{/Procedure get_res}ifelse
+ dup currentblackgeneration eq {pop}{setblackgeneration}ifelse
+ dup null eq {pop /AGMCORE_currentucr load}{/Procedure get_res}ifelse
+ dup currentundercolorremoval eq {pop}{setundercolorremoval}ifelse
+}def
+/setcolorrendering_opt
+{
+ dup currentcolorrendering eq{
+ pop
+ }{
+ product(HP Color LaserJet 2605)anchorsearch{
+ pop pop pop
+ }{
+ pop
+ clonedict
+ begin
+ /Intent Intent def
+ currentdict
+ end
+ setcolorrendering
+ }ifelse
+ }ifelse
+}def
+/cpaint_gcomp
+{
+ convert_to_process//Adobe_AGM_Core/AGMCORE_ConvertToProcess xddf
+ //Adobe_AGM_Core/AGMCORE_ConvertToProcess get not
+ {
+ (%end_cpaint_gcomp)flushinput
+ }if
+}def
+/cpaint_gsep
+{
+ //Adobe_AGM_Core/AGMCORE_ConvertToProcess get
+ {
+ (%end_cpaint_gsep)flushinput
+ }if
+}def
+/cpaint_gend
+{np}def
+/T1_path
+{
+ currentfile token pop currentfile token pop mo
+ {
+ currentfile token pop dup type/stringtype eq
+ {pop exit}if
+ 0 exch rlineto
+ currentfile token pop dup type/stringtype eq
+ {pop exit}if
+ 0 rlineto
+ }loop
+}def
+/T1_gsave
+ level3
+ {/clipsave}
+ {/gsave}ifelse
+ load def
+/T1_grestore
+ level3
+ {/cliprestore}
+ {/grestore}ifelse
+ load def
+/set_spot_alias_ary
+{
+ dup inherit_aliases
+ //Adobe_AGM_Core/AGMCORE_SpotAliasAry xddf
+}def
+/set_spot_normalization_ary
+{
+ dup inherit_aliases
+ dup length
+ /AGMCORE_SpotAliasAry where{pop AGMCORE_SpotAliasAry length add}if
+ array
+ //Adobe_AGM_Core/AGMCORE_SpotAliasAry2 xddf
+ /AGMCORE_SpotAliasAry where{
+ pop
+ AGMCORE_SpotAliasAry2 0 AGMCORE_SpotAliasAry putinterval
+ AGMCORE_SpotAliasAry length
+ }{0}ifelse
+ AGMCORE_SpotAliasAry2 3 1 roll exch putinterval
+ true set_spot_alias
+}def
+/inherit_aliases
+{
+ {dup/Name get map_alias{/CSD put}{pop}ifelse}forall
+}def
+/set_spot_alias
+{
+ /AGMCORE_SpotAliasAry2 where{
+ /AGMCORE_current_spot_alias 3 -1 roll put
+ }{
+ pop
+ }ifelse
+}def
+/current_spot_alias
+{
+ /AGMCORE_SpotAliasAry2 where{
+ /AGMCORE_current_spot_alias get
+ }{
+ false
+ }ifelse
+}def
+/map_alias
+{
+ /AGMCORE_SpotAliasAry2 where{
+ begin
+ /AGMCORE_name xdf
+ false
+ AGMCORE_SpotAliasAry2{
+ dup/Name get AGMCORE_name eq{
+ /CSD get/CSD get_res
+ exch pop true
+ exit
+ }{
+ pop
+ }ifelse
+ }forall
+ end
+ }{
+ pop false
+ }ifelse
+}bdf
+/spot_alias
+{
+ true set_spot_alias
+ /AGMCORE_&setcustomcolor AGMCORE_key_known not{
+ //Adobe_AGM_Core/AGMCORE_&setcustomcolor/setcustomcolor load put
+ }if
+ /customcolor_tint 1 AGMCORE_gput
+ //Adobe_AGM_Core begin
+ /setcustomcolor
+ {
+ //Adobe_AGM_Core begin
+ dup/customcolor_tint exch AGMCORE_gput
+ 1 index aload pop pop 1 eq exch 1 eq and exch 1 eq and exch 1 eq and not
+ current_spot_alias and{1 index 4 get map_alias}{false}ifelse
+ {
+ false set_spot_alias
+ /sep_colorspace_dict AGMCORE_gget null ne
+ {/sep_colorspace_dict AGMCORE_gget/ForeignContent known not}{false}ifelse
+ 3 1 roll 2 index{
+ exch pop/sep_tint AGMCORE_gget exch
+ }if
+ mark 3 1 roll
+ setsepcolorspace
+ counttomark 0 ne{
+ setsepcolor
+ }if
+ pop
+ not{/sep_tint 1.0 AGMCORE_gput/sep_colorspace_dict AGMCORE_gget/ForeignContent true put}if
+ pop
+ true set_spot_alias
+ }{
+ AGMCORE_&setcustomcolor
+ }ifelse
+ end
+ }bdf
+ end
+}def
+/begin_feature
+{
+ Adobe_AGM_Core/AGMCORE_feature_dictCount countdictstack put
+ count Adobe_AGM_Core/AGMCORE_feature_opCount 3 -1 roll put
+ {Adobe_AGM_Core/AGMCORE_feature_ctm matrix currentmatrix put}if
+}def
+/end_feature
+{
+ 2 dict begin
+ /spd/setpagedevice load def
+ /setpagedevice{get_gstate spd set_gstate}def
+ stopped{$error/newerror false put}if
+ end
+ count Adobe_AGM_Core/AGMCORE_feature_opCount get sub dup 0 gt{{pop}repeat}{pop}ifelse
+ countdictstack Adobe_AGM_Core/AGMCORE_feature_dictCount get sub dup 0 gt{{end}repeat}{pop}ifelse
+ {Adobe_AGM_Core/AGMCORE_feature_ctm get setmatrix}if
+}def
+/set_negative
+{
+ //Adobe_AGM_Core begin
+ /AGMCORE_inverting exch def
+ level2{
+ currentpagedevice/NegativePrint known AGMCORE_distilling not and{
+ currentpagedevice/NegativePrint get//Adobe_AGM_Core/AGMCORE_inverting get ne{
+ true begin_feature true{
+ <</NegativePrint//Adobe_AGM_Core/AGMCORE_inverting get>>setpagedevice
+ }end_feature
+ }if
+ /AGMCORE_inverting false def
+ }if
+ }if
+ AGMCORE_inverting{
+ [{1 exch sub}/exec load dup currenttransfer exch]cvx bind settransfer
+ AGMCORE_distilling{
+ erasepage
+ }{
+ gsave np clippath 1/setseparationgray where{pop setseparationgray}{setgray}ifelse
+ /AGMIRS_&fill where{pop AGMIRS_&fill}{fill}ifelse grestore
+ }ifelse
+ }if
+ end
+}def
+/lw_save_restore_override{
+ /md where{
+ pop
+ md begin
+ initializepage
+ /initializepage{}def
+ /pmSVsetup{}def
+ /endp{}def
+ /pse{}def
+ /psb{}def
+ /orig_showpage where
+ {pop}
+ {/orig_showpage/showpage load def}
+ ifelse
+ /showpage{orig_showpage gR}def
+ end
+ }if
+}def
+/pscript_showpage_override{
+ /NTPSOct95 where
+ {
+ begin
+ showpage
+ save
+ /showpage/restore load def
+ /restore{exch pop}def
+ end
+ }if
+}def
+/driver_media_override
+{
+ /md where{
+ pop
+ md/initializepage known{
+ md/initializepage{}put
+ }if
+ md/rC known{
+ md/rC{4{pop}repeat}put
+ }if
+ }if
+ /mysetup where{
+ /mysetup[1 0 0 1 0 0]put
+ }if
+ Adobe_AGM_Core/AGMCORE_Default_CTM matrix currentmatrix put
+ level2
+ {Adobe_AGM_Core/AGMCORE_Default_PageSize currentpagedevice/PageSize get put}if
+}def
+/capture_mysetup
+{
+ /Pscript_Win_Data where{
+ pop
+ Pscript_Win_Data/mysetup known{
+ Adobe_AGM_Core/save_mysetup Pscript_Win_Data/mysetup get put
+ }if
+ }if
+}def
+/restore_mysetup
+{
+ /Pscript_Win_Data where{
+ pop
+ Pscript_Win_Data/mysetup known{
+ Adobe_AGM_Core/save_mysetup known{
+ Pscript_Win_Data/mysetup Adobe_AGM_Core/save_mysetup get put
+ Adobe_AGM_Core/save_mysetup undef
+ }if
+ }if
+ }if
+}def
+/driver_check_media_override
+{
+ /PrepsDict where
+ {pop}
+ {
+ Adobe_AGM_Core/AGMCORE_Default_CTM get matrix currentmatrix ne
+ Adobe_AGM_Core/AGMCORE_Default_PageSize get type/arraytype eq
+ {
+ Adobe_AGM_Core/AGMCORE_Default_PageSize get 0 get currentpagedevice/PageSize get 0 get eq and
+ Adobe_AGM_Core/AGMCORE_Default_PageSize get 1 get currentpagedevice/PageSize get 1 get eq and
+ }if
+ {
+ Adobe_AGM_Core/AGMCORE_Default_CTM get setmatrix
+ }if
+ }ifelse
+}def
+AGMCORE_err_strings begin
+ /AGMCORE_bad_environ(Environment not satisfactory for this job. Ensure that the PPD is correct or that the PostScript level requested is supported by this printer. )def
+ /AGMCORE_color_space_onhost_seps(This job contains colors that will not separate with on-host methods. )def
+ /AGMCORE_invalid_color_space(This job contains an invalid color space. )def
+end
+/set_def_ht
+{AGMCORE_def_ht sethalftone}def
+/set_def_flat
+{AGMCORE_Default_flatness setflat}def
+end
+systemdict/setpacking known
+{setpacking}if
+%%EndResource
+%%BeginResource: procset Adobe_CoolType_Core 2.31 0
+%%Copyright: Copyright 1997-2006 Adobe Systems Incorporated. All Rights Reserved.
+%%Version: 2.31 0
+10 dict begin
+/Adobe_CoolType_Passthru currentdict def
+/Adobe_CoolType_Core_Defined userdict/Adobe_CoolType_Core known def
+Adobe_CoolType_Core_Defined
+ {/Adobe_CoolType_Core userdict/Adobe_CoolType_Core get def}
+if
+userdict/Adobe_CoolType_Core 70 dict dup begin put
+/Adobe_CoolType_Version 2.31 def
+/Level2?
+ systemdict/languagelevel known dup
+ {pop systemdict/languagelevel get 2 ge}
+ if def
+Level2? not
+ {
+ /currentglobal false def
+ /setglobal/pop load def
+ /gcheck{pop false}bind def
+ /currentpacking false def
+ /setpacking/pop load def
+ /SharedFontDirectory 0 dict def
+ }
+if
+currentpacking
+true setpacking
+currentglobal false setglobal
+userdict/Adobe_CoolType_Data 2 copy known not
+ {2 copy 10 dict put}
+if
+get
+ begin
+ /@opStackCountByLevel 32 dict def
+ /@opStackLevel 0 def
+ /@dictStackCountByLevel 32 dict def
+ /@dictStackLevel 0 def
+ end
+setglobal
+currentglobal true setglobal
+userdict/Adobe_CoolType_GVMFonts known not
+ {userdict/Adobe_CoolType_GVMFonts 10 dict put}
+if
+setglobal
+currentglobal false setglobal
+userdict/Adobe_CoolType_LVMFonts known not
+ {userdict/Adobe_CoolType_LVMFonts 10 dict put}
+if
+setglobal
+/ct_VMDictPut
+ {
+ dup gcheck{Adobe_CoolType_GVMFonts}{Adobe_CoolType_LVMFonts}ifelse
+ 3 1 roll put
+ }bind def
+/ct_VMDictUndef
+ {
+ dup Adobe_CoolType_GVMFonts exch known
+ {Adobe_CoolType_GVMFonts exch undef}
+ {
+ dup Adobe_CoolType_LVMFonts exch known
+ {Adobe_CoolType_LVMFonts exch undef}
+ {pop}
+ ifelse
+ }ifelse
+ }bind def
+/ct_str1 1 string def
+/ct_xshow
+{
+ /_ct_na exch def
+ /_ct_i 0 def
+ currentpoint
+ /_ct_y exch def
+ /_ct_x exch def
+ {
+ pop pop
+ ct_str1 exch 0 exch put
+ ct_str1 show
+ {_ct_na _ct_i get}stopped
+ {pop pop}
+ {
+ _ct_x _ct_y moveto
+ 0
+ rmoveto
+ }
+ ifelse
+ /_ct_i _ct_i 1 add def
+ currentpoint
+ /_ct_y exch def
+ /_ct_x exch def
+ }
+ exch
+ @cshow
+}bind def
+/ct_yshow
+{
+ /_ct_na exch def
+ /_ct_i 0 def
+ currentpoint
+ /_ct_y exch def
+ /_ct_x exch def
+ {
+ pop pop
+ ct_str1 exch 0 exch put
+ ct_str1 show
+ {_ct_na _ct_i get}stopped
+ {pop pop}
+ {
+ _ct_x _ct_y moveto
+ 0 exch
+ rmoveto
+ }
+ ifelse
+ /_ct_i _ct_i 1 add def
+ currentpoint
+ /_ct_y exch def
+ /_ct_x exch def
+ }
+ exch
+ @cshow
+}bind def
+/ct_xyshow
+{
+ /_ct_na exch def
+ /_ct_i 0 def
+ currentpoint
+ /_ct_y exch def
+ /_ct_x exch def
+ {
+ pop pop
+ ct_str1 exch 0 exch put
+ ct_str1 show
+ {_ct_na _ct_i get}stopped
+ {pop pop}
+ {
+ {_ct_na _ct_i 1 add get}stopped
+ {pop pop pop}
+ {
+ _ct_x _ct_y moveto
+ rmoveto
+ }
+ ifelse
+ }
+ ifelse
+ /_ct_i _ct_i 2 add def
+ currentpoint
+ /_ct_y exch def
+ /_ct_x exch def
+ }
+ exch
+ @cshow
+}bind def
+/xsh{{@xshow}stopped{Adobe_CoolType_Data begin ct_xshow end}if}bind def
+/ysh{{@yshow}stopped{Adobe_CoolType_Data begin ct_yshow end}if}bind def
+/xysh{{@xyshow}stopped{Adobe_CoolType_Data begin ct_xyshow end}if}bind def
+currentglobal true setglobal
+/ct_T3Defs
+{
+/BuildChar
+{
+ 1 index/Encoding get exch get
+ 1 index/BuildGlyph get exec
+}bind def
+/BuildGlyph
+{
+ exch begin
+ GlyphProcs exch get exec
+ end
+}bind def
+}bind def
+setglobal
+/@_SaveStackLevels
+ {
+ Adobe_CoolType_Data
+ begin
+ /@vmState currentglobal def false setglobal
+ @opStackCountByLevel
+ @opStackLevel
+ 2 copy known not
+ {
+ 2 copy
+ 3 dict dup/args
+ 7 index
+ 5 add array put
+ put get
+ }
+ {
+ get dup/args get dup length 3 index lt
+ {
+ dup length 5 add array exch
+ 1 index exch 0 exch putinterval
+ 1 index exch/args exch put
+ }
+ {pop}
+ ifelse
+ }
+ ifelse
+ begin
+ count 1 sub
+ 1 index lt
+ {pop count}
+ if
+ dup/argCount exch def
+ dup 0 gt
+ {
+ args exch 0 exch getinterval
+ astore pop
+ }
+ {pop}
+ ifelse
+ count
+ /restCount exch def
+ end
+ /@opStackLevel @opStackLevel 1 add def
+ countdictstack 1 sub
+ @dictStackCountByLevel exch @dictStackLevel exch put
+ /@dictStackLevel @dictStackLevel 1 add def
+ @vmState setglobal
+ end
+ }bind def
+/@_RestoreStackLevels
+ {
+ Adobe_CoolType_Data
+ begin
+ /@opStackLevel @opStackLevel 1 sub def
+ @opStackCountByLevel @opStackLevel get
+ begin
+ count restCount sub dup 0 gt
+ {{pop}repeat}
+ {pop}
+ ifelse
+ args 0 argCount getinterval{}forall
+ end
+ /@dictStackLevel @dictStackLevel 1 sub def
+ @dictStackCountByLevel @dictStackLevel get
+ end
+ countdictstack exch sub dup 0 gt
+ {{end}repeat}
+ {pop}
+ ifelse
+ }bind def
+/@_PopStackLevels
+ {
+ Adobe_CoolType_Data
+ begin
+ /@opStackLevel @opStackLevel 1 sub def
+ /@dictStackLevel @dictStackLevel 1 sub def
+ end
+ }bind def
+/@Raise
+ {
+ exch cvx exch errordict exch get exec
+ stop
+ }bind def
+/@ReRaise
+ {
+ cvx $error/errorname get errordict exch get exec
+ stop
+ }bind def
+/@Stopped
+ {
+ 0 @#Stopped
+ }bind def
+/@#Stopped
+ {
+ @_SaveStackLevels
+ stopped
+ {@_RestoreStackLevels true}
+ {@_PopStackLevels false}
+ ifelse
+ }bind def
+/@Arg
+ {
+ Adobe_CoolType_Data
+ begin
+ @opStackCountByLevel @opStackLevel 1 sub get
+ begin
+ args exch
+ argCount 1 sub exch sub get
+ end
+ end
+ }bind def
+currentglobal true setglobal
+/CTHasResourceForAllBug
+ Level2?
+ {
+ 1 dict dup
+ /@shouldNotDisappearDictValue true def
+ Adobe_CoolType_Data exch/@shouldNotDisappearDict exch put
+ begin
+ count @_SaveStackLevels
+ {(*){pop stop}128 string/Category resourceforall}
+ stopped pop
+ @_RestoreStackLevels
+ currentdict Adobe_CoolType_Data/@shouldNotDisappearDict get dup 3 1 roll ne dup 3 1 roll
+ {
+ /@shouldNotDisappearDictValue known
+ {
+ {
+ end
+ currentdict 1 index eq
+ {pop exit}
+ if
+ }
+ loop
+ }
+ if
+ }
+ {
+ pop
+ end
+ }
+ ifelse
+ }
+ {false}
+ ifelse
+ def
+true setglobal
+/CTHasResourceStatusBug
+ Level2?
+ {
+ mark
+ {/steveamerige/Category resourcestatus}
+ stopped
+ {cleartomark true}
+ {cleartomark currentglobal not}
+ ifelse
+ }
+ {false}
+ ifelse
+ def
+setglobal
+/CTResourceStatus
+ {
+ mark 3 1 roll
+ /Category findresource
+ begin
+ ({ResourceStatus}stopped)0()/SubFileDecode filter cvx exec
+ {cleartomark false}
+ {{3 2 roll pop true}{cleartomark false}ifelse}
+ ifelse
+ end
+ }bind def
+/CTWorkAroundBugs
+ {
+ Level2?
+ {
+ /cid_PreLoad/ProcSet resourcestatus
+ {
+ pop pop
+ currentglobal
+ mark
+ {
+ (*)
+ {
+ dup/CMap CTHasResourceStatusBug
+ {CTResourceStatus}
+ {resourcestatus}
+ ifelse
+ {
+ pop dup 0 eq exch 1 eq or
+ {
+ dup/CMap findresource gcheck setglobal
+ /CMap undefineresource
+ }
+ {
+ pop CTHasResourceForAllBug
+ {exit}
+ {stop}
+ ifelse
+ }
+ ifelse
+ }
+ {pop}
+ ifelse
+ }
+ 128 string/CMap resourceforall
+ }
+ stopped
+ {cleartomark}
+ stopped pop
+ setglobal
+ }
+ if
+ }
+ if
+ }bind def
+/ds
+ {
+ Adobe_CoolType_Core
+ begin
+ CTWorkAroundBugs
+ /mo/moveto load def
+ /nf/newencodedfont load def
+ /msf{makefont setfont}bind def
+ /uf{dup undefinefont ct_VMDictUndef}bind def
+ /ur/undefineresource load def
+ /chp/charpath load def
+ /awsh/awidthshow load def
+ /wsh/widthshow load def
+ /ash/ashow load def
+ /@xshow/xshow load def
+ /@yshow/yshow load def
+ /@xyshow/xyshow load def
+ /@cshow/cshow load def
+ /sh/show load def
+ /rp/repeat load def
+ /.n/.notdef def
+ end
+ currentglobal false setglobal
+ userdict/Adobe_CoolType_Data 2 copy known not
+ {2 copy 10 dict put}
+ if
+ get
+ begin
+ /AddWidths? false def
+ /CC 0 def
+ /charcode 2 string def
+ /@opStackCountByLevel 32 dict def
+ /@opStackLevel 0 def
+ /@dictStackCountByLevel 32 dict def
+ /@dictStackLevel 0 def
+ /InVMFontsByCMap 10 dict def
+ /InVMDeepCopiedFonts 10 dict def
+ end
+ setglobal
+ }bind def
+/dt
+ {
+ currentdict Adobe_CoolType_Core eq
+ {end}
+ if
+ }bind def
+/ps
+ {
+ Adobe_CoolType_Core begin
+ Adobe_CoolType_GVMFonts begin
+ Adobe_CoolType_LVMFonts begin
+ SharedFontDirectory begin
+ }bind def
+/pt
+ {
+ end
+ end
+ end
+ end
+ }bind def
+/unload
+ {
+ systemdict/languagelevel known
+ {
+ systemdict/languagelevel get 2 ge
+ {
+ userdict/Adobe_CoolType_Core 2 copy known
+ {undef}
+ {pop pop}
+ ifelse
+ }
+ if
+ }
+ if
+ }bind def
+/ndf
+ {
+ 1 index where
+ {pop pop pop}
+ {dup xcheck{bind}if def}
+ ifelse
+ }def
+/findfont systemdict
+ begin
+ userdict
+ begin
+ /globaldict where{/globaldict get begin}if
+ dup where pop exch get
+ /globaldict where{pop end}if
+ end
+ end
+Adobe_CoolType_Core_Defined
+ {/systemfindfont exch def}
+ {
+ /findfont 1 index def
+ /systemfindfont exch def
+ }
+ifelse
+/undefinefont
+ {pop}ndf
+/copyfont
+ {
+ currentglobal 3 1 roll
+ 1 index gcheck setglobal
+ dup null eq{0}{dup length}ifelse
+ 2 index length add 1 add dict
+ begin
+ exch
+ {
+ 1 index/FID eq
+ {pop pop}
+ {def}
+ ifelse
+ }
+ forall
+ dup null eq
+ {pop}
+ {{def}forall}
+ ifelse
+ currentdict
+ end
+ exch setglobal
+ }bind def
+/copyarray
+ {
+ currentglobal exch
+ dup gcheck setglobal
+ dup length array copy
+ exch setglobal
+ }bind def
+/newencodedfont
+ {
+ currentglobal
+ {
+ SharedFontDirectory 3 index known
+ {SharedFontDirectory 3 index get/FontReferenced known}
+ {false}
+ ifelse
+ }
+ {
+ FontDirectory 3 index known
+ {FontDirectory 3 index get/FontReferenced known}
+ {
+ SharedFontDirectory 3 index known
+ {SharedFontDirectory 3 index get/FontReferenced known}
+ {false}
+ ifelse
+ }
+ ifelse
+ }
+ ifelse
+ dup
+ {
+ 3 index findfont/FontReferenced get
+ 2 index dup type/nametype eq
+ {findfont}
+ if ne
+ {pop false}
+ if
+ }
+ if
+ dup
+ {
+ 1 index dup type/nametype eq
+ {findfont}
+ if
+ dup/CharStrings known
+ {
+ /CharStrings get length
+ 4 index findfont/CharStrings get length
+ ne
+ {
+ pop false
+ }
+ if
+ }
+ {pop}
+ ifelse
+ }
+ if
+ {
+ pop
+ 1 index findfont
+ /Encoding get exch
+ 0 1 255
+ {2 copy get 3 index 3 1 roll put}
+ for
+ pop pop pop
+ }
+ {
+ currentglobal
+ 4 1 roll
+ dup type/nametype eq
+ {findfont}
+ if
+ dup gcheck setglobal
+ dup dup maxlength 2 add dict
+ begin
+ exch
+ {
+ 1 index/FID ne
+ 2 index/Encoding ne and
+ {def}
+ {pop pop}
+ ifelse
+ }
+ forall
+ /FontReferenced exch def
+ /Encoding exch dup length array copy def
+ /FontName 1 index dup type/stringtype eq{cvn}if def dup
+ currentdict
+ end
+ definefont ct_VMDictPut
+ setglobal
+ }
+ ifelse
+ }bind def
+/SetSubstituteStrategy
+ {
+ $SubstituteFont
+ begin
+ dup type/dicttype ne
+ {0 dict}
+ if
+ currentdict/$Strategies known
+ {
+ exch $Strategies exch
+ 2 copy known
+ {
+ get
+ 2 copy maxlength exch maxlength add dict
+ begin
+ {def}forall
+ {def}forall
+ currentdict
+ dup/$Init known
+ {dup/$Init get exec}
+ if
+ end
+ /$Strategy exch def
+ }
+ {pop pop pop}
+ ifelse
+ }
+ {pop pop}
+ ifelse
+ end
+ }bind def
+/scff
+ {
+ $SubstituteFont
+ begin
+ dup type/stringtype eq
+ {dup length exch}
+ {null}
+ ifelse
+ /$sname exch def
+ /$slen exch def
+ /$inVMIndex
+ $sname null eq
+ {
+ 1 index $str cvs
+ dup length $slen sub $slen getinterval cvn
+ }
+ {$sname}
+ ifelse def
+ end
+ {findfont}
+ @Stopped
+ {
+ dup length 8 add string exch
+ 1 index 0(BadFont:)putinterval
+ 1 index exch 8 exch dup length string cvs putinterval cvn
+ {findfont}
+ @Stopped
+ {pop/Courier findfont}
+ if
+ }
+ if
+ $SubstituteFont
+ begin
+ /$sname null def
+ /$slen 0 def
+ /$inVMIndex null def
+ end
+ }bind def
+/isWidthsOnlyFont
+ {
+ dup/WidthsOnly known
+ {pop pop true}
+ {
+ dup/FDepVector known
+ {/FDepVector get{isWidthsOnlyFont dup{exit}if}forall}
+ {
+ dup/FDArray known
+ {/FDArray get{isWidthsOnlyFont dup{exit}if}forall}
+ {pop}
+ ifelse
+ }
+ ifelse
+ }
+ ifelse
+ }bind def
+/ct_StyleDicts 4 dict dup begin
+ /Adobe-Japan1 4 dict dup begin
+ Level2?
+ {
+ /Serif
+ /HeiseiMin-W3-83pv-RKSJ-H/Font resourcestatus
+ {pop pop/HeiseiMin-W3}
+ {
+ /CIDFont/Category resourcestatus
+ {
+ pop pop
+ /HeiseiMin-W3/CIDFont resourcestatus
+ {pop pop/HeiseiMin-W3}
+ {/Ryumin-Light}
+ ifelse
+ }
+ {/Ryumin-Light}
+ ifelse
+ }
+ ifelse
+ def
+ /SansSerif
+ /HeiseiKakuGo-W5-83pv-RKSJ-H/Font resourcestatus
+ {pop pop/HeiseiKakuGo-W5}
+ {
+ /CIDFont/Category resourcestatus
+ {
+ pop pop
+ /HeiseiKakuGo-W5/CIDFont resourcestatus
+ {pop pop/HeiseiKakuGo-W5}
+ {/GothicBBB-Medium}
+ ifelse
+ }
+ {/GothicBBB-Medium}
+ ifelse
+ }
+ ifelse
+ def
+ /HeiseiMaruGo-W4-83pv-RKSJ-H/Font resourcestatus
+ {pop pop/HeiseiMaruGo-W4}
+ {
+ /CIDFont/Category resourcestatus
+ {
+ pop pop
+ /HeiseiMaruGo-W4/CIDFont resourcestatus
+ {pop pop/HeiseiMaruGo-W4}
+ {
+ /Jun101-Light-RKSJ-H/Font resourcestatus
+ {pop pop/Jun101-Light}
+ {SansSerif}
+ ifelse
+ }
+ ifelse
+ }
+ {
+ /Jun101-Light-RKSJ-H/Font resourcestatus
+ {pop pop/Jun101-Light}
+ {SansSerif}
+ ifelse
+ }
+ ifelse
+ }
+ ifelse
+ /RoundSansSerif exch def
+ /Default Serif def
+ }
+ {
+ /Serif/Ryumin-Light def
+ /SansSerif/GothicBBB-Medium def
+ {
+ (fonts/Jun101-Light-83pv-RKSJ-H)status
+ }stopped
+ {pop}{
+ {pop pop pop pop/Jun101-Light}
+ {SansSerif}
+ ifelse
+ /RoundSansSerif exch def
+ }ifelse
+ /Default Serif def
+ }
+ ifelse
+ end
+ def
+ /Adobe-Korea1 4 dict dup begin
+ /Serif/HYSMyeongJo-Medium def
+ /SansSerif/HYGoThic-Medium def
+ /RoundSansSerif SansSerif def
+ /Default Serif def
+ end
+ def
+ /Adobe-GB1 4 dict dup begin
+ /Serif/STSong-Light def
+ /SansSerif/STHeiti-Regular def
+ /RoundSansSerif SansSerif def
+ /Default Serif def
+ end
+ def
+ /Adobe-CNS1 4 dict dup begin
+ /Serif/MKai-Medium def
+ /SansSerif/MHei-Medium def
+ /RoundSansSerif SansSerif def
+ /Default Serif def
+ end
+ def
+end
+def
+Level2?{currentglobal true setglobal}if
+/ct_BoldRomanWidthProc
+ {
+ stringwidth 1 index 0 ne{exch .03 add exch}if setcharwidth
+ 0 0
+ }bind def
+/ct_Type0WidthProc
+ {
+ dup stringwidth 0 0 moveto
+ 2 index true charpath pathbbox
+ 0 -1
+ 7 index 2 div .88
+ setcachedevice2
+ pop
+ 0 0
+ }bind def
+/ct_Type0WMode1WidthProc
+ {
+ dup stringwidth
+ pop 2 div neg -0.88
+ 2 copy
+ moveto
+ 0 -1
+ 5 -1 roll true charpath pathbbox
+ setcachedevice
+ }bind def
+/cHexEncoding
+[/c00/c01/c02/c03/c04/c05/c06/c07/c08/c09/c0A/c0B/c0C/c0D/c0E/c0F/c10/c11/c12
+/c13/c14/c15/c16/c17/c18/c19/c1A/c1B/c1C/c1D/c1E/c1F/c20/c21/c22/c23/c24/c25
+/c26/c27/c28/c29/c2A/c2B/c2C/c2D/c2E/c2F/c30/c31/c32/c33/c34/c35/c36/c37/c38
+/c39/c3A/c3B/c3C/c3D/c3E/c3F/c40/c41/c42/c43/c44/c45/c46/c47/c48/c49/c4A/c4B
+/c4C/c4D/c4E/c4F/c50/c51/c52/c53/c54/c55/c56/c57/c58/c59/c5A/c5B/c5C/c5D/c5E
+/c5F/c60/c61/c62/c63/c64/c65/c66/c67/c68/c69/c6A/c6B/c6C/c6D/c6E/c6F/c70/c71
+/c72/c73/c74/c75/c76/c77/c78/c79/c7A/c7B/c7C/c7D/c7E/c7F/c80/c81/c82/c83/c84
+/c85/c86/c87/c88/c89/c8A/c8B/c8C/c8D/c8E/c8F/c90/c91/c92/c93/c94/c95/c96/c97
+/c98/c99/c9A/c9B/c9C/c9D/c9E/c9F/cA0/cA1/cA2/cA3/cA4/cA5/cA6/cA7/cA8/cA9/cAA
+/cAB/cAC/cAD/cAE/cAF/cB0/cB1/cB2/cB3/cB4/cB5/cB6/cB7/cB8/cB9/cBA/cBB/cBC/cBD
+/cBE/cBF/cC0/cC1/cC2/cC3/cC4/cC5/cC6/cC7/cC8/cC9/cCA/cCB/cCC/cCD/cCE/cCF/cD0
+/cD1/cD2/cD3/cD4/cD5/cD6/cD7/cD8/cD9/cDA/cDB/cDC/cDD/cDE/cDF/cE0/cE1/cE2/cE3
+/cE4/cE5/cE6/cE7/cE8/cE9/cEA/cEB/cEC/cED/cEE/cEF/cF0/cF1/cF2/cF3/cF4/cF5/cF6
+/cF7/cF8/cF9/cFA/cFB/cFC/cFD/cFE/cFF]def
+/ct_BoldBaseFont
+ 11 dict begin
+ /FontType 3 def
+ /FontMatrix[1 0 0 1 0 0]def
+ /FontBBox[0 0 1 1]def
+ /Encoding cHexEncoding def
+ /_setwidthProc/ct_BoldRomanWidthProc load def
+ /_bcstr1 1 string def
+ /BuildChar
+ {
+ exch begin
+ _basefont setfont
+ _bcstr1 dup 0 4 -1 roll put
+ dup
+ _setwidthProc
+ 3 copy
+ moveto
+ show
+ _basefonto setfont
+ moveto
+ show
+ end
+ }bind def
+ currentdict
+ end
+def
+systemdict/composefont known
+{
+/ct_DefineIdentity-H
+{
+ /Identity-H/CMap resourcestatus
+ {
+ pop pop
+ }
+ {
+ /CIDInit/ProcSet findresource begin
+ 12 dict begin
+ begincmap
+ /CIDSystemInfo 3 dict dup begin
+ /Registry(Adobe)def
+ /Ordering(Identity)def
+ /Supplement 0 def
+ end def
+ /CMapName/Identity-H def
+ /CMapVersion 1.000 def
+ /CMapType 1 def
+ 1 begincodespacerange
+ <0000><FFFF>
+ endcodespacerange
+ 1 begincidrange
+ <0000><FFFF>0
+ endcidrange
+ endcmap
+ CMapName currentdict/CMap defineresource pop
+ end
+ end
+ }
+ ifelse
+}
+def
+/ct_BoldBaseCIDFont
+ 11 dict begin
+ /CIDFontType 1 def
+ /CIDFontName/ct_BoldBaseCIDFont def
+ /FontMatrix[1 0 0 1 0 0]def
+ /FontBBox[0 0 1 1]def
+ /_setwidthProc/ct_Type0WidthProc load def
+ /_bcstr2 2 string def
+ /BuildGlyph
+ {
+ exch begin
+ _basefont setfont
+ _bcstr2 1 2 index 256 mod put
+ _bcstr2 0 3 -1 roll 256 idiv put
+ _bcstr2 dup _setwidthProc
+ 3 copy
+ moveto
+ show
+ _basefonto setfont
+ moveto
+ show
+ end
+ }bind def
+ currentdict
+ end
+def
+}if
+Level2?{setglobal}if
+/ct_CopyFont{
+ {
+ 1 index/FID ne 2 index/UniqueID ne and
+ {def}{pop pop}ifelse
+ }forall
+}bind def
+/ct_Type0CopyFont
+{
+ exch
+ dup length dict
+ begin
+ ct_CopyFont
+ [
+ exch
+ FDepVector
+ {
+ dup/FontType get 0 eq
+ {
+ 1 index ct_Type0CopyFont
+ /_ctType0 exch definefont
+ }
+ {
+ /_ctBaseFont exch
+ 2 index exec
+ }
+ ifelse
+ exch
+ }
+ forall
+ pop
+ ]
+ /FDepVector exch def
+ currentdict
+ end
+}bind def
+/ct_MakeBoldFont
+{
+ dup/ct_SyntheticBold known
+ {
+ dup length 3 add dict begin
+ ct_CopyFont
+ /ct_StrokeWidth .03 0 FontMatrix idtransform pop def
+ /ct_SyntheticBold true def
+ currentdict
+ end
+ definefont
+ }
+ {
+ dup dup length 3 add dict
+ begin
+ ct_CopyFont
+ /PaintType 2 def
+ /StrokeWidth .03 0 FontMatrix idtransform pop def
+ /dummybold currentdict
+ end
+ definefont
+ dup/FontType get dup 9 ge exch 11 le and
+ {
+ ct_BoldBaseCIDFont
+ dup length 3 add dict copy begin
+ dup/CIDSystemInfo get/CIDSystemInfo exch def
+ ct_DefineIdentity-H
+ /_Type0Identity/Identity-H 3 -1 roll[exch]composefont
+ /_basefont exch def
+ /_Type0Identity/Identity-H 3 -1 roll[exch]composefont
+ /_basefonto exch def
+ currentdict
+ end
+ /CIDFont defineresource
+ }
+ {
+ ct_BoldBaseFont
+ dup length 3 add dict copy begin
+ /_basefont exch def
+ /_basefonto exch def
+ currentdict
+ end
+ definefont
+ }
+ ifelse
+ }
+ ifelse
+}bind def
+/ct_MakeBold{
+ 1 index
+ 1 index
+ findfont
+ currentglobal 5 1 roll
+ dup gcheck setglobal
+ dup
+ /FontType get 0 eq
+ {
+ dup/WMode known{dup/WMode get 1 eq}{false}ifelse
+ version length 4 ge
+ and
+ {version 0 4 getinterval cvi 2015 ge}
+ {true}
+ ifelse
+ {/ct_Type0WidthProc}
+ {/ct_Type0WMode1WidthProc}
+ ifelse
+ ct_BoldBaseFont/_setwidthProc 3 -1 roll load put
+ {ct_MakeBoldFont}ct_Type0CopyFont definefont
+ }
+ {
+ dup/_fauxfont known not 1 index/SubstMaster known not and
+ {
+ ct_BoldBaseFont/_setwidthProc /ct_BoldRomanWidthProc load put
+ ct_MakeBoldFont
+ }
+ {
+ 2 index 2 index eq
+ {exch pop }
+ {
+ dup length dict begin
+ ct_CopyFont
+ currentdict
+ end
+ definefont
+ }
+ ifelse
+ }
+ ifelse
+ }
+ ifelse
+ pop pop pop
+ setglobal
+}bind def
+/?str1 256 string def
+/?set
+ {
+ $SubstituteFont
+ begin
+ /$substituteFound false def
+ /$fontname 1 index def
+ /$doSmartSub false def
+ end
+ dup
+ findfont
+ $SubstituteFont
+ begin
+ $substituteFound
+ {false}
+ {
+ dup/FontName known
+ {
+ dup/FontName get $fontname eq
+ 1 index/DistillerFauxFont known not and
+ /currentdistillerparams where
+ {pop false 2 index isWidthsOnlyFont not and}
+ if
+ }
+ {false}
+ ifelse
+ }
+ ifelse
+ exch pop
+ /$doSmartSub true def
+ end
+ {
+ 5 1 roll pop pop pop pop
+ findfont
+ }
+ {
+ 1 index
+ findfont
+ dup/FontType get 3 eq
+ {
+ 6 1 roll pop pop pop pop pop false
+ }
+ {pop true}
+ ifelse
+ {
+ $SubstituteFont
+ begin
+ pop pop
+ /$styleArray 1 index def
+ /$regOrdering 2 index def
+ pop pop
+ 0 1 $styleArray length 1 sub
+ {
+ $styleArray exch get
+ ct_StyleDicts $regOrdering
+ 2 copy known
+ {
+ get
+ exch 2 copy known not
+ {pop/Default}
+ if
+ get
+ dup type/nametype eq
+ {
+ ?str1 cvs length dup 1 add exch
+ ?str1 exch(-)putinterval
+ exch dup length exch ?str1 exch 3 index exch putinterval
+ add ?str1 exch 0 exch getinterval cvn
+ }
+ {
+ pop pop/Unknown
+ }
+ ifelse
+ }
+ {
+ pop pop pop pop/Unknown
+ }
+ ifelse
+ }
+ for
+ end
+ findfont
+ }if
+ }
+ ifelse
+ currentglobal false setglobal 3 1 roll
+ null copyfont definefont pop
+ setglobal
+ }bind def
+setpacking
+userdict/$SubstituteFont 25 dict put
+1 dict
+ begin
+ /SubstituteFont
+ dup $error exch 2 copy known
+ {get}
+ {pop pop{pop/Courier}bind}
+ ifelse def
+ /currentdistillerparams where dup
+ {
+ pop pop
+ currentdistillerparams/CannotEmbedFontPolicy 2 copy known
+ {get/Error eq}
+ {pop pop false}
+ ifelse
+ }
+ if not
+ {
+ countdictstack array dictstack 0 get
+ begin
+ userdict
+ begin
+ $SubstituteFont
+ begin
+ /$str 128 string def
+ /$fontpat 128 string def
+ /$slen 0 def
+ /$sname null def
+ /$match false def
+ /$fontname null def
+ /$substituteFound false def
+ /$inVMIndex null def
+ /$doSmartSub true def
+ /$depth 0 def
+ /$fontname null def
+ /$italicangle 26.5 def
+ /$dstack null def
+ /$Strategies 10 dict dup
+ begin
+ /$Type3Underprint
+ {
+ currentglobal exch false setglobal
+ 11 dict
+ begin
+ /UseFont exch
+ $WMode 0 ne
+ {
+ dup length dict copy
+ dup/WMode $WMode put
+ /UseFont exch definefont
+ }
+ if def
+ /FontName $fontname dup type/stringtype eq{cvn}if def
+ /FontType 3 def
+ /FontMatrix[.001 0 0 .001 0 0]def
+ /Encoding 256 array dup 0 1 255{/.notdef put dup}for pop def
+ /FontBBox[0 0 0 0]def
+ /CCInfo 7 dict dup
+ begin
+ /cc null def
+ /x 0 def
+ /y 0 def
+ end def
+ /BuildChar
+ {
+ exch
+ begin
+ CCInfo
+ begin
+ 1 string dup 0 3 index put exch pop
+ /cc exch def
+ UseFont 1000 scalefont setfont
+ cc stringwidth/y exch def/x exch def
+ x y setcharwidth
+ $SubstituteFont/$Strategy get/$Underprint get exec
+ 0 0 moveto cc show
+ x y moveto
+ end
+ end
+ }bind def
+ currentdict
+ end
+ exch setglobal
+ }bind def
+ /$GetaTint
+ 2 dict dup
+ begin
+ /$BuildFont
+ {
+ dup/WMode known
+ {dup/WMode get}
+ {0}
+ ifelse
+ /$WMode exch def
+ $fontname exch
+ dup/FontName known
+ {
+ dup/FontName get
+ dup type/stringtype eq{cvn}if
+ }
+ {/unnamedfont}
+ ifelse
+ exch
+ Adobe_CoolType_Data/InVMDeepCopiedFonts get
+ 1 index/FontName get known
+ {
+ pop
+ Adobe_CoolType_Data/InVMDeepCopiedFonts get
+ 1 index get
+ null copyfont
+ }
+ {$deepcopyfont}
+ ifelse
+ exch 1 index exch/FontBasedOn exch put
+ dup/FontName $fontname dup type/stringtype eq{cvn}if put
+ definefont
+ Adobe_CoolType_Data/InVMDeepCopiedFonts get
+ begin
+ dup/FontBasedOn get 1 index def
+ end
+ }bind def
+ /$Underprint
+ {
+ gsave
+ x abs y abs gt
+ {/y 1000 def}
+ {/x -1000 def 500 120 translate}
+ ifelse
+ Level2?
+ {
+ [/Separation(All)/DeviceCMYK{0 0 0 1 pop}]
+ setcolorspace
+ }
+ {0 setgray}
+ ifelse
+ 10 setlinewidth
+ x .8 mul
+ [7 3]
+ {
+ y mul 8 div 120 sub x 10 div exch moveto
+ 0 y 4 div neg rlineto
+ dup 0 rlineto
+ 0 y 4 div rlineto
+ closepath
+ gsave
+ Level2?
+ {.2 setcolor}
+ {.8 setgray}
+ ifelse
+ fill grestore
+ stroke
+ }
+ forall
+ pop
+ grestore
+ }bind def
+ end def
+ /$Oblique
+ 1 dict dup
+ begin
+ /$BuildFont
+ {
+ currentglobal exch dup gcheck setglobal
+ null copyfont
+ begin
+ /FontBasedOn
+ currentdict/FontName known
+ {
+ FontName
+ dup type/stringtype eq{cvn}if
+ }
+ {/unnamedfont}
+ ifelse
+ def
+ /FontName $fontname dup type/stringtype eq{cvn}if def
+ /currentdistillerparams where
+ {pop}
+ {
+ /FontInfo currentdict/FontInfo known
+ {FontInfo null copyfont}
+ {2 dict}
+ ifelse
+ dup
+ begin
+ /ItalicAngle $italicangle def
+ /FontMatrix FontMatrix
+ [1 0 ItalicAngle dup sin exch cos div 1 0 0]
+ matrix concatmatrix readonly
+ end
+ 4 2 roll def
+ def
+ }
+ ifelse
+ FontName currentdict
+ end
+ definefont
+ exch setglobal
+ }bind def
+ end def
+ /$None
+ 1 dict dup
+ begin
+ /$BuildFont{}bind def
+ end def
+ end def
+ /$Oblique SetSubstituteStrategy
+ /$findfontByEnum
+ {
+ dup type/stringtype eq{cvn}if
+ dup/$fontname exch def
+ $sname null eq
+ {$str cvs dup length $slen sub $slen getinterval}
+ {pop $sname}
+ ifelse
+ $fontpat dup 0(fonts/*)putinterval exch 7 exch putinterval
+ /$match false def
+ $SubstituteFont/$dstack countdictstack array dictstack put
+ mark
+ {
+ $fontpat 0 $slen 7 add getinterval
+ {/$match exch def exit}
+ $str filenameforall
+ }
+ stopped
+ {
+ cleardictstack
+ currentdict
+ true
+ $SubstituteFont/$dstack get
+ {
+ exch
+ {
+ 1 index eq
+ {pop false}
+ {true}
+ ifelse
+ }
+ {begin false}
+ ifelse
+ }
+ forall
+ pop
+ }
+ if
+ cleartomark
+ /$slen 0 def
+ $match false ne
+ {$match(fonts/)anchorsearch pop pop cvn}
+ {/Courier}
+ ifelse
+ }bind def
+ /$ROS 1 dict dup
+ begin
+ /Adobe 4 dict dup
+ begin
+ /Japan1 [/Ryumin-Light/HeiseiMin-W3
+ /GothicBBB-Medium/HeiseiKakuGo-W5
+ /HeiseiMaruGo-W4/Jun101-Light]def
+ /Korea1 [/HYSMyeongJo-Medium/HYGoThic-Medium]def
+ /GB1 [/STSong-Light/STHeiti-Regular]def
+ /CNS1 [/MKai-Medium/MHei-Medium]def
+ end def
+ end def
+ /$cmapname null def
+ /$deepcopyfont
+ {
+ dup/FontType get 0 eq
+ {
+ 1 dict dup/FontName/copied put copyfont
+ begin
+ /FDepVector FDepVector copyarray
+ 0 1 2 index length 1 sub
+ {
+ 2 copy get $deepcopyfont
+ dup/FontName/copied put
+ /copied exch definefont
+ 3 copy put pop pop
+ }
+ for
+ def
+ currentdict
+ end
+ }
+ {$Strategies/$Type3Underprint get exec}
+ ifelse
+ }bind def
+ /$buildfontname
+ {
+ dup/CIDFont findresource/CIDSystemInfo get
+ begin
+ Registry length Ordering length Supplement 8 string cvs
+ 3 copy length 2 add add add string
+ dup 5 1 roll dup 0 Registry putinterval
+ dup 4 index(-)putinterval
+ dup 4 index 1 add Ordering putinterval
+ 4 2 roll add 1 add 2 copy(-)putinterval
+ end
+ 1 add 2 copy 0 exch getinterval $cmapname $fontpat cvs exch
+ anchorsearch
+ {pop pop 3 2 roll putinterval cvn/$cmapname exch def}
+ {pop pop pop pop pop}
+ ifelse
+ length
+ $str 1 index(-)putinterval 1 add
+ $str 1 index $cmapname $fontpat cvs putinterval
+ $cmapname length add
+ $str exch 0 exch getinterval cvn
+ }bind def
+ /$findfontByROS
+ {
+ /$fontname exch def
+ $ROS Registry 2 copy known
+ {
+ get Ordering 2 copy known
+ {get}
+ {pop pop[]}
+ ifelse
+ }
+ {pop pop[]}
+ ifelse
+ false exch
+ {
+ dup/CIDFont resourcestatus
+ {
+ pop pop
+ save
+ 1 index/CIDFont findresource
+ dup/WidthsOnly known
+ {dup/WidthsOnly get}
+ {false}
+ ifelse
+ exch pop
+ exch restore
+ {pop}
+ {exch pop true exit}
+ ifelse
+ }
+ {pop}
+ ifelse
+ }
+ forall
+ {$str cvs $buildfontname}
+ {
+ false(*)
+ {
+ save exch
+ dup/CIDFont findresource
+ dup/WidthsOnly known
+ {dup/WidthsOnly get not}
+ {true}
+ ifelse
+ exch/CIDSystemInfo get
+ dup/Registry get Registry eq
+ exch/Ordering get Ordering eq and and
+ {exch restore exch pop true exit}
+ {pop restore}
+ ifelse
+ }
+ $str/CIDFont resourceforall
+ {$buildfontname}
+ {$fontname $findfontByEnum}
+ ifelse
+ }
+ ifelse
+ }bind def
+ end
+ end
+ currentdict/$error known currentdict/languagelevel known and dup
+ {pop $error/SubstituteFont known}
+ if
+ dup
+ {$error}
+ {Adobe_CoolType_Core}
+ ifelse
+ begin
+ {
+ /SubstituteFont
+ /CMap/Category resourcestatus
+ {
+ pop pop
+ {
+ $SubstituteFont
+ begin
+ /$substituteFound true def
+ dup length $slen gt
+ $sname null ne or
+ $slen 0 gt and
+ {
+ $sname null eq
+ {dup $str cvs dup length $slen sub $slen getinterval cvn}
+ {$sname}
+ ifelse
+ Adobe_CoolType_Data/InVMFontsByCMap get
+ 1 index 2 copy known
+ {
+ get
+ false exch
+ {
+ pop
+ currentglobal
+ {
+ GlobalFontDirectory 1 index known
+ {exch pop true exit}
+ {pop}
+ ifelse
+ }
+ {
+ FontDirectory 1 index known
+ {exch pop true exit}
+ {
+ GlobalFontDirectory 1 index known
+ {exch pop true exit}
+ {pop}
+ ifelse
+ }
+ ifelse
+ }
+ ifelse
+ }
+ forall
+ }
+ {pop pop false}
+ ifelse
+ {
+ exch pop exch pop
+ }
+ {
+ dup/CMap resourcestatus
+ {
+ pop pop
+ dup/$cmapname exch def
+ /CMap findresource/CIDSystemInfo get{def}forall
+ $findfontByROS
+ }
+ {
+ 128 string cvs
+ dup(-)search
+ {
+ 3 1 roll search
+ {
+ 3 1 roll pop
+ {dup cvi}
+ stopped
+ {pop pop pop pop pop $findfontByEnum}
+ {
+ 4 2 roll pop pop
+ exch length
+ exch
+ 2 index length
+ 2 index
+ sub
+ exch 1 sub -1 0
+ {
+ $str cvs dup length
+ 4 index
+ 0
+ 4 index
+ 4 3 roll add
+ getinterval
+ exch 1 index exch 3 index exch
+ putinterval
+ dup/CMap resourcestatus
+ {
+ pop pop
+ 4 1 roll pop pop pop
+ dup/$cmapname exch def
+ /CMap findresource/CIDSystemInfo get{def}forall
+ $findfontByROS
+ true exit
+ }
+ {pop}
+ ifelse
+ }
+ for
+ dup type/booleantype eq
+ {pop}
+ {pop pop pop $findfontByEnum}
+ ifelse
+ }
+ ifelse
+ }
+ {pop pop pop $findfontByEnum}
+ ifelse
+ }
+ {pop pop $findfontByEnum}
+ ifelse
+ }
+ ifelse
+ }
+ ifelse
+ }
+ {//SubstituteFont exec}
+ ifelse
+ /$slen 0 def
+ end
+ }
+ }
+ {
+ {
+ $SubstituteFont
+ begin
+ /$substituteFound true def
+ dup length $slen gt
+ $sname null ne or
+ $slen 0 gt and
+ {$findfontByEnum}
+ {//SubstituteFont exec}
+ ifelse
+ end
+ }
+ }
+ ifelse
+ bind readonly def
+ Adobe_CoolType_Core/scfindfont/systemfindfont load put
+ }
+ {
+ /scfindfont
+ {
+ $SubstituteFont
+ begin
+ dup systemfindfont
+ dup/FontName known
+ {dup/FontName get dup 3 index ne}
+ {/noname true}
+ ifelse
+ dup
+ {
+ /$origfontnamefound 2 index def
+ /$origfontname 4 index def/$substituteFound true def
+ }
+ if
+ exch pop
+ {
+ $slen 0 gt
+ $sname null ne
+ 3 index length $slen gt or and
+ {
+ pop dup $findfontByEnum findfont
+ dup maxlength 1 add dict
+ begin
+ {1 index/FID eq{pop pop}{def}ifelse}
+ forall
+ currentdict
+ end
+ definefont
+ dup/FontName known{dup/FontName get}{null}ifelse
+ $origfontnamefound ne
+ {
+ $origfontname $str cvs print
+ ( substitution revised, using )print
+ dup/FontName known
+ {dup/FontName get}{(unspecified font)}
+ ifelse
+ $str cvs print(.\n)print
+ }
+ if
+ }
+ {exch pop}
+ ifelse
+ }
+ {exch pop}
+ ifelse
+ end
+ }bind def
+ }
+ ifelse
+ end
+ end
+ Adobe_CoolType_Core_Defined not
+ {
+ Adobe_CoolType_Core/findfont
+ {
+ $SubstituteFont
+ begin
+ $depth 0 eq
+ {
+ /$fontname 1 index dup type/stringtype ne{$str cvs}if def
+ /$substituteFound false def
+ }
+ if
+ /$depth $depth 1 add def
+ end
+ scfindfont
+ $SubstituteFont
+ begin
+ /$depth $depth 1 sub def
+ $substituteFound $depth 0 eq and
+ {
+ $inVMIndex null ne
+ {dup $inVMIndex $AddInVMFont}
+ if
+ $doSmartSub
+ {
+ currentdict/$Strategy known
+ {$Strategy/$BuildFont get exec}
+ if
+ }
+ if
+ }
+ if
+ end
+ }bind put
+ }
+ if
+ }
+ if
+ end
+/$AddInVMFont
+ {
+ exch/FontName 2 copy known
+ {
+ get
+ 1 dict dup begin exch 1 index gcheck def end exch
+ Adobe_CoolType_Data/InVMFontsByCMap get exch
+ $DictAdd
+ }
+ {pop pop pop}
+ ifelse
+ }bind def
+/$DictAdd
+ {
+ 2 copy known not
+ {2 copy 4 index length dict put}
+ if
+ Level2? not
+ {
+ 2 copy get dup maxlength exch length 4 index length add lt
+ 2 copy get dup length 4 index length add exch maxlength 1 index lt
+ {
+ 2 mul dict
+ begin
+ 2 copy get{forall}def
+ 2 copy currentdict put
+ end
+ }
+ {pop}
+ ifelse
+ }
+ if
+ get
+ begin
+ {def}
+ forall
+ end
+ }bind def
+end
+end
+%%EndResource
+currentglobal true setglobal
+%%BeginResource: procset Adobe_CoolType_Utility_MAKEOCF 1.23 0
+%%Copyright: Copyright 1987-2006 Adobe Systems Incorporated.
+%%Version: 1.23 0
+systemdict/languagelevel known dup
+ {currentglobal false setglobal}
+ {false}
+ifelse
+exch
+userdict/Adobe_CoolType_Utility 2 copy known
+ {2 copy get dup maxlength 27 add dict copy}
+ {27 dict}
+ifelse put
+Adobe_CoolType_Utility
+ begin
+ /@eexecStartData
+ <BAB431EA07F209EB8C4348311481D9D3F76E3D15246555577D87BC510ED54E
+ 118C39697FA9F6DB58128E60EB8A12FA24D7CDD2FA94D221FA9EC8DA3E5E6A1C
+ 4ACECC8C2D39C54E7C946031DD156C3A6B4A09AD29E1867A>def
+ /@recognizeCIDFont null def
+ /ct_Level2? exch def
+ /ct_Clone? 1183615869 internaldict dup
+ /CCRun known not
+ exch/eCCRun known not
+ ct_Level2? and or def
+ct_Level2?
+ {globaldict begin currentglobal true setglobal}
+if
+ /ct_AddStdCIDMap
+ ct_Level2?
+ {{
+ mark
+ Adobe_CoolType_Utility/@recognizeCIDFont currentdict put
+ {
+ ((Hex)57 StartData
+ 0615 1e27 2c39 1c60 d8a8 cc31 fe2b f6e0
+ 7aa3 e541 e21c 60d8 a8c9 c3d0 6d9e 1c60
+ d8a8 c9c2 02d7 9a1c 60d8 a849 1c60 d8a8
+ cc36 74f4 1144 b13b 77)0()/SubFileDecode filter cvx exec
+ }
+ stopped
+ {
+ cleartomark
+ Adobe_CoolType_Utility/@recognizeCIDFont get
+ countdictstack dup array dictstack
+ exch 1 sub -1 0
+ {
+ 2 copy get 3 index eq
+ {1 index length exch sub 1 sub{end}repeat exit}
+ {pop}
+ ifelse
+ }
+ for
+ pop pop
+ Adobe_CoolType_Utility/@eexecStartData get eexec
+ }
+ {cleartomark}
+ ifelse
+ }}
+ {{
+ Adobe_CoolType_Utility/@eexecStartData get eexec
+ }}
+ ifelse bind def
+userdict/cid_extensions known
+dup{cid_extensions/cid_UpdateDB known and}if
+ {
+ cid_extensions
+ begin
+ /cid_GetCIDSystemInfo
+ {
+ 1 index type/stringtype eq
+ {exch cvn exch}
+ if
+ cid_extensions
+ begin
+ dup load 2 index known
+ {
+ 2 copy
+ cid_GetStatusInfo
+ dup null ne
+ {
+ 1 index load
+ 3 index get
+ dup null eq
+ {pop pop cid_UpdateDB}
+ {
+ exch
+ 1 index/Created get eq
+ {exch pop exch pop}
+ {pop cid_UpdateDB}
+ ifelse
+ }
+ ifelse
+ }
+ {pop cid_UpdateDB}
+ ifelse
+ }
+ {cid_UpdateDB}
+ ifelse
+ end
+ }bind def
+ end
+ }
+if
+ct_Level2?
+ {end setglobal}
+if
+ /ct_UseNativeCapability? systemdict/composefont known def
+ /ct_MakeOCF 35 dict def
+ /ct_Vars 25 dict def
+ /ct_GlyphDirProcs 6 dict def
+ /ct_BuildCharDict 15 dict dup
+ begin
+ /charcode 2 string def
+ /dst_string 1500 string def
+ /nullstring()def
+ /usewidths? true def
+ end def
+ ct_Level2?{setglobal}{pop}ifelse
+ ct_GlyphDirProcs
+ begin
+ /GetGlyphDirectory
+ {
+ systemdict/languagelevel known
+ {pop/CIDFont findresource/GlyphDirectory get}
+ {
+ 1 index/CIDFont findresource/GlyphDirectory
+ get dup type/dicttype eq
+ {
+ dup dup maxlength exch length sub 2 index lt
+ {
+ dup length 2 index add dict copy 2 index
+ /CIDFont findresource/GlyphDirectory 2 index put
+ }
+ if
+ }
+ if
+ exch pop exch pop
+ }
+ ifelse
+ +
+ }def
+ /+
+ {
+ systemdict/languagelevel known
+ {
+ currentglobal false setglobal
+ 3 dict begin
+ /vm exch def
+ }
+ {1 dict begin}
+ ifelse
+ /$ exch def
+ systemdict/languagelevel known
+ {
+ vm setglobal
+ /gvm currentglobal def
+ $ gcheck setglobal
+ }
+ if
+ ?{$ begin}if
+ }def
+ /?{$ type/dicttype eq}def
+ /|{
+ userdict/Adobe_CoolType_Data known
+ {
+ Adobe_CoolType_Data/AddWidths? known
+ {
+ currentdict Adobe_CoolType_Data
+ begin
+ begin
+ AddWidths?
+ {
+ Adobe_CoolType_Data/CC 3 index put
+ ?{def}{$ 3 1 roll put}ifelse
+ CC charcode exch 1 index 0 2 index 256 idiv put
+ 1 index exch 1 exch 256 mod put
+ stringwidth 2 array astore
+ currentfont/Widths get exch CC exch put
+ }
+ {?{def}{$ 3 1 roll put}ifelse}
+ ifelse
+ end
+ end
+ }
+ {?{def}{$ 3 1 roll put}ifelse} ifelse
+ }
+ {?{def}{$ 3 1 roll put}ifelse}
+ ifelse
+ }def
+ /!
+ {
+ ?{end}if
+ systemdict/languagelevel known
+ {gvm setglobal}
+ if
+ end
+ }def
+ /:{string currentfile exch readstring pop}executeonly def
+ end
+ ct_MakeOCF
+ begin
+ /ct_cHexEncoding
+ [/c00/c01/c02/c03/c04/c05/c06/c07/c08/c09/c0A/c0B/c0C/c0D/c0E/c0F/c10/c11/c12
+ /c13/c14/c15/c16/c17/c18/c19/c1A/c1B/c1C/c1D/c1E/c1F/c20/c21/c22/c23/c24/c25
+ /c26/c27/c28/c29/c2A/c2B/c2C/c2D/c2E/c2F/c30/c31/c32/c33/c34/c35/c36/c37/c38
+ /c39/c3A/c3B/c3C/c3D/c3E/c3F/c40/c41/c42/c43/c44/c45/c46/c47/c48/c49/c4A/c4B
+ /c4C/c4D/c4E/c4F/c50/c51/c52/c53/c54/c55/c56/c57/c58/c59/c5A/c5B/c5C/c5D/c5E
+ /c5F/c60/c61/c62/c63/c64/c65/c66/c67/c68/c69/c6A/c6B/c6C/c6D/c6E/c6F/c70/c71
+ /c72/c73/c74/c75/c76/c77/c78/c79/c7A/c7B/c7C/c7D/c7E/c7F/c80/c81/c82/c83/c84
+ /c85/c86/c87/c88/c89/c8A/c8B/c8C/c8D/c8E/c8F/c90/c91/c92/c93/c94/c95/c96/c97
+ /c98/c99/c9A/c9B/c9C/c9D/c9E/c9F/cA0/cA1/cA2/cA3/cA4/cA5/cA6/cA7/cA8/cA9/cAA
+ /cAB/cAC/cAD/cAE/cAF/cB0/cB1/cB2/cB3/cB4/cB5/cB6/cB7/cB8/cB9/cBA/cBB/cBC/cBD
+ /cBE/cBF/cC0/cC1/cC2/cC3/cC4/cC5/cC6/cC7/cC8/cC9/cCA/cCB/cCC/cCD/cCE/cCF/cD0
+ /cD1/cD2/cD3/cD4/cD5/cD6/cD7/cD8/cD9/cDA/cDB/cDC/cDD/cDE/cDF/cE0/cE1/cE2/cE3
+ /cE4/cE5/cE6/cE7/cE8/cE9/cEA/cEB/cEC/cED/cEE/cEF/cF0/cF1/cF2/cF3/cF4/cF5/cF6
+ /cF7/cF8/cF9/cFA/cFB/cFC/cFD/cFE/cFF]def
+ /ct_CID_STR_SIZE 8000 def
+ /ct_mkocfStr100 100 string def
+ /ct_defaultFontMtx[.001 0 0 .001 0 0]def
+ /ct_1000Mtx[1000 0 0 1000 0 0]def
+ /ct_raise{exch cvx exch errordict exch get exec stop}bind def
+ /ct_reraise
+ {cvx $error/errorname get(Error: )print dup( )cvs print
+ errordict exch get exec stop
+ }bind def
+ /ct_cvnsi
+ {
+ 1 index add 1 sub 1 exch 0 4 1 roll
+ {
+ 2 index exch get
+ exch 8 bitshift
+ add
+ }
+ for
+ exch pop
+ }bind def
+ /ct_GetInterval
+ {
+ Adobe_CoolType_Utility/ct_BuildCharDict get
+ begin
+ /dst_index 0 def
+ dup dst_string length gt
+ {dup string/dst_string exch def}
+ if
+ 1 index ct_CID_STR_SIZE idiv
+ /arrayIndex exch def
+ 2 index arrayIndex get
+ 2 index
+ arrayIndex ct_CID_STR_SIZE mul
+ sub
+ {
+ dup 3 index add 2 index length le
+ {
+ 2 index getinterval
+ dst_string dst_index 2 index putinterval
+ length dst_index add/dst_index exch def
+ exit
+ }
+ {
+ 1 index length 1 index sub
+ dup 4 1 roll
+ getinterval
+ dst_string dst_index 2 index putinterval
+ pop dup dst_index add/dst_index exch def
+ sub
+ /arrayIndex arrayIndex 1 add def
+ 2 index dup length arrayIndex gt
+ {arrayIndex get}
+ {
+ pop
+ exit
+ }
+ ifelse
+ 0
+ }
+ ifelse
+ }
+ loop
+ pop pop pop
+ dst_string 0 dst_index getinterval
+ end
+ }bind def
+ ct_Level2?
+ {
+ /ct_resourcestatus
+ currentglobal mark true setglobal
+ {/unknowninstancename/Category resourcestatus}
+ stopped
+ {cleartomark setglobal true}
+ {cleartomark currentglobal not exch setglobal}
+ ifelse
+ {
+ {
+ mark 3 1 roll/Category findresource
+ begin
+ ct_Vars/vm currentglobal put
+ ({ResourceStatus}stopped)0()/SubFileDecode filter cvx exec
+ {cleartomark false}
+ {{3 2 roll pop true}{cleartomark false}ifelse}
+ ifelse
+ ct_Vars/vm get setglobal
+ end
+ }
+ }
+ {{resourcestatus}}
+ ifelse bind def
+ /CIDFont/Category ct_resourcestatus
+ {pop pop}
+ {
+ currentglobal true setglobal
+ /Generic/Category findresource
+ dup length dict copy
+ dup/InstanceType/dicttype put
+ /CIDFont exch/Category defineresource pop
+ setglobal
+ }
+ ifelse
+ ct_UseNativeCapability?
+ {
+ /CIDInit/ProcSet findresource begin
+ 12 dict begin
+ begincmap
+ /CIDSystemInfo 3 dict dup begin
+ /Registry(Adobe)def
+ /Ordering(Identity)def
+ /Supplement 0 def
+ end def
+ /CMapName/Identity-H def
+ /CMapVersion 1.000 def
+ /CMapType 1 def
+ 1 begincodespacerange
+ <0000><FFFF>
+ endcodespacerange
+ 1 begincidrange
+ <0000><FFFF>0
+ endcidrange
+ endcmap
+ CMapName currentdict/CMap defineresource pop
+ end
+ end
+ }
+ if
+ }
+ {
+ /ct_Category 2 dict begin
+ /CIDFont 10 dict def
+ /ProcSet 2 dict def
+ currentdict
+ end
+ def
+ /defineresource
+ {
+ ct_Category 1 index 2 copy known
+ {
+ get
+ dup dup maxlength exch length eq
+ {
+ dup length 10 add dict copy
+ ct_Category 2 index 2 index put
+ }
+ if
+ 3 index 3 index put
+ pop exch pop
+ }
+ {pop pop/defineresource/undefined ct_raise}
+ ifelse
+ }bind def
+ /findresource
+ {
+ ct_Category 1 index 2 copy known
+ {
+ get
+ 2 index 2 copy known
+ {get 3 1 roll pop pop}
+ {pop pop/findresource/undefinedresource ct_raise}
+ ifelse
+ }
+ {pop pop/findresource/undefined ct_raise}
+ ifelse
+ }bind def
+ /resourcestatus
+ {
+ ct_Category 1 index 2 copy known
+ {
+ get
+ 2 index known
+ exch pop exch pop
+ {
+ 0 -1 true
+ }
+ {
+ false
+ }
+ ifelse
+ }
+ {pop pop/findresource/undefined ct_raise}
+ ifelse
+ }bind def
+ /ct_resourcestatus/resourcestatus load def
+ }
+ ifelse
+ /ct_CIDInit 2 dict
+ begin
+ /ct_cidfont_stream_init
+ {
+ {
+ dup(Binary)eq
+ {
+ pop
+ null
+ currentfile
+ ct_Level2?
+ {
+ {cid_BYTE_COUNT()/SubFileDecode filter}
+ stopped
+ {pop pop pop}
+ if
+ }
+ if
+ /readstring load
+ exit
+ }
+ if
+ dup(Hex)eq
+ {
+ pop
+ currentfile
+ ct_Level2?
+ {
+ {null exch/ASCIIHexDecode filter/readstring}
+ stopped
+ {pop exch pop(>)exch/readhexstring}
+ if
+ }
+ {(>)exch/readhexstring}
+ ifelse
+ load
+ exit
+ }
+ if
+ /StartData/typecheck ct_raise
+ }
+ loop
+ cid_BYTE_COUNT ct_CID_STR_SIZE le
+ {
+ 2 copy cid_BYTE_COUNT string exch exec
+ pop
+ 1 array dup
+ 3 -1 roll
+ 0 exch put
+ }
+ {
+ cid_BYTE_COUNT ct_CID_STR_SIZE div ceiling cvi
+ dup array exch 2 sub 0 exch 1 exch
+ {
+ 2 copy
+ 5 index
+ ct_CID_STR_SIZE
+ string
+ 6 index exec
+ pop
+ put
+ pop
+ }
+ for
+ 2 index
+ cid_BYTE_COUNT ct_CID_STR_SIZE mod string
+ 3 index exec
+ pop
+ 1 index exch
+ 1 index length 1 sub
+ exch put
+ }
+ ifelse
+ cid_CIDFONT exch/GlyphData exch put
+ 2 index null eq
+ {
+ pop pop pop
+ }
+ {
+ pop/readstring load
+ 1 string exch
+ {
+ 3 copy exec
+ pop
+ dup length 0 eq
+ {
+ pop pop pop pop pop
+ true exit
+ }
+ if
+ 4 index
+ eq
+ {
+ pop pop pop pop
+ false exit
+ }
+ if
+ }
+ loop
+ pop
+ }
+ ifelse
+ }bind def
+ /StartData
+ {
+ mark
+ {
+ currentdict
+ dup/FDArray get 0 get/FontMatrix get
+ 0 get 0.001 eq
+ {
+ dup/CDevProc known not
+ {
+ /CDevProc 1183615869 internaldict/stdCDevProc 2 copy known
+ {get}
+ {
+ pop pop
+ {pop pop pop pop pop 0 -1000 7 index 2 div 880}
+ }
+ ifelse
+ def
+ }
+ if
+ }
+ {
+ /CDevProc
+ {
+ pop pop pop pop pop
+ 0
+ 1 cid_temp/cid_CIDFONT get
+ /FDArray get 0 get
+ /FontMatrix get 0 get div
+ 7 index 2 div
+ 1 index 0.88 mul
+ }def
+ }
+ ifelse
+ /cid_temp 15 dict def
+ cid_temp
+ begin
+ /cid_CIDFONT exch def
+ 3 copy pop
+ dup/cid_BYTE_COUNT exch def 0 gt
+ {
+ ct_cidfont_stream_init
+ FDArray
+ {
+ /Private get
+ dup/SubrMapOffset known
+ {
+ begin
+ /Subrs SubrCount array def
+ Subrs
+ SubrMapOffset
+ SubrCount
+ SDBytes
+ ct_Level2?
+ {
+ currentdict dup/SubrMapOffset undef
+ dup/SubrCount undef
+ /SDBytes undef
+ }
+ if
+ end
+ /cid_SD_BYTES exch def
+ /cid_SUBR_COUNT exch def
+ /cid_SUBR_MAP_OFFSET exch def
+ /cid_SUBRS exch def
+ cid_SUBR_COUNT 0 gt
+ {
+ GlyphData cid_SUBR_MAP_OFFSET cid_SD_BYTES ct_GetInterval
+ 0 cid_SD_BYTES ct_cvnsi
+ 0 1 cid_SUBR_COUNT 1 sub
+ {
+ exch 1 index
+ 1 add
+ cid_SD_BYTES mul cid_SUBR_MAP_OFFSET add
+ GlyphData exch cid_SD_BYTES ct_GetInterval
+ 0 cid_SD_BYTES ct_cvnsi
+ cid_SUBRS 4 2 roll
+ GlyphData exch
+ 4 index
+ 1 index
+ sub
+ ct_GetInterval
+ dup length string copy put
+ }
+ for
+ pop
+ }
+ if
+ }
+ {pop}
+ ifelse
+ }
+ forall
+ }
+ if
+ cleartomark pop pop
+ end
+ CIDFontName currentdict/CIDFont defineresource pop
+ end end
+ }
+ stopped
+ {cleartomark/StartData ct_reraise}
+ if
+ }bind def
+ currentdict
+ end def
+ /ct_saveCIDInit
+ {
+ /CIDInit/ProcSet ct_resourcestatus
+ {true}
+ {/CIDInitC/ProcSet ct_resourcestatus}
+ ifelse
+ {
+ pop pop
+ /CIDInit/ProcSet findresource
+ ct_UseNativeCapability?
+ {pop null}
+ {/CIDInit ct_CIDInit/ProcSet defineresource pop}
+ ifelse
+ }
+ {/CIDInit ct_CIDInit/ProcSet defineresource pop null}
+ ifelse
+ ct_Vars exch/ct_oldCIDInit exch put
+ }bind def
+ /ct_restoreCIDInit
+ {
+ ct_Vars/ct_oldCIDInit get dup null ne
+ {/CIDInit exch/ProcSet defineresource pop}
+ {pop}
+ ifelse
+ }bind def
+ /ct_BuildCharSetUp
+ {
+ 1 index
+ begin
+ CIDFont
+ begin
+ Adobe_CoolType_Utility/ct_BuildCharDict get
+ begin
+ /ct_dfCharCode exch def
+ /ct_dfDict exch def
+ CIDFirstByte ct_dfCharCode add
+ dup CIDCount ge
+ {pop 0}
+ if
+ /cid exch def
+ {
+ GlyphDirectory cid 2 copy known
+ {get}
+ {pop pop nullstring}
+ ifelse
+ dup length FDBytes sub 0 gt
+ {
+ dup
+ FDBytes 0 ne
+ {0 FDBytes ct_cvnsi}
+ {pop 0}
+ ifelse
+ /fdIndex exch def
+ dup length FDBytes sub FDBytes exch getinterval
+ /charstring exch def
+ exit
+ }
+ {
+ pop
+ cid 0 eq
+ {/charstring nullstring def exit}
+ if
+ /cid 0 def
+ }
+ ifelse
+ }
+ loop
+ }def
+ /ct_SetCacheDevice
+ {
+ 0 0 moveto
+ dup stringwidth
+ 3 -1 roll
+ true charpath
+ pathbbox
+ 0 -1000
+ 7 index 2 div 880
+ setcachedevice2
+ 0 0 moveto
+ }def
+ /ct_CloneSetCacheProc
+ {
+ 1 eq
+ {
+ stringwidth
+ pop -2 div -880
+ 0 -1000 setcharwidth
+ moveto
+ }
+ {
+ usewidths?
+ {
+ currentfont/Widths get cid
+ 2 copy known
+ {get exch pop aload pop}
+ {pop pop stringwidth}
+ ifelse
+ }
+ {stringwidth}
+ ifelse
+ setcharwidth
+ 0 0 moveto
+ }
+ ifelse
+ }def
+ /ct_Type3ShowCharString
+ {
+ ct_FDDict fdIndex 2 copy known
+ {get}
+ {
+ currentglobal 3 1 roll
+ 1 index gcheck setglobal
+ ct_Type1FontTemplate dup maxlength dict copy
+ begin
+ FDArray fdIndex get
+ dup/FontMatrix 2 copy known
+ {get}
+ {pop pop ct_defaultFontMtx}
+ ifelse
+ /FontMatrix exch dup length array copy def
+ /Private get
+ /Private exch def
+ /Widths rootfont/Widths get def
+ /CharStrings 1 dict dup/.notdef
+ <d841272cf18f54fc13>dup length string copy put def
+ currentdict
+ end
+ /ct_Type1Font exch definefont
+ dup 5 1 roll put
+ setglobal
+ }
+ ifelse
+ dup/CharStrings get 1 index/Encoding get
+ ct_dfCharCode get charstring put
+ rootfont/WMode 2 copy known
+ {get}
+ {pop pop 0}
+ ifelse
+ exch
+ 1000 scalefont setfont
+ ct_str1 0 ct_dfCharCode put
+ ct_str1 exch ct_dfSetCacheProc
+ ct_SyntheticBold
+ {
+ currentpoint
+ ct_str1 show
+ newpath
+ moveto
+ ct_str1 true charpath
+ ct_StrokeWidth setlinewidth
+ stroke
+ }
+ {ct_str1 show}
+ ifelse
+ }def
+ /ct_Type4ShowCharString
+ {
+ ct_dfDict ct_dfCharCode charstring
+ FDArray fdIndex get
+ dup/FontMatrix get dup ct_defaultFontMtx ct_matrixeq not
+ {ct_1000Mtx matrix concatmatrix concat}
+ {pop}
+ ifelse
+ /Private get
+ Adobe_CoolType_Utility/ct_Level2? get not
+ {
+ ct_dfDict/Private
+ 3 -1 roll
+ {put}
+ 1183615869 internaldict/superexec get exec
+ }
+ if
+ 1183615869 internaldict
+ Adobe_CoolType_Utility/ct_Level2? get
+ {1 index}
+ {3 index/Private get mark 6 1 roll}
+ ifelse
+ dup/RunInt known
+ {/RunInt get}
+ {pop/CCRun}
+ ifelse
+ get exec
+ Adobe_CoolType_Utility/ct_Level2? get not
+ {cleartomark}
+ if
+ }bind def
+ /ct_BuildCharIncremental
+ {
+ {
+ Adobe_CoolType_Utility/ct_MakeOCF get begin
+ ct_BuildCharSetUp
+ ct_ShowCharString
+ }
+ stopped
+ {stop}
+ if
+ end
+ end
+ end
+ end
+ }bind def
+ /BaseFontNameStr(BF00)def
+ /ct_Type1FontTemplate 14 dict
+ begin
+ /FontType 1 def
+ /FontMatrix [0.001 0 0 0.001 0 0]def
+ /FontBBox [-250 -250 1250 1250]def
+ /Encoding ct_cHexEncoding def
+ /PaintType 0 def
+ currentdict
+ end def
+ /BaseFontTemplate 11 dict
+ begin
+ /FontMatrix [0.001 0 0 0.001 0 0]def
+ /FontBBox [-250 -250 1250 1250]def
+ /Encoding ct_cHexEncoding def
+ /BuildChar/ct_BuildCharIncremental load def
+ ct_Clone?
+ {
+ /FontType 3 def
+ /ct_ShowCharString/ct_Type3ShowCharString load def
+ /ct_dfSetCacheProc/ct_CloneSetCacheProc load def
+ /ct_SyntheticBold false def
+ /ct_StrokeWidth 1 def
+ }
+ {
+ /FontType 4 def
+ /Private 1 dict dup/lenIV 4 put def
+ /CharStrings 1 dict dup/.notdef<d841272cf18f54fc13>put def
+ /PaintType 0 def
+ /ct_ShowCharString/ct_Type4ShowCharString load def
+ }
+ ifelse
+ /ct_str1 1 string def
+ currentdict
+ end def
+ /BaseFontDictSize BaseFontTemplate length 5 add def
+ /ct_matrixeq
+ {
+ true 0 1 5
+ {
+ dup 4 index exch get exch 3 index exch get eq and
+ dup not
+ {exit}
+ if
+ }
+ for
+ exch pop exch pop
+ }bind def
+ /ct_makeocf
+ {
+ 15 dict
+ begin
+ exch/WMode exch def
+ exch/FontName exch def
+ /FontType 0 def
+ /FMapType 2 def
+ dup/FontMatrix known
+ {dup/FontMatrix get/FontMatrix exch def}
+ {/FontMatrix matrix def}
+ ifelse
+ /bfCount 1 index/CIDCount get 256 idiv 1 add
+ dup 256 gt{pop 256}if def
+ /Encoding
+ 256 array 0 1 bfCount 1 sub{2 copy dup put pop}for
+ bfCount 1 255{2 copy bfCount put pop}for
+ def
+ /FDepVector bfCount dup 256 lt{1 add}if array def
+ BaseFontTemplate BaseFontDictSize dict copy
+ begin
+ /CIDFont exch def
+ CIDFont/FontBBox known
+ {CIDFont/FontBBox get/FontBBox exch def}
+ if
+ CIDFont/CDevProc known
+ {CIDFont/CDevProc get/CDevProc exch def}
+ if
+ currentdict
+ end
+ BaseFontNameStr 3(0)putinterval
+ 0 1 bfCount dup 256 eq{1 sub}if
+ {
+ FDepVector exch
+ 2 index BaseFontDictSize dict copy
+ begin
+ dup/CIDFirstByte exch 256 mul def
+ FontType 3 eq
+ {/ct_FDDict 2 dict def}
+ if
+ currentdict
+ end
+ 1 index 16
+ BaseFontNameStr 2 2 getinterval cvrs pop
+ BaseFontNameStr exch definefont
+ put
+ }
+ for
+ ct_Clone?
+ {/Widths 1 index/CIDFont get/GlyphDirectory get length dict def}
+ if
+ FontName
+ currentdict
+ end
+ definefont
+ ct_Clone?
+ {
+ gsave
+ dup 1000 scalefont setfont
+ ct_BuildCharDict
+ begin
+ /usewidths? false def
+ currentfont/Widths get
+ begin
+ exch/CIDFont get/GlyphDirectory get
+ {
+ pop
+ dup charcode exch 1 index 0 2 index 256 idiv put
+ 1 index exch 1 exch 256 mod put
+ stringwidth 2 array astore def
+ }
+ forall
+ end
+ /usewidths? true def
+ end
+ grestore
+ }
+ {exch pop}
+ ifelse
+ }bind def
+ currentglobal true setglobal
+ /ct_ComposeFont
+ {
+ ct_UseNativeCapability?
+ {
+ 2 index/CMap ct_resourcestatus
+ {pop pop exch pop}
+ {
+ /CIDInit/ProcSet findresource
+ begin
+ 12 dict
+ begin
+ begincmap
+ /CMapName 3 index def
+ /CMapVersion 1.000 def
+ /CMapType 1 def
+ exch/WMode exch def
+ /CIDSystemInfo 3 dict dup
+ begin
+ /Registry(Adobe)def
+ /Ordering
+ CMapName ct_mkocfStr100 cvs
+ (Adobe-)search
+ {
+ pop pop
+ (-)search
+ {
+ dup length string copy
+ exch pop exch pop
+ }
+ {pop(Identity)}
+ ifelse
+ }
+ {pop (Identity)}
+ ifelse
+ def
+ /Supplement 0 def
+ end def
+ 1 begincodespacerange
+ <0000><FFFF>
+ endcodespacerange
+ 1 begincidrange
+ <0000><FFFF>0
+ endcidrange
+ endcmap
+ CMapName currentdict/CMap defineresource pop
+ end
+ end
+ }
+ ifelse
+ composefont
+ }
+ {
+ 3 2 roll pop
+ 0 get/CIDFont findresource
+ ct_makeocf
+ }
+ ifelse
+ }bind def
+ setglobal
+ /ct_MakeIdentity
+ {
+ ct_UseNativeCapability?
+ {
+ 1 index/CMap ct_resourcestatus
+ {pop pop}
+ {
+ /CIDInit/ProcSet findresource begin
+ 12 dict begin
+ begincmap
+ /CMapName 2 index def
+ /CMapVersion 1.000 def
+ /CMapType 1 def
+ /CIDSystemInfo 3 dict dup
+ begin
+ /Registry(Adobe)def
+ /Ordering
+ CMapName ct_mkocfStr100 cvs
+ (Adobe-)search
+ {
+ pop pop
+ (-)search
+ {dup length string copy exch pop exch pop}
+ {pop(Identity)}
+ ifelse
+ }
+ {pop(Identity)}
+ ifelse
+ def
+ /Supplement 0 def
+ end def
+ 1 begincodespacerange
+ <0000><FFFF>
+ endcodespacerange
+ 1 begincidrange
+ <0000><FFFF>0
+ endcidrange
+ endcmap
+ CMapName currentdict/CMap defineresource pop
+ end
+ end
+ }
+ ifelse
+ composefont
+ }
+ {
+ exch pop
+ 0 get/CIDFont findresource
+ ct_makeocf
+ }
+ ifelse
+ }bind def
+ currentdict readonly pop
+ end
+ end
+%%EndResource
+setglobal
+%%BeginResource: procset Adobe_CoolType_Utility_T42 1.0 0
+%%Copyright: Copyright 1987-2004 Adobe Systems Incorporated.
+%%Version: 1.0 0
+userdict/ct_T42Dict 15 dict put
+ct_T42Dict begin
+/Is2015?
+{
+ version
+ cvi
+ 2015
+ ge
+}bind def
+/AllocGlyphStorage
+{
+ Is2015?
+ {
+ pop
+ }
+ {
+ {string}forall
+ }ifelse
+}bind def
+/Type42DictBegin
+{
+25 dict begin
+ /FontName exch def
+ /CharStrings 256 dict
+begin
+ /.notdef 0 def
+ currentdict
+end def
+ /Encoding exch def
+ /PaintType 0 def
+ /FontType 42 def
+ /FontMatrix[1 0 0 1 0 0]def
+ 4 array astore cvx/FontBBox exch def
+ /sfnts
+}bind def
+/Type42DictEnd
+{
+ currentdict dup/FontName get exch definefont end
+ct_T42Dict exch
+dup/FontName get exch put
+}bind def
+/RD{string currentfile exch readstring pop}executeonly def
+/PrepFor2015
+{
+Is2015?
+{
+ /GlyphDirectory
+ 16
+ dict def
+ sfnts 0 get
+ dup
+ 2 index
+ (glyx)
+ putinterval
+ 2 index
+ (locx)
+ putinterval
+ pop
+ pop
+}
+{
+ pop
+ pop
+}ifelse
+}bind def
+/AddT42Char
+{
+Is2015?
+{
+ /GlyphDirectory get
+ begin
+ def
+ end
+ pop
+ pop
+}
+{
+ /sfnts get
+ 4 index
+ get
+ 3 index
+ 2 index
+ putinterval
+ pop
+ pop
+ pop
+ pop
+}ifelse
+}bind def
+/T0AddT42Mtx2
+{
+/CIDFont findresource/Metrics2 get begin def end
+}bind def
+end
+%%EndResource
+currentglobal true setglobal
+%%BeginFile: MMFauxFont.prc
+%%Copyright: Copyright 1987-2001 Adobe Systems Incorporated.
+%%All Rights Reserved.
+userdict /ct_EuroDict 10 dict put
+ct_EuroDict begin
+/ct_CopyFont
+{
+ { 1 index /FID ne {def} {pop pop} ifelse} forall
+} def
+/ct_GetGlyphOutline
+{
+ gsave
+ initmatrix newpath
+ exch findfont dup
+ length 1 add dict
+ begin
+ ct_CopyFont
+ /Encoding Encoding dup length array copy
+ dup
+ 4 -1 roll
+ 0 exch put
+ def
+ currentdict
+ end
+ /ct_EuroFont exch definefont
+ 1000 scalefont setfont
+ 0 0 moveto
+ [
+ <00> stringwidth
+ <00> false charpath
+ pathbbox
+ [
+ {/m cvx} {/l cvx} {/c cvx} {/cp cvx} pathforall
+ grestore
+ counttomark 8 add
+}
+def
+/ct_MakeGlyphProc
+{
+ ] cvx
+ /ct_PSBuildGlyph cvx
+ ] cvx
+} def
+/ct_PSBuildGlyph
+{
+ gsave
+ 8 -1 roll pop
+ 7 1 roll
+ 6 -2 roll ct_FontMatrix transform 6 2 roll
+ 4 -2 roll ct_FontMatrix transform 4 2 roll
+ ct_FontMatrix transform
+ currentdict /PaintType 2 copy known {get 2 eq}{pop pop false} ifelse
+ dup 9 1 roll
+ {
+ currentdict /StrokeWidth 2 copy known
+ {
+ get 2 div
+ 0 ct_FontMatrix dtransform pop
+ 5 1 roll
+ 4 -1 roll 4 index sub
+ 4 1 roll
+ 3 -1 roll 4 index sub
+ 3 1 roll
+ exch 4 index add exch
+ 4 index add
+ 5 -1 roll pop
+ }
+ {
+ pop pop
+ }
+ ifelse
+ }
+ if
+ setcachedevice
+ ct_FontMatrix concat
+ ct_PSPathOps begin
+ exec
+ end
+ {
+ currentdict /StrokeWidth 2 copy known
+ { get }
+ { pop pop 0 }
+ ifelse
+ setlinewidth stroke
+ }
+ {
+ fill
+ }
+ ifelse
+ grestore
+} def
+/ct_PSPathOps 4 dict dup begin
+ /m {moveto} def
+ /l {lineto} def
+ /c {curveto} def
+ /cp {closepath} def
+end
+def
+/ct_matrix1000 [1000 0 0 1000 0 0] def
+/ct_AddGlyphProc
+{
+ 2 index findfont dup length 4 add dict
+ begin
+ ct_CopyFont
+ /CharStrings CharStrings dup length 1 add dict copy
+ begin
+ 3 1 roll def
+ currentdict
+ end
+ def
+ /ct_FontMatrix ct_matrix1000 FontMatrix matrix concatmatrix def
+ /ct_PSBuildGlyph /ct_PSBuildGlyph load def
+ /ct_PSPathOps /ct_PSPathOps load def
+ currentdict
+ end
+ definefont pop
+}
+def
+systemdict /languagelevel known
+{
+ /ct_AddGlyphToPrinterFont {
+ 2 copy
+ ct_GetGlyphOutline 3 add -1 roll restore
+ ct_MakeGlyphProc
+ ct_AddGlyphProc
+ } def
+}
+{
+ /ct_AddGlyphToPrinterFont {
+ pop pop restore
+ Adobe_CTFauxDict /$$$FONTNAME get
+ /Euro
+ Adobe_CTFauxDict /$$$SUBSTITUTEBASE get
+ ct_EuroDict exch get
+ ct_AddGlyphProc
+ } def
+} ifelse
+/AdobeSansMM
+{
+556 0 24 -19 541 703
+ {
+ 541 628 m
+ 510 669 442 703 354 703 c
+ 201 703 117 607 101 444 c
+ 50 444 l
+ 25 372 l
+ 97 372 l
+ 97 301 l
+ 49 301 l
+ 24 229 l
+ 103 229 l
+ 124 67 209 -19 350 -19 c
+ 435 -19 501 25 509 32 c
+ 509 131 l
+ 492 105 417 60 343 60 c
+ 267 60 204 127 197 229 c
+ 406 229 l
+ 430 301 l
+ 191 301 l
+ 191 372 l
+ 455 372 l
+ 479 444 l
+ 194 444 l
+ 201 531 245 624 348 624 c
+ 433 624 484 583 509 534 c
+ cp
+ 556 0 m
+ }
+ct_PSBuildGlyph
+} def
+/AdobeSerifMM
+{
+500 0 10 -12 484 692
+ {
+ 347 298 m
+ 171 298 l
+ 170 310 170 322 170 335 c
+ 170 362 l
+ 362 362 l
+ 374 403 l
+ 172 403 l
+ 184 580 244 642 308 642 c
+ 380 642 434 574 457 457 c
+ 481 462 l
+ 474 691 l
+ 449 691 l
+ 433 670 429 657 410 657 c
+ 394 657 360 692 299 692 c
+ 204 692 94 604 73 403 c
+ 22 403 l
+ 10 362 l
+ 70 362 l
+ 69 352 69 341 69 330 c
+ 69 319 69 308 70 298 c
+ 22 298 l
+ 10 257 l
+ 73 257 l
+ 97 57 216 -12 295 -12 c
+ 364 -12 427 25 484 123 c
+ 458 142 l
+ 425 101 384 37 316 37 c
+ 256 37 189 84 173 257 c
+ 335 257 l
+ cp
+ 500 0 m
+ }
+ct_PSBuildGlyph
+} def
+end
+%%EndFile
+setglobal
+Adobe_CoolType_Core begin /$None SetSubstituteStrategy end
+%%BeginResource: procset Adobe_AGM_Image 1.0 0
+%%Version: 1.0 0
+%%Copyright: Copyright(C)2000-2006 Adobe Systems, Inc. All Rights Reserved.
+systemdict/setpacking known
+{
+ currentpacking
+ true setpacking
+}if
+userdict/Adobe_AGM_Image 71 dict dup begin put
+/Adobe_AGM_Image_Id/Adobe_AGM_Image_1.0_0 def
+/nd{
+ null def
+}bind def
+/AGMIMG_&image nd
+/AGMIMG_&colorimage nd
+/AGMIMG_&imagemask nd
+/AGMIMG_mbuf()def
+/AGMIMG_ybuf()def
+/AGMIMG_kbuf()def
+/AGMIMG_c 0 def
+/AGMIMG_m 0 def
+/AGMIMG_y 0 def
+/AGMIMG_k 0 def
+/AGMIMG_tmp nd
+/AGMIMG_imagestring0 nd
+/AGMIMG_imagestring1 nd
+/AGMIMG_imagestring2 nd
+/AGMIMG_imagestring3 nd
+/AGMIMG_imagestring4 nd
+/AGMIMG_imagestring5 nd
+/AGMIMG_cnt nd
+/AGMIMG_fsave nd
+/AGMIMG_colorAry nd
+/AGMIMG_override nd
+/AGMIMG_name nd
+/AGMIMG_maskSource nd
+/AGMIMG_flushfilters nd
+/invert_image_samples nd
+/knockout_image_samples nd
+/img nd
+/sepimg nd
+/devnimg nd
+/idximg nd
+/ds
+{
+ Adobe_AGM_Core begin
+ Adobe_AGM_Image begin
+ /AGMIMG_&image systemdict/image get def
+ /AGMIMG_&imagemask systemdict/imagemask get def
+ /colorimage where{
+ pop
+ /AGMIMG_&colorimage/colorimage ldf
+ }if
+ end
+ end
+}def
+/ps
+{
+ Adobe_AGM_Image begin
+ /AGMIMG_ccimage_exists{/customcolorimage where
+ {
+ pop
+ /Adobe_AGM_OnHost_Seps where
+ {
+ pop false
+ }{
+ /Adobe_AGM_InRip_Seps where
+ {
+ pop false
+ }{
+ true
+ }ifelse
+ }ifelse
+ }{
+ false
+ }ifelse
+ }bdf
+ level2{
+ /invert_image_samples
+ {
+ Adobe_AGM_Image/AGMIMG_tmp Decode length ddf
+ /Decode[Decode 1 get Decode 0 get]def
+ }def
+ /knockout_image_samples
+ {
+ Operator/imagemask ne{
+ /Decode[1 1]def
+ }if
+ }def
+ }{
+ /invert_image_samples
+ {
+ {1 exch sub}currenttransfer addprocs settransfer
+ }def
+ /knockout_image_samples
+ {
+ {pop 1}currenttransfer addprocs settransfer
+ }def
+ }ifelse
+ /img/imageormask ldf
+ /sepimg/sep_imageormask ldf
+ /devnimg/devn_imageormask ldf
+ /idximg/indexed_imageormask ldf
+ /_ctype 7 def
+ currentdict{
+ dup xcheck 1 index type dup/arraytype eq exch/packedarraytype eq or and{
+ bind
+ }if
+ def
+ }forall
+}def
+/pt
+{
+ end
+}def
+/dt
+{
+}def
+/AGMIMG_flushfilters
+{
+ dup type/arraytype ne
+ {1 array astore}if
+ dup 0 get currentfile ne
+ {dup 0 get flushfile}if
+ {
+ dup type/filetype eq
+ {
+ dup status 1 index currentfile ne and
+ {closefile}
+ {pop}
+ ifelse
+ }{pop}ifelse
+ }forall
+}def
+/AGMIMG_init_common
+{
+ currentdict/T known{/ImageType/T ldf currentdict/T undef}if
+ currentdict/W known{/Width/W ldf currentdict/W undef}if
+ currentdict/H known{/Height/H ldf currentdict/H undef}if
+ currentdict/M known{/ImageMatrix/M ldf currentdict/M undef}if
+ currentdict/BC known{/BitsPerComponent/BC ldf currentdict/BC undef}if
+ currentdict/D known{/Decode/D ldf currentdict/D undef}if
+ currentdict/DS known{/DataSource/DS ldf currentdict/DS undef}if
+ currentdict/O known{
+ /Operator/O load 1 eq{
+ /imagemask
+ }{
+ /O load 2 eq{
+ /image
+ }{
+ /colorimage
+ }ifelse
+ }ifelse
+ def
+ currentdict/O undef
+ }if
+ currentdict/HSCI known{/HostSepColorImage/HSCI ldf currentdict/HSCI undef}if
+ currentdict/MD known{/MultipleDataSources/MD ldf currentdict/MD undef}if
+ currentdict/I known{/Interpolate/I ldf currentdict/I undef}if
+ currentdict/SI known{/SkipImageProc/SI ldf currentdict/SI undef}if
+ /DataSource load xcheck not{
+ DataSource type/arraytype eq{
+ DataSource 0 get type/filetype eq{
+ /_Filters DataSource def
+ currentdict/MultipleDataSources known not{
+ /DataSource DataSource dup length 1 sub get def
+ }if
+ }if
+ }if
+ currentdict/MultipleDataSources known not{
+ /MultipleDataSources DataSource type/arraytype eq{
+ DataSource length 1 gt
+ }
+ {false}ifelse def
+ }if
+ }if
+ /NComponents Decode length 2 div def
+ currentdict/SkipImageProc known not{/SkipImageProc{false}def}if
+}bdf
+/imageormask_sys
+{
+ begin
+ AGMIMG_init_common
+ save mark
+ level2{
+ currentdict
+ Operator/imagemask eq{
+ AGMIMG_&imagemask
+ }{
+ use_mask{
+ process_mask AGMIMG_&image
+ }{
+ AGMIMG_&image
+ }ifelse
+ }ifelse
+ }{
+ Width Height
+ Operator/imagemask eq{
+ Decode 0 get 1 eq Decode 1 get 0 eq and
+ ImageMatrix/DataSource load
+ AGMIMG_&imagemask
+ }{
+ BitsPerComponent ImageMatrix/DataSource load
+ AGMIMG_&image
+ }ifelse
+ }ifelse
+ currentdict/_Filters known{_Filters AGMIMG_flushfilters}if
+ cleartomark restore
+ end
+}def
+/overprint_plate
+{
+ currentoverprint{
+ 0 get dup type/nametype eq{
+ dup/DeviceGray eq{
+ pop AGMCORE_black_plate not
+ }{
+ /DeviceCMYK eq{
+ AGMCORE_is_cmyk_sep not
+ }if
+ }ifelse
+ }{
+ false exch
+ {
+ AGMOHS_sepink eq or
+ }forall
+ not
+ }ifelse
+ }{
+ pop false
+ }ifelse
+}def
+/process_mask
+{
+ level3{
+ dup begin
+ /ImageType 1 def
+ end
+ 4 dict begin
+ /DataDict exch def
+ /ImageType 3 def
+ /InterleaveType 3 def
+ /MaskDict 9 dict begin
+ /ImageType 1 def
+ /Width DataDict dup/MaskWidth known{/MaskWidth}{/Width}ifelse get def
+ /Height DataDict dup/MaskHeight known{/MaskHeight}{/Height}ifelse get def
+ /ImageMatrix[Width 0 0 Height neg 0 Height]def
+ /NComponents 1 def
+ /BitsPerComponent 1 def
+ /Decode DataDict dup/MaskD known{/MaskD}{[1 0]}ifelse get def
+ /DataSource Adobe_AGM_Core/AGMIMG_maskSource get def
+ currentdict end def
+ currentdict end
+ }if
+}def
+/use_mask
+{
+ dup/Mask known {dup/Mask get}{false}ifelse
+}def
+/imageormask
+{
+ begin
+ AGMIMG_init_common
+ SkipImageProc{
+ currentdict consumeimagedata
+ }
+ {
+ save mark
+ level2 AGMCORE_host_sep not and{
+ currentdict
+ Operator/imagemask eq DeviceN_PS2 not and{
+ imagemask
+ }{
+ AGMCORE_in_rip_sep currentoverprint and currentcolorspace 0 get/DeviceGray eq and{
+ [/Separation/Black/DeviceGray{}]setcolorspace
+ /Decode[Decode 1 get Decode 0 get]def
+ }if
+ use_mask{
+ process_mask image
+ }{
+ DeviceN_NoneName DeviceN_PS2 Indexed_DeviceN level3 not and or or AGMCORE_in_rip_sep and
+ {
+ Names convert_to_process not{
+ 2 dict begin
+ /imageDict xdf
+ /names_index 0 def
+ gsave
+ imageDict write_image_file{
+ Names{
+ dup(None)ne{
+ [/Separation 3 -1 roll/DeviceGray{1 exch sub}]setcolorspace
+ Operator imageDict read_image_file
+ names_index 0 eq{true setoverprint}if
+ /names_index names_index 1 add def
+ }{
+ pop
+ }ifelse
+ }forall
+ close_image_file
+ }if
+ grestore
+ end
+ }{
+ Operator/imagemask eq{
+ imagemask
+ }{
+ image
+ }ifelse
+ }ifelse
+ }{
+ Operator/imagemask eq{
+ imagemask
+ }{
+ image
+ }ifelse
+ }ifelse
+ }ifelse
+ }ifelse
+ }{
+ Width Height
+ Operator/imagemask eq{
+ Decode 0 get 1 eq Decode 1 get 0 eq and
+ ImageMatrix/DataSource load
+ /Adobe_AGM_OnHost_Seps where{
+ pop imagemask
+ }{
+ currentgray 1 ne{
+ currentdict imageormask_sys
+ }{
+ currentoverprint not{
+ 1 AGMCORE_&setgray
+ currentdict imageormask_sys
+ }{
+ currentdict ignoreimagedata
+ }ifelse
+ }ifelse
+ }ifelse
+ }{
+ BitsPerComponent ImageMatrix
+ MultipleDataSources{
+ 0 1 NComponents 1 sub{
+ DataSource exch get
+ }for
+ }{
+ /DataSource load
+ }ifelse
+ Operator/colorimage eq{
+ AGMCORE_host_sep{
+ MultipleDataSources level2 or NComponents 4 eq and{
+ AGMCORE_is_cmyk_sep{
+ MultipleDataSources{
+ /DataSource DataSource 0 get xcheck
+ {
+ [
+ DataSource 0 get/exec cvx
+ DataSource 1 get/exec cvx
+ DataSource 2 get/exec cvx
+ DataSource 3 get/exec cvx
+ /AGMCORE_get_ink_data cvx
+ ]cvx
+ }{
+ DataSource aload pop AGMCORE_get_ink_data
+ }ifelse def
+ }{
+ /DataSource
+ Width BitsPerComponent mul 7 add 8 idiv Height mul 4 mul
+ /DataSource load
+ filter_cmyk 0()/SubFileDecode filter def
+ }ifelse
+ /Decode[Decode 0 get Decode 1 get]def
+ /MultipleDataSources false def
+ /NComponents 1 def
+ /Operator/image def
+ invert_image_samples
+ 1 AGMCORE_&setgray
+ currentdict imageormask_sys
+ }{
+ currentoverprint not Operator/imagemask eq and{
+ 1 AGMCORE_&setgray
+ currentdict imageormask_sys
+ }{
+ currentdict ignoreimagedata
+ }ifelse
+ }ifelse
+ }{
+ MultipleDataSources NComponents AGMIMG_&colorimage
+ }ifelse
+ }{
+ true NComponents colorimage
+ }ifelse
+ }{
+ Operator/image eq{
+ AGMCORE_host_sep{
+ /DoImage true def
+ currentdict/HostSepColorImage known{HostSepColorImage not}{false}ifelse
+ {
+ AGMCORE_black_plate not Operator/imagemask ne and{
+ /DoImage false def
+ currentdict ignoreimagedata
+ }if
+ }if
+ 1 AGMCORE_&setgray
+ DoImage
+ {currentdict imageormask_sys}if
+ }{
+ use_mask{
+ process_mask image
+ }{
+ image
+ }ifelse
+ }ifelse
+ }{
+ Operator/knockout eq{
+ pop pop pop pop pop
+ currentcolorspace overprint_plate not{
+ knockout_unitsq
+ }if
+ }if
+ }ifelse
+ }ifelse
+ }ifelse
+ }ifelse
+ cleartomark restore
+ }ifelse
+ currentdict/_Filters known{_Filters AGMIMG_flushfilters}if
+ end
+}def
+/sep_imageormask
+{
+ /sep_colorspace_dict AGMCORE_gget begin
+ CSA map_csa
+ begin
+ AGMIMG_init_common
+ SkipImageProc{
+ currentdict consumeimagedata
+ }{
+ save mark
+ AGMCORE_avoid_L2_sep_space{
+ /Decode[Decode 0 get 255 mul Decode 1 get 255 mul]def
+ }if
+ AGMIMG_ccimage_exists
+ MappedCSA 0 get/DeviceCMYK eq and
+ currentdict/Components known and
+ Name()ne and
+ Name(All)ne and
+ Operator/image eq and
+ AGMCORE_producing_seps not and
+ level2 not and
+ {
+ Width Height BitsPerComponent ImageMatrix
+ [
+ /DataSource load/exec cvx
+ {
+ 0 1 2 index length 1 sub{
+ 1 index exch
+ 2 copy get 255 xor put
+ }for
+ }/exec cvx
+ ]cvx bind
+ MappedCSA 0 get/DeviceCMYK eq{
+ Components aload pop
+ }{
+ 0 0 0 Components aload pop 1 exch sub
+ }ifelse
+ Name findcmykcustomcolor
+ customcolorimage
+ }{
+ AGMCORE_producing_seps not{
+ level2{
+ //Adobe_AGM_Core/AGMCORE_pattern_paint_type get 2 ne AGMCORE_avoid_L2_sep_space not and currentcolorspace 0 get/Separation ne and{
+ [/Separation Name MappedCSA sep_proc_name exch dup 0 get 15 string cvs(/Device)anchorsearch{pop pop 0 get}{pop}ifelse exch load]setcolorspace_opt
+ /sep_tint AGMCORE_gget setcolor
+ }if
+ currentdict imageormask
+ }{
+ currentdict
+ Operator/imagemask eq{
+ imageormask
+ }{
+ sep_imageormask_lev1
+ }ifelse
+ }ifelse
+ }{
+ AGMCORE_host_sep{
+ Operator/knockout eq{
+ currentdict/ImageMatrix get concat
+ knockout_unitsq
+ }{
+ currentgray 1 ne{
+ AGMCORE_is_cmyk_sep Name(All)ne and{
+ level2{
+ Name AGMCORE_IsSeparationAProcessColor
+ {
+ Operator/imagemask eq{
+ //Adobe_AGM_Core/AGMCORE_pattern_paint_type get 2 ne{
+ /sep_tint AGMCORE_gget 1 exch sub AGMCORE_&setcolor
+ }if
+ }{
+ invert_image_samples
+ }ifelse
+ }{
+ //Adobe_AGM_Core/AGMCORE_pattern_paint_type get 2 ne{
+ [/Separation Name[/DeviceGray]
+ {
+ sep_colorspace_proc AGMCORE_get_ink_data
+ 1 exch sub
+ }bind
+ ]AGMCORE_&setcolorspace
+ /sep_tint AGMCORE_gget AGMCORE_&setcolor
+ }if
+ }ifelse
+ currentdict imageormask_sys
+ }{
+ currentdict
+ Operator/imagemask eq{
+ imageormask_sys
+ }{
+ sep_image_lev1_sep
+ }ifelse
+ }ifelse
+ }{
+ Operator/imagemask ne{
+ invert_image_samples
+ }if
+ currentdict imageormask_sys
+ }ifelse
+ }{
+ currentoverprint not Name(All)eq or Operator/imagemask eq and{
+ currentdict imageormask_sys
+ }{
+ currentoverprint not
+ {
+ gsave
+ knockout_unitsq
+ grestore
+ }if
+ currentdict consumeimagedata
+ }ifelse
+ }ifelse
+ }ifelse
+ }{
+ //Adobe_AGM_Core/AGMCORE_pattern_paint_type get 2 ne{
+ currentcolorspace 0 get/Separation ne{
+ [/Separation Name MappedCSA sep_proc_name exch 0 get exch load]setcolorspace_opt
+ /sep_tint AGMCORE_gget setcolor
+ }if
+ }if
+ currentoverprint
+ MappedCSA 0 get/DeviceCMYK eq and
+ Name AGMCORE_IsSeparationAProcessColor not and
+ //Adobe_AGM_Core/AGMCORE_pattern_paint_type get 2 ne{Name inRip_spot_has_ink not and}{false}ifelse
+ Name(All)ne and{
+ imageormask_l2_overprint
+ }{
+ currentdict imageormask
+ }ifelse
+ }ifelse
+ }ifelse
+ }ifelse
+ cleartomark restore
+ }ifelse
+ currentdict/_Filters known{_Filters AGMIMG_flushfilters}if
+ end
+ end
+}def
+/colorSpaceElemCnt
+{
+ mark currentcolor counttomark dup 2 add 1 roll cleartomark
+}bdf
+/devn_sep_datasource
+{
+ 1 dict begin
+ /dataSource xdf
+ [
+ 0 1 dataSource length 1 sub{
+ dup currentdict/dataSource get/exch cvx/get cvx/exec cvx
+ /exch cvx names_index/ne cvx[/pop cvx]cvx/if cvx
+ }for
+ ]cvx bind
+ end
+}bdf
+/devn_alt_datasource
+{
+ 11 dict begin
+ /convProc xdf
+ /origcolorSpaceElemCnt xdf
+ /origMultipleDataSources xdf
+ /origBitsPerComponent xdf
+ /origDecode xdf
+ /origDataSource xdf
+ /dsCnt origMultipleDataSources{origDataSource length}{1}ifelse def
+ /DataSource origMultipleDataSources
+ {
+ [
+ BitsPerComponent 8 idiv origDecode length 2 idiv mul string
+ 0 1 origDecode length 2 idiv 1 sub
+ {
+ dup 7 mul 1 add index exch dup BitsPerComponent 8 idiv mul exch
+ origDataSource exch get 0()/SubFileDecode filter
+ BitsPerComponent 8 idiv string/readstring cvx/pop cvx/putinterval cvx
+ }for
+ ]bind cvx
+ }{origDataSource}ifelse 0()/SubFileDecode filter def
+ [
+ origcolorSpaceElemCnt string
+ 0 2 origDecode length 2 sub
+ {
+ dup origDecode exch get dup 3 -1 roll 1 add origDecode exch get exch sub 2 BitsPerComponent exp 1 sub div
+ 1 BitsPerComponent 8 idiv{DataSource/read cvx/not cvx{0}/if cvx/mul cvx}repeat/mul cvx/add cvx
+ }for
+ /convProc load/exec cvx
+ origcolorSpaceElemCnt 1 sub -1 0
+ {
+ /dup cvx 2/add cvx/index cvx
+ 3 1/roll cvx/exch cvx 255/mul cvx/cvi cvx/put cvx
+ }for
+ ]bind cvx 0()/SubFileDecode filter
+ end
+}bdf
+/devn_imageormask
+{
+ /devicen_colorspace_dict AGMCORE_gget begin
+ CSA map_csa
+ 2 dict begin
+ dup
+ /srcDataStrs[3 -1 roll begin
+ AGMIMG_init_common
+ currentdict/MultipleDataSources known{MultipleDataSources{DataSource length}{1}ifelse}{1}ifelse
+ {
+ Width Decode length 2 div mul cvi
+ {
+ dup 65535 gt{1 add 2 div cvi}{exit}ifelse
+ }loop
+ string
+ }repeat
+ end]def
+ /dstDataStr srcDataStrs 0 get length string def
+ begin
+ AGMIMG_init_common
+ SkipImageProc{
+ currentdict consumeimagedata
+ }{
+ save mark
+ AGMCORE_producing_seps not{
+ level3 not{
+ Operator/imagemask ne{
+ /DataSource[[
+ DataSource Decode BitsPerComponent currentdict/MultipleDataSources known{MultipleDataSources}{false}ifelse
+ colorSpaceElemCnt/devicen_colorspace_dict AGMCORE_gget/TintTransform get
+ devn_alt_datasource 1/string cvx/readstring cvx/pop cvx]cvx colorSpaceElemCnt 1 sub{dup}repeat]def
+ /MultipleDataSources true def
+ /Decode colorSpaceElemCnt[exch{0 1}repeat]def
+ }if
+ }if
+ currentdict imageormask
+ }{
+ AGMCORE_host_sep{
+ Names convert_to_process{
+ CSA get_csa_by_name 0 get/DeviceCMYK eq{
+ /DataSource
+ Width BitsPerComponent mul 7 add 8 idiv Height mul 4 mul
+ DataSource Decode BitsPerComponent currentdict/MultipleDataSources known{MultipleDataSources}{false}ifelse
+ 4/devicen_colorspace_dict AGMCORE_gget/TintTransform get
+ devn_alt_datasource
+ filter_cmyk 0()/SubFileDecode filter def
+ /MultipleDataSources false def
+ /Decode[1 0]def
+ /DeviceGray setcolorspace
+ currentdict imageormask_sys
+ }{
+ AGMCORE_report_unsupported_color_space
+ AGMCORE_black_plate{
+ /DataSource
+ DataSource Decode BitsPerComponent currentdict/MultipleDataSources known{MultipleDataSources}{false}ifelse
+ CSA get_csa_by_name 0 get/DeviceRGB eq{3}{1}ifelse/devicen_colorspace_dict AGMCORE_gget/TintTransform get
+ devn_alt_datasource
+ /MultipleDataSources false def
+ /Decode colorSpaceElemCnt[exch{0 1}repeat]def
+ currentdict imageormask_sys
+ }{
+ gsave
+ knockout_unitsq
+ grestore
+ currentdict consumeimagedata
+ }ifelse
+ }ifelse
+ }
+ {
+ /devicen_colorspace_dict AGMCORE_gget/names_index known{
+ Operator/imagemask ne{
+ MultipleDataSources{
+ /DataSource[DataSource devn_sep_datasource/exec cvx]cvx def
+ /MultipleDataSources false def
+ }{
+ /DataSource/DataSource load dstDataStr srcDataStrs 0 get filter_devn def
+ }ifelse
+ invert_image_samples
+ }if
+ currentdict imageormask_sys
+ }{
+ currentoverprint not Operator/imagemask eq and{
+ currentdict imageormask_sys
+ }{
+ currentoverprint not
+ {
+ gsave
+ knockout_unitsq
+ grestore
+ }if
+ currentdict consumeimagedata
+ }ifelse
+ }ifelse
+ }ifelse
+ }{
+ currentdict imageormask
+ }ifelse
+ }ifelse
+ cleartomark restore
+ }ifelse
+ currentdict/_Filters known{_Filters AGMIMG_flushfilters}if
+ end
+ end
+ end
+}def
+/imageormask_l2_overprint
+{
+ currentdict
+ currentcmykcolor add add add 0 eq{
+ currentdict consumeimagedata
+ }{
+ level3{
+ currentcmykcolor
+ /AGMIMG_k xdf
+ /AGMIMG_y xdf
+ /AGMIMG_m xdf
+ /AGMIMG_c xdf
+ Operator/imagemask eq{
+ [/DeviceN[
+ AGMIMG_c 0 ne{/Cyan}if
+ AGMIMG_m 0 ne{/Magenta}if
+ AGMIMG_y 0 ne{/Yellow}if
+ AGMIMG_k 0 ne{/Black}if
+ ]/DeviceCMYK{}]setcolorspace
+ AGMIMG_c 0 ne{AGMIMG_c}if
+ AGMIMG_m 0 ne{AGMIMG_m}if
+ AGMIMG_y 0 ne{AGMIMG_y}if
+ AGMIMG_k 0 ne{AGMIMG_k}if
+ setcolor
+ }{
+ /Decode[Decode 0 get 255 mul Decode 1 get 255 mul]def
+ [/Indexed
+ [
+ /DeviceN[
+ AGMIMG_c 0 ne{/Cyan}if
+ AGMIMG_m 0 ne{/Magenta}if
+ AGMIMG_y 0 ne{/Yellow}if
+ AGMIMG_k 0 ne{/Black}if
+ ]
+ /DeviceCMYK{
+ AGMIMG_k 0 eq{0}if
+ AGMIMG_y 0 eq{0 exch}if
+ AGMIMG_m 0 eq{0 3 1 roll}if
+ AGMIMG_c 0 eq{0 4 1 roll}if
+ }
+ ]
+ 255
+ {
+ 255 div
+ mark exch
+ dup dup dup
+ AGMIMG_k 0 ne{
+ /sep_tint AGMCORE_gget mul MappedCSA sep_proc_name exch pop load exec 4 1 roll pop pop pop
+ counttomark 1 roll
+ }{
+ pop
+ }ifelse
+ AGMIMG_y 0 ne{
+ /sep_tint AGMCORE_gget mul MappedCSA sep_proc_name exch pop load exec 4 2 roll pop pop pop
+ counttomark 1 roll
+ }{
+ pop
+ }ifelse
+ AGMIMG_m 0 ne{
+ /sep_tint AGMCORE_gget mul MappedCSA sep_proc_name exch pop load exec 4 3 roll pop pop pop
+ counttomark 1 roll
+ }{
+ pop
+ }ifelse
+ AGMIMG_c 0 ne{
+ /sep_tint AGMCORE_gget mul MappedCSA sep_proc_name exch pop load exec pop pop pop
+ counttomark 1 roll
+ }{
+ pop
+ }ifelse
+ counttomark 1 add -1 roll pop
+ }
+ ]setcolorspace
+ }ifelse
+ imageormask_sys
+ }{
+ write_image_file{
+ currentcmykcolor
+ 0 ne{
+ [/Separation/Black/DeviceGray{}]setcolorspace
+ gsave
+ /Black
+ [{1 exch sub/sep_tint AGMCORE_gget mul}/exec cvx MappedCSA sep_proc_name cvx exch pop{4 1 roll pop pop pop 1 exch sub}/exec cvx]
+ cvx modify_halftone_xfer
+ Operator currentdict read_image_file
+ grestore
+ }if
+ 0 ne{
+ [/Separation/Yellow/DeviceGray{}]setcolorspace
+ gsave
+ /Yellow
+ [{1 exch sub/sep_tint AGMCORE_gget mul}/exec cvx MappedCSA sep_proc_name cvx exch pop{4 2 roll pop pop pop 1 exch sub}/exec cvx]
+ cvx modify_halftone_xfer
+ Operator currentdict read_image_file
+ grestore
+ }if
+ 0 ne{
+ [/Separation/Magenta/DeviceGray{}]setcolorspace
+ gsave
+ /Magenta
+ [{1 exch sub/sep_tint AGMCORE_gget mul}/exec cvx MappedCSA sep_proc_name cvx exch pop{4 3 roll pop pop pop 1 exch sub}/exec cvx]
+ cvx modify_halftone_xfer
+ Operator currentdict read_image_file
+ grestore
+ }if
+ 0 ne{
+ [/Separation/Cyan/DeviceGray{}]setcolorspace
+ gsave
+ /Cyan
+ [{1 exch sub/sep_tint AGMCORE_gget mul}/exec cvx MappedCSA sep_proc_name cvx exch pop{pop pop pop 1 exch sub}/exec cvx]
+ cvx modify_halftone_xfer
+ Operator currentdict read_image_file
+ grestore
+ }if
+ close_image_file
+ }{
+ imageormask
+ }ifelse
+ }ifelse
+ }ifelse
+}def
+/indexed_imageormask
+{
+ begin
+ AGMIMG_init_common
+ save mark
+ currentdict
+ AGMCORE_host_sep{
+ Operator/knockout eq{
+ /indexed_colorspace_dict AGMCORE_gget dup/CSA known{
+ /CSA get get_csa_by_name
+ }{
+ /Names get
+ }ifelse
+ overprint_plate not{
+ knockout_unitsq
+ }if
+ }{
+ Indexed_DeviceN{
+ /devicen_colorspace_dict AGMCORE_gget dup/names_index known exch/Names get convert_to_process or{
+ indexed_image_lev2_sep
+ }{
+ currentoverprint not{
+ knockout_unitsq
+ }if
+ currentdict consumeimagedata
+ }ifelse
+ }{
+ AGMCORE_is_cmyk_sep{
+ Operator/imagemask eq{
+ imageormask_sys
+ }{
+ level2{
+ indexed_image_lev2_sep
+ }{
+ indexed_image_lev1_sep
+ }ifelse
+ }ifelse
+ }{
+ currentoverprint not{
+ knockout_unitsq
+ }if
+ currentdict consumeimagedata
+ }ifelse
+ }ifelse
+ }ifelse
+ }{
+ level2{
+ Indexed_DeviceN{
+ /indexed_colorspace_dict AGMCORE_gget begin
+ }{
+ /indexed_colorspace_dict AGMCORE_gget dup null ne
+ {
+ begin
+ currentdict/CSDBase known{CSDBase/CSD get_res/MappedCSA get}{CSA}ifelse
+ get_csa_by_name 0 get/DeviceCMYK eq ps_level 3 ge and ps_version 3015.007 lt and
+ AGMCORE_in_rip_sep and{
+ [/Indexed[/DeviceN[/Cyan/Magenta/Yellow/Black]/DeviceCMYK{}]HiVal Lookup]
+ setcolorspace
+ }if
+ end
+ }
+ {pop}ifelse
+ }ifelse
+ imageormask
+ Indexed_DeviceN{
+ end
+ }if
+ }{
+ Operator/imagemask eq{
+ imageormask
+ }{
+ indexed_imageormask_lev1
+ }ifelse
+ }ifelse
+ }ifelse
+ cleartomark restore
+ currentdict/_Filters known{_Filters AGMIMG_flushfilters}if
+ end
+}def
+/indexed_image_lev2_sep
+{
+ /indexed_colorspace_dict AGMCORE_gget begin
+ begin
+ Indexed_DeviceN not{
+ currentcolorspace
+ dup 1/DeviceGray put
+ dup 3
+ currentcolorspace 2 get 1 add string
+ 0 1 2 3 AGMCORE_get_ink_data 4 currentcolorspace 3 get length 1 sub
+ {
+ dup 4 idiv exch currentcolorspace 3 get exch get 255 exch sub 2 index 3 1 roll put
+ }for
+ put setcolorspace
+ }if
+ currentdict
+ Operator/imagemask eq{
+ AGMIMG_&imagemask
+ }{
+ use_mask{
+ process_mask AGMIMG_&image
+ }{
+ AGMIMG_&image
+ }ifelse
+ }ifelse
+ end end
+}def
+ /OPIimage
+ {
+ dup type/dicttype ne{
+ 10 dict begin
+ /DataSource xdf
+ /ImageMatrix xdf
+ /BitsPerComponent xdf
+ /Height xdf
+ /Width xdf
+ /ImageType 1 def
+ /Decode[0 1 def]
+ currentdict
+ end
+ }if
+ dup begin
+ /NComponents 1 cdndf
+ /MultipleDataSources false cdndf
+ /SkipImageProc{false}cdndf
+ /Decode[
+ 0
+ currentcolorspace 0 get/Indexed eq{
+ 2 BitsPerComponent exp 1 sub
+ }{
+ 1
+ }ifelse
+ ]cdndf
+ /Operator/image cdndf
+ end
+ /sep_colorspace_dict AGMCORE_gget null eq{
+ imageormask
+ }{
+ gsave
+ dup begin invert_image_samples end
+ sep_imageormask
+ grestore
+ }ifelse
+ }def
+/cachemask_level2
+{
+ 3 dict begin
+ /LZWEncode filter/WriteFilter xdf
+ /readBuffer 256 string def
+ /ReadFilter
+ currentfile
+ 0(%EndMask)/SubFileDecode filter
+ /ASCII85Decode filter
+ /RunLengthDecode filter
+ def
+ {
+ ReadFilter readBuffer readstring exch
+ WriteFilter exch writestring
+ not{exit}if
+ }loop
+ WriteFilter closefile
+ end
+}def
+/spot_alias
+{
+ /mapto_sep_imageormask
+ {
+ dup type/dicttype ne{
+ 12 dict begin
+ /ImageType 1 def
+ /DataSource xdf
+ /ImageMatrix xdf
+ /BitsPerComponent xdf
+ /Height xdf
+ /Width xdf
+ /MultipleDataSources false def
+ }{
+ begin
+ }ifelse
+ /Decode[/customcolor_tint AGMCORE_gget 0]def
+ /Operator/image def
+ /SkipImageProc{false}def
+ currentdict
+ end
+ sep_imageormask
+ }bdf
+ /customcolorimage
+ {
+ Adobe_AGM_Image/AGMIMG_colorAry xddf
+ /customcolor_tint AGMCORE_gget
+ <<
+ /Name AGMIMG_colorAry 4 get
+ /CSA[/DeviceCMYK]
+ /TintMethod/Subtractive
+ /TintProc null
+ /MappedCSA null
+ /NComponents 4
+ /Components[AGMIMG_colorAry aload pop pop]
+ >>
+ setsepcolorspace
+ mapto_sep_imageormask
+ }ndf
+ Adobe_AGM_Image/AGMIMG_&customcolorimage/customcolorimage load put
+ /customcolorimage
+ {
+ Adobe_AGM_Image/AGMIMG_override false put
+ current_spot_alias{dup 4 get map_alias}{false}ifelse
+ {
+ false set_spot_alias
+ /customcolor_tint AGMCORE_gget exch setsepcolorspace
+ pop
+ mapto_sep_imageormask
+ true set_spot_alias
+ }{
+ //Adobe_AGM_Image/AGMIMG_&customcolorimage get exec
+ }ifelse
+ }bdf
+}def
+/snap_to_device
+{
+ 6 dict begin
+ matrix currentmatrix
+ dup 0 get 0 eq 1 index 3 get 0 eq and
+ 1 index 1 get 0 eq 2 index 2 get 0 eq and or exch pop
+ {
+ 1 1 dtransform 0 gt exch 0 gt/AGMIMG_xSign? exch def/AGMIMG_ySign? exch def
+ 0 0 transform
+ AGMIMG_ySign?{floor 0.1 sub}{ceiling 0.1 add}ifelse exch
+ AGMIMG_xSign?{floor 0.1 sub}{ceiling 0.1 add}ifelse exch
+ itransform/AGMIMG_llY exch def/AGMIMG_llX exch def
+ 1 1 transform
+ AGMIMG_ySign?{ceiling 0.1 add}{floor 0.1 sub}ifelse exch
+ AGMIMG_xSign?{ceiling 0.1 add}{floor 0.1 sub}ifelse exch
+ itransform/AGMIMG_urY exch def/AGMIMG_urX exch def
+ [AGMIMG_urX AGMIMG_llX sub 0 0 AGMIMG_urY AGMIMG_llY sub AGMIMG_llX AGMIMG_llY]concat
+ }{
+ }ifelse
+ end
+}def
+level2 not{
+ /colorbuf
+ {
+ 0 1 2 index length 1 sub{
+ dup 2 index exch get
+ 255 exch sub
+ 2 index
+ 3 1 roll
+ put
+ }for
+ }def
+ /tint_image_to_color
+ {
+ begin
+ Width Height BitsPerComponent ImageMatrix
+ /DataSource load
+ end
+ Adobe_AGM_Image begin
+ /AGMIMG_mbuf 0 string def
+ /AGMIMG_ybuf 0 string def
+ /AGMIMG_kbuf 0 string def
+ {
+ colorbuf dup length AGMIMG_mbuf length ne
+ {
+ dup length dup dup
+ /AGMIMG_mbuf exch string def
+ /AGMIMG_ybuf exch string def
+ /AGMIMG_kbuf exch string def
+ }if
+ dup AGMIMG_mbuf copy AGMIMG_ybuf copy AGMIMG_kbuf copy pop
+ }
+ addprocs
+ {AGMIMG_mbuf}{AGMIMG_ybuf}{AGMIMG_kbuf}true 4 colorimage
+ end
+ }def
+ /sep_imageormask_lev1
+ {
+ begin
+ MappedCSA 0 get dup/DeviceRGB eq exch/DeviceCMYK eq or has_color not and{
+ {
+ 255 mul round cvi GrayLookup exch get
+ }currenttransfer addprocs settransfer
+ currentdict imageormask
+ }{
+ /sep_colorspace_dict AGMCORE_gget/Components known{
+ MappedCSA 0 get/DeviceCMYK eq{
+ Components aload pop
+ }{
+ 0 0 0 Components aload pop 1 exch sub
+ }ifelse
+ Adobe_AGM_Image/AGMIMG_k xddf
+ Adobe_AGM_Image/AGMIMG_y xddf
+ Adobe_AGM_Image/AGMIMG_m xddf
+ Adobe_AGM_Image/AGMIMG_c xddf
+ AGMIMG_y 0.0 eq AGMIMG_m 0.0 eq and AGMIMG_c 0.0 eq and{
+ {AGMIMG_k mul 1 exch sub}currenttransfer addprocs settransfer
+ currentdict imageormask
+ }{
+ currentcolortransfer
+ {AGMIMG_k mul 1 exch sub}exch addprocs 4 1 roll
+ {AGMIMG_y mul 1 exch sub}exch addprocs 4 1 roll
+ {AGMIMG_m mul 1 exch sub}exch addprocs 4 1 roll
+ {AGMIMG_c mul 1 exch sub}exch addprocs 4 1 roll
+ setcolortransfer
+ currentdict tint_image_to_color
+ }ifelse
+ }{
+ MappedCSA 0 get/DeviceGray eq{
+ {255 mul round cvi ColorLookup exch get 0 get}currenttransfer addprocs settransfer
+ currentdict imageormask
+ }{
+ MappedCSA 0 get/DeviceCMYK eq{
+ currentcolortransfer
+ {255 mul round cvi ColorLookup exch get 3 get 1 exch sub}exch addprocs 4 1 roll
+ {255 mul round cvi ColorLookup exch get 2 get 1 exch sub}exch addprocs 4 1 roll
+ {255 mul round cvi ColorLookup exch get 1 get 1 exch sub}exch addprocs 4 1 roll
+ {255 mul round cvi ColorLookup exch get 0 get 1 exch sub}exch addprocs 4 1 roll
+ setcolortransfer
+ currentdict tint_image_to_color
+ }{
+ currentcolortransfer
+ {pop 1}exch addprocs 4 1 roll
+ {255 mul round cvi ColorLookup exch get 2 get}exch addprocs 4 1 roll
+ {255 mul round cvi ColorLookup exch get 1 get}exch addprocs 4 1 roll
+ {255 mul round cvi ColorLookup exch get 0 get}exch addprocs 4 1 roll
+ setcolortransfer
+ currentdict tint_image_to_color
+ }ifelse
+ }ifelse
+ }ifelse
+ }ifelse
+ end
+ }def
+ /sep_image_lev1_sep
+ {
+ begin
+ /sep_colorspace_dict AGMCORE_gget/Components known{
+ Components aload pop
+ Adobe_AGM_Image/AGMIMG_k xddf
+ Adobe_AGM_Image/AGMIMG_y xddf
+ Adobe_AGM_Image/AGMIMG_m xddf
+ Adobe_AGM_Image/AGMIMG_c xddf
+ {AGMIMG_c mul 1 exch sub}
+ {AGMIMG_m mul 1 exch sub}
+ {AGMIMG_y mul 1 exch sub}
+ {AGMIMG_k mul 1 exch sub}
+ }{
+ {255 mul round cvi ColorLookup exch get 0 get 1 exch sub}
+ {255 mul round cvi ColorLookup exch get 1 get 1 exch sub}
+ {255 mul round cvi ColorLookup exch get 2 get 1 exch sub}
+ {255 mul round cvi ColorLookup exch get 3 get 1 exch sub}
+ }ifelse
+ AGMCORE_get_ink_data currenttransfer addprocs settransfer
+ currentdict imageormask_sys
+ end
+ }def
+ /indexed_imageormask_lev1
+ {
+ /indexed_colorspace_dict AGMCORE_gget begin
+ begin
+ currentdict
+ MappedCSA 0 get dup/DeviceRGB eq exch/DeviceCMYK eq or has_color not and{
+ {HiVal mul round cvi GrayLookup exch get HiVal div}currenttransfer addprocs settransfer
+ imageormask
+ }{
+ MappedCSA 0 get/DeviceGray eq{
+ {HiVal mul round cvi Lookup exch get HiVal div}currenttransfer addprocs settransfer
+ imageormask
+ }{
+ MappedCSA 0 get/DeviceCMYK eq{
+ currentcolortransfer
+ {4 mul HiVal mul round cvi 3 add Lookup exch get HiVal div 1 exch sub}exch addprocs 4 1 roll
+ {4 mul HiVal mul round cvi 2 add Lookup exch get HiVal div 1 exch sub}exch addprocs 4 1 roll
+ {4 mul HiVal mul round cvi 1 add Lookup exch get HiVal div 1 exch sub}exch addprocs 4 1 roll
+ {4 mul HiVal mul round cvi Lookup exch get HiVal div 1 exch sub}exch addprocs 4 1 roll
+ setcolortransfer
+ tint_image_to_color
+ }{
+ currentcolortransfer
+ {pop 1}exch addprocs 4 1 roll
+ {3 mul HiVal mul round cvi 2 add Lookup exch get HiVal div}exch addprocs 4 1 roll
+ {3 mul HiVal mul round cvi 1 add Lookup exch get HiVal div}exch addprocs 4 1 roll
+ {3 mul HiVal mul round cvi Lookup exch get HiVal div}exch addprocs 4 1 roll
+ setcolortransfer
+ tint_image_to_color
+ }ifelse
+ }ifelse
+ }ifelse
+ end end
+ }def
+ /indexed_image_lev1_sep
+ {
+ /indexed_colorspace_dict AGMCORE_gget begin
+ begin
+ {4 mul HiVal mul round cvi Lookup exch get HiVal div 1 exch sub}
+ {4 mul HiVal mul round cvi 1 add Lookup exch get HiVal div 1 exch sub}
+ {4 mul HiVal mul round cvi 2 add Lookup exch get HiVal div 1 exch sub}
+ {4 mul HiVal mul round cvi 3 add Lookup exch get HiVal div 1 exch sub}
+ AGMCORE_get_ink_data currenttransfer addprocs settransfer
+ currentdict imageormask_sys
+ end end
+ }def
+}if
+end
+systemdict/setpacking known
+{setpacking}if
+%%EndResource
+currentdict Adobe_AGM_Utils eq {end} if
+%%EndProlog
+%%BeginSetup
+Adobe_AGM_Utils begin
+2 2010 Adobe_AGM_Core/ds gx
+Adobe_CoolType_Core/ds get exec
+Adobe_AGM_Image/ds gx
+[/NamespacePush pdfmark_5
+[/_objdef {Doc_Metadata} /type /stream /OBJ pdfmark_5
+[{Doc_Metadata} 1281 (% &end XMP packet& %) ReadBypdfmark_5_string
+<?xpacket begin='' id='W5M0MpCehiHzreSzNTczkc9d'?>
+<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.2-c001 63.139439, 2010/09/27-13:37:26 ">
+ <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+ <rdf:Description rdf:about=""
+ xmlns:xmp="http://ns.adobe.com/xap/1.0/"
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/"
+ xmlns:pdf="http://ns.adobe.com/pdf/1.3/"
+ xmp:ModifyDate="2011-04-08T15:21:07-05:00"
+ xmp:CreateDate="2011-04-08T15:21:07-05:00"
+ xmp:MetadataDate="2011-04-08T15:21:07-05:00"
+ xmp:CreatorTool="DVIPSONE 2.3.4.149 http://www.YandY.com"
+ dc:format="application/pdf"
+ xmpMM:DocumentID="uuid:4672a2a6-f2a2-46c1-a618-bae4e40b5b67"
+ xmpMM:InstanceID="uuid:840d3c6d-0825-497a-9944-212dd7f55635"
+ pdf:Producer="Acrobat Distiller 10.0.1 (Windows)">
+ <dc:title>
+ <rdf:Alt>
+ <rdf:li xml:lang="x-default">test03</rdf:li>
+ </rdf:Alt>
+ </dc:title>
+ <dc:description>
+ <rdf:Alt>
+ <rdf:li xml:lang="x-default">TeX output 2011.04.08:1517</rdf:li>
+ </rdf:Alt>
+ </dc:description>
+ <dc:creator>
+ <rdf:Seq>
+ <rdf:li>Donald Story (Complimentary Copy) 4662 2009-10-23 13:17:17</rdf:li>
+ </rdf:Seq>
+ </dc:creator>
+ </rdf:Description>
+ </rdf:RDF>
+</x:xmpmeta>
@@ -7988,1171 +7988,1171 @@ Adobe_AGM_Image/ds gx
-<?xpacket end='w'?>
-
-
-% &end XMP packet& %
-
-[{Doc_Metadata} 2 dict begin /Type /Metadata def /Subtype /XML def currentdict end /PUT pdfmark_5
-[/Document 1 dict begin /Metadata {Doc_Metadata} def currentdict end /BDC pdfmark_5
-[/NamespacePop pdfmark_5
-currentdict Adobe_AGM_Utils eq {end} if
-%%EndSetup
-%%Page: 1 1
-%%EndPageComments
-%%BeginPageSetup
-Adobe_AGM_Utils begin
-Adobe_AGM_Core/ps gx
-Adobe_AGM_Core/capture_mysetup gx
-Adobe_AGM_Utils/capture_cpd gx
-Adobe_CoolType_Core/ps get exec
-Adobe_AGM_Image/ps gx
-%%EndPageSetup
-1 -1 scale 0 -194.951 translate
-pgsv
-[1 0 0 1 0 0 ]ct
-gsave
-np
-gsave
--7.62939e-6 0 mo
--7.62939e-6 194.951 li
-256.793 194.951 li
-256.793 0 li
-cp
-clp
-false sop
-/0
-<<
-/Name (Black)
-/0
-[/DeviceCMYK] /CSA add_res
-/CSA /0 get_csa_by_name
-/MappedCSA /0 /CSA get_res
-/TintMethod /Subtractive
-/TintProc null
-/NComponents 4
-/Components [ 0 0 0 1 ]
->>
-/CSD add_res
-1 /0 /CSD get_res sepcs
-1 sep
-%ADOBeginSubsetFont: GLAAAA+CMR10 Initial
-%ADOt1write: (1.0.24)
-%%Copyright: Copyright 2011 Adobe System Incorporated. All rights reserved.
-13 dict dup begin
-/FontType 1 def
-/FontName /GLAAAA+CMR10 def
-/FontInfo 8 dict dup begin
-/Notice (Copyright (c) 1988 - 1994 Blue Sky Research and Y&Y, Inc. http://www.YandY.com) def
-/Weight (Medium) def
-/ItalicAngle 0 def
-/BaseFontName (CMR10) def
-/WasEmbedded true def
-end def
-/PaintType 0 def
-/FontMatrix [0.001 0 0 0.001 0 0] def
-/Encoding 256 array
-0 1 255 {1 index exch /.notdef put} for
-dup 47 /slash put
-dup 48 /zero put
-dup 49 /one put
-dup 51 /three put
-dup 53 /five put
-dup 65 /A put
-dup 67 /C put
-dup 73 /I put
-dup 76 /L put
-dup 77 /M put
-dup 78 /N put
-dup 79 /O put
-dup 80 /P put
-dup 83 /S put
-dup 84 /T put
-dup 85 /U put
-dup 97 /a put
-dup 101 /e put
-dup 102 /f put
-dup 103 /g put
-dup 111 /o put
-dup 123 /endash put
-def
-/UniqueID 5000793 def
-/FontBBox {-40 -250 1009 969} def
-end
-systemdict begin
-dup /Private
-13 dict dup begin
-/|- {def} def
-/| {put} def
-/BlueValues [-22 -0 683 705 431 448 666 677] def
-/OtherBlues [-206 -194] def
-/BlueScale 0.04379 def
-/StdHW [31] def
-/StdVW [69] def
-/StemSnapH [22 31] def
-/StemSnapV [69 89] def
-/password 5839 def
-/MinFeature {16 16} def
-/OtherSubrs[{}{}{}{systemdict/internaldict known not{pop 3}{1183615869
-systemdict/internaldict get exec dup/startlock known{/startlock get exec}{dup
-/strtlck known{/strtlck get exec}{pop 3}ifelse}ifelse}ifelse}executeonly]def
-/Subrs 5 array
-dup 0 <1C60D8A8CC31FE2BF6E07AA3E541E2> |
-dup 1 <1C60D8A8C9C3D06D9E> |
-dup 2 <1C60D8A8C9C202D79A> |
-dup 3 <1C60D8A849> |
-dup 4 <1C60D8A8CC3674F41144B13B77> |
-def
-put
-dup /CharStrings
-23 dict dup begin
-/slash <1C60D8A8C9B7A73DB56225352A24C6E389DE2B55CA06CAB1D904D74F
-E21B6520E910DE6837DBFFB95567192F781E541A03B8446689265DEAE7140ED2
-3D1C3943714CDFC12315> |-
-/zero <1C60D8A8C9B7A73D3B2D32309B1F5D5A32FC3614834F8BC61B6EB92C1
-2484BD76628737DA40CF9DA1C97CCDAFB1D1B732C642F74A7C41B7D3AC6DAF8D
-1E760692B6EBD2417EF1893A4AA0B1CF049D4C54D830CEC073A9153D451FAD42
-892B0930AEE4FE18588336BFDAD60D8A4F4CFFED76F103FB9BBD8A33EFBA3F18
-232B88D88FE54E17260FA3E2CC29DEC0CB72B88DC816FF5> |-
-/one <1C60D8A8C9B7A73DC579B9CE13A4EA8C203AFC890ABD6F58341B006CF1
-BDD8FED3A7238E01F751FEAC75885229C293891E5636AD630D9C884528B6FEF0
-0728A740ED77D054B4743ECA5E3947520FEF6B23D548765D11> |-
-/three <1C60D8A8C9B7A73D3B2B97DEB4C7BDB68E0D63865C8BF294429AD1BA
-AE59A25299F9306A9E28AA5C0C0AF9F97F56096DB0FD0EC440ACCE834B0BA539
-2FD94D026768A961AA5D1A88FAE30F2B2033E77AFAB55B0B9C8092CD226DD9EF
-EEAAF5CD5AE79D6DDEC4C37DC43DE3B85DD2A2EC4DC0C9F349D5E8F9F615782E
-DC8C53805553FD3C0007C1818BF3D99AB659A079ED36132BBDC613CA63D7A0FE
-429706DBC6BA998CE56A89C002758EF37F90A390F83B3DFE49D312FA66FDF2F1
-6212D1503559B35FC2DB8BD5A49535> |-
-/five <1C60D8A8C9B7A73D3B2B97F19D54A2E00E7DDA8E72064220CB7581D13
-CEDF071F346430E40993A6297E3A2A6D6093205222D977AC7F7B65CC82B221D9
-B18ADEA5D4AF0261ABF060D3E283C7B3B5EB39FF499721FD51203AE59E3BEA25
-7DFD3E472FEF67221488EC8D1F355E2FAD057CA44A8B4BAD6C6C719C164907CB
-F9A6CC770DB0C7E58A37D2385E23F576BCFF94FFBFD8ADD4C5E6C32CD83ACEB7
-7472D00FE1A4DC66393A99AC6BBD252B04C98B710149EA42B66ACE89D4FC4393
-F3A09165DF477ABCB0E8A8DB21E4278CA219EBCC9B067F92619913BDBD1EF3C9
-A> |-
-/A <1C60D8A8C9B08A9501CDAE1251A61DF6E2312CA41635F6CE1D00B63E171C
-70F84D42F62A21A6DD37D84C279E3FAE908D39B730ACD671ED9E277ACFE833A1
-1F48F076C9803DC08258033731BCBCE19DF3B81C1C298B382A15FAC94387A992
-AD9631716A7ED4F711137D6C851AE1C8DCBBFBCF7274E882226E58958CE6283A
-197E7FAE3A2D0F6C24FA411BECFB36A10FF2A923EA89ABEFAD5AB23D600F> |-
-/C <1C60D8A8C9B08A9454CA4C75C5C983901A105955FD02AB95A1C2D2A205D6
-C9A19566388580DAF81E45849DB37660797B67B5A88B6906602915C5F5C9B0EC
-D18BF9F52BC4BC58CA3DC88745B8BAABAD3D92E461BFB415E7240305CDDA1D0D
-B5D35FEBC75FFD4C053E78B6CA772ACEB0C2FF98C08B672F492F305E0C5F3841
-918729B4AEB78A65C2A83364408240D8D653DA56F4DCB028D3D78F3C2D6BC7> |-
-/I <1C60D8A8C9B08A9591900960B3FA4612DFF926AB21A530E1912F33677612
-AC06B324D812E42049FF4946BE5E0FFA24FA0C62F2839FF2110EEC7EE0A42476
-46E6F699D4C8BECE1825B3A661611E4D55F40F2E64FACB836D4D0C9780F60650
-FBF10E0D42> |-
-/L <1C60D8A8C9B08A9504870DC577BFF1117CB147078FC0444648398262998D
-8061E386D366188391878ADBE16C10A3B1BC6A93F56BD64AE45F8370470F419D
-A43CBACE3D7B1152502CD0CF1468D72D3CB197A29E71D336CDA7D6BAA426EC1B
-681825BDDC37329099DC579F155C> |-
-/M <1C60D8A8C9B08A94284A0D047609A407E661A852E250B140B4157477FB2A
-AE2E22210B2D780B692B0718211E5BD86C3DCF8087849BEE2B9F6D1D8621E40C
-8FBE892AC1B23002BF18819E26C6741335DF8DA8AC82506D7051C0505D48DDFA
-17EE84A06E07C05EBAC6174D600BACE071866247BE6C83F4CF28F6D6EE6A6CF8
-A788C4FFFDBDCA978C2B0B201753D21CB7AF0542C690ECE8E7EDBE1B1FB29939
-734E35E0ECCA8BA7FAEB58AC205A8A82A94C960A65> |-
-/N <1C60D8A8C9B08A9501CDAE1251A61DF6E23FBE9059A2A88492E84D61402E
-80BD80B5057FF8914FA4679EB3900C60B246DA77BF837041B1C053FCD543E3D1
-D259FCE953A74E40366D604A99F9233772AC97F872D505329B1446640ABD99E4
-AC723C39DD6EA376A043CE3633F04D9BC6DEFE2E1A831DBB9C16F90A966DFA0F
-3802BB1EB0AA3DAEB0E864B9D3CC3E14AE1E9219B48660289CF348B4E280> |-
-/O <1C60D8A8C9B08A946182837629000F56F09862ED5AA400F2B4EB929FCD0B
-6F40CAF45238A67BE496742823610F15AF19832E8EC09C64557C48DB0BC41E07
-C1B98081893CB2216BAE4CCECC72A02E2F6B8D0FE8B2E6548D00AAA585F02486
-772A4FC1258C2982A5ECEC> |-
-/P <1C60D8A8C9B08A94478101EE5603CAF9EA65868978F157B7D9DB71203FAD
-46B85DF1A1E477012038D20B3756C0124AD7E2F6ACCB98150AB793091E3E7A8F
-3C0AE6FC8D7A5031BB678671889D46F3A15BD495F1AB5B7C8F63325E15B44523
-174D09593A38714FEB5177883F725186FE6BF7095A24CD9EDEFA3551580A0E2B
-0B49AC2002> |-
-/S <1C60D8A8C9B08A95C5897169EED99899F86A6DCF3CD291B001131D3BCB45
-BF71748507542417352D5B30F63C60EB90DCF55005F88E95175B21D3219CD9E9
-2E89E417B177D285600845553F66626D2225552D23A7697637BDCEEECAEA18AB
-42A896E96FF5B3536CC368A5F7504B6C75D962A4B5F9534F79AC78DC99848461
-42257A40DE257430C92806EBA73FF7D93DF0A6C207299E2D17F4071F9096D016
-163F4D3EC1889ADA266D3682F2D99904573A5022A10E61069737F2D55F919F95
-A33DB6DD2667321E4727855B58DBF4B1E5A294928E6CEABFBD34F296C1B758> |-
-/T <1C60D8A8C9B08A9454CA4C75C5C97DCE7AB32777FAAECD12647866E7CB3F
-CCDC541E37F2225E520DEDE695980D4012AD5B972BDABC7E7E5410E71AC63692
-4E778B3131B6C4D1E76F8C4592AC311A2107F53DC1850538C9E487E6D5DBDFE8
-027D7126BA9ED8B24E7379B57E474ACD298BF6B3700CC970D80111DD98EFC872
-C24D0DA3C75DDDFD177C6D15> |-
-/U <1C60D8A8C9B08A9501CDAE1251A6E3AF1199B24D30F25809B39A0DD6474A
-CF1BFDB89F5985BBB0F2E5FE7296314FDA462BECDBDEA31B3750001975D37A8B
-F31F224CAB5093B8997B856DAE5F9007E1497BEED45CA8AC033A65F773653762
-77BFCDF39A2D8F1BC8E5626BEEEF5D670E87E32F25C0530E88A4E2B9AD6D8333
-3A6C173F8B22714E74A224AD610C2B1EAB> |-
-/a <1C60D8A8C9B7A73DCB03313BCF7AD8C8EE234E5372D46A65E92A78F4B7E0
-2ECC58F71EE6C027AD4D56C5E4DE1AF1031295DC17C0E7AC8D8358634F9A19B0
-2A110E5539C10136C68E0D2CBEA6658A501D9D73323861F8C29EB92F9080ACC3
-E236C5F14389534682EC2925F59CD4A215569A7BD7B9F7827A30BA75EB840535
-B2A2C8F92AD166CE93D277314A4C690C47DB847F73BFE1049631CDDB9124FD76
-2753AA8DB187C216AFB74F76299B3C51610D74CF31321BBFEB5CFCA7D213C896
-D1B8E57EFC05695F2F73> |-
-/e <1C60D8A8C9B08A95B1F07368C45D8D2AF4BC97E4CB216B20786BB8409E5C
-B0892E60E7F0AD9AC8433678C58AAD59736BF9700A3AEB0B5352F4A898A5EEFB
-C72A64BFB45B917D9879BD0577DAB96A0E86BECAB5E8A8A051E5E40886D5A00C
-EC53E0A3265FC74195574846689BF9F38086985C2DD3223390D51155F707CE86
-59EC1C65A75BE9A0BA862DB1A00FF6A01FCED7E6> |-
-/f <1C60D8A8C9B08A956BA65798425CE9B0A78F07A04AF2F8524751F181F94C
-EF756ACD6AB92BD09462A05FB08A9160A0AB5267B62445F916DEFC1DAF3F1FB4
-B3761F71CBE3290960500C788D04CB45BB0A2825753AA6E46495F35A08389AAA
-C80F35ADADFB7ACE340FEC03C9E5F9A50A8AD731E7A553A32F387574697F9CAB
-2E100B6DD6E3525398F6> |-
-/g <1C60D8A8C9B7A73DB58EA28807584EB19BC6EA1448A12312E623B90358A1
-63CFC67672A34CC74B0AEAADF24229DF1CCAA1488AE3E348FE2ACD572EA487EC
-9D77FBB0710AB421B03DD5B8AE5519B5C269E9648E819E7ECE806EEF16A6618D
-07D9AAB350E57F26F5259E8FCF9E5C2D96BBEAD16502F9E7819E854042DDB2BC
-674C39681CC2E5224219582BC7B59BBAEF869C9DF91CA7770A97BAD53C3C3A99
-175BA8F0A5744B5969D3BC15831A95918F7C707E41F5D87B8DB2D57378BC9C29
-7DAE69E4BF438246E63F565B22D86CBE28DEF748262FB9FF82A88935451D6280
-A28F1AD964E6E476D5779321E42D3A86BE41122F1BED36C3DC47E1E01C225345
-98D0431873197ABE1C8EC03B4011E4B26D249635BDBABB8E5B69BE07AFA65F88
-EAF6> |-
-/o <1C60D8A8C9B7A73DCEB07E09D16841D605E4F67059E6B258F546B80703E4
-CDAF20027B900118209D5372F965F2045D50C02A29110A048C891DEBA3210CDF
-C5CDE2309C0CDE0E4855E9F6D8954C4C68826A14AD2E4C6227A036D85D304D6A
-96FEAA92DEC3CD1B9F4AD57B5F1EBAB070FE911461A7D5B958F5> |-
-/endash <1C60D8A8C9B7A73DB9B60A0DBA4B5FB3A045D6B65F12EE5E3DC48D3
-43D8E> |-
-/.notdef <1C60D8A8C9B08A959E2F69652E8B8F> |-
-end put
-end
-dup /FontName get exch definefont pop
-end
-%ADOEndSubsetFont
-/YNDRLJ+CMR10 /GLAAAA+CMR10 findfont ct_VMDictPut
-/YNDRLJ+CMR10*1
-[47{/.notdef}rp /slash /zero /one /.notdef /three /.notdef /five
-11{/.notdef}rp /A /.notdef /C 5{/.notdef}rp /I 2{/.notdef}rp /L
-/M /N /O /P 2{/.notdef}rp /S /T /U
-11{/.notdef}rp /a 3{/.notdef}rp /e /f /g 7{/.notdef}rp /o
-11{/.notdef}rp /endash 132{/.notdef}rp]
-YNDRLJ+CMR10 nf
-YNDRLJ+CMR10*1 [9.9626 0 0 -9.9626 0 0 ]msf
--31.697 -36.8879 mo
-(MAC1105/T3{Page5of10{SOLUTIONS)
-[9.13578 7.19498 7.193 4.9813 4.9813 4.9813 4.98129 4.98131 7.19299 92.4629 8.30183 6.50756
-4.98131 4.98129 7.74393 8.30185 4.98129 6.36908 4.98129 8.30182 195.931 5.53922 7.75089 6.22662
-7.47195 7.19296 3.59644 7.75098 7.47192 0 ]xsh
-%ADOBeginSubsetFont: GISAAA+CMBX10 Initial
-%ADOt1write: (1.0.24)
-%%Copyright: Copyright 2011 Adobe System Incorporated. All rights reserved.
-13 dict dup begin
-/FontType 1 def
-/FontName /GISAAA+CMBX10 def
-/FontInfo 8 dict dup begin
-/Notice (Copyright (c) 1988 - 1994 Blue Sky Research and Y&Y, Inc. http://www.YandY.com) def
-/Weight (Bold) def
-/ItalicAngle 0 def
-/BaseFontName (CMBX10) def
-/WasEmbedded true def
-end def
-/PaintType 0 def
-/FontMatrix [0.001 0 0 0.001 0 0] def
-/Encoding 256 array
-0 1 255 {1 index exch /.notdef put} for
-dup 46 /period put
-dup 56 /eight put
-def
-/UniqueID 5000768 def
-/FontBBox {-301 -250 1164 946} def
-end
-systemdict begin
-dup /Private
-14 dict dup begin
-/|- {def} def
-/| {put} def
-/BlueValues [-11 -0 686 697 444 453 655 676] def
-/OtherBlues [-201 -194] def
-/BlueScale 0.04379 def
-/StdHW [47] def
-/StdVW [114] def
-/StemSnapH [40 47] def
-/StemSnapV [114 142] def
-/ForceBold true def
-/password 5839 def
-/MinFeature {16 16} def
-/OtherSubrs[{}{}{}{systemdict/internaldict known not{pop 3}{1183615869
-systemdict/internaldict get exec dup/startlock known{/startlock get exec}{dup
-/strtlck known{/strtlck get exec}{pop 3}ifelse}ifelse}ifelse}executeonly]def
-/Subrs 5 array
-dup 0 <1C60D8A8CC31FE2BF6E07AA3E541E2> |
-dup 1 <1C60D8A8C9C3D06D9E> |
-dup 2 <1C60D8A8C9C202D79A> |
-dup 3 <1C60D8A849> |
-dup 4 <1C60D8A8CC3674F41144B13B77> |
-def
-put
-dup /CharStrings
-3 dict dup begin
-/period <1C60D8A8C9B08A9560D4C2F3A74D92838E83B7DC14B89478B799496
-0CFDC6D2144A34A20CA36052335682902BE7739DD> |-
-/eight <1C60D8A8C9B7FCB6A4EC6CCC71FFBC41969F86A86636A65E5BD14FD4
-EBD93FCE205F86ECC615335CAFE8E2240019DB970894F9979E3FDF252D8A9472
-1B680E23D2DF204A99891D5AD0E347695938A6FCE4923A098978EC0AC2A3894C
-8A94767FEBA61293F9C489BAC7A89726BFA765D56F2D198E99D500D81046ACE1
-5301FD9FB36D2F2E4EAA017CCF306EAEC8E157B40FDE6DC2FA713180A587E730
-6AD0870F441697503D> |-
-/.notdef <1C60D8A8C9B08A95899606B6B060A7> |-
-end put
-end
-dup /FontName get exch definefont pop
-end
-%ADOEndSubsetFont
-/YNDRLK+CMBX10 /GISAAA+CMBX10 findfont ct_VMDictPut
-/YNDRLK+CMBX10*1
-[46{/.notdef}rp /period 9{/.notdef}rp /eight 199{/.notdef}rp]
-YNDRLK+CMBX10 nf
-YNDRLK+CMBX10*1 [9.9626 0 0 -9.9626 0 0 ]msf
--25.9685 -7.00012 mo
-(8.)
-[5.72846 0 ]xsh
-249.382 99.488 mo
-253.706 97.944 li
-249.382 96.4 li
-251.112 97.944 li
-f
-gsave
-253.705 187.944 mo
-1.70499 187.944 li
-1.70499 7.94397 li
-253.705 7.94397 li
-cp
-clp
-.797 lw
-0 lc
-0 lj
-10 ml
-[] 0 dsh
-false sadj
-1.70499 97.944 mo
-251.111 97.944 li
-@
-grestore
-.399 lw
-0 lc
-0 lj
-10 ml
-[] 0 dsh
-false sadj
-127.705 101.929 mo
-127.705 93.959 li
-@
-155.705 101.929 mo
-155.705 93.959 li
-@
-183.705 101.929 mo
-183.705 93.959 li
-@
-211.705 101.929 mo
-211.705 93.959 li
-@
-239.705 101.929 mo
-239.705 93.959 li
-@
-127.705 101.929 mo
-127.705 93.959 li
-@
-99.705 101.929 mo
-99.705 93.959 li
-@
-71.705 101.929 mo
-71.705 93.959 li
-@
-43.705 101.929 mo
-43.705 93.959 li
-@
-15.705 101.929 mo
-15.705 93.959 li
-@
-129.25 12.268 mo
-127.706 7.94403 li
-126.162 12.268 li
-127.706 10.5391 li
-f
-.797 lw
-127.705 187.944 mo
-127.705 10.538 li
-@
-.399 lw
-123.72 97.944 mo
-131.69 97.944 li
-@
-123.72 77.944 mo
-131.69 77.944 li
-@
-123.72 57.944 mo
-131.69 57.944 li
-@
-123.72 37.944 mo
-131.69 37.944 li
-@
-123.72 17.944 mo
-131.69 17.944 li
-@
-123.72 97.944 mo
-131.69 97.944 li
-@
-123.72 117.944 mo
-131.69 117.944 li
-@
-123.72 137.944 mo
-131.69 137.944 li
-@
-123.72 157.944 mo
-131.69 157.944 li
-@
-123.72 177.944 mo
-131.69 177.944 li
-@
-%ADOBeginSubsetFont: GLAAAA+CMR10 AddGlyphs
-%ADOt1write: (1.0.24)
-%%Copyright: Copyright 2011 Adobe System Incorporated. All rights reserved.
-systemdict begin
-YNDRLJ+CMR10 dup
-/Private get dup rcheck
-{begin true}{pop false}ifelse exch
-/CharStrings get begin
-systemdict /gcheck known {currentglobal currentdict gcheck setglobal} if
-/two <1C60D8A8C9B7A73DC50B0411757B441481CCF7EF812EEB9B3F6A07BD51
-606BCA866C4BD24CA34E86B9CA5A529B664F3EEDB6B4AF8A2B994DB57B49473E
-162231CB943675FE63E9B92B8AEBB62FB22456EC4173C66EF6C2F34FFEC22ACA
-E77FFFAAD70F3754CADC0D2CF63CB6D286D930AEA5A613E5AB9CB004BEAEBADD
-D070EDAF4FF25FDB6421F540D58D2C7A3FC40290CBCF831BE1B89B7F> |-
-/four <1C60D8A8C9B7A73DC579B9C1587087D4749982A674065FCDD01CF53F5
-4AF89DAF22339F0A467CE8D8CC25949B03A9DEFE86592098644AED5891ABD8D0
-71237FB9B66EF7648D767508B0BB1075A0AC676C770BFE6D0E818B53FD7884E4
-D8E6A983234A6E833EF72FF7FE587> |-
-systemdict /gcheck known {setglobal} if end {end} if
-end
-YNDRLJ+CMR10 /Encoding get
-dup 50 /two put
-dup 52 /four put
-pop
-%ADOEndSubsetFont
-/YNDRLJ+CMR10*1
-[47{/.notdef}rp /slash /zero /one /two /three /four /five
-11{/.notdef}rp /A /.notdef /C 5{/.notdef}rp /I 2{/.notdef}rp /L
-/M /N /O /P 2{/.notdef}rp /S /T /U
-11{/.notdef}rp /a 3{/.notdef}rp /e /f /g 7{/.notdef}rp /o
-11{/.notdef}rp /endash 132{/.notdef}rp]
-YNDRLJ+CMR10 nf
-YNDRLJ+CMR10*1 [9.9626 0 0 -9.9626 0 0 ]msf
-113.758 81.1542 mo
-(1)sh
-113.758 61.1542 mo
-(2)sh
-113.758 41.1543 mo
-(3)sh
-113.758 21.1544 mo
-(4)sh
-%ADOBeginSubsetFont: BUZAAA+CMSY10 Initial
-%ADOt1write: (1.0.24)
-%%Copyright: Copyright 2011 Adobe System Incorporated. All rights reserved.
-13 dict dup begin
-/FontType 1 def
-/FontName /BUZAAA+CMSY10 def
-/FontInfo 8 dict dup begin
-/Notice (Copyright (c) 1996 Y&Y, Inc. All Right Reserved. http://www.YandY.com) def
-/Weight (Medium) def
-/ItalicAngle -14.035 def
-/BaseFontName (CMSY10) def
-/WasEmbedded true def
-end def
-/PaintType 0 def
-/FontMatrix [0.001 0 0 0.001 0 0] def
-/Encoding 256 array
-0 1 255 {1 index exch /.notdef put} for
-dup 161 /minus put
-def
-/UniqueID 5096651 def
-/FontBBox {-29 -960 1116 775} def
-end
-systemdict begin
-dup /Private
-13 dict dup begin
-/|- {def} def
-/| {put} def
-/BlueValues [-24 -0 683 705] def
-/OtherBlues [-135 -124] def
-/BlueScale 0.04379 def
-/StdHW [40] def
-/StdVW [40] def
-/StemSnapH [40 56] def
-/StemSnapV [40 56] def
-/password 5839 def
-/MinFeature {16 16} def
-/OtherSubrs[{}{}{}{systemdict/internaldict known not{pop 3}{1183615869
-systemdict/internaldict get exec dup/startlock known{/startlock get exec}{dup
-/strtlck known{/strtlck get exec}{pop 3}ifelse}ifelse}ifelse}executeonly]def
-/Subrs 5 array
-dup 0 <1C60D8A8CC31FE2BF6E07AA3E541E2> |
-dup 1 <1C60D8A8C9C3D06D9E> |
-dup 2 <1C60D8A8C9C202D79A> |
-dup 3 <1C60D8A849> |
-dup 4 <1C60D8A8CC3674F41144B13B77> |
-def
-put
-dup /CharStrings
-2 dict dup begin
-/minus <1C60D8A8C9B08A946182837629008DF7702985522C1BEB4D11AB8A6B
-5589D8B615C840A4D8FD35DE7CD09D4C55DA8FE732830DDE> |-
-/.notdef <1C60D8A8C9B08A959E2F69652E8B8F> |-
-end put
-end
-dup /FontName get exch definefont pop
-end
-%ADOEndSubsetFont
-/YNDRLL+CMSY10 /BUZAAA+CMSY10 findfont ct_VMDictPut
-/YNDRLL+CMSY10*1
-[161{/.notdef}rp /minus 94{/.notdef}rp]
-YNDRLL+CMSY10 nf
-YNDRLL+CMSY10*1 [9.9626 0 0 -9.9626 0 0 ]msf
-106.009 120.739 mo
-(\241)sh
-YNDRLJ+CMR10*1 [9.9626 0 0 -9.9626 0 0 ]msf
-113.758 120.739 mo
-(1)sh
-YNDRLL+CMSY10*1 [9.9626 0 0 -9.9626 0 0 ]msf
-106.009 140.738 mo
-(\241)sh
-YNDRLJ+CMR10*1 [9.9626 0 0 -9.9626 0 0 ]msf
-113.758 140.738 mo
-(2)sh
-YNDRLL+CMSY10*1 [9.9626 0 0 -9.9626 0 0 ]msf
-106.009 160.738 mo
-(\241)sh
-YNDRLJ+CMR10*1 [9.9626 0 0 -9.9626 0 0 ]msf
-113.758 160.738 mo
-(3)sh
-YNDRLL+CMSY10*1 [9.9626 0 0 -9.9626 0 0 ]msf
-106.009 180.738 mo
-(\241)sh
-YNDRLJ+CMR10*1 [9.9626 0 0 -9.9626 0 0 ]msf
-113.758 180.738 mo
-(4)sh
-153.215 113.33 mo
-(1234)
-[27.9999 27.9999 27.9999 0 ]xsh
-YNDRLL+CMSY10*1 [9.9626 0 0 -9.9626 0 0 ]msf
-93.3403 113.33 mo
-(\241)sh
-YNDRLJ+CMR10*1 [9.9626 0 0 -9.9626 0 0 ]msf
-101.089 113.33 mo
-(1)sh
-YNDRLL+CMSY10*1 [9.9626 0 0 -9.9626 0 0 ]msf
-65.3404 113.33 mo
-(\241)sh
-YNDRLJ+CMR10*1 [9.9626 0 0 -9.9626 0 0 ]msf
-73.0894 113.33 mo
-(2)sh
-YNDRLL+CMSY10*1 [9.9626 0 0 -9.9626 0 0 ]msf
-37.3406 113.33 mo
-(\241)sh
-YNDRLJ+CMR10*1 [9.9626 0 0 -9.9626 0 0 ]msf
-45.0895 113.33 mo
-(3)sh
-YNDRLL+CMSY10*1 [9.9626 0 0 -9.9626 0 0 ]msf
-9.34069 113.33 mo
-(\241)sh
-YNDRLJ+CMR10*1 [9.9626 0 0 -9.9626 0 0 ]msf
-17.0896 113.33 mo
-(4)sh
-.797 lw
-1 lc
-[0 2 ] 1 dsh
-true sadj
-15.705 178.944 mo
-15.705 16.944 li
-43.705 178.944 mo
-43.705 16.944 li
-71.705 178.944 mo
-71.705 16.944 li
-99.705 178.944 mo
-99.705 16.944 li
-127.705 178.944 mo
-127.705 16.944 li
-155.705 178.944 mo
-155.705 16.944 li
-183.705 178.944 mo
-183.705 16.944 li
-211.705 178.944 mo
-211.705 16.944 li
-239.705 178.944 mo
-239.705 16.944 li
-@
-[0 2.8 ] 1.4 dsh
-14.305 177.944 mo
-241.105 177.944 li
-14.305 157.944 mo
-241.105 157.944 li
-14.305 137.944 mo
-241.105 137.944 li
-14.305 117.944 mo
-241.105 117.944 li
-14.305 97.944 mo
-241.105 97.944 li
-14.305 77.944 mo
-241.105 77.944 li
-14.305 57.944 mo
-241.105 57.944 li
-14.305 37.944 mo
-241.105 37.944 li
-14.305 17.944 mo
-241.105 17.944 li
-@
-gsave
-253.705 187.944 mo
-1.70499 187.944 li
-1.70499 7.94397 li
-253.705 7.94397 li
-cp
-clp
-0 lc
-[] 0 dsh
-false sadj
-1.70499 -2737.06 mo
-4.24998 -2552.98 li
-6.79598 -2376.98 li
-9.34098 -2208.89 li
-13.759 -1924.66 18.654 -1640.43 24.614 -1356.22 cv
-27.16 -1238.41 li
-29.705 -1127.06 li
-34.562 -922.47 39.996 -717.87 47.523 -513.361 cv
-50.069 -447.207 li
-52.614 -385.893 li
-55.159 -329.236 li
-57.705 -277.057 li
-61.675 -200.65 66.029 -124.124 72.978 -47.9209 cv
-75.523 -22.0378 li
-78.069 .810059 li
-80.614 20.802 li
-83.159 38.1201 li
-85.705 52.9441 li
-88.25 65.4531 li
-90.796 75.8291 li
-93.341 84.251 li
-95.887 90.9001 li
-98.432 95.957 li
-100.978 99.6001 li
-103.523 102.012 li
-106.069 103.372 li
-108.614 103.861 li
-115.605 104.102 121.972 97.1501 128.978 98.03 cv
-131.523 98.7891 li
-134.069 100.48 li
-136.614 103.282 li
-139.159 107.377 li
-141.705 112.944 li
-144.25 120.164 li
-146.796 129.217 li
-149.341 140.284 li
-151.887 153.545 li
-154.432 169.18 li
-156.978 187.369 li
-159.523 208.293 li
-162.069 232.132 li
-164.614 259.067 li
-167.159 289.277 li
-177.002 416.085 182.398 543.453 187.523 670.524 cv
-190.069 738.33 li
-192.614 811.215 li
-195.159 889.359 li
-197.705 972.942 li
-206.34 1268.27 212.532 1563.68 218.069 1859.07 cv
-220.614 1999.72 li
-223.159 2147.62 li
-232.552 2709.84 239.689 3272.1 246.069 3834.36 cv
-248.614 4064.6 li
-251.159 4304.06 li
-253.705 4552.94 li
-@
-grestore
-%ADOBeginSubsetFont: GISAAA+CMBX10 AddGlyphs
-%ADOt1write: (1.0.24)
-%%Copyright: Copyright 2011 Adobe System Incorporated. All rights reserved.
-systemdict begin
-YNDRLK+CMBX10 dup
-/Private get dup rcheck
-{begin true}{pop false}ifelse exch
-/CharStrings get begin
-systemdict /gcheck known {currentglobal currentdict gcheck setglobal} if
-/A <1C60D8A8C9B08A941DDBC3AF1C109AC61AF06DEF14497758E2577FC09808
-E2F83FED36FAC5C5DF9845F9151204EBE19A62A093C0C714296A8AEB5EA72983
-7304C560208E23A9B00E450B7895C64B840FF7B8D2624ED826E8D6D1CB5BC276
-3958AE415A241BD617EA928FD9818043D58C39BCDA5256A3F17DFF2FADD0CDFE
-4A5999053732F0E5CE29974C519106> |-
-/W <1C60D8A8C9B08A949EE89938EFD2B089915D4CA87E50351E8DD3F3914A85
-384965AB9720D1BDB02951199DD63BE938B296E11B8132C78ABED307E15E2C96
-04E0EEA5C8FB1D25F45078482232C4120E0C6D7ECC100B9CF59823239764E960
-AC203F05154297337EBEC8D426CABE71C6D1BABE3D2EE87EB4EC26DC5A175D2E
-1776DC7CB846E1C76A588A844BC3111554540D100610F9152C35EB0670475763
-7F97762997D01BB6BF9BF94F9DBF981A5DB94B101F849599A265> |-
-/a <1C60D8A8C9B08A95C60527548E754D765DB4EDA6BA0D2CC6D8A620394D95
-5731400D0093175DD4FDCB6F936DAB2E93BD9C1B54BF99F619E92F88F8093B57
-6575F38778E5971C238BB03705C8902A6FCFED1FF202619A2D8A4C3FD818942E
-E7E0400EE37C1268C755A54355454E010823DC11303C9CDCFFF1370DF47DDE8E
-0505D81ACB493683AAFD9A5B8B94F66FF9ECA66884B26F31C72D900D51753830
-4DA83D95E97AC104F2FDC53254E575E01E9C7E8025E9> |-
-/e <1C60D8A8C9B08A95D1DE8AA71D3914AC9DDC5BFDDE55301EE17DAE184B08
-E53C36FBF9A44FDF3309DBE08895DBFECCF103737D7326528346FD01CD1D9FC3
-874638E8C50ADE3B494897353EB3188B512405DD1BA5DA59E8C179230F7C8D15
-AFCEA2228DAC03C77D614B36A41126CE831B41CDF160A67B175BB36C52353A72
-5460F4256C> |-
-/k <1C60D8A8C9B08A95F1118A977C6242CC6F5E327BF4A2BCE6E631EAC27F33
-5285F637895192724CE2C53641A392411149B8A3F127ECD7DEB11923D35A35EC
-238223B6B1C9CF9675A0C83B3A0C95C18823DF1B6F368BBFEEE7185E77AE9040
-378C34B27A11D9EE3C9721E2EAFF82B925C0F3ABE698646F0C4A57CEC100EA29
-86134B063D8450710541B66D42FC62B89A6AB4B6D6C05FC0E5F8EF9F1253768A
-DA78BF283C77228ACE6FD83E9384> |-
-/o <1C60D8A8C9B7FCB6A15C803B3B972EE31F5A721ABF9B8490D1BCABFAF507
-3D6D0835AA64493F9EC5B8BAE86BFF5C8028599ED438B3807899BF98EB3DF2EE
-9BBE5DC52FDB77ACA45EA052A40521B13F529CBBBB8B40F192297C658BE1CF97
-9B5618AA4355B6A77C9FC09641> |-
-/r <1C60D8A8C9B08A95A5BEE1199161ADD44E1E8B27A5C75D09130CF9546F37
-4B2A22381A06BD734F2C4BF093B03F9AF2D0D4C8BE8AA6899632B1BDCEA5F8FA
-27D0647BB27FC7927912A6761C3F8A51172D73B92082F06EFA277243DBD96EE1
-6421DB7B86390678EAD31E9D8E521BD186BAE7A8A68851384DC5E4933D7D1C5E
-E5A527356EDB77> |-
-systemdict /gcheck known {setglobal} if end {end} if
-end
-YNDRLK+CMBX10 /Encoding get
-dup 65 /A put
-dup 87 /W put
-dup 97 /a put
-dup 101 /e put
-dup 107 /k put
-dup 111 /o put
-dup 114 /r put
-pop
-%ADOEndSubsetFont
-/YNDRLK+CMBX10*1
-[46{/.notdef}rp /period 9{/.notdef}rp /eight 8{/.notdef}rp /A 21{/.notdef}rp /W
-9{/.notdef}rp /a 3{/.notdef}rp /e 5{/.notdef}rp /k 3{/.notdef}rp /o
-2{/.notdef}rp /r 141{/.notdef}rp]
-YNDRLK+CMBX10 nf
-YNDRLK+CMBX10*1 [9.9626 0 0 -9.9626 0 0 ]msf
-324.775 14.8624 mo
-(WorkArea)
-[10.8911 5.72845 4.72226 9.86591 8.65753 4.72226 5.25021 0 ]xsh
-%ADOBeginSubsetFont: BUZAAA+CMSY10 AddGlyphs
-%ADOt1write: (1.0.24)
-%%Copyright: Copyright 2011 Adobe System Incorporated. All rights reserved.
-systemdict begin
-YNDRLL+CMSY10 dup
-/Private get dup rcheck
-{begin true}{pop false}ifelse exch
-/CharStrings get begin
-systemdict /gcheck known {currentglobal currentdict gcheck setglobal} if
-/bullet <1C60D8A8C9B7A73D8D0B3FCDAA7E46FB68E7B1A6E412E25369E4ABB
-A70D277941C6A488EED866AD61E359C443EB0FEA5> |-
-systemdict /gcheck known {setglobal} if end {end} if
-end
-YNDRLL+CMSY10 /Encoding get
-dup 178 /bullet put
-pop
-%ADOEndSubsetFont
-/YNDRLL+CMSY10*1
-[161{/.notdef}rp /minus 16{/.notdef}rp /bullet 77{/.notdef}rp]
-YNDRLL+CMSY10 nf
-YNDRLL+CMSY10*1 [9.9626 0 0 -9.9626 0 0 ]msf
-283.593 34.7875 mo
-(\262)sh
-%ADOBeginSubsetFont: GLAAAA+CMR10 AddGlyphs
-%ADOt1write: (1.0.24)
-%%Copyright: Copyright 2011 Adobe System Incorporated. All rights reserved.
-systemdict begin
-YNDRLJ+CMR10 dup
-/Private get dup rcheck
-{begin true}{pop false}ifelse exch
-/CharStrings get begin
-systemdict /gcheck known {currentglobal currentdict gcheck setglobal} if
-/parenleft <1C60D8A8C9B08A958B2129D6E9761120E2D623F206A8BB61D8ED
-90A20EE239C62172B553BFF416342D6CD99C95C515CA225C40039DBAF08CE4F0
-55B08F39C15D29C99EF3EDD066CCCEF8932365A3BB1620FA5F0BCE8AF21A5BDE
-C0FFD55FA45F247FC811007CB408F0DCDD3AE01E3246> |-
-/parenright <1C60D8A8C9B08A958B2129D6E9761120E2D623F206A8A207F03
-DEA8F466C0D4F860EDF515D421F89285FC2D8EC76F5E903EDE1B5CFFAEC5DEA9
-22C7FC4A51953A99A5FB1F96793348D816F60492670058F4DEA6D328AB20FBAD
-B3C1B57A79D8CCD13A3C6D068BAD5F09F347ED0C895> |-
-/hyphen <1C60D8A8C9B08A959E2F69652E8B76AC2AC5B4F1FA8662A86AEED57
-846929C2FBC07360B> |-
-/colon <1C60D8A8C9B08A95708109816759149241680C741B6923EBD56E6248
-E5269499A7D548A5AC3ECB516C4A5048666940A11AD8CB54F4BA847274447EEB
-614F54B956BBCFCAD8E88A403FBD4464DA283ACB> |-
-/semicolon <1C60D8A8C9B08A9570810981675918D0BCF1CD202F5F8524F1CF
-461D4270459E44DB560BC854C3F48DFD92347C27A6AAF0E2B1A04AFEB82D8D46
-6FB78A9BF2E74CE09AE4A8F352791B5C7110FA6307B2916ECC9F5904CC094CEE
-59D67B4016AFD5BCFCA64E9EC736BD726D1A09B76CECE761EBE5219FDE764D2A
-9C6D289DBA39E76263> |-
-/equal <1C60D8A8C9B08A946182837629008D945C50B3BD77B79680F3B07BDA
-6301D2521ADF665EADEA779B8650AC6CDB556621631497A3BE00C67036F6EB06
-05A36A2C0EE306396247E4A79F8EFAE500D78B59605F041F11> |-
-/b <1C60D8A8C9B08A95C5897169EED96641DA8B10CA087E6B7A5588052BABB7
-BC0836B12A49068694BF7254A2B820A876E020738250AC32ED44C3A7F2C5F700
-C2D03E307AFB7135F6415FEEB6D856569E9D5429B4DD3F524606607A7502F4FA
-00BE0184FC677554B2B6367E60A281A4837A2231515AF09B33399B7D5C3D2E8F
-3A2971F2933C4A4CAAA727A80DBDC9692BD6B38D543D422C14068650D2C61B6B
-E587855459543E451B14A31F96D9B341DFF415> |-
-/d <1C60D8A8C9B08A95C5897169EED96D33CB6A9013DDE3D04C2845E595598F
-3E2E6D79295DF7CC9B6C00D2CF2AC2502697856E5474C945441376692CB09ED9
-25CE9D4F710C7DE089B5E658450CEECC611DD1F25787624443E710373775DB0D
-7A6478B3FD4F82DF4FC109429D4EADCED1BD77A35BF25A1C1E584B0EB23CE621
-6847A21EE88B35D72221C7F9F0705E61C9F9C0A224456A04D3E81DE0BD98422F
-FA8C7335713899937F5FFEC7771BB8FDAEE53DE3E6> |-
-/h <1C60D8A8C9B08A95C5897169EED9664BED359D179BDDBB0B44F78A354068
-F188259C421AB0565D2C93368C7FE6E0A9F40BB196D1F23D06A9B4099431512B
-C136412B8071F881A48FA8A97D03ACD06EBB8221F2FCB171D9A905549A8F7881
-2735FA48F2EC00ACCEB309920B412B3F60D0173EF224E4CB3F5C1DAD9CC6147F
-9ADED8EC6C9533B7B1AABCF5D1E9B7F36A2D4B8D2B26EAE8EA> |-
-/i <1C60D8A8C9B08A9570810981675968AD25F24D2B3EAE33A4AEDADBE9B65D
-A53E9F2E54B16133284CA9914BED3880C793207FBDC7926300AD07E6E54407B5
-1EA082FB5EE3816A6A23A8296A947037E4E873086619D7E86B5A60AFA576E554
-D14C9B74D403098ADE85F71880A3E75D7FC1> |-
-/k <1C60D8A8C9B08A95D222871B45C8170346D4B3692EE324314ECB68C750E8
-0C39C0E118E6175CCD69769E2118B02E8AEF864A1ADB8D0BF5A5FFDD4A9B9B6C
-C867F43FFF5A7BBEB959851C5A4053DF1F3B8EBF64DEEC6B682D7055139D4103
-B0A63AD1D8193F253FA365D16CC3EC1AC7C7AEA533CCF6F8272FF6B8CD1FC7B4
-0DE006133FBB2B23E8E1776C461B4D8ABE09C8DE32B25BAD44EC36CACD378C29
-9496103B1CB809290EFAF69E7582E8754F6B25D7A0FD> |-
-/l <1C60D8A8C9B08A9570810981675968AD25F317189905083B97CD6CD1B880
-05B79B666989E13C0F8D0889AD0162C7E87274D188EBBD1A911FDD0B6E360AA1
-C515725198B9106B157680FC> |-
-/n <1C60D8A8C9B08A95C5897169EED9664BED359D179BD38846B55E34D4CAA6
-E85E9CF3F20D5FF6B35F1C9AAE2A542B7B24E087B6004A4C7219997095CC0DD0
-7A15DB83B5FEAD13F209441FFD364AD3DBF6E16129F3599BACA005A523490ABC
-41E4DF320ACE384037EE1D352E3FAD8A9E2CECBD75A999F7B655F4FFBFAC6FFF
-84029A8DF710DBB0D7CD4C1D20367E79BC4E3121199FA9593C876B29EA793F10
-2A1E36BE8056D0377A> |-
-/p <1C60D8A8C9B08A95C5897169EED91609D9E4D5F91353B4B61FEC4EAC5FAD
-7B5032144CF9ADF0F974C4F1789F7935ECC14F06F084A964A5CA17285CA0C9EC
-1B8F57A0E66AEAF75BA11AE734E6416585ED4DB12A3372EA2BA1BABC0DE7BE87
-584CD6EA8819CE99CB18F04E8ECD619D7E02CDE60A0AA18597DE62AF13ABCC5A
-5F1D59EBFBBEF560144EF0DCE1B387B4BC40F158468D6A4DE477659B50190482
-6F081FC4942E5187D9F03F6D1BD471F55D6300> |-
-/r <1C60D8A8C9B08A9584DCB847BA986212E50A0E258C2648145E7BCFAC2BA8
-6C36E84B654FABD35F6BE558D4B54676EA44C57F6EF668BC4866822048422FD6
-D8B608EB2C1C67EC3EE3CEBDD94E9A9214F99F9DA8EE2F6900EB47053AC763EE
-DABCA0360701D8CB383B9ECCD7B848D18CFB88761A167471DE407F7BED4BC50B
-779C4D57BF133C3E4777AA4605171C6D> |-
-/s <1C60D8A8C9B08A9586D4F7B21AA9B0967A13D9D7A42FE5E3505E2F3EE7CA
-FF99F258F00E5A08E889C3CC5D8ACF7164CD2AC0013AEF91C534D4ACEB36DB05
-CE0E820904C7EB6E6797C2D5FB5E96476FD3694427C3F770022BFE939EC57571
-FAC1F965E0A7F32B36C86522DA3AFB3A309E4B5D72F0E56F1BEB5C7254CECC22
-9B1219F95DA80187F2FFAF15E03AF5B396BE650B53989F1A64B4AA9655D1019B
-496166D38FC8961ACDA2D0B1533422796A114C02DCAA98A8558155EE2C970442
-944A032E8A6A4004C15A48F9176AE45E44068C23BC> |-
-/t <1C60D8A8C9B08A958B2129D6E9766AD6B3247B9CBDFB0724765D43ED23A7
-B2BC7B24077C209594776C48799589E3DF7269407A6893D4C106057122D99E3F
-649ACAFBE1812EEAA6C4DCDDD716BEB7694626BFFCAE715C15EF0FD8CE9F6FE4
-E96B03> |-
-/u <1C60D8A8C9B08A95C5897169EED96D33CB6A8CCD6F539BADC574F30FA019
-2FAAA0351E8C93175F4B6BE4D2DCA8A13E4F01BEC5788441B5C71C1247369B6B
-73137454B1C207EA4F43D533FE87512BAD8DD4F3DBBECD9A7A1CE3F33A4D3F31
-6952FDB339B4B6A937009D6EC9821D8553981B7D8AABC3E750369071> |-
-/v <1C60D8A8C9B08A95D222871B45C81C126204E8A3F3EFC2EBF937B1E5F2B8
-737EDCCFF78DB8693FA0E7B559CFAC0A233112105FC1A8807ADD3013D4AE86C4
-38318F1223CADD606642DF7E9A8EE9BE743E975DA759D856D52F7E927FE33606
-3979ED38AB2E1EA4CB4F371A1EB04E6C5B864C9DB5271435AB2DE7D9DE15A6B1
-D9E3FD555F015DADE467> |-
-systemdict /gcheck known {setglobal} if end {end} if
-end
-YNDRLJ+CMR10 /Encoding get
-dup 40 /parenleft put
-dup 41 /parenright put
-dup 45 /hyphen put
-dup 58 /colon put
-dup 59 /semicolon put
-dup 61 /equal put
-dup 98 /b put
-dup 100 /d put
-dup 104 /h put
-dup 105 /i put
-dup 107 /k put
-dup 108 /l put
-dup 110 /n put
-dup 112 /p put
-dup 114 /r put
-dup 115 /s put
-dup 116 /t put
-dup 117 /u put
-dup 118 /v put
-pop
-%ADOEndSubsetFont
-/YNDRLJ+CMR10*1
-[40{/.notdef}rp /parenleft /parenright 3{/.notdef}rp /hyphen /.notdef /slash /zero
-/one /two /three /four /five 4{/.notdef}rp /colon /semicolon
-/.notdef /equal 3{/.notdef}rp /A /.notdef /C 5{/.notdef}rp /I
-2{/.notdef}rp /L /M /N /O /P 2{/.notdef}rp /S
-/T /U 11{/.notdef}rp /a /b /.notdef /d /e
-/f /g /h /i /.notdef /k /l /.notdef
-/n /o /p /.notdef /r /s /t /u
-/v 4{/.notdef}rp /endash 132{/.notdef}rp]
-YNDRLJ+CMR10 nf
-YNDRLJ+CMR10*1 [9.9626 0 0 -9.9626 0 0 ]msf
-293.556 34.7875 mo
-(Theend-behaviorislike)
-[7.19299 5.53922 7.24979 4.4234 5.53918 5.53922 3.31747 5.81616 4.4234 5.53918 4.70435 5.26025
-2.76959 4.98129 6.73172 2.76962 6.75162 2.76959 2.76962 4.98328 0 ]xsh
-%ADOBeginSubsetFont: WRBBAA+CMMI10 Initial
-%ADOt1write: (1.0.24)
-%%Copyright: Copyright 2011 Adobe System Incorporated. All rights reserved.
-13 dict dup begin
-/FontType 1 def
-/FontName /WRBBAA+CMMI10 def
-/FontInfo 8 dict dup begin
-/Notice (Copyright (c) 1988 - 1996 Blue Sky Research and Y&Y, Inc. (978) 371-3286) def
-/Weight (Medium) def
-/ItalicAngle -14.04 def
-/BaseFontName (CMMI10) def
-/WasEmbedded true def
-end def
-/PaintType 0 def
-/FontMatrix [0.001 0 0 0.001 0 0] def
-/Encoding 256 array
-0 1 255 {1 index exch /.notdef put} for
-dup 120 /x put
-dup 121 /y put
-def
-/UniqueID 5087385 def
-/FontBBox {-32 -250 1048 750} def
-end
-systemdict begin
-dup /Private
-12 dict dup begin
-/|- {def} def
-/| {put} def
-/BlueValues [-22 -0 683 705 431 442 453 466] def
-/OtherBlues [-205 -194] def
-/BlueScale 0.04379 def
-/StdHW [31] def
-/StdVW [72] def
-/StemSnapH [25 31] def
-/password 5839 def
-/MinFeature {16 16} def
-/OtherSubrs[{}{}{}{systemdict/internaldict known not{pop 3}{1183615869
-systemdict/internaldict get exec dup/startlock known{/startlock get exec}{dup
-/strtlck known{/strtlck get exec}{pop 3}ifelse}ifelse}ifelse}executeonly]def
-/Subrs 5 array
-dup 0 <1C60D8A8CC31FE2BF6E07AA3E541E2> |
-dup 1 <1C60D8A8C9C3D06D9E> |
-dup 2 <1C60D8A8C9C202D79A> |
-dup 3 <1C60D8A849> |
-dup 4 <1C60D8A8CC3674F41144B13B77> |
-def
-put
-dup /CharStrings
-3 dict dup begin
-/x <1C60D8A8C9B08A95C3B1459DC8650F9F96183FC46268F5BDA744B05C84F8
-C7E5FE6BFCA9D4C8BD3488080E8FC96F34EA177DCAE190D27F37102D2F45514A
-ECF6E4A3B2E6F401810D0AF13E4BDFDB8118476E04C9DD93F8884F46C9ABEE13
-C8E7992449902F6BC3D518B2A70293976C8BCE67ED913D975C52E884BF7F46CE
-8DF8170D79262260A6CB5A6A088C0A964E0271DA63944ABA9C96D1AA58CB590F
-97DC9C8372606676C2CA18B1A9303EBF11B510FAB8A33E9B530D274E48DD09EE
-8829EC16181BBC16C4E81343ACB5386F22A9C0CA2C23959102E833> |-
-/y <1C60D8A8C9B08A95A3A690DEE11C2ACFF7516D4A7CDA884FB3B130648C63
-2F41B68B5E071E6BAD692658125A4CE9A4427A55054BF5DABFF855AF9D186215
-1F50AD5D2EE36E064C9718B8694EF83525324184D7DD07A10B9FD203C707D849
-3E926469CD1C36E94D5785557A2D95B556774E51CEFBAE2CC8AB735FFF293AFE
-FA32B8D1FD5C52EC860AA6EC20816B24BD1EB69FE8581708322D6F09A08B3182
-91EF57EAE554A00C60D585B786E53371A6D3FB2D8729C3F2C51DB65ABF8CA421
-EEB103AED2CB924D829D66429CF6664CDEAFEEC4AD07C95E7FE8BCAB5D2A1AD6
-731779D5> |-
-/.notdef <1C60D8A8C9B08A959E2F69652E8B8F> |-
-end put
-end
-dup /FontName get exch definefont pop
-end
-%ADOEndSubsetFont
-/YNDRLM+CMMI10 /WRBBAA+CMMI10 findfont ct_VMDictPut
-/YNDRLM+CMMI10*1
-[120{/.notdef}rp /x /y 134{/.notdef}rp]
-YNDRLM+CMMI10 nf
-YNDRLM+CMMI10*1 [9.9626 0 0 -9.9626 0 0 ]msf
-399.866 34.7875 mo
-(y)sh
-YNDRLJ+CMR10*1 [9.9626 0 0 -9.9626 0 0 ]msf
-407.875 34.7875 mo
-(=)sh
-YNDRLL+CMSY10*1 [9.9626 0 0 -9.9626 0 0 ]msf
-418.391 34.7875 mo
-(\241)sh
-YNDRLM+CMMI10*1 [9.9626 0 0 -9.9626 0 0 ]msf
-426.14 34.7875 mo
-(x)sh
-%ADOBeginSubsetFont: KEDBAA+CMR7 Initial
-%ADOt1write: (1.0.24)
-%%Copyright: Copyright 2011 Adobe System Incorporated. All rights reserved.
-13 dict dup begin
-/FontType 1 def
-/FontName /KEDBAA+CMR7 def
-/FontInfo 8 dict dup begin
-/Notice (Copyright (c) 1988 - 1992 Blue Sky Research and Y&Y, Inc. http://www.YandY.com) def
-/Weight (Medium) def
-/ItalicAngle 0 def
-/BaseFontName (CMR7) def
-/WasEmbedded true def
-end def
-/PaintType 0 def
-/FontMatrix [0.001 0 0 0.001 0 0] def
-/Encoding 256 array
-0 1 255 {1 index exch /.notdef put} for
-dup 51 /three put
-def
-/UniqueID 5000790 def
-/FontBBox {-286 -250 1122 967} def
-end
-systemdict begin
-dup /Private
-13 dict dup begin
-/|- {def} def
-/| {put} def
-/BlueValues [-20 -0 683 703 431 446 664 674] def
-/OtherBlues [-205 -194] def
-/BlueScale 0.04379 def
-/StdHW [36] def
-/StdVW [79] def
-/StemSnapH [28 36] def
-/StemSnapV [79 95] def
-/password 5839 def
-/MinFeature {16 16} def
-/OtherSubrs[{}{}{}{systemdict/internaldict known not{pop 3}{1183615869
-systemdict/internaldict get exec dup/startlock known{/startlock get exec}{dup
-/strtlck known{/strtlck get exec}{pop 3}ifelse}ifelse}ifelse}executeonly]def
-/Subrs 5 array
-dup 0 <1C60D8A8CC31FE2BF6E07AA3E541E2> |
-dup 1 <1C60D8A8C9C3D06D9E> |
-dup 2 <1C60D8A8C9C202D79A> |
-dup 3 <1C60D8A849> |
-dup 4 <1C60D8A8CC3674F41144B13B77> |
-def
-put
-dup /CharStrings
-2 dict dup begin
-/three <1C60D8A8C9B08A95C25148D4A67F69EFB9DDFA5ECA5AE37566D87066
-172F8CABE2B2CB84CA762EB5E603C8A9A699CCCFA6A0578E3DA76E6C9E7B5A84
-45F01D818A380DD4AC46AFDB5422B8800FEF2E8AFDA86EDD8199C34D64992E4F
-43992CF1D54B07E3F575480A9A0B868375A4E2A9893BE0AEBB713690AB6C5B93
-E6D8D619357F90F56F58A8525CC0A1BD91DA9365507B440F549B60D4E7E5CBB3
-769D4C82F061F9E20A25AD23418551374D804A6B25C8CE003D> |-
-/.notdef <1C60D8A8C9B08A958AA685092D4752> |-
-end put
-end
-dup /FontName get exch definefont pop
-end
-%ADOEndSubsetFont
-/YNDRLN+CMR7 /KEDBAA+CMR7 findfont ct_VMDictPut
-/YNDRLN+CMR7*1
-[51{/.notdef}rp /three 204{/.notdef}rp]
-YNDRLN+CMR7 nf
-YNDRLN+CMR7*1 [6.9738 0 0 -6.9738 0 0 ]msf
-431.835 30.6743 mo
-(3)sh
-YNDRLL+CMSY10*1 [9.9626 0 0 -9.9626 0 0 ]msf
-283.593 54.713 mo
-(\262)sh
-YNDRLM+CMMI10*1 [9.9626 0 0 -9.9626 0 0 ]msf
-293.556 54.713 mo
-(x)sh
-YNDRLJ+CMR10*1 [9.9626 0 0 -9.9626 0 0 ]msf
-299.25 54.713 mo
-(-int:)
-[3.31747 2.76959 5.26224 3.87555 0 ]xsh
-YNDRLM+CMMI10*1 [9.9626 0 0 -9.9626 0 0 ]msf
-325.685 54.713 mo
-(x)sh
-YNDRLJ+CMR10*1 [9.9626 0 0 -9.9626 0 0 ]msf
-337.496 54.713 mo
-(=0\(even\);)
-[13.868 10.3123 3.87552 4.4234 4.98328 4.4234 5.53922 3.87552 0 ]xsh
-YNDRLM+CMMI10*1 [9.9626 0 0 -9.9626 0 0 ]msf
-397.897 54.713 mo
-(x)sh
-YNDRLJ+CMR10*1 [9.9626 0 0 -9.9626 0 0 ]msf
-409.708 54.713 mo
-(=)sh
-YNDRLL+CMSY10*1 [9.9626 0 0 -9.9626 0 0 ]msf
-423.574 54.713 mo
-(\241)sh
-YNDRLJ+CMR10*1 [9.9626 0 0 -9.9626 0 0 ]msf
-431.323 54.713 mo
-(1)sh
-293.557 66.6682 mo
-(\(odd\))
-[3.87552 5.25827 5.53922 5.53918 0 ]xsh
-YNDRLL+CMSY10*1 [9.9626 0 0 -9.9626 0 0 ]msf
-283.594 86.5933 mo
-(\262)sh
-YNDRLM+CMMI10*1 [9.9626 0 0 -9.9626 0 0 ]msf
-293.557 86.5933 mo
-(y)sh
-YNDRLJ+CMR10*1 [9.9626 0 0 -9.9626 0 0 ]msf
-298.799 86.5933 mo
-(-int:)
-[3.31747 2.76959 5.26224 3.87555 0 ]xsh
-YNDRLM+CMMI10*1 [9.9626 0 0 -9.9626 0 0 ]msf
-321.623 86.5933 mo
-(y)sh
-YNDRLJ+CMR10*1 [9.9626 0 0 -9.9626 0 0 ]msf
-329.971 86.5933 mo
-(=0\(passesthroughori-)
-[10.8572 8.50607 3.87552 5.53922 4.98129 3.92523 3.92523 4.4234 7.45001 3.87552 5.53922 3.9053
-4.98129 5.53922 4.98129 9.06396 4.98132 3.90533 2.76959 0 ]xsh
-293.557 98.5485 mo
-(gin\))
-[4.98129 2.76962 5.53918 0 ]xsh
-grestore
-grestore
-pgrs
-%%PageTrailer
-[
-[/CSA [/0 ]]
-[/CSD [/0 ]]
-] del_res
-/YNDRLM+CMMI10*1 uf
-/YNDRLM+CMMI10 uf
-/WRBBAA+CMMI10 uf
-/YNDRLN+CMR7*1 uf
-/YNDRLN+CMR7 uf
-/KEDBAA+CMR7 uf
-/YNDRLJ+CMR10*1 uf
-/YNDRLJ+CMR10 uf
-/GLAAAA+CMR10 uf
-/YNDRLL+CMSY10*1 uf
-/YNDRLL+CMSY10 uf
-/BUZAAA+CMSY10 uf
-/YNDRLK+CMBX10*1 uf
-/YNDRLK+CMBX10 uf
-/GISAAA+CMBX10 uf
-Adobe_AGM_Image/pt gx
-Adobe_CoolType_Core/pt get exec
-Adobe_AGM_Core/restore_mysetup gx
-Adobe_AGM_Core/pt gx
-currentdict Adobe_AGM_Utils eq {end} if
-%%Trailer
-Adobe_AGM_Utils begin
-[/EMC pdfmark_5
-currentdict Adobe_AGM_Utils eq {end} if
-Adobe_AGM_Image/dt get exec
-Adobe_CoolType_Core/dt get exec
-Adobe_AGM_Core/dt get exec
-%%Pages: 1
-%%DocumentNeededResources:
-%%DocumentSuppliedResources: procset Adobe_AGM_Image 1.0 0
-%%+ procset Adobe_CoolType_Utility_T42 1.0 0
-%%+ procset Adobe_CoolType_Utility_MAKEOCF 1.23 0
-%%+ procset Adobe_CoolType_Core 2.31 0
-%%+ procset Adobe_AGM_Core 2.0 0
-%%+ procset Adobe_AGM_Utils 1.0 0
-%%DocumentNeededFeatures:
-%%DocumentSuppliedFeatures:
-%%DocumentCustomColors:
-%%CMYKCustomColor:
-%%RGBCustomColor:
-%%EOF
+<?xpacket end='w'?>
+
+
+% &end XMP packet& %
+
+[{Doc_Metadata} 2 dict begin /Type /Metadata def /Subtype /XML def currentdict end /PUT pdfmark_5
+[/Document 1 dict begin /Metadata {Doc_Metadata} def currentdict end /BDC pdfmark_5
+[/NamespacePop pdfmark_5
+currentdict Adobe_AGM_Utils eq {end} if
+%%EndSetup
+%%Page: 1 1
+%%EndPageComments
+%%BeginPageSetup
+Adobe_AGM_Utils begin
+Adobe_AGM_Core/ps gx
+Adobe_AGM_Core/capture_mysetup gx
+Adobe_AGM_Utils/capture_cpd gx
+Adobe_CoolType_Core/ps get exec
+Adobe_AGM_Image/ps gx
+%%EndPageSetup
+1 -1 scale 0 -194.951 translate
+pgsv
+[1 0 0 1 0 0 ]ct
+gsave
+np
+gsave
+-7.62939e-6 0 mo
+-7.62939e-6 194.951 li
+256.793 194.951 li
+256.793 0 li
+cp
+clp
+false sop
+/0
+<<
+/Name (Black)
+/0
+[/DeviceCMYK] /CSA add_res
+/CSA /0 get_csa_by_name
+/MappedCSA /0 /CSA get_res
+/TintMethod /Subtractive
+/TintProc null
+/NComponents 4
+/Components [ 0 0 0 1 ]
+>>
+/CSD add_res
+1 /0 /CSD get_res sepcs
+1 sep
+%ADOBeginSubsetFont: GLAAAA+CMR10 Initial
+%ADOt1write: (1.0.24)
+%%Copyright: Copyright 2011 Adobe System Incorporated. All rights reserved.
+13 dict dup begin
+/FontType 1 def
+/FontName /GLAAAA+CMR10 def
+/FontInfo 8 dict dup begin
+/Notice (Copyright (c) 1988 - 1994 Blue Sky Research and Y&Y, Inc. http://www.YandY.com) def
+/Weight (Medium) def
+/ItalicAngle 0 def
+/BaseFontName (CMR10) def
+/WasEmbedded true def
+end def
+/PaintType 0 def
+/FontMatrix [0.001 0 0 0.001 0 0] def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 47 /slash put
+dup 48 /zero put
+dup 49 /one put
+dup 51 /three put
+dup 53 /five put
+dup 65 /A put
+dup 67 /C put
+dup 73 /I put
+dup 76 /L put
+dup 77 /M put
+dup 78 /N put
+dup 79 /O put
+dup 80 /P put
+dup 83 /S put
+dup 84 /T put
+dup 85 /U put
+dup 97 /a put
+dup 101 /e put
+dup 102 /f put
+dup 103 /g put
+dup 111 /o put
+dup 123 /endash put
+def
+/UniqueID 5000793 def
+/FontBBox {-40 -250 1009 969} def
+end
+systemdict begin
+dup /Private
+13 dict dup begin
+/|- {def} def
+/| {put} def
+/BlueValues [-22 -0 683 705 431 448 666 677] def
+/OtherBlues [-206 -194] def
+/BlueScale 0.04379 def
+/StdHW [31] def
+/StdVW [69] def
+/StemSnapH [22 31] def
+/StemSnapV [69 89] def
+/password 5839 def
+/MinFeature {16 16} def
+/OtherSubrs[{}{}{}{systemdict/internaldict known not{pop 3}{1183615869
+systemdict/internaldict get exec dup/startlock known{/startlock get exec}{dup
+/strtlck known{/strtlck get exec}{pop 3}ifelse}ifelse}ifelse}executeonly]def
+/Subrs 5 array
+dup 0 <1C60D8A8CC31FE2BF6E07AA3E541E2> |
+dup 1 <1C60D8A8C9C3D06D9E> |
+dup 2 <1C60D8A8C9C202D79A> |
+dup 3 <1C60D8A849> |
+dup 4 <1C60D8A8CC3674F41144B13B77> |
+def
+put
+dup /CharStrings
+23 dict dup begin
+/slash <1C60D8A8C9B7A73DB56225352A24C6E389DE2B55CA06CAB1D904D74F
+E21B6520E910DE6837DBFFB95567192F781E541A03B8446689265DEAE7140ED2
+3D1C3943714CDFC12315> |-
+/zero <1C60D8A8C9B7A73D3B2D32309B1F5D5A32FC3614834F8BC61B6EB92C1
+2484BD76628737DA40CF9DA1C97CCDAFB1D1B732C642F74A7C41B7D3AC6DAF8D
+1E760692B6EBD2417EF1893A4AA0B1CF049D4C54D830CEC073A9153D451FAD42
+892B0930AEE4FE18588336BFDAD60D8A4F4CFFED76F103FB9BBD8A33EFBA3F18
+232B88D88FE54E17260FA3E2CC29DEC0CB72B88DC816FF5> |-
+/one <1C60D8A8C9B7A73DC579B9CE13A4EA8C203AFC890ABD6F58341B006CF1
+BDD8FED3A7238E01F751FEAC75885229C293891E5636AD630D9C884528B6FEF0
+0728A740ED77D054B4743ECA5E3947520FEF6B23D548765D11> |-
+/three <1C60D8A8C9B7A73D3B2B97DEB4C7BDB68E0D63865C8BF294429AD1BA
+AE59A25299F9306A9E28AA5C0C0AF9F97F56096DB0FD0EC440ACCE834B0BA539
+2FD94D026768A961AA5D1A88FAE30F2B2033E77AFAB55B0B9C8092CD226DD9EF
+EEAAF5CD5AE79D6DDEC4C37DC43DE3B85DD2A2EC4DC0C9F349D5E8F9F615782E
+DC8C53805553FD3C0007C1818BF3D99AB659A079ED36132BBDC613CA63D7A0FE
+429706DBC6BA998CE56A89C002758EF37F90A390F83B3DFE49D312FA66FDF2F1
+6212D1503559B35FC2DB8BD5A49535> |-
+/five <1C60D8A8C9B7A73D3B2B97F19D54A2E00E7DDA8E72064220CB7581D13
+CEDF071F346430E40993A6297E3A2A6D6093205222D977AC7F7B65CC82B221D9
+B18ADEA5D4AF0261ABF060D3E283C7B3B5EB39FF499721FD51203AE59E3BEA25
+7DFD3E472FEF67221488EC8D1F355E2FAD057CA44A8B4BAD6C6C719C164907CB
+F9A6CC770DB0C7E58A37D2385E23F576BCFF94FFBFD8ADD4C5E6C32CD83ACEB7
+7472D00FE1A4DC66393A99AC6BBD252B04C98B710149EA42B66ACE89D4FC4393
+F3A09165DF477ABCB0E8A8DB21E4278CA219EBCC9B067F92619913BDBD1EF3C9
+A> |-
+/A <1C60D8A8C9B08A9501CDAE1251A61DF6E2312CA41635F6CE1D00B63E171C
+70F84D42F62A21A6DD37D84C279E3FAE908D39B730ACD671ED9E277ACFE833A1
+1F48F076C9803DC08258033731BCBCE19DF3B81C1C298B382A15FAC94387A992
+AD9631716A7ED4F711137D6C851AE1C8DCBBFBCF7274E882226E58958CE6283A
+197E7FAE3A2D0F6C24FA411BECFB36A10FF2A923EA89ABEFAD5AB23D600F> |-
+/C <1C60D8A8C9B08A9454CA4C75C5C983901A105955FD02AB95A1C2D2A205D6
+C9A19566388580DAF81E45849DB37660797B67B5A88B6906602915C5F5C9B0EC
+D18BF9F52BC4BC58CA3DC88745B8BAABAD3D92E461BFB415E7240305CDDA1D0D
+B5D35FEBC75FFD4C053E78B6CA772ACEB0C2FF98C08B672F492F305E0C5F3841
+918729B4AEB78A65C2A83364408240D8D653DA56F4DCB028D3D78F3C2D6BC7> |-
+/I <1C60D8A8C9B08A9591900960B3FA4612DFF926AB21A530E1912F33677612
+AC06B324D812E42049FF4946BE5E0FFA24FA0C62F2839FF2110EEC7EE0A42476
+46E6F699D4C8BECE1825B3A661611E4D55F40F2E64FACB836D4D0C9780F60650
+FBF10E0D42> |-
+/L <1C60D8A8C9B08A9504870DC577BFF1117CB147078FC0444648398262998D
+8061E386D366188391878ADBE16C10A3B1BC6A93F56BD64AE45F8370470F419D
+A43CBACE3D7B1152502CD0CF1468D72D3CB197A29E71D336CDA7D6BAA426EC1B
+681825BDDC37329099DC579F155C> |-
+/M <1C60D8A8C9B08A94284A0D047609A407E661A852E250B140B4157477FB2A
+AE2E22210B2D780B692B0718211E5BD86C3DCF8087849BEE2B9F6D1D8621E40C
+8FBE892AC1B23002BF18819E26C6741335DF8DA8AC82506D7051C0505D48DDFA
+17EE84A06E07C05EBAC6174D600BACE071866247BE6C83F4CF28F6D6EE6A6CF8
+A788C4FFFDBDCA978C2B0B201753D21CB7AF0542C690ECE8E7EDBE1B1FB29939
+734E35E0ECCA8BA7FAEB58AC205A8A82A94C960A65> |-
+/N <1C60D8A8C9B08A9501CDAE1251A61DF6E23FBE9059A2A88492E84D61402E
+80BD80B5057FF8914FA4679EB3900C60B246DA77BF837041B1C053FCD543E3D1
+D259FCE953A74E40366D604A99F9233772AC97F872D505329B1446640ABD99E4
+AC723C39DD6EA376A043CE3633F04D9BC6DEFE2E1A831DBB9C16F90A966DFA0F
+3802BB1EB0AA3DAEB0E864B9D3CC3E14AE1E9219B48660289CF348B4E280> |-
+/O <1C60D8A8C9B08A946182837629000F56F09862ED5AA400F2B4EB929FCD0B
+6F40CAF45238A67BE496742823610F15AF19832E8EC09C64557C48DB0BC41E07
+C1B98081893CB2216BAE4CCECC72A02E2F6B8D0FE8B2E6548D00AAA585F02486
+772A4FC1258C2982A5ECEC> |-
+/P <1C60D8A8C9B08A94478101EE5603CAF9EA65868978F157B7D9DB71203FAD
+46B85DF1A1E477012038D20B3756C0124AD7E2F6ACCB98150AB793091E3E7A8F
+3C0AE6FC8D7A5031BB678671889D46F3A15BD495F1AB5B7C8F63325E15B44523
+174D09593A38714FEB5177883F725186FE6BF7095A24CD9EDEFA3551580A0E2B
+0B49AC2002> |-
+/S <1C60D8A8C9B08A95C5897169EED99899F86A6DCF3CD291B001131D3BCB45
+BF71748507542417352D5B30F63C60EB90DCF55005F88E95175B21D3219CD9E9
+2E89E417B177D285600845553F66626D2225552D23A7697637BDCEEECAEA18AB
+42A896E96FF5B3536CC368A5F7504B6C75D962A4B5F9534F79AC78DC99848461
+42257A40DE257430C92806EBA73FF7D93DF0A6C207299E2D17F4071F9096D016
+163F4D3EC1889ADA266D3682F2D99904573A5022A10E61069737F2D55F919F95
+A33DB6DD2667321E4727855B58DBF4B1E5A294928E6CEABFBD34F296C1B758> |-
+/T <1C60D8A8C9B08A9454CA4C75C5C97DCE7AB32777FAAECD12647866E7CB3F
+CCDC541E37F2225E520DEDE695980D4012AD5B972BDABC7E7E5410E71AC63692
+4E778B3131B6C4D1E76F8C4592AC311A2107F53DC1850538C9E487E6D5DBDFE8
+027D7126BA9ED8B24E7379B57E474ACD298BF6B3700CC970D80111DD98EFC872
+C24D0DA3C75DDDFD177C6D15> |-
+/U <1C60D8A8C9B08A9501CDAE1251A6E3AF1199B24D30F25809B39A0DD6474A
+CF1BFDB89F5985BBB0F2E5FE7296314FDA462BECDBDEA31B3750001975D37A8B
+F31F224CAB5093B8997B856DAE5F9007E1497BEED45CA8AC033A65F773653762
+77BFCDF39A2D8F1BC8E5626BEEEF5D670E87E32F25C0530E88A4E2B9AD6D8333
+3A6C173F8B22714E74A224AD610C2B1EAB> |-
+/a <1C60D8A8C9B7A73DCB03313BCF7AD8C8EE234E5372D46A65E92A78F4B7E0
+2ECC58F71EE6C027AD4D56C5E4DE1AF1031295DC17C0E7AC8D8358634F9A19B0
+2A110E5539C10136C68E0D2CBEA6658A501D9D73323861F8C29EB92F9080ACC3
+E236C5F14389534682EC2925F59CD4A215569A7BD7B9F7827A30BA75EB840535
+B2A2C8F92AD166CE93D277314A4C690C47DB847F73BFE1049631CDDB9124FD76
+2753AA8DB187C216AFB74F76299B3C51610D74CF31321BBFEB5CFCA7D213C896
+D1B8E57EFC05695F2F73> |-
+/e <1C60D8A8C9B08A95B1F07368C45D8D2AF4BC97E4CB216B20786BB8409E5C
+B0892E60E7F0AD9AC8433678C58AAD59736BF9700A3AEB0B5352F4A898A5EEFB
+C72A64BFB45B917D9879BD0577DAB96A0E86BECAB5E8A8A051E5E40886D5A00C
+EC53E0A3265FC74195574846689BF9F38086985C2DD3223390D51155F707CE86
+59EC1C65A75BE9A0BA862DB1A00FF6A01FCED7E6> |-
+/f <1C60D8A8C9B08A956BA65798425CE9B0A78F07A04AF2F8524751F181F94C
+EF756ACD6AB92BD09462A05FB08A9160A0AB5267B62445F916DEFC1DAF3F1FB4
+B3761F71CBE3290960500C788D04CB45BB0A2825753AA6E46495F35A08389AAA
+C80F35ADADFB7ACE340FEC03C9E5F9A50A8AD731E7A553A32F387574697F9CAB
+2E100B6DD6E3525398F6> |-
+/g <1C60D8A8C9B7A73DB58EA28807584EB19BC6EA1448A12312E623B90358A1
+63CFC67672A34CC74B0AEAADF24229DF1CCAA1488AE3E348FE2ACD572EA487EC
+9D77FBB0710AB421B03DD5B8AE5519B5C269E9648E819E7ECE806EEF16A6618D
+07D9AAB350E57F26F5259E8FCF9E5C2D96BBEAD16502F9E7819E854042DDB2BC
+674C39681CC2E5224219582BC7B59BBAEF869C9DF91CA7770A97BAD53C3C3A99
+175BA8F0A5744B5969D3BC15831A95918F7C707E41F5D87B8DB2D57378BC9C29
+7DAE69E4BF438246E63F565B22D86CBE28DEF748262FB9FF82A88935451D6280
+A28F1AD964E6E476D5779321E42D3A86BE41122F1BED36C3DC47E1E01C225345
+98D0431873197ABE1C8EC03B4011E4B26D249635BDBABB8E5B69BE07AFA65F88
+EAF6> |-
+/o <1C60D8A8C9B7A73DCEB07E09D16841D605E4F67059E6B258F546B80703E4
+CDAF20027B900118209D5372F965F2045D50C02A29110A048C891DEBA3210CDF
+C5CDE2309C0CDE0E4855E9F6D8954C4C68826A14AD2E4C6227A036D85D304D6A
+96FEAA92DEC3CD1B9F4AD57B5F1EBAB070FE911461A7D5B958F5> |-
+/endash <1C60D8A8C9B7A73DB9B60A0DBA4B5FB3A045D6B65F12EE5E3DC48D3
+43D8E> |-
+/.notdef <1C60D8A8C9B08A959E2F69652E8B8F> |-
+end put
+end
+dup /FontName get exch definefont pop
+end
+%ADOEndSubsetFont
+/YNDRLJ+CMR10 /GLAAAA+CMR10 findfont ct_VMDictPut
+/YNDRLJ+CMR10*1
+[47{/.notdef}rp /slash /zero /one /.notdef /three /.notdef /five
+11{/.notdef}rp /A /.notdef /C 5{/.notdef}rp /I 2{/.notdef}rp /L
+/M /N /O /P 2{/.notdef}rp /S /T /U
+11{/.notdef}rp /a 3{/.notdef}rp /e /f /g 7{/.notdef}rp /o
+11{/.notdef}rp /endash 132{/.notdef}rp]
+YNDRLJ+CMR10 nf
+YNDRLJ+CMR10*1 [9.9626 0 0 -9.9626 0 0 ]msf
+-31.697 -36.8879 mo
+(MAC1105/T3{Page5of10{SOLUTIONS)
+[9.13578 7.19498 7.193 4.9813 4.9813 4.9813 4.98129 4.98131 7.19299 92.4629 8.30183 6.50756
+4.98131 4.98129 7.74393 8.30185 4.98129 6.36908 4.98129 8.30182 195.931 5.53922 7.75089 6.22662
+7.47195 7.19296 3.59644 7.75098 7.47192 0 ]xsh
+%ADOBeginSubsetFont: GISAAA+CMBX10 Initial
+%ADOt1write: (1.0.24)
+%%Copyright: Copyright 2011 Adobe System Incorporated. All rights reserved.
+13 dict dup begin
+/FontType 1 def
+/FontName /GISAAA+CMBX10 def
+/FontInfo 8 dict dup begin
+/Notice (Copyright (c) 1988 - 1994 Blue Sky Research and Y&Y, Inc. http://www.YandY.com) def
+/Weight (Bold) def
+/ItalicAngle 0 def
+/BaseFontName (CMBX10) def
+/WasEmbedded true def
+end def
+/PaintType 0 def
+/FontMatrix [0.001 0 0 0.001 0 0] def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 46 /period put
+dup 56 /eight put
+def
+/UniqueID 5000768 def
+/FontBBox {-301 -250 1164 946} def
+end
+systemdict begin
+dup /Private
+14 dict dup begin
+/|- {def} def
+/| {put} def
+/BlueValues [-11 -0 686 697 444 453 655 676] def
+/OtherBlues [-201 -194] def
+/BlueScale 0.04379 def
+/StdHW [47] def
+/StdVW [114] def
+/StemSnapH [40 47] def
+/StemSnapV [114 142] def
+/ForceBold true def
+/password 5839 def
+/MinFeature {16 16} def
+/OtherSubrs[{}{}{}{systemdict/internaldict known not{pop 3}{1183615869
+systemdict/internaldict get exec dup/startlock known{/startlock get exec}{dup
+/strtlck known{/strtlck get exec}{pop 3}ifelse}ifelse}ifelse}executeonly]def
+/Subrs 5 array
+dup 0 <1C60D8A8CC31FE2BF6E07AA3E541E2> |
+dup 1 <1C60D8A8C9C3D06D9E> |
+dup 2 <1C60D8A8C9C202D79A> |
+dup 3 <1C60D8A849> |
+dup 4 <1C60D8A8CC3674F41144B13B77> |
+def
+put
+dup /CharStrings
+3 dict dup begin
+/period <1C60D8A8C9B08A9560D4C2F3A74D92838E83B7DC14B89478B799496
+0CFDC6D2144A34A20CA36052335682902BE7739DD> |-
+/eight <1C60D8A8C9B7FCB6A4EC6CCC71FFBC41969F86A86636A65E5BD14FD4
+EBD93FCE205F86ECC615335CAFE8E2240019DB970894F9979E3FDF252D8A9472
+1B680E23D2DF204A99891D5AD0E347695938A6FCE4923A098978EC0AC2A3894C
+8A94767FEBA61293F9C489BAC7A89726BFA765D56F2D198E99D500D81046ACE1
+5301FD9FB36D2F2E4EAA017CCF306EAEC8E157B40FDE6DC2FA713180A587E730
+6AD0870F441697503D> |-
+/.notdef <1C60D8A8C9B08A95899606B6B060A7> |-
+end put
+end
+dup /FontName get exch definefont pop
+end
+%ADOEndSubsetFont
+/YNDRLK+CMBX10 /GISAAA+CMBX10 findfont ct_VMDictPut
+/YNDRLK+CMBX10*1
+[46{/.notdef}rp /period 9{/.notdef}rp /eight 199{/.notdef}rp]
+YNDRLK+CMBX10 nf
+YNDRLK+CMBX10*1 [9.9626 0 0 -9.9626 0 0 ]msf
+-25.9685 -7.00012 mo
+(8.)
+[5.72846 0 ]xsh
+249.382 99.488 mo
+253.706 97.944 li
+249.382 96.4 li
+251.112 97.944 li
+f
+gsave
+253.705 187.944 mo
+1.70499 187.944 li
+1.70499 7.94397 li
+253.705 7.94397 li
+cp
+clp
+.797 lw
+0 lc
+0 lj
+10 ml
+[] 0 dsh
+false sadj
+1.70499 97.944 mo
+251.111 97.944 li
+@
+grestore
+.399 lw
+0 lc
+0 lj
+10 ml
+[] 0 dsh
+false sadj
+127.705 101.929 mo
+127.705 93.959 li
+@
+155.705 101.929 mo
+155.705 93.959 li
+@
+183.705 101.929 mo
+183.705 93.959 li
+@
+211.705 101.929 mo
+211.705 93.959 li
+@
+239.705 101.929 mo
+239.705 93.959 li
+@
+127.705 101.929 mo
+127.705 93.959 li
+@
+99.705 101.929 mo
+99.705 93.959 li
+@
+71.705 101.929 mo
+71.705 93.959 li
+@
+43.705 101.929 mo
+43.705 93.959 li
+@
+15.705 101.929 mo
+15.705 93.959 li
+@
+129.25 12.268 mo
+127.706 7.94403 li
+126.162 12.268 li
+127.706 10.5391 li
+f
+.797 lw
+127.705 187.944 mo
+127.705 10.538 li
+@
+.399 lw
+123.72 97.944 mo
+131.69 97.944 li
+@
+123.72 77.944 mo
+131.69 77.944 li
+@
+123.72 57.944 mo
+131.69 57.944 li
+@
+123.72 37.944 mo
+131.69 37.944 li
+@
+123.72 17.944 mo
+131.69 17.944 li
+@
+123.72 97.944 mo
+131.69 97.944 li
+@
+123.72 117.944 mo
+131.69 117.944 li
+@
+123.72 137.944 mo
+131.69 137.944 li
+@
+123.72 157.944 mo
+131.69 157.944 li
+@
+123.72 177.944 mo
+131.69 177.944 li
+@
+%ADOBeginSubsetFont: GLAAAA+CMR10 AddGlyphs
+%ADOt1write: (1.0.24)
+%%Copyright: Copyright 2011 Adobe System Incorporated. All rights reserved.
+systemdict begin
+YNDRLJ+CMR10 dup
+/Private get dup rcheck
+{begin true}{pop false}ifelse exch
+/CharStrings get begin
+systemdict /gcheck known {currentglobal currentdict gcheck setglobal} if
+/two <1C60D8A8C9B7A73DC50B0411757B441481CCF7EF812EEB9B3F6A07BD51
+606BCA866C4BD24CA34E86B9CA5A529B664F3EEDB6B4AF8A2B994DB57B49473E
+162231CB943675FE63E9B92B8AEBB62FB22456EC4173C66EF6C2F34FFEC22ACA
+E77FFFAAD70F3754CADC0D2CF63CB6D286D930AEA5A613E5AB9CB004BEAEBADD
+D070EDAF4FF25FDB6421F540D58D2C7A3FC40290CBCF831BE1B89B7F> |-
+/four <1C60D8A8C9B7A73DC579B9C1587087D4749982A674065FCDD01CF53F5
+4AF89DAF22339F0A467CE8D8CC25949B03A9DEFE86592098644AED5891ABD8D0
+71237FB9B66EF7648D767508B0BB1075A0AC676C770BFE6D0E818B53FD7884E4
+D8E6A983234A6E833EF72FF7FE587> |-
+systemdict /gcheck known {setglobal} if end {end} if
+end
+YNDRLJ+CMR10 /Encoding get
+dup 50 /two put
+dup 52 /four put
+pop
+%ADOEndSubsetFont
+/YNDRLJ+CMR10*1
+[47{/.notdef}rp /slash /zero /one /two /three /four /five
+11{/.notdef}rp /A /.notdef /C 5{/.notdef}rp /I 2{/.notdef}rp /L
+/M /N /O /P 2{/.notdef}rp /S /T /U
+11{/.notdef}rp /a 3{/.notdef}rp /e /f /g 7{/.notdef}rp /o
+11{/.notdef}rp /endash 132{/.notdef}rp]
+YNDRLJ+CMR10 nf
+YNDRLJ+CMR10*1 [9.9626 0 0 -9.9626 0 0 ]msf
+113.758 81.1542 mo
+(1)sh
+113.758 61.1542 mo
+(2)sh
+113.758 41.1543 mo
+(3)sh
+113.758 21.1544 mo
+(4)sh
+%ADOBeginSubsetFont: BUZAAA+CMSY10 Initial
+%ADOt1write: (1.0.24)
+%%Copyright: Copyright 2011 Adobe System Incorporated. All rights reserved.
+13 dict dup begin
+/FontType 1 def
+/FontName /BUZAAA+CMSY10 def
+/FontInfo 8 dict dup begin
+/Notice (Copyright (c) 1996 Y&Y, Inc. All Right Reserved. http://www.YandY.com) def
+/Weight (Medium) def
+/ItalicAngle -14.035 def
+/BaseFontName (CMSY10) def
+/WasEmbedded true def
+end def
+/PaintType 0 def
+/FontMatrix [0.001 0 0 0.001 0 0] def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 161 /minus put
+def
+/UniqueID 5096651 def
+/FontBBox {-29 -960 1116 775} def
+end
+systemdict begin
+dup /Private
+13 dict dup begin
+/|- {def} def
+/| {put} def
+/BlueValues [-24 -0 683 705] def
+/OtherBlues [-135 -124] def
+/BlueScale 0.04379 def
+/StdHW [40] def
+/StdVW [40] def
+/StemSnapH [40 56] def
+/StemSnapV [40 56] def
+/password 5839 def
+/MinFeature {16 16} def
+/OtherSubrs[{}{}{}{systemdict/internaldict known not{pop 3}{1183615869
+systemdict/internaldict get exec dup/startlock known{/startlock get exec}{dup
+/strtlck known{/strtlck get exec}{pop 3}ifelse}ifelse}ifelse}executeonly]def
+/Subrs 5 array
+dup 0 <1C60D8A8CC31FE2BF6E07AA3E541E2> |
+dup 1 <1C60D8A8C9C3D06D9E> |
+dup 2 <1C60D8A8C9C202D79A> |
+dup 3 <1C60D8A849> |
+dup 4 <1C60D8A8CC3674F41144B13B77> |
+def
+put
+dup /CharStrings
+2 dict dup begin
+/minus <1C60D8A8C9B08A946182837629008DF7702985522C1BEB4D11AB8A6B
+5589D8B615C840A4D8FD35DE7CD09D4C55DA8FE732830DDE> |-
+/.notdef <1C60D8A8C9B08A959E2F69652E8B8F> |-
+end put
+end
+dup /FontName get exch definefont pop
+end
+%ADOEndSubsetFont
+/YNDRLL+CMSY10 /BUZAAA+CMSY10 findfont ct_VMDictPut
+/YNDRLL+CMSY10*1
+[161{/.notdef}rp /minus 94{/.notdef}rp]
+YNDRLL+CMSY10 nf
+YNDRLL+CMSY10*1 [9.9626 0 0 -9.9626 0 0 ]msf
+106.009 120.739 mo
+(\241)sh
+YNDRLJ+CMR10*1 [9.9626 0 0 -9.9626 0 0 ]msf
+113.758 120.739 mo
+(1)sh
+YNDRLL+CMSY10*1 [9.9626 0 0 -9.9626 0 0 ]msf
+106.009 140.738 mo
+(\241)sh
+YNDRLJ+CMR10*1 [9.9626 0 0 -9.9626 0 0 ]msf
+113.758 140.738 mo
+(2)sh
+YNDRLL+CMSY10*1 [9.9626 0 0 -9.9626 0 0 ]msf
+106.009 160.738 mo
+(\241)sh
+YNDRLJ+CMR10*1 [9.9626 0 0 -9.9626 0 0 ]msf
+113.758 160.738 mo
+(3)sh
+YNDRLL+CMSY10*1 [9.9626 0 0 -9.9626 0 0 ]msf
+106.009 180.738 mo
+(\241)sh
+YNDRLJ+CMR10*1 [9.9626 0 0 -9.9626 0 0 ]msf
+113.758 180.738 mo
+(4)sh
+153.215 113.33 mo
+(1234)
+[27.9999 27.9999 27.9999 0 ]xsh
+YNDRLL+CMSY10*1 [9.9626 0 0 -9.9626 0 0 ]msf
+93.3403 113.33 mo
+(\241)sh
+YNDRLJ+CMR10*1 [9.9626 0 0 -9.9626 0 0 ]msf
+101.089 113.33 mo
+(1)sh
+YNDRLL+CMSY10*1 [9.9626 0 0 -9.9626 0 0 ]msf
+65.3404 113.33 mo
+(\241)sh
+YNDRLJ+CMR10*1 [9.9626 0 0 -9.9626 0 0 ]msf
+73.0894 113.33 mo
+(2)sh
+YNDRLL+CMSY10*1 [9.9626 0 0 -9.9626 0 0 ]msf
+37.3406 113.33 mo
+(\241)sh
+YNDRLJ+CMR10*1 [9.9626 0 0 -9.9626 0 0 ]msf
+45.0895 113.33 mo
+(3)sh
+YNDRLL+CMSY10*1 [9.9626 0 0 -9.9626 0 0 ]msf
+9.34069 113.33 mo
+(\241)sh
+YNDRLJ+CMR10*1 [9.9626 0 0 -9.9626 0 0 ]msf
+17.0896 113.33 mo
+(4)sh
+.797 lw
+1 lc
+[0 2 ] 1 dsh
+true sadj
+15.705 178.944 mo
+15.705 16.944 li
+43.705 178.944 mo
+43.705 16.944 li
+71.705 178.944 mo
+71.705 16.944 li
+99.705 178.944 mo
+99.705 16.944 li
+127.705 178.944 mo
+127.705 16.944 li
+155.705 178.944 mo
+155.705 16.944 li
+183.705 178.944 mo
+183.705 16.944 li
+211.705 178.944 mo
+211.705 16.944 li
+239.705 178.944 mo
+239.705 16.944 li
+@
+[0 2.8 ] 1.4 dsh
+14.305 177.944 mo
+241.105 177.944 li
+14.305 157.944 mo
+241.105 157.944 li
+14.305 137.944 mo
+241.105 137.944 li
+14.305 117.944 mo
+241.105 117.944 li
+14.305 97.944 mo
+241.105 97.944 li
+14.305 77.944 mo
+241.105 77.944 li
+14.305 57.944 mo
+241.105 57.944 li
+14.305 37.944 mo
+241.105 37.944 li
+14.305 17.944 mo
+241.105 17.944 li
+@
+gsave
+253.705 187.944 mo
+1.70499 187.944 li
+1.70499 7.94397 li
+253.705 7.94397 li
+cp
+clp
+0 lc
+[] 0 dsh
+false sadj
+1.70499 -2737.06 mo
+4.24998 -2552.98 li
+6.79598 -2376.98 li
+9.34098 -2208.89 li
+13.759 -1924.66 18.654 -1640.43 24.614 -1356.22 cv
+27.16 -1238.41 li
+29.705 -1127.06 li
+34.562 -922.47 39.996 -717.87 47.523 -513.361 cv
+50.069 -447.207 li
+52.614 -385.893 li
+55.159 -329.236 li
+57.705 -277.057 li
+61.675 -200.65 66.029 -124.124 72.978 -47.9209 cv
+75.523 -22.0378 li
+78.069 .810059 li
+80.614 20.802 li
+83.159 38.1201 li
+85.705 52.9441 li
+88.25 65.4531 li
+90.796 75.8291 li
+93.341 84.251 li
+95.887 90.9001 li
+98.432 95.957 li
+100.978 99.6001 li
+103.523 102.012 li
+106.069 103.372 li
+108.614 103.861 li
+115.605 104.102 121.972 97.1501 128.978 98.03 cv
+131.523 98.7891 li
+134.069 100.48 li
+136.614 103.282 li
+139.159 107.377 li
+141.705 112.944 li
+144.25 120.164 li
+146.796 129.217 li
+149.341 140.284 li
+151.887 153.545 li
+154.432 169.18 li
+156.978 187.369 li
+159.523 208.293 li
+162.069 232.132 li
+164.614 259.067 li
+167.159 289.277 li
+177.002 416.085 182.398 543.453 187.523 670.524 cv
+190.069 738.33 li
+192.614 811.215 li
+195.159 889.359 li
+197.705 972.942 li
+206.34 1268.27 212.532 1563.68 218.069 1859.07 cv
+220.614 1999.72 li
+223.159 2147.62 li
+232.552 2709.84 239.689 3272.1 246.069 3834.36 cv
+248.614 4064.6 li
+251.159 4304.06 li
+253.705 4552.94 li
+@
+grestore
+%ADOBeginSubsetFont: GISAAA+CMBX10 AddGlyphs
+%ADOt1write: (1.0.24)
+%%Copyright: Copyright 2011 Adobe System Incorporated. All rights reserved.
+systemdict begin
+YNDRLK+CMBX10 dup
+/Private get dup rcheck
+{begin true}{pop false}ifelse exch
+/CharStrings get begin
+systemdict /gcheck known {currentglobal currentdict gcheck setglobal} if
+/A <1C60D8A8C9B08A941DDBC3AF1C109AC61AF06DEF14497758E2577FC09808
+E2F83FED36FAC5C5DF9845F9151204EBE19A62A093C0C714296A8AEB5EA72983
+7304C560208E23A9B00E450B7895C64B840FF7B8D2624ED826E8D6D1CB5BC276
+3958AE415A241BD617EA928FD9818043D58C39BCDA5256A3F17DFF2FADD0CDFE
+4A5999053732F0E5CE29974C519106> |-
+/W <1C60D8A8C9B08A949EE89938EFD2B089915D4CA87E50351E8DD3F3914A85
+384965AB9720D1BDB02951199DD63BE938B296E11B8132C78ABED307E15E2C96
+04E0EEA5C8FB1D25F45078482232C4120E0C6D7ECC100B9CF59823239764E960
+AC203F05154297337EBEC8D426CABE71C6D1BABE3D2EE87EB4EC26DC5A175D2E
+1776DC7CB846E1C76A588A844BC3111554540D100610F9152C35EB0670475763
+7F97762997D01BB6BF9BF94F9DBF981A5DB94B101F849599A265> |-
+/a <1C60D8A8C9B08A95C60527548E754D765DB4EDA6BA0D2CC6D8A620394D95
+5731400D0093175DD4FDCB6F936DAB2E93BD9C1B54BF99F619E92F88F8093B57
+6575F38778E5971C238BB03705C8902A6FCFED1FF202619A2D8A4C3FD818942E
+E7E0400EE37C1268C755A54355454E010823DC11303C9CDCFFF1370DF47DDE8E
+0505D81ACB493683AAFD9A5B8B94F66FF9ECA66884B26F31C72D900D51753830
+4DA83D95E97AC104F2FDC53254E575E01E9C7E8025E9> |-
+/e <1C60D8A8C9B08A95D1DE8AA71D3914AC9DDC5BFDDE55301EE17DAE184B08
+E53C36FBF9A44FDF3309DBE08895DBFECCF103737D7326528346FD01CD1D9FC3
+874638E8C50ADE3B494897353EB3188B512405DD1BA5DA59E8C179230F7C8D15
+AFCEA2228DAC03C77D614B36A41126CE831B41CDF160A67B175BB36C52353A72
+5460F4256C> |-
+/k <1C60D8A8C9B08A95F1118A977C6242CC6F5E327BF4A2BCE6E631EAC27F33
+5285F637895192724CE2C53641A392411149B8A3F127ECD7DEB11923D35A35EC
+238223B6B1C9CF9675A0C83B3A0C95C18823DF1B6F368BBFEEE7185E77AE9040
+378C34B27A11D9EE3C9721E2EAFF82B925C0F3ABE698646F0C4A57CEC100EA29
+86134B063D8450710541B66D42FC62B89A6AB4B6D6C05FC0E5F8EF9F1253768A
+DA78BF283C77228ACE6FD83E9384> |-
+/o <1C60D8A8C9B7FCB6A15C803B3B972EE31F5A721ABF9B8490D1BCABFAF507
+3D6D0835AA64493F9EC5B8BAE86BFF5C8028599ED438B3807899BF98EB3DF2EE
+9BBE5DC52FDB77ACA45EA052A40521B13F529CBBBB8B40F192297C658BE1CF97
+9B5618AA4355B6A77C9FC09641> |-
+/r <1C60D8A8C9B08A95A5BEE1199161ADD44E1E8B27A5C75D09130CF9546F37
+4B2A22381A06BD734F2C4BF093B03F9AF2D0D4C8BE8AA6899632B1BDCEA5F8FA
+27D0647BB27FC7927912A6761C3F8A51172D73B92082F06EFA277243DBD96EE1
+6421DB7B86390678EAD31E9D8E521BD186BAE7A8A68851384DC5E4933D7D1C5E
+E5A527356EDB77> |-
+systemdict /gcheck known {setglobal} if end {end} if
+end
+YNDRLK+CMBX10 /Encoding get
+dup 65 /A put
+dup 87 /W put
+dup 97 /a put
+dup 101 /e put
+dup 107 /k put
+dup 111 /o put
+dup 114 /r put
+pop
+%ADOEndSubsetFont
+/YNDRLK+CMBX10*1
+[46{/.notdef}rp /period 9{/.notdef}rp /eight 8{/.notdef}rp /A 21{/.notdef}rp /W
+9{/.notdef}rp /a 3{/.notdef}rp /e 5{/.notdef}rp /k 3{/.notdef}rp /o
+2{/.notdef}rp /r 141{/.notdef}rp]
+YNDRLK+CMBX10 nf
+YNDRLK+CMBX10*1 [9.9626 0 0 -9.9626 0 0 ]msf
+324.775 14.8624 mo
+(WorkArea)
+[10.8911 5.72845 4.72226 9.86591 8.65753 4.72226 5.25021 0 ]xsh
+%ADOBeginSubsetFont: BUZAAA+CMSY10 AddGlyphs
+%ADOt1write: (1.0.24)
+%%Copyright: Copyright 2011 Adobe System Incorporated. All rights reserved.
+systemdict begin
+YNDRLL+CMSY10 dup
+/Private get dup rcheck
+{begin true}{pop false}ifelse exch
+/CharStrings get begin
+systemdict /gcheck known {currentglobal currentdict gcheck setglobal} if
+/bullet <1C60D8A8C9B7A73D8D0B3FCDAA7E46FB68E7B1A6E412E25369E4ABB
+A70D277941C6A488EED866AD61E359C443EB0FEA5> |-
+systemdict /gcheck known {setglobal} if end {end} if
+end
+YNDRLL+CMSY10 /Encoding get
+dup 178 /bullet put
+pop
+%ADOEndSubsetFont
+/YNDRLL+CMSY10*1
+[161{/.notdef}rp /minus 16{/.notdef}rp /bullet 77{/.notdef}rp]
+YNDRLL+CMSY10 nf
+YNDRLL+CMSY10*1 [9.9626 0 0 -9.9626 0 0 ]msf
+283.593 34.7875 mo
+(\262)sh
+%ADOBeginSubsetFont: GLAAAA+CMR10 AddGlyphs
+%ADOt1write: (1.0.24)
+%%Copyright: Copyright 2011 Adobe System Incorporated. All rights reserved.
+systemdict begin
+YNDRLJ+CMR10 dup
+/Private get dup rcheck
+{begin true}{pop false}ifelse exch
+/CharStrings get begin
+systemdict /gcheck known {currentglobal currentdict gcheck setglobal} if
+/parenleft <1C60D8A8C9B08A958B2129D6E9761120E2D623F206A8BB61D8ED
+90A20EE239C62172B553BFF416342D6CD99C95C515CA225C40039DBAF08CE4F0
+55B08F39C15D29C99EF3EDD066CCCEF8932365A3BB1620FA5F0BCE8AF21A5BDE
+C0FFD55FA45F247FC811007CB408F0DCDD3AE01E3246> |-
+/parenright <1C60D8A8C9B08A958B2129D6E9761120E2D623F206A8A207F03
+DEA8F466C0D4F860EDF515D421F89285FC2D8EC76F5E903EDE1B5CFFAEC5DEA9
+22C7FC4A51953A99A5FB1F96793348D816F60492670058F4DEA6D328AB20FBAD
+B3C1B57A79D8CCD13A3C6D068BAD5F09F347ED0C895> |-
+/hyphen <1C60D8A8C9B08A959E2F69652E8B76AC2AC5B4F1FA8662A86AEED57
+846929C2FBC07360B> |-
+/colon <1C60D8A8C9B08A95708109816759149241680C741B6923EBD56E6248
+E5269499A7D548A5AC3ECB516C4A5048666940A11AD8CB54F4BA847274447EEB
+614F54B956BBCFCAD8E88A403FBD4464DA283ACB> |-
+/semicolon <1C60D8A8C9B08A9570810981675918D0BCF1CD202F5F8524F1CF
+461D4270459E44DB560BC854C3F48DFD92347C27A6AAF0E2B1A04AFEB82D8D46
+6FB78A9BF2E74CE09AE4A8F352791B5C7110FA6307B2916ECC9F5904CC094CEE
+59D67B4016AFD5BCFCA64E9EC736BD726D1A09B76CECE761EBE5219FDE764D2A
+9C6D289DBA39E76263> |-
+/equal <1C60D8A8C9B08A946182837629008D945C50B3BD77B79680F3B07BDA
+6301D2521ADF665EADEA779B8650AC6CDB556621631497A3BE00C67036F6EB06
+05A36A2C0EE306396247E4A79F8EFAE500D78B59605F041F11> |-
+/b <1C60D8A8C9B08A95C5897169EED96641DA8B10CA087E6B7A5588052BABB7
+BC0836B12A49068694BF7254A2B820A876E020738250AC32ED44C3A7F2C5F700
+C2D03E307AFB7135F6415FEEB6D856569E9D5429B4DD3F524606607A7502F4FA
+00BE0184FC677554B2B6367E60A281A4837A2231515AF09B33399B7D5C3D2E8F
+3A2971F2933C4A4CAAA727A80DBDC9692BD6B38D543D422C14068650D2C61B6B
+E587855459543E451B14A31F96D9B341DFF415> |-
+/d <1C60D8A8C9B08A95C5897169EED96D33CB6A9013DDE3D04C2845E595598F
+3E2E6D79295DF7CC9B6C00D2CF2AC2502697856E5474C945441376692CB09ED9
+25CE9D4F710C7DE089B5E658450CEECC611DD1F25787624443E710373775DB0D
+7A6478B3FD4F82DF4FC109429D4EADCED1BD77A35BF25A1C1E584B0EB23CE621
+6847A21EE88B35D72221C7F9F0705E61C9F9C0A224456A04D3E81DE0BD98422F
+FA8C7335713899937F5FFEC7771BB8FDAEE53DE3E6> |-
+/h <1C60D8A8C9B08A95C5897169EED9664BED359D179BDDBB0B44F78A354068
+F188259C421AB0565D2C93368C7FE6E0A9F40BB196D1F23D06A9B4099431512B
+C136412B8071F881A48FA8A97D03ACD06EBB8221F2FCB171D9A905549A8F7881
+2735FA48F2EC00ACCEB309920B412B3F60D0173EF224E4CB3F5C1DAD9CC6147F
+9ADED8EC6C9533B7B1AABCF5D1E9B7F36A2D4B8D2B26EAE8EA> |-
+/i <1C60D8A8C9B08A9570810981675968AD25F24D2B3EAE33A4AEDADBE9B65D
+A53E9F2E54B16133284CA9914BED3880C793207FBDC7926300AD07E6E54407B5
+1EA082FB5EE3816A6A23A8296A947037E4E873086619D7E86B5A60AFA576E554
+D14C9B74D403098ADE85F71880A3E75D7FC1> |-
+/k <1C60D8A8C9B08A95D222871B45C8170346D4B3692EE324314ECB68C750E8
+0C39C0E118E6175CCD69769E2118B02E8AEF864A1ADB8D0BF5A5FFDD4A9B9B6C
+C867F43FFF5A7BBEB959851C5A4053DF1F3B8EBF64DEEC6B682D7055139D4103
+B0A63AD1D8193F253FA365D16CC3EC1AC7C7AEA533CCF6F8272FF6B8CD1FC7B4
+0DE006133FBB2B23E8E1776C461B4D8ABE09C8DE32B25BAD44EC36CACD378C29
+9496103B1CB809290EFAF69E7582E8754F6B25D7A0FD> |-
+/l <1C60D8A8C9B08A9570810981675968AD25F317189905083B97CD6CD1B880
+05B79B666989E13C0F8D0889AD0162C7E87274D188EBBD1A911FDD0B6E360AA1
+C515725198B9106B157680FC> |-
+/n <1C60D8A8C9B08A95C5897169EED9664BED359D179BD38846B55E34D4CAA6
+E85E9CF3F20D5FF6B35F1C9AAE2A542B7B24E087B6004A4C7219997095CC0DD0
+7A15DB83B5FEAD13F209441FFD364AD3DBF6E16129F3599BACA005A523490ABC
+41E4DF320ACE384037EE1D352E3FAD8A9E2CECBD75A999F7B655F4FFBFAC6FFF
+84029A8DF710DBB0D7CD4C1D20367E79BC4E3121199FA9593C876B29EA793F10
+2A1E36BE8056D0377A> |-
+/p <1C60D8A8C9B08A95C5897169EED91609D9E4D5F91353B4B61FEC4EAC5FAD
+7B5032144CF9ADF0F974C4F1789F7935ECC14F06F084A964A5CA17285CA0C9EC
+1B8F57A0E66AEAF75BA11AE734E6416585ED4DB12A3372EA2BA1BABC0DE7BE87
+584CD6EA8819CE99CB18F04E8ECD619D7E02CDE60A0AA18597DE62AF13ABCC5A
+5F1D59EBFBBEF560144EF0DCE1B387B4BC40F158468D6A4DE477659B50190482
+6F081FC4942E5187D9F03F6D1BD471F55D6300> |-
+/r <1C60D8A8C9B08A9584DCB847BA986212E50A0E258C2648145E7BCFAC2BA8
+6C36E84B654FABD35F6BE558D4B54676EA44C57F6EF668BC4866822048422FD6
+D8B608EB2C1C67EC3EE3CEBDD94E9A9214F99F9DA8EE2F6900EB47053AC763EE
+DABCA0360701D8CB383B9ECCD7B848D18CFB88761A167471DE407F7BED4BC50B
+779C4D57BF133C3E4777AA4605171C6D> |-
+/s <1C60D8A8C9B08A9586D4F7B21AA9B0967A13D9D7A42FE5E3505E2F3EE7CA
+FF99F258F00E5A08E889C3CC5D8ACF7164CD2AC0013AEF91C534D4ACEB36DB05
+CE0E820904C7EB6E6797C2D5FB5E96476FD3694427C3F770022BFE939EC57571
+FAC1F965E0A7F32B36C86522DA3AFB3A309E4B5D72F0E56F1BEB5C7254CECC22
+9B1219F95DA80187F2FFAF15E03AF5B396BE650B53989F1A64B4AA9655D1019B
+496166D38FC8961ACDA2D0B1533422796A114C02DCAA98A8558155EE2C970442
+944A032E8A6A4004C15A48F9176AE45E44068C23BC> |-
+/t <1C60D8A8C9B08A958B2129D6E9766AD6B3247B9CBDFB0724765D43ED23A7
+B2BC7B24077C209594776C48799589E3DF7269407A6893D4C106057122D99E3F
+649ACAFBE1812EEAA6C4DCDDD716BEB7694626BFFCAE715C15EF0FD8CE9F6FE4
+E96B03> |-
+/u <1C60D8A8C9B08A95C5897169EED96D33CB6A8CCD6F539BADC574F30FA019
+2FAAA0351E8C93175F4B6BE4D2DCA8A13E4F01BEC5788441B5C71C1247369B6B
+73137454B1C207EA4F43D533FE87512BAD8DD4F3DBBECD9A7A1CE3F33A4D3F31
+6952FDB339B4B6A937009D6EC9821D8553981B7D8AABC3E750369071> |-
+/v <1C60D8A8C9B08A95D222871B45C81C126204E8A3F3EFC2EBF937B1E5F2B8
+737EDCCFF78DB8693FA0E7B559CFAC0A233112105FC1A8807ADD3013D4AE86C4
+38318F1223CADD606642DF7E9A8EE9BE743E975DA759D856D52F7E927FE33606
+3979ED38AB2E1EA4CB4F371A1EB04E6C5B864C9DB5271435AB2DE7D9DE15A6B1
+D9E3FD555F015DADE467> |-
+systemdict /gcheck known {setglobal} if end {end} if
+end
+YNDRLJ+CMR10 /Encoding get
+dup 40 /parenleft put
+dup 41 /parenright put
+dup 45 /hyphen put
+dup 58 /colon put
+dup 59 /semicolon put
+dup 61 /equal put
+dup 98 /b put
+dup 100 /d put
+dup 104 /h put
+dup 105 /i put
+dup 107 /k put
+dup 108 /l put
+dup 110 /n put
+dup 112 /p put
+dup 114 /r put
+dup 115 /s put
+dup 116 /t put
+dup 117 /u put
+dup 118 /v put
+pop
+%ADOEndSubsetFont
+/YNDRLJ+CMR10*1
+[40{/.notdef}rp /parenleft /parenright 3{/.notdef}rp /hyphen /.notdef /slash /zero
+/one /two /three /four /five 4{/.notdef}rp /colon /semicolon
+/.notdef /equal 3{/.notdef}rp /A /.notdef /C 5{/.notdef}rp /I
+2{/.notdef}rp /L /M /N /O /P 2{/.notdef}rp /S
+/T /U 11{/.notdef}rp /a /b /.notdef /d /e
+/f /g /h /i /.notdef /k /l /.notdef
+/n /o /p /.notdef /r /s /t /u
+/v 4{/.notdef}rp /endash 132{/.notdef}rp]
+YNDRLJ+CMR10 nf
+YNDRLJ+CMR10*1 [9.9626 0 0 -9.9626 0 0 ]msf
+293.556 34.7875 mo
+(Theend-behaviorislike)
+[7.19299 5.53922 7.24979 4.4234 5.53918 5.53922 3.31747 5.81616 4.4234 5.53918 4.70435 5.26025
+2.76959 4.98129 6.73172 2.76962 6.75162 2.76959 2.76962 4.98328 0 ]xsh
+%ADOBeginSubsetFont: WRBBAA+CMMI10 Initial
+%ADOt1write: (1.0.24)
+%%Copyright: Copyright 2011 Adobe System Incorporated. All rights reserved.
+13 dict dup begin
+/FontType 1 def
+/FontName /WRBBAA+CMMI10 def
+/FontInfo 8 dict dup begin
+/Notice (Copyright (c) 1988 - 1996 Blue Sky Research and Y&Y, Inc. (978) 371-3286) def
+/Weight (Medium) def
+/ItalicAngle -14.04 def
+/BaseFontName (CMMI10) def
+/WasEmbedded true def
+end def
+/PaintType 0 def
+/FontMatrix [0.001 0 0 0.001 0 0] def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 120 /x put
+dup 121 /y put
+def
+/UniqueID 5087385 def
+/FontBBox {-32 -250 1048 750} def
+end
+systemdict begin
+dup /Private
+12 dict dup begin
+/|- {def} def
+/| {put} def
+/BlueValues [-22 -0 683 705 431 442 453 466] def
+/OtherBlues [-205 -194] def
+/BlueScale 0.04379 def
+/StdHW [31] def
+/StdVW [72] def
+/StemSnapH [25 31] def
+/password 5839 def
+/MinFeature {16 16} def
+/OtherSubrs[{}{}{}{systemdict/internaldict known not{pop 3}{1183615869
+systemdict/internaldict get exec dup/startlock known{/startlock get exec}{dup
+/strtlck known{/strtlck get exec}{pop 3}ifelse}ifelse}ifelse}executeonly]def
+/Subrs 5 array
+dup 0 <1C60D8A8CC31FE2BF6E07AA3E541E2> |
+dup 1 <1C60D8A8C9C3D06D9E> |
+dup 2 <1C60D8A8C9C202D79A> |
+dup 3 <1C60D8A849> |
+dup 4 <1C60D8A8CC3674F41144B13B77> |
+def
+put
+dup /CharStrings
+3 dict dup begin
+/x <1C60D8A8C9B08A95C3B1459DC8650F9F96183FC46268F5BDA744B05C84F8
+C7E5FE6BFCA9D4C8BD3488080E8FC96F34EA177DCAE190D27F37102D2F45514A
+ECF6E4A3B2E6F401810D0AF13E4BDFDB8118476E04C9DD93F8884F46C9ABEE13
+C8E7992449902F6BC3D518B2A70293976C8BCE67ED913D975C52E884BF7F46CE
+8DF8170D79262260A6CB5A6A088C0A964E0271DA63944ABA9C96D1AA58CB590F
+97DC9C8372606676C2CA18B1A9303EBF11B510FAB8A33E9B530D274E48DD09EE
+8829EC16181BBC16C4E81343ACB5386F22A9C0CA2C23959102E833> |-
+/y <1C60D8A8C9B08A95A3A690DEE11C2ACFF7516D4A7CDA884FB3B130648C63
+2F41B68B5E071E6BAD692658125A4CE9A4427A55054BF5DABFF855AF9D186215
+1F50AD5D2EE36E064C9718B8694EF83525324184D7DD07A10B9FD203C707D849
+3E926469CD1C36E94D5785557A2D95B556774E51CEFBAE2CC8AB735FFF293AFE
+FA32B8D1FD5C52EC860AA6EC20816B24BD1EB69FE8581708322D6F09A08B3182
+91EF57EAE554A00C60D585B786E53371A6D3FB2D8729C3F2C51DB65ABF8CA421
+EEB103AED2CB924D829D66429CF6664CDEAFEEC4AD07C95E7FE8BCAB5D2A1AD6
+731779D5> |-
+/.notdef <1C60D8A8C9B08A959E2F69652E8B8F> |-
+end put
+end
+dup /FontName get exch definefont pop
+end
+%ADOEndSubsetFont
+/YNDRLM+CMMI10 /WRBBAA+CMMI10 findfont ct_VMDictPut
+/YNDRLM+CMMI10*1
+[120{/.notdef}rp /x /y 134{/.notdef}rp]
+YNDRLM+CMMI10 nf
+YNDRLM+CMMI10*1 [9.9626 0 0 -9.9626 0 0 ]msf
+399.866 34.7875 mo
+(y)sh
+YNDRLJ+CMR10*1 [9.9626 0 0 -9.9626 0 0 ]msf
+407.875 34.7875 mo
+(=)sh
+YNDRLL+CMSY10*1 [9.9626 0 0 -9.9626 0 0 ]msf
+418.391 34.7875 mo
+(\241)sh
+YNDRLM+CMMI10*1 [9.9626 0 0 -9.9626 0 0 ]msf
+426.14 34.7875 mo
+(x)sh
+%ADOBeginSubsetFont: KEDBAA+CMR7 Initial
+%ADOt1write: (1.0.24)
+%%Copyright: Copyright 2011 Adobe System Incorporated. All rights reserved.
+13 dict dup begin
+/FontType 1 def
+/FontName /KEDBAA+CMR7 def
+/FontInfo 8 dict dup begin
+/Notice (Copyright (c) 1988 - 1992 Blue Sky Research and Y&Y, Inc. http://www.YandY.com) def
+/Weight (Medium) def
+/ItalicAngle 0 def
+/BaseFontName (CMR7) def
+/WasEmbedded true def
+end def
+/PaintType 0 def
+/FontMatrix [0.001 0 0 0.001 0 0] def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 51 /three put
+def
+/UniqueID 5000790 def
+/FontBBox {-286 -250 1122 967} def
+end
+systemdict begin
+dup /Private
+13 dict dup begin
+/|- {def} def
+/| {put} def
+/BlueValues [-20 -0 683 703 431 446 664 674] def
+/OtherBlues [-205 -194] def
+/BlueScale 0.04379 def
+/StdHW [36] def
+/StdVW [79] def
+/StemSnapH [28 36] def
+/StemSnapV [79 95] def
+/password 5839 def
+/MinFeature {16 16} def
+/OtherSubrs[{}{}{}{systemdict/internaldict known not{pop 3}{1183615869
+systemdict/internaldict get exec dup/startlock known{/startlock get exec}{dup
+/strtlck known{/strtlck get exec}{pop 3}ifelse}ifelse}ifelse}executeonly]def
+/Subrs 5 array
+dup 0 <1C60D8A8CC31FE2BF6E07AA3E541E2> |
+dup 1 <1C60D8A8C9C3D06D9E> |
+dup 2 <1C60D8A8C9C202D79A> |
+dup 3 <1C60D8A849> |
+dup 4 <1C60D8A8CC3674F41144B13B77> |
+def
+put
+dup /CharStrings
+2 dict dup begin
+/three <1C60D8A8C9B08A95C25148D4A67F69EFB9DDFA5ECA5AE37566D87066
+172F8CABE2B2CB84CA762EB5E603C8A9A699CCCFA6A0578E3DA76E6C9E7B5A84
+45F01D818A380DD4AC46AFDB5422B8800FEF2E8AFDA86EDD8199C34D64992E4F
+43992CF1D54B07E3F575480A9A0B868375A4E2A9893BE0AEBB713690AB6C5B93
+E6D8D619357F90F56F58A8525CC0A1BD91DA9365507B440F549B60D4E7E5CBB3
+769D4C82F061F9E20A25AD23418551374D804A6B25C8CE003D> |-
+/.notdef <1C60D8A8C9B08A958AA685092D4752> |-
+end put
+end
+dup /FontName get exch definefont pop
+end
+%ADOEndSubsetFont
+/YNDRLN+CMR7 /KEDBAA+CMR7 findfont ct_VMDictPut
+/YNDRLN+CMR7*1
+[51{/.notdef}rp /three 204{/.notdef}rp]
+YNDRLN+CMR7 nf
+YNDRLN+CMR7*1 [6.9738 0 0 -6.9738 0 0 ]msf
+431.835 30.6743 mo
+(3)sh
+YNDRLL+CMSY10*1 [9.9626 0 0 -9.9626 0 0 ]msf
+283.593 54.713 mo
+(\262)sh
+YNDRLM+CMMI10*1 [9.9626 0 0 -9.9626 0 0 ]msf
+293.556 54.713 mo
+(x)sh
+YNDRLJ+CMR10*1 [9.9626 0 0 -9.9626 0 0 ]msf
+299.25 54.713 mo
+(-int:)
+[3.31747 2.76959 5.26224 3.87555 0 ]xsh
+YNDRLM+CMMI10*1 [9.9626 0 0 -9.9626 0 0 ]msf
+325.685 54.713 mo
+(x)sh
+YNDRLJ+CMR10*1 [9.9626 0 0 -9.9626 0 0 ]msf
+337.496 54.713 mo
+(=0\(even\);)
+[13.868 10.3123 3.87552 4.4234 4.98328 4.4234 5.53922 3.87552 0 ]xsh
+YNDRLM+CMMI10*1 [9.9626 0 0 -9.9626 0 0 ]msf
+397.897 54.713 mo
+(x)sh
+YNDRLJ+CMR10*1 [9.9626 0 0 -9.9626 0 0 ]msf
+409.708 54.713 mo
+(=)sh
+YNDRLL+CMSY10*1 [9.9626 0 0 -9.9626 0 0 ]msf
+423.574 54.713 mo
+(\241)sh
+YNDRLJ+CMR10*1 [9.9626 0 0 -9.9626 0 0 ]msf
+431.323 54.713 mo
+(1)sh
+293.557 66.6682 mo
+(\(odd\))
+[3.87552 5.25827 5.53922 5.53918 0 ]xsh
+YNDRLL+CMSY10*1 [9.9626 0 0 -9.9626 0 0 ]msf
+283.594 86.5933 mo
+(\262)sh
+YNDRLM+CMMI10*1 [9.9626 0 0 -9.9626 0 0 ]msf
+293.557 86.5933 mo
+(y)sh
+YNDRLJ+CMR10*1 [9.9626 0 0 -9.9626 0 0 ]msf
+298.799 86.5933 mo
+(-int:)
+[3.31747 2.76959 5.26224 3.87555 0 ]xsh
+YNDRLM+CMMI10*1 [9.9626 0 0 -9.9626 0 0 ]msf
+321.623 86.5933 mo
+(y)sh
+YNDRLJ+CMR10*1 [9.9626 0 0 -9.9626 0 0 ]msf
+329.971 86.5933 mo
+(=0\(passesthroughori-)
+[10.8572 8.50607 3.87552 5.53922 4.98129 3.92523 3.92523 4.4234 7.45001 3.87552 5.53922 3.9053
+4.98129 5.53922 4.98129 9.06396 4.98132 3.90533 2.76959 0 ]xsh
+293.557 98.5485 mo
+(gin\))
+[4.98129 2.76962 5.53918 0 ]xsh
+grestore
+grestore
+pgrs
+%%PageTrailer
+[
+[/CSA [/0 ]]
+[/CSD [/0 ]]
+] del_res
+/YNDRLM+CMMI10*1 uf
+/YNDRLM+CMMI10 uf
+/WRBBAA+CMMI10 uf
+/YNDRLN+CMR7*1 uf
+/YNDRLN+CMR7 uf
+/KEDBAA+CMR7 uf
+/YNDRLJ+CMR10*1 uf
+/YNDRLJ+CMR10 uf
+/GLAAAA+CMR10 uf
+/YNDRLL+CMSY10*1 uf
+/YNDRLL+CMSY10 uf
+/BUZAAA+CMSY10 uf
+/YNDRLK+CMBX10*1 uf
+/YNDRLK+CMBX10 uf
+/GISAAA+CMBX10 uf
+Adobe_AGM_Image/pt gx
+Adobe_CoolType_Core/pt get exec
+Adobe_AGM_Core/restore_mysetup gx
+Adobe_AGM_Core/pt gx
+currentdict Adobe_AGM_Utils eq {end} if
+%%Trailer
+Adobe_AGM_Utils begin
+[/EMC pdfmark_5
+currentdict Adobe_AGM_Utils eq {end} if
+Adobe_AGM_Image/dt get exec
+Adobe_CoolType_Core/dt get exec
+Adobe_AGM_Core/dt get exec
+%%Pages: 1
+%%DocumentNeededResources:
+%%DocumentSuppliedResources: procset Adobe_AGM_Image 1.0 0
+%%+ procset Adobe_CoolType_Utility_T42 1.0 0
+%%+ procset Adobe_CoolType_Utility_MAKEOCF 1.23 0
+%%+ procset Adobe_CoolType_Core 2.31 0
+%%+ procset Adobe_AGM_Core 2.0 0
+%%+ procset Adobe_AGM_Utils 1.0 0
+%%DocumentNeededFeatures:
+%%DocumentSuppliedFeatures:
+%%DocumentCustomColors:
+%%CMYKCustomColor:
+%%RGBCustomColor:
+%%EOF
diff --git a/texmf-dist/doc/latex/eqexam/examples/hw03.tex b/texmf-dist/doc/latex/eqexam/examples/hw03.tex
index 68320f0c..f699c0f9 100644
--- a/texmf-dist/doc/latex/eqexam/examples/hw03.tex
+++ b/texmf-dist/doc/latex/eqexam/examples/hw03.tex
@@ -1,3 +1,4 @@
+% hw.cfg.txt, hw03.tex attached
\documentclass{article}
\usepackage[fleqn]{amsmath}
\usepackage[pdf,forcolorpaper,cfg=hw,nopoints,useforms,
diff --git a/texmf-dist/doc/latex/eqexam/examples/quiz01.pdf b/texmf-dist/doc/latex/eqexam/examples/quiz01.pdf
deleted file mode 100644
index 0a09709e..00000000
--- a/texmf-dist/doc/latex/eqexam/examples/quiz01.pdf
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/latex/eqexam/examples/quiz01.tex b/texmf-dist/doc/latex/eqexam/examples/quiz01.tex
index 8682623c..176fa863 100644
--- a/texmf-dist/doc/latex/eqexam/examples/quiz01.tex
+++ b/texmf-dist/doc/latex/eqexam/examples/quiz01.tex
@@ -2,9 +2,9 @@
\usepackage[fleqn]{amsmath}
\usepackage[pdf,cfg=quiz,forpaper,pointsonleft,
% compile with exactly one of the following three
- nosolutions
+% nosolutions
% answerkey
-% vspacewithsolns
+ vspacewithsolns
]{eqexam}
\examNum{1}\numVersions{2}\forVersion{a}
diff --git a/texmf-dist/doc/latex/eqexam/examples/selectversion_tst.pdf b/texmf-dist/doc/latex/eqexam/examples/selectversion_tst.pdf
deleted file mode 100644
index 141fb082..00000000
--- a/texmf-dist/doc/latex/eqexam/examples/selectversion_tst.pdf
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/latex/eqexam/examples/selectversion_tst.tex b/texmf-dist/doc/latex/eqexam/examples/selectversion_tst.tex
index 12b1faff..9c43ce6e 100644
--- a/texmf-dist/doc/latex/eqexam/examples/selectversion_tst.tex
+++ b/texmf-dist/doc/latex/eqexam/examples/selectversion_tst.tex
@@ -5,9 +5,9 @@
%
\usepackage[pointsonleft,nototals,forpaper,useforms,
% Select exactly one of the next three options
- nosolutions,
+% nosolutions,
% answerkey,
-% vspacewithsolns,
+ vspacewithsolns,
obeylocalversions, % try this in combination with
]{eqexam}
@@ -158,16 +158,16 @@ to verify that the new system of title management is working correctly.
\vfill\hfill\textbf{Problem~{\eqeCurrProb} continues on next page}}
\popProblem
-
-
\selectVersion{}{5}
\item \verb!\selectVersion{}{5}! This is a problem, version \vA{A}\vB{B}\vC{C}\vD{D}\vE{E} of 5.
+
\begin{verB}
This is version B
\end{verB}
\begin{verE}
This is version E
\end{verE}
+
\begin{solution}
This is version \vA{A}\vB{B}\vC{C}\vD{D}\vE{E}
@@ -211,6 +211,7 @@ This is version D
This is version E
\end{verE}
\end{solution}
+
\end{parts}
\end{problem*}
diff --git a/texmf-dist/doc/latex/eqexam/examples/test01.pdf b/texmf-dist/doc/latex/eqexam/examples/test01.pdf
deleted file mode 100644
index 51e8c54f..00000000
--- a/texmf-dist/doc/latex/eqexam/examples/test01.pdf
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/latex/eqexam/examples/test01.synctex b/texmf-dist/doc/latex/eqexam/examples/test01.synctex
deleted file mode 100644
index 16cc5e11..00000000
--- a/texmf-dist/doc/latex/eqexam/examples/test01.synctex
+++ /dev/null
@@ -1,4789 +0,0 @@
-SyncTeX Version:1
-Input:1:C:\Users\Public\Documents\My TeX Files\tex\latex\aeb\eqexam\examples\test01.tex
-Input:2:C:\Program Files\MiKTeX 2.9\tex\latex\base\article.cls
-Input:3:C:\Program Files\MiKTeX 2.9\tex\latex\base\size12.clo
-Input:4:C:\Program Files\MiKTeX 2.9\tex\latex\amsmath\amsmath.sty
-Input:5:C:\Program Files\MiKTeX 2.9\tex\latex\amsmath\amstext.sty
-Input:6:C:\Program Files\MiKTeX 2.9\tex\latex\amsmath\amsgen.sty
-Input:7:C:\Program Files\MiKTeX 2.9\tex\latex\amsmath\amsbsy.sty
-Input:8:C:\Program Files\MiKTeX 2.9\tex\latex\amsmath\amsopn.sty
-Input:9:C:\Program Files\MiKTeX 2.9\tex\latex\graphics\graphicx.sty
-Input:10:C:\Program Files\MiKTeX 2.9\tex\latex\graphics\keyval.sty
-Input:11:C:\Program Files\MiKTeX 2.9\tex\latex\graphics\graphics.sty
-Input:12:C:\Program Files\MiKTeX 2.9\tex\latex\graphics\trig.sty
-Input:13:C:\Program Files\MiKTeX 2.9\tex\latex\graphics-cfg\graphics.cfg
-Input:14:C:\Program Files\MiKTeX 2.9\tex\latex\graphics-def\dvips.def
-Input:15:C:\Users\Public\Documents\My TeX Files\tex\latex\aeb\acrotex\eqexam.sty
-Input:16:C:\Program Files\MiKTeX 2.9\tex\generic\oberdiek\ifpdf.sty
-Input:17:C:\Program Files\MiKTeX 2.9\tex\generic\ifxetex\ifxetex.sty
-Input:18:C:\Program Files\MiKTeX 2.9\tex\latex\xkeyval\xkeyval.sty
-Input:19:C:\Program Files\MiKTeX 2.9\tex\generic\xkeyval\xkeyval.tex
-Input:20:C:\Program Files\MiKTeX 2.9\tex\generic\xkeyval\xkvutils.tex
-Input:21:C:\Users\Public\Documents\My TeX Files\tex\latex\aeb\acrotex\web.cfg
-Input:22:C:\Users\Public\Documents\My TeX Files\tex\latex\aeb\acrotex\eqecus.opt
-Input:23:C:\Program Files\MiKTeX 2.9\tex\latex\xcolor\xcolor.sty
-Input:24:C:\Program Files\MiKTeX 2.9\tex\latex\graphics-cfg\color.cfg
-Input:25:C:\Program Files\MiKTeX 2.9\tex\latex\amsfonts\amssymb.sty
-Input:26:C:\Program Files\MiKTeX 2.9\tex\latex\amsfonts\amsfonts.sty
-Input:27:C:\Users\Public\Documents\My TeX Files\tex\latex\aeb\apb\comment.sty
-Input:28:C:\Users\Public\Documents\My TeX Files\tex\latex\aeb\acrotex\web.sty
-Input:29:C:\Users\Public\Documents\My TeX Files\tex\latex\aeb\acrotex\web.cfg
-Input:30:C:\Program Files\MiKTeX 2.9\tex\latex\tools\calc.sty
-Input:31:C:\Program Files\MiKTeX 2.9\tex\latex\hyperref\hyperref.sty
-Input:32:C:\Program Files\MiKTeX 2.9\tex\generic\oberdiek\hobsub-hyperref.sty
-Input:33:C:\Program Files\MiKTeX 2.9\tex\generic\oberdiek\hobsub-generic.sty
-Input:34:C:\Program Files\MiKTeX 2.9\tex\latex\oberdiek\auxhook.sty
-Input:35:C:\Program Files\MiKTeX 2.9\tex\latex\oberdiek\kvoptions.sty
-Input:36:C:\Program Files\MiKTeX 2.9\tex\latex\hyperref\pd1enc.def
-Input:37:C:\Program Files\MiKTeX 2.9\tex\latex\00miktex\hyperref.cfg
-Input:38:C:\Program Files\MiKTeX 2.9\tex\latex\hyperref\backref.sty
-Input:39:C:\Program Files\MiKTeX 2.9\tex\latex\oberdiek\rerunfilecheck.sty
-Input:40:C:\Program Files\MiKTeX 2.9\tex\latex\url\url.sty
-Input:41:C:\Program Files\MiKTeX 2.9\tex\latex\hyperref\hdvips.def
-Input:42:C:\Program Files\MiKTeX 2.9\tex\latex\hyperref\pdfmark.def
-Input:43:C:\Users\Public\Documents\My TeX Files\tex\latex\aeb\acrotex\websec.def
-Input:44:C:\Users\Public\Documents\My TeX Files\tex\latex\aeb\acrotex\exerquiz.sty
-Input:45:C:\Program Files\MiKTeX 2.9\tex\latex\tools\array.sty
-Input:46:C:\Program Files\MiKTeX 2.9\tex\latex\tools\verbatim.sty
-Input:47:C:\Users\Public\Documents\My TeX Files\tex\latex\aeb\acrotex\eforms.sty
-Input:48:C:\Users\Public\Documents\My TeX Files\tex\latex\aeb\acrotex\insdljs.sty
-Input:49:C:\Users\Public\Documents\My TeX Files\tex\latex\aeb\conv-xkv\conv-xkv.sty
-Input:50:C:\Users\Public\Documents\My TeX Files\tex\latex\aeb\acrotex\taborder.sty
-Input:51:C:\Users\Public\Documents\My TeX Files\tex\latex\aeb\acrotex\pdfdochex.def
-Input:52:C:\Users\Public\Documents\My TeX Files\tex\latex\aeb\acrotex\epdfmark.def
-Input:53:C:\Users\Public\Documents\My TeX Files\tex\latex\aeb\acrotex\aebjs.def
-Input:54:C:\Program Files\MiKTeX 2.9\tex\latex\psnfss\pifont.sty
-Input:55:C:\Program Files\MiKTeX 2.9\tex\latex\psnfss\upzd.fd
-Input:56:C:\Program Files\MiKTeX 2.9\tex\latex\psnfss\upsy.fd
-Input:57:C:\Program Files\MiKTeX 2.9\tex\latex\tools\multicol.sty
-Input:58:C:\Program Files\MiKTeX 2.9\tex\latex\amsfonts\umsa.fd
-Input:59:C:\Program Files\MiKTeX 2.9\tex\latex\amsfonts\umsb.fd
-Input:60:C:\Users\Public\Documents\My TeX Files\tex\latex\aeb\eqexam\examples\test01.aux
-Input:61:C:\Program Files\MiKTeX 2.9\tex\latex\hyperref\nameref.sty
-Input:62:C:\Program Files\MiKTeX 2.9\tex\generic\oberdiek\gettitlestring.sty
-Input:63:C:\Users\Public\Documents\My TeX Files\tex\latex\aeb\eqexam\examples\test01.out
-Input:64:C:\Users\Public\Documents\My TeX Files\tex\latex\aeb\eqexam\examples\test01.out
-Output:dvi
-Magnification:1000
-Unit:1
-X Offset:4736287
-Y Offset:4736287
-Content:
-!4701
-{1
-[1,37:0,42626580:30785864,42626580,0
-(1,37:0,0:0,0,0
-)
-[1,37:0,0:0,0,0
-(1,37:0,-2433924:0,0,0
-k1,37:0,-2433924:65781
-)
-]
-[1,37:0,42626580:30785864,42626580,0
-[1,37:0,42626580:30785864,44994723,0
-[1,37:0,-1581711:30785864,786432,0
-(1,37:0,-1581711:30785864,0,0
-h1,37:0,-1581711:30785864,0,0
-)
-]
-[1,37:0,41905684:30785864,42176675,0
-(1,37:0,6000831:30785864,1201930,808713
-(1,37:0,6000831:30785864,1201930,808713
-g1,37:0,6000831
-$1,37:0,6000831
-[1,37:0,6000831:30785864,1201930,808713
-(1,37:0,5446396:30785864,647495,0
-k1,37:7557014,5446396:7557014
-h1,37:7557014,5446396:0,0,0
-x1,37:9822374,5446396
-g1,37:10176268,5446396
-x1,37:17033519,5446396
-g1,37:17387413,5446396
-x1,37:18852140,5446396
-g1,37:19206034,5446396
-x1,37:21630867,5446396
-x1,37:23228851,5446396
-g1,37:23228851,5446396
-k1,37:30785864,5446396:7557013
-)
-(1,37:0,6626044:30785864,655359,183500
-k1,37:6560657,6626044:6560657
-h1,37:6560657,6626044:0,0,0
-x1,37:11812814,6626044
-g1,37:12166708,6626044
-x1,37:13862449,6626044
-g1,37:14216343,6626044
-x1,37:17861778,6626044
-g1,37:18215672,6626044
-x1,37:24225208,6626044
-g1,37:24225208,6626044
-k1,37:30785864,6626044:6560656
-)
-]
-$1,37:30785864,6000831
-g1,37:30785864,6000831
-)
-g1,37:30785864,6000831
-g1,37:30785864,6000831
-)
-(1,37:0,11617292:30785864,524288,131071
-(1,37:0,11617292:30785864,524288,131071
-g1,37:0,11617292
-$1,37:0,11617292
-[1,37:0,11617292:30785864,524288,131071
-(1,37:0,11748363:30785864,655359,0
-k1,37:13046800,11748363:13046800
-h1,37:13046800,11748363:0,0,0
-x1,37:16989768,11748363
-g1,37:17343662,11748363
-x1,37:17739063,11748363
-g1,37:17739063,11748363
-k1,37:30785863,11748363:13046800
-)
-]
-$1,37:30785864,11617292
-g1,37:30785864,11617292
-)
-g1,37:30785864,11617292
-g1,37:30785864,11617292
-)
-(1,37:0,13353996:30785864,520356,127139
-(1,37:0,13353996:30785864,520356,127139
-g1,37:0,13353996
-$1,37:0,13353996
-[1,37:0,13353996:30785864,520356,127139
-(1,37:0,13481135:30785864,647495,0
-k1,37:13967580,13481135:13967580
-h1,37:13967580,13481135:0,0,0
-x1,37:14705951,13481135
-x1,37:15933549,13481135
-g1,37:16287443,13481135
-x1,37:16818284,13481135
-g1,37:16818284,13481135
-k1,37:30785864,13481135:13967580
-)
-]
-$1,37:30785864,13353996
-g1,37:30785864,13353996
-)
-g1,37:30785864,13353996
-g1,37:30785864,13353996
-)
-(1,37:0,41682862:30785864,12984858,222822
-[1,37:0,41682862:13853544,3967018,0
-(1,37:0,38274990:13853544,559146,164453
-h1,37:0,38274990:0,0,0
-(1,37:0,38274990:0,0,0
-r1,37:0,38274990:0,0,0
-)
-$1,37:0,38274990
-[1,37:0,38274990:13853544,537395,157280
-(1,37:0,38274990:13853544,537395,0
-(1,37:0,38274990:13853544,537395,0
-(1,37:0,38274990:13853544,537395,0
-x1,37:2160117,38274990
-k1,37:13853544,38274990:11693427
-)
-)
-)
-]
-$1,37:13853544,38274990
-(1,37:13853544,38274990:0,559146,164453
-(1,37:13853544,38340771:0,624927,98672
-(1,37:13853544,38340771:0,624927,98672
-k1,37:2416797,38340771:-11436747
-(1,37:2416797,38340771:11436747,624927,98672
-(1,37:2416797,38439443:0,0,0
-)
-(1,37:2416797,38340771:11436747,624927,98672
-(1,37:2416797,38439443:11436747,723599,0
-[1,37:2416797,38439443:11436747,723599,0
-(1,37:2416797,37715844:11436747,0,0
-h1,37:2416797,37715844:0,0,0
-k1,37:13853544,37715844:11436747
-g1,37:13853544,37715844
-)
-]
-)
-)
-(1,37:13853544,37715844:0,0,0
-)
-)
-)
-)
-)
-g1,37:13853544,38274990
-g1,37:13853544,38274990
-)
-(1,37:0,39902468:13853544,559146,164453
-[1,37:0,39902468:13853544,537395,157280
-(1,37:0,39902468:13853544,537395,0
-(1,37:0,39902468:13853544,537395,0
-(1,37:0,39902468:13853544,537395,0
-x1,37:1507586,39902468
-k1,37:13853544,39902468:12345958
-)
-)
-)
-]
-$1,37:13853544,39902468
-(1,37:13853544,39902468:0,559146,164453
-(1,37:13853544,39968249:0,624927,98672
-(1,37:13853544,39968249:0,624927,98672
-k1,37:1764266,39968249:-12089278
-(1,37:1764266,39968249:12089278,624927,98672
-(1,37:1764266,40066921:0,0,0
-)
-(1,37:1764266,39968249:12089278,624927,98672
-(1,37:1764266,40066921:12089278,723599,0
-[1,37:1764266,40066921:12089278,723599,0
-(1,37:1764266,39343322:12089278,0,0
-h1,37:1764266,39343322:0,0,0
-k1,37:13853544,39343322:12089278
-g1,37:13853544,39343322
-)
-]
-)
-)
-(1,37:13853544,39343322:0,0,0
-)
-)
-)
-)
-)
-g1,37:13853544,39902468
-g1,37:13853544,39902468
-)
-(1,37:0,41529946:13853544,537395,152916
-x1,37:801989,41529946
-g1,37:1058669,41529946
-x1,37:1582588,41529946
-x1,37:1732318,41529946
-g1,37:1988998,41529946
-x1,37:3807148,41529946
-x1,37:4021048,41529946
-g1,37:4277728,41529946
-x1,37:6459508,41529946
-g1,37:6716188,41529946
-x1,37:8256268,41529946
-k1,37:13853544,41529946:5597276
-g1,37:13853544,41529946
-)
-]
-k1,37:14623585,41682862:770041
-(1,37:14623585,41682862:16162279,12984858,222822
-(1,37:14623585,41682862:16162279,12984858,222822
-(1,37:14623585,41905684:16162279,13207680,0
-[1,37:14623585,41905684:16162279,13207680,0
-(1,37:14623585,41879470:16162279,13155252,0
-[1,37:14649799,41879470:16109851,13155252,0
-(1,37:14649799,41682862:16109851,12762036,0
-[1,37:14846407,41682862:15716635,12762036,0
-(1,37:14846407,29860174:15716635,546132,0
-(1,37:14846407,29860174:0,0,0
-g1,37:14846407,29860174
-g1,37:14846407,29860174
-g1,37:14461387,29860174
-(1,37:14461387,29860174:0,0,0
-)
-g1,37:14846407,29860174
-)
-x1,37:17061433,29860174
-g1,37:17356345,29860174
-x1,37:20108403,29860174
-k1,37:25335723,29860174:5227320
-k1,37:30563042,29860174:5227319
-)
-(1,37:14846407,31596878:15716635,589824,196608
-h1,37:14846407,31596878:0,0,0
-$1,37:14846407,31596878
-[1,37:14846407,31596878:7104430,537395,157280
-(1,37:14846407,31596878:7104430,537395,0
-(1,37:14846407,31596878:7104430,537395,0
-(1,37:14846407,31596878:0,537395,152916
-x1,37:15370326,31596878
-x1,37:16461216,31596878
-g1,37:16717896,31596878
-x1,37:17102916,31596878
-k1,37:14846407,31596878:-2256509
-)
-r1,37:14846407,31596878:0,537395,0
-g1,37:21950837,31596878
-g1,37:21950837,31596878
-)
-)
-]
-$1,37:21950837,31596878
-x1,37:22335857,31596878
-g1,37:22592537,31596878
-$1,37:22592537,31596878
-(1,37:22592537,31596878:770040,506811,0
-x1,37:23362577,31596878
-)
-g1,37:23493647,31596878
-(1,37:23493647,31596878:1030998,483719,152916
-(1,37:23493647,31596878:1030998,483719,152916
-x1,37:24524645,31596878
-)
-)
-$1,37:24524645,31596878
-k1,37:27543844,31596878:3019199
-k1,37:30563042,31596878:3019198
-)
-(1,37:14846407,33333582:15716635,589824,196608
-h1,37:14846407,33333582:0,0,0
-$1,37:14846407,33333582
-[1,37:14846407,33333582:7104430,537395,157280
-(1,37:14846407,33333582:7104430,537395,0
-(1,37:14846407,33333582:7104430,537395,0
-(1,37:14846407,33333582:0,537395,152916
-x1,37:15370326,33333582
-x1,37:16461216,33333582
-g1,37:16717896,33333582
-x1,37:17102916,33333582
-k1,37:14846407,33333582:-2256509
-)
-r1,37:14846407,33333582:0,537395,0
-g1,37:21950837,33333582
-g1,37:21950837,33333582
-)
-)
-]
-$1,37:21950837,33333582
-x1,37:22335857,33333582
-g1,37:22592537,33333582
-$1,37:22592537,33333582
-(1,37:22592537,33333582:770040,506811,0
-x1,37:23362577,33333582
-)
-g1,37:23493647,33333582
-(1,37:23493647,33333582:1030998,483719,152916
-(1,37:23493647,33333582:1030998,483719,152916
-x1,37:24524645,33333582
-)
-)
-$1,37:24524645,33333582
-k1,37:27543844,33333582:3019199
-k1,37:30563042,33333582:3019198
-)
-(1,37:14846407,35070286:15716635,589824,196608
-h1,37:14846407,35070286:0,0,0
-$1,37:14846407,35070286
-[1,37:14846407,35070286:7104430,537395,157280
-(1,37:14846407,35070286:7104430,537395,0
-(1,37:14846407,35070286:7104430,537395,0
-(1,37:14846407,35070286:0,537395,152916
-x1,37:15370326,35070286
-x1,37:16461216,35070286
-g1,37:16717896,35070286
-x1,37:17102916,35070286
-k1,37:14846407,35070286:-2256509
-)
-r1,37:14846407,35070286:0,537395,0
-g1,37:21950837,35070286
-g1,37:21950837,35070286
-)
-)
-]
-$1,37:21950837,35070286
-x1,37:22335857,35070286
-g1,37:22592537,35070286
-$1,37:22592537,35070286
-(1,37:22592537,35070286:770040,506811,0
-x1,37:23362577,35070286
-)
-g1,37:23493647,35070286
-(1,37:23493647,35070286:1030998,483719,152916
-(1,37:23493647,35070286:1030998,483719,152916
-x1,37:24524645,35070286
-)
-)
-$1,37:24524645,35070286
-g1,37:24781325,35070286
-$1,37:24781325,35070286
-x1,37:25850825,35070286
-g1,37:25981895,35070286
-(1,37:25981895,35070286:1030998,483719,152916
-(1,37:25981895,35070286:1030998,483719,152916
-x1,37:27012893,35070286
-)
-)
-g1,37:27187653,35070286
-x1,37:27786573,35070286
-g1,37:27961333,35070286
-x1,37:28731373,35070286
-g1,37:28862443,35070286
-(1,37:28862443,35070286:1030998,483719,152916
-(1,37:28862443,35070286:1030998,483719,152916
-x1,37:29893441,35070286
-)
-)
-x1,37:30192901,35070286
-$1,37:30192901,35070286
-k1,37:30377972,35070286:185071
-k1,37:30563042,35070286:185070
-)
-(1,37:14846407,36806990:15716635,589824,196608
-h1,37:14846407,36806990:0,0,0
-$1,37:14846407,36806990
-[1,37:14846407,36806990:7104430,537395,157280
-(1,37:14846407,36806990:7104430,537395,0
-(1,37:14846407,36806990:7104430,537395,0
-(1,37:14846407,36806990:0,537395,152916
-x1,37:15370326,36806990
-x1,37:16461216,36806990
-g1,37:16717896,36806990
-x1,37:17102916,36806990
-k1,37:14846407,36806990:-2256509
-)
-r1,37:14846407,36806990:0,537395,0
-g1,37:21950837,36806990
-g1,37:21950837,36806990
-)
-)
-]
-$1,37:21950837,36806990
-x1,37:22335857,36806990
-g1,37:22592537,36806990
-$1,37:22592537,36806990
-(1,37:22592537,36806990:770040,506811,0
-x1,37:23362577,36806990
-)
-g1,37:23493647,36806990
-(1,37:23493647,36806990:1030998,483719,152916
-(1,37:23493647,36806990:1030998,483719,152916
-x1,37:24524645,36806990
-)
-)
-$1,37:24524645,36806990
-k1,37:27543844,36806990:3019199
-k1,37:30563042,36806990:3019198
-)
-(1,37:14846407,38543694:15716635,589824,196608
-h1,37:14846407,38543694:0,0,0
-$1,37:14846407,38543694
-[1,37:14846407,38543694:7104430,546132,157280
-(1,37:14846407,38543694:7104430,546132,0
-(1,37:14846407,38543694:7104430,546132,0
-(1,37:14846407,38543694:0,546132,0
-x1,37:15402547,38543694
-x1,37:16835677,38543694
-k1,37:14846407,38543694:-1989270
-)
-g1,37:21950837,38543694
-)
-)
-]
-$1,37:21950837,38543694
-x1,37:22335857,38543694
-g1,37:22592537,38543694
-$1,37:22592537,38543694
-(1,37:22592537,38543694:1155060,506811,0
-x1,37:23747597,38543694
-)
-g1,37:23878667,38543694
-(1,37:23878667,38543694:1030998,483719,152916
-(1,37:23878667,38543694:1030998,483719,152916
-x1,37:24909665,38543694
-)
-)
-$1,37:24909665,38543694
-k1,37:27736354,38543694:2826689
-k1,37:30563042,38543694:2826688
-)
-(1,37:14846407,40280398:15716635,546132,157280
-h1,37:14846407,40280398:0,0,0
-$1,37:14846407,40280398
-[1,37:14846407,40280398:7104430,546132,157280
-(1,37:14846407,40280398:7104430,546132,0
-(1,37:14846407,40280398:7104430,546132,0
-(1,37:14846407,40280398:0,546132,0
-x1,37:17119027,40280398
-k1,37:14846407,40280398:-2272620
-)
-g1,37:21950837,40280398
-)
-)
-]
-$1,37:21950837,40280398
-k1,37:26256940,40280398:4306103
-k1,37:30563042,40280398:4306102
-)
-]
-)
-]
-)
-]
-)
-)
-(1,37:14623585,41682862:16162279,12984858,222822
-[1,37:14623585,41905684:16162279,13207680,0
-(1,37:14623585,41892577:16162279,13181466,0
-r1,37:14649799,41892577:26214,13181466,0
-r1,37:30785864,41892577:26214,13181466,0
-)
-]
-)
-)
-g1,37:30785864,41682862
-g1,37:30785864,41682862
-)
-]
-(1,37:0,42626580:30785864,0,0
-h1,37:0,42626580:30785864,0,0
-)
-]
-]
-]
-!10794
-}1
-!10
-{2
-[1,192:0,42626580:30785864,42626580,0
-[1,192:0,0:0,0,0
-(1,192:0,-2433924:0,0,0
-k1,192:0,-2433924:65781
-)
-]
-[1,192:0,42626580:30785864,42626580,0
-[1,192:0,42626580:30785864,44994723,0
-[1,192:0,-1581711:30785864,786432,0
-(1,192:0,-1581711:30785864,0,0
-(1,192:0,-1581711:30785864,0,0
-k1,192:30785864,-1581711:30785864
-)
-)
-]
-[1,192:0,41905684:30785864,42176675,0
-(1,39:0,1413283:30785864,1684274,285084
-(1,38:0,1413283:0,0,0
-h1,38:0,1413283:0,0,0
-)
-(1,38:0,1413283:30785864,1684274,285084
-g1,38:0,1413283
-[1,38:0,1413283:3978540,1684274,152916
-(1,38:0,394196:3978540,665187,285084
-g1,38:0,394196
-(1,38:0,394196:3978540,665187,285084
-r1,38:0,394196:0,950271,285084
-x1,38:2870538,394196
-g1,38:3127218,394196
-x1,38:3405015,394196
-k1,38:3978540,394196:573525
-)
-g1,38:3978540,394196
-)
-(1,38:0,1413283:3978540,537395,152916
-g1,38:0,1413283
-(1,38:0,1413283:3978540,537395,152916
-x1,38:2181780,1413283
-g1,38:2438460,1413283
-x1,38:3978540,1413283
-g1,38:3978540,1413283
-)
-g1,38:3978540,1413283
-)
-]
-k1,38:11014326,1413283:7035786
-[1,38:11014326,1413283:2079108,1399190,285084
-(1,38:11014326,551488:2079108,537395,0
-g1,38:11014326,551488
-(1,38:11014326,551488:2079108,537395,0
-g1,38:11014326,551488
-x1,38:11570466,551488
-x1,38:12451734,551488
-g1,38:12708414,551488
-x1,38:13093434,551488
-g1,38:13093434,551488
-)
-g1,38:13093434,551488
-)
-(1,38:11014326,1413283:2079108,665187,285084
-g1,38:11014326,1413283
-(1,38:11014326,1413283:2079108,665187,285084
-k1,38:12053880,1413283:1039554
-r1,38:12053880,1413283:0,950271,285084
-k1,38:13093434,1413283:1039554
-)
-g1,38:13093434,1413283
-)
-]
-k1,38:20129219,1413283:7035785
-[1,38:20129219,1413283:10656645,1684274,152916
-(1,38:20129219,394196:10656645,665187,285084
-g1,38:20129219,394196
-(1,38:20129219,394196:10656645,665187,285084
-r1,38:20129219,394196:0,950271,285084
-$1,38:20129219,394196
-[1,38:20129219,394196:10656645,537395,157280
-(1,38:20129219,394196:10656645,537395,0
-(1,38:20129219,394196:10656645,537395,0
-(1,38:20129219,394196:10656645,537395,0
-x1,38:22289336,394196
-k1,38:30785864,394196:8496528
-)
-)
-)
-]
-$1,38:30785864,394196
-(1,38:30785864,394196:0,559146,164453
-(1,38:30785864,459977:0,624927,98672
-(1,38:30785864,459977:0,624927,98672
-k1,38:22546016,459977:-8239848
-(1,38:22546016,459977:8239848,624927,98672
-(1,38:22546016,558649:0,0,0
-)
-(1,38:22546016,459977:8239848,624927,98672
-(1,38:22546016,558649:8239848,723599,0
-[1,38:22546016,558649:8239848,723599,0
-(1,38:22546016,-164950:8239848,0,0
-h1,38:22546016,-164950:0,0,0
-k1,38:30785864,-164950:8239848
-g1,38:30785864,-164950
-)
-]
-)
-)
-(1,38:30785864,-164950:0,0,0
-)
-)
-)
-)
-)
-g1,38:30785864,394196
-)
-g1,38:30785864,394196
-)
-(1,38:20129219,1413283:10656645,537395,152916
-g1,38:20129219,1413283
-(1,38:20129219,1413283:10656645,537395,152916
-x1,38:20931208,1413283
-g1,38:21187888,1413283
-x1,38:21711807,1413283
-x1,38:21861537,1413283
-g1,38:22118217,1413283
-x1,38:23936367,1413283
-k1,38:30785864,1413283:6849497
-)
-g1,38:30785864,1413283
-)
-]
-g1,38:30785864,1413283
-)
-g1,39:30785864,1413283
-g1,39:30785864,1413283
-)
-(1,46:0,2689602:30785864,589824,196608
-k1,43:0,2689602:0
-(1,43:0,2689602:0,0,0
-g1,43:0,2689602
-g1,43:0,2689602
-)
-x1,43:604388,2689602
-x1,43:1715315,2689602
-k1,43:2029809,2689602:314494
-x1,43:2605070,2689602
-k1,43:2919565,2689602:314495
-x1,43:3219025,2689602
-$1,43:3219025,2689602
-(1,43:3219025,2689602:770040,506811,0
-x1,43:3989065,2689602
-)
-k1,43:4120135,2689602:131070
-(1,43:4120135,2689602:2057718,521949,152916
-(1,43:4120135,2689602:2057718,521949,152916
-x1,43:4547935,2689602
-x1,43:5596045,2689602
-x1,43:6177853,2689602
-)
-)
-$1,43:6177853,2689602
-x1,43:6477313,2689602
-k1,43:6791807,2689602:314494
-k1,43:6791807,2689602:0
-k1,43:6791807,2689602:0
-x1,43:8224937,2689602
-k1,44:6791807,2689602:-21390
-x1,44:8545787,2689602
-k1,44:8819511,2689602:273724
-x1,44:9889011,2689602
-x1,44:10295421,2689602
-k1,44:10569145,2689602:273724
-x1,44:11189455,2689602
-k1,44:11463179,2689602:273724
-x1,44:12532679,2689602
-k1,44:12806402,2689602:273723
-x1,44:15848060,2689602
-k1,44:16121784,2689602:273724
-x1,44:18731364,2689602
-k1,44:19005088,2689602:273724
-x1,44:20844628,2689602
-k1,44:21237999,2689602:393371
-x1,44:21751086,2689602
-k1,44:22024810,2689602:273724
-x1,44:22431220,2689602
-x1,44:23222650,2689602
-k1,44:23496374,2689602:273724
-x1,44:24929504,2689602
-x1,44:25250354,2689602
-k1,44:25524078,2689602:273724
-x1,44:26336898,2689602
-k1,44:26610621,2689602:273723
-x1,44:28450161,2689602
-k1,44:28728146,2689602:277985
-x1,44:29155946,2689602
-k1,45:28728146,2689602:21390
-x1,45:30204056,2689602
-x1,45:30785864,2689602
-k1,45:30785864,2689602:0
-)
-(1,46:0,3639874:30785864,546132,152916
-x1,46:1197840,3639874
-g1,45:1454520,3639874
-x1,45:1882320,3639874
-x1,45:2245950,3639874
-g1,45:2502630,3639874
-x1,45:6057648,3639874
-g1,45:6314328,3639874
-x1,45:7875798,3639874
-g1,45:8132478,3639874
-x1,45:8538888,3639874
-x1,45:9629778,3639874
-g1,45:9886458,3639874
-x1,45:11469318,3639874
-g1,45:11725998,3639874
-x1,45:13612596,3639874
-k1,46:30785864,3639874:17173268
-g1,46:30785864,3639874
-)
-(1,51:1425408,4786754:29360456,589824,196608
-(1,48:1425408,4786754:0,0,0
-g1,48:1425408,4786754
-g1,48:0,4786754
-g1,48:-256680,4786754
-(1,48:-256680,4786754:1425408,0,0
-k1,48:1168728,4786754:1425408
-)
-g1,48:1425408,4786754
-)
-k1,49:1425408,4786754:0
-(1,49:1425408,4786754:0,589824,196608
-k1,49:-2436856,4786754:-3862264
-x1,49:-2137396,4786754
-$1,49:-2137396,4786754
-x1,49:-1778586,4786754
-(1,49:-1778586,4526336:778615,322479,101945
-x1,49:-1032739,4526336
-)
-$1,49:-999971,4786754
-x1,49:-720896,4786754
-r1,49:-720896,4786754:0,786432,196608
-g1,49:1425408,4786754
-g1,49:1425408,4786754
-)
-(1,49:1425408,4786754:0,506811,0
-k1,49:442368,4786754:-983040
-(1,49:442368,4786754:983040,506811,0
-x1,49:1130496,4786754
-g1,49:1425408,4786754
-)
-)
-x1,49:2926986,4786754
-k1,49:3218767,4786754:291781
-x1,49:3736405,4786754
-k1,49:4028186,4786754:291781
-x1,49:4841006,4786754
-k1,49:5132787,4786754:291781
-x1,49:7892097,4786754
-k1,49:8183878,4786754:291781
-x1,49:8804188,4786754
-k1,49:9095970,4786754:291782
-x1,49:9480990,4786754
-k1,49:9772771,4786754:291781
-x1,49:10585591,4786754
-x1,49:12467911,4786754
-x1,49:12788761,4786754
-k1,49:13080542,4786754:291781
-x1,49:16100810,4786754
-k1,49:16401366,4786754:300556
-x1,49:17470866,4786754
-k1,49:17762647,4786754:291781
-x1,49:19991485,4786754
-x1,49:20269555,4786754
-k1,49:20561336,4786754:291781
-x1,49:21720674,4786754
-k1,49:22012456,4786754:291782
-x1,49:22654156,4786754
-k1,49:22945937,4786754:291781
-x1,49:25345895,4786754
-k1,50:25637676,4786754:291781
-x1,50:27010914,4786754
-x1,50:28491102,4786754
-k1,50:28782883,4786754:291781
-x1,50:29424583,4786754
-k1,50:29716364,4786754:291781
-x1,50:30785864,4786754
-k1,50:30785864,4786754:0
-)
-(1,51:1425408,5737026:29360456,546132,152916
-x1,51:3226446,5737026
-g1,50:3483126,5737026
-x1,50:3910926,5737026
-x1,50:4873476,5737026
-x1,50:5622126,5737026
-k1,51:30785864,5737026:25163738
-g1,51:30785864,5737026
-)
-(1,59:1425408,7402677:29360456,1447199,920944
-(1,52:1425408,7402677:29360456,1447199,920944
-(1,52:1425408,8323621:0,0,0
-)
-(1,52:1425408,7402677:29360456,1447199,920944
-(1,52:1425408,8323621:29360456,2368143,0
-[1,52:1425408,8323621:29360456,2368143,0
-(1,52:1425408,5955478:29360456,0,0
-h1,52:1425408,5955478:0,0,0
-k1,52:30785864,5955478:29360456
-g1,52:30785864,5955478
-)
-]
-)
-)
-(1,52:30785864,5955478:0,0,0
-)
-)
-g1,59:30785864,7402677
-g1,59:30785864,7402677
-)
-(1,67:1425408,9447560:29360456,665187,213887
-(1,62:1425408,9447560:0,0,0
-g1,62:1425408,9447560
-g1,62:0,9447560
-g1,62:-256680,9447560
-(1,62:-256680,9447560:1425408,0,0
-k1,62:1168728,9447560:1425408
-)
-g1,62:1425408,9447560
-)
-k1,63:1425408,9447560:0
-(1,63:1425408,9447560:0,589824,196608
-k1,63:-2436856,9447560:-3862264
-x1,63:-2137396,9447560
-$1,63:-2137396,9447560
-x1,63:-1778586,9447560
-(1,63:-1778586,9187142:778615,322479,101945
-x1,63:-1032739,9187142
-)
-$1,63:-999971,9447560
-x1,63:-720896,9447560
-r1,63:-720896,9447560:0,786432,196608
-g1,63:1425408,9447560
-g1,63:1425408,9447560
-)
-(1,63:1425408,9447560:0,506811,0
-k1,63:442368,9447560:-983040
-(1,63:442368,9447560:983040,506811,0
-x1,63:1130496,9447560
-g1,63:1425408,9447560
-)
-)
-x1,63:2430465,9447560
-k1,63:2662162,9447560:231697
-x1,63:5421472,9447560
-k1,63:5653169,9447560:231697
-x1,63:6273479,9447560
-k1,63:6505176,9447560:231697
-x1,63:6890196,9447560
-k1,63:7121893,9447560:231697
-x1,63:8234173,9447560
-x1,63:8875873,9447560
-k1,63:9107571,9447560:231698
-x1,63:12127839,9447560
-k1,63:12457587,9447560:329748
-x1,63:13034844,9447560
-k1,64:13266541,9447560:231697
-x1,64:13784179,9447560
-k1,64:14015876,9447560:231697
-x1,64:14572016,9447560
-x1,64:15320666,9447560
-k1,64:15552364,9447560:231698
-x1,64:16771594,9447560
-x1,64:17734144,9447560
-k1,64:17965841,9447560:231697
-x1,64:19377581,9447560
-k1,64:19609278,9447560:231697
-(1,64:19609278,9447560:4736286,665187,157280
-$1,64:19609278,9447560
-[1,64:19609278,9447560:4736286,665187,157280
-(1,64:19609278,9447560:4736286,665187,0
-(1,64:19609278,9447560:4736286,665187,0
-(1,64:19609278,9447560:4736286,665187,285084
-k1,64:21188040,9447560:1578762
-r1,64:21188040,9447560:0,950271,285084
-k1,64:22766802,9447560:1578762
-k1,64:24345564,9447560:1578762
-)
-)
-)
-]
-$1,64:24345564,9447560
-)
-(1,64:24345564,9447560:0,608580,213887
-(1,64:24345564,9513341:0,674361,148106
-(1,64:24345564,9513341:0,674361,148106
-k1,64:19609278,9513341:-4736286
-(1,64:19609278,9513341:4736286,674361,148106
-(1,64:19609278,9661447:0,0,0
-)
-(1,64:19609278,9513341:4736286,674361,148106
-(1,64:19609278,9661447:4736286,822467,0
-[1,64:19609278,9661447:4736286,822467,0
-(1,64:19609278,8838980:4736286,0,0
-h1,64:19609278,8838980:0,0,0
-k1,64:24345564,8838980:4736286
-g1,64:24345564,8838980
-)
-]
-)
-)
-(1,64:24345564,8838980:0,0,0
-)
-)
-)
-)
-)
-k1,64:24577261,9447560:231697
-x1,64:25817881,9447560
-k1,64:26049578,9447560:231697
-(1,65:26049578,9447560:4736286,665187,157280
-$1,65:26049578,9447560
-[1,65:26049578,9447560:4736286,665187,157280
-(1,65:26049578,9447560:4736286,665187,0
-(1,65:26049578,9447560:4736286,665187,0
-(1,65:26049578,9447560:4736286,665187,285084
-k1,65:27628340,9447560:1578762
-r1,65:27628340,9447560:0,950271,285084
-k1,65:29207102,9447560:1578762
-k1,65:30785864,9447560:1578762
-)
-)
-)
-]
-$1,65:30785864,9447560
-)
-(1,65:30785864,9447560:0,608580,213887
-(1,65:30785864,9513341:0,674361,148106
-(1,65:30785864,9513341:0,674361,148106
-k1,65:26049578,9513341:-4736286
-(1,65:26049578,9513341:4736286,674361,148106
-(1,65:26049578,9661447:0,0,0
-)
-(1,65:26049578,9513341:4736286,674361,148106
-(1,65:26049578,9661447:4736286,822467,0
-[1,65:26049578,9661447:4736286,822467,0
-(1,65:26049578,8838980:4736286,0,0
-h1,65:26049578,8838980:0,0,0
-k1,65:30785864,8838980:4736286
-g1,65:30785864,8838980
-)
-]
-)
-)
-(1,65:30785864,8838980:0,0,0
-)
-)
-)
-)
-)
-k1,65:30785864,9447560:0
-)
-(1,67:1425408,10397832:29360456,546132,152916
-x1,67:2452128,10397832
-g1,65:2708808,10397832
-x1,65:3970818,10397832
-x1,65:4869198,10397832
-g1,65:5125878,10397832
-x1,65:7821018,10397832
-g1,65:8077698,10397832
-x1,65:8766456,10397832
-g1,65:9023136,10397832
-x1,65:10092636,10397832
-g1,65:10349316,10397832
-x1,65:13198464,10397832
-g1,65:13455144,10397832
-x1,65:14075454,10397832
-g1,65:14332134,10397832
-x1,65:15358854,10397832
-k1,66:14332134,10397832:21390
-x1,66:16877544,10397832
-g1,66:17134224,10397832
-x1,66:20004762,10397832
-k1,67:30785864,10397832:10781102
-g1,67:30785864,10397832
-)
-(1,81:1425408,11741320:29360456,671603,196608
-(1,80:1425408,11741320:0,0,0
-g1,80:1425408,11741320
-g1,80:0,11741320
-g1,80:-256680,11741320
-(1,80:-256680,11741320:1425408,0,0
-k1,80:1168728,11741320:1425408
-)
-g1,80:1425408,11741320
-)
-g1,80:1425408,11741320
-(1,80:1425408,11741320:0,671603,196608
-k1,80:-2436856,11741320:-3862264
-x1,80:-2137396,11741320
-$1,80:-2137396,11741320
-x1,80:-1778586,11741320
-[1,80:-1778586,11834692:778615,764975,0
-(1,80:-1778586,11392196:778615,322479,101945
-x1,80:-1032739,11392196
-)
-(1,80:-1778586,11834692:713624,225735,0
-x1,80:-1097730,11834692
-)
-]
-$1,80:-999971,11741320
-x1,80:-720896,11741320
-r1,80:-720896,11741320:0,868211,196608
-g1,80:1425408,11741320
-g1,80:1425408,11741320
-)
-(1,80:1425408,11741320:0,506811,0
-k1,80:442368,11741320:-983040
-(1,80:442368,11741320:983040,506811,0
-x1,80:1130496,11741320
-g1,80:1425408,11741320
-)
-)
-x1,80:1975916,11741320
-x1,80:3008119,11741320
-g1,80:3323599,11741320
-x1,80:4008079,11741320
-g1,80:4264759,11741320
-x1,80:4766842,11741320
-x1,80:6180063,11741320
-g1,80:6522303,11741320
-x1,80:7484580,11741320
-g1,80:7741260,11741320
-x1,80:9221448,11741320
-x1,80:11702688,11741320
-g1,80:11959368,11741320
-x1,80:14483388,11741320
-k1,81:30785864,11741320:16302476
-g1,81:30785864,11741320
-)
-(1,90:4931568,12876048:25854296,665187,213887
-(1,87:4931568,12876048:0,589824,196608
-g1,87:4931568,12876048
-g1,87:3904848,12876048
-g1,87:1425408,12876048
-(1,87:1425408,12876048:1026720,589824,196608
-g1,87:1425408,12876048
-(1,87:1425408,12876048:1026720,589824,196608
-k1,87:1439668,12876048:14260
-x1,87:1739128,12876048
-k1,87:1753388,12876048:14260
-x1,87:2138408,12876048
-k1,87:2152668,12876048:14260
-x1,87:2452128,12876048
-)
-)
-g1,87:4931568,12876048
-)
-(1,87:4931568,12876048:0,665187,213887
-k1,87:2708808,12876048:-2222760
-(1,87:2708808,12876048:1966080,665187,157280
-$1,87:2708808,12876048
-[1,87:2708808,12876048:1966080,665187,157280
-(1,87:2708808,12876048:1966080,665187,0
-(1,87:2708808,12876048:1966080,665187,0
-(1,87:2708808,12876048:1966080,665187,285084
-k1,87:3364168,12876048:655360
-r1,87:3364168,12876048:0,950271,285084
-k1,87:4019528,12876048:655360
-k1,87:4674888,12876048:655360
-)
-)
-)
-]
-$1,87:4674888,12876048
-)
-(1,87:4674888,12876048:0,608580,213887
-(1,87:4674888,12941829:0,674361,148106
-(1,87:4674888,12941829:0,674361,148106
-k1,87:2708808,12941829:-1966080
-(1,87:2708808,12941829:1966080,674361,148106
-(1,87:2708808,13089935:0,0,0
-)
-(1,87:2708808,12941829:1966080,674361,148106
-(1,87:2708808,13089935:1966080,822467,0
-[1,87:2708808,13089935:1966080,822467,0
-(1,87:2708808,12267468:1966080,0,0
-h1,87:2708808,12267468:0,0,0
-k1,87:4674888,12267468:1966080
-g1,87:4674888,12267468
-)
-]
-)
-)
-(1,87:4674888,12267468:0,0,0
-)
-)
-)
-)
-)
-g1,87:4931568,12876048
-)
-x1,87:5444655,12876048
-k1,87:5717126,12876048:272471
-x1,87:8587664,12876048
-k1,87:8860136,12876048:272472
-x1,87:9672956,12876048
-x1,87:10057976,12876048
-x1,87:10378826,12876048
-k1,87:10651297,12876048:272471
-$1,87:10651297,12876048
-x1,87:11036317,12876048
-$1,87:11036317,12876048
-k1,87:11308789,12876048:272472
-x1,87:13114105,12876048
-k1,87:13390524,12876048:276419
-x1,87:14887824,12876048
-k1,87:15160295,12876048:272471
-x1,87:15973115,12876048
-k1,87:16245587,12876048:272472
-x1,87:18106517,12876048
-x1,87:19137515,12876048
-k1,87:19409986,12876048:272471
-x1,87:20436706,12876048
-k1,88:20709178,12876048:272472
-x1,88:22719838,12876048
-k1,88:23109452,12876048:389614
-x1,88:24071729,12876048
-x1,88:24606479,12876048
-k1,88:24878950,12876048:272471
-x1,88:25396588,12876048
-k1,88:25669060,12876048:272472
-x1,88:26738560,12876048
-k1,88:27011031,12876048:272471
-x1,88:28508331,12876048
-k1,88:28780803,12876048:272472
-x1,88:29700573,12876048
-k1,88:29973044,12876048:272471
-x1,88:30785864,12876048
-k1,88:30785864,12876048:0
-)
-(1,90:4931568,13826320:25854296,546132,152916
-x1,90:5701608,13826320
-x1,88:6108018,13826320
-x1,88:6557208,13826320
-g1,88:6813888,13826320
-x1,88:8225628,13826320
-g1,88:8482308,13826320
-x1,88:9166788,13826320
-g1,88:9423468,13826320
-x1,88:11134668,13826320
-g1,88:11391348,13826320
-x1,88:12075828,13826320
-g1,88:12332508,13826320
-x1,88:13402008,13826320
-g1,88:13658688,13826320
-x1,88:14685408,13826320
-g1,88:14942088,13826320
-x1,88:15562398,13826320
-g1,89:15819078,13826320
-x1,89:17401938,13826320
-g1,89:17658618,13826320
-x1,89:19241478,13826320
-x1,89:20225418,13826320
-x1,89:20375148,13826320
-k1,90:30785864,13826320:10410716
-g1,90:30785864,13826320
-)
-(1,107:4931568,14973200:25854296,713465,213887
-(1,104:4931568,14973200:0,589824,196608
-g1,104:4931568,14973200
-g1,104:3904848,14973200
-g1,104:1425408,14973200
-(1,104:1425408,14973200:1026720,589824,196608
-g1,104:1425408,14973200
-(1,104:1425408,14973200:1026720,589824,196608
-g1,104:1425408,14973200
-x1,104:1724868,14973200
-g1,104:1724868,14973200
-x1,104:2152668,14973200
-g1,104:2152668,14973200
-x1,104:2452128,14973200
-)
-)
-g1,104:4931568,14973200
-)
-(1,104:4931568,14973200:0,665187,213887
-k1,104:2708808,14973200:-2222760
-(1,104:2708808,14973200:1966080,665187,157280
-$1,104:2708808,14973200
-[1,104:2708808,14973200:1966080,665187,157280
-(1,104:2708808,14973200:1966080,665187,0
-(1,104:2708808,14973200:1966080,665187,0
-(1,104:2708808,14973200:1966080,665187,285084
-k1,104:3364168,14973200:655360
-r1,104:3364168,14973200:0,950271,285084
-k1,104:4019528,14973200:655360
-k1,104:4674888,14973200:655360
-)
-)
-)
-]
-$1,104:4674888,14973200
-)
-(1,104:4674888,14973200:0,608580,213887
-(1,104:4674888,15038981:0,674361,148106
-(1,104:4674888,15038981:0,674361,148106
-k1,104:2708808,15038981:-1966080
-(1,104:2708808,15038981:1966080,674361,148106
-(1,104:2708808,15187087:0,0,0
-)
-(1,104:2708808,15038981:1966080,674361,148106
-(1,104:2708808,15187087:1966080,822467,0
-[1,104:2708808,15187087:1966080,822467,0
-(1,104:2708808,14364620:1966080,0,0
-h1,104:2708808,14364620:0,0,0
-k1,104:4674888,14364620:1966080
-g1,104:4674888,14364620
-)
-]
-)
-)
-(1,104:4674888,14364620:0,0,0
-)
-)
-)
-)
-)
-g1,104:4931568,14973200
-)
-$1,104:4931568,14973200
-x1,104:5316588,14973200
-k1,104:5515380,14973200:198792
-x1,104:6114300,14973200
-k1,104:6313092,14973200:198792
-x1,104:6698112,14973200
-k1,104:6976643,14973200:278531
-x1,104:7575563,14973200
-k1,104:7854093,14973200:278530
-x1,104:8239113,14973200
-$1,104:8239113,14973200
-k1,104:8531091,14973200:291978
-x1,104:8744991,14973200
-x1,104:9194181,14973200
-k1,104:9486158,14973200:291977
-$1,104:9486158,14973200
-(1,104:9486158,14973200:1040382,713465,104422
-(1,104:9486158,14322647:655362,31456,754975
-x1,104:10141520,14322647
-)
-[1,104:10141520,14973200:385020,713465,0
-(1,104:10141520,14973200:385020,506811,0
-x1,104:10526540,14973200
-)
-]
-)
-$1,104:10526540,14973200
-k1,104:10818517,14973200:291977
-x1,104:11336155,14973200
-k1,104:11628133,14973200:291978
-x1,104:12013153,14973200
-k1,104:12305130,14973200:291977
-x1,104:14914710,14973200
-k1,104:15206688,14973200:291978
-x1,104:15634488,14973200
-x1,104:16682598,14973200
-x1,104:17089008,14973200
-x1,104:17965998,14973200
-k1,104:18414130,14973200:448132
-x1,104:19376407,14973200
-x1,104:19911157,14973200
-k1,104:20203134,14973200:291977
-x1,104:20720772,14973200
-k1,105:21012750,14973200:291978
-x1,105:22082250,14973200
-k1,105:22374227,14973200:291977
-x1,105:23871527,14973200
-k1,105:24163504,14973200:291977
-x1,105:25083274,14973200
-k1,105:25375252,14973200:291978
-x1,105:26188072,14973200
-k1,105:26480049,14973200:291977
-x1,105:27250089,14973200
-x1,105:27656499,14973200
-x1,105:28105689,14973200
-k1,105:28397667,14973200:291978
-x1,105:29809407,14973200
-k1,105:30101384,14973200:291977
-x1,105:30785864,14973200
-k1,105:30785864,14973200:0
-)
-(1,107:4931568,15923472:25854296,546132,152916
-x1,107:6642768,15923472
-g1,105:6899448,15923472
-x1,105:7583928,15923472
-g1,105:7840608,15923472
-x1,105:8910108,15923472
-g1,105:9166788,15923472
-x1,105:10193508,15923472
-g1,105:10450188,15923472
-x1,105:11070498,15923472
-g1,105:11327178,15923472
-x1,105:12910038,15923472
-g1,105:13166718,15923472
-x1,105:14749578,15923472
-k1,106:13166718,15923472:-21390
-x1,106:15733518,15923472
-x1,106:15883248,15923472
-k1,107:30785864,15923472:14902616
-g1,107:30785864,15923472
-)
-(1,122:4931568,17070352:25854296,665187,213887
-(1,116:4931568,17070352:0,589824,196608
-g1,116:4931568,17070352
-g1,116:3904848,17070352
-g1,116:1425408,17070352
-(1,116:1425408,17070352:1026720,589824,196608
-g1,116:1425408,17070352
-(1,116:1425408,17070352:1026720,589824,196608
-k1,116:1453928,17070352:28520
-x1,116:1753388,17070352
-k1,116:1781908,17070352:28520
-x1,116:2124148,17070352
-k1,116:2152668,17070352:28520
-x1,116:2452128,17070352
-)
-)
-g1,116:4931568,17070352
-)
-(1,116:4931568,17070352:0,665187,213887
-k1,116:2708808,17070352:-2222760
-(1,116:2708808,17070352:1966080,665187,157280
-$1,116:2708808,17070352
-[1,116:2708808,17070352:1966080,665187,157280
-(1,116:2708808,17070352:1966080,665187,0
-(1,116:2708808,17070352:1966080,665187,0
-(1,116:2708808,17070352:1966080,665187,285084
-k1,116:3364168,17070352:655360
-r1,116:3364168,17070352:0,950271,285084
-k1,116:4019528,17070352:655360
-k1,116:4674888,17070352:655360
-)
-)
-)
-]
-$1,116:4674888,17070352
-)
-(1,116:4674888,17070352:0,608580,213887
-(1,116:4674888,17136133:0,674361,148106
-(1,116:4674888,17136133:0,674361,148106
-k1,116:2708808,17136133:-1966080
-(1,116:2708808,17136133:1966080,674361,148106
-(1,116:2708808,17284239:0,0,0
-)
-(1,116:2708808,17136133:1966080,674361,148106
-(1,116:2708808,17284239:1966080,822467,0
-[1,116:2708808,17284239:1966080,822467,0
-(1,116:2708808,16461772:1966080,0,0
-h1,116:2708808,16461772:0,0,0
-k1,116:4674888,16461772:1966080
-g1,116:4674888,16461772
-)
-]
-)
-)
-(1,116:4674888,16461772:0,0,0
-)
-)
-)
-)
-)
-g1,116:4931568,17070352
-)
-$1,116:4931568,17070352
-x1,116:7516812,17070352
-x1,116:8956997,17070352
-k1,116:9218215,17070352:233001
-x1,116:9817135,17070352
-k1,116:10050136,17070352:233001
-x1,116:10734616,17070352
-$1,116:10734616,17070352
-k1,116:11504656,17070352:770040
-x1,116:11804116,17070352
-$1,116:11804116,17070352
-x1,116:12241702,17070352
-$1,116:12241702,17070352
-x1,116:12455602,17070352
-k1,116:12722968,17070352:267366
-$1,117:12722968,17070352
-x1,117:13098430,17070352
-$1,117:13126647,17070352
-k1,117:13391876,17070352:265229
-x1,117:14632496,17070352
-k1,117:14897725,17070352:265229
-x1,117:15325525,17070352
-x1,117:16373635,17070352
-x1,117:16780045,17070352
-x1,117:18260233,17070352
-k1,117:18628119,17070352:367886
-x1,117:19590396,17070352
-x1,117:20125146,17070352
-k1,117:20390375,17070352:265229
-x1,117:20908013,17070352
-k1,117:21173241,17070352:265228
-x1,117:22242741,17070352
-k1,117:22507970,17070352:265229
-x1,117:24005270,17070352
-k1,117:24270499,17070352:265229
-x1,117:25190269,17070352
-k1,117:25455498,17070352:265229
-x1,117:26268318,17070352
-k1,117:26533546,17070352:265228
-x1,117:27303586,17070352
-x1,117:27709996,17070352
-x1,117:28159186,17070352
-k1,117:28424415,17070352:265229
-x1,117:29836155,17070352
-k1,117:30101384,17070352:265229
-x1,117:30785864,17070352
-k1,117:30785864,17070352:0
-)
-(1,122:4931568,18020624:25854296,546132,152916
-x1,122:6642768,18020624
-g1,117:6899448,18020624
-x1,117:7583928,18020624
-g1,117:7840608,18020624
-x1,117:8910108,18020624
-g1,118:9166788,18020624
-x1,118:10193508,18020624
-g1,118:10450188,18020624
-x1,118:11070498,18020624
-g1,118:11327178,18020624
-x1,118:12910038,18020624
-g1,118:13166718,18020624
-x1,118:14749578,18020624
-x1,118:15733518,18020624
-x1,118:15883248,18020624
-k1,122:30785864,18020624:14902616
-g1,122:30785864,18020624
-)
-(1,128:4931568,19167504:25854296,665187,213887
-(1,123:4931568,19167504:0,589824,196608
-g1,123:4931568,19167504
-g1,123:3904848,19167504
-g1,123:1425408,19167504
-(1,123:1425408,19167504:1026720,589824,196608
-g1,123:1425408,19167504
-(1,123:1425408,19167504:1026720,589824,196608
-g1,123:1425408,19167504
-x1,123:1724868,19167504
-g1,123:1724868,19167504
-x1,123:2152668,19167504
-g1,123:2152668,19167504
-x1,123:2452128,19167504
-)
-)
-g1,123:4931568,19167504
-)
-(1,123:4931568,19167504:0,665187,213887
-k1,123:2708808,19167504:-2222760
-(1,123:2708808,19167504:1966080,665187,157280
-$1,123:2708808,19167504
-[1,123:2708808,19167504:1966080,665187,157280
-(1,123:2708808,19167504:1966080,665187,0
-(1,123:2708808,19167504:1966080,665187,0
-(1,123:2708808,19167504:1966080,665187,285084
-k1,123:3364168,19167504:655360
-r1,123:3364168,19167504:0,950271,285084
-k1,123:4019528,19167504:655360
-k1,123:4674888,19167504:655360
-)
-)
-)
-]
-$1,123:4674888,19167504
-)
-(1,123:4674888,19167504:0,608580,213887
-(1,123:4674888,19233285:0,674361,148106
-(1,123:4674888,19233285:0,674361,148106
-k1,123:2708808,19233285:-1966080
-(1,123:2708808,19233285:1966080,674361,148106
-(1,123:2708808,19381391:0,0,0
-)
-(1,123:2708808,19233285:1966080,674361,148106
-(1,123:2708808,19381391:1966080,822467,0
-[1,123:2708808,19381391:1966080,822467,0
-(1,123:2708808,18558924:1966080,0,0
-h1,123:2708808,18558924:0,0,0
-k1,123:4674888,18558924:1966080
-g1,123:4674888,18558924
-)
-]
-)
-)
-(1,123:4674888,18558924:0,0,0
-)
-)
-)
-)
-)
-g1,123:4931568,19167504
-)
-$1,123:4931568,19167504
-x1,123:7516812,19167504
-x1,123:8938571,19167504
-x1,123:9930248,19167504
-x1,123:10702337,19167504
-g1,123:10877097,19167504
-x1,123:11476017,19167504
-g1,123:11650777,19167504
-x1,123:12026239,19167504
-x1,123:12353916,19167504
-g1,123:12572366,19167504
-x1,123:13171286,19167504
-g1,123:13389736,19167504
-x1,123:14074216,19167504
-$1,123:14074216,19167504
-x1,123:14288116,19167504
-g1,123:14544796,19167504
-g1,124:15314836,19167504
-x1,124:15614296,19167504
-$1,124:15614296,19167504
-x1,124:16051882,19167504
-$1,124:16051882,19167504
-x1,124:16265782,19167504
-g1,124:16522462,19167504
-$1,124:16522462,19167504
-x1,124:16897924,19167504
-$1,124:16926141,19167504
-x1,124:17140041,19167504
-g1,124:17396721,19167504
-x1,124:18637341,19167504
-g1,124:18894021,19167504
-$1,124:18894021,19167504
-x1,124:19251735,19167504
-$1,124:19286778,19167504
-g1,124:19543458,19167504
-x1,124:20784078,19167504
-g1,124:21040758,19167504
-x1,124:21468558,19167504
-x1,124:22516668,19167504
-x1,124:22923078,19167504
-x1,124:24403266,19167504
-k1,128:30785864,19167504:6382598
-g1,128:30785864,19167504
-)
-(1,137:1425408,20683296:29360456,589824,196608
-(1,133:1425408,20683296:0,0,0
-g1,133:1425408,20683296
-g1,133:0,20683296
-g1,133:-256680,20683296
-(1,133:-256680,20683296:1425408,0,0
-k1,133:1168728,20683296:1425408
-)
-g1,133:1425408,20683296
-)
-k1,133:1425408,20683296:0
-(1,133:1425408,20683296:0,589824,196608
-k1,133:-2795666,20683296:-4221074
-x1,133:-2496206,20683296
-$1,133:-2496206,20683296
-(1,133:-2496206,20683296:717620,462465,0
-x1,133:-1778586,20683296
-)
-(1,133:-1778586,20422878:778615,322479,101945
-x1,133:-1032739,20422878
-)
-$1,133:-999971,20683296
-x1,133:-720896,20683296
-r1,133:-720896,20683296:0,786432,196608
-g1,133:1425408,20683296
-g1,133:1425408,20683296
-)
-(1,133:1425408,20683296:0,506811,0
-k1,133:442368,20683296:-983040
-(1,133:442368,20683296:983040,506811,0
-x1,133:1130496,20683296
-g1,133:1425408,20683296
-)
-)
-x1,133:2986605,20683296
-k1,133:3157964,20683296:171359
-x1,133:3675602,20683296
-k1,133:3846960,20683296:171358
-x1,133:4659780,20683296
-k1,133:4831139,20683296:171359
-x1,133:7590449,20683296
-k1,133:7761807,20683296:171358
-x1,133:8382117,20683296
-k1,133:8553476,20683296:171359
-x1,133:8938496,20683296
-k1,133:9109854,20683296:171358
-x1,133:10607154,20683296
-k1,133:10778513,20683296:171359
-x1,133:13730333,20683296
-k1,133:13901692,20683296:171359
-x1,133:16853512,20683296
-k1,133:17167311,20683296:313799
-x1,133:17744568,20683296
-k1,133:17915927,20683296:171359
-x1,133:19006817,20683296
-x1,133:19631405,20683296
-k1,133:19802763,20683296:171358
-x1,133:20872263,20683296
-k1,133:21043622,20683296:171359
-x1,133:23781542,20683296
-k1,134:23952900,20683296:171358
-x1,134:26861940,20683296
-x1,134:27140010,20683296
-k1,134:27311369,20683296:171359
-x1,134:27525269,20683296
-x1,134:30358064,20683296
-x1,134:30785864,20683296
-k1,134:30785864,20683296:0
-)
-(1,137:1425408,21633568:29360456,546132,152916
-x1,137:2002665,21633568
-x1,134:2751315,21633568
-g1,134:3007995,21633568
-x1,134:3739533,21633568
-x1,134:5301003,21633568
-g1,134:5557683,21633568
-x1,134:6627183,21633568
-g1,134:6883863,21633568
-x1,134:7311663,21633568
-k1,135:6883863,21633568:21390
-x1,135:8359773,21633568
-x1,135:8941581,21633568
-g1,135:9198261,21633568
-x1,135:10575777,21633568
-x1,135:12607827,21633568
-g1,135:12864507,21633568
-x1,135:14361807,21633568
-g1,135:14618487,21633568
-x1,135:15687987,21633568
-x1,135:16094397,21633568
-g1,135:16351077,21633568
-x1,135:17762817,21633568
-g1,135:18019497,21633568
-x1,135:19777755,21633568
-g1,135:20034435,21633568
-x1,135:21103935,21633568
-g1,135:21360615,21633568
-x1,135:22979355,21633568
-g1,135:23236035,21633568
-x1,135:26701215,21633568
-k1,137:30785864,21633568:4084649
-g1,137:30785864,21633568
-)
-(1,141:2708808,22768297:28077056,589824,196608
-(1,140:2708808,22768297:0,589824,196608
-g1,140:2708808,22768297
-g1,140:1682088,22768297
-g1,140:1425408,22768297
-(1,140:1425408,22768297:1026720,589824,196608
-g1,140:1425408,22768297
-(1,140:1425408,22768297:1026720,589824,196608
-k1,140:1439668,22768297:14260
-x1,140:1739128,22768297
-k1,140:1753388,22768297:14260
-x1,140:2138408,22768297
-k1,140:2152668,22768297:14260
-x1,140:2452128,22768297
-)
-)
-g1,140:2708808,22768297
-)
-x1,140:3008268,22768297
-$1,140:3008268,22768297
-(1,140:3008268,22768297:770040,506811,0
-x1,140:3778308,22768297
-)
-g1,140:3909378,22768297
-(1,140:3909378,22768297:1030998,483719,152916
-(1,140:3909378,22768297:1030998,483719,152916
-x1,140:4940376,22768297
-)
-)
-$1,140:4940376,22768297
-x1,140:5239836,22768297
-g1,140:5496516,22768297
-x1,140:6998094,22768297
-g1,140:7254774,22768297
-x1,140:7639794,22768297
-g1,140:7896474,22768297
-x1,140:9436554,22768297
-g1,140:9693234,22768297
-x1,140:11062194,22768297
-k1,141:30785864,22768297:19723670
-g1,141:30785864,22768297
-)
-(1,145:2708808,25069676:28077056,2039235,1512980
-(1,142:2708808,25069676:28077056,2039235,1512980
-(1,142:2708808,26582656:0,0,0
-)
-(1,142:2708808,25069676:28077056,2039235,1512980
-(1,142:2708808,26582656:28077056,3552215,0
-[1,142:2708808,26582656:28077056,3552215,0
-(1,142:2708808,23030441:28077056,0,0
-h1,142:2708808,23030441:0,0,0
-k1,142:30785864,23030441:28077056
-g1,142:30785864,23030441
-)
-]
-)
-)
-(1,142:30785864,23030441:0,0,0
-)
-)
-g1,145:30785864,25069676
-g1,145:30785864,25069676
-)
-(1,147:2708808,27434624:28077056,589824,196608
-(1,146:2708808,27434624:0,589824,196608
-g1,146:2708808,27434624
-g1,146:1682088,27434624
-g1,146:1425408,27434624
-(1,146:1425408,27434624:1026720,589824,196608
-g1,146:1425408,27434624
-(1,146:1425408,27434624:1026720,589824,196608
-g1,146:1425408,27434624
-x1,146:1724868,27434624
-g1,146:1724868,27434624
-x1,146:2152668,27434624
-g1,146:2152668,27434624
-x1,146:2452128,27434624
-)
-)
-g1,146:2708808,27434624
-)
-x1,146:3008268,27434624
-$1,146:3008268,27434624
-x1,146:3393288,27434624
-g1,146:3524358,27434624
-(1,146:3524358,27434624:1030998,483719,152916
-(1,146:3524358,27434624:1030998,483719,152916
-x1,146:4555356,27434624
-)
-)
-$1,146:4555356,27434624
-x1,146:4854816,27434624
-g1,146:5111496,27434624
-x1,146:6613074,27434624
-g1,146:6869754,27434624
-x1,146:8024814,27434624
-g1,146:8281494,27434624
-x1,146:8799132,27434624
-g1,146:9055812,27434624
-x1,146:10702842,27434624
-x1,146:11142702,27434624
-g1,146:11399382,27434624
-x1,146:12088140,27434624
-g1,146:12344820,27434624
-x1,146:14098800,27434624
-k1,147:30785864,27434624:16687064
-g1,147:30785864,27434624
-)
-(1,151:2708808,29736003:28077056,2039235,1512980
-(1,148:2708808,29736003:28077056,2039235,1512980
-(1,148:2708808,31248983:0,0,0
-)
-(1,148:2708808,29736003:28077056,2039235,1512980
-(1,148:2708808,31248983:28077056,3552215,0
-[1,148:2708808,31248983:28077056,3552215,0
-(1,148:2708808,27696768:28077056,0,0
-h1,148:2708808,27696768:0,0,0
-k1,148:30785864,27696768:28077056
-g1,148:30785864,27696768
-)
-]
-)
-)
-(1,148:30785864,27696768:0,0,0
-)
-)
-g1,151:30785864,29736003
-g1,151:30785864,29736003
-)
-(1,161:1425408,32469863:29360456,589824,196608
-(1,158:1425408,32469863:0,0,0
-g1,158:1425408,32469863
-g1,158:0,32469863
-g1,158:-256680,32469863
-(1,158:-256680,32469863:1425408,0,0
-k1,158:1168728,32469863:1425408
-)
-g1,158:1425408,32469863
-)
-k1,158:1425408,32469863:0
-(1,158:1425408,32469863:0,589824,196608
-k1,158:-2795666,32469863:-4221074
-x1,158:-2496206,32469863
-$1,158:-2496206,32469863
-(1,158:-2496206,32469863:717620,462465,0
-x1,158:-1778586,32469863
-)
-(1,158:-1778586,32209445:778615,322479,101945
-x1,158:-1032739,32209445
-)
-$1,158:-999971,32469863
-x1,158:-720896,32469863
-r1,158:-720896,32469863:0,786432,196608
-g1,158:1425408,32469863
-g1,158:1425408,32469863
-)
-(1,158:1425408,32469863:0,506811,0
-k1,158:442368,32469863:-983040
-(1,158:442368,32469863:983040,506811,0
-x1,158:1130496,32469863
-g1,158:1425408,32469863
-)
-)
-x1,158:3393288,32469863
-k1,159:3705081,32469863:311793
-x1,159:4774581,32469863
-k1,159:5086374,32469863:311793
-x1,159:7396494,32469863
-k1,159:7708287,32469863:311793
-x1,159:9380985,32469863
-x1,159:10001295,32469863
-k1,159:10313089,32469863:311794
-x1,159:11232859,32469863
-k1,159:11544652,32469863:311793
-x1,159:12614152,32469863
-x1,159:13020562,32469863
-k1,159:13332355,32469863:311793
-x1,159:13952665,32469863
-k1,159:14264458,32469863:311793
-x1,159:15333958,32469863
-k1,159:15645751,32469863:311793
-x1,159:17078881,32469863
-x1,159:18640351,32469863
-k1,159:18952144,32469863:311793
-x1,159:19593844,32469863
-x1,159:21711454,32469863
-k1,159:22023247,32469863:311793
-x1,159:22365487,32469863
-k1,160:22023247,32469863:-21390
-x1,160:24269197,32469863
-k1,160:24776777,32469863:507580
-x1,160:26744657,32469863
-k1,160:27056450,32469863:311793
-x1,160:27574088,32469863
-k1,160:27885881,32469863:311793
-x1,160:29319011,32469863
-k1,160:29630804,32469863:311793
-x1,160:30785864,32469863
-k1,160:30785864,32469863:0
-)
-(1,161:1425408,33420135:29360456,483719,0
-x1,161:3735528,33420135
-g1,160:3992208,33420135
-x1,160:5664906,33420135
-x1,160:6499116,33420135
-k1,161:30785864,33420135:24286748
-g1,161:30785864,33420135
-)
-(1,188:1425408,34567015:29360456,665187,6969756
-r1,161:1425408,34567015:0,7634943,6969756
-g1,161:2708808,34567015
-(1,188:2708808,34567015:0,665187,6969756
-$1,188:2708808,34567015
-[1,188:2708808,34567015:0,665187,6969756
-(1,188:2708808,34567015:-37458944,665187,6969756
-g1,163:2708808,34567015
-(1,175:2708808,34567015:14038528,665187,6969756
-r1,163:2708808,34567015:0,950271,285084
-[1,175:2708808,34567015:13298524,665187,3791259
-(1,164:2708808,34567015:13298524,665187,285084
-h1,163:2708808,34567015:0,0,0
-r1,163:2708808,34567015:0,950271,285084
-g1,163:2708808,34567015
-(1,163:2708808,34567015:0,589824,196608
-k1,163:1468188,34567015:-1240620
-x1,163:1767648,34567015
-g1,163:1767648,34567015
-x1,163:2152668,34567015
-g1,163:2152668,34567015
-x1,163:2452128,34567015
-g1,163:2708808,34567015
-)
-x1,163:3008268,34567015
-$1,163:3008268,34567015
-x1,163:3393288,34567015
-g1,163:3524358,34567015
-(1,163:3524358,34567015:1030998,483719,152916
-(1,163:3524358,34567015:1030998,483719,152916
-x1,163:4555356,34567015
-)
-)
-$1,163:4555356,34567015
-x1,163:4854816,34567015
-g1,163:5111496,34567015
-x1,163:5817093,34567015
-g1,163:6073773,34567015
-x1,163:7742193,34567015
-g1,163:7998873,34567015
-x1,163:8405283,34567015
-x1,163:9410613,34567015
-g1,163:9667293,34567015
-x1,163:10736793,34567015
-g1,163:10993473,34567015
-x1,163:13218033,34567015
-x1,163:14355981,34567015
-g1,163:14612661,34567015
-x1,163:15729219,34567015
-k1,163:16007332,34567015:278113
-)
-(1,164:2708808,35517287:13298524,546132,0
-x1,164:3778308,35517287
-g1,163:4034988,35517287
-x1,163:4420008,35517287
-x1,163:5938698,35517287
-g1,163:6195378,35517287
-x1,163:7970748,35517287
-k1,164:11989040,35517287:4018292
-k1,164:16007332,35517287:4018292
-)
-(1,171:2708808,37122918:13298524,1343487,950271
-(1,171:2708808,37122918:13298524,1343487,950271
-$1,171:2708808,37122918
-[1,171:2708808,37122918:13298524,1343487,950271
-(1,169:2708808,36444618:13298524,665187,285084
-g1,165:2708808,36444618
-(1,168:2708808,36444618:6649262,665187,285084
-r1,165:2708808,36444618:0,950271,285084
-[1,168:2708808,36444618:6550958,665187,285084
-(1,168:2708808,36444618:6550958,665187,285084
-h1,167:2708808,36444618:0,0,0
-r1,167:2708808,36444618:0,950271,285084
-g1,167:2708808,36444618
-(1,167:2708808,36543290:0,0,0
-)
-(1,167:2708808,36444618:723599,624927,98672
-(1,167:2708808,36543290:723599,723599,0
-[1,167:2708808,36543290:723599,723599,0
-(1,167:2708808,35819691:723599,0,0
-h1,167:2708808,35819691:0,0,0
-k1,167:3432407,35819691:723599
-g1,167:3432407,35819691
-)
-]
-)
-)
-(1,167:3432407,35819691:0,0,0
-)
-g1,167:3689087,36444618
-x1,167:5229167,36444618
-r1,168:5229167,36444618:0,285084,285084
-k1,168:7244467,36444618:2015300
-k1,168:9259766,36444618:2015299
-)
-]
-g1,168:9259766,36444618
-g1,168:9358070,36444618
-)
-g1,168:9358070,36444618
-(1,169:9358070,36444618:6649262,665187,285084
-g1,168:9456374,36444618
-[1,169:9456374,36444618:6550958,665187,285084
-(1,169:9456374,36444618:6550958,665187,285084
-h1,168:9456374,36444618:0,0,0
-r1,168:9456374,36444618:0,950271,285084
-g1,168:9456374,36444618
-(1,168:9456374,36543290:0,0,0
-)
-(1,168:9456374,36444618:723599,624927,98672
-(1,168:9456374,36543290:723599,723599,0
-[1,168:9456374,36543290:723599,723599,0
-(1,168:9456374,35819691:723599,0,0
-h1,168:9456374,35819691:0,0,0
-k1,168:10179973,35819691:723599
-g1,168:10179973,35819691
-)
-]
-)
-)
-(1,168:10179973,35819691:0,0,0
-)
-g1,168:10436653,36444618
-x1,168:11976733,36444618
-r1,169:11976733,36444618:0,285084,285084
-k1,169:13992033,36444618:2015300
-k1,169:16007332,36444618:2015299
-)
-]
-g1,169:16007332,36444618
-)
-g1,169:16007332,36444618
-)
-(1,171:2708808,37788105:13298524,665187,285084
-g1,169:2708808,37788105
-(1,170:2708808,37788105:6649262,665187,285084
-r1,169:2708808,37788105:0,950271,285084
-[1,170:2708808,37788105:6550958,665187,285084
-(1,170:2708808,37788105:6550958,665187,285084
-h1,169:2708808,37788105:0,0,0
-r1,169:2708808,37788105:0,950271,285084
-g1,169:2708808,37788105
-(1,169:2708808,37886777:0,0,0
-)
-(1,169:2708808,37788105:723599,624927,98672
-(1,169:2708808,37886777:723599,723599,0
-[1,169:2708808,37886777:723599,723599,0
-(1,169:2708808,37163178:723599,0,0
-h1,169:2708808,37163178:0,0,0
-k1,169:3432407,37163178:723599
-g1,169:3432407,37163178
-)
-]
-)
-)
-(1,169:3432407,37163178:0,0,0
-)
-g1,169:3689087,37788105
-x1,169:5229167,37788105
-r1,170:5229167,37788105:0,285084,285084
-k1,170:7244467,37788105:2015300
-k1,170:9259766,37788105:2015299
-)
-]
-g1,170:9259766,37788105
-g1,170:9358070,37788105
-)
-g1,170:9358070,37788105
-(1,171:9358070,37788105:6649262,665187,285084
-g1,170:9456374,37788105
-[1,171:9456374,37788105:6550958,665187,285084
-(1,171:9456374,37788105:6550958,665187,285084
-h1,170:9456374,37788105:0,0,0
-r1,170:9456374,37788105:0,950271,285084
-g1,170:9456374,37788105
-(1,170:9456374,37886777:0,0,0
-)
-(1,170:9456374,37788105:723599,624927,98672
-(1,170:9456374,37886777:723599,723599,0
-[1,170:9456374,37886777:723599,723599,0
-(1,170:9456374,37163178:723599,0,0
-h1,170:9456374,37163178:0,0,0
-k1,170:10179973,37163178:723599
-g1,170:10179973,37163178
-)
-]
-)
-)
-(1,170:10179973,37163178:0,0,0
-)
-g1,170:10436653,37788105
-x1,170:11976733,37788105
-r1,171:11976733,37788105:0,285084,285084
-k1,171:13992033,37788105:2015300
-k1,171:16007332,37788105:2015299
-)
-]
-g1,171:16007332,37788105
-)
-g1,171:16007332,37788105
-)
-]
-$1,171:16007332,37122918
-)
-g1,171:16007332,37122918
-g1,171:16007332,37122918
-)
-(1,175:2708808,38073190:13298524,0,285084
-r1,175:2708808,38073190:0,285084,285084
-k1,175:9358070,38073190:6649262
-k1,175:16007332,38073190:6649262
-)
-]
-g1,175:16007332,34567015
-g1,175:16747336,34567015
-)
-g1,175:16747336,34567015
-(1,188:16747336,34567015:-51497472,665187,6969756
-g1,176:17487340,34567015
-[1,188:17487340,34567015:13298524,665187,6969756
-(1,177:17487340,34567015:13298524,665187,285084
-h1,176:17487340,34567015:0,0,0
-r1,176:17487340,34567015:0,950271,285084
-g1,176:17487340,34567015
-(1,176:17487340,34567015:0,589824,196608
-k1,176:16203940,34567015:-1283400
-x1,176:16503400,34567015
-g1,176:16503400,34567015
-x1,176:16931200,34567015
-g1,176:16931200,34567015
-x1,176:17230660,34567015
-g1,176:17487340,34567015
-)
-x1,176:17786800,34567015
-$1,176:17786800,34567015
-x1,176:18171820,34567015
-g1,176:18302890,34567015
-(1,176:18302890,34567015:1030998,483719,152916
-(1,176:18302890,34567015:1030998,483719,152916
-x1,176:19333888,34567015
-)
-)
-$1,176:19333888,34567015
-x1,176:19633348,34567015
-g1,176:19890028,34567015
-x1,176:20595625,34567015
-g1,176:20852305,34567015
-x1,176:22520725,34567015
-g1,176:22777405,34567015
-x1,176:23183815,34567015
-x1,176:24189145,34567015
-g1,176:24445825,34567015
-x1,176:25515325,34567015
-g1,176:25772005,34567015
-x1,176:27996565,34567015
-x1,176:29134513,34567015
-g1,176:29391193,34567015
-x1,176:30507751,34567015
-k1,176:30785864,34567015:278113
-)
-(1,177:17487340,35517287:13298524,546132,0
-x1,177:18556840,35517287
-g1,176:18813520,35517287
-x1,176:19198540,35517287
-x1,176:20717230,35517287
-g1,176:20973910,35517287
-x1,176:22749280,35517287
-k1,177:26767572,35517287:4018292
-k1,177:30785864,35517287:4018292
-)
-(1,180:18467619,36664167:12318245,665187,285084
-(1,179:18467619,36664167:0,665187,285084
-g1,179:18467619,36664167
-g1,179:17487340,36664167
-g1,179:17487340,36664167
-(1,179:17487340,36664167:980279,665187,285084
-g1,179:17487340,36664167
-r1,179:17487340,36664167:0,950271,285084
-(1,179:17487340,36762839:0,0,0
-)
-(1,179:17487340,36664167:723599,624927,98672
-(1,179:17487340,36762839:723599,723599,0
-[1,179:17487340,36762839:723599,723599,0
-(1,179:17487340,36039240:723599,0,0
-h1,179:17487340,36039240:0,0,0
-k1,179:18210939,36039240:723599
-g1,179:18210939,36039240
-)
-]
-)
-)
-(1,179:18210939,36039240:0,0,0
-)
-g1,179:18467619,36664167
-)
-g1,179:18467619,36664167
-)
-g1,179:18467619,36664167
-x1,179:20007699,36664167
-k1,180:25396782,36664167:5389083
-k1,180:30785864,36664167:5389082
-)
-(1,181:18467619,37811047:12318245,665187,285084
-(1,180:18467619,37811047:0,665187,285084
-g1,180:18467619,37811047
-g1,180:17487340,37811047
-g1,180:17487340,37811047
-(1,180:17487340,37811047:980279,665187,285084
-g1,180:17487340,37811047
-r1,180:17487340,37811047:0,950271,285084
-(1,180:17487340,37909719:0,0,0
-)
-(1,180:17487340,37811047:723599,624927,98672
-(1,180:17487340,37909719:723599,723599,0
-[1,180:17487340,37909719:723599,723599,0
-(1,180:17487340,37186120:723599,0,0
-h1,180:17487340,37186120:0,0,0
-k1,180:18210939,37186120:723599
-g1,180:18210939,37186120
-)
-]
-)
-)
-(1,180:18210939,37186120:0,0,0
-)
-g1,180:18467619,37811047
-)
-g1,180:18467619,37811047
-)
-g1,180:18467619,37811047
-x1,180:20007699,37811047
-k1,181:25396782,37811047:5389083
-k1,181:30785864,37811047:5389082
-)
-(1,182:18467619,38957927:12318245,665187,285084
-(1,181:18467619,38957927:0,665187,285084
-g1,181:18467619,38957927
-g1,181:17487340,38957927
-g1,181:17487340,38957927
-(1,181:17487340,38957927:980279,665187,285084
-g1,181:17487340,38957927
-r1,181:17487340,38957927:0,950271,285084
-(1,181:17487340,39056599:0,0,0
-)
-(1,181:17487340,38957927:723599,624927,98672
-(1,181:17487340,39056599:723599,723599,0
-[1,181:17487340,39056599:723599,723599,0
-(1,181:17487340,38333000:723599,0,0
-h1,181:17487340,38333000:0,0,0
-k1,181:18210939,38333000:723599
-g1,181:18210939,38333000
-)
-]
-)
-)
-(1,181:18210939,38333000:0,0,0
-)
-g1,181:18467619,38957927
-)
-g1,181:18467619,38957927
-)
-g1,181:18467619,38957927
-x1,181:20007699,38957927
-k1,182:25396782,38957927:5389083
-k1,182:30785864,38957927:5389082
-)
-(1,184:18467619,40104807:12318245,665187,285084
-(1,182:18467619,40104807:0,665187,285084
-g1,182:18467619,40104807
-g1,182:17487340,40104807
-g1,182:17487340,40104807
-(1,182:17487340,40104807:980279,665187,285084
-g1,182:17487340,40104807
-r1,182:17487340,40104807:0,950271,285084
-(1,182:17487340,40203479:0,0,0
-)
-(1,182:17487340,40104807:723599,624927,98672
-(1,182:17487340,40203479:723599,723599,0
-[1,182:17487340,40203479:723599,723599,0
-(1,182:17487340,39479880:723599,0,0
-h1,182:17487340,39479880:0,0,0
-k1,182:18210939,39479880:723599
-g1,182:18210939,39479880
-)
-]
-)
-)
-(1,182:18210939,39479880:0,0,0
-)
-g1,182:18467619,40104807
-)
-g1,182:18467619,40104807
-)
-g1,182:18467619,40104807
-x1,182:20007699,40104807
-k1,184:25396782,40104807:5389083
-k1,184:30785864,40104807:5389082
-)
-(1,188:17487340,41251687:13298524,0,285084
-r1,188:17487340,41251687:0,285084,285084
-k1,188:24136602,41251687:6649262
-k1,188:30785864,41251687:6649262
-)
-]
-g1,188:30785864,34567015
-g1,188:-34750136,34567015
-)
-g1,188:-34750136,34567015
-)
-]
-$1,188:2708808,34567015
-)
-k1,188:30785864,34567015:28077056
-g1,188:30785864,34567015
-)
-]
-(1,192:0,42626580:30785864,0,0
-(1,192:0,42626580:30785864,0,0
-(1,192:0,42626580:0,0,0
-r1,192:0,42626580:0,0,0
-g1,192:30785864,42626580
-g1,192:30785864,42626580
-r1,192:30785864,42626580:0,0,0
-g1,192:31506760,42626580
-g1,192:31506760,42626580
-(1,192:31506760,42626580:2293760,0,0
-(1,192:31506760,43971707:2293760,1345127,951910
-$1,192:31506760,43971707
-[1,192:31506760,43971707:2293760,1345127,951910
-(1,192:31506760,43971707:2293760,1345127,951910
-h1,192:31506760,43971707:0,0,0
-(1,192:31506760,43971707:2293760,1345127,951910
-$1,192:31506760,43971707
-[1,192:31506760,43971707:2293760,1345127,951910
-(1,192:31506760,43635834:2293760,983040,285084
-g1,192:31506760,43635834
-(1,192:31506760,43635834:2293760,983040,285084
-r1,192:31506760,43635834:0,950271,285084
-r1,192:31532974,43635834:26214,1268124,285084
-g1,192:31532974,43635834
-k1,192:32653640,43635834:1120666
-r1,192:32653640,43635834:0,1268124,285084
-k1,192:33774306,43635834:1120666
-g1,192:33774306,43635834
-r1,192:33800520,43635834:26214,1268124,285084
-)
-g1,192:33800520,43635834
-)
-(1,192:31506760,44612319:2293760,665187,285084
-g1,192:31506760,44612319
-(1,192:31506760,44612319:2293760,665187,285084
-r1,192:31506760,44612319:0,950271,285084
-r1,192:31532974,44612319:26214,950271,285084
-g1,192:31532974,44612319
-g1,192:31532974,44612319
-(1,192:31532974,44612319:2241332,462465,139537
-k1,192:31754623,44612319:221649
-$1,192:31754623,44612319
-(1,192:31754623,44612319:717620,462465,0
-x1,192:32472243,44612319
-)
-g1,192:32591844,44612319
-(1,192:32591844,44612319:960814,441393,139537
-(1,192:32591844,44612319:960814,441393,139537
-x1,192:33552658,44612319
-)
-)
-$1,192:33552658,44612319
-k1,192:33774306,44612319:221648
-)
-g1,192:33774306,44612319
-g1,192:33774306,44612319
-r1,192:33800520,44612319:26214,950271,285084
-)
-g1,192:33800520,44612319
-)
-]
-$1,192:33800520,43971707
-)
-g1,192:33800520,43971707
-g1,192:33800520,43971707
-)
-]
-$1,192:33800520,43971707
-)
-)
-k1,192:0,42626580:-33800520
-)
-g1,192:0,42626580
-k1,192:15392932,42626580:15392932
-k1,192:30785864,42626580:15392932
-)
-)
-]
-]
-]
-!45099
-}2
-Input:65:C:\Users\Public\Documents\My TeX Files\tex\latex\aeb\eqexam\examples\panel1.cut
-Input:66:C:\Users\Public\Documents\My TeX Files\tex\latex\aeb\eqexam\examples\panel1.cut
-Input:67:C:\Users\Public\Documents\My TeX Files\tex\latex\aeb\eqexam\examples\panel2.cut
-Input:68:C:\Users\Public\Documents\My TeX Files\tex\latex\aeb\eqexam\examples\panel2.cut
-Input:69:C:\Users\Public\Documents\My TeX Files\tex\latex\aeb\eqexam\examples\panel3.cut
-Input:70:C:\Users\Public\Documents\My TeX Files\tex\latex\aeb\eqexam\examples\panel3.cut
-!544
-{3
-[1,357:0,42626580:30785864,42626580,0
-[1,357:0,0:0,0,0
-(1,357:0,-2433924:0,0,0
-k1,357:0,-2433924:65781
-)
-]
-[1,357:0,42626580:30785864,42626580,0
-[1,357:0,42626580:30785864,44994723,0
-[1,357:0,-1581711:30785864,786432,0
-(1,357:0,-1581711:30785864,589824,196608
-(1,357:0,-1581711:30785864,589824,196608
-r1,357:0,-1581711:0,786432,196608
-g1,357:0,-1581711
-g1,357:0,-1581711
-(1,357:0,-1581711:30785864,589824,196608
-g1,357:0,-1581711
-x1,357:2267340,-1581711
-k1,357:8668980,-1581711:6401640
-x1,357:9054000,-1581711
-g1,357:9310680,-1581711
-x1,357:9834599,-1581711
-x1,357:10925489,-1581711
-g1,357:11182169,-1581711
-x1,357:11567189,-1581711
-g1,357:11823869,-1581711
-x1,357:12444179,-1581711
-g1,357:12700859,-1581711
-x1,357:13085879,-1581711
-g1,357:13342559,-1581711
-x1,357:13727579,-1581711
-k1,357:20129219,-1581711:6401640
-$1,357:20129219,-1581711
-[1,357:20129219,-1581711:10656645,537395,157280
-(1,357:20129219,-1581711:10656645,537395,0
-(1,357:20129219,-1581711:10656645,537395,0
-(1,357:20129219,-1581711:10656645,537395,0
-x1,357:22289336,-1581711
-k1,357:30785864,-1581711:8496528
-)
-)
-)
-]
-$1,357:30785864,-1581711
-(1,357:30785864,-1581711:0,559146,164453
-(1,357:30785864,-1515930:0,624927,98672
-(1,357:30785864,-1515930:0,624927,98672
-k1,357:22546016,-1515930:-8239848
-(1,357:22546016,-1515930:8239848,624927,98672
-(1,357:22546016,-1417258:0,0,0
-)
-(1,357:22546016,-1515930:8239848,624927,98672
-(1,357:22546016,-1417258:8239848,723599,0
-[1,357:22546016,-1417258:8239848,723599,0
-(1,357:22546016,-2140857:8239848,0,0
-h1,357:22546016,-2140857:0,0,0
-k1,357:30785864,-2140857:8239848
-g1,357:30785864,-2140857
-)
-]
-)
-)
-(1,357:30785864,-2140857:0,0,0
-)
-)
-)
-)
-)
-g1,357:30785864,-1581711
-)
-)
-)
-]
-[1,357:0,41905684:30785864,42176675,0
-(1,194:1425408,515441:29360456,589824,196608
-(1,192:1425408,515441:0,0,0
-g1,192:1425408,515441
-g1,192:0,515441
-g1,192:-256680,515441
-(1,192:-256680,515441:1425408,0,0
-k1,192:1168728,515441:1425408
-)
-g1,192:1425408,515441
-)
-g1,193:1425408,515441
-(1,193:1425408,515441:0,589824,196608
-k1,193:-2436856,515441:-3862264
-x1,193:-2137396,515441
-$1,193:-2137396,515441
-x1,193:-1778586,515441
-(1,193:-1778586,255023:778615,322479,101945
-x1,193:-1032739,255023
-)
-$1,193:-999971,515441
-x1,193:-720896,515441
-r1,193:-720896,515441:0,786432,196608
-g1,193:1425408,515441
-g1,193:1425408,515441
-)
-(1,193:1425408,515441:0,506811,0
-k1,193:442368,515441:-983040
-(1,193:442368,515441:983040,506811,0
-x1,193:1130496,515441
-g1,193:1425408,515441
-)
-)
-x1,193:3200505,515441
-x1,193:3606915,515441
-g1,193:3863595,515441
-x1,193:4483905,515441
-g1,193:4740585,515441
-x1,193:5810085,515441
-g1,193:6066765,515441
-x1,193:7499895,515441
-x1,193:9061365,515441
-g1,193:9318045,515441
-x1,193:9745845,515441
-x1,193:10712673,515441
-g1,193:10969353,515441
-x1,193:13326531,515441
-x1,193:13993899,515441
-g1,193:14250579,515441
-x1,193:17313354,515441
-g1,193:17570034,515441
-x1,193:19281234,515441
-x1,193:19687644,515441
-x1,193:20436294,515441
-k1,194:30785864,515441:10349570
-g1,194:30785864,515441
-)
-(1,207:2405687,1662321:28380177,665187,285084
-(1,204:2405687,1662321:0,665187,285084
-g1,204:2405687,1662321
-g1,204:1425408,1662321
-g1,204:1425408,1662321
-(1,204:1425408,1662321:980279,665187,285084
-g1,204:1425408,1662321
-r1,204:1425408,1662321:0,950271,285084
-(1,204:1425408,1760993:0,0,0
-)
-(1,204:1425408,1662321:723599,624927,98672
-(1,204:1425408,1760993:723599,723599,0
-[1,204:1425408,1760993:723599,723599,0
-(1,204:1425408,1037394:723599,0,0
-h1,204:1425408,1037394:0,0,0
-k1,204:2149007,1037394:723599
-g1,204:2149007,1037394
-)
-]
-)
-)
-(1,204:2149007,1037394:0,0,0
-)
-g1,204:2405687,1662321
-)
-g1,204:2405687,1662321
-)
-g1,204:2405687,1662321
-x1,204:3325184,1662321
-g1,204:3581864,1662321
-x1,204:4758314,1662321
-x1,204:6105884,1662321
-x1,204:6897314,1662321
-g1,204:7153994,1662321
-x1,204:8223494,1662321
-g1,204:8480174,1662321
-x1,204:11350712,1662321
-g1,204:11607392,1662321
-x1,204:13361372,1662321
-g1,204:13618052,1662321
-x1,204:14563490,1662321
-g1,204:14820170,1662321
-x1,204:16445537,1662321
-x1,204:17882945,1662321
-x1,204:18267965,1662321
-g1,204:18524645,1662321
-x1,204:19080785,1662321
-x1,204:19748153,1662321
-g1,204:20004833,1662321
-x1,204:22019771,1662321
-g1,204:22276451,1662321
-x1,204:23196221,1662321
-g1,204:23452901,1662321
-x1,204:24522401,1662321
-g1,204:24779081,1662321
-x1,204:27174761,1662321
-k1,207:30785864,1662321:3611103
-g1,207:30785864,1662321
-)
-(1,210:2405687,2809201:28380177,665187,285084
-(1,207:2405687,2809201:0,665187,285084
-g1,207:2405687,2809201
-g1,207:1425408,2809201
-g1,207:1425408,2809201
-(1,207:1425408,2809201:980279,665187,285084
-g1,207:1425408,2809201
-r1,207:1425408,2809201:0,950271,285084
-(1,207:1425408,2907873:0,0,0
-)
-(1,207:1425408,2809201:723599,624927,98672
-(1,207:1425408,2907873:723599,723599,0
-[1,207:1425408,2907873:723599,723599,0
-(1,207:1425408,2184274:723599,0,0
-h1,207:1425408,2184274:0,0,0
-k1,207:2149007,2184274:723599
-g1,207:2149007,2184274
-)
-]
-)
-)
-(1,207:2149007,2184274:0,0,0
-)
-g1,207:2405687,2809201
-)
-g1,207:2405687,2809201
-)
-g1,207:2405687,2809201
-x1,207:3630197,2809201
-x1,207:4378847,2809201
-g1,207:4635527,2809201
-x1,207:6560627,2809201
-g1,207:6817307,2809201
-x1,207:7737077,2809201
-g1,207:7993757,2809201
-x1,207:9324215,2809201
-g1,207:9580895,2809201
-x1,207:11339153,2809201
-g1,207:11595833,2809201
-x1,207:12665333,2809201
-g1,207:12922013,2809201
-x1,207:16280243,2809201
-g1,207:16536923,2809201
-x1,207:19360403,2809201
-g1,207:19617083,2809201
-$1,207:19617083,2809201
-x1,207:19996643,2809201
-x1,207:21117116,2809201
-$1,207:21117116,2809201
-x1,207:21331016,2809201
-k1,210:30785864,2809201:9454848
-g1,210:30785864,2809201
-)
-(1,213:2405687,3956081:28380177,665187,285084
-(1,210:2405687,3956081:0,665187,285084
-g1,210:2405687,3956081
-g1,210:1425408,3956081
-g1,210:1425408,3956081
-(1,210:1425408,3956081:980279,665187,285084
-g1,210:1425408,3956081
-r1,210:1425408,3956081:0,950271,285084
-(1,210:1425408,4054753:0,0,0
-)
-(1,210:1425408,3956081:723599,624927,98672
-(1,210:1425408,4054753:723599,723599,0
-[1,210:1425408,4054753:723599,723599,0
-(1,210:1425408,3331154:723599,0,0
-h1,210:1425408,3331154:0,0,0
-k1,210:2149007,3331154:723599
-g1,210:2149007,3331154
-)
-]
-)
-)
-(1,210:2149007,3331154:0,0,0
-)
-g1,210:2405687,3956081
-)
-g1,210:2405687,3956081
-)
-g1,210:2405687,3956081
-x1,210:3325184,3956081
-g1,210:3581864,3956081
-x1,210:6020324,3956081
-g1,210:6277004,3956081
-x1,210:7346504,3956081
-g1,210:7603184,3956081
-x1,210:8416004,3956081
-x1,210:9464114,3956081
-x1,210:11008472,3956081
-x1,210:11799902,3956081
-g1,210:12056582,3956081
-x1,210:13532492,3956081
-x1,210:13853342,3956081
-x1,210:14238362,3956081
-g1,210:14495042,3956081
-x1,210:15735662,3956081
-g1,210:15992342,3956081
-x1,210:17322800,3956081
-g1,210:17579480,3956081
-x1,210:19081058,3956081
-g1,210:19337738,3956081
-x1,210:20407238,3956081
-g1,210:20663918,3956081
-x1,210:22760138,3956081
-x1,210:23209328,3956081
-g1,210:23466008,3956081
-x1,210:24086318,3956081
-g1,210:24342998,3956081
-x1,210:25887356,3956081
-g1,210:26144036,3956081
-x1,210:28826342,3956081
-k1,213:30785864,3956081:1959522
-g1,213:30785864,3956081
-)
-(1,216:2405687,5102961:28380177,665187,285084
-(1,213:2405687,5102961:0,665187,285084
-g1,213:2405687,5102961
-g1,213:1425408,5102961
-g1,213:1425408,5102961
-(1,213:1425408,5102961:980279,665187,285084
-g1,213:1425408,5102961
-r1,213:1425408,5102961:0,950271,285084
-(1,213:1425408,5201633:0,0,0
-)
-(1,213:1425408,5102961:723599,624927,98672
-(1,213:1425408,5201633:723599,723599,0
-[1,213:1425408,5201633:723599,723599,0
-(1,213:1425408,4478034:723599,0,0
-h1,213:1425408,4478034:0,0,0
-k1,213:2149007,4478034:723599
-g1,213:2149007,4478034
-)
-]
-)
-)
-(1,213:2149007,4478034:0,0,0
-)
-g1,213:2405687,5102961
-)
-g1,213:2405687,5102961
-)
-g1,213:2405687,5102961
-x1,213:3325184,5102961
-g1,213:3581864,5102961
-x1,213:4912322,5102961
-g1,213:5169002,5102961
-x1,213:6730472,5102961
-x1,213:8805302,5102961
-g1,213:9061982,5102961
-x1,213:9447002,5102961
-g1,213:9703682,5102961
-x1,213:11975300,5102961
-g1,213:12231980,5102961
-x1,213:13002020,5102961
-x1,213:15397700,5102961
-g1,213:15654380,5102961
-x1,213:16274690,5102961
-g1,213:16531370,5102961
-x1,213:17600870,5102961
-g1,213:17857550,5102961
-x1,213:19440410,5102961
-g1,213:19697090,5102961
-x1,213:20937710,5102961
-g1,213:21194390,5102961
-x1,213:22349450,5102961
-x1,213:23269220,5102961
-x1,213:24188990,5102961
-x1,213:24574010,5102961
-g1,213:24830690,5102961
-x1,213:25451000,5102961
-g1,213:25707680,5102961
-x1,213:26092700,5102961
-g1,213:26349380,5102961
-x1,213:29322590,5102961
-k1,216:30785864,5102961:1463274
-g1,216:30785864,5102961
-)
-(1,219:2405687,6249841:28380177,665187,285084
-(1,216:2405687,6249841:0,665187,285084
-g1,216:2405687,6249841
-g1,216:1425408,6249841
-g1,216:1425408,6249841
-(1,216:1425408,6249841:980279,665187,285084
-g1,216:1425408,6249841
-r1,216:1425408,6249841:0,950271,285084
-(1,216:1425408,6348513:0,0,0
-)
-(1,216:1425408,6249841:723599,624927,98672
-(1,216:1425408,6348513:723599,723599,0
-[1,216:1425408,6348513:723599,723599,0
-(1,216:1425408,5624914:723599,0,0
-h1,216:1425408,5624914:0,0,0
-k1,216:2149007,5624914:723599
-g1,216:2149007,5624914
-)
-]
-)
-)
-(1,216:2149007,5624914:0,0,0
-)
-g1,216:2405687,6249841
-)
-g1,216:2405687,6249841
-)
-k1,216:2405687,6249841:0
-x1,216:3394907,6249841
-x1,216:3779927,6249841
-x1,216:4100777,6249841
-k1,216:4442927,6249841:342150
-x1,216:4827947,6249841
-k1,216:5170098,6249841:342151
-x1,216:7869516,6249841
-k1,216:8211666,6249841:342150
-x1,216:8981706,6249841
-x1,216:11377386,6249841
-k1,216:11719536,6249841:342150
-x1,216:12339846,6249841
-k1,216:12681996,6249841:342150
-x1,216:13751496,6249841
-k1,216:14093647,6249841:342151
-x1,216:14863687,6249841
-x1,216:16574887,6249841
-k1,216:16917037,6249841:342150
-x1,216:17558737,6249841
-x1,216:19462447,6249841
-x1,216:20232487,6249841
-x1,216:21045307,6249841
-k1,216:21387457,6249841:342150
-x1,216:22029157,6249841
-x1,216:23932867,6249841
-k1,216:24275017,6249841:342150
-x1,216:25686757,6249841
-k1,216:26028908,6249841:342151
-x1,216:26841728,6249841
-x1,216:27376478,6249841
-k1,216:27718628,6249841:342150
-x1,216:28146428,6249841
-x1,216:29498276,6249841
-k1,216:29840426,6249841:342150
-x1,216:30785864,6249841
-k1,216:30785864,6249841:0
-)
-(1,219:2405687,7200113:28380177,338603,0
-x1,219:4416347,7200113
-k1,219:30785863,7200113:26369516
-g1,219:30785863,7200113
-)
-(1,222:2405687,8346993:28380177,665187,285084
-(1,219:2405687,8346993:0,665187,285084
-g1,219:2405687,8346993
-g1,219:1425408,8346993
-g1,219:1425408,8346993
-(1,219:1425408,8346993:980279,665187,285084
-g1,219:1425408,8346993
-r1,219:1425408,8346993:0,950271,285084
-(1,219:1425408,8445665:0,0,0
-)
-(1,219:1425408,8346993:723599,624927,98672
-(1,219:1425408,8445665:723599,723599,0
-[1,219:1425408,8445665:723599,723599,0
-(1,219:1425408,7722066:723599,0,0
-h1,219:1425408,7722066:0,0,0
-k1,219:2149007,7722066:723599
-g1,219:2149007,7722066
-)
-]
-)
-)
-(1,219:2149007,7722066:0,0,0
-)
-g1,219:2405687,8346993
-)
-g1,219:2405687,8346993
-)
-g1,219:2405687,8346993
-x1,219:3500582,8346993
-g1,219:3757262,8346993
-x1,219:6580742,8346993
-g1,219:6837422,8346993
-x1,219:7757192,8346993
-g1,219:8013872,8346993
-x1,219:9083372,8346993
-g1,219:9340052,8346993
-x1,219:11029862,8346993
-x1,219:12291872,8346993
-x1,219:12612722,8346993
-g1,219:12869402,8346993
-x1,219:14110022,8346993
-g1,219:14366702,8346993
-x1,219:15436202,8346993
-g1,219:15692882,8346993
-x1,219:16334582,8346993
-x1,219:18238292,8346993
-g1,219:18494972,8346993
-x1,219:19012610,8346993
-g1,219:19269290,8346993
-x1,219:20770868,8346993
-g1,219:21027548,8346993
-x1,219:21776198,8346993
-x1,219:22524848,8346993
-g1,219:22781528,8346993
-x1,219:23466008,8346993
-g1,219:23722688,8346993
-x1,219:24967586,8346993
-g1,219:25224266,8346993
-x1,219:26037086,8346993
-x1,219:26422106,8346993
-x1,219:26571836,8346993
-k1,222:30785864,8346993:4214028
-g1,222:30785864,8346993
-)
-(1,234:1425408,9887089:29360456,589824,196608
-(1,232:1425408,9887089:0,0,0
-g1,232:1425408,9887089
-g1,232:0,9887089
-g1,232:-256680,9887089
-(1,232:-256680,9887089:1425408,0,0
-k1,232:1168728,9887089:1425408
-)
-g1,232:1425408,9887089
-)
-g1,233:1425408,9887089
-(1,233:1425408,9887089:0,589824,196608
-k1,233:-2436856,9887089:-3862264
-x1,233:-2137396,9887089
-$1,233:-2137396,9887089
-x1,233:-1778586,9887089
-(1,233:-1778586,9626671:778615,322479,101945
-x1,233:-1032739,9626671
-)
-$1,233:-999971,9887089
-x1,233:-720896,9887089
-r1,233:-720896,9887089:0,786432,196608
-g1,233:1425408,9887089
-g1,233:1425408,9887089
-)
-(1,233:1425408,9887089:0,506811,0
-k1,233:442368,9887089:-983040
-(1,233:442368,9887089:983040,506811,0
-x1,233:1130496,9887089
-g1,233:1425408,9887089
-)
-)
-x1,233:3200505,9887089
-x1,233:3606915,9887089
-g1,233:3863595,9887089
-x1,233:4483905,9887089
-g1,233:4740585,9887089
-x1,233:5810085,9887089
-g1,233:6066765,9887089
-x1,233:7499895,9887089
-x1,233:9061365,9887089
-g1,233:9318045,9887089
-x1,233:10344765,9887089
-g1,233:10601445,9887089
-x1,233:13275195,9887089
-g1,233:13531875,9887089
-x1,233:15824883,9887089
-k1,234:30785864,9887089:14960981
-g1,234:30785864,9887089
-)
-(1,242:1425408,11033969:29360456,671744,278527
-(1,242:1425408,11033969:24532581,671744,278527
-$1,242:1425408,11033969
-[1,242:1425408,11033969:24532581,671744,278527
-(1,242:1425408,11027412:24532581,665187,285084
-g1,235:1425408,11027412
-(1,238:1425408,11027412:4827873,665187,285084
-r1,235:1425408,11027412:0,950271,285084
-[1,238:1425408,11027412:4729569,665187,285084
-(1,238:1425408,11027412:4729569,665187,285084
-h1,237:1425408,11027412:0,0,0
-r1,237:1425408,11027412:0,950271,285084
-g1,237:1425408,11027412
-(1,237:1425408,11027412:723599,624927,98672
-(1,237:1425408,11126084:0,0,0
-)
-(1,237:1425408,11027412:723599,624927,98672
-(1,237:1425408,11126084:723599,723599,0
-[1,237:1425408,11126084:723599,723599,0
-(1,237:1425408,10402485:723599,0,0
-h1,237:1425408,10402485:0,0,0
-k1,237:2149007,10402485:723599
-g1,237:2149007,10402485
-)
-]
-)
-)
-(1,237:2149007,10402485:0,0,0
-)
-)
-g1,237:2405687,11027412
-x1,237:3934936,11027412
-r1,238:3934936,11027412:0,285084,285084
-k1,238:5044957,11027412:1110021
-k1,238:6154977,11027412:1110020
-)
-]
-g1,238:6154977,11027412
-g1,238:6253281,11027412
-)
-g1,238:6253281,11027412
-(1,239:6253281,11027412:4926177,665187,285084
-g1,238:6351585,11027412
-[1,239:6351585,11027412:4729569,665187,285084
-(1,239:6351585,11027412:4729569,665187,285084
-h1,238:6351585,11027412:0,0,0
-r1,238:6351585,11027412:0,950271,285084
-g1,238:6351585,11027412
-(1,238:6351585,11027412:723599,624927,98672
-(1,238:6351585,11126084:0,0,0
-)
-(1,238:6351585,11027412:723599,624927,98672
-(1,238:6351585,11126084:723599,723599,0
-[1,238:6351585,11126084:723599,723599,0
-(1,238:6351585,10402485:723599,0,0
-h1,238:6351585,10402485:0,0,0
-k1,238:7075184,10402485:723599
-g1,238:7075184,10402485
-)
-]
-)
-)
-(1,238:7075184,10402485:0,0,0
-)
-)
-g1,238:7331864,11027412
-x1,238:9347804,11027412
-r1,239:9347804,11027412:0,285084,285084
-k1,239:10214479,11027412:866675
-k1,239:11081154,11027412:866675
-)
-]
-g1,239:11081154,11027412
-g1,239:11179458,11027412
-)
-g1,239:11179458,11027412
-(1,240:11179458,11027412:4926177,665187,285084
-g1,239:11277762,11027412
-[1,240:11277762,11027412:4729569,665187,285084
-(1,240:11277762,11027412:4729569,665187,285084
-h1,239:11277762,11027412:0,0,0
-r1,239:11277762,11027412:0,950271,285084
-g1,239:11277762,11027412
-(1,239:11277762,11027412:723599,624927,98672
-(1,239:11277762,11126084:0,0,0
-)
-(1,239:11277762,11027412:723599,624927,98672
-(1,239:11277762,11126084:723599,723599,0
-[1,239:11277762,11126084:723599,723599,0
-(1,239:11277762,10402485:723599,0,0
-h1,239:11277762,10402485:0,0,0
-k1,239:12001361,10402485:723599
-g1,239:12001361,10402485
-)
-]
-)
-)
-(1,239:12001361,10402485:0,0,0
-)
-)
-g1,239:12258041,11027412
-x1,239:12835298,11027412
-x1,239:13926188,11027412
-x1,239:14460938,11027412
-r1,240:14460938,11027412:0,285084,285084
-k1,240:15234135,11027412:773197
-k1,240:16007331,11027412:773196
-)
-]
-g1,240:16007331,11027412
-g1,240:16105635,11027412
-)
-g1,240:16105635,11027412
-(1,241:16105635,11027412:4926177,665187,285084
-g1,240:16203939,11027412
-[1,241:16203939,11027412:4729569,665187,285084
-(1,241:16203939,11027412:4729569,665187,285084
-h1,240:16203939,11027412:0,0,0
-r1,240:16203939,11027412:0,950271,285084
-g1,240:16203939,11027412
-(1,240:16203939,11027412:723599,624927,98672
-(1,240:16203939,11126084:0,0,0
-)
-(1,240:16203939,11027412:723599,624927,98672
-(1,240:16203939,11126084:723599,723599,0
-[1,240:16203939,11126084:723599,723599,0
-(1,240:16203939,10402485:723599,0,0
-h1,240:16203939,10402485:0,0,0
-k1,240:16927538,10402485:723599
-g1,240:16927538,10402485
-)
-]
-)
-)
-(1,240:16927538,10402485:0,0,0
-)
-)
-g1,240:17184218,11027412
-x1,240:19622678,11027412
-r1,241:19622678,11027412:0,285084,285084
-k1,241:20278093,11027412:655415
-k1,241:20933508,11027412:655415
-)
-]
-g1,241:20933508,11027412
-g1,241:21031812,11027412
-)
-g1,241:21031812,11027412
-(1,242:21031812,11027412:4926177,665187,285084
-g1,241:21130116,11027412
-[1,242:21130116,11027412:4729569,665187,285084
-(1,242:21130116,11027412:4729569,665187,285084
-h1,241:21130116,11027412:0,0,0
-r1,241:21130116,11027412:0,950271,285084
-g1,241:21130116,11027412
-(1,241:21130116,11027412:723599,624927,98672
-(1,241:21130116,11126084:0,0,0
-)
-(1,241:21130116,11027412:723599,624927,98672
-(1,241:21130116,11126084:723599,723599,0
-[1,241:21130116,11126084:723599,723599,0
-(1,241:21130116,10402485:723599,0,0
-h1,241:21130116,10402485:0,0,0
-k1,241:21853715,10402485:723599
-g1,241:21853715,10402485
-)
-]
-)
-)
-(1,241:21853715,10402485:0,0,0
-)
-)
-g1,241:22110395,11027412
-x1,241:23447134,11027412
-r1,242:23447134,11027412:0,285084,285084
-k1,242:24653410,11027412:1206276
-k1,242:25859685,11027412:1206275
-)
-]
-g1,242:25859685,11027412
-g1,242:25957989,11027412
-)
-g1,242:25957989,11027412
-)
-]
-$1,242:25957989,11033969
-)
-k1,242:30785864,11033969:4827875
-g1,242:30785864,11033969
-)
-(1,282:1425408,12574065:29360456,589824,196608
-(1,280:1425408,12574065:0,0,0
-g1,280:1425408,12574065
-g1,280:0,12574065
-g1,280:-256680,12574065
-(1,280:-256680,12574065:1425408,0,0
-k1,280:1168728,12574065:1425408
-)
-g1,280:1425408,12574065
-)
-g1,281:1425408,12574065
-(1,281:1425408,12574065:0,589824,196608
-k1,281:-2436856,12574065:-3862264
-x1,281:-2137396,12574065
-$1,281:-2137396,12574065
-x1,281:-1778586,12574065
-(1,281:-1778586,12313647:778615,322479,101945
-x1,281:-1032739,12313647
-)
-$1,281:-999971,12574065
-x1,281:-720896,12574065
-r1,281:-720896,12574065:0,786432,196608
-g1,281:1425408,12574065
-g1,281:1425408,12574065
-)
-(1,281:1425408,12574065:0,506811,0
-k1,281:442368,12574065:-983040
-(1,281:442368,12574065:983040,506811,0
-x1,281:1130496,12574065
-g1,281:1425408,12574065
-)
-)
-x1,281:2926986,12574065
-g1,281:3183666,12574065
-x1,281:3701304,12574065
-g1,281:3957984,12574065
-x1,281:4343004,12574065
-g1,281:4599684,12574065
-x1,281:7406052,12574065
-g1,281:7662732,12574065
-x1,281:8218872,12574065
-x1,281:9609222,12574065
-g1,281:9865902,12574065
-$1,281:9865902,12574065
-x1,281:10250922,12574065
-$1,281:10250922,12574065
-g1,281:10507602,12574065
-x1,281:10935402,12574065
-x1,281:11983512,12574065
-x1,281:12779220,12574065
-k1,282:30785864,12574065:18006644
-g1,282:30785864,12574065
-)
-(1,293:1425408,15400960:29360456,2564751,2171535
-$1,292:1425408,15400960
-[1,292:1425408,15400960:29360456,2564751,2171535
-(1,292:1425408,17572495:29360456,4736286,0
-h1,287:1425408,17572495:0,0,0
-[1,292:1425408,17572495:24723513,4736286,0
-(1,292:1425408,15467479:24723513,2631270,2105016
-(1,287:1425408,15467479:24723513,2631270,2105016
-(1,287:1425408,17572495:0,0,0
-)
-(1,287:1425408,15467479:24723513,2631270,2105016
-(1,287:1425408,17572495:24723513,4736286,0
-[1,287:1425408,17572495:24723513,4736286,0
-(1,287:1425408,12836209:24723513,0,0
-h1,287:1425408,12836209:0,0,0
-k1,287:26148920,12836209:24723512
-g1,287:26148920,12836209
-)
-]
-)
-)
-(1,287:26148921,12836209:0,0,0
-)
-)
-g1,292:26148921,15467479
-g1,292:26148921,15467479
-)
-]
-k1,292:30785864,17572495:4636943
-g1,292:30785864,17572495
-)
-]
-$1,292:30785864,15400960
-g1,293:30785864,15400960
-g1,293:30785864,15400960
-)
-(1,293:1425408,17352946:29360456,665187,285084
-r1,293:1425408,17352946:0,950271,285084
-(1,293:1425408,17352946:29360456,0,0
-(1,293:1425408,17352946:29360456,4736286,0
-[1,293:1425408,17352946:29360456,4736286,0
-(1,293:1425408,17444233:29360456,4630965,0
-h1,293:1425408,17444233:0,0,0
-k1,293:26345528,17444233:24920120
-(66,2:26345528,17444233:4183655,4630965,0
-(66,2:26345528,17444233:4183655,4630965,0
-)
-)
-g66,2:30785863,17444233
-g1,293:30785863,17444233
-g1,293:30785863,17444233
-)
-]
-)
-)
-g1,293:30785864,17352946
-)
-(1,293:1425408,18303218:29360456,665187,285084
-r1,293:1425408,18303218:0,950271,285084
-k1,293:30785864,18303218:29360456
-g1,293:30785864,18303218
-)
-(1,301:1425408,19646706:29360456,589824,196608
-(1,299:1425408,19646706:0,0,0
-g1,299:1425408,19646706
-g1,299:0,19646706
-g1,299:-256680,19646706
-(1,299:-256680,19646706:1425408,0,0
-k1,299:1168728,19646706:1425408
-)
-g1,299:1425408,19646706
-)
-g1,300:1425408,19646706
-(1,300:1425408,19646706:0,589824,196608
-k1,300:-2436856,19646706:-3862264
-x1,300:-2137396,19646706
-$1,300:-2137396,19646706
-x1,300:-1778586,19646706
-(1,300:-1778586,19386288:778615,322479,101945
-x1,300:-1032739,19386288
-)
-$1,300:-999971,19646706
-x1,300:-720896,19646706
-r1,300:-720896,19646706:0,786432,196608
-g1,300:1425408,19646706
-g1,300:1425408,19646706
-)
-(1,300:1425408,19646706:0,506811,0
-k1,300:442368,19646706:-983040
-(1,300:442368,19646706:983040,506811,0
-x1,300:1130496,19646706
-g1,300:1425408,19646706
-)
-)
-x1,300:2926986,19646706
-g1,300:3183666,19646706
-x1,300:3701304,19646706
-g1,300:3957984,19646706
-x1,300:4343004,19646706
-g1,300:4599684,19646706
-x1,300:7406052,19646706
-g1,300:7662732,19646706
-x1,300:8218872,19646706
-x1,300:9609222,19646706
-g1,300:9865902,19646706
-$1,300:9865902,19646706
-x1,300:10250922,19646706
-$1,300:10250922,19646706
-g1,300:10507602,19646706
-x1,300:10935402,19646706
-x1,300:11983512,19646706
-x1,300:12779220,19646706
-k1,301:30785864,19646706:18006644
-g1,301:30785864,19646706
-)
-(1,312:1425408,23065637:29360456,3156787,2763571
-$1,311:1425408,23065637
-[1,311:1425408,23065637:29360456,3156787,2763571
-(1,311:1425408,25829208:29360456,5920358,0
-h1,307:1425408,25829208:0,0,0
-[1,311:1425408,25829208:24723513,5920358,0
-(1,311:1425408,23132156:24723513,3223306,2697052
-(1,307:1425408,23132156:24723513,3223306,2697052
-(1,307:1425408,25829208:0,0,0
-)
-(1,307:1425408,23132156:24723513,3223306,2697052
-(1,307:1425408,25829208:24723513,5920358,0
-[1,307:1425408,25829208:24723513,5920358,0
-(1,307:1425408,19908850:24723513,0,0
-h1,307:1425408,19908850:0,0,0
-k1,307:26148920,19908850:24723512
-g1,307:26148920,19908850
-)
-]
-)
-)
-(1,307:26148921,19908850:0,0,0
-)
-)
-g1,311:26148921,23132156
-g1,311:26148921,23132156
-)
-]
-k1,311:30785864,25829208:4636943
-g1,311:30785864,25829208
-)
-]
-$1,311:30785864,23065637
-g1,312:30785864,23065637
-g1,312:30785864,23065637
-)
-(1,312:1425408,25609659:29360456,665187,285084
-r1,312:1425408,25609659:0,950271,285084
-(1,312:1425408,25609659:29360456,0,0
-(1,312:1425408,25609659:29360456,5920358,0
-[1,312:1425408,25609659:29360456,5920358,0
-(1,312:1425408,24516874:29360456,4630965,0
-h1,312:1425408,24516874:0,0,0
-k1,312:26345528,24516874:24920120
-(68,2:26345528,24516874:4183655,4630965,0
-(68,2:26345528,24516874:4183655,4630965,0
-)
-)
-g68,2:30785863,24516874
-g1,312:30785863,24516874
-g1,312:30785863,24516874
-)
-]
-)
-)
-g1,312:30785864,25609659
-)
-(1,312:1425408,26559931:29360456,665187,285084
-r1,312:1425408,26559931:0,950271,285084
-k1,312:30785864,26559931:29360456
-g1,312:30785864,26559931
-)
-(1,320:1425408,27975370:29360456,671603,196608
-(1,319:1425408,27975370:0,0,0
-g1,319:1425408,27975370
-g1,319:0,27975370
-g1,319:-256680,27975370
-(1,319:-256680,27975370:1425408,0,0
-k1,319:1168728,27975370:1425408
-)
-g1,319:1425408,27975370
-)
-g1,319:1425408,27975370
-(1,319:1425408,27975370:0,671603,196608
-k1,319:-2795666,27975370:-4221074
-x1,319:-2496206,27975370
-$1,319:-2496206,27975370
-(1,319:-2496206,27975370:717620,462465,0
-x1,319:-1778586,27975370
-)
-[1,319:-1778586,28068742:778615,764975,0
-(1,319:-1778586,27626246:778615,322479,101945
-x1,319:-1032739,27626246
-)
-(1,319:-1778586,28068742:713624,225735,0
-x1,319:-1097730,28068742
-)
-]
-$1,319:-999971,27975370
-x1,319:-720896,27975370
-r1,319:-720896,27975370:0,868211,196608
-g1,319:1425408,27975370
-g1,319:1425408,27975370
-)
-(1,319:1425408,27975370:0,506811,0
-k1,319:0,27975370:-1425408
-(1,319:0,27975370:1425408,506811,0
-x1,319:1130496,27975370
-g1,319:1425408,27975370
-)
-)
-x1,319:3290343,27975370
-x1,319:3910653,27975370
-g1,319:4167333,27975370
-x1,319:5236833,27975370
-x1,319:5643243,27975370
-g1,319:5899923,27975370
-x1,319:6520233,27975370
-g1,319:6776913,27975370
-x1,319:7846413,27975370
-g1,319:8103093,27975370
-x1,319:9536223,27975370
-x1,319:11097693,27975370
-g1,319:11354373,27975370
-x1,319:14678379,27975370
-k1,320:30785864,27975370:16107485
-g1,320:30785864,27975370
-)
-(1,322:2708808,29122250:28077056,589824,196608
-(1,321:2708808,29122250:0,589824,196608
-g1,321:2708808,29122250
-g1,321:1682088,29122250
-g1,321:1425408,29122250
-(1,321:1425408,29122250:1026720,589824,196608
-g1,321:1425408,29122250
-(1,321:1425408,29122250:1026720,589824,196608
-k1,321:1439668,29122250:14260
-x1,321:1739128,29122250
-k1,321:1753388,29122250:14260
-x1,321:2138408,29122250
-k1,321:2152668,29122250:14260
-x1,321:2452128,29122250
-)
-)
-g1,321:2708808,29122250
-)
-x1,321:4210386,29122250
-g1,321:4467066,29122250
-x1,321:4984704,29122250
-g1,321:5241384,29122250
-x1,321:5626404,29122250
-g1,321:5883084,29122250
-x1,321:8903352,29122250
-k1,322:30785864,29122250:21882512
-g1,322:30785864,29122250
-)
-(1,337:2708808,31896485:28077056,2512091,2118874
-$1,336:2708808,31896485
-[1,336:2708808,31896485:28077056,2512091,2118874
-(1,336:2708808,34015359:28077056,4630965,0
-h1,332:2708808,34015359:0,0,0
-[1,336:2708808,34015359:23440113,4630965,0
-(1,336:2708808,31963004:23440113,2578610,2052355
-(1,332:2708808,31963004:23440113,2578610,2052355
-(1,332:2708808,34015359:0,0,0
-)
-(1,332:2708808,31963004:23440113,2578610,2052355
-(1,332:2708808,34015359:23440113,4630965,0
-[1,332:2708808,34015359:23440113,4630965,0
-(1,332:2708808,29384394:23440113,0,0
-h1,332:2708808,29384394:0,0,0
-k1,332:26148920,29384394:23440112
-g1,332:26148920,29384394
-)
-]
-)
-)
-(1,332:26148921,29384394:0,0,0
-)
-)
-g1,336:26148921,31963004
-g1,336:26148921,31963004
-)
-]
-k1,336:30785864,34015359:4636943
-g1,336:30785864,34015359
-)
-]
-$1,336:30785864,31896485
-g1,337:30785864,31896485
-g1,337:30785864,31896485
-)
-(1,337:2708808,33795810:28077056,665187,285084
-r1,337:2708808,33795810:0,950271,285084
-(1,337:2708808,33795810:28077056,0,0
-(1,337:2708808,33795810:28077056,4630965,0
-[1,337:2708808,33795810:28077056,4630965,0
-(1,337:2708808,33992418:28077056,4630965,0
-h1,337:2708808,33992418:0,0,0
-k1,337:26345528,33992418:23636720
-(70,2:26345528,33992418:4183655,4630965,0
-(70,2:26345528,33992418:4183655,4630965,0
-)
-)
-g70,2:30785863,33992418
-g1,337:30785863,33992418
-g1,337:30785863,33992418
-)
-]
-)
-)
-g1,337:30785864,33795810
-)
-(1,337:2708808,34746082:28077056,665187,285084
-r1,337:2708808,34746082:0,950271,285084
-k1,337:30785864,34746082:28077056
-g1,337:30785864,34746082
-)
-(1,340:2708808,35892962:28077056,589824,196608
-(1,339:2708808,35892962:0,589824,196608
-g1,339:2708808,35892962
-g1,339:1682088,35892962
-g1,339:1425408,35892962
-(1,339:1425408,35892962:1026720,589824,196608
-g1,339:1425408,35892962
-(1,339:1425408,35892962:1026720,589824,196608
-g1,339:1425408,35892962
-x1,339:1724868,35892962
-g1,339:1724868,35892962
-x1,339:2152668,35892962
-g1,339:2152668,35892962
-x1,339:2452128,35892962
-)
-)
-g1,339:2708808,35892962
-)
-x1,339:4210386,35892962
-g1,339:4467066,35892962
-x1,339:4984704,35892962
-g1,339:5241384,35892962
-x1,339:5626404,35892962
-g1,339:5883084,35892962
-x1,339:8903352,35892962
-k1,340:30785864,35892962:21882512
-g1,340:30785864,35892962
-)
-(1,345:2708808,38194341:28077056,2039235,1512980
-(1,340:2708808,38194341:28077056,2039235,1512980
-(1,340:2708808,39707321:0,0,0
-)
-(1,340:2708808,38194341:28077056,2039235,1512980
-(1,340:2708808,39707321:28077056,3552215,0
-[1,340:2708808,39707321:28077056,3552215,0
-(1,340:2708808,36155106:28077056,0,0
-h1,340:2708808,36155106:0,0,0
-k1,340:30785864,36155106:28077056
-g1,340:30785864,36155106
-)
-]
-)
-)
-(1,340:30785864,36155106:0,0,0
-)
-)
-g1,345:30785864,38194341
-g1,345:30785864,38194341
-)
-]
-(1,357:0,42626580:30785864,0,0
-(1,357:0,42626580:30785864,0,0
-(1,357:0,42626580:0,0,0
-r1,357:0,42626580:0,0,0
-g1,357:30785864,42626580
-g1,357:30785864,42626580
-r1,357:30785864,42626580:0,0,0
-g1,357:31506760,42626580
-g1,357:31506760,42626580
-(1,357:31506760,42626580:2293760,0,0
-(1,357:31506760,43971707:2293760,1345127,951910
-$1,357:31506760,43971707
-[1,357:31506760,43971707:2293760,1345127,951910
-(1,357:31506760,43971707:2293760,1345127,951910
-h1,357:31506760,43971707:0,0,0
-(1,357:31506760,43971707:2293760,1345127,951910
-$1,357:31506760,43971707
-[1,357:31506760,43971707:2293760,1345127,951910
-(1,357:31506760,43635834:2293760,983040,285084
-g1,357:31506760,43635834
-(1,357:31506760,43635834:2293760,983040,285084
-r1,357:31506760,43635834:0,950271,285084
-r1,357:31532974,43635834:26214,1268124,285084
-g1,357:31532974,43635834
-k1,357:32653640,43635834:1120666
-r1,357:32653640,43635834:0,1268124,285084
-k1,357:33774306,43635834:1120666
-g1,357:33774306,43635834
-r1,357:33800520,43635834:26214,1268124,285084
-)
-g1,357:33800520,43635834
-)
-(1,357:31506760,44612319:2293760,665187,285084
-g1,357:31506760,44612319
-(1,357:31506760,44612319:2293760,665187,285084
-r1,357:31506760,44612319:0,950271,285084
-r1,357:31532974,44612319:26214,950271,285084
-g1,357:31532974,44612319
-g1,357:31532974,44612319
-(1,357:31532974,44612319:2241332,462465,139537
-k1,357:31754623,44612319:221649
-$1,357:31754623,44612319
-(1,357:31754623,44612319:717620,462465,0
-x1,357:32472243,44612319
-)
-g1,357:32591844,44612319
-(1,357:32591844,44612319:960814,441393,139537
-(1,357:32591844,44612319:960814,441393,139537
-x1,357:33552658,44612319
-)
-)
-$1,357:33552658,44612319
-k1,357:33774306,44612319:221648
-)
-g1,357:33774306,44612319
-g1,357:33774306,44612319
-r1,357:33800520,44612319:26214,950271,285084
-)
-g1,357:33800520,44612319
-)
-]
-$1,357:33800520,43971707
-)
-g1,357:33800520,43971707
-g1,357:33800520,43971707
-)
-]
-$1,357:33800520,43971707
-)
-)
-k1,357:0,42626580:-33800520
-)
-g1,357:0,42626580
-k1,357:15392932,42626580:15392932
-k1,357:30785864,42626580:15392932
-)
-)
-]
-]
-]
-!29873
-}3
-!10
-{4
-[1,430:0,42626580:30785864,42626580,0
-[1,430:0,0:0,0,0
-(1,430:0,-2433924:0,0,0
-k1,430:0,-2433924:65781
-)
-]
-[1,430:0,42626580:30785864,42626580,0
-[1,430:0,42626580:30785864,44994723,0
-[1,430:0,-1581711:30785864,786432,0
-(1,430:0,-1581711:30785864,589824,196608
-(1,430:0,-1581711:30785864,589824,196608
-r1,430:0,-1581711:0,786432,196608
-g1,430:0,-1581711
-g1,430:0,-1581711
-(1,430:0,-1581711:30785864,589824,196608
-g1,430:0,-1581711
-x1,430:2267340,-1581711
-k1,430:8668980,-1581711:6401640
-x1,430:9054000,-1581711
-g1,430:9310680,-1581711
-x1,430:9834599,-1581711
-x1,430:10925489,-1581711
-g1,430:11182169,-1581711
-x1,430:11567189,-1581711
-g1,430:11823869,-1581711
-x1,430:12444179,-1581711
-g1,430:12700859,-1581711
-x1,430:13085879,-1581711
-g1,430:13342559,-1581711
-x1,430:13727579,-1581711
-k1,430:20129219,-1581711:6401640
-$1,430:20129219,-1581711
-[1,430:20129219,-1581711:10656645,537395,157280
-(1,430:20129219,-1581711:10656645,537395,0
-(1,430:20129219,-1581711:10656645,537395,0
-(1,430:20129219,-1581711:10656645,537395,0
-x1,430:22289336,-1581711
-k1,430:30785864,-1581711:8496528
-)
-)
-)
-]
-$1,430:30785864,-1581711
-(1,430:30785864,-1581711:0,559146,164453
-(1,430:30785864,-1515930:0,624927,98672
-(1,430:30785864,-1515930:0,624927,98672
-k1,430:22546016,-1515930:-8239848
-(1,430:22546016,-1515930:8239848,624927,98672
-(1,430:22546016,-1417258:0,0,0
-)
-(1,430:22546016,-1515930:8239848,624927,98672
-(1,430:22546016,-1417258:8239848,723599,0
-[1,430:22546016,-1417258:8239848,723599,0
-(1,430:22546016,-2140857:8239848,0,0
-h1,430:22546016,-2140857:0,0,0
-k1,430:30785864,-2140857:8239848
-g1,430:30785864,-2140857
-)
-]
-)
-)
-(1,430:30785864,-2140857:0,0,0
-)
-)
-)
-)
-)
-g1,430:30785864,-1581711
-)
-)
-)
-]
-[1,430:0,41905684:30785864,42176675,0
-(1,359:1425408,515441:29360456,589824,196608
-(1,357:1425408,515441:0,0,0
-g1,357:1425408,515441
-g1,357:0,515441
-g1,357:-256680,515441
-(1,357:-256680,515441:1425408,0,0
-k1,357:1168728,515441:1425408
-)
-g1,357:1425408,515441
-)
-g1,357:1425408,515441
-(1,357:1425408,515441:0,589824,196608
-k1,357:-2795666,515441:-4221074
-x1,357:-2496206,515441
-$1,357:-2496206,515441
-(1,357:-2496206,515441:717620,462465,0
-x1,357:-1778586,515441
-)
-(1,357:-1778586,255023:778615,322479,101945
-x1,357:-1032739,255023
-)
-$1,357:-999971,515441
-x1,357:-720896,515441
-r1,357:-720896,515441:0,786432,196608
-g1,357:1425408,515441
-g1,357:1425408,515441
-)
-(1,357:1425408,515441:0,506811,0
-k1,357:0,515441:-1425408
-(1,357:0,515441:1425408,506811,0
-x1,357:1130496,515441
-g1,357:1425408,515441
-)
-)
-x1,357:2858538,515441
-x1,357:3179388,515441
-g1,357:3436068,515441
-x1,357:4505568,515441
-x1,357:4911978,515441
-g1,357:5168658,515441
-x1,357:5788968,515441
-g1,357:6045648,515441
-x1,357:7115148,515441
-g1,357:7371828,515441
-x1,357:8804958,515441
-x1,357:10580328,515441
-g1,357:10922568,515441
-x1,357:11713725,515441
-x1,357:12740445,515441
-g1,357:12997125,515441
-g1,357:12997125,515441
-g1,357:12740445,515441
-g1,357:12997125,515441
-g1,357:12997125,515441
-x1,357:13809945,515441
-g1,357:14066625,515441
-x1,357:15136125,515441
-g1,357:15392805,515441
-x1,357:16547865,515441
-x1,357:16932885,515441
-g1,357:17189565,515441
-x1,357:17809875,515441
-g1,357:18066555,515441
-x1,357:19606635,515441
-g1,357:19863315,515441
-x1,357:20462235,515441
-k1,359:30785864,515441:10323629
-g1,359:30785864,515441
-)
-(1,384:1425408,13155585:29360456,12279696,152916
-[1,384:1425408,13155585:14352548,12279696,0
-(1,364:2708808,1662321:13069148,589824,196608
-(1,363:2708808,1662321:0,589824,196608
-g1,363:2708808,1662321
-g1,363:1682088,1662321
-g1,363:1425408,1662321
-(1,363:1425408,1662321:1026720,589824,196608
-g1,363:1425408,1662321
-(1,363:1425408,1662321:1026720,589824,196608
-k1,363:1439668,1662321:14260
-x1,363:1739128,1662321
-k1,363:1753388,1662321:14260
-x1,363:2138408,1662321
-k1,363:2152668,1662321:14260
-x1,363:2452128,1662321
-)
-)
-g1,363:2708808,1662321
-)
-x1,363:4210386,1662321
-k1,363:4528146,1662321:317760
-x1,363:5045784,1662321
-k1,363:5363543,1662321:317759
-x1,363:5748563,1662321
-k1,363:6066323,1662321:317760
-x1,363:7546511,1662321
-x1,363:9086591,1662321
-k1,363:9612070,1662321:525479
-x1,363:10499619,1662321
-k1,363:10817379,1662321:317760
-x1,363:12190617,1662321
-k1,363:12508376,1662321:317759
-x1,363:12914786,1662321
-x1,363:13706216,1662321
-k1,363:14023976,1662321:317760
-x1,363:15777956,1662321
-k1,363:15777956,1662321:0
-)
-(1,364:2708808,2612593:13069148,546132,152916
-x1,364:4141938,2612593
-x1,363:4462788,2612593
-g1,363:4719468,2612593
-x1,363:5532288,2612593
-x1,363:5917308,2612593
-g1,363:6173988,2612593
-x1,363:6815688,2612593
-x1,363:8013528,2612593
-g1,363:8270208,2612593
-x1,363:9403605,2612593
-g1,363:9660285,2612593
-x1,363:10216425,2612593
-x1,363:11221755,2612593
-x1,363:11628165,2612593
-x1,363:12868785,2612593
-k1,364:15777956,2612593:2909171
-g1,364:15777956,2612593
-)
-(1,368:2708808,5462315:13069148,2631270,2105016
-(1,365:2708808,5462315:13069148,2631270,2105016
-(1,365:2708808,7567331:0,0,0
-)
-(1,365:2708808,5462315:13069148,2631270,2105016
-(1,365:2708808,7567331:13069148,4736286,0
-[1,365:2708808,7567331:13069148,4736286,0
-(1,365:2708808,2831045:13069148,0,0
-h1,365:2708808,2831045:0,0,0
-k1,365:15777956,2831045:13069148
-g1,365:15777956,2831045
-)
-]
-)
-)
-(1,365:15777956,2831045:0,0,0
-)
-)
-g1,368:15777956,5462315
-g1,368:15777956,5462315
-)
-(1,370:2708808,8419299:13069148,589824,196608
-(1,369:2708808,8419299:0,589824,196608
-g1,369:2708808,8419299
-g1,369:1682088,8419299
-g1,369:1425408,8419299
-(1,369:1425408,8419299:1026720,589824,196608
-g1,369:1425408,8419299
-(1,369:1425408,8419299:1026720,589824,196608
-g1,369:1425408,8419299
-x1,369:1724868,8419299
-g1,369:1724868,8419299
-x1,369:2152668,8419299
-g1,369:2152668,8419299
-x1,369:2452128,8419299
-)
-)
-g1,369:2708808,8419299
-)
-x1,369:4210386,8419299
-g1,369:4467066,8419299
-x1,369:4984704,8419299
-g1,369:5241384,8419299
-x1,369:5626404,8419299
-g1,369:5883084,8419299
-x1,369:7363272,8419299
-x1,369:8903352,8419299
-k1,370:15777956,8419299:6874604
-g1,370:15777956,8419299
-)
-(1,373:2708808,11312713:13069148,2631270,2105016
-(1,370:2708808,11312713:13069148,2631270,2105016
-(1,370:2708808,13417729:0,0,0
-)
-(1,370:2708808,11312713:13069148,2631270,2105016
-(1,370:2708808,13417729:13069148,4736286,0
-[1,370:2708808,13417729:13069148,4736286,0
-(1,370:2708808,8681443:13069148,0,0
-h1,370:2708808,8681443:0,0,0
-k1,370:15777956,8681443:13069148
-g1,370:15777956,8681443
-)
-]
-)
-)
-(1,370:15777956,8681443:0,0,0
-)
-)
-g1,373:15777956,11312713
-g1,373:15777956,11312713
-)
-]
-k1,384:16092529,13155585:314573
-r1,384:16118743,13155585:26214,12432612,152916
-k1,384:16433316,13155585:314573
-[1,384:16433316,13155585:14352548,12279696,0
-(1,375:17716716,1662321:13069148,589824,196608
-(1,374:17716716,1662321:0,589824,196608
-g1,374:17716716,1662321
-g1,374:16689996,1662321
-g1,374:16433316,1662321
-(1,374:16433316,1662321:1026720,589824,196608
-g1,374:16433316,1662321
-(1,374:16433316,1662321:1026720,589824,196608
-k1,374:16461836,1662321:28520
-x1,374:16761296,1662321
-k1,374:16789816,1662321:28520
-x1,374:17132056,1662321
-k1,374:17160576,1662321:28520
-x1,374:17460036,1662321
-)
-)
-g1,374:17716716,1662321
-)
-x1,374:19218294,1662321
-g1,374:19474974,1662321
-x1,374:19992612,1662321
-g1,374:20249292,1662321
-x1,374:20634312,1662321
-g1,374:20890992,1662321
-x1,374:22371180,1662321
-x1,374:23911260,1662321
-k1,375:30785864,1662321:6874604
-g1,375:30785864,1662321
-)
-(1,378:17716716,4555735:13069148,2631270,2105016
-(1,375:17716716,4555735:13069148,2631270,2105016
-(1,375:17716716,6660751:0,0,0
-)
-(1,375:17716716,4555735:13069148,2631270,2105016
-(1,375:17716716,6660751:13069148,4736286,0
-[1,375:17716716,6660751:13069148,4736286,0
-(1,375:17716716,1924465:13069148,0,0
-h1,375:17716716,1924465:0,0,0
-k1,375:30785864,1924465:13069148
-g1,375:30785864,1924465
-)
-]
-)
-)
-(1,375:30785864,1924465:0,0,0
-)
-)
-g1,378:30785864,4555735
-g1,378:30785864,4555735
-)
-(1,380:17716716,7512719:13069148,589824,196608
-(1,379:17716716,7512719:0,589824,196608
-g1,379:17716716,7512719
-g1,379:16689996,7512719
-g1,379:16433316,7512719
-(1,379:16433316,7512719:1026720,589824,196608
-g1,379:16433316,7512719
-(1,379:16433316,7512719:1026720,589824,196608
-g1,379:16433316,7512719
-x1,379:16732776,7512719
-g1,379:16732776,7512719
-x1,379:17160576,7512719
-g1,379:17160576,7512719
-x1,379:17460036,7512719
-)
-)
-g1,379:17716716,7512719
-)
-x1,379:19218294,7512719
-g1,379:19474974,7512719
-x1,379:19992612,7512719
-g1,379:20249292,7512719
-x1,379:20634312,7512719
-g1,379:20890992,7512719
-x1,379:22371180,7512719
-x1,379:23911260,7512719
-k1,380:30785864,7512719:6874604
-g1,380:30785864,7512719
-)
-(1,383:17716716,10406133:13069148,2631270,2105016
-(1,380:17716716,10406133:13069148,2631270,2105016
-(1,380:17716716,12511149:0,0,0
-)
-(1,380:17716716,10406133:13069148,2631270,2105016
-(1,380:17716716,12511149:13069148,4736286,0
-[1,380:17716716,12511149:13069148,4736286,0
-(1,380:17716716,7774863:13069148,0,0
-h1,380:17716716,7774863:0,0,0
-k1,380:30785864,7774863:13069148
-g1,380:30785864,7774863
-)
-]
-)
-)
-(1,380:30785864,7774863:0,0,0
-)
-)
-g1,383:30785864,10406133
-g1,383:30785864,10406133
-)
-]
-(1,384:30785864,13155585:0,338603,152916
-h1,384:30785864,13155585:427800,338603,152916
-k1,384:30785864,13155585:-427800
-)
-)
-(1,388:0,14741154:30785864,26214,0
-h1,387:0,14741154:1155060,0,0
-(1,387:1155060,14741154:29360456,26214,0
-k1,387:5522052,14741154:4366992
-(1,387:5522052,14741154:20626472,26214,0
-r1,387:26148524,14741154:20626472,26214,0
-)
-k1,387:30515516,14741154:4366992
-)
-k1,388:30785864,14741154:270348
-g1,388:30785864,14741154
-)
-(1,393:0,15990987:30785864,589824,196608
-g1,391:0,15990987
-(1,391:0,15990987:0,0,0
-g1,391:0,15990987
-g1,391:0,15990987
-)
-x1,391:604388,15990987
-x1,391:1715315,15990987
-g1,391:2010227,15990987
-x1,391:2339728,15990987
-x1,391:2939565,15990987
-g1,391:3234477,15990987
-x1,391:3533937,15990987
-$1,391:3533937,15990987
-(1,391:3533937,15990987:770040,506811,0
-x1,391:4303977,15990987
-)
-g1,391:4435047,15990987
-(1,391:4435047,15990987:2057718,521949,152916
-(1,391:4435047,15990987:2057718,521949,152916
-x1,391:4862847,15990987
-x1,391:5910957,15990987
-x1,391:6492765,15990987
-)
-)
-$1,391:6492765,15990987
-x1,391:6792225,15990987
-g1,391:7087137,15990987
-g1,391:7087137,15990987
-g1,391:7087137,15990987
-x1,391:8413317,15990987
-g1,392:8669997,15990987
-x1,392:10103127,15990987
-x1,392:11664597,15990987
-g1,392:11921277,15990987
-x1,392:12438915,15990987
-g1,392:12695595,15990987
-x1,392:13080615,15990987
-g1,392:13337295,15990987
-x1,392:15052773,15990987
-g1,392:15309453,15990987
-x1,392:17469843,15990987
-g1,392:17726523,15990987
-x1,392:18346833,15990987
-g1,392:18603513,15990987
-x1,392:22030191,15990987
-g1,392:22286871,15990987
-x1,392:25328529,15990987
-g1,392:25585209,15990987
-x1,392:28579809,15990987
-k1,393:30785864,15990987:2206055
-g1,393:30785864,15990987
-)
-(1,397:1425408,17137867:29360456,589824,196608
-(1,395:1425408,17137867:0,0,0
-g1,395:1425408,17137867
-g1,395:0,17137867
-g1,395:-256680,17137867
-(1,395:-256680,17137867:1425408,0,0
-k1,395:1168728,17137867:1425408
-)
-g1,395:1425408,17137867
-)
-g1,396:1425408,17137867
-(1,396:1425408,17137867:0,589824,196608
-k1,396:-2436856,17137867:-3862264
-x1,396:-2137396,17137867
-$1,396:-2137396,17137867
-x1,396:-1778586,17137867
-(1,396:-1778586,16877449:778615,322479,101945
-x1,396:-1032739,16877449
-)
-$1,396:-999971,17137867
-x1,396:-720896,17137867
-r1,396:-720896,17137867:0,786432,196608
-g1,396:1425408,17137867
-g1,396:1425408,17137867
-)
-(1,396:1425408,17137867:0,506811,0
-k1,396:442368,17137867:-983040
-(1,396:442368,17137867:983040,506811,0
-x1,396:1130496,17137867
-g1,396:1425408,17137867
-)
-)
-x1,396:2926986,17137867
-g1,396:3183666,17137867
-x1,396:3701304,17137867
-g1,396:3957984,17137867
-x1,396:4343004,17137867
-g1,396:4599684,17137867
-x1,396:7619952,17137867
-k1,397:30785864,17137867:23165912
-g1,397:30785864,17137867
-)
-(1,400:1425408,18847210:29360456,1447199,920944
-(1,397:1425408,18847210:29360456,1447199,920944
-(1,397:1425408,19768154:0,0,0
-)
-(1,397:1425408,18847210:29360456,1447199,920944
-(1,397:1425408,19768154:29360456,2368143,0
-[1,397:1425408,19768154:29360456,2368143,0
-(1,397:1425408,17400011:29360456,0,0
-h1,397:1425408,17400011:0,0,0
-k1,397:30785864,17400011:29360456
-g1,397:30785864,17400011
-)
-]
-)
-)
-(1,397:30785864,17400011:0,0,0
-)
-)
-g1,400:30785864,18847210
-g1,400:30785864,18847210
-)
-(1,404:1425408,20816730:29360456,589824,196608
-(1,402:1425408,20816730:0,0,0
-g1,402:1425408,20816730
-g1,402:0,20816730
-g1,402:-256680,20816730
-(1,402:-256680,20816730:1425408,0,0
-k1,402:1168728,20816730:1425408
-)
-g1,402:1425408,20816730
-)
-g1,403:1425408,20816730
-(1,403:1425408,20816730:0,589824,196608
-k1,403:-2436856,20816730:-3862264
-x1,403:-2137396,20816730
-$1,403:-2137396,20816730
-x1,403:-1778586,20816730
-(1,403:-1778586,20556312:778615,322479,101945
-x1,403:-1032739,20556312
-)
-$1,403:-999971,20816730
-x1,403:-720896,20816730
-r1,403:-720896,20816730:0,786432,196608
-g1,403:1425408,20816730
-g1,403:1425408,20816730
-)
-(1,403:1425408,20816730:0,506811,0
-k1,403:442368,20816730:-983040
-(1,403:442368,20816730:983040,506811,0
-x1,403:1130496,20816730
-g1,403:1425408,20816730
-)
-)
-x1,403:2926986,20816730
-g1,403:3183666,20816730
-x1,403:3701304,20816730
-g1,403:3957984,20816730
-x1,403:4343004,20816730
-g1,403:4599684,20816730
-x1,403:7619952,20816730
-k1,404:30785864,20816730:23165912
-g1,404:30785864,20816730
-)
-(1,407:1425408,22526073:29360456,1447199,920944
-(1,404:1425408,22526073:29360456,1447199,920944
-(1,404:1425408,23447017:0,0,0
-)
-(1,404:1425408,22526073:29360456,1447199,920944
-(1,404:1425408,23447017:29360456,2368143,0
-[1,404:1425408,23447017:29360456,2368143,0
-(1,404:1425408,21078874:29360456,0,0
-h1,404:1425408,21078874:0,0,0
-k1,404:30785864,21078874:29360456
-g1,404:30785864,21078874
-)
-]
-)
-)
-(1,404:30785864,21078874:0,0,0
-)
-)
-g1,407:30785864,22526073
-g1,407:30785864,22526073
-)
-(1,411:1425408,24495593:29360456,589824,196608
-(1,409:1425408,24495593:0,0,0
-g1,409:1425408,24495593
-g1,409:0,24495593
-g1,409:-256680,24495593
-(1,409:-256680,24495593:1425408,0,0
-k1,409:1168728,24495593:1425408
-)
-g1,409:1425408,24495593
-)
-g1,410:1425408,24495593
-(1,410:1425408,24495593:0,589824,196608
-k1,410:-2436856,24495593:-3862264
-x1,410:-2137396,24495593
-$1,410:-2137396,24495593
-x1,410:-1778586,24495593
-(1,410:-1778586,24235175:778615,322479,101945
-x1,410:-1032739,24235175
-)
-$1,410:-999971,24495593
-x1,410:-720896,24495593
-r1,410:-720896,24495593:0,786432,196608
-g1,410:1425408,24495593
-g1,410:1425408,24495593
-)
-(1,410:1425408,24495593:0,506811,0
-k1,410:442368,24495593:-983040
-(1,410:442368,24495593:983040,506811,0
-x1,410:1130496,24495593
-g1,410:1425408,24495593
-)
-)
-x1,410:2926986,24495593
-g1,410:3183666,24495593
-x1,410:3701304,24495593
-g1,410:3957984,24495593
-x1,410:4343004,24495593
-g1,410:4599684,24495593
-x1,410:7619952,24495593
-k1,411:30785864,24495593:23165912
-g1,411:30785864,24495593
-)
-(1,414:1425408,27389007:29360456,2631270,2105016
-(1,411:1425408,27389007:29360456,2631270,2105016
-(1,411:1425408,29494023:0,0,0
-)
-(1,411:1425408,27389007:29360456,2631270,2105016
-(1,411:1425408,29494023:29360456,4736286,0
-[1,411:1425408,29494023:29360456,4736286,0
-(1,411:1425408,24757737:29360456,0,0
-h1,411:1425408,24757737:0,0,0
-k1,411:30785864,24757737:29360456
-g1,411:30785864,24757737
-)
-]
-)
-)
-(1,411:30785864,24757737:0,0,0
-)
-)
-g1,414:30785864,27389007
-g1,414:30785864,27389007
-)
-(1,418:1425408,30542599:29360456,589824,196608
-(1,416:1425408,30542599:0,0,0
-g1,416:1425408,30542599
-g1,416:0,30542599
-g1,416:-256680,30542599
-(1,416:-256680,30542599:1425408,0,0
-k1,416:1168728,30542599:1425408
-)
-g1,416:1425408,30542599
-)
-g1,417:1425408,30542599
-(1,417:1425408,30542599:0,589824,196608
-k1,417:-2436856,30542599:-3862264
-x1,417:-2137396,30542599
-$1,417:-2137396,30542599
-x1,417:-1778586,30542599
-(1,417:-1778586,30282181:778615,322479,101945
-x1,417:-1032739,30282181
-)
-$1,417:-999971,30542599
-x1,417:-720896,30542599
-r1,417:-720896,30542599:0,786432,196608
-g1,417:1425408,30542599
-g1,417:1425408,30542599
-)
-(1,417:1425408,30542599:0,506811,0
-k1,417:442368,30542599:-983040
-(1,417:442368,30542599:983040,506811,0
-x1,417:1130496,30542599
-g1,417:1425408,30542599
-)
-)
-x1,417:2926986,30542599
-g1,417:3183666,30542599
-x1,417:3701304,30542599
-g1,417:3957984,30542599
-x1,417:4343004,30542599
-g1,417:4599684,30542599
-x1,417:7619952,30542599
-k1,418:30785864,30542599:23165912
-g1,418:30785864,30542599
-)
-(1,421:1425408,33436013:29360456,2631270,2105016
-(1,418:1425408,33436013:29360456,2631270,2105016
-(1,418:1425408,35541029:0,0,0
-)
-(1,418:1425408,33436013:29360456,2631270,2105016
-(1,418:1425408,35541029:29360456,4736286,0
-[1,418:1425408,35541029:29360456,4736286,0
-(1,418:1425408,30804743:29360456,0,0
-h1,418:1425408,30804743:0,0,0
-k1,418:30785864,30804743:29360456
-g1,418:30785864,30804743
-)
-]
-)
-)
-(1,418:30785864,30804743:0,0,0
-)
-)
-g1,421:30785864,33436013
-g1,421:30785864,33436013
-)
-(1,425:1425408,36589605:29360456,589824,196608
-(1,423:1425408,36589605:0,0,0
-g1,423:1425408,36589605
-g1,423:0,36589605
-g1,423:-256680,36589605
-(1,423:-256680,36589605:1425408,0,0
-k1,423:1168728,36589605:1425408
-)
-g1,423:1425408,36589605
-)
-g1,424:1425408,36589605
-(1,424:1425408,36589605:0,589824,196608
-k1,424:-2795666,36589605:-4221074
-x1,424:-2496206,36589605
-$1,424:-2496206,36589605
-(1,424:-2496206,36589605:717620,462465,0
-x1,424:-1778586,36589605
-)
-(1,424:-1778586,36329187:778615,322479,101945
-x1,424:-1032739,36329187
-)
-$1,424:-999971,36589605
-x1,424:-720896,36589605
-r1,424:-720896,36589605:0,786432,196608
-g1,424:1425408,36589605
-g1,424:1425408,36589605
-)
-(1,424:1425408,36589605:0,506811,0
-k1,424:442368,36589605:-983040
-(1,424:442368,36589605:983040,506811,0
-x1,424:1130496,36589605
-g1,424:1425408,36589605
-)
-)
-x1,424:2926986,36589605
-g1,424:3183666,36589605
-x1,424:3701304,36589605
-g1,424:3957984,36589605
-x1,424:4343004,36589605
-g1,424:4599684,36589605
-x1,424:7619952,36589605
-k1,425:30785864,36589605:23165912
-g1,425:30785864,36589605
-)
-(1,428:1425408,39483019:29360456,2631270,2105016
-(1,425:1425408,39483019:29360456,2631270,2105016
-(1,425:1425408,41588035:0,0,0
-)
-(1,425:1425408,39483019:29360456,2631270,2105016
-(1,425:1425408,41588035:29360456,4736286,0
-[1,425:1425408,41588035:29360456,4736286,0
-(1,425:1425408,36851749:29360456,0,0
-h1,425:1425408,36851749:0,0,0
-k1,425:30785864,36851749:29360456
-g1,425:30785864,36851749
-)
-]
-)
-)
-(1,425:30785864,36851749:0,0,0
-)
-)
-g1,428:30785864,39483019
-g1,428:30785864,39483019
-)
-]
-(1,430:0,42626580:30785864,0,0
-(1,430:0,42626580:30785864,0,0
-(1,430:0,42626580:0,0,0
-r1,430:0,42626580:0,0,0
-g1,430:30785864,42626580
-g1,430:30785864,42626580
-r1,430:30785864,42626580:0,0,0
-g1,430:31506760,42626580
-g1,430:31506760,42626580
-(1,430:31506760,42626580:2293760,0,0
-(1,430:31506760,43971707:2293760,1345127,951910
-$1,430:31506760,43971707
-[1,430:31506760,43971707:2293760,1345127,951910
-(1,430:31506760,43971707:2293760,1345127,951910
-h1,430:31506760,43971707:0,0,0
-(1,430:31506760,43971707:2293760,1345127,951910
-$1,430:31506760,43971707
-[1,430:31506760,43971707:2293760,1345127,951910
-(1,430:31506760,43635834:2293760,983040,285084
-g1,430:31506760,43635834
-(1,430:31506760,43635834:2293760,983040,285084
-r1,430:31506760,43635834:0,950271,285084
-r1,430:31532974,43635834:26214,1268124,285084
-g1,430:31532974,43635834
-k1,430:32653640,43635834:1120666
-r1,430:32653640,43635834:0,1268124,285084
-k1,430:33774306,43635834:1120666
-g1,430:33774306,43635834
-r1,430:33800520,43635834:26214,1268124,285084
-)
-g1,430:33800520,43635834
-)
-(1,430:31506760,44612319:2293760,665187,285084
-g1,430:31506760,44612319
-(1,430:31506760,44612319:2293760,665187,285084
-r1,430:31506760,44612319:0,950271,285084
-r1,430:31532974,44612319:26214,950271,285084
-g1,430:31532974,44612319
-g1,430:31532974,44612319
-(1,430:31532974,44612319:2241332,462465,139537
-k1,430:31754623,44612319:221649
-$1,430:31754623,44612319
-(1,430:31754623,44612319:717620,462465,0
-x1,430:32472243,44612319
-)
-g1,430:32591844,44612319
-(1,430:32591844,44612319:960814,441393,139537
-(1,430:32591844,44612319:960814,441393,139537
-x1,430:33552658,44612319
-)
-)
-$1,430:33552658,44612319
-k1,430:33774306,44612319:221648
-)
-g1,430:33774306,44612319
-g1,430:33774306,44612319
-r1,430:33800520,44612319:26214,950271,285084
-)
-g1,430:33800520,44612319
-)
-]
-$1,430:33800520,43971707
-)
-g1,430:33800520,43971707
-g1,430:33800520,43971707
-)
-]
-$1,430:33800520,43971707
-)
-)
-k1,430:0,42626580:-33800520
-)
-g1,430:0,42626580
-k1,430:15392932,42626580:15392932
-k1,430:30785864,42626580:15392932
-)
-)
-]
-]
-]
-!20154
-}4
-!10
-{5
-[1,445:0,42626580:30785864,42626580,0
-[1,445:0,0:0,0,0
-(1,445:0,-2433924:0,0,0
-k1,445:0,-2433924:65781
-)
-]
-[1,445:0,42626580:30785864,42626580,0
-[1,445:0,42626580:30785864,44994723,0
-[1,445:0,-1581711:30785864,786432,0
-(1,445:0,-1581711:30785864,589824,196608
-(1,445:0,-1581711:30785864,589824,196608
-r1,445:0,-1581711:0,786432,196608
-g1,445:0,-1581711
-g1,445:0,-1581711
-(1,445:0,-1581711:30785864,589824,196608
-g1,445:0,-1581711
-x1,445:2267340,-1581711
-k1,445:8668980,-1581711:6401640
-x1,445:9054000,-1581711
-g1,445:9310680,-1581711
-x1,445:9834599,-1581711
-x1,445:10925489,-1581711
-g1,445:11182169,-1581711
-x1,445:11567189,-1581711
-g1,445:11823869,-1581711
-x1,445:12444179,-1581711
-g1,445:12700859,-1581711
-x1,445:13085879,-1581711
-g1,445:13342559,-1581711
-x1,445:13727579,-1581711
-k1,445:20129219,-1581711:6401640
-$1,445:20129219,-1581711
-[1,445:20129219,-1581711:10656645,537395,157280
-(1,445:20129219,-1581711:10656645,537395,0
-(1,445:20129219,-1581711:10656645,537395,0
-(1,445:20129219,-1581711:10656645,537395,0
-x1,445:22289336,-1581711
-k1,445:30785864,-1581711:8496528
-)
-)
-)
-]
-$1,445:30785864,-1581711
-(1,445:30785864,-1581711:0,559146,164453
-(1,445:30785864,-1515930:0,624927,98672
-(1,445:30785864,-1515930:0,624927,98672
-k1,445:22546016,-1515930:-8239848
-(1,445:22546016,-1515930:8239848,624927,98672
-(1,445:22546016,-1417258:0,0,0
-)
-(1,445:22546016,-1515930:8239848,624927,98672
-(1,445:22546016,-1417258:8239848,723599,0
-[1,445:22546016,-1417258:8239848,723599,0
-(1,445:22546016,-2140857:8239848,0,0
-h1,445:22546016,-2140857:0,0,0
-k1,445:30785864,-2140857:8239848
-g1,445:30785864,-2140857
-)
-]
-)
-)
-(1,445:30785864,-2140857:0,0,0
-)
-)
-)
-)
-)
-g1,445:30785864,-1581711
-)
-)
-)
-]
-[1,445:0,41905684:30785864,42176675,0
-(1,432:1425408,515441:29360456,589824,196608
-(1,430:1425408,515441:0,0,0
-g1,430:1425408,515441
-g1,430:0,515441
-g1,430:-256680,515441
-(1,430:-256680,515441:1425408,0,0
-k1,430:1168728,515441:1425408
-)
-g1,430:1425408,515441
-)
-g1,431:1425408,515441
-(1,431:1425408,515441:0,589824,196608
-k1,431:-2436856,515441:-3862264
-x1,431:-2137396,515441
-$1,431:-2137396,515441
-x1,431:-1778586,515441
-(1,431:-1778586,255023:778615,322479,101945
-x1,431:-1032739,255023
-)
-$1,431:-999971,515441
-x1,431:-720896,515441
-r1,431:-720896,515441:0,786432,196608
-g1,431:1425408,515441
-g1,431:1425408,515441
-)
-(1,431:1425408,515441:0,506811,0
-k1,431:442368,515441:-983040
-(1,431:442368,515441:983040,506811,0
-x1,431:1130496,515441
-g1,431:1425408,515441
-)
-)
-x1,431:2926986,515441
-g1,431:3183666,515441
-x1,431:3701304,515441
-g1,431:3957984,515441
-x1,431:4343004,515441
-g1,431:4599684,515441
-x1,431:7619952,515441
-k1,432:30785864,515441:23165912
-g1,432:30785864,515441
-)
-(1,435:1425408,3408855:29360456,2631270,2105016
-(1,432:1425408,3408855:29360456,2631270,2105016
-(1,432:1425408,5513871:0,0,0
-)
-(1,432:1425408,3408855:29360456,2631270,2105016
-(1,432:1425408,5513871:29360456,4736286,0
-[1,432:1425408,5513871:29360456,4736286,0
-(1,432:1425408,777585:29360456,0,0
-h1,432:1425408,777585:0,0,0
-k1,432:30785864,777585:29360456
-g1,432:30785864,777585
-)
-]
-)
-)
-(1,432:30785864,777585:0,0,0
-)
-)
-g1,435:30785864,3408855
-g1,435:30785864,3408855
-)
-(1,439:1425408,6562447:29360456,589824,196608
-(1,437:1425408,6562447:0,0,0
-g1,437:1425408,6562447
-g1,437:0,6562447
-g1,437:-256680,6562447
-(1,437:-256680,6562447:1425408,0,0
-k1,437:1168728,6562447:1425408
-)
-g1,437:1425408,6562447
-)
-g1,438:1425408,6562447
-(1,438:1425408,6562447:0,589824,196608
-k1,438:-2795666,6562447:-4221074
-x1,438:-2496206,6562447
-$1,438:-2496206,6562447
-(1,438:-2496206,6562447:717620,462465,0
-x1,438:-1778586,6562447
-)
-(1,438:-1778586,6302029:778615,322479,101945
-x1,438:-1032739,6302029
-)
-$1,438:-999971,6562447
-x1,438:-720896,6562447
-r1,438:-720896,6562447:0,786432,196608
-g1,438:1425408,6562447
-g1,438:1425408,6562447
-)
-(1,438:1425408,6562447:0,506811,0
-k1,438:442368,6562447:-983040
-(1,438:442368,6562447:983040,506811,0
-x1,438:1130496,6562447
-g1,438:1425408,6562447
-)
-)
-x1,438:2926986,6562447
-g1,438:3183666,6562447
-x1,438:3701304,6562447
-g1,438:3957984,6562447
-x1,438:4343004,6562447
-g1,438:4599684,6562447
-x1,438:7619952,6562447
-k1,439:30785864,6562447:23165912
-g1,439:30785864,6562447
-)
-(1,442:1425408,9455861:29360456,2631270,2105016
-(1,439:1425408,9455861:29360456,2631270,2105016
-(1,439:1425408,11560877:0,0,0
-)
-(1,439:1425408,9455861:29360456,2631270,2105016
-(1,439:1425408,11560877:29360456,4736286,0
-[1,439:1425408,11560877:29360456,4736286,0
-(1,439:1425408,6824591:29360456,0,0
-h1,439:1425408,6824591:0,0,0
-k1,439:30785864,6824591:29360456
-g1,439:30785864,6824591
-)
-]
-)
-)
-(1,439:30785864,6824591:0,0,0
-)
-)
-g1,442:30785864,9455861
-g1,442:30785864,9455861
-)
-]
-(1,445:0,42626580:30785864,0,0
-(1,445:0,42626580:30785864,0,0
-(1,445:0,42626580:0,0,0
-r1,445:0,42626580:0,0,0
-g1,445:30785864,42626580
-g1,445:30785864,42626580
-r1,445:30785864,42626580:0,0,0
-g1,445:31506760,42626580
-g1,445:31506760,42626580
-(1,445:31506760,42626580:2293760,0,0
-(1,445:31506760,43971707:2293760,1345127,951910
-$1,445:31506760,43971707
-[1,445:31506760,43971707:2293760,1345127,951910
-(1,445:31506760,43971707:2293760,1345127,951910
-h1,445:31506760,43971707:0,0,0
-(1,445:31506760,43971707:2293760,1345127,951910
-$1,445:31506760,43971707
-[1,445:31506760,43971707:2293760,1345127,951910
-(1,445:31506760,43635834:2293760,983040,285084
-g1,445:31506760,43635834
-(1,445:31506760,43635834:2293760,983040,285084
-r1,445:31506760,43635834:0,950271,285084
-r1,445:31532974,43635834:26214,1268124,285084
-g1,445:31532974,43635834
-k1,445:32653640,43635834:1120666
-r1,445:32653640,43635834:0,1268124,285084
-k1,445:33774306,43635834:1120666
-g1,445:33774306,43635834
-r1,445:33800520,43635834:26214,1268124,285084
-)
-g1,445:33800520,43635834
-)
-(1,445:31506760,44612319:2293760,665187,285084
-g1,445:31506760,44612319
-(1,445:31506760,44612319:2293760,665187,285084
-r1,445:31506760,44612319:0,950271,285084
-r1,445:31532974,44612319:26214,950271,285084
-g1,445:31532974,44612319
-g1,445:31532974,44612319
-(1,445:31532974,44612319:2241332,462465,139537
-k1,445:31754623,44612319:221649
-$1,445:31754623,44612319
-(1,445:31754623,44612319:717620,462465,0
-x1,445:32472243,44612319
-)
-g1,445:32591844,44612319
-(1,445:32591844,44612319:960814,441393,139537
-(1,445:32591844,44612319:960814,441393,139537
-x1,445:33552658,44612319
-)
-)
-$1,445:33552658,44612319
-k1,445:33774306,44612319:221648
-)
-g1,445:33774306,44612319
-g1,445:33774306,44612319
-r1,445:33800520,44612319:26214,950271,285084
-)
-g1,445:33800520,44612319
-)
-]
-$1,445:33800520,43971707
-)
-g1,445:33800520,43971707
-g1,445:33800520,43971707
-)
-]
-$1,445:33800520,43971707
-)
-)
-k1,445:0,42626580:-33800520
-)
-g1,445:0,42626580
-k1,445:15392932,42626580:15392932
-k1,445:30785864,42626580:15392932
-)
-)
-]
-]
-]
-!6659
-}5
-Input:71:C:\Users\Public\Documents\My TeX Files\tex\latex\aeb\eqexam\examples\test01.aux
-!98
-Postamble:
-Count:3699
-!26
-Post scriptum:
diff --git a/texmf-dist/doc/latex/eqexam/examples/test01.tex b/texmf-dist/doc/latex/eqexam/examples/test01.tex
index 9b08e9ea..102b7b61 100644
--- a/texmf-dist/doc/latex/eqexam/examples/test01.tex
+++ b/texmf-dist/doc/latex/eqexam/examples/test01.tex
@@ -2,9 +2,10 @@
\usepackage{amsmath}
\usepackage{graphicx}
\usepackage[%
- online, % try commenting out this option to get a paper document
- nosolutions,
-% vspacewithsolns,
+% online, % try commenting out this option to get a paper document
+% nosolutions,
+% answerkey,
+ vspacewithsolns,
forcolorpaper,
pointsonleft,totalsonright,noparttotals,
coverpage,coverpagesumry=bypages
@@ -34,6 +35,8 @@
\hfuzz = .7pt
+\vspacewithkeyOn
+
\begin{document}
\maketitle
diff --git a/texmf-dist/source/latex/eqexam/doc/fortextbook.zip b/texmf-dist/doc/latex/eqexam/fortextbook.zip
index e3210cfd..e3210cfd 100644
--- a/texmf-dist/source/latex/eqexam/doc/fortextbook.zip
+++ b/texmf-dist/doc/latex/eqexam/fortextbook.zip
Binary files differ
diff --git a/texmf-dist/source/latex/eqexam/doc/fortextbook/fortextbook.pdf b/texmf-dist/doc/latex/eqexam/fortextbook/fortextbook.pdf
index 4619dc88..4619dc88 100644
--- a/texmf-dist/source/latex/eqexam/doc/fortextbook/fortextbook.pdf
+++ b/texmf-dist/doc/latex/eqexam/fortextbook/fortextbook.pdf
Binary files differ
diff --git a/texmf-dist/source/latex/eqexam/script/eqAttach.asp b/texmf-dist/doc/latex/eqexam/script/eqAttach.asp
index f87f8b47..f87f8b47 100644
--- a/texmf-dist/source/latex/eqexam/script/eqAttach.asp
+++ b/texmf-dist/doc/latex/eqexam/script/eqAttach.asp
diff --git a/texmf-dist/source/latex/eqexam/eqexam.drv b/texmf-dist/source/latex/eqexam/eqexam.drv
new file mode 100644
index 00000000..7a5a2b67
--- /dev/null
+++ b/texmf-dist/source/latex/eqexam/eqexam.drv
@@ -0,0 +1,66 @@
+%%
+%% This is file `eqexam.drv',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% eqexam.dtx (with options: `copyright,driver')
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% eqexam.sty package, %%
+%% Copyright (C) 2005--2018 D. P. Story %%
+%% dpstory@uakron.edu %%
+%% %%
+%% This program can redistributed and/or modified under %%
+%% the terms of the LaTeX Project Public License %%
+%% Distributed from CTAN archives in directory %%
+%% macros/latex/base/lppl.txt; either version 1.2 of %%
+%% the License, or (at your option) any later version. %%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\documentclass{ltxdoc}
+\GlossaryPrologue{\section{{Change History}}}%
+\IndexPrologue{\section{{Index}}}%
+\value{IndexColumns}=2
+\value{GlossaryColumns}=2
+\usepackage{makeidx}
+\usepackage[colorlinks,hyperindex=false]{hyperref}
+\def\darg#1{\texttt{\{#1\}}}
+\let\env\texttt
+\let\opt\texttt
+\let\app\textsf
+\def\visispace{\symbol{32}}
+\def\ameta#1{\ensuremath{\langle\textit{\texttt{#1}}\rangle}}
+\def\meta#1{\textsl{\texttt{#1}}}
+\def\SUB#1{\ensuremath{{}_{\mbox{\scriptsize\ttfamily#1}}}}
+\EnableCrossrefs
+\CodelineIndex
+\RecordChanges
+\InputIfFileExists{aebdocfmt.def}{\PackageInfo{eqexam}{Inputting aebdocfmt.def}}
+ {\def\IndexOpt{\DescribeMacro}\let\setupFullwidth\relax
+ \PackageInfo{eqexam}{aebdocfmt.def cannot be found}}
+\makeatletter
+ \let\@latex@warning\@gobble
+\makeatother
+\begin{document}
+ \let\pkg\textsf
+ \def\switchCats{\catcode`\{=12\relax\catcode`\}=12\relax
+ \catcode`\(=1\relax\catcode`\)=2\relax}
+ \GetFileInfo{eqexam.sty}
+ \title{\textsf{eqexam}: An Exam Construction Package}
+ \author{D. P. Story\\
+ Email: \texttt{dpstory@uakron.edu}}
+ \date{Processed \today}
+ \maketitle
+ \tableofcontents
+ \let\Email\texttt
+ \DocInput{eqexam.dtx}
+\IfFileExists{\jobname.ind}{\newpage\setupFullwidth\PrintIndex}{\paragraph*{Index} The index goes here.\\Execute
+ \texttt{makeindex -s gind.ist -o eqexam.ind eqexam.idx} on the command line and recompile
+ \texttt{eqexam.dtx}.}
+\IfFileExists{\jobname.gls}{\PrintChanges}{\paragraph*{Change History} The list of changes goes here.\\Execute
+ \texttt{makeindex -s gglo.ist -o eqexam.gls eqexam.glo} on the command line and recompile
+ \texttt{eqexam.dtx}.}
+\end{document}
+\endinput
+%%
+%% End of file `eqexam.drv'.
diff --git a/texmf-dist/source/latex/eqexam/eqexam.dtx b/texmf-dist/source/latex/eqexam/eqexam.dtx
index 951c5f74..2f4589aa 100644
--- a/texmf-dist/source/latex/eqexam/eqexam.dtx
+++ b/texmf-dist/source/latex/eqexam/eqexam.dtx
@@ -4,20 +4,20 @@
%<*copyright>
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% eqexam.sty package, %%
-%% Copyright (C) 2005--2017 D. P. Story %%
+%% Copyright (C) 2005--2018 D. P. Story %%
%% dpstory@uakron.edu %%
%% %%
%% This program can redistributed and/or modified under %%
-%% the terms of the LaTeX Project Public License 1.2 %%
+%% the terms of the LaTeX Project Public License %%
%% Distributed from CTAN archives in directory %%
-%% macros/latex/base/lppl.txt; either version 1 of the %%
-%% License, or (at your option) any later version. %%
+%% macros/latex/base/lppl.txt; either version 1.2 of %%
+%% the License, or (at your option) any later version. %%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%</copyright>
%<package>\NeedsTeXFormat{LaTeX2e}
%<package>\ProvidesPackage{eqexam}
-%<package> [2017/03/16 v4.9 An Exam Construction Package (dps)]
-%<package>\def\eqexamdefReq{2017/03/16}
+%<package> [2018/12/13 v5.1.3 An Exam Construction Package (dps)]
+%<package>\def\eqexamdefReq{2018/12/13}
%<*driver>
\documentclass{ltxdoc}
\GlossaryPrologue{\section{{Change History}}}%
@@ -25,7 +25,16 @@
\value{IndexColumns}=2
\value{GlossaryColumns}=2
\usepackage{makeidx}
-\usepackage[colorlinks,hyperindex]{hyperref}
+\usepackage[colorlinks,hyperindex=false]{hyperref}
+\def\darg#1{\texttt{\{#1\}}}
+\let\env\texttt
+\let\opt\texttt
+\let\app\textsf
+\def\visispace{\symbol{32}}
+\def\ameta#1{\ensuremath{\langle\textit{\texttt{#1}}\rangle}}
+\def\meta#1{\textsl{\texttt{#1}}}
+\def\SUB#1{\ensuremath{{}_{\mbox{\scriptsize\ttfamily#1}}}}
+%\def\cs#1{\texttt{\bslash#1}}
%\pdfstringdefDisableCommands{\let\\\textbackslash}%
\EnableCrossrefs
\CodelineIndex
@@ -33,6 +42,9 @@
\InputIfFileExists{aebdocfmt.def}{\PackageInfo{eqexam}{Inputting aebdocfmt.def}}
{\def\IndexOpt{\DescribeMacro}\let\setupFullwidth\relax
\PackageInfo{eqexam}{aebdocfmt.def cannot be found}}
+\makeatletter
+ \let\@latex@warning\@gobble
+\makeatother
\begin{document}
\let\pkg\textsf
\def\switchCats{\catcode`\{=12\relax\catcode`\}=12\relax
@@ -243,6 +255,7 @@
\let\eqe@YES=y \let\eqe@NO=n
\let\eqe@One=1 \let\eqe@Zero=0
\let\eqe@Two=2 \let\eqe@Three=3 \let\eqe@Four=4
+\def\eqe@h{h}
\DeclareOptionX{nototals}{\AtEndOfPackage{\NoTotals}}
\DeclareOptionX{noparttotals}{%
\AtEndOfPackage{\let\eq@parttotals\eqe@NO}}
@@ -293,10 +306,28 @@
% \IndexOpt{answerkey}
% Equivalent to solutionsafter and proofing.
% \begin{macrocode}
-\newif\ifanswerkey \answerkeyfalse
-\DeclareOptionX{answerkey}{\AnswerKey}
-\def\AnswerKey{\answerkeytrue\eq@proofingtrue
- \eq@solutionsaftertrue}
+\@ifundefined{ifanswerkey}{\newif\ifanswerkey\answerkeyfalse}{}
+\@ifundefined{ifsolutionsAtEnd}
+ {\newif\ifsolutionsAtEnd\solutionsAtEndtrue}{}
+% \end{macrocode}
+% A more intelligent processing of certain options is deployed: Now, we allow
+% only one of the options \texttt{answerkey}, \texttt{nosolutions},
+% \texttt{vspacewithsolns}, \texttt{solutionsafter}, and
+% \texttt{solutionsonly} at a time.
+% \begin{macrocode}
+\let\thisOpt@OK \eqe@YES
+\def\w@rningBadOpts{\PackageWarningNoLine{eqexam}{You've chosen two
+ conflicting options,\MessageBreak \l@stPO\space and \CurrentOption.
+ We will recognize\MessageBreak the \l@stPO\space option.
+ Please correct\MessageBreak this if my guess is wrong}}
+\def\eqe@optiont@kenMsg{\PackageInfo{eqexam}
+ {Option \CurrentOption\space taken}}
+\DeclareOptionX{answerkey}{\ifx\thisOpt@OK\eqe@YES
+ \def\l@stPO{answerkey}\let\thisOpt@OK\eqe@NO
+ \eqe@optiont@kenMsg\expandafter\AnswerKey\else
+ \w@rningBadOpts\fi}
+\def\AnswerKey{\solutionsAtEndfalse\answerkeytrue
+ \eq@proofingtrue\eq@solutionsaftertrue\displayworkareafalse}
% \end{macrocode}
% \IndexOpt{vspacewithsolns}
% When \texttt{vspacewithsolns} is used, vertical space is created by
@@ -316,14 +347,36 @@
% \begin{macrocode}
\newif\ifvspacewithsolns\vspacewithsolnsfalse
\def\ifkeyalt{\csname ifvspacewithsolns\endcsname}
+ \let\keyalttrue\vspacewithsolnstrue
+ \let\keyaltfalse\vspacewithsolnsfalse
+%\def\ifkeyalt{\csname ifvspacewithsolns\endcsname}
\def\ifkeyOrkeyalt{\ifanswerkey
\def\eqe@next{\csname iftrue\endcsname}\else
\ifvspacewithsolns\def\eqe@next{\csname iftrue\endcsname}\else
\def\eqe@next{\csname iffalse\endcsname}\fi\fi\eqe@next}
-\DeclareOptionX{vspacewithsolns}{%
- \vspacewithsolnstrue\displayworkareatrue}
-\DeclareOptionX{ftbsolns}{%
- \vspacewithsolnstrue\displayworkareatrue}
+\DeclareOptionX{vspacewithsolns}{\ifx\thisOpt@OK\eqe@YES
+ \def\l@stPO{vspacewithsolns}\let\thisOpt@OK\eqe@NO
+ \eqe@optiont@kenMsg
+ \vspacewithsolnstrue\expandafter\displayworkareatrue
+ \else\w@rningBadOpts\fi}
+\DeclareOptionX{ftbsolns}{\ExecuteOptionsX{vspacewithsolns}}
+% \end{macrocode}
+% The \IndexKey{flextended}\opt{flextended} is an (experimental) option
+% to allow filler lines (fl) to be superimposed under the solutions, when the \opt{answerkey}
+% option is taken.
+% \changes{2017/12/05}{v5.0g}{Added option \string\texttt{flextended}.}
+% \begin{macrocode}
+\DeclareOptionX{flextended}{\AtEndOfPackage{\flextendedInput}}
+\def\flextendedInput{\eqe@flextendedtrue
+ \InputIfFileExists{flextended.def}
+ {\PackageInfo{eqexam}{Inputting flextended.def for
+ flextended\MessageBreak option}}
+ {\eqe@flextendedfalse\PackageWarning{eqexam}
+ {Cannot find flextended.def for flextended\MessageBreak
+ option. You should rebuild the package. Removing\MessageBreak
+ flextended for now}}}
+\@ifundefined{ifeqe@flextended}
+ {\newif\ifeqe@flextended \eqe@flextendedfalse}{}
% \end{macrocode}
% \IndexOpt{useforms}
% Use forms (if online option is taken); otherwise draw rectangles for
@@ -437,6 +490,7 @@
% \subsection{Options from and for \textsf{web}}
% \IndexOpt{forpaper}
% \IndexOpt{forcolorpaper}
+% \IndexOpt{forcolorpaper*}
% Here is the list of options of \textsf{exerquiz} we plan to recognize.
% \changes{v4.6a}{2016/06/04}{Added \string\cs{ifequsecolor} to easily distinguish between
% \string\texttt{forpaper} and \string\texttt{forcolorpaper} options.}
@@ -444,7 +498,10 @@
\@ifundefined{ifequsecolor}{\newif\ifequsecolor\equsecolorfalse}{}
\DeclareOptionX{forpaper}{\equsecolorfalse\eqforpapertrue
\PassOptionsToPackage{monochrome}{\eq@ColorPackage}}
-\DeclareOptionX{forcolorpaper}{\equsecolortrue\eqforpapertrue} % for print
+\DeclareOptionX{forcolorpaper}{\equsecolortrue\eqforpapertrue}
+\newif\ifForceNoColor\ForceNoColorfalse
+\DeclareOptionX{forcolorpaper*}{\equsecolortrue\eqforpapertrue
+ \ForceNoColortrue} % for print
% \end{macrocode}
% \IndexOpt{preview}
% Preview shows outlines for form fields.
@@ -474,17 +531,25 @@
% \IndexOpt{solutionsonly}
% Solutions related options
% \begin{macrocode}
-% dps 03/04/11
-\DeclareOptionX{nosolutions}{\eq@nolinktrue\eq@nosolutionstrue
- \displayworkareatrue}
+\DeclareOptionX{nosolutions}{\ifx\thisOpt@OK\eqe@YES
+ \def\l@stPO{nosolutions}\let\thisOpt@OK\eqe@NO
+ \eqe@optiont@kenMsg\eq@nolinktrue\eq@nosolutionstrue
+ \expandafter\displayworkareatrue
+ \else\w@rningBadOpts\fi}
\DeclareOptionX{nohiddensolutions}{\eq@globalshowsolutionstrue}
\DeclareOptionX{noHiddensolutions}%
{\eq@globalshowsolutionstrue\AtBeginDocument{\def\Hidesymbol{h}}}
-\DeclareOptionX{solutionsafter}{\eq@solutionsaftertrue
- \displayworkareafalse}
-\DeclareOptionX{solutionsonly}{%
- \solutionsonlytrue\answerkeytrue\displayworkareafalse
- \AtEndOfPackage{\therearesolutionstrue\let\exerSolnsHeadnToc\relax}}
+\DeclareOptionX{solutionsafter}{\ifx\thisOpt@OK\eqe@YES
+ \def\l@stPO{solutionsafter}\let\thisOpt@OK\eqe@NO
+ \eqe@optiont@kenMsg
+ \eq@solutionsaftertrue\expandafter
+ \displayworkareafalse\else\w@rningBadOpts\fi}
+\DeclareOptionX{solutionsonly}{\ifx\thisOpt@OK\eqe@YES
+ \def\l@stPO{solutionsafter}\let\thisOpt@OK\eqe@NO
+ \eqe@optiont@kenMsg\AtEndOfPackage{\therearesolutionstrue
+ \let\exerSolnsHeadnToc\relax}
+ \solutionsonlytrue\answerkeytrue\expandafter
+ \displayworkareafalse\else\w@rningBadOpts\fi}
% \end{macrocode}
% \IndexOpt{proofing}
% The \texttt{proofing} option sets a switch that controls whether
@@ -516,13 +581,21 @@
{\AtEndOfPackage{\aebshowgrayletterstrue}}
% \end{macrocode}
%
-%\changes{v2.0i}{2011/04/17 }
+%\changes{v2.0i}{2011/04/17}
%{
% Added the switch \cs{ifdisplayworkarea} to better control when the
% work area is to be displayed.
%}
+%\changes{v5.1.3}{2018/12/13}{\string\cs{ifdisplayworkarea} conditionally defined;
+% defined \string\cs{displayworkareaOn} and
+% \string\cs{displayworkareaOff}. Consistent with exerquiz.}
+% Define \cs{ifdisplayworkarea}\DescribeMacro\ifdisplayworkareaOn\DescribeMacro\ifdisplayworkareaOff\space
+% and user commands to turn off and on.
% \begin{macrocode}
-\newif\ifdisplayworkarea \displayworkareafalse
+\@ifundefined{ifdisplayworkarea}{\newif\ifdisplayworkarea
+ \displayworkareafalse}{}
+\providecommand\displayworkareaOn{\displayworkareatrue}
+\providecommand\displayworkareaOff{\displayworkareafalse}
% \end{macrocode}
%
% \paragraph*{Color packages}
@@ -562,7 +635,6 @@
% \IndexOpt{dvipdfmx}
% \IndexOpt{xetex}
% \IndexOpt{textures}
-% The list of recognized and supported drivers.
% \begin{macrocode}
\DeclareOptionX{dvipsone}{%
\def\eqe@drivernum{0}\def\eqDriverName{dvipsone}%
@@ -594,6 +666,9 @@
% in web, exerquiz, or eforms.
% \begin{macrocode}
\newif\ifeq@solutionsafter \eq@solutionsafterfalse
+\def\ifsolutionsafter{\csname ifeq@solutionsafter\endcsname}
+ \let\solutionsaftertrue\eq@solutionsaftertrue
+ \let\solutionsafterfalse\eq@solutionsafterfalse
\newif\ifsolutionsonly\solutionsonlyfalse
\newif\ifeq@hidesolution \eq@hidesolutionfalse
\newif\ifeq@globalshowsolutions \eq@globalshowsolutionsfalse
@@ -662,6 +737,17 @@
% \begin{macrocode}
\ProcessOptionsX
% \end{macrocode}
+% When the online or email option is taken, as well as answserkey, we cancel the \texttt{flextended} option.
+% \begin{macrocode}
+\ifeqeonline
+ \ifanswerkey
+ \def\flextendedInput{\let\turnfl@nskeyMsg\@empty
+ \PackageWarningNoLine{eqexam}
+ {You've chosen the online or email option\MessageBreak
+ with the flextended option. This is not\MessageBreak
+ supported, removing the flextended option}}\fi
+\fi
+% \end{macrocode}
% \changes{v3.2c}{2013/02/23}{Added \cs{selectedMC} at end of package}
% The \cs{selectedMC} command contains the choice for the styling for the
% region multiple choice questions: rectangles or circles. The default is
@@ -714,7 +800,7 @@
\makeAnsEnvForSolnsAtEnd\eqTopOfSolnPage
\answerkeytrue\eq@proofingtrue
\eq@solutionsaftertrue\vspacewithsolnstrue
- \displayworkareafalse\withsoldoctrue
+ \displayworkareafalse %\withinsoldoctrue % now within \eqTopOfSolnPage
}
% \end{macrocode}
% \begin{macro}{\makeAnsEnvForSolnsAtEnd}
@@ -747,6 +833,7 @@
\eqe@IWO\quiz@solns{\string\eqeAEFormatting}\fi
\fi
}
+\def\writeWithSolDocTrue{\writeT@SolnFile{\protect\withinsoldoctrue}}
% \end{macrocode}
% \end{macro}
% \end{macro}
@@ -754,7 +841,7 @@
% Sets the value of \cs{eqemargin} in the context of the solution file,
% this command is redefined later.
% \begin{macrocode}
-\newcommand{\setSolnMargins}[1]{\setlength\eqemargin{#1}}
+\newcommand{\setSolnMargins}[1]{\setlength\eqemargin{#1}\ignorespaces}
% \end{macrocode}
% \end{macro}
% (2011/05/08) In the new version of \textsf{eqexam}, the one that makes
@@ -766,17 +853,20 @@
% to the solution file, but leave a back door open to write an alternate string.
% (2014/03/20) \DescribeMacro{\altSetSolnMargins}\cmd{\altSetSolnMargins} allows you,
% through its argument to pass an alternate string.
+% \changes{v5.1.1}{2018/12/05}{Added \string\cs{eqprior}}
% \begin{macrocode}
\def\altSetSolnMargins#1{\def\alt@SetSolnMargins{#1}}
\let\alt@SetSolnMargins\@empty
-\def\writeBeginEqeQuestions{%
- \ifsolutionsonly\else
+\def\writeBeginEqeQuestions{\ifsolutionsonly\else
+ \ifOKToWriteExamData
\let\quiz@solns\ex@solns
\ifx\alt@SetSolnMargins\@empty
- \writeToSolnFile{\string\setSolnMargins{\the\eqemargin}}\else
- \writeToSolnFile{\alt@SetSolnMargins}\fi
- \writeToSolnFile{\string\noindent\string\begin{eqequestions}}%
+ \writeT@SolnFile{\string\setSolnMargins{\the\eqemargin}}\else
+ \writeT@SolnFile{\alt@SetSolnMargins}\fi
+ \writeT@SolnFile{\protect\eqgriii\string\noindent
+ \string\begin{eqequestions}}%
\fi
+ \fi
}
% \end{macrocode}
% (2011/05/08) We define the command that writes the end of the \texttt{eqequestions}
@@ -788,19 +878,36 @@
\setBtwnExamSkip{6pt}
\def\writeEndEqeQuestions{%
\ifsolutionsonly\else
+ \ifOKToWriteExamData
\let\quiz@solns\ex@solns
- \eqe@IWO\quiz@solns{\string\end{eqequestions}^^J}%
- \writeToSolnFile{\string\btwnExamSkip^^J}%
- \fi
+ \eqe@IWO\quiz@solns{\string\eqgrii
+ \string\end{eqequestions}^^J}%
+ \writeT@SolnFile{\string\btwnExamSkip^^J}%
+ \fi\fi
}
% \end{macrocode}
% If \cs{ifvspacewithsolns} we set the switches need to simulate
% \texttt{nosolutions}.
% \begin{macrocode}
-\ifvspacewithsolns
+\def\csarg#1#2{\expandafter#1\csname#2\endcsname}
+\def\saveIFEQE#1{\def\ARG{#1ifSave}%
+ \expandafter\csarg\expandafter
+ \let\expandafter\ARG\csname#1\if#1true\else false\fi\endcsname}
+\saveIFEQE{vspacewithsolns}\saveIFEQE{answerkey}
+\saveIFEQE{eq@proofing}\saveIFEQE{eq@solutionsafter}
+\saveIFEQE{eq@nolink}\saveIFEQE{eq@nosolutions}
+\saveIFEQE{displayworkarea}
+\def\vpwsSimulateNoSolns{% dps28
+ \ifvspacewithsolns
\answerkeyfalse\eq@proofingfalse\eq@solutionsafterfalse
\eq@nolinkfalse\eq@nosolutionsfalse\displayworkareatrue
-\fi
+ \fi}
+\def\reverseVSWS{\vspacewithsolnsfalse
+ \answerkeyifSave\eq@proofingifSave
+ \eq@solutionsafterifSave\eq@nolinkifSave
+ \eq@nosolutionsifSave\displayworkareaifSave
+}
+\vpwsSimulateNoSolns
% \end{macrocode}
%
% \subsection{Save Switch Values}
@@ -831,8 +938,14 @@
% \end{macrocode}
% Bring the \texttt{comment} package in early, before \texttt{verbatim}, these two
% clash a bit.
+% \changes{v5.1.2}{2018/12/05}{Use version 3.2 of comment style under the name of aeb-comment}
% \begin{macrocode}
-\RequirePackage{comment}
+\RequirePackage{aeb-comment}
+\def\eqe@commentChkMsg{\@ifpackageloaded{comment}
+ {\PackageWarningNoLine{eqexam}
+ {The comment package is incompatible with the\MessageBreak
+ aeb-comment package, do not use the comment package}}{}}
+\AtBeginDocument{\eqe@commentChkMsg}
% \end{macrocode}
% The macro \cs{includeexersolutions} is defined in \textsf{eqexam.def}. We execute
% the command \cs{include@solutions} before the web package is loaded. The \textsf{web} package
@@ -925,8 +1038,6 @@
% We've processed the options, I need to detect whether the document author
% has not chosen any solutions options.
% \begin{macrocode}
-\@ifundefined{ifsolutionsAtEnd}
- {\newif\ifsolutionsAtEnd\solutionsAtEndtrue}{}
\ifvspacewithsolns\solutionsAtEndtrue\fi
\ifanswerkey\solutionsAtEndfalse\fi
\ifeq@nosolutions\solutionsAtEndfalse\fi
@@ -1022,12 +1133,14 @@
% on the current page. \DescribeEnv{eq@numparts} The counter \texttt{eq@numparts}
% holds the number of parts of the multi-part question.
% \begin{macrocode}
+\newcount\eqe@tempcnta
\newcounter{eqpointsofar}
\newcounter{eqpointsthispage}
\newcounter{eq@numparts}
\newcounter{eq@count}
\newtoks\partNames \partNames={}
\newlength{\eq@tmplengthA}
+\newlength{\eq@tmplengthB}
\newbox{\eq@pointbox}
\newlength{\eq@pointboxtotalheight}
% \end{macrocode}
@@ -1073,6 +1186,14 @@
\displayworkareatrue}
\@onlypreamble\NoSolutions
% \end{macrocode}
+% Added \cs{chngToNoSolns}, useful for book authors that want to switch between
+% \cs{AnswerKey}, \cs{chngToNoSolns}, and \cs{SolutionsAtEnd}.
+% \changes{v5.0o}{2017/12/26}{Added \string\cs{chngToNoSolns}}
+% \begin{macrocode}
+\def\chngToNoSolns{\solutionsAtEndfalse\answerkeyfalse
+ \eq@proofingfalse\eq@solutionsafterfalse
+ \eq@nosolutionstrue\displayworkareatrue}
+% \end{macrocode}
% \begin{macro}{\vspacewithkeyOn}
% \begin{macro}{\vspacewithkeyOff}
%\changes{v2.0k}{2011/04/29}{Added user interface to the switch
@@ -1156,15 +1277,36 @@
\providecommand{\sectionColor}[1]{\def\web@sectionsColorOld{#1}
\def\aeb@sectioncolor{#1}}
\sectionColor{blue}
-\newcommand{\forceNoColor}{%
- \proofingsymbolColor{black}\instructionsColor{black}
- \eqCommentsColor{black}\universityColor{black}
- \titleColor{black}\authorColor{black}
- \subjectColor{black}\linkcolor{black}
- \nolinkcolor{black}\fillinColor{black}
- \eqEndExamTotalColor{black}
- \if\load@web\eqe@YES\sectionColor{black}\fi
-}
+\def\forceNoColorSet{\proofingsymbolColor{black}%
+ \instructionsColor{black}%
+ \eqCommentsColor{black}\universityColor{black}%
+ \titleColor{black}\authorColor{black}%
+ \subjectColor{black}\linkcolor{black}%
+ \nolinkcolor{black}\fillinColor{black}%
+ \instructionsColor{black}\eqCommentsColor{black}%
+ \eqCommentsColorBody{black}%
+ \eqEndExamTotalColor{black}\ckboxColor{}%
+ \ckcirColor{}\if\load@web\eqe@YES
+ \sectionColor{black}\fi
+}
+\ifForceNoColor
+ \AtBeginDocument{\forceNoColorSet}
+\fi
+\newcommand{\forceNoColor}{\ifForceNoColor\else\ForceNoColortrue
+ \AtBeginDocument{\forceNoColorSet}\fi}
+% \end{macrocode}
+% The \DescribeMacro{\ckboxColor}\cs{ckboxColor} provides color for the MC and MS boxes,
+% then a PDF-related option is not in effect, while \DescribeMacro{\ckcirColor}\cs{ckcirColor}
+% provides color for circular checkboxes. Usually, these are black or both the same color.
+%\changes{v4.9b}{2017/10/10}{Provides color for check boxes when a PDF-related option
+% is not taken}
+% \begin{macrocode}
+\providecommand{\ckboxColor}[1]{\def\@rgi{#1}\ifx\@rgi\@empty
+ \let\ckbox@Color\relax\else
+ \def\ckbox@Color{\color{#1}}\fi}\ckboxColor{}
+\providecommand{\ckcirColor}[1]{\def\eq@rgi{#1}\ifx\eq@rgi\@empty
+ \let\ckcir@Color\relax\else
+ \def\ckcir@Color{\color{#1}}\fi}\ckcirColor{}
% \end{macrocode}
% \end{macro}
% \end{macro}
@@ -1988,7 +2130,7 @@
\newcommand{\optsRadioBtnl}[1]{\def\eqe@optsRadiol{#1}}
\let\eqe@optsRadiof\@empty\let\eqe@optsRadiol\@empty
\def\eqExam@Ans@sq@l{\leavevmode
- \if\eq@listType1\stepcounter{quizno}\else\ifwithsoldoc
+ \if\eq@listType1\stepcounter{quizno}\else\ifwithinsoldoc
\stepcounter{quizno}\else\refstepcounter{quizno}\fi\fi
\PBS\raggedright\settowidth{\eq@tmplength}{\eq@lw@l}%
\sbox{\eq@tmpbox}{\eq@l@l}\eq@tmpdima=\wd\eq@tmpbox
@@ -2015,7 +2157,7 @@
\eq@hspanner\ignorespaces
}
\def\eqExam@Ans@sq@f{\if\eq@listType1\stepcounter{quizno}\else
- \ifwithsoldoc\stepcounter{quizno}\else\refstepcounter{quizno}\fi\fi
+ \ifwithinsoldoc\stepcounter{quizno}\else\refstepcounter{quizno}\fi\fi
\PBS\raggedright\settowidth{\eq@tmplength}{\eq@lw@f}%
\eq@tmpdima=\wd\eq@tmpbox%
\hangindent=\eq@tmplength\hangafter=1\relax
@@ -2026,8 +2168,6 @@
\ifanswerkey\previewtrue
\Ans@sq@f@driver
\else
-% \ifallowcircmc
-% \ifx\Bbox\eqe@BboxCirc\symbolchoice{circle}\fi\fi
\edef\fieldName{%
\if\probstar*eqexam.\curr@quiz.\theeqquestionnoi.%
part\thepartno%
@@ -2051,7 +2191,7 @@
\let\eqe@optscbl\@empty\let\eqe@optscbf\@empty
\def\eqExam@Ans@ck@sq@l{\leavevmode
\if\eq@listType1\stepcounter{quizno}\else
- \ifwithsoldoc\stepcounter{quizno}\else\refstepcounter{quizno}\fi\fi
+ \ifwithinsoldoc\stepcounter{quizno}\else\refstepcounter{quizno}\fi\fi
\PBS\raggedright\settowidth{\eq@tmplength}{\eq@lw@l}%
\sbox{\eq@tmpbox}{\eq@l@l}\eq@tmpdima=\wd\eq@tmpbox
\def\link@@Content{\linkContentWrapper}%
@@ -2077,7 +2217,7 @@
\eq@hspanner\ignorespaces
}
\def\eqExam@Ans@ck@sq@f{\if\eq@listType1\stepcounter{quizno}\else
- \ifwithsoldoc\stepcounter{quizno}\else\refstepcounter{quizno}\fi\fi
+ \ifwithinsoldoc\stepcounter{quizno}\else\refstepcounter{quizno}\fi\fi
\PBS\raggedright\settowidth{\eq@tmplength}{\eq@lw@f}%
\eq@tmpdima=\wd\eq@tmpbox%
\hangindent=\eq@tmplength\hangafter=1\relax
@@ -2163,7 +2303,8 @@
% \begin{macrocode}
\AtBeginDocument{%
\ifvspacewithsolns\writeAllAnsAtEnd\else
- \ifeqfortextbook\writeAllAnsAtEnd\fi\fi
+ \ifeqfortextbook\writeAllAnsAtEnd\else
+ \writeWithSolDocTrue\fi\fi
}
% \end{macrocode}
% We execute \cs{vspacewithkeyOff}, which sets \cs{ifkeepdeclaredvspacing} to false,
@@ -2207,13 +2348,9 @@
% \end{macrocode}
% \DescribeMacro{\eqe@Bbox}When the \texttt{preview} option has been used, draw a frame box
% around the bounding rectangle.
-% \changes{}{2015/06/04}{Added \cs{previewColor}}
-% \DescribeMacro\previewColor\cmd{\previewColor} adds some color to the preview (bounding boxes). The
-% default is \texttt{black}.
% \begin{macrocode}
-\providecommand\previewColor{black}
-\def\eqe@BboxRect#1#2{\hbox{\color{\previewColor}\vbox{\hrule width #1
- \hbox to#1{\vrule height#2\hfill\vrule height#2}\vfill\hrule}}}
+\def\eqe@BboxRect#1#2{\hbox{\ckbox@Color\vbox{\hrule width #1
+ \hbox to#1{\vrule height#2\hfill\vrule height#2}\vfill\hrule}}}
\def\useRectForMC{\let\Bbox\eqe@BboxRect}
\def\selectedMC{\useRectForMC}
% \end{macrocode}
@@ -2265,14 +2402,13 @@
% A command to use the circle (h) and the filled circle (x).
% \begin{macrocode}
\def\circ@Glyph#1#2{\hbox{\smash{\raisebox{\eqe@cirRadius}%
- {\makebox[\eqe@cirDiam]{\llap{\rlap{\eqe@lcir#1}%
- \hskip#2\relax}}}}}}
+ {\makebox[\eqe@cirDiam]{\llap{\ckcir@Color
+ \rlap{\eqe@lcir#1}\hskip#2\relax}}}}}}
% \end{macrocode}
% Added preview color to the circle version of the bounding box. The color
% accessed through \cs{previewColor}, its default is \texttt{black}.
% \begin{macrocode}
- \def\eqe@BboxCirc#1#2{\hbox{%
- \textcolor{\previewColor}{\circ@Glyph{h}{0pt}}}}
+ \def\eqe@BboxCirc#1#2{\hbox{\ckcir@Color{\circ@Glyph{h}{0pt}}}}
% \end{macrocode}
% For proofing purposes, prepare the filled circle in the form of the command
% \cs{circProofingForCirc}.
@@ -2378,26 +2514,34 @@
\newcommand{\preExamSolnHead}{\goodbreak\noindent}
\newcommand{\examSolnHeadFmt}[1]{\textbf{#1}}
\newcommand{\postExamSolnHead}{\par\medskip}
+% \end{macrocode}
+% Write to solution file if \emph{not} \textsf{solutions-only}
+% \changes{v5.1.3}{2018/12/13}{Write to solution file if not \string\textsf{solutions-only}}
+% \begin{macrocode}
+\@ifundefined{ifOKToWriteExamData}{\newif\ifOKToWriteExamData
+ \OKToWriteExamDatatrue}{}
\newcommand{\writeToSolnFile}[1]{%
+ \ifsolutionsonly\else\ifOKToWriteExamData
\let\quiz@solns\ex@solns
\set@display@protect
\eqe@IWO\quiz@solns{#1}%
\set@typeset@protect
-}
+ \fi\fi}
+\let\writeT@SolnFile\writeToSolnFile
% \end{macrocode}
% We will write all solutions to the \texttt{.sol} auxiliary file.
% \begin{macrocode}
-\def\eqe@writetoSolns#1{%
- \set@display@protect
- \eqe@IWO\quiz@solns{\string\preExamSolnHead
- \string\examSolnHeadFmt{#1}\string\postExamSolnHead}%
- \set@typeset@protect
-}
+\def\eqe@writetoSolns#1{% dpsD17
+ \ifsolutionsonly\else
+ \ifOKToWriteExamData
+ \set@display@protect
+ \eqe@IWO\quiz@solns{\string\preExamSolnHead
+ \string\examSolnHeadFmt{#1}\string\postExamSolnHead}%
+ \set@typeset@protect\fi\fi}
\def\eqe@writetoAux#1{%
\set@display@protect
\eqe@IWO\@auxout{#1}%
- \set@typeset@protect
-}
+ \set@typeset@protect}
% \end{macrocode}
% \end{macro}
% \end{macro}
@@ -2417,22 +2561,30 @@
\fi\fi
}
% \end{macrocode}
-% This macro gets the page number of the last page of the exam. It is read in through
+% This macro \DescribeMacro\eq@ExamLastPage gets the page number of the last page of the exam. It is read in through
% a macro definition made and written to the \texttt{.aux} file.
% \begin{macrocode}
\def\eq@ExamLastPage{\csname eqExamLastPage\endcsname}
+% \end{macrocode}
+% \DescribeMacro\nPagesOnExam is the number of pages in the exam.
+% \begin{macrocode}
\newcommand{\nPagesOnExam}{\csname eqExamLastPage\endcsname}
+% \end{macrocode}
+% \DescribeMacro\nPagesOnQues is the number of pages in the questions.
+% \begin{macrocode}
\newcommand{\nPagesOfQues}{\ifvspacewithsolns
\csname eqExamQuesLastPage\endcsname\else
\csname eqExamLastPage\endcsname\fi}
+% \end{macrocode}
+% \DescribeMacro\nPagesOnSols is the number of pages of solutions.
+% \begin{macrocode}
\newcommand{\nPagesOfSols}{\def\eqExamNumPagesSolns{0}%
\csarg\ifx{eqExamLastPage}\relax\else
\csarg\ifx{eqExamLastPage}\relax\else
{\count\z@=\nPagesOnExam\relax\advance
\count\z@-\nPagesOfQues\relax
\xdef\eqExamNumPagesSolns{\the\count\z@}}\fi\fi
- \eqExamNumPagesSolns
-}
+ \eqExamNumPagesSolns}
% \end{macrocode}
% \begin{macro}{\lastPageOfExam}
%\changes{v2.0l}{2011/05/05}{%
@@ -2502,7 +2654,7 @@
% \begin{macrocode}
\newcommand{\makeRefsNums}{%
\@ifundefined{thePartNames}{}{\begingroup
- \def\\##1{\typeout{processing ##1}%
+ \def\\##1{\PackageInfo{eqexam}{processing exam: ##1}%
\eqe@defNumRefii
{##1PageEnd}\eqe@defNumRefii{##1PageBegin}}%
\thePartNames
@@ -2924,33 +3076,33 @@
% for each part.
% \begin{macrocode}
\newcommand{\cpSumrybyparts}{%
- \eqe@@SumryVert\cp@Usefbox{%
- \ifx\cp@Usefbox\fbox
- \def\cp@sumryWdth{\cp@SetSumryWidth-2\fboxrule-2\fboxsep}\else
- \def\cp@sumryWdth{\cp@SetSumryWidth}\fi
- \begin{minipage}[b]{\cp@sumryWdth}\kern0pt
- \begin{flushleft}
- \setlength{\eqetmplengtha}{\cprulelength}%
- \edef\eqe@cprulelength{\the\eqetmplengtha}%
- \csarg\ifx{NumberOfParts}\relax
- \else
- \count2=0
- \medskip
- \cpSumryHeader\par\parskip\bigskipamount
- \def\\##1{\advance\count2by\csname ##1total\endcsname
- \underbar{\makebox[0pt][l]{%
- \cp@IsertNaming{##1}}\hspace*{\eqe@cprulelength}}%
- / $\eqe@ptsFmt{\csname ##1total\endcsname}%
- \cpSumryPts$\par}\thePartNames
- \fi
- \underbar{\makebox[0pt][l]{\cpSumryTotal}%
- \hspace{\eqe@cprulelength}}/
- $\eqe@ptsFmt{\the\count2\relax}\cpSumryPts$ \par
- \underbar{\makebox[0pt][l]{\cpSumryGrade}%
- \hspace{\eqe@cprulelength}}%
- \ifx\cp@Usefbox\fbox\medskip\fi
- \end{flushleft}\kern0pt
- \end{minipage}}\par
+ \eqe@@SumryVert\cp@Usefbox{%
+ \ifx\cp@Usefbox\fbox
+ \def\cp@sumryWdth{\cp@SetSumryWidth-2\fboxrule-2\fboxsep}\else
+ \def\cp@sumryWdth{\cp@SetSumryWidth}\fi
+ \begin{minipage}[b]{\cp@sumryWdth}\kern0pt
+ \begin{flushleft}
+ \setlength{\eqetmplengtha}{\cprulelength}%
+ \edef\eqe@cprulelength{\the\eqetmplengtha}%
+ \csarg\ifx{NumberOfParts}\relax
+ \else
+ \count2=0
+ \medskip
+ \cpSumryHeader\par\parskip\bigskipamount
+ \def\\##1{\advance\count2by\csname ##1total\endcsname
+ \underbar{\makebox[0pt][l]{%
+ \cp@IsertNaming{##1}}\hspace*{\eqe@cprulelength}}%
+ / $\eqe@ptsFmt{\csname ##1total\endcsname}%
+ \cpSumryPts$\par}\thePartNames
+ \fi
+ \underbar{\makebox[0pt][l]{\cpSumryTotal}%
+ \hspace{\eqe@cprulelength}}/
+ $\eqe@ptsFmt{\the\count2\relax}\cpSumryPts$ \par
+ \underbar{\makebox[0pt][l]{\cpSumryGrade}%
+ \hspace{\eqe@cprulelength}}%
+ \ifx\cp@Usefbox\fbox\medskip\fi
+ \end{flushleft}\kern0pt
+ \end{minipage}}\par
}
% \end{macrocode}
% \DescribeMacro{\cpSumrybypages}
@@ -2958,49 +3110,49 @@
% for each page.
% \begin{macrocode}
\newcommand{\cpSumrybypages}{%
- \eqe@@SumryVert\cp@Usefbox{%
- \ifx\cp@Usefbox\fbox
- \def\cp@sumryWdth{\cp@SetSumryWidth-2\fboxrule-2\fboxsep}\else
- \def\cp@sumryWdth{\cp@SetSumryWidth}\fi
- \begin{minipage}[b]{\cp@sumryWdth}\kern0pt
- \begin{flushleft}
- \setlength{\eqetmplengtha}{\cprulelength}%
- \edef\eqe@cprulelength{\the\eqetmplengtha}%
- \csarg\ifx{NumberOfParts}\relax
- \else\medskip\count0=0\relax\count2=0\relax
- \cpSumryHeader\par\parskip\bigskipamount
- \ifsolutionsAtEnd
- \@ifundefined{eqExamQuesLastPage}{\def\NUMPAGES{0}}
- {\edef\NUMPAGES{\@nameuse{eqExamQuesLastPage}}}%
- \else
- \@ifundefined{eqExamLastPage}{\def\NUMPAGES{0}}
- {\edef\NUMPAGES{\@nameuse{eqExamLastPage}}}%
- \fi
- \@whilenum\count0<\NUMPAGES\relax\do{%
- \advance\count0by1\relax
- \@ifundefined{Page\the\count0total}{\count4=0\relax}
- {\count4=\@nameuse{Page\the\count0total}\relax}%
- \csarg\ifx{Page\the\count0spilltotal}\relax
- \else\advance\count4by\csname%
- Page\the\count0spilltotal\endcsname\relax\fi
- \advance\count2by\count4\relax\underbar{%
- \makebox[0pt][l]{\cpSumryPage~\the\count0}%
- \hspace*{\eqe@cprulelength}}/
- $\eqe@ptsFmt{\the\count4\relax}%
- \cpSumryPts$\csarg\ifx{Page\the\count0spilltotal}\relax
- \else\ $(\@nameuse{Page\the\count0spilltotal}%
- \cpSumryPts+\@nameuse{Page\the\count0total}%
- \cpSumryPts)$\fi\par
- }%
- \fi
- \underbar{\makebox[0pt][l]{\cpSumryTotal}%
- \hspace{\eqe@cprulelength}}/
- $\eqe@ptsFmt{\the\count2\relax}\cpSumryPts$\par
- \underbar{\makebox[0pt][l]{\cpSumryGrade}%
- \hspace{\eqe@cprulelength}}%
- \ifx\cp@Usefbox\fbox\medskip\fi
- \end{flushleft}\kern0pt
- \end{minipage}}\par
+ \eqe@@SumryVert\cp@Usefbox{%
+ \ifx\cp@Usefbox\fbox
+ \def\cp@sumryWdth{\cp@SetSumryWidth-2\fboxrule-2\fboxsep}\else
+ \def\cp@sumryWdth{\cp@SetSumryWidth}\fi
+ \begin{minipage}[b]{\cp@sumryWdth}\kern0pt
+ \begin{flushleft}
+ \setlength{\eqetmplengtha}{\cprulelength}%
+ \edef\eqe@cprulelength{\the\eqetmplengtha}%
+ \csarg\ifx{NumberOfParts}\relax
+ \else\medskip\count0=0\relax\count2=0\relax
+ \cpSumryHeader\par\parskip\bigskipamount
+ \ifsolutionsAtEnd
+ \@ifundefined{eqExamQuesLastPage}{\def\NUMPAGES{0}}
+ {\edef\NUMPAGES{\@nameuse{eqExamQuesLastPage}}}%
+ \else
+ \@ifundefined{eqExamLastPage}{\def\NUMPAGES{0}}
+ {\edef\NUMPAGES{\@nameuse{eqExamLastPage}}}%
+ \fi
+ \@whilenum\count0<\NUMPAGES\relax\do{%
+ \advance\count0by1\relax
+ \@ifundefined{Page\the\count0total}{\count4=0\relax}
+ {\count4=\@nameuse{Page\the\count0total}\relax}%
+ \csarg\ifx{Page\the\count0spilltotal}\relax
+ \else\advance\count4by\csname%
+ Page\the\count0spilltotal\endcsname\relax\fi
+ \advance\count2by\count4\relax\underbar{%
+ \makebox[0pt][l]{\cpSumryPage~\the\count0}%
+ \hspace*{\eqe@cprulelength}}/
+ $\eqe@ptsFmt{\the\count4\relax}%
+ \cpSumryPts$\csarg\ifx{Page\the\count0spilltotal}\relax
+ \else\ $(\@nameuse{Page\the\count0spilltotal}%
+ \cpSumryPts+\@nameuse{Page\the\count0total}%
+ \cpSumryPts)$\fi\par
+ }% while
+ \fi
+ \underbar{\makebox[0pt][l]{\cpSumryTotal}%
+ \hspace{\eqe@cprulelength}}/
+ $\eqe@ptsFmt{\the\count2\relax}\cpSumryPts$\par
+ \underbar{\makebox[0pt][l]{\cpSumryGrade}%
+ \hspace{\eqe@cprulelength}}%
+ \ifx\cp@Usefbox\fbox\medskip\fi
+ \end{flushleft}\kern0pt
+ \end{minipage}}\par
}
% \end{macrocode}
% If the author takes the \texttt{coverpage} option, \cs{eqex@coverpage} is set equal
@@ -3221,7 +3373,7 @@
% \begin{macrocode}
\newcommand{\eqeomarginboxright}[2]{\makebox[0pt][l]{%
\setlength\tabcolsep{0pt}%
- \setlength{\@tempdima}{\textwidth+\marginparsep-\parindent}%-\parindent
+ \setlength{\@tempdima}{\textwidth+\marginparsep-\parindent}%
\hspace*{\@tempdima}%
\raisebox{-.5\height}[0pt][0pt]{%
\marginboxdesign[\insertTotalsBoxPDF]%
@@ -3313,7 +3465,8 @@
% And save to the auxiliary file for later usage.
% \begin{macrocode}
\xdef\lastparttotaled{\argii}%
- \eqe@IWO\@auxout{\string\csarg\string\gdef{Page\thepage total}%
+ \eqe@IWO\@auxout{\string\csarg\string
+ \gdef{Page\thepage total}%
{\theeqpointsthispage}}%
% \end{macrocode}
% Finally, place the totals box.
@@ -3586,26 +3739,73 @@
% \end(quote)
% \begin{macrocode}
\newsavebox{\workareasb}
+% \end{macrocode}
+% \changes{v5.0}{2017/11/08}{Added \string\cs{workareaVadj}}
+% \DescribeMacro{\workareaVadj}\hskip-\marginparsep\darg{\ameta{skip}} adjusts the vertical skip
+% of the first line that appears in the \env{workarea} environment.
+% \begin{macrocode}
+\def\workareaVadj#1{\bgroup\def\eqe@rgi{#1}\ifx\eqe@rgi\@empty
+ \def\eqe@rgi{0pt}\fi\setlength{\@tempdima}{\eqe@rgi}%
+ \xdef\workareaV@dj{\the\@tempdima}\egroup
+} % dps1
+\workareaVadj{3pt}
+\def\workareaCmds#1{\def\@rgi{#1}\ifx\@rgi\@empty
+ \let\work@reaCmds\relax\else
+ \def\work@reaCmds{#1}}
+\let\work@reaCmds\relax
+\def\priorworkareaCmds#1{\def\@rgi{#1}\ifx\@rgi\@empty % dpsj6
+ \let\priorWorkAreaCmds\relax\else
+ \def\priorWorkAreaCmds{#1}\fi}
+\let\priorWorkAreaCmds\relax
+% \end{macrocode}
+% \begin{macrocode}
\newenvironment{workarea}[2][\linewidth]
{%
\removelastparskip
\edef\workareadepth{\if\currhideopt H0pt\else#2\fi}%
\begin{lrbox}{\workareasb}\setlength{\eqetmplengtha}{#1}%
- \begin{minipage}[b][\workareadepth][t]{\eqetmplengtha}\vspace*{3pt}%
+% \end{macrocode}
+% A change in support of \cs{fillTypeGrid}. When \cs{ifforceEqualCells} is true,
+% we adjust the width of this \env{minipage} to conform to the shorter line
+% produced by the grid.
+% \changes{v5.0}{2017/11/08}{Changes in \string\env{workarea} to support
+% \string\cs{fillTypeGrid}}
+% \begin{macrocode}
+ \ifx\makeVgrid\relax\else % dps2
+ \ifforceEqualCells
+ \ifx\fillLinesLineWidth\@empty\else
+ \setlength{\eqetmplengtha}{\fillLinesLineWidth}\fi
+ \fi
+ \fi
+ \begin{minipage}[b][\workareadepth][t]{\eqetmplengtha}%
+% \end{macrocode}
+% Apply vertical skip \cs{workareaV@dj} here, set by \cs{workareaVadj}.
+% \begin{macrocode}
+ \vglue\workareaV@dj
+% \end{macrocode}
+% Adjust \cs{leftskip} when the problem is a lead-in.
+% \changes{v5.0}{2017/11/08}{Within \string\env{workarea}, adjust \string\cs{leftskip}
+% when the problem is a lead-in type}
+% \begin{macrocode}
+ \@ifundefined{leadinIndentPrtSep}{}{\ifx\solutionparshape\@empty
+ \else\leftskip\leadinIndentPrtSep\fi}\work@reaCmds
}{%
\end{minipage}\end{lrbox}%
% \end{macrocode}
% \texttt{4/5/11} Changed the logic here, so the \texttt{workarea} is available
% for the \texttt{vspace\-with\-solns} option.
+% \changes{v5.1.3}{2018/12/13}{added \string\textsf{solutions-after} condition to
+% displaying \string\texttt{workarea}}
% \begin{macrocode}
+ \ifeq@solutionsafter\else
\par\ifdisplayworkarea
\ifx\eq@insertverticalspace\eqe@YES
\removelastparskip
- \vspace{-\baselineskip}%
+ \vglue-\baselineskip
\if\currhideopt H\else
\noindent\strut\smash{\usebox{\workareasb}}%
\fi\fi
- \fi
+ \fi\fi
}
% \end{macrocode}
% \end{environment}
@@ -3698,17 +3898,18 @@
% \begin{macrocode}
}
\def\endsplitsolution{%
- \ifeq@solutionsafter\strut\par\fi
+ \ifeq@solutionsafter\solutionsafterSkip\fi % dpsj10
\ifx\solutionparshape\@empty\else
\advance\linewidth-\leadinIndentPrtSep\fi %%dps
\edef\eqe@workwidth{\if\ss@Argi l\noexpand\ss@Argiii
\else\noexpand\linewidth\fi}%
\edef\eqe@workfill{\if\ss@Argi l\else\hfill\fi}%
- \begin{workarea}[\eqe@workwidth]{\eqedepth}%
- \let\panelGetDimen\relax%
- \eqe@workfill\input{panel\thepanel@cnt.cut}%
- \end{workarea}
- \strut\par
+ \ifeq@solutionsafter\else
+ \begin{workarea}[\eqe@workwidth]{\eqedepth}%
+ \let\panelGetDimen\relax%
+ \eqe@workfill\input{panel\thepanel@cnt.cut}%
+ \end{workarea}
+ \fi\ifeq@solutionsafter\else\solutionsafterSkip\fi
}
% \end{macrocode}
% \end{environment}
@@ -3853,14 +4054,11 @@
\newenvironment{@ssSolution}[1][\ss@Argii]%
{%
\def\eqe@argi{#1}\ifx\eqe@argi\@empty\else
-% \setlength{\eq@tmpdima}{#1}%
-%
\let\soln@keys@nLines\@empty
\edef\panelheight{\the\panelheight}%
\edef\panelwidth{\the\panelwidth}%
\edef\temp@exp{\noexpand
\setkeys*{soln@keys}{#1}}\temp@exp
-% \setkeys*{soln@keys}{#1}%
\ifx\soln@keys@nLines\@empty
\edef\ss@Argii{\XKV@rm}%
\else
@@ -3983,7 +4181,19 @@
\ifx\soln@keys@nLines\@empty
\edef\passedss@Argii{\ss@Argii}\else
\edef\passedss@Argii{\ss@Argii,nLines=\soln@keys@nLines}\fi
- \expandafter\@sssolution\expandafter[\passedss@Argii]%
+% \end{macrocode}
+% For a split solution, cannot allow align left
+% \begin{macrocode}
+ \if\ss@Argi l\fillerLinesAlignDef\fi % dpsj10
+% \end{macrocode}
+% I cannot get the filler lines to work when the anserkey is in effect. The next
+% few lines locally turns off filler lines for this problem.
+% \begin{macrocode}
+ \ifanswerkey % dpsj10
+ \gdef\p@ssToFLs{\let\eq@insertverticalspace\eqe@NO
+ \@eqlinedfillerfalse}\fi % dpsj10
+ \eqe@flextendedfalse
+ \expandafter\@sssolution\expandafter[\passedss@Argii]%
}{%
\eqe@IW{\string\endminipage\eqe@rPanel\egroup}%
\ifeq@solutionsafter\endminipage\eqe@rPanel\egroup\fi
@@ -4164,7 +4374,7 @@
\advance\eq@pointboxtotalheight\dpPtBox\relax
\advance\eq@pointboxtotalheight\pointsmarginparpush
\vspace*{\eq@pointboxtotalheight}\fi}
-\def\eqe@afterexamsepcode{% dps7
+\def\eqe@afterexamsepcode{%
\if\eq@parttotals\eqe@YES
\@actionsAtPageBreak{\global\let\@spacetobreak1}%
{\global\let\@spacetobreak0}%
@@ -4173,7 +4383,7 @@
\advance\@tempdima\eq@pointboxtotalheight
\ifdim\@tempdima>\pagegoal\aftergroup\newpage
\else\ifnum\arabic{eq@count}>0\relax
- \removelastskip\vskip6pt\kern0pt %dps7
+ \removelastskip\vskip6pt\kern0pt
\if\@reportpoints\eqe@One\else\@checkSpacing{0}\fi
\textcolor{\endexamtotal@color}%
{\eqeomarginbox{\arabic{eq@count}}{0}}\fi
@@ -4201,7 +4411,7 @@
% See if there is enough room at the bottom of the page to place the end of exam
% totals and to start a new exam, if any. If not, forget it, and start a new page.
% \begin{macrocode}
- \global\let\afterexamsepcode\eqe@afterexamsepcode % dps7
+ \global\let\afterexamsepcode\eqe@afterexamsepcode
\fi
\fi
\ifeqfortextbook\global\examenvfalse\fi
@@ -4244,7 +4454,7 @@
% can be used within a textbook.
% \begin{macrocode}
\def\eqe@hspannerPrb{\ }
-\@ifundefined{ifwithsoldoc}{\newif\ifwithsoldoc\withsoldocfalse}{}
+\@ifundefined{ifwithinsoldoc}{\newif\ifwithinsoldoc\withinsoldocfalse}{}
\newcommand{\eqequestopsep}[1]{\def\eqeques@topsep{#1}}
\providecommand{\eqequesparsep}[1]{\def\eqeques@parsep{#1}}
\newcommand{\eqequesitemsep}[1]{\def\eqeques@itemsep{#1}}
@@ -4258,17 +4468,17 @@
\let\eqe@next\@empty\else\let\eqe@next\item\fi\eqe@next\relax}
\newenvironment{eqequestions}{%
\begin{list}{}{%
- \ifwithsoldoc\let\solnItemMngt\eqeSolnItemMngt\fi
+ \ifwithinsoldoc\let\solnItemMngt\eqeSolnItemMngt\fi
\setlength{\labelwidth}{\eqemargin}%
\setlength{\parsep}{\eqeques@parsep}%
\setlength{\itemsep}{\eqeques@itemsep}%
\setlength{\topsep}{\eqeques@topsep}%
\setlength{\itemindent}{0pt}%
\setlength{\listparindent}{\eqeques@listparindent}%dps%
- \ifwithsoldoc\settowidth{\labelsep}{\eqe@hspannerSoln}\else
+ \ifwithinsoldoc\settowidth{\labelsep}{\eqe@hspannerSoln}\else
\settowidth{\labelsep}{\eqe@hspannerPrb}\fi
\setlength{\leftmargin}{\labelwidth}%
- }\ifwithsoldoc\global\firstitemtrue\fi\item\relax}{\end{list}}
+ }\ifwithinsoldoc\global\firstitemtrue\fi\item\relax}{\end{list}}
% \end{macrocode}
% \begin{environment}{exam}
% Each part of the exam is enclosed in an \texttt{exam} environment. The one
@@ -4288,8 +4498,24 @@
\def\noExamTitleInSolns{\let\eqeWrtExamTitleToSolns\eqe@NO}
\let\thisexamlabel\@empty
\let\isInExamEnv\eqe@NO
+% \end{macrocode}
+% \DescribeMacro{\RecordThisExamOff} causes \pkg{eqexam} to place \cs{iffalse} and \cs{fi}
+% around the solutions to this exam in the solution file. This makes the solution results
+% of this exam invisible. \cs{RecordThisExamOff} sets an internal switch \cs{ifDoNotRecordThisExam}
+% to \texttt{true}. This switch is set back to \texttt{false} at the end of the environment.
+% \changes{v5.1d}{2018/02/02}{Added \string\cs{RecordThisExamOff}}
+% \begin{macrocode}
+\newif \ifDoNotRecordThisExam \DoNotRecordThisExamfalse % dpsf02
+\def\RecordThisExamOff{\DoNotRecordThisExamtrue} % dpsf02
+\def\bIFFalseWrtSolns{\writeT@SolnFile{\protect\iffalse^^J}}
+\def\eIFFalseWrtSolns{\writeT@SolnFile{\protect\fi^^J}}
+% \end{macrocode}
+% The beginning of the \env{exam} environment.
+% \begin{macrocode}
\newenvironment{exam}[2][]
{%
+ \ifDoNotRecordThisExam % dpsf02
+ \expandafter\bIFFalseWrtSolns\fi
\makeRoomForProb{\@fvsizeskip\textheight}{0}%
\let\isInExamEnv\eqe@YES
\stepcounter{eq@numparts}%
@@ -4328,8 +4554,11 @@
% \begin{macrocode}
\vskip\eqeques@parsep\relax\kern0pt %dps88
\endshortquiz
- \aftergroup\afterexamsepcode % dps7
+ \aftergroup\afterexamsepcode
\par\penalty-100\vskip0pt
+ \ifDoNotRecordThisExam % dpsf02
+ \expandafter\eIFFalseWrtSolns\fi
+ \global\DoNotRecordThisExamfalse
}
% \end{macrocode}
% \end{environment}
@@ -4564,13 +4793,22 @@
\string\eqe@wordNums.}}
% \end{macrocode}
% \end{macro}
+% Added two hooks \cs{priorPNPAction} and
+% \cs{postPNPAction} to \cs{makeRoomForProb} to allow some defined actions
+% before and after a page break generated by \cs{makeRoomForProb}.
+% \changes{v5.0}{2017/11/08}{Added hooks \string\cs{priorPNPAction} and
+% \string\cs{postPNPAction} to \string\cs{makeRoomForProb}}. Examples of usage
+% are found in \cs{vspaceFillerLines} and \cs{eq@linesXPgs}.
% \begin{macrocode}
+\let\priorPNPAction\relax % dps1
+\let\postPNPAction\relax
+\def\eqe@mkRoomPgBrk{\priorPNPAction\newpage\postPNPAction}
\def\makeRoomForProb#1#2{\par %\endgraf % dps 11/11/10
\bgroup\@nobreakfalse\addpenalty{-500}%
\setlength{\@tempdimb}{#1}%
\@tempdima \pagegoal \advance \@tempdima -\pagetotal
\ifdim \@tempdima<\@tempdimb\ifnum\col@number>\@ne\columnbreak
- \else\newpage\fi\fi\egroup
+ \else\aftergroup\eqe@mkRoomPgBrk\fi\fi\egroup
\ifnum\@reportpoints>1
\ifx\eqe@prevProbZero\eqe@YES
\if\eqe@isPts0\else\vskip-\halfHtPtBox\relax\fi
@@ -4597,22 +4835,23 @@
{\def\eqe@emnb{\ifnum\col@number>\@ne\columnbreak
\else\newpage\fi\insertContAnnot}\eq@emitMessageNearBottom}
{\let\eqe@emnb\relax\eq@emitMessageNearBottom}}
-\newcommand{\eq@emitMessageNearBottom}[2][\iacvspace]{%
+\newcommand{\eq@emitMessageNearBottom}[2][2\wlVspace]{%
\eq@@emitMessageNearBottom{#1}{#2}}
\def\eq@@emitMessageNearBottom#1#2{\par
\bgroup\@nobreakfalse\addpenalty{-500}%
\setlength{\@tempdimb}{#1}%
\@tempdima \pagegoal \advance \@tempdima -\pagetotal
- \ifdim \@tempdima<\@tempdimb #2 \eqe@emnb\fi\egroup}
+ \ifdim \@tempdima<\@tempdimb #2 \eqe@emnb
+ \xdef\eq@currProbStartPage{0}\fi\egroup} % dps4
% \end{macrocode}
% \end{macro}
% \DescribeMacro{\getSpaceLeftOnPage}\cmd{\getSpaceLeftOnPage} calculates
% the amount of space left on the current page. It saves the calculation
-% in the text macro \DescribeMacro{\amtSpaceOnLeftOnPage}\cmd{\amtSpaceOnLeftOnPage}.
+% in the text macro \DescribeMacro{\amtSpaceLeftOnPage}\cmd{\amtSpaceLeftOnPage}.
% \begin{macrocode}
\newcommand{\getSpaceLeftOnPage}{\par\bgroup
\@tempdima \pagegoal \advance \@tempdima -\pagetotal
- \xdef\amtSpaceOnLeftOnPage{\the\@tempdima}\egroup}
+ \xdef\amtSpaceLeftOnPage{\the\@tempdima}\egroup}
% \end{macrocode}
% \begin{macro}{\promoteNewPage}
%\changes{v2.0n}{2011/05/13}{%
@@ -4696,22 +4935,48 @@
\rowsepDefault{3pt}\partstabcolsep{1.5pt}%
\partstabtopsep{3pt}\partstabrowsep{3pt}
\renewcommand\belowexsolnskip{{}}%
-% \end{macrocode}
-% The \textsf{problem} environment now begins.
-% \begin{macrocode}
\let\isProbEnv\eqe@NO
\let\topofprobhook\relax
-\newenvironment{problem}[1][]{\let\isProbEnv\eqe@YES
+% \end{macrocode}
+% Normally, you don't leave a blank line between the beginning
+% of \env{problem} and the statement of problem. If you're in the habit
+% of doing that, we can absorb that blank space. See similar
+% command above the definition of \env{problem*} for more information.
+% \changes{v5.1a}{2018/01/21}{added \string\cs{eqe@p@gobnxtp@r}}
+% \begin{macrocode}
+\def\eqe@p@gobnxtp@rDef{\@ifnextchar\par{\eqe@p@gobtop@rnext}{}}
+\def\eqe@p@gobtop@rnext#1\par{}
+\def\applyparfixesp{\let\eqe@p@gobnxtp@r\eqe@p@gobnxtp@rDef}
+%\def\cancelparfixesp{\let\eqe@p@gobnxtp@r\relax}
+\def\cancelparfixesp{\let\eqe@p@gobnxtp@r\ignorespaces}
+% \end{macrocode}
+% The \env{problem} environment now begins.
+% \changes{v5.1f}{2018/02/09}{modify problem env to analyze two optional args}
+% \begin{macrocode}
+\newcommand{\problem}[1][]{\lowercase{\def\@rgi{#1}}%
+% \end{macrocode}
+% Support for h and H argument when it is the first argument.
+% \changes{v5.1e}{2018/02/09}{Support for h and H argument}
+% \changes{v5.1j}{2018/04/15}{Change comparison to \string\cs{ifx}, \string\cs{if}
+% give incorrect result when points are of the form 11, 22, 33, etc.}
+% \begin{macrocode}
+ \ifx\@rgi\eqe@h
+ \def\hidden@ttr{[#1]}\let\numpoints\@empty\else
+ \let\hidden@ttr\relax\def\numpoints{#1}\fi
+ \problem@cont}
+\newcommand{\problem@cont}[1][]{\let\isProbEnv\eqe@YES
+ \def\@rgi{#1}\ifx\hidden@ttr\relax % assume a number or empty
+ \ifx\@rgi\@empty\else\def\hidden@ttr{[#1]}\fi\fi
\if\eqe@isPts0\global\let\eqe@prevProbZero\eqe@YES\else
\global\let\eqe@prevProbZero\eqe@NO\fi
\global\thereissolutionfalse
- \def\numpointsEmpty{0}\def\numpoints{#1}%
+ \def\numpointsEmpty{0}%
\ifx\numpoints\@empty\def\numpoints{0}\def\numpointsEmpty{1}%
\gdef\eqe@isPts{0}\else\gdef\eqe@isPts{1}\fi
\makeRoomForProb{\@nbaselineskip\baselineskip}{\eqe@isPts}%
\gdef\probstar{x}\let\afterlabelhskip\@empty
- \ifx\marginpoints\@empty\else %\def\numpoints{#1}%
- \if\numpointsEmpty\eqe@One\let\marginpoints\@gobbletwo\fi
+ \ifx\marginpoints\@empty\else
+ \if\numpointsEmpty\eqe@One\let\marginpoints\@gobbletwo\fi
% \end{macrocode}
%\changes{v2.0n}{2011/05/13}{%
% Added \texttt{*<num>} to signal in-line display of points.
@@ -4720,20 +4985,23 @@
% \texttt{[*3]}, it is a three point problem, but the value is expressed
% in-line, not in the margins.
% \begin{macrocode}
- \@ifstar{\let\@isitstar\eqe@One\eqe@grabarg}%
- {\let\@isitstar\eqe@Zero\eqe@gobbletoend}#1\end
- \if\@isitstar\eqe@One\addtocounter{eqpointvalue}{\numpoints}%
- \@marktotalvalue
- \ifdispl@yPoints
- \def\marginparafterhook{\PTs{\numpoints}\space}\else
- \def\marginparafterhook{\PTs*{\numpoints}\space}\fi\else
- \def\marginparpriorhook{\noindent
- \probvalue{\numpoints}{0}}\fi
- \fi\setcounter{eq@count}{\value{eqquestionnoi}}%
+ \def\@lti{\let\@isitstar\eqe@One\eqe@grabarg}%
+ \def\@ltii{\let\@isitstar\eqe@Zero\eqe@gobbletoend}%
+ \expandafter\@ifstar\expandafter\@lti
+ \expandafter\@ltii\numpoints\end
+ \if\@isitstar\eqe@One\addtocounter{eqpointvalue}{\numpoints}%
+ \@marktotalvalue
+ \ifdispl@yPoints
+ \def\marginparafterhook{\PTs{\numpoints}\space}\else
+ \def\marginparafterhook{\PTs*{\numpoints}\space}\fi\else
+ \def\marginparpriorhook{\noindent
+ \probvalue{\numpoints}{0}}\fi
+ \fi
+ \setcounter{eq@count}{\value{eqquestionnoi}}%
\addtocounter{eq@count}{1}%
\ifnum\value{eq@count}=1\relax
- \eqe@IWO\@auxout{\string
- \csarg\string\gdef{pagenofirstprob\thisexamlabel}{\thepage}}%
+ \eqe@IWO\@auxout{\string
+ \csarg\string\gdef{pagenofirstprob\thisexamlabel}{\thepage}}%
\fi
% \end{macrocode}
% \changes{}{2015/06/01}{Added the hook \cs{topofprobstarhook}}
@@ -4742,23 +5010,29 @@
% \texttt{eqequestions} environment.
% \begin{macrocode}
\topofprobhook
+ \begin{eqequestions}%
% \end{macrocode}
-% \changes{v3.1e}{2012/11/10}{Removed hard-wired \cs{proofingsymbol}}
+% \textbf{Begin exercise env.} Insert h or H when it is the first argument through \cs{hidden@ttr},
+% then begin the \texttt{exercise} environment using the counter
+% \texttt{eqquestionnoi}.
+% \changes{v5.1e}{2018/02/09}{Support for h and H argument}
% \begin{macrocode}
-% \proofingsymbol{\ding{52}}%
- \begin{eqequestions}%
- \begin{exercise}[eqquestionnoi]%
-}{\end{exercise}%
+ \edef\ctrld@exp@exercise{\noexpand
+ \begin{exercise}[eqquestionnoi]\hidden@ttr}%
+ \ctrld@exp@exercise\ignorespaces\eqe@p@gobnxtp@r}
+% \end{macrocode}
+% \textbf{end problem env.} The code for the end of the problem environment.
+% \begin{macrocode}
+\def\endproblem{\end{exercise}%
\end{eqequestions}%
- \ifeqlocalversion\ifeqglobalversion
- \xdef\eqe@tmp{\noexpand\forVersion{\eq@selectedVersion}}%
- \aftergroup\eqe@tmp
- \fi\fi
- \global\eqlocalversionfalse
- \ifdispl@yPoints\global\l@stDispl@yPointstrue
- \else\global\l@stDispl@yPointsfalse\fi
- \global\let\eqe@fpmrk\@empty
-}
+ \ifeqlocalversion\ifeqglobalversion
+ \xdef\eqe@tmp{\noexpand\forVersion{\eq@selectedVersion}}%
+ \aftergroup\eqe@tmp
+ \fi\fi
+ \global\eqlocalversionfalse
+ \ifdispl@yPoints\global\l@stDispl@yPointstrue
+ \else\global\l@stDispl@yPointsfalse\fi
+ \global\let\eqe@fpmrk\@empty}
% \end{macrocode}
% \end{environment}
% \begin{macro}{\PTs}
@@ -4873,11 +5147,37 @@
{Using the star (*) in front of the points\MessageBreak
designator is not allowed when there is a
\MessageBreak\string\tableadin}}
+\let\isProbStarEnv\eqe@NO
+\let\topofprobstarhook\relax
+% \end{macrocode}
+% Added \cs{eqe@gobnxtpar} to hopefully, eliminate the need to leave
+% no pars (blank lines) between |\begin{parblem*}| and either \cs{leadinitem}
+% or \cs{tableadin}. The default is to not affect the old behavior. You have
+% to declare \DescribeMacro{\applyparfixes}\cs{applyparfixes} to apply the
+% fix; revert back to the old behavior with \DescribeMacro{\cancelparfixes}\cs{cancelparfixes}
+% \changes{v5.1a}{2018/01/21}{added \string\cs{eqe@gobnxtpar}}
+% \begin{macrocode}
+\def\eqe@ps@gobtop@r#1\par{\eqe@isle@dinnext}
+\def\eqe@isle@dinnext{\@ifnextchar\leadinitem{}{\vskip-\baselineskip}}
+\def\restorele@dinpfixDef{\@ifnextchar\par{\eqe@ps@gobtop@r}{}}
+\let\eqe@ps@gobnxtpar\restorele@dinfixDef
+\def\applyleadinfix{\let\eqe@gobnxtpar\restorele@dinpfixDef}
+\def\cancelleadinfix{\let\eqe@gobnxtpar\relax}
+\def\applyparfixes{\PackageInfo{eqexam}
+ {Applying paragraph fixes to problem\MessageBreak
+ and problem* environments}\applyparfixesp\applyleadinfix}
+\def\cancelparfixes{\PackageInfo{eqexam}
+ {Cancelling paragraph fixes to problem\MessageBreak
+ and problem* environments}\cancelparfixesp
+ \cancelleadinfix}
+% \end{macrocode}
+% The default behavior is to do nothing about blank lines.
+% \begin{macrocode}
+\cancelparfixesp\cancelleadinfix
+\let\neutralizeparfixes\cancelparfixes
% \end{macrocode}
% We now begin the code for the \texttt{problem*} environment.
% \begin{macrocode}
-\let\isProbStarEnv\eqe@NO
-\let\topofprobstarhook\relax
\csarg\def{problem*}{\let\isProbEnv\eqe@YES
\let\isProbStarEnv\eqe@YES
\global\thereissolutionfalse
@@ -4962,9 +5262,10 @@
% \begin{macrocode}
\topofprobstarhook
\ifeqfortextbook
- \writeToSolnFile{\protect\global\protect\frstProbNumShownfalse}\fi
+ \writeT@SolnFile{\protect\global
+ \protect\frstProbNumShownfalse}\fi
\begin{eqequestions}%
- \begin{exercise}[eqquestionnoi]*}%
+ \begin{exercise}[eqquestionnoi]*\eqe@gobnxtpar}%
% \end{macrocode}
% \begin{macrocode}
\def\ftb@endprobstarCks{%
@@ -4978,13 +5279,13 @@
%\DescribeMacro{\endproblem*} begins here.
% \begin{macrocode}
\csarg\def{endproblem*}{%
- \eqe@IWO\@auxout{\string
- \csarg\string\gdef{nPartsThisProb\thisexamlabel.\theeqquestionnoi}%
- {\arabic{partno}}}%
+ \eqe@IWO\@auxout{\string\csarg\string
+ \gdef{nPartsThisProb\thisexamlabel.\theeqquestionnoi}%
+ {\arabic{partno}}}%
\ifx\probpointseach\@empty\else
\ifx\probpointseach\auto
- \eqe@IWO\@auxout{\string
- \csarg\string\gdef{prob\thisexamlabel.\theeqquestionnoi}%
+ \eqe@IWO\@auxout{\string\csarg\string
+ \gdef{prob\thisexamlabel.\theeqquestionnoi}%
{\theeq@count}}%
\else
\setcounter{eq@count}{\value{partno}}%
@@ -5010,9 +5311,8 @@
\egroup
\fi
\multiply\value{eq@count}\argi
- \eqe@IWO\@auxout{\string
- \csarg\string\gdef{prob\thisexamlabel.\theeqquestionnoi}%
- {\theeq@count}}%
+ \eqe@IWO\@auxout{\string\csarg\string
+ \gdef{prob\thisexamlabel.\theeqquestionnoi}{\theeq@count}}%
\fi\fi
\end{exercise}%
\end{eqequestions}%
@@ -5092,7 +5392,7 @@
% we toss an exception.
% \begin{macrocode}
\def\eqe@next{\eqe@@leadinitem}%
- \ifeqfortextbook\writeToSolnFile{\protect\bpartsmrk}\fi
+ \ifeqfortextbook\writeT@SolnFile{\protect\bpartsmrk}\fi
\else
\def\eqe@next{\PackageError{eqexam}
{The \string\leadinitem\space command may
@@ -5114,8 +5414,8 @@
% We signal a \cs{leadinitem} by writing a special command to the AUX file,
% this is used to disallow the use of the \texttt{*} option of points.
% \begin{macrocode}
- \eqe@writetoAux{\string
- \csarg\string\gdef{leadinitem\thisexamlabel-\theeqquestionnoi}{}}%
+ \eqe@writetoAux{\string\csarg\string
+ \gdef{leadinitem\thisexamlabel-\theeqquestionnoi}{}}%
\settowidth{\eq@tmpdima}{\normalfont\parts@indent\eqe@prtsepPrb}%
\xdef\leadinIndentPrtSep{\the\eq@tmpdima}%
\setlength{\eq@tmpdima}{\eqemargin+\eq@tmpdima}%
@@ -5168,10 +5468,12 @@
% \end{macrocode}
% The final step. If the solution is hidden, we do not write the header.
% \changes{v3.3a}{2013/05/03}{Changed name of \cs{eq@writeexheader} to \cs{eqExerSolnHeader}}
+% \changes{v4.9a}{2017/04/05}{Added a test for solutions after within lead-in item}
% \begin{macrocode}
\def\eq@leadin@item{\eq@ckglobalhide\ifeq@hidesolution\else
\global\let\eqExerSolnHeader\eq@@writeexheaderlist\fi
\ifeq@nosolutions\eq@nolinktrue\fi
+ \ifeq@solutionsafter\eq@nolinktrue\fi
\unskip\noindent\makebox[\partsleadinIndent]{\eqexlisttabheader}%
\eqe@prtsepPrb\ignorespaces
}
@@ -5182,7 +5484,7 @@
% \textsf{exerquiz}.
% \begin{macrocode}
\def\eqe@tableadin{\@tableadinitemtrue\eqe@writetoAux{\protect
- \csarg\protect\gdef{tableadin\thisexamlabel-\theeqquestionnoi}{}}%
+ \csarg\protect\gdef{tableadin\thisexamlabel-\theeqquestionnoi}{}}%
}
% \end{macrocode}
% \begin{macro}{\pushProblem}
@@ -5486,27 +5788,27 @@
% page is different than the starting page, \cs{eq@currProbStartPage}, we
% insert \cs{annotContStr}.
% \begin{macrocode}
-%\newcommand{\priorAnnotInsert}[1]{\def\eq@priorAnnotInsert{#1}}
-%\let\eq@priorAnnotInsert\relax
+\def\@nnotContStrSkip{\vskip3pt}
\newcommand{\eqe@insertContAnnot}[1][\iacvspace]{\promoteNewPage[#1]%
- \ifnum\arabic{page}>\eq@currProbStartPage
- \xdef\eq@currProbStartPage{\arabic{page}}%
- {\settowidth{\eq@tmplength}{\parts@indent\eqe@prtsepPrb}%
- \xdef\eqe@partsIndent{\the\eq@tmplength}}%
- \ifwithinparts
+ \ifnum\arabic{page}>\eq@currProbStartPage
+ \xdef\eq@currProbStartPage{\arabic{page}}%
+ {\settowidth{\eq@tmplength}{\parts@indent\eqe@prtsepPrb}%
+ \xdef\eqe@partsIndent{\the\eq@tmplength}}%
+ \ifwithinparts
% \end{macrocode}
% \cs{eq@item} is the \texttt{list} definition of \cs{item} which has been
% \cs{let} to \cs{eq@item} within the \texttt{parts} environment.
% \begin{macrocode}
- \@ifundefined{eq@item@latex}{\item[]\hspace*{-\eqemargin}%
- \ifx\solutionparshape\@empty\else\hspace*{-\eqe@partsIndent}\fi}
- {\eq@item@latex[]\hspace*{-\eqemargin}%
- \hspace{-\eqe@partsIndent}}\else
+ \@ifundefined{eq@item@latex}{\item[]\hspace*{-\eqemargin}%
+ \ifx\solutionparshape\@empty\else\hspace*{-\eqe@partsIndent}\fi}
+ {\eq@item@latex[]\hspace*{-\eqemargin}%
+ \hspace{-\eqe@partsIndent}}\else
% \end{macrocode}
% If placed between problem sets, we indent as appropriate.
% \begin{macrocode}
- \hspace*{-\eqemargin}\fi\annotContStr
- \fi
+ \hspace*{-\eqemargin}\fi
+ \annotContStr\@nnotContStrSkip % dpsj20
+ \fi
}
\edef\eq@currProbStartPage{\arabic{page}}
% \end{macrocode}
@@ -5516,9 +5818,11 @@
% \begin{macro}{\turnContAnnotOn}
% Turn off and on this feature. The default is off.
% \begin{macrocode}
+\newif\ifcont@nnot \cont@nnotfalse
%\newcommand{\@gobbloptone}[1][]{}
-\newcommand{\turnContAnnotOff}{\global\let\eq@insertContAnnot\relax}
-\newcommand{\turnContAnnotOn}{%
+\newcommand{\turnContAnnotOff}{\global\cont@nnotfalse
+ \global\let\eq@insertContAnnot\relax}
+\newcommand{\turnContAnnotOn}{\global\cont@nnottrue
\global\let\eq@insertContAnnot\eqe@insertContAnnot}
\turnContAnnotOff
% \end{macrocode}
@@ -5594,13 +5898,81 @@
% \end{macrocode}
% \end{macro}
%
-%\subsection{Vertical Space Filling Options}
+%\section{Vertical Space Filling Options}
%
-% When the \texttt{nosolutions} or the \texttt{vspacewithsolns} is used, a
-% vertical space is generated by the \texttt{solution} environment.
+% When the \opt{nosolutions} or the \opt{vspacewithsolns} is used, a
+% vertical space is generated by the \env{solution} environment.
% Previously, this has just been a vertical white space, now, we provide
% the ability to fill the space with horizontal rules of different types.
% Below is the implementation of this.
+%
+% \subsection{General filler lines commands and controls}
+% \begin{macro}{\useFillerLines}
+% When used, the vertical space is written with lines (rules, dashes, dots, grids ).
+%\changes{v2.0e}{2011/03/07}
+%{%
+% Added the feature of filling the vertical space with ruled lines of
+% different types. This feature is available for paper options and for
+% \texttt{nosolutions} and \texttt{vspacewithsolution} options.
+%}
+% \begin{macrocode}
+\newcommand{\useFillerLines}{\ifx\vspaceFiller % dpsj8
+ \vspaceFillerLines\else\@eqlinedfillertrue
+ \let\vspaceFiller\vspaceFillerLines\fillTypeDefault
+\fi}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\useFillerDefault}
+% Resets the vertical space to the original white space.
+% \begin{macrocode}
+\newcommand{\useFillerDefault}{\@eqlinedfillerfalse
+ \let\vspaceFiller\vspaceFillerDefault
+ \let\eqWriteLine\hfill}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\fillTypeHRule}
+% Writes the line as a solid line (\cs{hrulefill}).
+% \begin{macrocode}
+\newcommand{\fillTypeHRule}{\let\eqWriteLine\eqWriteLineFill
+ \let\makeVgrid\relax}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\fillTypeDots}
+% Writes the line as a dotted line (\cs{dotfill}).
+% \begin{macrocode}
+\newcommand{\fillTypeDots}{\let\eqWriteLine\eqWriteLineDots
+ \let\makeVgrid\relax}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\fillTypeDashLine}
+% Writes the line as a dotted line (\cs{eqdashrulefill}).
+% \begin{macrocode}
+\newcommand{\fillTypeDashLine}{\let\eqWriteLine\eqWriteLineDashFill
+ \let\makeVgrid\relax}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\fillTypeBlankLine}
+% Fills the line
+% \begin{macrocode}
+\newcommand{\fillTypeBlankLine}{\let\eqWriteLine\eqWriteLineBlankFill
+ \let\makeVgrid\relax}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\fillTypeDefault}
+% Resets fill type back to the default, \cs{hrulefill}.
+% \begin{macrocode}
+\newcommand{\fillTypeDefault}{\let\eqWriteLine\eqWriteLineFill
+ \let\makeVgrid\relax}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\fillTypeGrid}
+% Fills the space with a grid, horizontal and vertical lines.
+% \changes{v4.9c}{2017/11/03}{Added \string\cs{fillTypeGrid}}
+% \begin{macrocode}
+\newcommand{\fillTypeGrid}{\ifx\vspaceFiller\vspaceFillerLines
+ \let\eqWriteLine\eqWriteLineFill\let\makeVgrid\eqe@makeVgrid\fi}
+% \end{macrocode}
+% \end{macro}
% \begin{macro}{\eqWriteLineColor}
% The color of the rule to use.
% \begin{macrocode}
@@ -5613,7 +5985,7 @@
% \begin{macrocode}
\newlength\wlVspace
\newcommand{\eqWLSpacing}[1]{\setlength\wlVspace{#1}}
-\eqWLSpacing{14pt}
+\eqWLSpacing{14.0pt}
% \end{macrocode}
% \end{macro}
% \paragraph*{Fill Types.} We have three types of line fill:
@@ -5623,151 +5995,1080 @@
% \cs{let} to \cs{eqWriteLine}, which is used in \cs{vspaceFillerLines}.
% \begin{macrocode}
\newcommand{\eqWriteLineFill}{%
- \textcolor{\eq@WriteLineColor}{\hrulefill}}
-%\newcommand{\eqWriteLineDots}{%
-% \textcolor{\eq@WriteLineColor}{\dotfill}}
-\def\eqdotrulefile{\leavevmode
- \cleaders\hb@xt@ .44em{\hbox to0pt{\hss.\hss}\hss}\hfill\kern\z@}
+ \textcolor{\eq@WriteLineColor}{\leaders
+ \hrule height \flfboxrule\hfill}}
+% \end{macrocode}
+% The first box is used in \cs{eqdotrulefill}, whereas the second two are
+% used to split off content using \cs{vsplit}. These are active when
+% the options flextended and answerkey are in force, and when
+% \cs{useFillerLines} and \cs{turnflanskeyOn} have been expanded.
+% \begin{macrocode}
+\newbox\eqe@tempbox
+\newbox\eqe@nskeyflsplit
+\newbox\eqe@nskeyfltop
+\def\eqdotrulefill{\leavevmode
+ \cleaders\hb@xt@ .44em{\copy\eqe@tempbox\hss}\hfill} % dps16
+% \cleaders\hb@xt@ .44em{\unhcopy\eqe@tempbox\hss}\hfill} % dps8
\newcommand{\eqWriteLineDots}{%
- \textcolor{\eq@WriteLineColor}{\eqdotrulefile}}
-%\def\eqdashrulefill{\leavevmode
-% \cleaders\hb@xt@ .44em{\hss\rule{.22em}{.4pt}\hss}\hfill\kern\z@}
-\def\eqdashrulefill{\leavevmode%\kern-.11em
- \cleaders\hb@xt@ .44em{\rule{.22em}{.4pt}\hss}\hfill\kern\z@}
+ \textcolor{\eq@WriteLineColor}{\eqdotrulefill}}
+\def\eqdashrulefill{\leavevmode
+ \cleaders\hb@xt@ .44em{\rule{.22em}{\flfboxrule}\hss}\hfill\kern\z@}
\newcommand{\eqWriteLineDashFill}{%
- \textcolor{\eq@WriteLineColor}{\eqdashrulefill}}
-\newcommand{\eqWriteLineBlankFill}{\hfill}
-% \end{macrocode}
-% Use \DescribeMacro{\fillerLinesAlignDef}\cs{fillerLinesAlignDef} and
-% \DescribeMacro{\fillerLinesOnLeftMargin}\cs{fillerLinesOnLeftMargin} to adjust
-% the alignment of the rule lines for this feature. The first is the default,
-% the second one aligns rule lines to the left margin.
+ \textcolor{\eq@WriteLineColor}{\eqdashrulefill}}
+%\newcommand{\eqWriteLineBlankFill}{\hfill}
+\newcommand{\eqWriteLineBlankFill}{\vphantom{\hrulefill}}
+% \end{macrocode}
+% Vertical counterparts to those above, excepting blank fill.
+% \changes{v5.0}{2017/11/08}{Added vertical rules}
+% \begin{macrocode}
+\newcommand{\eqWriteLineVFill}{\leaders\vrule width\flfboxrule\vfill}
+\def\eqdotruleVfill{\cleaders\vbox to .44em{\vss
+ \hbox to0pt{\hss.\hss}}\vfill}
+\newcommand{\eqWriteLineVDots}{\eqdotruleVfill}
+\def\eqdashruleVfill{\cleaders\vbox to .44em{\vss
+ \hbox to0pt{\hss\rule{\flfboxrule}{.22em}\hss}}\vfill}
+\newcommand{\eqWriteLineDashVFill}{\eqdashruleVfill}
+% \end{macrocode}
+% When the \env{solution} environment contains both an \texttt{nLines} and a dimension,
+% by default, the dimension is used; however, if \DescribeMacro{\usenLineDimen}\cs{usenLineDimen}
+% is specified, we force the use of the \texttt{nLines} specification. Switch back to the default
+% using \DescribeMacro{\useVspaceDimen}\cs{useVspaceDimen}.
% \begin{macrocode}
\newif\if@equsedim \@equsedimtrue
\newcommand{\useVspaceDimen}{\@equsedimtrue}
\newcommand{\usenLineDimen}{\@equsedimfalse}
\newif\if@eqalignfilllinestoleft\@eqalignfilllinestoleftfalse
+% \end{macrocode}
+% Use \DescribeMacro{\fillerLinesAlignDef}\cs{fillerLinesAlignDef} and
+% \cs{fillerLinesOnLeftMargin} to adjust
+% the alignment of the rule lines for this feature.\DescribeMacro{\fillerLinesOnLeftMargin}
+% The first is the default, the second one aligns rule lines to the left margin.
+% \begin{macrocode}
\newcommand{\fillerLinesOnLeftMargin}{\@eqalignfilllinestolefttrue}
\newcommand{\fillerLinesAlignDef}{\@eqalignfilllinestoleftfalse}
\newcommand\priorPageBreakMsg[1]{\def\priorP@geBre@kMsg{#1}}
\let\priorP@geBre@kMsg\@empty
-\newcommand{\flPageBreakMsg}[1]{%\acvspace{2\wlVspace}%
- \priorPageBreakMsg{\emitMessageNearBottom[2\wlVspace]
+\newcommand{\flPageBreakMsg}[1]{%
+ \priorPageBreakMsg{\emitMessageNearBottom[\iacvspace]
{\eqfititin{{\Large\strut}#1}}}%
}
-\newcommand{\vspaceFillerLines}[1]{\begingroup\offinterlineskip
- \parindent0pt\relax\parskip0pt
- \@tempdima\wlVspace\eqetmplengtha0pt
- \def\eqe@fillwidth{\linewidth+\eqetmplengtha}%
- \settowidth{\eqetmplengthb}{\eqe@decPointPrb}%
- \@whiledim\@tempdima<#1\relax\do{\priorP@geBre@kMsg
- \eq@insertContAnnot\vskip\wlVspace\eqe@wrtLineKernal
- \makebox[0pt][l]{\makebox[\eqe@fillwidth]{\eqWriteLine}}%
- \addtolength{\@tempdima}{.4pt+\wlVspace}\par
- }\endgroup
-}
-\def\eq@linesXPgs{\begingroup\offinterlineskip
- \parindent0pt\relax\parskip0pt
- \@tempcnta=0 \eqetmplengtha0pt
- \settowidth{\eqetmplengthb}{\eqe@decPointPrb}%
- \def\eqe@fillwidth{\linewidth+\eqetmplengtha}%
- \@whilenum\@tempcnta<\soln@keys@nLines\relax\do{\priorP@geBre@kMsg
- \eq@insertContAnnot\vskip\wlVspace\eqe@wrtLineKernal
- \makebox[0pt][l]{\makebox[\eqe@fillwidth]{\eqWriteLine}}%
- \advance\@tempcnta1\relax}\par\endgroup
-}
-\def\eqe@wrtLineKernal{%
- \ifx\solutionparshape\@empty
- \if@eqalignfilllinestoleft
- \setlength{\eqetmplengtha}{\labelwidth+\eqemargin}%
- \setlength{\eqetmplengtha}
- {\eqetmplengtha+\eqetmplengthb}%
- \ifwithinparts
- \setlength{\eqetmplengtha}{\labelwidth}%
- \setlength{\eqetmplengtha}
- {\eqetmplengtha+\eqetmplengthb}%
- \ifx\eq@item\item@part@tabular
- \hspace*{-\eqemargin}\eqetmplengtha\eqemargin\else
- \hspace*{-\eqetmplengtha}\fi
- \else
- \hspace*{-\eqemargin}\eqetmplengtha\eqemargin
- \fi
+% \end{macrocode}
+% The command \cs{makeVgrid} is an internal macro that is let to either
+% \cs{relax}, as below, or to \cs{eqe@makeVgrid}. The latter creates a grid of fill lines.
+% \begin{macrocode}
+\let\makeVgrid\relax %dps1
+% \end{macrocode}
+% \paragraph*{Key-values for fill lines}
+% We define the \texttt{eqefillLines} \pkg{xkeyval} family, the keys are set through the
+% command \cs{setFillLinesFmt}. We define nine keys
+% \texttt{numbers}, \texttt{numbersep}, \texttt{color}, \texttt{topline}, \texttt{gridtype},
+% \texttt{fltype}, \texttt{align}, \texttt{outlineonly}, \texttt{bgonly}, and \texttt{bgcolor}. The first two are used
+% to number the fill lines, the \texttt{color} is to color the fill lines, the last two
+% concerning the grid type filler lines.
+% \changes{v5.0}{2017/11/08}{Added support for \string\cs{fillTypeGrid}, added keys
+% numbers, numbersep, and color as well}\medskip
+%
+% \noindent\IndexKey{numbers}\hskip-\marginparsep\texttt{=\ameta{\upshape{none\string|left\string|right}}}
+% This is a
+% \texttt{numbers} is a choice key with possible values of \texttt{none}, \texttt{left}
+% and \texttt{right}. It places a line numbering to the left or right of the line, or no line number is used
+% if \texttt{none} is selected.
+% \begin{macrocode}
+\define@choicekey+{eqefillLines}{numbers}[\val\nr]%
+ {none,left,right}[none]{\ifcase\nr\relax
+ \let\eqe@numLinesL\relax\let\eqe@numLinesR\relax\or
+ \let\eqe@numLinesL\eqe@@numLinesL\let\eqe@numLinesR\relax\or
+ \let\eqe@numLinesL\relax\let\eqe@numLinesR\eqe@@numLinesR
+ \fi
+}{\PackageWarning{aeb}{Bad choice for numbers, permissible values
+ are none, left, and right. Try again}}
+\let\eqe@numLinesL\relax\let\eqe@numLinesR\relax
+% \end{macrocode}
+% \noindent\IndexKey{numbersep}\hskip-\marginparsep\texttt{=\ameta{dimen}}
+% When \texttt{numbers} is either \texttt{left} or \texttt{right}, the separation between
+% the line and the number is \texttt{numbersep}. The default value is
+% 2pt.
+% \begin{macrocode}
+\define@key{eqefillLines}{numbersep}[2pt]{%
+ \setlength{\eqetmplengtha}{#1}%
+ \edef\eqe@numbersep{\the\eqetmplengtha}}
+\def\eqe@numbersep{2pt}
+% \end{macrocode}
+% \noindent\IndexKey{color}\hskip-\marginparsep\texttt{=\ameta{color-spec}}
+% The \texttt{color} key paints the lines the specified color, for example,
+% \texttt{color=red!20}. It simply defines \cs{eq@WriteLineColor} to be this color.
+% \begin{macrocode}
+\define@key{eqefillLines}{color}[]{\def\eq@WriteLineColor{#1}}
+% \end{macrocode}
+% \noindent\IndexKey{topline}\hskip-\marginparsep\texttt{=\ameta{\upshape{true\string|false}}}
+% When \cs{fillTypeGrid} is in effect, \texttt{topline=true} writes
+% an additional line above the top most line, this line is not numbered.
+% \begin{macrocode}
+\define@boolkey{eqefillLines}{topline}[true]{}
+\KV@eqefillLines@toplinefalse
+% \end{macrocode}
+% \noindent \IndexKey{gridtype}\hskip-\marginparsep\texttt{=\ameta{\upshape{line\string|dash\string|dots}}}
+% The \texttt{gridtype} key determines the line style for the grid,
+% choices are \texttt{line} (the default), \texttt{dash}, and \texttt{dots}. This key also
+% sets the line style when the \texttt{outlineonly} key is specified.
+% \begin{macrocode}
+\let\eqe@usedeffboxrule\eqe@NO % dps20
+\let\gridtypeselected\@empty % dps26
+\define@choicekey+{eqefillLines}{gridtype}[\val\nr]%
+ {line,dash,dots}[line]{\edef\gridtypeselected{\val}% dps26
+ \ifcase\nr\relax
+ \let\gridHLineFill\eqWriteLineFill
+ \let\gridVLineFill\eqWriteLineVFill
+ \or
+ \let\gridHLineFill\eqWriteLineDashFill
+ \let\gridVLineFill\eqWriteLineDashVFill
+ \or
+ \let\gridHLineFill\eqWriteLineDots
+ \let\gridVLineFill\eqWriteLineVDots
+ \let\eqe@usedeffboxrule\eqe@YES %dps20
+ \fi
+}{\PackageWarning{aeb}{Bad choice for numbers, permissible values
+ are line, dash, and dots. Try again}}
+\let\gridHLineFill\eqWriteLineFill
+\let\gridVLineFill\eqWriteLineVFill
+% \end{macrocode}
+% \noindent\IndexKey{fltype}\hskip-\marginparsep\texttt{=\ameta{\upshape{line\string|dash\string|dots\string|blank}}}
+% The \texttt{fltype} key determines the type of line style for the horizontal rendering. This key simply
+% executes the various command versions.
+% \begin{macrocode}
+\define@choicekey+{eqefillLines}{fltype}[\val\nr]%
+ {line,dash,dots,blank,grid}[line]{\ifcase\nr\relax
+ \fillTypeHRule\or
+ \fillTypeDashLine\or
+ \fillTypeDots
+ \let\eqe@usedeffboxrule\eqe@YES\or % dps20
+ \fillTypeBlankLine\or
+ \fillTypeGrid\fi
+}{\PackageWarning{aeb}{Bad choice for numbers, permissible values
+ are line, dash, dots, blank, and grid. Try again}}
+% \end{macrocode}
+% \noindent\IndexKey{align}\hskip-\marginparsep\texttt{=\ameta{\upshape{left\string|default}}}
+% Another convenience key, \texttt{align} simply executes the command versions.
+% \begin{macrocode}
+\define@choicekey+{eqefillLines}{align}[\val\nr]%
+ {default,left}[default]{\ifcase\nr\relax
+ \fillerLinesAlignDef\or
+ \fillerLinesOnLeftMargin\fi
+}{\PackageWarning{aeb}{Bad choice for numbers, permissible values
+ are line, dash, dots, blank, and grid. Try again}}
+\define@choicekey*{eqefillLines}{equalcells}[\val\nr]%
+ {true,false}[true]{\ifcase\nr\relax
+ \equalCellSizesOn\or
+ \equalCellSizesOff\fi
+}
+% \end{macrocode}
+% \noindent\IndexKey{outlineonly*}\hskip-\marginparsep\texttt{=\ameta{\upshape{true\string|false}}}
+% outlines the work area only, does not create horizontal or vertical lines, other than the lines
+% to outline the region. Obeys the \texttt{gridtype} key.
+% \changes{v5.0c}{2017/11/18}{Added the outlineonly, bgonly, and bgcolor keys to the
+% eqefileLines family.}
+% \begin{macrocode}
+\define@boolkey{eqefillLines}{outlineonly}[true]{}
+\KV@eqefillLines@outlineonlyfalse
+\define@choicekey{eqefillLines}{outlineonly*}{true,false}[true]{% dps26
+ \@nameuse{KV@eqefillLines@outlineonly#1}%
+ \def\eqefillLines@outlineonlystar{#1}}%
+\let\eqefillLines@outlineonlystar\@empty
+% \end{macrocode}
+% \noindent\IndexKey{bgonly*}\hskip-\marginparsep\texttt{=\ameta{\upshape{true\string|false}}}
+% colors the work area with a color of your choice, see \texttt{bgcolor} below.
+% \begin{macrocode}
+\define@boolkey{eqefillLines}{bgonly}[true]{} % dps11
+\KV@eqefillLines@bgonlyfalse
+\define@choicekey{eqefillLines}{bgonly*}{true,false}[true]{% dps26
+ \@nameuse{KV@eqefillLines@bgonly#1}%
+ \def\eqefillLines@bgonlystar{#1}}
+\let\eqefillLines@bgonlystar\@empty
+% \end{macrocode}
+% \noindent\IndexKey{bgcolor}\hskip-\marginparsep\texttt{=\ameta{color-spec}}
+% The color to be used when \texttt{bgcolor} is in force.
+% If no color has been assigned, the color will be white.
+% \begin{macrocode}
+\define@key{eqefillLines}{bgcolor}[]{\def\eqe@BGColor{#1}} % dps11
+\let\eqe@BGColor\@empty
+% \end{macrocode}
+% \DescribeMacro{\fillLinesNumFmt}\hskip-\marginparsep\darg{\ameta{cmds}}
+% is used to specify the format for line numbers. Within the \ameta{cmds} argument,
+% use \texttt{\#1} to indicate the placement of the number. For example, the code
+% |\fillLinesNumFmt{\textbf{#1}}| puts the line numbers in bold font.
+% \begin{macrocode}
+\def\fillLinesNumFmt#1{\def\eqe@fillLinesNumFmt##1{\def\flnum{##1}#1}}
+\fillLinesNumFmt{\flnum} % set to default values
+\define@key{eqefillLines}{numfmt}[]{\fillLinesNumFmt{#1}} % dps21
+\define@key{eqefillLines}{linegap}[14pt]{\def\fl@wlspacing{#1}} % dps21
+\def\fl@wlspacing{14pt}
+% \end{macrocode}
+% \DescribeMacro{\setFillLinesFmt}\hskip-\marginparsep\darg{\ameta{KV-pairs}}
+% Set the format of the fill lines, use the keys from the \texttt{eqefillLines}
+% defined and described above. Changes outside a group are global.
+% An example of the usage is given here: |\setFillLinesFmt{numbers=left,color=red}|.
+% \changes{v5.0}{2017/11/08}{Added \string\cs{setFillLinesFmt}}
+%
+% Other important notes: To produce horizontal lines only, use \texttt{fltype=line\string|\penalty0dash\string|\penalty0dots},
+% to produce blank space, use \texttt{fltype=blank} and to produce a grid \texttt{fltype=grid}.
+% \begin{macrocode}
+\newcommand{\setFillLinesFmt}[1]{\def\@rgi{#1}%
+ \let\eqe@usedeffboxrule\eqe@NO %dps20
+ \let\gridtypeselected\@empty
+ \ifx\@rgi\@empty
+ \setkeys{eqefillLines}{numbers,numbersep,color,
+ gridtype,fltype,align}%
+ \else
+ \let\is@outlineonly\eqe@NO\let\is@bgonly\eqe@NO
+ \ifKV@eqefillLines@outlineonly\let\is@outlineonly\eqe@YES\fi
+ \ifKV@eqefillLines@bgonly\let\is@bgonly\eqe@YES\fi
+ \setkeys{eqefillLines}{#1}%
+ \eqWLSpacing{\fl@wlspacing}%
+ \ifx\makeVgrid\relax
+ \KV@eqefillLines@toplinefalse
+% \forceEqualCellsfalse % dps21
+ \equalCellSizesOff % dpsj15
+ \ifx\is@bgonly\eqe@YES % carryover from prev prob
+ \ifKV@eqefillLines@bgonly
+ \KV@eqefillLines@bgonlyfalse
\else
- \ifwithinparts
- \setlength{\eqetmplengtha}{\labelwidth}%
- \setlength{\eqetmplengtha}
- {\eqetmplengtha-\eqetmplengthb}%
- \setlength{\eqetmplengtha}{\labelwidth}%
- \setlength{\eqetmplengtha}
- {\eqetmplengtha+\eqetmplengthb}%
- \ifx\eq@item\item@part@tabular
- \hspace*{\eqetmplengtha}%
- \settowidth{\eqetmplengthb}{\eqe@prtsepPrb}%
- \setlength{\eqetmplengtha}
- {-\labelwidth-\eqetmplengthb}\else
- \eqetmplengtha0pt\fi
- \else
- \eqetmplengtha0pt
- \fi
+ \PackageWarning{eqexam}{You must specify fltype=grid for
+ bgonly to work.\MessageBreak
+ Ignoring this key for now}%
+ \KV@eqefillLines@bgonlyfalse
+ \let\is@bgonly\eqe@NO
+ \fi
+ \else % not continuation
+ \ifKV@eqefillLines@bgonly
+ \PackageWarning{eqexam}{You must specify fltype=grid for
+ bgonly to work.\MessageBreak
+ Ignoring this key for now}%
+ \KV@eqefillLines@bgonlyfalse
+ \let\is@bgonly\eqe@NO
+ \fi
+ \fi
+% same for outline
+ \ifx\is@outlineonly\eqe@YES % carryover from prev prob
+ \ifKV@eqefillLines@outlineonly
+ \KV@eqefillLines@outlineonlyfalse
+ \else % dps18
+ \PackageWarning{eqexam}{You must specify fltype=grid for
+ outlineonly to work.\MessageBreak
+ Ignoring this key for now}%
+ \KV@eqefillLines@outlineonlyfalse
+ \let\is@outlineonly\eqe@NO
+ \fi
+ \else % not continuation
+ \ifKV@eqefillLines@outlineonly
+ \PackageWarning{eqexam}{You must specify fltype=grid for
+ outlineonly to work.\MessageBreak
+ Ignoring this key for now}%
+ \KV@eqefillLines@outlineonlyfalse
+ \let\is@outlineonly\eqe@NO
\fi
+ \fi
+ \let\gridHLineFill\eqWriteLine
+ \let\gridVLineFill\eqWriteLine
\else
- \if@eqalignfilllinestoleft
- \setlength{\eqetmplengtha}
- {\eqemargin+\leadinIndentPrtSep}%
- \hspace*{-\eqetmplengtha}\else\hspace*{0pt}\fi
+ \ifx\gridtypeselected\@empty % dps26
+ \let\gridHLineFill\eqWriteLineFill
+ \let\gridVLineFill\eqWriteLineVFill
+ \fi
\fi
+ \fi
+}
+% \end{macrocode}
+% The next two definitions place line numbers on the left and right, respectively.
+% \begin{macrocode}
+\def\eqe@@numLinesL{\ifKV@eqefillLines@topline\ifnum\@tempcntb>0 % dps5
+ \smash{\llap{\tiny
+ \eqe@fillLinesNumFmt{\the\@tempcntb}\hglue\eqe@numbersep\relax}}\fi
+ \else\smash{\llap{\tiny
+ \eqe@fillLinesNumFmt{\the\@tempcntb}\hglue\eqe@numbersep\relax}}\fi}
+\def\eqe@@numLinesR{\smash{\rlap{\tiny
+ \hglue\eqe@numbersep\relax\eqe@fillLinesNumFmt{\the\@tempcntb}}}}
+% \end{macrocode}
+% The \cs{fillLinesLineWidth} is a special command used for adjusting the length of
+% the horizontal lines, and is used only when \cs{fillTypeGrid} is in effect and when
+% \cs{forceEqualCells} is true.
+% \begin{macrocode}
+\let\fillLinesLineWidth\@empty
+% \end{macrocode}
+% A switch to signal that a grid has broken across pages. This is only set to true
+% when the \texttt{topline=true} is specified through \cs{setFillLinesFmt}.
+% \changes{v5.0}{2017/11/08}{Added switch \cs{ifgridpgbrk}}
+% \begin{macrocode}
+\newif\ifgridpgbrk\gridpgbrkfalse % dps7
+% \end{macrocode}
+% \begin{macro}{\vspaceFillerLines}\hskip-\marginparsep\,\darg{\ameta{dimen}}
+% This is an internal command, though we declare is publicly. It writes the
+% horizontal lines (lines, dots, dashes) when the \env{solution} environment
+% uses a \ameta{dimen} to specify space (as opposed to using the \texttt{nLines} key).
+% \begin{macrocode}
+\newif\ifwriteVertic@lFLines \writeVertic@lFLinestrue % dps16
+\def\fl@set@nnotContStrSkip{\def\@nnotContStrSkip{\vskip6pt}} % dpsj23
+\let\p@ssToFLs\relax
+\newif\iffl@firstpass % dps27
+\newcommand{\vspaceFillerLines}[1]{\begingroup\offinterlineskip %dps1
+ \global\fl@firstpasstrue % dps27
+ \fl@set@nnotContStrSkip % dpsj20
+ \p@ssToFLs\if@eqlinedfiller
+ \def\eqe@next{\vspaceFillerLines@i{#1}}\else
+ \expandafter\def\expandafter\eqe@next
+ \expandafter{\expandafter\endgroup\p@ssToFLs}\fi
+ \global\let\p@ssToFLs\relax\eqe@next}
+\def\vspaceFillerLines@i#1{\advance\wlVspace-\flfboxrule % dps25
+ \ifx\eqe@usedeffboxrule\eqe@YES\flfboxrule=.4pt\fi % dps20
+ \ifKV@eqefillLines@outlineonly\KV@eqefillLines@toplinetrue %dps10
+ \KV@eqefillLines@bgonlyfalse % dps11
+% \forceEqualCellsfalse % dpsj15
+ \equalCellSizesOff\let\makeVgrid\eqe@makeVgrid\fi %dps10
+ \ifKV@eqefillLines@bgonly\KV@eqefillLines@toplinetrue
+ \KV@eqefillLines@outlineonlyfalse\flfboxrule=.4pt % dps20
+% \forceEqualCellsfalse % dpsj15
+ \equalCellSizesOff\let\makeVgrid\eqe@makeVgrid\fi %dps11
+ \parindent0pt\relax\parskip0pt
+ \@tempdima\wlVspace\eqetmplengtha0pt
+ \@tempcnta=0 \@tempcntb=1
+% \end{macrocode}
+% \cs{eqe@fillwidth} is the width of the line, it is \cs{linewidth} plus a fudge factor, which
+% is determined dynamically by \cs{eqe@wrtLineKernal}.
+% \begin{macrocode}
+ \def\eqe@fillwidth{\linewidth+\eqetmplengtha}%
+% \end{macrocode}
+% If we are creating a grid (\cs{fillTypeGrid}), and \cs{forceEqualCells} is true, we modify
+% the length of the line to make equal cell sizes. \cs{forceEq@lCells} determines
+% the value of \cs{fillLinesLineWidth}.
+% \begin{macrocode}
+ \eqe@wrtLineKernal
+ \setbox\eqe@tempbox\hbox{\hb@xt@0pt{\hss.\hss}}\ht\eqe@tempbox.33pt
+ \dp\eqe@tempbox0pt % dps16
+ \ifx\makeVgrid\relax
+% \forceEqualCellsfalse % dpsj15
+ \equalCellSizesOff
+ \else % dps2
+ \let\eqWriteLine\gridHLineFill
+ \forceEqu@lCells % dps2
+ \ifx\flEqu@lLineWidth\@empty\else
+ \linewidth=\flEqu@lLineWidth\relax\fi
+ \ifKV@eqefillLines@bgonly\else
+ \ifKV@eqefillLines@topline\bgroup\@tempcntb=0% dps5
+ \makebox[0pt][l]{\eqe@x
+ \makebox[\eqe@fillwidth]{\eqWriteLine}}\egroup
+ \fi\fi % dps5
+ \fi
+ \settowidth{\eqetmplengthb}{\eqe@decPointPrb}\def\vfGo@l{#1}%
+ \ifx\makeVgrid\relax\else
+ \def\priorPNPAction{\xdef\fl@nRows{\the\@tempcnta}% dps27
+ \if@eqalignfilllinestoleft\eqe@x\fi % dpsj12
+ \makeVgrid\priorP@geBre@kMsg\global\fl@firstpassfalse}% dps4
+ \def\postPNPAction{\global\gridpgbrktrue % dps27
+ \setlength{\@tempdima}
+ {(\vfGo@l+\wlVspace)-\depthtodate}% dps25
+ \edef\vfGo@l{\the\@tempdima}\@tempdima=\wlVspace\relax
+ \@tempcnta=0\relax}% dps18
+ \fi
+ \@whiledim\@tempdima<\vfGo@l\relax\do
+ {\edef\depthtodate{\the\@tempdima}%
+ \ifx\eqe@insert@more@content\relax\ifx\makeVgrid\relax
+ \priorP@geBre@kMsg\fi\fi %dps15
+ \eq@insertContAnnot\vskip\wlVspace\eqe@x
+% \end{macrocode}
+% Draw the horizontal line: a rule, dotted line, dashed line
+% \begin{macrocode}
+ \ifKV@eqefillLines@bgonly\vglue\flfboxrule\else % dpsj11 dpsj21
+ \ifKV@eqefillLines@outlineonly\vglue\flfboxrule\else %dps10
+ \makebox[0pt][l]{\eqe@numLinesL
+ \makebox[\eqe@fillwidth]{\eqWriteLine}\eqe@numLinesR}\fi
+ \fi
+ \advance\@tempcnta1\relax\advance\@tempcntb1\relax
+ \edef\depthtodate{\the\@tempdima}%
+ \addtolength{\@tempdima}{\wlVspace}%\par dps25
+% \end{macrocode}
+% At the conclusion of the \cs{do} loop, we insert \cs{makeVgrid}, which
+% is either \cs{relax} or is \cs{eqe@makeVgrid}, the latter is a complicated
+% command to draw vertical lines across the horizontal ones, and to perform
+% other tasks.
+% \begin{macrocode}
+ }\xdef\fl@nRows{\the\@tempcnta}\makeVgrid % dps27
+ \ifx\makeVgrid\relax\else %dps15
+% \end{macrocode}
+% When there is insufficient space to accommodate the content, we
+% place a small blank box in the lower left corner, put a information
+% message in the log, and reset the color.
+% \changes{v5.1b}{2018/01/24}{Added \string\reset@color}
+% \begin{macrocode}
+ \ifvoid\eqe@nskeyflsplit\else\PackageWarning{eqexam}
+ {Some material from a solution environment does not\MessageBreak
+ appear. Increase space allotted}{\normalcolor
+ \llap{\smash{\rule{5pt}{5pt}}}}\aftergroup
+ \reset@color\fi % dpsj24
+ \fi
+% \end{macrocode}
+% We conclude by adding some vertical space to better align
+% the \env{workarea} environment. When a fill type is used,
+% the space created by not be exactly \ameta{dimen} the dimension
+% specified.
+% \begin{macrocode}
+ \setlength{\@tempdima}{\vfGo@l-\depthtodate}\vskip\@tempdima
+% \vskip\flfboxrule\vskip3pt
+ \dimen0=\sameVspace\relax
+ \dimen2=\fboxrule\advance\dimen0by\dimen2
+ \xdef\sameVspace{\the\dimen0 }\endgroup
+ \global\flfrstsplittrue
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\eq@linesXPgs}
+% Does the same as \cs{vspaceFillerLines} but is used instead of that command when the optional
+% argument for \env{solution} specified a value for \texttt{nLines}. Code comments are the same
+% as those just given for \cs{vspaceFillerLines}.
+% \begin{macrocode}
+\def\eq@linesXPgs{\@tempdimb\wlVspace % dpsj20
+ \advance\@tempdimb-\flfboxrule
+ \@tempdimb=\soln@keys@nLines\@tempdimb
+ \advance\@tempdimb\flfboxrule
+ \expandafter\vspaceFillerLines\expandafter{\the\@tempdimb}}
+% \end{macrocode}
+% \end{macro}
+% \cs{eqe@wrtLineKernal}, based on a case analysis, sets the register
+% \cs{eqetmplengha} and makes some horizontal glue adjustments as well.
+% \begin{macrocode}
+%\def\eq@linesXPgs{\@tempdimb\wlVspace
+% \@tempdimb=\soln@keys@nLines\@tempdimb
+% \expandafter\vspaceFillerLines\expandafter{\the\@tempdimb}}
+\def\eqe@wrtLineKernal{\let\eqe@x\relax\let\eqe@y\relax % dpsj9
+ \ifx\solutionparshape\@empty % not lead-in
+ \if@eqalignfilllinestoleft % align on left
+ \setlength{\eqetmplengtha}{\labelwidth+\eqemargin}%
+ \setlength{\eqetmplengtha}
+ {\eqetmplengtha+\eqetmplengthb}%
+ \ifwithinparts
+ \ifx\istabularexer\eq@YES % tabular mode
+ \setlength{\eqetmplengtha}{\prtsIndntSep}% dps27
+ \eq@tmplengthA\eqetmplengtha
+ \def\eqe@x{\hglue-\prtsIndntSep}% dps27
+ \ifKV@eqefillLines@outlineonly\let\eqe@y\eqe@x\fi
+ \else
+ \settowidth{\eqetmplengtha}{\eqe@prtsepPrb}%
+ \setlength{\eqetmplengtha}{\eqetmplengtha+\widthOfParts}% dps9
+ \setlength{\eq@tmplengthA}{\eqetmplengtha}% dps9
+ \def\eqe@x{\hspace*{-\eqetmplengtha}\hglue-\flfboxrule}% dps27
+ \fi
+ \else % not parts, still align left
+ \def\eqe@x{\hspace*{-\eqemargin}}%
+ \eqetmplengtha\eqemargin
+ \eq@tmplengthA\eqemargin
+ \fi
+ \else % not lead-in, not align on left
+ \ifwithinparts
+ \setlength{\eqetmplengtha}{\labelwidth}%
+ \setlength{\eqetmplengtha}
+ {\eqetmplengtha+\eqetmplengthb}%
+ \ifx\istabularexer\eq@YES % tabular mode
+ \eqetmplengtha0pt
+ \eq@tmplengthA\eqetmplengtha % dps27
+ \else %dps2
+ \def\eqe@x{\hglue-\flfboxrule}% dps4
+ \eqetmplengtha0pt
+ \eq@tmplengthA\eqetmplengtha
+ \fi
+ \else % not parts, not align left
+ \eqetmplengtha0pt
+ \eq@tmplengthA\eqetmplengtha
+ \fi
+ \fi
+ \else % lead-in
+ \if@eqalignfilllinestoleft
+ \setlength{\eqetmplengtha}{\leadinIndentPrtSep}% dps27
+ \eq@tmplengthA\eqetmplengtha
+ \else
+ \eqetmplengtha0pt
+ \eq@tmplengthA\eqetmplengtha
+ \fi
+ \fi
+}
+% \end{macrocode}
+% \DescribeMacro{\equalCellSizesOn} set the switch \cs{ifforceEqualCells} to true, while
+% \DescribeMacro{\equalCellSizesOff}\cs{equalCellSizesOff} sets the same switch to false.
+% Additionally, the latter command resets \cs{fillLines\-Line\-Width} to its default value
+% of \cs{@empty}. It is therefore important not to use the switch directly, but to use
+% these two convenience commands.
+% \begin{macrocode}
+\newif\ifforceEqualCells
+\def\equalCellSizesOn{\global\let\flEqu@lLineWidth\@empty
+ \global\forceEqualCellstrue}
+\def\equalCellSizesOff{\global\let\flEqu@lLineWidth\@empty
+ \global\forceEqualCellsfalse}
+\equalCellSizesOff
+% \end{macrocode}
+% \cs{forceEqu@lCells} determines the value of \cs{fillLinesLineWidth}. It successively
+% adds \cs{wlVspace} until it exceeds \cs{linewidth}, it then subtracts off one \cs{wlVspace}
+% to get the value for \cs{fillLinesLineWidth}.
+% \begin{macrocode}
+\def\forceEqu@lCells{\bgroup
+ \ifforceEqualCells
+ \dimen6\wlVspace % reduced from \vspaceFillerLines
+ \advance\dimen6\flfboxrule
+ \dimen2=\z@
+ \dimen4\linewidth
+ \advance\dimen4by-\flfboxrule
+ \if@eqalignfilllinestoleft % dps8
+ \advance\dimen4\eq@tmplengthA
+ \fi
+ \@tempcnta0
+ \@whiledim \dimen2 < \dimen4 \do{%
+ \advance\@tempcnta1
+ \advance\dimen2by\dimen6
+ }%
+ \advance\@tempcnta-1
+ \advance\dimen2-\dimen6
+ \advance\dimen2\flfboxrule
+ \advance\dimen2by-\eq@tmplengthA
+ \xdef\flEqu@lLineWidth{\the\dimen2}%
+ \fi
+\egroup}
+\let\eqe@insert@more@content\relax
+\def\gobtodot#1.#2\@nil{\def\intPrt{#1}\def\fracPrt{#2}}
+% \end{macrocode}
+% \DescribeMacro{\eqe@makeVgrid} A command that is executed when the document author expands \cs{fillTypeGrid}.
+% The command itself draws vertical rule lines, which intersect with horizontal
+% rule lines to form a grid.
+% When \cs{fillTypeGrid} is active, \cs{makeVgrid} is \cs{let}
+% to \cs{eqe@makeVgrid}. \cs{makeVgrid} appears twice in each of the macros
+% \cs{vspaceFillerLines} and \cs{eq@linesXPgs}. The first instance of \cs{makeVgrid}
+% draws the vertical line, assuming there is no page break. If there is a page break,
+% the second instance of \cs{makeVgrid} continues to draw vertical lines with the correct
+% height and number. To make the grid break across a page, the low level command
+% \cs{makeRoomForProb} was modified; now prior and post actions (\cs{priorPNPAction} and \cs{priorPNPAction})
+% can be defined. \medskip
+%
+% \noindent The \cs{dbMrk} is used to debug this portion of the code, view the debugging marks
+% by setting \cs{ifeqedb} to true.
+% \changes{v5.0a}{2017/11/14}{Placed \cs{eqe@makeVgrid} in a group, \string\cs{count0}
+% was leaking out.}
+% \begin{macrocode}
+\def\dbMrk#1{\textsf{\footnotesize#1}}
+\@ifundefined{ifeqedb}{\newif\ifeqedb \eqedbfalse}{}
+% \end{macrocode}
+% \noindent\DescribeMacro{\fillerCustomBg}\hskip-\marginparsep\darg{\ameta{alt-bg}}
+% Add a custom background feature, only available when the key \texttt{bgonly} is active.
+% The argument \ameta{alt-bg} uses \texttt{\#1} and \texttt{\#2} to refer to the width
+% and height of the work area. Use \DescribeMacro{\resetFillerCustomBg}\cmd{\resetFillerCustomBg}
+% to reset the method of coloring the background to its default method.
+% \changes{v5.0d}{2017/11/19}{Added a custom background feature}
+% \begin{macrocode}
+\def\fillerCustomBg#1{\def\fillerBgIm@ge##1##2{#1}}
+\def\resetFillerCustomBg{\let\fillerBgIm@ge\@empty}
+\resetFillerCustomBg
+% \end{macrocode}
+% \DescribeMacro{\gridIndentAdj}\hskip-\marginparsep\darg{\ameta{dimen}} is an adjustment
+% in the horizontal positioning of the vertical lines of the grid. Under normal
+% conditions, \cs{gridIndentAdj} is not needed. If the \env{exam} environment
+% is embedded in environments that change some basic parameters, the alignment
+% of the grid may not be right, in which case you can use
+% \cs{gridIndentAdj} to shift the grid horizontially.
+% \begin{macrocode}
+\def\gridIndentAdj#1{\def\@rgi{#1}\ifx\@rgi\@empty
+ \let\gridIndent@dj\relax\else % dps4
+ \setlength{\@tempdima}{#1}\edef\gridIndent@dj{\the\@tempdima}\fi}
+\let\gridIndent@dj\relax
+\def\eqe@makeVgrid{\begingroup
+ \@tempcnta=\fl@nRows\relax
+ \advance\wlVspace\flfboxrule % dps25
+ \setlength{\@tempdima}{\eqe@fillwidth}%
+ \setlength{\@tempdimb}{\wlVspace}%
+ \edef\eqe@tmp{\strip@pt\@tempdimb}%
+ \expandafter\gobtodot\eqe@tmp.\@nil
+ \divide\@tempdima by\intPrt\relax
+ \dimen2=\@tempdima
+ \dimen4=1pt
+ \advance\dimen2 by 0.5\dimen4
+ \divide\dimen2 by \dimen4
+ \multiply\dimen2 by \dimen4
+ \edef\eqe@tmp{\strip@pt\dimen2}%
+ \expandafter\gobtodot\eqe@tmp.\@nil
+ \advance\@tempcnta-1\relax % dps21
+ \multiply\@tempdimb\@tempcnta
+ \edef\eqe@HOfVrule{\the\@tempdimb}% dps7
+ \ifKV@eqefillLines@topline % dps21
+ \advance\@tempdimb\wlVspace
+ \advance\@tempdimb\flfboxrule
+ \edef\eqe@HOfVruleFrstRow{\the\@tempdimb}%
+ \def\eqe@setVRule{\vbox
+ to\eqe@HOfVruleFrstRow\relax{\gridVLineFill}}% dps8
+ \else
+ \def\eqe@setVRule{\vbox
+ to\eqe@HOfVrule\relax{\gridVLineFill}}% dps8
+ \fi
+ \eqe@tempcnta=0
+ \dimen2=\wlVspace
+ \count4=\intPrt\relax
+ \setlength{\dimen4}{\eqe@fillwidth}%
+ \multiply\dimen2by\count4
+ \@whiledim \dimen2 > \dimen4 \do{%
+ \advance\count4by-1\relax
+ \edef\intPrt{\the\count4 }%
+ \dimen2\wlVspace
+ \multiply\dimen2by\count4
+ }%
+ \dimen2\wlVspace
+ \if@eqalignfilllinestoleft % dps27
+ \let\fl@oSmash\smash\let\fl@iSmash\relax
+ \else
+ \let\fl@iSmash\smash\let\fl@oSmash\relax
+ \fi
+ \fl@oSmash{%
+ \makebox[0pt][l]{\makebox[\eqe@fillwidth][l]{\fl@iSmash{% dps27
+ \ifx\gridIndent@dj\relax\else
+ \hglue\gridIndent@dj\relax\fi
+ \eqe@y\ifeqedb\rlap{\dbMrk{D}}\fi % dpsj9 \eqe@y (fudge)
+ \rlap{\ifeqedb\rlap{\dbMrk{B}}\fi
+ \ifwriteVertic@lFLines % dps16
+ \setlength{\@tempdima}{\eqe@fillwidth}%
+ \ifKV@eqefillLines@bgonly % dps11
+ \ifx\fillerBgIm@ge\@empty
+ \ifx\eqe@BGColor\@empty\else
+ \rlap{\textcolor{\eqe@BGColor}
+ {\rule{\eqe@fillwidth}{\eqe@HOfVruleFrstRow}}}\fi
+ \else
+ \rlap{\fillerBgIm@ge{\eqe@fillwidth}{\eqe@HOfVruleFrstRow}}\fi
+ \else
+ \dimen2=\wlVspace
+ \dimen0=0pt
+ \@whilenum\eqe@tempcnta<\count4\do{\rlap{\hglue\dimen0
+ \ifKV@eqefillLines@outlineonly %dps10
+ \ifnum\eqe@tempcnta=0 \else\let\gridVLineFill\vfill\fi\fi
+ \textcolor{\eq@WriteLineColor}{\eqe@setVRule % dps27
+ \ifeqedb\rlap{\advance\eqe@tempcnta by1\relax\scriptsize
+ \raisebox{1pt}{\kern1pt\the\eqe@tempcnta}}\fi}}%
+ \advance\dimen0by\dimen2
+ \advance\eqe@tempcnta by1
+ }% dps27
+ \fi % dps11
+ \advance\dimen2by\flfboxrule
+ \ifKV@eqefillLines@bgonly\else % dps11
+ \rlap{\hglue\@tempdima
+ \textcolor{\eq@WriteLineColor}{\eqe@setVRule
+ \ifeqedb\rlap{\thinspace\dbMrk{R}}\fi}}%
+ \ifKV@eqefillLines@outlineonly %dps10
+ \makebox[0pt][l]{\makebox[\eqe@fillwidth]{\eqWriteLine}}%dps10
+ \fi
+ \ifKV@eqefillLines@topline% dps7
+ \ifgridpgbrk\@tempdima\eqe@HOfVruleFrstRow\relax % dps21
+ \raise\@tempdima\hbox{\makebox[0pt][l]{%
+ \makebox[\eqe@fillwidth]{\eqWriteLine}}}%
+ \global\gridpgbrkfalse
+ \fi
+ \fi
+ \fi
+ \ifx\eqefillLines@outlineonlystar\@empty\else % dps26
+ \global\let\eqefillLines@outlineonlystar\@empty
+ \global\KV@eqefillLines@outlineonlyfalse
+ \fi
+ \ifx\eqefillLines@bgonlystar\@empty\else % dps26
+ \global\let\eqefillLines@bgonlystar\@empty
+ \global\KV@eqefillLines@bgonlyfalse
+ \fi
+ \fi % ifwriteVertic@lFLines
+ \eqe@insert@more@content
+ }% rlap
+ }% smash (fl@iSmash)
+}}}% makeboxes and \fl@oSmash
+ \endgroup
+}% \eqe@makeVgrid
+% \end{macrocode}
+% In preparation for the \opt{flextended} option, we define several commands and one environment
+% that emit a package warning if the \opt{flextended} option is not taken.
+% \begin{macrocode}
+\def\turnfl@nskeyMsg{\PackageWarning{eqexam}
+ {You must first take the flextended\MessageBreak
+ option for this command to have any\MessageBreak effect}}
+\def\turnflanskeyOn{\turnfl@nskeyMsg}
+\def\priorw@Msg{\PackageWarningNoLine{eqexam}
+ {The priorworkarea environment does nothing\MessageBreak
+ without the flextended option. All such content\MessageBreak in these
+ environments are absorbed}\global\let\priorw@Msg\@empty}
+\newenvironment{priorworkarea}{\priorw@Msg
+ \setbox\eqe@nskeyflsplit\vbox\bgroup}
+ {\egroup\setbox\eqe@nskeyflsplit\box\voidb@x}
+\let\turnflanskeyOff\turnflanskeyOn
+\newif\ifflfrstsplit \flfrstsplittrue
+\newif\ifeqe@flnosolns \eqe@flnosolnsfalse
+\def\turnflnosolnsOn{\eqe@flnosolnstrue\turnflanskeyOn}
+\def\turnflnosolnsOff{\eqe@flnosolnsfalse\turnflanskeyOn}
+%\let\turnflnosolnsOn\turnflanskeyOn
+%\let\turnflnosolnOff\turnflanskeyOn
+\newdimen\flfboxrule \flfboxrule=.4pt
+\def\tweakBreakPoint#1{\def\@rgi{#1}\ifx\@rgi\@empty
+ \gdef\twe@kBre@kPoint{0pt}\else
+ {\setlength{\@tempdima}{#1}%
+ \xdef\twe@kBre@kPoint{\the\@tempdima}}\fi}
+\def\twe@kBre@kPoint{0pt}
+% \end{macrocode}
+% When \opt{flextended} option is not loaded, we make a minimal definition
+% of \cs{eq@b@ddCodeSpecial}. This redefinition is needed when \texttt{bgonly}
+% is in effect.
+% \begin{macrocode}
+\def\eq@b@ddCodeSpecial#1{\if@eqlinedfiller
+ \ifKV@eqefillLines@bgonly\leavevmode
+ \vskip-\baselineskip\kern\lineskip\fi\fi#1}
+% \end{macrocode}
+% For debug, or whatever reason, \DescribeMacro\flSeparateCutNames
+% \cs{flSeparateCutNames} gives each flx cut file a distinct
+% name.
+% \begin{macrocode}
+\def\flSeparateCutNames{\def\fl@CutName{flx\fl@Cnt-\jobname.cut}}
+%</package>
+%<*flextended>
+% \end{macrocode}
+% \subsection{Utility commands used with the \texttt{flextended} option}
+% \begin{macrocode}
+\def\fls@vebaselinelineskip{% dps22
+ \xdef\flbaselineskip{\the\baselineskip}}
+\def\fl@Cnt{0}
+\def\fl@CutName{flx-\jobname.cut}
+\def\flwriteexsol@fter{% dpsj23
+ \ifx\exsolafter\@empty
+ \immediate\write\verbatim@out{\string\ignorespaces}% dpsj23
+ \else
+ \immediate\write\verbatim@out{\string\exsolafter
+ \string\space\string\ignorespaces}%
+ \fi
+}
+\def\fl@getcontent#1{\begingroup
+ {\count0=\fl@Cnt\relax
+ \advance\count0by1\relax
+ \xdef\fl@Cnt{\the\count0 }}%
+% \let\save@wlog\wlog\let\wlog\@gobble
+% \let\save@message\message\let\message\@gobble
+ \global\let\verbatim@out\CommentStream
+ \immediate\openout\verbatim@out=#1
+ \ifwithinparts
+ \ifx\istabularexer\eq@YES
+ \immediate\write\verbatim@out{\string\hfuzz\string\hsize}%
+ \immediate\write\verbatim@out{\string\minipage[t]{\string\hsize}}%
+ \ifanswerkey
+ \immediate\write\verbatim@out{\string\expandafter
+ \string\noindent\string\eqSolnExCmds}% dps23
+ \flwriteexsol@fter
+ \else
+ \immediate\write\verbatim@out{\string\expandafter
+ \string\noindent\string\priorWorkAreaCmds
+ \string\ignorespaces}% dps23
+ \fi
+ \else
+ \ifanswerkey\flwriteexsol@fter\fi
+ \fi
+ \else
+ \ifanswerkey\flwriteexsol@fter\fi
+ \fi
+ \verbatimwrite
+}
+\def\fl@vsplitandplace#1{%
+ \iffl@firstpass
+ \global\setbox\eqe@nskeyflsplit\color@vbox
+ \normalbaselines
+ \predisplaypenalty=-50
+ \postdisplaypenalty=-50
+ \setlength{\hsize}{\eqe@fillwidth}%
+ \expandafter\noindent % dpsj23
+ \ifanswerkey\expandafter\eqSolnExCmds\else
+ \expandafter\priorWorkAreaCmds\fi
+ \ignorespaces\input{#1}\fls@vebaselinelineskip
+ \color@endbox\global\fl@firstpassfalse\fi
+ \@tempdima\eqe@HOfVrule\relax
+% \end{macrocode}
+% I'm getting a black box when there is one line left on the second page
+% and there is less than one line of text. The following three lines attempt to get
+% that last line to appear when there is enough room for it.
+% \changes{v5.1c}{2018/01/31}{Added additional lines to get a better break point}
+% \begin{macrocode}
+ \advance\@tempdima\flfboxrule
+ \advance\@tempdima\lineskip
+ \ifflfrstsplit\else\advance\@tempdima\wlVspace\fi
+ \advance\@tempdima\maxdepth
+ \advance\@tempdima by\twe@kBre@kPoint\relax
+ \eq@tmplengthB\@tempdima % target height
+ \splittopskip\wlVspace
+ \splitmaxdepth\maxdepth
+ \advance\splitmaxdepth by\twe@kBre@kPoint\relax
+ \setbox\eq@pointbox=\copy\eqe@nskeyflsplit
+ \setbox\eqe@nskeyfltop=\vsplit\eq@pointbox to \@tempdima
+ \setbox\eqe@nskeyfltop=\vbox{\unvbox\eqe@nskeyfltop}%
+ \ifvoid\eq@pointbox\else
+ \setlength{\@tempdimb}
+ {\eq@tmplengthB-\dp\eqe@nskeyfltop}%
+ \ifdim\@tempdimb<0pt
+ \@tempdimb=-\@tempdimb
+ \ifdim\@tempdimb>\maxdepth
+ \advance\@tempdima-\flbaselineskip\relax
+ \else
+ \fi
+ \else
+ \setbox\eq@pointbox=\copy\eqe@nskeyflsplit
+ \advance\@tempdima by\flbaselineskip\relax
+ \setbox\eqe@nskeyfltop=\vsplit\eq@pointbox to \@tempdima
+ \setbox\eqe@nskeyfltop=\vtop{\unvbox\eqe@nskeyfltop}%
+ \setlength{\@tempdimb}{\eq@tmplengthB-\dp\eqe@nskeyfltop}%
+ \ifdim\@tempdimb<0pt % too much
+ \advance\@tempdima-\flbaselineskip\relax
+ \else
+ \fi
+ \fi
+ \fi
+ \splittopskip\wlVspace
+ \lineskip1pt
+ \setbox\eq@pointbox=\copy\eqe@nskeyflsplit
+ \global\setbox\eqe@nskeyfltop=\vsplit\eqe@nskeyflsplit to \@tempdima
+ \global\setbox\eqe@nskeyfltop\vtop{\unvbox\eqe@nskeyfltop\vskip0pt}%
+ \ifvoid\eqe@nskeyflsplit
+ \ifeqedb\llap{Bot}\fi
+ \ifeqedb\raise\eqe@HOfVrule\llap{Top}\fi
+ \ifeqedb\llap{V\qquad}\fi
+ \ifflfrstsplit\global\flfrstsplitfalse
+ \ifeqedb\llap{FP\hskip.5in}\fi
+ \rlap{\raisebox{\eqe@HOfVrule+\flfboxrule+\lineskip}
+ {\vtop{\vsize=\eqe@HOfVrule\relax
+ \unvbox\eqe@nskeyfltop\vfil}}}\else
+ \ifeqedb\llap{SP\hskip.5in}\fi
+ \rlap{\raisebox{\eqe@HOfVrule+\flfboxrule+\wlVspace+\lineskip}
+ {\vtop{\vsize=\eqe@HOfVrule\relax
+ \unvbox\eq@pointbox\vfil}}}%
+ \global\setbox\eqe@nskeyflsplit\box\voidb@x
+ \fi
+ \else
+ \ifeqedb\llap{Bot}\fi
+ \ifeqedb\raise\eqe@HOfVrule\llap{Top}\fi
+ \ifeqedb\llap{nV\qquad}\fi
+ \ifflfrstsplit\global\flfrstsplitfalse
+ \ifeqedb\llap{FP\hskip.5in}\fi
+ \rlap{\raisebox{\eqe@HOfVrule+\flfboxrule+\lineskip}
+ {\vtop{\vsize=\eqe@HOfVrule\relax
+ \unvbox\eqe@nskeyfltop\vfil}}}\else
+ \ifeqedb\llap{SP\hskip.5in}\fi
+ \rlap{\raisebox{\eqe@HOfVrule+\flfboxrule+\wlVspace+\lineskip}
+ {\vtop{\vsize=\eqe@HOfVrule\relax
+% \end{macrocode}
+% To have the filler lines/grid with prior and solution content to space
+% more than one page, we unbox \cs{eqe@anskeyfltop} but do not void it.
+% \begin{macrocode}
+ \unvbox\eqe@nskeyfltop\vfil}}}%
+% \unvbox\eq@pointbox\vfil}}}%
+% \global\setbox\eqe@nskeyflsplit\box\voidb@x
+ \fi
+ \fi
+ \setbox\eq@pointbox\box\voidb@x
+% \gdef\twe@kBre@kPoint{0pt}% dpsj21
}
% \end{macrocode}
-% \begin{macro}{\useFillerLines}
-% When used, the vertical space is written with lines (rules, dashes, dots).
-%\changes{v2.0e}{2011/03/07}
-%{%
-% Added the feature of filling the vertical space with ruled lines of
-% different types. This feature is available for paper options and for
-% \texttt{nosolutions} and \texttt{vspacewithsolution} options.
-%}
-% \begin{macrocode}
-\newcommand{\useFillerLines}{\let\vspaceFiller\vspaceFillerLines
- \fillTypeDefault\@eqlinedfillertrue}
-% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\useFillerDefault}
-% Resets the vertical space to the original white space.
-% \begin{macrocode}
-\newcommand{\useFillerDefault}{\let\vspaceFiller\vspaceFillerDefault
- \let\eqWriteLine\hfill\@eqlinedfillerfalse}
-% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\fillTypeHRule}
-% Writes the line as a solid line (\cs{hrulefill}).
-% \begin{macrocode}
-\newcommand{\fillTypeHRule}{\let\eqWriteLine\eqWriteLineFill}
-% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\fillTypeDots}
-% Writes the line as a dotted line (\cs{dotfill}).
-% \begin{macrocode}
-\newcommand{\fillTypeDots}{\let\eqWriteLine\eqWriteLineDots}
-% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\fillTypeDashLine}
-% Writes the line as a dotted line (\cs{eqdashrulefill}).
-% \begin{macrocode}
-\newcommand{\fillTypeDashLine}{\let\eqWriteLine\eqWriteLineDashFill}
-% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\fillTypeBlankLine}
-% Fills the line
-% \begin{macrocode}
-\newcommand{\fillTypeBlankLine}{\let\eqWriteLine\eqWriteLineBlankFill}
+%
+% \subsection{Filler lines with \texttt{answerkey} option}
+%
+% When using the \opt{flextended} option and the
+% \cs{turnflanskeyOn} command, we always use the grid filler type.
+% In the case of the basic filler types of line, dash, dots, and blank,
+% the code threads passes to \cs{makeVgrid}, but in the case of the
+% \opt{answerkey} option, \cs{makeVgrid} writes no vertical lines. Hopefully,
+% the spacing between the statement of the question and the solution are then
+% consistent.
+% \begin{macrocode}
+\let\turnfl@nskeyOnOff\relax
+% \end{macrocode}
+% The \DescribeMacro{\turnflanskeyOn}\cs{turnflanskeyOn} command turns \emph{on} the
+% feature of superimposing the solution over the filler lines. Does nothing unless
+% the \opt{answerkey} option is in force.
+% \begin{macrocode}
+\def\turnflnosolnsOn{\eqe@flnosolnstrue}
+\def\turnflnosolnsOff{\eqe@flnosolnsfalse}
+\def\turnflanskeyOn{%
+ \def\turnfl@nskeyOnOff{%
+ \ifanswerkey
+ \ifx\makeVgrid\relax % already in grid mode, do nothing
+ \ifwriteVertic@lFLines\KV@eqefillLines@toplinefalse\fi % dps16
+ \writeVertic@lFLinesfalse
+ \let\makeVgrid\eqe@makeVgrid % dpsj5
+ \fi % dps17
+ \let\eqe@insert@more@content\eqe@insertSolns % dpsj5
+ \eqe@flextendedtrue % dps16
+ \fillTypeGrid % dps16
+ \global\let\eq@insertverticalspace\eq@YES
+ \global\vspacewithsolnstrue
+ \fi
+ }%
+}
+% \end{macrocode}
+% The \DescribeMacro{\turnflanskeyOff}\cs{turnflanskeyOff} command turns \emph{off} the
+% feature of superimposing the solution over the filler lines. Does nothing unless
+% the \opt{answerkey} option is in force.
+% \begin{macrocode}
+\def\turnflanskeyOff{%
+ \def\turnfl@nskeyOnOff{%
+ \ifanswerkey
+ \writeVertic@lFLinestrue
+ \eqe@flextendedfalse
+ \let\eq@insertverticalspace\eq@NO
+ \@eqlinedfillerfalse
+ \global\let\eqe@insert@more@content\relax
+ \global\let\eq@insertverticalspace\eq@YES
+ \ifvspacewithsolns\else
+ \global\vspacewithsolnsfalse\fi
+ \global\displayworkareafalse
+ \fi
+ }%
+}
+\turnflanskeyOff
+% \end{macrocode}
+% \begin{macrocode}
+\let\p@ssToSolns\relax % dps30
+\def\eqe@insertSolns{\clubpenalty=50
+ \widowpenalty=50 \vbadness=10000
+ \fl@vsplitandplace{s\fl@CutName}}
+\def\eq@b@ddCodeSpecial#1{\global\gridpgbrkfalse % dpsj15
+ \global\let\eq@e@ddCodeSpecial\relax
+ \gdef\eqe@flnexti{#1}% dpsj5
+ \if@eqlinedfiller
+ \ifKV@eqefillLines@bgonly\leavevmode
+ \vskip-\baselineskip\kern\lineskip\fi % dpsj11
+ \ifKV@eqefillLines@outlineonly\leavevmode
+ \vskip-\baselineskip\kern\lineskip\fi
+ \ifanswerkey %\turnfl@nskeyOnOff % dps16
+ \ifeqe@flextended
+ \ifcont@nnot
+ \ifx\makeVgrid\relax
+ \gdef\p@ssToFLs{\turnfl@nskeyOnOff
+ \let\eqe@insert@more@content\eqe@insertSolns
+ \writeVertic@lFLinesfalse
+ \KV@eqefillLines@toplinefalse
+ \let\makeVgrid\eqe@makeVgrid
+ }%
+ \else
+ \gdef\p@ssToFLs{\turnfl@nskeyOnOff
+ \let\eqe@insert@more@content\eqe@insertSolns
+ \writeVertic@lFLinestrue}%
+ \fi
+ \gdef\eqe@flnexti{\turnfl@nskeyOnOff
+ \global\fl@firstpasstrue % dpsj5
+ \p@ssToSolns
+ \global\gridpgbrkfalse
+ \eqe@setStartSolns
+% \end{macrocode}
+% We are with a good two deep, but we need to pass \cs{vspacewithkeyOff},
+% so we save its current state and declare a global call to
+% \cs{vspacewithkeyOff}. The state is restored by \cs{eq@e@ddCodeSpecial}.
+% \begin{macrocode}
+ \xdef\kdvsp@SAVE{\ifkeepdeclaredvspacing
+ true\else false\fi}%
+ \gdef\kdvsp@Restore{\@nameuse
+ {keepdeclaredvspacing\kdvsp@SAVE}%
+ \gdef\twe@kBre@kPoint{0pt}\global
+ \let\kdvsp@Restore\relax}% dpsj21
+ \expandafter\global\vspacewithkeyOff
+ \vbadness=10000
+ \fl@getcontent{s\fl@CutName}}%
+ \gdef\eq@e@ddCodeSpecial{\endverbatimwrite\endgroup
+% \kdvsp@Restore % dpsj20
+ \ifwithinparts\ifx\istabularexer\eq@YES
+ \immediate\write\verbatim@out{\string\endminipage}\fi\fi
+ \immediate\closeout\verbatim@out
+ \global\let\eq@e@ddCodeSpecial\relax
+ }%
+ \else
+ \PackageWarningNoLine{eqexam}{For solutions to appear
+ using filler lines\MessageBreak
+ (with flextexded and answerkey options),\MessageBreak
+ you must first expand \string\turnContAnnotOn\MessageBreak
+ prior to line \the\inputlineno.\MessageBreak
+ Switching to \string\useFillerDefault}%
+ \useFillerDefault
+ \let\eq@insertverticalspace\eq@NO
+ \fi
+ \fi
+ \fi
+ \fi
+ \eqe@flnexti
+}% dpsj4
+% \end{macrocode}
+% \begin{macrocode}
+% \end{macrocode}
+% \subsection{Filler lines with \texttt{nosolutions} option}
+% Just as we can supply filler lines for the \texttt{answerkey} option, we can do the
+% same for the \texttt{nosolutions} option and superimpose content on the filler lines.
+% \changes{v5.0g}{2017/12/05}{Added filler lines with \string\texttt{nosolutions} option}
+% \begin{environment}{priorworkarea}
+% \changes{v5.0g}{2017/12/05}{Added the \string\texttt{priorworkarea} environment}
+% Place the \env{priorworkarea} environment \emph{prior to} the solution environment. It has not
+% arguments, but gets dimensions from the \env{solution} environment that follows.
+% \begin{macrocode}
+\def\eqe@priorw@content{%
+ \clubpenalty=50 % dps15
+ \widowpenalty=50
+ \vbadness=10000
+ \fl@vsplitandplace{p\fl@CutName}%
+}%
+\renewenvironment{priorworkarea}{\par
+ \ifx\solutionparshape\@empty\else % dps28
+ \pushEnvir
+ \everypar{}\if@eqalignfilllinestoleft\else
+ \parshape=1 \leadinIndent \linewidth\fi
+ \popEnvir
+ \fi
+ \global\let\p@ssToFLs\relax
+ \global\let\p@ssToSolns\relax
+ \vspacewithkeyOff
+ \ifeq@nosolutions\else\sloppy\fi
+ \def\eqe@flnexti{\eqSavedComment}%
+ \ifeqe@flnosolns\ifdisplayworkarea
+ \def\eqe@flnexti{\fl@getcontent{p\fl@CutName}}\fi\fi % dpsj21
+ \gdef\eqe@flnextii{\eqSavedEndCommet}%
+ \ifeqe@flnosolns\ifdisplayworkarea
+ \gdef\eqe@flnextii{\endverbatimwrite\endgroup
+ \ifwithinparts\ifx\istabularexer\eq@YES
+ \immediate\write\verbatim@out{\string\endminipage}\fi\fi
+ \immediate\closeout\verbatim@out}\fi\fi
+ \eqe@flnexti
+}{%
+ \eqe@flnextii
+ \ifcont@nnot
+ \ifeqe@flnosolns
+ \ifdisplayworkarea
+ \ifx\eq@insertverticalspace\eqe@YES
+ \ifx\makeVgrid\relax
+ \gdef\p@ssToFLs{%
+ \let\eqe@insert@more@content\eqe@priorw@content
+ \writeVertic@lFLinesfalse
+ \KV@eqefillLines@toplinefalse
+ \let\makeVgrid\eqe@makeVgrid}%
+ \else
+ \gdef\p@ssToFLs{%
+ \let\eqe@insert@more@content\eqe@priorw@content
+ \writeVertic@lFLinestrue}%
+ \fi
+ \gdef\kdvsp@Restore{\gdef\twe@kBre@kPoint{0pt}\global
+ \let\kdvsp@Restore\relax}% dpsj21
+ \fi
+ \fi
+ \else
+ \global\setbox\eqe@nskeyflsplit\box\voidb@x
+ \global\setbox\eqe@nskeyfltop\box\voidb@x
+ \fi
+ \else
+ \PackageWarningNoLine{eqexam}{For priorworkarea to appear
+ using filler lines\MessageBreak
+ (with flextexded and nosolutions options),\MessageBreak
+ you must first expand \string\turnContAnnotOn\MessageBreak
+ prior to line \the\inputlineno.\MessageBreak
+ Switching to \string\useFillerDefault}%
+ \gdef\p@ssToSolns{\useFillerDefault}%
+ \fi
+}
% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\fillTypeDefault}
-% Resets fill type back to the default, \cs{hrulefill}.
+% \end{environment}
% \begin{macrocode}
-\newcommand{\fillTypeDefault}{\let\eqWriteLine\eqWriteLineFill}
+% end of segment
+%</flextended>
+%<*package>
% \end{macrocode}
-% \end{macro}
% Set the \textsf{eqexam} page style, if not otherwise indicated.
% \begin{macrocode}
\ifeqfortextbook\else
@@ -6346,7 +7647,7 @@
% \begin{macrocode}
\renewcommand{\setSolnMargins}[1]{%
\ifdim\solnGutter=0pt \setlength\eqemargin{#1}\else
- \setlength\eqemargin{\solnGutter}\fi}
+ \setlength\eqemargin{\solnGutter}\fi\ignorespaces}
%\newcommand{\defaultSolnIndent}{\gdef\solnGutter{0pt}}
\newcommand{\defaultSolnIndent}{\global\solnGutter=0pt}
\defaultSolnIndent
@@ -6428,9 +7729,9 @@
% \begin{macrocode}
\def\prior@parts@hook{%
\ifisleadin\else
- \writeToSolnFile{^^J\protect\bpartsmrk}\fi}%
+ \writeT@SolnFile{^^J\protect\bpartsmrk}\fi}%
\def\post@parts@hook{%
- \writeToSolnFile{\protect\epartsmrk^^J}}%
+ \writeT@SolnFile{\protect\epartsmrk^^J}}%
\def\bpartsmrk{\global\firstitemtrue\begin{eqepartsquestions}}%
\def\epartsmrk{\end{eqepartsquestions}\global\firstitemfalse}%
% \end{macrocode}
@@ -7144,6 +8445,7 @@
% \end{environment}
% \end{macro}
% \begin{macrocode}
+% End of textbook segment
%</textbook>
%<*package>
% \end{macrocode}
@@ -7169,17 +8471,17 @@
\eqequeslistparindent{0pt}
\renewenvironment{eqequestions}{%
\begin{list}{}{%
- \ifwithsoldoc\let\solnItemMngt\eqeSolnItemMngt\fi
+ \ifwithinsoldoc\let\solnItemMngt\eqeSolnItemMngt\fi
\setlength{\labelwidth}{\eqemargin}%
\setlength{\parsep}{\eqeques@parsep}%
\setlength{\itemsep}{\eqeques@itemsep}
\setlength{\topsep}{\eqeques@topsep}%
\setlength{\itemindent}{0pt}%
- \setlength{\listparindent}{\eqeques@listparindent}%dps%
- \ifwithsoldoc\settowidth{\labelsep}{\eqe@hspannerSoln}\else
+ \setlength{\listparindent}{\eqeques@listparindent}%
+ \ifwithinsoldoc\settowidth{\labelsep}{\eqe@hspannerSoln}\else
\settowidth{\labelsep}{\eqe@hspannerPrb}\fi
\setlength{\leftmargin}{\labelwidth}%
- }\ifwithsoldoc\global\firstitemtrue\fi\item\relax}{\end{list}}
+ }\ifwithinsoldoc\global\firstitemtrue\fi\item\relax}{\end{list}}
% \end{macrocode}
% \begin{environment}{eqepartsquestions}
% This environment is used in the SOL file with problems with parts to hang indent
@@ -7219,14 +8521,14 @@
\let\fillInFormatDefault\@empty
\def\exerSolnsHeadnToc{}
\renewcommand{\exerSolnInput}{%
- \let\webnewpage\relax
+ \global\let\webnewpage\relax
\ifsolutionsonly\else\immediate\closeout\ex@solns\fi
\ifeq@nosolutions\else\newpage % 2012-03-14
\iftherearesolutions\eq@solutionshook\eqsolutionshook
\ifsolutionsonly\else\newpage\eq@solutionshook
\eqsolutionshook\fi
\ifx\webnewpage\relax
- \def\webnewpage{\let\webnewpage\newpage}%
+ \gdef\webnewpage{\global\let\webnewpage\newpage}%
\fi
\priorexsectitle\exerSolnsHeadnToc\priorexslinput
\InputIfFileExists{\jobname.sol}{}{\PackageWarning{exerquiz}
@@ -7247,7 +8549,7 @@
% but it not working yet.
% \begin{macrocode}
\newif\iffrstProbNumShown\frstProbNumShownfalse
-\def\tb@insertDecPoint{\ifwithsoldoc\eqedecPointSoln\else
+\def\tb@insertDecPoint{\ifwithinsoldoc\eqedecPointSoln\else
\eqe@decPointMrg\fi}
\newcommand{\eqedsplyOnlyFrst}[2]{\def\thisPart{#2}%
\ifx\thisPart\firstPartLtr\global\frstProbNumShowntrue
@@ -7331,7 +8633,7 @@
%\end{verbatim}
% \begin{macrocode}
\newcommand{\wrtChapSolnHead}[1]{%
- \writeToSolnFile{%
+ \writeT@SolnFile{%
\protect\preChapSolnHead
\protect\chapHeadSolnFmt{\protect\ftbFmtChapter{\thechapter}#1}%
\protect\postChapSolnHead
@@ -7568,6 +8870,7 @@
% \end{macrocode}
% \end{macro}
% \begin{macrocode}
+% End of textbook segment
%</textbook>
%<*ftbsty>
% \end{macrocode}
@@ -7602,6 +8905,7 @@
% when compiling). I've also defined a special option \texttt{nocustomdesign} which
% cancels out the \texttt{usecustomdesign} option.
% \begin{macrocode}
+% End of ftbsty segment
%</ftbsty>
%<*package>
% \end{macrocode}
@@ -7708,6 +9012,18 @@
are tiny, scriptsize, footnotesize, small, normalsize,
large, Large, LARGE, huge and Huge. Try again}}
\def\eq@eqFillin@boxsize{\text{\normalsize\strut}}
+% \end{macrocode}
+% \changes{v5.1g}{2018/02/14}{Added \string\texttt{fontsize} and \string\texttt{fboxsep} keys}
+% \begin{macrocode}
+\define@key{eqFillin}{fboxsep}[3pt]{\def\eq@fillin@fboxsep{#1}}
+\def\eq@fillin@fboxsep{3pt}
+\define@choicekey+{eqFillin}{fontsize}{tiny,scriptsize,footnotesize,%
+ small,normalsize,large,Large,LARGE,huge,Huge}[normalsize]{%
+ \def\eq@eqFillin@fontsize{\csname#1\endcsname}%
+}{\PackageWarning{eqexam}{Bad choice for boxsize, permissible values
+ are tiny, scriptsize, footnotesize, small, normalsize,
+ large, Large, LARGE, huge and Huge. Try again}}
+\def\eq@eqFillin@fontsize{\ifmmode\else\normalsize\fi}
\define@key{eqFillin}{color}[\eq@fillinColor]{\edef\eq@fillin@color{#1}}
% \end{macrocode}
% \changes{v3.0x}{2012/04/03}{Added \cs{eqe@align@hfill} to \texttt{align} property.
@@ -7877,8 +9193,49 @@
\def\eqe@setfillinDefaults{#1}\fi}
\let\eqe@setfillinDefaults\@empty
% \end{macrocode}
-% \begin{macrocode}
-\renewcommand{\fillin}[3][]{\begingroup%
+% The \DescribeMacro\fillineol\cs{fillineol} command is used to extend the \cs{fillin} box or line
+% to the end of the line.
+%\begin{flushleft}\ttfamily
+%\quad\string\fillineol*\darg{\ameta{phrase}}[\ameta{opts}]\darg{\ameta{ans}}
+% \end{flushleft}
+% Normally, \cs{fillineol} is placed at the beginning of a line. The command measures the length
+% of \texttt{\darg{\ameta{phrase}}}, subtracts this from \cs{linewidth} and uses this value
+% as the width of the underlying \cs{fillin}. When the star-form is used, the \textsf{collectbox} package
+% is required; in the star-form, \ameta{phrase} can contain verbatim text.
+% \changes{v5.1h}{2018/02/18}{Added \string\cs{mtoeol}}
+% \changes{v5.1i}{2018/02/19}{Changed name to \string\cs{fillineol} and changed order of arguments}
+% \begin{macrocode}
+\AtBeginDocument{\@ifpackageloaded{collectbox}
+ {\let\eqe@cb\eqe@YES}{\let\eqe@cb\eqe@NO}}
+\def\fillineolTooLongMsg{\PackageWarning{eqexam}{%
+ The 'phrase' you are measuring is longer than\MessageBreak
+ \string\linewidth. Changing length to 0pt in hopes you\MessageBreak
+ can fix things}}
+\def\fillineolNoCBMsg{\PackageWarning{eqexam}{%
+ For the \string\fillineol*\space form, the
+ collectbox package\MessageBreak
+ is required, but not loaded at this time.\MessageBreak
+ Switching to \string\fillineol\space in hopes you
+ load collectbox\MessageBreak
+ next time or you remove the star-option if not\MessageBreak
+ really needed}}
+\newcommand\fillineol{\@ifstar{\ifx\eqe@cb\eqe@YES
+ \let\eqe@next\cbfillineol\else
+ \def\eqe@next{\fillineolNoCBMsg\fillineol@i}\fi
+ \eqe@next}{\fillineol@i}}
+\newcommand{\fillineol@i}[1]{\bgroup\setbox\z@\hbox{#1}\fillineol@ii}
+\newcommand\fillineol@ii[2][]{\setlength\eqetmplengthb{\linewidth-\wd\z@}%
+ \ifdim\eqetmplengthb<0pt\eqetmplengthb0pt\fillineolTooLongMsg\fi
+ \unhbox\z@\fillin[#1]{\eqetmplengthb}{#2}\egroup}
+\newcommand\cbfillineol{\bgroup\collectboxto{\@tempboxa}
+ {\setlength{\eqetmplengthb}{\linewidth-\wd\@tempboxa}%
+ \ifdim\eqetmplengthb<0pt\eqetmplengthb0pt\fillineolTooLongMsg\fi
+ \unhbox\@tempboxa\cbfillineol@i}}
+\newcommand\cbfillineol@i[2][]{\fillin[#1]{\eqetmplengthb}{#2}\egroup}
+% \end{macrocode}
+% We finally begin the \DescribeMacro\fillin\cs{fillin} command.
+% \begin{macrocode}
+\renewcommand{\fillin}[3][]{\begingroup
% \end{macrocode}
% \cs{ifsp@expand} is defined in \textsf{spdef} package. This is a version
% if \cs{ifsp} that expands correctly in an \cs{edef}.
@@ -7897,6 +9254,7 @@
\fi
\protected@edef\eq@temp@exp{\noexpand\setkeys{eqFillin}{#1}}%
\eq@temp@exp
+ \fboxsep\eq@fillin@fboxsep\relax
% \end{macrocode}
% If boxed, we turn underlining off
% \begin{macrocode}
@@ -7909,8 +9267,10 @@
\ifKV@eqFillin@autolift\def\eq@fillin@lift{-2sp}\fi
% \end{macrocode}
% Get the second parameter.
+% \changes{v5.1h}{2018/02/18}{Added test, 0pt same as empty width}
% \begin{macrocode}
- \edef\eqe@argii{#2}%
+ \edef\eqe@argii{#2}\ifx\eqe@argii\@empty\else
+ \ifdim\eqe@argii=0pt\let\eqe@argii\@empty\fi\fi
% \end{macrocode}
% We reset \cs{fboxrule} and \cs{fboxsep} as needed.
% \begin{macrocode}
@@ -7988,8 +9348,9 @@
% If no \texttt{parbox} option and if the second argument is empty,
% we set width based on the natural width of \texttt{\#3}
% \begin{macrocode}
- \settowidth{\eqetmplengthb}{\@eqmath{\eq@fillin@format
- \ifKV@eqFillin@boxed\eq@fillintext\fi\eqe@argiii}}%
+ \settowidth{\eqetmplengthb}{\@eqmath{\eq@eqFillin@fontsize
+ \eq@fillin@format\ifKV@eqFillin@boxed\eq@fillintext\fi
+ \eqe@argiii}}%
\ifKV@eqFillin@boxed
\setlength{\eqetmplengthb}{%
\eqetmplengthb+2\fboxsep+2\fboxrule}%
@@ -8077,7 +9438,7 @@
\setbox\z@\hbox{\@eqmath{\eq@fillin@boxcmd{%
% \eq@fillin@format\ensuremath{\eq@fillin@boxcmd{%
\eq@eqFillin@boxsize
- \@fillinFmt{%
+ \@fillinFmt{\eq@eqFillin@fontsize % dpsf0214
\ifKV@eqFillin@boxed
\edef\eqe@bw{\eqe@fbox@corr{\eqe@bw}}%
\fi
@@ -8102,7 +9463,7 @@
% The content is not to be boxed.
% \begin{macrocode}
\ifmmode\let\@eqmath\ensuremath\else\let\@eqmath\relax\fi
- \setbox\z@\hbox{%
+ \setbox\z@\hbox{\eq@eqFillin@fontsize % dpsf0214
% \end{macrocode}
% A value of \texttt{-1sp} signals that \texttt{lift} has not been specified,
% nor has \texttt{autofill} been specified. So we use the usual code for underlining.
@@ -8144,10 +9505,13 @@
\ifKV@eqFillin@boxed
% \mbox{\eq@fillin@format\ensuremath{\boxed{%
% \eq@fillin@format\ensuremath{\eq@fillin@boxcmd{%
- \setbox\z@\hbox{\@eqmath{\eq@fillin@format
+ \setbox\z@\hbox{\eq@eqFillin@fontsize % dpsf0214
+ \@eqmath{\eq@fillin@format
\eq@fillin@boxcmd{\eq@eqFillin@boxsize\ifeq@nosolutions
- \rlap{\@eqmath{\eq@fillintext}}\fi
- \ifvspacewithsolns\rlap{\@eqmath{\eq@fillintext}}\fi
+ \rlap{\@eqmath{\eq@eqFillin@fontsize % dpsf0214
+ \eq@fillintext}}\fi
+ \ifvspacewithsolns % dpsf0214 \eq@eqFillin@fontsize
+ \rlap{\@eqmath{\eq@eqFillin@fontsize\eq@fillintext}}\fi
\@fillinFmt{%
% \end{macrocode}
% We do a similar thing if proofing is not active (\texttt{nosolutions} is taken).
@@ -8168,7 +9532,7 @@
% \end{macrocode}
% This is the case where the field is \emph{not} boxed.
% \begin{macrocode}
- \setbox\z@\hbox{%
+ \setbox\z@\hbox{\eq@eqFillin@fontsize % dpsf0214
\ifdim\eq@fillin@lift=-1sp\relax
\@fillinFmt{\makebox[\eqe@bw]{%
% \phantom{\@eqmath{\eqe@argiii}}
@@ -8235,7 +9599,11 @@
\fi
\fi
}%
- \fi\endgroup\space\ignorespaces}
+% \end{macrocode}
+% \changes{v5.1d}{2018/02/02}{removed \string\cs{space}\string\cs{ignorespaces} from \string\cs{fillin}}
+% Removed |\space\ignorespaces|
+% \begin{macrocode}
+ \fi\endgroup}
% \end{macrocode}
% \end{macro}
% \begin{macro}{\TF}
@@ -8256,3 +9624,65 @@
%</package>
% \end{macrocode}
\endinput
+
+
+
+\renewenvironment{solnexer@woparts}[1][]{\gdef\sameVspace{#1}%
+ \def\eqe@next{\expandafter\solutionFLSAVE\expandafter[#1]}%
+ \global\gridpgbrkfalse
+ \if@eqlinedfiller
+ \ifKV@eqefillLines@bgonly\leavevmode\fi
+ \ifanswerkey\turnfl@nskeyOnOff % dps16
+ \ifeqe@flextended
+ \def\eqe@next{\vspacewithkeyOff
+ \vbadness=10000
+% \end{macrocode}
+% When conditions are right (\opt{answerkey} is in force and \cs{ifeqe@flextended} is true),
+% we take the contents of the \env{solution} environment and place it in the
+% box \cs{eqe@anskeyflsplit}.
+% \begin{macrocode}
+ \fl@getcontent
+ \ifx\exsolafter\@empty\else
+ \noindent\exsolafter\space\ignorespaces\fi
+ }%
+ \fi
+ \fi
+ \fi
+ \eqe@next
+}{%
+ \let\eqe@next\endsolutionFLSAVE
+ \if@eqlinedfiller
+ \ifanswerkey
+ \ifeqe@flextended
+ \ifcont@nnot
+ \def\eqe@next{\fls@vebaselinelineskip % dps22
+ \egroup % end of \setbox\eqe@nskeyflsplit
+ \let\exsolafter\@empty
+ \def\solnsafterSkipAmt{-\baselineskip}%
+ \expandafter\solutionFLSAVE
+ \expandafter[\sameVspace]\endsolutionFLSAVE
+ }%
+ \else
+ \PackageWarning{eqexam}{For solutions to appear,
+ you must first\MessageBreak
+ expand \string\turnContAnnotOn}%
+ \fi
+ \fi
+ \fi
+ \fi
+ \eqe@next
+}
+
+ \ifcont@nnot
+ \def\eqe@next{\fls@vebaselinelineskip % dps22
+ \egroup % end of \setbox\eqe@nskeyflsplit
+ \let\exsolafter\@empty
+ \def\solnsafterSkipAmt{-\baselineskip}%
+ \expandafter\solutionFLSAVE
+ \expandafter[\sameVspace]\endsolutionFLSAVE
+ }%
+ \else
+ \PackageWarning{eqexam}{For solutions to appear,
+ you must first\MessageBreak
+ expand \string\turnContAnnotOn}%
+ \fi
diff --git a/texmf-dist/source/latex/eqexam/eqexam.ins b/texmf-dist/source/latex/eqexam/eqexam.ins
index 531d24ca..a5fd9e53 100644
--- a/texmf-dist/source/latex/eqexam/eqexam.ins
+++ b/texmf-dist/source/latex/eqexam/eqexam.ins
@@ -3,7 +3,7 @@
%% driver files from the doc files in this package when run through
%% LaTeX or TeX.
%%
-%% Copyright 1999-2006 D. P. Story
+%% Copyright 2005--2018 D. P. Story
%%
%% This file is part of the `AcroTeX eDucation Bundle'.
%% -------------------------------------------
@@ -17,7 +17,7 @@
%%
%% --------------- start of docstrip commands ------------------
%%
-\def\filedate{2001/01/22}
+\def\filedate{2018/02/19}
\def\batchfile{eqexam.ins}
\input docstrip
@@ -48,6 +48,7 @@
\file{eqalone.def}{\from{eqexam.dtx}{copyright,standalone}}
\file{eqtextb.def}{\from{eqexam.dtx}{copyright,textbook}}
\file{fortextbook.sty}{\from{eqexam.dtx}{copyright,ftbsty}}
+ \file{flextended.def}{\from{eqexam.dtx}{copyright,flextended}}
\file{eqexam.drv}{\from{eqexam.dtx}{copyright,driver}}
}
\Msg{***************************************************************}
diff --git a/texmf-dist/tex/latex/eqexam/aebrandom.def b/texmf-dist/tex/latex/eqexam/aebrandom.def
index 6a39db37..a8b8adae 100644
--- a/texmf-dist/tex/latex/eqexam/aebrandom.def
+++ b/texmf-dist/tex/latex/eqexam/aebrandom.def
@@ -8,7 +8,7 @@
%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Exerquiz.sty package, %%
-%% Copyright (C) 1999-2017 D. P. Story %%
+%% Copyright (C) 1999-2018 D. P. Story %%
%% dpstory@uakron.edu %%
%% %%
%% This program can redistributed and/or modified under %%
@@ -18,7 +18,7 @@
%% License, or (at your option) any later version. %%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\ProvidesFile{aebrandom.def}
- [2017/03/16 v7.8g %
+ [2018/12/13 v8.2.8 %
Exerquiz support for randomization (dps)]
\@ifundefined{nextrandom}{\input{random.tex}}{}
\def\nextrandom{\begingroup
@@ -42,6 +42,7 @@
\ifnum\randomi<\z@ \global\advance\randomi 2147483647\relax\fi
\endgroup
}
+\def\writeSeedToSolnFile{\writeT@ExSolns{\string\randomi=\the\randomi}}
\def\@ansChoices[#1]%
{%
\global\let\@tempholdSaveAns\@empty % 5/24
diff --git a/texmf-dist/tex/latex/eqexam/eqalone.def b/texmf-dist/tex/latex/eqexam/eqalone.def
index f9e68f24..de2a0a65 100644
--- a/texmf-dist/tex/latex/eqexam/eqalone.def
+++ b/texmf-dist/tex/latex/eqexam/eqalone.def
@@ -1,44 +1,43 @@
-%%
-%% This is file `eqalone.def',
-%% generated with the docstrip utility.
-%%
-%% The original source files were:
-%%
-%% eqexam.dtx (with options: `copyright,standalone')
-%%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% eqexam.sty package, %%
-%% Copyright (C) 2005--2017 D. P. Story %%
-%% dpstory@uakron.edu %%
-%% %%
-%% This program can redistributed and/or modified under %%
-%% the terms of the LaTeX Project Public License 1.2 %%
-%% Distributed from CTAN archives in directory %%
-%% macros/latex/base/lppl.txt; either version 1 of the %%
-%% License, or (at your option) any later version. %%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\ProvidesFile{eqalone.def}
- [2012/25/01 v3.0t Minimal code used by eqexam (dps)]
-\@ifundefined{eq@tmpbox}{\newsavebox{\eq@tmpbox}}{}% defined in eforms
-\@ifundefined{eq@tmpdima}{\newdimen\eq@tmpdima}{} % defined in eforms
-\def\RadioFieldSize{11bp}
-\newdimen\eqcenterWidget
-\def\centerWidget
-#1{%
- \eqcenterWidget=#1
- \eqcenterWidget=.5\eqcenterWidget
- \advance\eqcenterWidget by-4bp
-}
-\providecommand\previewColor{black}
-\def\eqe@BboxRect#1#2{\hbox{\color{\previewColor}\vbox{\hrule width #1
- \hbox to#1{\vrule height#2\hfill\vrule height#2}\vfill\hrule}}}
-\def\useRectForMC{\let\Bbox\eqe@BboxRect}
-\def\selectedMC{\useRectForMC}
-\def\Rect#1{\textcolor{\@linkcolor}{#1}}
-\def\eqe@striphbox\mbox#1{#1}
-\newcommand{\ReturnTo}[2]{\eq@fititin{\eqe@striphbox#2}}
-\newcommand{\proofingsymbol}[1]{%
- \def\@proofingsymbol{\textcolor{\@proofingsymbolColor}{#1}}}
-\endinput
-%%
-%% End of file `eqalone.def'.
+%%
+%% This is file `eqalone.def',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% eqexam.dtx (with options: `copyright,standalone')
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% eqexam.sty package, %%
+%% Copyright (C) 2005--2018 D. P. Story %%
+%% dpstory@uakron.edu %%
+%% %%
+%% This program can redistributed and/or modified under %%
+%% the terms of the LaTeX Project Public License %%
+%% Distributed from CTAN archives in directory %%
+%% macros/latex/base/lppl.txt; either version 1.2 of %%
+%% the License, or (at your option) any later version. %%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\ProvidesFile{eqalone.def}
+ [2012/25/01 v3.0t Minimal code used by eqexam (dps)]
+\@ifundefined{eq@tmpbox}{\newsavebox{\eq@tmpbox}}{}% defined in eforms
+\@ifundefined{eq@tmpdima}{\newdimen\eq@tmpdima}{} % defined in eforms
+\def\RadioFieldSize{11bp}
+\newdimen\eqcenterWidget
+\def\centerWidget
+#1{%
+ \eqcenterWidget=#1
+ \eqcenterWidget=.5\eqcenterWidget
+ \advance\eqcenterWidget by-4bp
+}
+\def\eqe@BboxRect#1#2{\hbox{\ckbox@Color\vbox{\hrule width #1
+ \hbox to#1{\vrule height#2\hfill\vrule height#2}\vfill\hrule}}}
+\def\useRectForMC{\let\Bbox\eqe@BboxRect}
+\def\selectedMC{\useRectForMC}
+\def\Rect#1{\textcolor{\@linkcolor}{#1}}
+\def\eqe@striphbox\mbox#1{#1}
+\newcommand{\ReturnTo}[2]{\eq@fititin{\eqe@striphbox#2}}
+\newcommand{\proofingsymbol}[1]{%
+ \def\@proofingsymbol{\textcolor{\@proofingsymbolColor}{#1}}}
+\endinput
+%%
+%% End of file `eqalone.def'.
diff --git a/texmf-dist/tex/latex/eqexam/eqexam.def b/texmf-dist/tex/latex/eqexam/eqexam.def
index 9142ea35..af1947a4 100644
--- a/texmf-dist/tex/latex/eqexam/eqexam.def
+++ b/texmf-dist/tex/latex/eqexam/eqexam.def
@@ -7,30 +7,38 @@
%% exerquiz.dtx (with options: `eqexam')
%%
\ProvidesFile{eqexam.def}
- [2017/03/16 v7.8g %
+ [2018/12/13 v8.2.8 %
Exerquiz support file for eqexam (dps)]
\let\eq@YES=y \let\eq@NO=n
\let\eq@One=1 \let\eq@Zero=0
\def\eq@r{r}\let\eq@f=f \let\eq@l=l
\newif\ifeq@noforms \eq@noformsfalse
-\newif\ifeq@noquizsolutions \eq@noquizsolutionsfalse % dps new
+\newif\ifeq@noquizsolutions \eq@noquizsolutionsfalse
\newif\ifnocorrections \nocorrectionsfalse
+\@ifundefined{ifeqe@flextended}{\newif\ifeqe@flextended
+ \eqe@flextendedfalse}{}
+\@ifundefined{ifcont@nnot}{\newif\ifcont@nnot \cont@nnotfalse}{}
+\@ifundefined{if@eqalignfilllinestoleft}
+ {\newif\if@eqalignfilllinestoleft\@eqalignfilllinestoleftfalse}{}
\newif\ifkeepdeclaredvspacing \keepdeclaredvspacingfalse
\newif\ifeq@nolink \eq@nolinkfalse
\def\eq@ckglobalhide{\ifeq@globalshowsolutions\eq@hidesolutionfalse\fi}
\def\hidesymbol{h}\def\Hidesymbol{H}
\newif\iftherearesolutions \therearesolutionsfalse
\newif\ifIsRespBox \global\IsRespBoxfalse
-\def\SolutionsAfter{\eq@solutionsaftertrue\eq@nolinktrue}
+\def\SolutionsAfter{\solutionsAtEndfalse\eq@solutionsaftertrue
+ \displayworkareafalse\eq@proofingfalse\eq@nolinktrue}
\newif\ifcqSA\cqSAfalse
-\def\SolutionsAtEnd{\eq@solutionsafterfalse\eq@nolinkfalse}
+\def\SolutionsAtEnd{\solutionsAtEndtrue\vspacewithsolnstrue
+ \eq@solutionsafterfalse\eq@nolinkfalse
+ \displayworkareafalse\ifvspacewithsolns\eq@nosolutionsfalse\else
+ \eq@nosolutionstrue\fi\eq@proofingfalse\answerkeyfalse}
\def\NoSpaceToWork{\let\eq@insertverticalspace\eq@NO}
\def\SpaceToWork{\let\eq@insertverticalspace\eq@YES}
\SpaceToWork
\long\def\ifNoSolutions#1#2{%
\ifeq@nosolutions\expandafter#1\else
- \expandafter#2\fi
-}
+ \expandafter#2\fi}
\newif\ifeq@randomizeChoices \eq@randomizeChoicesfalse
\newif\ifeq@randomizeallChoices \eq@randomizeallChoicesfalse
\def\turnOnRandomize{\eq@randomizeallChoicestrue}
@@ -44,37 +52,46 @@
\def\exSolafterDefault{#1}\resetSolnAfterToDefault}
\exsolafterDefault{\textit{Solution}:}
\newcommand{\renameSolnAfterTo}[1]{\def\exsolafter{#1}}
-\def\recoverDisplayBelow{\vskip\belowdisplayskip}
\newcommand{\adjDisplayBelow}{\vskip-\lastskip\vskip-\baselineskip}
\newcommand{\adjDisplayBelowPlus}{\adjDisplayBelow\recoverDisplayBelow}
+\def\recoverDisplayBelow{\vskip\belowdisplayskip}
\newcommand\setDefShortQuizLabelName[1]%
{\def\eq@defaultShortQuizLabelName{#1}}
\setDefShortQuizLabelName{Quiz}
+\newcommand{\writeToExSolns@}[1]{%
+ \ifsolutionsonly\else
+ \ifOKToWriteExamData
+ \set@display@protect
+ \immediate\write\ex@solns{#1}\set@typeset@protect
+ \fi\fi}%
\ifsolutionsonly
-\InputIfFileExists{\jobname_xdefs.cut}{%
+ \InputIfFileExists{\jobname_xdefs.cut}{%
\typeout{^^JExerquiz|Eqexam: Reading \jobname_xdefs.cut^^J}}
{\PackageWarningNoLine{exerquiz|eqexam}{%
\jobname_xdefs.cut not found.\MessageBreak
Recompile file under the vspacewithsolns\MessageBreak
option, then compile with the solutionsonly\MessageBreak
option}}
+ \let\writeToExSolns\@gobble
\else
-\newwrite\ex@solns \immediate\openout \ex@solns \jobname.sol
-\newcommand{\writeToExSolns}[1]{%
- \set@display@protect
- \immediate\write\ex@solns{#1}%
- \set@typeset@protect
-}
-\newwrite\eq@xrefdefns \immediate\openout\eq@xrefdefns\jobname_xdefs.cut
+ \newwrite\ex@solns \immediate\openout \ex@solns \jobname.sol
+ \let\writeToExSolns\writeToExSolns@
+ \newwrite\eq@xrefdefns
+ \immediate\openout\eq@xrefdefns\jobname_xdefs.cut
\fi
+\let\writeT@ExSolns\writeToExSolns
\newwrite\quiz@solns \immediate\openout \quiz@solns \jobname.qsl
-\newcommand{\writeToQzSolns}[1]{%
- \set@display@protect
- \immediate\write\quiz@solns{#1}%
- \set@typeset@protect
-}
+\newcommand{\writeToQzSolns}[1]{\ifOKToWriteExamData\set@display@protect
+ \immediate\write\quiz@solns{#1}\set@typeset@protect\fi}
+\let\writeT@QzSolns\writeToQzSolns
\def\eq@IWAuxOut#1{\immediate\write\@auxout{#1}}
\def\eq@IWDefs#1{\immediate\write\eq@xrefdefns{#1}}
+\@ifundefined{ifOKToWriteExamData}{\newif\ifOKToWriteExamData
+ \OKToWriteExamDatatrue}{}
+\def\noSolnWrites{\OKToWriteExamDatafalse}
+\def\normalSolnWrites{\OKToWriteExamDatatrue}
+\def\bHideSolnIn#1{#1{\protect\iffalse}\noSolnWrites}
+\def\eHideSolnIn#1{\normalSolnWrites#1{\protect\fi^^J}}
\newcounter{eqexno} \setcounter{eqexno}{0}
\newcounter{@exno} \setcounter{@exno}{0} % running exno
\newcounter{quizno} \setcounter{quizno}{0}
@@ -172,8 +189,9 @@
\def\eqCQDeclarations{\cqqsfalse\eq@turnMessageOff
\includecomment{sPage}\excludecomment{qPage}%
\eq@turnMessageOn}
-\def\eqTopOfSolnPage{\cqSAfalse
+\def\eqTopOfSolnPage{\withinsoldoctrue\cqSAfalse
\eqCQDeclarations}
+\def\eqTopOfQslPage{\withinqsldoctrue}
\eq@turnMessageOff
\includecomment{qPage}\excludecomment{sPage}
\eq@turnMessageOn
@@ -208,15 +226,17 @@
\def\cqFmtPasteQues#1{\cq@Pre\input{#1}\cq@Post}
\def\p@ssQuesToSoln{\ifeq@hidesolution\else
\global\terminexchangedtrue % dps cq
- \writeToExSolns{\protect
- \decleqterminex{\protect\cqFmtPasteQues{\cq@CutName}}}\fi}
+ \ifeq@solutionsafter\else
+ \writeT@ExSolns{\protect\decleqterminex{\protect
+ \cqFmtPasteQues{\cq@CutName}}\eq@commentchar}\fi\fi}
\def\declCopyQues#1{\def\cqCopiedQues{#1}}
\def\def@QuesToSoln{\restoreNormalSolns
\global\terminexchangedfalse % dps cq
- \ifeq@hidesolution\else\writeToExSolns{\protect
+ \ifeq@hidesolution\else\writeT@ExSolns{\protect
\declCopyQues{\protect\input{\cq@CutName}}}\fi}
-\newcommand\restoreNormalSolns{%
- \writeToExSolns{\protect\decleqterminex{\protect\eqterminexDEF}}}
+\newcommand\restoreNormalSolns{\ifeq@solutionsafter\else
+ \writeT@ExSolns{\protect\decleqterminex{\protect
+ \eqterminexDEF}\eq@commentchar}\fi}
\newcommand{\eq@CommonCmd}[1]{\def\eq@@CommonCmd{#1}#1}
\let\eq@@CommonCmd\@empty
\newcommand\gExCommonCmd[1]{\gdef\gEx@CommonCmd{\eq@CommonCmd{#1}}}
@@ -297,9 +317,8 @@
\let\eq@setPrbSolnAftrIndnt\relax
\newcommand{\setPrbSolnAftrIndent}[1]{\ifdim#1=0pt
\def\eq@pslnaindnt{0pt}\let\eq@setPrbSolnAftrIndnt\relax\else
- \edef\eq@pslnaindnt{#1}\edef\eq@setPrbSolnAftrIndnt{%
- \expandafter\noexpand\expandafter\parindent#1\noexpand\relax}\fi
-}
+ \edef\eq@pslnaindnt{#1}\edef\eq@setPrbSolnAftrIndnt{\expandafter
+ \noexpand\expandafter\parindent#1\noexpand\relax}\fi}
\newif\if@restorejustify \@restorejustifyfalse
\newcommand\restoreJustifyOn{\@restorejustifytrue}
\newcommand\restoreJustifyOff{\@restorejustifyfalse}
@@ -345,32 +364,38 @@
\ifeq@exerciseheading
\prior@questionsHook\marginparpriorhook\noindent\eqexheader@wrapper
\afterlabelhskip\marginparafterhook\gEx@CommonCmd
- \eq@setPrbSolnAftrIndnt\ignorespaces\fi
-}
+ \eq@setPrbSolnAftrIndnt\ignorespaces\fi}
\newif\ifterminexchanged \terminexchangedfalse % dps cq
\newcommand\decleqterminex[1]{\def\eqterminex{#1}}
\def\eqterminexDEF{\relax\ignorespaces}
\decleqterminex{\eqterminexDEF}
+\newif\ifmakeExSlLocal \makeExSlLocalfalse
+\def\makeExSolnsLocalOn{\makeExSlLocaltrue}
+\def\makeExSolnsLocalOff{\makeExSlLocalfalse}
+\let\eqMrkSoln\@gobble
\def\eqExerSolnHeaderSngl{%
+ \ifmakeExSlLocal\protect\begingroup^^J\fi
+ \ifx\eqMrkCpyArg\@empty\else
+ \protect\eqMrkSoln{\eqMrkCpyArg}\fi
\protect\eqEXt{\eqExtArg}{\eqFilterArg}\protect
\solnItemMngt\protect\exerSolnHeader{\exsecrunhead}{ex.\the@exno}%
{\exsllabelformat}\exer@solnheadhook
- \exersolnheadhook\protect\eqterminex
-}
-\def\eq@@writeexheader{\set@display@protect
- \immediate\write\verbatim@out{\eqExerSolnHeaderSngl}%
- \set@typeset@protect
-}
+ \exersolnheadhook\protect\eqterminex}
+\def\eq@@writeexheader{\ifeq@hidesolution\else\ifOKToWriteExamData
+ \set@display@protect
+ \immediate\write\verbatim@out{\eqExerSolnHeaderSngl}%
+ \set@typeset@protect\fi\fi}
\def\eqExerSolnHeaderList{%
+ \ifmakeExSlLocal\protect\begingroup^^J\fi
+ \ifx\eqMrkCpyArg\@empty\else
+ \protect\eqMrkSoln{\eqMrkCpyArg}\fi
\protect\eqEXt{\eqExtArg}{\eqFilterArg}\protect
\solnItemMngt\protect\exerSolnHeader{\exsecrunhead}%
{ex.\the@exno\thepartno}{\exsllabelformatwp}%
- \exer@solnheadhook\exersolnheadhook\protect\eqterminex
-}
-\def\eq@@writeexheaderlist{\set@display@protect
- \immediate\write\verbatim@out{\eqExerSolnHeaderList}%
- \set@typeset@protect
-}
+ \exer@solnheadhook\exersolnheadhook\protect\eqterminex}
+\def\eq@@writeexheaderlist{\ifeq@hidesolution\else\ifOKToWriteExamData
+ \set@display@protect\immediate
+ \write\verbatim@out{\eqExerSolnHeaderList}\set@typeset@protect\fi\fi}
\long\def\setsolnspace#1{\def\newsolnspace{#1}%
\let\solnspace\newsolnspace}
\newif\ifeq@ckSolnVspace \eq@ckSolnVspacetrue
@@ -378,13 +403,26 @@
\def\noSolnOpt{\global\eq@ckSolnVspacefalse}
\let\solnhspace\space
\let\solnspace\space
-\def\solnexer@woparts{\def\bLeaveVspace{x}% = no vertical space added
+\let\exsolnonceonlytophook\relax
+\def\solnexer@woparts{%
+ \ifanswerkey\ifeqe@flextended\ifcont@nnot
+ \ifx\solutionparshape\@empty\else % dpsj8
+ \pushEnvir
+ \everypar{}\if@eqalignfilllinestoleft\else
+ \parshape=1 \leadinIndent \linewidth\fi
+ \popEnvir
+ \fi\fi\fi\fi\def\bLeaveVspace{x}% = no vertical space added
+ \exsolnonceonlytophook % dps27
+ \global\let\exsolnonceonlytophook\relax
+ \@ifundefined{KV@eqefillLines@bgonly}{}
+ {\ifKV@eqefillLines@bgonly\ifvmode\else
+ \par\leavevmode\strut\fi\fi
+ \ifKV@eqefillLines@outlineonly\leavevmode\strut\fi}%
\ifeq@ckSolnVspace
- \def\eq@next{\@ifnextchar[{\solnexer@@woparts}%
+ \def\eq@next{\@ifnextchar[{\solnexer@@woparts}%]
{\solnexer@@woparts[\null]}}\else
\def\eq@next{\solnexer@@woparts[\null]}\fi
- \eq@next
-}
+ \eq@next}
\let\eqPriorVspace\@gobble
\newif\if@eqlinedfiller \@eqlinedfillerfalse
\newcommand{\vspaceFiller}[1]{\vfill}
@@ -395,29 +433,27 @@
\@tempcnta=0
\@whilenum\@tempcnta<\soln@keys@nLines\relax\do
{\vskip0pt\penalty-50\vglue\wlVspace\eqWriteLine
- \advance\@tempcnta1\relax}\par\endgroup
-}
+ \advance\@tempcnta1\relax}\par\endgroup}
+\let\leavevspace\relax % dpsj5
\newcommand{\vspaceFmt}[1]{%
- \ifx\solutionparshape\@empty\else
- \advance\linewidth-\leadinIndentPrtSep\fi
+ \ifx\solutionparshape\@empty\else
+ \advance\linewidth-\leadinIndentPrtSep\fi
\ifdim\sameVspace>0pt
- \let\bLeaveVspace\@empty
- \def\leavevspace{%
- \ifx\eq@insertverticalspace\eq@YES\par
- \eqPriorVspace{#1}{\nobreak\noindent
- \ifx\soln@keys@nLines\@empty
- \if@eqlinedfiller
- \def\eq@lines@next{\vspaceFiller{#1}}\else
- \def\eq@lines@next{\parbox[b][#1][t]{\linewidth}
- {\vspaceFiller{#1}}}\fi
- \else
- \def\eq@lines@next{\eq@linesXPgs}%
- \fi\eq@lines@next
- }%
- \fi
- }%
- \fi
-}
+ \let\bLeaveVspace\@empty
+ \def\leavevspace{%
+ \ifx\eq@insertverticalspace\eq@YES\par\eq@quessolskip
+ \eqPriorVspace{#1}{\nobreak\noindent
+ \if@eqlinedfiller
+ \ifx\soln@keys@nLines\@empty
+ \def\eq@lines@next{\vspaceFiller{#1}}\else
+ \def\eq@lines@next{\eq@linesXPgs}\fi
+ \else
+ \def\eq@lines@next{\parbox[b][#1][t]{\linewidth}
+ {\vspaceFiller{#1}}}%
+ \fi\eq@lines@next}%
+ \fi
+ }\expandafter\leavevspace
+ \fi}
\define@key{soln@keys}{nLines}[]{\def\soln@keys@nLines{#1}}
\let\soln@keys@nLines\@empty
\def\eqKV@errx#1{\xdef\XKV@rm{\@tempa}}
@@ -458,17 +494,21 @@
\let\soln@keys@nLines\@empty\fi
\xdef\sameVspace{\XKV@rm}%
}{\eqSolnForEqexam{#1}}%
- \ifx\sameVspace\@empty\gdef\sameVspace{0pt}\fi
- \ifvspacewithsolns\vspaceFmt{\sameVspace}\fi
- \ifeq@nosolutions\ifeq@solutionsafter\else
- \vspaceFmt{\sameVspace}\fi\fi
\fi\fi
\solnexer@@@woparts
}
\def\solnsafterSkip#1{\setlength{\@tempdima}{#1}%
- \def\solnsafterSkipAmt{\the\@tempdima}%
- \def\solutionsafterSkip{\vskip#1\relax}}
+ \edef\solnsafterSkipAmt{\the\@tempdima}%
+ \def\solutionsafterSkip{\vskip\solnsafterSkipAmt\relax}}
\solnsafterSkip{\smallskipamount}
+\def\@solnafterSkipOnce#1{\setlength{\@tempdima}{#1}%
+ \xdef\@solnafterSkipOnceAmt{\the\@tempdima}}%
+\def\@@solnafterSkipOnce{\vskip\@solnafterSkipOnceAmt\relax %dpsj3
+ \gdef\@solnafterSkipOnceAmt{0pt}}
+\def\@solnafterSkipOnceAmt{0pt}
+\def\quessolSkip#1{\setlength{\@tempdima}{#1}%
+ \edef\eq@quessolskip{\noexpand\vskip\the\@tempdima\relax}}
+\def\eq@quessolskip{\vskip\smallskipamount}
\def\eqe@debugVertSkip#1{}
\def\eqe@showEndHere#1{#1}
\def\eqe@setStartSolns{%
@@ -492,118 +532,148 @@
\let\priorexsolafterTab\@empty
\let\priorexsolafterSngl\@empty
\def\eq@Hid{H}\def\eq@hid{h}
-\def\solnexer@@@woparts{%
- \global\thereissolutiontrue
- \def\exerwparts@cols{0}%
- \let\verbatim@out\ex@solns
- \if\currhideopt\eq@Hid
- \let\minVspacet@bs\@empty
- \let\procsoln\eqSavedComment
- \let\endprocsoln\eqSavedEndCommet
- \def\eq@next{\procsoln}%
+\def\solutionafterExCmds#1{\def\@rgi{#1}\ifx\@rgi\@empty
+ \let\eqSolnExCmds\relax\else
+ \def\eqSolnExCmds{#1}\fi}
+\let\eqSolnExCmds\relax
+\def\eq@b@ddCodeSpecialDef#1{#1}%
+\let\eq@b@ddCodeSpecial\eq@b@ddCodeSpecialDef
+\def\solnexer@@@woparts{\ifeq@solutionsafter\else
+ \expandafter\begingroup\fi
+ \global\thereissolutiontrue
+ \global\let\procsoln\relax
+ \global\let\endprocsoln\relax
+ \def\exerwparts@cols{0}%
+ \let\verbatim@out\ex@solns
+ \if\currhideopt\eq@Hid
+ \let\minVspacet@bs\@empty
+ \let\procsoln\eqSavedComment
+ \let\endprocsoln\eqSavedEndCommet
+ \def\eq@next{\procsoln}%
+ \else
+ \eq@ckglobalhide
+ \ifeq@hidesolution
+ \let\procsoln\eqSavedComment
+ \let\endprocsoln\eqSavedEndCommet
\else
- \eq@ckglobalhide
- \ifeq@hidesolution
- \let\procsoln\eqSavedComment
- \let\endprocsoln\eqSavedEndCommet
- \else
- \ifx\bLeaveVspace\@empty\leavevspace\fi
- \ifeq@solutionsafter\else
- \ifx\eq@@CommonCmd\@empty\else
- \set@display@protect
- \immediate\write\verbatim@out{\eq@@CommonCmd}%
- \set@typeset@protect
- \fi
- \fi
- \let\procsoln\verbatimwrite
- \let\endprocsoln\endverbatimwrite
- \fi
- \def\eq@next{%
- \ifeq@solutionsafter%\par
- \removelastskip\removelastparskip
- \cqSAtrue\eqCQDeclarations
- \declCopyQues{\input{\cq@CutName}}%
- \ifx\exsolafter\@empty
- \ifdim\sameVspace=0pt\eqe@setStartSolns
- \else
- \solutionsafterSkip
- \eqe@setStartSolns
- \fi
- \else\par\kern0pt
- \solutionsafterSkip
- \noindent\strut\eqe@setStartSolns
- \fi
- \parskip\eqeques@parsep
- \ifx\endparts\endexercise@parts@tabular
- \eq@setPrbSolnAftrIndnt
- \restorejustify
- \fi
- \ifx\endparts\endexercise@parts@tabular\expandafter
- \priorexsolafterTab\else
- \ifx\endparts\endexercise@parts@list\expandafter
- \priorexsolafterList\else\expandafter
- \priorexsolafterSngl\fi\fi
- \exsolafter\space\ignorespaces
- \solutionparshape
- \else
- \eqExerSolnHeader
- \global\let\eqExerSolnHeader\@empty
- \global\therearesolutionstrue\expandafter\procsoln
- \fi
- }%
+ \ifeq@solutionsafter\else
+ \ifx\eq@@CommonCmd\@empty\else
+ \set@display@protect
+ \immediate\write\verbatim@out{\eq@@CommonCmd}%
+ \set@typeset@protect
+ \fi
+ \fi
+ \let\procsoln\verbatimwrite
+ \let\endprocsoln\endverbatimwrite
\fi
-\eq@next}
+ \def\eq@next{%
+ \ifeq@solutionsafter
+ \let\procsoln\relax
+ \let\endprocsoln\relax
+ \removelastskip\removelastparskip
+ \cqSAtrue\eqCQDeclarations
+ \declCopyQues{\input{\cq@CutName}}%
+ \ifx\exsolafter\@empty
+ \ifdim\sameVspace=0pt\eqe@setStartSolns
+ \else
+ \solutionsafterSkip
+ \@@solnafterSkipOnce
+ \eqe@setStartSolns
+ \fi
+ \else\par\kern0pt
+ \solutionsafterSkip
+ \@@solnafterSkipOnce
+ \noindent\strut\eqe@setStartSolns
+ \fi
+ \parskip\eqeques@parsep
+ \ifx\endparts\endexercise@parts@tabular
+ \eq@setPrbSolnAftrIndnt
+ \restorejustify
+ \fi
+ \ifx\endparts\endexercise@parts@tabular\expandafter
+ \priorexsolafterTab\else
+ \ifx\endparts\endexercise@parts@list\expandafter
+ \priorexsolafterList\else\expandafter
+ \priorexsolafterSngl\fi\fi
+ \exsolafter\space\ignorespaces
+ \solutionparshape
+ \else
+ \eqExerSolnHeader
+ \global\therearesolutionstrue\expandafter\procsoln
+ \fi
+ }%
+ \fi
+ \eq@b@ddCodeSpecial{\eq@next}%
+}% dpsj4
\let\endsolnexerhook\@empty
\let\pkg@endsolnexerhook\@empty
\let\endsolnexerhookaux\@empty
\def\eq@fititin#1{\noindent\unskip\nobreak\hfill\penalty100
\hskip1em\hbox{}\nobreak\hfill#1}%
\let\eqfititin\eq@fititin
+\bgroup\catcode`\%=12\relax
+\gdef\eq@commentchar{%}\egroup
\newcommand\eqExerSolnTrailer{%
\protect\ReturnTo{page.\the\c@page}%
{\protect\mbox{\if\exerstar*\exrtnlabelformatwp\else
\exrtnlabelformat\fi}}%
- \protect\endeqEXt\ifeqforpaper\protect\par{\belowexsolnskip}\fi^^J%
-}
-\def\endsolnexer@woparts{%
- \if\currhideopt H%
- \ifkeepdeclaredvspacing\vskip\sameVspace\fi
- \csname endprocsoln\endcsname
- \else
- \ifeq@solutionsafter
- \if\exerstar*%
- \eq@fititin{\mbox{\exrtnlabelformatwp}}\else
- \eq@fititin{\mbox{\exrtnlabelformat}}\fi
- \ifx\istabularexer\eq@YES\kern0pt\else\par\fi
-\ifx\minVspacet@bs\@empty
- \ifkeepdeclaredvspacing
- \@tempdima\pagetotal
- \advance\@tempdima-\eq@startSoln
- \@tempdimb\sameVspace\relax
- \ifdim\@tempdimb>1sp\relax
- \advance\@tempdimb-\@tempdima
- \ifdim\@tempdimb>0pt\vglue\@tempdimb\kern0pt
- \let\eqe@showEndHere\@gobble
- \edef\tmp@exp{\noexpand\marginpar{%
- \noexpand\smash{e: adj \the\@tempdimb}}}%
- \eqe@debugVertSkip{\tmp@exp}%
- \fi
- \fi
- \fi
- \eqe@showEndHere{\eqe@debugVertSkip{\marginpar{\smash{e}}}}%
-\fi
- \else
- \endprocsoln
- \eq@ckglobalhide
- \ifeq@hidesolution\else
- \endsolnexerhookaux
- \set@display@protect
- \immediate\write\verbatim@out{\eqExerSolnTrailer}%
- \set@typeset@protect
+ \protect\endeqEXt\ifeqforpaper\protect\par{\belowexsolnskip}\fi
+ \eq@commentchar^^J%
+ \ifmakeExSlLocal\protect\endgroup^^J\fi
+}
+\let\eq@e@ddCodeSpecialDef\relax % dpsj4
+\let\eq@e@ddCodeSpecial\eq@e@ddCodeSpecialDef % dpsj6
+\let\kdvsp@Restore\relax
+\def\eq@clearMrkCpy{\if@targetforextr
+ \global\let\eqMrkCpyArg\@empty
+ \global\@targetforextrfalse\fi
+}
+\def\endsolnexer@woparts{\endprocsoln\eq@e@ddCodeSpecial
+ \pkg@endsolnexerhook
+ \eq@clearMrkCpy
+ \ifeq@solutionsafter\else
+ \expandafter\endgroup\fi % from \begingroup at \solnexer@@@woparts
+ \global\let\exsolnonceonlytophook\relax
+ \ifx\sameVspace\@empty\gdef\sameVspace{0pt}\fi
+ \ifvspacewithsolns\vspaceFmt{\sameVspace}\else
+ \ifeq@nosolutions\ifeq@solutionsafter\else
+ \vspaceFmt{\sameVspace}\fi\fi\fi
+ \if\currhideopt H%
+ \ifkeepdeclaredvspacing\vskip\sameVspace\fi
+ \else
+ \ifeq@solutionsafter
+ \ifx\isitleadin\eq@YES\parshape=0 \fi
+ \if\exerstar*%
+ \eq@fititin{\mbox{\exrtnlabelformatwp}}\else
+ \eq@fititin{\mbox{\exrtnlabelformat}}\fi
+ \ifx\istabularexer\eq@YES\unskip\kern0pt\else\par\fi
+ \ifx\minVspacet@bs\@empty
+ \ifkeepdeclaredvspacing
+ \@tempdima\pagetotal
+ \advance\@tempdima-\eq@startSoln
+ \@tempdimb\sameVspace\relax
+ \ifdim\@tempdimb>1sp\relax
+ \advance\@tempdimb-\@tempdima
+ \ifdim\@tempdimb>0pt\vglue\@tempdimb\kern0pt
+ \let\eqe@showEndHere\@gobble
+ \edef\tmp@exp{\noexpand\marginpar{\noexpand
+ \smash{e: adj \the\@tempdimb}}}%
+ \eqe@debugVertSkip{\tmp@exp}%
\fi
+ \fi
+ \fi
+ \eqe@showEndHere{\eqe@debugVertSkip{\marginpar{\smash{e}}}}%
\fi
+ \else
+ \eq@ckglobalhide
+ \ifeq@hidesolution\else
+ \endsolnexerhookaux
+ \writeT@ExSolns{\eqExerSolnTrailer}%
+ \fi
+ \fi
\fi
-\pkg@endsolnexerhook\endsolnexerhook}
+ \kdvsp@Restore
+ \endsolnexerhook\penalty0\relax}
\let\eq@exerstarEnv\relax
\newenvironment{exercise*}{\def\eq@exerstarEnv{*}\exercise}
{\endexercise}
@@ -624,7 +694,7 @@
parts environment}{Use \string\tableadin\space
in the problem* environment of eqexam.}%
}
-\let\istabularexer\eq@NO % dps 2016/12/16
+\let\istabularexer\eq@NO
\def\exercise@parts{\let\rlspar\relax
\ifx\solutionparshape\@empty
\let\isitleadin\eq@NO
@@ -632,14 +702,14 @@
\else\let\isitleadin\eq@YES\fi
\rlspar\removelastskip\par
\if\isitleadin\eq@YES
- \def\eqparts@topsep{0pt}% dps88
- \vskip\eqparts@itemsep\relax\fi % dps88
+ \def\eqparts@topsep{0pt}%
+ \vskip\eqparts@itemsep\relax\fi
\topofpartshook
- \let\itsExerParts\eq@YES % dps17
+ \let\itsExerParts\eq@YES
\global\let\@listiiredefined\eq@NO
\def\exerwparts@cols{0}\@ifnextchar[%
{%
- \if@tableadinitem\else\removelastparskip\fi % dps11
+ \if@tableadinitem\else\removelastparskip\fi
\let\endparts\endexercise@parts@tabular\exercise@parts@tabular@}%
{\let\endparts\endexercise@parts@list\exercise@parts@list}}
\def\eq@extralabelsep{0pt}
@@ -661,16 +731,16 @@
\def\eq@item@common{\eq@insertContAnnot\eqp@rtc@lcm@rk
\def\currhideopt{x}\eq@hidesolutionfalse\eq@nolinkfalse
\@ifnextchar[{\@ckhide}{\eq@item}}
-\newcommand{\partsitemsep}[1]{{% dps88
+\newcommand{\partsitemsep}[1]{{%
\setlength{\@tempdima}{#1}%
\xdef\eqparts@itemsep{\the\@tempdima}}}
\let\eqpartsitemsep\partsitemsep
\def\eqparts@itemsep{0pt}
-\newcommand\partsparsep[1]{{% dps88
+\newcommand\partsparsep[1]{{%
\setlength{\@tempdima}{#1}%
\xdef\eqparts@parsep{\the\@tempdima}}}
\def\eqparts@parsep{0pt}
-\newcommand\partstopsep[1]{{% dps88
+\newcommand\partstopsep[1]{{%
\setlength{\@tempdima}{#1}%
\xdef\eqparts@topsep{\the\@tempdima}}}
\def\eqparts@topsep{3pt}
@@ -678,16 +748,14 @@
{The \string\leadinitem\space command is designed to be\MessageBreak
the first item in the problem*\MessageBreak
environment above the parts environment}
- {Use \string\leadinitem\space in the problem* environment.}%
-}
+ {Use \string\leadinitem\space in the problem* environment.}}
\let\leadinitem\leadinitem@external
\let\itsforleadinitem\eq@NO
\newcommand{\eq@leadinitemparts}{\item\relax
\PackageError{exerquiz/eqexam}{The \string\leadinitem\space
command is not allowed in the\MessageBreak
parts environment}
- {Use \string\leadinitem\space in the problem* environment.}%
-}
+ {Use \string\leadinitem\space in the problem* environment.}}
\def\eq@handleOptArg[#1]{\def\eq@optArg{[#1]}\eq@handleOptArgi}
\def\eq@handleOptArgi{\expandafter
\eq@item@latex\eq@optArg\exlisttabheaderafterhook}
@@ -696,6 +764,7 @@
\newenvironment{exercise@parts@list}{%
\settowidth{\eq@tmplength}{\parts@indent}%
\edef\widthOfParts{\the\eq@tmplength}%
+ \global\let\eqExerSolnHeader\eq@@writeexheaderlist
\eq@initializeContAnnot\eq@nolinkfalse\prior@parts@hook
\abovepartshook\list{\normalfont
\if\Hidesymbol h\eq@nolinkfalse\ifeq@solutionsafter
@@ -718,11 +787,11 @@
\makebox[\widthOfParts][r]{\eqexlisttabheader}%
}{%
\usecounter{partno}%
- \if\isitleadin\eq@YES % dps7
- \settowidth{\eq@tmplength}{\parts@indent\eqe@prtsepPrb}%
- \xdef\prtsIndntSep{\the\eq@tmplength}% dps7
- \if\itsforleadinitem\eqe@YES\setcounter{partno}{\fliPartNo}\else
- \setcounter{partno}{1}\fi\fi
+ \if\isitleadin\eq@YES
+ \settowidth{\eq@tmplength}{\parts@indent\eqe@prtsepPrb}%
+ \xdef\prtsIndntSep{\the\eq@tmplength}%
+ \if\itsforleadinitem\eqe@YES\setcounter{partno}{\fliPartNo}\else
+ \setcounter{partno}{1}\fi\fi
\let\leadinitem\eq@leadinitemparts
\let\tableadin\eq@tableadinparts
\global\let\solutionparshape\@empty
@@ -756,8 +825,7 @@
\def\eq@initializeContAnnot{\@ifundefined{eqequestions}
{\global\let\eqeCurrProb\relax}
{\xdef\eqeCurrProb{\theeqquestionnoi}}%
- \xdef\eq@currProbStartPage{\arabic{page}}%
-}
+ \xdef\eq@currProbStartPage{\arabic{page}}}
\define@key{tabp@rts}{nCols}{\def\exerwparts@cols{#1}}
\define@key{tabp@rts}{minVspace}{\def\minVspacet@bs{#1}}
\let\minVspacet@bs\@empty
@@ -797,12 +865,12 @@
\def\inittabMark{\global\eq@extabColCnt=0 }
\def\resettabMark{\global\eq@extabColCnt=1 }
\newcommand\autotabnewline[1][\eqparts@tabrowsep]{%
- \ifnum\exerwparts@cols>0\relax % dps cq
+ \ifnum\exerwparts@cols>0\relax
\ifx\eq@tabMarkChk\@gobble
\def\eq@atnext{\expandafter
\tabularnewline\expandafter[#1]}\else
\def\eq@atnext{\resettabMark\tabularnewline
- \noalign{\expandafter\kern#1}}\fi % dps7
+ \noalign{\expandafter\kern#1}}\fi
\expandafter\eq@atnext\fi}
\def\eq@tabMark{%
\ifnum\eq@extabColCnt=0\relax
@@ -818,8 +886,7 @@
\fi
\fi
\eq@next
- \global\advance\eq@extabColCnt1\relax
-}
+ \global\advance\eq@extabColCnt1\relax}
\newcommand\partstabcolsep[1]{\def\eq@partstabcolsep{#1}}
\partstabcolsep{1.5pt}
\newcommand\partstabtopsep[1]{\def\eq@partstabtopsep{#1}}
@@ -830,8 +897,9 @@
\partstabrowsep{0pt}
\newenvironment{exercise@parts@tabular}{%
\setcounter{partno}{0}%
+ \global\let\eqExerSolnHeader\eq@@writeexheaderlist
\def\tablrIndent{\hglue\prtsIndntSep\relax}%
- \if\isitleadin\eq@YES % dps7
+ \if\isitleadin\eq@YES
\if$\the\everypar$\let\tablrIndent\relax\fi
\setcounter{partno}{1}\fi
\let\leadinitem\eq@leadinitemparts
@@ -861,9 +929,9 @@
\tabcolsep\@tempdima
\multiply\@tempdima\@tempcnta
\advance\eq@tmpdima-\@tempdima
- \divide\eq@tmpdima by\exerwparts@cols
- \advance\eq@tmpdima\prtsIndntSep\relax
- \if@tableadinitem\else\vskip\eq@partstabtopsep\relax\fi % dps11
+ \divide\eq@tmpdima by\exerwparts@cols\relax %dpsj3
+ \edef\widthOfPartsBox{\the\eq@tmpdima}% dpsj2
+ \if@tableadinitem\else\vskip\eq@partstabtopsep\relax\fi
\noindent\normalbaselines\kern0pt
\prior@parts@hook\abovepartshook
\tablrIndent\tabular[t]{@{}*{\exerwparts@cols}{>{\setTabulrSolnEnv
@@ -877,7 +945,6 @@
\aftergroup\eq@vpartstabtopsep}
\let\eqe@innermarkpts\relax
\def\item@part@tabular{\refstepcounter{partno}%
- \global\let\eqExerSolnHeader\@empty
\ifeq@solutionsafter
\eq@nolinktrue % no link to solution
\else\ifeq@nosolutions
@@ -894,57 +961,63 @@
\eq@tmpdima=\wd\eq@tmpbox
\addtolength\eq@tmplength{\eq@extralabelsep}%
\xdef\partshangamount{\the\eq@tmplength}%
- \advance\linewidth-\eq@tmplength
\parshape \@ne 0pt \linewidth
\everypar{\parshape \@ne 0pt \linewidth}%
\eq@setPrbSolnAftrIndnt
\makebox[0pt][r]{\eqexlisttabheader\eqe@prtsepPrb}%
\ex@listtabheader@fterhook
- \exlisttabheaderafterhook\ignorespaces
-}
+ \exlisttabheaderafterhook\ignorespaces}
\def\@ckhide[#1]{\edef\eq@arg{#1}%
- \def\currhideopt{x}%
- \ifx\eq@arg\@empty\else
- \if\eq@arg\eq@Hid
- \eq@hidesolutiontrue\eq@nolinktrue%
- \edef\currhideopt{\Hidesymbol}%
- \else
- \ifeq@globalshowsolutions\else
- \if\eq@arg\eq@hid
- \eq@hidesolutiontrue\eq@nolinktrue%
- \def\currhideopt{h}%
- \fi
- \fi
- \fi\fi
- \eq@item
-}
+ \def\currhideopt{x}%
+ \ifx\eq@arg\@empty\else
+ \if\eq@arg\eq@Hid
+ \eq@hidesolutiontrue\eq@nolinktrue%
+ \edef\currhideopt{\Hidesymbol}%
+ \else
+ \ifeq@globalshowsolutions\else
+ \if\eq@arg\eq@hid
+ \eq@hidesolutiontrue\eq@nolinktrue%
+ \def\currhideopt{h}%
+ \fi
+ \fi
+ \fi\fi
+ \eq@item}
\def\tabControlOn{\@ifundefined{@xtabularcr}
- {\let\save@@xtabularcr\@xarraycr}
- {\let\save@@xtabularcr\@xtabularcr}}
+ {\let\save@@xtabularcr\@xarraycr}
+ {\let\save@@xtabularcr\@xtabularcr}}
\def\tabControlOff{\@ifundefined{@xtabularcr}
- {\let\@xarraycr\save@@xtabularcr}
- {\let\@xtabularcr\save@@xtabularcr}}
+ {\let\@xarraycr\save@@xtabularcr}
+ {\let\@xtabularcr\save@@xtabularcr}}
\AtBeginDocument{\tabControlOn}
\def\eq@xtabularcr{\@ifnextchar[{\save@@xtabularcr}
- {\eqe@tab@parts@rowsep}}%
+ {\eqe@tab@parts@rowsep}}%
\def\eqe@tab@parts@rowsep{\save@@xtabularcr
- \noalign{\expandafter\kern\eqparts@tabrowsep}}%
+ \noalign{\expandafter\kern\eqparts@tabrowsep}}%
+\let\eqgrii\relax
+\let\eqgriii\relax
\def\includeexersolutions{\@ifstar
- {\let\resetEXsolns\relax\includeexersolutionsi}
- {\def\resetEXsolns{\global\let\include@solutions\relax}%
- \includeexersolutionsi}%
-}
+ {\let\resetEXsolns\relax\includeexersolutionsi}
+ {\def\resetEXsolns{\global\let\include@solutions\relax}%
+ \includeexersolutionsi}}
\newcommand{\includeexersolutionsi}[1][]{%
- \filterFor{#1}\includeexersolutionsii
-}
+ \filterFor{#1}\includeexersolutionsii}
\def\includeexersolutionsii{%
- \include@solutions
- \resetEXsolns
- \let\eqFilterArg\@empty
+ \include@solutions
+ \resetEXsolns
+ \let\eqFilterArg\@empty
}
-\long\def\gobbleToEndEXt#1\endeqEXt{%
- \ifeqforpaper\expandafter\@gobbletwo\fi}
+\long\def\gobbleToEndEXt#1\endeqEXt{\ifeqforpaper
+ \expandafter\@gobbletwo\fi}
+\newif\if@targetforextr \@targetforextrfalse
\newcommand\filterFor[1]{\def\eqFilterArg{#1}}
+\newcommand{\mrkForIns}[1]{\def\eqMrkCpyArg{#1}\global
+ \@targetforextrtrue\@ifundefined{#1@mfc}
+ {\global\@namedef{#1@mfc}{}}
+ {\PackageWarning{exerquiz/eqexam}
+ {The name '#1' has already been used.\MessageBreak
+ Please choose another, otherwise results may\MessageBreak
+ be as unexpected}}\ignorespaces}
+\let\eqMrkCpyArg\@empty
\newcommand\inclEXtFilter[2]{\def\eqargii{#2}\ifx\eqargii\eqFilterArg
\else\expandafter\gobbleToEndEXt\fi}
\newcommand\useEXtFilter{\let\eqEXt\inclEXtFilter}
@@ -962,34 +1035,36 @@
\@ifpackageloaded{web}{\def\eq@defaultlheader{\lheader{\aeb@setmarks}}}
{\let\eq@defaultlheader\relax}
\newif\ifExSolutionsSet \ExSolutionsSetfalse
+\def\eqExSolFileName{\jobname.sol}
\newcommand{\exerSolnInput}
{%
- \@ifundefined{eqe@IWO}{}{\ifsolutionsAtEnd%\ifvspacewithsolns
- \eqe@IWO\@auxout{\string\expandafter\string\gdef
- \string\csname\space eqExamQuesLastPage\string\endcsname
- {\arabic{page}}}\fi}
- \let\webnewpage\relax
- \ifsolutionsonly\else\immediate\closeout\ex@solns\fi
- \ifeq@nosolutions\else
- \iftherearesolutions
- \ifsolutionsonly\eq@solutionshook
- \eqsolutionshook
- \else
- \newpage\eq@solutionshook
- \eqsolutionshook\markright{}\eq@normallheader
- \fi
- \markright{\exsectitle}%
- \ifx\webnewpage\relax
- \def\webnewpage{\let\webnewpage\newpage}%
- \fi
- \priorexsectitle\exerSolnsHeadnToc\priorexslinput
- \InputIfFileExists{\jobname.sol}
- {\global\ExSolutionsSettrue}{\PackageWarning{exerquiz}
- {!!! Solutions to exercises not found}}%
- \global\ExSolutionsSetfalse
- \newpage\eq@defaultlheader
- \fi
+ \@ifundefined{eqe@IWO}{}{\ifsolutionsAtEnd
+ \eqe@IWO\@auxout{\string\expandafter\string\gdef
+ \string\csname\space eqExamQuesLastPage\string\endcsname
+ {\arabic{page}}}\fi}\let\webnewpage\relax
+ \ifsolutionsonly\else
+ \bgroup\OKToWriteExamDatatrue
+ \writeT@ExSolns{\string\endinput}\egroup
+ \immediate\closeout\ex@solns\fi
+ \ifeq@nosolutions\else
+ \iftherearesolutions
+ \ifsolutionsonly\eq@solutionshook
+ \eqsolutionshook
+ \else
+ \newpage\eq@solutionshook
+ \eqsolutionshook\markright{}\eq@normallheader
+ \fi
+ \markright{\exsectitle}%
+ \ifx\webnewpage\relax
+ \def\webnewpage{\global\let\webnewpage\newpage}\fi
+ \priorexsectitle\exerSolnsHeadnToc\priorexslinput
+ \InputIfFileExists{\eqExSolFileName}
+ {\global\ExSolutionsSettrue}{\PackageWarning{exerquiz}
+ {!!! Solutions to exercises not found}}%
+ \global\ExSolutionsSetfalse
+ \newpage\eq@defaultlheader
\fi
+ \fi
}
\def\include@solutions{%
\exerSolnInput
@@ -1061,14 +1136,14 @@
\setlength{\itemsep}{\propQ@itemsep}%
\setlength{\itemindent}{0pt}%
\setlength{\leftmargin}{\labelwidth}%
- }%
+ }%
}{\endlist}
\def\pushquestions{\expandafter\xdef\csname save\@quesctr\endcsname
- {\expandafter\the\csname c@\@quesctr\endcsname}\end{questions}}
+ {\expandafter\the\csname c@\@quesctr\endcsname}\end{questions}}
\def\popquestions{%
- \begin{questions}[\csname quesOpts\@quesctr\endcsname]%
- \setcounter{\@quesctr}{\csname save\@quesctr\endcsname}%
- \@ifnextchar\popquestions{\item[]}{\@ifnextchar\begin{\item[]}{}}}
+ \begin{questions}[\csname quesOpts\@quesctr\endcsname]%
+ \setcounter{\@quesctr}{\csname save\@quesctr\endcsname}%
+ \@ifnextchar\popquestions{\item[]}{\@ifnextchar\begin{\item[]}{}}}
\newcommand{\priorsqhook}[1]{\def\sq@priorhook{#1}}
\priorsqhook{}
\newcommand{\abovesqskip}[1]{\def\sq@aboveskip{#1}}
@@ -1078,15 +1153,16 @@
\def\@shortquizCnt{0}
\def\@sqGenBaseName{eqSqBn\@shortquizCnt}
\let\sqhspace\space
+\let\ListOfSQuizNames\@empty
\newenvironment{shortquiz}
{%
- \xdef\eq@pageThisQ{\the\c@page}%
- \let\@currentQues\@empty
- {\count0=\@shortquizCnt \advance\count0by1\relax
- \xdef\@shortquizCnt{\the\count0}}%
- \goodbreak\@ifstar{\sqForms\@shortquiz}%
- {\if\aeb@FLOverride\eq@f\def\sqstar{*}\else
- \def\sqstar{}\sqLinks\fi\@shortquiz}%
+ \xdef\eq@pageThisQ{\the\c@page}%
+ \let\@currentQues\@empty
+ {\count0=\@shortquizCnt \advance\count0by1\relax
+ \xdef\@shortquizCnt{\the\count0}}%
+ \goodbreak\@ifstar{\sqForms\@shortquiz}%
+ {\if\aeb@FLOverride\eq@f\def\sqstar{*}\else
+ \def\sqstar{}\sqLinks\fi\@shortquiz}%
}{\aeb@endshortquiz}
\newenvironment{shortquiz*}
{%
@@ -1102,8 +1178,11 @@
\protected@edef\@currentlabelname{\@currentlabelname}\fi
}
\let\isQZ=q \let\isSQZ=s
+\let\eqQuizType\relax
\def\@@shortquiz[#1]{%\begingroup
\gdef\oField{#1}\gdef\curr@quiz{#1}\gdef\currQuiz{#1}%
+ \edef\tmp@Exp{\noexpand\g@addto@macro\noexpand
+ \ListOfSQuizNames{,#1}}\tmp@Exp
\global\let\eqQzQuesList\@empty
\let\eq@AddProbToQzQuesList\relax
\edef\@currentlabel{\@shortquizCnt}%
@@ -1149,6 +1228,9 @@
\let\prior@eqQt\@empty
\let\prior@eqSQt\@empty
\def\sqsolafterhspace{\space}
+\newif\ifmakeQzSlLocal \makeQzSlLocalfalse
+\def\makeQzSolnsLocalOn{\makeQzSlLocaltrue}
+\def\makeQzSolnsLocalOff{\makeQzSlLocalfalse}
\def\solution@sq{\let\eq@next\relax
\ifx\@qzsolndest\@empty
\PackageWarning{exerquiz}%
@@ -1161,13 +1243,18 @@
\if!\sqsolafter!\else
\sqsolafter\sqsolafterhspace\fi\ignorespaces
\else
- \global\therearequizsolutionstrue\let\verbatim@out=\quiz@solns
+ \global\therearequizsolutionstrue\let\verbatim@out\quiz@solns
\set@display@protect
\immediate\write\verbatim@out{%
+ \ifmakeQzSlLocal\protect\begingroup^^J\fi
\if\eqQuizType\isQZ
\ifx\prior@eqQt\@empty\else\prior@eqQt\fi
+ \ifx\eqMrkCpyArg\@empty\else
+ \protect\eqMrkSoln{\eqMrkCpyArg}\fi
\protect\eqQt{\eqFilterArg}\else
\ifx\prior@eqSQt\@empty\else\prior@eqSQt\fi
+ \ifx\eqMrkCpyArg\@empty\else
+ \protect\eqMrkSoln{\eqMrkCpyArg}\fi
\protect\eqSQt{\eqFilterArg}\fi
\protect\quizSolnHeader\if\eqQuizType\isQZ\ifx\allow@peek\eq@NO
[{\curr@quiz}{\currQuizStartPage}]\fi\fi
@@ -1187,6 +1274,7 @@
\aftergroup\ignorespaces
\else
\endverbatimwrite
+ \eq@clearMrkCpy
\ifx\@qzsolndest\@empty\else\set@display@protect
\immediate\write\verbatim@out{\eqSqSolnTrailer}%
\set@typeset@protect
@@ -1208,6 +1296,7 @@
{\protect\mbox{\sqslrtnlabel}}\string\endeqSQt%
\fi
\ifeqforpaper\protect\fpAfterSolutionsSkip\fi^^J%
+ \ifmakeQzSlLocal\protect\endgroup^^J\fi
}
\let\eqSQt\@gobble
\let\endeqSQt\relax
@@ -1225,16 +1314,12 @@
\def\includequizsolutions{\@ifstar
{\let\resetQZtsolns\relax\includequizsolutionsi}
{\def\resetQZtsolns{\global\let\include@quizsolutions\relax}%
- \includequizsolutionsi}%
-}
+ \includequizsolutionsi}}
\newcommand{\includequizsolutionsi}[1][]{%
- \filterFor{#1}\includequizsolutionsii
-}
-\def\includequizsolutionsii{%
- \include@quizsolutions
+ \filterFor{#1}\includequizsolutionsii}
+\def\includequizsolutionsii{\include@quizsolutions
\resetQZtsolns
- \let\eqFilterArg\@empty
-}
+ \let\eqFilterArg\@empty}
\newcommand\useForms{\def\aeb@FLOverride{f}}
\newcommand\useLinks{\def\aeb@FLOverride{l}}
\newcommand\restoreFLTypeDefault{\global\let\aeb@FLOverride\relax}
@@ -1247,20 +1332,20 @@
\edef\@currenvline{\on@line}%
}
\def\answers@sq{\parindent0pt
- \ifx\solutionparshape\@empty\else
- \pushEnvir\par\noindent\expandafter\popEnvir\fi
- \stepcounter{questionno}%
- \if\sqstar*\relax
- \if\aeb@FLOverride\eq@l
- \let\@Ans\Ans@sq@l\else
- \let\@Ans\Ans@sq@f\fi
- \else
- \if\aeb@FLOverride\eq@f
- \let\@Ans\Ans@sq@f\else
- \let\@Ans\Ans@sq@l\fi
- \fi
- \def\aeb@answerType{r}\@ifnextchar[{\answers@@sq}%
- {\@ifstar{\answers@@sq[\curr@quiz.\thequestionno]}{\answers@@sq[]}}}
+ \ifx\solutionparshape\@empty\else
+ \pushEnvir\par\noindent\expandafter\popEnvir\fi
+ \stepcounter{questionno}%
+ \if\sqstar*\relax
+ \if\aeb@FLOverride\eq@l
+ \let\@Ans\Ans@sq@l\else
+ \let\@Ans\Ans@sq@f\fi
+ \else
+ \if\aeb@FLOverride\eq@f
+ \let\@Ans\Ans@sq@f\else
+ \let\@Ans\Ans@sq@l\fi
+ \fi
+ \def\aeb@answerType{r}\@ifnextchar[{\answers@@sq}%
+ {\@ifstar{\answers@@sq[\curr@quiz.\thequestionno]}{\answers@@sq[]}}}
\def\manswers@sq{\parindent0pt
\@ifundefined{ifuserectforms}{}
{\if\aeb@FLOverride\eq@f\ifuserectforms
@@ -1281,78 +1366,76 @@
{\@ifstar{\answers@@sq[\curr@quiz.\thequestionno]}{\answers@@sq[]}}}
\let\sq@hwdest\@empty % hard-wired destination
\def\answers@@sq[#1]#2{%
- \xdef\aeb@numCols{#2}%
- \ifx\sq@hwdest\@empty
- \xdef\@qzsolndest{#1}\else
- \gdef\@qzsolndest{\sq@hwdest}\fi
- \if\aeb@numCols1\gdef\eq@listType{1}\expandafter\answers@sq@list
- \else
- \gdef\eq@listType{0}\expandafter\answers@@sq@tabular
- \fi{\aeb@numCols}%
-}
+ \xdef\aeb@numCols{#2}%
+ \ifx\sq@hwdest\@empty
+ \xdef\@qzsolndest{#1}\else
+ \gdef\@qzsolndest{\sq@hwdest}\fi
+ \if\aeb@numCols1\gdef\eq@listType{1}\expandafter\answers@sq@list
+ \else
+ \gdef\eq@listType{0}\expandafter\answers@@sq@tabular
+ \fi{\aeb@numCols}}
\def\setMClabelsepDefault#1{\def\eq@hspanner@default{#1}}
\def\setMClabelsep#1{\def\eq@hspanner{#1}}
\setMClabelsep{\ }\setMClabelsepDefault{\ }
\def\resetMClabelsep{\expandafter\setMClabelsep\expandafter
- {\eq@hspanner@default}}
+ {\eq@hspanner@default}}
\def\eq@lw@l{\eq@l@l\eq@hspanner}
\def\eq@l@l{\normalsize\normalfont(d)}
\def\eq@lw@f{\kern\RadioFieldSize\eq@hspanner}
-\@ifundefined{ifwithsoldoc}{\newif\ifwithsoldoc\withsoldocfalse}{}
+\@ifundefined{ifwithinsoldoc}{\newif\ifwithinsoldoc\withinsoldocfalse}{}
+\@ifundefined{ifwithinqsldoc}{\newif\ifwithinqsldoc\withinqsldocfalse}{}
\let\eq@ansChoiceArray\@empty
\def\eq@recordAnsChoice{%
- \ifx\eq@ansChoiceArray\@empty
- \edef\tmp@exp{\noexpand\g@addto@macro
- \noexpand\eq@ansChoiceArray{"\alph{quizno}"}}\else
- \edef\tmp@exp{\noexpand\g@addto@macro
- \noexpand\eq@ansChoiceArray{,"\alph{quizno}"}}\fi
- \tmp@exp
-}
-\newcommand\Ans@list[2][0]{\gdef\eq@pPTs{#1}%
- \xdef\Ans@choice{#2}\item\relax\noindent\if\eq@listType\eq@One
- \addtocounter{quizno}{-1}\@ifundefined{ifwithsoldoc}
- {\refstepcounter{quizno}}{\ifwithsoldoc\stepcounter{quizno}\else
- \refstepcounter{quizno}\fi}\fi
- \ignorespaces}
-\newenvironment{answers@sq@list}[1]
-{%
- \ifx\aeb@answerType\eq@r
- \let\endanswers\endanswers@sq@list\else
- \let\endmanswers\endanswers@sq@list\fi
- \list{\strut\@Ans}{%
- \if\sqstar*\relax
- \settowidth{\labelwidth}{\eq@lw@f}\else
- \settowidth{\labelwidth}{\eq@lw@l}\fi
- \setlength{\topsep}{-\parskip+\aboveanswersSkip}%
- \setlength{\parsep}{0pt}\setlength{\itemindent}{0pt}%
- \setlength{\itemsep}{0pt}\setlength{\partopsep}{0pt}%
- \setlength{\listparindent}{\parindent}%
- \ifnum\exerwparts@cols>1\relax
- \ifx\itsExerParts\eq@YES % dps17
- \setlength{\leftmargin}{\labelwidth}\else
- \setlength{\leftmargin}{\labelwidth+\eqemargin}\fi
- \else
- \ifx\solutionparshape\@empty
- \setlength{\leftmargin}{\labelwidth}\else
- \setlength{\leftmargin}{\labelwidth+\eqemargin}\fi\fi
- \setlength{\labelsep}{0pt}%
- \def\Ans{\Ans@list}%
- }%
-}%
-{\endlist\setcounter{quizno}{0}\eq@answersEndHook}
-\newcommand\Ans@tabular[2][0]{\gdef\eq@pPTs{#1}%
- \xdef\Ans@choice{#2}\leavevmode\@Ans
+ \ifx\eq@ansChoiceArray\@empty
+ \edef\tmp@exp{\noexpand\g@addto@macro
+ \noexpand\eq@ansChoiceArray{"\alph{quizno}"}}\else
+ \edef\tmp@exp{\noexpand\g@addto@macro
+ \noexpand\eq@ansChoiceArray{,"\alph{quizno}"}}\fi
+ \tmp@exp}
+\newcommand\Ans@list[2][0]{\gdef\eq@pPTs{#1}\xdef\Ans@choice{#2}%
+ \item\relax\noindent\if\eq@listType\eq@One
+ \addtocounter{quizno}{-1}\@ifundefined{ifwithinsoldoc}
+ {\refstepcounter{quizno}}{\ifwithinsoldoc\stepcounter{quizno}\else
+ \refstepcounter{quizno}\fi}\fi
+ \ignorespaces}
+\newenvironment{answers@sq@list}[1]{%
+ \ifx\aeb@answerType\eq@r
+ \let\endanswers\endanswers@sq@list\else
+ \let\endmanswers\endanswers@sq@list\fi
+ \list{\strut\@Ans}{%
+ \if\sqstar*\relax
+ \settowidth{\labelwidth}{\eq@lw@f}\else
+ \settowidth{\labelwidth}{\eq@lw@l}\fi
+ \setlength{\topsep}{-\parskip+\aboveanswersSkip}%
+ \setlength{\parsep}{0pt}\setlength{\itemindent}{0pt}%
+ \setlength{\itemsep}{0pt}\setlength{\partopsep}{0pt}%
+ \setlength{\listparindent}{\parindent}%
+ \ifnum\exerwparts@cols>1\relax
+ \ifx\itsExerParts\eq@YES
+ \setlength{\leftmargin}{\labelwidth}\else
+ \setlength{\leftmargin}{\labelwidth+\eqemargin}\fi
+ \else
+ \ifx\solutionparshape\@empty
+ \setlength{\leftmargin}{\labelwidth}\else
+ \setlength{\leftmargin}{\labelwidth+\eqemargin}\fi
+ \fi
+ \setlength{\labelsep}{0pt}%
+ \def\Ans{\Ans@list}%
+ }% list
+}{\endlist\setcounter{quizno}{0}\eq@answersEndHook}
+\newcommand\Ans@tabular[2][0]{\gdef\eq@pPTs{#1}\xdef\Ans@choice{#2}%
+ \leavevmode\@Ans
}
\newcommand\sqtabsep[1]{\def\eq@argi{#1}\ifx\eq@argi\@empty
\def\sq@tabsep{1.5pt}\else\def\sq@tabsep{#1}\fi}
\sqtabsep{1.5pt}
\def\sqTabPos#1{\def\sq@TabPos{[#1]}}\sqTabPos{}
\def\answers@@sq@tabular#1{%
- \ifinner % dps17
- \ifx\itsExerParts\eq@YES\par\removelastskip
- \removelastparskip\vskip\aboveanswersSkip\fi
+ \ifinner
+ \ifx\itsExerParts\eq@YES\par\removelastskip
+ \removelastparskip\vskip\aboveanswersSkip\fi
\else\par\removelastskip\removelastparskip
- \vskip\aboveanswersSkip\fi
+ \vskip\aboveanswersSkip\fi
\noindent\ifnum\exerwparts@cols>1\relax\parshape=0\fi
\tabcolsep=0pt
\eq@tmpdima=\linewidth
@@ -1398,8 +1481,8 @@
\def\linkContentWrapper{(\hfil\linkContentFormat\hfil)}%
\def\Ans@sq@l{%
\leavevmode\if\eq@listType\eq@One\stepcounter{quizno}\else
- \@ifundefined{ifwithsoldoc}{\refstepcounter{quizno}}
- {\ifwithsoldoc\stepcounter{quizno}\else
+ \@ifundefined{ifwithinsoldoc}{\refstepcounter{quizno}}
+ {\ifwithinsoldoc\stepcounter{quizno}\else
\refstepcounter{quizno}\fi}\fi\PBS\raggedright
\settowidth{\eq@tmplength}{\eq@lw@l}\sbox{\eq@tmpbox}{\eq@l@l}%
\eq@tmpdima=\wd\eq@tmpbox
@@ -1411,8 +1494,8 @@
\let\rbf@Opts\@empty
\def\Ans@sq@f{%
\if\eq@listType\eq@One\stepcounter{quizno}\else
- \@ifundefined{ifwithsoldoc}{\refstepcounter{quizno}}
- {\ifwithsoldoc\stepcounter{quizno}\else
+ \@ifundefined{ifwithinsoldoc}{\refstepcounter{quizno}}
+ {\ifwithinsoldoc\stepcounter{quizno}\else
\refstepcounter{quizno}\fi}\fi\PBS\raggedright
\settowidth{\eq@tmplength}{\eq@lw@f}%
\eq@tmpdima=\wd\eq@tmpbox%
diff --git a/texmf-dist/tex/latex/eqexam/eqexam.sty b/texmf-dist/tex/latex/eqexam/eqexam.sty
index bd6a873a..5c78732e 100644
--- a/texmf-dist/tex/latex/eqexam/eqexam.sty
+++ b/texmf-dist/tex/latex/eqexam/eqexam.sty
@@ -1,3151 +1,3780 @@
-%%
-%% This is file `eqexam.sty',
-%% generated with the docstrip utility.
-%%
-%% The original source files were:
-%%
-%% eqexam.dtx (with options: `copyright,package')
-%%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% eqexam.sty package, %%
-%% Copyright (C) 2005--2017 D. P. Story %%
-%% dpstory@uakron.edu %%
-%% %%
-%% This program can redistributed and/or modified under %%
-%% the terms of the LaTeX Project Public License 1.2 %%
-%% Distributed from CTAN archives in directory %%
-%% macros/latex/base/lppl.txt; either version 1 of the %%
-%% License, or (at your option) any later version. %%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{eqexam}
- [2017/03/16 v4.9 An Exam Construction Package (dps)]
-\def\eqexamdefReq{2017/03/16}
-\RequirePackage{ifpdf}[2006/02/20]
-\RequirePackage{ifxetex}[2006/08/21]
-\usepackage{xkeyval}
-\DeclareOptionX{usecustomdesign}{\eqcustomdesigntrue}
-\newif\ifeqcustomdesign \eqcustomdesignfalse
-\DeclareOptionX{nocustomdesign}{\let\eqe@nocustomdesign=1}
-\let\eqe@nocustomdesign=0
-\DeclareOptionX{fortextbook}{\eqfortextbooktrue}
-\newif\ifeqfortextbook \eqfortextbookfalse
-\DeclareOptionX{forinstr}{\eqforinstrtrue}
-\DeclareOptionX{forstudent}{\eqforinstrfalse}
-\newif\ifeqforinstr \eqforinstrfalse
-\DeclareOptionX{nomarginwrite}{\eqwritetomarginsfalse}
-\newif\ifeqwritetomargins\eqwritetomarginstrue
-\define@key{eqexam.sty}{cfg}[]{%
- \def\arg@i{#1}\ifx\arg@i\@empty
- \PackageWarning{eqexam}{No value for `cfg' specified}\else
- \def\ifeqexamCFG{true}\def\eqexamCFG{#1.cfg}%
- \AtEndOfPackage{\InputIfFileExists{#1.cfg}
- {\typeout{Inputting #1.cfg}}{\PackageWarning{eqexam}{%
- Cannot find configuration file #1.cfg}}}\fi
- }
-\def\ifeqexamCFG{false}
-\let\eqexamCFG\@empty
-\@for\eqe@tmp@i:={},i,ii,iii,iv,v,vi\do{%
- \edef\eqe@tmp@exp{%
- \noexpand\DeclareOptionX{myconfig\eqe@tmp@i}%
- {\noexpand\AtEndOfPackage{\expandafter\noexpand
- \csname eqemyconfig\eqe@tmp@i\endcsname}}%
- }\eqe@tmp@exp
-}
-\DeclareOptionX{pointsonleft}{\AtEndOfPackage{\PointsOnLeft}}
-\DeclareOptionX{pointsonright}{\AtEndOfPackage{\PointsOnRight}}
-\DeclareOptionX{pointsonboth}{\AtEndOfPackage{\PointsOnBothSides}}
-\DeclareOptionX{nopoints}{\AtEndOfPackage{\NoPoints}}
-\DeclareOptionX{totalsonleft}{\AtEndOfPackage{\TotalsOnLeft}}
-\DeclareOptionX{totalsonright}{\AtEndOfPackage{\TotalsOnRight}}
-\DeclareOptionX{nozerototals}{\AtEndOfPackage{\noZeroTotals}}
-\let\eqe@YES=y \let\eqe@NO=n
-\let\eqe@One=1 \let\eqe@Zero=0
-\let\eqe@Two=2 \let\eqe@Three=3 \let\eqe@Four=4
-\DeclareOptionX{nototals}{\AtEndOfPackage{\NoTotals}}
-\DeclareOptionX{noparttotals}{%
- \AtEndOfPackage{\let\eq@parttotals\eqe@NO}}
-\DeclareOptionX{parttotalsonright}{%
- \def\eqeomarginbox{\eqeomarginboxright}}
-\DeclareOptionX{parttotalsonleft}{%
- \def\eqeomarginbox{\eqeomarginboxleft}}
-\def\eqeomarginbox{\eqeomarginboxright}
-\DeclareOptionX{noseparationrule}{%
- \AtEndOfPackage{\separationruleOff}}
-\DeclareOptionX{nosummarytotals}{\let\eq@nosummarytotals\eqe@YES}
-\DeclareOptionX{coverpage}{\def\eqex@coverpage{\eqexcoverpage}%
- \setcounter{page}{0}}
-\define@choicekey+{eqexam.sty}{coverpagesumry}[\val\nr]%
- {byparts,bypages,none}{%
- \ifcase\nr\relax
- \def\sumryAnnots{\cpSumrybyparts}\or
- \def\sumryAnnots{\cpSumrybypages}\or
- \let\sumryAnnots\relax
- \fi
-}{\PackageWarning{aeb}{Bad choice for coverpagesumry, permissible values
- are byparts, bypages, and none. Try again}}
-\let\sumryAnnots\relax
-\DeclareOptionX{nospacetowork}{%
- \AtEndOfPackage{\let\eq@insertverticalspace\eqe@NO}}
-\newif\ifanswerkey \answerkeyfalse
-\DeclareOptionX{answerkey}{\AnswerKey}
-\def\AnswerKey{\answerkeytrue\eq@proofingtrue
- \eq@solutionsaftertrue}
-\newif\ifvspacewithsolns\vspacewithsolnsfalse
-\def\ifkeyalt{\csname ifvspacewithsolns\endcsname}
-\def\ifkeyOrkeyalt{\ifanswerkey
- \def\eqe@next{\csname iftrue\endcsname}\else
- \ifvspacewithsolns\def\eqe@next{\csname iftrue\endcsname}\else
- \def\eqe@next{\csname iffalse\endcsname}\fi\fi\eqe@next}
-\DeclareOptionX{vspacewithsolns}{%
- \vspacewithsolnstrue\displayworkareatrue}
-\DeclareOptionX{ftbsolns}{%
- \vspacewithsolnstrue\displayworkareatrue}
-\DeclareOptionX{useforms}{\AtEndOfPackage{\def\sqstar{*}}}
-\newif\ifallowcircmc \allowcircmcfalse
-\DeclareOptionX{allowcirc4mc}{\allowcircmctrue}
-\def\eqe@auto@chk@drivers{\ifpdf\ExecuteOptionsX{pdftex}\else
- \ifxetex\ExecuteOptionsX{xetex}\fi\fi}
-\newif\ifeqeonline \eqeonlinefalse
-\DeclareOptionX{online}{\eqe@auto@chk@drivers
- \let\eq@online\eqe@YES\eqeonlinetrue\ExecuteOptionsX{links}}
-\DeclareOptionX{pdf}{\eqe@auto@chk@drivers\let\load@web\eqe@YES}
-\DeclareOptionX{links}{\eqe@auto@chk@drivers
- \let\load@web\eqe@YES\let\load@exerquiz\eqe@YES}
-\DeclareOptionX{email}{\eqe@auto@chk@drivers
- \let\use@email\eqe@YES\ExecuteOptionsX{online}}
-\newif\ifeqobeylocalversion \eqobeylocalversionfalse
-\DeclareOptionX{obeylocalversions}{\eqobeylocalversiontrue}
-\DeclareOptionX{usexkv}{\let\eq@usexkeys\eqe@YES}
-\let\eq@usexkeys\eqe@YES
-\let\eq@renditionOptions\@empty
-\let\eq@max@selected\@empty \let\eq@ren@selected\@empty
-\DeclareOptionX{max}{\def\eq@max@selected{#1}%
- \g@addto@macro\eq@renditionOptions{\numVersions{#1}}}
-\DeclareOptionX{rendition}{\def\eq@ren@selected{#1}%
- \g@addto@macro\eq@renditionOptions{\forVersion{#1}}}
-\DeclareOptionX{allowrandomize}{\AtEndOfPackage{\inputRandomizeChoices}}
-\def\inputRandomizeChoices{\InputIfFileExists{aebrandom.def}
- {\typeout{inputting aebrandom.def}}{cannot find aebrandom.def}}
-\let\eq@online\eqe@NO
-\def\ifisOnline{\ifx\eq@online\eqe@YES}
-\let\use@email\eqe@NO
-\let\load@web\eqe@NO
-\let\load@exerquiz\eqe@NO
-\def\sqLinks{\def\sqstar{}}\sqLinks
-\def\sqForms{\def\sqstar{*}}
-\def\NoSpaceToWork{\let\eq@insertverticalspace\eqe@NO}
-\def\SpaceToWork{\let\eq@insertverticalspace\eqe@YES}
-\let\eq@nototals\eqe@NO
-\let\eq@nosummarytotals\eqe@NO
-\let\eq@parttotals\eqe@YES
-\let\eqx@separationrule\eqe@YES
-\let\eq@insertverticalspace\eqe@YES
-\let\eqex@coverpage\relax
-\def\@reportpoints{0}
-\let\marginpoints\@empty
-\let\totalsbox=\hfil
-\@ifundefined{ifequsecolor}{\newif\ifequsecolor\equsecolorfalse}{}
-\DeclareOptionX{forpaper}{\equsecolorfalse\eqforpapertrue
- \PassOptionsToPackage{monochrome}{\eq@ColorPackage}}
-\DeclareOptionX{forcolorpaper}{\equsecolortrue\eqforpapertrue} % for print
-\DeclareOptionX{preview}{\previewtrue}
-\define@key{eqexam.sty}{webOpts}[]{\def\eqe@webOpts{#1,\eqDriverName}}
-\def\eqe@webOpts{\eqDriverName}
-\define@key{eqexam.sty}{exerquizOpts}[]{\def\eqe@eqOpts{#1,nodljs}}
-\def\eqe@eqOpts{nodljs}
-\DeclareOptionX{nosolutions}{\eq@nolinktrue\eq@nosolutionstrue
- \displayworkareatrue}
-\DeclareOptionX{nohiddensolutions}{\eq@globalshowsolutionstrue}
-\DeclareOptionX{noHiddensolutions}%
- {\eq@globalshowsolutionstrue\AtBeginDocument{\def\Hidesymbol{h}}}
-\DeclareOptionX{solutionsafter}{\eq@solutionsaftertrue
- \displayworkareafalse}
-\DeclareOptionX{solutionsonly}{%
- \solutionsonlytrue\answerkeytrue\displayworkareafalse
- \AtEndOfPackage{\therearesolutionstrue\let\exerSolnsHeadnToc\relax}}
-\DeclareOptionX{proofing}{\eq@proofingtrue}
-\newcommand{\showproofing}{\eq@proofingtrue}
-\newcommand{\hideproofing}{\eq@proofingfalse}
-\newif\ifaebshowgrayletters\aebshowgraylettersfalse
-\DeclareOptionX{showgrayletters}%
- {\AtEndOfPackage{\aebshowgrayletterstrue}}
-\newif\ifdisplayworkarea \displayworkareafalse
-\IfFileExists{xcolor.sty}%
-{\def\eq@ColorPackage{xcolor}\def\eqe@color@opt{table}%
- \PassOptionsToPackage{xcolor}{table}}
-{\def\eq@ColorPackage{color}\let\eqe@color@opt\@empty}
-\DeclareOptionX{noxcolor}{\def\eq@ColorPackage{color}}
-\newif\if@eqeuseclassmaketitle \@eqeuseclassmaketitlefalse
-\DeclareOptionX{useclassmaketitle}{\@eqeuseclassmaketitletrue}
-\newif\if@bypasseqexamheading \@bypasseqexamheadingfalse
-\DeclareOptionX{bypasspkgpagestyle}{\@bypasseqexamheadingtrue
- \ExecuteOptionsX{nototals}}
-\DeclareOptionX{dvipsone}{%
- \def\eqe@drivernum{0}\def\eqDriverName{dvipsone}%
- \PassOptionsToPackage{\eq@ColorPackage}{dvipsone}}
-\DeclareOptionX{dvips}{\def\eqe@drivernum{0}\def\eqDriverName{dvips}%
- \PassOptionsToPackage{\eq@ColorPackage}{dvips}}
-\DeclareOptionX{pdftex}{\def\eqe@drivernum{1}\def\eqDriverName{pdftex}%
- \PassOptionsToPackage{\eq@ColorPackage}{pdftex}}
-\DeclareOptionX{dvipdfm}{%
- \def\eqe@drivernum{2}\def\eqDriverName{dvipdfm}%
- \PassOptionsToPackage{\eq@ColorPackage}{dvipdfm}}
-\DeclareOptionX{dvipdfmx}{\def\eqe@drivernum{2}%
- \def\eqDriverName{dvipdfmx}%
- \PassOptionsToPackage{\eq@ColorPackage}{dvipdfmx}}
-\DeclareOptionX{xetex}{\def\eqe@drivernum{2}\def\eqDriverName{xetex}%
- \PassOptionsToPackage{\eq@ColorPackage}{xetex}}
-\DeclareOptionX{textures}{%
- \def\eqe@drivernum{3}\def\eqDriverName{textures}%
- \PassOptionsToPackage{\eq@ColorPackage}{textures}}
-\DeclareOptionX*{%
- \PassOptionsToPackage{\CurrentOption}{\eq@ColorPackage}}
-\def\eqe@drivernum{5}
-\let\eqDriverName\@empty
-\newif\ifeq@solutionsafter \eq@solutionsafterfalse
-\newif\ifsolutionsonly\solutionsonlyfalse
-\newif\ifeq@hidesolution \eq@hidesolutionfalse
-\newif\ifeq@globalshowsolutions \eq@globalshowsolutionsfalse
-\newif\ifeq@nosolutions \eq@nosolutionsfalse
-\newif\ifeq@proofing \eq@proofingfalse
-\newif\ifeq@nolink \eq@nolinkfalse
-\@ifundefined{ifpreview}{\newif\ifpreview \previewfalse}{}
-\newif\ifeqforpaper \eqforpaperfalse
-\def\eqe@csarg#1#2{\expandafter#1\csname#2\endcsname}
-\@for\eqe@tmp@i:={},i,ii,iii,iv,v,vi\do{\eqe@csarg
- \edef{eqemyconfig\eqe@tmp@i}{\noexpand
- \InputIfFileExists{eqexam\eqe@tmp@i.cfg}{}{}}%
- \eqe@tmp@exp
-}
-\InputIfFileExists{web.cfg}{}{}
-\InputIfFileExists{eqecus.opt}{}{}
-\InputIfFileExists{rendition.cfg}{}{}
-\InputIfFileExists{exambuilder.cfg}{}{}
-\ProcessOptionsX
-\AtEndOfPackage{\selectedMC}
-\edef\eqe@tmpexp{\noexpand
-\RequirePackage{\eq@ColorPackage}}\eqe@tmpexp
-\@ifpackageloaded{xcolor}{\AtEndOfPackage{\let\CT@cell@color\relax
- \let\CT@arc@\relax}%
- \@ifpackagelater{xcolor}{2004/07/04}{}{\PackageError{eqexam}{%
- *************************************************\MessageBreak
- * Your Version of `xcolor.sty' is too old!\MessageBreak
- * You need the version from 2004/07/04 or newer\MessageBreak
- * or use: \string\usepackage[noxcolor]{eqexam}\MessageBreak
- * or \string\documentclass[noxcolor]{article}\MessageBreak
- *************************************************}{}%
- }%
-}{}
-\if\eqe@nocustomdesign1\eqcustomdesignfalse\fi
-\long\def\eqe@IWO#1{\immediate\write#1}
-\newcommand{\showAllAnsAtEnd}{%
- \makeAnsEnvForSolnsAtEnd\eqTopOfSolnPage
- \answerkeytrue\eq@proofingtrue
- \eq@solutionsaftertrue\vspacewithsolnstrue
- \displayworkareafalse\withsoldoctrue
-}
-\newcommand{\makeAnsEnvForSolnsAtEnd}{%
- \let\answers\answers@sq
- \let\endanswers\endanswers@sq
- \let\manswers\manswers@sq
- \let\endmanswers\endmanswers@sq
-}
-\newcommand{\solAtEndFormatting}[1]{\def\eqeAEFormatting{#1}}
-\let\eqeAEFormatting\@empty
-\def\writeAllAnsAtEnd{\ifsolutionsonly\else
- \let\quiz@solns\ex@solns
- \eqe@IWO\quiz@solns{\string\showAllAnsAtEnd}%
- \ifx\eqeAEFormatting\@empty\else
- \eqe@IWO\quiz@solns{\string\eqeAEFormatting}\fi
- \fi
-}
-\newcommand{\setSolnMargins}[1]{\setlength\eqemargin{#1}}
-\def\altSetSolnMargins#1{\def\alt@SetSolnMargins{#1}}
-\let\alt@SetSolnMargins\@empty
-\def\writeBeginEqeQuestions{%
- \ifsolutionsonly\else
- \let\quiz@solns\ex@solns
- \ifx\alt@SetSolnMargins\@empty
- \writeToSolnFile{\string\setSolnMargins{\the\eqemargin}}\else
- \writeToSolnFile{\alt@SetSolnMargins}\fi
- \writeToSolnFile{\string\noindent\string\begin{eqequestions}}%
- \fi
-}
-\newcommand{\setBtwnExamSkip}[1]{\gdef\btwnExamSkipAmt{#1}%
- \def\btwnExamSkip{\ifdim#1=0pt\else
- \vskip#1\relax\fi}}
-\setBtwnExamSkip{6pt}
-\def\writeEndEqeQuestions{%
- \ifsolutionsonly\else
- \let\quiz@solns\ex@solns
- \eqe@IWO\quiz@solns{\string\end{eqequestions}^^J}%
- \writeToSolnFile{\string\btwnExamSkip^^J}%
- \fi
-}
-\ifvspacewithsolns
- \answerkeyfalse\eq@proofingfalse\eq@solutionsafterfalse
- \eq@nolinkfalse\eq@nosolutionsfalse\displayworkareatrue
-\fi
-\let\savedeq@online\eq@online
-\let\savedifeq@solutionsafter\ifeq@solutionsafter
-\let\savedifeq@hidesolution\ifeq@hidesolution
-\let\savedifeq@globalshowsolutions\ifeq@globalshowsolutions
-\let\savedifeq@nosolutions\ifeq@nosolutions
-\let\savedifeq@proofing\ifeq@proofing
-\let\savedifeq@nolink\ifeq@nolink
-\let\savedifpreview\ifpreview
-\let\savedifeqforpaper\ifeqforpaper
-\let\ifnosolutions\ifeq@nosolutions
-\RequirePackage{amstext,amssymb}
-\@ifundefined{if@fleqn}{\let\fleqnOn\relax\let\fleqnOff\relax}
- {\def\fleqnOn{\@fleqntrue}\def\fleqnOff{\@fleqnfalse}}
-\RequirePackage{comment}
-\AtEndDocument{\includeexersolutions}
-\@ifpackageloaded{web}{\let\load@web\eqe@YES}{%
- \ifx\load@web\eqe@YES\ifnum\eqe@drivernum=5
- \PackageInfo{eqexam}{You have not selected a driver %
- for eqexam. Perhaps the \MessageBreak
- driver is introduced through web.cfg%
- }\fi\expandafter\RequirePackage\expandafter[\eqe@webOpts]{web}%
- \edef\@pdfcreator{\@pdfcreator, The eqexam Package}\fi
-}
-\@ifpackageloaded{exerquiz}{\let\load@exerquiz\eqe@YES}{%
- \let\symbolchoice\@gobble
- \ifx\load@exerquiz\eqe@YES\expandafter
- \RequirePackage\expandafter[\eqe@eqOpts]{exerquiz}[2011/08/30]
- \let\importdljs\eqe@YES\let\execjs\eqe@YES
- \fi
-}
-\@ifpackageloaded{eforms}{}{%
- \let\symbolchoice\@gobble
-}
-\def\eqDvipsone{dvipsone}
-\@ifpackageloaded{hyperref}
- {\ifx\eqDriverName\eqDvipsone
- \renewcommand\@pdfviewparams{ null null null}\fi
- }{\let\textorpdfstring\@firstoftwo}
-\let\eq@online\savedeq@online
-\let\ifeq@solutionsafter\savedifeq@solutionsafter
-\def\ifsolutionsafter{\ifeq@solutionsafter} % user interface
-\let\ifeq@hidesolution\savedifeq@hidesolution
-\let\ifeq@globalshowsolutions\savedifeq@globalshowsolutions
-\let\ifeq@nosolutions\savedifeq@nosolutions
-\let\ifeq@proofing\savedifeq@proofing
-\let\ifeq@nolink\savedifeq@nolink
-\let\ifpreview\savedifpreview
-\let\ifeqforpaper\savedifeqforpaper
-\RequirePackage{calc}
-\RequirePackage{pifont}
-\RequirePackage{array}
-\RequirePackage{verbatim}
-\RequirePackage{multicol}
-\setlength\columnseprule{.4pt}
-\raggedcolumns\multicolsep=3pt
-\newcommand{\setmulticolprob}{%
- \setlength{\linewidth}{\linewidth+\eqemargin}}
-\edef\eqe@reqPack{\ifeqfortextbook\noexpand\RequirePackage{eso-pic}\else
-\relax\fi}
-\eqe@reqPack
-\@ifundefined{ifsolutionsAtEnd}
- {\newif\ifsolutionsAtEnd\solutionsAtEndtrue}{}
-\ifvspacewithsolns\solutionsAtEndtrue\fi
-\ifanswerkey\solutionsAtEndfalse\fi
-\ifeq@nosolutions\solutionsAtEndfalse\fi
-\ifeq@solutionsafter\solutionsAtEndfalse\fi
-\@ifundefined{eqemargin}{\newlength{\eqemargin}}{}
-\providecommand{\prbDecPt}[1]{\def\eqe@decPointPrb{#1}}
-\def\eqe@decPointPrb{.}\def\eqe@dpsepPrb{\ }
-\providecommand{\prbPrtsep}[1]{\def\eqe@prtsepPrb{#1}}
-\def\eqe@prtsepPrb{\ }
-\providecommand{\prbNumPrtsep}[1]{\def\eqe@hspannerPrb{#1}}
-\def\eqe@hspannerPrb{\ }
-\newcommand{\eqexammargin}[2][\normalsize\normalfont\bfseries]{%
- \settowidth{\eqemargin}{#1#2\eqe@decPointPrb\eqe@hspannerPrb}}
-\eqexammargin{00}
-\def\eqe@hspannerSoln{\ } % space after prob number
-\providecommand{\solNumPrtsep}[1]{\def\eqe@hspannerSoln{#1}}
-\newcommand{\eqeSetExamPageParams}{%
- \setlength{\headheight}{12pt}
- \setlength{\topmargin}{-.5in}
- \setlength{\headsep}{20pt}
- \setlength{\oddsidemargin}{0pt}
- \setlength{\evensidemargin}{0pt}
- \setlength{\marginparsep}{11pt}
- \setlength{\marginparwidth}{35pt}
- \setlength{\footskip}{11pt}
-}
-\newcommand{\eqExamPageLayout}{%
- \setlength\textwidth\paperwidth
- \addtolength{\textwidth}{-2in}
- \addtolength{\textwidth}{-\oddsidemargin}
- \setlength\textheight{\paperheight}
- \addtolength\textheight{-2in}
- \addtolength\textheight{-\headheight}
- \addtolength\textheight{-\headsep}
- \addtolength\textheight{-\topmargin}
- \addtolength\textheight{-\footskip}
-}
-\ifeqcustomdesign\else
-\eqeSetExamPageParams
-\eqExamPageLayout
-\fi
-\newcommand{\ps@eqExamheadings}
-{%
- \renewcommand{\@oddhead}{%
- {\normalfont\normalsize\ifnum\value{page}<2
- \hfil\else\eqExamRunHead\fi}}%
- \renewcommand{\@evenhead}{\@oddhead}
- \renewcommand{\@oddfoot}{\settotalsbox\runExamFooter}
- \renewcommand{\@evenfoot}{\@oddfoot}
-}
-\raggedbottom
-\newcounter{eqpointsofar}
-\newcounter{eqpointsthispage}
-\newcounter{eq@numparts}
-\newcounter{eq@count}
-\newtoks\partNames \partNames={}
-\newlength{\eq@tmplengthA}
-\newbox{\eq@pointbox}
-\newlength{\eq@pointboxtotalheight}
-\newlength{\eqetmplengtha}
-\newlength{\eqetmplengthb}
-\def\PointsOnLeft{\def\@reportpoints{1}\let\marginpoints\eqleftmargin}
-\def\PointsOnRight{\def\@reportpoints{2}\relax
- \let\marginpoints\eqrightmarginbox}
-\def\PointsOnBothSides{\def\@reportpoints{3}\relax
- \let\marginpoints\eqbothmargins}
-\newif\ifeqe@nopoints \eqe@nopointsfalse
-\def\NoPoints{\if\isInExamEnv\eqe@NO
- \eqe@nopointstrue\def\@reporttotals{0}\let\totalsbox=\hfil
- \let\marginpoints\@empty\let\eq@nosummarytotals\eqe@YES\else
- \PackageWarning{eqexam}{The \string\NoPoints\space ignored;
- it needs to be executed\MessageBreak outside of an
- exam environment}\fi}
-\def\TotalsOnLeft{\def\@reporttotals{1}\def\totalsbox{\totalsboxleft}}
-\def\TotalsOnRight{\def\@reporttotals{2}\def\totalsbox{\totalsboxright}}
-\def\noZeroTotals{\let\eqe@zeroTotalsAllowed\eqe@NO}
-\def\allowZeroTotals{\let\eqe@zeroTotalsAllowed\eqe@YES}
-\allowZeroTotals
-\def\NoTotals{\def\@reporttotals{0}\let\totalsbox=\hfil}
-\def\SummaryTotalsOn{\let\eq@nosummarytotals\eqe@NO}
-\def\SummaryTotalsOff{\let\eq@nosummarytotals\eqe@YES}
-\def\eoeTotalOff{\let\eq@parttotals\eqe@NO}
-\def\eoeTotalOn{\let\eq@parttotals\eqe@YES}
-\def\separationruleOn{\let\eqx@separationrule\eqe@YES}
-\def\separationruleOff{\let\eqx@separationrule\eqe@NO}
-\def\AllowFitItIn{\global\let\eq@fititin\eqfititin}
-\def\DoNotFitItIn{\global\let\eq@fititin\@gobble}
-\def\NoSolutions{\eq@nolinktrue\eq@nosolutionstrue
- \displayworkareatrue}
-\@onlypreamble\NoSolutions
-\def\vspacewithkeyOn{\keepdeclaredvspacingtrue}
-\def\vspacewithkeyOff{\keepdeclaredvspacingfalse}
-\newif\ifdispl@yPoints\displ@yPointstrue
-\newcommand{\displayPointsOn}{\displ@yPointstrue}
-\newcommand{\displayPointsOff}{\displ@yPointsfalse}
-\newif\ifl@stDispl@yPoints\l@stDispl@yPointsfalse
-\def\encloseProblemsWith#1{%
- \ifsolutionsonly\excludecomment{#1}\else
- \includecomment{#1}\fi
-}
-\providecommand{\proofingsymbolColor}[1]{\def\@proofingsymbolColor{#1}}
-\proofingsymbolColor{red}
-\providecommand{\instructionsColor}[1]{\def\@instructionsColor{#1}}
-\instructionsColor{blue}
-\providecommand{\eqCommentsColor}[1]{\def\@eqCommentsColor{#1}}
-\eqCommentsColor{blue}
-\providecommand{\eqCommentsColorBody}[1]{\def\@eqCommentsColorBody{#1}}
-\eqCommentsColorBody{black}
-\providecommand{\universityColor}[1]{\def\webuniversity@color{#1}}
-\universityColor{blue}
-\providecommand{\titleColor}[1]{\def\webtitle@color{#1}}
-\titleColor{black}
-\providecommand{\authorColor}[1]{\def\webauthor@color{#1}}
-\authorColor{black}
-\providecommand{\subjectColor}[1]{\def\websubject@color{#1}}
-\subjectColor{blue}
-\providecommand{\linkcolor}[1]{\def\@linkcolor{#1}}
-\linkcolor{blue}
-\providecommand{\nolinkcolor}[1]{\def\@nolinkcolor{#1}}
-\nolinkcolor{black}
-\providecommand{\eqEndExamTotalColor}[1]{\def\endexamtotal@color{#1}}
-\eqEndExamTotalColor{black}
-\newcommand\fillinColor[1]{\def\eq@fillinColor{#1}}\fillinColor{red}
-\providecommand{\sectionColor}[1]{\def\web@sectionsColorOld{#1}
- \def\aeb@sectioncolor{#1}}
-\sectionColor{blue}
-\newcommand{\forceNoColor}{%
- \proofingsymbolColor{black}\instructionsColor{black}
- \eqCommentsColor{black}\universityColor{black}
- \titleColor{black}\authorColor{black}
- \subjectColor{black}\linkcolor{black}
- \nolinkcolor{black}\fillinColor{black}
- \eqEndExamTotalColor{black}
- \if\load@web\eqe@YES\sectionColor{black}\fi
-}
-\def\examNum#1{\def\nExam{#1}}
-\examNum{1}
-\def\Exam{\ifAB{\eq@VersionAtext}{\eq@VersionBtext}}
-\def\sExam{\ifAB{\eq@shortVersionAtext}{\eq@shortVersionBtext}}
-\def\VersionAtext#1{\def\eq@VersionAtext{#1}}
-\def\VersionBtext#1{\def\eq@VersionBtext{#1}}
-\def\shortVersionAtext#1{\def\eq@shortVersionAtext{#1}}
-\def\shortVersionBtext#1{\def\eq@shortVersionBtext{#1}}
-\VersionAtext{Exam~\nExam--Version A}
-\VersionBtext{Exam~\nExam--Version B}
-\shortVersionAtext{Exam~\nExam A}
-\shortVersionBtext{Exam~\nExam B}
-\newtoks\eqtemptokena
-\newtoks\eqtemptokenb
-\def\numVersions#1{\ifnum#1>26\def\eq@nVersions{26}%
- \PackageWarning{eqexam}{The value of \string\numVersions\space is
- too large. \MessageBreak Choose a natural number less than 27}
- \else\def\eq@nVersions{#1}\fi}
-\newcommand{\longTitleText}[1][]{%
- \ifeqglobalversion\let\eq@selectedVersion@save\eq@selectedVersion
- \else\let\eq@selectedVersion@save\relax\fi
- \uppercase{\def\eqe@localTextTitle{#1}}%
- \ifx\eqe@localTextTitle\@empty\else
- \expandafter\forVersion\expandafter{\eqe@localTextTitle}\fi
- \eqe@contTitleText{\Exam}{\endlongTitleText}%
-}
-\def\endlongTitleText{l}
-\newcommand{\shortTitleText}[1][]{%
- \ifeqglobalversion\let\eq@selectedVersion@save\eq@selectedVersion
- \else\let\eq@selectedVersion@save\relax\fi
- \uppercase{\def\eqe@localTextTitle{#1}}%
- \ifx\eqe@localTextTitle\@empty\else
- \expandafter\forVersion\expandafter{\eqe@localTextTitle}\fi
- \eqe@contTitleText{\sExam}{\endshortTitleText}%
-}
-\def\endshortTitleText{s}
-\def\eqe@contTitleText#1#2{%
- \setcounter{eq@count}{0}%
- \eqtemptokena={}\let\endtitleMarker#2
- \@gatherTitleText{#1}%
-}
-\def\@gatherTitleText#1#2{%
- \def\eqe@argii{#2}
- \if\endtitleMarker\eqe@argii
- \ifnum\value{eq@count}>\eq@nVersions\let\eqe@next\relax
- \else\def\eqe@next{\eq@shortTitlesFix{#1}}\fi
- \else
- \stepcounter{eq@count}
- \eqtemptokenb=\expandafter{#2}
- \xdef#1{\the\eqtemptokena\expandafter\noexpand
- \csname v\Alph{eq@count}\endcsname{\the\eqtemptokenb}}
- \xdef\sExam{\the\eqtemptokena\expandafter\noexpand
- \csname v\Alph{eq@count}\endcsname{\the\eqtemptokenb}}
- \eqtemptokena=\expandafter{#1}
- \ifnum\value{eq@count}<\eq@nVersions
- \def\eqe@next{\@gatherTitleText{#1}}%
- \else
- \def\eqe@next{%
- \if\endtitleMarker\endlongTitleText
- \expandafter\eqe@absorbTokensLong
- \else
- \expandafter\eqe@absorbTokensShort
- \fi
- }%
- \fi
- \fi
- \eqe@next
-}
-\long\def\eqe@absorbTokensLong#1\endlongTitleText{%
- \protected@xdef\Exam{\Exam}\ifx\eq@selectedVersion@save\relax
- \eqe@offVersion\else\expandafter\forVersion\expandafter
- {\eq@selectedVersion@save}\fi}
-\long\def\eqe@absorbTokensShort#1\endshortTitleText{%
- \protected@xdef\sExam{\sExam}\ifx\eq@selectedVersion@save\relax
- \eqe@offVersion\else\expandafter\forVersion\expandafter
- {\eq@selectedVersion@save}\fi}
-\def\eq@shortTitlesFix#1{%
- \PackageWarning{eqexam}{You have defined an insufficient number
- of titles\MessageBreak for the number of versions declared in
- \string\numVersions.\MessageBreak Please fix the problem}%
- \stepcounter{eq@count}%
- \if\endtitleMarker\endlongTitleText
- \edef\eqe@tmp{\noexpand\@gatherTitleText{\noexpand#1}
- {??---Title \# \the\value{eq@count}---??}%
- \noexpand\endlongTitleText}
- \else
- \edef\eqe@tmp{\noexpand\@gatherTitleText{\noexpand#1}
- {T\#\the\value{eq@count}??}\noexpand\endshortTitleText}
- \fi
- \addtocounter{eq@count}{-1}%
- \eqe@tmp
-}
-\def\ifAB#1#2{\if\eq@selectedVersion A#1%
- \else\if\eq@selectedVersion B#2\fi\fi}
-\def\eq@replaceToken#1{#1}
-\newif\ifeqglobalversion \eqglobalversionfalse
-\newif\ifeqlocalversion \eqlocalversionfalse
-\newif\if@templocalversion \@templocalversionfalse
-\def\eqe@initializeMultiVersions{%
- \let\save@message\message\let\message\@gobble
- \@tfor\eqe@tmp:=ABCDEFGHIJKLMNOPQRSTUVWXYZ\do{%
- \expandafter\let\csname v\eqe@tmp\endcsname\@gobble
- \expandafter\excludecomment\expandafter{ver\eqe@tmp}%
- \expandafter\let\csname Afterver\eqe@tmp Comment\endcsname\relax
- }\let\message\save@message
-}
-\AtBeginDocument{\let\eqe@initializeMultiVersions\relax}
-\let\eqe@@onVersion\@empty
-\def\eqe@onVersion{\g@addto@macro\eqe@@onVersion}
-\let\eqe@@offVersion\@empty
-\def\eqe@offVersion{\g@addto@macro\eqe@@offVersion}
-\let\eqe@@holdTemp\@empty
-\def\eqe@holdTemp{\g@addto@macro\eqe@@holdTemp}
-\def\eqe@showArg#1{#1}
-\def\eqe@turnOnComment#1{%
- \csarg\let{v#1}\eqe@showArg
- \edef\exp@temp{\noexpand\includecomment{ver#1}}\exp@temp
-}
-\def\eqe@turnOffComment#1{%
- \csarg\let{v#1}\@gobble
- \edef\exp@temp{\noexpand\excludecomment{ver#1}}\exp@temp
- \csarg\let{Afterver#1Comment}\relax
-}
-\def\forVersion#1%
-{%
- \eqe@initializeMultiVersions
- \let\eqe@@onVersion\@empty
- \let\eqe@@offVersion\@empty
- \global\eqglobalversiontrue
- \setcounter{eq@count}{0}%
- \uppercase{\edef\eq@selectedVersion{#1}}%
- \edef\selVersion{\eq@selectedVersion}%
- \@ifundefined{eq@nVersions}{\PackageInfo{eqexam}{%
- \string\numVersions\space has not been declared, \MessageBreak
- taking the number of versions to be 2.}\def\eq@nVersions{2}}{}%
- \loop
- \stepcounter{eq@count}%
- \expandafter\if\Alph{eq@count}\eq@selectedVersion
- \xdef\eq@nSelectedVersion{\the\value{eq@count}}%
- \setcounter{eq@count}{27}\fi
- \ifnum\value{eq@count}<26\repeat
- \ifnum\eq@nSelectedVersion >\eq@nVersions
- \PackageError{eqexam}
- {The value of \string\forVersion
- \space(\eq@selectedVersion)\MessageBreak
- exceeds the value of \string\numVersions\space
- (\eq@nVersions)}%
- {Decrease the value of \string\forVersion.}%
- \fi
- \setcounter{eq@count}{0}%
- \let\save@message\message\let\message\@gobble
- \loop
- \stepcounter{eq@count}%
- \csarg\let{After\Alph{eq@count}Comment}\relax
- \lowercase
- {%
- \if#1\alph{eq@count}%
- \eqe@turnOnComment{\Alph{eq@count}}%
- \edef\temp@exp{\noexpand
- \eqe@turnOnComment{\Alph{eq@count}}}%
- \expandafter\eqe@onVersion\expandafter{\temp@exp}%
- \edef\temp@exp{\noexpand
- \eqe@turnOffComment{\Alph{eq@count}}}%
- \expandafter\eqe@offVersion\expandafter{\temp@exp}%
- \else
- \eqe@turnOffComment{\Alph{eq@count}}%
- \fi
- }%
- \ifnum\value{eq@count}<\eq@nVersions\repeat
- \let\message\save@message
-}
-\AtEndOfPackage{\numVersions{26}\forVersion{A}%
- \eq@renditionOptions}
-\def\selectVersion#1#2{% #1 \le #2
- \xdef\nLocalSelection{#1}\xdef\nLocalVersions{#2}%
- \let\needsModArith\eqe@YES
- \ifeqobeylocalversion\ifx\nLocalSelection\@empty\else
- \let\needsModArith\eqe@NO\fi\fi
- \edef\exer@solnheadhook{%
- \string\selectVersion{#1}{#2}}%
- \let\save@message\message\let\message\@gobble
- \eqe@@onVersion
- \ifx\eqe@@holdTemp\@empty\else
- \eqe@@onVersion\eqe@@holdTemp
- \let\eqe@@holdTemp\@empty
- \fi
-\ifx\needsModArith\eqe@YES
- \ifeqglobalversion\ifnum\eq@nSelectedVersion>\nLocalVersions
- \eqe@@offVersion
- {\count0=\eq@nSelectedVersion \count2=\count0
- \advance\count0by-1 \divide\count0by\nLocalVersions
- \multiply\count0by\nLocalVersions %\count2=\eq@nSelectedVersion
- \advance\count2by-\count0
- \xdef\nLocalSelection{\the\count2 }%
- \ifeqobeylocalversion\else
- \global\@templocalversiontrue
- \global\eqobeylocalversiontrue\fi}%
- \global\let\eqe@@holdTemp\@empty
- \fi\fi
-\fi
- \ifeqobeylocalversion
- \global\eqlocalversiontrue
- \setcounter{eq@count}{0}%
- \ifx\nLocalSelection\@empty
- \def\nLocalSelection{\eq@nSelectedVersion}%
- \fi
- \ifnum\nLocalSelection>\nLocalVersions
- {\count0=\nLocalSelection
- \count2=\count0
- \advance\count0by-1 \divide\count0by\nLocalVersions
- \multiply\count0by\nLocalVersions
- \advance\count2by-\count0
- \xdef\nLocalSelection{\the\count2 }}%
- \fi
- \let\save@message\message\let\message\@gobble
- \loop
- \stepcounter{eq@count}%
- \csarg\let{Afterver\Alph{eq@count}Comment}\relax
- \lowercase
- {%
- \ifnum\value{eq@count}=\nLocalSelection
- \eqe@turnOnComment{\Alph{eq@count}}%
- \edef\temp@exp{\noexpand
- \eqe@turnOffComment{\Alph{eq@count}}}%
- \expandafter\eqe@holdTemp\expandafter{\temp@exp}%
- \else
- \eqe@turnOffComment{\Alph{eq@count}}%
- \fi
- }%
- \ifnum\value{eq@count}<\nLocalVersions\repeat
- \let\message\save@message
- \fi
- \if@templocalversion\global\eqobeylocalversionfalse\fi
- \@templocalversionfalse
- \let\message\save@message
-}
-\@ifpackageloaded{web}{}{%
- \@ifpackageloaded{hyperref}{}{\let\texorpdfstring\@firstoftwo}%
- \let\web@save@title\title
- \def\title{\@ifnextchar[{\@web@title}{\@web@title[]}}
- \def\@web@title[#1]#2{\gdef\webtitle{#2}%
- \@ifundefined{hypersetup}{}{\hypersetup{pdftitle={#2}}}%
- \def\webArg{#1}\ifx\webArg\@empty\gdef\shortwebtitle{#2}\else
- \gdef\shortwebtitle{#1}\fi\web@save@title{#2}}
- \let\web@saved@author\author
- \def\author#1{\gdef\webauthor{#1}%
- \@ifundefined{hypersetup}{}{\hypersetup{pdfauthor={#1}}}%
- \web@saved@author{#1}}
- \def\subject{\@ifnextchar[{\@subject}{\@subject[]}}
- \def\@subject[#1]#2{\def\webArg{#1}%
- \ifx\webArg\@empty\gdef\shortwebsubject{#2}\else
- \gdef\shortwebsubject{#1}\fi\gdef\websubject{#2}%
- \@ifundefined{hypersetup}{}{\hypersetup{pdfsubject={#2}}}}
- \def\email#1{\gdef\webemail{#1}}
- \def\keywords#1{\gdef\webkeywords{#1}%
- \@ifundefined{hypersetup}{}{\hypersetup{pdfkeywords={#1}}}}
- \def\university#1{\gdef\webuniversity{#1}}
- \def\copyrightyears#1{\gdef\webcopyrightyears{#1}}
- \def\version#1{\gdef\web@version@value{#1}%
- \edef\webversion{\ifx\web@version@value\@empty\else
- \noexpand\web@versionlabel\noexpand\
- \noexpand\web@version@value\fi}%
- }
- \let\web@version@value\@empty
- \def\versionLabel#1{\def\web@versionlabel{#1}}
- \versionLabel{Version}
- \def\web@toc{Table of Contents}
- \def\web@continued{cont.}
- \title{}\author{}\email{}\subject{}\keywords{}\university{}
- \providecommand{\optionalPageMatter}[2][]{%
- \def\optionalpagematter{#2}}
- \def\optionalpagematter{}
-}
-\def\duedate#1{\def\theduedate{#1}}
-\duedate{}
-\def\duedate#1{\def\theduedate{#1}}
-\duedate{}
-\newcommand\thisterm{%
- \ifnum\month<6Spring\else
- \ifnum\month<8Summer\else
- \ifnum\month>8Fall\else
- \ifnum\day>25Fall\else
- Summer\fi\fi\fi\fi
-}
-\newcommand{\examAnsKeyLabel}[1]{%
- \def\@examAnsKeyLabel{\ifanswerkey\space #1\fi}}
-\examAnsKeyLabel{Answer Key}
-\newcommand\examNameLabel[1]{\gdef\@examNameLabel{#1\@examAnsKeyLabel}}
-\examNameLabel{Name:}
-\newcommand{\idinfoHighlight}[1]{\def\eqe@idinfohl{#1}}
-\idinfoHighlight{\underbar}
-\newcommand\eqExamName[2][]{%
- \def\eqExamName@argi{#1}\def\eqExamName@argii{#2}}
-\def\eq@ExamName{\bgroup
- \settowidth\eq@tmplengthA{\@examNameLabel\ }%
- \@tempdima=\eqExamName@argii\relax
- \advance\@tempdima by-\eq@tmplengthA
- \eqe@idinfohl{\makebox[\eqExamName@argii][l]{\@examNameLabel}}%
- \expandafter\insTxtFieldIdInfo\expandafter[\eqExamName@argi]%
- {\@tempdima}{IdInfo.Name}\egroup}
-\eqExamName[\Ff\FfRequired]{2.25in}
-\newcommand\examSIDLabel[1]{\gdef\@examSIDLabel{#1}}
-\examSIDLabel{SID:}
-\newcommand\eqSID[2][]{\def\eqSID@argi{#1}\def\eqSID@argii{#2}}
-\def\eq@SID{\bgroup\settowidth\eq@tmplengthA{\@examSIDLabel\ }%
- \@tempdima=\eqSID@argii\relax\advance\@tempdima by-\eq@tmplengthA
- \eqe@idinfohl{\makebox[\eqSID@argii][l]{\@examSIDLabel}}%
- \expandafter\insTxtFieldIdInfo\expandafter[\eqSID@argi]%
- {\@tempdima}{IdInfo.SID}\egroup}
-\eqSID[\Ff\FfRequired]{2.25in}
-\newcommand\examEmailLabel[1]{\gdef\@examEmailLabel{#1}}
-\examEmailLabel{Email:}
-\newcommand\eqEmail[2][]{%
- \def\eqExam@argi{#1}\def\eqEmail@argii{#2}}
-\gdef\eq@Email{\bgroup\settowidth\eq@tmplengthA{\@examEmailLabel\ }%
- \@tempdima=\eqEmail@argii\relax\advance\@tempdima by-\eq@tmplengthA
- \underbar{\makebox[\eqEmail@argii][l]{\@examEmailLabel}}%
- \expandafter\insTxtFieldIdInfo\expandafter[\eqEmail@argi]%
- {\@tempdima}{IdInfo.email}\egroup}
-\eqEmail{2.25in}
-\def\insTxtFieldIdInfo[#1]#2#3{%
- \@ifundefined{@quiz}{}{\if\eq@online\eqe@YES
- \ifeq@nosolutions\ifeq@solutionsafter\else
- \raisebox{-1bp}{\makebox[0pt][r]{%
- \textField[\BC{}#1]{#3}{#2}{11bp}}}%
- \fi\fi\fi
- }%
-}
-\def\SubmitInfo#1#2{%
- \def\EqExam@SubmitURL{#1}\def\@EmailInstr{#2}%
-}
-\def\EmailCourseName#1{\def\@EmailCourseName{#1}}
-\EmailCourseName{\websubject}
-\def\EmailExamName#1{\def\@EmailExamName{#1}}
-\EmailExamName{\webtitle}
-\def\EmailSubject#1{\def\@EmailSubject{#1}}
-\EmailSubject{}
-\def\ServerRetnMsg#1{\def\@ServerRetnMsg{#1}}
-\ServerRetnMsg{}
-\def\SubmitButtonLabel#1{\def\@SubmitButtonLabel{#1}}
-\SubmitButtonLabel{Submit}
-\let\priorSubmitJS\@gobble
-\let\postSubmitJS\@empty
-\def\SubmitButton
-{%
- \ifx\use@email\eqe@YES\ifeq@nosolutions\ifeq@solutionsafter\else
- \makebox[0pt][l]{\pushButton
- [\CA{\@SubmitButtonLabel}\A{\JS{%
- var _eqEok2Submit = true;\r
- var aSubmitFields = new Array("eqexam", "IdInfo");\r
- \priorSubmitJS\r
- if(_eqEok2Submit) this.submitForm("\EqExam@SubmitURL",
- true, false, aSubmitFields);\r
- \postSubmitJS
- }}]{Submit}{1.5in}{16bp}}%
- \makebox[0pt][l]{\textField[\F\FHidden\DV{\@EmailInstr}
- \V{\@EmailInstr}]{IdInfo.mailTo}{11bp}{11bp}}%
- \makebox[0pt][l]{\textField[\F\FHidden\DV{\@EmailCourseName}
- \V{\@EmailCourseName}]{IdInfo.courseName}{11bp}{11bp}}%
- \makebox[0pt][l]{\textField[\F\FHidden\DV{\@EmailExamName}
- \V{\@EmailExamName}]{IdInfo.examName}{11bp}{11bp}}%
- \makebox[0pt][l]{\textField[\F\FHidden\DV{\@EmailSubject}
- \V{\@EmailSubject}]{IdInfo.subject}{11bp}{11bp}}%
- \makebox[0pt][l]{\textField[\F\FHidden\DV{\@ServerRetnMsg}
- \V{\@ServerRetnMsg}]{IdInfo.retnmsg}{11bp}{11bp}}%
- \fi\fi\fi
-}
-\def\thequizno{\if\probstar*\Alph{quizno}\else\alph{quizno}\fi}
-\def\linkContentFormat{%
- \if\probstar*\Alph{quizno}\else\alph{quizno}\fi}
-\def\linkContentWrapper{(\hfil\linkContentFormat\hfil)}%
-\def\Ans@r@l@Defaults
-{%
- \BC{}\S{S}\W{1}\Ff{\FfNoToggleToOff}
- \textSize{12}\textColor{0 g}
-}
-\newcommand{\optsRadioBtnf}[1]{\def\eqe@optsRadiof{#1}}
-\newcommand{\optsRadioBtnl}[1]{\def\eqe@optsRadiol{#1}}
-\let\eqe@optsRadiof\@empty\let\eqe@optsRadiol\@empty
-\def\eqExam@Ans@sq@l{\leavevmode
- \if\eq@listType1\stepcounter{quizno}\else\ifwithsoldoc
- \stepcounter{quizno}\else\refstepcounter{quizno}\fi\fi
- \PBS\raggedright\settowidth{\eq@tmplength}{\eq@lw@l}%
- \sbox{\eq@tmpbox}{\eq@l@l}\eq@tmpdima=\wd\eq@tmpbox
- \def\link@@Content{\linkContentWrapper}%
- \hangindent=\eq@tmplength\hangafter=1\relax
- \edef\fieldName{%
- \if\probstar*eqexam.\curr@quiz.\theeqquestionnoi.part\thepartno%
- \else
- eqexam.\curr@quiz.\theeqquestionnoi%
- \fi
- }%
- \if\eq@online\eqe@YES\relax
- \makebox[0pt][l]{%
- \radio@@Button{\presets{\eqe@optsRadiol}}{\fieldName}%
- {\eq@tmpdima}{\RadioFieldSize}{\Ans@choice\alph{quizno}}%
- {\eq@protect\A}{\eq@setWidgetProps\eq@l@check@driver}%
- {\Ans@r@l@Defaults\every@RadioButton\every@qRadioButton}}%
- \else
- \edef\@linkcolor{\@nolinkcolor}%
- \fi
- \ifeq@nosolutions\edef\@linkcolor{\@nolinkcolor}\fi
- \textcolor{\@linkcolor}{\makebox[\eq@tmpdima]{\link@@Content}}%
- \Ans@proofing{\eq@tmpdima}%
- \eq@hspanner\ignorespaces
-}
-\def\eqExam@Ans@sq@f{\if\eq@listType1\stepcounter{quizno}\else
- \ifwithsoldoc\stepcounter{quizno}\else\refstepcounter{quizno}\fi\fi
- \PBS\raggedright\settowidth{\eq@tmplength}{\eq@lw@f}%
- \eq@tmpdima=\wd\eq@tmpbox%
- \hangindent=\eq@tmplength\hangafter=1\relax
- \if\eq@online\eqe@NO\previewtrue
- \insertGrayLetters
- \Ans@sq@f@driver
- \else
- \ifanswerkey\previewtrue
- \Ans@sq@f@driver
- \else
- \edef\fieldName{%
- \if\probstar*eqexam.\curr@quiz.\theeqquestionnoi.%
- part\thepartno%
- \else
- eqexam.\curr@quiz.\theeqquestionnoi%
- \fi
- }\insertGrayLetters
- \radio@@Button{\presets{\eqe@optsRadiof}}%
- {\fieldName}{\RadioFieldSize}%
- {\RadioFieldSize}{\Ans@choice\alph{quizno}}{\eq@protect\A}%
- {\eq@setWidgetProps\eq@RadioCheck@driver}%
- {\@@Ans@sq@f@Defaults\Ans@sq@f@Actions\every@RadioButton
- \every@sqRadioButton\insert@circlesymbol}%
- \fi
- \fi
- \Ans@proofing{\RadioFieldSize}%
- \eq@hspanner\ignorespaces
-}
-\newcommand{\optsCkBxf}[1]{\def\eqe@optscbf{#1}}
-\newcommand{\optsCkBxl}[1]{\def\eqe@optscbl{#1}}
-\let\eqe@optscbl\@empty\let\eqe@optscbf\@empty
-\def\eqExam@Ans@ck@sq@l{\leavevmode
- \if\eq@listType1\stepcounter{quizno}\else
- \ifwithsoldoc\stepcounter{quizno}\else\refstepcounter{quizno}\fi\fi
- \PBS\raggedright\settowidth{\eq@tmplength}{\eq@lw@l}%
- \sbox{\eq@tmpbox}{\eq@l@l}\eq@tmpdima=\wd\eq@tmpbox
- \def\link@@Content{\linkContentWrapper}%
- \hangindent=\eq@tmplength\hangafter=1\relax
- \edef\fieldName{%
- \if\probstar*eqexam.\curr@quiz.\theeqquestionnoi.%
- part\thepartno.\alph{quizno}%
- \else
- eqexam.\curr@quiz.\theeqquestionnoi.\alph{quizno}%
- \fi
- }%
- \if\eq@online\eqe@YES\relax
- \makebox[0pt][l]{\check@@Box{\presets{\eqe@optscbl}}{\fieldName}%
- {\eq@tmpdima}{\RadioFieldSize}{\Ans@choice\alph{quizno}}%
- {\eq@protect\A}{\eq@setWidgetProps\eq@l@check@driver}%
- {\Ans@r@l@Defaults\every@RadioButton\every@qRadioButton}}%
- \else
- \edef\@linkcolor{\@nolinkcolor}%
- \fi
- \ifeq@nosolutions\def\@linkcolor{\@nolinkcolor}\fi
- \textcolor{\@linkcolor}{\makebox[\eq@tmpdima]{\link@@Content}}%
- \Ans@proofing{\eq@tmpdima}%
- \eq@hspanner\ignorespaces
-}
-\def\eqExam@Ans@ck@sq@f{\if\eq@listType1\stepcounter{quizno}\else
- \ifwithsoldoc\stepcounter{quizno}\else\refstepcounter{quizno}\fi\fi
- \PBS\raggedright\settowidth{\eq@tmplength}{\eq@lw@f}%
- \eq@tmpdima=\wd\eq@tmpbox%
- \hangindent=\eq@tmplength\hangafter=1\relax
- \if\eq@online\eqe@NO\previewtrue
- \insertGrayLetters
- \Ans@sq@f@driver
- \else
- \ifanswerkey\previewtrue
- \Ans@sq@f@driver
- \else
- \edef\fieldName{%
- \if\probstar*eqexam.\curr@quiz.\theeqquestionnoi.%
- part\thepartno.\alph{quizno}%
- \else
- eqexam.\curr@quiz.\theeqquestionnoi.\alph{quizno}%
- \fi
- }\insertGrayLetters
- \mbox{\check@@Box{\presets{\eqe@optscbf}}{\fieldName}%
- {\RadioFieldSize}{\RadioFieldSize}%
- {\Ans@choice\alph{quizno}}{\eq@protect\A}%
- {\eq@setWidgetProps\eq@RadioCheck@driver}%
- {\@@Ans@sq@f@Defaults\Ans@sq@f@Actions\every@RadioButton
- \every@sqRadioButton}}%
- \fi
- \fi
- \Ans@proofing{\RadioFieldSize}%
- \eq@hspanner\ignorespaces
-}
-\def\optsMlTextField#1{\def\eqe@optsmltf{#1}}
-\let\eqe@optsmltf\@empty
-\def\eqExamPriorVspace#1{%
- \edef\fieldName{%
- \if\probstar*eqexam.\curr@quiz.%
- \theeqquestionnoi.part\thepartno.solution%
- \else
- eqexam.\curr@quiz.\theeqquestionnoi.solution%
- \fi
- }%
- \nobreak\noindent\textField[\BC{}\presets{\eqe@optsmltf}
- \Ff\FfMultiline]{\fieldName}{\linewidth}{#1}\@gobble
-}
-\@ifpackageloaded{exerquiz}{%
- \let\Ans@sq@l\eqExam@Ans@sq@l
- \let\Ans@sq@f\eqExam@Ans@sq@f
- \let\Ans@ck@sq@l\eqExam@Ans@ck@sq@l
- \let\Ans@ck@sq@f\eqExam@Ans@ck@sq@f
- \def\eqexheader@wrapper{\makebox[0pt][r]{%
- \hypertarget{qex.\the@exno}{\eqexheader}}}%
- \if\eq@online\eqe@YES\relax
- \newcounter{@cntfillin}%
- \let\eqPriorVspace\eqExamPriorVspace
- \fi
-}%
-{%
- \input{eqalone.def}
- \input{eqexam.def}
- \@ifl@ter{def}{eqexam}{\eqexamdefReq}{}
- {\PackageWarningNoLine{eqexam}
- {This version of eqexam requires eqexam.def\MessageBreak
- dated \eqexamdefReq\space or later}}
- \def\eqexheader@wrapper{\makebox[0pt][r]{\eqexheader}}
-}
-\AtBeginDocument{%
- \ifvspacewithsolns\writeAllAnsAtEnd\else
- \ifeqfortextbook\writeAllAnsAtEnd\fi\fi
-}
-\vspacewithkeyOff
-\def\selectedMC{\useRectForMC}
-\ifallowcircmc
- \font\eqe@lcir=lcircle10 at 12pt
- \bgroup
- \setbox0=\hbox{\eqe@lcir h}
- \xdef\eqe@cirDiam{\the\wd0}
- \@tempdima=.5\wd0
- \xdef\eqe@cirRadius{\the\@tempdima}
- \egroup
- \def\circ@Glyph#1#2{\hbox{\smash{\raisebox{\eqe@cirRadius}%
- {\makebox[\eqe@cirDiam]{\llap{\rlap{\eqe@lcir#1}%
- \hskip#2\relax}}}}}}
- \def\eqe@BboxCirc#1#2{\hbox{%
- \textcolor{\previewColor}{\circ@Glyph{h}{0pt}}}}
- \def\circProofingForCirc{\centerWidget\RadioFieldSize
- \lower\eqcenterWidget\circ@Glyph{x}{1.4pt}}
- \if\eq@online\eqe@YES
- \def\useCircForMC{\let\Bbox\eqe@BboxCirc\useMCCircles}
- \def\selectedMC{\useCircForMC}
- \@ifundefined{eqe@BboxRect}
- {\def\useRectForMC{\let\Bbox\ef@Bbox\useMCRects}}
- {\def\useRectForMC{\let\Bbox\eqe@BboxRect\useMCRects}}
- \else % if not online
- \@ifundefined{eqe@BboxRect}
- {\def\useRectForMC{\let\Bbox\ef@Bbox}}
- {\def\useRectForMC{\let\Bbox\eqe@BboxRect}}
- \def\useCircForMC{\let\Bbox\eqe@BboxCirc}
- \def\selectedMC{\useCircForMC}
- \fi
- \def\useCircForProof{\symbolchoice{circle}%
- \proofingsymbol{\circProofingForCirc}}
-\else
- \if\eq@online\eqe@YES
- \def\useCircForMC{\let\Bbox\eqe@BboxCirc\useMCCircles}
- \@ifundefined{eqe@BboxRect}
- {\def\useRectForMC{\let\Bbox\ef@Bbox\useMCRects}}
- {\def\useRectForMC{\let\Bbox\eqe@BboxRect\useMCRects}}
- \else
- \@ifundefined{eqe@BboxRect}
- {\def\useRectForMC{\let\Bbox\ef@Bbox}}
- {\def\useRectForMC{\let\Bbox\eqe@BboxRect}}
- \def\useCircForMC{\useRectForMC}
- \def\selectedMC{\useRectForMC}
- \fi
- \let\useCircForProof\relax
-\fi
-\newif\ifuserectforms
-\def\useRectForMS{\userectformstrue}
-\def\useCircForMS{\userectformsfalse}
-\newcommand{\useCheckForProof}{\symbolchoice{check}%
- \proofingsymbol{\ding{52}}}
-\useCheckForProof
-\newcommand{\useCrossForProof}{\symbolchoice{cross}%
- \proofingsymbol{\raisebox{-1pt}{\rlap{\kern-1pt\Large\ding{56}}}}}
-\def\MCcolor{black}
-\def\Ans@sq@l@driver{\edef\@linkcolor{\MCcolor}%
- \Rect{\makebox[\eq@tmpdima]{\linkContentWrapper}}%
- \Ans@proofing{\eq@tmpdima}%
-}
-\def\Ans@sq@f@driver{%
- \centerWidget\RadioFieldSize
- \leavevmode\lower\eqcenterWidget\Bbox %\eqe@Bbox
- {\RadioFieldSize}{\RadioFieldSize}%
- \Ans@proofing{\RadioFieldSize}%
-}
-\def\eq@sqsllabel{\string\textbf{Solution to Quiz:}}
-\def\sqsllabel{\eq@sqsllabel}
-\let\quiz@solns\ex@solns
-\newcommand{\preExamSolnHead}{\goodbreak\noindent}
-\newcommand{\examSolnHeadFmt}[1]{\textbf{#1}}
-\newcommand{\postExamSolnHead}{\par\medskip}
-\newcommand{\writeToSolnFile}[1]{%
- \let\quiz@solns\ex@solns
- \set@display@protect
- \eqe@IWO\quiz@solns{#1}%
- \set@typeset@protect
-}
-\def\eqe@writetoSolns#1{%
- \set@display@protect
- \eqe@IWO\quiz@solns{\string\preExamSolnHead
- \string\examSolnHeadFmt{#1}\string\postExamSolnHead}%
- \set@typeset@protect
-}
-\def\eqe@writetoAux#1{%
- \set@display@protect
- \eqe@IWO\@auxout{#1}%
- \set@typeset@protect
-}
-\def\Ans@sq@l@Actions{}
-\def\Ans@sq@f@Actions{}
-\def\Ans@proofing
-#1{%
- \ifeq@proofing\if\Ans@choice1\relax
- \llap{\rlap{\,\@proofingsymbol}\hskip#1\relax}%
- \fi\fi
-}
-\def\eq@ExamLastPage{\csname eqExamLastPage\endcsname}
-\newcommand{\nPagesOnExam}{\csname eqExamLastPage\endcsname}
-\newcommand{\nPagesOfQues}{\ifvspacewithsolns
- \csname eqExamQuesLastPage\endcsname\else
- \csname eqExamLastPage\endcsname\fi}
-\newcommand{\nPagesOfSols}{\def\eqExamNumPagesSolns{0}%
- \csarg\ifx{eqExamLastPage}\relax\else
- \csarg\ifx{eqExamLastPage}\relax\else
- {\count\z@=\nPagesOnExam\relax\advance
- \count\z@-\nPagesOfQues\relax
- \xdef\eqExamNumPagesSolns{\the\count\z@}}\fi\fi
- \eqExamNumPagesSolns
-}
-\newcommand{\lastPageOfExam}[1]{\pageref{#1PageEnd}}
-\newcommand{\firstPageOfExam}[1]{\pageref{#1PageBegin}}
-\newcommand{\eqe@defNumRefii}[1]{%
- \@ifundefined{hyperref}{\let\@getsecondOf\@secondoftwo}
- {\let\@getsecondOf\@secondoffive}%
- \@ifundefined{r@#1}{%
- \csarg\gdef{nRefii@#1}{0}}{%
- \expandafter\xdef\csname nRefii@#1\endcsname
- {\expandafter\expandafter\expandafter
- \@getsecondOf\csname r@#1\endcsname}%
- }%
-}
-\def\eqe@numRefii#1{%
- \csarg\ifx{nRefii@#1}\relax 0\else
- \@nameuse{nRefii@#1}\fi}
-\newcommand{\numLastPageOfExam}[1]{\eqe@numRefii{#1PageEnd}}
-\newcommand{\numFirstPageOfExam}[1]{\eqe@numRefii{#1PageBegin}}
-\newcommand{\makeRefsNums}{%
- \@ifundefined{thePartNames}{}{\begingroup
- \def\\##1{\typeout{processing ##1}%
- \eqe@defNumRefii
- {##1PageEnd}\eqe@defNumRefii{##1PageBegin}}%
- \thePartNames
- \endgroup}%
-}
-\AtBeginDocument{\makeRefsNums}
-\newcommand{\lheadeqe}[1]{\def\eq@lhead{#1}}
-\lheadeqe{\shortwebsubject/\shortwebtitle}
-\newcommand{\cheadeqe}[1]{\def\eq@chead{#1}}
-\cheadeqe{-- Page \arabic{page} of {\nPagesOnExam} --}
-\newcommand{\rheadeqe}[1]{\def\eq@rhead{#1}}
-\rheadeqe{\eq@ExamName}
-\@ifpackageloaded{fancyhdr}{}{%
- \let\lhead\lheadeqe
- \let\chead\cheadeqe
- \let\rhead\rheadeqe
-}
-\newcommand{\runExamHeader}{\eq@lhead\hfill\eq@chead\hfill\eq@rhead}
-\newcommand\eqExamRunHead{%
- \addtolength\textwidth{\oddsidemargin}%
- \noindent\hspace*{-\oddsidemargin}\makebox[\textwidth]
- {\runExamHeader}%
-}
-\newcommand{\lfooteqe}[1]{\def\eq@lfoot{#1}}
-\lfooteqe{}
-\newcommand{\cfooteqe}[1]{\def\eq@cfoot{#1}}
-\cfooteqe{}
-\newcommand{\rfooteqe}[1]{\def\eq@rfoot{#1}}
-\rfooteqe{}
-\newcommand{\runExamFooter}{\eq@lfoot\hfill\eq@cfoot\hfill\eq@rfoot}
-\newcommand{\lheadSol}[1]{\def\eq@lheadSol{#1}}
-\lheadSol{\shortwebsubject/\shortwebtitle}
-\newcommand{\cheadSol}[1]{\def\eq@cheadSol{#1}}
-\cheadSol{-- Page \arabic{page} of {\eq@ExamLastPage} --}
-\newcommand{\rheadSol}[1]{\def\eq@rheadSol{#1}}
-\rheadSol{SOLUTIONS}
-\newcommand{\runExamHeaderSol}
- {\eq@lheadSol\hfill\eq@cheadSol\hfill\eq@rheadSol}
-\def\eq@solutionshook
-{%
- \gdef\eqExamRunHead{\addtolength\textwidth{\oddsidemargin}%
- \noindent\hspace*{-\oddsidemargin}\makebox[\textwidth]
- {\runExamHeaderSol}}%
-}
-\newcommand\maketitledesign
-{%
- \makebox[\textwidth]{\normalsize
- \shortstack[l]{\strut\websubject\\\@date}\hfill
- \shortstack[c]{\webtitle\\\strut\@altTitle}\hfill
- \shortstack[l]{\strut\eq@ExamName\\\webauthor}}%
-}
-\def\altTitle#1{\def\@altTitle{#1}}
-\let\@altTitle\@empty
-\def\eqemaketitle
-{%
- \EQEcalculateAllTotals
- \begingroup
- \noindent%\hspace*{-\oddsidemargin}%
- \raisebox{.7in}[0pt][0pt]{\SubmitButton}%
- \maketitledesign
- \endgroup
-}
-\ifeqfortextbook
- \@ifpackageloaded{web}{\let\maketitle\web@save@maketitle}{}%
-\else
- \if@eqeuseclassmaketitle
- \@ifpackageloaded{web}{\let\maketitle\web@save@maketitle}{}%
- \else
- \let\maketitle\eqemaketitle
- \fi
-\fi
-\newcommand\placeCoverPageLogo[3]{%
- \def\eqe@insertLogo{\hbox to0pt{%
- \hspace*{#1}\smash{\raisebox{#2}{#3}}\hss}}}
-\let\eqe@insertLogo\relax
-\def\eqexcoverpage{%
- \begingroup
- \pagenumbering{roman}
- \eqe@insertLogo
- \eqexcoverpagedesign
- \endgroup\newpage
- \pagenumbering{arabic}
-}
-\newcommand{\coverpagesubject}[1]{\def\coverpage@subject{#1}}
-\let\coverpage@subject\@empty
-\def\eqexamsubject{\ifx\coverpage@subject\@empty\websubject
- \else\coverpage@subject\fi}
-\newcommand{\coverpageUniversityFmt}[1]{%
- \def\eqex@coverpageUniversityFmt{#1}}
-\coverpageUniversityFmt{\bfseries\large}
-\newcommand{\coverpageSubjectFmt}[1]{%
- \def\eqex@coverpageSubjectFmt{#1}}
-\coverpageSubjectFmt{\bfseries\large}
-\newcommand{\coverpageTitleFmt}[1]{%
- \def\eqex@coverpageTitleFmt{#1}}
-\coverpageTitleFmt{\bfseries\large}
-\newcommand\cpCID[1]{\def\cp@@CID{#1}}
-\let\cp@@CID\@empty
-\newcommand{\cpSetCIDWidth}[1]{\bgroup\setlength{\@tempdima}{#1}
- \xdef\cpCID@argi{\the\@tempdima}\egroup}
-\def\cp@CID{\bgroup\settowidth\eq@tmplengthA{\cp@@CID}%
- \@tempdima=\cpCID@argi\relax
- \advance\@tempdima-\eq@tmplengthA
- \eqe@idinfohl{\makebox[\cpCID@argi][l]{\cp@@CID}}\egroup}
-\cpSetCIDWidth{2.25in}
-\def\eqeSumryVert{\def\eqe@SumryVert{\par\vfill}%
- \let\eqe@SumryHoriz\relax
- \def\eqe@@SumryVert{\vspace{\stretch{-1}}\bigskip}}
-\def\eqeSumryHoriz{\def\eqe@SumryHoriz{\hfill}\let\eqe@SumryVert\relax
- \let\eqe@@SumryVert\relax}
-\eqeSumryHoriz
-\def\eqe@coverPageNaming{0}
-\newcommand{\useUIPartNames}{\def\eqe@coverPageNaming{1}}
-\newcommand{\useCustomPartNames}{\def\eqe@coverPageNaming{2}}
-\newcommand{\customNaming}[2]{\@namedef{userCustom#1}{#2}}
-\newcommand{\cpSetNameAndIDWidth}[1]{\bgroup
- \setlength{\@tempdima}{#1}%
- \xdef\cp@SetNameAndIDWidth{\the\@tempdima}\egroup}
-\cpSetNameAndIDWidth{.45\textwidth}
-\newcommand{\cpEnclNameAndID}[1]{\def\cp@EnclNameAndID{#1}}
-\let\cp@EnclNameAndID\@empty
-\newcommand{\cpSetHghtFrstLn}[1]{\def\cp@HghtFrstLn{#1}}
-\def\cp@HghtFrstLn{0pt}
-\def\cp@setHghtFrstLn{\rule[\cp@HghtFrstLn]{0pt}{0pt}}
-\newcommand\cpNameAndID{\noindent
- \edef\eqExamName@argii{\cp@SetNameAndIDWidth}%
- \edef\eqSID@argii{\cp@SetNameAndIDWidth}%
- \edef\cpCID@argi{\cp@SetNameAndIDWidth}%
- \cp@EnclNameAndID{\parbox[b]{\cp@SetNameAndIDWidth}{\parindent0pt
- \cp@setHghtFrstLn\eq@ExamName\\[2ex]
- \ifx\cp@@CID\@empty\eq@SID\else\cp@CID\fi\\[2ex]
- \ifx\use@email\eqe@YES\eq@Email\\[2ex]\fi
- \textcolor{\webauthor@color}{\webauthor}, \@date\vskip0pt}}}
-\newcommand{\eqexcoverpagedesign}
-{%
- \begingroup
- \parindent0pt
- \thispagestyle{empty}
- \vspace*{.1\textheight}
- \noindent%\hspace*{-\oddsidemargin}%
- \makebox[\linewidth]{\parbox{\linewidth}%
- {\eqex@coverpageUniversityFmt
- \color{\webuniversity@color}%
- \centering\webuniversity}}
- \par\vspace{.1\textheight}
- \noindent%\hspace*{-\oddsidemargin}%
- \makebox[\linewidth]{\parbox{\linewidth}%
- {\eqex@coverpageSubjectFmt
- \color{\websubject@color}%
- \centering\eqexamsubject}}
- \par\vspace{\bigskipamount}
- \noindent%\hspace*{-\oddsidemargin}%
- \makebox[\linewidth]{\parbox{\linewidth}%
- {\eqex@coverpageTitleFmt
- \color{\webtitle@color}%
- \centering\webtitle}}
- \par\vspace{\stretch{1}}
- \optionalpagematter
- \par\vspace{\stretch{1}}\cpNameAndID
- \eqe@SumryHoriz\eqe@SumryVert
- \sumryAnnots
- \endgroup
-}
-\newcommand{\cpSumryHeader}{\textbf{Exam Record}}
-\newcommand{\cpSumryPts}{\,\text{pts}}
-\newcommand{\cpSumryPage}{Page}
-\newcommand{\cpSumryTotal}{Total:}
-\newcommand{\cpSumryGrade}{Grade:}
-\newcommand{\cpSetSumryWidth}[1]{\bgroup\setlength{\@tempdima}{#1}
- \xdef\cp@SetSumryWidth{\the\@tempdima}\egroup}
-\cpSetSumryWidth{.5\textwidth}
-\newcommand{\cpUsefbox}{\let\cp@Usefbox\fbox}
-\cpUsefbox
-\newcommand{\cpNofbox}{\let\cp@Usefbox\mbox}
-\newcommand{\cprulelength}{1.5in}
-\def\cp@IsertNaming#1{%
- \ifcase\eqe@coverPageNaming
- #1\or\@nameuse{userFriendly#1}\or
- \@nameuse{userCustom#1}\else#1\fi
-}
-\newcommand{\cpSumrybyparts}{%
- \eqe@@SumryVert\cp@Usefbox{%
- \ifx\cp@Usefbox\fbox
- \def\cp@sumryWdth{\cp@SetSumryWidth-2\fboxrule-2\fboxsep}\else
- \def\cp@sumryWdth{\cp@SetSumryWidth}\fi
- \begin{minipage}[b]{\cp@sumryWdth}\kern0pt
- \begin{flushleft}
- \setlength{\eqetmplengtha}{\cprulelength}%
- \edef\eqe@cprulelength{\the\eqetmplengtha}%
- \csarg\ifx{NumberOfParts}\relax
- \else
- \count2=0
- \medskip
- \cpSumryHeader\par\parskip\bigskipamount
- \def\\##1{\advance\count2by\csname ##1total\endcsname
- \underbar{\makebox[0pt][l]{%
- \cp@IsertNaming{##1}}\hspace*{\eqe@cprulelength}}%
- / $\eqe@ptsFmt{\csname ##1total\endcsname}%
- \cpSumryPts$\par}\thePartNames
- \fi
- \underbar{\makebox[0pt][l]{\cpSumryTotal}%
- \hspace{\eqe@cprulelength}}/
- $\eqe@ptsFmt{\the\count2\relax}\cpSumryPts$ \par
- \underbar{\makebox[0pt][l]{\cpSumryGrade}%
- \hspace{\eqe@cprulelength}}%
- \ifx\cp@Usefbox\fbox\medskip\fi
- \end{flushleft}\kern0pt
- \end{minipage}}\par
-}
-\newcommand{\cpSumrybypages}{%
- \eqe@@SumryVert\cp@Usefbox{%
- \ifx\cp@Usefbox\fbox
- \def\cp@sumryWdth{\cp@SetSumryWidth-2\fboxrule-2\fboxsep}\else
- \def\cp@sumryWdth{\cp@SetSumryWidth}\fi
- \begin{minipage}[b]{\cp@sumryWdth}\kern0pt
- \begin{flushleft}
- \setlength{\eqetmplengtha}{\cprulelength}%
- \edef\eqe@cprulelength{\the\eqetmplengtha}%
- \csarg\ifx{NumberOfParts}\relax
- \else\medskip\count0=0\relax\count2=0\relax
- \cpSumryHeader\par\parskip\bigskipamount
- \ifsolutionsAtEnd
- \@ifundefined{eqExamQuesLastPage}{\def\NUMPAGES{0}}
- {\edef\NUMPAGES{\@nameuse{eqExamQuesLastPage}}}%
- \else
- \@ifundefined{eqExamLastPage}{\def\NUMPAGES{0}}
- {\edef\NUMPAGES{\@nameuse{eqExamLastPage}}}%
- \fi
- \@whilenum\count0<\NUMPAGES\relax\do{%
- \advance\count0by1\relax
- \@ifundefined{Page\the\count0total}{\count4=0\relax}
- {\count4=\@nameuse{Page\the\count0total}\relax}%
- \csarg\ifx{Page\the\count0spilltotal}\relax
- \else\advance\count4by\csname%
- Page\the\count0spilltotal\endcsname\relax\fi
- \advance\count2by\count4\relax\underbar{%
- \makebox[0pt][l]{\cpSumryPage~\the\count0}%
- \hspace*{\eqe@cprulelength}}/
- $\eqe@ptsFmt{\the\count4\relax}%
- \cpSumryPts$\csarg\ifx{Page\the\count0spilltotal}\relax
- \else\ $(\@nameuse{Page\the\count0spilltotal}%
- \cpSumryPts+\@nameuse{Page\the\count0total}%
- \cpSumryPts)$\fi\par
- }%
- \fi
- \underbar{\makebox[0pt][l]{\cpSumryTotal}%
- \hspace{\eqe@cprulelength}}/
- $\eqe@ptsFmt{\the\count2\relax}\cpSumryPts$\par
- \underbar{\makebox[0pt][l]{\cpSumryGrade}%
- \hspace{\eqe@cprulelength}}%
- \ifx\cp@Usefbox\fbox\medskip\fi
- \end{flushleft}\kern0pt
- \end{minipage}}\par
-}
-\AtBeginDocument{\eqex@coverpage}
-\def\@marktotalvalue{\global\let\eqe@innermarkpts\relax
- \if@bypasseqexamheading\else\def\eqe@marktxt{%
- \theeqpointvalue\@nameuse{eqExam}\theeq@numparts}%
- \ifx\endparts\endexercise@parts@tabular
- \xdef\eqe@innermarkpts{\noexpand\mark{\eqe@marktxt}}\else
- \mark{\eqe@marktxt}\fi\fi}
-\def\probvalue#1#2{\addtocounter{eqpointvalue}{#1}%
- \ifdispl@yPoints\marginpoints{#1}{#2}\fi
- \@marktotalvalue}
-\newcommand{\widthtpboxes}{35pt}
-\newcommand{\marginboxdesign}[2][]{%
- \parbox{\widthtpboxes}{\tabcolsep=0pt\relax
- \begin{tabular}{|c|}\hline
- \vrule height15pt width0pt#1\\\hline
- \makebox[\widthtpboxes-2\fboxrule]{#2}\\\hline
- \end{tabular}%
- }%
-}
-\newcommand{\eqleftmarginbox}[2]{\makebox[0pt][r]{%
- \setlength\tabcolsep{0pt}%
- \raisebox{-.5\height}[0pt][0pt]{%
- \marginboxdesign{\marginpointsboxtext{#1}{#2}}%
- }\hspace*{\marginparsep}\hspace*{\eqemargin}}%
-}
-\providecommand{\ptsLabel}[1]{\def\eqptsLabel{#1}}\ptsLabel{pts}
-\providecommand{\ptLabel}[1]{\def\eqptLabel{#1}}\ptLabel{pt}
-\newcommand{\eachLabel}[1]{\def\eqeachLabel{#1}}\eachLabel{ea.}
-\newcommand{\pointsLabel}[1]{%
- \def\eqpointsLabel{#1}}\pointsLabel{points}
-\newcommand{\pointLabel}[1]{%
- \def\eqpointLabel{#1}}\pointLabel{point}
-\def\pointsAsText{\def\eqe@ptsFmt{\text}}
-\let\eqe@ptsFmt\relax
-\@onlypreamble\pointsAsText
-\newcommand{\marginpointtext}[2]{\ifnum#2=0\leftmarginPtsTxt{#1}\else
- \leftmarginPtsEaTxt{#2}\fi
-}
-\newcommand{\leftmarginPtsTxt}[1]{(\small$\eqe@ptsFmt{#1}^{\text{%
- \ifnum#1=1\relax\eqptLabel\else\eqptsLabel\fi}}$)}
-\newcommand{\leftmarginPtsEaTxt}[1]{(\small$\eqe@ptsFmt{#1}_{\text{%
- \eqeachLabel}}^{\text{\ifnum#1=1\relax\eqptLabel\else
- \eqptsLabel\fi}}$)}
-\newcommand{\eqleftmargin}[2]{\makebox[0pt][r]{\marginpointtext{#1}{#2}%
- \setlength{\@tempdima}{\marginparsep+\eqemargin}%
- \hspace*{\@tempdima}}}
-\newcommand{\marginpointsboxtext}[2]{\small$\eqe@ptsFmt{#1}\,\text{%
- \ifnum#1=1\relax\eqptLabel\else\eqptsLabel\fi}$}
-\def\@insertPointsBoxPDF
-{
- \def\fieldName{pointsgiven.\curr@quiz.page\thepage.%
- \theeqquestionnoi}%
- \calcTextField[\F\FHidden\BC{}\Q1\textColor{1 0 0 rg}]
- {\fieldName}{\widthtpboxes}{15pt}%
-}
-\def\@insertTotalsBoxPDF
-{
- \def\fieldName{pagetotals.\curr@quiz.page\thepage}%
- \calcTextField[\F\FHidden\BC{}\Q1\textColor{1 0 0 rg}
- \AA{\AACalculate{AFSimple_Calculate("SUM",
- new Array("pointsgiven.\curr@quiz.page\thepage"));}}]
- {\fieldName}{\widthtpboxes}{15pt}%
-}
-\ifx\use@email y
- \let\insertPointsBoxPDF\@insertPointsBoxPDF
- \let\insertTotalsBoxPDF\@insertTotalsBoxPDF
-\else
- \let\insertPointsBoxPDF\@empty
- \let\insertTotalsBoxPDF\@empty
-\fi
-\newcommand{\eqrightmarginbox}[2]{\makebox[0pt][l]{%
- \setlength\tabcolsep{0pt}%
- \setlength{\@tempdima}{\textwidth-\eqemargin+\marginparsep}%
- \hspace*{\@tempdima}%
- \raisebox{-.5\height}[0pt][0pt]{%
- \marginboxdesign[\insertPointsBoxPDF]%
- {\marginpointsboxtext{#1}{#2}}%
- }\hfil
- }%
-}
-\newcommand{\eqeomarginboxright}[2]{\makebox[0pt][l]{%
- \setlength\tabcolsep{0pt}%
- \setlength{\@tempdima}{\textwidth+\marginparsep-\parindent}%-\parindent
- \hspace*{\@tempdima}%
- \raisebox{-.5\height}[0pt][0pt]{%
- \marginboxdesign[\insertTotalsBoxPDF]%
- {\marginpointsboxtext{#1}{#2}}%
- }\hfil
- }%
-}
-\newcommand{\eqeomarginboxleft}[2]{\noindent\makebox[0pt][r]{%
- \raisebox{-.5\height}[0pt][0pt]{%
- \marginboxdesign[\insertTotalsBoxPDF]%
- {\marginpointsboxtext{#1}{#2}}%
- }{\settowidth{\@tempdimb}{\eqe@hspannerPrb}%
- \setlength{\@tempdima}{\marginparsep+\eqemargin-\@tempdimb}%
- \hspace*{\@tempdima}}}\hfil
-}
-\newcommand{\measurePtBoxHt}{\setbox\eq@pointbox\hbox{%
- \marginboxdesign{\marginpointsboxtext{00}{0}}%
- }\setlength\eq@pointboxtotalheight{.5\ht\eq@pointbox}%
- \xdef\halfHtPtBox{\the\eq@pointboxtotalheight}%
- \setlength\eq@pointboxtotalheight{\dp\eq@pointbox+\ht\eq@pointbox}%
- \xdef\totHtPtBox{\the\eq@pointboxtotalheight}%
- \xdef\dpPtBox{\the\dp\eq@pointbox}%
- \xdef\htPtBox{\the\ht\eq@pointbox}%
-}
-\measurePtBoxHt
-\newcommand{\eqbothmargins}[2]{\eqleftmargin{#1}{#2}%
- \eqrightmarginbox{#1}{#2}}
-\def\lastparttotaled{0}
-\def\parsetotals#1\eqExam#2\end{\def\argi{#1}\def\argii{#2}}
-\def\stripeqExam#1\eqExam{\def\argii{#1}}
-\def\settotalsbox{%
- \expandafter\parsetotals\botmark\eqExam\end
- \ifx\argi\@empty\hfil
- \else\ifx\argii\@empty\hfil
- \else
- \expandafter\stripeqExam\argii
- \setcounter{eqpointsthispage}{\argi}%
- \addtocounter{eqpointsthispage}{-\value{eqpointsofar}}%
- \setcounter{eqpointsofar}{\argi}%
- \xdef\lastparttotaled{\argii}%
- \eqe@IWO\@auxout{\string\csarg\string\gdef{Page\thepage total}%
- {\theeqpointsthispage}}%
- \totalsbox
- \fi
- \fi
-}
-\newcommand\totalsboxtext{\small$
- \eqe@ptsFmt{\theeqpointsthispage}\,\text{%
- \ifnum\theeqpointsthispage=1\relax\eqptLabel\else
- \eqptsLabel\fi}$}
-\newlength\eqevtranstotbox
-\setlength{\eqevtranstotbox}{0pt}
-\def\eqe@chkZeroTotals{\let\eqe@allow\eqe@YES
- \ifx\eqe@zeroTotalsAllowed\eqe@NO
- \ifnum\theeqpointsthispage=0 \let\eqe@allow\eqe@NO\fi\fi}
-\newcommand{\totalsboxleft}{\eqe@chkZeroTotals
- \ifx\eqe@allow\eqe@YES
- \makebox[0pt][r]{\setlength\tabcolsep{0pt}%
- \raisebox{-\height+\eqevtranstotbox}[0pt][0pt]{%
- \marginboxdesign[\insertTotalsBoxPDF]{\totalsboxtext}%
- }\hspace*{\marginparsep}%
- }\fi\hfil
-}
-\newcommand{\totalsboxright}{\eqe@chkZeroTotals
- \ifx\eqe@allow\eqe@YES
- \makebox[0pt][l]{\setlength\tabcolsep{0pt}%
- \hspace*{\textwidth}\hspace*{\marginparsep}%
- \raisebox{-\height+\eqevtranstotbox}[0pt][0pt]{%
- \marginboxdesign[\insertTotalsBoxPDF]{\totalsboxtext}%
- }%
- }\fi\hfil
-}
-\ifeqe@nopoints\else\if@bypasseqexamheading\else
-\AtBeginDocument{\mark{0\csname eqExam\endcsname0}}
-\fi\fi
-\AtEndDocument{%
- \eqe@IWO\@auxout{\string\csarg\string\gdef{NumberOfParts}%
- {\arabic{eq@numparts}}}%
- \eqe@IWO\@auxout{\string\csarg\string\gdef{thePartNames}%
- {\the\partNames}}%
- \clearpage\addtocounter{page}{-1}\writelastpage\relax
- \addtocounter{page}{1}%
-}
-\newcommand\theGrandTotal{%
- $\eqe@ptsFmt{\csname eqeGrandTotal\endcsname}$}
-\newcommand{\totalForPart}[1]{$\eqe@ptsFmt{\csname#1total\endcsname}$}
-\def\tot@lForPart#1{\csname#1total\endcsname}
-\newcommand{\percentForPart}[1]{$\eqe@ptsFmt
- {\csname#1percent\endcsname}$\%}
-\newcounter{markerCnt}
-\def\placeMarkerHere#1{%
- \eqe@IWO\@auxout{\string\csarg\string\gdef
- {#1SaveTotalHere}{\theeqpointvalue}}%
-}
-\newcommand{\calcFromMarkers}[3][\@markerTotalFmt]{%
- \@ifundefined{#2SaveTotalHere}{}%
- {\@ifundefined{#3SaveTotalHere}{}{\setcounter{markerCnt}%
- {\@nameuse{#2SaveTotalHere}-\@nameuse{#3SaveTotalHere}}%
- \ifnum\value{markerCnt}<0\relax
- \setcounter{markerCnt}{-\value{markerCnt}}\fi#1}}%
-}
-\newcommand{\markerTotalFmt}[1]{\def\@markerTotalFmt{#1}}
-\markerTotalFmt{\space(\themarkerCnt\space points)}
-\newcommand{\calcQsBtwnMarkers}[2][]{\setcounter{markerCnt}{0}%
- \def\eqe@argi{#1}%
- \eqe@IWO\@auxout{\string\csarg\string\gdef
- {#2thisQnum}{\theeqquestionnoi}}%
- \@ifundefined{#2thisQnum}{\csarg\xdef{#2Start}{0}%
- \eqe@IWO\@auxout{\string\csarg\string\gdef
- {#2Start}{0}}%
- }{%
- \setcounter{markerCnt}{\value{eqquestionnoi}+1}\csarg
- \xdef{#2Start}{\the\value{markerCnt}}%
- \eqe@IWO\@auxout{\string\csarg\string\gdef
- {#2Start}{\@nameuse{#2Start}}}%
- }
- \ifx\eqe@argi\@empty\else
- \@ifundefined{#2thisQnum}{\setcounter{markerCnt}{0}}%
- {\@ifundefined{#1thisQnum}{\setcounter{markerCnt}{0}}{%
- \setcounter{markerCnt}%
- {\@nameuse{#1thisQnum}-\@nameuse{#2thisQnum}}%
- }}%
- \fi
- \csarg\xdef{#2nQs}{\the\value{markerCnt}}%
- \eqe@IWO\@auxout{\string\csarg\string\gdef
- {#2nQs}{\the\value{markerCnt}}}%
- \ifx\eqe@argi\@empty\else
- \@ifundefined{#1thisQnum}{\csarg\xdef{#2End}{0}%
- \eqe@IWO\@auxout{\string
- \csarg\string\gdef{#2End}{0}}%
- }{%
- \csarg\xdef{#2End}{\@nameuse{#1thisQnum}}%
- \eqe@IWO\@auxout{\string\csarg\string\gdef
- {#2End}{\@nameuse{#2End}}}%
- }%
- \fi
-}
-\newcommand{\markStartFor}[1]{\@nameuse{#1Start}}
-\newcommand{\markEndFor}[1]{\@nameuse{#1End}}
-\newcommand{\markNumQsFor}[1]{\@nameuse{#1nQs}}
-\newcommand{\placeAtxy}[3]{{%
- \par\nointerlineskip
- \ifdisplayworkarea
- \ifx\eq@insertverticalspace\eqe@YES
- \makebox[0pt][l]{\hspace*{-\parindent}\hspace*{#1}%
- \raisebox{#2}[0pt][0pt]{#3}}\fi
- \fi
-}}
-\newsavebox{\workareasb}
-\newenvironment{workarea}[2][\linewidth]
-{%
- \removelastparskip
- \edef\workareadepth{\if\currhideopt H0pt\else#2\fi}%
- \begin{lrbox}{\workareasb}\setlength{\eqetmplengtha}{#1}%
- \begin{minipage}[b][\workareadepth][t]{\eqetmplengtha}\vspace*{3pt}%
-}{%
- \end{minipage}\end{lrbox}%
- \par\ifdisplayworkarea
- \ifx\eq@insertverticalspace\eqe@YES
- \removelastparskip
- \vspace{-\baselineskip}%
- \if\currhideopt H\else
- \noindent\strut\smash{\usebox{\workareasb}}%
- \fi\fi
- \fi
-}
-\def\splitsolution{%
- \@ifnextchar[{\splitsolutioni}%
- {\splitsolutioniii{\panelwidth}{\panelheight}}%
-}
-\def\splitsolutioni[#1]{%
- \@ifnextchar[{\splitsolutionii{#1}}
- {\splitsolutioniii{\panelwidth}{#1}}%
-}
-\def\splitsolutionii#1[#2]{%
- \splitsolutioniii{#1}{#2}%
-}
-\def\splitsolutioniii#1#2{%
- \@ifundefined{panel@write}{\newwrite\panel@write}{}%
- \gdef\ss@Argiii{#1}\gdef\ss@Argii{#2}%
- \let\@sssolution\solution
- \let\end@sssolution\endsolution
- \let\solution\@ssSolution
- \let\endsolution\end@ssSolution
- \par\noindent\ignorespaces
-}
-\def\endsplitsolution{%
- \ifeq@solutionsafter\strut\par\fi
- \ifx\solutionparshape\@empty\else
- \advance\linewidth-\leadinIndentPrtSep\fi %%dps
- \edef\eqe@workwidth{\if\ss@Argi l\noexpand\ss@Argiii
- \else\noexpand\linewidth\fi}%
- \edef\eqe@workfill{\if\ss@Argi l\else\hfill\fi}%
- \begin{workarea}[\eqe@workwidth]{\eqedepth}%
- \let\panelGetDimen\relax%
- \eqe@workfill\input{panel\thepanel@cnt.cut}%
- \end{workarea}
- \strut\par
-}
-\newcommand\panelgap{3pt}
-\newsavebox{\eqpanelbox}
-\newdimen\eqepanelwidth
-\newdimen\eqepanelheight
-\newcommand{\getDimSSPanel}[1]{%
- \sbox{\eqpanelbox}{#1}%
- \eqepanelwidth=\wd\eqpanelbox
- \eqepanelheight=\ht\eqpanelbox
- \advance\eqepanelheight by\the\dp\eqpanelbox
-}
-\def\panelwidth{\eqepanelwidth}
-\def\panelheight{\eqepanelheight}
-\newcounter{panel@cnt}
-\def\panel{\def\eqe@panelir{\eqe@paneli[r]}%
- \@ifnextchar[{\eqe@paneli}
- {\@ifnextchar\relax{\expandafter\eqe@panelir\@gobble}%
- {\eqe@paneli[r]}}%
-}
-\def\eqe@paneli[#1]{%
- \gdef\ss@Argi{#1}\def\eqe@l{l}\def\eqe@r{r}%
- \ifx\ss@Argi\@empty\gdef\ss@Argi{r}\else
- \ifx\eqe@l\ss@Argi\else\ifx\eqe@r\ss@Argi\else
- \PackageError{eqexam}{Permissible arguments for panel are l and r}
- {Use l or r for the argument of panel.}\fi\fi\fi
- \stepcounter{panel@cnt}%
- \immediate\openout \panel@write panel\thepanel@cnt.cut
- \if\currhideopt H%
- \eqe@IWO\panel@write{\vfill}%
- \immediate\closeout\panel@write
- \gdef\ss@Argii{0pt}%
- \else
- \if\currhideopt h\ifeq@solutionsafter\else
- \ifeq@globalshowsolutions\else
- \eqe@IWO\panel@write{\vfill}%
- \immediate\closeout\panel@write
- \gdef\ss@Argii{0pt}%
- \fi\fi
- \fi
- \fi
- \begingroup
- \let\verbatim@out\panel@write
- {\lccode`C=`\%\lccode`P=`\{
- \lowercase{\eqe@IWO\verbatim@out{\string\panelGetDimen PC}}}%
- \verbatimwrite
-}
-\def\endpanel{%
- \endverbatimwrite
- {\lccode`P=`\}\lowercase{\eqe@IWO\verbatim@out{P}}}%
- \immediate\closeout\panel@write
- \endgroup
- \gdef\eqePANELCUT{%
- \let\panelGetDimen\getDimSSPanel
- \input{panel\thepanel@cnt.cut}%
- \setlength{\eq@tmpdima}{\ss@Argiii}%
- \xdef\ss@Argiii{\the\eq@tmpdima}%
- \xdef\mp@Width{\ifeq@solutionsafter\linewidth
- \else\linewidth-\ss@Argiii-\panelgap\fi}%
- }\aftergroup\eqePANELCUT
-}
-\long\def\eqe@IW#1{%
- \ifeq@solutionsafter
- \let\eqe@next\@empty
- \else
- \def\eqe@next{\eqe@IWO\verbatim@out{#1}}%
- \ifeq@nosolutions\else
- \if\currhideopt H%
- \gdef\ss@Argii{0pt}\let\eqe@next\@empty
- \else
- \if\currhideopt h%
- \ifeq@globalshowsolutions\else
- \gdef\ss@Argii{0pt}\let\eqe@next\@empty
- \fi
- \fi
- \fi
- \fi
- \fi
- \eqe@next
-}
-\newenvironment{@ssSolution}[1][\ss@Argii]%
-{%
- \def\eqe@argi{#1}\ifx\eqe@argi\@empty\else
- \let\soln@keys@nLines\@empty
- \edef\panelheight{\the\panelheight}%
- \edef\panelwidth{\the\panelwidth}%
- \edef\temp@exp{\noexpand
- \setkeys*{soln@keys}{#1}}\temp@exp
- \ifx\soln@keys@nLines\@empty
- \edef\ss@Argii{\XKV@rm}%
- \else
- \@tempdima\wlVspace\relax
- \@tempdima=\soln@keys@nLines\@tempdima
- \edef\ss@Argii{\the\@tempdima}%
- \ifx\XKV@rm\@empty\else
- \if@equsedim\edef\ss@Argii{\XKV@rm}\fi\fi
- \fi
- \setlength{\eq@tmpdima}{\ss@Argii}%
- \ifdim\eqepanelheight>\eq@tmpdima
- \eq@tmpdima\eqepanelheight\fi
- \xdef\ss@Argii{\the\eq@tmpdima}%
- \fi
- \xdef\eqedepth{%
- \ifvspacewithsolns\ss@Argii\else
- \ifeq@nosolutions\ss@Argii\else
- \ifeq@solutionsafter\ss@Argii\else0pt\fi\fi\fi}%
- \xdef\mp@Width{\ifeq@solutionsafter\noexpand\linewidth\else
- \noexpand\linewidth-\ss@Argiii-\panelgap\fi}%
- \if\ss@Argi l%
- \ifeq@solutionsafter
- \def\eqe@lPanel{\parbox[b][\eqedepth][t]{\ss@Argiii}
- {\let\panelGetDimen\relax
- \input{panel\thepanel@cnt.cut}\vfill}\hfill}%
- \def\eqe@rPanel{\@empty}%
- \else
- \def\eqe@subleftgutter{-\string\eqemargin}%
- \def\eqe@lPanel{%
- \string\parbox[b][\string\eqedepth]{\ss@Argiii}%
- {\string\let\string\panelGetDimen\string\relax
- \string\input{panel\thepanel@cnt.cut}%
- \string\vfill}\string\hfill^^J}%
- \def\eqe@rPanel{\@empty}%
- \fi
- \else
- \ifeq@solutionsafter
- \def\eqe@lPanel{\@empty}%
- \def\eqe@rPanel{%
- \hfill\parbox[b][\eqedepth][t]{\ss@Argiii}
- {\let\panelGetDimen\relax
- \hfill\input{panel\thepanel@cnt.cut}\vfill}}%
- \else
- \let\eqe@subleftgutter\@empty
- \def\eqe@lPanel{\@empty}%
- \def\eqe@rPanel{%
- \string\hfill\string\parbox[b][\string\eqedepth]%
- {\ss@Argiii}{\string\endgraf%
- \string\noindent\string\hfill%
- \string\let\string\panelGetDimen\string\relax
- \string\input{panel\thepanel@cnt.cut}%
- \string\vfill}}%
- \fi
- \fi
- \let\verbatim@out\ex@solns
- \par\ifeq@solutionsafter\smallskip\fi
- \ifx\solutionparshape\@empty\else
- \advance\linewidth-\leadinIndentPrtSep\fi %%dps
- \let\solutionparshape\@empty
- \noindent\minipage{\linewidth}%
- \if\ss@Argi l\noindent\parbox[b][\eqedepth][t]{\ss@Argiii}%
- {\vfill}\hfill\fi
- \minipage[b][\eqedepth][t]{\mp@Width}%
- {\lccode`C=`\%\lowercase{\eqe@IW{%
- \string\def\string\panelgap{\panelgap}%
- \string\setlength{\string\panelwidth}{\ss@Argiii}%
- \string\def\string\eqedepth
- {\ifeq@nosolutions\ss@Argii\else\ss@Argii\fi}C}}}%
- {\lccode`C=`\%\lowercase{\eqe@IW{%
- \string\strut\string\noindent%
- \string\hbox\space to\string\linewidth\bgroup^^J%
- \eqe@lPanel\string\minipage[b][\string\eqedepth][t]%
- {\string\linewidth\eqe@subleftgutter%
- -\string\panelwidth-\string\panelgap}C
- }}}%
- \ifeq@solutionsafter
- \noindent\strut\hbox to\linewidth\bgroup
- \eqe@lPanel
- \minipage[b][\eqedepth][t]{\linewidth-\ss@Argiii-\panelgap}%
- \def\solutionsafterSkip{}%
- \fi
- \ifx\soln@keys@nLines\@empty
- \edef\passedss@Argii{\ss@Argii}\else
- \edef\passedss@Argii{\ss@Argii,nLines=\soln@keys@nLines}\fi
- \expandafter\@sssolution\expandafter[\passedss@Argii]%
-}{%
- \eqe@IW{\string\endminipage\eqe@rPanel\egroup}%
- \ifeq@solutionsafter\endminipage\eqe@rPanel\egroup\fi
- \end@sssolution
- \endminipage\endminipage
-}
-\renewcommand{\paragraph}
- {\@startsection{paragraph}{4}{0pt}{12pt}{-3pt}{\bfseries}}
-\newcommand{\defaultInstructions}[1]{\def\eq@default@Instructions{#1}}
-\defaultInstructions{Instructions.}
-\newcommand{\beforeInstrSkip}{1ex}
-\newcommand{\afterInstrSkip}{-0em}
-\newcommand\hInstrSpace{\ }
-\newcommand\styleInstr{\bfseries}
-\newenvironment{instructions}[1][\eq@default@Instructions]{%
- \@ifundefined{\thisexamlabel total}{\let\eq@nosummarytotals\eqe@YES}
- {\ifnum\summaryPointTotal=0 \let\eq@nosummarytotals\eqe@YES\fi}%
- \expandafter\def\expandafter\eq@argi\expandafter{#1}%
- \def\hsi{\hInstrSpace}%
- \@startsection{paragraph}{4}{\z@}%
- {\beforeInstrSkip\space\@plus1ex \@minus.2ex}%
- {\afterInstrSkip}{\normalfont\normalsize\styleInstr}*%
- {\textcolor{\@instructionsColor}{#1}\normalcolor%
- \ifx\eq@nosummarytotals\eqe@YES\else\ifx\eq@argi\@empty\else\hsi\fi
- {\normalfont\summaryTotalsTxt}\hsi\fi}\hskip-\lastskip
- \ifx\eq@nosummarytotals\eqe@YES\ifx\eq@argi\@empty\else\hsi\fi\fi
- \normalfont\normalsize\ignorespaces
-}{\par\vskip\beforeInstrSkip\relax}
-\newcommand\summaryPointTotal{\csname\thisexamlabel total\endcsname}
-\newcommand\summaryTotalsTxt{($\eqe@ptsFmt{\summaryPointTotal}\,\text{%
- \@ifundefined{\thisexamlabel total}{\eqpointsLabel}%
- {\ifnum\summaryPointTotal=1\relax\eqpointLabel\else
- \eqpointsLabel\fi}}$)}
-\newcommand{\nQuesInExam}[1][\thisexamlabel]{%
- \def\eqe@argi{#1}%
- \ifx\thisexamlabel\@empty\ifx\eqe@argi\thisexamlabel
- \PackageError{eqexam}{The optional argument for
- \string\nQuesInExam\MessageBreak must be specified}{}\fi\fi
- \csname#1nQuestions\endcsname}
-\ifx\hyper@anchor\@undefined\else
- \renewcommand\theHeqquestionnoi
- {\curr@quiz.\theeqquestionnoi\eqe@fpmrk}
- \renewcommand\theHquizno{%
- \if\probstar*\curr@quiz.%
- \theeqquestionnoi.part\thepartno.\arabic{quizno}%
- \else
- \curr@quiz.%
- \theeqquestionnoi.\arabic{quizno}%
- \fi
- }
- \renewcommand\theHpartno{\curr@quiz.%
- \theeqquestionnoi.part\thepartno}
-\fi
-\newcommand{\beforeCommentSkip}{1.25ex}
-\newcommand{\afterCommentSkip}{-1ex}
-\newcommand\hCommSpace{\ }
-\newcommand\styleComm{\bfseries}
-\newenvironment{eqComments}[1][\strut]{\removelastskip
- \def\eqe@argi{#1}\def\eqe@Strut{\strut}\def\hsc{\styleComm}%
- \@startsection{paragraph}{4}{\z@}%
- {\beforeCommentSkip\space\@plus1ex \@minus.2ex}%
- {\afterCommentSkip}{\normalfont\normalsize\styleComm}*%
- {\textcolor{\@eqCommentsColor}{#1}}%
- \ifx\eqe@argi\eqe@Strut\hskip\afterCommentSkip
- \else\ifx\eqe@argi\@empty\hskip\afterCommentSkip\else
- \hsc\strut\fi\fi\normalfont\normalsize
- \color{\@eqCommentsColorBody}\ignorespaces
-}{\par\vskip\beforeCommentSkip\space\@plus1ex \@minus.2ex}
-\let\tb@beginexam@code\relax
-\def\partialspillovertotals{0}
-\def\exambegdef
-{%
- \csname\thisexamlabel pagemark\endcsname
- \@ifundefined{partialtotalpg}{}{%
- \ifnum\partialtotalpg=\arabic{page}%
- {\count0=\partialspillovertotals
- \advance\count0by\partialtotaleoe
- \xdef\partialspillovertotals{\the\count0}%
- \eqe@IWO\@auxout{\string\csarg\string\gdef
- {Page\partialtotalpg spilltotal}{\partialtotaleoe}}%
- }%
- \fi
- }%
- \csarg\ifx{\thisexamlabel pageno}\relax
- \else
- \csarg\ifx{pagenofirstprob\thisexamlabel}\relax
- \else
- \csarg\ifnum{\thisexamlabel pageno}
- < \@nameuse{pagenofirstprob\thisexamlabel}%
- \else
- \csarg\ifx{\thisexamlabel pagemark}\relax
- \else
- \ifnum\value{page}=%
- \csname\thisexamlabel pageno\endcsname
- \eqe@IWO\@auxout{\string\csarg\string\gdef
- {\thisexamlabel pagemark}{\string\newpage}}%
- \fi
- \fi
- \fi
- \fi
- \fi
- \setcounter{eqquestionnoi}{0}\setcounter{eqpointvalue}{0}%
- \setcounter{eqpointsofar}{0}\setcounter{eqpointsthispage}{0}%
- \setcounter{eq@count}{0}%
- \writeBeginEqeQuestions
- \label{\thisexamlabel PageBegin}%
- \eqe@IWO\@auxout{\string\csarg\string\gdef
- {\thisexamlabel pageno}{\thepage}}%
- \ifeqfortextbook
- \global\examenvtrue\tb@beginexam@code
- \fi
-}
-\def\tb@insmargmark{\ifisinstred\ifismarginans
- \insMidMarg{\mark{}}\fi\fi}
-\def\eqe@adjForSepRule{\if\eq@parttotals\eqe@YES
- \eq@pointboxtotalheight\halfHtPtBox\relax
- \advance\eq@pointboxtotalheight\dpPtBox\relax
- \advance\eq@pointboxtotalheight\pointsmarginparpush
- \vspace*{\eq@pointboxtotalheight}\fi}
-\def\eqe@afterexamsepcode{% dps7
- \if\eq@parttotals\eqe@YES
- \@actionsAtPageBreak{\global\let\@spacetobreak1}%
- {\global\let\@spacetobreak0}%
- \ifx\@spacetobreak0\relax
- \bgroup\@tempdima=\pagetotal
- \advance\@tempdima\eq@pointboxtotalheight
- \ifdim\@tempdima>\pagegoal\aftergroup\newpage
- \else\ifnum\arabic{eq@count}>0\relax
- \removelastskip\vskip6pt\kern0pt %dps7
- \if\@reportpoints\eqe@One\else\@checkSpacing{0}\fi
- \textcolor{\endexamtotal@color}%
- {\eqeomarginbox{\arabic{eq@count}}{0}}\fi
- \ifx\eqx@separationrule\eqe@YES
- \separationrule\eqe@adjForSepRule\fi
- \fi\egroup
- \fi
- \else\ifx\eqx@separationrule\eqe@YES
- \separationrule\eqe@adjForSepRule\fi
- \fi
-}
-\def\examenddef
-{%
- \global\let\partialtotaleoe\relax
- \global\let\partialtotalpg\relax
- \global\let\afterexamsepcode\relax
- \csarg\ifx{NumberOfParts}\relax
- \else
- \ifnum\value{eq@numparts}<\NumberOfParts
- \setcounter{eq@count}{\value{eqpointvalue}}%
- \addtocounter{eq@count}{-\value{eqpointsofar}}%
- \xdef\partialtotaleoe{\arabic{eq@count}}%
- \xdef\partialtotalpg{\arabic{page}}%
- \global\let\afterexamsepcode\eqe@afterexamsepcode % dps7
- \fi
- \fi
- \ifeqfortextbook\global\examenvfalse\fi
- \writeEndEqeQuestions
- \writetotalstoaux
- \addtocounter{page}{-1}%
- \writelastpage[\thisexamlabel]\addtocounter{page}{1}%
- \ifeqfortextbook\tb@insmargmark\fi
-}
-\def\@actionsAtPageBreak#1#2{%
- \bgroup\@tempdima\pagegoal\advance\@tempdima-\pagetotal
- \@tempdimb\@fvsizeskip\vsize
- \ifdim\@tempdima < \@tempdimb #1\else #2\fi\egroup
-}
-\newcommand{\separationrule}{\makebox[\linewidth-\eqemargin][c]%
- {\rule{.67\linewidth}{.4pt}}}
-\def\eqe@hspannerPrb{\ }
-\@ifundefined{ifwithsoldoc}{\newif\ifwithsoldoc\withsoldocfalse}{}
-\newcommand{\eqequestopsep}[1]{\def\eqeques@topsep{#1}}
-\providecommand{\eqequesparsep}[1]{\def\eqeques@parsep{#1}}
-\newcommand{\eqequesitemsep}[1]{\def\eqeques@itemsep{#1}}
-\newcommand{\eqequeslistparindent}[1]{\def\eqeques@listparindent{#1}}
-\eqequestopsep{0pt}
-\eqequesparsep{0pt}
-\eqequesitemsep{0pt}
-\eqequeslistparindent{0pt}
-\newif\iffirstitem
-\def\eqeSolnItemMngt{\iffirstitem\global\firstitemfalse
- \let\eqe@next\@empty\else\let\eqe@next\item\fi\eqe@next\relax}
-\newenvironment{eqequestions}{%
- \begin{list}{}{%
- \ifwithsoldoc\let\solnItemMngt\eqeSolnItemMngt\fi
- \setlength{\labelwidth}{\eqemargin}%
- \setlength{\parsep}{\eqeques@parsep}%
- \setlength{\itemsep}{\eqeques@itemsep}%
- \setlength{\topsep}{\eqeques@topsep}%
- \setlength{\itemindent}{0pt}%
- \setlength{\listparindent}{\eqeques@listparindent}%dps%
- \ifwithsoldoc\settowidth{\labelsep}{\eqe@hspannerSoln}\else
- \settowidth{\labelsep}{\eqe@hspannerPrb}\fi
- \setlength{\leftmargin}{\labelwidth}%
- }\ifwithsoldoc\global\firstitemtrue\fi\item\relax}{\end{list}}
-\def\setDefaultfvsizeskip#1{\def\default@fvsizeskip{#1}%
- \def\@fvsizeskip{#1}}
-\def\default@fvsizeskip{.3}
-\edef\@fvsizeskip{\default@fvsizeskip}
-\newcommand{\fvsizeskip}[1]{\def\@fvsizeskip{#1}}
-\def\autoExamName{exam\the\value{eq@numparts}}
-\def\nNumberOfP@rts{\csname NumberOfParts\endcsname}
-\abovesqskip{}
-\let\eqeWrtExamTitleToSolns\eqe@YES
-\def\wrtExamTitleInSolns{\let\eqeWrtExamTitleToSolns\eqe@YES}
-\def\noExamTitleInSolns{\let\eqeWrtExamTitleToSolns\eqe@NO}
-\let\thisexamlabel\@empty
-\let\isInExamEnv\eqe@NO
-\newenvironment{exam}[2][]
-{%
- \makeRoomForProb{\@fvsizeskip\textheight}{0}%
- \let\isInExamEnv\eqe@YES
- \stepcounter{eq@numparts}%
- \def\eqexamargii{#2}\ifx\eqexamargii\@empty
- \edef\eqexamargii{\autoExamName}\fi
- \xdef\thisexamlabel{\eqexamargii}\xdef\curr@quiz{\eqexamargii}%
- \def\eqexamargi{#1}\ifx\eqexamargi\@empty
- \edef\eqexamargi{\eqexamargii}\fi
- \expandafter\gdef\expandafter\thisUFexamlabel
- \expandafter{\eqexamargi}%
- \edef\eq@tmp{\the\partNames\string\\{\eqexamargii}}%
- \global\partNames=\expandafter{\eq@tmp}%
- \csarg\ifx{NumberOfParts}\relax\else
-\ifx\eqeWrtExamTitleToSolns\eqe@YES
- \ifnum\nNumberOfP@rts=1\relax\else
- \def\eqe@argi{#1}\ifx\eqe@argi\@empty
- \eqe@writetoSolns{\eqexamargii}\eqe@writetoAux{\string
- \csarg\string\gdef{userFriendly\eqexamargii}{\eqexamargii}}
- \else
- \eqe@writetoSolns{#1}\eqe@writetoAux{\string
- \csarg\string\gdef{userFriendly#2}{#1}}
- \fi
- \fi\fi
-\fi
- \exambegdef
- \edef\temp@Exp{\noexpand\shortquiz\sqstar[\eqexamargii]}\temp@Exp
-}{%
- \examenddef
- \vskip\eqeques@parsep\relax\kern0pt %dps88
- \endshortquiz
- \aftergroup\afterexamsepcode % dps7
- \par\penalty-100\vskip0pt
-}
-\newcommand{\EQEcalculateAllTotals}{%
- \begingroup
- \count\z@=0\relax
- \def\\##1{\csarg\ifx{##1total}\relax\else
- \advance\count\z@\csname##1total\endcsname
- \fi}\csname thePartNames\endcsname
- \xdef\eqeGrandTotal{\the\count\z@}%
- \ifnum\eqeGrandTotal=0 \else
- \def\\##1{\eqe@calc@percent{##1}}%
- \csname thePartNames\endcsname\fi
- \endgroup
-}
-\newcommand{\nPctDecPts}{1}
-\def\eqe@calc@percent#1{\@ifundefined{#1total}{%
- \csarg\gdef{#1percent}{??}}{%
- \csarg\ifx{FPdiv}\relax
- \count2=\tot@lForPart{#1}%
- \edef\expGT{\csname eqeGrandTotal\endcsname}%
- \multiply\count2by100\relax\divide\count2by\expGT\relax
- \csarg\xdef{#1percent}{\the\count2 }\else
- \FPdiv{\eqe@pForPart}{\csname#1total\endcsname}%
- {\csname eqeGrandTotal\endcsname}%
- \FPmul{\eqe@pForPart}{\eqe@pForPart}{100}%
- \FPround{\eqe@pForPart}{\eqe@pForPart}{\nPctDecPts}%
- \csarg\xdef{#1percent}{\eqe@pForPart}\fi
- }%
-}
-\def\writetotalstoaux{\eqe@IWO\@auxout{\string
- \csarg\string\gdef{\thisexamlabel total}{\theeqpointvalue}}%
- \eqe@IWO\@auxout{\string\csarg
- \string\gdef{\thisexamlabel nQuestions}{\theeqquestionnoi}}%
-}
-\newcommand{\writelastpage}[1][]{\def\eqe@argi{#1}%
- \ifx\eqe@argi\@empty\else\label{#1PageEnd}\fi
- \eqe@IWO\@auxout{\string\csarg
- \string\gdef{eqExamLastPage}{\arabic{page}}}%
-}
-\def\exlabel{}
-\def\sqlabel{}
-\def\exsolafter{\textit{Solution}:}
-\def\sqsolafter{\textit{Solution}:}
-\def\exlabelformat{\textbf{%
- \theeqquestionnoi\eqe@decPointPrb\eqe@hspannerPrb}}
-\def\exlabelformatwp{\exlabelformat}
-\def\exsllabelformat
- {\string\makebox[0pt][r]{\string\textbf{%
- \theeqquestionnoi\eqe@decPointPrb\eqe@hspannerSoln}}}
-\def\exsllabelformatwp
- {\string\makebox[0pt][r]{\string\textbf{%
- \theeqquestionnoi\eqe@decPointPrb\eqe@hspannerSoln}}%
- (\thepartno)\eqe@hspannerSoln}
-\ifanswerkey
- \def\exrtnlabelformat{}
- \def\exrtnlabelformatwp{}
- \def\eq@sqslrtnlabel{}
-\else
- \def\exrtnlabelformat{$\square$}
- \def\exrtnlabelformatwp{$\square$}
- \def\eq@sqslrtnlabel{$\square$}
-\fi
-\def\sqslrtnlabel{\eq@sqslrtnlabel}
-\newcommand{\exsectitletext}{Solutions to \webtitle}
-\def\exsectitle{\normalsize\exsectitletext}
-\@ifpackageloaded{exerquiz}{%{Solutions to \websubject}
- \renewcommand{\exsecrunhead}{}}{\newcommand{\exsecrunhead}{}}
-\def\eq@sqslsectitle{}
-\def\eq@sqslsecrunhead{}
-\def\eq@sqsllabel{{\string\llap{\string\textbf{\theeqquestionnoi.\ }}}}
-\def\eq@sqlabel{}
-\let\include@quizsolutions\relax
-\let\solnhspace\@empty
-\newcommand{\optsFillIn}[1]{\def\eqe@optsFillIn{#1}}
-\let\eqe@optsFillIn\@empty
-\newcommand{\fillin}[3][u]{%
- \ifx#1u\let\@fillinFmt\underbar
- \else\ifx#1b\let\@fillinFmt\relax
- \else\let\@fillinFmt\relax\fi\fi
- \ifeq@proofing
- \@fillinFmt{\makebox[#2]{%
- \strut\hfil\bfseries\color{red}#3\hfil}}%
- \else
- \@fillinFmt{\makebox[#2]{\strut\hfil}}%
- \@ifundefined{@quiz}{}{%
- \if\eq@online\eqe@YES\relax
- \ifeq@nosolutions
- \ifeq@solutionsafter\else
- \ifx\eq@insertverticalspace\eqe@YES\relax
- \stepcounter{@cntfillin}%
- \edef\fieldName{%
- \if\probstar*eqexam.\curr@quiz.fillin.%
- \theeqquestionnoi.part\thepartno.%
- fi\the@cntfillin%
- \else
- eqexam.\curr@quiz.fillin.%
- \theeqquestionnoi.fi\the@cntfillin%
- \fi
- }\makebox[0pt][r]{\textField[\BC{}
- \presets{\eqe@optsFillIn}]{%
- \fieldName}{#2}{11bp}}%
- \fi
- \fi
- \fi
- \fi
- }%
- \fi\space\ignorespaces}
-\newcommand\defaultTFwidth{30pt}
-\newcommand\TF[2][\defaultTFwidth]{%
- \def\eqe@next{\fillin{#1}{#2}}%
- \ifdim\eq@extralabelsep=0pt\relax\else
- \if\probstar*\relax\if\exerwparts@cols0
- \def\eqe@next{\makebox[0pt][r]{%
- \fillin{#1}{#2}}\ignorespaces}%
- \fi\fi\fi
-\eqe@next}
-\def\fillinWidth#1{%
- \if\probstar*
- \settowidth{\eq@tmplengthA}{\normalfont\ }%
- \addtolength{\eq@tmplengthA}{#1}%
- \edef\eq@extralabelsep{\the\eq@tmplengthA}%
- \fi
-}
-\let\fillInFormatDefault\@empty
-\def\eqe@DoWarning#1{\PackageWarning{eqexam}{\string#1\space
- requires the first argument\MessageBreak of problem* to be <num>ea}}
-\def\eqe@DoNum{\textbf{??}\eqe@DoWarning{\DoNum}}
-\def\eqe@nDoNum{\textbf{??}\eqe@DoWarning{\nDoNum}}
-\let\DoNum\eqe@DoNum
-\let\nDoNum\eqe@nDoNum
-\def\makeDoNum#1{\xdef\nDoNum{#1}%
- \def\ifc@sewrap{\ifcase#1??\or}%
- \xdef\DoNum{\expandafter\ifc@sewrap\eqe@wordNums\else
- \eqe@wordNumbsError\fi}}
-\def\makeOutOfNum#1{\xdef\nOutOfNum{#1}%
- \def\ifc@sewrap{\ifcase#1??\or}%
- \xdef\OutOfNum{\expandafter\ifc@sewrap\eqe@wordNums\else
- \eqe@wordNumbsError\fi}}
-\def\eqe@OutOfNum{\textbf{??}\eqe@DoWarning{\OutOfNum}}
-\def\eqe@nOutOfNum{\textbf{??}\eqe@DoWarning{\nOutOfNum}}
-\let\OutOfNum\eqe@OutOfNum
-\let\nOutOfNum\eqe@nOutOfNum
-\newcommand{\eqe@wordNums}{one\or two\or three\or
- four\or five\or six\or seven\or eight\or nine\or ten}
-\newcommand{\eqe@wordNumbsError}{\noexpand\PackageError{eqexam}%
- {Number out of range, 1--10}%
- {Use a smaller number, or redefine the command
- \string\eqe@wordNums.}}
-\def\makeRoomForProb#1#2{\par %\endgraf % dps 11/11/10
- \bgroup\@nobreakfalse\addpenalty{-500}%
- \setlength{\@tempdimb}{#1}%
- \@tempdima \pagegoal \advance \@tempdima -\pagetotal
- \ifdim \@tempdima<\@tempdimb\ifnum\col@number>\@ne\columnbreak
- \else\newpage\fi\fi\egroup
- \ifnum\@reportpoints>1
- \ifx\eqe@prevProbZero\eqe@YES
- \if\eqe@isPts0\else\vskip-\halfHtPtBox\relax\fi
- \else
- \ifl@stDispl@yPoints
- \if\eqe@isPts0\@checkSpacing{1}\else
- \if#21 \@checkSpacing{0}\fi
- \fi\fi
- \fi
- \fi
-}
-\newcommand{\emitMessageNearBottom}{\@ifstar
- {\def\eqe@emnb{\ifnum\col@number>\@ne\columnbreak
- \else\newpage\fi\insertContAnnot}\eq@emitMessageNearBottom}
- {\let\eqe@emnb\relax\eq@emitMessageNearBottom}}
-\newcommand{\eq@emitMessageNearBottom}[2][\iacvspace]{%
- \eq@@emitMessageNearBottom{#1}{#2}}
-\def\eq@@emitMessageNearBottom#1#2{\par
- \bgroup\@nobreakfalse\addpenalty{-500}%
- \setlength{\@tempdimb}{#1}%
- \@tempdima \pagegoal \advance \@tempdima -\pagetotal
- \ifdim \@tempdima<\@tempdimb #2 \eqe@emnb\fi\egroup}
-\newcommand{\getSpaceLeftOnPage}{\par\bgroup
- \@tempdima \pagegoal \advance \@tempdima -\pagetotal
- \xdef\amtSpaceOnLeftOnPage{\the\@tempdima}\egroup}
-\newcommand{\pnpDflt}{\@fvsizeskip\textheight}
-\newcommand{\promoteNewPage}[1][\pnpDflt]{%
- \makeRoomForProb{#1}{0}}
-\def\pointsmarginparpush{3pt}
-\def\@checkSpacing#1{\bgroup\ifinner\else
- \@tempdima\lastPageTotal
- \@tempdimb\pagetotal
- \ifdim\@tempdima < \@tempdimb
- \advance\@tempdimb by-\@tempdima
- \ifdim\@tempdimb < \eq@pointboxtotalheight
- \if#11%
- \eq@pointboxtotalheight\halfHtPtBox\relax
- \advance\eq@pointboxtotalheight\dpPtBox\relax
- \fi
- \@tempdima=\eq@pointboxtotalheight
- \advance\@tempdima\pointsmarginparpush\relax
- \advance\@tempdima by-\@tempdimb
- \vspace*{\@tempdima}%
- \fi
- \fi\fi
-\egroup}
-\def\@checkSpacingi{\bgroup
- \@tempdima = \lastPageTotal
- \@tempdimb = \pagetotal
- \ifdim\@tempdima < \@tempdimb
- \advance\@tempdimb by-\@tempdima
- \eq@pointboxtotalheight\halfHtPtBox\relax
- \advance\eq@pointboxtotalheight\dpPtBox\relax
- \ifdim\@tempdimb < \eq@pointboxtotalheight
- \@tempdima=\eq@pointboxtotalheight
- \advance\@tempdima\pointsmarginparpush\relax
- \advance\@tempdima by-\@tempdimb
- \vspace*{\@tempdima}%
- \fi
- \fi
-\egroup}
-\newcommand{\setDefaultnbaselineskip}[1]{\def\default@nbaselineskip{#1}}
-\setDefaultnbaselineskip{6}
-\def\nbaselineskip#1{\def\@nbaselineskip{#1}}
-\def\nbaselineskipReset{\edef\@nbaselineskip{\default@nbaselineskip}}
-\nbaselineskipReset
-\def\eqe@gobbletoend#1\end{}
-\def\eqe@grabarg#1\end{\def\numpoints{#1}}
-\def\eqe@isPts{1}
-\aboveexskip{3pt}\belowexskip{3pt}
-\partstopsep{3pt}\partsitemsep{3pt}\partsparsep{0pt}
-\rowsepDefault{3pt}\partstabcolsep{1.5pt}%
-\partstabtopsep{3pt}\partstabrowsep{3pt}
-\renewcommand\belowexsolnskip{{}}%
-\let\isProbEnv\eqe@NO
-\let\topofprobhook\relax
-\newenvironment{problem}[1][]{\let\isProbEnv\eqe@YES
- \if\eqe@isPts0\global\let\eqe@prevProbZero\eqe@YES\else
- \global\let\eqe@prevProbZero\eqe@NO\fi
- \global\thereissolutionfalse
- \def\numpointsEmpty{0}\def\numpoints{#1}%
- \ifx\numpoints\@empty\def\numpoints{0}\def\numpointsEmpty{1}%
- \gdef\eqe@isPts{0}\else\gdef\eqe@isPts{1}\fi
- \makeRoomForProb{\@nbaselineskip\baselineskip}{\eqe@isPts}%
- \gdef\probstar{x}\let\afterlabelhskip\@empty
- \ifx\marginpoints\@empty\else %\def\numpoints{#1}%
- \if\numpointsEmpty\eqe@One\let\marginpoints\@gobbletwo\fi
- \@ifstar{\let\@isitstar\eqe@One\eqe@grabarg}%
- {\let\@isitstar\eqe@Zero\eqe@gobbletoend}#1\end
- \if\@isitstar\eqe@One\addtocounter{eqpointvalue}{\numpoints}%
- \@marktotalvalue
- \ifdispl@yPoints
- \def\marginparafterhook{\PTs{\numpoints}\space}\else
- \def\marginparafterhook{\PTs*{\numpoints}\space}\fi\else
- \def\marginparpriorhook{\noindent
- \probvalue{\numpoints}{0}}\fi
- \fi\setcounter{eq@count}{\value{eqquestionnoi}}%
- \addtocounter{eq@count}{1}%
- \ifnum\value{eq@count}=1\relax
- \eqe@IWO\@auxout{\string
- \csarg\string\gdef{pagenofirstprob\thisexamlabel}{\thepage}}%
- \fi
- \topofprobhook
- \begin{eqequestions}%
- \begin{exercise}[eqquestionnoi]%
-}{\end{exercise}%
- \end{eqequestions}%
- \ifeqlocalversion\ifeqglobalversion
- \xdef\eqe@tmp{\noexpand\forVersion{\eq@selectedVersion}}%
- \aftergroup\eqe@tmp
- \fi\fi
- \global\eqlocalversionfalse
- \ifdispl@yPoints\global\l@stDispl@yPointstrue
- \else\global\l@stDispl@yPointsfalse\fi
- \global\let\eqe@fpmrk\@empty
-}
-\newcommand\itemPTsTxt[1]{$\eqe@ptsFmt{#1}\,\text{%
- \ifnum#1=1\relax\eqptLabel\else\eqptsLabel\fi}$}
-\newcommand\itemPTsEaTxt[1]{$\eqe@ptsFmt{#1}\,\text{%
- \ifnum#1=1\relax\eqptLabel\else\eqptsLabel\fi\space\eqeachLabel}$}
-\newcommand{\itemPTsFormated}[1]{(#1)}
-\newif\ifObeyPTsStar \ObeyPTsStartrue
-\def\obeyPTsStar{\global\ObeyPTsStartrue}
-\def\ignorePTsStar{\global\ObeyPTsStarfalse}
-\def\PTs{\leavevmode\@ifstar{\@PTs{*}}{\@PTs{x}}}
-\def\@PTs#1#2{%
- \if\@reportpoints\eqe@Zero\ignorespaces\else
- \if\eqe@pointsPartsId\eqe@One
- \addtocounter{eqpointvalue}{#2}\@marktotalvalue
- \addtocounter{eq@count}{#2}\fi
- \if#1*\ifObeyPTsStar\ignorespaces\else\expandafter\@gobble\fi
- \else
- \eqe@movePTs{\itemPTsFormated{\itemPTsTxt{#2}}}\fi
- \fi
-}
-\def\eqe@movePTs#1{#1}
-\let\auto\relax
-\def\isItD@{\@ifnextchar\Do{\let\yest@D@\eqe@YES\y@st@Do}
- {\let\yest@D@\eqe@NO\@gobblet@end}}
-\let\yest@D@\eqe@NO
-\let\D@Num\@empty
-\def\y@st@Do\Do#1\end{\gdef\D@Num{#1}}
-\def\@gobblet@end#1\end{}
-\def\is@uto#1\auto#2\@nil{\def\eqe@argi{#1}\def\eqe@argii{#2}%
- \ifx\eqe@argii\@empty\let\isit@uto\eqe@Zero\else
- \let\isit@uto\eqe@One\fi
-}
-\let\eqe@pointsPartsId\relax
-\def\leadinitemWarningStar{\PackageWarning{eqexam}
- {Using the star (*) in front of the points\MessageBreak
- designator is not allowed when there is a
- \MessageBreak\string\leadinitem}}
-\def\tableadinWarningStar{\PackageWarning{eqexam}
- {Using the star (*) in front of the points\MessageBreak
- designator is not allowed when there is a
- \MessageBreak\string\tableadin}}
-\let\isProbStarEnv\eqe@NO
-\let\topofprobstarhook\relax
-\csarg\def{problem*}{\let\isProbEnv\eqe@YES
- \let\isProbStarEnv\eqe@YES
- \global\thereissolutionfalse
- \@ifnextchar[{\pr@bl@m@star}{\pr@bl@m@star[]}}
-\def\pr@bl@m@star[#1]{%
- \@ifnextchar[{\pr@blem@star{#1}}{\pr@blem@star{#1}[]}}
-\def\pr@blem@star#1[#2]{%
- \if\eqe@isPts0\global\let\eqe@prevProbZero\eqe@YES\else
- \global\let\eqe@prevProbZero\eqe@NO\fi
- \def\numpoints{#1}\ifx\numpoints\@empty
- \gdef\eqe@isPts{0}\else\gdef\eqe@isPts{1}\fi
- \makeRoomForProb{\@nbaselineskip\baselineskip}{\eqe@isPts}%
- \let\DoNum\eqe@DoNum\let\nDoNum\eqe@nDoNum
- \let\OutOfNum\eqe@OutOfNum\let\nOutOfNum\eqe@nOutOfNum
- \gdef\probstar{*}%
- \gdef\pr@b@secondarg{#2}\setcounter{eq@count}{0}%
- \let\afterlabelhskip\@empty
- \global\let\probpointseach\@empty\def\numpoints{#1}%
- \@ifstar{\let\@isitstar\eqe@One\eqe@grabarg}%
- {\let\@isitstar\eqe@Zero\eqe@gobbletoend}#1\end
- \if\@isitstar\eqe@One
- \@tempcnta=\theeqquestionnoi\relax
- \advance\@tempcnta1\relax
- \@ifundefined{leadinitem\thisexamlabel-\the\@tempcnta}{}
- {\leadinitemWarningStar\let\@isitstar\eqe@Zero}%
- \@ifundefined{tableadin\thisexamlabel-\the\@tempcnta}{}
- {\tableadinWarningStar\let\@isitstar\eqe@Zero}%
- \fi
- \expandafter\is@uto\numpoints\auto\@nil
- \if\isit@uto\eqe@One\let\eqe@pointsPartsId\eqe@One
- \global\let\probpointseach\relax
- \def\eqe@next{\autocalcparts}%
- \else
- \ifx\pr@b@secondarg\@empty\else
- \let\eqe@pointsPartsId\eqe@Four
- \isItD@#2\end\fi
- \def\eqe@next{\manualcalcparts{\numpoints}}%
- \fi\eqe@next
- \let\leadinitem\eqe@leadinitem
- \let\tableadin\eqe@tableadin
- \topofprobstarhook
- \ifeqfortextbook
- \writeToSolnFile{\protect\global\protect\frstProbNumShownfalse}\fi
- \begin{eqequestions}%
- \begin{exercise}[eqquestionnoi]*}%
-\def\ftb@endprobstarCks{%
- \ifWithinANSGrp
- \PackageError{eqexam}{\string\bGrpANS\space is still open}
- {You need to match it with an \string\bGrpANS,
- or remove it.}%
- \fi
-}
-\csarg\def{endproblem*}{%
- \eqe@IWO\@auxout{\string
- \csarg\string\gdef{nPartsThisProb\thisexamlabel.\theeqquestionnoi}%
- {\arabic{partno}}}%
- \ifx\probpointseach\@empty\else
- \ifx\probpointseach\auto
- \eqe@IWO\@auxout{\string
- \csarg\string\gdef{prob\thisexamlabel.\theeqquestionnoi}%
- {\theeq@count}}%
- \else
- \setcounter{eq@count}{\value{partno}}%
- \ifx\pr@b@secondarg\@empty\else
- \bgroup\toks0=\expandafter{\pr@b@secondarg}%
- \expandafter\isItD@\the\toks0 \end
- \ifx\yest@D@\eqe@YES\ifx\eqe@pointsEach\eqe@YES
- \eqe@IWO\@auxout{\string
- \csarg\string\gdef{DoNumThisProb\thisexamlabel.%
- \theeqquestionnoi}{\D@Num}}%
- \@tempcnta = \value{eq@count}%
- \advance\@tempcnta -\D@Num
- \global\advance\value{eq@count}-\@tempcnta
- \@tempcnta=\value{partno}%
- \advance\@tempcnta -\D@Num
- \multiply\@tempcnta by\argi
- \addtocounter{eqpointvalue}{-\@tempcnta}%
- \fi\fi
- \egroup
- \fi
- \multiply\value{eq@count}\argi
- \eqe@IWO\@auxout{\string
- \csarg\string\gdef{prob\thisexamlabel.\theeqquestionnoi}%
- {\theeq@count}}%
- \fi\fi
- \end{exercise}%
- \end{eqequestions}%
- \ifeqfortextbook\ftb@endprobstarCks\fi
- \ifeqlocalversion\ifeqglobalversion
- \xdef\eqe@tmp{\noexpand\forVersion{\eq@selectedVersion}}%
- \aftergroup\eqe@tmp
- \fi\fi
- \global\eqlocalversionfalse
- \@marktotalvalue
- \ifdispl@yPoints\global\l@stDispl@yPointstrue
- \else\global\l@stDispl@yPointsfalse\fi
-}
-\let\solutionparshape\@empty
-\def\eqe@leadinitem{%
- \ifx\solutionparshape\@empty
- \def\eqe@next{\eqe@@leadinitem}%
- \ifeqfortextbook\writeToSolnFile{\protect\bpartsmrk}\fi
- \else
- \def\eqe@next{\PackageError{eqexam}
- {The \string\leadinitem\space command may
- only be used\MessageBreak once per problem* environment}
- {Remove all but one of the \string\leadinitem\space
- commands.}}%
- \fi\eqe@next
-}
-\newif\ifisleadin \isleadinfalse
-\let\isparshapeExpanded\eqe@NO
-\def\eqe@@leadinitem{\if\itsforleadinitem\eqe@NO
- \setcounter{partno}{0}\fi\refstepcounter{partno}%
- \eq@initializeContAnnot
- \isleadintrue\let\isitleadin\eqe@YES
- \eqe@writetoAux{\string
- \csarg\string\gdef{leadinitem\thisexamlabel-\theeqquestionnoi}{}}%
- \settowidth{\eq@tmpdima}{\normalfont\parts@indent\eqe@prtsepPrb}%
- \xdef\leadinIndentPrtSep{\the\eq@tmpdima}%
- \setlength{\eq@tmpdima}{\eqemargin+\eq@tmpdima}%
- \xdef\leadinIndent{\the\eq@tmpdima}%
- \settowidth{\eq@tmplength}{\parts@indent}%
- \edef\partsleadinIndent{\the\eq@tmplength}%
- \setlength{\eq@tmplength}{\linewidth-\leadinIndentPrtSep}%
- \edef\leadinIndentLength{\the\eq@tmplength}%
-\@ifundefined{@listii@SAVE}{\global\let\@listii@SAVE\@listii}{}%
- \expandafter\def\expandafter\@listii\expandafter{\@listii@SAVE
- \advance\leftmarginii\leadinIndentPrtSep\relax
- \leftmargin\leftmarginii \labelwidth\leftmarginii
- \advance\labelwidth-\labelsep
- }%
- \parshape=2 \eqemargin \linewidth \leadinIndent \leadinIndentLength
- \xdef\solutionparshape{%\noexpand\linewidth\leadinIndentLength
- \noexpand\parshape=1 \leadinIndent\space\leadinIndentLength}%
- \global\let\isparshapeExpanded\eqe@NO
- \everypar{\solutionparshape
- \global\let\isparshapeExpanded\eqe@YES\everypar{}}%
- \let\eq@item\eq@leadin@item\eqp@rtc@lcm@rk
- \def\currhideopt{x}\eq@hidesolutionfalse\eq@nolinkfalse
- \@ifnextchar[{\@ckhide}{\eq@item}%
-}
-\def\eq@leadin@item{\eq@ckglobalhide\ifeq@hidesolution\else
- \global\let\eqExerSolnHeader\eq@@writeexheaderlist\fi
- \ifeq@nosolutions\eq@nolinktrue\fi
- \unskip\noindent\makebox[\partsleadinIndent]{\eqexlisttabheader}%
- \eqe@prtsepPrb\ignorespaces
-}
-\def\eqe@tableadin{\@tableadinitemtrue\eqe@writetoAux{\protect
- \csarg\protect\gdef{tableadin\thisexamlabel-\theeqquestionnoi}{}}%
-}
-\newcommand\pushProblem{\xdef\nlastItem{\arabic{partno}}\end{parts}}
-\newcommand\popProblem[1][]{%
- \def\@argi{#1}\ifx\@argi\@empty
- \def\eqe@bParts{\begin{parts}}\else
- \def\eqe@bParts{\begin{parts}[#1]}\fi
- \eqe@bParts\setcounter{partno}{\nlastItem}}
-\def\lastPageTotal{0pt}
-\def\marginparafterhook{\xdef\lastPageTotal{\the\pagetotal}}
-\def\prob@Arg#1ea#2\end{\def\argi{#1}\def\argii{#2}}
-\let\eqe@pointsEach\eqe@NO
-\def\manualcalcparts#1{%
- \expandafter\prob@Arg#1ea\end
- \ifx\argii\@empty\edef\numpoints{#1}%
- \let\eqe@pointsEach\eqe@NO
- \let\eqe@pointsPartsId\eqe@Zero
- \else
- \gdef\probpointseach{x}\let\eqe@pointsPartsId\eqe@Two
- \let\eqe@pointsEach\eqe@YES
- \setcounter{eq@count}{\value{eqquestionnoi}}%
- \addtocounter{eq@count}{1}\csarg
- \ifx{prob\thisexamlabel.\theeq@count}\relax
- \def\numpoints{\argi}\else
- \def\numpoints{\expandafter
- \csname prob\thisexamlabel.\theeq@count\endcsname}%
- \fi
- \ifx\yest@D@\eqe@YES
- \setcounter{eq@count}{\value{eqquestionnoi}}%
- \addtocounter{eq@count}{1}%
- \@ifundefined{nPartsThisProb\thisexamlabel.\theeq@count}
- {\makeOutOfNum{0}\makeDoNum{0}}{%
- \expandafter\makeOutOfNum{%
- \csname nPartsThisProb\thisexamlabel.%
- \theeq@count\endcsname}%
- \expandafter\makeDoNum{%
- \csname DoNumThisProb\thisexamlabel.%
- \theeq@count\endcsname}}%
- \fi
- \fi
- \ifx\marginpoints\@empty
- \else
- \ifx\argi\@empty
- \let\marginpoints\@empty
- \else
- \ifx\argii\@empty
- \ifx\marginpoints\@empty\else
- \if\@isitstar\eqe@One
- \addtocounter{eqpointvalue}{#1}%
- \@marktotalvalue\ifdispl@yPoints
- \def\marginparafterhook{\itemPTsFormated{%
- \itemPTsTxt{\numpoints}}\space}\fi
- \else
- \def\marginparpriorhook{\noindent
- \probvalue{\numpoints}{0}}%
- \fi
- \fi
- \else
- \ifx\marginpoints\@empty\else
- \if\@isitstar\eqe@One\ifdispl@yPoints
- \def\marginparafterhook{%
- \itemPTsFormated{\itemPTsEaTxt{\argi}}\space}\fi
- \else
- \ifdispl@yPoints
- \def\marginparpriorhook{\noindent
- \marginpoints{\numpoints}{\argi}}\fi
- \fi
- \edef\eqp@rtc@lcm@rk{\noexpand
- \addtocounter{eqpointvalue}{\argi}%
- \noexpand\@marktotalvalue}%
- \fi
- \fi
- \fi
- \fi
- \ifnum\value{eq@count}=1\relax
- \eqe@IWO\@auxout{\string\csarg\string
- \gdef{pagenofirstprob\thisexamlabel}{\thepage}}%
- \fi
-}
-\def\acp@mpah{\itemPTsFormated{\itemPTsTxt{\numpoints}}\space}
-\def\acp@mpph{\noindent\marginpoints{\numpoints}{0}}
-\def\autocalcparts{%
- \setcounter{eq@count}{\value{eqquestionnoi}}%
- \addtocounter{eq@count}{1}%
- \csarg\ifx{prob\thisexamlabel.\theeq@count}\relax
- \def\numpoints{0}% assume zero points until we get the total
- \else
- \edef\numpoints{\@nameuse{prob\thisexamlabel.\theeq@count}}%
- \fi
- \ifx\marginpoints\@empty\else
- \ifdispl@yPoints
- \if\@isitstar\eqe@One
- \def\marginparafterhook{\acp@mpah}\else
- \def\marginparpriorhook{\acp@mpph}\fi
- \fi
- \fi
- \setcounter{eq@count}{0}%
-}
-\let\eqe@fpmrk\@empty
-\newcommand{\forproblem}[1]{\def\eqe@fpmrk{-\the@exno}%
- \setcounter{eqquestionnoi}{#1 - 1}}
-\newcommand{\foritem}[2][]{%
- \setcounter{partno}{0}\def\@rgi{#1}\ifx\@rgi\@empty
- \def\eqe@nextitem{\item}\else
- \def\eqe@nextitem{\item[#1]}\fi
- \foritem@cont{#2}}
-\newcommand{\forleadinitem}[2][]{%
- \setcounter{partno}{0}\def\@rgi{#1}\ifx\@rgi\@empty
- \def\eqe@nextitem{\leadinitem}\else
- \def\eqe@nextitem{\leadinitem[#1]}\fi
- \foritem@cont{#2}}
-\def\foritem@cont#1{\ifuseNumForParts
- \edef\fliPartNo{#1}\setcounter{partno}{#1-1}\else
- \lowercase{\def\eq@selectedItem{#1}}%
- \let\eq@initLoop\eqe@NO
- \loop
- \stepcounter{partno}\expandafter
- \if\alph{partno}\eq@selectedItem
- \let\eq@initLoop\eqe@YES\fi
- \ifx\eq@initLoop\eqe@NO\repeat
- \edef\fliPartNo{\the\c@partno}%
- \addtocounter{partno}{-1}\fi\let\itsforleadinitem\eqe@YES
- \eqe@nextitem}
-\newcommand{\annotContStr}{%
- \textbf{Problem~{\eqeCurrProb} continued\strut}}
-\newcommand{\acvspace}[1]{\def\ic@vspace{#1}\setlength\iacvspace{#1}}
-\newlength\iacvspace
-\newcommand{\ic@vspacedefault}{1in} % changed .25in to 1in 2012/12/04
-\newcommand{\resetacvspace}{\setlength\iacvspace{\ic@vspacedefault}}
-\resetacvspace
-\newcommand{\eqe@insertContAnnot}[1][\iacvspace]{\promoteNewPage[#1]%
- \ifnum\arabic{page}>\eq@currProbStartPage
- \xdef\eq@currProbStartPage{\arabic{page}}%
- {\settowidth{\eq@tmplength}{\parts@indent\eqe@prtsepPrb}%
- \xdef\eqe@partsIndent{\the\eq@tmplength}}%
- \ifwithinparts
- \@ifundefined{eq@item@latex}{\item[]\hspace*{-\eqemargin}%
- \ifx\solutionparshape\@empty\else\hspace*{-\eqe@partsIndent}\fi}
- {\eq@item@latex[]\hspace*{-\eqemargin}%
- \hspace{-\eqe@partsIndent}}\else
- \hspace*{-\eqemargin}\fi\annotContStr
- \fi
-}
-\edef\eq@currProbStartPage{\arabic{page}}
-\newcommand{\turnContAnnotOff}{\global\let\eq@insertContAnnot\relax}
-\newcommand{\turnContAnnotOn}{%
- \global\let\eq@insertContAnnot\eqe@insertContAnnot}
-\turnContAnnotOff
-\def\insertContAnnot{\eq@insertContAnnot}
-\newcommand\aNewPage{\ifanswerkey\newpage\fi}
-\newcommand\qNewPage{\ifanswerkey\else\newpage\fi}
-\newcounter{backofpage}
-\newcommand\bopText{on the back of page~\boPage}
-\newcommand\bopCoverPageText{on the back of the cover page}
-\newcommand\OnBackOfPage[1][\bopText]{%
- \refstepcounter{backofpage}\label{bop\thebackofpage}
- \begingroup
- \csarg\ifx{r@bop\thebackofpage}\relax
- \def\boPage{??}\else
- \edef\eqe@temp{\csname r@bop\thebackofpage\endcsname}%
- \ifx\hyper@anchor\@undefined
- \edef\boPage{\expandafter\@secondoftwo\eqe@temp}\else
- \edef\boPage{\expandafter\@secondoffive\eqe@temp}\fi
- \c@eq@count\boPage
- \advance\c@eq@count-1\relax
- \edef\boPage
- {%
- \ifx\eqex@coverpage\relax
- \ifnum\value{eq@count}=0
- 1%
- \else
- \the\value{eq@count}%
- \fi
- \else
- \ifnum\value{eq@count}=0
- -1%
- \else
- \the\value{eq@count}%
- \fi
- \fi
- }%
- \fi
- \csarg\ifx{r@bop\thebackofpage}\relax#1\else
- \ifnum\boPage=-1\relax\bopCoverPageText\else#1\fi\fi
- \endgroup
-}
-\newcommand{\eqWriteLineColor}[1]{\def\eq@WriteLineColor{#1}}
-\eqWriteLineColor{gray}
-\newlength\wlVspace
-\newcommand{\eqWLSpacing}[1]{\setlength\wlVspace{#1}}
-\eqWLSpacing{14pt}
-\newcommand{\eqWriteLineFill}{%
- \textcolor{\eq@WriteLineColor}{\hrulefill}}
-\def\eqdotrulefile{\leavevmode
- \cleaders\hb@xt@ .44em{\hbox to0pt{\hss.\hss}\hss}\hfill\kern\z@}
-\newcommand{\eqWriteLineDots}{%
- \textcolor{\eq@WriteLineColor}{\eqdotrulefile}}
-\def\eqdashrulefill{\leavevmode%\kern-.11em
- \cleaders\hb@xt@ .44em{\rule{.22em}{.4pt}\hss}\hfill\kern\z@}
-\newcommand{\eqWriteLineDashFill}{%
- \textcolor{\eq@WriteLineColor}{\eqdashrulefill}}
-\newcommand{\eqWriteLineBlankFill}{\hfill}
-\newif\if@equsedim \@equsedimtrue
-\newcommand{\useVspaceDimen}{\@equsedimtrue}
-\newcommand{\usenLineDimen}{\@equsedimfalse}
-\newif\if@eqalignfilllinestoleft\@eqalignfilllinestoleftfalse
-\newcommand{\fillerLinesOnLeftMargin}{\@eqalignfilllinestolefttrue}
-\newcommand{\fillerLinesAlignDef}{\@eqalignfilllinestoleftfalse}
-\newcommand\priorPageBreakMsg[1]{\def\priorP@geBre@kMsg{#1}}
-\let\priorP@geBre@kMsg\@empty
-\newcommand{\flPageBreakMsg}[1]{%\acvspace{2\wlVspace}%
- \priorPageBreakMsg{\emitMessageNearBottom[2\wlVspace]
- {\eqfititin{{\Large\strut}#1}}}%
-}
-\newcommand{\vspaceFillerLines}[1]{\begingroup\offinterlineskip
- \parindent0pt\relax\parskip0pt
- \@tempdima\wlVspace\eqetmplengtha0pt
- \def\eqe@fillwidth{\linewidth+\eqetmplengtha}%
- \settowidth{\eqetmplengthb}{\eqe@decPointPrb}%
- \@whiledim\@tempdima<#1\relax\do{\priorP@geBre@kMsg
- \eq@insertContAnnot\vskip\wlVspace\eqe@wrtLineKernal
- \makebox[0pt][l]{\makebox[\eqe@fillwidth]{\eqWriteLine}}%
- \addtolength{\@tempdima}{.4pt+\wlVspace}\par
- }\endgroup
-}
-\def\eq@linesXPgs{\begingroup\offinterlineskip
- \parindent0pt\relax\parskip0pt
- \@tempcnta=0 \eqetmplengtha0pt
- \settowidth{\eqetmplengthb}{\eqe@decPointPrb}%
- \def\eqe@fillwidth{\linewidth+\eqetmplengtha}%
- \@whilenum\@tempcnta<\soln@keys@nLines\relax\do{\priorP@geBre@kMsg
- \eq@insertContAnnot\vskip\wlVspace\eqe@wrtLineKernal
- \makebox[0pt][l]{\makebox[\eqe@fillwidth]{\eqWriteLine}}%
- \advance\@tempcnta1\relax}\par\endgroup
-}
-\def\eqe@wrtLineKernal{%
- \ifx\solutionparshape\@empty
- \if@eqalignfilllinestoleft
- \setlength{\eqetmplengtha}{\labelwidth+\eqemargin}%
- \setlength{\eqetmplengtha}
- {\eqetmplengtha+\eqetmplengthb}%
- \ifwithinparts
- \setlength{\eqetmplengtha}{\labelwidth}%
- \setlength{\eqetmplengtha}
- {\eqetmplengtha+\eqetmplengthb}%
- \ifx\eq@item\item@part@tabular
- \hspace*{-\eqemargin}\eqetmplengtha\eqemargin\else
- \hspace*{-\eqetmplengtha}\fi
- \else
- \hspace*{-\eqemargin}\eqetmplengtha\eqemargin
- \fi
- \else
- \ifwithinparts
- \setlength{\eqetmplengtha}{\labelwidth}%
- \setlength{\eqetmplengtha}
- {\eqetmplengtha-\eqetmplengthb}%
- \setlength{\eqetmplengtha}{\labelwidth}%
- \setlength{\eqetmplengtha}
- {\eqetmplengtha+\eqetmplengthb}%
- \ifx\eq@item\item@part@tabular
- \hspace*{\eqetmplengtha}%
- \settowidth{\eqetmplengthb}{\eqe@prtsepPrb}%
- \setlength{\eqetmplengtha}
- {-\labelwidth-\eqetmplengthb}\else
- \eqetmplengtha0pt\fi
- \else
- \eqetmplengtha0pt
- \fi
- \fi
- \else
- \if@eqalignfilllinestoleft
- \setlength{\eqetmplengtha}
- {\eqemargin+\leadinIndentPrtSep}%
- \hspace*{-\eqetmplengtha}\else\hspace*{0pt}\fi
- \fi
-}
-\newcommand{\useFillerLines}{\let\vspaceFiller\vspaceFillerLines
- \fillTypeDefault\@eqlinedfillertrue}
-\newcommand{\useFillerDefault}{\let\vspaceFiller\vspaceFillerDefault
- \let\eqWriteLine\hfill\@eqlinedfillerfalse}
-\newcommand{\fillTypeHRule}{\let\eqWriteLine\eqWriteLineFill}
-\newcommand{\fillTypeDots}{\let\eqWriteLine\eqWriteLineDots}
-\newcommand{\fillTypeDashLine}{\let\eqWriteLine\eqWriteLineDashFill}
-\newcommand{\fillTypeBlankLine}{\let\eqWriteLine\eqWriteLineBlankFill}
-\newcommand{\fillTypeDefault}{\let\eqWriteLine\eqWriteLineFill}
-\ifeqfortextbook\else
- \if@bypasseqexamheading\else
-\pagestyle{eqExamheadings}\fi\fi
-\ifeqfortextbook
-\AtBeginDocument{\tb@soln@choice
- \ifeqwritetomargins\chkmarginboxwidth
- \AddToShipoutPicture{\eqe@tb@shipout}\fi}
-\fi
-\edef\ftbInputEqTextb{\ifeqfortextbook\noexpand
- \InputIfFileExists{eqtextb.def}{}{}\fi}
-\ftbInputEqTextb
-\define@boolkey{eqFillin}{underline}[true]{}
-\define@key{eqFillin}{u}[]{\KV@eqFillin@underlinetrue}
-\define@key{eqFillin}{b}[]{\KV@eqFillin@underlinefalse}
-\define@boolkey{eqFillin}{boxed}[true]{}
-\define@key{eqFillin}{boxpretext}[]{\def\eq@fillintext{#1}}
-\let\eq@fillintext\@empty
-\define@key{eqFillin}{parbox}[\relax]{\def\eq@fillinparbox{#1}}
-\let\eq@fillinparbox\@empty
-\define@key{eqFillin}{hiddenbox}[]{%
- \def\eq@fillinhiddenbox{%
- \setlength{\fboxrule}{0pt}\setlength{\fboxsep}{0pt}}}
-\let\eq@fillinhiddenbox\@empty
-\define@boolkey{eqFillin}{enclosesoln}[true]{}
-\define@choicekey+{eqFillin}{boxsize}{tiny,scriptsize,footnotesize,%
- small,normalsize,large,Large,LARGE,huge,Huge}[normalsize]{%
- \def\eq@eqFillin@boxsize{\text{\csname#1\endcsname\strut}}%
-}{\PackageWarning{eqexam}{Bad choice for boxsize, permissible values
- are tiny, scriptsize, footnotesize, small, normalsize,
- large, Large, LARGE, huge and Huge. Try again}}
-\def\eq@eqFillin@boxsize{\text{\normalsize\strut}}
-\define@key{eqFillin}{color}[\eq@fillinColor]{\edef\eq@fillin@color{#1}}
-\define@choicekey+{eqFillin}{align}[\val\nr]%
- {l,r,c}[\eq@eqFillin@align@default]{%
- \def\eq@eqFillin@align{#1}%
- \ifcase\nr\relax
- \def\eqe@align@hfill{}\or
- \def\eqe@align@hfill{\hfill}\or
- \def\eqe@align@hfill{\hfil}\fi
- }{%
- \PackageWarning{eqexam}{Bad choice for align, permissible values
- are l, r, and c. Try again}}
-\let\eqe@align@hfill\relax
-\define@choicekey+{eqFillin}{defaultalign}[\val\nr]{l,r,c}[c]{%
- \def\eq@eqFillin@align@default{#1}%
- \ifcase\nr\relax
- \def\eqe@align@hfill@default{}\or
- \def\eqe@align@hfill@default{\hfill}\or
- \def\eqe@align@hfill@default{\hfil}\fi
- }{%
- \PackageWarning{eqexam}{Bad choice for defaultalign, permissible
- values are l, r, and c. Try again}}
-\setkeys{eqFillin}{defaultalign=c}
-\renewcommand{\fillInFormatDefault}{\normalfont}
-\define@key{eqFillin}{format}[\fillInFormatDefault]{%
- \def\eq@fillin@format{#1}}
-\def\eq@fillin@format{\bfseries}
-\def\eqe@fbox@corr#1{#1-2\fboxsep-2\fboxrule}
-\define@boolkey{eqFillin}{fitwidth}[true]{} %
-\@ifundefined{boxed}{%
- \def\eq@fillin@defaultbox{\fbox}%
- \def\eq@fillin@boxcmd{\fbox}%
- }{%
- \def\eq@fillin@defaultbox{\boxed}%
- \def\eq@fillin@boxcmd{\boxed}%
- }
-\define@key{eqFillin}{boxcmd}%
- [\eq@fillin@defaultbox]{\def\eq@fillin@boxcmd{#1}}
-\@ifundefined{underbar}{%
- \def\eq@fillin@defaultul{underline}%
- \def\eq@fillin@ulcmd{\underline}%
- }{%
- \def\eq@fillin@defaultul{underbar}%
- \def\eq@fillin@ulcmd{\underbar}%
- }
-\edef\ulcustom{\expandafter\noexpand\eq@fillin@ulcmd}
-\edef\temp@exp{\noexpand
-\define@choicekey+{eqFillin}{ulcmd}
- {underbar,underline,custom}[\eq@fillin@defaultul]}
-\temp@exp{\def\@rgi{#1}\def\eq@custom{custom}\ifx\@rgi\eq@custom
- \def\eq@fillin@ulcmd{\@nameuse{ulcustom}}\else
- \def\eq@fillin@ulcmd{\@nameuse{#1}}\fi
-}{\PackageWarning{aeb}{Bad choice for ulcmd, permissible values
- are underbar and underline. Try again}}
-\define@key{eqFillin}{lift}[-1sp]{\def\eq@fillin@lift{#1}}
-\define@boolkey{eqFillin}{autolift}[true]{} %
-\define@key{eqFillin}{addtoautolift}[0pt]{%
- \def\eq@fillin@addtoautolift{#1}}
-\def\eqe@getiiiOpts{%
- \@ifnextchar[%]
- \i@eqe@getiiiOpts
- {\iii@eqe@getiiiOpts{c}{\relax}[s]}}
-\def\i@eqe@getiiiOpts[#1]{%
- \@ifnextchar[%]
- {\ii@eqe@getiiiOpts{#1}}%
- {\iii@eqe@getiiiOpts{#1}{\relax}[s]}}
-\def\ii@eqe@getiiiOpts#1[#2]{%
- \@ifnextchar[%]
- {\iii@eqe@getiiiOpts{#1}{#2}}%
- {\iii@eqe@getiiiOpts{#1}{#2}[#1]}}
-\def\iii@eqe@getiiiOpts#1#2[#3]{%
- \def\eqe@opts@argi{#1}%
- \def\eqe@opts@argii{#2}%
- \def\eqe@opts@argiii{#3}}
-\newcommand{\setfillinDefaults}[1]{\def\eqe@argi{#1}\ifx\eqe@argi\@empty
- \let\eqe@setfillinDefaults\@empty\else
- \def\eqe@setfillinDefaults{#1}\fi}
-\let\eqe@setfillinDefaults\@empty
-\renewcommand{\fillin}[3][]{\begingroup%
- \expandafter\let\expandafter\ifsp\csname ifsp@expand\endcsname
- \setkeys{eqFillin}{boxsize,underline=true,boxed=false,%
- boxpretext,color,format,enclosesoln=false,fitwidth=false,lift,%
- autolift=false,addtoautolift}%
- \ifx\eqe@setfillinDefaults\@empty\else
- \protected@edef\eq@temp@exp{\noexpand
- \setkeys{eqFillin}{\eqe@setfillinDefaults}}%
- \eq@temp@exp
- \fi
- \protected@edef\eq@temp@exp{\noexpand\setkeys{eqFillin}{#1}}%
- \eq@temp@exp
- \ifKV@eqFillin@boxed\KV@eqFillin@underlinefalse\fi
- \ifKV@eqFillin@autolift\def\eq@fillin@lift{-2sp}\fi
- \edef\eqe@argii{#2}%
- \eq@fillinhiddenbox
- \ifx\eq@fillinhiddenbox\@empty\else
- \KV@eqFillin@boxedtrue\fi
- \ifx\eq@fillinparbox\@empty\def\eqe@argiii{#3}\else
- \ifx\eqe@align@hfill\relax
- \def\eq@eqFillin@align{l}\def\eqe@align@hfill{}\fi
- \expandafter\eqe@getiiiOpts\eq@fillinparbox\relax
- \ifKV@eqFillin@boxed
- \expandafter\ifx\eqe@opts@argii\relax\else
- \edef\eqe@opts@argii{\expandafter
- \eqe@fbox@corr\expandafter{\eqe@opts@argii}}\fi
- \fi
- \edef\eqe@parboxOptArgs{[\eqe@opts@argi]%
- \expandafter\ifx\eqe@opts@argii\relax\else
- [\eqe@opts@argii][\eqe@opts@argiii]\fi}%
- \def\eqe@argiii{\expandafter\parbox\eqe@parboxOptArgs{\eqe@bw}%
- {\eqe@align@hfill\ifKV@eqFillin@boxed\eq@fillintext\fi#3}}%
- \fi
- \ifx\eqe@align@hfill\relax
- \def\eq@eqFillin@align{c}%
- \edef\eqe@align@hfill{\eqe@align@hfill@default}\fi
- \ifmmode\let\@eqmath\ensuremath\else\let\@eqmath\text\fi
- \ifx\eq@fillinparbox\@empty
- \ifx\eqe@argii\@empty
- \settowidth{\eqetmplengthb}{\@eqmath{\eq@fillin@format
- \ifKV@eqFillin@boxed\eq@fillintext\fi\eqe@argiii}}%
- \ifKV@eqFillin@boxed
- \setlength{\eqetmplengthb}{%
- \eqetmplengthb+2\fboxsep+2\fboxrule}%
- \fi
- \else
- \setlength{\eqetmplengthb}{#2}%
- \fi
- \else
- \ifx\eqe@argii\@empty
- \setlength{\eqetmplengthb}{\linewidth}%
- \PackageWarning{eqexam}{Parameter \#2
- is empty with parbox option,\MessageBreak
- using \string\linewidth\space for width%
- }%
- \else
- \setlength{\eqetmplengthb}{#2}%
- \fi
- \fi
- \expandafter\let\expandafter\ifsp\csname ifsp@default\endcsname
- \edef\eqe@bw{\the\eqetmplengthb}%
- \ifKV@eqFillin@underline\let\@fillinFmt\eq@fillin@ulcmd
- \else\let\@fillinFmt\relax\fi
- \ifx\eq@fillinparbox\@empty\else
- \ifKV@eqFillin@underline\let\@fillinFmt\relax
- \PackageInfo{eqexam}{Removing underline option, not permissible
- \MessageBreak with parbox option}%
- \fi\fi
- \ifeq@proofing
- \ifKV@eqFillin@fitwidth
- \settowidth{\eqetmplengthb}{\@eqmath{\eq@fillin@format
- \ifx\eq@fillinparbox\@empty\ifKV@eqFillin@boxed
- \eq@fillintext\fi\fi\eqe@argiii}}%
- \ifKV@eqFillin@boxed
- \setlength{\eqetmplengthb}{%
- \eqetmplengthb+2\fboxsep+2\fboxrule}%
- \fi
- \edef\eqe@bw{\the\eqetmplengthb}%
- \fi
- \ifKV@eqFillin@boxed
- \ifmmode\let\@eqmath\ensuremath\else\let\@eqmath\text\fi
- \setbox\z@\hbox{\@eqmath{\eq@fillin@boxcmd{%
- \eq@eqFillin@boxsize
- \@fillinFmt{%
- \ifKV@eqFillin@boxed
- \edef\eqe@bw{\eqe@fbox@corr{\eqe@bw}}%
- \fi
- \makebox[\eqe@bw][\eq@eqFillin@align]{\strut
- \@eqmath{\eq@fillin@format\color{\eq@fillin@color}%
- \ifx\eq@fillinparbox\@empty
- \eq@fillintext\fi\eqe@argiii}}%
- }% end \@fillinFmt
- }}}% end \mbox
- \setlength{\@tempdima}{\ht0+\dp0}%
- \xdef\fillinTotalHeight{\the\@tempdima}%
- \mbox{\unhbox\z@}%
- \else
- \ifmmode\let\@eqmath\ensuremath\else\let\@eqmath\relax\fi
- \setbox\z@\hbox{%
- \ifdim\eq@fillin@lift=-1sp\relax
- \@fillinFmt{\makebox[\eqe@bw][\eq@eqFillin@align]{\strut
- \color{\eq@fillin@color}%
- \@eqmath{\eq@fillin@format\eqe@argiii}}}%
- \else
- \ifKV@eqFillin@autolift
- \setbox2=\hbox{\@eqmath{\eq@fillin@format\eqe@argiii}}%
- \setlength{\@tempdima}{\dp2+\eq@fillin@addtoautolift}%
- \edef\eq@fillin@lift{\the\@tempdima}\fi
- \raisebox{-\eq@fillin@lift}{\@fillinFmt{%
- \makebox[\eqe@bw][\eq@eqFillin@align]{\strut
- \color{\eq@fillin@color}%
- \raisebox{\eq@fillin@lift}{\@eqmath{\eq@fillin@format
- \eqe@argiii}}}}}%
- \fi
- }\setlength{\@tempdima}{\ht0+\dp0}%
- \xdef\fillinTotalHeight{\the\@tempdima}%
- \mbox{\unhbox\z@}%
- \fi
- \else
- \ifKV@eqFillin@boxed
- \setbox\z@\hbox{\@eqmath{\eq@fillin@format
- \eq@fillin@boxcmd{\eq@eqFillin@boxsize\ifeq@nosolutions
- \rlap{\@eqmath{\eq@fillintext}}\fi
- \ifvspacewithsolns\rlap{\@eqmath{\eq@fillintext}}\fi
- \@fillinFmt{%
- \makebox[\eqe@fbox@corr{\eqe@bw}]{%
- \ifKV@eqFillin@enclosesoln\phantom
- {\setlength\eqetmplengthb{\eqe@bw-2\fboxsep}%
- \edef\eqe@bw{\the\eqetmplengthb}%
- \@eqmath{\eqe@argiii}}\else
- \strut\hfill\fi
- }%
- }%end \@fillinFmt
- }}}% end \hbox
- \setlength{\@tempdima}{\ht0+\dp0}%
- \xdef\fillinTotalHeight{\the\@tempdima}%
- \mbox{\unhbox\z@}%
- \else
- \setbox\z@\hbox{%
- \ifdim\eq@fillin@lift=-1sp\relax
- \@fillinFmt{\makebox[\eqe@bw]{%
- \strut\hfil}}%
- \else
- \ifKV@eqFillin@autolift
- \setbox2=\hbox{\@eqmath{\eq@fillin@format
- \eqe@argiii}}%
- \setlength{\@tempdima}%
- {\dp2+\eq@fillin@addtoautolift}%
- \edef\eq@fillin@lift{\the\@tempdima}\fi
- \raisebox{-\eq@fillin@lift}{\@fillinFmt{%
- \makebox[\eqe@bw]{\raisebox{\eq@fillin@lift}
- {\phantom{\@eqmath{\eq@fillin@format
- \eqe@argiii}}\strut\hfil}}}}%
- \fi
- }\setlength{\@tempdima}{\ht0+\dp0}%
- \xdef\fillinTotalHeight{\the\@tempdima}%
- \mbox{\unhbox\z@}%
- \fi
- \@ifundefined{@quiz}{}{%
- \if\eq@online\eqe@YES\relax
- \ifeq@nosolutions
- \ifeq@solutionsafter\else
- \ifx\eq@insertverticalspace\eqe@YES\relax
- \stepcounter{@cntfillin}%
- \edef\fieldName{%
- \if\probstar*eqexam.\curr@quiz.fillin.%
- \theeqquestionnoi.part\thepartno.%
- fi\the@cntfillin%
- \else
- eqexam.\curr@quiz.fillin.%
- \theeqquestionnoi.fi\the@cntfillin%
- \fi
- }\ifx\eq@fillinparbox\@empty
- \raisebox{-1bp}{\makebox[0pt][r]{%
- \textField[\BC{}\presets{\eqe@optsFillIn}]
- {\fieldName}{#2}{\fillinTotalHeight}}}\else
- \setlength{\@tempdima}%
- {\eqe@opts@argii+2\fboxrule+2\fboxsep}%
- \raisebox{-1bp}{\makebox[0pt][r]{%
- \textField[\BC{}\presets{\eqe@optsFillIn}
- \Ff{\FfMultiline}]{\fieldName}{#2}
- {\fillinTotalHeight}}}\fi
- \fi
- \fi
- \fi
- \fi
- }%
- \fi\endgroup\space\ignorespaces}
-\renewcommand\TF[2][\defaultTFwidth]{%
- \def\eqe@next{\fillin[underline]{#1}{#2}}%
- \ifdim\eq@extralabelsep=0pt\relax\else
- \if\probstar*\relax\if\exerwparts@cols0
- \def\eqe@next{\makebox[0pt][r]{%
- \fillin[underline]{#1}{#2}}\ignorespaces}%
- \fi\fi\fi\eqe@next
-}
-\endinput
-%%
-%% End of file `eqexam.sty'.
+%%
+%% This is file `eqexam.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% eqexam.dtx (with options: `copyright,package')
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% eqexam.sty package, %%
+%% Copyright (C) 2005--2018 D. P. Story %%
+%% dpstory@uakron.edu %%
+%% %%
+%% This program can redistributed and/or modified under %%
+%% the terms of the LaTeX Project Public License %%
+%% Distributed from CTAN archives in directory %%
+%% macros/latex/base/lppl.txt; either version 1.2 of %%
+%% the License, or (at your option) any later version. %%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{eqexam}
+ [2018/12/13 v5.1.3 An Exam Construction Package (dps)]
+\def\eqexamdefReq{2018/12/13}
+\RequirePackage{ifpdf}[2006/02/20]
+\RequirePackage{ifxetex}[2006/08/21]
+\usepackage{xkeyval}
+\DeclareOptionX{usecustomdesign}{\eqcustomdesigntrue}
+\newif\ifeqcustomdesign \eqcustomdesignfalse
+\DeclareOptionX{nocustomdesign}{\let\eqe@nocustomdesign=1}
+\let\eqe@nocustomdesign=0
+\DeclareOptionX{fortextbook}{\eqfortextbooktrue}
+\newif\ifeqfortextbook \eqfortextbookfalse
+\DeclareOptionX{forinstr}{\eqforinstrtrue}
+\DeclareOptionX{forstudent}{\eqforinstrfalse}
+\newif\ifeqforinstr \eqforinstrfalse
+\DeclareOptionX{nomarginwrite}{\eqwritetomarginsfalse}
+\newif\ifeqwritetomargins\eqwritetomarginstrue
+\define@key{eqexam.sty}{cfg}[]{%
+ \def\arg@i{#1}\ifx\arg@i\@empty
+ \PackageWarning{eqexam}{No value for `cfg' specified}\else
+ \def\ifeqexamCFG{true}\def\eqexamCFG{#1.cfg}%
+ \AtEndOfPackage{\InputIfFileExists{#1.cfg}
+ {\typeout{Inputting #1.cfg}}{\PackageWarning{eqexam}{%
+ Cannot find configuration file #1.cfg}}}\fi
+ }
+\def\ifeqexamCFG{false}
+\let\eqexamCFG\@empty
+\@for\eqe@tmp@i:={},i,ii,iii,iv,v,vi\do{%
+ \edef\eqe@tmp@exp{%
+ \noexpand\DeclareOptionX{myconfig\eqe@tmp@i}%
+ {\noexpand\AtEndOfPackage{\expandafter\noexpand
+ \csname eqemyconfig\eqe@tmp@i\endcsname}}%
+ }\eqe@tmp@exp
+}
+\DeclareOptionX{pointsonleft}{\AtEndOfPackage{\PointsOnLeft}}
+\DeclareOptionX{pointsonright}{\AtEndOfPackage{\PointsOnRight}}
+\DeclareOptionX{pointsonboth}{\AtEndOfPackage{\PointsOnBothSides}}
+\DeclareOptionX{nopoints}{\AtEndOfPackage{\NoPoints}}
+\DeclareOptionX{totalsonleft}{\AtEndOfPackage{\TotalsOnLeft}}
+\DeclareOptionX{totalsonright}{\AtEndOfPackage{\TotalsOnRight}}
+\DeclareOptionX{nozerototals}{\AtEndOfPackage{\noZeroTotals}}
+\let\eqe@YES=y \let\eqe@NO=n
+\let\eqe@One=1 \let\eqe@Zero=0
+\let\eqe@Two=2 \let\eqe@Three=3 \let\eqe@Four=4
+\def\eqe@h{h}
+\DeclareOptionX{nototals}{\AtEndOfPackage{\NoTotals}}
+\DeclareOptionX{noparttotals}{%
+ \AtEndOfPackage{\let\eq@parttotals\eqe@NO}}
+\DeclareOptionX{parttotalsonright}{%
+ \def\eqeomarginbox{\eqeomarginboxright}}
+\DeclareOptionX{parttotalsonleft}{%
+ \def\eqeomarginbox{\eqeomarginboxleft}}
+\def\eqeomarginbox{\eqeomarginboxright}
+\DeclareOptionX{noseparationrule}{%
+ \AtEndOfPackage{\separationruleOff}}
+\DeclareOptionX{nosummarytotals}{\let\eq@nosummarytotals\eqe@YES}
+\DeclareOptionX{coverpage}{\def\eqex@coverpage{\eqexcoverpage}%
+ \setcounter{page}{0}}
+\define@choicekey+{eqexam.sty}{coverpagesumry}[\val\nr]%
+ {byparts,bypages,none}{%
+ \ifcase\nr\relax
+ \def\sumryAnnots{\cpSumrybyparts}\or
+ \def\sumryAnnots{\cpSumrybypages}\or
+ \let\sumryAnnots\relax
+ \fi
+}{\PackageWarning{aeb}{Bad choice for coverpagesumry, permissible values
+ are byparts, bypages, and none. Try again}}
+\let\sumryAnnots\relax
+\DeclareOptionX{nospacetowork}{%
+ \AtEndOfPackage{\let\eq@insertverticalspace\eqe@NO}}
+\@ifundefined{ifanswerkey}{\newif\ifanswerkey\answerkeyfalse}{}
+\@ifundefined{ifsolutionsAtEnd}
+ {\newif\ifsolutionsAtEnd\solutionsAtEndtrue}{}
+\let\thisOpt@OK \eqe@YES
+\def\w@rningBadOpts{\PackageWarningNoLine{eqexam}{You've chosen two
+ conflicting options,\MessageBreak \l@stPO\space and \CurrentOption.
+ We will recognize\MessageBreak the \l@stPO\space option.
+ Please correct\MessageBreak this if my guess is wrong}}
+\def\eqe@optiont@kenMsg{\PackageInfo{eqexam}
+ {Option \CurrentOption\space taken}}
+\DeclareOptionX{answerkey}{\ifx\thisOpt@OK\eqe@YES
+ \def\l@stPO{answerkey}\let\thisOpt@OK\eqe@NO
+ \eqe@optiont@kenMsg\expandafter\AnswerKey\else
+ \w@rningBadOpts\fi}
+\def\AnswerKey{\solutionsAtEndfalse\answerkeytrue
+ \eq@proofingtrue\eq@solutionsaftertrue\displayworkareafalse}
+\newif\ifvspacewithsolns\vspacewithsolnsfalse
+\def\ifkeyalt{\csname ifvspacewithsolns\endcsname}
+ \let\keyalttrue\vspacewithsolnstrue
+ \let\keyaltfalse\vspacewithsolnsfalse
+\def\ifkeyOrkeyalt{\ifanswerkey
+ \def\eqe@next{\csname iftrue\endcsname}\else
+ \ifvspacewithsolns\def\eqe@next{\csname iftrue\endcsname}\else
+ \def\eqe@next{\csname iffalse\endcsname}\fi\fi\eqe@next}
+\DeclareOptionX{vspacewithsolns}{\ifx\thisOpt@OK\eqe@YES
+ \def\l@stPO{vspacewithsolns}\let\thisOpt@OK\eqe@NO
+ \eqe@optiont@kenMsg
+ \vspacewithsolnstrue\expandafter\displayworkareatrue
+ \else\w@rningBadOpts\fi}
+\DeclareOptionX{ftbsolns}{\ExecuteOptionsX{vspacewithsolns}}
+\DeclareOptionX{flextended}{\AtEndOfPackage{\flextendedInput}}
+\def\flextendedInput{\eqe@flextendedtrue
+ \InputIfFileExists{flextended.def}
+ {\PackageInfo{eqexam}{Inputting flextended.def for
+ flextended\MessageBreak option}}
+ {\eqe@flextendedfalse\PackageWarning{eqexam}
+ {Cannot find flextended.def for flextended\MessageBreak
+ option. You should rebuild the package. Removing\MessageBreak
+ flextended for now}}}
+\@ifundefined{ifeqe@flextended}
+ {\newif\ifeqe@flextended \eqe@flextendedfalse}{}
+\DeclareOptionX{useforms}{\AtEndOfPackage{\def\sqstar{*}}}
+\newif\ifallowcircmc \allowcircmcfalse
+\DeclareOptionX{allowcirc4mc}{\allowcircmctrue}
+\def\eqe@auto@chk@drivers{\ifpdf\ExecuteOptionsX{pdftex}\else
+ \ifxetex\ExecuteOptionsX{xetex}\fi\fi}
+\newif\ifeqeonline \eqeonlinefalse
+\DeclareOptionX{online}{\eqe@auto@chk@drivers
+ \let\eq@online\eqe@YES\eqeonlinetrue\ExecuteOptionsX{links}}
+\DeclareOptionX{pdf}{\eqe@auto@chk@drivers\let\load@web\eqe@YES}
+\DeclareOptionX{links}{\eqe@auto@chk@drivers
+ \let\load@web\eqe@YES\let\load@exerquiz\eqe@YES}
+\DeclareOptionX{email}{\eqe@auto@chk@drivers
+ \let\use@email\eqe@YES\ExecuteOptionsX{online}}
+\newif\ifeqobeylocalversion \eqobeylocalversionfalse
+\DeclareOptionX{obeylocalversions}{\eqobeylocalversiontrue}
+\DeclareOptionX{usexkv}{\let\eq@usexkeys\eqe@YES}
+\let\eq@usexkeys\eqe@YES
+\let\eq@renditionOptions\@empty
+\let\eq@max@selected\@empty \let\eq@ren@selected\@empty
+\DeclareOptionX{max}{\def\eq@max@selected{#1}%
+ \g@addto@macro\eq@renditionOptions{\numVersions{#1}}}
+\DeclareOptionX{rendition}{\def\eq@ren@selected{#1}%
+ \g@addto@macro\eq@renditionOptions{\forVersion{#1}}}
+\DeclareOptionX{allowrandomize}{\AtEndOfPackage{\inputRandomizeChoices}}
+\def\inputRandomizeChoices{\InputIfFileExists{aebrandom.def}
+ {\typeout{inputting aebrandom.def}}{cannot find aebrandom.def}}
+\let\eq@online\eqe@NO
+\def\ifisOnline{\ifx\eq@online\eqe@YES}
+\let\use@email\eqe@NO
+\let\load@web\eqe@NO
+\let\load@exerquiz\eqe@NO
+\def\sqLinks{\def\sqstar{}}\sqLinks
+\def\sqForms{\def\sqstar{*}}
+\def\NoSpaceToWork{\let\eq@insertverticalspace\eqe@NO}
+\def\SpaceToWork{\let\eq@insertverticalspace\eqe@YES}
+\let\eq@nototals\eqe@NO
+\let\eq@nosummarytotals\eqe@NO
+\let\eq@parttotals\eqe@YES
+\let\eqx@separationrule\eqe@YES
+\let\eq@insertverticalspace\eqe@YES
+\let\eqex@coverpage\relax
+\def\@reportpoints{0}
+\let\marginpoints\@empty
+\let\totalsbox=\hfil
+\@ifundefined{ifequsecolor}{\newif\ifequsecolor\equsecolorfalse}{}
+\DeclareOptionX{forpaper}{\equsecolorfalse\eqforpapertrue
+ \PassOptionsToPackage{monochrome}{\eq@ColorPackage}}
+\DeclareOptionX{forcolorpaper}{\equsecolortrue\eqforpapertrue}
+\newif\ifForceNoColor\ForceNoColorfalse
+\DeclareOptionX{forcolorpaper*}{\equsecolortrue\eqforpapertrue
+ \ForceNoColortrue} % for print
+\DeclareOptionX{preview}{\previewtrue}
+\define@key{eqexam.sty}{webOpts}[]{\def\eqe@webOpts{#1,\eqDriverName}}
+\def\eqe@webOpts{\eqDriverName}
+\define@key{eqexam.sty}{exerquizOpts}[]{\def\eqe@eqOpts{#1,nodljs}}
+\def\eqe@eqOpts{nodljs}
+\DeclareOptionX{nosolutions}{\ifx\thisOpt@OK\eqe@YES
+ \def\l@stPO{nosolutions}\let\thisOpt@OK\eqe@NO
+ \eqe@optiont@kenMsg\eq@nolinktrue\eq@nosolutionstrue
+ \expandafter\displayworkareatrue
+ \else\w@rningBadOpts\fi}
+\DeclareOptionX{nohiddensolutions}{\eq@globalshowsolutionstrue}
+\DeclareOptionX{noHiddensolutions}%
+ {\eq@globalshowsolutionstrue\AtBeginDocument{\def\Hidesymbol{h}}}
+\DeclareOptionX{solutionsafter}{\ifx\thisOpt@OK\eqe@YES
+ \def\l@stPO{solutionsafter}\let\thisOpt@OK\eqe@NO
+ \eqe@optiont@kenMsg
+ \eq@solutionsaftertrue\expandafter
+ \displayworkareafalse\else\w@rningBadOpts\fi}
+\DeclareOptionX{solutionsonly}{\ifx\thisOpt@OK\eqe@YES
+ \def\l@stPO{solutionsafter}\let\thisOpt@OK\eqe@NO
+ \eqe@optiont@kenMsg\AtEndOfPackage{\therearesolutionstrue
+ \let\exerSolnsHeadnToc\relax}
+ \solutionsonlytrue\answerkeytrue\expandafter
+ \displayworkareafalse\else\w@rningBadOpts\fi}
+\DeclareOptionX{proofing}{\eq@proofingtrue}
+\newcommand{\showproofing}{\eq@proofingtrue}
+\newcommand{\hideproofing}{\eq@proofingfalse}
+\newif\ifaebshowgrayletters\aebshowgraylettersfalse
+\DeclareOptionX{showgrayletters}%
+ {\AtEndOfPackage{\aebshowgrayletterstrue}}
+\@ifundefined{ifdisplayworkarea}{\newif\ifdisplayworkarea
+ \displayworkareafalse}{}
+\providecommand\displayworkareaOn{\displayworkareatrue}
+\providecommand\displayworkareaOff{\displayworkareafalse}
+\IfFileExists{xcolor.sty}%
+{\def\eq@ColorPackage{xcolor}\def\eqe@color@opt{table}%
+ \PassOptionsToPackage{xcolor}{table}}
+{\def\eq@ColorPackage{color}\let\eqe@color@opt\@empty}
+\DeclareOptionX{noxcolor}{\def\eq@ColorPackage{color}}
+\newif\if@eqeuseclassmaketitle \@eqeuseclassmaketitlefalse
+\DeclareOptionX{useclassmaketitle}{\@eqeuseclassmaketitletrue}
+\newif\if@bypasseqexamheading \@bypasseqexamheadingfalse
+\DeclareOptionX{bypasspkgpagestyle}{\@bypasseqexamheadingtrue
+ \ExecuteOptionsX{nototals}}
+\DeclareOptionX{dvipsone}{%
+ \def\eqe@drivernum{0}\def\eqDriverName{dvipsone}%
+ \PassOptionsToPackage{\eq@ColorPackage}{dvipsone}}
+\DeclareOptionX{dvips}{\def\eqe@drivernum{0}\def\eqDriverName{dvips}%
+ \PassOptionsToPackage{\eq@ColorPackage}{dvips}}
+\DeclareOptionX{pdftex}{\def\eqe@drivernum{1}\def\eqDriverName{pdftex}%
+ \PassOptionsToPackage{\eq@ColorPackage}{pdftex}}
+\DeclareOptionX{dvipdfm}{%
+ \def\eqe@drivernum{2}\def\eqDriverName{dvipdfm}%
+ \PassOptionsToPackage{\eq@ColorPackage}{dvipdfm}}
+\DeclareOptionX{dvipdfmx}{\def\eqe@drivernum{2}%
+ \def\eqDriverName{dvipdfmx}%
+ \PassOptionsToPackage{\eq@ColorPackage}{dvipdfmx}}
+\DeclareOptionX{xetex}{\def\eqe@drivernum{2}\def\eqDriverName{xetex}%
+ \PassOptionsToPackage{\eq@ColorPackage}{xetex}}
+\DeclareOptionX{textures}{%
+ \def\eqe@drivernum{3}\def\eqDriverName{textures}%
+ \PassOptionsToPackage{\eq@ColorPackage}{textures}}
+\DeclareOptionX*{%
+ \PassOptionsToPackage{\CurrentOption}{\eq@ColorPackage}}
+\def\eqe@drivernum{5}
+\let\eqDriverName\@empty
+\newif\ifeq@solutionsafter \eq@solutionsafterfalse
+\def\ifsolutionsafter{\csname ifeq@solutionsafter\endcsname}
+ \let\solutionsaftertrue\eq@solutionsaftertrue
+ \let\solutionsafterfalse\eq@solutionsafterfalse
+\newif\ifsolutionsonly\solutionsonlyfalse
+\newif\ifeq@hidesolution \eq@hidesolutionfalse
+\newif\ifeq@globalshowsolutions \eq@globalshowsolutionsfalse
+\newif\ifeq@nosolutions \eq@nosolutionsfalse
+\newif\ifeq@proofing \eq@proofingfalse
+\newif\ifeq@nolink \eq@nolinkfalse
+\@ifundefined{ifpreview}{\newif\ifpreview \previewfalse}{}
+\newif\ifeqforpaper \eqforpaperfalse
+\def\eqe@csarg#1#2{\expandafter#1\csname#2\endcsname}
+\@for\eqe@tmp@i:={},i,ii,iii,iv,v,vi\do{\eqe@csarg
+ \edef{eqemyconfig\eqe@tmp@i}{\noexpand
+ \InputIfFileExists{eqexam\eqe@tmp@i.cfg}{}{}}%
+ \eqe@tmp@exp
+}
+\InputIfFileExists{web.cfg}{}{}
+\InputIfFileExists{eqecus.opt}{}{}
+\InputIfFileExists{rendition.cfg}{}{}
+\InputIfFileExists{exambuilder.cfg}{}{}
+\ProcessOptionsX
+\ifeqeonline
+ \ifanswerkey
+ \def\flextendedInput{\let\turnfl@nskeyMsg\@empty
+ \PackageWarningNoLine{eqexam}
+ {You've chosen the online or email option\MessageBreak
+ with the flextended option. This is not\MessageBreak
+ supported, removing the flextended option}}\fi
+\fi
+\AtEndOfPackage{\selectedMC}
+\edef\eqe@tmpexp{\noexpand
+\RequirePackage{\eq@ColorPackage}}\eqe@tmpexp
+\@ifpackageloaded{xcolor}{\AtEndOfPackage{\let\CT@cell@color\relax
+ \let\CT@arc@\relax}%
+ \@ifpackagelater{xcolor}{2004/07/04}{}{\PackageError{eqexam}{%
+ *************************************************\MessageBreak
+ * Your Version of `xcolor.sty' is too old!\MessageBreak
+ * You need the version from 2004/07/04 or newer\MessageBreak
+ * or use: \string\usepackage[noxcolor]{eqexam}\MessageBreak
+ * or \string\documentclass[noxcolor]{article}\MessageBreak
+ *************************************************}{}%
+ }%
+}{}
+\if\eqe@nocustomdesign1\eqcustomdesignfalse\fi
+\long\def\eqe@IWO#1{\immediate\write#1}
+\newcommand{\showAllAnsAtEnd}{%
+ \makeAnsEnvForSolnsAtEnd\eqTopOfSolnPage
+ \answerkeytrue\eq@proofingtrue
+ \eq@solutionsaftertrue\vspacewithsolnstrue
+ \displayworkareafalse %\withinsoldoctrue % now within \eqTopOfSolnPage
+}
+\newcommand{\makeAnsEnvForSolnsAtEnd}{%
+ \let\answers\answers@sq
+ \let\endanswers\endanswers@sq
+ \let\manswers\manswers@sq
+ \let\endmanswers\endmanswers@sq
+}
+\newcommand{\solAtEndFormatting}[1]{\def\eqeAEFormatting{#1}}
+\let\eqeAEFormatting\@empty
+\def\writeAllAnsAtEnd{\ifsolutionsonly\else
+ \let\quiz@solns\ex@solns
+ \eqe@IWO\quiz@solns{\string\showAllAnsAtEnd}%
+ \ifx\eqeAEFormatting\@empty\else
+ \eqe@IWO\quiz@solns{\string\eqeAEFormatting}\fi
+ \fi
+}
+\def\writeWithSolDocTrue{\writeT@SolnFile{\protect\withinsoldoctrue}}
+\newcommand{\setSolnMargins}[1]{\setlength\eqemargin{#1}\ignorespaces}
+\def\altSetSolnMargins#1{\def\alt@SetSolnMargins{#1}}
+\let\alt@SetSolnMargins\@empty
+\def\writeBeginEqeQuestions{\ifsolutionsonly\else
+ \ifOKToWriteExamData
+ \let\quiz@solns\ex@solns
+ \ifx\alt@SetSolnMargins\@empty
+ \writeT@SolnFile{\string\setSolnMargins{\the\eqemargin}}\else
+ \writeT@SolnFile{\alt@SetSolnMargins}\fi
+ \writeT@SolnFile{\protect\eqgriii\string\noindent
+ \string\begin{eqequestions}}%
+ \fi
+ \fi
+}
+\newcommand{\setBtwnExamSkip}[1]{\gdef\btwnExamSkipAmt{#1}%
+ \def\btwnExamSkip{\ifdim#1=0pt\else
+ \vskip#1\relax\fi}}
+\setBtwnExamSkip{6pt}
+\def\writeEndEqeQuestions{%
+ \ifsolutionsonly\else
+ \ifOKToWriteExamData
+ \let\quiz@solns\ex@solns
+ \eqe@IWO\quiz@solns{\string\eqgrii
+ \string\end{eqequestions}^^J}%
+ \writeT@SolnFile{\string\btwnExamSkip^^J}%
+ \fi\fi
+}
+\def\csarg#1#2{\expandafter#1\csname#2\endcsname}
+\def\saveIFEQE#1{\def\ARG{#1ifSave}%
+ \expandafter\csarg\expandafter
+ \let\expandafter\ARG\csname#1\if#1true\else false\fi\endcsname}
+\saveIFEQE{vspacewithsolns}\saveIFEQE{answerkey}
+\saveIFEQE{eq@proofing}\saveIFEQE{eq@solutionsafter}
+\saveIFEQE{eq@nolink}\saveIFEQE{eq@nosolutions}
+\saveIFEQE{displayworkarea}
+\def\vpwsSimulateNoSolns{% dps28
+ \ifvspacewithsolns
+ \answerkeyfalse\eq@proofingfalse\eq@solutionsafterfalse
+ \eq@nolinkfalse\eq@nosolutionsfalse\displayworkareatrue
+ \fi}
+\def\reverseVSWS{\vspacewithsolnsfalse
+ \answerkeyifSave\eq@proofingifSave
+ \eq@solutionsafterifSave\eq@nolinkifSave
+ \eq@nosolutionsifSave\displayworkareaifSave
+}
+\vpwsSimulateNoSolns
+\let\savedeq@online\eq@online
+\let\savedifeq@solutionsafter\ifeq@solutionsafter
+\let\savedifeq@hidesolution\ifeq@hidesolution
+\let\savedifeq@globalshowsolutions\ifeq@globalshowsolutions
+\let\savedifeq@nosolutions\ifeq@nosolutions
+\let\savedifeq@proofing\ifeq@proofing
+\let\savedifeq@nolink\ifeq@nolink
+\let\savedifpreview\ifpreview
+\let\savedifeqforpaper\ifeqforpaper
+\let\ifnosolutions\ifeq@nosolutions
+\RequirePackage{amstext,amssymb}
+\@ifundefined{if@fleqn}{\let\fleqnOn\relax\let\fleqnOff\relax}
+ {\def\fleqnOn{\@fleqntrue}\def\fleqnOff{\@fleqnfalse}}
+\RequirePackage{aeb-comment}
+\def\eqe@commentChkMsg{\@ifpackageloaded{comment}
+ {\PackageWarningNoLine{eqexam}
+ {The comment package is incompatible with the\MessageBreak
+ aeb-comment package, do not use the comment package}}{}}
+\AtBeginDocument{\eqe@commentChkMsg}
+\AtEndDocument{\includeexersolutions}
+\@ifpackageloaded{web}{\let\load@web\eqe@YES}{%
+ \ifx\load@web\eqe@YES\ifnum\eqe@drivernum=5
+ \PackageInfo{eqexam}{You have not selected a driver %
+ for eqexam. Perhaps the \MessageBreak
+ driver is introduced through web.cfg%
+ }\fi\expandafter\RequirePackage\expandafter[\eqe@webOpts]{web}%
+ \edef\@pdfcreator{\@pdfcreator, The eqexam Package}\fi
+}
+\@ifpackageloaded{exerquiz}{\let\load@exerquiz\eqe@YES}{%
+ \let\symbolchoice\@gobble
+ \ifx\load@exerquiz\eqe@YES\expandafter
+ \RequirePackage\expandafter[\eqe@eqOpts]{exerquiz}[2011/08/30]
+ \let\importdljs\eqe@YES\let\execjs\eqe@YES
+ \fi
+}
+\@ifpackageloaded{eforms}{}{%
+ \let\symbolchoice\@gobble
+}
+\def\eqDvipsone{dvipsone}
+\@ifpackageloaded{hyperref}
+ {\ifx\eqDriverName\eqDvipsone
+ \renewcommand\@pdfviewparams{ null null null}\fi
+ }{\let\textorpdfstring\@firstoftwo}
+\let\eq@online\savedeq@online
+\let\ifeq@solutionsafter\savedifeq@solutionsafter
+\def\ifsolutionsafter{\ifeq@solutionsafter} % user interface
+\let\ifeq@hidesolution\savedifeq@hidesolution
+\let\ifeq@globalshowsolutions\savedifeq@globalshowsolutions
+\let\ifeq@nosolutions\savedifeq@nosolutions
+\let\ifeq@proofing\savedifeq@proofing
+\let\ifeq@nolink\savedifeq@nolink
+\let\ifpreview\savedifpreview
+\let\ifeqforpaper\savedifeqforpaper
+\RequirePackage{calc}
+\RequirePackage{pifont}
+\RequirePackage{array}
+\RequirePackage{verbatim}
+\RequirePackage{multicol}
+\setlength\columnseprule{.4pt}
+\raggedcolumns\multicolsep=3pt
+\newcommand{\setmulticolprob}{%
+ \setlength{\linewidth}{\linewidth+\eqemargin}}
+\edef\eqe@reqPack{\ifeqfortextbook\noexpand\RequirePackage{eso-pic}\else
+\relax\fi}
+\eqe@reqPack
+\ifvspacewithsolns\solutionsAtEndtrue\fi
+\ifanswerkey\solutionsAtEndfalse\fi
+\ifeq@nosolutions\solutionsAtEndfalse\fi
+\ifeq@solutionsafter\solutionsAtEndfalse\fi
+\@ifundefined{eqemargin}{\newlength{\eqemargin}}{}
+\providecommand{\prbDecPt}[1]{\def\eqe@decPointPrb{#1}}
+\def\eqe@decPointPrb{.}\def\eqe@dpsepPrb{\ }
+\providecommand{\prbPrtsep}[1]{\def\eqe@prtsepPrb{#1}}
+\def\eqe@prtsepPrb{\ }
+\providecommand{\prbNumPrtsep}[1]{\def\eqe@hspannerPrb{#1}}
+\def\eqe@hspannerPrb{\ }
+\newcommand{\eqexammargin}[2][\normalsize\normalfont\bfseries]{%
+ \settowidth{\eqemargin}{#1#2\eqe@decPointPrb\eqe@hspannerPrb}}
+\eqexammargin{00}
+\def\eqe@hspannerSoln{\ } % space after prob number
+\providecommand{\solNumPrtsep}[1]{\def\eqe@hspannerSoln{#1}}
+\newcommand{\eqeSetExamPageParams}{%
+ \setlength{\headheight}{12pt}
+ \setlength{\topmargin}{-.5in}
+ \setlength{\headsep}{20pt}
+ \setlength{\oddsidemargin}{0pt}
+ \setlength{\evensidemargin}{0pt}
+ \setlength{\marginparsep}{11pt}
+ \setlength{\marginparwidth}{35pt}
+ \setlength{\footskip}{11pt}
+}
+\newcommand{\eqExamPageLayout}{%
+ \setlength\textwidth\paperwidth
+ \addtolength{\textwidth}{-2in}
+ \addtolength{\textwidth}{-\oddsidemargin}
+ \setlength\textheight{\paperheight}
+ \addtolength\textheight{-2in}
+ \addtolength\textheight{-\headheight}
+ \addtolength\textheight{-\headsep}
+ \addtolength\textheight{-\topmargin}
+ \addtolength\textheight{-\footskip}
+}
+\ifeqcustomdesign\else
+\eqeSetExamPageParams
+\eqExamPageLayout
+\fi
+\newcommand{\ps@eqExamheadings}
+{%
+ \renewcommand{\@oddhead}{%
+ {\normalfont\normalsize\ifnum\value{page}<2
+ \hfil\else\eqExamRunHead\fi}}%
+ \renewcommand{\@evenhead}{\@oddhead}
+ \renewcommand{\@oddfoot}{\settotalsbox\runExamFooter}
+ \renewcommand{\@evenfoot}{\@oddfoot}
+}
+\raggedbottom
+\newcount\eqe@tempcnta
+\newcounter{eqpointsofar}
+\newcounter{eqpointsthispage}
+\newcounter{eq@numparts}
+\newcounter{eq@count}
+\newtoks\partNames \partNames={}
+\newlength{\eq@tmplengthA}
+\newlength{\eq@tmplengthB}
+\newbox{\eq@pointbox}
+\newlength{\eq@pointboxtotalheight}
+\newlength{\eqetmplengtha}
+\newlength{\eqetmplengthb}
+\def\PointsOnLeft{\def\@reportpoints{1}\let\marginpoints\eqleftmargin}
+\def\PointsOnRight{\def\@reportpoints{2}\relax
+ \let\marginpoints\eqrightmarginbox}
+\def\PointsOnBothSides{\def\@reportpoints{3}\relax
+ \let\marginpoints\eqbothmargins}
+\newif\ifeqe@nopoints \eqe@nopointsfalse
+\def\NoPoints{\if\isInExamEnv\eqe@NO
+ \eqe@nopointstrue\def\@reporttotals{0}\let\totalsbox=\hfil
+ \let\marginpoints\@empty\let\eq@nosummarytotals\eqe@YES\else
+ \PackageWarning{eqexam}{The \string\NoPoints\space ignored;
+ it needs to be executed\MessageBreak outside of an
+ exam environment}\fi}
+\def\TotalsOnLeft{\def\@reporttotals{1}\def\totalsbox{\totalsboxleft}}
+\def\TotalsOnRight{\def\@reporttotals{2}\def\totalsbox{\totalsboxright}}
+\def\noZeroTotals{\let\eqe@zeroTotalsAllowed\eqe@NO}
+\def\allowZeroTotals{\let\eqe@zeroTotalsAllowed\eqe@YES}
+\allowZeroTotals
+\def\NoTotals{\def\@reporttotals{0}\let\totalsbox=\hfil}
+\def\SummaryTotalsOn{\let\eq@nosummarytotals\eqe@NO}
+\def\SummaryTotalsOff{\let\eq@nosummarytotals\eqe@YES}
+\def\eoeTotalOff{\let\eq@parttotals\eqe@NO}
+\def\eoeTotalOn{\let\eq@parttotals\eqe@YES}
+\def\separationruleOn{\let\eqx@separationrule\eqe@YES}
+\def\separationruleOff{\let\eqx@separationrule\eqe@NO}
+\def\AllowFitItIn{\global\let\eq@fititin\eqfititin}
+\def\DoNotFitItIn{\global\let\eq@fititin\@gobble}
+\def\NoSolutions{\eq@nolinktrue\eq@nosolutionstrue
+ \displayworkareatrue}
+\@onlypreamble\NoSolutions
+\def\chngToNoSolns{\solutionsAtEndfalse\answerkeyfalse
+ \eq@proofingfalse\eq@solutionsafterfalse
+ \eq@nosolutionstrue\displayworkareatrue}
+\def\vspacewithkeyOn{\keepdeclaredvspacingtrue}
+\def\vspacewithkeyOff{\keepdeclaredvspacingfalse}
+\newif\ifdispl@yPoints\displ@yPointstrue
+\newcommand{\displayPointsOn}{\displ@yPointstrue}
+\newcommand{\displayPointsOff}{\displ@yPointsfalse}
+\newif\ifl@stDispl@yPoints\l@stDispl@yPointsfalse
+\def\encloseProblemsWith#1{%
+ \ifsolutionsonly\excludecomment{#1}\else
+ \includecomment{#1}\fi
+}
+\providecommand{\proofingsymbolColor}[1]{\def\@proofingsymbolColor{#1}}
+\proofingsymbolColor{red}
+\providecommand{\instructionsColor}[1]{\def\@instructionsColor{#1}}
+\instructionsColor{blue}
+\providecommand{\eqCommentsColor}[1]{\def\@eqCommentsColor{#1}}
+\eqCommentsColor{blue}
+\providecommand{\eqCommentsColorBody}[1]{\def\@eqCommentsColorBody{#1}}
+\eqCommentsColorBody{black}
+\providecommand{\universityColor}[1]{\def\webuniversity@color{#1}}
+\universityColor{blue}
+\providecommand{\titleColor}[1]{\def\webtitle@color{#1}}
+\titleColor{black}
+\providecommand{\authorColor}[1]{\def\webauthor@color{#1}}
+\authorColor{black}
+\providecommand{\subjectColor}[1]{\def\websubject@color{#1}}
+\subjectColor{blue}
+\providecommand{\linkcolor}[1]{\def\@linkcolor{#1}}
+\linkcolor{blue}
+\providecommand{\nolinkcolor}[1]{\def\@nolinkcolor{#1}}
+\nolinkcolor{black}
+\providecommand{\eqEndExamTotalColor}[1]{\def\endexamtotal@color{#1}}
+\eqEndExamTotalColor{black}
+\newcommand\fillinColor[1]{\def\eq@fillinColor{#1}}\fillinColor{red}
+\providecommand{\sectionColor}[1]{\def\web@sectionsColorOld{#1}
+ \def\aeb@sectioncolor{#1}}
+\sectionColor{blue}
+\def\forceNoColorSet{\proofingsymbolColor{black}%
+ \instructionsColor{black}%
+ \eqCommentsColor{black}\universityColor{black}%
+ \titleColor{black}\authorColor{black}%
+ \subjectColor{black}\linkcolor{black}%
+ \nolinkcolor{black}\fillinColor{black}%
+ \instructionsColor{black}\eqCommentsColor{black}%
+ \eqCommentsColorBody{black}%
+ \eqEndExamTotalColor{black}\ckboxColor{}%
+ \ckcirColor{}\if\load@web\eqe@YES
+ \sectionColor{black}\fi
+}
+\ifForceNoColor
+ \AtBeginDocument{\forceNoColorSet}
+\fi
+\newcommand{\forceNoColor}{\ifForceNoColor\else\ForceNoColortrue
+ \AtBeginDocument{\forceNoColorSet}\fi}
+\providecommand{\ckboxColor}[1]{\def\@rgi{#1}\ifx\@rgi\@empty
+ \let\ckbox@Color\relax\else
+ \def\ckbox@Color{\color{#1}}\fi}\ckboxColor{}
+\providecommand{\ckcirColor}[1]{\def\eq@rgi{#1}\ifx\eq@rgi\@empty
+ \let\ckcir@Color\relax\else
+ \def\ckcir@Color{\color{#1}}\fi}\ckcirColor{}
+\def\examNum#1{\def\nExam{#1}}
+\examNum{1}
+\def\Exam{\ifAB{\eq@VersionAtext}{\eq@VersionBtext}}
+\def\sExam{\ifAB{\eq@shortVersionAtext}{\eq@shortVersionBtext}}
+\def\VersionAtext#1{\def\eq@VersionAtext{#1}}
+\def\VersionBtext#1{\def\eq@VersionBtext{#1}}
+\def\shortVersionAtext#1{\def\eq@shortVersionAtext{#1}}
+\def\shortVersionBtext#1{\def\eq@shortVersionBtext{#1}}
+\VersionAtext{Exam~\nExam--Version A}
+\VersionBtext{Exam~\nExam--Version B}
+\shortVersionAtext{Exam~\nExam A}
+\shortVersionBtext{Exam~\nExam B}
+\newtoks\eqtemptokena
+\newtoks\eqtemptokenb
+\def\numVersions#1{\ifnum#1>26\def\eq@nVersions{26}%
+ \PackageWarning{eqexam}{The value of \string\numVersions\space is
+ too large. \MessageBreak Choose a natural number less than 27}
+ \else\def\eq@nVersions{#1}\fi}
+\newcommand{\longTitleText}[1][]{%
+ \ifeqglobalversion\let\eq@selectedVersion@save\eq@selectedVersion
+ \else\let\eq@selectedVersion@save\relax\fi
+ \uppercase{\def\eqe@localTextTitle{#1}}%
+ \ifx\eqe@localTextTitle\@empty\else
+ \expandafter\forVersion\expandafter{\eqe@localTextTitle}\fi
+ \eqe@contTitleText{\Exam}{\endlongTitleText}%
+}
+\def\endlongTitleText{l}
+\newcommand{\shortTitleText}[1][]{%
+ \ifeqglobalversion\let\eq@selectedVersion@save\eq@selectedVersion
+ \else\let\eq@selectedVersion@save\relax\fi
+ \uppercase{\def\eqe@localTextTitle{#1}}%
+ \ifx\eqe@localTextTitle\@empty\else
+ \expandafter\forVersion\expandafter{\eqe@localTextTitle}\fi
+ \eqe@contTitleText{\sExam}{\endshortTitleText}%
+}
+\def\endshortTitleText{s}
+\def\eqe@contTitleText#1#2{%
+ \setcounter{eq@count}{0}%
+ \eqtemptokena={}\let\endtitleMarker#2
+ \@gatherTitleText{#1}%
+}
+\def\@gatherTitleText#1#2{%
+ \def\eqe@argii{#2}
+ \if\endtitleMarker\eqe@argii
+ \ifnum\value{eq@count}>\eq@nVersions\let\eqe@next\relax
+ \else\def\eqe@next{\eq@shortTitlesFix{#1}}\fi
+ \else
+ \stepcounter{eq@count}
+ \eqtemptokenb=\expandafter{#2}
+ \xdef#1{\the\eqtemptokena\expandafter\noexpand
+ \csname v\Alph{eq@count}\endcsname{\the\eqtemptokenb}}
+ \xdef\sExam{\the\eqtemptokena\expandafter\noexpand
+ \csname v\Alph{eq@count}\endcsname{\the\eqtemptokenb}}
+ \eqtemptokena=\expandafter{#1}
+ \ifnum\value{eq@count}<\eq@nVersions
+ \def\eqe@next{\@gatherTitleText{#1}}%
+ \else
+ \def\eqe@next{%
+ \if\endtitleMarker\endlongTitleText
+ \expandafter\eqe@absorbTokensLong
+ \else
+ \expandafter\eqe@absorbTokensShort
+ \fi
+ }%
+ \fi
+ \fi
+ \eqe@next
+}
+\long\def\eqe@absorbTokensLong#1\endlongTitleText{%
+ \protected@xdef\Exam{\Exam}\ifx\eq@selectedVersion@save\relax
+ \eqe@offVersion\else\expandafter\forVersion\expandafter
+ {\eq@selectedVersion@save}\fi}
+\long\def\eqe@absorbTokensShort#1\endshortTitleText{%
+ \protected@xdef\sExam{\sExam}\ifx\eq@selectedVersion@save\relax
+ \eqe@offVersion\else\expandafter\forVersion\expandafter
+ {\eq@selectedVersion@save}\fi}
+\def\eq@shortTitlesFix#1{%
+ \PackageWarning{eqexam}{You have defined an insufficient number
+ of titles\MessageBreak for the number of versions declared in
+ \string\numVersions.\MessageBreak Please fix the problem}%
+ \stepcounter{eq@count}%
+ \if\endtitleMarker\endlongTitleText
+ \edef\eqe@tmp{\noexpand\@gatherTitleText{\noexpand#1}
+ {??---Title \# \the\value{eq@count}---??}%
+ \noexpand\endlongTitleText}
+ \else
+ \edef\eqe@tmp{\noexpand\@gatherTitleText{\noexpand#1}
+ {T\#\the\value{eq@count}??}\noexpand\endshortTitleText}
+ \fi
+ \addtocounter{eq@count}{-1}%
+ \eqe@tmp
+}
+\def\ifAB#1#2{\if\eq@selectedVersion A#1%
+ \else\if\eq@selectedVersion B#2\fi\fi}
+\def\eq@replaceToken#1{#1}
+\newif\ifeqglobalversion \eqglobalversionfalse
+\newif\ifeqlocalversion \eqlocalversionfalse
+\newif\if@templocalversion \@templocalversionfalse
+\def\eqe@initializeMultiVersions{%
+ \let\save@message\message\let\message\@gobble
+ \@tfor\eqe@tmp:=ABCDEFGHIJKLMNOPQRSTUVWXYZ\do{%
+ \expandafter\let\csname v\eqe@tmp\endcsname\@gobble
+ \expandafter\excludecomment\expandafter{ver\eqe@tmp}%
+ \expandafter\let\csname Afterver\eqe@tmp Comment\endcsname\relax
+ }\let\message\save@message
+}
+\AtBeginDocument{\let\eqe@initializeMultiVersions\relax}
+\let\eqe@@onVersion\@empty
+\def\eqe@onVersion{\g@addto@macro\eqe@@onVersion}
+\let\eqe@@offVersion\@empty
+\def\eqe@offVersion{\g@addto@macro\eqe@@offVersion}
+\let\eqe@@holdTemp\@empty
+\def\eqe@holdTemp{\g@addto@macro\eqe@@holdTemp}
+\def\eqe@showArg#1{#1}
+\def\eqe@turnOnComment#1{%
+ \csarg\let{v#1}\eqe@showArg
+ \edef\exp@temp{\noexpand\includecomment{ver#1}}\exp@temp
+}
+\def\eqe@turnOffComment#1{%
+ \csarg\let{v#1}\@gobble
+ \edef\exp@temp{\noexpand\excludecomment{ver#1}}\exp@temp
+ \csarg\let{Afterver#1Comment}\relax
+}
+\def\forVersion#1%
+{%
+ \eqe@initializeMultiVersions
+ \let\eqe@@onVersion\@empty
+ \let\eqe@@offVersion\@empty
+ \global\eqglobalversiontrue
+ \setcounter{eq@count}{0}%
+ \uppercase{\edef\eq@selectedVersion{#1}}%
+ \edef\selVersion{\eq@selectedVersion}%
+ \@ifundefined{eq@nVersions}{\PackageInfo{eqexam}{%
+ \string\numVersions\space has not been declared, \MessageBreak
+ taking the number of versions to be 2.}\def\eq@nVersions{2}}{}%
+ \loop
+ \stepcounter{eq@count}%
+ \expandafter\if\Alph{eq@count}\eq@selectedVersion
+ \xdef\eq@nSelectedVersion{\the\value{eq@count}}%
+ \setcounter{eq@count}{27}\fi
+ \ifnum\value{eq@count}<26\repeat
+ \ifnum\eq@nSelectedVersion >\eq@nVersions
+ \PackageError{eqexam}
+ {The value of \string\forVersion
+ \space(\eq@selectedVersion)\MessageBreak
+ exceeds the value of \string\numVersions\space
+ (\eq@nVersions)}%
+ {Decrease the value of \string\forVersion.}%
+ \fi
+ \setcounter{eq@count}{0}%
+ \let\save@message\message\let\message\@gobble
+ \loop
+ \stepcounter{eq@count}%
+ \csarg\let{After\Alph{eq@count}Comment}\relax
+ \lowercase
+ {%
+ \if#1\alph{eq@count}%
+ \eqe@turnOnComment{\Alph{eq@count}}%
+ \edef\temp@exp{\noexpand
+ \eqe@turnOnComment{\Alph{eq@count}}}%
+ \expandafter\eqe@onVersion\expandafter{\temp@exp}%
+ \edef\temp@exp{\noexpand
+ \eqe@turnOffComment{\Alph{eq@count}}}%
+ \expandafter\eqe@offVersion\expandafter{\temp@exp}%
+ \else
+ \eqe@turnOffComment{\Alph{eq@count}}%
+ \fi
+ }%
+ \ifnum\value{eq@count}<\eq@nVersions\repeat
+ \let\message\save@message
+}
+\AtEndOfPackage{\numVersions{26}\forVersion{A}%
+ \eq@renditionOptions}
+\def\selectVersion#1#2{% #1 \le #2
+ \xdef\nLocalSelection{#1}\xdef\nLocalVersions{#2}%
+ \let\needsModArith\eqe@YES
+ \ifeqobeylocalversion\ifx\nLocalSelection\@empty\else
+ \let\needsModArith\eqe@NO\fi\fi
+ \edef\exer@solnheadhook{%
+ \string\selectVersion{#1}{#2}}%
+ \let\save@message\message\let\message\@gobble
+ \eqe@@onVersion
+ \ifx\eqe@@holdTemp\@empty\else
+ \eqe@@onVersion\eqe@@holdTemp
+ \let\eqe@@holdTemp\@empty
+ \fi
+\ifx\needsModArith\eqe@YES
+ \ifeqglobalversion\ifnum\eq@nSelectedVersion>\nLocalVersions
+ \eqe@@offVersion
+ {\count0=\eq@nSelectedVersion \count2=\count0
+ \advance\count0by-1 \divide\count0by\nLocalVersions
+ \multiply\count0by\nLocalVersions %\count2=\eq@nSelectedVersion
+ \advance\count2by-\count0
+ \xdef\nLocalSelection{\the\count2 }%
+ \ifeqobeylocalversion\else
+ \global\@templocalversiontrue
+ \global\eqobeylocalversiontrue\fi}%
+ \global\let\eqe@@holdTemp\@empty
+ \fi\fi
+\fi
+ \ifeqobeylocalversion
+ \global\eqlocalversiontrue
+ \setcounter{eq@count}{0}%
+ \ifx\nLocalSelection\@empty
+ \def\nLocalSelection{\eq@nSelectedVersion}%
+ \fi
+ \ifnum\nLocalSelection>\nLocalVersions
+ {\count0=\nLocalSelection
+ \count2=\count0
+ \advance\count0by-1 \divide\count0by\nLocalVersions
+ \multiply\count0by\nLocalVersions
+ \advance\count2by-\count0
+ \xdef\nLocalSelection{\the\count2 }}%
+ \fi
+ \let\save@message\message\let\message\@gobble
+ \loop
+ \stepcounter{eq@count}%
+ \csarg\let{Afterver\Alph{eq@count}Comment}\relax
+ \lowercase
+ {%
+ \ifnum\value{eq@count}=\nLocalSelection
+ \eqe@turnOnComment{\Alph{eq@count}}%
+ \edef\temp@exp{\noexpand
+ \eqe@turnOffComment{\Alph{eq@count}}}%
+ \expandafter\eqe@holdTemp\expandafter{\temp@exp}%
+ \else
+ \eqe@turnOffComment{\Alph{eq@count}}%
+ \fi
+ }%
+ \ifnum\value{eq@count}<\nLocalVersions\repeat
+ \let\message\save@message
+ \fi
+ \if@templocalversion\global\eqobeylocalversionfalse\fi
+ \@templocalversionfalse
+ \let\message\save@message
+}
+\@ifpackageloaded{web}{}{%
+ \@ifpackageloaded{hyperref}{}{\let\texorpdfstring\@firstoftwo}%
+ \let\web@save@title\title
+ \def\title{\@ifnextchar[{\@web@title}{\@web@title[]}}
+ \def\@web@title[#1]#2{\gdef\webtitle{#2}%
+ \@ifundefined{hypersetup}{}{\hypersetup{pdftitle={#2}}}%
+ \def\webArg{#1}\ifx\webArg\@empty\gdef\shortwebtitle{#2}\else
+ \gdef\shortwebtitle{#1}\fi\web@save@title{#2}}
+ \let\web@saved@author\author
+ \def\author#1{\gdef\webauthor{#1}%
+ \@ifundefined{hypersetup}{}{\hypersetup{pdfauthor={#1}}}%
+ \web@saved@author{#1}}
+ \def\subject{\@ifnextchar[{\@subject}{\@subject[]}}
+ \def\@subject[#1]#2{\def\webArg{#1}%
+ \ifx\webArg\@empty\gdef\shortwebsubject{#2}\else
+ \gdef\shortwebsubject{#1}\fi\gdef\websubject{#2}%
+ \@ifundefined{hypersetup}{}{\hypersetup{pdfsubject={#2}}}}
+ \def\email#1{\gdef\webemail{#1}}
+ \def\keywords#1{\gdef\webkeywords{#1}%
+ \@ifundefined{hypersetup}{}{\hypersetup{pdfkeywords={#1}}}}
+ \def\university#1{\gdef\webuniversity{#1}}
+ \def\copyrightyears#1{\gdef\webcopyrightyears{#1}}
+ \def\version#1{\gdef\web@version@value{#1}%
+ \edef\webversion{\ifx\web@version@value\@empty\else
+ \noexpand\web@versionlabel\noexpand\
+ \noexpand\web@version@value\fi}%
+ }
+ \let\web@version@value\@empty
+ \def\versionLabel#1{\def\web@versionlabel{#1}}
+ \versionLabel{Version}
+ \def\web@toc{Table of Contents}
+ \def\web@continued{cont.}
+ \title{}\author{}\email{}\subject{}\keywords{}\university{}
+ \providecommand{\optionalPageMatter}[2][]{%
+ \def\optionalpagematter{#2}}
+ \def\optionalpagematter{}
+}
+\def\duedate#1{\def\theduedate{#1}}
+\duedate{}
+\def\duedate#1{\def\theduedate{#1}}
+\duedate{}
+\newcommand\thisterm{%
+ \ifnum\month<6Spring\else
+ \ifnum\month<8Summer\else
+ \ifnum\month>8Fall\else
+ \ifnum\day>25Fall\else
+ Summer\fi\fi\fi\fi
+}
+\newcommand{\examAnsKeyLabel}[1]{%
+ \def\@examAnsKeyLabel{\ifanswerkey\space #1\fi}}
+\examAnsKeyLabel{Answer Key}
+\newcommand\examNameLabel[1]{\gdef\@examNameLabel{#1\@examAnsKeyLabel}}
+\examNameLabel{Name:}
+\newcommand{\idinfoHighlight}[1]{\def\eqe@idinfohl{#1}}
+\idinfoHighlight{\underbar}
+\newcommand\eqExamName[2][]{%
+ \def\eqExamName@argi{#1}\def\eqExamName@argii{#2}}
+\def\eq@ExamName{\bgroup
+ \settowidth\eq@tmplengthA{\@examNameLabel\ }%
+ \@tempdima=\eqExamName@argii\relax
+ \advance\@tempdima by-\eq@tmplengthA
+ \eqe@idinfohl{\makebox[\eqExamName@argii][l]{\@examNameLabel}}%
+ \expandafter\insTxtFieldIdInfo\expandafter[\eqExamName@argi]%
+ {\@tempdima}{IdInfo.Name}\egroup}
+\eqExamName[\Ff\FfRequired]{2.25in}
+\newcommand\examSIDLabel[1]{\gdef\@examSIDLabel{#1}}
+\examSIDLabel{SID:}
+\newcommand\eqSID[2][]{\def\eqSID@argi{#1}\def\eqSID@argii{#2}}
+\def\eq@SID{\bgroup\settowidth\eq@tmplengthA{\@examSIDLabel\ }%
+ \@tempdima=\eqSID@argii\relax\advance\@tempdima by-\eq@tmplengthA
+ \eqe@idinfohl{\makebox[\eqSID@argii][l]{\@examSIDLabel}}%
+ \expandafter\insTxtFieldIdInfo\expandafter[\eqSID@argi]%
+ {\@tempdima}{IdInfo.SID}\egroup}
+\eqSID[\Ff\FfRequired]{2.25in}
+\newcommand\examEmailLabel[1]{\gdef\@examEmailLabel{#1}}
+\examEmailLabel{Email:}
+\newcommand\eqEmail[2][]{%
+ \def\eqExam@argi{#1}\def\eqEmail@argii{#2}}
+\gdef\eq@Email{\bgroup\settowidth\eq@tmplengthA{\@examEmailLabel\ }%
+ \@tempdima=\eqEmail@argii\relax\advance\@tempdima by-\eq@tmplengthA
+ \underbar{\makebox[\eqEmail@argii][l]{\@examEmailLabel}}%
+ \expandafter\insTxtFieldIdInfo\expandafter[\eqEmail@argi]%
+ {\@tempdima}{IdInfo.email}\egroup}
+\eqEmail{2.25in}
+\def\insTxtFieldIdInfo[#1]#2#3{%
+ \@ifundefined{@quiz}{}{\if\eq@online\eqe@YES
+ \ifeq@nosolutions\ifeq@solutionsafter\else
+ \raisebox{-1bp}{\makebox[0pt][r]{%
+ \textField[\BC{}#1]{#3}{#2}{11bp}}}%
+ \fi\fi\fi
+ }%
+}
+\def\SubmitInfo#1#2{%
+ \def\EqExam@SubmitURL{#1}\def\@EmailInstr{#2}%
+}
+\def\EmailCourseName#1{\def\@EmailCourseName{#1}}
+\EmailCourseName{\websubject}
+\def\EmailExamName#1{\def\@EmailExamName{#1}}
+\EmailExamName{\webtitle}
+\def\EmailSubject#1{\def\@EmailSubject{#1}}
+\EmailSubject{}
+\def\ServerRetnMsg#1{\def\@ServerRetnMsg{#1}}
+\ServerRetnMsg{}
+\def\SubmitButtonLabel#1{\def\@SubmitButtonLabel{#1}}
+\SubmitButtonLabel{Submit}
+\let\priorSubmitJS\@gobble
+\let\postSubmitJS\@empty
+\def\SubmitButton
+{%
+ \ifx\use@email\eqe@YES\ifeq@nosolutions\ifeq@solutionsafter\else
+ \makebox[0pt][l]{\pushButton
+ [\CA{\@SubmitButtonLabel}\A{\JS{%
+ var _eqEok2Submit = true;\r
+ var aSubmitFields = new Array("eqexam", "IdInfo");\r
+ \priorSubmitJS\r
+ if(_eqEok2Submit) this.submitForm("\EqExam@SubmitURL",
+ true, false, aSubmitFields);\r
+ \postSubmitJS
+ }}]{Submit}{1.5in}{16bp}}%
+ \makebox[0pt][l]{\textField[\F\FHidden\DV{\@EmailInstr}
+ \V{\@EmailInstr}]{IdInfo.mailTo}{11bp}{11bp}}%
+ \makebox[0pt][l]{\textField[\F\FHidden\DV{\@EmailCourseName}
+ \V{\@EmailCourseName}]{IdInfo.courseName}{11bp}{11bp}}%
+ \makebox[0pt][l]{\textField[\F\FHidden\DV{\@EmailExamName}
+ \V{\@EmailExamName}]{IdInfo.examName}{11bp}{11bp}}%
+ \makebox[0pt][l]{\textField[\F\FHidden\DV{\@EmailSubject}
+ \V{\@EmailSubject}]{IdInfo.subject}{11bp}{11bp}}%
+ \makebox[0pt][l]{\textField[\F\FHidden\DV{\@ServerRetnMsg}
+ \V{\@ServerRetnMsg}]{IdInfo.retnmsg}{11bp}{11bp}}%
+ \fi\fi\fi
+}
+\def\thequizno{\if\probstar*\Alph{quizno}\else\alph{quizno}\fi}
+\def\linkContentFormat{%
+ \if\probstar*\Alph{quizno}\else\alph{quizno}\fi}
+\def\linkContentWrapper{(\hfil\linkContentFormat\hfil)}%
+\def\Ans@r@l@Defaults
+{%
+ \BC{}\S{S}\W{1}\Ff{\FfNoToggleToOff}
+ \textSize{12}\textColor{0 g}
+}
+\newcommand{\optsRadioBtnf}[1]{\def\eqe@optsRadiof{#1}}
+\newcommand{\optsRadioBtnl}[1]{\def\eqe@optsRadiol{#1}}
+\let\eqe@optsRadiof\@empty\let\eqe@optsRadiol\@empty
+\def\eqExam@Ans@sq@l{\leavevmode
+ \if\eq@listType1\stepcounter{quizno}\else\ifwithinsoldoc
+ \stepcounter{quizno}\else\refstepcounter{quizno}\fi\fi
+ \PBS\raggedright\settowidth{\eq@tmplength}{\eq@lw@l}%
+ \sbox{\eq@tmpbox}{\eq@l@l}\eq@tmpdima=\wd\eq@tmpbox
+ \def\link@@Content{\linkContentWrapper}%
+ \hangindent=\eq@tmplength\hangafter=1\relax
+ \edef\fieldName{%
+ \if\probstar*eqexam.\curr@quiz.\theeqquestionnoi.part\thepartno%
+ \else
+ eqexam.\curr@quiz.\theeqquestionnoi%
+ \fi
+ }%
+ \if\eq@online\eqe@YES\relax
+ \makebox[0pt][l]{%
+ \radio@@Button{\presets{\eqe@optsRadiol}}{\fieldName}%
+ {\eq@tmpdima}{\RadioFieldSize}{\Ans@choice\alph{quizno}}%
+ {\eq@protect\A}{\eq@setWidgetProps\eq@l@check@driver}%
+ {\Ans@r@l@Defaults\every@RadioButton\every@qRadioButton}}%
+ \else
+ \edef\@linkcolor{\@nolinkcolor}%
+ \fi
+ \ifeq@nosolutions\edef\@linkcolor{\@nolinkcolor}\fi
+ \textcolor{\@linkcolor}{\makebox[\eq@tmpdima]{\link@@Content}}%
+ \Ans@proofing{\eq@tmpdima}%
+ \eq@hspanner\ignorespaces
+}
+\def\eqExam@Ans@sq@f{\if\eq@listType1\stepcounter{quizno}\else
+ \ifwithinsoldoc\stepcounter{quizno}\else\refstepcounter{quizno}\fi\fi
+ \PBS\raggedright\settowidth{\eq@tmplength}{\eq@lw@f}%
+ \eq@tmpdima=\wd\eq@tmpbox%
+ \hangindent=\eq@tmplength\hangafter=1\relax
+ \if\eq@online\eqe@NO\previewtrue
+ \insertGrayLetters
+ \Ans@sq@f@driver
+ \else
+ \ifanswerkey\previewtrue
+ \Ans@sq@f@driver
+ \else
+ \edef\fieldName{%
+ \if\probstar*eqexam.\curr@quiz.\theeqquestionnoi.%
+ part\thepartno%
+ \else
+ eqexam.\curr@quiz.\theeqquestionnoi%
+ \fi
+ }\insertGrayLetters
+ \radio@@Button{\presets{\eqe@optsRadiof}}%
+ {\fieldName}{\RadioFieldSize}%
+ {\RadioFieldSize}{\Ans@choice\alph{quizno}}{\eq@protect\A}%
+ {\eq@setWidgetProps\eq@RadioCheck@driver}%
+ {\@@Ans@sq@f@Defaults\Ans@sq@f@Actions\every@RadioButton
+ \every@sqRadioButton\insert@circlesymbol}%
+ \fi
+ \fi
+ \Ans@proofing{\RadioFieldSize}%
+ \eq@hspanner\ignorespaces
+}
+\newcommand{\optsCkBxf}[1]{\def\eqe@optscbf{#1}}
+\newcommand{\optsCkBxl}[1]{\def\eqe@optscbl{#1}}
+\let\eqe@optscbl\@empty\let\eqe@optscbf\@empty
+\def\eqExam@Ans@ck@sq@l{\leavevmode
+ \if\eq@listType1\stepcounter{quizno}\else
+ \ifwithinsoldoc\stepcounter{quizno}\else\refstepcounter{quizno}\fi\fi
+ \PBS\raggedright\settowidth{\eq@tmplength}{\eq@lw@l}%
+ \sbox{\eq@tmpbox}{\eq@l@l}\eq@tmpdima=\wd\eq@tmpbox
+ \def\link@@Content{\linkContentWrapper}%
+ \hangindent=\eq@tmplength\hangafter=1\relax
+ \edef\fieldName{%
+ \if\probstar*eqexam.\curr@quiz.\theeqquestionnoi.%
+ part\thepartno.\alph{quizno}%
+ \else
+ eqexam.\curr@quiz.\theeqquestionnoi.\alph{quizno}%
+ \fi
+ }%
+ \if\eq@online\eqe@YES\relax
+ \makebox[0pt][l]{\check@@Box{\presets{\eqe@optscbl}}{\fieldName}%
+ {\eq@tmpdima}{\RadioFieldSize}{\Ans@choice\alph{quizno}}%
+ {\eq@protect\A}{\eq@setWidgetProps\eq@l@check@driver}%
+ {\Ans@r@l@Defaults\every@RadioButton\every@qRadioButton}}%
+ \else
+ \edef\@linkcolor{\@nolinkcolor}%
+ \fi
+ \ifeq@nosolutions\def\@linkcolor{\@nolinkcolor}\fi
+ \textcolor{\@linkcolor}{\makebox[\eq@tmpdima]{\link@@Content}}%
+ \Ans@proofing{\eq@tmpdima}%
+ \eq@hspanner\ignorespaces
+}
+\def\eqExam@Ans@ck@sq@f{\if\eq@listType1\stepcounter{quizno}\else
+ \ifwithinsoldoc\stepcounter{quizno}\else\refstepcounter{quizno}\fi\fi
+ \PBS\raggedright\settowidth{\eq@tmplength}{\eq@lw@f}%
+ \eq@tmpdima=\wd\eq@tmpbox%
+ \hangindent=\eq@tmplength\hangafter=1\relax
+ \if\eq@online\eqe@NO\previewtrue
+ \insertGrayLetters
+ \Ans@sq@f@driver
+ \else
+ \ifanswerkey\previewtrue
+ \Ans@sq@f@driver
+ \else
+ \edef\fieldName{%
+ \if\probstar*eqexam.\curr@quiz.\theeqquestionnoi.%
+ part\thepartno.\alph{quizno}%
+ \else
+ eqexam.\curr@quiz.\theeqquestionnoi.\alph{quizno}%
+ \fi
+ }\insertGrayLetters
+ \mbox{\check@@Box{\presets{\eqe@optscbf}}{\fieldName}%
+ {\RadioFieldSize}{\RadioFieldSize}%
+ {\Ans@choice\alph{quizno}}{\eq@protect\A}%
+ {\eq@setWidgetProps\eq@RadioCheck@driver}%
+ {\@@Ans@sq@f@Defaults\Ans@sq@f@Actions\every@RadioButton
+ \every@sqRadioButton}}%
+ \fi
+ \fi
+ \Ans@proofing{\RadioFieldSize}%
+ \eq@hspanner\ignorespaces
+}
+\def\optsMlTextField#1{\def\eqe@optsmltf{#1}}
+\let\eqe@optsmltf\@empty
+\def\eqExamPriorVspace#1{%
+ \edef\fieldName{%
+ \if\probstar*eqexam.\curr@quiz.%
+ \theeqquestionnoi.part\thepartno.solution%
+ \else
+ eqexam.\curr@quiz.\theeqquestionnoi.solution%
+ \fi
+ }%
+ \nobreak\noindent\textField[\BC{}\presets{\eqe@optsmltf}
+ \Ff\FfMultiline]{\fieldName}{\linewidth}{#1}\@gobble
+}
+\@ifpackageloaded{exerquiz}{%
+ \let\Ans@sq@l\eqExam@Ans@sq@l
+ \let\Ans@sq@f\eqExam@Ans@sq@f
+ \let\Ans@ck@sq@l\eqExam@Ans@ck@sq@l
+ \let\Ans@ck@sq@f\eqExam@Ans@ck@sq@f
+ \def\eqexheader@wrapper{\makebox[0pt][r]{%
+ \hypertarget{qex.\the@exno}{\eqexheader}}}%
+ \if\eq@online\eqe@YES\relax
+ \newcounter{@cntfillin}%
+ \let\eqPriorVspace\eqExamPriorVspace
+ \fi
+}%
+{%
+ \input{eqalone.def}
+ \input{eqexam.def}
+ \@ifl@ter{def}{eqexam}{\eqexamdefReq}{}
+ {\PackageWarningNoLine{eqexam}
+ {This version of eqexam requires eqexam.def\MessageBreak
+ dated \eqexamdefReq\space or later}}
+ \def\eqexheader@wrapper{\makebox[0pt][r]{\eqexheader}}
+}
+\AtBeginDocument{%
+ \ifvspacewithsolns\writeAllAnsAtEnd\else
+ \ifeqfortextbook\writeAllAnsAtEnd\else
+ \writeWithSolDocTrue\fi\fi
+}
+\vspacewithkeyOff
+\def\selectedMC{\useRectForMC}
+\ifallowcircmc
+ \font\eqe@lcir=lcircle10 at 12pt
+ \bgroup
+ \setbox0=\hbox{\eqe@lcir h}
+ \xdef\eqe@cirDiam{\the\wd0}
+ \@tempdima=.5\wd0
+ \xdef\eqe@cirRadius{\the\@tempdima}
+ \egroup
+ \def\circ@Glyph#1#2{\hbox{\smash{\raisebox{\eqe@cirRadius}%
+ {\makebox[\eqe@cirDiam]{\llap{\ckcir@Color
+ \rlap{\eqe@lcir#1}\hskip#2\relax}}}}}}
+ \def\eqe@BboxCirc#1#2{\hbox{\ckcir@Color{\circ@Glyph{h}{0pt}}}}
+ \def\circProofingForCirc{\centerWidget\RadioFieldSize
+ \lower\eqcenterWidget\circ@Glyph{x}{1.4pt}}
+ \if\eq@online\eqe@YES
+ \def\useCircForMC{\let\Bbox\eqe@BboxCirc\useMCCircles}
+ \def\selectedMC{\useCircForMC}
+ \@ifundefined{eqe@BboxRect}
+ {\def\useRectForMC{\let\Bbox\ef@Bbox\useMCRects}}
+ {\def\useRectForMC{\let\Bbox\eqe@BboxRect\useMCRects}}
+ \else % if not online
+ \@ifundefined{eqe@BboxRect}
+ {\def\useRectForMC{\let\Bbox\ef@Bbox}}
+ {\def\useRectForMC{\let\Bbox\eqe@BboxRect}}
+ \def\useCircForMC{\let\Bbox\eqe@BboxCirc}
+ \def\selectedMC{\useCircForMC}
+ \fi
+ \def\useCircForProof{\symbolchoice{circle}%
+ \proofingsymbol{\circProofingForCirc}}
+\else
+ \if\eq@online\eqe@YES
+ \def\useCircForMC{\let\Bbox\eqe@BboxCirc\useMCCircles}
+ \@ifundefined{eqe@BboxRect}
+ {\def\useRectForMC{\let\Bbox\ef@Bbox\useMCRects}}
+ {\def\useRectForMC{\let\Bbox\eqe@BboxRect\useMCRects}}
+ \else
+ \@ifundefined{eqe@BboxRect}
+ {\def\useRectForMC{\let\Bbox\ef@Bbox}}
+ {\def\useRectForMC{\let\Bbox\eqe@BboxRect}}
+ \def\useCircForMC{\useRectForMC}
+ \def\selectedMC{\useRectForMC}
+ \fi
+ \let\useCircForProof\relax
+\fi
+\newif\ifuserectforms
+\def\useRectForMS{\userectformstrue}
+\def\useCircForMS{\userectformsfalse}
+\newcommand{\useCheckForProof}{\symbolchoice{check}%
+ \proofingsymbol{\ding{52}}}
+\useCheckForProof
+\newcommand{\useCrossForProof}{\symbolchoice{cross}%
+ \proofingsymbol{\raisebox{-1pt}{\rlap{\kern-1pt\Large\ding{56}}}}}
+\def\MCcolor{black}
+\def\Ans@sq@l@driver{\edef\@linkcolor{\MCcolor}%
+ \Rect{\makebox[\eq@tmpdima]{\linkContentWrapper}}%
+ \Ans@proofing{\eq@tmpdima}%
+}
+\def\Ans@sq@f@driver{%
+ \centerWidget\RadioFieldSize
+ \leavevmode\lower\eqcenterWidget\Bbox %\eqe@Bbox
+ {\RadioFieldSize}{\RadioFieldSize}%
+ \Ans@proofing{\RadioFieldSize}%
+}
+\def\eq@sqsllabel{\string\textbf{Solution to Quiz:}}
+\def\sqsllabel{\eq@sqsllabel}
+\let\quiz@solns\ex@solns
+\newcommand{\preExamSolnHead}{\goodbreak\noindent}
+\newcommand{\examSolnHeadFmt}[1]{\textbf{#1}}
+\newcommand{\postExamSolnHead}{\par\medskip}
+\@ifundefined{ifOKToWriteExamData}{\newif\ifOKToWriteExamData
+ \OKToWriteExamDatatrue}{}
+\newcommand{\writeToSolnFile}[1]{%
+ \ifsolutionsonly\else\ifOKToWriteExamData
+ \let\quiz@solns\ex@solns
+ \set@display@protect
+ \eqe@IWO\quiz@solns{#1}%
+ \set@typeset@protect
+ \fi\fi}
+\let\writeT@SolnFile\writeToSolnFile
+\def\eqe@writetoSolns#1{% dpsD17
+ \ifsolutionsonly\else
+ \ifOKToWriteExamData
+ \set@display@protect
+ \eqe@IWO\quiz@solns{\string\preExamSolnHead
+ \string\examSolnHeadFmt{#1}\string\postExamSolnHead}%
+ \set@typeset@protect\fi\fi}
+\def\eqe@writetoAux#1{%
+ \set@display@protect
+ \eqe@IWO\@auxout{#1}%
+ \set@typeset@protect}
+\def\Ans@sq@l@Actions{}
+\def\Ans@sq@f@Actions{}
+\def\Ans@proofing
+#1{%
+ \ifeq@proofing\if\Ans@choice1\relax
+ \llap{\rlap{\,\@proofingsymbol}\hskip#1\relax}%
+ \fi\fi
+}
+\def\eq@ExamLastPage{\csname eqExamLastPage\endcsname}
+\newcommand{\nPagesOnExam}{\csname eqExamLastPage\endcsname}
+\newcommand{\nPagesOfQues}{\ifvspacewithsolns
+ \csname eqExamQuesLastPage\endcsname\else
+ \csname eqExamLastPage\endcsname\fi}
+\newcommand{\nPagesOfSols}{\def\eqExamNumPagesSolns{0}%
+ \csarg\ifx{eqExamLastPage}\relax\else
+ \csarg\ifx{eqExamLastPage}\relax\else
+ {\count\z@=\nPagesOnExam\relax\advance
+ \count\z@-\nPagesOfQues\relax
+ \xdef\eqExamNumPagesSolns{\the\count\z@}}\fi\fi
+ \eqExamNumPagesSolns}
+\newcommand{\lastPageOfExam}[1]{\pageref{#1PageEnd}}
+\newcommand{\firstPageOfExam}[1]{\pageref{#1PageBegin}}
+\newcommand{\eqe@defNumRefii}[1]{%
+ \@ifundefined{hyperref}{\let\@getsecondOf\@secondoftwo}
+ {\let\@getsecondOf\@secondoffive}%
+ \@ifundefined{r@#1}{%
+ \csarg\gdef{nRefii@#1}{0}}{%
+ \expandafter\xdef\csname nRefii@#1\endcsname
+ {\expandafter\expandafter\expandafter
+ \@getsecondOf\csname r@#1\endcsname}%
+ }%
+}
+\def\eqe@numRefii#1{%
+ \csarg\ifx{nRefii@#1}\relax 0\else
+ \@nameuse{nRefii@#1}\fi}
+\newcommand{\numLastPageOfExam}[1]{\eqe@numRefii{#1PageEnd}}
+\newcommand{\numFirstPageOfExam}[1]{\eqe@numRefii{#1PageBegin}}
+\newcommand{\makeRefsNums}{%
+ \@ifundefined{thePartNames}{}{\begingroup
+ \def\\##1{\PackageInfo{eqexam}{processing exam: ##1}%
+ \eqe@defNumRefii
+ {##1PageEnd}\eqe@defNumRefii{##1PageBegin}}%
+ \thePartNames
+ \endgroup}%
+}
+\AtBeginDocument{\makeRefsNums}
+\newcommand{\lheadeqe}[1]{\def\eq@lhead{#1}}
+\lheadeqe{\shortwebsubject/\shortwebtitle}
+\newcommand{\cheadeqe}[1]{\def\eq@chead{#1}}
+\cheadeqe{-- Page \arabic{page} of {\nPagesOnExam} --}
+\newcommand{\rheadeqe}[1]{\def\eq@rhead{#1}}
+\rheadeqe{\eq@ExamName}
+\@ifpackageloaded{fancyhdr}{}{%
+ \let\lhead\lheadeqe
+ \let\chead\cheadeqe
+ \let\rhead\rheadeqe
+}
+\newcommand{\runExamHeader}{\eq@lhead\hfill\eq@chead\hfill\eq@rhead}
+\newcommand\eqExamRunHead{%
+ \addtolength\textwidth{\oddsidemargin}%
+ \noindent\hspace*{-\oddsidemargin}\makebox[\textwidth]
+ {\runExamHeader}%
+}
+\newcommand{\lfooteqe}[1]{\def\eq@lfoot{#1}}
+\lfooteqe{}
+\newcommand{\cfooteqe}[1]{\def\eq@cfoot{#1}}
+\cfooteqe{}
+\newcommand{\rfooteqe}[1]{\def\eq@rfoot{#1}}
+\rfooteqe{}
+\newcommand{\runExamFooter}{\eq@lfoot\hfill\eq@cfoot\hfill\eq@rfoot}
+\newcommand{\lheadSol}[1]{\def\eq@lheadSol{#1}}
+\lheadSol{\shortwebsubject/\shortwebtitle}
+\newcommand{\cheadSol}[1]{\def\eq@cheadSol{#1}}
+\cheadSol{-- Page \arabic{page} of {\eq@ExamLastPage} --}
+\newcommand{\rheadSol}[1]{\def\eq@rheadSol{#1}}
+\rheadSol{SOLUTIONS}
+\newcommand{\runExamHeaderSol}
+ {\eq@lheadSol\hfill\eq@cheadSol\hfill\eq@rheadSol}
+\def\eq@solutionshook
+{%
+ \gdef\eqExamRunHead{\addtolength\textwidth{\oddsidemargin}%
+ \noindent\hspace*{-\oddsidemargin}\makebox[\textwidth]
+ {\runExamHeaderSol}}%
+}
+\newcommand\maketitledesign
+{%
+ \makebox[\textwidth]{\normalsize
+ \shortstack[l]{\strut\websubject\\\@date}\hfill
+ \shortstack[c]{\webtitle\\\strut\@altTitle}\hfill
+ \shortstack[l]{\strut\eq@ExamName\\\webauthor}}%
+}
+\def\altTitle#1{\def\@altTitle{#1}}
+\let\@altTitle\@empty
+\def\eqemaketitle
+{%
+ \EQEcalculateAllTotals
+ \begingroup
+ \noindent%\hspace*{-\oddsidemargin}%
+ \raisebox{.7in}[0pt][0pt]{\SubmitButton}%
+ \maketitledesign
+ \endgroup
+}
+\ifeqfortextbook
+ \@ifpackageloaded{web}{\let\maketitle\web@save@maketitle}{}%
+\else
+ \if@eqeuseclassmaketitle
+ \@ifpackageloaded{web}{\let\maketitle\web@save@maketitle}{}%
+ \else
+ \let\maketitle\eqemaketitle
+ \fi
+\fi
+\newcommand\placeCoverPageLogo[3]{%
+ \def\eqe@insertLogo{\hbox to0pt{%
+ \hspace*{#1}\smash{\raisebox{#2}{#3}}\hss}}}
+\let\eqe@insertLogo\relax
+\def\eqexcoverpage{%
+ \begingroup
+ \pagenumbering{roman}
+ \eqe@insertLogo
+ \eqexcoverpagedesign
+ \endgroup\newpage
+ \pagenumbering{arabic}
+}
+\newcommand{\coverpagesubject}[1]{\def\coverpage@subject{#1}}
+\let\coverpage@subject\@empty
+\def\eqexamsubject{\ifx\coverpage@subject\@empty\websubject
+ \else\coverpage@subject\fi}
+\newcommand{\coverpageUniversityFmt}[1]{%
+ \def\eqex@coverpageUniversityFmt{#1}}
+\coverpageUniversityFmt{\bfseries\large}
+\newcommand{\coverpageSubjectFmt}[1]{%
+ \def\eqex@coverpageSubjectFmt{#1}}
+\coverpageSubjectFmt{\bfseries\large}
+\newcommand{\coverpageTitleFmt}[1]{%
+ \def\eqex@coverpageTitleFmt{#1}}
+\coverpageTitleFmt{\bfseries\large}
+\newcommand\cpCID[1]{\def\cp@@CID{#1}}
+\let\cp@@CID\@empty
+\newcommand{\cpSetCIDWidth}[1]{\bgroup\setlength{\@tempdima}{#1}
+ \xdef\cpCID@argi{\the\@tempdima}\egroup}
+\def\cp@CID{\bgroup\settowidth\eq@tmplengthA{\cp@@CID}%
+ \@tempdima=\cpCID@argi\relax
+ \advance\@tempdima-\eq@tmplengthA
+ \eqe@idinfohl{\makebox[\cpCID@argi][l]{\cp@@CID}}\egroup}
+\cpSetCIDWidth{2.25in}
+\def\eqeSumryVert{\def\eqe@SumryVert{\par\vfill}%
+ \let\eqe@SumryHoriz\relax
+ \def\eqe@@SumryVert{\vspace{\stretch{-1}}\bigskip}}
+\def\eqeSumryHoriz{\def\eqe@SumryHoriz{\hfill}\let\eqe@SumryVert\relax
+ \let\eqe@@SumryVert\relax}
+\eqeSumryHoriz
+\def\eqe@coverPageNaming{0}
+\newcommand{\useUIPartNames}{\def\eqe@coverPageNaming{1}}
+\newcommand{\useCustomPartNames}{\def\eqe@coverPageNaming{2}}
+\newcommand{\customNaming}[2]{\@namedef{userCustom#1}{#2}}
+\newcommand{\cpSetNameAndIDWidth}[1]{\bgroup
+ \setlength{\@tempdima}{#1}%
+ \xdef\cp@SetNameAndIDWidth{\the\@tempdima}\egroup}
+\cpSetNameAndIDWidth{.45\textwidth}
+\newcommand{\cpEnclNameAndID}[1]{\def\cp@EnclNameAndID{#1}}
+\let\cp@EnclNameAndID\@empty
+\newcommand{\cpSetHghtFrstLn}[1]{\def\cp@HghtFrstLn{#1}}
+\def\cp@HghtFrstLn{0pt}
+\def\cp@setHghtFrstLn{\rule[\cp@HghtFrstLn]{0pt}{0pt}}
+\newcommand\cpNameAndID{\noindent
+ \edef\eqExamName@argii{\cp@SetNameAndIDWidth}%
+ \edef\eqSID@argii{\cp@SetNameAndIDWidth}%
+ \edef\cpCID@argi{\cp@SetNameAndIDWidth}%
+ \cp@EnclNameAndID{\parbox[b]{\cp@SetNameAndIDWidth}{\parindent0pt
+ \cp@setHghtFrstLn\eq@ExamName\\[2ex]
+ \ifx\cp@@CID\@empty\eq@SID\else\cp@CID\fi\\[2ex]
+ \ifx\use@email\eqe@YES\eq@Email\\[2ex]\fi
+ \textcolor{\webauthor@color}{\webauthor}, \@date\vskip0pt}}}
+\newcommand{\eqexcoverpagedesign}
+{%
+ \begingroup
+ \parindent0pt
+ \thispagestyle{empty}
+ \vspace*{.1\textheight}
+ \noindent%\hspace*{-\oddsidemargin}%
+ \makebox[\linewidth]{\parbox{\linewidth}%
+ {\eqex@coverpageUniversityFmt
+ \color{\webuniversity@color}%
+ \centering\webuniversity}}
+ \par\vspace{.1\textheight}
+ \noindent%\hspace*{-\oddsidemargin}%
+ \makebox[\linewidth]{\parbox{\linewidth}%
+ {\eqex@coverpageSubjectFmt
+ \color{\websubject@color}%
+ \centering\eqexamsubject}}
+ \par\vspace{\bigskipamount}
+ \noindent%\hspace*{-\oddsidemargin}%
+ \makebox[\linewidth]{\parbox{\linewidth}%
+ {\eqex@coverpageTitleFmt
+ \color{\webtitle@color}%
+ \centering\webtitle}}
+ \par\vspace{\stretch{1}}
+ \optionalpagematter
+ \par\vspace{\stretch{1}}\cpNameAndID
+ \eqe@SumryHoriz\eqe@SumryVert
+ \sumryAnnots
+ \endgroup
+}
+\newcommand{\cpSumryHeader}{\textbf{Exam Record}}
+\newcommand{\cpSumryPts}{\,\text{pts}}
+\newcommand{\cpSumryPage}{Page}
+\newcommand{\cpSumryTotal}{Total:}
+\newcommand{\cpSumryGrade}{Grade:}
+\newcommand{\cpSetSumryWidth}[1]{\bgroup\setlength{\@tempdima}{#1}
+ \xdef\cp@SetSumryWidth{\the\@tempdima}\egroup}
+\cpSetSumryWidth{.5\textwidth}
+\newcommand{\cpUsefbox}{\let\cp@Usefbox\fbox}
+\cpUsefbox
+\newcommand{\cpNofbox}{\let\cp@Usefbox\mbox}
+\newcommand{\cprulelength}{1.5in}
+\def\cp@IsertNaming#1{%
+ \ifcase\eqe@coverPageNaming
+ #1\or\@nameuse{userFriendly#1}\or
+ \@nameuse{userCustom#1}\else#1\fi
+}
+\newcommand{\cpSumrybyparts}{%
+ \eqe@@SumryVert\cp@Usefbox{%
+ \ifx\cp@Usefbox\fbox
+ \def\cp@sumryWdth{\cp@SetSumryWidth-2\fboxrule-2\fboxsep}\else
+ \def\cp@sumryWdth{\cp@SetSumryWidth}\fi
+ \begin{minipage}[b]{\cp@sumryWdth}\kern0pt
+ \begin{flushleft}
+ \setlength{\eqetmplengtha}{\cprulelength}%
+ \edef\eqe@cprulelength{\the\eqetmplengtha}%
+ \csarg\ifx{NumberOfParts}\relax
+ \else
+ \count2=0
+ \medskip
+ \cpSumryHeader\par\parskip\bigskipamount
+ \def\\##1{\advance\count2by\csname ##1total\endcsname
+ \underbar{\makebox[0pt][l]{%
+ \cp@IsertNaming{##1}}\hspace*{\eqe@cprulelength}}%
+ / $\eqe@ptsFmt{\csname ##1total\endcsname}%
+ \cpSumryPts$\par}\thePartNames
+ \fi
+ \underbar{\makebox[0pt][l]{\cpSumryTotal}%
+ \hspace{\eqe@cprulelength}}/
+ $\eqe@ptsFmt{\the\count2\relax}\cpSumryPts$ \par
+ \underbar{\makebox[0pt][l]{\cpSumryGrade}%
+ \hspace{\eqe@cprulelength}}%
+ \ifx\cp@Usefbox\fbox\medskip\fi
+ \end{flushleft}\kern0pt
+ \end{minipage}}\par
+}
+\newcommand{\cpSumrybypages}{%
+ \eqe@@SumryVert\cp@Usefbox{%
+ \ifx\cp@Usefbox\fbox
+ \def\cp@sumryWdth{\cp@SetSumryWidth-2\fboxrule-2\fboxsep}\else
+ \def\cp@sumryWdth{\cp@SetSumryWidth}\fi
+ \begin{minipage}[b]{\cp@sumryWdth}\kern0pt
+ \begin{flushleft}
+ \setlength{\eqetmplengtha}{\cprulelength}%
+ \edef\eqe@cprulelength{\the\eqetmplengtha}%
+ \csarg\ifx{NumberOfParts}\relax
+ \else\medskip\count0=0\relax\count2=0\relax
+ \cpSumryHeader\par\parskip\bigskipamount
+ \ifsolutionsAtEnd
+ \@ifundefined{eqExamQuesLastPage}{\def\NUMPAGES{0}}
+ {\edef\NUMPAGES{\@nameuse{eqExamQuesLastPage}}}%
+ \else
+ \@ifundefined{eqExamLastPage}{\def\NUMPAGES{0}}
+ {\edef\NUMPAGES{\@nameuse{eqExamLastPage}}}%
+ \fi
+ \@whilenum\count0<\NUMPAGES\relax\do{%
+ \advance\count0by1\relax
+ \@ifundefined{Page\the\count0total}{\count4=0\relax}
+ {\count4=\@nameuse{Page\the\count0total}\relax}%
+ \csarg\ifx{Page\the\count0spilltotal}\relax
+ \else\advance\count4by\csname%
+ Page\the\count0spilltotal\endcsname\relax\fi
+ \advance\count2by\count4\relax\underbar{%
+ \makebox[0pt][l]{\cpSumryPage~\the\count0}%
+ \hspace*{\eqe@cprulelength}}/
+ $\eqe@ptsFmt{\the\count4\relax}%
+ \cpSumryPts$\csarg\ifx{Page\the\count0spilltotal}\relax
+ \else\ $(\@nameuse{Page\the\count0spilltotal}%
+ \cpSumryPts+\@nameuse{Page\the\count0total}%
+ \cpSumryPts)$\fi\par
+ }% while
+ \fi
+ \underbar{\makebox[0pt][l]{\cpSumryTotal}%
+ \hspace{\eqe@cprulelength}}/
+ $\eqe@ptsFmt{\the\count2\relax}\cpSumryPts$\par
+ \underbar{\makebox[0pt][l]{\cpSumryGrade}%
+ \hspace{\eqe@cprulelength}}%
+ \ifx\cp@Usefbox\fbox\medskip\fi
+ \end{flushleft}\kern0pt
+ \end{minipage}}\par
+}
+\AtBeginDocument{\eqex@coverpage}
+\def\@marktotalvalue{\global\let\eqe@innermarkpts\relax
+ \if@bypasseqexamheading\else\def\eqe@marktxt{%
+ \theeqpointvalue\@nameuse{eqExam}\theeq@numparts}%
+ \ifx\endparts\endexercise@parts@tabular
+ \xdef\eqe@innermarkpts{\noexpand\mark{\eqe@marktxt}}\else
+ \mark{\eqe@marktxt}\fi\fi}
+\def\probvalue#1#2{\addtocounter{eqpointvalue}{#1}%
+ \ifdispl@yPoints\marginpoints{#1}{#2}\fi
+ \@marktotalvalue}
+\newcommand{\widthtpboxes}{35pt}
+\newcommand{\marginboxdesign}[2][]{%
+ \parbox{\widthtpboxes}{\tabcolsep=0pt\relax
+ \begin{tabular}{|c|}\hline
+ \vrule height15pt width0pt#1\\\hline
+ \makebox[\widthtpboxes-2\fboxrule]{#2}\\\hline
+ \end{tabular}%
+ }%
+}
+\newcommand{\eqleftmarginbox}[2]{\makebox[0pt][r]{%
+ \setlength\tabcolsep{0pt}%
+ \raisebox{-.5\height}[0pt][0pt]{%
+ \marginboxdesign{\marginpointsboxtext{#1}{#2}}%
+ }\hspace*{\marginparsep}\hspace*{\eqemargin}}%
+}
+\providecommand{\ptsLabel}[1]{\def\eqptsLabel{#1}}\ptsLabel{pts}
+\providecommand{\ptLabel}[1]{\def\eqptLabel{#1}}\ptLabel{pt}
+\newcommand{\eachLabel}[1]{\def\eqeachLabel{#1}}\eachLabel{ea.}
+\newcommand{\pointsLabel}[1]{%
+ \def\eqpointsLabel{#1}}\pointsLabel{points}
+\newcommand{\pointLabel}[1]{%
+ \def\eqpointLabel{#1}}\pointLabel{point}
+\def\pointsAsText{\def\eqe@ptsFmt{\text}}
+\let\eqe@ptsFmt\relax
+\@onlypreamble\pointsAsText
+\newcommand{\marginpointtext}[2]{\ifnum#2=0\leftmarginPtsTxt{#1}\else
+ \leftmarginPtsEaTxt{#2}\fi
+}
+\newcommand{\leftmarginPtsTxt}[1]{(\small$\eqe@ptsFmt{#1}^{\text{%
+ \ifnum#1=1\relax\eqptLabel\else\eqptsLabel\fi}}$)}
+\newcommand{\leftmarginPtsEaTxt}[1]{(\small$\eqe@ptsFmt{#1}_{\text{%
+ \eqeachLabel}}^{\text{\ifnum#1=1\relax\eqptLabel\else
+ \eqptsLabel\fi}}$)}
+\newcommand{\eqleftmargin}[2]{\makebox[0pt][r]{\marginpointtext{#1}{#2}%
+ \setlength{\@tempdima}{\marginparsep+\eqemargin}%
+ \hspace*{\@tempdima}}}
+\newcommand{\marginpointsboxtext}[2]{\small$\eqe@ptsFmt{#1}\,\text{%
+ \ifnum#1=1\relax\eqptLabel\else\eqptsLabel\fi}$}
+\def\@insertPointsBoxPDF
+{
+ \def\fieldName{pointsgiven.\curr@quiz.page\thepage.%
+ \theeqquestionnoi}%
+ \calcTextField[\F\FHidden\BC{}\Q1\textColor{1 0 0 rg}]
+ {\fieldName}{\widthtpboxes}{15pt}%
+}
+\def\@insertTotalsBoxPDF
+{
+ \def\fieldName{pagetotals.\curr@quiz.page\thepage}%
+ \calcTextField[\F\FHidden\BC{}\Q1\textColor{1 0 0 rg}
+ \AA{\AACalculate{AFSimple_Calculate("SUM",
+ new Array("pointsgiven.\curr@quiz.page\thepage"));}}]
+ {\fieldName}{\widthtpboxes}{15pt}%
+}
+\ifx\use@email y
+ \let\insertPointsBoxPDF\@insertPointsBoxPDF
+ \let\insertTotalsBoxPDF\@insertTotalsBoxPDF
+\else
+ \let\insertPointsBoxPDF\@empty
+ \let\insertTotalsBoxPDF\@empty
+\fi
+\newcommand{\eqrightmarginbox}[2]{\makebox[0pt][l]{%
+ \setlength\tabcolsep{0pt}%
+ \setlength{\@tempdima}{\textwidth-\eqemargin+\marginparsep}%
+ \hspace*{\@tempdima}%
+ \raisebox{-.5\height}[0pt][0pt]{%
+ \marginboxdesign[\insertPointsBoxPDF]%
+ {\marginpointsboxtext{#1}{#2}}%
+ }\hfil
+ }%
+}
+\newcommand{\eqeomarginboxright}[2]{\makebox[0pt][l]{%
+ \setlength\tabcolsep{0pt}%
+ \setlength{\@tempdima}{\textwidth+\marginparsep-\parindent}%
+ \hspace*{\@tempdima}%
+ \raisebox{-.5\height}[0pt][0pt]{%
+ \marginboxdesign[\insertTotalsBoxPDF]%
+ {\marginpointsboxtext{#1}{#2}}%
+ }\hfil
+ }%
+}
+\newcommand{\eqeomarginboxleft}[2]{\noindent\makebox[0pt][r]{%
+ \raisebox{-.5\height}[0pt][0pt]{%
+ \marginboxdesign[\insertTotalsBoxPDF]%
+ {\marginpointsboxtext{#1}{#2}}%
+ }{\settowidth{\@tempdimb}{\eqe@hspannerPrb}%
+ \setlength{\@tempdima}{\marginparsep+\eqemargin-\@tempdimb}%
+ \hspace*{\@tempdima}}}\hfil
+}
+\newcommand{\measurePtBoxHt}{\setbox\eq@pointbox\hbox{%
+ \marginboxdesign{\marginpointsboxtext{00}{0}}%
+ }\setlength\eq@pointboxtotalheight{.5\ht\eq@pointbox}%
+ \xdef\halfHtPtBox{\the\eq@pointboxtotalheight}%
+ \setlength\eq@pointboxtotalheight{\dp\eq@pointbox+\ht\eq@pointbox}%
+ \xdef\totHtPtBox{\the\eq@pointboxtotalheight}%
+ \xdef\dpPtBox{\the\dp\eq@pointbox}%
+ \xdef\htPtBox{\the\ht\eq@pointbox}%
+}
+\measurePtBoxHt
+\newcommand{\eqbothmargins}[2]{\eqleftmargin{#1}{#2}%
+ \eqrightmarginbox{#1}{#2}}
+\def\lastparttotaled{0}
+\def\parsetotals#1\eqExam#2\end{\def\argi{#1}\def\argii{#2}}
+\def\stripeqExam#1\eqExam{\def\argii{#1}}
+\def\settotalsbox{%
+ \expandafter\parsetotals\botmark\eqExam\end
+ \ifx\argi\@empty\hfil
+ \else\ifx\argii\@empty\hfil
+ \else
+ \expandafter\stripeqExam\argii
+ \setcounter{eqpointsthispage}{\argi}%
+ \addtocounter{eqpointsthispage}{-\value{eqpointsofar}}%
+ \setcounter{eqpointsofar}{\argi}%
+ \xdef\lastparttotaled{\argii}%
+ \eqe@IWO\@auxout{\string\csarg\string
+ \gdef{Page\thepage total}%
+ {\theeqpointsthispage}}%
+ \totalsbox
+ \fi
+ \fi
+}
+\newcommand\totalsboxtext{\small$
+ \eqe@ptsFmt{\theeqpointsthispage}\,\text{%
+ \ifnum\theeqpointsthispage=1\relax\eqptLabel\else
+ \eqptsLabel\fi}$}
+\newlength\eqevtranstotbox
+\setlength{\eqevtranstotbox}{0pt}
+\def\eqe@chkZeroTotals{\let\eqe@allow\eqe@YES
+ \ifx\eqe@zeroTotalsAllowed\eqe@NO
+ \ifnum\theeqpointsthispage=0 \let\eqe@allow\eqe@NO\fi\fi}
+\newcommand{\totalsboxleft}{\eqe@chkZeroTotals
+ \ifx\eqe@allow\eqe@YES
+ \makebox[0pt][r]{\setlength\tabcolsep{0pt}%
+ \raisebox{-\height+\eqevtranstotbox}[0pt][0pt]{%
+ \marginboxdesign[\insertTotalsBoxPDF]{\totalsboxtext}%
+ }\hspace*{\marginparsep}%
+ }\fi\hfil
+}
+\newcommand{\totalsboxright}{\eqe@chkZeroTotals
+ \ifx\eqe@allow\eqe@YES
+ \makebox[0pt][l]{\setlength\tabcolsep{0pt}%
+ \hspace*{\textwidth}\hspace*{\marginparsep}%
+ \raisebox{-\height+\eqevtranstotbox}[0pt][0pt]{%
+ \marginboxdesign[\insertTotalsBoxPDF]{\totalsboxtext}%
+ }%
+ }\fi\hfil
+}
+\ifeqe@nopoints\else\if@bypasseqexamheading\else
+\AtBeginDocument{\mark{0\csname eqExam\endcsname0}}
+\fi\fi
+\AtEndDocument{%
+ \eqe@IWO\@auxout{\string\csarg\string\gdef{NumberOfParts}%
+ {\arabic{eq@numparts}}}%
+ \eqe@IWO\@auxout{\string\csarg\string\gdef{thePartNames}%
+ {\the\partNames}}%
+ \clearpage\addtocounter{page}{-1}\writelastpage\relax
+ \addtocounter{page}{1}%
+}
+\newcommand\theGrandTotal{%
+ $\eqe@ptsFmt{\csname eqeGrandTotal\endcsname}$}
+\newcommand{\totalForPart}[1]{$\eqe@ptsFmt{\csname#1total\endcsname}$}
+\def\tot@lForPart#1{\csname#1total\endcsname}
+\newcommand{\percentForPart}[1]{$\eqe@ptsFmt
+ {\csname#1percent\endcsname}$\%}
+\newcounter{markerCnt}
+\def\placeMarkerHere#1{%
+ \eqe@IWO\@auxout{\string\csarg\string\gdef
+ {#1SaveTotalHere}{\theeqpointvalue}}%
+}
+\newcommand{\calcFromMarkers}[3][\@markerTotalFmt]{%
+ \@ifundefined{#2SaveTotalHere}{}%
+ {\@ifundefined{#3SaveTotalHere}{}{\setcounter{markerCnt}%
+ {\@nameuse{#2SaveTotalHere}-\@nameuse{#3SaveTotalHere}}%
+ \ifnum\value{markerCnt}<0\relax
+ \setcounter{markerCnt}{-\value{markerCnt}}\fi#1}}%
+}
+\newcommand{\markerTotalFmt}[1]{\def\@markerTotalFmt{#1}}
+\markerTotalFmt{\space(\themarkerCnt\space points)}
+\newcommand{\calcQsBtwnMarkers}[2][]{\setcounter{markerCnt}{0}%
+ \def\eqe@argi{#1}%
+ \eqe@IWO\@auxout{\string\csarg\string\gdef
+ {#2thisQnum}{\theeqquestionnoi}}%
+ \@ifundefined{#2thisQnum}{\csarg\xdef{#2Start}{0}%
+ \eqe@IWO\@auxout{\string\csarg\string\gdef
+ {#2Start}{0}}%
+ }{%
+ \setcounter{markerCnt}{\value{eqquestionnoi}+1}\csarg
+ \xdef{#2Start}{\the\value{markerCnt}}%
+ \eqe@IWO\@auxout{\string\csarg\string\gdef
+ {#2Start}{\@nameuse{#2Start}}}%
+ }
+ \ifx\eqe@argi\@empty\else
+ \@ifundefined{#2thisQnum}{\setcounter{markerCnt}{0}}%
+ {\@ifundefined{#1thisQnum}{\setcounter{markerCnt}{0}}{%
+ \setcounter{markerCnt}%
+ {\@nameuse{#1thisQnum}-\@nameuse{#2thisQnum}}%
+ }}%
+ \fi
+ \csarg\xdef{#2nQs}{\the\value{markerCnt}}%
+ \eqe@IWO\@auxout{\string\csarg\string\gdef
+ {#2nQs}{\the\value{markerCnt}}}%
+ \ifx\eqe@argi\@empty\else
+ \@ifundefined{#1thisQnum}{\csarg\xdef{#2End}{0}%
+ \eqe@IWO\@auxout{\string
+ \csarg\string\gdef{#2End}{0}}%
+ }{%
+ \csarg\xdef{#2End}{\@nameuse{#1thisQnum}}%
+ \eqe@IWO\@auxout{\string\csarg\string\gdef
+ {#2End}{\@nameuse{#2End}}}%
+ }%
+ \fi
+}
+\newcommand{\markStartFor}[1]{\@nameuse{#1Start}}
+\newcommand{\markEndFor}[1]{\@nameuse{#1End}}
+\newcommand{\markNumQsFor}[1]{\@nameuse{#1nQs}}
+\newcommand{\placeAtxy}[3]{{%
+ \par\nointerlineskip
+ \ifdisplayworkarea
+ \ifx\eq@insertverticalspace\eqe@YES
+ \makebox[0pt][l]{\hspace*{-\parindent}\hspace*{#1}%
+ \raisebox{#2}[0pt][0pt]{#3}}\fi
+ \fi
+}}
+\newsavebox{\workareasb}
+\def\workareaVadj#1{\bgroup\def\eqe@rgi{#1}\ifx\eqe@rgi\@empty
+ \def\eqe@rgi{0pt}\fi\setlength{\@tempdima}{\eqe@rgi}%
+ \xdef\workareaV@dj{\the\@tempdima}\egroup
+} % dps1
+\workareaVadj{3pt}
+\def\workareaCmds#1{\def\@rgi{#1}\ifx\@rgi\@empty
+ \let\work@reaCmds\relax\else
+ \def\work@reaCmds{#1}}
+\let\work@reaCmds\relax
+\def\priorworkareaCmds#1{\def\@rgi{#1}\ifx\@rgi\@empty % dpsj6
+ \let\priorWorkAreaCmds\relax\else
+ \def\priorWorkAreaCmds{#1}\fi}
+\let\priorWorkAreaCmds\relax
+\newenvironment{workarea}[2][\linewidth]
+{%
+ \removelastparskip
+ \edef\workareadepth{\if\currhideopt H0pt\else#2\fi}%
+ \begin{lrbox}{\workareasb}\setlength{\eqetmplengtha}{#1}%
+ \ifx\makeVgrid\relax\else % dps2
+ \ifforceEqualCells
+ \ifx\fillLinesLineWidth\@empty\else
+ \setlength{\eqetmplengtha}{\fillLinesLineWidth}\fi
+ \fi
+ \fi
+ \begin{minipage}[b][\workareadepth][t]{\eqetmplengtha}%
+ \vglue\workareaV@dj
+ \@ifundefined{leadinIndentPrtSep}{}{\ifx\solutionparshape\@empty
+ \else\leftskip\leadinIndentPrtSep\fi}\work@reaCmds
+}{%
+ \end{minipage}\end{lrbox}%
+ \ifeq@solutionsafter\else
+ \par\ifdisplayworkarea
+ \ifx\eq@insertverticalspace\eqe@YES
+ \removelastparskip
+ \vglue-\baselineskip
+ \if\currhideopt H\else
+ \noindent\strut\smash{\usebox{\workareasb}}%
+ \fi\fi
+ \fi\fi
+}
+\def\splitsolution{%
+ \@ifnextchar[{\splitsolutioni}%
+ {\splitsolutioniii{\panelwidth}{\panelheight}}%
+}
+\def\splitsolutioni[#1]{%
+ \@ifnextchar[{\splitsolutionii{#1}}
+ {\splitsolutioniii{\panelwidth}{#1}}%
+}
+\def\splitsolutionii#1[#2]{%
+ \splitsolutioniii{#1}{#2}%
+}
+\def\splitsolutioniii#1#2{%
+ \@ifundefined{panel@write}{\newwrite\panel@write}{}%
+ \gdef\ss@Argiii{#1}\gdef\ss@Argii{#2}%
+ \let\@sssolution\solution
+ \let\end@sssolution\endsolution
+ \let\solution\@ssSolution
+ \let\endsolution\end@ssSolution
+ \par\noindent\ignorespaces
+}
+\def\endsplitsolution{%
+ \ifeq@solutionsafter\solutionsafterSkip\fi % dpsj10
+ \ifx\solutionparshape\@empty\else
+ \advance\linewidth-\leadinIndentPrtSep\fi %%dps
+ \edef\eqe@workwidth{\if\ss@Argi l\noexpand\ss@Argiii
+ \else\noexpand\linewidth\fi}%
+ \edef\eqe@workfill{\if\ss@Argi l\else\hfill\fi}%
+ \ifeq@solutionsafter\else
+ \begin{workarea}[\eqe@workwidth]{\eqedepth}%
+ \let\panelGetDimen\relax%
+ \eqe@workfill\input{panel\thepanel@cnt.cut}%
+ \end{workarea}
+ \fi\ifeq@solutionsafter\else\solutionsafterSkip\fi
+}
+\newcommand\panelgap{3pt}
+\newsavebox{\eqpanelbox}
+\newdimen\eqepanelwidth
+\newdimen\eqepanelheight
+\newcommand{\getDimSSPanel}[1]{%
+ \sbox{\eqpanelbox}{#1}%
+ \eqepanelwidth=\wd\eqpanelbox
+ \eqepanelheight=\ht\eqpanelbox
+ \advance\eqepanelheight by\the\dp\eqpanelbox
+}
+\def\panelwidth{\eqepanelwidth}
+\def\panelheight{\eqepanelheight}
+\newcounter{panel@cnt}
+\def\panel{\def\eqe@panelir{\eqe@paneli[r]}%
+ \@ifnextchar[{\eqe@paneli}
+ {\@ifnextchar\relax{\expandafter\eqe@panelir\@gobble}%
+ {\eqe@paneli[r]}}%
+}
+\def\eqe@paneli[#1]{%
+ \gdef\ss@Argi{#1}\def\eqe@l{l}\def\eqe@r{r}%
+ \ifx\ss@Argi\@empty\gdef\ss@Argi{r}\else
+ \ifx\eqe@l\ss@Argi\else\ifx\eqe@r\ss@Argi\else
+ \PackageError{eqexam}{Permissible arguments for panel are l and r}
+ {Use l or r for the argument of panel.}\fi\fi\fi
+ \stepcounter{panel@cnt}%
+ \immediate\openout \panel@write panel\thepanel@cnt.cut
+ \if\currhideopt H%
+ \eqe@IWO\panel@write{\vfill}%
+ \immediate\closeout\panel@write
+ \gdef\ss@Argii{0pt}%
+ \else
+ \if\currhideopt h\ifeq@solutionsafter\else
+ \ifeq@globalshowsolutions\else
+ \eqe@IWO\panel@write{\vfill}%
+ \immediate\closeout\panel@write
+ \gdef\ss@Argii{0pt}%
+ \fi\fi
+ \fi
+ \fi
+ \begingroup
+ \let\verbatim@out\panel@write
+ {\lccode`C=`\%\lccode`P=`\{
+ \lowercase{\eqe@IWO\verbatim@out{\string\panelGetDimen PC}}}%
+ \verbatimwrite
+}
+\def\endpanel{%
+ \endverbatimwrite
+ {\lccode`P=`\}\lowercase{\eqe@IWO\verbatim@out{P}}}%
+ \immediate\closeout\panel@write
+ \endgroup
+ \gdef\eqePANELCUT{%
+ \let\panelGetDimen\getDimSSPanel
+ \input{panel\thepanel@cnt.cut}%
+ \setlength{\eq@tmpdima}{\ss@Argiii}%
+ \xdef\ss@Argiii{\the\eq@tmpdima}%
+ \xdef\mp@Width{\ifeq@solutionsafter\linewidth
+ \else\linewidth-\ss@Argiii-\panelgap\fi}%
+ }\aftergroup\eqePANELCUT
+}
+\long\def\eqe@IW#1{%
+ \ifeq@solutionsafter
+ \let\eqe@next\@empty
+ \else
+ \def\eqe@next{\eqe@IWO\verbatim@out{#1}}%
+ \ifeq@nosolutions\else
+ \if\currhideopt H%
+ \gdef\ss@Argii{0pt}\let\eqe@next\@empty
+ \else
+ \if\currhideopt h%
+ \ifeq@globalshowsolutions\else
+ \gdef\ss@Argii{0pt}\let\eqe@next\@empty
+ \fi
+ \fi
+ \fi
+ \fi
+ \fi
+ \eqe@next
+}
+\newenvironment{@ssSolution}[1][\ss@Argii]%
+{%
+ \def\eqe@argi{#1}\ifx\eqe@argi\@empty\else
+ \let\soln@keys@nLines\@empty
+ \edef\panelheight{\the\panelheight}%
+ \edef\panelwidth{\the\panelwidth}%
+ \edef\temp@exp{\noexpand
+ \setkeys*{soln@keys}{#1}}\temp@exp
+ \ifx\soln@keys@nLines\@empty
+ \edef\ss@Argii{\XKV@rm}%
+ \else
+ \@tempdima\wlVspace\relax
+ \@tempdima=\soln@keys@nLines\@tempdima
+ \edef\ss@Argii{\the\@tempdima}%
+ \ifx\XKV@rm\@empty\else
+ \if@equsedim\edef\ss@Argii{\XKV@rm}\fi\fi
+ \fi
+ \setlength{\eq@tmpdima}{\ss@Argii}%
+ \ifdim\eqepanelheight>\eq@tmpdima
+ \eq@tmpdima\eqepanelheight\fi
+ \xdef\ss@Argii{\the\eq@tmpdima}%
+ \fi
+ \xdef\eqedepth{%
+ \ifvspacewithsolns\ss@Argii\else
+ \ifeq@nosolutions\ss@Argii\else
+ \ifeq@solutionsafter\ss@Argii\else0pt\fi\fi\fi}%
+ \xdef\mp@Width{\ifeq@solutionsafter\noexpand\linewidth\else
+ \noexpand\linewidth-\ss@Argiii-\panelgap\fi}%
+ \if\ss@Argi l%
+ \ifeq@solutionsafter
+ \def\eqe@lPanel{\parbox[b][\eqedepth][t]{\ss@Argiii}
+ {\let\panelGetDimen\relax
+ \input{panel\thepanel@cnt.cut}\vfill}\hfill}%
+ \def\eqe@rPanel{\@empty}%
+ \else
+ \def\eqe@subleftgutter{-\string\eqemargin}%
+ \def\eqe@lPanel{%
+ \string\parbox[b][\string\eqedepth]{\ss@Argiii}%
+ {\string\let\string\panelGetDimen\string\relax
+ \string\input{panel\thepanel@cnt.cut}%
+ \string\vfill}\string\hfill^^J}%
+ \def\eqe@rPanel{\@empty}%
+ \fi
+ \else
+ \ifeq@solutionsafter
+ \def\eqe@lPanel{\@empty}%
+ \def\eqe@rPanel{%
+ \hfill\parbox[b][\eqedepth][t]{\ss@Argiii}
+ {\let\panelGetDimen\relax
+ \hfill\input{panel\thepanel@cnt.cut}\vfill}}%
+ \else
+ \let\eqe@subleftgutter\@empty
+ \def\eqe@lPanel{\@empty}%
+ \def\eqe@rPanel{%
+ \string\hfill\string\parbox[b][\string\eqedepth]%
+ {\ss@Argiii}{\string\endgraf%
+ \string\noindent\string\hfill%
+ \string\let\string\panelGetDimen\string\relax
+ \string\input{panel\thepanel@cnt.cut}%
+ \string\vfill}}%
+ \fi
+ \fi
+ \let\verbatim@out\ex@solns
+ \par\ifeq@solutionsafter\smallskip\fi
+ \ifx\solutionparshape\@empty\else
+ \advance\linewidth-\leadinIndentPrtSep\fi %%dps
+ \let\solutionparshape\@empty
+ \noindent\minipage{\linewidth}%
+ \if\ss@Argi l\noindent\parbox[b][\eqedepth][t]{\ss@Argiii}%
+ {\vfill}\hfill\fi
+ \minipage[b][\eqedepth][t]{\mp@Width}%
+ {\lccode`C=`\%\lowercase{\eqe@IW{%
+ \string\def\string\panelgap{\panelgap}%
+ \string\setlength{\string\panelwidth}{\ss@Argiii}%
+ \string\def\string\eqedepth
+ {\ifeq@nosolutions\ss@Argii\else\ss@Argii\fi}C}}}%
+ {\lccode`C=`\%\lowercase{\eqe@IW{%
+ \string\strut\string\noindent%
+ \string\hbox\space to\string\linewidth\bgroup^^J%
+ \eqe@lPanel\string\minipage[b][\string\eqedepth][t]%
+ {\string\linewidth\eqe@subleftgutter%
+ -\string\panelwidth-\string\panelgap}C
+ }}}%
+ \ifeq@solutionsafter
+ \noindent\strut\hbox to\linewidth\bgroup
+ \eqe@lPanel
+ \minipage[b][\eqedepth][t]{\linewidth-\ss@Argiii-\panelgap}%
+ \def\solutionsafterSkip{}%
+ \fi
+ \ifx\soln@keys@nLines\@empty
+ \edef\passedss@Argii{\ss@Argii}\else
+ \edef\passedss@Argii{\ss@Argii,nLines=\soln@keys@nLines}\fi
+ \if\ss@Argi l\fillerLinesAlignDef\fi % dpsj10
+ \ifanswerkey % dpsj10
+ \gdef\p@ssToFLs{\let\eq@insertverticalspace\eqe@NO
+ \@eqlinedfillerfalse}\fi % dpsj10
+ \eqe@flextendedfalse
+ \expandafter\@sssolution\expandafter[\passedss@Argii]%
+}{%
+ \eqe@IW{\string\endminipage\eqe@rPanel\egroup}%
+ \ifeq@solutionsafter\endminipage\eqe@rPanel\egroup\fi
+ \end@sssolution
+ \endminipage\endminipage
+}
+\renewcommand{\paragraph}
+ {\@startsection{paragraph}{4}{0pt}{12pt}{-3pt}{\bfseries}}
+\newcommand{\defaultInstructions}[1]{\def\eq@default@Instructions{#1}}
+\defaultInstructions{Instructions.}
+\newcommand{\beforeInstrSkip}{1ex}
+\newcommand{\afterInstrSkip}{-0em}
+\newcommand\hInstrSpace{\ }
+\newcommand\styleInstr{\bfseries}
+\newenvironment{instructions}[1][\eq@default@Instructions]{%
+ \@ifundefined{\thisexamlabel total}{\let\eq@nosummarytotals\eqe@YES}
+ {\ifnum\summaryPointTotal=0 \let\eq@nosummarytotals\eqe@YES\fi}%
+ \expandafter\def\expandafter\eq@argi\expandafter{#1}%
+ \def\hsi{\hInstrSpace}%
+ \@startsection{paragraph}{4}{\z@}%
+ {\beforeInstrSkip\space\@plus1ex \@minus.2ex}%
+ {\afterInstrSkip}{\normalfont\normalsize\styleInstr}*%
+ {\textcolor{\@instructionsColor}{#1}\normalcolor%
+ \ifx\eq@nosummarytotals\eqe@YES\else\ifx\eq@argi\@empty\else\hsi\fi
+ {\normalfont\summaryTotalsTxt}\hsi\fi}\hskip-\lastskip
+ \ifx\eq@nosummarytotals\eqe@YES\ifx\eq@argi\@empty\else\hsi\fi\fi
+ \normalfont\normalsize\ignorespaces
+}{\par\vskip\beforeInstrSkip\relax}
+\newcommand\summaryPointTotal{\csname\thisexamlabel total\endcsname}
+\newcommand\summaryTotalsTxt{($\eqe@ptsFmt{\summaryPointTotal}\,\text{%
+ \@ifundefined{\thisexamlabel total}{\eqpointsLabel}%
+ {\ifnum\summaryPointTotal=1\relax\eqpointLabel\else
+ \eqpointsLabel\fi}}$)}
+\newcommand{\nQuesInExam}[1][\thisexamlabel]{%
+ \def\eqe@argi{#1}%
+ \ifx\thisexamlabel\@empty\ifx\eqe@argi\thisexamlabel
+ \PackageError{eqexam}{The optional argument for
+ \string\nQuesInExam\MessageBreak must be specified}{}\fi\fi
+ \csname#1nQuestions\endcsname}
+\ifx\hyper@anchor\@undefined\else
+ \renewcommand\theHeqquestionnoi
+ {\curr@quiz.\theeqquestionnoi\eqe@fpmrk}
+ \renewcommand\theHquizno{%
+ \if\probstar*\curr@quiz.%
+ \theeqquestionnoi.part\thepartno.\arabic{quizno}%
+ \else
+ \curr@quiz.%
+ \theeqquestionnoi.\arabic{quizno}%
+ \fi
+ }
+ \renewcommand\theHpartno{\curr@quiz.%
+ \theeqquestionnoi.part\thepartno}
+\fi
+\newcommand{\beforeCommentSkip}{1.25ex}
+\newcommand{\afterCommentSkip}{-1ex}
+\newcommand\hCommSpace{\ }
+\newcommand\styleComm{\bfseries}
+\newenvironment{eqComments}[1][\strut]{\removelastskip
+ \def\eqe@argi{#1}\def\eqe@Strut{\strut}\def\hsc{\styleComm}%
+ \@startsection{paragraph}{4}{\z@}%
+ {\beforeCommentSkip\space\@plus1ex \@minus.2ex}%
+ {\afterCommentSkip}{\normalfont\normalsize\styleComm}*%
+ {\textcolor{\@eqCommentsColor}{#1}}%
+ \ifx\eqe@argi\eqe@Strut\hskip\afterCommentSkip
+ \else\ifx\eqe@argi\@empty\hskip\afterCommentSkip\else
+ \hsc\strut\fi\fi\normalfont\normalsize
+ \color{\@eqCommentsColorBody}\ignorespaces
+}{\par\vskip\beforeCommentSkip\space\@plus1ex \@minus.2ex}
+\let\tb@beginexam@code\relax
+\def\partialspillovertotals{0}
+\def\exambegdef
+{%
+ \csname\thisexamlabel pagemark\endcsname
+ \@ifundefined{partialtotalpg}{}{%
+ \ifnum\partialtotalpg=\arabic{page}%
+ {\count0=\partialspillovertotals
+ \advance\count0by\partialtotaleoe
+ \xdef\partialspillovertotals{\the\count0}%
+ \eqe@IWO\@auxout{\string\csarg\string\gdef
+ {Page\partialtotalpg spilltotal}{\partialtotaleoe}}%
+ }%
+ \fi
+ }%
+ \csarg\ifx{\thisexamlabel pageno}\relax
+ \else
+ \csarg\ifx{pagenofirstprob\thisexamlabel}\relax
+ \else
+ \csarg\ifnum{\thisexamlabel pageno}
+ < \@nameuse{pagenofirstprob\thisexamlabel}%
+ \else
+ \csarg\ifx{\thisexamlabel pagemark}\relax
+ \else
+ \ifnum\value{page}=%
+ \csname\thisexamlabel pageno\endcsname
+ \eqe@IWO\@auxout{\string\csarg\string\gdef
+ {\thisexamlabel pagemark}{\string\newpage}}%
+ \fi
+ \fi
+ \fi
+ \fi
+ \fi
+ \setcounter{eqquestionnoi}{0}\setcounter{eqpointvalue}{0}%
+ \setcounter{eqpointsofar}{0}\setcounter{eqpointsthispage}{0}%
+ \setcounter{eq@count}{0}%
+ \writeBeginEqeQuestions
+ \label{\thisexamlabel PageBegin}%
+ \eqe@IWO\@auxout{\string\csarg\string\gdef
+ {\thisexamlabel pageno}{\thepage}}%
+ \ifeqfortextbook
+ \global\examenvtrue\tb@beginexam@code
+ \fi
+}
+\def\tb@insmargmark{\ifisinstred\ifismarginans
+ \insMidMarg{\mark{}}\fi\fi}
+\def\eqe@adjForSepRule{\if\eq@parttotals\eqe@YES
+ \eq@pointboxtotalheight\halfHtPtBox\relax
+ \advance\eq@pointboxtotalheight\dpPtBox\relax
+ \advance\eq@pointboxtotalheight\pointsmarginparpush
+ \vspace*{\eq@pointboxtotalheight}\fi}
+\def\eqe@afterexamsepcode{%
+ \if\eq@parttotals\eqe@YES
+ \@actionsAtPageBreak{\global\let\@spacetobreak1}%
+ {\global\let\@spacetobreak0}%
+ \ifx\@spacetobreak0\relax
+ \bgroup\@tempdima=\pagetotal
+ \advance\@tempdima\eq@pointboxtotalheight
+ \ifdim\@tempdima>\pagegoal\aftergroup\newpage
+ \else\ifnum\arabic{eq@count}>0\relax
+ \removelastskip\vskip6pt\kern0pt
+ \if\@reportpoints\eqe@One\else\@checkSpacing{0}\fi
+ \textcolor{\endexamtotal@color}%
+ {\eqeomarginbox{\arabic{eq@count}}{0}}\fi
+ \ifx\eqx@separationrule\eqe@YES
+ \separationrule\eqe@adjForSepRule\fi
+ \fi\egroup
+ \fi
+ \else\ifx\eqx@separationrule\eqe@YES
+ \separationrule\eqe@adjForSepRule\fi
+ \fi
+}
+\def\examenddef
+{%
+ \global\let\partialtotaleoe\relax
+ \global\let\partialtotalpg\relax
+ \global\let\afterexamsepcode\relax
+ \csarg\ifx{NumberOfParts}\relax
+ \else
+ \ifnum\value{eq@numparts}<\NumberOfParts
+ \setcounter{eq@count}{\value{eqpointvalue}}%
+ \addtocounter{eq@count}{-\value{eqpointsofar}}%
+ \xdef\partialtotaleoe{\arabic{eq@count}}%
+ \xdef\partialtotalpg{\arabic{page}}%
+ \global\let\afterexamsepcode\eqe@afterexamsepcode
+ \fi
+ \fi
+ \ifeqfortextbook\global\examenvfalse\fi
+ \writeEndEqeQuestions
+ \writetotalstoaux
+ \addtocounter{page}{-1}%
+ \writelastpage[\thisexamlabel]\addtocounter{page}{1}%
+ \ifeqfortextbook\tb@insmargmark\fi
+}
+\def\@actionsAtPageBreak#1#2{%
+ \bgroup\@tempdima\pagegoal\advance\@tempdima-\pagetotal
+ \@tempdimb\@fvsizeskip\vsize
+ \ifdim\@tempdima < \@tempdimb #1\else #2\fi\egroup
+}
+\newcommand{\separationrule}{\makebox[\linewidth-\eqemargin][c]%
+ {\rule{.67\linewidth}{.4pt}}}
+\def\eqe@hspannerPrb{\ }
+\@ifundefined{ifwithinsoldoc}{\newif\ifwithinsoldoc\withinsoldocfalse}{}
+\newcommand{\eqequestopsep}[1]{\def\eqeques@topsep{#1}}
+\providecommand{\eqequesparsep}[1]{\def\eqeques@parsep{#1}}
+\newcommand{\eqequesitemsep}[1]{\def\eqeques@itemsep{#1}}
+\newcommand{\eqequeslistparindent}[1]{\def\eqeques@listparindent{#1}}
+\eqequestopsep{0pt}
+\eqequesparsep{0pt}
+\eqequesitemsep{0pt}
+\eqequeslistparindent{0pt}
+\newif\iffirstitem
+\def\eqeSolnItemMngt{\iffirstitem\global\firstitemfalse
+ \let\eqe@next\@empty\else\let\eqe@next\item\fi\eqe@next\relax}
+\newenvironment{eqequestions}{%
+ \begin{list}{}{%
+ \ifwithinsoldoc\let\solnItemMngt\eqeSolnItemMngt\fi
+ \setlength{\labelwidth}{\eqemargin}%
+ \setlength{\parsep}{\eqeques@parsep}%
+ \setlength{\itemsep}{\eqeques@itemsep}%
+ \setlength{\topsep}{\eqeques@topsep}%
+ \setlength{\itemindent}{0pt}%
+ \setlength{\listparindent}{\eqeques@listparindent}%dps%
+ \ifwithinsoldoc\settowidth{\labelsep}{\eqe@hspannerSoln}\else
+ \settowidth{\labelsep}{\eqe@hspannerPrb}\fi
+ \setlength{\leftmargin}{\labelwidth}%
+ }\ifwithinsoldoc\global\firstitemtrue\fi\item\relax}{\end{list}}
+\def\setDefaultfvsizeskip#1{\def\default@fvsizeskip{#1}%
+ \def\@fvsizeskip{#1}}
+\def\default@fvsizeskip{.3}
+\edef\@fvsizeskip{\default@fvsizeskip}
+\newcommand{\fvsizeskip}[1]{\def\@fvsizeskip{#1}}
+\def\autoExamName{exam\the\value{eq@numparts}}
+\def\nNumberOfP@rts{\csname NumberOfParts\endcsname}
+\abovesqskip{}
+\let\eqeWrtExamTitleToSolns\eqe@YES
+\def\wrtExamTitleInSolns{\let\eqeWrtExamTitleToSolns\eqe@YES}
+\def\noExamTitleInSolns{\let\eqeWrtExamTitleToSolns\eqe@NO}
+\let\thisexamlabel\@empty
+\let\isInExamEnv\eqe@NO
+\newif \ifDoNotRecordThisExam \DoNotRecordThisExamfalse % dpsf02
+\def\RecordThisExamOff{\DoNotRecordThisExamtrue} % dpsf02
+\def\bIFFalseWrtSolns{\writeT@SolnFile{\protect\iffalse^^J}}
+\def\eIFFalseWrtSolns{\writeT@SolnFile{\protect\fi^^J}}
+\newenvironment{exam}[2][]
+{%
+ \ifDoNotRecordThisExam % dpsf02
+ \expandafter\bIFFalseWrtSolns\fi
+ \makeRoomForProb{\@fvsizeskip\textheight}{0}%
+ \let\isInExamEnv\eqe@YES
+ \stepcounter{eq@numparts}%
+ \def\eqexamargii{#2}\ifx\eqexamargii\@empty
+ \edef\eqexamargii{\autoExamName}\fi
+ \xdef\thisexamlabel{\eqexamargii}\xdef\curr@quiz{\eqexamargii}%
+ \def\eqexamargi{#1}\ifx\eqexamargi\@empty
+ \edef\eqexamargi{\eqexamargii}\fi
+ \expandafter\gdef\expandafter\thisUFexamlabel
+ \expandafter{\eqexamargi}%
+ \edef\eq@tmp{\the\partNames\string\\{\eqexamargii}}%
+ \global\partNames=\expandafter{\eq@tmp}%
+ \csarg\ifx{NumberOfParts}\relax\else
+\ifx\eqeWrtExamTitleToSolns\eqe@YES
+ \ifnum\nNumberOfP@rts=1\relax\else
+ \def\eqe@argi{#1}\ifx\eqe@argi\@empty
+ \eqe@writetoSolns{\eqexamargii}\eqe@writetoAux{\string
+ \csarg\string\gdef{userFriendly\eqexamargii}{\eqexamargii}}
+ \else
+ \eqe@writetoSolns{#1}\eqe@writetoAux{\string
+ \csarg\string\gdef{userFriendly#2}{#1}}
+ \fi
+ \fi\fi
+\fi
+ \exambegdef
+ \edef\temp@Exp{\noexpand\shortquiz\sqstar[\eqexamargii]}\temp@Exp
+}{%
+ \examenddef
+ \vskip\eqeques@parsep\relax\kern0pt %dps88
+ \endshortquiz
+ \aftergroup\afterexamsepcode
+ \par\penalty-100\vskip0pt
+ \ifDoNotRecordThisExam % dpsf02
+ \expandafter\eIFFalseWrtSolns\fi
+ \global\DoNotRecordThisExamfalse
+}
+\newcommand{\EQEcalculateAllTotals}{%
+ \begingroup
+ \count\z@=0\relax
+ \def\\##1{\csarg\ifx{##1total}\relax\else
+ \advance\count\z@\csname##1total\endcsname
+ \fi}\csname thePartNames\endcsname
+ \xdef\eqeGrandTotal{\the\count\z@}%
+ \ifnum\eqeGrandTotal=0 \else
+ \def\\##1{\eqe@calc@percent{##1}}%
+ \csname thePartNames\endcsname\fi
+ \endgroup
+}
+\newcommand{\nPctDecPts}{1}
+\def\eqe@calc@percent#1{\@ifundefined{#1total}{%
+ \csarg\gdef{#1percent}{??}}{%
+ \csarg\ifx{FPdiv}\relax
+ \count2=\tot@lForPart{#1}%
+ \edef\expGT{\csname eqeGrandTotal\endcsname}%
+ \multiply\count2by100\relax\divide\count2by\expGT\relax
+ \csarg\xdef{#1percent}{\the\count2 }\else
+ \FPdiv{\eqe@pForPart}{\csname#1total\endcsname}%
+ {\csname eqeGrandTotal\endcsname}%
+ \FPmul{\eqe@pForPart}{\eqe@pForPart}{100}%
+ \FPround{\eqe@pForPart}{\eqe@pForPart}{\nPctDecPts}%
+ \csarg\xdef{#1percent}{\eqe@pForPart}\fi
+ }%
+}
+\def\writetotalstoaux{\eqe@IWO\@auxout{\string
+ \csarg\string\gdef{\thisexamlabel total}{\theeqpointvalue}}%
+ \eqe@IWO\@auxout{\string\csarg
+ \string\gdef{\thisexamlabel nQuestions}{\theeqquestionnoi}}%
+}
+\newcommand{\writelastpage}[1][]{\def\eqe@argi{#1}%
+ \ifx\eqe@argi\@empty\else\label{#1PageEnd}\fi
+ \eqe@IWO\@auxout{\string\csarg
+ \string\gdef{eqExamLastPage}{\arabic{page}}}%
+}
+\def\exlabel{}
+\def\sqlabel{}
+\def\exsolafter{\textit{Solution}:}
+\def\sqsolafter{\textit{Solution}:}
+\def\exlabelformat{\textbf{%
+ \theeqquestionnoi\eqe@decPointPrb\eqe@hspannerPrb}}
+\def\exlabelformatwp{\exlabelformat}
+\def\exsllabelformat
+ {\string\makebox[0pt][r]{\string\textbf{%
+ \theeqquestionnoi\eqe@decPointPrb\eqe@hspannerSoln}}}
+\def\exsllabelformatwp
+ {\string\makebox[0pt][r]{\string\textbf{%
+ \theeqquestionnoi\eqe@decPointPrb\eqe@hspannerSoln}}%
+ (\thepartno)\eqe@hspannerSoln}
+\ifanswerkey
+ \def\exrtnlabelformat{}
+ \def\exrtnlabelformatwp{}
+ \def\eq@sqslrtnlabel{}
+\else
+ \def\exrtnlabelformat{$\square$}
+ \def\exrtnlabelformatwp{$\square$}
+ \def\eq@sqslrtnlabel{$\square$}
+\fi
+\def\sqslrtnlabel{\eq@sqslrtnlabel}
+\newcommand{\exsectitletext}{Solutions to \webtitle}
+\def\exsectitle{\normalsize\exsectitletext}
+\@ifpackageloaded{exerquiz}{%{Solutions to \websubject}
+ \renewcommand{\exsecrunhead}{}}{\newcommand{\exsecrunhead}{}}
+\def\eq@sqslsectitle{}
+\def\eq@sqslsecrunhead{}
+\def\eq@sqsllabel{{\string\llap{\string\textbf{\theeqquestionnoi.\ }}}}
+\def\eq@sqlabel{}
+\let\include@quizsolutions\relax
+\let\solnhspace\@empty
+\newcommand{\optsFillIn}[1]{\def\eqe@optsFillIn{#1}}
+\let\eqe@optsFillIn\@empty
+\newcommand{\fillin}[3][u]{%
+ \ifx#1u\let\@fillinFmt\underbar
+ \else\ifx#1b\let\@fillinFmt\relax
+ \else\let\@fillinFmt\relax\fi\fi
+ \ifeq@proofing
+ \@fillinFmt{\makebox[#2]{%
+ \strut\hfil\bfseries\color{red}#3\hfil}}%
+ \else
+ \@fillinFmt{\makebox[#2]{\strut\hfil}}%
+ \@ifundefined{@quiz}{}{%
+ \if\eq@online\eqe@YES\relax
+ \ifeq@nosolutions
+ \ifeq@solutionsafter\else
+ \ifx\eq@insertverticalspace\eqe@YES\relax
+ \stepcounter{@cntfillin}%
+ \edef\fieldName{%
+ \if\probstar*eqexam.\curr@quiz.fillin.%
+ \theeqquestionnoi.part\thepartno.%
+ fi\the@cntfillin%
+ \else
+ eqexam.\curr@quiz.fillin.%
+ \theeqquestionnoi.fi\the@cntfillin%
+ \fi
+ }\makebox[0pt][r]{\textField[\BC{}
+ \presets{\eqe@optsFillIn}]{%
+ \fieldName}{#2}{11bp}}%
+ \fi
+ \fi
+ \fi
+ \fi
+ }%
+ \fi\space\ignorespaces}
+\newcommand\defaultTFwidth{30pt}
+\newcommand\TF[2][\defaultTFwidth]{%
+ \def\eqe@next{\fillin{#1}{#2}}%
+ \ifdim\eq@extralabelsep=0pt\relax\else
+ \if\probstar*\relax\if\exerwparts@cols0
+ \def\eqe@next{\makebox[0pt][r]{%
+ \fillin{#1}{#2}}\ignorespaces}%
+ \fi\fi\fi
+\eqe@next}
+\def\fillinWidth#1{%
+ \if\probstar*
+ \settowidth{\eq@tmplengthA}{\normalfont\ }%
+ \addtolength{\eq@tmplengthA}{#1}%
+ \edef\eq@extralabelsep{\the\eq@tmplengthA}%
+ \fi
+}
+\let\fillInFormatDefault\@empty
+\def\eqe@DoWarning#1{\PackageWarning{eqexam}{\string#1\space
+ requires the first argument\MessageBreak of problem* to be <num>ea}}
+\def\eqe@DoNum{\textbf{??}\eqe@DoWarning{\DoNum}}
+\def\eqe@nDoNum{\textbf{??}\eqe@DoWarning{\nDoNum}}
+\let\DoNum\eqe@DoNum
+\let\nDoNum\eqe@nDoNum
+\def\makeDoNum#1{\xdef\nDoNum{#1}%
+ \def\ifc@sewrap{\ifcase#1??\or}%
+ \xdef\DoNum{\expandafter\ifc@sewrap\eqe@wordNums\else
+ \eqe@wordNumbsError\fi}}
+\def\makeOutOfNum#1{\xdef\nOutOfNum{#1}%
+ \def\ifc@sewrap{\ifcase#1??\or}%
+ \xdef\OutOfNum{\expandafter\ifc@sewrap\eqe@wordNums\else
+ \eqe@wordNumbsError\fi}}
+\def\eqe@OutOfNum{\textbf{??}\eqe@DoWarning{\OutOfNum}}
+\def\eqe@nOutOfNum{\textbf{??}\eqe@DoWarning{\nOutOfNum}}
+\let\OutOfNum\eqe@OutOfNum
+\let\nOutOfNum\eqe@nOutOfNum
+\newcommand{\eqe@wordNums}{one\or two\or three\or
+ four\or five\or six\or seven\or eight\or nine\or ten}
+\newcommand{\eqe@wordNumbsError}{\noexpand\PackageError{eqexam}%
+ {Number out of range, 1--10}%
+ {Use a smaller number, or redefine the command
+ \string\eqe@wordNums.}}
+\let\priorPNPAction\relax % dps1
+\let\postPNPAction\relax
+\def\eqe@mkRoomPgBrk{\priorPNPAction\newpage\postPNPAction}
+\def\makeRoomForProb#1#2{\par %\endgraf % dps 11/11/10
+ \bgroup\@nobreakfalse\addpenalty{-500}%
+ \setlength{\@tempdimb}{#1}%
+ \@tempdima \pagegoal \advance \@tempdima -\pagetotal
+ \ifdim \@tempdima<\@tempdimb\ifnum\col@number>\@ne\columnbreak
+ \else\aftergroup\eqe@mkRoomPgBrk\fi\fi\egroup
+ \ifnum\@reportpoints>1
+ \ifx\eqe@prevProbZero\eqe@YES
+ \if\eqe@isPts0\else\vskip-\halfHtPtBox\relax\fi
+ \else
+ \ifl@stDispl@yPoints
+ \if\eqe@isPts0\@checkSpacing{1}\else
+ \if#21 \@checkSpacing{0}\fi
+ \fi\fi
+ \fi
+ \fi
+}
+\newcommand{\emitMessageNearBottom}{\@ifstar
+ {\def\eqe@emnb{\ifnum\col@number>\@ne\columnbreak
+ \else\newpage\fi\insertContAnnot}\eq@emitMessageNearBottom}
+ {\let\eqe@emnb\relax\eq@emitMessageNearBottom}}
+\newcommand{\eq@emitMessageNearBottom}[2][2\wlVspace]{%
+ \eq@@emitMessageNearBottom{#1}{#2}}
+\def\eq@@emitMessageNearBottom#1#2{\par
+ \bgroup\@nobreakfalse\addpenalty{-500}%
+ \setlength{\@tempdimb}{#1}%
+ \@tempdima \pagegoal \advance \@tempdima -\pagetotal
+ \ifdim \@tempdima<\@tempdimb #2 \eqe@emnb
+ \xdef\eq@currProbStartPage{0}\fi\egroup} % dps4
+\newcommand{\getSpaceLeftOnPage}{\par\bgroup
+ \@tempdima \pagegoal \advance \@tempdima -\pagetotal
+ \xdef\amtSpaceLeftOnPage{\the\@tempdima}\egroup}
+\newcommand{\pnpDflt}{\@fvsizeskip\textheight}
+\newcommand{\promoteNewPage}[1][\pnpDflt]{%
+ \makeRoomForProb{#1}{0}}
+\def\pointsmarginparpush{3pt}
+\def\@checkSpacing#1{\bgroup\ifinner\else
+ \@tempdima\lastPageTotal
+ \@tempdimb\pagetotal
+ \ifdim\@tempdima < \@tempdimb
+ \advance\@tempdimb by-\@tempdima
+ \ifdim\@tempdimb < \eq@pointboxtotalheight
+ \if#11%
+ \eq@pointboxtotalheight\halfHtPtBox\relax
+ \advance\eq@pointboxtotalheight\dpPtBox\relax
+ \fi
+ \@tempdima=\eq@pointboxtotalheight
+ \advance\@tempdima\pointsmarginparpush\relax
+ \advance\@tempdima by-\@tempdimb
+ \vspace*{\@tempdima}%
+ \fi
+ \fi\fi
+\egroup}
+\def\@checkSpacingi{\bgroup
+ \@tempdima = \lastPageTotal
+ \@tempdimb = \pagetotal
+ \ifdim\@tempdima < \@tempdimb
+ \advance\@tempdimb by-\@tempdima
+ \eq@pointboxtotalheight\halfHtPtBox\relax
+ \advance\eq@pointboxtotalheight\dpPtBox\relax
+ \ifdim\@tempdimb < \eq@pointboxtotalheight
+ \@tempdima=\eq@pointboxtotalheight
+ \advance\@tempdima\pointsmarginparpush\relax
+ \advance\@tempdima by-\@tempdimb
+ \vspace*{\@tempdima}%
+ \fi
+ \fi
+\egroup}
+\newcommand{\setDefaultnbaselineskip}[1]{\def\default@nbaselineskip{#1}}
+\setDefaultnbaselineskip{6}
+\def\nbaselineskip#1{\def\@nbaselineskip{#1}}
+\def\nbaselineskipReset{\edef\@nbaselineskip{\default@nbaselineskip}}
+\nbaselineskipReset
+\def\eqe@gobbletoend#1\end{}
+\def\eqe@grabarg#1\end{\def\numpoints{#1}}
+\def\eqe@isPts{1}
+\aboveexskip{3pt}\belowexskip{3pt}
+\partstopsep{3pt}\partsitemsep{3pt}\partsparsep{0pt}
+\rowsepDefault{3pt}\partstabcolsep{1.5pt}%
+\partstabtopsep{3pt}\partstabrowsep{3pt}
+\renewcommand\belowexsolnskip{{}}%
+\let\isProbEnv\eqe@NO
+\let\topofprobhook\relax
+\def\eqe@p@gobnxtp@rDef{\@ifnextchar\par{\eqe@p@gobtop@rnext}{}}
+\def\eqe@p@gobtop@rnext#1\par{}
+\def\applyparfixesp{\let\eqe@p@gobnxtp@r\eqe@p@gobnxtp@rDef}
+\def\cancelparfixesp{\let\eqe@p@gobnxtp@r\ignorespaces}
+\newcommand{\problem}[1][]{\lowercase{\def\@rgi{#1}}%
+ \ifx\@rgi\eqe@h
+ \def\hidden@ttr{[#1]}\let\numpoints\@empty\else
+ \let\hidden@ttr\relax\def\numpoints{#1}\fi
+ \problem@cont}
+\newcommand{\problem@cont}[1][]{\let\isProbEnv\eqe@YES
+ \def\@rgi{#1}\ifx\hidden@ttr\relax % assume a number or empty
+ \ifx\@rgi\@empty\else\def\hidden@ttr{[#1]}\fi\fi
+ \if\eqe@isPts0\global\let\eqe@prevProbZero\eqe@YES\else
+ \global\let\eqe@prevProbZero\eqe@NO\fi
+ \global\thereissolutionfalse
+ \def\numpointsEmpty{0}%
+ \ifx\numpoints\@empty\def\numpoints{0}\def\numpointsEmpty{1}%
+ \gdef\eqe@isPts{0}\else\gdef\eqe@isPts{1}\fi
+ \makeRoomForProb{\@nbaselineskip\baselineskip}{\eqe@isPts}%
+ \gdef\probstar{x}\let\afterlabelhskip\@empty
+ \ifx\marginpoints\@empty\else
+ \if\numpointsEmpty\eqe@One\let\marginpoints\@gobbletwo\fi
+ \def\@lti{\let\@isitstar\eqe@One\eqe@grabarg}%
+ \def\@ltii{\let\@isitstar\eqe@Zero\eqe@gobbletoend}%
+ \expandafter\@ifstar\expandafter\@lti
+ \expandafter\@ltii\numpoints\end
+ \if\@isitstar\eqe@One\addtocounter{eqpointvalue}{\numpoints}%
+ \@marktotalvalue
+ \ifdispl@yPoints
+ \def\marginparafterhook{\PTs{\numpoints}\space}\else
+ \def\marginparafterhook{\PTs*{\numpoints}\space}\fi\else
+ \def\marginparpriorhook{\noindent
+ \probvalue{\numpoints}{0}}\fi
+ \fi
+ \setcounter{eq@count}{\value{eqquestionnoi}}%
+ \addtocounter{eq@count}{1}%
+ \ifnum\value{eq@count}=1\relax
+ \eqe@IWO\@auxout{\string
+ \csarg\string\gdef{pagenofirstprob\thisexamlabel}{\thepage}}%
+ \fi
+ \topofprobhook
+ \begin{eqequestions}%
+ \edef\ctrld@exp@exercise{\noexpand
+ \begin{exercise}[eqquestionnoi]\hidden@ttr}%
+ \ctrld@exp@exercise\ignorespaces\eqe@p@gobnxtp@r}
+\def\endproblem{\end{exercise}%
+ \end{eqequestions}%
+ \ifeqlocalversion\ifeqglobalversion
+ \xdef\eqe@tmp{\noexpand\forVersion{\eq@selectedVersion}}%
+ \aftergroup\eqe@tmp
+ \fi\fi
+ \global\eqlocalversionfalse
+ \ifdispl@yPoints\global\l@stDispl@yPointstrue
+ \else\global\l@stDispl@yPointsfalse\fi
+ \global\let\eqe@fpmrk\@empty}
+\newcommand\itemPTsTxt[1]{$\eqe@ptsFmt{#1}\,\text{%
+ \ifnum#1=1\relax\eqptLabel\else\eqptsLabel\fi}$}
+\newcommand\itemPTsEaTxt[1]{$\eqe@ptsFmt{#1}\,\text{%
+ \ifnum#1=1\relax\eqptLabel\else\eqptsLabel\fi\space\eqeachLabel}$}
+\newcommand{\itemPTsFormated}[1]{(#1)}
+\newif\ifObeyPTsStar \ObeyPTsStartrue
+\def\obeyPTsStar{\global\ObeyPTsStartrue}
+\def\ignorePTsStar{\global\ObeyPTsStarfalse}
+\def\PTs{\leavevmode\@ifstar{\@PTs{*}}{\@PTs{x}}}
+\def\@PTs#1#2{%
+ \if\@reportpoints\eqe@Zero\ignorespaces\else
+ \if\eqe@pointsPartsId\eqe@One
+ \addtocounter{eqpointvalue}{#2}\@marktotalvalue
+ \addtocounter{eq@count}{#2}\fi
+ \if#1*\ifObeyPTsStar\ignorespaces\else\expandafter\@gobble\fi
+ \else
+ \eqe@movePTs{\itemPTsFormated{\itemPTsTxt{#2}}}\fi
+ \fi
+}
+\def\eqe@movePTs#1{#1}
+\let\auto\relax
+\def\isItD@{\@ifnextchar\Do{\let\yest@D@\eqe@YES\y@st@Do}
+ {\let\yest@D@\eqe@NO\@gobblet@end}}
+\let\yest@D@\eqe@NO
+\let\D@Num\@empty
+\def\y@st@Do\Do#1\end{\gdef\D@Num{#1}}
+\def\@gobblet@end#1\end{}
+\def\is@uto#1\auto#2\@nil{\def\eqe@argi{#1}\def\eqe@argii{#2}%
+ \ifx\eqe@argii\@empty\let\isit@uto\eqe@Zero\else
+ \let\isit@uto\eqe@One\fi
+}
+\let\eqe@pointsPartsId\relax
+\def\leadinitemWarningStar{\PackageWarning{eqexam}
+ {Using the star (*) in front of the points\MessageBreak
+ designator is not allowed when there is a
+ \MessageBreak\string\leadinitem}}
+\def\tableadinWarningStar{\PackageWarning{eqexam}
+ {Using the star (*) in front of the points\MessageBreak
+ designator is not allowed when there is a
+ \MessageBreak\string\tableadin}}
+\let\isProbStarEnv\eqe@NO
+\let\topofprobstarhook\relax
+\def\eqe@ps@gobtop@r#1\par{\eqe@isle@dinnext}
+\def\eqe@isle@dinnext{\@ifnextchar\leadinitem{}{\vskip-\baselineskip}}
+\def\restorele@dinpfixDef{\@ifnextchar\par{\eqe@ps@gobtop@r}{}}
+\let\eqe@ps@gobnxtpar\restorele@dinfixDef
+\def\applyleadinfix{\let\eqe@gobnxtpar\restorele@dinpfixDef}
+\def\cancelleadinfix{\let\eqe@gobnxtpar\relax}
+\def\applyparfixes{\PackageInfo{eqexam}
+ {Applying paragraph fixes to problem\MessageBreak
+ and problem* environments}\applyparfixesp\applyleadinfix}
+\def\cancelparfixes{\PackageInfo{eqexam}
+ {Cancelling paragraph fixes to problem\MessageBreak
+ and problem* environments}\cancelparfixesp
+ \cancelleadinfix}
+\cancelparfixesp\cancelleadinfix
+\let\neutralizeparfixes\cancelparfixes
+\csarg\def{problem*}{\let\isProbEnv\eqe@YES
+ \let\isProbStarEnv\eqe@YES
+ \global\thereissolutionfalse
+ \@ifnextchar[{\pr@bl@m@star}{\pr@bl@m@star[]}}
+\def\pr@bl@m@star[#1]{%
+ \@ifnextchar[{\pr@blem@star{#1}}{\pr@blem@star{#1}[]}}
+\def\pr@blem@star#1[#2]{%
+ \if\eqe@isPts0\global\let\eqe@prevProbZero\eqe@YES\else
+ \global\let\eqe@prevProbZero\eqe@NO\fi
+ \def\numpoints{#1}\ifx\numpoints\@empty
+ \gdef\eqe@isPts{0}\else\gdef\eqe@isPts{1}\fi
+ \makeRoomForProb{\@nbaselineskip\baselineskip}{\eqe@isPts}%
+ \let\DoNum\eqe@DoNum\let\nDoNum\eqe@nDoNum
+ \let\OutOfNum\eqe@OutOfNum\let\nOutOfNum\eqe@nOutOfNum
+ \gdef\probstar{*}%
+ \gdef\pr@b@secondarg{#2}\setcounter{eq@count}{0}%
+ \let\afterlabelhskip\@empty
+ \global\let\probpointseach\@empty\def\numpoints{#1}%
+ \@ifstar{\let\@isitstar\eqe@One\eqe@grabarg}%
+ {\let\@isitstar\eqe@Zero\eqe@gobbletoend}#1\end
+ \if\@isitstar\eqe@One
+ \@tempcnta=\theeqquestionnoi\relax
+ \advance\@tempcnta1\relax
+ \@ifundefined{leadinitem\thisexamlabel-\the\@tempcnta}{}
+ {\leadinitemWarningStar\let\@isitstar\eqe@Zero}%
+ \@ifundefined{tableadin\thisexamlabel-\the\@tempcnta}{}
+ {\tableadinWarningStar\let\@isitstar\eqe@Zero}%
+ \fi
+ \expandafter\is@uto\numpoints\auto\@nil
+ \if\isit@uto\eqe@One\let\eqe@pointsPartsId\eqe@One
+ \global\let\probpointseach\relax
+ \def\eqe@next{\autocalcparts}%
+ \else
+ \ifx\pr@b@secondarg\@empty\else
+ \let\eqe@pointsPartsId\eqe@Four
+ \isItD@#2\end\fi
+ \def\eqe@next{\manualcalcparts{\numpoints}}%
+ \fi\eqe@next
+ \let\leadinitem\eqe@leadinitem
+ \let\tableadin\eqe@tableadin
+ \topofprobstarhook
+ \ifeqfortextbook
+ \writeT@SolnFile{\protect\global
+ \protect\frstProbNumShownfalse}\fi
+ \begin{eqequestions}%
+ \begin{exercise}[eqquestionnoi]*\eqe@gobnxtpar}%
+\def\ftb@endprobstarCks{%
+ \ifWithinANSGrp
+ \PackageError{eqexam}{\string\bGrpANS\space is still open}
+ {You need to match it with an \string\bGrpANS,
+ or remove it.}%
+ \fi
+}
+\csarg\def{endproblem*}{%
+ \eqe@IWO\@auxout{\string\csarg\string
+ \gdef{nPartsThisProb\thisexamlabel.\theeqquestionnoi}%
+ {\arabic{partno}}}%
+ \ifx\probpointseach\@empty\else
+ \ifx\probpointseach\auto
+ \eqe@IWO\@auxout{\string\csarg\string
+ \gdef{prob\thisexamlabel.\theeqquestionnoi}%
+ {\theeq@count}}%
+ \else
+ \setcounter{eq@count}{\value{partno}}%
+ \ifx\pr@b@secondarg\@empty\else
+ \bgroup\toks0=\expandafter{\pr@b@secondarg}%
+ \expandafter\isItD@\the\toks0 \end
+ \ifx\yest@D@\eqe@YES\ifx\eqe@pointsEach\eqe@YES
+ \eqe@IWO\@auxout{\string
+ \csarg\string\gdef{DoNumThisProb\thisexamlabel.%
+ \theeqquestionnoi}{\D@Num}}%
+ \@tempcnta = \value{eq@count}%
+ \advance\@tempcnta -\D@Num
+ \global\advance\value{eq@count}-\@tempcnta
+ \@tempcnta=\value{partno}%
+ \advance\@tempcnta -\D@Num
+ \multiply\@tempcnta by\argi
+ \addtocounter{eqpointvalue}{-\@tempcnta}%
+ \fi\fi
+ \egroup
+ \fi
+ \multiply\value{eq@count}\argi
+ \eqe@IWO\@auxout{\string\csarg\string
+ \gdef{prob\thisexamlabel.\theeqquestionnoi}{\theeq@count}}%
+ \fi\fi
+ \end{exercise}%
+ \end{eqequestions}%
+ \ifeqfortextbook\ftb@endprobstarCks\fi
+ \ifeqlocalversion\ifeqglobalversion
+ \xdef\eqe@tmp{\noexpand\forVersion{\eq@selectedVersion}}%
+ \aftergroup\eqe@tmp
+ \fi\fi
+ \global\eqlocalversionfalse
+ \@marktotalvalue
+ \ifdispl@yPoints\global\l@stDispl@yPointstrue
+ \else\global\l@stDispl@yPointsfalse\fi
+}
+\let\solutionparshape\@empty
+\def\eqe@leadinitem{%
+ \ifx\solutionparshape\@empty
+ \def\eqe@next{\eqe@@leadinitem}%
+ \ifeqfortextbook\writeT@SolnFile{\protect\bpartsmrk}\fi
+ \else
+ \def\eqe@next{\PackageError{eqexam}
+ {The \string\leadinitem\space command may
+ only be used\MessageBreak once per problem* environment}
+ {Remove all but one of the \string\leadinitem\space
+ commands.}}%
+ \fi\eqe@next
+}
+\newif\ifisleadin \isleadinfalse
+\let\isparshapeExpanded\eqe@NO
+\def\eqe@@leadinitem{\if\itsforleadinitem\eqe@NO
+ \setcounter{partno}{0}\fi\refstepcounter{partno}%
+ \eq@initializeContAnnot
+ \isleadintrue\let\isitleadin\eqe@YES
+ \eqe@writetoAux{\string\csarg\string
+ \gdef{leadinitem\thisexamlabel-\theeqquestionnoi}{}}%
+ \settowidth{\eq@tmpdima}{\normalfont\parts@indent\eqe@prtsepPrb}%
+ \xdef\leadinIndentPrtSep{\the\eq@tmpdima}%
+ \setlength{\eq@tmpdima}{\eqemargin+\eq@tmpdima}%
+ \xdef\leadinIndent{\the\eq@tmpdima}%
+ \settowidth{\eq@tmplength}{\parts@indent}%
+ \edef\partsleadinIndent{\the\eq@tmplength}%
+ \setlength{\eq@tmplength}{\linewidth-\leadinIndentPrtSep}%
+ \edef\leadinIndentLength{\the\eq@tmplength}%
+\@ifundefined{@listii@SAVE}{\global\let\@listii@SAVE\@listii}{}%
+ \expandafter\def\expandafter\@listii\expandafter{\@listii@SAVE
+ \advance\leftmarginii\leadinIndentPrtSep\relax
+ \leftmargin\leftmarginii \labelwidth\leftmarginii
+ \advance\labelwidth-\labelsep
+ }%
+ \parshape=2 \eqemargin \linewidth \leadinIndent \leadinIndentLength
+ \xdef\solutionparshape{%\noexpand\linewidth\leadinIndentLength
+ \noexpand\parshape=1 \leadinIndent\space\leadinIndentLength}%
+ \global\let\isparshapeExpanded\eqe@NO
+ \everypar{\solutionparshape
+ \global\let\isparshapeExpanded\eqe@YES\everypar{}}%
+ \let\eq@item\eq@leadin@item\eqp@rtc@lcm@rk
+ \def\currhideopt{x}\eq@hidesolutionfalse\eq@nolinkfalse
+ \@ifnextchar[{\@ckhide}{\eq@item}%
+}
+\def\eq@leadin@item{\eq@ckglobalhide\ifeq@hidesolution\else
+ \global\let\eqExerSolnHeader\eq@@writeexheaderlist\fi
+ \ifeq@nosolutions\eq@nolinktrue\fi
+ \ifeq@solutionsafter\eq@nolinktrue\fi
+ \unskip\noindent\makebox[\partsleadinIndent]{\eqexlisttabheader}%
+ \eqe@prtsepPrb\ignorespaces
+}
+\def\eqe@tableadin{\@tableadinitemtrue\eqe@writetoAux{\protect
+ \csarg\protect\gdef{tableadin\thisexamlabel-\theeqquestionnoi}{}}%
+}
+\newcommand\pushProblem{\xdef\nlastItem{\arabic{partno}}\end{parts}}
+\newcommand\popProblem[1][]{%
+ \def\@argi{#1}\ifx\@argi\@empty
+ \def\eqe@bParts{\begin{parts}}\else
+ \def\eqe@bParts{\begin{parts}[#1]}\fi
+ \eqe@bParts\setcounter{partno}{\nlastItem}}
+\def\lastPageTotal{0pt}
+\def\marginparafterhook{\xdef\lastPageTotal{\the\pagetotal}}
+\def\prob@Arg#1ea#2\end{\def\argi{#1}\def\argii{#2}}
+\let\eqe@pointsEach\eqe@NO
+\def\manualcalcparts#1{%
+ \expandafter\prob@Arg#1ea\end
+ \ifx\argii\@empty\edef\numpoints{#1}%
+ \let\eqe@pointsEach\eqe@NO
+ \let\eqe@pointsPartsId\eqe@Zero
+ \else
+ \gdef\probpointseach{x}\let\eqe@pointsPartsId\eqe@Two
+ \let\eqe@pointsEach\eqe@YES
+ \setcounter{eq@count}{\value{eqquestionnoi}}%
+ \addtocounter{eq@count}{1}\csarg
+ \ifx{prob\thisexamlabel.\theeq@count}\relax
+ \def\numpoints{\argi}\else
+ \def\numpoints{\expandafter
+ \csname prob\thisexamlabel.\theeq@count\endcsname}%
+ \fi
+ \ifx\yest@D@\eqe@YES
+ \setcounter{eq@count}{\value{eqquestionnoi}}%
+ \addtocounter{eq@count}{1}%
+ \@ifundefined{nPartsThisProb\thisexamlabel.\theeq@count}
+ {\makeOutOfNum{0}\makeDoNum{0}}{%
+ \expandafter\makeOutOfNum{%
+ \csname nPartsThisProb\thisexamlabel.%
+ \theeq@count\endcsname}%
+ \expandafter\makeDoNum{%
+ \csname DoNumThisProb\thisexamlabel.%
+ \theeq@count\endcsname}}%
+ \fi
+ \fi
+ \ifx\marginpoints\@empty
+ \else
+ \ifx\argi\@empty
+ \let\marginpoints\@empty
+ \else
+ \ifx\argii\@empty
+ \ifx\marginpoints\@empty\else
+ \if\@isitstar\eqe@One
+ \addtocounter{eqpointvalue}{#1}%
+ \@marktotalvalue\ifdispl@yPoints
+ \def\marginparafterhook{\itemPTsFormated{%
+ \itemPTsTxt{\numpoints}}\space}\fi
+ \else
+ \def\marginparpriorhook{\noindent
+ \probvalue{\numpoints}{0}}%
+ \fi
+ \fi
+ \else
+ \ifx\marginpoints\@empty\else
+ \if\@isitstar\eqe@One\ifdispl@yPoints
+ \def\marginparafterhook{%
+ \itemPTsFormated{\itemPTsEaTxt{\argi}}\space}\fi
+ \else
+ \ifdispl@yPoints
+ \def\marginparpriorhook{\noindent
+ \marginpoints{\numpoints}{\argi}}\fi
+ \fi
+ \edef\eqp@rtc@lcm@rk{\noexpand
+ \addtocounter{eqpointvalue}{\argi}%
+ \noexpand\@marktotalvalue}%
+ \fi
+ \fi
+ \fi
+ \fi
+ \ifnum\value{eq@count}=1\relax
+ \eqe@IWO\@auxout{\string\csarg\string
+ \gdef{pagenofirstprob\thisexamlabel}{\thepage}}%
+ \fi
+}
+\def\acp@mpah{\itemPTsFormated{\itemPTsTxt{\numpoints}}\space}
+\def\acp@mpph{\noindent\marginpoints{\numpoints}{0}}
+\def\autocalcparts{%
+ \setcounter{eq@count}{\value{eqquestionnoi}}%
+ \addtocounter{eq@count}{1}%
+ \csarg\ifx{prob\thisexamlabel.\theeq@count}\relax
+ \def\numpoints{0}% assume zero points until we get the total
+ \else
+ \edef\numpoints{\@nameuse{prob\thisexamlabel.\theeq@count}}%
+ \fi
+ \ifx\marginpoints\@empty\else
+ \ifdispl@yPoints
+ \if\@isitstar\eqe@One
+ \def\marginparafterhook{\acp@mpah}\else
+ \def\marginparpriorhook{\acp@mpph}\fi
+ \fi
+ \fi
+ \setcounter{eq@count}{0}%
+}
+\let\eqe@fpmrk\@empty
+\newcommand{\forproblem}[1]{\def\eqe@fpmrk{-\the@exno}%
+ \setcounter{eqquestionnoi}{#1 - 1}}
+\newcommand{\foritem}[2][]{%
+ \setcounter{partno}{0}\def\@rgi{#1}\ifx\@rgi\@empty
+ \def\eqe@nextitem{\item}\else
+ \def\eqe@nextitem{\item[#1]}\fi
+ \foritem@cont{#2}}
+\newcommand{\forleadinitem}[2][]{%
+ \setcounter{partno}{0}\def\@rgi{#1}\ifx\@rgi\@empty
+ \def\eqe@nextitem{\leadinitem}\else
+ \def\eqe@nextitem{\leadinitem[#1]}\fi
+ \foritem@cont{#2}}
+\def\foritem@cont#1{\ifuseNumForParts
+ \edef\fliPartNo{#1}\setcounter{partno}{#1-1}\else
+ \lowercase{\def\eq@selectedItem{#1}}%
+ \let\eq@initLoop\eqe@NO
+ \loop
+ \stepcounter{partno}\expandafter
+ \if\alph{partno}\eq@selectedItem
+ \let\eq@initLoop\eqe@YES\fi
+ \ifx\eq@initLoop\eqe@NO\repeat
+ \edef\fliPartNo{\the\c@partno}%
+ \addtocounter{partno}{-1}\fi\let\itsforleadinitem\eqe@YES
+ \eqe@nextitem}
+\newcommand{\annotContStr}{%
+ \textbf{Problem~{\eqeCurrProb} continued\strut}}
+\newcommand{\acvspace}[1]{\def\ic@vspace{#1}\setlength\iacvspace{#1}}
+\newlength\iacvspace
+\newcommand{\ic@vspacedefault}{1in} % changed .25in to 1in 2012/12/04
+\newcommand{\resetacvspace}{\setlength\iacvspace{\ic@vspacedefault}}
+\resetacvspace
+\def\@nnotContStrSkip{\vskip3pt}
+\newcommand{\eqe@insertContAnnot}[1][\iacvspace]{\promoteNewPage[#1]%
+ \ifnum\arabic{page}>\eq@currProbStartPage
+ \xdef\eq@currProbStartPage{\arabic{page}}%
+ {\settowidth{\eq@tmplength}{\parts@indent\eqe@prtsepPrb}%
+ \xdef\eqe@partsIndent{\the\eq@tmplength}}%
+ \ifwithinparts
+ \@ifundefined{eq@item@latex}{\item[]\hspace*{-\eqemargin}%
+ \ifx\solutionparshape\@empty\else\hspace*{-\eqe@partsIndent}\fi}
+ {\eq@item@latex[]\hspace*{-\eqemargin}%
+ \hspace{-\eqe@partsIndent}}\else
+ \hspace*{-\eqemargin}\fi
+ \annotContStr\@nnotContStrSkip % dpsj20
+ \fi
+}
+\edef\eq@currProbStartPage{\arabic{page}}
+\newif\ifcont@nnot \cont@nnotfalse
+\newcommand{\turnContAnnotOff}{\global\cont@nnotfalse
+ \global\let\eq@insertContAnnot\relax}
+\newcommand{\turnContAnnotOn}{\global\cont@nnottrue
+ \global\let\eq@insertContAnnot\eqe@insertContAnnot}
+\turnContAnnotOff
+\def\insertContAnnot{\eq@insertContAnnot}
+\newcommand\aNewPage{\ifanswerkey\newpage\fi}
+\newcommand\qNewPage{\ifanswerkey\else\newpage\fi}
+\newcounter{backofpage}
+\newcommand\bopText{on the back of page~\boPage}
+\newcommand\bopCoverPageText{on the back of the cover page}
+\newcommand\OnBackOfPage[1][\bopText]{%
+ \refstepcounter{backofpage}\label{bop\thebackofpage}
+ \begingroup
+ \csarg\ifx{r@bop\thebackofpage}\relax
+ \def\boPage{??}\else
+ \edef\eqe@temp{\csname r@bop\thebackofpage\endcsname}%
+ \ifx\hyper@anchor\@undefined
+ \edef\boPage{\expandafter\@secondoftwo\eqe@temp}\else
+ \edef\boPage{\expandafter\@secondoffive\eqe@temp}\fi
+ \c@eq@count\boPage
+ \advance\c@eq@count-1\relax
+ \edef\boPage
+ {%
+ \ifx\eqex@coverpage\relax
+ \ifnum\value{eq@count}=0
+ 1%
+ \else
+ \the\value{eq@count}%
+ \fi
+ \else
+ \ifnum\value{eq@count}=0
+ -1%
+ \else
+ \the\value{eq@count}%
+ \fi
+ \fi
+ }%
+ \fi
+ \csarg\ifx{r@bop\thebackofpage}\relax#1\else
+ \ifnum\boPage=-1\relax\bopCoverPageText\else#1\fi\fi
+ \endgroup
+}
+\newcommand{\useFillerLines}{\ifx\vspaceFiller % dpsj8
+ \vspaceFillerLines\else\@eqlinedfillertrue
+ \let\vspaceFiller\vspaceFillerLines\fillTypeDefault
+\fi}
+\newcommand{\useFillerDefault}{\@eqlinedfillerfalse
+ \let\vspaceFiller\vspaceFillerDefault
+ \let\eqWriteLine\hfill}
+\newcommand{\fillTypeHRule}{\let\eqWriteLine\eqWriteLineFill
+ \let\makeVgrid\relax}
+\newcommand{\fillTypeDots}{\let\eqWriteLine\eqWriteLineDots
+ \let\makeVgrid\relax}
+\newcommand{\fillTypeDashLine}{\let\eqWriteLine\eqWriteLineDashFill
+ \let\makeVgrid\relax}
+\newcommand{\fillTypeBlankLine}{\let\eqWriteLine\eqWriteLineBlankFill
+ \let\makeVgrid\relax}
+\newcommand{\fillTypeDefault}{\let\eqWriteLine\eqWriteLineFill
+ \let\makeVgrid\relax}
+\newcommand{\fillTypeGrid}{\ifx\vspaceFiller\vspaceFillerLines
+ \let\eqWriteLine\eqWriteLineFill\let\makeVgrid\eqe@makeVgrid\fi}
+\newcommand{\eqWriteLineColor}[1]{\def\eq@WriteLineColor{#1}}
+\eqWriteLineColor{gray}
+\newlength\wlVspace
+\newcommand{\eqWLSpacing}[1]{\setlength\wlVspace{#1}}
+\eqWLSpacing{14.0pt}
+\newcommand{\eqWriteLineFill}{%
+ \textcolor{\eq@WriteLineColor}{\leaders
+ \hrule height \flfboxrule\hfill}}
+\newbox\eqe@tempbox
+\newbox\eqe@nskeyflsplit
+\newbox\eqe@nskeyfltop
+\def\eqdotrulefill{\leavevmode
+ \cleaders\hb@xt@ .44em{\copy\eqe@tempbox\hss}\hfill} % dps16
+\newcommand{\eqWriteLineDots}{%
+ \textcolor{\eq@WriteLineColor}{\eqdotrulefill}}
+\def\eqdashrulefill{\leavevmode
+ \cleaders\hb@xt@ .44em{\rule{.22em}{\flfboxrule}\hss}\hfill\kern\z@}
+\newcommand{\eqWriteLineDashFill}{%
+ \textcolor{\eq@WriteLineColor}{\eqdashrulefill}}
+\newcommand{\eqWriteLineBlankFill}{\vphantom{\hrulefill}}
+\newcommand{\eqWriteLineVFill}{\leaders\vrule width\flfboxrule\vfill}
+\def\eqdotruleVfill{\cleaders\vbox to .44em{\vss
+ \hbox to0pt{\hss.\hss}}\vfill}
+\newcommand{\eqWriteLineVDots}{\eqdotruleVfill}
+\def\eqdashruleVfill{\cleaders\vbox to .44em{\vss
+ \hbox to0pt{\hss\rule{\flfboxrule}{.22em}\hss}}\vfill}
+\newcommand{\eqWriteLineDashVFill}{\eqdashruleVfill}
+\newif\if@equsedim \@equsedimtrue
+\newcommand{\useVspaceDimen}{\@equsedimtrue}
+\newcommand{\usenLineDimen}{\@equsedimfalse}
+\newif\if@eqalignfilllinestoleft\@eqalignfilllinestoleftfalse
+\newcommand{\fillerLinesOnLeftMargin}{\@eqalignfilllinestolefttrue}
+\newcommand{\fillerLinesAlignDef}{\@eqalignfilllinestoleftfalse}
+\newcommand\priorPageBreakMsg[1]{\def\priorP@geBre@kMsg{#1}}
+\let\priorP@geBre@kMsg\@empty
+\newcommand{\flPageBreakMsg}[1]{%
+ \priorPageBreakMsg{\emitMessageNearBottom[\iacvspace]
+ {\eqfititin{{\Large\strut}#1}}}%
+}
+\let\makeVgrid\relax %dps1
+\define@choicekey+{eqefillLines}{numbers}[\val\nr]%
+ {none,left,right}[none]{\ifcase\nr\relax
+ \let\eqe@numLinesL\relax\let\eqe@numLinesR\relax\or
+ \let\eqe@numLinesL\eqe@@numLinesL\let\eqe@numLinesR\relax\or
+ \let\eqe@numLinesL\relax\let\eqe@numLinesR\eqe@@numLinesR
+ \fi
+}{\PackageWarning{aeb}{Bad choice for numbers, permissible values
+ are none, left, and right. Try again}}
+\let\eqe@numLinesL\relax\let\eqe@numLinesR\relax
+\define@key{eqefillLines}{numbersep}[2pt]{%
+ \setlength{\eqetmplengtha}{#1}%
+ \edef\eqe@numbersep{\the\eqetmplengtha}}
+\def\eqe@numbersep{2pt}
+\define@key{eqefillLines}{color}[]{\def\eq@WriteLineColor{#1}}
+\define@boolkey{eqefillLines}{topline}[true]{}
+\KV@eqefillLines@toplinefalse
+\let\eqe@usedeffboxrule\eqe@NO % dps20
+\let\gridtypeselected\@empty % dps26
+\define@choicekey+{eqefillLines}{gridtype}[\val\nr]%
+ {line,dash,dots}[line]{\edef\gridtypeselected{\val}% dps26
+ \ifcase\nr\relax
+ \let\gridHLineFill\eqWriteLineFill
+ \let\gridVLineFill\eqWriteLineVFill
+ \or
+ \let\gridHLineFill\eqWriteLineDashFill
+ \let\gridVLineFill\eqWriteLineDashVFill
+ \or
+ \let\gridHLineFill\eqWriteLineDots
+ \let\gridVLineFill\eqWriteLineVDots
+ \let\eqe@usedeffboxrule\eqe@YES %dps20
+ \fi
+}{\PackageWarning{aeb}{Bad choice for numbers, permissible values
+ are line, dash, and dots. Try again}}
+\let\gridHLineFill\eqWriteLineFill
+\let\gridVLineFill\eqWriteLineVFill
+\define@choicekey+{eqefillLines}{fltype}[\val\nr]%
+ {line,dash,dots,blank,grid}[line]{\ifcase\nr\relax
+ \fillTypeHRule\or
+ \fillTypeDashLine\or
+ \fillTypeDots
+ \let\eqe@usedeffboxrule\eqe@YES\or % dps20
+ \fillTypeBlankLine\or
+ \fillTypeGrid\fi
+}{\PackageWarning{aeb}{Bad choice for numbers, permissible values
+ are line, dash, dots, blank, and grid. Try again}}
+\define@choicekey+{eqefillLines}{align}[\val\nr]%
+ {default,left}[default]{\ifcase\nr\relax
+ \fillerLinesAlignDef\or
+ \fillerLinesOnLeftMargin\fi
+}{\PackageWarning{aeb}{Bad choice for numbers, permissible values
+ are line, dash, dots, blank, and grid. Try again}}
+\define@choicekey*{eqefillLines}{equalcells}[\val\nr]%
+ {true,false}[true]{\ifcase\nr\relax
+ \equalCellSizesOn\or
+ \equalCellSizesOff\fi
+}
+\define@boolkey{eqefillLines}{outlineonly}[true]{}
+\KV@eqefillLines@outlineonlyfalse
+\define@choicekey{eqefillLines}{outlineonly*}{true,false}[true]{% dps26
+ \@nameuse{KV@eqefillLines@outlineonly#1}%
+ \def\eqefillLines@outlineonlystar{#1}}%
+\let\eqefillLines@outlineonlystar\@empty
+\define@boolkey{eqefillLines}{bgonly}[true]{} % dps11
+\KV@eqefillLines@bgonlyfalse
+\define@choicekey{eqefillLines}{bgonly*}{true,false}[true]{% dps26
+ \@nameuse{KV@eqefillLines@bgonly#1}%
+ \def\eqefillLines@bgonlystar{#1}}
+\let\eqefillLines@bgonlystar\@empty
+\define@key{eqefillLines}{bgcolor}[]{\def\eqe@BGColor{#1}} % dps11
+\let\eqe@BGColor\@empty
+\def\fillLinesNumFmt#1{\def\eqe@fillLinesNumFmt##1{\def\flnum{##1}#1}}
+\fillLinesNumFmt{\flnum} % set to default values
+\define@key{eqefillLines}{numfmt}[]{\fillLinesNumFmt{#1}} % dps21
+\define@key{eqefillLines}{linegap}[14pt]{\def\fl@wlspacing{#1}} % dps21
+\def\fl@wlspacing{14pt}
+\newcommand{\setFillLinesFmt}[1]{\def\@rgi{#1}%
+ \let\eqe@usedeffboxrule\eqe@NO %dps20
+ \let\gridtypeselected\@empty
+ \ifx\@rgi\@empty
+ \setkeys{eqefillLines}{numbers,numbersep,color,
+ gridtype,fltype,align}%
+ \else
+ \let\is@outlineonly\eqe@NO\let\is@bgonly\eqe@NO
+ \ifKV@eqefillLines@outlineonly\let\is@outlineonly\eqe@YES\fi
+ \ifKV@eqefillLines@bgonly\let\is@bgonly\eqe@YES\fi
+ \setkeys{eqefillLines}{#1}%
+ \eqWLSpacing{\fl@wlspacing}%
+ \ifx\makeVgrid\relax
+ \KV@eqefillLines@toplinefalse
+ \equalCellSizesOff % dpsj15
+ \ifx\is@bgonly\eqe@YES % carryover from prev prob
+ \ifKV@eqefillLines@bgonly
+ \KV@eqefillLines@bgonlyfalse
+ \else
+ \PackageWarning{eqexam}{You must specify fltype=grid for
+ bgonly to work.\MessageBreak
+ Ignoring this key for now}%
+ \KV@eqefillLines@bgonlyfalse
+ \let\is@bgonly\eqe@NO
+ \fi
+ \else % not continuation
+ \ifKV@eqefillLines@bgonly
+ \PackageWarning{eqexam}{You must specify fltype=grid for
+ bgonly to work.\MessageBreak
+ Ignoring this key for now}%
+ \KV@eqefillLines@bgonlyfalse
+ \let\is@bgonly\eqe@NO
+ \fi
+ \fi
+ \ifx\is@outlineonly\eqe@YES % carryover from prev prob
+ \ifKV@eqefillLines@outlineonly
+ \KV@eqefillLines@outlineonlyfalse
+ \else % dps18
+ \PackageWarning{eqexam}{You must specify fltype=grid for
+ outlineonly to work.\MessageBreak
+ Ignoring this key for now}%
+ \KV@eqefillLines@outlineonlyfalse
+ \let\is@outlineonly\eqe@NO
+ \fi
+ \else % not continuation
+ \ifKV@eqefillLines@outlineonly
+ \PackageWarning{eqexam}{You must specify fltype=grid for
+ outlineonly to work.\MessageBreak
+ Ignoring this key for now}%
+ \KV@eqefillLines@outlineonlyfalse
+ \let\is@outlineonly\eqe@NO
+ \fi
+ \fi
+ \let\gridHLineFill\eqWriteLine
+ \let\gridVLineFill\eqWriteLine
+ \else
+ \ifx\gridtypeselected\@empty % dps26
+ \let\gridHLineFill\eqWriteLineFill
+ \let\gridVLineFill\eqWriteLineVFill
+ \fi
+ \fi
+ \fi
+}
+\def\eqe@@numLinesL{\ifKV@eqefillLines@topline\ifnum\@tempcntb>0 % dps5
+ \smash{\llap{\tiny
+ \eqe@fillLinesNumFmt{\the\@tempcntb}\hglue\eqe@numbersep\relax}}\fi
+ \else\smash{\llap{\tiny
+ \eqe@fillLinesNumFmt{\the\@tempcntb}\hglue\eqe@numbersep\relax}}\fi}
+\def\eqe@@numLinesR{\smash{\rlap{\tiny
+ \hglue\eqe@numbersep\relax\eqe@fillLinesNumFmt{\the\@tempcntb}}}}
+\let\fillLinesLineWidth\@empty
+\newif\ifgridpgbrk\gridpgbrkfalse % dps7
+\newif\ifwriteVertic@lFLines \writeVertic@lFLinestrue % dps16
+\def\fl@set@nnotContStrSkip{\def\@nnotContStrSkip{\vskip6pt}} % dpsj23
+\let\p@ssToFLs\relax
+\newif\iffl@firstpass % dps27
+\newcommand{\vspaceFillerLines}[1]{\begingroup\offinterlineskip %dps1
+ \global\fl@firstpasstrue % dps27
+ \fl@set@nnotContStrSkip % dpsj20
+ \p@ssToFLs\if@eqlinedfiller
+ \def\eqe@next{\vspaceFillerLines@i{#1}}\else
+ \expandafter\def\expandafter\eqe@next
+ \expandafter{\expandafter\endgroup\p@ssToFLs}\fi
+ \global\let\p@ssToFLs\relax\eqe@next}
+\def\vspaceFillerLines@i#1{\advance\wlVspace-\flfboxrule % dps25
+ \ifx\eqe@usedeffboxrule\eqe@YES\flfboxrule=.4pt\fi % dps20
+ \ifKV@eqefillLines@outlineonly\KV@eqefillLines@toplinetrue %dps10
+ \KV@eqefillLines@bgonlyfalse % dps11
+ \equalCellSizesOff\let\makeVgrid\eqe@makeVgrid\fi %dps10
+ \ifKV@eqefillLines@bgonly\KV@eqefillLines@toplinetrue
+ \KV@eqefillLines@outlineonlyfalse\flfboxrule=.4pt % dps20
+ \equalCellSizesOff\let\makeVgrid\eqe@makeVgrid\fi %dps11
+ \parindent0pt\relax\parskip0pt
+ \@tempdima\wlVspace\eqetmplengtha0pt
+ \@tempcnta=0 \@tempcntb=1
+ \def\eqe@fillwidth{\linewidth+\eqetmplengtha}%
+ \eqe@wrtLineKernal
+ \setbox\eqe@tempbox\hbox{\hb@xt@0pt{\hss.\hss}}\ht\eqe@tempbox.33pt
+ \dp\eqe@tempbox0pt % dps16
+ \ifx\makeVgrid\relax
+ \equalCellSizesOff
+ \else % dps2
+ \let\eqWriteLine\gridHLineFill
+ \forceEqu@lCells % dps2
+ \ifx\flEqu@lLineWidth\@empty\else
+ \linewidth=\flEqu@lLineWidth\relax\fi
+ \ifKV@eqefillLines@bgonly\else
+ \ifKV@eqefillLines@topline\bgroup\@tempcntb=0% dps5
+ \makebox[0pt][l]{\eqe@x
+ \makebox[\eqe@fillwidth]{\eqWriteLine}}\egroup
+ \fi\fi % dps5
+ \fi
+ \settowidth{\eqetmplengthb}{\eqe@decPointPrb}\def\vfGo@l{#1}%
+ \ifx\makeVgrid\relax\else
+ \def\priorPNPAction{\xdef\fl@nRows{\the\@tempcnta}% dps27
+ \if@eqalignfilllinestoleft\eqe@x\fi % dpsj12
+ \makeVgrid\priorP@geBre@kMsg\global\fl@firstpassfalse}% dps4
+ \def\postPNPAction{\global\gridpgbrktrue % dps27
+ \setlength{\@tempdima}
+ {(\vfGo@l+\wlVspace)-\depthtodate}% dps25
+ \edef\vfGo@l{\the\@tempdima}\@tempdima=\wlVspace\relax
+ \@tempcnta=0\relax}% dps18
+ \fi
+ \@whiledim\@tempdima<\vfGo@l\relax\do
+ {\edef\depthtodate{\the\@tempdima}%
+ \ifx\eqe@insert@more@content\relax\ifx\makeVgrid\relax
+ \priorP@geBre@kMsg\fi\fi %dps15
+ \eq@insertContAnnot\vskip\wlVspace\eqe@x
+ \ifKV@eqefillLines@bgonly\vglue\flfboxrule\else % dpsj11 dpsj21
+ \ifKV@eqefillLines@outlineonly\vglue\flfboxrule\else %dps10
+ \makebox[0pt][l]{\eqe@numLinesL
+ \makebox[\eqe@fillwidth]{\eqWriteLine}\eqe@numLinesR}\fi
+ \fi
+ \advance\@tempcnta1\relax\advance\@tempcntb1\relax
+ \edef\depthtodate{\the\@tempdima}%
+ \addtolength{\@tempdima}{\wlVspace}%\par dps25
+ }\xdef\fl@nRows{\the\@tempcnta}\makeVgrid % dps27
+ \ifx\makeVgrid\relax\else %dps15
+ \ifvoid\eqe@nskeyflsplit\else\PackageWarning{eqexam}
+ {Some material from a solution environment does not\MessageBreak
+ appear. Increase space allotted}{\normalcolor
+ \llap{\smash{\rule{5pt}{5pt}}}}\aftergroup
+ \reset@color\fi % dpsj24
+ \fi
+ \setlength{\@tempdima}{\vfGo@l-\depthtodate}\vskip\@tempdima
+ \dimen0=\sameVspace\relax
+ \dimen2=\fboxrule\advance\dimen0by\dimen2
+ \xdef\sameVspace{\the\dimen0 }\endgroup
+ \global\flfrstsplittrue
+}
+\def\eq@linesXPgs{\@tempdimb\wlVspace % dpsj20
+ \advance\@tempdimb-\flfboxrule
+ \@tempdimb=\soln@keys@nLines\@tempdimb
+ \advance\@tempdimb\flfboxrule
+ \expandafter\vspaceFillerLines\expandafter{\the\@tempdimb}}
+\def\eqe@wrtLineKernal{\let\eqe@x\relax\let\eqe@y\relax % dpsj9
+ \ifx\solutionparshape\@empty % not lead-in
+ \if@eqalignfilllinestoleft % align on left
+ \setlength{\eqetmplengtha}{\labelwidth+\eqemargin}%
+ \setlength{\eqetmplengtha}
+ {\eqetmplengtha+\eqetmplengthb}%
+ \ifwithinparts
+ \ifx\istabularexer\eq@YES % tabular mode
+ \setlength{\eqetmplengtha}{\prtsIndntSep}% dps27
+ \eq@tmplengthA\eqetmplengtha
+ \def\eqe@x{\hglue-\prtsIndntSep}% dps27
+ \ifKV@eqefillLines@outlineonly\let\eqe@y\eqe@x\fi
+ \else
+ \settowidth{\eqetmplengtha}{\eqe@prtsepPrb}%
+ \setlength{\eqetmplengtha}{\eqetmplengtha+\widthOfParts}% dps9
+ \setlength{\eq@tmplengthA}{\eqetmplengtha}% dps9
+ \def\eqe@x{\hspace*{-\eqetmplengtha}\hglue-\flfboxrule}% dps27
+ \fi
+ \else % not parts, still align left
+ \def\eqe@x{\hspace*{-\eqemargin}}%
+ \eqetmplengtha\eqemargin
+ \eq@tmplengthA\eqemargin
+ \fi
+ \else % not lead-in, not align on left
+ \ifwithinparts
+ \setlength{\eqetmplengtha}{\labelwidth}%
+ \setlength{\eqetmplengtha}
+ {\eqetmplengtha+\eqetmplengthb}%
+ \ifx\istabularexer\eq@YES % tabular mode
+ \eqetmplengtha0pt
+ \eq@tmplengthA\eqetmplengtha % dps27
+ \else %dps2
+ \def\eqe@x{\hglue-\flfboxrule}% dps4
+ \eqetmplengtha0pt
+ \eq@tmplengthA\eqetmplengtha
+ \fi
+ \else % not parts, not align left
+ \eqetmplengtha0pt
+ \eq@tmplengthA\eqetmplengtha
+ \fi
+ \fi
+ \else % lead-in
+ \if@eqalignfilllinestoleft
+ \setlength{\eqetmplengtha}{\leadinIndentPrtSep}% dps27
+ \eq@tmplengthA\eqetmplengtha
+ \else
+ \eqetmplengtha0pt
+ \eq@tmplengthA\eqetmplengtha
+ \fi
+ \fi
+}
+\newif\ifforceEqualCells
+\def\equalCellSizesOn{\global\let\flEqu@lLineWidth\@empty
+ \global\forceEqualCellstrue}
+\def\equalCellSizesOff{\global\let\flEqu@lLineWidth\@empty
+ \global\forceEqualCellsfalse}
+\equalCellSizesOff
+\def\forceEqu@lCells{\bgroup
+ \ifforceEqualCells
+ \dimen6\wlVspace % reduced from \vspaceFillerLines
+ \advance\dimen6\flfboxrule
+ \dimen2=\z@
+ \dimen4\linewidth
+ \advance\dimen4by-\flfboxrule
+ \if@eqalignfilllinestoleft % dps8
+ \advance\dimen4\eq@tmplengthA
+ \fi
+ \@tempcnta0
+ \@whiledim \dimen2 < \dimen4 \do{%
+ \advance\@tempcnta1
+ \advance\dimen2by\dimen6
+ }%
+ \advance\@tempcnta-1
+ \advance\dimen2-\dimen6
+ \advance\dimen2\flfboxrule
+ \advance\dimen2by-\eq@tmplengthA
+ \xdef\flEqu@lLineWidth{\the\dimen2}%
+ \fi
+\egroup}
+\let\eqe@insert@more@content\relax
+\def\gobtodot#1.#2\@nil{\def\intPrt{#1}\def\fracPrt{#2}}
+\def\dbMrk#1{\textsf{\footnotesize#1}}
+\@ifundefined{ifeqedb}{\newif\ifeqedb \eqedbfalse}{}
+\def\fillerCustomBg#1{\def\fillerBgIm@ge##1##2{#1}}
+\def\resetFillerCustomBg{\let\fillerBgIm@ge\@empty}
+\resetFillerCustomBg
+\def\gridIndentAdj#1{\def\@rgi{#1}\ifx\@rgi\@empty
+ \let\gridIndent@dj\relax\else % dps4
+ \setlength{\@tempdima}{#1}\edef\gridIndent@dj{\the\@tempdima}\fi}
+\let\gridIndent@dj\relax
+\def\eqe@makeVgrid{\begingroup
+ \@tempcnta=\fl@nRows\relax
+ \advance\wlVspace\flfboxrule % dps25
+ \setlength{\@tempdima}{\eqe@fillwidth}%
+ \setlength{\@tempdimb}{\wlVspace}%
+ \edef\eqe@tmp{\strip@pt\@tempdimb}%
+ \expandafter\gobtodot\eqe@tmp.\@nil
+ \divide\@tempdima by\intPrt\relax
+ \dimen2=\@tempdima
+ \dimen4=1pt
+ \advance\dimen2 by 0.5\dimen4
+ \divide\dimen2 by \dimen4
+ \multiply\dimen2 by \dimen4
+ \edef\eqe@tmp{\strip@pt\dimen2}%
+ \expandafter\gobtodot\eqe@tmp.\@nil
+ \advance\@tempcnta-1\relax % dps21
+ \multiply\@tempdimb\@tempcnta
+ \edef\eqe@HOfVrule{\the\@tempdimb}% dps7
+ \ifKV@eqefillLines@topline % dps21
+ \advance\@tempdimb\wlVspace
+ \advance\@tempdimb\flfboxrule
+ \edef\eqe@HOfVruleFrstRow{\the\@tempdimb}%
+ \def\eqe@setVRule{\vbox
+ to\eqe@HOfVruleFrstRow\relax{\gridVLineFill}}% dps8
+ \else
+ \def\eqe@setVRule{\vbox
+ to\eqe@HOfVrule\relax{\gridVLineFill}}% dps8
+ \fi
+ \eqe@tempcnta=0
+ \dimen2=\wlVspace
+ \count4=\intPrt\relax
+ \setlength{\dimen4}{\eqe@fillwidth}%
+ \multiply\dimen2by\count4
+ \@whiledim \dimen2 > \dimen4 \do{%
+ \advance\count4by-1\relax
+ \edef\intPrt{\the\count4 }%
+ \dimen2\wlVspace
+ \multiply\dimen2by\count4
+ }%
+ \dimen2\wlVspace
+ \if@eqalignfilllinestoleft % dps27
+ \let\fl@oSmash\smash\let\fl@iSmash\relax
+ \else
+ \let\fl@iSmash\smash\let\fl@oSmash\relax
+ \fi
+ \fl@oSmash{%
+ \makebox[0pt][l]{\makebox[\eqe@fillwidth][l]{\fl@iSmash{% dps27
+ \ifx\gridIndent@dj\relax\else
+ \hglue\gridIndent@dj\relax\fi
+ \eqe@y\ifeqedb\rlap{\dbMrk{D}}\fi % dpsj9 \eqe@y (fudge)
+ \rlap{\ifeqedb\rlap{\dbMrk{B}}\fi
+ \ifwriteVertic@lFLines % dps16
+ \setlength{\@tempdima}{\eqe@fillwidth}%
+ \ifKV@eqefillLines@bgonly % dps11
+ \ifx\fillerBgIm@ge\@empty
+ \ifx\eqe@BGColor\@empty\else
+ \rlap{\textcolor{\eqe@BGColor}
+ {\rule{\eqe@fillwidth}{\eqe@HOfVruleFrstRow}}}\fi
+ \else
+ \rlap{\fillerBgIm@ge{\eqe@fillwidth}{\eqe@HOfVruleFrstRow}}\fi
+ \else
+ \dimen2=\wlVspace
+ \dimen0=0pt
+ \@whilenum\eqe@tempcnta<\count4\do{\rlap{\hglue\dimen0
+ \ifKV@eqefillLines@outlineonly %dps10
+ \ifnum\eqe@tempcnta=0 \else\let\gridVLineFill\vfill\fi\fi
+ \textcolor{\eq@WriteLineColor}{\eqe@setVRule % dps27
+ \ifeqedb\rlap{\advance\eqe@tempcnta by1\relax\scriptsize
+ \raisebox{1pt}{\kern1pt\the\eqe@tempcnta}}\fi}}%
+ \advance\dimen0by\dimen2
+ \advance\eqe@tempcnta by1
+ }% dps27
+ \fi % dps11
+ \advance\dimen2by\flfboxrule
+ \ifKV@eqefillLines@bgonly\else % dps11
+ \rlap{\hglue\@tempdima
+ \textcolor{\eq@WriteLineColor}{\eqe@setVRule
+ \ifeqedb\rlap{\thinspace\dbMrk{R}}\fi}}%
+ \ifKV@eqefillLines@outlineonly %dps10
+ \makebox[0pt][l]{\makebox[\eqe@fillwidth]{\eqWriteLine}}%dps10
+ \fi
+ \ifKV@eqefillLines@topline% dps7
+ \ifgridpgbrk\@tempdima\eqe@HOfVruleFrstRow\relax % dps21
+ \raise\@tempdima\hbox{\makebox[0pt][l]{%
+ \makebox[\eqe@fillwidth]{\eqWriteLine}}}%
+ \global\gridpgbrkfalse
+ \fi
+ \fi
+ \fi
+ \ifx\eqefillLines@outlineonlystar\@empty\else % dps26
+ \global\let\eqefillLines@outlineonlystar\@empty
+ \global\KV@eqefillLines@outlineonlyfalse
+ \fi
+ \ifx\eqefillLines@bgonlystar\@empty\else % dps26
+ \global\let\eqefillLines@bgonlystar\@empty
+ \global\KV@eqefillLines@bgonlyfalse
+ \fi
+ \fi % ifwriteVertic@lFLines
+ \eqe@insert@more@content
+ }% rlap
+ }% smash (fl@iSmash)
+}}}% makeboxes and \fl@oSmash
+ \endgroup
+}% \eqe@makeVgrid
+\def\turnfl@nskeyMsg{\PackageWarning{eqexam}
+ {You must first take the flextended\MessageBreak
+ option for this command to have any\MessageBreak effect}}
+\def\turnflanskeyOn{\turnfl@nskeyMsg}
+\def\priorw@Msg{\PackageWarningNoLine{eqexam}
+ {The priorworkarea environment does nothing\MessageBreak
+ without the flextended option. All such content\MessageBreak in these
+ environments are absorbed}\global\let\priorw@Msg\@empty}
+\newenvironment{priorworkarea}{\priorw@Msg
+ \setbox\eqe@nskeyflsplit\vbox\bgroup}
+ {\egroup\setbox\eqe@nskeyflsplit\box\voidb@x}
+\let\turnflanskeyOff\turnflanskeyOn
+\newif\ifflfrstsplit \flfrstsplittrue
+\newif\ifeqe@flnosolns \eqe@flnosolnsfalse
+\def\turnflnosolnsOn{\eqe@flnosolnstrue\turnflanskeyOn}
+\def\turnflnosolnsOff{\eqe@flnosolnsfalse\turnflanskeyOn}
+\newdimen\flfboxrule \flfboxrule=.4pt
+\def\tweakBreakPoint#1{\def\@rgi{#1}\ifx\@rgi\@empty
+ \gdef\twe@kBre@kPoint{0pt}\else
+ {\setlength{\@tempdima}{#1}%
+ \xdef\twe@kBre@kPoint{\the\@tempdima}}\fi}
+\def\twe@kBre@kPoint{0pt}
+\def\eq@b@ddCodeSpecial#1{\if@eqlinedfiller
+ \ifKV@eqefillLines@bgonly\leavevmode
+ \vskip-\baselineskip\kern\lineskip\fi\fi#1}
+\def\flSeparateCutNames{\def\fl@CutName{flx\fl@Cnt-\jobname.cut}}
+\ifeqfortextbook\else
+ \if@bypasseqexamheading\else
+\pagestyle{eqExamheadings}\fi\fi
+\ifeqfortextbook
+\AtBeginDocument{\tb@soln@choice
+ \ifeqwritetomargins\chkmarginboxwidth
+ \AddToShipoutPicture{\eqe@tb@shipout}\fi}
+\fi
+\edef\ftbInputEqTextb{\ifeqfortextbook\noexpand
+ \InputIfFileExists{eqtextb.def}{}{}\fi}
+\ftbInputEqTextb
+\define@boolkey{eqFillin}{underline}[true]{}
+\define@key{eqFillin}{u}[]{\KV@eqFillin@underlinetrue}
+\define@key{eqFillin}{b}[]{\KV@eqFillin@underlinefalse}
+\define@boolkey{eqFillin}{boxed}[true]{}
+\define@key{eqFillin}{boxpretext}[]{\def\eq@fillintext{#1}}
+\let\eq@fillintext\@empty
+\define@key{eqFillin}{parbox}[\relax]{\def\eq@fillinparbox{#1}}
+\let\eq@fillinparbox\@empty
+\define@key{eqFillin}{hiddenbox}[]{%
+ \def\eq@fillinhiddenbox{%
+ \setlength{\fboxrule}{0pt}\setlength{\fboxsep}{0pt}}}
+\let\eq@fillinhiddenbox\@empty
+\define@boolkey{eqFillin}{enclosesoln}[true]{}
+\define@choicekey+{eqFillin}{boxsize}{tiny,scriptsize,footnotesize,%
+ small,normalsize,large,Large,LARGE,huge,Huge}[normalsize]{%
+ \def\eq@eqFillin@boxsize{\text{\csname#1\endcsname\strut}}%
+}{\PackageWarning{eqexam}{Bad choice for boxsize, permissible values
+ are tiny, scriptsize, footnotesize, small, normalsize,
+ large, Large, LARGE, huge and Huge. Try again}}
+\def\eq@eqFillin@boxsize{\text{\normalsize\strut}}
+\define@key{eqFillin}{fboxsep}[3pt]{\def\eq@fillin@fboxsep{#1}}
+\def\eq@fillin@fboxsep{3pt}
+\define@choicekey+{eqFillin}{fontsize}{tiny,scriptsize,footnotesize,%
+ small,normalsize,large,Large,LARGE,huge,Huge}[normalsize]{%
+ \def\eq@eqFillin@fontsize{\csname#1\endcsname}%
+}{\PackageWarning{eqexam}{Bad choice for boxsize, permissible values
+ are tiny, scriptsize, footnotesize, small, normalsize,
+ large, Large, LARGE, huge and Huge. Try again}}
+\def\eq@eqFillin@fontsize{\ifmmode\else\normalsize\fi}
+\define@key{eqFillin}{color}[\eq@fillinColor]{\edef\eq@fillin@color{#1}}
+\define@choicekey+{eqFillin}{align}[\val\nr]%
+ {l,r,c}[\eq@eqFillin@align@default]{%
+ \def\eq@eqFillin@align{#1}%
+ \ifcase\nr\relax
+ \def\eqe@align@hfill{}\or
+ \def\eqe@align@hfill{\hfill}\or
+ \def\eqe@align@hfill{\hfil}\fi
+ }{%
+ \PackageWarning{eqexam}{Bad choice for align, permissible values
+ are l, r, and c. Try again}}
+\let\eqe@align@hfill\relax
+\define@choicekey+{eqFillin}{defaultalign}[\val\nr]{l,r,c}[c]{%
+ \def\eq@eqFillin@align@default{#1}%
+ \ifcase\nr\relax
+ \def\eqe@align@hfill@default{}\or
+ \def\eqe@align@hfill@default{\hfill}\or
+ \def\eqe@align@hfill@default{\hfil}\fi
+ }{%
+ \PackageWarning{eqexam}{Bad choice for defaultalign, permissible
+ values are l, r, and c. Try again}}
+\setkeys{eqFillin}{defaultalign=c}
+\renewcommand{\fillInFormatDefault}{\normalfont}
+\define@key{eqFillin}{format}[\fillInFormatDefault]{%
+ \def\eq@fillin@format{#1}}
+\def\eq@fillin@format{\bfseries}
+\def\eqe@fbox@corr#1{#1-2\fboxsep-2\fboxrule}
+\define@boolkey{eqFillin}{fitwidth}[true]{} %
+\@ifundefined{boxed}{%
+ \def\eq@fillin@defaultbox{\fbox}%
+ \def\eq@fillin@boxcmd{\fbox}%
+ }{%
+ \def\eq@fillin@defaultbox{\boxed}%
+ \def\eq@fillin@boxcmd{\boxed}%
+ }
+\define@key{eqFillin}{boxcmd}%
+ [\eq@fillin@defaultbox]{\def\eq@fillin@boxcmd{#1}}
+\@ifundefined{underbar}{%
+ \def\eq@fillin@defaultul{underline}%
+ \def\eq@fillin@ulcmd{\underline}%
+ }{%
+ \def\eq@fillin@defaultul{underbar}%
+ \def\eq@fillin@ulcmd{\underbar}%
+ }
+\edef\ulcustom{\expandafter\noexpand\eq@fillin@ulcmd}
+\edef\temp@exp{\noexpand
+\define@choicekey+{eqFillin}{ulcmd}
+ {underbar,underline,custom}[\eq@fillin@defaultul]}
+\temp@exp{\def\@rgi{#1}\def\eq@custom{custom}\ifx\@rgi\eq@custom
+ \def\eq@fillin@ulcmd{\@nameuse{ulcustom}}\else
+ \def\eq@fillin@ulcmd{\@nameuse{#1}}\fi
+}{\PackageWarning{aeb}{Bad choice for ulcmd, permissible values
+ are underbar and underline. Try again}}
+\define@key{eqFillin}{lift}[-1sp]{\def\eq@fillin@lift{#1}}
+\define@boolkey{eqFillin}{autolift}[true]{} %
+\define@key{eqFillin}{addtoautolift}[0pt]{%
+ \def\eq@fillin@addtoautolift{#1}}
+\def\eqe@getiiiOpts{%
+ \@ifnextchar[%]
+ \i@eqe@getiiiOpts
+ {\iii@eqe@getiiiOpts{c}{\relax}[s]}}
+\def\i@eqe@getiiiOpts[#1]{%
+ \@ifnextchar[%]
+ {\ii@eqe@getiiiOpts{#1}}%
+ {\iii@eqe@getiiiOpts{#1}{\relax}[s]}}
+\def\ii@eqe@getiiiOpts#1[#2]{%
+ \@ifnextchar[%]
+ {\iii@eqe@getiiiOpts{#1}{#2}}%
+ {\iii@eqe@getiiiOpts{#1}{#2}[#1]}}
+\def\iii@eqe@getiiiOpts#1#2[#3]{%
+ \def\eqe@opts@argi{#1}%
+ \def\eqe@opts@argii{#2}%
+ \def\eqe@opts@argiii{#3}}
+\newcommand{\setfillinDefaults}[1]{\def\eqe@argi{#1}\ifx\eqe@argi\@empty
+ \let\eqe@setfillinDefaults\@empty\else
+ \def\eqe@setfillinDefaults{#1}\fi}
+\let\eqe@setfillinDefaults\@empty
+\AtBeginDocument{\@ifpackageloaded{collectbox}
+ {\let\eqe@cb\eqe@YES}{\let\eqe@cb\eqe@NO}}
+\def\fillineolTooLongMsg{\PackageWarning{eqexam}{%
+ The 'phrase' you are measuring is longer than\MessageBreak
+ \string\linewidth. Changing length to 0pt in hopes you\MessageBreak
+ can fix things}}
+\def\fillineolNoCBMsg{\PackageWarning{eqexam}{%
+ For the \string\fillineol*\space form, the
+ collectbox package\MessageBreak
+ is required, but not loaded at this time.\MessageBreak
+ Switching to \string\fillineol\space in hopes you
+ load collectbox\MessageBreak
+ next time or you remove the star-option if not\MessageBreak
+ really needed}}
+\newcommand\fillineol{\@ifstar{\ifx\eqe@cb\eqe@YES
+ \let\eqe@next\cbfillineol\else
+ \def\eqe@next{\fillineolNoCBMsg\fillineol@i}\fi
+ \eqe@next}{\fillineol@i}}
+\newcommand{\fillineol@i}[1]{\bgroup\setbox\z@\hbox{#1}\fillineol@ii}
+\newcommand\fillineol@ii[2][]{\setlength\eqetmplengthb{\linewidth-\wd\z@}%
+ \ifdim\eqetmplengthb<0pt\eqetmplengthb0pt\fillineolTooLongMsg\fi
+ \unhbox\z@\fillin[#1]{\eqetmplengthb}{#2}\egroup}
+\newcommand\cbfillineol{\bgroup\collectboxto{\@tempboxa}
+ {\setlength{\eqetmplengthb}{\linewidth-\wd\@tempboxa}%
+ \ifdim\eqetmplengthb<0pt\eqetmplengthb0pt\fillineolTooLongMsg\fi
+ \unhbox\@tempboxa\cbfillineol@i}}
+\newcommand\cbfillineol@i[2][]{\fillin[#1]{\eqetmplengthb}{#2}\egroup}
+\renewcommand{\fillin}[3][]{\begingroup
+ \expandafter\let\expandafter\ifsp\csname ifsp@expand\endcsname
+ \setkeys{eqFillin}{boxsize,underline=true,boxed=false,%
+ boxpretext,color,format,enclosesoln=false,fitwidth=false,lift,%
+ autolift=false,addtoautolift}%
+ \ifx\eqe@setfillinDefaults\@empty\else
+ \protected@edef\eq@temp@exp{\noexpand
+ \setkeys{eqFillin}{\eqe@setfillinDefaults}}%
+ \eq@temp@exp
+ \fi
+ \protected@edef\eq@temp@exp{\noexpand\setkeys{eqFillin}{#1}}%
+ \eq@temp@exp
+ \fboxsep\eq@fillin@fboxsep\relax
+ \ifKV@eqFillin@boxed\KV@eqFillin@underlinefalse\fi
+ \ifKV@eqFillin@autolift\def\eq@fillin@lift{-2sp}\fi
+ \edef\eqe@argii{#2}\ifx\eqe@argii\@empty\else
+ \ifdim\eqe@argii=0pt\let\eqe@argii\@empty\fi\fi
+ \eq@fillinhiddenbox
+ \ifx\eq@fillinhiddenbox\@empty\else
+ \KV@eqFillin@boxedtrue\fi
+ \ifx\eq@fillinparbox\@empty\def\eqe@argiii{#3}\else
+ \ifx\eqe@align@hfill\relax
+ \def\eq@eqFillin@align{l}\def\eqe@align@hfill{}\fi
+ \expandafter\eqe@getiiiOpts\eq@fillinparbox\relax
+ \ifKV@eqFillin@boxed
+ \expandafter\ifx\eqe@opts@argii\relax\else
+ \edef\eqe@opts@argii{\expandafter
+ \eqe@fbox@corr\expandafter{\eqe@opts@argii}}\fi
+ \fi
+ \edef\eqe@parboxOptArgs{[\eqe@opts@argi]%
+ \expandafter\ifx\eqe@opts@argii\relax\else
+ [\eqe@opts@argii][\eqe@opts@argiii]\fi}%
+ \def\eqe@argiii{\expandafter\parbox\eqe@parboxOptArgs{\eqe@bw}%
+ {\eqe@align@hfill\ifKV@eqFillin@boxed\eq@fillintext\fi#3}}%
+ \fi
+ \ifx\eqe@align@hfill\relax
+ \def\eq@eqFillin@align{c}%
+ \edef\eqe@align@hfill{\eqe@align@hfill@default}\fi
+ \ifmmode\let\@eqmath\ensuremath\else\let\@eqmath\text\fi
+ \ifx\eq@fillinparbox\@empty
+ \ifx\eqe@argii\@empty
+ \settowidth{\eqetmplengthb}{\@eqmath{\eq@eqFillin@fontsize
+ \eq@fillin@format\ifKV@eqFillin@boxed\eq@fillintext\fi
+ \eqe@argiii}}%
+ \ifKV@eqFillin@boxed
+ \setlength{\eqetmplengthb}{%
+ \eqetmplengthb+2\fboxsep+2\fboxrule}%
+ \fi
+ \else
+ \setlength{\eqetmplengthb}{#2}%
+ \fi
+ \else
+ \ifx\eqe@argii\@empty
+ \setlength{\eqetmplengthb}{\linewidth}%
+ \PackageWarning{eqexam}{Parameter \#2
+ is empty with parbox option,\MessageBreak
+ using \string\linewidth\space for width%
+ }%
+ \else
+ \setlength{\eqetmplengthb}{#2}%
+ \fi
+ \fi
+ \expandafter\let\expandafter\ifsp\csname ifsp@default\endcsname
+ \edef\eqe@bw{\the\eqetmplengthb}%
+ \ifKV@eqFillin@underline\let\@fillinFmt\eq@fillin@ulcmd
+ \else\let\@fillinFmt\relax\fi
+ \ifx\eq@fillinparbox\@empty\else
+ \ifKV@eqFillin@underline\let\@fillinFmt\relax
+ \PackageInfo{eqexam}{Removing underline option, not permissible
+ \MessageBreak with parbox option}%
+ \fi\fi
+ \ifeq@proofing
+ \ifKV@eqFillin@fitwidth
+ \settowidth{\eqetmplengthb}{\@eqmath{\eq@fillin@format
+ \ifx\eq@fillinparbox\@empty\ifKV@eqFillin@boxed
+ \eq@fillintext\fi\fi\eqe@argiii}}%
+ \ifKV@eqFillin@boxed
+ \setlength{\eqetmplengthb}{%
+ \eqetmplengthb+2\fboxsep+2\fboxrule}%
+ \fi
+ \edef\eqe@bw{\the\eqetmplengthb}%
+ \fi
+ \ifKV@eqFillin@boxed
+ \ifmmode\let\@eqmath\ensuremath\else\let\@eqmath\text\fi
+ \setbox\z@\hbox{\@eqmath{\eq@fillin@boxcmd{%
+ \eq@eqFillin@boxsize
+ \@fillinFmt{\eq@eqFillin@fontsize % dpsf0214
+ \ifKV@eqFillin@boxed
+ \edef\eqe@bw{\eqe@fbox@corr{\eqe@bw}}%
+ \fi
+ \makebox[\eqe@bw][\eq@eqFillin@align]{\strut
+ \@eqmath{\eq@fillin@format\color{\eq@fillin@color}%
+ \ifx\eq@fillinparbox\@empty
+ \eq@fillintext\fi\eqe@argiii}}%
+ }% end \@fillinFmt
+ }}}% end \mbox
+ \setlength{\@tempdima}{\ht0+\dp0}%
+ \xdef\fillinTotalHeight{\the\@tempdima}%
+ \mbox{\unhbox\z@}%
+ \else
+ \ifmmode\let\@eqmath\ensuremath\else\let\@eqmath\relax\fi
+ \setbox\z@\hbox{\eq@eqFillin@fontsize % dpsf0214
+ \ifdim\eq@fillin@lift=-1sp\relax
+ \@fillinFmt{\makebox[\eqe@bw][\eq@eqFillin@align]{\strut
+ \color{\eq@fillin@color}%
+ \@eqmath{\eq@fillin@format\eqe@argiii}}}%
+ \else
+ \ifKV@eqFillin@autolift
+ \setbox2=\hbox{\@eqmath{\eq@fillin@format\eqe@argiii}}%
+ \setlength{\@tempdima}{\dp2+\eq@fillin@addtoautolift}%
+ \edef\eq@fillin@lift{\the\@tempdima}\fi
+ \raisebox{-\eq@fillin@lift}{\@fillinFmt{%
+ \makebox[\eqe@bw][\eq@eqFillin@align]{\strut
+ \color{\eq@fillin@color}%
+ \raisebox{\eq@fillin@lift}{\@eqmath{\eq@fillin@format
+ \eqe@argiii}}}}}%
+ \fi
+ }\setlength{\@tempdima}{\ht0+\dp0}%
+ \xdef\fillinTotalHeight{\the\@tempdima}%
+ \mbox{\unhbox\z@}%
+ \fi
+ \else
+ \ifKV@eqFillin@boxed
+ \setbox\z@\hbox{\eq@eqFillin@fontsize % dpsf0214
+ \@eqmath{\eq@fillin@format
+ \eq@fillin@boxcmd{\eq@eqFillin@boxsize\ifeq@nosolutions
+ \rlap{\@eqmath{\eq@eqFillin@fontsize % dpsf0214
+ \eq@fillintext}}\fi
+ \ifvspacewithsolns % dpsf0214 \eq@eqFillin@fontsize
+ \rlap{\@eqmath{\eq@eqFillin@fontsize\eq@fillintext}}\fi
+ \@fillinFmt{%
+ \makebox[\eqe@fbox@corr{\eqe@bw}]{%
+ \ifKV@eqFillin@enclosesoln\phantom
+ {\setlength\eqetmplengthb{\eqe@bw-2\fboxsep}%
+ \edef\eqe@bw{\the\eqetmplengthb}%
+ \@eqmath{\eqe@argiii}}\else
+ \strut\hfill\fi
+ }%
+ }%end \@fillinFmt
+ }}}% end \hbox
+ \setlength{\@tempdima}{\ht0+\dp0}%
+ \xdef\fillinTotalHeight{\the\@tempdima}%
+ \mbox{\unhbox\z@}%
+ \else
+ \setbox\z@\hbox{\eq@eqFillin@fontsize % dpsf0214
+ \ifdim\eq@fillin@lift=-1sp\relax
+ \@fillinFmt{\makebox[\eqe@bw]{%
+ \strut\hfil}}%
+ \else
+ \ifKV@eqFillin@autolift
+ \setbox2=\hbox{\@eqmath{\eq@fillin@format
+ \eqe@argiii}}%
+ \setlength{\@tempdima}%
+ {\dp2+\eq@fillin@addtoautolift}%
+ \edef\eq@fillin@lift{\the\@tempdima}\fi
+ \raisebox{-\eq@fillin@lift}{\@fillinFmt{%
+ \makebox[\eqe@bw]{\raisebox{\eq@fillin@lift}
+ {\phantom{\@eqmath{\eq@fillin@format
+ \eqe@argiii}}\strut\hfil}}}}%
+ \fi
+ }\setlength{\@tempdima}{\ht0+\dp0}%
+ \xdef\fillinTotalHeight{\the\@tempdima}%
+ \mbox{\unhbox\z@}%
+ \fi
+ \@ifundefined{@quiz}{}{%
+ \if\eq@online\eqe@YES\relax
+ \ifeq@nosolutions
+ \ifeq@solutionsafter\else
+ \ifx\eq@insertverticalspace\eqe@YES\relax
+ \stepcounter{@cntfillin}%
+ \edef\fieldName{%
+ \if\probstar*eqexam.\curr@quiz.fillin.%
+ \theeqquestionnoi.part\thepartno.%
+ fi\the@cntfillin%
+ \else
+ eqexam.\curr@quiz.fillin.%
+ \theeqquestionnoi.fi\the@cntfillin%
+ \fi
+ }\ifx\eq@fillinparbox\@empty
+ \raisebox{-1bp}{\makebox[0pt][r]{%
+ \textField[\BC{}\presets{\eqe@optsFillIn}]
+ {\fieldName}{#2}{\fillinTotalHeight}}}\else
+ \setlength{\@tempdima}%
+ {\eqe@opts@argii+2\fboxrule+2\fboxsep}%
+ \raisebox{-1bp}{\makebox[0pt][r]{%
+ \textField[\BC{}\presets{\eqe@optsFillIn}
+ \Ff{\FfMultiline}]{\fieldName}{#2}
+ {\fillinTotalHeight}}}\fi
+ \fi
+ \fi
+ \fi
+ \fi
+ }%
+ \fi\endgroup}
+\renewcommand\TF[2][\defaultTFwidth]{%
+ \def\eqe@next{\fillin[underline]{#1}{#2}}%
+ \ifdim\eq@extralabelsep=0pt\relax\else
+ \if\probstar*\relax\if\exerwparts@cols0
+ \def\eqe@next{\makebox[0pt][r]{%
+ \fillin[underline]{#1}{#2}}\ignorespaces}%
+ \fi\fi\fi\eqe@next
+}
+\endinput
+%%
+%% End of file `eqexam.sty'.
diff --git a/texmf-dist/tex/latex/eqexam/eqtextb.def b/texmf-dist/tex/latex/eqexam/eqtextb.def
index f388e3e7..470a959a 100644
--- a/texmf-dist/tex/latex/eqexam/eqtextb.def
+++ b/texmf-dist/tex/latex/eqexam/eqtextb.def
@@ -1,765 +1,765 @@
-%%
-%% This is file `eqtextb.def',
-%% generated with the docstrip utility.
-%%
-%% The original source files were:
-%%
-%% eqexam.dtx (with options: `copyright,textbook')
-%%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% eqexam.sty package, %%
-%% Copyright (C) 2005--2017 D. P. Story %%
-%% dpstory@uakron.edu %%
-%% %%
-%% This program can redistributed and/or modified under %%
-%% the terms of the LaTeX Project Public License 1.2 %%
-%% Distributed from CTAN archives in directory %%
-%% macros/latex/base/lppl.txt; either version 1 of the %%
-%% License, or (at your option) any later version. %%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\ProvidesFile{eqtextb.def}
- [2016/01/18 v4.6 Cmds used by the fortextbook option (dps)]
-\define@boolkey{eqe@tbopts}[is]{instred}[true]{}
-\define@boolkey{eqe@tbopts}[is]{studented}[true]{%
- \ifisstudented
- \tbfilterOutEvenNums
- \fi
-}
-\def\tb@beginexam@code{%
- \ifisinstred\answerkeytrue\eq@proofingtrue\fi}
-\newcommand{\tbfilterOutEvenNums}{%
- \def\eqEXt##1##2{\ifodd##1\let\eqe@next\relax\else
- \def\eqe@next{\gobbletoEndEXt}\fi\eqe@next}%
-}
-\newcommand{\tballowAllNums}{%
- \let\eqEXt\@gobbletwo
- \let\endeqEXt\relax
-}
-\define@boolkey{eqe@tbopts}[is]{marginans}[true]{}
-\define@boolkey{eqe@tbopts}[is]{inlineans}[true]{}
-\define@boolkey{eqe@tbopts}[]{marginsonleft}[true]
- {\@mparswitchfalse\reversemarginpar}
-\define@boolkey{eqe@tbopts}[show]{ssols}[true]{}
-\define@boolkey{eqe@tbopts}[show]{lsols}[true]{%
- \ifshowlsols\let\tb@soln@choice\tb@showlsols\fi}
-\newcommand{\textbookOpts}[1]{\setkeys{eqe@tbopts}{#1}%
- \ifisinstred\global\isstudentedfalse\else
- \ifisstudented\global\isinstredfalse
- \fi\fi
- \ifdim\tbmarparboxwidth=1sp\else
- \expandafter\tbMakeFinalCalcs\fi
-}
-\isstudentedtrue
-\isinstredfalse
-\ismarginansfalse
-\isinlineansfalse
-\@onlypreamble{\textbookOpts}
-\newcommand{\turnOffMarAnsOnAnsInline}{%
- \global\ismarginansfalse\global\isinlineanstrue
- \insMidMarg{\global\ismarginansfalse
- \global\isinlineanstrue}%
-}
-\newcommand{\turnOnMarAnsOffAnsInline}{%
- \global\ismarginanstrue\global\isinlineansfalse
- \insMidMarg{\global\ismarginanstrue
- \global\isinlineansfalse}%
-}
-\newcommand{\toggleInstrAns}{%
- \ifisinstred\ifismarginans
- \global\ismarginansfalse\global\isinlineanstrue
- \insMidMarg{\global\ismarginansfalse
- \global\isinlineanstrue}%
- \else
- \global\ismarginanstrue\global\isinlineansfalse
- \insMidMarg{\global\ismarginanstrue
- \global\isinlineansfalse}%
- \fi\fi
-}
-\newif\ifWithinANSGrp\WithinANSGrpfalse
-\newif\ifftb@isANSListOpen\ftb@isANSListOpenfalse
-\newcommand{\bGrpANS}{%
- \if\probstar*\else
- \PackageError{eqexam}{Use of \string\bGrpANS\space
- only applies\MessageBreak to the problem* environment}{Please
- remove this \string\bGrpANS.}%
- \fi
- \ifWithinANSGrp
- \global\WithinANSGrpfalse
- \let\tb@next\relax
- \PackageError{eqexam}{\string\bGrpANS\space already open}
- {You issued an earlier \string\bGrpANS,
- but did not close it.}%
- \else
- \global\WithinANSGrptrue
- \global\ftb@isANSListOpenfalse
- \def\tb@next{\ANS}%
- \fi
- \tb@next
-}
-\newcommand{\eGrpANS}{%
- \if\probstar*\else
- \PackageError{eqexam}{Use of \string\eGrpANS\space
- only applies\MessageBreak to the problem* environment}{Please
- remove this \string\eGrpANS.}%
- \fi
- \ifWithinANSGrp
- \global\WithinANSGrpfalse
- \def\tb@next{\ANS}%
- \else
- \let\tb@next\relax
- \PackageError{eqexam}{\string\eGrpANS\space already closed}
- {You've issued two consecutive \string\eGrpANS\space
- commands,\MessageBreak either remove this one
- or the previous one.}%
- \fi
- \tb@next
-}
-\newcommand{\ANS}{\@ifstar{\let\tb@istart=1\tb@ANS}
- {\let\tb@istart=0\tb@ANS}}
-\def\ftb@defineInsSpan#1{\def\ftb@argi{#1}\ifx\ftb@argi\@empty
- \def\ftb@InsSpan{}\else\ftb@spanPrts{#1}%
- \def\ftb@InsSpan{\noexpand\hspace{-\labelsep}%
- \noexpand\textcolor{MRGPARTcolor}{--}\noexpand
- \makebox[\noexpand\tbmrgpartwdth]{\noexpand
- \tb@mrgPartFmt{\ftb@EndSpanPrts}}\eqe@hspannerMrg}\fi
-}
-\def\ftb@spanPrts#1{{%
- \advance\value{partno}by#1\relax
- \xdef\ftb@EndSpanPrts{\thepartno}}%
-}
-\def\ftb@EqeListPrtsFmt{\noexpand
- \makebox[\noexpand\tbmrgpartwdth]{\noexpand
- \tb@mrgPartFmt{\thepartno}}\nobreak
-}
-\def\ftb@OpenEqeListPrts{\noexpand
- \begin{eqeList}[\tb@wparts@len]{\noexpand
- \eqedsplyOnlyFrst{\theeqquestionnoi}%
- {\thepartno}\noexpand\eqe@hspannerMrg\ftb@EqeListPrtsFmt}%
-}
-\def\ftb@CloseEqeList#1{\expandafter\insMidMarg%
- \expandafter{\eqe@prehold#1\end{eqeList}}%
-}
-\newcommand{\grpANSDelimiter}{\textcolor{MRGPARTcolor}{,}\space}
-\newcommand{\tb@ANS}[2][]{%
- \ifisinstred
- \ifisinlineans
- \if\tb@istart0\ANSFmt{\theeqquestionnoi}{#2}\fi
- \fi
- \ifismarginans
- \ftb@defineInsSpan{#1}%
- \edef\eqe@prehold{%
- \if\probstar*%
- \ifftb@isANSListOpen
- \ftb@EqeListPrtsFmt\noexpand\eqe@hspannerMrg
- \else
- \noexpand\par\kern0pt\noindent
- \ftb@OpenEqeListPrts\ftb@InsSpan
- \fi
- \else
- \noexpand\begin{eqeList}%
- {\noexpand\tb@mrgDigitFmt{%
- \theeqquestionnoi\eqe@decPointMrg}}%
- \fi
- }%
- \ifWithinANSGrp\global\ftb@isANSListOpentrue\fi
- \ifWithinANSGrp
- \expandafter\insMidMarg\expandafter
- {\eqe@prehold#2\grpANSDelimiter}%
- \else
- \expandafter\insMidMarg%
- \expandafter{\eqe@prehold#2\end{eqeList}}%
- \global\ftb@isANSListOpenfalse
- \fi
- \fi % \ifismarginans
- \fi %\ifisinstred
-}
-\newenvironment{eqeList}[2][\tb@woparts@len]{\begin{list}{#2}{%
- \def\argi{#1}\setlength{\labelwidth}{#1}%
- \ifx\argi\tb@wparts@len
- \settowidth{\labelsep}{\eqe@prtsepMrg}\else
- \settowidth{\labelsep}{\eqe@hspannerMrg}\fi
- \setlength{\leftmargin}{\labelwidth+\labelsep}%
- \setlength{\parskip}{0pt}\setlength{\partopsep}{0pt}%
- \setlength{\topsep}{1pt}\setlength{\parsep}{0pt}%
- \setlength{\itemindent}{0pt}\setlength{\itemsep}{3pt}%
-}\item\relax}{\end{list}}
-\newcommand{\mrgDigitFmt}[1]{\def\tb@mrgDigitFmt##1{#1}}
-\mrgDigitFmt{#1}
-\definecolor{MRGPARTcolor}{named}{black}
-\newcommand{\mrgPartFmt}[1]{\def\tb@mrgPartFmt##1{#1}}
-\mrgPartFmt{\textcolor{MRGPARTcolor}{(\hfil#1\hfil)}}
-\definecolor{ANScolor}{rgb}{0,0,.8}
-\newcommand{\ANSFmt}[2]{\textcolor{ANScolor}{#2}}
-\def\eqe@decPointPrb{.} % decimal point of prob number
-\def\eqe@prtsepPrb{\ } % prob with parts, space after part
-\def\eqe@hspannerPrb{\ } % space after prob number
-\providecommand{\prbDecPt}[1]{\def\eqe@decPointPrb{#1}}
-\providecommand{\prbPrtsep}[1]{\def\eqe@prtsepPrb{#1}}
-\providecommand{\exPrtsep}[1]{\def\eqe@prtsepPrb{#1}}
-\providecommand{\prbNumPrtsep}[1]{\def\eqe@hspannerPrb{#1}}
-\def\eqedecPointSoln{.} % decimal point of prob number
-\def\eqe@prtsepSoln{\ } % prob with parts, space after part
-\def\eqe@hspannerSoln{\ } % space after prob number
-\newcommand{\solDecPt}[1]{\def\eqedecPointSoln{#1}}
-\newcommand{\solPrtsep}[1]{\def\eqe@prtsepSoln{#1}}
-\providecommand{\solNumPrtsep}[1]{\def\eqe@hspannerSoln{#1}}
-\def\eqe@decPointMrg{.} % decimal point of prob number
-\def\eqe@prtsepMrg{\ } % prob with parts, space after part
-\def\eqe@hspannerMrg{\ } % space after prob number
-\newcommand{\mrgDecPt}[1]{\def\eqe@decPointMrg{#1}}
-\newcommand{\mrgPrtsep}[1]{\def\eqe@prtsepMrg{#1}}
-\newcommand{\mrgNumPrtsep}[1]{\def\eqe@hspannerMrg{#1}}
-\newcommand{\setMarIndents}[3][\normalsize\normalfont]{{%
- \settowidth{\@tempdima}{#1#2\eqe@decPointMrg}%
- \xdef\tb@woparts@len{\the\@tempdima}%
- \settowidth{\@tempdima}%
- {#1#2\eqe@decPointMrg\eqe@hspannerMrg#3}%
- \xdef\tb@wparts@len{\the\@tempdima}%
- \settowidth{\@tempdima}{#1#3}%
- \xdef\tbmrgpartwdth{\the\@tempdima}%
-}}
-\setMarIndents{00}{(d)}
-\newdimen\solnGutter
-\newcommand{\setSolnIndent}[3][\normalsize\normalfont\bfseries]{%
- {\settowidth{\@tempdima}{#1#2\eqedecPointSoln\eqe@hspannerSoln}%
- \global\solnGutter\@tempdima
- \settowidth{\@tempdima}{#1#3}%
- \xdef\tbsolnpartwdth{\the\@tempdima}%
-}}
-\setSolnIndent{00}{(d)}
-\renewcommand{\setSolnMargins}[1]{%
- \ifdim\solnGutter=0pt \setlength\eqemargin{#1}\else
- \setlength\eqemargin{\solnGutter}\fi}
-\newcommand{\defaultSolnIndent}{\global\solnGutter=0pt}
-\defaultSolnIndent
-\renewcommand{\exlabelformat}{%
- \tbprbNumFmt{\theeqquestionnoi\eqe@decPointPrb}}
-\newcommand{\prbNumFmt}[1]{\def\tbprbNumFmt##1{#1\eqe@hspannerPrb}}
-\prbNumFmt{\textbf{#1}}
-\renewcommand{\exsllabelformat}{\string\tbsolWoPrtsFmt{%
- \theeqquestionnoi\string\eqedecPointSoln}}
-\renewcommand{\exsllabelformatwp}{\string\tbsolWPrtsFmt%
- {\string\eqedsplyOnlyFrst{\theeqquestionnoi}{\thepartno}}%
- {\thepartno}%
-}
-\newcommand{\solWoPrtsFmt}[1]{\def\tbsolWoPrtsFmt##1{%
- \makebox[0pt][r]{#1\eqe@hspannerSoln}}}
-\solWoPrtsFmt{\textbf{#1}}
-\newcommand{\solWPrtsFmt}[2]{\def\tbsolWPrtsFmt##1##2{%
- \makebox[0pt][r]{#1\eqe@hspannerSoln}%
- \makebox[\tbsolnpartwdth][l]{#2}\eqe@prtsepSoln%
-}}
-\solWPrtsFmt{\textbf{#1}}{(\hfil#2\hfil)}
-\newcommand{\solWPrtsFmt@hang}[2]{%
- \def\tbsolWPrtsFmt##1##2{%
- \makebox[0pt][r]{#1\eqe@prtsepSoln%
- \makebox[\tbsolnpartwdth][l]{#2}\eqe@hspannerSoln}%
-}}
-\let\bpartsmrk\relax
-\let\epartsmrk\relax
-\newcommand{\hangSolWPrtsFmt}[2]{%
- \def\prior@parts@hook{%
- \ifisleadin\else
- \writeToSolnFile{^^J\protect\bpartsmrk}\fi}%
- \def\post@parts@hook{%
- \writeToSolnFile{\protect\epartsmrk^^J}}%
- \def\bpartsmrk{\global\firstitemtrue\begin{eqepartsquestions}}%
- \def\epartsmrk{\end{eqepartsquestions}\global\firstitemfalse}%
- \let\solWPrtsFmt\solWPrtsFmt@hang
- \solWPrtsFmt{#1}{#2}%
-}
-\newif\ifexamenv \examenvfalse
-\newif\iffirstemit \firstemittrue
-\newtoks\txtbkt@ks \txtbkt@ks={}
-\newtoks\txtbkt@ksi \txtbkt@ksi={}
-\newbox\txtbkb@xb@t
-\newbox\txtbkb@xt@p
-\newbox\txtbkb@xh@ld
-\let\tbTopMargin\relax
-\let\tbBotMargin\relax
-\long\def\tb@addtoTopMargin#1{\txtbkt@ksi={#1}%
- \edef\eqe@tmphold{\the\txtbkt@ksi\the\txtbkt@ks}%
- \global\txtbkt@ks=\expandafter{\eqe@tmphold}%
-}
-\newcommand{\tb@addtoMargin}[1]{%
- \edef\eqe@tmphold{\the\txtbkt@ks}%
- \global\txtbkt@ks=\expandafter{\eqe@tmphold#1}%
-}
-\newcommand{\tb@showlsols}{\includecomment{lsol}\excludecomment{ssol}}
-\newcommand{\tb@showssols}{\includecomment{ssol}\excludecomment{lsol}}
-\let\tb@soln@choice\tb@showssols
-\newcommand{\clearTopMargin}{\global\let\tbTopMargin\relax}
-\newcommand{\setTopMargin}[1]{%
- \gdef\tbTopMargin{\color@begingroup\normalcolor
- #1\color@endgroup}%
- \gdef\tbSaveTopMargin{\color@begingroup\normalcolor
- #1\color@endgroup}}
-\let\tbTopMargin\@empty
-\let\tbSaveTopMargin\@empty
-\newcommand{\clearBotMargin}{\global\let\tbBotMargin\relax}
-\newcommand{\setBotMargin}[1]{\gdef\tbBotMargin{#1}%
- \gdef\tbSaveBotMargin{#1}}
-\let\tbBotMargin\@empty
-\let\tbSaveBotMargin\@empty
-\newcommand{\restoreLastTopMargin}{\expandafter\setTopMargin
- \expandafter{\tbSaveTopMargin}}
-\newcommand{\restoreLastBotMargin}{\expandafter\setBotMargin
- \expandafter{\tbSaveBotMargin}}
-\newcommand{\MarParBoxFmt}{\normalsfcodes
- \normalfont\normalsize\normalbaselines\parindent0pt
- \vbadness\@Mi \hbadness5000 \tolerance9999
- \parskip0pt\raggedright %\spaceskip=0pt\xspaceskip=0pt
- \setlength{\linewidth}{\tbmarparboxwidth}%
-}
-\newlength\tbmarparboxwidth
-\setlength\tbmarparboxwidth{1sp}
-\definecolor{MidMargcolor}{rgb}{0,0,.8}
-\newcommand{\midMargFmt}[1]{%
- \def\tb@midMargFmt{\normalfont\normalsize\normalcolor#1}}
-\midMargFmt{\color{MidMargcolor}}
-\def\eqe@MarParBox#1{\lower\footskip\hbox{%
- \leavevmode\parbox[b][\textheight+\footskip][t]%
- {\tbmarparboxwidth}{\tb@midMargFmt#1}}} %
-\newcommand{\insMidMarg}[1]{%
- \let\eqe@margininsert\@empty
- \expandafter\tb@addtoMargin\expandafter{\eqe@margininsert#1}%
-}
-\newcommand{\tbPreMarginHeader}{\par\penalty0 \kern3pt}
-\newcommand{\tbPostMarginHeader}{\par\nobreak}
-\definecolor{HEADERcolor}{named}{black}
-\newcommand{\cngMargHeadColorTo}[1]{\insMidMarg{\gdef\tb@MHC{#1}}}
-\newcommand{\resetMargHeadColor}{\insMidMarg{\gdef\tb@MHC{HEADERcolor}}}
-\resetMargHeadColor
-\newcommand{\tbMarginHeaderFmt}[1]{\textcolor{\tb@MHC}{\textbf{#1}}}
-\newcommand{\insMargHead}[2][]{% dps
- \insMidMarg{\tb@marginHeader{#1}{#2}}}
-\newcommand{\insProbHead}[2][]{%
- \def\tb@argi{#1}\ifx\tb@argi\@empty
- \protected@xdef\currProbHead{#2 \tbcontinued}\else
- \protected@xdef\currProbHead{#1}\fi
- \ifisinstred\ifismarginans
- \insMidMarg{\tb@marginProbHeader{#1}{#2}}\fi\fi
-}
-\newcommand{\tb@marginProbHeader}[2]{%
- \def\tb@argi{#1}\ifx\tb@argi\@empty
- \tb@marginHeader{#2 \tbcontinued}{#2}\else
- \tb@marginHeader{#1}{#2}\fi
-}
-\newcommand{\tb@marginHeader}[2]{\tbPreMarginHeader
- \tbMarginHeaderFmt{#2}\def\tb@argi{#1}\ifx\tb@argi\@empty
- \mark{#2}\else\mark{#1}\fi\tbPostMarginHeader
-}
-\newcommand{\tbcontinued}{(cont.)}
-\newcommand{\marparboxwidth}[1]{%
- \setlength\tbmarparboxwidth{#1}%
- \setlength{\marginparwidth}{\tbmarparboxwidth}%
- \tbMakeFinalCalcs
-}
-\@onlypreamble\marparboxwidth
-\newcommand{\chkmarginboxwidth}{%
- \ifdim\tbmarparboxwidth=1sp \PackageError{eqexam}%
- {You have not set the value of\MessageBreak
- \string\marparboxwidth}%
- {Define the \string\marparboxwidth\space command}\fi
-}
-\newif\ifmarginsonleft \marginsonleftfalse
-\newcommand{\tbSetupForMargins}{%
- \ifmarginsonleft
- \setlength{\oddsidemargin}{\tbmarparboxwidth+\marginparsep}%
- \setlength{\evensidemargin}{\oddsidemargin}%
- \setlength{\textwidth}{\paperwidth-2in-\oddsidemargin}%
- \else
- \setlength{\oddsidemargin}{0pt}%
- \setlength{\evensidemargin}{\tbmarparboxwidth+\marginparsep}%
- \setlength{\textwidth}{%
- \paperwidth-2in-\oddsidemargin-\evensidemargin}%
- \fi
-}
-\newcommand{\tbplaceMargins}{{%
- \setlength{\@tempdima}{%
- \paperheight-1in-\topmargin-\headheight-\headsep-\textheight}%
- \xdef\@evenlly{\strip@pt\@tempdima}%
- \xdef\@oddlly{\@evenlly}%
- \setlength{\@tempdima}{1in}%
- \xdef\@evenllx{\strip@pt\@tempdima}%
- \ifmarginsonleft\else
- \setlength{\@tempdima}{1in+\textwidth+\marginparsep}\fi
- \xdef\@oddllx{\strip@pt\@tempdima}%
-}}
-\newcommand{\tbMakeFinalCalcs}{%
- \tbSetupForMargins
- \tbplaceMargins
-}
-\newlength\tbminskipbtnlayers
-\setlength{\tbminskipbtnlayers}{6pt}
-\newif\ifiscarryover \iscarryoverfalse
-\newenvironment{carryOverFmt}[1]{#1\let\tb@carryoverFmt\@empty
- \c@rryoverFmt{#1}}{}
-\def\c@rryoverFmt#1{%
- \ifx\tb@carryoverFmt\@empty
- \global\let\tb@carryoverFmt\@empty
- \xdef\tb@co@page{\thepage}%
- \gdef\tb@carryoverFmt{\ifnum\thepage>\tb@co@page\relax
- #1\global\let\tb@carryoverFmt\@empty\fi}%
- \fi
-}
-\let\tb@carryoverFmt\@empty
-\let\tb@rest@reMarginFmt\relax
-\def\tb@insertCarryOver#1{%
- \let\tb@rest@reMarginFmt\relax
- \ifiscarryover\ifx\tb@carryoverFmt\@empty\else
- \let\tb@rest@reMarginFmt\tb@midMargFmt
- \tb@carryoverFmt\fi\fi
- #1 \tb@rest@reMarginFmt
-}
-\newif\iftb@shipoutPermitted \tb@shipoutPermittedtrue
-\newcommand{\turnOnFTBShipout}{\global\tb@shipoutPermittedtrue}
-\newcommand{\turnOffFTBShipout}{\global\tb@shipoutPermittedfalse}
-\newcommand{\eqe@tb@shipout}{\iftb@shipoutPermitted
- \ifnum\arabic{page}=\tblastpageshipped
- \let\tb@so@next\relax\else
- \xdef\tblastpageshipped{\arabic{page}}%
- \def\tb@so@next{\eqe@tb@ship@ut}\fi
- \expandafter\tb@so@next\fi
-}
-\def\tblastpageshipped{-100}
-\newcommand{\eqe@tb@ship@ut}{%
- \fboxsep=0pt\setlength{\unitlength}{1pt}%
- \global\setbox\txtbkb@xb@t=\vbox\bgroup
- \color@begingroup
- \hsize=\tbmarparboxwidth
- \vsize=\textheight
- \MarParBoxFmt
- \csname tbTopMargin\endcsname
- \vskip\tbminskipbtnlayers
-\set@typeset@protect
- \the\txtbkt@ks
- \color@endgroup\vfil
- \egroup
- \global\setbox\txtbkb@xt@p=\vsplit\txtbkb@xb@t to\textheight
- \ifvoid\txtbkb@xb@t\global\iscarryoverfalse
- \else\global\iscarryovertrue\fi
- \ifx\tbBotMargin\relax\else
- \bgroup\setbox2=\vbox{%
- \color@begingroup\normalcolor
- \hsize=\tbmarparboxwidth\kern0pt
- \MarParBoxFmt\csname tbBotMargin\endcsname
- \color@endgroup
- \kern0pt
- }%
- \dimen0=\textheight
- \advance\dimen0-\ht\txtbkb@xh@ld
- \advance\dimen0-\tbminskipbtnlayers
- \setbox0=\vsplit\txtbkb@xt@p to \dimen0
- \global\setbox\txtbkb@xb@t=\vbox{%
- \unvbox\txtbkb@xt@p\unvbox\txtbkb@xb@t}%
- \global\setbox\txtbkb@xt@p=\vbox{\unvbox0
- \vfill\vskip\tbminskipbtnlayers
- \vfil\unvbox2\relax}\egroup
- \fi
- \ifodd\value{page}%
- \put(\@oddllx,\@oddlly){%
- \eqe@MarParBox{\unvbox\txtbkb@xt@p}}\else
- \put(\@evenllx,\@evenlly){%
- \eqe@MarParBox{\unvbox\txtbkb@xt@p}}\fi
- \global\txtbkt@ks={}\ifvoid\txtbkb@xb@t\else
- \if!\splitbotmark!\global\let\tb@sbm@exp\relax\else
- \xdef\tb@sbm@exp{\noexpand\tbPreMarginHeader
- \noexpand\tbMarginHeaderFmt{\splitbotmark}%
- \noexpand\tbPostMarginHeader
- \noexpand\par\kern3pt}%
- \fi
- \global\txtbkt@ks=\expandafter{\tb@sbm@exp
- \tb@insertCarryOver{\unvbox\txtbkb@xb@t}}%
- \fi
-}
-\newcommand{\insertpageifcarryover}[1][\null]{%
- \newpage
- \ifiscarryover\def\eqeifnext{\csname iftrue\endcsname}%
- \PackageInfo{eqexam}{Carry over of content in margin
- from page \thepage.\MessageBreak Creating a blank page}\else
- \def\eqeifnext{\csname iffalse\endcsname}\fi\eqeifnext#1\fi}
-\newcommand{\setFullWidthHeader}{%
- \setlength{\@tempdima}{%
- \evensidemargin+\tbmarparboxwidth+\marginparsep}%
- \edef\@headoffset{\the\@tempdima}%
- \def\@evenhead{\makebox[0pt]{\makebox[0pt][l]
- {\thepage}\hspace{\@headoffset}}\hfil\slshape\leftmark}%
- \ifmarginsonleft
- \def\@oddhead{\makebox[0pt]{\makebox[0pt][l]
- {\slshape\rightmark}\hspace{\@headoffset}}\hfil\thepage}%
- \else
- \def\@oddhead{{\slshape\rightmark}\hfil\makebox[0pt]
- {\hspace{\@headoffset}\makebox[0pt][r]{\thepage}}}%
- \fi
-}
-\newif\ifchapterexercises \chapterexercisesfalse
-\let\chaptersolutions\relax
-\def\tb@EndOfChapterExercises{%
- \let\include@solutions@chapter\include@solutions
- \def\includeexersolutions{%
- \include@solutions@chapter
- \global\let\include@solutions\relax
- }%
- \def\chaptersolutions{%
- \includeexersolutions
- \immediate\closeout\ex@solns
- \newwrite \ex@solns \global\let\quiz@solns\ex@solns
- \immediate\openout \ex@solns \jobname.sol
- \ifvspacewithsolns\writeAllAnsAtEnd\fi
- }%
-}
-\def\writeallsolutions{\let\chaptersolutions\relax}
-\excludecomment{afterChapSolns}
-\def\NewCommentCutFile{\def\CommentCutFile{solnsAtEnd.cut}}
-\def\RestoreCommentCutFile{\def\CommentCutFile{comment.cut}}
-\@ifundefined{BeforeIncludedComment}{%
-\long\def\solnsAtEndcomment
- #1{\message{Special comment '#1'}%
- \csarg\def{#1}{\endgroup \message{Processing '#1' comment.}%
- \NewCommentCutFile\SetUpCutFile
- % #2 before SetUp, so we can do renaming.
- \message{Comment '#1' writing to \CommentCutFile.}%
- \ProcessComment{#1}}%
- \csarg\def{After#1Comment}{\immediate\closeout\CommentStream
- \RestoreCommentCutFile\input{solnsAtEnd.cut}\relax}%
- \CommentEndDef{#1}}
-}{\long\def\solnsAtEndcomment
- #1{\message{Special comment '#1'}%
- \csarg\def{After#1Comment}{\immediate\closeout\CommentStream
- \RestoreCommentCutFile\input{solnsAtEnd.cut}\relax}%
- \csarg\def{#1}{\NewCommentCutFile\BeforeIncludedComment\relax
- \ProcessComment{#1}}%
- \CommentEndDef{#1}}
- }
-\solnsAtEndcomment{solnsAtEnd}
-\newcommand{\exercisesAtEndOfChapter}{%
- \ifeq@nosolutions\else
- \typeout{^^J!!!!!Executing in chapter solutions!!!!!^^J}
- \chapterexercisestrue\tb@EndOfChapterExercises
- \ifchapterexercises
- \csarg\let{solnsAtEnd}\@gobble
- \excludecomment{solnsAtEnd}%
- \csarg\let{AftersolnsAtEndComment}\relax
- \includecomment{afterChapSolns}\else
- \excludecomment{afterChapSolns}\fi
- \fi
-}
-\@onlypreamble\exercisesAtEndOfChapter
-\newcommand{\setFullWidthLayout}{%
- \saveBasicLayoutParams
- \setlength{\oddsidemargin}{0in}%
- \setlength{\evensidemargin}{\oddsidemargin}%
- \setlength{\textwidth}{\paperwidth-2in}%
- \setlength{\linewidth}{\paperwidth-2in}%
- \setlength{\columnseprule}{0pt}%
- \def\@evenhead{\thepage\hfil\slshape\leftmark}%
- \def\@oddhead{{\slshape\rightmark}\hfil\thepage}%
-}
-\newenvironment{fullwidthtext}{%
-\begin{list}{}{%
- \setlength{\labelwidth}{0pt}\setlength{\labelsep}{0pt}%
- \setlength{\itemindent}{0pt}\setlength{\itemsep}{0pt}%
- \setlength{\topsep}{0pt}\setlength{\parsep}{0pt}%
- \setlength{\listparindent}{\parindent}%
- \setlength{\leftmargin}{0pt}\setlength{\rightmargin}{0pt}
-}\item\relax}{\end{list}}
-\newcommand{\restorePageLayout}{\newpage
- \setlength{\oddsidemargin}{\tb@osms}
- \setlength\evensidemargin{\tb@esms}
- \setlength{\textwidth}{\tb@tws}
- \setlength{\linewidth}{\tb@lws}
- \setlength{\columnseprule}{\tb@csr}
-}
-\newcommand{\saveBasicLayoutParams}{%
- \xdef\tb@osms{\the\oddsidemargin}%
- \xdef\tb@esms{\the\evensidemargin}%
- \xdef\tb@tws{\the\textwidth}%
- \xdef\tb@lws{\the\linewidth}%
- \xdef\tb@csr{\the\columnseprule}%
-}
-\newcommand{\initChapAfterSolns}{\newpage
- \clearTopMargin\clearBotMargin
- \setFullWidthLayout
-}
-\newcommand{\restoreFromChapAfterSolns}{\newpage
- \restorePageLayout\setFullWidthHeader
-}
-\eqequestopsep{0pt}
-\eqequesparsep{0pt}
-\eqequesitemsep{0pt}
-\eqequeslistparindent{0pt}
-\renewenvironment{eqequestions}{%
- \begin{list}{}{%
- \ifwithsoldoc\let\solnItemMngt\eqeSolnItemMngt\fi
- \setlength{\labelwidth}{\eqemargin}%
- \setlength{\parsep}{\eqeques@parsep}%
- \setlength{\itemsep}{\eqeques@itemsep}
- \setlength{\topsep}{\eqeques@topsep}%
- \setlength{\itemindent}{0pt}%
- \setlength{\listparindent}{\eqeques@listparindent}%dps%
- \ifwithsoldoc\settowidth{\labelsep}{\eqe@hspannerSoln}\else
- \settowidth{\labelsep}{\eqe@hspannerPrb}\fi
- \setlength{\leftmargin}{\labelwidth}%
- }\ifwithsoldoc\global\firstitemtrue\fi\item\relax}{\end{list}}
-\newcommand{\eqepquestopsep}[1]{\def\eqepques@topsep{#1}}
-\newcommand{\eqepquesparsep}[1]{\def\eqepques@parsep{#1}}
-\newcommand{\eqepquesitemsep}[1]{\def\eqepques@itemsep{#1}}
-\eqepquestopsep{\eqeques@itemsep}
-\eqepquesparsep{\eqeques@parsep}
-\eqepquesitemsep{\eqeques@itemsep}
-\newenvironment{eqepartsquestions}{%
- \begin{list}{}{%
- \settowidth{\labelwidth}{\eqe@prtsepSoln\hspace{\tbsolnpartwdth}}
- \setlength{\parsep}{\eqepques@parsep}%
- \setlength{\itemsep}{\eqepques@itemsep}%
- \setlength{\topsep}{\eqepques@topsep}%
- \setlength{\itemindent}{0pt}%
- \settowidth{\labelsep}{\eqe@hspannerSoln}
- \setlength{\leftmargin}{\labelwidth}%
- }\item\relax}{\end{list}}
-\long\def\gobbletoEndEXt#1\endeqEXt{\@gobbletwo}
-\def\eqExtArg{\theeqquestionnoi}
-\if\load@exerquiz\eqe@NO\DoNotFitItIn\fi
-\let\fillInFormatDefault\@empty
-\def\exerSolnsHeadnToc{}
-\renewcommand{\exerSolnInput}{%
- \let\webnewpage\relax
- \ifsolutionsonly\else\immediate\closeout\ex@solns\fi
- \ifeq@nosolutions\else\newpage % 2012-03-14
- \iftherearesolutions\eq@solutionshook\eqsolutionshook
- \ifsolutionsonly\else\newpage\eq@solutionshook
- \eqsolutionshook\fi
- \ifx\webnewpage\relax
- \def\webnewpage{\let\webnewpage\newpage}%
- \fi
- \priorexsectitle\exerSolnsHeadnToc\priorexslinput
- \InputIfFileExists{\jobname.sol}{}{\PackageWarning{exerquiz}
- {!!! Solutions to exercises not found}}%
- \fi
- \fi
-}
-\setcounter{partno}{1}\edef\firstPartLtr{\thepartno}
-\newif\iffrstProbNumShown\frstProbNumShownfalse
-\def\tb@insertDecPoint{\ifwithsoldoc\eqedecPointSoln\else
- \eqe@decPointMrg\fi}
-\newcommand{\eqedsplyOnlyFrst}[2]{\def\thisPart{#2}%
- \ifx\thisPart\firstPartLtr\global\frstProbNumShowntrue
- \tb@mrgDigitFmt{#1}\tb@insertDecPoint\else
- \iffrstProbNumShown\tb@GenProbNum{#1}\else
- \global\frstProbNumShowntrue\tb@mrgDigitFmt{#1}%
- \tb@insertDecPoint\fi\fi\global\eqeGenProbNumfalse
-}
-\newif\ifeqeGenProbNum \eqeGenProbNumfalse
-\newcommand{\displayProbNumOnce}{\global\eqeGenProbNumtrue} %
-\def\tb@GenProbNum#1{\ifeqeGenProbNum#1\tb@insertDecPoint\else
- \phantom{#1\tb@insertDecPoint}\fi}%
-\def\sq@priorhook{\medskip}
-\def\default@fvsizeskip{.1}
-\aboveexskip{0pt}
-\belowexskip{0pt}
-\renewcommand\belowexsolnskip{{}}
-\renewcommand\exerSolnHeader[3]{%
- \ifeqforpaper\else\webnewpage\fi%\par
- \noindent\@ifundefined{hypertarget}
- {#3}{\hypertarget{#2}{#3}\relax}\solnhspace
-}
-\def\nNumberOfP@rts{0}
-\renewcommand{\preExamSolnHead}{\medbreak\noindent}
-\renewcommand{\examSolnHeadFmt}[1]{\textbf{#1}}
-\renewcommand{\postExamSolnHead}{\smallskip}
-\newcommand{\wrtChapSolnHead}[1]{%
- \writeToSolnFile{%
- \protect\preChapSolnHead
- \protect\chapHeadSolnFmt{\protect\ftbFmtChapter{\thechapter}#1}%
- \protect\postChapSolnHead
-}}
-\newcommand{\preChapSolnHead}{\bigbreak\noindent}
-\newcommand{\chapHeadSolnFmt}[1]{{\large\textbf{#1}}}
-\newcommand{\postChapSolnHead}{\medbreak}
-\newcommand{\ftbFmtChapter}[1]{\chaptername\space#1.\space\ignorespaces}
-\newcommand{\convertChapHeadToChapters}{%
- \let\preChapSolnHead\relax
- \let\chapHeadSolnFmt\chapter
- \let\ftbFmtChapter\@gobble
- \let\postChapSolnHead\relax
-}
-\newcommand{\probSet}[1]{Problem Set #1}
-\newcommand{\annotPage}{\protect\annotThePage{\thepage}}
-\newcommand{\annotThePage}[1]{\space(page\protect~#1)}
-\def\noProbHeader{NPH}
-\newenvironment{probset}[2][\probSet{\thesection}]{%
- \exam[#2]{\autoExamName}\ifx#1\noProbHeader\else
- \protected@edef\ftb@tmp@exp{\noexpand\insProbHead{#1}}%
- \ftb@tmp@exp\fi}{\endexam}
-\newcounter{exampleno}[section]
-\renewcommand{\theexampleno}{\arabic{section}.\arabic{exampleno}}
-\newcommand{\examplenoname}{Example}
-\newenvironment{example}{%\medskip
- \belowexskip{\medskipamount}\aboveexskip{\medskipamount}%
- \makeRoomForProb{\@nbaselineskip\baselineskip}{}%
- \renewcommand\exlabel{Example}%
- \renewcommand\exlabelformat{\textbf{\exlabel~\theexampleno.}}%
- \let\eq@fititin\eqfititin
- \renewcommand\exrtnlabelformat{$\square$}%
- \def\eqexheader@wrapper{\eqexheader}%
- \SolutionsAfter
- \begin{exercise}[exampleno]}{\end{exercise}}
-\newenvironment{example*}{%\medskip
- \belowexskip{\medskipamount}\aboveexskip{\medskipamount}%
- \makeRoomForProb{\@nbaselineskip\baselineskip}{}%
- \renewcommand\exlabel{Example}%
- \renewcommand\exlabelformat{\textbf{\exlabel~\theexampleno.}}%
- \let\eq@fititin\eqfititin
- \renewcommand\exrtnlabelformat{$\square$}%
- \def\eqexheader@wrapper{\eqexheader}%
- \SolutionsAfter
- \begin{exercise*}[exampleno]}{\end{exercise*}}
-\setDefaultfvsizeskip{.1}
-\nbaselineskip{4}
-\newcommand{\ftbInputBookAux}[1]{%
- \filename@parse{#1}\@ifundefined{filename@ext}%
- {\def\filename@ext{tex}}{}%
- \xdef\tbBaseName{\filename@base}%
- \xdef\tbSourceFile{\filename@base.\filename@ext}%
- \let\save@writefile\@writefile
- \let\@writefile\@gobbletwo
- \let\save@setckpt\@setckpt
- \let\@setckpt\@gobbletwo
- \makeatletter
- \InputIfFileExists{\tbBaseName.aux}{%
- \PackageInfo{eqexam}
- {Inputting auxiliary files of\MessageBreak\tbSourceFile}%
- }{%
- \PackageError{eqexam}
- {Auxiliary files for \tbSourceFile\space were not found}
- {Compile the source file \tbSourceFile\space
- three times\MessageBreak%
- to create the required auxiliary files.}%
- }%
- \makeatother
- \global\let\ftblabel\label
- \let\label\@gobble
- \let\@writefile\save@writefile
- \let\@setckpt\save@setckpt
-}
-\@onlypreamble\ftbInputBookAux
-\newcommand{\restorelabel}{\global\let\label\ftblabel}
-\newcommand{\gobblelabel}{\let\label\@gobble}
-\newcommand{\ftbInputSolnFiles}[1][\tbBaseName.sol]{%
- \filename@parse{#1}\@ifundefined{filename@ext}%
- {\def\filename@ext{sol}}{}%
- \xdef\tbBaseName{\filename@base}%
- \xdef\tbSourceFile{\filename@base.\filename@ext}%
- \InputIfFileExists{\tbBaseName.sol}{%
- \PackageInfo{eqexam}
- {Inputting solutions file \tbBaseName.sol\MessageBreak}%
- }{%
- \PackageError{eqexam}
- {Solutions file for \tbSourceFile\space was not found}%
- {Compile the source files three times}%
- }%
-}
-\endinput
-%%
-%% End of file `eqtextb.def'.
+%%
+%% This is file `eqtextb.def',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% eqexam.dtx (with options: `copyright,textbook')
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% eqexam.sty package, %%
+%% Copyright (C) 2005--2018 D. P. Story %%
+%% dpstory@uakron.edu %%
+%% %%
+%% This program can redistributed and/or modified under %%
+%% the terms of the LaTeX Project Public License %%
+%% Distributed from CTAN archives in directory %%
+%% macros/latex/base/lppl.txt; either version 1.2 of %%
+%% the License, or (at your option) any later version. %%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\ProvidesFile{eqtextb.def}
+ [2016/01/18 v4.6 Cmds used by the fortextbook option (dps)]
+\define@boolkey{eqe@tbopts}[is]{instred}[true]{}
+\define@boolkey{eqe@tbopts}[is]{studented}[true]{%
+ \ifisstudented
+ \tbfilterOutEvenNums
+ \fi
+}
+\def\tb@beginexam@code{%
+ \ifisinstred\answerkeytrue\eq@proofingtrue\fi}
+\newcommand{\tbfilterOutEvenNums}{%
+ \def\eqEXt##1##2{\ifodd##1\let\eqe@next\relax\else
+ \def\eqe@next{\gobbletoEndEXt}\fi\eqe@next}%
+}
+\newcommand{\tballowAllNums}{%
+ \let\eqEXt\@gobbletwo
+ \let\endeqEXt\relax
+}
+\define@boolkey{eqe@tbopts}[is]{marginans}[true]{}
+\define@boolkey{eqe@tbopts}[is]{inlineans}[true]{}
+\define@boolkey{eqe@tbopts}[]{marginsonleft}[true]
+ {\@mparswitchfalse\reversemarginpar}
+\define@boolkey{eqe@tbopts}[show]{ssols}[true]{}
+\define@boolkey{eqe@tbopts}[show]{lsols}[true]{%
+ \ifshowlsols\let\tb@soln@choice\tb@showlsols\fi}
+\newcommand{\textbookOpts}[1]{\setkeys{eqe@tbopts}{#1}%
+ \ifisinstred\global\isstudentedfalse\else
+ \ifisstudented\global\isinstredfalse
+ \fi\fi
+ \ifdim\tbmarparboxwidth=1sp\else
+ \expandafter\tbMakeFinalCalcs\fi
+}
+\isstudentedtrue
+\isinstredfalse
+\ismarginansfalse
+\isinlineansfalse
+\@onlypreamble{\textbookOpts}
+\newcommand{\turnOffMarAnsOnAnsInline}{%
+ \global\ismarginansfalse\global\isinlineanstrue
+ \insMidMarg{\global\ismarginansfalse
+ \global\isinlineanstrue}%
+}
+\newcommand{\turnOnMarAnsOffAnsInline}{%
+ \global\ismarginanstrue\global\isinlineansfalse
+ \insMidMarg{\global\ismarginanstrue
+ \global\isinlineansfalse}%
+}
+\newcommand{\toggleInstrAns}{%
+ \ifisinstred\ifismarginans
+ \global\ismarginansfalse\global\isinlineanstrue
+ \insMidMarg{\global\ismarginansfalse
+ \global\isinlineanstrue}%
+ \else
+ \global\ismarginanstrue\global\isinlineansfalse
+ \insMidMarg{\global\ismarginanstrue
+ \global\isinlineansfalse}%
+ \fi\fi
+}
+\newif\ifWithinANSGrp\WithinANSGrpfalse
+\newif\ifftb@isANSListOpen\ftb@isANSListOpenfalse
+\newcommand{\bGrpANS}{%
+ \if\probstar*\else
+ \PackageError{eqexam}{Use of \string\bGrpANS\space
+ only applies\MessageBreak to the problem* environment}{Please
+ remove this \string\bGrpANS.}%
+ \fi
+ \ifWithinANSGrp
+ \global\WithinANSGrpfalse
+ \let\tb@next\relax
+ \PackageError{eqexam}{\string\bGrpANS\space already open}
+ {You issued an earlier \string\bGrpANS,
+ but did not close it.}%
+ \else
+ \global\WithinANSGrptrue
+ \global\ftb@isANSListOpenfalse
+ \def\tb@next{\ANS}%
+ \fi
+ \tb@next
+}
+\newcommand{\eGrpANS}{%
+ \if\probstar*\else
+ \PackageError{eqexam}{Use of \string\eGrpANS\space
+ only applies\MessageBreak to the problem* environment}{Please
+ remove this \string\eGrpANS.}%
+ \fi
+ \ifWithinANSGrp
+ \global\WithinANSGrpfalse
+ \def\tb@next{\ANS}%
+ \else
+ \let\tb@next\relax
+ \PackageError{eqexam}{\string\eGrpANS\space already closed}
+ {You've issued two consecutive \string\eGrpANS\space
+ commands,\MessageBreak either remove this one
+ or the previous one.}%
+ \fi
+ \tb@next
+}
+\newcommand{\ANS}{\@ifstar{\let\tb@istart=1\tb@ANS}
+ {\let\tb@istart=0\tb@ANS}}
+\def\ftb@defineInsSpan#1{\def\ftb@argi{#1}\ifx\ftb@argi\@empty
+ \def\ftb@InsSpan{}\else\ftb@spanPrts{#1}%
+ \def\ftb@InsSpan{\noexpand\hspace{-\labelsep}%
+ \noexpand\textcolor{MRGPARTcolor}{--}\noexpand
+ \makebox[\noexpand\tbmrgpartwdth]{\noexpand
+ \tb@mrgPartFmt{\ftb@EndSpanPrts}}\eqe@hspannerMrg}\fi
+}
+\def\ftb@spanPrts#1{{%
+ \advance\value{partno}by#1\relax
+ \xdef\ftb@EndSpanPrts{\thepartno}}%
+}
+\def\ftb@EqeListPrtsFmt{\noexpand
+ \makebox[\noexpand\tbmrgpartwdth]{\noexpand
+ \tb@mrgPartFmt{\thepartno}}\nobreak
+}
+\def\ftb@OpenEqeListPrts{\noexpand
+ \begin{eqeList}[\tb@wparts@len]{\noexpand
+ \eqedsplyOnlyFrst{\theeqquestionnoi}%
+ {\thepartno}\noexpand\eqe@hspannerMrg\ftb@EqeListPrtsFmt}%
+}
+\def\ftb@CloseEqeList#1{\expandafter\insMidMarg%
+ \expandafter{\eqe@prehold#1\end{eqeList}}%
+}
+\newcommand{\grpANSDelimiter}{\textcolor{MRGPARTcolor}{,}\space}
+\newcommand{\tb@ANS}[2][]{%
+ \ifisinstred
+ \ifisinlineans
+ \if\tb@istart0\ANSFmt{\theeqquestionnoi}{#2}\fi
+ \fi
+ \ifismarginans
+ \ftb@defineInsSpan{#1}%
+ \edef\eqe@prehold{%
+ \if\probstar*%
+ \ifftb@isANSListOpen
+ \ftb@EqeListPrtsFmt\noexpand\eqe@hspannerMrg
+ \else
+ \noexpand\par\kern0pt\noindent
+ \ftb@OpenEqeListPrts\ftb@InsSpan
+ \fi
+ \else
+ \noexpand\begin{eqeList}%
+ {\noexpand\tb@mrgDigitFmt{%
+ \theeqquestionnoi\eqe@decPointMrg}}%
+ \fi
+ }%
+ \ifWithinANSGrp\global\ftb@isANSListOpentrue\fi
+ \ifWithinANSGrp
+ \expandafter\insMidMarg\expandafter
+ {\eqe@prehold#2\grpANSDelimiter}%
+ \else
+ \expandafter\insMidMarg%
+ \expandafter{\eqe@prehold#2\end{eqeList}}%
+ \global\ftb@isANSListOpenfalse
+ \fi
+ \fi % \ifismarginans
+ \fi %\ifisinstred
+}
+\newenvironment{eqeList}[2][\tb@woparts@len]{\begin{list}{#2}{%
+ \def\argi{#1}\setlength{\labelwidth}{#1}%
+ \ifx\argi\tb@wparts@len
+ \settowidth{\labelsep}{\eqe@prtsepMrg}\else
+ \settowidth{\labelsep}{\eqe@hspannerMrg}\fi
+ \setlength{\leftmargin}{\labelwidth+\labelsep}%
+ \setlength{\parskip}{0pt}\setlength{\partopsep}{0pt}%
+ \setlength{\topsep}{1pt}\setlength{\parsep}{0pt}%
+ \setlength{\itemindent}{0pt}\setlength{\itemsep}{3pt}%
+}\item\relax}{\end{list}}
+\newcommand{\mrgDigitFmt}[1]{\def\tb@mrgDigitFmt##1{#1}}
+\mrgDigitFmt{#1}
+\definecolor{MRGPARTcolor}{named}{black}
+\newcommand{\mrgPartFmt}[1]{\def\tb@mrgPartFmt##1{#1}}
+\mrgPartFmt{\textcolor{MRGPARTcolor}{(\hfil#1\hfil)}}
+\definecolor{ANScolor}{rgb}{0,0,.8}
+\newcommand{\ANSFmt}[2]{\textcolor{ANScolor}{#2}}
+\def\eqe@decPointPrb{.} % decimal point of prob number
+\def\eqe@prtsepPrb{\ } % prob with parts, space after part
+\def\eqe@hspannerPrb{\ } % space after prob number
+\providecommand{\prbDecPt}[1]{\def\eqe@decPointPrb{#1}}
+\providecommand{\prbPrtsep}[1]{\def\eqe@prtsepPrb{#1}}
+\providecommand{\exPrtsep}[1]{\def\eqe@prtsepPrb{#1}}
+\providecommand{\prbNumPrtsep}[1]{\def\eqe@hspannerPrb{#1}}
+\def\eqedecPointSoln{.} % decimal point of prob number
+\def\eqe@prtsepSoln{\ } % prob with parts, space after part
+\def\eqe@hspannerSoln{\ } % space after prob number
+\newcommand{\solDecPt}[1]{\def\eqedecPointSoln{#1}}
+\newcommand{\solPrtsep}[1]{\def\eqe@prtsepSoln{#1}}
+\providecommand{\solNumPrtsep}[1]{\def\eqe@hspannerSoln{#1}}
+\def\eqe@decPointMrg{.} % decimal point of prob number
+\def\eqe@prtsepMrg{\ } % prob with parts, space after part
+\def\eqe@hspannerMrg{\ } % space after prob number
+\newcommand{\mrgDecPt}[1]{\def\eqe@decPointMrg{#1}}
+\newcommand{\mrgPrtsep}[1]{\def\eqe@prtsepMrg{#1}}
+\newcommand{\mrgNumPrtsep}[1]{\def\eqe@hspannerMrg{#1}}
+\newcommand{\setMarIndents}[3][\normalsize\normalfont]{{%
+ \settowidth{\@tempdima}{#1#2\eqe@decPointMrg}%
+ \xdef\tb@woparts@len{\the\@tempdima}%
+ \settowidth{\@tempdima}%
+ {#1#2\eqe@decPointMrg\eqe@hspannerMrg#3}%
+ \xdef\tb@wparts@len{\the\@tempdima}%
+ \settowidth{\@tempdima}{#1#3}%
+ \xdef\tbmrgpartwdth{\the\@tempdima}%
+}}
+\setMarIndents{00}{(d)}
+\newdimen\solnGutter
+\newcommand{\setSolnIndent}[3][\normalsize\normalfont\bfseries]{%
+ {\settowidth{\@tempdima}{#1#2\eqedecPointSoln\eqe@hspannerSoln}%
+ \global\solnGutter\@tempdima
+ \settowidth{\@tempdima}{#1#3}%
+ \xdef\tbsolnpartwdth{\the\@tempdima}%
+}}
+\setSolnIndent{00}{(d)}
+\renewcommand{\setSolnMargins}[1]{%
+ \ifdim\solnGutter=0pt \setlength\eqemargin{#1}\else
+ \setlength\eqemargin{\solnGutter}\fi\ignorespaces}
+\newcommand{\defaultSolnIndent}{\global\solnGutter=0pt}
+\defaultSolnIndent
+\renewcommand{\exlabelformat}{%
+ \tbprbNumFmt{\theeqquestionnoi\eqe@decPointPrb}}
+\newcommand{\prbNumFmt}[1]{\def\tbprbNumFmt##1{#1\eqe@hspannerPrb}}
+\prbNumFmt{\textbf{#1}}
+\renewcommand{\exsllabelformat}{\string\tbsolWoPrtsFmt{%
+ \theeqquestionnoi\string\eqedecPointSoln}}
+\renewcommand{\exsllabelformatwp}{\string\tbsolWPrtsFmt%
+ {\string\eqedsplyOnlyFrst{\theeqquestionnoi}{\thepartno}}%
+ {\thepartno}%
+}
+\newcommand{\solWoPrtsFmt}[1]{\def\tbsolWoPrtsFmt##1{%
+ \makebox[0pt][r]{#1\eqe@hspannerSoln}}}
+\solWoPrtsFmt{\textbf{#1}}
+\newcommand{\solWPrtsFmt}[2]{\def\tbsolWPrtsFmt##1##2{%
+ \makebox[0pt][r]{#1\eqe@hspannerSoln}%
+ \makebox[\tbsolnpartwdth][l]{#2}\eqe@prtsepSoln%
+}}
+\solWPrtsFmt{\textbf{#1}}{(\hfil#2\hfil)}
+\newcommand{\solWPrtsFmt@hang}[2]{%
+ \def\tbsolWPrtsFmt##1##2{%
+ \makebox[0pt][r]{#1\eqe@prtsepSoln%
+ \makebox[\tbsolnpartwdth][l]{#2}\eqe@hspannerSoln}%
+}}
+\let\bpartsmrk\relax
+\let\epartsmrk\relax
+\newcommand{\hangSolWPrtsFmt}[2]{%
+ \def\prior@parts@hook{%
+ \ifisleadin\else
+ \writeT@SolnFile{^^J\protect\bpartsmrk}\fi}%
+ \def\post@parts@hook{%
+ \writeT@SolnFile{\protect\epartsmrk^^J}}%
+ \def\bpartsmrk{\global\firstitemtrue\begin{eqepartsquestions}}%
+ \def\epartsmrk{\end{eqepartsquestions}\global\firstitemfalse}%
+ \let\solWPrtsFmt\solWPrtsFmt@hang
+ \solWPrtsFmt{#1}{#2}%
+}
+\newif\ifexamenv \examenvfalse
+\newif\iffirstemit \firstemittrue
+\newtoks\txtbkt@ks \txtbkt@ks={}
+\newtoks\txtbkt@ksi \txtbkt@ksi={}
+\newbox\txtbkb@xb@t
+\newbox\txtbkb@xt@p
+\newbox\txtbkb@xh@ld
+\let\tbTopMargin\relax
+\let\tbBotMargin\relax
+\long\def\tb@addtoTopMargin#1{\txtbkt@ksi={#1}%
+ \edef\eqe@tmphold{\the\txtbkt@ksi\the\txtbkt@ks}%
+ \global\txtbkt@ks=\expandafter{\eqe@tmphold}%
+}
+\newcommand{\tb@addtoMargin}[1]{%
+ \edef\eqe@tmphold{\the\txtbkt@ks}%
+ \global\txtbkt@ks=\expandafter{\eqe@tmphold#1}%
+}
+\newcommand{\tb@showlsols}{\includecomment{lsol}\excludecomment{ssol}}
+\newcommand{\tb@showssols}{\includecomment{ssol}\excludecomment{lsol}}
+\let\tb@soln@choice\tb@showssols
+\newcommand{\clearTopMargin}{\global\let\tbTopMargin\relax}
+\newcommand{\setTopMargin}[1]{%
+ \gdef\tbTopMargin{\color@begingroup\normalcolor
+ #1\color@endgroup}%
+ \gdef\tbSaveTopMargin{\color@begingroup\normalcolor
+ #1\color@endgroup}}
+\let\tbTopMargin\@empty
+\let\tbSaveTopMargin\@empty
+\newcommand{\clearBotMargin}{\global\let\tbBotMargin\relax}
+\newcommand{\setBotMargin}[1]{\gdef\tbBotMargin{#1}%
+ \gdef\tbSaveBotMargin{#1}}
+\let\tbBotMargin\@empty
+\let\tbSaveBotMargin\@empty
+\newcommand{\restoreLastTopMargin}{\expandafter\setTopMargin
+ \expandafter{\tbSaveTopMargin}}
+\newcommand{\restoreLastBotMargin}{\expandafter\setBotMargin
+ \expandafter{\tbSaveBotMargin}}
+\newcommand{\MarParBoxFmt}{\normalsfcodes
+ \normalfont\normalsize\normalbaselines\parindent0pt
+ \vbadness\@Mi \hbadness5000 \tolerance9999
+ \parskip0pt\raggedright %\spaceskip=0pt\xspaceskip=0pt
+ \setlength{\linewidth}{\tbmarparboxwidth}%
+}
+\newlength\tbmarparboxwidth
+\setlength\tbmarparboxwidth{1sp}
+\definecolor{MidMargcolor}{rgb}{0,0,.8}
+\newcommand{\midMargFmt}[1]{%
+ \def\tb@midMargFmt{\normalfont\normalsize\normalcolor#1}}
+\midMargFmt{\color{MidMargcolor}}
+\def\eqe@MarParBox#1{\lower\footskip\hbox{%
+ \leavevmode\parbox[b][\textheight+\footskip][t]%
+ {\tbmarparboxwidth}{\tb@midMargFmt#1}}} %
+\newcommand{\insMidMarg}[1]{%
+ \let\eqe@margininsert\@empty
+ \expandafter\tb@addtoMargin\expandafter{\eqe@margininsert#1}%
+}
+\newcommand{\tbPreMarginHeader}{\par\penalty0 \kern3pt}
+\newcommand{\tbPostMarginHeader}{\par\nobreak}
+\definecolor{HEADERcolor}{named}{black}
+\newcommand{\cngMargHeadColorTo}[1]{\insMidMarg{\gdef\tb@MHC{#1}}}
+\newcommand{\resetMargHeadColor}{\insMidMarg{\gdef\tb@MHC{HEADERcolor}}}
+\resetMargHeadColor
+\newcommand{\tbMarginHeaderFmt}[1]{\textcolor{\tb@MHC}{\textbf{#1}}}
+\newcommand{\insMargHead}[2][]{% dps
+ \insMidMarg{\tb@marginHeader{#1}{#2}}}
+\newcommand{\insProbHead}[2][]{%
+ \def\tb@argi{#1}\ifx\tb@argi\@empty
+ \protected@xdef\currProbHead{#2 \tbcontinued}\else
+ \protected@xdef\currProbHead{#1}\fi
+ \ifisinstred\ifismarginans
+ \insMidMarg{\tb@marginProbHeader{#1}{#2}}\fi\fi
+}
+\newcommand{\tb@marginProbHeader}[2]{%
+ \def\tb@argi{#1}\ifx\tb@argi\@empty
+ \tb@marginHeader{#2 \tbcontinued}{#2}\else
+ \tb@marginHeader{#1}{#2}\fi
+}
+\newcommand{\tb@marginHeader}[2]{\tbPreMarginHeader
+ \tbMarginHeaderFmt{#2}\def\tb@argi{#1}\ifx\tb@argi\@empty
+ \mark{#2}\else\mark{#1}\fi\tbPostMarginHeader
+}
+\newcommand{\tbcontinued}{(cont.)}
+\newcommand{\marparboxwidth}[1]{%
+ \setlength\tbmarparboxwidth{#1}%
+ \setlength{\marginparwidth}{\tbmarparboxwidth}%
+ \tbMakeFinalCalcs
+}
+\@onlypreamble\marparboxwidth
+\newcommand{\chkmarginboxwidth}{%
+ \ifdim\tbmarparboxwidth=1sp \PackageError{eqexam}%
+ {You have not set the value of\MessageBreak
+ \string\marparboxwidth}%
+ {Define the \string\marparboxwidth\space command}\fi
+}
+\newif\ifmarginsonleft \marginsonleftfalse
+\newcommand{\tbSetupForMargins}{%
+ \ifmarginsonleft
+ \setlength{\oddsidemargin}{\tbmarparboxwidth+\marginparsep}%
+ \setlength{\evensidemargin}{\oddsidemargin}%
+ \setlength{\textwidth}{\paperwidth-2in-\oddsidemargin}%
+ \else
+ \setlength{\oddsidemargin}{0pt}%
+ \setlength{\evensidemargin}{\tbmarparboxwidth+\marginparsep}%
+ \setlength{\textwidth}{%
+ \paperwidth-2in-\oddsidemargin-\evensidemargin}%
+ \fi
+}
+\newcommand{\tbplaceMargins}{{%
+ \setlength{\@tempdima}{%
+ \paperheight-1in-\topmargin-\headheight-\headsep-\textheight}%
+ \xdef\@evenlly{\strip@pt\@tempdima}%
+ \xdef\@oddlly{\@evenlly}%
+ \setlength{\@tempdima}{1in}%
+ \xdef\@evenllx{\strip@pt\@tempdima}%
+ \ifmarginsonleft\else
+ \setlength{\@tempdima}{1in+\textwidth+\marginparsep}\fi
+ \xdef\@oddllx{\strip@pt\@tempdima}%
+}}
+\newcommand{\tbMakeFinalCalcs}{%
+ \tbSetupForMargins
+ \tbplaceMargins
+}
+\newlength\tbminskipbtnlayers
+\setlength{\tbminskipbtnlayers}{6pt}
+\newif\ifiscarryover \iscarryoverfalse
+\newenvironment{carryOverFmt}[1]{#1\let\tb@carryoverFmt\@empty
+ \c@rryoverFmt{#1}}{}
+\def\c@rryoverFmt#1{%
+ \ifx\tb@carryoverFmt\@empty
+ \global\let\tb@carryoverFmt\@empty
+ \xdef\tb@co@page{\thepage}%
+ \gdef\tb@carryoverFmt{\ifnum\thepage>\tb@co@page\relax
+ #1\global\let\tb@carryoverFmt\@empty\fi}%
+ \fi
+}
+\let\tb@carryoverFmt\@empty
+\let\tb@rest@reMarginFmt\relax
+\def\tb@insertCarryOver#1{%
+ \let\tb@rest@reMarginFmt\relax
+ \ifiscarryover\ifx\tb@carryoverFmt\@empty\else
+ \let\tb@rest@reMarginFmt\tb@midMargFmt
+ \tb@carryoverFmt\fi\fi
+ #1 \tb@rest@reMarginFmt
+}
+\newif\iftb@shipoutPermitted \tb@shipoutPermittedtrue
+\newcommand{\turnOnFTBShipout}{\global\tb@shipoutPermittedtrue}
+\newcommand{\turnOffFTBShipout}{\global\tb@shipoutPermittedfalse}
+\newcommand{\eqe@tb@shipout}{\iftb@shipoutPermitted
+ \ifnum\arabic{page}=\tblastpageshipped
+ \let\tb@so@next\relax\else
+ \xdef\tblastpageshipped{\arabic{page}}%
+ \def\tb@so@next{\eqe@tb@ship@ut}\fi
+ \expandafter\tb@so@next\fi
+}
+\def\tblastpageshipped{-100}
+\newcommand{\eqe@tb@ship@ut}{%
+ \fboxsep=0pt\setlength{\unitlength}{1pt}%
+ \global\setbox\txtbkb@xb@t=\vbox\bgroup
+ \color@begingroup
+ \hsize=\tbmarparboxwidth
+ \vsize=\textheight
+ \MarParBoxFmt
+ \csname tbTopMargin\endcsname
+ \vskip\tbminskipbtnlayers
+\set@typeset@protect
+ \the\txtbkt@ks
+ \color@endgroup\vfil
+ \egroup
+ \global\setbox\txtbkb@xt@p=\vsplit\txtbkb@xb@t to\textheight
+ \ifvoid\txtbkb@xb@t\global\iscarryoverfalse
+ \else\global\iscarryovertrue\fi
+ \ifx\tbBotMargin\relax\else
+ \bgroup\setbox2=\vbox{%
+ \color@begingroup\normalcolor
+ \hsize=\tbmarparboxwidth\kern0pt
+ \MarParBoxFmt\csname tbBotMargin\endcsname
+ \color@endgroup
+ \kern0pt
+ }%
+ \dimen0=\textheight
+ \advance\dimen0-\ht\txtbkb@xh@ld
+ \advance\dimen0-\tbminskipbtnlayers
+ \setbox0=\vsplit\txtbkb@xt@p to \dimen0
+ \global\setbox\txtbkb@xb@t=\vbox{%
+ \unvbox\txtbkb@xt@p\unvbox\txtbkb@xb@t}%
+ \global\setbox\txtbkb@xt@p=\vbox{\unvbox0
+ \vfill\vskip\tbminskipbtnlayers
+ \vfil\unvbox2\relax}\egroup
+ \fi
+ \ifodd\value{page}%
+ \put(\@oddllx,\@oddlly){%
+ \eqe@MarParBox{\unvbox\txtbkb@xt@p}}\else
+ \put(\@evenllx,\@evenlly){%
+ \eqe@MarParBox{\unvbox\txtbkb@xt@p}}\fi
+ \global\txtbkt@ks={}\ifvoid\txtbkb@xb@t\else
+ \if!\splitbotmark!\global\let\tb@sbm@exp\relax\else
+ \xdef\tb@sbm@exp{\noexpand\tbPreMarginHeader
+ \noexpand\tbMarginHeaderFmt{\splitbotmark}%
+ \noexpand\tbPostMarginHeader
+ \noexpand\par\kern3pt}%
+ \fi
+ \global\txtbkt@ks=\expandafter{\tb@sbm@exp
+ \tb@insertCarryOver{\unvbox\txtbkb@xb@t}}%
+ \fi
+}
+\newcommand{\insertpageifcarryover}[1][\null]{%
+ \newpage
+ \ifiscarryover\def\eqeifnext{\csname iftrue\endcsname}%
+ \PackageInfo{eqexam}{Carry over of content in margin
+ from page \thepage.\MessageBreak Creating a blank page}\else
+ \def\eqeifnext{\csname iffalse\endcsname}\fi\eqeifnext#1\fi}
+\newcommand{\setFullWidthHeader}{%
+ \setlength{\@tempdima}{%
+ \evensidemargin+\tbmarparboxwidth+\marginparsep}%
+ \edef\@headoffset{\the\@tempdima}%
+ \def\@evenhead{\makebox[0pt]{\makebox[0pt][l]
+ {\thepage}\hspace{\@headoffset}}\hfil\slshape\leftmark}%
+ \ifmarginsonleft
+ \def\@oddhead{\makebox[0pt]{\makebox[0pt][l]
+ {\slshape\rightmark}\hspace{\@headoffset}}\hfil\thepage}%
+ \else
+ \def\@oddhead{{\slshape\rightmark}\hfil\makebox[0pt]
+ {\hspace{\@headoffset}\makebox[0pt][r]{\thepage}}}%
+ \fi
+}
+\newif\ifchapterexercises \chapterexercisesfalse
+\let\chaptersolutions\relax
+\def\tb@EndOfChapterExercises{%
+ \let\include@solutions@chapter\include@solutions
+ \def\includeexersolutions{%
+ \include@solutions@chapter
+ \global\let\include@solutions\relax
+ }%
+ \def\chaptersolutions{%
+ \includeexersolutions
+ \immediate\closeout\ex@solns
+ \newwrite \ex@solns \global\let\quiz@solns\ex@solns
+ \immediate\openout \ex@solns \jobname.sol
+ \ifvspacewithsolns\writeAllAnsAtEnd\fi
+ }%
+}
+\def\writeallsolutions{\let\chaptersolutions\relax}
+\excludecomment{afterChapSolns}
+\def\NewCommentCutFile{\def\CommentCutFile{solnsAtEnd.cut}}
+\def\RestoreCommentCutFile{\def\CommentCutFile{comment.cut}}
+\@ifundefined{BeforeIncludedComment}{%
+\long\def\solnsAtEndcomment
+ #1{\message{Special comment '#1'}%
+ \csarg\def{#1}{\endgroup \message{Processing '#1' comment.}%
+ \NewCommentCutFile\SetUpCutFile
+ % #2 before SetUp, so we can do renaming.
+ \message{Comment '#1' writing to \CommentCutFile.}%
+ \ProcessComment{#1}}%
+ \csarg\def{After#1Comment}{\immediate\closeout\CommentStream
+ \RestoreCommentCutFile\input{solnsAtEnd.cut}\relax}%
+ \CommentEndDef{#1}}
+}{\long\def\solnsAtEndcomment
+ #1{\message{Special comment '#1'}%
+ \csarg\def{After#1Comment}{\immediate\closeout\CommentStream
+ \RestoreCommentCutFile\input{solnsAtEnd.cut}\relax}%
+ \csarg\def{#1}{\NewCommentCutFile\BeforeIncludedComment\relax
+ \ProcessComment{#1}}%
+ \CommentEndDef{#1}}
+ }
+\solnsAtEndcomment{solnsAtEnd}
+\newcommand{\exercisesAtEndOfChapter}{%
+ \ifeq@nosolutions\else
+ \typeout{^^J!!!!!Executing in chapter solutions!!!!!^^J}
+ \chapterexercisestrue\tb@EndOfChapterExercises
+ \ifchapterexercises
+ \csarg\let{solnsAtEnd}\@gobble
+ \excludecomment{solnsAtEnd}%
+ \csarg\let{AftersolnsAtEndComment}\relax
+ \includecomment{afterChapSolns}\else
+ \excludecomment{afterChapSolns}\fi
+ \fi
+}
+\@onlypreamble\exercisesAtEndOfChapter
+\newcommand{\setFullWidthLayout}{%
+ \saveBasicLayoutParams
+ \setlength{\oddsidemargin}{0in}%
+ \setlength{\evensidemargin}{\oddsidemargin}%
+ \setlength{\textwidth}{\paperwidth-2in}%
+ \setlength{\linewidth}{\paperwidth-2in}%
+ \setlength{\columnseprule}{0pt}%
+ \def\@evenhead{\thepage\hfil\slshape\leftmark}%
+ \def\@oddhead{{\slshape\rightmark}\hfil\thepage}%
+}
+\newenvironment{fullwidthtext}{%
+\begin{list}{}{%
+ \setlength{\labelwidth}{0pt}\setlength{\labelsep}{0pt}%
+ \setlength{\itemindent}{0pt}\setlength{\itemsep}{0pt}%
+ \setlength{\topsep}{0pt}\setlength{\parsep}{0pt}%
+ \setlength{\listparindent}{\parindent}%
+ \setlength{\leftmargin}{0pt}\setlength{\rightmargin}{0pt}
+}\item\relax}{\end{list}}
+\newcommand{\restorePageLayout}{\newpage
+ \setlength{\oddsidemargin}{\tb@osms}
+ \setlength\evensidemargin{\tb@esms}
+ \setlength{\textwidth}{\tb@tws}
+ \setlength{\linewidth}{\tb@lws}
+ \setlength{\columnseprule}{\tb@csr}
+}
+\newcommand{\saveBasicLayoutParams}{%
+ \xdef\tb@osms{\the\oddsidemargin}%
+ \xdef\tb@esms{\the\evensidemargin}%
+ \xdef\tb@tws{\the\textwidth}%
+ \xdef\tb@lws{\the\linewidth}%
+ \xdef\tb@csr{\the\columnseprule}%
+}
+\newcommand{\initChapAfterSolns}{\newpage
+ \clearTopMargin\clearBotMargin
+ \setFullWidthLayout
+}
+\newcommand{\restoreFromChapAfterSolns}{\newpage
+ \restorePageLayout\setFullWidthHeader
+}
+\eqequestopsep{0pt}
+\eqequesparsep{0pt}
+\eqequesitemsep{0pt}
+\eqequeslistparindent{0pt}
+\renewenvironment{eqequestions}{%
+ \begin{list}{}{%
+ \ifwithinsoldoc\let\solnItemMngt\eqeSolnItemMngt\fi
+ \setlength{\labelwidth}{\eqemargin}%
+ \setlength{\parsep}{\eqeques@parsep}%
+ \setlength{\itemsep}{\eqeques@itemsep}
+ \setlength{\topsep}{\eqeques@topsep}%
+ \setlength{\itemindent}{0pt}%
+ \setlength{\listparindent}{\eqeques@listparindent}%
+ \ifwithinsoldoc\settowidth{\labelsep}{\eqe@hspannerSoln}\else
+ \settowidth{\labelsep}{\eqe@hspannerPrb}\fi
+ \setlength{\leftmargin}{\labelwidth}%
+ }\ifwithinsoldoc\global\firstitemtrue\fi\item\relax}{\end{list}}
+\newcommand{\eqepquestopsep}[1]{\def\eqepques@topsep{#1}}
+\newcommand{\eqepquesparsep}[1]{\def\eqepques@parsep{#1}}
+\newcommand{\eqepquesitemsep}[1]{\def\eqepques@itemsep{#1}}
+\eqepquestopsep{\eqeques@itemsep}
+\eqepquesparsep{\eqeques@parsep}
+\eqepquesitemsep{\eqeques@itemsep}
+\newenvironment{eqepartsquestions}{%
+ \begin{list}{}{%
+ \settowidth{\labelwidth}{\eqe@prtsepSoln\hspace{\tbsolnpartwdth}}
+ \setlength{\parsep}{\eqepques@parsep}%
+ \setlength{\itemsep}{\eqepques@itemsep}%
+ \setlength{\topsep}{\eqepques@topsep}%
+ \setlength{\itemindent}{0pt}%
+ \settowidth{\labelsep}{\eqe@hspannerSoln}
+ \setlength{\leftmargin}{\labelwidth}%
+ }\item\relax}{\end{list}}
+\long\def\gobbletoEndEXt#1\endeqEXt{\@gobbletwo}
+\def\eqExtArg{\theeqquestionnoi}
+\if\load@exerquiz\eqe@NO\DoNotFitItIn\fi
+\let\fillInFormatDefault\@empty
+\def\exerSolnsHeadnToc{}
+\renewcommand{\exerSolnInput}{%
+ \global\let\webnewpage\relax
+ \ifsolutionsonly\else\immediate\closeout\ex@solns\fi
+ \ifeq@nosolutions\else\newpage % 2012-03-14
+ \iftherearesolutions\eq@solutionshook\eqsolutionshook
+ \ifsolutionsonly\else\newpage\eq@solutionshook
+ \eqsolutionshook\fi
+ \ifx\webnewpage\relax
+ \gdef\webnewpage{\global\let\webnewpage\newpage}%
+ \fi
+ \priorexsectitle\exerSolnsHeadnToc\priorexslinput
+ \InputIfFileExists{\jobname.sol}{}{\PackageWarning{exerquiz}
+ {!!! Solutions to exercises not found}}%
+ \fi
+ \fi
+}
+\setcounter{partno}{1}\edef\firstPartLtr{\thepartno}
+\newif\iffrstProbNumShown\frstProbNumShownfalse
+\def\tb@insertDecPoint{\ifwithinsoldoc\eqedecPointSoln\else
+ \eqe@decPointMrg\fi}
+\newcommand{\eqedsplyOnlyFrst}[2]{\def\thisPart{#2}%
+ \ifx\thisPart\firstPartLtr\global\frstProbNumShowntrue
+ \tb@mrgDigitFmt{#1}\tb@insertDecPoint\else
+ \iffrstProbNumShown\tb@GenProbNum{#1}\else
+ \global\frstProbNumShowntrue\tb@mrgDigitFmt{#1}%
+ \tb@insertDecPoint\fi\fi\global\eqeGenProbNumfalse
+}
+\newif\ifeqeGenProbNum \eqeGenProbNumfalse
+\newcommand{\displayProbNumOnce}{\global\eqeGenProbNumtrue} %
+\def\tb@GenProbNum#1{\ifeqeGenProbNum#1\tb@insertDecPoint\else
+ \phantom{#1\tb@insertDecPoint}\fi}%
+\def\sq@priorhook{\medskip}
+\def\default@fvsizeskip{.1}
+\aboveexskip{0pt}
+\belowexskip{0pt}
+\renewcommand\belowexsolnskip{{}}
+\renewcommand\exerSolnHeader[3]{%
+ \ifeqforpaper\else\webnewpage\fi%\par
+ \noindent\@ifundefined{hypertarget}
+ {#3}{\hypertarget{#2}{#3}\relax}\solnhspace
+}
+\def\nNumberOfP@rts{0}
+\renewcommand{\preExamSolnHead}{\medbreak\noindent}
+\renewcommand{\examSolnHeadFmt}[1]{\textbf{#1}}
+\renewcommand{\postExamSolnHead}{\smallskip}
+\newcommand{\wrtChapSolnHead}[1]{%
+ \writeT@SolnFile{%
+ \protect\preChapSolnHead
+ \protect\chapHeadSolnFmt{\protect\ftbFmtChapter{\thechapter}#1}%
+ \protect\postChapSolnHead
+}}
+\newcommand{\preChapSolnHead}{\bigbreak\noindent}
+\newcommand{\chapHeadSolnFmt}[1]{{\large\textbf{#1}}}
+\newcommand{\postChapSolnHead}{\medbreak}
+\newcommand{\ftbFmtChapter}[1]{\chaptername\space#1.\space\ignorespaces}
+\newcommand{\convertChapHeadToChapters}{%
+ \let\preChapSolnHead\relax
+ \let\chapHeadSolnFmt\chapter
+ \let\ftbFmtChapter\@gobble
+ \let\postChapSolnHead\relax
+}
+\newcommand{\probSet}[1]{Problem Set #1}
+\newcommand{\annotPage}{\protect\annotThePage{\thepage}}
+\newcommand{\annotThePage}[1]{\space(page\protect~#1)}
+\def\noProbHeader{NPH}
+\newenvironment{probset}[2][\probSet{\thesection}]{%
+ \exam[#2]{\autoExamName}\ifx#1\noProbHeader\else
+ \protected@edef\ftb@tmp@exp{\noexpand\insProbHead{#1}}%
+ \ftb@tmp@exp\fi}{\endexam}
+\newcounter{exampleno}[section]
+\renewcommand{\theexampleno}{\arabic{section}.\arabic{exampleno}}
+\newcommand{\examplenoname}{Example}
+\newenvironment{example}{%\medskip
+ \belowexskip{\medskipamount}\aboveexskip{\medskipamount}%
+ \makeRoomForProb{\@nbaselineskip\baselineskip}{}%
+ \renewcommand\exlabel{Example}%
+ \renewcommand\exlabelformat{\textbf{\exlabel~\theexampleno.}}%
+ \let\eq@fititin\eqfititin
+ \renewcommand\exrtnlabelformat{$\square$}%
+ \def\eqexheader@wrapper{\eqexheader}%
+ \SolutionsAfter
+ \begin{exercise}[exampleno]}{\end{exercise}}
+\newenvironment{example*}{%\medskip
+ \belowexskip{\medskipamount}\aboveexskip{\medskipamount}%
+ \makeRoomForProb{\@nbaselineskip\baselineskip}{}%
+ \renewcommand\exlabel{Example}%
+ \renewcommand\exlabelformat{\textbf{\exlabel~\theexampleno.}}%
+ \let\eq@fititin\eqfititin
+ \renewcommand\exrtnlabelformat{$\square$}%
+ \def\eqexheader@wrapper{\eqexheader}%
+ \SolutionsAfter
+ \begin{exercise*}[exampleno]}{\end{exercise*}}
+\setDefaultfvsizeskip{.1}
+\nbaselineskip{4}
+\newcommand{\ftbInputBookAux}[1]{%
+ \filename@parse{#1}\@ifundefined{filename@ext}%
+ {\def\filename@ext{tex}}{}%
+ \xdef\tbBaseName{\filename@base}%
+ \xdef\tbSourceFile{\filename@base.\filename@ext}%
+ \let\save@writefile\@writefile
+ \let\@writefile\@gobbletwo
+ \let\save@setckpt\@setckpt
+ \let\@setckpt\@gobbletwo
+ \makeatletter
+ \InputIfFileExists{\tbBaseName.aux}{%
+ \PackageInfo{eqexam}
+ {Inputting auxiliary files of\MessageBreak\tbSourceFile}%
+ }{%
+ \PackageError{eqexam}
+ {Auxiliary files for \tbSourceFile\space were not found}
+ {Compile the source file \tbSourceFile\space
+ three times\MessageBreak%
+ to create the required auxiliary files.}%
+ }%
+ \makeatother
+ \global\let\ftblabel\label
+ \let\label\@gobble
+ \let\@writefile\save@writefile
+ \let\@setckpt\save@setckpt
+}
+\@onlypreamble\ftbInputBookAux
+\newcommand{\restorelabel}{\global\let\label\ftblabel}
+\newcommand{\gobblelabel}{\let\label\@gobble}
+\newcommand{\ftbInputSolnFiles}[1][\tbBaseName.sol]{%
+ \filename@parse{#1}\@ifundefined{filename@ext}%
+ {\def\filename@ext{sol}}{}%
+ \xdef\tbBaseName{\filename@base}%
+ \xdef\tbSourceFile{\filename@base.\filename@ext}%
+ \InputIfFileExists{\tbBaseName.sol}{%
+ \PackageInfo{eqexam}
+ {Inputting solutions file \tbBaseName.sol\MessageBreak}%
+ }{%
+ \PackageError{eqexam}
+ {Solutions file for \tbSourceFile\space was not found}%
+ {Compile the source files three times}%
+ }%
+}
+\endinput
+%%
+%% End of file `eqtextb.def'.
diff --git a/texmf-dist/tex/latex/eqexam/flextended.def b/texmf-dist/tex/latex/eqexam/flextended.def
new file mode 100644
index 00000000..086e4850
--- /dev/null
+++ b/texmf-dist/tex/latex/eqexam/flextended.def
@@ -0,0 +1,303 @@
+%%
+%% This is file `flextended.def',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% eqexam.dtx (with options: `copyright,flextended')
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% eqexam.sty package, %%
+%% Copyright (C) 2005--2018 D. P. Story %%
+%% dpstory@uakron.edu %%
+%% %%
+%% This program can redistributed and/or modified under %%
+%% the terms of the LaTeX Project Public License %%
+%% Distributed from CTAN archives in directory %%
+%% macros/latex/base/lppl.txt; either version 1.2 of %%
+%% the License, or (at your option) any later version. %%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def\fls@vebaselinelineskip{% dps22
+ \xdef\flbaselineskip{\the\baselineskip}}
+\def\fl@Cnt{0}
+\def\fl@CutName{flx-\jobname.cut}
+\def\flwriteexsol@fter{% dpsj23
+ \ifx\exsolafter\@empty
+ \immediate\write\verbatim@out{\string\ignorespaces}% dpsj23
+ \else
+ \immediate\write\verbatim@out{\string\exsolafter
+ \string\space\string\ignorespaces}%
+ \fi
+}
+\def\fl@getcontent#1{\begingroup
+ {\count0=\fl@Cnt\relax
+ \advance\count0by1\relax
+ \xdef\fl@Cnt{\the\count0 }}%
+ \global\let\verbatim@out\CommentStream
+ \immediate\openout\verbatim@out=#1
+ \ifwithinparts
+ \ifx\istabularexer\eq@YES
+ \immediate\write\verbatim@out{\string\hfuzz\string\hsize}%
+ \immediate\write\verbatim@out{\string\minipage[t]{\string\hsize}}%
+ \ifanswerkey
+ \immediate\write\verbatim@out{\string\expandafter
+ \string\noindent\string\eqSolnExCmds}% dps23
+ \flwriteexsol@fter
+ \else
+ \immediate\write\verbatim@out{\string\expandafter
+ \string\noindent\string\priorWorkAreaCmds
+ \string\ignorespaces}% dps23
+ \fi
+ \else
+ \ifanswerkey\flwriteexsol@fter\fi
+ \fi
+ \else
+ \ifanswerkey\flwriteexsol@fter\fi
+ \fi
+ \verbatimwrite
+}
+\def\fl@vsplitandplace#1{%
+ \iffl@firstpass
+ \global\setbox\eqe@nskeyflsplit\color@vbox
+ \normalbaselines
+ \predisplaypenalty=-50
+ \postdisplaypenalty=-50
+ \setlength{\hsize}{\eqe@fillwidth}%
+ \expandafter\noindent % dpsj23
+ \ifanswerkey\expandafter\eqSolnExCmds\else
+ \expandafter\priorWorkAreaCmds\fi
+ \ignorespaces\input{#1}\fls@vebaselinelineskip
+ \color@endbox\global\fl@firstpassfalse\fi
+ \@tempdima\eqe@HOfVrule\relax
+ \advance\@tempdima\flfboxrule
+ \advance\@tempdima\lineskip
+ \ifflfrstsplit\else\advance\@tempdima\wlVspace\fi
+ \advance\@tempdima\maxdepth
+ \advance\@tempdima by\twe@kBre@kPoint\relax
+ \eq@tmplengthB\@tempdima % target height
+ \splittopskip\wlVspace
+ \splitmaxdepth\maxdepth
+ \advance\splitmaxdepth by\twe@kBre@kPoint\relax
+ \setbox\eq@pointbox=\copy\eqe@nskeyflsplit
+ \setbox\eqe@nskeyfltop=\vsplit\eq@pointbox to \@tempdima
+ \setbox\eqe@nskeyfltop=\vbox{\unvbox\eqe@nskeyfltop}%
+ \ifvoid\eq@pointbox\else
+ \setlength{\@tempdimb}
+ {\eq@tmplengthB-\dp\eqe@nskeyfltop}%
+ \ifdim\@tempdimb<0pt
+ \@tempdimb=-\@tempdimb
+ \ifdim\@tempdimb>\maxdepth
+ \advance\@tempdima-\flbaselineskip\relax
+ \else
+ \fi
+ \else
+ \setbox\eq@pointbox=\copy\eqe@nskeyflsplit
+ \advance\@tempdima by\flbaselineskip\relax
+ \setbox\eqe@nskeyfltop=\vsplit\eq@pointbox to \@tempdima
+ \setbox\eqe@nskeyfltop=\vtop{\unvbox\eqe@nskeyfltop}%
+ \setlength{\@tempdimb}{\eq@tmplengthB-\dp\eqe@nskeyfltop}%
+ \ifdim\@tempdimb<0pt % too much
+ \advance\@tempdima-\flbaselineskip\relax
+ \else
+ \fi
+ \fi
+ \fi
+ \splittopskip\wlVspace
+ \lineskip1pt
+ \setbox\eq@pointbox=\copy\eqe@nskeyflsplit
+ \global\setbox\eqe@nskeyfltop=\vsplit\eqe@nskeyflsplit to \@tempdima
+ \global\setbox\eqe@nskeyfltop\vtop{\unvbox\eqe@nskeyfltop\vskip0pt}%
+ \ifvoid\eqe@nskeyflsplit
+ \ifeqedb\llap{Bot}\fi
+ \ifeqedb\raise\eqe@HOfVrule\llap{Top}\fi
+ \ifeqedb\llap{V\qquad}\fi
+ \ifflfrstsplit\global\flfrstsplitfalse
+ \ifeqedb\llap{FP\hskip.5in}\fi
+ \rlap{\raisebox{\eqe@HOfVrule+\flfboxrule+\lineskip}
+ {\vtop{\vsize=\eqe@HOfVrule\relax
+ \unvbox\eqe@nskeyfltop\vfil}}}\else
+ \ifeqedb\llap{SP\hskip.5in}\fi
+ \rlap{\raisebox{\eqe@HOfVrule+\flfboxrule+\wlVspace+\lineskip}
+ {\vtop{\vsize=\eqe@HOfVrule\relax
+ \unvbox\eq@pointbox\vfil}}}%
+ \global\setbox\eqe@nskeyflsplit\box\voidb@x
+ \fi
+ \else
+ \ifeqedb\llap{Bot}\fi
+ \ifeqedb\raise\eqe@HOfVrule\llap{Top}\fi
+ \ifeqedb\llap{nV\qquad}\fi
+ \ifflfrstsplit\global\flfrstsplitfalse
+ \ifeqedb\llap{FP\hskip.5in}\fi
+ \rlap{\raisebox{\eqe@HOfVrule+\flfboxrule+\lineskip}
+ {\vtop{\vsize=\eqe@HOfVrule\relax
+ \unvbox\eqe@nskeyfltop\vfil}}}\else
+ \ifeqedb\llap{SP\hskip.5in}\fi
+ \rlap{\raisebox{\eqe@HOfVrule+\flfboxrule+\wlVspace+\lineskip}
+ {\vtop{\vsize=\eqe@HOfVrule\relax
+ \unvbox\eqe@nskeyfltop\vfil}}}%
+ \fi
+ \fi
+ \setbox\eq@pointbox\box\voidb@x
+}
+\let\turnfl@nskeyOnOff\relax
+\def\turnflnosolnsOn{\eqe@flnosolnstrue}
+\def\turnflnosolnsOff{\eqe@flnosolnsfalse}
+\def\turnflanskeyOn{%
+ \def\turnfl@nskeyOnOff{%
+ \ifanswerkey
+ \ifx\makeVgrid\relax % already in grid mode, do nothing
+ \ifwriteVertic@lFLines\KV@eqefillLines@toplinefalse\fi % dps16
+ \writeVertic@lFLinesfalse
+ \let\makeVgrid\eqe@makeVgrid % dpsj5
+ \fi % dps17
+ \let\eqe@insert@more@content\eqe@insertSolns % dpsj5
+ \eqe@flextendedtrue % dps16
+ \fillTypeGrid % dps16
+ \global\let\eq@insertverticalspace\eq@YES
+ \global\vspacewithsolnstrue
+ \fi
+ }%
+}
+\def\turnflanskeyOff{%
+ \def\turnfl@nskeyOnOff{%
+ \ifanswerkey
+ \writeVertic@lFLinestrue
+ \eqe@flextendedfalse
+ \let\eq@insertverticalspace\eq@NO
+ \@eqlinedfillerfalse
+ \global\let\eqe@insert@more@content\relax
+ \global\let\eq@insertverticalspace\eq@YES
+ \ifvspacewithsolns\else
+ \global\vspacewithsolnsfalse\fi
+ \global\displayworkareafalse
+ \fi
+ }%
+}
+\turnflanskeyOff
+\let\p@ssToSolns\relax % dps30
+\def\eqe@insertSolns{\clubpenalty=50
+ \widowpenalty=50 \vbadness=10000
+ \fl@vsplitandplace{s\fl@CutName}}
+\def\eq@b@ddCodeSpecial#1{\global\gridpgbrkfalse % dpsj15
+ \global\let\eq@e@ddCodeSpecial\relax
+ \gdef\eqe@flnexti{#1}% dpsj5
+ \if@eqlinedfiller
+ \ifKV@eqefillLines@bgonly\leavevmode
+ \vskip-\baselineskip\kern\lineskip\fi % dpsj11
+ \ifKV@eqefillLines@outlineonly\leavevmode
+ \vskip-\baselineskip\kern\lineskip\fi
+ \ifanswerkey %\turnfl@nskeyOnOff % dps16
+ \ifeqe@flextended
+ \ifcont@nnot
+ \ifx\makeVgrid\relax
+ \gdef\p@ssToFLs{\turnfl@nskeyOnOff
+ \let\eqe@insert@more@content\eqe@insertSolns
+ \writeVertic@lFLinesfalse
+ \KV@eqefillLines@toplinefalse
+ \let\makeVgrid\eqe@makeVgrid
+ }%
+ \else
+ \gdef\p@ssToFLs{\turnfl@nskeyOnOff
+ \let\eqe@insert@more@content\eqe@insertSolns
+ \writeVertic@lFLinestrue}%
+ \fi
+ \gdef\eqe@flnexti{\turnfl@nskeyOnOff
+ \global\fl@firstpasstrue % dpsj5
+ \p@ssToSolns
+ \global\gridpgbrkfalse
+ \eqe@setStartSolns
+ \xdef\kdvsp@SAVE{\ifkeepdeclaredvspacing
+ true\else false\fi}%
+ \gdef\kdvsp@Restore{\@nameuse
+ {keepdeclaredvspacing\kdvsp@SAVE}%
+ \gdef\twe@kBre@kPoint{0pt}\global
+ \let\kdvsp@Restore\relax}% dpsj21
+ \expandafter\global\vspacewithkeyOff
+ \vbadness=10000
+ \fl@getcontent{s\fl@CutName}}%
+ \gdef\eq@e@ddCodeSpecial{\endverbatimwrite\endgroup
+ \ifwithinparts\ifx\istabularexer\eq@YES
+ \immediate\write\verbatim@out{\string\endminipage}\fi\fi
+ \immediate\closeout\verbatim@out
+ \global\let\eq@e@ddCodeSpecial\relax
+ }%
+ \else
+ \PackageWarningNoLine{eqexam}{For solutions to appear
+ using filler lines\MessageBreak
+ (with flextexded and answerkey options),\MessageBreak
+ you must first expand \string\turnContAnnotOn\MessageBreak
+ prior to line \the\inputlineno.\MessageBreak
+ Switching to \string\useFillerDefault}%
+ \useFillerDefault
+ \let\eq@insertverticalspace\eq@NO
+ \fi
+ \fi
+ \fi
+ \fi
+ \eqe@flnexti
+}% dpsj4
+\def\eqe@priorw@content{%
+ \clubpenalty=50 % dps15
+ \widowpenalty=50
+ \vbadness=10000
+ \fl@vsplitandplace{p\fl@CutName}%
+}%
+\renewenvironment{priorworkarea}{\par
+ \ifx\solutionparshape\@empty\else % dps28
+ \pushEnvir
+ \everypar{}\if@eqalignfilllinestoleft\else
+ \parshape=1 \leadinIndent \linewidth\fi
+ \popEnvir
+ \fi
+ \global\let\p@ssToFLs\relax
+ \global\let\p@ssToSolns\relax
+ \vspacewithkeyOff
+ \ifeq@nosolutions\else\sloppy\fi
+ \def\eqe@flnexti{\eqSavedComment}%
+ \ifeqe@flnosolns\ifdisplayworkarea
+ \def\eqe@flnexti{\fl@getcontent{p\fl@CutName}}\fi\fi % dpsj21
+ \gdef\eqe@flnextii{\eqSavedEndCommet}%
+ \ifeqe@flnosolns\ifdisplayworkarea
+ \gdef\eqe@flnextii{\endverbatimwrite\endgroup
+ \ifwithinparts\ifx\istabularexer\eq@YES
+ \immediate\write\verbatim@out{\string\endminipage}\fi\fi
+ \immediate\closeout\verbatim@out}\fi\fi
+ \eqe@flnexti
+}{%
+ \eqe@flnextii
+ \ifcont@nnot
+ \ifeqe@flnosolns
+ \ifdisplayworkarea
+ \ifx\eq@insertverticalspace\eqe@YES
+ \ifx\makeVgrid\relax
+ \gdef\p@ssToFLs{%
+ \let\eqe@insert@more@content\eqe@priorw@content
+ \writeVertic@lFLinesfalse
+ \KV@eqefillLines@toplinefalse
+ \let\makeVgrid\eqe@makeVgrid}%
+ \else
+ \gdef\p@ssToFLs{%
+ \let\eqe@insert@more@content\eqe@priorw@content
+ \writeVertic@lFLinestrue}%
+ \fi
+ \gdef\kdvsp@Restore{\gdef\twe@kBre@kPoint{0pt}\global
+ \let\kdvsp@Restore\relax}% dpsj21
+ \fi
+ \fi
+ \else
+ \global\setbox\eqe@nskeyflsplit\box\voidb@x
+ \global\setbox\eqe@nskeyfltop\box\voidb@x
+ \fi
+ \else
+ \PackageWarningNoLine{eqexam}{For priorworkarea to appear
+ using filler lines\MessageBreak
+ (with flextexded and nosolutions options),\MessageBreak
+ you must first expand \string\turnContAnnotOn\MessageBreak
+ prior to line \the\inputlineno.\MessageBreak
+ Switching to \string\useFillerDefault}%
+ \gdef\p@ssToSolns{\useFillerDefault}%
+ \fi
+}
+\endinput
+%%
+%% End of file `flextended.def'.
diff --git a/texmf-dist/tex/latex/eqexam/fortextbook.sty b/texmf-dist/tex/latex/eqexam/fortextbook.sty
index fcd541a9..34d3e2d0 100644
--- a/texmf-dist/tex/latex/eqexam/fortextbook.sty
+++ b/texmf-dist/tex/latex/eqexam/fortextbook.sty
@@ -1,31 +1,31 @@
-%%
-%% This is file `fortextbook.sty',
-%% generated with the docstrip utility.
-%%
-%% The original source files were:
-%%
-%% eqexam.dtx (with options: `copyright,ftbsty')
-%%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% eqexam.sty package, %%
-%% Copyright (C) 2005--2017 D. P. Story %%
-%% dpstory@uakron.edu %%
-%% %%
-%% This program can redistributed and/or modified under %%
-%% the terms of the LaTeX Project Public License 1.2 %%
-%% Distributed from CTAN archives in directory %%
-%% macros/latex/base/lppl.txt; either version 1 of the %%
-%% License, or (at your option) any later version. %%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{fortextbook}
- [2012/03/14 v1.0 A fortextbook Package (dps)]
-\DeclareOption*{\PassOptionsToPackage{\CurrentOption}{eqexam}}
-\ProcessOptions
-\RequirePackage[%
- ftbsolns,fortextbook,usecustomdesign,
- forcolorpaper,noseparationrule,usexkv
-]{eqexam}
-\endinput
-%%
-%% End of file `fortextbook.sty'.
+%%
+%% This is file `fortextbook.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% eqexam.dtx (with options: `copyright,ftbsty')
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% eqexam.sty package, %%
+%% Copyright (C) 2005--2018 D. P. Story %%
+%% dpstory@uakron.edu %%
+%% %%
+%% This program can redistributed and/or modified under %%
+%% the terms of the LaTeX Project Public License %%
+%% Distributed from CTAN archives in directory %%
+%% macros/latex/base/lppl.txt; either version 1.2 of %%
+%% the License, or (at your option) any later version. %%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{fortextbook}
+ [2012/03/14 v1.0 A fortextbook Package (dps)]
+\DeclareOption*{\PassOptionsToPackage{\CurrentOption}{eqexam}}
+\ProcessOptions
+\RequirePackage[%
+ ftbsolns,fortextbook,usecustomdesign,
+ forcolorpaper,noseparationrule,usexkv
+]{eqexam}
+\endinput
+%%
+%% End of file `fortextbook.sty'.