From 0deaceb5e1a46d7063fefc5d145d1814db7d3ea9 Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Fri, 19 Jun 2020 08:48:54 +0900 Subject: acrosort update --- texmf-dist/doc/latex/acrosort/README | 17 - texmf-dist/doc/latex/acrosort/README.md | 23 + .../doc/latex/acrosort/docs/acrosort-man.pdf | Bin 0 -> 640143 bytes .../doc/latex/acrosort/docs/acrosort-man.tex | 360 + texmf-dist/doc/latex/acrosort/docs/acrosort.pdf | Bin 0 -> 265324 bytes .../doc/latex/acrosort/examples/acrosort_test.pdf | Bin 120400 -> 0 bytes .../doc/latex/acrosort/examples/acrosort_test.tex | 44 - texmf-dist/doc/latex/acrosort/examples/as1.tex | 49 + texmf-dist/doc/latex/acrosort/examples/as2.tex | 87 + .../doc/latex/acrosort/examples/choo/choo.pdf | Bin 103349 -> 103163 bytes .../latex/acrosort/examples/choo/choo_package.pdf | Bin 1947015 -> 126252 bytes .../doc/latex/acrosort/examples/choo/tg-choo.tex | 12 + .../doc/latex/acrosort/examples/emoji/MyEmoji.eps | 8732 ++++++++++++++++++++ .../doc/latex/acrosort/examples/emoji/MyEmoji.pdf | Bin 0 -> 30645 bytes .../acrosort/examples/emoji/MyEmoji_package.pdf | Bin 0 -> 51309 bytes .../doc/latex/acrosort/examples/emoji/tg-emoji.tex | 13 + texmf-dist/source/latex/acrosort/acrosort.dtx | 589 +- texmf-dist/source/latex/acrosort/acrosort.ins | 2 +- .../source/latex/acrosort/aeb_pro/aeb_pro.js | 106 - texmf-dist/tex/latex/acrosort/acrosort.sty | 525 +- 20 files changed, 9846 insertions(+), 713 deletions(-) delete mode 100644 texmf-dist/doc/latex/acrosort/README create mode 100644 texmf-dist/doc/latex/acrosort/README.md create mode 100644 texmf-dist/doc/latex/acrosort/docs/acrosort-man.pdf create mode 100644 texmf-dist/doc/latex/acrosort/docs/acrosort-man.tex create mode 100644 texmf-dist/doc/latex/acrosort/docs/acrosort.pdf delete mode 100644 texmf-dist/doc/latex/acrosort/examples/acrosort_test.pdf delete mode 100644 texmf-dist/doc/latex/acrosort/examples/acrosort_test.tex create mode 100644 texmf-dist/doc/latex/acrosort/examples/as1.tex create mode 100644 texmf-dist/doc/latex/acrosort/examples/as2.tex create mode 100644 texmf-dist/doc/latex/acrosort/examples/choo/tg-choo.tex create mode 100644 texmf-dist/doc/latex/acrosort/examples/emoji/MyEmoji.eps create mode 100644 texmf-dist/doc/latex/acrosort/examples/emoji/MyEmoji.pdf create mode 100644 texmf-dist/doc/latex/acrosort/examples/emoji/MyEmoji_package.pdf create mode 100644 texmf-dist/doc/latex/acrosort/examples/emoji/tg-emoji.tex delete mode 100644 texmf-dist/source/latex/acrosort/aeb_pro/aeb_pro.js (limited to 'texmf-dist') diff --git a/texmf-dist/doc/latex/acrosort/README b/texmf-dist/doc/latex/acrosort/README deleted file mode 100644 index 419ac8c5..00000000 --- a/texmf-dist/doc/latex/acrosort/README +++ /dev/null @@ -1,17 +0,0 @@ -acrosort --- D. P. Story -Dated: 2011/12/31 - -This is a package that uses Adobe Distiller as the PDF creator as well as -Acrobat itself. - -The AcroSort is a novelty LaTeX package for importing a series of sliced -images of a picture. The sliced images are randomly arranged, then -resorted before the user's eyes using a bubble sort. - -Images can be sliced using AcroSlice, also available through CTAN - -Now, I simply must get back to my retirement. - -D. P. Story -dpstory@acrotex.net -2011/12/31 diff --git a/texmf-dist/doc/latex/acrosort/README.md b/texmf-dist/doc/latex/acrosort/README.md new file mode 100644 index 00000000..7d2533f0 --- /dev/null +++ b/texmf-dist/doc/latex/acrosort/README.md @@ -0,0 +1,23 @@ +acrosort --- D. P. Story +Dated: 2020-06-17 + +The AcroSort is a novelty LaTeX package for importing a series +of tiled images of a picture. The tiled images are randomly +arranged, then resorted before the user's eyes using a bubble +sort. + +Images can be tiled using the tile-graphic package, also +available through CTAN. + +What's New (2020-06-02): Minor suggested changes by CTAN maintainers + +What's New (2020-06-02): This is a complete rewrite of the +package. The package now supports all common PDF creators: +pdflatex, lualatex, xelatex, dvips->distiller. Multiple bubble +sort tiles images are now supported. + +Now, I simply must get back to my retirement. + +D. P. Story +dpstory@acrotex.net +2020-06-16 diff --git a/texmf-dist/doc/latex/acrosort/docs/acrosort-man.pdf b/texmf-dist/doc/latex/acrosort/docs/acrosort-man.pdf new file mode 100644 index 00000000..8a3c63b3 Binary files /dev/null and b/texmf-dist/doc/latex/acrosort/docs/acrosort-man.pdf differ diff --git a/texmf-dist/doc/latex/acrosort/docs/acrosort-man.tex b/texmf-dist/doc/latex/acrosort/docs/acrosort-man.tex new file mode 100644 index 00000000..3db8c6f1 --- /dev/null +++ b/texmf-dist/doc/latex/acrosort/docs/acrosort-man.tex @@ -0,0 +1,360 @@ +\documentclass{article} +\usepackage[fleqn]{amsmath} +\usepackage[% + web={centertitlepage,designv,forcolorpaper,latextoc,pro}, + eforms, + uselayers, + aebxmp +]{aeb_pro} +%\usepackage{aeb_mlink} +\usepackage{graphicx} +%\usepackage{myriadpro} +%\usepackage[usecmtt]{myriadpro} +\usepackage[altbullet]{lucidbry} +\usepackage{acrosort} +\usepackage{fancyvrb} +\usepackage{wrapfig} + +\let\pkg\textsf +\let\app\textsf +\let\env\texttt +\newcommand{\FmtMP}[2][0pt]{\mbox{}\marginpar{\raisebox{#1}{\parbox{\marginparwidth}{\slshape\raggedleft\small#2}}}} +\addtolength{\marginparwidth}{1in} + + +%\usepackage{acaslonpro} +%\usepackage{ajensonpro} +%\usepackage{minionpro} +%\usepackage{newsgothicstd} +%\usepackage{lucidbry} + +\DeclareDocInfo +{ + university={\AcroTeX.Net}, + title={The \textsf{acrosort} Package}, + author={D. P. Story}, + email={dpstory@acrotex.net}, + subject={Documentation for AcroSort}, + talksite={\url{www.acrotex.net}}, + version={1.6.1}, + versionLabel={Version}, + copyrightyears={2006-\the\year}, + prepared={2020/06/17}, + preparedLabel={Distribution Dated:}, + keywords={Adobe Acrobat, JavaScript, LaTeX, JavaScript, bubble sort, tiling}, + copyrightStatus=True, + copyrightNotice={Copyright (C) \the\year, D. P. Story}, + copyrightInfoURL={http://www.acrotex.net} +} +\nocopyright +\usepackage{acroman} +%\usepackage[active]{srcltx} + + +\def\nhfootnote#1{\begin{NoHyper}\footnote{#1}\end{NoHyper}} + +\makeatletter +\renewcommand{\paragraph} + {\@startsection{paragraph}{4}{0pt}{6pt}{-3pt}{\bfseries}} +\renewcommand*\l@subsection{\@dottedtocline{2}{1.5em}{2.5em}} +\makeatother + + +\def\scalefactor{.75} + +\def\dps{$\hbox{$\mathfrak D$\kern-.3em\hbox{$\mathfrak P$}% + \kern-.6em \hbox{$\mathcal S$}}$} + +\def\dps{$\hbox{$\mathfrak D$\kern-.3em\hbox{$\mathfrak P$}% + \kern-.6em \hbox{$\mathcal S$}}$} + +\universityLayout{fontsize=Large} +\titleLayout{fontsize=LARGE} +\authorLayout{fontsize=Large} +\tocLayout{fontsize=Large,color=aeb} +\sectionLayout{indent=-62.5pt,fontsize=large,color=aeb} +\subsectionLayout{indent=-31.25pt,color=aeb} +\subsubsectionLayout{indent=0pt,color=aeb} +\subsubDefaultDing{\texorpdfstring{$\bullet$}{\textrm\textbullet}} + +\def\AcroTeX{Acro\negthinspace\TeX} + +\begin{embedding} +\isPackage +\asEmbedTiles{choo}{20}{../examples/choo/choo} +\isPackage +\asEmbedTiles{emoji}{16}{graphics/myemoji} +\end{embedding} + +\customFinishJS{if(sortName=="emoji") toggleSetThisLayer("retire", true);} + + +\chngDocObjectTo{\newDO}{doc} +\begin{docassembly} +var titleOfManual="The acrosort Package"; +var manualfilename="Manual_BG_Print_acrosort.pdf"; +var manualtemplate="Manual_BG_Green.pdf"; // Blue, Green, Brown +var _pathToBlank="C:/Users/Public/Documents/ManualBGs/"+manualtemplate; +var doc; +var buildIt=false; +if ( buildIt ) { + console.println("Creating new " + manualfilename + " file."); + doc = \appopenDoc({cPath: _pathToBlank, bHidden: true}); + var _path=this.path; + var pos=_path.lastIndexOf("/"); + _path=_path.substring(0,pos)+"/"+manualfilename; + \docSaveAs\newDO ({ cPath: _path }); + doc.closeDoc(); + doc = \appopenDoc({cPath: manualfilename, oDoc:this, bHidden: true}); + f=doc.getField("ManualTitle"); + f.value=titleOfManual; + doc.flattenPages(); + \docSaveAs\newDO({ cPath: manualfilename }); + doc.closeDoc(); +} else { + console.println("Using the current "+manualfilename+" file."); +} +var _path=this.path; +var pos=_path.lastIndexOf("/"); +_path=_path.substring(0,pos)+"/"+manualfilename; +\addWatermarkFromFile({ + bOnTop:false, + bOnPrint:false, + cDIPath:_path +}); +\executeSave(); +\end{docassembly} + + +%\definePath\bgPath{"C:/Users/Public/Documents/ManualBGs/Manual_BG_Print_AeB.pdf"} +%\begin{docassembly} +%\addWatermarkFromFile({ +% bOnTop:false, +% cDIPath:\bgPath +%}); +%\executeSave(); +%\end{docassembly} + + +%\previewOn\pmpvOn + +\begin{document} + +\maketitle + +\selectColors{linkColor=black} +\tableofcontents +\selectColors{linkColor=webgreen} + +\section{Introduction} + +% \ulCornerHere sets the upper left corner of where the image is to be placed. +% \reserveSpaceByFile leaves space for the image. +\begin{wrapfigure}{l}{2in}\vskip-\baselineskip +\insertTiles{choo}{2in}{4}{5} + + +\smallskip + +% +% Simple controls, there meaning is obvious. You can changes their appearance +% by using the option argument. See \textsf{eForms} documentation for details +% on how to change the appearance. +% + +\centering\StartSort{choo}{}{11bp}\quad\ClearSort{choo}{}{11bp}%\quad\StopSort{}{11bp} +\vskip-\baselineskip +\end{wrapfigure}% +\pkg{acrosort} is a novelty {\LaTeX} package for importing a +series of tiled images of a picture. The tiled images are randomly +arranged, then resorted before the user's eyes using a bubble sort. We shall refer to the figure to the left +as a \FmtMP{tiled bubble sort}\textit{tiled bubble sort}. + +This new version of \pkg{acrosort}, dated 2020/06/02 or later, +supports all common workflows: \app{pdflatex}, \app{lualatex}, \app{xelatex}, +and \app{dvips\,->\,distiller}. + +The \pkg{graphicx}, \pkg{eforms}, and \pkg{icon-appr} packages are +automatically input by \textsf{acrosort}. When the workflow +\app{dvips\,->\,distiller} is used, the package \pkg{aeb\_pro} is required. +For the first time, \FmtMP{multiple tiled bubble\\sorts supported}multiple tiled bubble sorts can appear in the same +document, +though only one can be sorted at a time. + +\paragraph*{Demo files.} There are two sample files for this distribution: \texttt{as1.tex} (only one tile bubble sort), +and \texttt{as2.tex} (two tiled bubble sorts). These are found in the \texttt{examples} folder. + + +\section{The Method} + +The creation of the \emph{tiled bubble sort} has two easy steps. \verb~:-{)~ +\begin{enumerate} + \item Embed your graphics using the \env{embedding} environment of \pkg{icon-appr} and the special + command \cs{asEmbedTiles}. +\bVerb\takeMeasure{\string\asEmbedTiles[\ameta{ext}]\darg{\ameta{name}}\darg{\ameta{num-tiles}}\darg{\ameta{path}}} +\begin{dCmd}[commandchars=!()]{\bxSize} +!color(gray)\begin{embedding} +\isPackage +\asEmbedTiles[!ameta(ext)]{!ameta(name)}{!ameta(num-tiles)}{!ameta(path)} +!color(gray)\end{embedding} +\end{dCmd} +\eVerb +The \cs{asEmbedTiles} is defined by \pkg{acrosort}. The parameters are: +\ameta{name} is a unique name used by \cs{insertTiles} to refer this tile +embedding; \ameta{num-tiles} is the number of tiles; \ameta{path} is the +path to the graphics file,\footnote{a relative or absolute path, relative +preferred} the graphics file is referenced by its \emph{base name}. +Usually, PDF files are used for graphics. + +\cs{isPackage} is optional and must appear prior to the \cs{asEmbedTiles} +command to which it refers. \cs{isPackage} means the tiled graphic files +are ``packaged'' in a single PDF, named +\texttt{\ameta{base name}\_package.pdf}. + +The optional argument \ameta{ext} is ignored when \cs{isPackage} is +present; otherwise, an extension of \ameta{ext} is affixed to the graphics +file. If \ameta{ext} is not specified, then an extension of \texttt{pdf} +(\texttt{.pdf}) is assumed. + +\textbf{Base name:} Suppose the base name is \texttt{myPicure}, then +\ameta{path} might be \texttt{graphics/\allowbreak myPicture}. If +\cs{isPackage} is expanded prior to \cs{asEmbedTiles}, \pkg{acrosort} looks +for \texttt{myPicture\_package.pdf} in the \texttt{graphics} folder. If +\cs{isPackage} does not appear, then \pkg{acrosort} looks for the sequence +of the tiled graphic files \texttt{myPicture\_01}, \texttt{myPicture\_02}, +\dots \texttt{myPicture\_\ameta{num-tiles}}, numbers less than 10 are +prefixed with a zero (0). In this case, the graphic file extension is taken +to be the one specified by \ameta{ext}, or as \texttt{.pdf}, otherwise. + +\cs{asEmbedTiles} puts the base graphic file in a box and measures its dimensions; +the format for the base graphic must be in a format that \cs{includegraphics} supports, for +whatever PDF creator you are using. In particular, when using straight {\LaTeX}, the base document +show have an EPS version. Note that in each of the graphics folders (\texttt{choo} and \texttt{emoji}) +both PDF and EPS versions of the base graphic are provided. + +\goodbreak + +\item In the body of the document, place the \cs{insertTiles} command: +\bVerb\takeMeasure{\string\insertTiles\darg{\ameta{name}}\darg{\ameta{width}}\darg{\ameta{n-rows}}\darg{\ameta{n-cols}}} +\begin{dCmd}[commandchars=!()]{\bxSize} +\insertTiles{!ameta(name)}{!ameta(width)}{!ameta(n-rows)}{!ameta(n-cols)} +\end{dCmd} +\eVerb +where \ameta{name} is the name of an embedding (\cs{asEmbedTiles}); +\ameta{width} is the total width of the picture; \ameta{n-row} is the +number of rows; \ameta{n-cols} is the number of columns. +\end{enumerate} +For the tiled bubble sort figure of this document, the following was used. +\begin{Verbatim}[xleftmargin=\amtIndent,commandchars=!()] +... +\begin{embedding} +\isPackage +\asEmbedTiles{choo}{20}{../examples/choo/choo} +\end{embedding} +... +\begin{document} +... +\insertTiles{choo}{2in}{4}{5} +... +\end{document} +\end{Verbatim} +It's just that simple ! + +\section{Controlling the bubble sort} + +Below are three basic commands for controlling a tile bubble sort by the name +of \ameta{name}.\normalbaselines +\bVerb\takeMeasure{\string\StartSort[\ameta{KV-pairs}]\darg{\ameta{name}}\darg{\ameta{wd}}\darg{\ameta{ht}}} +\begin{dCmd}[commandchars=!()]{\bxSize} +\StartSort[!ameta(KV-pairs)]{!ameta(name)}{!ameta(wd)}{!ameta(ht)} +\StopSort[!ameta(KV-pairs)]{!ameta(wd)}{!ameta(ht)} +\ClearSort[!ameta(KV-pairs)]{!ameta(name)}{!ameta(wd)}{!ameta(ht)} +\end{dCmd} +\eVerb +Use \ameta{KV-pairs} to change the appearance of the fields, where +\ameta{KV-pairs} are \pkg{eforms} field key-value pairs. The \ameta{name} argument +(\cs{StartSort} and \cs{ClearSort}) is the name of the graphics to be controlled. +(\ameta{name} must match up with the \ameta{name} argument of \cs{asEmbedTiles} and +\cs{insertTiles}.) The \ameta{wd} and \ameta{ht} are the width and height of the push button fields. +If a caption is provided, set \ameta{wd} to \texttt{\darg{}} and \pkg{eforms} will automatically +calculate the width based on the value of the \cs{CA} key. + +\newtopic\noindent +There are several other commands of interest, these are, +\begin{description} +\item[\cs{customStartJS\darg{\ameta{script}}}] (Field level) Inserts + \ameta{script} just prior to the start of the sort (\cs{StartSort}). The default + is \cs{customStartJS\darg{}}. +\item[\cs{customFinishJS\darg{\ameta{script}}}] (Document level) Inserts + \ameta{script} just after the finish of the sort. The default is + \cs{customFinishJS\darg{}}. +\item[\cs{appendStartSortJS\darg{\ameta{script}}}] (Field level) Inserts + \ameta{script} following the underlying package JavaScript of + \cs{StartSort}. The default is \cs{appendStartSortJS\darg{}}. +\item[\cs{appendStopSortJS\darg{\ameta{script}}}] (Field level) Inserts + \ameta{script} following the JavaScript of \cs{StopSort}. The default + is \cs{appendStopSortJS\darg{}}. +\item[\cs{appendClearSortJS\darg{\ameta{script}}}] (Field level) Inserts + \ameta{script} following the underlying package JavaScript of + \cs{ClearSort}. The default is \cs{appendClearSortJS\darg{}}. +\end{description} +Some simple examples; assume there is a text field by the name of +\texttt{"message"}: +\begin{Verbatim}[xleftmargin=\parindent] +\renewcommand{\customStartJS}{% + var f=this.getField("message"); + f.value="Begin sorting choo"; +} +\renewcommand{\customFinishJS}{% + var f=this.getField("message"); + f.value="Finished sorting choo"; +} +\end{Verbatim} + +\paragraph*{Placement.} It should be noted that the above commands marked as +``Field level'' may be placed in the body of the document, prior to the +commands they effect. The other command (\cs{customFinishJS}), which is marked as +``Document level,'' needs to be placed in the preamble to have any effect. + +\newtopic\noindent The sample file \texttt{as2.tex} provides examples of these various commands. + + +\section{Creation of tiles} + +Use the package \pkg{tile-graphic}\FmtMP{\pkg{tile-graphic} pkg} to tile a +graphics file. In the \texttt{examples} folder there are two demo files, \texttt{as1.tex} +and \texttt{as2.tex}, that use the graphics in the \texttt{emoji} and \texttt{choo} folders. +These two folders contain files \texttt{tg-emoji.tex} and \texttt{tg-choo.tex} that were used to produce +the tiled graphics. The one in the \texttt{emoji} +folder is reproduced +below.\FmtMP[-3\baselineskip]{\texttt{pdfcreator=\mbox{\hskip20pt}\\pdflatex\string|\\lualatex\string|\\xelatex\string|\\distiller}} +\begin{Verbatim}[fontsize=\small] +\documentclass{article} +\usepackage[!wrttofiles,packagefiles,pdfcreator=pdflatex]{tile-graphic} +\setTileParams{4}{4}{emoji} +\begin{document} +\tileTheGraphic +\end{document} +\end{Verbatim} +Refer to the documentation of \pkg{tile-graphic} for more information. Currently, the options +are \opt{!wrttofiles} and \opt{packagefiles}, these produce \texttt{emoji\_package.pdf}. If you are using +\app{xelatex}\FmtMP{for \app{xelatex} users}, you'll need the ``non-packaged'' files. Produce them by changing the options +to +\opt{wrttofiles} and \opt{!packagefiles} and compile, the files \texttt{emoji\_01.pdf}, +\texttt{emoji\_02.pdf}, \dots, \texttt{emoji\_12.pdf} should be created. It's just that simple! + + +\section{Applications} %\previewOn\pmpvOn + +I've used this package to create birthday, wedding, and anniversary cards for +friends. You can use it for whatever novel idea your mind can conjure up! +Enjoy! +\begin{center}\fboxsep1bp\fboxrule2bp\appendClearSortJS{toggleSetThisLayer("retire", false);} +\leavevmode\llap{\StartSort{emoji}{}{11bp}\olBdry\ClearSort{emoji}{}{11bp}}\quad\fbox{\insertTiles{emoji}{2in}{4}{4}}\quad\leavevmode +\xBld[print=true]{retire}\rlap{\parbox{1.5in}{Now, I simply must get back to my retirement, \dps}\eBld} + +\end{center} + +%\newtopic\noindent +%Now, I simply must get back to my retirement, \dps +\end{document} diff --git a/texmf-dist/doc/latex/acrosort/docs/acrosort.pdf b/texmf-dist/doc/latex/acrosort/docs/acrosort.pdf new file mode 100644 index 00000000..37113157 Binary files /dev/null and b/texmf-dist/doc/latex/acrosort/docs/acrosort.pdf differ diff --git a/texmf-dist/doc/latex/acrosort/examples/acrosort_test.pdf b/texmf-dist/doc/latex/acrosort/examples/acrosort_test.pdf deleted file mode 100644 index a32fdbce..00000000 Binary files a/texmf-dist/doc/latex/acrosort/examples/acrosort_test.pdf and /dev/null differ diff --git a/texmf-dist/doc/latex/acrosort/examples/acrosort_test.tex b/texmf-dist/doc/latex/acrosort/examples/acrosort_test.tex deleted file mode 100644 index d64bfe8b..00000000 --- a/texmf-dist/doc/latex/acrosort/examples/acrosort_test.tex +++ /dev/null @@ -1,44 +0,0 @@ -% -% The AeB Pro Family -% http://www.acrotex.net -% dpstory@acrotex.net -% -\documentclass{article} -\usepackage[designii]{web} -\usepackage{acrosort} - -\university{\AcroTeX.Net} -\title{The AcroSort Package} -\author{D. P. Story} -\email{dpstory@acrotex.net} -\subject{Test file for the AcroSort Package} -\keywords{Adobe Acrobat, JavaScript, LaTeX, JavaScript, sort, slicing} - -\theNumRows{4}\theNumCols{5} -\isPackage -\theImportPath{choo/choo} -\theTeXImageWidth{\textwidth} - -\parskip6pt -\parindent0pt -\thispagestyle{empty} - -\bDebug - -\begin{document}%\previewtrue - -% \ulCornerHere sets the upper left corner of where the image is to be placed. -% \reserveSpaceByFile leaves space for the image. -\noindent\ulCornerHere\reserveSpaceByFile - -\smallskip - -% -% Simple controls, there meaning is obvious. You can changes their appearance -% by using the option argument. See \textsf{eForms} documentation for details -% on how to change the appearance. -% - -\centering\StartSort\quad\StopSort\quad\ClearSort - -\end{document} diff --git a/texmf-dist/doc/latex/acrosort/examples/as1.tex b/texmf-dist/doc/latex/acrosort/examples/as1.tex new file mode 100644 index 00000000..7d37a16b --- /dev/null +++ b/texmf-dist/doc/latex/acrosort/examples/as1.tex @@ -0,0 +1,49 @@ +% +% dpstory@acrotex.net +% +\documentclass{article} +% aeb_pro not required for pdflatex, lualatex, or xelatex +% If you don't have acrobat, no harm done. For the +% dvips -> distiller workflow, aeb_pro is required. +\usepackage[% + web={designiii}, + eforms,useacrobat +]{aeb_pro} +% for non-pdfmark workflow, and if you don't want to install aeb_pro, +% the alternative is to use the following two packages instead. +%\usepackage[designiii]{web} +%\usepackage{eforms} +\usepackage{acrosort} + +\university{Acro\negthinspace\TeX.Net} +\title{The AcroSort Package} +\author{D. P. Story} +\email{dpstory@acrotex.net} +\subject{Test file for the AcroSort Package} +\keywords{Adobe Acrobat, JavaScript, LaTeX, JavaScript, sort, tiling} + +%\previewOn\pmpvOn + +\begin{embedding} +\isPackage +\asEmbedTiles{choo}{20}{choo/choo} +\end{embedding} + +\parskip6pt +\parindent0pt +\thispagestyle{empty} + +\begin{document} + + +\begin{center} +\insertTiles{choo}{.67\linewidth}{4}{5} +\end{center} + +\smallskip\customStartJS{console.show(); console.println("Starting the choo sort");} +\centering\StartSort{choo}{}{12bp}\quad\StopSort{}{12bp}\quad\ClearSort{choo}{}{12bp} + +\vfill +This demo file works when viewed in \textsf{Acrobat}, \textsf{Adobe Reader}, or \textsf{PDFX-Change Editor}. + +\end{document} diff --git a/texmf-dist/doc/latex/acrosort/examples/as2.tex b/texmf-dist/doc/latex/acrosort/examples/as2.tex new file mode 100644 index 00000000..aef2616d --- /dev/null +++ b/texmf-dist/doc/latex/acrosort/examples/as2.tex @@ -0,0 +1,87 @@ +% +% dpstory@acrotex.net +% +\documentclass{article} +% aeb_pro not required for pdflatex, lualatex, or xelatex +% If you don't have acrobat, no harm done. For the +% dvips -> distiller workflow, aeb_pro is required. +\usepackage[% + web={designiii}, + eforms,useacrobat +]{aeb_pro} +% for non-pdfmark workflow, and if you don't want to install aeb_pro, +% the alternative is to use the following two packages instead. +%\usepackage[designiii]{web} +%\usepackage{eforms} +\usepackage{acrosort} + +\university{Acro\negthinspace\TeX.Net} +\title{The AcroSort Package} +\author{D. P. Story} +\email{dpstory@acrotex.net} +\subject{Test file for the AcroSort Package} +\keywords{Adobe Acrobat, JavaScript, LaTeX, JavaScript, sort, tiling} + +%\previewOn\pmpvOn + +\begin{embedding} +\isPackage +\asEmbedTiles{emj}{16}{emoji/myemoji} +\isPackage +\asEmbedTiles{choo}{20}{choo/choo} +\end{embedding} + +\parskip6pt +\parindent0pt +\thispagestyle{empty} + +% sortName is the name of the active tiled sort. At the end of a sort +% if it is the choo sort, we start the emj sort. +\customFinishJS{% + if(sortName=="choo") { + var f=this.getField("message"); + f.value=("Starting the emj sort from the choo sort"); + startSortAS("emj"); + } +} + +\begin{document} + +The new \textsf{acrosort} allows for multiple tiled bubble sorts. + +% These apply to both tiled bubble sorts +\appendClearSortJS{this.resetForm("message");} +\appendStopSortJS{this.resetForm("message");} + +\begin{minipage}[t]{.5\linewidth-5pt}\kern0pt +\begin{center}\fboxsep1bp\fboxrule2bp +\fbox{\makebox[0pt][l]{\makebox[\linewidth][c]{The choo tiled sort}}% + \insertTiles{choo}{\linewidth}{4}{5}}% +\end{center} + +% the \customStartJS and \appendStartSortJS apply only to choo, since they are in a group (minipage) +\smallskip\customStartJS{var f=this.getField("message"); f.value=("Starting the choo sort");} +% if Ctrl key is not down, we fool the \customFinishJS by renaming sortName, that way, simply +% pressing the Press Me button does not activate the emj sort on finish. +\appendStartSortJS{sortName=(event.modifier)?"choo":"";} +\centering\StartSort[\TU{Click to sort the train, press Ctrl-Click to sort both}]{choo}{}{12bp}\quad\StopSort{}{12bp}\quad\ClearSort{choo}{}{12bp}\par\medskip +\end{minipage}\hfill +% +\begin{minipage}[t]{.5\linewidth-5pt}\kern0pt +\begin{center}\fboxsep1bp\fboxrule2bp +\fbox{\makebox[0pt][l]{\makebox[.5\linewidth]{The emj tiled sort}}% + \insertTiles{emj}{.5\linewidth}{4}{4}} +\end{center} + +% the \customStartJS and \appendStartSortJS apply only to emj, since they are in a group (minipage) +\smallskip\customStartJS{var f=this.getField("message"); f.value=("Starting the emj sort");} +\centering\StartSort{emj}{}{12bp}\quad\StopSort{}{12bp}\quad\ClearSort{emj}{}{12bp} +\end{minipage} +\vfill + +This demo file works when viewed in \textsf{Acrobat}, \textsf{Adobe Reader}, or \textsf{PDFX-Change Editor}. + +\vfill +\textField{message}{\linewidth}{11bp} + +\end{document} diff --git a/texmf-dist/doc/latex/acrosort/examples/choo/choo.pdf b/texmf-dist/doc/latex/acrosort/examples/choo/choo.pdf index b1cd7845..0ab994e1 100644 Binary files a/texmf-dist/doc/latex/acrosort/examples/choo/choo.pdf and b/texmf-dist/doc/latex/acrosort/examples/choo/choo.pdf differ diff --git a/texmf-dist/doc/latex/acrosort/examples/choo/choo_package.pdf b/texmf-dist/doc/latex/acrosort/examples/choo/choo_package.pdf index 47f921aa..cc93c517 100644 Binary files a/texmf-dist/doc/latex/acrosort/examples/choo/choo_package.pdf and b/texmf-dist/doc/latex/acrosort/examples/choo/choo_package.pdf differ diff --git a/texmf-dist/doc/latex/acrosort/examples/choo/tg-choo.tex b/texmf-dist/doc/latex/acrosort/examples/choo/tg-choo.tex new file mode 100644 index 00000000..c7c5e220 --- /dev/null +++ b/texmf-dist/doc/latex/acrosort/examples/choo/tg-choo.tex @@ -0,0 +1,12 @@ +\documentclass{article} +% xelatex uses change options to wrttofiles and !packagefiles, while your at it +% change pdfcreator=pdflatex to pdfcreator=xelatex +\usepackage[!wrttofiles,packagefiles,pdfcreator=pdflatex]{tile-graphic} + +\setTileParams{4}{5}{choo} + +\begin{document} + +\tileTheGraphic + +\end{document} \ No newline at end of file diff --git a/texmf-dist/doc/latex/acrosort/examples/emoji/MyEmoji.eps b/texmf-dist/doc/latex/acrosort/examples/emoji/MyEmoji.eps new file mode 100644 index 00000000..1f650006 --- /dev/null +++ b/texmf-dist/doc/latex/acrosort/examples/emoji/MyEmoji.eps @@ -0,0 +1,8732 @@ +%!PS-Adobe-3.1 EPSF-3.0 +%ADO_DSC_Encoding: Windows Roman +%%Title: MyEmoji.pdf +%%Creator: Adobe Acrobat 20.9.0 +%%For: dpstory +%%CreationDate: 6/12/2020, 9:18:11 AM +%%BoundingBox: 0 0 360 360 +%%HiResBoundingBox: 0 0 360 360 +%%CropBox: 0 0 360 360 +%%LanguageLevel: 2 +%%DocumentNeededResources: (atend) +%%DocumentSuppliedResources: (atend) +%%DocumentNeededFeatures: (atend) +%%DocumentSuppliedFeatures: (atend) +%%DocumentData: Clean7Bit +%%Pages: (atend) +%%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 + {<>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 64 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 64 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 64 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<>}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]{}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 + /DataSourcedef + /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{ + <>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> + endcodespacerange + 1 begincidrange + <0000>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 + 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> + endcodespacerange + 1 begincidrange + <0000>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 + 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/.notdefput 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> + endcodespacerange + 1 begincidrange + <0000>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> + endcodespacerange + 1 begincidrange + <0000>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} 842 (% &end XMP packet& %) ReadBypdfmark_5_string + + + + + + + + + + + + + + + + + + + + + + + + + +% &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 +Adobe_AGM_Core/ps gx +gsave +/0 +<< +/0 +[/DeviceRGB] /CSA add_res +/CSA /0 get_csa_by_name +/MappedCSA null +/HiVal 255 +/Lookup <~ +!!!!k7RHmmA=lLRX)rYeV/aQ#f.mgD^RT]OYTI1cJYf9FTOM3MBm;7P`bS1/@MKVpH^_.5L;6Ym$OR:% +TV]heN1`m3@q0#2C;6`Q:908"YLU;,UkHU0BV9lhp$CNU#m`.2+p\M[=\:a$U7gJTWI?BPP]gHaQ&X%I +Ja&bo^Ks[7Q&LZeVdj.Eb%P(nE-RXuH<"][`:5 +$471?[C,A#X.tbhNAE8QH>#`FC^LXW#RCaiG\FLVQ0!RYe?+](]LBV=C1s3h@B=gdQ$S6X5&DVkYEI6+ +p\0>S>GH_hhV6T?c(<+SQF1!nO%`q,"%hK?cN,WEh[GS$4 +CtZ(SgUqk.U8,taJb7X=]R#+QG\GjS^i"=Qfl`2Bj4pFm5N.T\IYXE1T7EYKBn%HU\8>U'KnA0D/@:Ok +hNslE$jY[LKXe(E^mC!Q-mZ3$9##=Y;D0$8W/&Q8BVJg6q5:!'4>Y6qiUX)sOiF0*T5;c&H'V#c:gA/5 +n*[u)?.aFAX&_j-?WN( +WJuJ0NH)FID81+/0f_nB[Af9K4+9:Jfnt?]?X1@.KtG4I;B$H8.i)Y<*8>:0b+F`-1+1bjMW0;@fSb[) +T9>Fm?eD``XC,$,YHbl\?V*@@j-5MZ<^>D10qWr9[?lg(H[ +>> +/CSD add_res +grestore +Adobe_AGM_Core/pt gx +%%EndPageSetup +1 -1 scale 0 -360 translate +pgsv +[1 0 0 1 0 0 ]ct +gsave +np +gsave +0 0 mo +0 360 li +360 360 li +360 0 li +cp +clp +0 360 mo +360 360 li +360 0 li +0 0 li +cp +false sop +/0 /CSD get_res idxcs +gsave +clp +[1 0 0 -1 0 360 ]ct +[360 0 0 360 0 0 ]ct +snap_to_device +<< +/T 1 +/W 360 +/H 360 +/M[360 0 0 -360 0 360 ] +/BC 8 +/D[0 255 ] +/DS cf /ASCII85Decode fl /RunLengthDecode filter +/O 2 +>> +%%BeginBinary: 1 +idximg +JlV>@!$M)u!32PhJlRP*rK$oCtO]@!5!=$=7%KMcb<<0]-Nr_rtr)J>KR8j7l +^\A9=^\1[)<<2[eNr_rtkZ*47YZ1_2:\G7u:Z51tBsgt&<<,bgNrZhl +GMWe+6A<<*6q%eNbq<<**pNr];) +mT"j=Z;gm=oaUu:hc7*b!;,uG!BpJa+[*Vg)Am +r4HlW&O:do?I7OINRVZrI+(qq_A"-J2=Mh>r4HZW2TWJlVAA!2fGG!RDm]i/a2]@fK("/HEch@KBP>2m9#Y6k +8n'A(9)^CH8kQmf\sg5.BEu,[BLPt;\@CX#JlS=@!71>p!.slDh,P%L4M\bD]"g'V4?R1aA`.#i@f>4" +^m[]\R_$)!R_VNI^q)tG<`Ze4^pqfmJlT'U!2fGG!70S'oMm!C/P7TH^b)"D9";AnXut6G@Udksi%#9@b%X5AcAh<@b"(Ci0m]^=IE1b<<+oS)$*g!P#^mL +![+W$q;))ug/TP'\1K:A4Oqtk8hs"$4EYS?Dl7MoVe+D.J(<)I5$Dm&Ff.EGVq8*'rB()3riZ60"4^$% +/H[T9RTPbR!06po!*&krl;a0N!@H.ih>i0#J)IJ5E^&)= +Ec7j>Wi+JJ4p%WEfD_oTAS&#Jr7(r./M/`sg/Yab!06po!*%Wn0EuDa('_5,W=;V^D9=fDhcHf*Q#ke^`U9^q`QEa&UJd!06po!*$R1 +]i>)OK)XW`<>&DC@[b))4Cr*,f@@[e4E>I\EZK(=Df9[J>$CdS5&]&NDf7h;Vf+b;DqCmN5,Y;*rML.. +>-;&3Y19\Xe_n6YRQRoVj]);@q\]B5VH(uC"!E3ODr=V,4>"N(\k:mCAN[,ueOnBBVuCTEE]g7'-E`#* +f;EcC5&YTC4p#Xd4ooTurB:90f-^FI&#Z?%>->#]e^^hQi5!,[=J/[j<iAN[,nVlnt.AZhqR5':oFV[(gW>1]Zj5,\Bu)Ep?-Da&*k5,UTB-E#Jlf36^.qHDEQf;DgK$!Pm0 +KS7m*^m`62<1Y+!VuG9KY%@R`$a/+X>(kFZK](e( +`T1%1<<+oR)#uPA1!*m-J-irVl)^sE]jYeV)kri4.07cW'sEq\]Bo]N(G$&QlWU^b&1:^q*.re^rDV +qYFCpXohjG5,T?t-Dr1;cmCrV5,UReW]kQJW]iVHW[9'pX]ep--6')`5,rNb-J,EN>->#3eV)K'>0tf' +e^]0,i%;WBjAc1]q\]BoVcBs$.DWM`]&63=m$^Ore^p_LfD=%#eZSae5,URkV^J5!IRFrmq/Hrmq5d"N=p3B*\sba\$A)3 +eZN*+i77g1"GE54]#CFE!4;S?qc2o]JlVAA1;K?iR[VdbJ(;-\>-?JWcmC+9f36NJ5&Vc3-Dr1;=scE[ +V^?Pd-9c?34shU?qQ3r'r$DoUXX64Yf36cQfD=+%>1NV*%FosYi5!lHqHC\Ghqqo-\6k=3jm' +<X`ZfSWi%1-4siIqcs$;E-4F)0-75kA +qU_lR>5GDu=pTe2J)J,X>5DG%RK:!/eQ(!s!*B%8!&_>fSlH_u]"4?Gi#C3r>3seBeQSlQf35<,eZL7$ +D^P;r-78TcXZij6Vlb)*qE?7.5!ISrXjF3L-3UHt-J'UD=pOn->-@_u>$CpU&R*_(jIB +^h@2n$B;)4sjG[Xf_H%50tW'qJW;.4smBY +VtqaB%kFb/f<)/%XX;EAqTsoIfD\qZeUN7*>$BJ,K`-B-i.SoB=rY&g^o4cF0sBTItXrU-EXDsqU\n7=shkQDuD!h=sbSu-EXE%qCDNH#[5UOb5,;ad)uV)h/eGJ&'TaqV\rrRbqeW<<-+t)#uPi0pG'=shTCXX9qr-Mf(fXTTtSqYD`@XTQqs>1!.M!Nu:sf*2"SKR\Ker>Q!Wi.P:LBYYPf]"k=G +!06mn!4:feJlVJD$Fm[Y^qbHde_hCsrdP($ItWL*rQlHdcru+FK_j'l.F>2#-IAku-E#5B>5GAt>1!8N +"Bs/UXf_TL!a8d0r`TrCXjC7)b0[7orm1YIrm:Wp!*]RKh+Xd\s>5ZnYi#D%?^kB:fIt,8Q``;8' +!4;S?!*#^n\5aThBP=tjRd@i?)h/gnK[irBJ'*Ftd*U(;4-Xnqnmf*/<\KZ\dtrRD85^ma/6lp]i^^qd3Tr`&r"qAB:?N`FD*!+Pq.%B-kqm(gDdi4sg]m!jNa +ap3U.j7?U2g5>fJ"MVTiQbNF[!gcJMroF3JQV%!m&G#DG*m2XUeULcL>$BJCJ'._C!nCKNr`Tl`It*-) +e_hC8RY9Q;It-fIYZ1[&qAB8jpJpKYJlVbL#?Y#-W)fitW;bZU)o1#'Ih*J;J'*H)I%8pELE:GT^:sC( +!+GK\s1\DN'8lA7r;+Q>i.P9e>1LD-;1I,"d/@/IeGt:%IgX`VJ)ACuhpm4+Aai^:<<+oQ)$!a\2U?L-&)]O:WJ!tlR;:U0SA_^;<<<+oP)$#r0WQ^?,?6'(R*de^a#9d&r&P^jh#em!jN8r`Tl`eQRWU)skAu +i4t!b)rQ3.a&VP-!&aQi!48@u^Ju48BP9/ihn!Ji]"6eVIiHr)lo#d7?@:HJ*koAfOof'#IJ:e_K)Ndi +JcWrErQ+tHrF#ch^?,<5,kBK=ea24I>(khL;:X4`hr'1b9O +[#%f5<<63&qmuX]$fHNb2V?YgI"rd@^Aa;q@J\(5K)`pf@K#9pEH*I]K](bGKNd:?J&$_ee_o=(KZa:I +%Y&t3i#D%L^u3QY)hd.g\Q&[;<;7=2Nq-2%:qK#iOqGBa%(>(Ui8;4J +"14(G=8*R4[+nZ6<<,,_@_eH2\cgp%77Ffch[U_HfUR?\r;=:iP*06^IJq7bK)^&ng]D\OGQ*0rGCkG% +rIXsgq-afq8P*nOb(%3Vj+Ps4R_W,+IfdD)b5Ql#KRXqjY3bN4^u4R/J&#Oc[S@Jn4HK)Kojh#4e_h#DTsg]htHaF]#bK)E^g@0"CJjTV"4aBHa/*n>b_ +It&Ep^jghQm(/YChg^,Q)qBGRY+!.phpn0/TiLAXL/e>kBLS?qRN''"m-NWe7K20N$l[c)o>CM(^?#9V +!F^ETa9.$R_&LU"Ul=%rq#a\quFG6jH>[7IJq4eK)Tuig]Y1C\LT30 +\H(F`G6HE>GLUj2a9,jZaC5&/#en%LcuOfk2MD'Z(uO8$)o-s\RbsRFRY2W0)sj`bR_XE&\mjStJlT$T +$8&iXR_$<$m,,CcrndpY?eG?aoCMtZ!5AGq!+GcG#D1`TGMLua\c1C^\H3MV\c1C_eGa[eaSoTXK&pG& +^6drq.9\ogY/!p6KGa%pj*r$7R_$)fhn%\aJ(;?M@c-+4J)=_YRbsRLm,+8C])LRo2X&fG +rq#a!r;=;.Oo]!>r5ee[s4mUa!8RO`"=q$ngir_H!Q`dig]5k'a96p>aC30g@4K?,jd2=JQfTYC5(m,+ +2V#s"e_b+=m-NZf)eb\ORV;'Si#C2chr)9h]!bUj:M)rfR:jIK%=dG6-KC +qV21`gipj<\H:RAGQ,YeIE6WfeB%Q9!F^ET@0+GXrOr8urk91PqUJagC+=m?J(CS*rfR7ir5\q`GMN1AqqM@c\_Ptah#2F- +giphfaEMjXeB!&d@:=SIqdBWh^6drJrOs:UVhA6'C547\K\(^hC/KI"hqr+9hqsm6\f6.7i;ULmlt,ok +JlS=@"_bKYhjR"5\e*bfRc!"\f`(mAo>AKDr8a"BP*08Ka8gG]g^(IG/%KkJgt^EYG6QL;I=92drl>:l +I:6QII=;$%"IHj:Q^@]c,@Mps>-8edLFUhXeJfIf2B/+C7@HXaR_%Cf\f9Rri4?^$i8RagA1m*/O^$=%tH?!+GiIqqM?*?sp1K +YPbp4eC8^AeGamqeGjsqe-:?BaF/KXK)/n)jlMijEKXLY>(::B*nlB!-IjGm;&V>3Iq%g#mn8O<=r?r\nGd7RbsRkhjWHh?eGA?rpp91_u0GHrK@0$"k;>_\R8hD.gE3Cl`V&6 +\H.5krR:qMe9ucDe-^WRIFQbjaN/dXGPYbGjTiLL-Ml>I[YOh8)-U3^J$,:[J)Gh6)ee,t^u(TL\lP92 +B^B3QNroX.M"2k'7^Aa8sDLKV*e,spMgq!D7ric9N +";MZ%\[h[grb`2]5CfH<\Y7N`U"%S?DNap+$KRPf^?'?Sd*U'n$Ek1p5HE9Le.uq>qLAUWU&NOHDLI\2jC,ccrk9=k^?*L@KS8B@LYCI0g)aF$Vq"u')J[eAm,/i^ +^^6Hu]"1pU\nJZaO&aq7!$M.F!DO]H<WrnIgj/$H,k +YIUjIYPs%['c!neJ?,Bne8F>dq1&dFU""L.DWKlAjSZakEq,N#Hn5TJ$q?[0s+LtJ_=Lpq%]"jclR[W-&Rf:sEqssg)rqlfbOpR;7DTKoKe1%r` +rOE,_\[d6@\Y8tP$Pe2cU!siqmM:>'(&`[]TbGr:DWHsujM&?c^:nT,*e.&Ig5#X\&7/\5;5Yb`f@V!K +J)K7R8t,ap#TL@DBNAf8BJSXKL/e6GrX&K/!)9t'"[tjnR[UhdRKMI)f`(a=rqlfbr;MiiDU`Rl.Cgt> +5Ij#.U!tM,rmV#cTqN5#J-VdtDAFt#'c$Xs%ABKFe.se"mc!`rDSuGgr."dJs4$p`ro=P05=.Z66:)DR'g`[#pAGa:J:JB.X46QT()="fJ>&\9J-Qi*E,KP/DXRMb$2h\\LV=fN +g=h>ZgAYClSB>"^>&)]W?[pV/m+&n?RN!37rb)@6W++7V$Y"nhL\(GPp1bmoEo'g]rqc3j_u0Fqe1)pG59%Hh.2L)"5fprdY4hDK$Bb(3"0jmK*6@rn7>nrRq5mr7Vd2?='.!>1_;>fG\,*Y((rZm(iOf"M.WI +BO^a:j&H/YaP?bp%Mm.`@E;l?^;KRArpKK#[8lct!35Yt!$M2>'@lr7L]!=Vgno\;aN4;0'nCh.()DE9'nE"VJ2$;l\mM]FNItZG?8fO4fhjXPU!b,iQgJn[UVP\tC +-$$_T@GKY8"iu;:I:6R`OoiA8o;P^i!qcj/9iY2roCL)/r:@ht^AJEjVP\dUVIB0uraCDU(=lIe`Frra +RKjeIR_Y@MfO"RK+6GKQ_u/q?p9s\g65;^L67!q2p4W,B"E4M;p4.Z/-2nVdJ/*U.()!a/J>%Le +()CjDk'D!B"SO-pKI);L4Q(ndp&o\"mNIbbf[q"oI%8jAj4/XpC=nn\C9D.7K::]/^u)`7SYYu%2ZA(8*ral@f\#4fe\GqP)II72XoTKlrgF)LR_!0G/a'Xu +<=&G0JqC`.Z')j#JcW->ra?+r^APn?repdI\Bn71<<**o#od(>r;>W=aF/ZqVP\s'P(KRdP*2^'CA`[\ +a=5Y>"BK3I^b#lNR_V?\rr01oZ2Wkt_YfSbDCX-b58HIJe.sJt()Hj5#D@d(KGHe&JG^,u,si?MYCM/E +aOCt@DYE5T2L9[g"9eE$rb*dWSXk(QUj@?_nF5HeP0!6BI%8hI>-n<<,bh#mGd9r;>W=ra?M(_h-[@JqrrLVP_H+VI>D\ +aJOA7eQ!'oBUUM)^mZjd]%C?OZ2WkkoCMnJP&;c!.1%Ff5:\04()G'8rq6@.K`1TUKGHe&'br$F6:+!5 +67]6`eGa=jp9sR=$k/qXrhL-sNLcW9SXo7.HDI?An-iZ/nGY<`HsYGD>1\8jfG^-8Y--=5RN%^Qhn$C4 +@cucOpf/99r5b&8o3q73VLn`/Ju5DsK#l#AaC/M?^@SM-<<=:;$2Y#L>DM:&r:BpeoCIllGG]uQMoa\N +aS_oDMu7#=@Ir#L%:X">R_UL,RV9:b?Epd7jrNL!md=sBeC5or.OcgrDAF_qmd@Ld[eBCtE!1.R!JE]: +,nr\D6:1JBYHPKbDStnZ_WD9rn>(C0Ub82KSXlSGUj@>F[^NI'a^7rda7/^"I+[)ofALB^)OM=EY1:>F +R[W-k]"2Qa1>5_9eV@So_u=)"K%ts9!+Gl^"MWr*aF4'/"CYa"_fDbW!?dI##ltrNrppHoP$re:Md_47 +g^[bNP(KQ_LSeML_ifU[r7+dL`Ft^/rkJZo^hDA,rT4ePoAf8%DCX/c.EF![.Ot.0p?oBLr\af\H@#QK +$#oSR5:%%25s[j:p^"(6ID1JCalX!3nGZYpV!qWbrgj%a!]K1!rk]lWZ!Lbj?cSAof[u_Hj4At")B)si +eQRU@RbsRkR_!05\2)`;'T;tCo7HRsVLlng@GHHdMu9K&!5Tr.<#fr5dZF@K$02ac$/r^:q\dEp-Ngk"QYUnmqt"+'+l2ZE:jLO@g'SClKc +?C]Yq-A6l,?Q*9dY18uPhjU"kR_$(1@eWm^<>/][Ju5EdoDJTNJqD)ArdnRAP2uW?"7uN]EkGE=<VP_FtP(J8i@>FH;Ju7?#Jca$7o;5M$Q-]BL +@:>=^^:oM6Ju6WeP5P6@%K=*>renn9Ju7>#aM,17<=?;l\sf)!R_"F0k2u[B!]IpnqX+R)o>9PcmdC)P +#NN\3EJHMut=H>#2>p(f//pa[k&YCaheq-V2Ad0e:KNQ4rdn>$Klk5PA[k5G8aMi7R@g=gqEr7D'S +e[GE`!q:kmrji8%Rbt]f^suEuo>lO=gk(.UaHBuLr5aJAgk(.!rdk3m@?UOgW`9TQ_dUX#P5Op0Mt>$F +ggS<2qiV6_r8a`Pgt\&.q,Q0L&A#HAhjV?Zf`($qroWA7_Yj?""oRuS_Yj?1mf34bj8JQL2Z2_:H3FG[ +p:2]arIP3>o()T`;Z+oHNQ4rdn-fa)rW;4?k5P>]abu&YMi7T6HiT]7fE0FMm/12tK](b!hqu$&R^utY +<>>/JaF_KbaC2uAo8Ac`K#k3[P$uH2Jc]A9Ep-N;<=jht@=l5bo8!>C^4N6'rk@ImOp,9&aN3/6rnIO; +b2cRl<=$0)]"4?!nC[a=jom[7j8@rtrqm2r2E&GMr8[_Qj2/Ykrpp0QoDUWLk2nT$H4L.easkiqgk(.> +8P*DrR)f0Q"c\M^;XfVD$jck3ju2B$2I>&6MZDE/SG_"@crqOi?NCtO!T;l7\cbIZRV94]<>rK7:l@E=%PrnIR,^:;Wl"1i/7\c]NW +)VFuM"7u-Er;P^_r8[D22WM]mk1fk8$p@-E'I&P+2WcnUk2uYh!X,s?rl>CtK(%em8b+DKa8OBnNK$h6 +n;E4oKqB%Zr]LW'Ko:j-Mi/JlfUSK0fE0FMW;L!)j5AhPrON&DBXmb9i)L!3^0tHkaC5%1#Q2Za@JmBc +r;MHRgrPZ/]iF5q(tE&'Ju5DsP$qes_o_hjP*07:P$uF`K#mqC!W9IV<=1b)n)[,4ngkTtd=ouqN=SobnF3(D!"/U$?XN:@fUSJa +)ZJ@jd!tQ_?O8XKR[QZY]"2Rdi)TDL"nQ/2IE5jqOq#.H@K,&6aF`3EgrPZPVcEUo%uZU!Ju5Dsr4ZV; +r.k35P5SeoaN/sbaF[jldT$RgBLTLGnC[a&r::<5j5\#Jj7DmA2ZB?H!!GGJ!!#1[!!,6:reh`bUj'K;ZWrW!b,M[]+EH?qJqmd?7$@7bJ0@k:h#rJ6.2d>c1EkS3sq!^.]= +rFZ-SJc,QPqrmNVf\$*?!`@hnr*KRbi8:!7rb)>2^sc9i-2`p7@?Qd^P5P7L#Ej\9VLi6>[ej($<N;rt5\6,A8c"@"VB4iAH +2mb@>!!J#T%.L(lH5$5EP%!HDo($;d>6Fh[Ls_2[;Iob,!sN5j%T(9%-RZkgWN^+Ar+]E!!"r%c"8o"=Ld)c4cMA^$oWDir;=:C +jbiX"A,2LUrDSEta&5e8!8G"cPp'`_B)hpEB-GOS=9/C%qrm8@)?oKs)B)s$ra,eXhs?e#rb):@oMsdK +!qZ$]rK7WfLPNTlK&!6#gk&st[^fE"<j*b0a2t@VBGRBH#OcZ1IS( +_YsB!!$Yk +Lh$YHi1u>[-c]Hq2R^I\_YjAH%#SP)/1cMl7+$^Ja,U)B(<*ejQ(Nkg+TMKd<=^@?[(+(7!'O6Dr>G_9 +W;IS5?O2/J)nK^]<`W>N<CM(rpBjcmem%T!5e]P!lDimrpCs'k2seJk/+CcrX@r+2WNi7r8cqtQ^9C9nma5* +"-Z,OdJo4*dJh0"kig(-d5sFL7:Q.-kN?BJT)`Jer>G_9Mu=Rm?O(?4^u))(<`[RI'!Cj(^:sOC^0uWK +gnrlJ@?UW"pf4+i"P*,)aP?`k!o1k*qN:rpr;=(u3 +DJjE2(2i3o0uNGIDSs?.m]l3Xr8cq%jC.#6ZDI,%q1bjNPPrl>r)3OX!FP?jkPuFt;@/PN?Q'j8rn&.A +r>GuL?iKE-he6\(1=0#5\F]X4^AP^.aF`4&VLi7;o=!XY\Q&cQrkF63CPPrQ$;Z>nZ?N_8c +f[u_m)@;du)OOmqPET?\rYkdgr>PZB#CM(jSk>BDZ5guj8kElpic_frdFh-rkf6DIH61]jF(HF +iF/(>nhC&Q$7r0D(Di:_a&;-bra5UB"PB4_S/VP/r7QV?>V*I:<,]KXf`(L6_u/TVrf[4t +"FY0*I=;-Dq0*0oe9ua_jQ+4&grTJX(1DXMjGJh]MMa*U@k90cR&QGhPK-R!ra5[Dqjd]^rKdKZs.'', +"ItudS6Pr^rYc)M?Q'l57As6f\DLn;fNtiS_u.70P&?H^DZ5(_G6=miGId]\%(US+I=:0oj>#HFeC=JG&'/1nQ\pZeZLY;t +@q.'ELAmPO?Pga\P8BT)S=KENQBj3YQMp@UQBq@GS,jO4qO@QtH?@;a0-eC8]C\R8h2 +lX9&E@!?gCI;\+`maU%Ie@F)YGB\XI@Ju&bZEj'#@g&2NL8fn;>F6=r;NpPalh)?lL8?Q'l5r`0"ScW(76^:sN#oDFcmrdk6nP5NJrcKrp0Qo&_,FbLCo(%ZqZAJhVnh?C*RJ36N)?lLq?XFb%r`0,!2M?,!<=cfPI:8;QL]"m- +I:6Quo=3aZl;c&.&[&iVP*5EFIE7"laF05cLU"A<<=-1hMMJot@;u_=$.rSU_o)E5jH>]*I1+PKGH5qu +@"@RR\Z>_Z$03hY_esnPe@Bf&?jYUrJmi*HZAP!8riub_0OnU\/6dl,>8!FG:@q3I=# +QN$^SS.JmC)OQn!?Q4JqF:*;D?@L`_r$"(C->,R$_*JR@3pIqj[XjrYbd(ra,tH)cg!Dq==>"PMoO6<_ZS/UUhfi8<^YSaUeP/r71rh]qUJs*kG_u@0/<bRan%N+8 +@:=0.a^4SV_u/TVP'qb&GH8:R?k'1&?sr7t,/#Ld(rpTgErNcE4""[q5>Q68P +@g">eq>"7l(BBj$L'CjdR@.9Iq>Hfs>?`!aR$_5f(M_i.)Yrri)OM>=g/S+\r]LCVLLGeir2'XLaHHJm +Mt9r@<<^oZ^0uWKrh^"Wgk(,dP%6`?$hmZZ<>YL`jbdBs^1"`^ag&++_u/SYI=9UhGH:RJ"m`AXD/JV; +@/k*C?lX#6q"TeUJmn,se)Ad7e)B8kZ7rR<0OnTDL+FnQ@fS(Z@fcC0rItAX/1^uV>F_+L>:fcArEK:? +s-Wdm$Pt_4W*Ai`S/PU=EnXLnl2F3U4ZE86rh]rO/#K1qaM.7\hGps`#I&p]r5aKFh#4)Ugk*W.r&s^9 +l/Pe:<#sF/=cZC!#kg's'H-M2J?=jo(eYW/1auYr#O?5DlYYs)D>s;HN,4kNaOqNbHCQ=4*T^@THQZ1Gm2jH=q> +e9@t(@/fHmD>=*I"8MY.q#,%Tg%]E$q"S]CVIAFle*?5!X*Hf8Yr7n +rM9NKRJp^qR0"pD>Ps3W>D@n2Qk!J1(DdLY>M>U2)I)cB>2rWY<p/MF'83OXWAFP1ph#+#U%,9N"8/+Tc]s-0i*@?QqLV@2*?G;3:riq6r +^?"@'IFNJA@-b#"D/K(ID>a/;D>7u$fkpNZD/EZhi<7WYlD@tfWtKr5U"%TN3JoLE@q.'EL8fo;0`7aJ +Z=Ed.r\+C`R@3i)r0Rt$?PhpakFC75(RSE:noEJb!PLYq8,tpS8-;,M84`PI!^/[Snl5^U$i[7*Es%Z= +$3o![!35g1!^hU*mSs8q4oW.p8H/Jk,5_7.83OZ"r^[.)84Yns<>]k6QA=F-@:"_Eao8Q#_u/TVI=9Uh +X6]*ND#sEKq=su,rV-cRD/E[)iR?8"?sr="WslOhX/jb"IGp'@0U\=9R4O)IW@VOhV56cXV>`.TA!nm& +L8gQ-L5,Sm%UU"gkjTL\q3)U5>@[JLgf4=^qa^j_TLb^ir^[#SrC@()4hWudpJq/l!L5;3Es%Z=]*m1i +!L;+-C]`0,Fm`62]fj(.8H6C"8->NX8>,oP!PK?Jp.GYPrAB +pt>Gqpd+iQ!c?WcrG;sNGN!t%GNrT%YH)kkrMp0Ie:$;5LR+A-/-^i`WJ2s60`@jIZ37#0ZDFB&V(e`" +R@/earMf[]!+5^A"d>l'q&11NQi[#MgJn=>8A4mk!20<^!h`(Lqa^cO4U^m^!L7p'Es/R6]=T]\pd+[@ +rqI"@D.$c#iHKM2\_OaNGLY.AG7$u9IGpNMQC3J^>Q-/WL8fnY@kdkX"0tM(8c>pt0VpI5RJqs>Wd!q4*h>(RXnrk#DEGr(%Db8>&LETG4%iTLb_H]h#h"4nM_TPqM]M!"/_;!"7FZ!NKu0 +C]d&U79K%Z!pMk]r($f%rCHrRrC?o&r^[('4kWg:LPNVC@1\c3fZF,tLVq$jjF,OY\a-HuD$0Rdfg5O% +!nfk*rn.`tD.'DgiSf"GgimtlaSpVfeGak"iT,lOQCRr/%pLTQ/?+@TR:@qIZEfh&8cH"&V6Zqo0JHuf +L5%bdWW/@b(C0/fn66eLQMLKHiDoeU!Xh0)rC?oRr^[*`8>,fM"/&1Jl1@sU$hJE>XSoa2#2)uVWqC02 +1tL6oQ2FYU<<="#^%t;"T`.I`5Y.RG8-1q;YhE(d?=(?SIIEMgfZF,tLVs,P$@R-!\a-G9D>1h0OlXbL5,N' +rYGt+P>W<+q3LiHR$dg,<<9<&MH8GYjX^$52i!!_t7!(Qt"!3FjR!,qLG"%1YjKCMqB +YW_qU!u+!k8-2=QT_q=\'`:K&4YPMh(]IaT@FKgpQIs=YZ1GlNjQ(`5\R=a,D>j8.5m+U*6+?hZ'%q,= +X%Uq#jF)7-IH7Zr7k9Pl2F3UTL_VHr($fQr^[#'qa^](p/M*X!-n$T!&OSc!!_.W!$LoM!&X]+!*Jel +!t.Xj4o7bN'M/4r!_=#uqagb#r)MWS)t%%H@=cII>WW#jSjoDZ!LbA^?!"c_hX"RQl#ac'c3iRR@/esL5)+^MR&SSQ^::L8P-2fZMp^"@fS(ZLAn1L +(CQFjn<7)PQMI&<)CsTC!Bn-n8H5@^8-5GLT_h7]4Zs2H<<*ErEr\#q])fMrfi8%#oPFNX!#"g%"[,Di +]grk88-K^#83f][q+(JnkZ.7T([bVD@=s>05lfU8[hm`NpoE]/iOO/\ +iP&`/^5@]$Z!PP-_o)J/!g]5;r>,R8(PZ/nL'CjdR?i_fZMg-g8c>Lb@fS(YL&m[@q\K6r$Bl8B/=)Ut +S=#\Rh,OI`4o7bSTG4%i'M(Lb8-6If$hmX$[-r&91]=oc$LUp\<<-1oC]Hj%ec9j`<Z#V>as)/H(;'WV[J>PEQfM/23CcS=#[apJpBV!O094 +8->M!'L;Ib!kg`)pJh2$mrJJnrOW&!fi8$PoP=Larmh(%nl5_T4nhJIT`%C]T__1Zl.]2X-!n;oe'ha> +Q=%b=Z,=K?DU`m@@'=Eaq"WN.[fA_k[fo&`D0JWGri[#D@-[3IMS?g`jM$CUa^/;Y?=)8kqNqMe(P\>f +V55mFR/r2Nrg+'cQV"JSZDFDDV.4!d/H1A(WVdS3P6_tlRI]p7S6oX^T_q=]]fl*i!0utn +!(Qq!!(PXA!$LlLrmh-<lL0<1Qf3AAI:9jF?N&"Ef`#1jS=#\CW@XmB0VtUU>FCe7Qa2sEr^d*qrMBL'#+7#H +L5)(pr>,j*P>W3aq=<7*S6m)f<<0`08-K^#8>&LErh03\!#5E'!''^Q!"87:!3H+1!(PU@!7LLU!(6b: +!4_W#!O+`a8-haW'M(b/83ijF8-?Q=4g<^A(qA54@:A,]MMKj+?EqDcjDKBi\R;UXq"XhSq6qC>D6&)/ +YAK6nN,:'qVUOgS@!?h9@H@%%fSdjXoDF@HL0I5ZA,N/'A,_l%MR&S88P-3Z8c>Lb@g4J8>D@m"WVmY4 +P6dP10_3q`S6tmD<s>162J%q6#C#1X8)IKrqI4F +pl$`#D(BI2@,,tUP5N27r9iX[jSb5Dg+\jbrhTp2cS/jsR?k.F8cH!qZMp[.c_W=*A,.Z,>DANEr>5Hs +#cTBNns9*A?\I68!9s/I#G=U%8/.^f'`LW(4U_$b!!_k4!0mJp!kZ&sm8`LQ!35[-!&X]+!5\5+!B<7> +8-Y_X5Y.P=5kdeL4kis>?XCI%L]5!u^A_HDo>BX,IbDLHDcI=92XgrOJ,8YtufA#8a+q3dP+Z:RWn8[A;k!&4@]"dpnmL7"t>(CZLk(K.4`q=<88 +S6nDOd)hLPNUXjQ4,.?EpcQjDNIk\R;UXq"R-@rjVj8#!m+:JG;G*r]pV\6#HNc#Pe'EN;0U3eGX7d +aF06Ne-7?PP2,.j8c<-&cS22`R>UsK!D0TqV$cd'0OsqS/6djrWW!\BPESl\L7J(*0_nq:4Q'3F])XY=<^6pt>O1"ShaXq"P-i6*EU@pl)c5rbh_b%HQpla=/R$r5^Q` +@q5*.@fr-eMR*1Pr2'GaraQ--R4MR0R/Rp$P62Vg>Fb]g!LQd@<<3K@qa^^[r($s`TL_<^qa^_Opf.,oP!#XHj(>.8G^62oQ^<-AZo>BX; +e@AspYHR`rrB^Ck"$pe)YPn7p5n1:h[m@L4pl)EOpd)*orGDnj\^],HmaOJ3#B#]V8`cf>o))tu>F,8o +!_GthrM9qnnh=Q`q(+($L6rbnrf[X)Qks+s>P\)%2Vh@9krl^NT`%C]'`:K''M+no8--C3pf.;HrH%ON +qmuj8el;]QoP=Lprmh&^oi2&9=`"%"ogf'Jr^[))84``ns&IlT(+%W4LLFW4^0\pdo>BX;e@AspYHMg< +r^$Ik!c@86rV61S$UR/Spoh7'6*GggjSj$/58C_HTeX!d(-ds4K&uPpV5=-##:qQdZEd%nV>[7jo)<,( +q>$F_L6rbnrf[Xq>?dU9Qs1IF4Pa!;4mPW?4hV7!<<8AdmrJK1r4;q9ePuTPoP=Mirmh':pJhKaWmY^" +,eZa^r($f%rC?o&rC?oRrC@"']s-g&nl6JPfNu:TI=bo!ag(HTjF)6_?n8FaD>Qle)B'EU4Pj'<$iNTr'`:N%T_q=\T`%C_4\.a2<<*6kEr\#o])_6bTCTlAMlJ/3*Ae8@M#(#7U+jmqu/QRlY;nsM2;ZMmDqZMp[&o("JE +rV6Sa>F63Crf[U+q>$PNQsUXfoMt?[#*m@aG]WPkqFCUZoLK$K4mD`A!:B2q!(Qmu!4:?X!``7#oP=La +rRLsNqc*Z^=o3"9eiiFl!#5E'!PLYN<=pN`r/tK?K"fmBZ,>XNe@Aspric=rs$6ds6.tR3rV6=W0"4/5 +[mIPjfbH_<'ql@.(9tt9e/!!=Y8/iI%&#m$'uJaG8b-l_QRj[tA,.hLriug+8Yr9Snma@`rqQ_cS6M?s +(]KU(R$RQF63CPEQee +QBn&2(R$c;<<3<*rGr%P83Q]<#,%V[TL_VHr($iO$i*d&[-hu8$N.L9Ggo^nWq1'*ec9:\<<45jpM:!0 +4Zu>,!D&m]8,tpR8-9Ps8>,lO!#XEi!OsTX@0i%KZ*D4-DUc5r?j*[:D>g#cA,Q-)S6M?s +rf[UpSD':!S/7BBjAc2eqf;ct^%t8"'`CQ)TLb^iqa^cO4U_'c!6b:]o5anrr4;s'e5ZKOo5+BV"3"9* +=nQS2,lYLV8-ik$5Y+E[8>)XO8-(kE!57#b$RNse^Ae,:_rP^b\c,tG/$H.8q"R-@YHR`)\J>*1#sgn] +YP><)phd56lN(kgri6&mFT(/$3=Xq-MZ/nUR>+q$DMO!RR/F[PN,XC0)K\ip%_,aTG0p28>&4='`LW'^&CP&4nr"W$gr*5])\,]91u>b9)u$k9*!rM9*71[',1=*'o&-2L53M=Ql9<1P)$dIo(eUI0_1,#8H?'qnc:G1rV6Pc>F66+ +P6[W3QMI$h(PM#T_q=\5kdeM]fl-j!-msR!3H+1!".4U!1!(j!g,i;nSA$Zi8/1ql!#X3c$H]QjmV^P0\[c*UriZG!5s]>re?;345G8fV'c!pUX8GTkFK>=4rcA<: +DE//$?MQVjG'5Q#L5$K\f_gM[>Q0ojMO'Qcr^d*qrpg&Tr:pel>F65jPEVN&QMI&<5N>`D0)K\i7KQ+O +^&:J(TL]cipIGE$83K-#q,IE[mW/@8r4;rRe5ZKem;2F8b6P@'WAq:[.S<i)Ka]qK)U+$5?#F'M&q284XF/ +qa^^[r^[&QYk_9!#5WE6Er_I&])^%(<<1J'C]ua\4\.gPrC@#)84XHh8-(tH!D"'X<>pd%2Re@F)Gk4-I]ammLPW!o2Z3afH3@JXk/MSa`[?,YH[G`[qKiK9n`]1ArpeWrrK[G@ +"dbQIMXp?;QN$[`S6M?sPQ'?;!!`=A!P?&=8H5@^8-#=^8-,Bsr^["sq,IEhmW/@tr4<$;^<<0&SC^D@M8A2]-'VJ!ir^[/WTL_>@q+(QM4glM_M-RVi`@QY#\=N+D@FT[mO=I&kc.@$/u83OBU<<.:3F8WWM1Y#J+Q.#&9mq`+i4\/,Wr^[,V +TL]dq8,sA#8->Nu4[%=q"spOljDNK&rj`qT/$H/O6*HuUIDbTp-d:=Y/M](51(2&VBJKqLk;"eEBNUOb +])W2g<<+/qC]Ylq8-(ler^d&'q+(KNr($t(8>&*Rel;r$Z,>X?aEQG=\Ir;R +YP:De5Ik[RnTMnW+oC$K,5r_cTCj?.qk*f`!$V@=!$N9X0AF'I$S;a"3tMtKHURC1LVnn5MWIE$o()[D +"e;)$?^!V-<,fMs#nn4#55t&P'tj8rj`2?YHR`rfa=q4\Zbf' +lEWIp+n_K-+o.c!+V4ki;uOb#)IC>!MFj/?MXoL"Q3R/TS/Rb22W%L8Q$E+G"80>u4oInQTG4'u8-!<$ +'ECDp8-&>\Er`<+Er_I'])Y=O<<-t&D!u0@,X))s!'pHQ!206\!#53!!3k$S#HkrAjF,O%h#=hp?sp25 +frrnUpd+[ldlA'HpRh,Nn0&AK&:6gb;AYj0r.g/r8W**0gAI6?S=CLbkWIa&!2B70!'U-K!#5,t"$jOj +]`L_f]Amr41]4l9<<0&OC]YkF4T`;f^&CP.TV+hH5X7k25kdeLl./i>-1f%8DUd0[rj`8A@'B@YYBSLq +5m6sjiNaisTD0T++U\O%7&cOi(RU_!r/1K?",`!,gAI6>SCe`ePM]@@Q$E+G"@g'q]fl?c"JA:"8/1ql +s$6HP!Bip@F7jSS$N.L9[+A:X=kINmeic10qa^]$rC@!_TKrBFr(,C=#e9KDjH@U6GMN2.#%4Y0poh6= +rBUR'lJZ$ml_!bl%L7?(3egjCL6u1Or/-i-"Lo)@AAQ3EeKfU*JQqc2`X!2B70!VJVL +8-kk&87rX084Z#F8-1q;p#0ui])_6`"3,LFLA`Y1@p>=d^:or#MV@XuQ3EeK)IF:Ck#M7X +!2B70!D'p%8-,@tr(%!a8>&MH'`CQ)]tHS@iH"ugrOW&SfMqtqCi%a?!@0i+8-Y_P8/)c2T_1hW]gt]F +<=#c!r8_b:GB_j@\H&f5q#7Jp5n!Hq91q:b#G25+4$3DbrltPg48oKb48[5'3sQ#i+Tjeo3]d3j$"IHr +>F(/\QZ7oYQ3<`1)IM^b<;r]1$`r[\If@k:iMMO0ZLMV=BMrK[VWSCj392VqF6#5NFkQBp8&Q3EeK)OM=ohGjQ@q/ZT04o%VPTL]bf8/1nk"@,LK +4n\5ao5am=r4;s9fi8#jeSG73^&1D$T_q=\T__4U8-#mF<Q3LZcfG\,\4Pa!;0)BVhp%q8[ +5l+"U5bLZ@TLbaT8-6Iq]AR`1XSf[1bN`*s<<-sfC]`2$^%t8)5STk^TL_VHq+(R[83Pd/qGdqMoDI[4 +IFQbjgt]HNriZCu6+?hZrqHb9lUsn0?,fejqSi_--iJDjrC$S'"@OX9&:=C;s+^G&#\.?qq>'T=^5DcQ +"e;+8Qkq[@q!20$V!'T1[r4;srfi8#jrbU2&r]U*K"$fCJ5lF7RT__1Z +^"-0i-1f%PP'tF$GMN1A!+5l3q"XbQrqHh;DfqW`W:6!ri$#:H[BpZr]:%5 +""[Ydq>On'ncS^YMV@uo#%!UcfU-%0h,OQBU+U]gEr\2h8,sA#8-(mHhK&[]rOW%:fi8'C!ZIJqXuGLX1,q"d8\q"S]CYHR9k9*I=9>n]7[ri$$DG/e]KrM]pC7!:V7 +rAsq4".:^./H0/Wnc4RDQ3EeK)OOkihGjT`GklC]4h^\_$5B/+83ih5TV+iKqFCUuluVc>!&OSc!(PU@ +!*Rffs#p9N#!bGHTL_Tfqa^^[r^[/T84Ylsf2W&%Z1InSDTKote-!7bD>=#p$2AB4YALK/YNr7g9*mUO +3B7OS>n^O*r=f)i!-\?&"K@-1>FGIAraQ*%ntkpJrg*MK!+,Yp!ubM_4Ps-=[.n\EoghWHqFD/38>)VH +8>&LE5bLA*84^EWh/`Q'r4;s9g/S.rdaW(6qn;nu!'pEP"@,4C8/1nk!^0(;oi:!O#57ZdmZN">rR:mm +l\tiErindr^[/WTL_>@oLJtTr^[('p"aZhXSf[1bNr6u<<8B5dqf%1^%Y&"'M(cfrC?oRrC?q%r^[#B +iDoVP#:8NLr8_b:aSsZjGI_Sip]*VWq#7H$\[d6kX6Zhc9E$pQ%:)a.?2kT93X;X`R"g?cS6Pu\!r;C@ +r:9lRrgWsprgX,D)IF:=i`5tX!2B:1"%GgPT__1ZT^kVT]fe@2Er`<>])W5n<<0&uCt3>(eig^[qFCa^ +8/._ip.,9K84Y_l<=/Z0r9eHNIE9pZ!n=carV-@YrV6Aq"7*LJ\c&30e4XmD3=RtX?!U3#rY#EhL7"qV +rKmpuQC1tQR?h@RV5=1^s7uM]!udOC(Z&-lGkuI`3(QS*r($f%#=qCY8>&4='_b-"4[$F4F8WWM0&0G- ++O]Ljl"pA_rC?oRr^[/+84XGfrC?p]pIG>L$e\M_Y5Z<9P5]k9aN2lAYDi6nphg$*$*S2_YHNJM58G"@ +DAI+*(2bi]E&%6prQ,Q;?C]Z=+6$:;:s58Kq.(2e)1rA";VqW7dp!Tm_fS-Xn9QMHr:q(Q=Wo)G$PS-'[:([0^U +!2B@3!B@dd8-#=]8->MUTG7/l!;5Z!nT+\"rOW%ch,OHTcYNY.4[&[5!20-Y!_>kTq+(W&84YnJg/S;& +rknYsDZ5%laOFV$N,dr($oT84XHo8-0Jr5kISK4Zu9hEr_I'])Y=dio`_u,[8I=92d\R;UXD>7uCYP><)\[emYr]^CVrY>e5(,9b_E,[N7r@nSpZ0oNH +?AFi(rg!_Uq-u*4ZMsFpQMR*R)IF:=hGjSV$iY2M3'Bf'^&(>)TG0qi8>$[f8-(lcgN*?Nr4;s9i)KfC +=o)saC]PeEqa^lU8>)VH'`(?#T`.I^5l+"P4ZM1r#UTKAr/tr8I=2:KG@7UkD>s;;D6I?N\U[#W5BE;&u@E&%&@p2L$!'/@DB?AFr=q3I?;0_-pg0JN(nQMR*SfU-%04Pa!>$ZgAKoLK%V'M&6qT_q=_ +'M(cfr($k%p"FHe$N.L9#2iJ]WoS!\C]YkF4oInO'`:K%T`.I^T_h7`TV+h@8A4pl!B:JB<q"S]6N3BFq\c&]4("])Q+O\SPrG;KsqFCTOqa^f' +83ijF8-'Diqa^cO8?glL",ldKjSk;FDUc4)YP`5R.psm<\Zbe]phakUIH5:`LL.6j_m-IRrg3\UrL!X: +rL"#gq3LUB0_4cgQMLBI"<(WSP<@W#!A='>8H5@]8-;+J83luA!20<^"2-i\]BOD-Er`<>])W5u<<8@f +b%q,)4[&F.!#,H)5lO:U5Y.RI8,sA&8-GSV83O35<=gI]_u/TVP*3n1\LXk#N3@*s.fsqiD>s;>625;) +lI44KMO'ZrMMhBe#Gj,N0Xc0QHZLq>6ZcSCj39;M])XJC<<0&?C]S([qa_/1TG0pf'M(cf84XFcT_h7[T__1Z4TOa&<]6Erp]j+[D."l%iR@eb!n3M)riu_^ZLY<,nmhUnrpp&S$CmX=fUSJa)IM]] +nQ"pU";j;88A4dh!#5E'#!b^M'M(cfqFCV"r^[('p"4M4+8-0JrT`.I`'M&r38-#=^8-(lXhc1(2rq$'UjDN&o +.k@g,rb_Z0"H5YApd+oS.W+tU.q$iT?sqI4lL1V/ZEfh&MO1V?MD4TT0U=CHg6S8!)V>rHQs]'1hGjW] +4[&I/";FD"8>,rQ"[GVO83ijC8-(k5qfCP6!3H+1!3G9^!?fh7C]S?>qUP`L]h#j98-$@$8-5Fu'`LZ' +T_q=\T`.I^5l4(R]fiUW<=,hjr;>uGI])\qp +<<8@fb\R9AqUPg=AQ@tc^%k2(8/+TcTL_U=r^d'^rtP/t"2-k^$fG"lan*EfjHA$'@';*YD&A3tpt==d +62:4@6+:]=/(8^k@+3T`iKoo/Z4WF\MO3lf0U=DMQCQU[R$\e!!U,3n<<2:U8-#=W8H0Ct8-(mHe8kTs +rOW*BXR&sa<<0&DC]Q@[qUP\`=T2;$]fllg*D_O*ddq;1C]HiuecCDgrDa!)]tHtM +rC?o&r^[-a84XHn8,sA'8->MU8>,`K"$O=\Yi/R^,o4VooDELUggI<9D(BJuphamC62:4lq#3PefkmVO +lE@rg+/$iSg,\MK+N2nh?AqSCj5-?N>c:<_MXp?;Q3!KorEfO_hc0aq4\39[8-5GT +5lO:ST_M%XT__1\4\.R+F5CscVP14\`/$GgXYHMgOf +<s;A62:6.5s]@)YANT59Bp_Q +9E*BEK!O@o@FMsiM@#&qQBn&.?XN#MrDhoY!O+`d^%Y&+TL_VH'M(b[TKl%='_t9']gt]-4n[3D!3H(0 +!(HsRku@^de8,/J6ho45&m4^)":OHW]fl0^!#5?%!#5?%!h`(Tr^[#Sr($uS84YnW(ueO)--=$be9AI6 +Y@(aTYAO:6-#IMP5s]A_poj!kl?DQ&Kf84]CE83m,E"/&1U'`CQ']f=>Z!(Qjt!6aY-!?fh[D!Gj0ecJ4XFmE$/ +YW]\p8-#=]8-#=^8-D2N84]EQ8-(sipIG>L$gC[g<=HC[jN,hp\TbSlYHR9hp]fE\D.$ag@/b?M9E*BP +@FO2ajF+b"LPgkQ?CYBd;EWo<"gC-Q84^Gh8-]i"TG4%i83m0Is%*/Tr($m^84Wir8A4]AEr`<=])XYO +<<-1UC]S@7psoL6K=L)E!t.X_4nqPJT_q=\T`.IeTG0pf5Y+F2rC?q%r($k%YiA^m\AI=Ve9?,IX'i-s +ph_2LphamCg$>j-YNpCVI:-H,IGoU+iI,.KMMILQQ&4=5l+"OT_CtX +4ZMnOhK&Zdr4;srl;[hafPCOTr71r_K4T3"&MHr^[$^qFCe' +8A2]"l/PbQY/97JeC8]Q@'=FND6Ns6#XS6hlg%qdGH:[d"+>BA@0C#tiP(3KLBCl8?\IB<"0apO^&:J% +T`.I^'`LW9'M(b/84Z!:8/+<[5Y.P=8>$[p8-1q;38&BEEr`<>])W3'<<1J#C]H:=0 +lg)*^GLY,dGLUiqGN@`^j9EMWZ!Q'ihtL.:<)UZ8>&MH +8>H,S!h^5ArC?rPouD+SX@E0#!Ci@@l +oFV-o7\]f\!Xh0)pdbU^'M+lf'VP:n!#5E'!20$V!Bm[M<ku@_frB1.opIGCZ84XHo8->MU8>,rQ +"e\C#84]EM8-(k5dW=r"!3H+1!Ag#/bD?,+aD@kms_m-KqYW]Zj8A4jj&JRc$84]CETV+hHTL_U=84XHl8H5@]8-1q;]>/If$N@X=]=T]`L8=RT5i +mIChhXStZi$FK_2"gC-\]h#j68-,AS!#5?%!#5E'"JDD%8/1hi#/*Pj84_tQlr=?m-m-:A;,P.<2ZCPu +_u/rjjR2HsrU(*3m]j[HZ2X`\2L/.srkS_+W$LU8mo9Cm4oInO^&CP&'`:K('VJ!irC@/Y83fF2TL]dq +8-#=Z8--Es]lO0Cr4;s9n5THgg2-]&LE5Y+F2TL_U= +rC?r'8.2(]TLcae83OXLkmQr[(9fcs-m-9&;$_GE_.kmgZ*Eo8D^rppl0k-=LdC21S1Gu4iE;8F=r +-oX[[YjtcpYeBg&!200Z#G=UYTL]ci8H,7a8>)VH"@,KlTKrBF!BiETEr`<>])\r$&MHoLK+u4[&$;qGmDm&$W9$4_,r_hn`/e +H$N7-H2`X7;,QBQ2Z>W6j5XlO_+]\+M$P,!H2^YC_8.5fr^[)R4g=Z\"gG3o84^Gb8H5@]8-5GTT`%C] +T`.IiTL_==8/+Tc]fiSPq/aGp!&OPb!2As_gMHl?"4l$jQ0qZ@&c>)umJBlaYW_nT"2.5rT_q=\T__1\ +'M&r;8-5GTT__1ZT`%C_4m<@L<=B^-83K+,87WfW_,4)/GlSid*JoXM9`8c,9`KtK9FH]&*=-q9;,P.O ++#j0irB1,gqc*bP]gt[WpdbBMrC@)+'VM*iT`%Ca'GO)/T_h7[T`%Cd]h#h"YZ4[2j`B'q!N\ch])bBd +nQ"@\!0R31!6+D,s&JM"!"/Wn!1!F]!jFgNr^[5V84]DH83m/F!#5E'$5B.(5bLZ@84]DHr^[#'p.,9K +4m<@Q<<3Klr&k3S82hV4_>[:6Gu5T-reV1[M+ibA9P\E;CPb`A9SnTHs,$`#"Ar%4_'JqLrB1.br`'-d +]feNl4o%VMTL]dr8,tpQ8-#=^8-#=^8-Y_P84]C=5l+"Q]fiUu<<14iF6mrJXSf[1Gk"ehC]Hj#ec9j[ +^*LCMQWCCCc7qM+gU"M0XqTGu7GT_>!ds"?eo]4m<7\)u1\k#P$U$ZJ +8-#=^8-M7L5Y+G=rC?p]r^[^-GCB@1F +C]-p0*I/ZNH2^Y@p\78[4h^hX#O1J9]tHR"^%t8&5b:M;'`:K,TLb_H8/.^2r^[*`'VPCqr^[.)4[$%F +<<8BP^2j:Ur4;qbnl>$mnn\:nr71jglr=$ns!"/Y9!:BAXh/*#?!5[u$!:B4e!"/Wn!-n9=!Xh0) +r($g\rC@#)TLbaT8.lV-5X:u583ih=TL_=='VIuf'`CQ+]fj&"8A5!c!PLYk8-WTH_,4'T*WClr9SraB +")CS(M>g0VM+gTgM$SB(;'/4Pp.,7u84`\BrC?rP^&(>#T`.IaTL_VHrC@*bTKl$^'_Fos]aOI4!OOKF +F4PC5X@E-"!4;AuhJ<1Sr71jZlr='dmI(VeXSbNf1\XlO$U%%orC?p]qFCUZqa_'e84Z"=8>*Yh'GUC7 +!'U9O"?jF]8A4[e"XlgU_,26NM#g;,pIk[G*I1Kc;8M-YpR_%Kr]L=r]fl-]#o#W=TKj2VTL_WQTESsB +84XF[rC?p]r^d'^r^[+(4U^d[!2A(dl>ls,r4;s1oMsaar71m;Q0VEMU@&Wj7KBgi<<3K@qa_;aTL_Tf +84]CE8/+TcTL_TfT^PDO^&C.r8A.1[8/*8H7GkpY;0dGDGta&g9H?eIM0XsW*=,M>_8.3A,\3PHT_M%Z +4Zu=<4\._,r&k0RTLb`Kr^[$^r^[*`TG7>q"$fCJ'`LW''_k3!$h%'rZnB:I1/ +GnEmo;0c"E#Z4I8_&ja0%qK4Cq4RUU"MI@>4[&d8!kh,fr($g\r^[&TTEUuZ8/+Ufr^[-aTL_?C8-(j] +lr=&/_K,^Yr4;u!Q1n8YL8=R&ld#4<''Pl*uN0(i3G$U$ZL8-$@&8-PYW8>&MHr^[2`TL_VH +5kmkU]h#h"4hXBW4o%YHTEk@)A0g>=+5d(6#uSN9;8H,G;8H-/_$F)?pEY_DN?gIXT_q=b]tHtM4hX#X +8-;"G83m,E!>Ifu8-,@trC?r'5kdeM4hUkZ$gL^mQ0lJ1!3H+1!-n3;m;2B1r71ieku@_jmL]F+r'g[f +oMl8,4Zu>,]gt[.84Z#F8-(uKqa_,08>)VH'M(cfTLb`Kr($k%8GPgPTE>!$,lJ8QpAjCU$[p8-Y_$84]DH'`1E$T`.Ib'M,o#$ggsk<<9HZ`,bpC +r4;q5pJp-f!(6\8!HM3*<<0Do&HE197K>79<<`go83KL7'`LW*'M(cfr^[$^rC?p]r(%20'M(b/84YnW +8A2_94T\0f^&CRtTE$27p\=IikP+06kP+06kNDU9k5[I7T`%F\]a.0B84Ym/4[$LT8-#=^8,sA#8-(si +rC?p]r^["sjAc3bGkQ4+Er`<>])W34a4\._!83QoBpRhLFr)Ng\qGn!&&LETG72m!BghL<<3;Kj)a='!"/Y9!:BP]iG8LVr71kek>gs_!>2F17KBgd<i!`l7#po"0@ri#`CrM]]D!;6#Xs%*,[!'U$[r8-5GTT_1hV4ggm]qaLPinPoZE4hX#W8-#=[8-#=^ +8-)8SrC?r'T`.L]4U8Yk]h#h-83QrCoq;+/(*=qH-n$/c+"/3Z+!2mQ-m'iZ-m'NZoUttM"MI>s4[&O1 +!20!U"MI>h4g=lbhc0^#&^#.pXSf[1F88i&D"h`G2#Po)''<0oGjZ1@7KB1P<<08u8-GSN84Z#E8-#=] +8-#=^8H-:-4hXD"84^Eb!'U&Me4hXBW]h#j78G&PXk8te^_$M4"C;D"._.pf$pV?hOrP8Ksnt>nO!'U&L=r^[=.4h\Nl4hXD"r^cUQ +!o$Sgqb[@0m83janXp%V8A.Pb^&CP&^&C.p^&CP&'`1E$T`%CbTLb_H^$3mD!2A(dpN$=(r4;q5r)Mcn +r71m;Q/u!GGjZ1@7KDiJ,4\/,Wr^cUQ!!3'r!!rL"%XCnW#Z5kEH$N84 +;$^$Er)!FpnY#VIrB:-N"21?u8G5RT4ZLbf!0tfM!3H+1!"/[)!*/)r!&XW)!/'?4m1K4b!:B,Q!"8cs +!582!p.,4t4o%VLTLeXH!;lam":.kM;$cT8!XK&WnY#eN!58A&r&ssK"/&1UT_M%Y4U_'cel;_;c#Wk@ +r4;q:rDi6$phTptr71jMj]);Gm1K4b!:B)P""ugN4o7bM'_P#r4TiAg83QrCs%)[Q!)`Z>$;hghGo[/2 +;&sp&rcnfI*=*[2;0c#a,4V?%8-_:@]feML8A4ag"r'U!]gt9oj&PDF!49sk!(Qq!!CjHqSGu8kcH2S`cGo[oNr>brb*I7T(rcnJfn=U1(84^Eb]gt:W +83K,Lq+1OYqFCT'buFgFj_Ooar71jgk#DI_<EBH$TB0"aM*o*I/Y/*=*Z_*?t!Gr^[=.4\37W4\._!qFCTLq+(NL +(s5hYU@30[Er_I&])n^, +])jdRL8FlQKh +&HJp07KCX'<<9JopCRNtogh5/oLK*J4h\NlqFL+K#UCE2M2<5nM&lSP"W\V?*JoXP*=%FHM&gj^*@UBL +r($oQ]tHu94UA_l]tHtM4[$LV4TGlQ<4L8EoU."mHkJc$N!9m +[.mW%ZjZ=7!;67Qq+(M!r]L=r8A4mkn=Te+*WClq*W1`r*JkdWreUh"M0XpuM2;4h\Q,4TM_K +<<0&q=Td(bK9bY#!0u;[nT+`47fBs_C]KUqec9:A<<15/&HJp17K>7B<!eV-)k>_NL +bB!Zbrjr0Bk\U1J!C`:6<<+Z;&c>)u$N=$+[-cre!B<7=4o\(O4T\0f4o7e=TG)U-M&hFuM&hG0H&3Pu +*JoUnM&lPO"!*4=,k%E#8H(aU]h#h"4g=6Pq,IEppfR]O&e]?N<<*6GEr_I(]BsG5C]Hg0P*Jke19SimG +Gta&=n=TbHqFCb&8A.R-r]L5hiDfkrpK7UX&e]i[<9h +#"Um?84^G-qFL(J$7&;=M+ep`M2=o_qb7!G#>@gJ9SnU",4V<.TL_U=qa^t*83K,L4Zs23<<0&n=THnL +''<0o0&La:EriASl>6CL!CN.4<<+Yd&HE1;7L$do4\._!^%k2#5SQcYTE6B49`Bk`9MC::*DD;`M+gS` +9H?f`9M?I#M'DG^p.,1sr]L8Gk#M:Y!35cr!7LiZk#DBca`@G^-JM=sUGM2=o",4M9"8-M/L83K*Di)KcWpK7LErY"L]9HF(*!ZarTrCm3I##%^I9SlH"n"BAF"?f:=4U^1J!35cr +!7LiZlrEm^!2@SVltcYYr71i\i`,u'rXm!Z!"/TmrB:-N!585"n"9Y)n4Wh=r(R)`n"9_Q8A4dh!^/^2 +hc0ZVp0%A-!0u\H!1!1teoU1o!(6\8!-7+"!!_X!eI_cgrC-qk4Zu>,^%Y(eTE$289E9qI9EuS3M+ib" +9SraB"c5p0M+gV3TE1]Nq+(WO4\.a#hc0ZVp0%A-!-RC'!&!2NlZ;E/r71kai`-!Gdh1gV$496lGRHYt +83K,LpdjnI!$_D9!/^\K!,M$sn=]GF"$K2g$iMU8>,oP!'p(I![:<3reV"V9P\F#9SlH"9MC\Ir]L?S]fiUn<<+09=TYUA ++SSk9DtI07K+\f;jAc14q/b,.nSA1^r71i\i`,uDj:TfPr^QlM!PLYl8-#=]8FiGPCB04iCB@1F9`8c+ +9`Jo,9E7NPTE7ZW8Gl!b]gt]-8A2]-4mD]@!1!+X!ig1(qc*WroN;=F&e]h^j])9bjE'X.nSA1mr71jg +i`-!%cOo@Q!0mIPr]L7prC?o&q+(KNnt6k9CJ8N#CJ7E;M/.r`9MB5Y9SmP#M/.rA7Im)Q84]EN8-$@$ +8-1q;l2+KZ<<-t*=Tk`IPuSst=Ta9h&p!&5!-lk3!-@[Hr71kaiDfmF\e4oR!"/Zo#/*/_8A.R-r($m^ +8>,rQnt6,$CJ8M;qeH=.CJ8MZr_3?-rCd2[o:Q4#84Z"=pdbP$4\.a#pJh3nnQG*Z!tl6!Q/u!G$dWnb +C]KUrecF?5iDfl&\.J_BrC.(24hX!A]tHtMrC?o&!209]o:R!GCJ7E;M/,dYCJ8M;CJ8MZM/,e#9SmPA +CIRifr($g\rC@3e'M(d.8A.1NpJosNr`K>U&e]6H<<0DPF7O/FecA4)mT&p[!493I!N_Ob7KCC*4TiC2 +83Qc>!h`(ToUl4/CB//L9`8`,9`Af/9P\GC9`Ai,9E8l"T^kVU4\.a#pJh3nfNAL9E`M'u!%tPh!Q7.n8Gu'[TLeaK"X6WUCJ7G#C]7$+C]@*,CBI7e9MG)OnjimH +83K-#pJh6ZWn^bT=TT3KKB6)5[*`seD#Dib6^?t;p/M)FZ4R2W4\.a18H1sR8G&PV,"tZHM/.r`9P\F# +CPch#9P[=;9P[(t!0R31!6*hq!&"$Y +]+G1X4[$KloLK%VTLeaK"<C]Hj#ec9aQl['gPKX@>[tq`OqmoLK"U'_e7%-qnCXCMQW>CB@1FC]-s,C]-p,,kmu$ +8H(aQ]aOU8!,p=h"+q4!KD/C5<<*6SF89YMecA.'g/S.?q%:=Q%$X4N`'$8s]feML8A4mk!206\!C03N +TE$D=9G31tCJ8M;CJ8M;CMScBM/,eA9EU,F9I0G,rC@'a83f][qFCk)]fj%l]fcbu<<0&J=Ta9h&qf4E +!0u,VqJ6.or71keg/S+Wit9]O!_,Ytr]L7pr^[%&r($l'8/1kjq4RRXrG)C,qeH@/9P\E;M>g0K,l+,. +8G>XT^&C.p$i!^%Wmb)QK+\fLi`,sdm;qT7qJ6.!r71jjg/S,*c4T4Or^I)T4\37L83QH5q4I_ErCd23 +r_*r?M/.r`9P\F#9SmP#M+ep`M'Vni"%YrsT_V+Y^&1D$^&:(o$iKsMCMQU;CJ=\BrCd6-9E@hDr_30]pdbH#8/1tm!PLYq8H1jG +<XU4h^hXoi2!WeQDm)rXo4@iDflbn8ml9rG2Hjr71k#gJn6\ +Zk<6K"U[^gB0AEW8-$@#8-$@!8-5HW5l72S,l147C]7$)C]7!3CJ7EY9SlI>TEe"%84]CE8>,fM#e`c" +4\.`L4[&Ig0OCPch`C]$j4M+gU"9H?eI9HsD-#Y7K#84]DH8>,lO#M+gSEM+id*9ET'( +CJ=\BqFh$K9H?eNr1F*^83m/F!^K:AqFClT84YnW8A./Goi1u7dolY_!J?[6jIqFCUZ +qagUW*@Qb<9SlF`9SmP#M/.r`9MB5Y9SlG:M+ib"*D@aVTE7Xu5l!tF8-?Q=4mDT=!34LN"G7="K6?0R +!4;9;lZ3,DCm"YH!6*_n!L7oN&aBr.XSbNkB0AdK]fkaRr1F$1q+M$/CJ7E;CJ8O>9E6+49E8c(T_q=\ +'`LW'^%t8)]gt[W8A.RYqGmAldoc\1rXo4MiDfk1h/`[>ChuK:ec9jJ<g0LCPi$a%Z+t:M/+,*9SlF`9SlFkrLa6`'M+np8-;+J8A4mk#!b_m +4Zu@#o2PgVWqBNQ=TF*R&cc%n<<14tErg)6r71i\oi:3U!49!C!3H#d#dm2d4\._,8A4smogf+V8H,7` +,)M0P9EK!'9`8c&9E9qK9EhV!7LiZ!/'92!0u>\!Gk.$ec9aK#T`.L]TE?Bp*D?Q/M+id)9E9qI9ET'e9Sr^A!$2&4!/^ZIr^[#S +p.,0HqFCZN8EoVD!L9\9=TF*R&cctOa(K84XHn8,sA'8GbpX'`CQ)4Zu@#lr=+s`T#TS!/(7`!-7(!!-n0Xl>umS!C`:0<<*62 +&HE187f>daXL)!34\._!84^G-rC?o&q+(X]'GR32rh'KA*JmH`M+erg9G<7VM+ib"9H?f`9MC::*Jken +M'Dql"A#1V8>,WH!'U9O"$K1$V!L7o=&HSttpI5,j +r`'$(4[&[5"MI>s]gr.:qa_9kTLb_H8/._iW#ZmPM&f9HrCdr_9SlH"9MC::M+gU"9H?eIM2brir0Pj`T'quQ/6T[ec8h.<ITLbaR8-hHpTV*\RM+gVC9`Kt?9EBuDrJ:Oq,lXG:5jq5JTKPG/4[&&k<&LE5bObu*?G-9#YZ7q +M+gU"9HF(*"s$AX9M?I##C/u`M&dk7T`.I`TLbaP8-#=Y8-D(H83Q4s<KsJM+id)9EuSp*Jkd^ +TV2-P!20<^!C03Q8,tgP8-;"G4mCj(!L9\F=TF*R&cct4<<.:;F6doHecA.'hGjQ__%HSW!N_OZ7KG-, +pf.@!4oRtR]gt<_8-,@tq+(o.84]DH*I/Z^9SnTHr(R-IrCdHQ9SlG:M2<8OM#\h#T_V+YT`.Ia5Y+GZ +r($h$r]L8GqGlWW!,pn#!7LiZ!J?Zu<<15$Er^:\ec<\F<<+Yc&HN6'p-o(-[/O)$<<]V?4\37LlpqIK +TV-QNH&3PuM&lRhreUn$9MC::*D@JIreUl*M&dUnh4mCd&oNCTbrXo6aQ/kpF$fQ..f%(Ji<<7=V +_[unVPkIQJ1G4s`<=5tD4Zu>,]tHs-5lF4S'VP@p!C.@t8-K\OH&6g'reU[s9SraBs,$_K%Z-$9M+gU" +M0Xpu*Jp_fr^d'^pIG:trC?q%r^[,S]fkW9<<0&Y=TRLp!YQ,WjAc2eiH#(OeoKVI!6aX>gCXGnPk@KI +$DNgT<<09&4T\0f4nV>K5Y+G=T_q=g+pa$NM&hG0Gt]5PreUXr9`BkP*D@JIM&chXH&6ee*I4=U8,s@q +8-#=^8-;"G4mCd&!,ph!!/(7`!*J_joi2!:ic>.O_;8/mQ$Cgko+;#)Pk7EGGR!P8"gC-\4\39\8.D4_ +8>&LE5Y+G=84Z#CrZ1ilr_*>Q/PjGir0Pj`T1#! +bP?5EErjj'hGjQM`Xr38p-o)j$^L9_qGdgc4hX!A84]C:nOO'R'VIuB;&sq=*JoUnreUtUM2<6HM+gTg +9HF(g$@.IKM&gk4'VJ!iq+(T%84^Gm8-ch!83KL,4mD$-q,Q?U!/(7`!4_,j!0uPb!C`:A,iN#UF[9*Jo%^M0\uT&fjZ&M+ib"*JkdWM0Xr'*?BDLr($f%mmmPo +4h^+8<<0&l=m]>ldf'jZKB-#4$fc:.KAKT.mJIR>&HJp07KPC5[,k9lkrhR.]gtM!*I3J^H2C-'T_:nV'`1E*]h#h"4h^+8<<-sq=TF*R&cct6<<0DdEr]>"<<0Dg +&`=6$$N!9m0&oq;kt&KY]gt:W^&CP&'_b/uT`.In'W;9XGo__^M0XpuM2<6HH2WR(H&6g'M&hEWGo[/2 +*Du_58->MM8>,oP!#53!!kg`fr]L8Ggf4?>hc]pk!J?[.&LETL_VH80(PJH&3Pu*I3J^M2<70H2NO!*WCm&*I/ZN*?BDN8>&6B +8,tpN8GkUNl2"E><<0&V=TF*R&cd(:<<<8A0`=W(WqaLR,l;dX[%-]oG4\/,W4\/,W8>,lO +!MF*(8-hHpTG0p;Go]c]*>"'QM0Xr7H&6g'*?Bu^M0XsW*=-p2#TXq2,Y/XG8-9P?8/2"n"hdGt]gt]m +4TOa. + +%%EndBinary +grestore +np +grestore +grestore +pgrs +%%PageTrailer +[ +[/CSA [/0 ]] +[/CSD [/0 ]] +] del_res +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/acrosort/examples/emoji/MyEmoji.pdf b/texmf-dist/doc/latex/acrosort/examples/emoji/MyEmoji.pdf new file mode 100644 index 00000000..ef65c8a3 Binary files /dev/null and b/texmf-dist/doc/latex/acrosort/examples/emoji/MyEmoji.pdf differ diff --git a/texmf-dist/doc/latex/acrosort/examples/emoji/MyEmoji_package.pdf b/texmf-dist/doc/latex/acrosort/examples/emoji/MyEmoji_package.pdf new file mode 100644 index 00000000..b33c5950 Binary files /dev/null and b/texmf-dist/doc/latex/acrosort/examples/emoji/MyEmoji_package.pdf differ diff --git a/texmf-dist/doc/latex/acrosort/examples/emoji/tg-emoji.tex b/texmf-dist/doc/latex/acrosort/examples/emoji/tg-emoji.tex new file mode 100644 index 00000000..7ab4175c --- /dev/null +++ b/texmf-dist/doc/latex/acrosort/examples/emoji/tg-emoji.tex @@ -0,0 +1,13 @@ +\documentclass{article} +% xelatex uses change options to wrttofiles and !packagefiles, while your at it +% change pdfcreator=pdflatex to pdfcreator=xelatex +% See documentation of the tile-graphic package +\usepackage[!wrttofiles,packagefiles,pdfcreator=pdflatex]{tile-graphic} + +\setTileParams{4}{4}{MyEmoji} + +\begin{document} + +\tileTheGraphic + +\end{document} \ No newline at end of file diff --git a/texmf-dist/source/latex/acrosort/acrosort.dtx b/texmf-dist/source/latex/acrosort/acrosort.dtx index 9218aeef..083deea6 100644 --- a/texmf-dist/source/latex/acrosort/acrosort.dtx +++ b/texmf-dist/source/latex/acrosort/acrosort.dtx @@ -2,8 +2,8 @@ % \iffalse %<*copyright> %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% acrosort package, 2011-12-22 %% -%% Copyright (C) 2006--2011 D. P. Story %% +%% acrosort package, %% +%% Copyright (C) 2006--2020 D. P. Story %% %% dpstory@acrotex.net %% %% storyd@nwfsc.edu %% %% %% @@ -16,267 +16,399 @@ % %\NeedsTeXFormat{LaTeX2e} %\ProvidesPackage{acrosort} -% [2011/12/22 v1.5 AcroSort (dps)] +% [2020/06/17 v1.6.1 AcroSort (dps)] %<*driver> \documentclass{ltxdoc} -\usepackage[dviwindo,colorlinks,hyperindex]{hyperref} -\pdfstringdefDisableCommands{\let\\\textbackslash}% -\EnableCrossrefs \CodelineIndex +\usepackage[colorlinks,hyperindex=false]{hyperref} +\usepackage{fancyvrb} +%\def\texorpdfstring#1#2{#1} +%\pdfstringdefDisableCommands{\let\\\textbackslash} \OnlyDescription % comment out for implementation details +\EnableCrossrefs +\CodelineIndex +\RecordChanges +\InputIfFileExists{aebdocfmt.def}{\PackageInfo{web}{Inputting aebdocfmt.def}} + {\def\IndexOpt{\DescribeMacro}\def\IndexKey{\DescribeMacro}\let\setupFullwidth\relax + \PackageInfo{web}{aebdocfmt.def cannot be found}} +\EnableCrossrefs \CodelineIndex \RecordChanges \begin{document} - \GetFileInfo{acromemory.sty} - \title{The \texttt{AcroSort} Package\texorpdfstring{\\}{: } - A member of the AeB Pro family} +\bgroup\ttfamily +\gdef\brpr#1{\char123\relax#1\char125\relax}\egroup +\let\darg\brpr +\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\ltag{<}\def\rtag{>} +\def\EXCL{!} +\let\app\textsf\let\pkg\textsf + \GetFileInfo{acrosort.sty} + \title{The \textsf{acrosort} Package} \author{D. P. Story\\ - Email: \texttt{storyd@nwfsc.edu}} + Email: \texttt{dpstory@acrotex.net}} \date{processed \today} \maketitle \tableofcontents \let\Email\texttt \DocInput{acrosort.dtx} - \PrintIndex +\IfFileExists{\jobname.ind}{\newpage\setupFullwidth\par\PrintIndex}{\paragraph*{Index} The index goes here.\\Execute + \texttt{makeindex -s gind.ist -o acrosort.ind acrosort.idx} on the command line and recompile + \texttt{acrosort.dtx}.} +\IfFileExists{\jobname.gls}{\PrintChanges}{\paragraph*{Change History} The list of changes goes here.\\Execute + \texttt{makeindex -s gglo.ist -o acrosort.gls acrosort.glo} on the command line and recompile + \texttt{acrosort.dtx}.} \end{document} % % \fi +% \MakeShortVerb{|} +% \InputIfFileExists{aebdonotindex.def}{\PackageInfo{web}{Inputting aebdonotindex.def}} +% {\PackageInfo{web}{cannot find aebdonotindex.def}} +% \DoNotIndex{\DPSIndxList,\g@addto@macro,\divide,\box,\setbox,\x,\y,\z} +% +% \section{Introduction} +% \pkg{acrosort} is a novelty {\LaTeX} package for embedding a series of tiled +% images of a picture. The tiled images are randomly arranged, then resorted +% before the user's eyes using a bubble sort. +% +% This new version of \pkg{acrosort}, dated 2020/06/02 or later, supports all +% common workflows: \app{pdflatex}, \app{lualatex}, \app{xelatex}, and +% \app{dvips\,\texttt{->}\,distiller}. +% +% The \pkg{graphicx}, \pkg{eforms}, and \pkg{icon-appr} packages are +% automatically input by \textsf{acrosort}. When the workflow +% \app{dvips\,\texttt{->}\,distiller} is used, the package \pkg{aeb\_pro} is required. +% +% For the first time, \emph{multiple tiled bubble sorts} can appear in the same document, +% though only one can be sorted at a time. +% \changes{v1.6}{2020/06/02}{Rewrite whole package to support \string\app{pdflatex}, +% \string\app{lualatex}, and \string\app{xelatex} workflows.} +% \changes{v1.6.1}{2020/06/17}{Minor changes to conform to CTAN requirements.} % \section{Main Code} -% When setting up your AcroSort document, you need to provide this package with -% certain information, as listed below. -% \begin{macro}{\theTotalTiles} -% \begin{macro}{\theNumRows} -% \begin{macro}{\theNumCols} -% \begin{macro}{\theImportPath} -% \begin{macro}{\theIconExt} -% \begin{macro}{\theTeXImageWidth} -% \begin{macro}{\isPackage} -%\begin{itemize} -% \item \cs{theTotalTiles}: The total number of tiles in the game board. For example, -% \verb!\theTotalTiles{20}!. This parameter is required. -% \item \cs{theNumRows}: The number of rows in the game board. For example, -% \verb!\theNumRows{5}!. This parameter is required. -% \item \cs{theNumCols}: The number of columns in the game board. For example, -% \verb!\theNumCols{4}!. This parameter is required. -% \item \cs{theImportPath}: The import path to the basename of the image. The path -% should use the path specification as defined in the PDF Ref, and the file name should -% have no extension. For example, \verb!\theImportPath{myFig/myimages}!. Required. -% \item \cs{theIconExt}: The extension of the image file(s), Required if different -% from \texttt{pdf}. -% \item \cs{theTeXImageWidth}: The scaled width of the rectangular game board. The -% game board will be rescaled so that its width is equal to the value specified -% by the argument of this command, e.g., \verb!\theTeXImageWidth{2in}!. -% \item \cs{isPackage} executed in the preamble signals that the icon files are -% packaged. -%\end{itemize} % \begin{macrocode} %<*package> % \end{macrocode} % \paragraph*{Required Packages.} % \begin{macrocode} -\RequirePackage[execJS]{eforms} -\RequirePackage{graphicx} +\@ifpackageloaded{eforms}{\let\execjs=y} + {\RequirePackage[execJS]{eforms}} +\ifxetex\makeXasPDOff\fi % \end{macrocode} +% (2020/06/02) We require the \pkg{icon-appr} package. % \begin{macrocode} -\def\theTotalTiles#1{\def\nTotalTiles{#1}} -\let\nTotalTiles\@empty +\RequirePackage{icon-appr} +\RequirePackage{multido} +\RequirePackage{graphicx} % \end{macrocode} -% For \cs{theNumRows} and \cs{theNumCols} we try to calculate the total -% number of tiles, \cs{nTotalTiles}. We must wait until both the row and -% column command have been expanded. +% \section{Some simple controls} +% Some buttons to control the starting, stopping and clearing of the image. You can +% change the appearance of these buttons by using the optional parameter, see the +% \pkg{eforms} documentation. +% \begin{macro}{\StartSort}\hskip-\marginparsep\texttt{[\ameta{options}]\darg{\ameta{name}}\darg{\ameta{wd}}\darg{\ameta{ht}}} +% Starts the sort for the pictures having the associated \ameta{name}. % \begin{macrocode} -\def\theNumRows#1{% - \def\nRows{#1}% - \ifx\nCols\@empty\else - \ifx\nTotalTiles\@empty - {\count0=#1\relax\multiply\count0by\nCols - \xdef\nTotalTiles{\the\count0}}% - \fi - \fi - } -\let\nRows\@empty -\def\theNumCols#1{% - \def\nCols{#1}% - \ifx\nRows\@empty\else - \ifx\nTotalTiles\@empty - {\count0=#1\relax\multiply\count0by\nRows - \xdef\nTotalTiles{\the\count0}}% - \fi - \fi -} -\let\nCols\@empty -\def\theImportPath#1{\def\importpath{#1}} -\def\theIconExt#1{\def\iconsExt{#1}} -\def\iconsExt{pdf} -\def\theTeXImageWidth#1{\def\texImageWidth{#1}% - {\dimen0=\texImageWidth \xdef\imageWidth{\strip@pt\dimen0 }}% +\newcommand{\StartSort}[4][] + {\pushButton[\CA{Press Me}#1\A{\JS{\sortCustomStartJS;\r + startSortAS("#2"); + \@ppendStartSortJS}}]{btStartSort}{#3}{#4}% } -\def\isPackage{\def\bIsPackage{true}} -\def\bIsPackage{false} % \end{macrocode} % \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% \begin{macro}{\ulCornerHere} -% \begin{macro}{\reserveSpaceByDimension} -% \begin{macro}{\reserveSpaceByFile} -% This group of buttons appear together. \cs{ulCornerHere} is used to -% set the upper left corner of the image. One of the two commands -% \cs{reserveSpaceByDimension} or \cs{reserveSpaceByFile} immediately follow -% the `corner' commands. +% \begin{macro}{\ClearSort}\hskip-\marginparsep\texttt{[\ameta{options}]\darg{\ameta{name}}\darg{\ameta{wd}}\darg{\ameta{ht}}} +% Clears the sort for the pictures having the associated \ameta{name}, it does this simply +% by making all pictures hidden. % \begin{macrocode} -\def\ulCornerHere{\makebox[0pt][l]% - {\pushButton[\autoCenter{n}]{ulcorner}{0pt}{0pt}}} +\newcommand{\ClearSort}[4][]% + {\pushButton[\CA{Clear}#1\A{\JS{% + var f=this.getField("btn#2pic");\r + if(f!=null)f.display=display.hidden;\r + asOk2Continue = false; + \@ppendClearSortJS + }}]{btnClearSort}{#3}{#4}% +} % \end{macrocode} -% The two arguments are $\texttt{\#1} = \mbox{width}$ and $\texttt{\#2} = \mbox{height}$. +% \end{macro} +% \begin{macro}{\StopSort}\hskip-\marginparsep\texttt{[\ameta{options}]\darg{\ameta{wd}}\darg{\ameta{ht}}} +% Starts the sort for the pictures having the associated \ameta{name}. % \begin{macrocode} -\def\reserveSpaceByDimension#1#2{% - \hbox{\ifpreview\setlength\fboxrule{0.4pt}\setlength\fboxsep{0pt}% - \@tempdima=#1\advance\@tempdima by-\fboxrule - \@tempdimb=#2\advance\@tempdimb by-\fboxrule - \fbox{\parbox[t][\@tempdimb][t]{\@tempdima}{\kern0pt\hfill\vfill}}% - \else\parbox[t][#2][t]{#1}{\kern0pt\hfill\vfill}\fi}% +\newcommand{\StopSort}[3][] + {\pushButton[\CA{Stop}#1\A{\JS{% + asOk2Continue = false; + \@ppendStopSortJS + }}]{btnStopSort}{#2}{#3}% } -\newcommand{\reserveSpaceByFile}[1][\importpath]% - {{\setbox0=\hbox{\includegraphics[draft,width=\texImageWidth]{#1}}% - \reserveSpaceByDimension{\wd0}{\ht0}}} +% \end{macrocode} +% \begin{macro}{\customStartJS}\hskip-\marginparsep\texttt{\darg{\ameta{script}}} +% Inserts \ameta{script} into the beginning of the \cs{StartSort} command. +% \begin{macrocode} +\newcommand{\customStartJS}[1]{\def\sortCustomStartJS{#1}} +\let\sortCustomStartJS\@gobbletwo % \end{macrocode} % \end{macro} +% \leavevmode\DescribeMacro\appendStartSortJS\hskip-\marginparsep\texttt{\darg{\ameta{script}}} +% Appends \ameta{script} to the \cs{StartSort} control. +% \begin{macrocode} +\def\appendStartSortJS#1{\def\@rgi{#1}\ifx\@rgi\@empty + \let\@ppendStartSortJS\@empty\else + \def\@ppendStartSortJS{\r #1}\fi} +\let\@ppendStartSortJS\@empty +% \end{macrocode} +% \leavevmode\DescribeMacro\appendClearSortJS\hskip-\marginparsep\texttt{\darg{\ameta{script}}} +% Appends \ameta{script} to the \cs{ClearSort} control. +% \begin{macrocode} +\def\appendClearSortJS#1{\def\@rgi{#1}\ifx\@rgi\@empty + \let\@ppendClearSortJS\@empty\else + \def\@ppendClearSortJS{\r #1}\fi} +\let\@ppendClearSortJS\@empty +% \end{macrocode} +% \leavevmode\DescribeMacro\appendStopSortJS\hskip-\marginparsep\texttt{\darg{\ameta{script}}} +% Appends \ameta{script} to the \cs{StopSort} control. +% \begin{macrocode} +\def\appendStopSortJS#1{\def\@rgi{#1}\ifx\@rgi\@empty + \let\@ppendStopSortJS\@empty\else + \def\@ppendStopSortJS{\r #1}\fi} +\let\@ppendStopSortJS\@empty +% \end{macrocode} % \end{macro} -% \end{macro} -% \begin{macro}{\StartSort} -% \begin{macro}{\ClearSort} -% \begin{macro}{\StopSort} -% Some buttons to control the starting, stopping and clearing of the image. You can -% change the appearance of these buttons by using the optional parameter, see the -% \textsf{eForms} documentation. % \begin{macrocode} -\newcommand{\StartSort}[1][]{{\small\pushButton[\CA{Press Me}#1 - \A{\JS{% - ok2Continue = true;\r - mixupDPS();\r - showDPS();\r - sortoutDPS(); - }}]{StartButton}{}{12bp}}% -} -\newcommand{\ClearSort}[1][]% - {\small{\pushButton[\CA{Clear}#1\A{\JS{% - clearDPS();\sortCustomStartJS}}% - ]{StartButton}{}{12bp}}% +% \end{macrocode} +%\leavevmode\DescribeMacro\asIconPic\hskip-\marginparsep\texttt +% {[\ameta{opts}]\darg{\ameta{fieldname}}\darg{\ameta{wd}}\darg{\ameta{ht}}} +% There is allowance for displaying additional button images. The +% \begin{macrocode} +\newcommand{\asIconPic}[4][]{% \I{\csOf{name}} required + \pushButton[\Ff{\FfReadOnly}\BG{}\S{S}#1\TP{1}\F{\FHidden} + \PA{.5 1}]{#2}{#3}{#4}} +% \end{macrocode} +% \section{Embedding the tiles} +% The first step is to embed the tiles using the \env{embedding} environment of \pkg{icon-appr}. +% \begin{macrocode} +% \end{macrocode} +% \leavevmode +% \DescribeMacro\asEmbedTiles\hskip-\marginparsep\texttt{[\ameta{ext}]\darg{\ameta{name}}\darg{\ameta{n-pics}}\darg{\ameta{path}}} +% We take a graphic and explode it into rows and columns, \ameta{n-pics} is the total number +% of tiled pictures. We assume the tiles are created row-wise, possible by the \pkg{tile-graphic} package. We assume also a naming convention +% for the tiles if \texttt{mypic} is the basename of the picture or graphic, then the tiles are +% named \texttt{mypic\_01}, \texttt{mypic\_02}, \texttt{mypic\_03}, \dots. It is assumed a single digit +% index has a leading 0. Use the command \DescribeMacro\isPackage +% \cs{isPackage} prior to \cs{asEmbedTiles}. +% \changes{v1.5}{2020/05/30}{Embed graphics and support for packaged graphics} +% \begin{macrocode} +\newcount\as@nCnt +\newif\if@isPackaged\@isPackagedfalse +\def\isPackage{\@isPackagedtrue} +\let\asIconObjs\@gobble +\newcommand{\asEmbedTiles}[4][]{\begingroup + \gdef\asNumSideShowPics{#3}% + \csarg\gdef{asGraphicPath#2}{#4}% + \def\@Ext{#1}\ifx\@Ext\@empty\def\@Ext{.pdf}\else\def\@Ext{.#1}\fi + \@tempcnta\z@ + \let\@embedList\@empty +% \let\DPSIndxList\@gobble + \edef\z{\noexpand\g@addto@macro\noexpand + \asIconObjs{,"#2":\asNumSideShowPics}}\z + \@whilenum \@tempcnta < \asNumSideShowPics \do{% + \as@nCnt\@tempcnta\advance\as@nCnt\@ne + \ifnum\as@nCnt<10\relax\edef\x{0\the\as@nCnt}\else + \edef\x{\the\as@nCnt}\fi +% \edef\z{\noexpand\g@addto@macro\noexpand\DPSIndxList{,"\x"}}\z + \ifxetex\if@isPackaged + \PackageWarning{acrosort} + {There is no support for embedding packaged\MessageBreak + PDFs with xelatex. Ignoring the \string\isPackage\MessageBreak + command}% + \@isPackagedfalse + \fi\fi + \if@isPackaged + \ifpdf + \edef\y{\noexpand + \embedIcon[name=#2pic\x,% + hyopts={page=\x}]{#4_package.pdf}}% + \else + \edef\y{\noexpand + \embedIcon[name=#2pic\x,placement=btn#2pic.\x,% + page=\x-1]{#4_package.pdf}}% + \fi + \else + \edef\y{\noexpand + \embedIcon[name=#2pic\x,placement=btn#2pic.\x]{#4_\x\@Ext}}% + \fi + \expandafter\g@addto@macro\expandafter\@embedList\expandafter{\y}% + \@tempcnta\as@nCnt + }% do + \toks@=\expandafter{\@embedList}\the\toks@ + \endgroup + \global\@isPackagedfalse } -\newcommand{\StopSort}[1][]% - {\small{\pushButton[\CA{Stop}#1\A{\JS{ok2Continue = false;}}% - ]{StartButton}{}{12bp}}% +% \end{macrocode} +% \section{Inserting the tiles to be sorted} The next step is to insert +% the tiles into the body of the document, and sort them.\vskip6pt\noindent +% \DescribeMacro\insertTiles\hskip-\marginparsep +% \texttt{\darg{\ameta{width}}\darg{\ameta{rows}}\darg{\ameta{cols}}} +% Command for placing the tiles of a picture. We assume that the pictures are numbered +% consecutively across rows. +% \begin{quote} +% \begin{description} +% \item[\ameta{name}] The name of the graphic (a JavaScript identifier) +% \item[\ameta{width}] The width of the image, the height is scaled proportionally +% \item[\ameta{rows}] The number of rows +% \item[\ameta{cols}] The number of columns +% \end{description} +% \end{quote} +% \begin{macrocode} +\newcommand\insertTiles[4]{\begingroup + \setbox\z@\hbox{% + \includegraphics[draft,width=#2]{\@nameuse{asGraphicPath#1}}}% + \edef\asGrphWd{\the\wd\z@}% + \@tempdima\wd\z@ + \divide\@tempdima #4\relax + \edef\asTileWd{\the\@tempdima}% + \setlength\@tempdima{\ht\z@+\dp\z@}% + \setbox\z@\box\voidb@x + \edef\asTtlGrphHt{\the\@tempdima}% + \@tempdima\asTtlGrphHt\relax + \divide\@tempdima #3\relax + \edef\asTileHt{\the\@tempdima}% + \begin{minipage}{#2}% + \offinterlineskip\@tempcnta\z@ + \multido{\iR=1+1}{#3}{\hbox{% + \multido{\iC=1+1}{#4}{% + \global\advance\@tempcnta\@ne + \ifnum\@tempcnta<10\relax + \edef\x{0\the\@tempcnta}\else + \edef\x{\the\@tempcnta}\fi + \edef\iconPresets{\noexpand\I{\noexpand\csOf{#1pic\x}}}% + \asIconPic[\BC{}\FB{true}\presets{\iconPresets}% + \presets{\astile@KVs}]{btn#1pic.\x}{\asTileWd}{\asTileHt}% + }% inner multido + }}% hbox, outer multido + \end{minipage}% + \endgroup } % \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} -% \begin{macro}{\bDebug} -% Debugging command. Get back more info when you assemble the document. +% \leavevmode\DescribeMacro\astileKVs\hskip-\marginparsep\texttt{\ameta{KV-pairs}} +% A way to pass \pkg{eform} key-values to the optional +% argument of the underlying push button. % \begin{macrocode} -\def\bDebug{\def\memDebug{true}} -\def\memDebug{false} +\def\astileKVs#1{\def\astile@KVs{#1}} +\astileKVs{} % \end{macrocode} -% \end{macro} -% \section{Document JavaScript for \textsf{AcroSort}} +% +% \section{Document JavaScript for \textsf{acrosort}} % Most of the work of this package is done with document JavaScript, and here % it is. -%\par\medskip\noindent -%\StopEventually{JavaScript listing suppressed, -% comment out \cs{OnlyDescription} at the beginning of this file to see -% the JavaScript.} +% \begin{macro}{\customFinishJS}\hskip-\marginparsep\texttt{\darg{\ameta{script}}} +% Inserts \ameta{script} at the end of the bubble sort. % \begin{macrocode} -\newcommand{\customStartJS}[1]{\def\sortCustomStartJS{#1}} -\let\sortCustomStartJS\@empty -\newcommand{\customFinishJS}[1]{\def\sortCustomFinishJS{#1}} +\newcommand{\customFinishJS}[1]{\gdef\sortCustomFinishJS{#1}} \def\sortCustomFinishJS{;} -\begin{insDLJS}[randomDPS]{sort}{JS for bubble sort} +% \end{macrocode} +% \end{macro} +% \begin{macrocode} +\begin{insDLJS}{asSort}{AcroSort: Bubble Sort} // Global Data: -var randomDPS = new Array(\nTotalTiles+1); -var ldps = randomDPS.length; +var btnbase=""; // btnpic.01, btnpic.02, etc +var iconbase=""; // pic01, pic02, etc. +var iconObjs={\asIconObjs}; +var sortName=""; +var randomAS = new Array(); var timeout = 10; var shutdown; -var debug = \memDebug; -var ok2Continue = true; -for (i=1; i<=\nTotalTiles; i++) randomDPS[i]=i; - -// Clear DPS: -try {this.addIcon("nullIcon", this.createIcon("", 0, 0));} catch(e) {} - -function clearDPS() -{ - for ( var i=1; i<=\nTotalTiles; i++ ) - { - var oIcon = this.getIcon("nullIcon"); - var f = this.getField("button."+i); - f.buttonSetIcon(oIcon); - } +var asOk2Continue = false; +function initRandomDPS(name) { + var nTotalTiles = iconObjs[name]; + for (i=1; i<=nTotalTiles; i++) randomAS[i]=i; + return nTotalTiles; } - -// Mixup DPS: -function mixupDPS() +% \end{macrocode} +% \leavevmode\IndexJS{startSortAS}\hskip-\marginparsep\texttt{(\ameta{name})} is the function +% that starts the sorting. +% \begin{macrocode} +function startSortAS(name) { + if (!asOk2Continue) { + sortName=name; + randomAS = new Array(); + var f=this.getField("btn"+name+"pic"); + if(f!=null)f.display=display.visible; + asOk2Continue = true; + mixupAS(); + showAS(); + sortoutAS(); + } +} +function mixupAS() { var i, rand, temp; - for (i=1; i<= \nTotalTiles; i++) + var nTotalTiles=initRandomDPS(sortName); + var ldps = randomAS.length; + for (i=1; i<= nTotalTiles; i++) { var rand = Math.random(); rand *= ldps*ldps; rand = Math.ceil(rand); rand = rand \% ldps; if (rand == 0 ) rand = 1; - temp = randomDPS[i]; - randomDPS[i]=randomDPS[rand]; - randomDPS[rand]=temp; + temp = randomAS[i]; + randomAS[i]=randomAS[rand]; + randomAS[rand]=temp; } } - -// Show DPS: -function showDPS() +function showAS() { - \sortCustomStartJS - for ( var i=1; i<=\nTotalTiles; i++ ) + var I,J; + var nTotalTiles = iconObjs[sortName]; + btnbase="btn"+sortName+"pic."; + iconbase=sortName+"pic"; + for ( var i=1; i<=nTotalTiles; i++ ) { - var oIcon = this.getIcon("pic."+randomDPS[i]); - var f = this.getField("button."+i); + I=((i<10)?"0":"")+i; + J=((randomAS[i]<10)?"0":"")+randomAS[i]; + var oIcon = this.getIcon(iconbase+J); + var f = this.getField(btnbase+I); f.buttonSetIcon(oIcon); } } - -// Sortout DPS: -function sortoutDPS() +function sortoutAS() { - outerLoop(randomDPS.length-1); + outerLoop(randomAS.length-1); } function outerLoop(i) { - if ( ok2Continue && (i >= 0) ) shutdown = app.setTimeOut("app.clearTimeOut(shutdown); innerLoop("+i+",1);", timeout); + if ( asOk2Continue && (i >= 0) ) + shutdown = app.setTimeOut("app.clearTimeOut(shutdown); % +innerLoop("+i+",1);", timeout); else { - \sortCustomFinishJS + asOk2Continue=false; + \sortCustomFinishJS } } function innerLoop(i,j) { + var I, J; if ( j <= i ) { - if (randomDPS[j-1] > randomDPS[j]) + if (randomAS[j-1] > randomAS[j]) { - var temp = randomDPS[j-1]; - randomDPS[j-1] = randomDPS[j]; - randomDPS[j] = temp; - var oIcon = this.getIcon("pic."+randomDPS[j-1]); - var f = this.getField("button."+(j-1)); + var temp = randomAS[j-1]; + randomAS[j-1] = randomAS[j]; + randomAS[j] = temp; + J=((randomAS[j-1]<10)?"0":"")+randomAS[j-1]; + I=((j-1 < 10)?"0":"")+(j-1); + var oIcon = this.getIcon(iconbase+J); + var f = this.getField(btnbase+I); f.buttonSetIcon(oIcon); - var oIcon = this.getIcon("pic."+randomDPS[j]); - var f = this.getField("button."+j); + J=((randomAS[j]<10)?"0":"")+randomAS[j]; + I=((j < 10)?"0":"")+j; + var oIcon = this.getIcon(iconbase+J); + var f = this.getField(btnbase+I); f.buttonSetIcon(oIcon); } j++ - if ( ok2Continue ) shutdown = app.setTimeOut("app.clearTimeOut(shutdown); innerLoop("+i+","+j+");", timeout); - else { - \sortCustomFinishJS - } + if ( asOk2Continue ) % +shutdown = app.setTimeOut("app.clearTimeOut(shutdown); % +innerLoop("+i+","+j+");", timeout); } else { @@ -285,93 +417,6 @@ function innerLoop(i,j) } } \end{insDLJS} - -\begin{execJS}{acrosortjs} -var index, ip="\importpath"; -var re=/_package$/; -var isPackage=\bIsPackage; -if (debug) console.println("isPackage: " + isPackage); -if (debug) console.println("nTotalTiles = " + \nTotalTiles) -if (isPackage) { - ip = ip+"_package"; - for ( var i = 1; i <= \nTotalTiles; i++) - { - try { aebTrustedFunctions(this, aebImportIcon, {cName: "pic."+i, - nPage: (i-1), cDIPath: ip+".\iconsExt"}, this); - } catch(e) {console.println("exception: " + e.toSource())} - - } -} else { - for ( var i = 1; i <= \nTotalTiles; i++) - { - index = ( i < 10 ) ? "0"+i : ""+i; - if (debug) console.println(ip+"_"+index+".\iconsExt") - try { aebTrustedFunctions(this, aebImportIcon, {cName: "pic."+i, cDIPath: ip+"_"+index+".\iconsExt"}, this); - } catch(e) {console.println("exception: " + e.toSource())} - } -} -// Now lay out the icon fields. -var f = this.getField("ulcorner"); -var nPage = f.page; -var ulCorner = f.rect; -this.removeField("ulcorner"); - -ip = ip.replace(re,""); -ip=ip+".pdf"; -var doc = aebTrustedFunctions( this, aebAppOpenDoc, { cPath: ip, oDoc: this, bHidden: true }); -var aRect = doc.getPageBox({cBox:"Crop"}) -doc.closeDoc(true); - -if (debug) console.println("aRect: " + aRect.toSource()); - -var nRows = \nRows; -var nCols = \nCols; - - -var width = aRect[2]-aRect[0]; -var height = aRect[1]-aRect[3]; - -var scaleFactor = \imageWidth/width; - -if (debug) console.println("scaleFactor = " + scaleFactor); - -var scaledWidth = width*scaleFactor; -var scaledHeight = height*scaleFactor; - -if (debug) console.println("scaledWidth = " + scaledWidth); -if (debug) console.println("scaledHeight = " + scaledHeight); - -var mWidth = scaledWidth/nCols -var mHeight = scaledHeight/nRows - -if (debug) console.println("mWidth = " + mWidth); -if (debug) console.println("mHeight = " + mHeight); - -var nCnt = 0; - -for ( var i=0; i % \end{macrocode} % \Finale diff --git a/texmf-dist/source/latex/acrosort/acrosort.ins b/texmf-dist/source/latex/acrosort/acrosort.ins index b4776eb6..dccc8118 100644 --- a/texmf-dist/source/latex/acrosort/acrosort.ins +++ b/texmf-dist/source/latex/acrosort/acrosort.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 2006--2020 D. P. Story %% %% This file is part of the `AcroTeX eDucation Bundle'. %% ------------------------------------------- diff --git a/texmf-dist/source/latex/acrosort/aeb_pro/aeb_pro.js b/texmf-dist/source/latex/acrosort/aeb_pro/aeb_pro.js deleted file mode 100644 index 02b1e658..00000000 --- a/texmf-dist/source/latex/acrosort/aeb_pro/aeb_pro.js +++ /dev/null @@ -1,106 +0,0 @@ -/* - AEB Pro Document Assembly Methods - - Copyright (C) 2009 AcroTeX.Net - D. P. Story - http://www.acrotex.net - - Version 1.1 -*/ - -if ( typeof aebTrustedFunctions == "undefined") { - aebTrustedFunctions = app.trustedFunction( function ( doc, oFunction, oArgs ) - { - app.beginPriv(); - var retn = oFunction( oArgs, doc ) - app.endPriv(); - return retn; - }); -} -aebAddWatermarkFromFile = app.trustPropagatorFunction( function ( oArgs, doc ) -{ - app.beginPriv(); - return retn = doc.addWatermarkFromFile(oArgs); - app.endPriv(); -}); -aebImportIcon = app.trustPropagatorFunction( function ( oArgs, doc ) -{ - app.beginPriv(); - return retn = doc.importIcon(oArgs); - app.endPriv(); -}); -aebInsertPages = app.trustPropagatorFunction( function ( oArgs, doc ) -{ - app.beginPriv(); - try { doc.insertPages(oArgs); } catch(e) {console.println("Error: " + e.toString());} - app.endPriv(); -}) -aebAppOpenDoc = app.trustPropagatorFunction( function ( oArgs, doc ) -{ - app.beginPriv(); - try { var retn = app.openDoc(oArgs); } catch(e) {console.println("Error: " + e.toString());} - app.endPriv(); - return retn; -}) -aebImportSound = app.trustPropagatorFunction( function ( oArgs, doc ) -{ - app.beginPriv(); - return retn = doc.importSound(oArgs); - app.endPriv(); -}); -aebSaveAs = app.trustPropagatorFunction( function ( oArgs, doc ) -{ - app.beginPriv(); - app.execMenuItem("Save"); - app.endPriv(); -}); -aebExtractPages = app.trustPropagatorFunction( function ( oArgs, doc ) -{ - app.beginPriv(); - return retn = doc.extractPages(oArgs); - app.endPriv(); -}); -aebMailDoc = app.trustPropagatorFunction( function ( oArgs, doc ) -{ - app.beginPriv(); - return retn = doc.mailDoc(oArgs); - app.endPriv(); -}); -aebImportDataObject = app.trustPropagatorFunction( function ( oArgs, doc ) -{ - app.beginPriv(); - return retn = doc.importDataObject(oArgs); - app.endPriv(); -}); -aebSignatureSign = app.trustPropagatorFunction( function ( oArgs, field ) -{ - app.beginPriv(); - return retn = field.signatureSign(oArgs); - app.endPriv(); -}); -aebSecurityHandlerLogin = app.trustPropagatorFunction( function ( oArgs, securityHandler ) -{ - app.beginPriv(); - return retn = securityHandler.login(oArgs); - app.endPriv(); -}); -aebSecurityGetHandler = app.trustPropagatorFunction( function ( oArgs, security ) -{ - app.beginPriv(); - return retn = security.getHandler(oArgs); - app.endPriv(); -}); -aebAppGetPath = app.trustPropagatorFunction( function ( oArgs, doc ) -{ - app.beginPriv(); - var retn = app.getPath(oArgs); - app.endPriv(); - return retn; -}) -aebSignatureSetSeedValue = app.trustPropagatorFunction( function ( oArgs, field ) -{ - app.beginPriv(); - return retn = field.signatureSetSeedValue(oArgs); - app.endPriv(); -}); - diff --git a/texmf-dist/tex/latex/acrosort/acrosort.sty b/texmf-dist/tex/latex/acrosort/acrosort.sty index 098839f9..ea047228 100644 --- a/texmf-dist/tex/latex/acrosort/acrosort.sty +++ b/texmf-dist/tex/latex/acrosort/acrosort.sty @@ -1,273 +1,252 @@ -%% -%% This is file `acrosort.sty', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% acrosort.dtx (with options: `copyright,package') -%% -%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% acrosort package, 2011-12-22 %% -%% Copyright (C) 2006--2011 D. P. Story %% -%% dpstory@acrotex.net %% -%% storyd@nwfsc.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 of the %% -%% License, or (at your option) any later version. %% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{acrosort} - [2011/12/22 v1.5 AcroSort (dps)] -\RequirePackage[execJS]{eforms} -\RequirePackage{graphicx} -\def\theTotalTiles#1{\def\nTotalTiles{#1}} -\let\nTotalTiles\@empty -\def\theNumRows#1{% - \def\nRows{#1}% - \ifx\nCols\@empty\else - \ifx\nTotalTiles\@empty - {\count0=#1\relax\multiply\count0by\nCols - \xdef\nTotalTiles{\the\count0}}% - \fi - \fi - } -\let\nRows\@empty -\def\theNumCols#1{% - \def\nCols{#1}% - \ifx\nRows\@empty\else - \ifx\nTotalTiles\@empty - {\count0=#1\relax\multiply\count0by\nRows - \xdef\nTotalTiles{\the\count0}}% - \fi - \fi -} -\let\nCols\@empty -\def\theImportPath#1{\def\importpath{#1}} -\def\theIconExt#1{\def\iconsExt{#1}} -\def\iconsExt{pdf} -\def\theTeXImageWidth#1{\def\texImageWidth{#1}% - {\dimen0=\texImageWidth \xdef\imageWidth{\strip@pt\dimen0 }}% -} -\def\isPackage{\def\bIsPackage{true}} -\def\bIsPackage{false} -\def\ulCornerHere{\makebox[0pt][l]% - {\pushButton[\autoCenter{n}]{ulcorner}{0pt}{0pt}}} -\def\reserveSpaceByDimension#1#2{% - \hbox{\ifpreview\setlength\fboxrule{0.4pt}\setlength\fboxsep{0pt}% - \@tempdima=#1\advance\@tempdima by-\fboxrule - \@tempdimb=#2\advance\@tempdimb by-\fboxrule - \fbox{\parbox[t][\@tempdimb][t]{\@tempdima}{\kern0pt\hfill\vfill}}% - \else\parbox[t][#2][t]{#1}{\kern0pt\hfill\vfill}\fi}% -} -\newcommand{\reserveSpaceByFile}[1][\importpath]% - {{\setbox0=\hbox{\includegraphics[draft,width=\texImageWidth]{#1}}% - \reserveSpaceByDimension{\wd0}{\ht0}}} -\newcommand{\StartSort}[1][]{{\small\pushButton[\CA{Press Me}#1 - \A{\JS{% - ok2Continue = true;\r - mixupDPS();\r - showDPS();\r - sortoutDPS(); - }}]{StartButton}{}{12bp}}% -} -\newcommand{\ClearSort}[1][]% - {\small{\pushButton[\CA{Clear}#1\A{\JS{% - clearDPS();\sortCustomStartJS}}% - ]{StartButton}{}{12bp}}% -} -\newcommand{\StopSort}[1][]% - {\small{\pushButton[\CA{Stop}#1\A{\JS{ok2Continue = false;}}% - ]{StartButton}{}{12bp}}% -} -\def\bDebug{\def\memDebug{true}} -\def\memDebug{false} -\newcommand{\customStartJS}[1]{\def\sortCustomStartJS{#1}} -\let\sortCustomStartJS\@empty -\newcommand{\customFinishJS}[1]{\def\sortCustomFinishJS{#1}} -\def\sortCustomFinishJS{;} -\begin{insDLJS}[randomDPS]{sort}{JS for bubble sort} -// Global Data: -var randomDPS = new Array(\nTotalTiles+1); -var ldps = randomDPS.length; -var timeout = 10; -var shutdown; -var debug = \memDebug; -var ok2Continue = true; -for (i=1; i<=\nTotalTiles; i++) randomDPS[i]=i; - -// Clear DPS: -try {this.addIcon("nullIcon", this.createIcon("", 0, 0));} catch(e) {} - -function clearDPS() -{ - for ( var i=1; i<=\nTotalTiles; i++ ) - { - var oIcon = this.getIcon("nullIcon"); - var f = this.getField("button."+i); - f.buttonSetIcon(oIcon); - } -} - -// Mixup DPS: -function mixupDPS() -{ - var i, rand, temp; - for (i=1; i<= \nTotalTiles; i++) - { - var rand = Math.random(); - rand *= ldps*ldps; - rand = Math.ceil(rand); - rand = rand \% ldps; - if (rand == 0 ) rand = 1; - temp = randomDPS[i]; - randomDPS[i]=randomDPS[rand]; - randomDPS[rand]=temp; - } -} - -// Show DPS: -function showDPS() -{ - \sortCustomStartJS - for ( var i=1; i<=\nTotalTiles; i++ ) - { - var oIcon = this.getIcon("pic."+randomDPS[i]); - var f = this.getField("button."+i); - f.buttonSetIcon(oIcon); - } -} - -// Sortout DPS: -function sortoutDPS() -{ - outerLoop(randomDPS.length-1); -} -function outerLoop(i) -{ - if ( ok2Continue && (i >= 0) ) shutdown = app.setTimeOut("app.clearTimeOut(shutdown); innerLoop("+i+",1);", timeout); - else { - \sortCustomFinishJS - } -} -function innerLoop(i,j) -{ - if ( j <= i ) - { - if (randomDPS[j-1] > randomDPS[j]) - { - var temp = randomDPS[j-1]; - randomDPS[j-1] = randomDPS[j]; - randomDPS[j] = temp; - var oIcon = this.getIcon("pic."+randomDPS[j-1]); - var f = this.getField("button."+(j-1)); - f.buttonSetIcon(oIcon); - var oIcon = this.getIcon("pic."+randomDPS[j]); - var f = this.getField("button."+j); - f.buttonSetIcon(oIcon); - } - j++ - if ( ok2Continue ) shutdown = app.setTimeOut("app.clearTimeOut(shutdown); innerLoop("+i+","+j+");", timeout); - else { - \sortCustomFinishJS - } - } - else - { - i--; - outerLoop(i); - } -} -\end{insDLJS} - -\begin{execJS}{acrosortjs} -var index, ip="\importpath"; -var re=/_package$/; -var isPackage=\bIsPackage; -if (debug) console.println("isPackage: " + isPackage); -if (debug) console.println("nTotalTiles = " + \nTotalTiles) -if (isPackage) { - ip = ip+"_package"; - for ( var i = 1; i <= \nTotalTiles; i++) - { - try { aebTrustedFunctions(this, aebImportIcon, {cName: "pic."+i, - nPage: (i-1), cDIPath: ip+".\iconsExt"}, this); - } catch(e) {console.println("exception: " + e.toSource())} - - } -} else { - for ( var i = 1; i <= \nTotalTiles; i++) - { - index = ( i < 10 ) ? "0"+i : ""+i; - if (debug) console.println(ip+"_"+index+".\iconsExt") - try { aebTrustedFunctions(this, aebImportIcon, {cName: "pic."+i, cDIPath: ip+"_"+index+".\iconsExt"}, this); - } catch(e) {console.println("exception: " + e.toSource())} - } -} -// Now lay out the icon fields. -var f = this.getField("ulcorner"); -var nPage = f.page; -var ulCorner = f.rect; -this.removeField("ulcorner"); - -ip = ip.replace(re,""); -ip=ip+".pdf"; -var doc = aebTrustedFunctions( this, aebAppOpenDoc, { cPath: ip, oDoc: this, bHidden: true }); -var aRect = doc.getPageBox({cBox:"Crop"}) -doc.closeDoc(true); - -if (debug) console.println("aRect: " + aRect.toSource()); - -var nRows = \nRows; -var nCols = \nCols; - -var width = aRect[2]-aRect[0]; -var height = aRect[1]-aRect[3]; - -var scaleFactor = \imageWidth/width; - -if (debug) console.println("scaleFactor = " + scaleFactor); - -var scaledWidth = width*scaleFactor; -var scaledHeight = height*scaleFactor; - -if (debug) console.println("scaledWidth = " + scaledWidth); -if (debug) console.println("scaledHeight = " + scaledHeight); - -var mWidth = scaledWidth/nCols -var mHeight = scaledHeight/nRows - -if (debug) console.println("mWidth = " + mWidth); -if (debug) console.println("mHeight = " + mHeight); - -var nCnt = 0; - -for ( var i=0; ipic.01, btnpic.02, etc +var iconbase=""; // pic01, pic02, etc. +var iconObjs={\asIconObjs}; +var sortName=""; +var randomAS = new Array(); +var timeout = 10; +var shutdown; +var asOk2Continue = false; +function initRandomDPS(name) { + var nTotalTiles = iconObjs[name]; + for (i=1; i<=nTotalTiles; i++) randomAS[i]=i; + return nTotalTiles; +} +function startSortAS(name) { + if (!asOk2Continue) { + sortName=name; + randomAS = new Array(); + var f=this.getField("btn"+name+"pic"); + if(f!=null)f.display=display.visible; + asOk2Continue = true; + mixupAS(); + showAS(); + sortoutAS(); + } +} +function mixupAS() +{ + var i, rand, temp; + var nTotalTiles=initRandomDPS(sortName); + var ldps = randomAS.length; + for (i=1; i<= nTotalTiles; i++) + { + var rand = Math.random(); + rand *= ldps*ldps; + rand = Math.ceil(rand); + rand = rand \% ldps; + if (rand == 0 ) rand = 1; + temp = randomAS[i]; + randomAS[i]=randomAS[rand]; + randomAS[rand]=temp; + } +} +function showAS() +{ + var I,J; + var nTotalTiles = iconObjs[sortName]; + btnbase="btn"+sortName+"pic."; + iconbase=sortName+"pic"; + for ( var i=1; i<=nTotalTiles; i++ ) + { + I=((i<10)?"0":"")+i; + J=((randomAS[i]<10)?"0":"")+randomAS[i]; + var oIcon = this.getIcon(iconbase+J); + var f = this.getField(btnbase+I); + f.buttonSetIcon(oIcon); + } +} +function sortoutAS() +{ + outerLoop(randomAS.length-1); +} +function outerLoop(i) +{ + if ( asOk2Continue && (i >= 0) ) + shutdown = app.setTimeOut("app.clearTimeOut(shutdown); % +innerLoop("+i+",1);", timeout); + else { + asOk2Continue=false; + \sortCustomFinishJS + } +} +function innerLoop(i,j) +{ + var I, J; + if ( j <= i ) + { + if (randomAS[j-1] > randomAS[j]) + { + var temp = randomAS[j-1]; + randomAS[j-1] = randomAS[j]; + randomAS[j] = temp; + J=((randomAS[j-1]<10)?"0":"")+randomAS[j-1]; + I=((j-1 < 10)?"0":"")+(j-1); + var oIcon = this.getIcon(iconbase+J); + var f = this.getField(btnbase+I); + f.buttonSetIcon(oIcon); + J=((randomAS[j]<10)?"0":"")+randomAS[j]; + I=((j < 10)?"0":"")+j; + var oIcon = this.getIcon(iconbase+J); + var f = this.getField(btnbase+I); + f.buttonSetIcon(oIcon); + } + j++ + if ( asOk2Continue ) % +shutdown = app.setTimeOut("app.clearTimeOut(shutdown); % +innerLoop("+i+","+j+");", timeout); + } + else + { + i--; + outerLoop(i); + } +} +\end{insDLJS} +\endinput +%% +%% End of file `acrosort.sty'. -- cgit v1.2.3