summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2020-07-09 12:07:52 +0900
committerNorbert Preining <norbert@preining.info>2020-07-09 12:10:22 +0900
commitef9ddae5d03bd4cc3eceda25fbbccc37f1554e93 (patch)
treeff1abf5777c2d871d150ba0adfa3513c4280f362
parentc5cc771168d60bccba0690904a69cff272c33beb (diff)
richtext update
-rw-r--r--ctan2tds-config.pl1
-rw-r--r--texmf-dist/doc/latex/richtext/README.md11
-rw-r--r--texmf-dist/doc/latex/richtext/examples/caption-image.tex37
-rw-r--r--texmf-dist/doc/latex/richtext/examples/graphics/dpsweb.eps8490
-rw-r--r--texmf-dist/doc/latex/richtext/examples/graphics/dpsweb.pdfbin0 -> 450593 bytes
-rw-r--r--texmf-dist/doc/latex/richtext/examples/richtext_tst.pdfbin0 -> 55167 bytes
-rw-r--r--texmf-dist/doc/latex/richtext/examples/richtext_tst.tex18
-rw-r--r--texmf-dist/doc/latex/richtext/richtext.pdfbin0 -> 409997 bytes
-rw-r--r--texmf-dist/doc/latex/richtext/richtextman.pdfbin1982477 -> 1806079 bytes
-rw-r--r--texmf-dist/doc/latex/richtext/richtextman.tex (renamed from texmf-dist/source/latex/richtext/doc/richtextman.tex)393
-rw-r--r--texmf-dist/source/latex/richtext/richtext.dtx671
-rw-r--r--texmf-dist/tex/latex/richtext/richtext.sty773
-rw-r--r--tlpkg/texlive.tlpdb15
13 files changed, 9604 insertions, 805 deletions
diff --git a/ctan2tds-config.pl b/ctan2tds-config.pl
index 344eb444..e2885647 100644
--- a/ctan2tds-config.pl
+++ b/ctan2tds-config.pl
@@ -33,6 +33,7 @@ $special{'eqexam'} = '&MAKEdps';
$special{'bargraph-js'} = '&MAKEdps';
$special{'pmdb'} = '&MAKEdps';
$special{'thorshammer'} = '&MAKEdps';
+$special{'richtext'} = '&MAKEdps';
sub MAKEdps {
diff --git a/texmf-dist/doc/latex/richtext/README.md b/texmf-dist/doc/latex/richtext/README.md
index dadde345..e1d284d0 100644
--- a/texmf-dist/doc/latex/richtext/README.md
+++ b/texmf-dist/doc/latex/richtext/README.md
@@ -1,14 +1,21 @@
The richtext Package
Author: D. P. Story
-Dated: 2016/10/03
+Dated: 2020-07-02
The richtext package is used to create rich text strings that can, in turn,
be inserted into the RV (and V) keys of text field. Currently, only the eforms
package supports the RV key.
+What's New 2020-07-02: dvips tends to break lines according to
+some algorithm known only to the developer. This version of richtext
+has focused fixes to the dvips->distiller. It tries to prevent dvips
+from breaking lines in the postscript file that will cause the rich
+text field to fail. (Similar problems with JavaScript, by the way.)
+After much testing, the fix seems to work.
+
Now, I simply must get back to my retirement.
D. P. Story
www.acrotex.net
-dpstory@uakron.edu
dpstory@acrotex.net
+dpstory@uakron.edu
diff --git a/texmf-dist/doc/latex/richtext/examples/caption-image.tex b/texmf-dist/doc/latex/richtext/examples/caption-image.tex
new file mode 100644
index 00000000..2f1ea87c
--- /dev/null
+++ b/texmf-dist/doc/latex/richtext/examples/caption-image.tex
@@ -0,0 +1,37 @@
+% Use any workflow to build this file
+\documentclass{article}
+\usepackage{graphicx}
+\usepackage[designv]{web}
+\usepackage{richtext}
+
+\newcommand\targetWd{3in}
+
+% \getDimFromGraphic is defined in web
+\getDimsFromGraphic[width=\targetWd]{graphics/dpsweb}{\dpswebW}{\dpswebH}
+
+% some presets to prevent user form messing with the rich text caption
+\def\noEditing{\Ff\FfDoNotSpellCheck\Ff\FfDoNotScroll
+\AAkeystroke{event.rc=false;}\AAformat{event.rc=false;}}
+
+\begin{document}
+
+\noindent
+Place a rich text field on top of a picture to overlay a rich text caption. Some JavaScript prevents
+any editing of the caption.
+
+\rtpara[size=8,valign=bottom,margbottom=12,margleft=12,margright=12]{farewell}{\bf{Thank you} for reviewing the
+\span{font=Courier}{richtext} package, I hope you will enjoy exploring
+it. Did I say '\span{url=www.acrotex.net,style=bold}{AcroTeX Rocks!}'?\spc\spc\spc\spc\spc\span{color=ff0000}{dps}}
+
+\begin{center}
+\makebox[\dpswebW]{\makebox[0pt][l]{\textField[\presets{\noEditing}\textSize{8}\BC{}\BG{}
+\Ff{\FfRichText}\Ff{\FfMultiline}\DS{\useDefaultDS}\RV{\useRV{farewell}}
+\autoCenter{n}\V{\useV{farewell}}]{rtFld1}{\dpswebW}{\dpswebH}}%
+\includegraphics[width=\targetWd]{graphics/dpsweb}}
+\end{center}
+
+\noindent
+Displays properly in \textsf{Acrobat}, \textsf{Adobe Reader DC}, and \textsf{PDF-XChange Editor}.
+
+\end{document}
+
diff --git a/texmf-dist/doc/latex/richtext/examples/graphics/dpsweb.eps b/texmf-dist/doc/latex/richtext/examples/graphics/dpsweb.eps
new file mode 100644
index 00000000..78833180
--- /dev/null
+++ b/texmf-dist/doc/latex/richtext/examples/graphics/dpsweb.eps
@@ -0,0 +1,8490 @@
+%!PS-Adobe-3.1 EPSF-3.0
+%ADO_DSC_Encoding: Windows Roman
+%%Title: dpsweb.pdf
+%%Creator: Adobe Acrobat 15.19.0
+%%For: dpstory
+%%CreationDate: 9/13/2016, 8:28:11 AM
+%%BoundingBox: 0 0 265 229
+%%HiResBoundingBox: 0 0 264.4801 228.4800
+%%CropBox: 0 0 264.4801 228.4800
+%%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
+ {<</DetectBlends false>>setdistillerparams}if
+ }if
+ /AGMCORE_ps_version xdf
+ /AGMCORE_ps_level xdf
+ errordict/AGM_handleerror known not{
+ errordict/AGM_handleerror errordict/handleerror get put
+ errordict/handleerror{
+ Adobe_AGM_Core begin
+ $error/newerror get AGMCORE_cur_err null ne and{
+ $error/newerror false put
+ AGMCORE_cur_err compose_error_msg
+ }if
+ $error/newerror true put
+ end
+ errordict/AGM_handleerror get exec
+ }bind put
+ }if
+ /AGMCORE_environ_ok
+ ps_level AGMCORE_ps_level ge
+ ps_version AGMCORE_ps_version ge and
+ AGMCORE_ps_level -1 eq or
+ def
+ AGMCORE_environ_ok not
+ {/AGMCORE_cur_err/AGMCORE_bad_environ def}if
+ /AGMCORE_&setgray systemdict/setgray get def
+ level2{
+ /AGMCORE_&setcolor systemdict/setcolor get def
+ /AGMCORE_&setcolorspace systemdict/setcolorspace get def
+ }if
+ /AGMCORE_currentbg currentblackgeneration def
+ /AGMCORE_currentucr currentundercolorremoval def
+ /AGMCORE_Default_flatness currentflat def
+ /AGMCORE_distilling
+ /product where{
+ pop systemdict/setdistillerparams known product(Adobe PostScript Parser)ne and
+ }{
+ false
+ }ifelse
+ def
+ /AGMCORE_GSTATE AGMCORE_key_known not{
+ /AGMCORE_GSTATE 21 dict def
+ /AGMCORE_tmpmatrix matrix def
+ /AGMCORE_gstack 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<</PatternType 1/PaintProc{pop}/BBox[0 0 1 1]/XStep 1/YStep 1/PaintType 1/TilingType 3>>}if
+ exch AGMCORE_&sysmakepattern
+ }{
+ exch AGMCORE_&usrmakepattern
+ }ifelse
+ }def
+ }if
+ }if
+ AGMCORE_in_rip_sep{
+ /setcustomcolor
+ {
+ exch aload pop
+ dup 7 1 roll inRip_spot_has_ink not {
+ 4{4 index mul 4 1 roll}
+ repeat
+ /DeviceCMYK setcolorspace
+ 6 -2 roll pop pop
+ }{
+ //Adobe_AGM_Core begin
+ /AGMCORE_k xdf/AGMCORE_y xdf/AGMCORE_m xdf/AGMCORE_c xdf
+ end
+ [/Separation 4 -1 roll/DeviceCMYK
+ {dup AGMCORE_c mul exch dup AGMCORE_m mul exch dup AGMCORE_y mul exch AGMCORE_k mul}
+ ]
+ setcolorspace
+ }ifelse
+ setcolor
+ }ndf
+ /setseparationgray
+ {
+ [/Separation(All)/DeviceGray{}]setcolorspace_opt
+ 1 exch sub setcolor
+ }ndf
+ }{
+ /setseparationgray
+ {
+ AGMCORE_&setgray
+ }ndf
+ }ifelse
+ /findcmykcustomcolor
+ {
+ 5 makereadonlyarray
+ }ndf
+ /setcustomcolor
+ {
+ exch aload pop pop
+ 4{4 index mul 4 1 roll}repeat
+ setcmykcolor pop
+ }ndf
+ /has_color
+ /colorimage where{
+ AGMCORE_producing_seps{
+ pop true
+ }{
+ systemdict eq
+ }ifelse
+ }{
+ false
+ }ifelse
+ def
+ /map_index
+ {
+ 1 index mul exch getinterval{255 div}forall
+ }bdf
+ /map_indexed_devn
+ {
+ Lookup Names length 3 -1 roll cvi map_index
+ }bdf
+ /n_color_components
+ {
+ base_colorspace_type
+ dup/DeviceGray eq{
+ pop 1
+ }{
+ /DeviceCMYK eq{
+ 4
+ }{
+ 3
+ }ifelse
+ }ifelse
+ }bdf
+ level2{
+ /mo/moveto ldf
+ /li/lineto ldf
+ /cv/curveto ldf
+ /knockout_unitsq
+ {
+ 1 setgray
+ 0 0 1 1 rectfill
+ }def
+ level2/setcolorspace AGMCORE_key_known not and{
+ /AGMCORE_&&&setcolorspace/setcolorspace ldf
+ /AGMCORE_ReplaceMappedColor
+ {
+ dup type dup/arraytype eq exch/packedarraytype eq or
+ {
+ /AGMCORE_SpotAliasAry2 where{
+ begin
+ dup 0 get dup/Separation eq
+ {
+ pop
+ dup length array copy
+ dup dup 1 get
+ current_spot_alias
+ {
+ dup map_alias
+ {
+ false set_spot_alias
+ dup 1 exch setsepcolorspace
+ true set_spot_alias
+ begin
+ /sep_colorspace_dict currentdict AGMCORE_gput
+ pop pop pop
+ [
+ /Separation Name
+ CSA map_csa
+ MappedCSA
+ /sep_colorspace_proc load
+ ]
+ dup Name
+ end
+ }if
+ }if
+ map_reserved_ink_name 1 xpt
+ }{
+ /DeviceN eq
+ {
+ dup length array copy
+ dup dup 1 get[
+ exch{
+ current_spot_alias{
+ dup map_alias{
+ /Name get exch pop
+ }if
+ }if
+ map_reserved_ink_name
+ }forall
+ ]1 xpt
+ }if
+ }ifelse
+ end
+ }if
+ }if
+ }def
+ /setcolorspace
+ {
+ dup type dup/arraytype eq exch/packedarraytype eq or
+ {
+ dup 0 get/Indexed eq
+ {
+ AGMCORE_distilling
+ {
+ /PhotoshopDuotoneList where
+ {
+ pop false
+ }{
+ true
+ }ifelse
+ }{
+ true
+ }ifelse
+ {
+ aload pop 3 -1 roll
+ AGMCORE_ReplaceMappedColor
+ 3 1 roll 4 array astore
+ }if
+ }{
+ AGMCORE_ReplaceMappedColor
+ }ifelse
+ }if
+ DeviceN_PS2_inRip_seps{AGMCORE_&&&setcolorspace}if
+ }def
+ }if
+ }{
+ /adj
+ {
+ currentstrokeadjust{
+ transform
+ 0.25 sub round 0.25 add exch
+ 0.25 sub round 0.25 add exch
+ itransform
+ }if
+ }def
+ /mo{
+ adj moveto
+ }def
+ /li{
+ adj lineto
+ }def
+ /cv{
+ 6 2 roll adj
+ 6 2 roll adj
+ 6 2 roll adj curveto
+ }def
+ /knockout_unitsq
+ {
+ 1 setgray
+ 8 8 1[8 0 0 8 0 0]{<ffffffffffffffff>}image
+ }def
+ /currentstrokeadjust{
+ /currentstrokeadjust AGMCORE_gget
+ }def
+ /setstrokeadjust{
+ /currentstrokeadjust exch AGMCORE_gput
+ }def
+ /setcolorspace
+ {
+ /currentcolorspace exch AGMCORE_gput
+ }def
+ /currentcolorspace
+ {
+ /currentcolorspace AGMCORE_gget
+ }def
+ /setcolor_devicecolor
+ {
+ base_colorspace_type
+ dup/DeviceGray eq{
+ pop setgray
+ }{
+ /DeviceCMYK eq{
+ setcmykcolor
+ }{
+ setrgbcolor
+ }ifelse
+ }ifelse
+ }def
+ /setcolor
+ {
+ currentcolorspace 0 get
+ dup/DeviceGray ne{
+ dup/DeviceCMYK ne{
+ dup/DeviceRGB ne{
+ dup/Separation eq{
+ pop
+ currentcolorspace 3 gx
+ currentcolorspace 2 get
+ }{
+ dup/Indexed eq{
+ pop
+ currentcolorspace 3 get dup type/stringtype eq{
+ currentcolorspace 1 get n_color_components
+ 3 -1 roll map_index
+ }{
+ exec
+ }ifelse
+ currentcolorspace 1 get
+ }{
+ /AGMCORE_cur_err/AGMCORE_invalid_color_space def
+ AGMCORE_invalid_color_space
+ }ifelse
+ }ifelse
+ }if
+ }if
+ }if
+ setcolor_devicecolor
+ }def
+ }ifelse
+ /sop/setoverprint ldf
+ /lw/setlinewidth ldf
+ /lc/setlinecap ldf
+ /lj/setlinejoin ldf
+ /ml/setmiterlimit ldf
+ /dsh/setdash ldf
+ /sadj/setstrokeadjust ldf
+ /gry/setgray ldf
+ /rgb/setrgbcolor ldf
+ /cmyk[
+ /currentcolorspace[/DeviceCMYK]/AGMCORE_gput cvx
+ /setcmykcolor load dup type/operatortype ne{/exec cvx}if
+ ]cvx bdf
+ level3 AGMCORE_host_sep not and{
+ /nzopmsc{
+ 6 dict begin
+ /kk exch def
+ /yy exch def
+ /mm exch def
+ /cc exch def
+ /sum 0 def
+ cc 0 ne{/sum sum 2#1000 or def cc}if
+ mm 0 ne{/sum sum 2#0100 or def mm}if
+ yy 0 ne{/sum sum 2#0010 or def yy}if
+ kk 0 ne{/sum sum 2#0001 or def kk}if
+ AGMCORE_CMYKDeviceNColorspaces sum get setcolorspace
+ sum 0 eq{0}if
+ end
+ setcolor
+ }bdf
+ }{
+ /nzopmsc/cmyk ldf
+ }ifelse
+ /sep/setsepcolor ldf
+ /devn/setdevicencolor ldf
+ /idx/setindexedcolor ldf
+ /colr/setcolor ldf
+ /csacrd/set_csa_crd ldf
+ /sepcs/setsepcolorspace ldf
+ /devncs/setdevicencolorspace ldf
+ /idxcs/setindexedcolorspace ldf
+ /cp/closepath ldf
+ /clp/clp_npth ldf
+ /eclp/eoclp_npth ldf
+ /f/fill ldf
+ /ef/eofill ldf
+ /@/stroke ldf
+ /nclp/npth_clp ldf
+ /gset/graphic_setup ldf
+ /gcln/graphic_cleanup ldf
+ /ct/concat ldf
+ /cf/currentfile ldf
+ /fl/filter ldf
+ /rs/readstring ldf
+ /AGMCORE_def_ht currenthalftone def
+ /clonedict Adobe_AGM_Utils begin/clonedict load end def
+ /clonearray Adobe_AGM_Utils begin/clonearray load end def
+ currentdict{
+ dup xcheck 1 index type dup/arraytype eq exch/packedarraytype eq or and{
+ bind
+ }if
+ def
+ }forall
+ /getrampcolor
+ {
+ /indx exch def
+ 0 1 NumComp 1 sub
+ {
+ dup
+ Samples exch get
+ dup type/stringtype eq{indx get}if
+ exch
+ Scaling exch get aload pop
+ 3 1 roll
+ mul add
+ }for
+ ColorSpaceFamily/Separation eq
+ {sep}
+ {
+ ColorSpaceFamily/DeviceN eq
+ {devn}{setcolor}ifelse
+ }ifelse
+ }bdf
+ /sssetbackground{
+ aload pop
+ ColorSpaceFamily/Separation eq
+ {sep}
+ {
+ ColorSpaceFamily/DeviceN eq
+ {devn}{setcolor}ifelse
+ }ifelse
+ }bdf
+ /RadialShade
+ {
+ 40 dict begin
+ /ColorSpaceFamily xdf
+ /background xdf
+ /ext1 xdf
+ /ext0 xdf
+ /BBox xdf
+ /r2 xdf
+ /c2y xdf
+ /c2x xdf
+ /r1 xdf
+ /c1y xdf
+ /c1x xdf
+ /rampdict xdf
+ /setinkoverprint where{pop/setinkoverprint{pop}def}if
+ gsave
+ BBox length 0 gt
+ {
+ np
+ BBox 0 get BBox 1 get moveto
+ BBox 2 get BBox 0 get sub 0 rlineto
+ 0 BBox 3 get BBox 1 get sub rlineto
+ BBox 2 get BBox 0 get sub neg 0 rlineto
+ closepath
+ clip
+ np
+ }if
+ c1x c2x eq
+ {
+ c1y c2y lt{/theta 90 def}{/theta 270 def}ifelse
+ }{
+ /slope c2y c1y sub c2x c1x sub div def
+ /theta slope 1 atan def
+ c2x c1x lt c2y c1y ge and{/theta theta 180 sub def}if
+ c2x c1x lt c2y c1y lt and{/theta theta 180 add def}if
+ }ifelse
+ gsave
+ clippath
+ c1x c1y translate
+ theta rotate
+ -90 rotate
+ {pathbbox}stopped
+ {0 0 0 0}if
+ /yMax xdf
+ /xMax xdf
+ /yMin xdf
+ /xMin xdf
+ grestore
+ xMax xMin eq yMax yMin eq or
+ {
+ grestore
+ end
+ }{
+ /max{2 copy gt{pop}{exch pop}ifelse}bdf
+ /min{2 copy lt{pop}{exch pop}ifelse}bdf
+ rampdict begin
+ 40 dict begin
+ background length 0 gt{background sssetbackground gsave clippath fill grestore}if
+ gsave
+ c1x c1y translate
+ theta rotate
+ -90 rotate
+ /c2y c1x c2x sub dup mul c1y c2y sub dup mul add sqrt def
+ /c1y 0 def
+ /c1x 0 def
+ /c2x 0 def
+ ext0
+ {
+ 0 getrampcolor
+ c2y r2 add r1 sub 0.0001 lt
+ {
+ c1x c1y r1 360 0 arcn
+ pathbbox
+ /aymax exch def
+ /axmax exch def
+ /aymin exch def
+ /axmin exch def
+ /bxMin xMin axmin min def
+ /byMin yMin aymin min def
+ /bxMax xMax axmax max def
+ /byMax yMax aymax max def
+ bxMin byMin moveto
+ bxMax byMin lineto
+ bxMax byMax lineto
+ bxMin byMax lineto
+ bxMin byMin lineto
+ eofill
+ }{
+ c2y r1 add r2 le
+ {
+ c1x c1y r1 0 360 arc
+ fill
+ }
+ {
+ c2x c2y r2 0 360 arc fill
+ r1 r2 eq
+ {
+ /p1x r1 neg def
+ /p1y c1y def
+ /p2x r1 def
+ /p2y c1y def
+ p1x p1y moveto p2x p2y lineto p2x yMin lineto p1x yMin lineto
+ fill
+ }{
+ /AA r2 r1 sub c2y div def
+ AA -1 eq
+ {/theta 89.99 def}
+ {/theta AA 1 AA dup mul sub sqrt div 1 atan def}
+ ifelse
+ /SS1 90 theta add dup sin exch cos div def
+ /p1x r1 SS1 SS1 mul SS1 SS1 mul 1 add div sqrt mul neg def
+ /p1y p1x SS1 div neg def
+ /SS2 90 theta sub dup sin exch cos div def
+ /p2x r1 SS2 SS2 mul SS2 SS2 mul 1 add div sqrt mul def
+ /p2y p2x SS2 div neg def
+ r1 r2 gt
+ {
+ /L1maxX p1x yMin p1y sub SS1 div add def
+ /L2maxX p2x yMin p2y sub SS2 div add def
+ }{
+ /L1maxX 0 def
+ /L2maxX 0 def
+ }ifelse
+ p1x p1y moveto p2x p2y lineto L2maxX L2maxX p2x sub SS2 mul p2y add lineto
+ L1maxX L1maxX p1x sub SS1 mul p1y add lineto
+ fill
+ }ifelse
+ }ifelse
+ }ifelse
+ }if
+ c1x c2x sub dup mul
+ c1y c2y sub dup mul
+ add 0.5 exp
+ 0 dtransform
+ dup mul exch dup mul add 0.5 exp 72 div
+ 0 72 matrix defaultmatrix dtransform dup mul exch dup mul add sqrt
+ 72 0 matrix defaultmatrix dtransform dup mul exch dup mul add sqrt
+ 1 index 1 index lt{exch}if pop
+ /hires xdf
+ hires mul
+ /numpix xdf
+ /numsteps NumSamples def
+ /rampIndxInc 1 def
+ /subsampling false def
+ numpix 0 ne
+ {
+ NumSamples numpix div 0.5 gt
+ {
+ /numsteps numpix 2 div round cvi dup 1 le{pop 2}if def
+ /rampIndxInc NumSamples 1 sub numsteps div def
+ /subsampling true def
+ }if
+ }if
+ /xInc c2x c1x sub numsteps div def
+ /yInc c2y c1y sub numsteps div def
+ /rInc r2 r1 sub numsteps div def
+ /cx c1x def
+ /cy c1y def
+ /radius r1 def
+ np
+ xInc 0 eq yInc 0 eq rInc 0 eq and and
+ {
+ 0 getrampcolor
+ cx cy radius 0 360 arc
+ stroke
+ NumSamples 1 sub getrampcolor
+ cx cy radius 72 hires div add 0 360 arc
+ 0 setlinewidth
+ stroke
+ }{
+ 0
+ numsteps
+ {
+ dup
+ subsampling{round cvi}if
+ getrampcolor
+ cx cy radius 0 360 arc
+ /cx cx xInc add def
+ /cy cy yInc add def
+ /radius radius rInc add def
+ cx cy radius 360 0 arcn
+ eofill
+ rampIndxInc add
+ }repeat
+ pop
+ }ifelse
+ ext1
+ {
+ c2y r2 add r1 lt
+ {
+ c2x c2y r2 0 360 arc
+ fill
+ }{
+ c2y r1 add r2 sub 0.0001 le
+ {
+ c2x c2y r2 360 0 arcn
+ pathbbox
+ /aymax exch def
+ /axmax exch def
+ /aymin exch def
+ /axmin exch def
+ /bxMin xMin axmin min def
+ /byMin yMin aymin min def
+ /bxMax xMax axmax max def
+ /byMax yMax aymax max def
+ bxMin byMin moveto
+ bxMax byMin lineto
+ bxMax byMax lineto
+ bxMin byMax lineto
+ bxMin byMin lineto
+ eofill
+ }{
+ c2x c2y r2 0 360 arc fill
+ r1 r2 eq
+ {
+ /p1x r2 neg def
+ /p1y c2y def
+ /p2x r2 def
+ /p2y c2y def
+ p1x p1y moveto p2x p2y lineto p2x yMax lineto p1x yMax lineto
+ fill
+ }{
+ /AA r2 r1 sub c2y div def
+ AA -1 eq
+ {/theta 89.99 def}
+ {/theta AA 1 AA dup mul sub sqrt div 1 atan def}
+ ifelse
+ /SS1 90 theta add dup sin exch cos div def
+ /p1x r2 SS1 SS1 mul SS1 SS1 mul 1 add div sqrt mul neg def
+ /p1y c2y p1x SS1 div sub def
+ /SS2 90 theta sub dup sin exch cos div def
+ /p2x r2 SS2 SS2 mul SS2 SS2 mul 1 add div sqrt mul def
+ /p2y c2y p2x SS2 div sub def
+ r1 r2 lt
+ {
+ /L1maxX p1x yMax p1y sub SS1 div add def
+ /L2maxX p2x yMax p2y sub SS2 div add def
+ }{
+ /L1maxX 0 def
+ /L2maxX 0 def
+ }ifelse
+ p1x p1y moveto p2x p2y lineto L2maxX L2maxX p2x sub SS2 mul p2y add lineto
+ L1maxX L1maxX p1x sub SS1 mul p1y add lineto
+ fill
+ }ifelse
+ }ifelse
+ }ifelse
+ }if
+ grestore
+ grestore
+ end
+ end
+ end
+ }ifelse
+ }bdf
+ /GenStrips
+ {
+ 40 dict begin
+ /ColorSpaceFamily xdf
+ /background xdf
+ /ext1 xdf
+ /ext0 xdf
+ /BBox xdf
+ /y2 xdf
+ /x2 xdf
+ /y1 xdf
+ /x1 xdf
+ /rampdict xdf
+ /setinkoverprint where{pop/setinkoverprint{pop}def}if
+ gsave
+ BBox length 0 gt
+ {
+ np
+ BBox 0 get BBox 1 get moveto
+ BBox 2 get BBox 0 get sub 0 rlineto
+ 0 BBox 3 get BBox 1 get sub rlineto
+ BBox 2 get BBox 0 get sub neg 0 rlineto
+ closepath
+ clip
+ np
+ }if
+ x1 x2 eq
+ {
+ y1 y2 lt{/theta 90 def}{/theta 270 def}ifelse
+ }{
+ /slope y2 y1 sub x2 x1 sub div def
+ /theta slope 1 atan def
+ x2 x1 lt y2 y1 ge and{/theta theta 180 sub def}if
+ x2 x1 lt y2 y1 lt and{/theta theta 180 add def}if
+ }
+ ifelse
+ gsave
+ clippath
+ x1 y1 translate
+ theta rotate
+ {pathbbox}stopped
+ {0 0 0 0}if
+ /yMax exch def
+ /xMax exch def
+ /yMin exch def
+ /xMin exch def
+ grestore
+ xMax xMin eq yMax yMin eq or
+ {
+ grestore
+ end
+ }{
+ rampdict begin
+ 20 dict begin
+ background length 0 gt{background sssetbackground gsave clippath fill grestore}if
+ gsave
+ x1 y1 translate
+ theta rotate
+ /xStart 0 def
+ /xEnd x2 x1 sub dup mul y2 y1 sub dup mul add 0.5 exp def
+ /ySpan yMax yMin sub def
+ /numsteps NumSamples def
+ /rampIndxInc 1 def
+ /subsampling false def
+ xStart 0 transform
+ xEnd 0 transform
+ 3 -1 roll
+ sub dup mul
+ 3 1 roll
+ sub dup mul
+ add 0.5 exp 72 div
+ 0 72 matrix defaultmatrix dtransform dup mul exch dup mul add sqrt
+ 72 0 matrix defaultmatrix dtransform dup mul exch dup mul add sqrt
+ 1 index 1 index lt{exch}if pop
+ mul
+ /numpix xdf
+ numpix 0 ne
+ {
+ NumSamples numpix div 0.5 gt
+ {
+ /numsteps numpix 2 div round cvi dup 1 le{pop 2}if def
+ /rampIndxInc NumSamples 1 sub numsteps div def
+ /subsampling true def
+ }if
+ }if
+ ext0
+ {
+ 0 getrampcolor
+ xMin xStart lt
+ {
+ xMin yMin xMin neg ySpan rectfill
+ }if
+ }if
+ /xInc xEnd xStart sub numsteps div def
+ /x xStart def
+ 0
+ numsteps
+ {
+ dup
+ subsampling{round cvi}if
+ getrampcolor
+ x yMin xInc ySpan rectfill
+ /x x xInc add def
+ rampIndxInc add
+ }repeat
+ pop
+ ext1{
+ xMax xEnd gt
+ {
+ xEnd yMin xMax xEnd sub ySpan rectfill
+ }if
+ }if
+ grestore
+ grestore
+ end
+ end
+ end
+ }ifelse
+ }bdf
+}def
+/pt
+{
+ end
+}def
+/dt{
+}def
+/pgsv{
+ //Adobe_AGM_Core/AGMCORE_save save put
+}def
+/pgrs{
+ //Adobe_AGM_Core/AGMCORE_save get restore
+}def
+systemdict/findcolorrendering known{
+ /findcolorrendering systemdict/findcolorrendering get def
+}if
+systemdict/setcolorrendering known{
+ /setcolorrendering systemdict/setcolorrendering get def
+}if
+/test_cmyk_color_plate
+{
+ gsave
+ setcmykcolor currentgray 1 ne
+ grestore
+}def
+/inRip_spot_has_ink
+{
+ dup//Adobe_AGM_Core/AGMCORE_name xddf
+ convert_spot_to_process not
+}def
+/map255_to_range
+{
+ 1 index sub
+ 3 -1 roll 255 div mul add
+}def
+/set_csa_crd
+{
+ /sep_colorspace_dict null AGMCORE_gput
+ begin
+ CSA get_csa_by_name setcolorspace_opt
+ set_crd
+ end
+}
+def
+/map_csa
+{
+ currentdict/MappedCSA known{MappedCSA null ne}{false}ifelse
+ {pop}{get_csa_by_name/MappedCSA xdf}ifelse
+}def
+/setsepcolor
+{
+ /sep_colorspace_dict AGMCORE_gget begin
+ dup/sep_tint exch AGMCORE_gput
+ TintProc
+ end
+}def
+/setdevicencolor
+{
+ /devicen_colorspace_dict AGMCORE_gget begin
+ Names length copy
+ Names length 1 sub -1 0
+ {
+ /devicen_tints AGMCORE_gget 3 1 roll xpt
+ }for
+ TintProc
+ end
+}def
+/sep_colorspace_proc
+{
+ /AGMCORE_tmp exch store
+ /sep_colorspace_dict AGMCORE_gget begin
+ currentdict/Components known{
+ Components aload pop
+ TintMethod/Lab eq{
+ 2{AGMCORE_tmp mul NComponents 1 roll}repeat
+ LMax sub AGMCORE_tmp mul LMax add NComponents 1 roll
+ }{
+ TintMethod/Subtractive eq{
+ NComponents{
+ AGMCORE_tmp mul NComponents 1 roll
+ }repeat
+ }{
+ NComponents{
+ 1 sub AGMCORE_tmp mul 1 add NComponents 1 roll
+ }repeat
+ }ifelse
+ }ifelse
+ }{
+ ColorLookup AGMCORE_tmp ColorLookup length 1 sub mul round cvi get
+ aload pop
+ }ifelse
+ end
+}def
+/sep_colorspace_gray_proc
+{
+ /AGMCORE_tmp exch store
+ /sep_colorspace_dict AGMCORE_gget begin
+ GrayLookup AGMCORE_tmp GrayLookup length 1 sub mul round cvi get
+ end
+}def
+/sep_proc_name
+{
+ dup 0 get
+ dup/DeviceRGB eq exch/DeviceCMYK eq or level2 not and has_color not and{
+ pop[/DeviceGray]
+ /sep_colorspace_gray_proc
+ }{
+ /sep_colorspace_proc
+ }ifelse
+}def
+/setsepcolorspace
+{
+ current_spot_alias{
+ dup begin
+ Name map_alias{
+ exch pop
+ }if
+ end
+ }if
+ dup/sep_colorspace_dict exch AGMCORE_gput
+ begin
+ CSA map_csa
+ /AGMCORE_sep_special Name dup()eq exch(All)eq or store
+ AGMCORE_avoid_L2_sep_space{
+ [/Indexed MappedCSA sep_proc_name 255 exch
+ {255 div}/exec cvx 3 -1 roll[4 1 roll load/exec cvx]cvx
+ ]setcolorspace_opt
+ /TintProc{
+ 255 mul round cvi setcolor
+ }bdf
+ }{
+ MappedCSA 0 get/DeviceCMYK eq
+ currentdict/Components known and
+ AGMCORE_sep_special not and{
+ /TintProc[
+ Components aload pop Name findcmykcustomcolor
+ /exch cvx/setcustomcolor cvx
+ ]cvx bdf
+ }{
+ AGMCORE_host_sep Name(All)eq and{
+ /TintProc{
+ 1 exch sub setseparationgray
+ }bdf
+ }{
+ AGMCORE_in_rip_sep MappedCSA 0 get/DeviceCMYK eq and
+ AGMCORE_host_sep or
+ Name()eq and{
+ /TintProc[
+ MappedCSA sep_proc_name exch 0 get/DeviceCMYK eq{
+ cvx/setcmykcolor cvx
+ }{
+ cvx/setgray cvx
+ }ifelse
+ ]cvx bdf
+ }{
+ AGMCORE_producing_seps MappedCSA 0 get dup/DeviceCMYK eq exch/DeviceGray eq or and AGMCORE_sep_special not and{
+ /TintProc[
+ /dup cvx
+ MappedCSA sep_proc_name cvx exch
+ 0 get/DeviceGray eq{
+ 1/exch cvx/sub cvx 0 0 0 4 -1/roll cvx
+ }if
+ /Name cvx/findcmykcustomcolor cvx/exch cvx
+ AGMCORE_host_sep{
+ AGMCORE_is_cmyk_sep
+ /Name cvx
+ /AGMCORE_IsSeparationAProcessColor load/exec cvx
+ /not cvx/and cvx
+ }{
+ Name inRip_spot_has_ink not
+ }ifelse
+ [
+ /pop cvx 1
+ ]cvx/if cvx
+ /setcustomcolor cvx
+ ]cvx bdf
+ }{
+ /TintProc{setcolor}bdf
+ [/Separation Name MappedCSA sep_proc_name load]setcolorspace_opt
+ }ifelse
+ }ifelse
+ }ifelse
+ }ifelse
+ }ifelse
+ set_crd
+ setsepcolor
+ end
+}def
+/additive_blend
+{
+ 3 dict begin
+ /numarrays xdf
+ /numcolors xdf
+ 0 1 numcolors 1 sub
+ {
+ /c1 xdf
+ 1
+ 0 1 numarrays 1 sub
+ {
+ 1 exch add/index cvx
+ c1/get cvx/mul cvx
+ }for
+ numarrays 1 add 1/roll cvx
+ }for
+ numarrays[/pop cvx]cvx/repeat cvx
+ end
+}def
+/subtractive_blend
+{
+ 3 dict begin
+ /numarrays xdf
+ /numcolors xdf
+ 0 1 numcolors 1 sub
+ {
+ /c1 xdf
+ 1 1
+ 0 1 numarrays 1 sub
+ {
+ 1 3 3 -1 roll add/index cvx
+ c1/get cvx/sub cvx/mul cvx
+ }for
+ /sub cvx
+ numarrays 1 add 1/roll cvx
+ }for
+ numarrays[/pop cvx]cvx/repeat cvx
+ end
+}def
+/exec_tint_transform
+{
+ /TintProc[
+ /TintTransform cvx/setcolor cvx
+ ]cvx bdf
+ MappedCSA setcolorspace_opt
+}bdf
+/devn_makecustomcolor
+{
+ 2 dict begin
+ /names_index xdf
+ /Names xdf
+ 1 1 1 1 Names names_index get findcmykcustomcolor
+ /devicen_tints AGMCORE_gget names_index get setcustomcolor
+ Names length{pop}repeat
+ end
+}bdf
+/setdevicencolorspace
+{
+ dup/AliasedColorants known{false}{true}ifelse
+ current_spot_alias and{
+ 7 dict begin
+ /names_index 0 def
+ dup/names_len exch/Names get length def
+ /new_names names_len array def
+ /new_LookupTables names_len array def
+ /alias_cnt 0 def
+ dup/Names get
+ {
+ dup map_alias{
+ exch pop
+ dup/ColorLookup known{
+ dup begin
+ new_LookupTables names_index ColorLookup put
+ end
+ }{
+ dup/Components known{
+ dup begin
+ new_LookupTables names_index Components put
+ end
+ }{
+ dup begin
+ new_LookupTables names_index[null null null null]put
+ end
+ }ifelse
+ }ifelse
+ new_names names_index 3 -1 roll/Name get put
+ /alias_cnt alias_cnt 1 add def
+ }{
+ /name xdf
+ new_names names_index name put
+ dup/LookupTables known{
+ dup begin
+ new_LookupTables names_index LookupTables names_index get put
+ end
+ }{
+ dup begin
+ new_LookupTables names_index[null null null null]put
+ end
+ }ifelse
+ }ifelse
+ /names_index names_index 1 add def
+ }forall
+ alias_cnt 0 gt{
+ /AliasedColorants true def
+ /lut_entry_len new_LookupTables 0 get dup length 256 ge{0 get length}{length}ifelse def
+ 0 1 names_len 1 sub{
+ /names_index xdf
+ new_LookupTables names_index get dup length 256 ge{0 get length}{length}ifelse lut_entry_len ne{
+ /AliasedColorants false def
+ exit
+ }{
+ new_LookupTables names_index get 0 get null eq{
+ dup/Names get names_index get/name xdf
+ name(Cyan)eq name(Magenta)eq name(Yellow)eq name(Black)eq
+ or or or not{
+ /AliasedColorants false def
+ exit
+ }if
+ }if
+ }ifelse
+ }for
+ lut_entry_len 1 eq{
+ /AliasedColorants false def
+ }if
+ AliasedColorants{
+ dup begin
+ /Names new_names def
+ /LookupTables new_LookupTables def
+ /AliasedColorants true def
+ /NComponents lut_entry_len def
+ /TintMethod NComponents 4 eq{/Subtractive}{/Additive}ifelse def
+ /MappedCSA TintMethod/Additive eq{/DeviceRGB}{/DeviceCMYK}ifelse def
+ currentdict/TTTablesIdx known not{
+ /TTTablesIdx -1 def
+ }if
+ end
+ }if
+ }if
+ end
+ }if
+ dup/devicen_colorspace_dict exch AGMCORE_gput
+ begin
+ currentdict/AliasedColorants known{
+ AliasedColorants
+ }{
+ false
+ }ifelse
+ dup not{
+ CSA map_csa
+ }if
+ /TintTransform load type/nulltype eq or{
+ /TintTransform[
+ 0 1 Names length 1 sub
+ {
+ /TTTablesIdx TTTablesIdx 1 add def
+ dup LookupTables exch get dup 0 get null eq
+ {
+ 1 index
+ Names exch get
+ dup(Cyan)eq
+ {
+ pop exch
+ LookupTables length exch sub
+ /index cvx
+ 0 0 0
+ }
+ {
+ dup(Magenta)eq
+ {
+ pop exch
+ LookupTables length exch sub
+ /index cvx
+ 0/exch cvx 0 0
+ }{
+ (Yellow)eq
+ {
+ exch
+ LookupTables length exch sub
+ /index cvx
+ 0 0 3 -1/roll cvx 0
+ }{
+ exch
+ LookupTables length exch sub
+ /index cvx
+ 0 0 0 4 -1/roll cvx
+ }ifelse
+ }ifelse
+ }ifelse
+ 5 -1/roll cvx/astore cvx
+ }{
+ dup length 1 sub
+ LookupTables length 4 -1 roll sub 1 add
+ /index cvx/mul cvx/round cvx/cvi cvx/get cvx
+ }ifelse
+ Names length TTTablesIdx add 1 add 1/roll cvx
+ }for
+ Names length[/pop cvx]cvx/repeat cvx
+ NComponents Names length
+ TintMethod/Subtractive eq
+ {
+ subtractive_blend
+ }{
+ additive_blend
+ }ifelse
+ ]cvx bdf
+ }if
+ AGMCORE_host_sep{
+ Names convert_to_process{
+ exec_tint_transform
+ }
+ {
+ currentdict/AliasedColorants known{
+ AliasedColorants not
+ }{
+ false
+ }ifelse
+ 5 dict begin
+ /AvoidAliasedColorants xdf
+ /painted? false def
+ /names_index 0 def
+ /names_len Names length def
+ AvoidAliasedColorants{
+ /currentspotalias current_spot_alias def
+ false set_spot_alias
+ }if
+ Names{
+ AGMCORE_is_cmyk_sep{
+ dup(Cyan)eq AGMCORE_cyan_plate and exch
+ dup(Magenta)eq AGMCORE_magenta_plate and exch
+ dup(Yellow)eq AGMCORE_yellow_plate and exch
+ (Black)eq AGMCORE_black_plate and or or or{
+ /devicen_colorspace_dict AGMCORE_gget/TintProc[
+ Names names_index/devn_makecustomcolor cvx
+ ]cvx ddf
+ /painted? true def
+ }if
+ painted?{exit}if
+ }{
+ 0 0 0 0 5 -1 roll findcmykcustomcolor 1 setcustomcolor currentgray 0 eq{
+ /devicen_colorspace_dict AGMCORE_gget/TintProc[
+ Names names_index/devn_makecustomcolor cvx
+ ]cvx ddf
+ /painted? true def
+ exit
+ }if
+ }ifelse
+ /names_index names_index 1 add def
+ }forall
+ AvoidAliasedColorants{
+ currentspotalias set_spot_alias
+ }if
+ painted?{
+ /devicen_colorspace_dict AGMCORE_gget/names_index names_index put
+ }{
+ /devicen_colorspace_dict AGMCORE_gget/TintProc[
+ names_len[/pop cvx]cvx/repeat cvx 1/setseparationgray cvx
+ 0 0 0 0/setcmykcolor cvx
+ ]cvx ddf
+ }ifelse
+ end
+ }ifelse
+ }
+ {
+ AGMCORE_in_rip_sep{
+ Names convert_to_process not
+ }{
+ level3
+ }ifelse
+ {
+ [/DeviceN Names MappedCSA/TintTransform load]setcolorspace_opt
+ /TintProc level3 not AGMCORE_in_rip_sep and{
+ [
+ Names/length cvx[/pop cvx]cvx/repeat cvx
+ ]cvx bdf
+ }{
+ {setcolor}bdf
+ }ifelse
+ }{
+ exec_tint_transform
+ }ifelse
+ }ifelse
+ set_crd
+ /AliasedColorants false def
+ end
+}def
+/setindexedcolorspace
+{
+ dup/indexed_colorspace_dict exch AGMCORE_gput
+ begin
+ currentdict/CSDBase known{
+ CSDBase/CSD get_res begin
+ currentdict/Names known{
+ currentdict devncs
+ }{
+ 1 currentdict sepcs
+ }ifelse
+ AGMCORE_host_sep{
+ 4 dict begin
+ /compCnt/Names where{pop Names length}{1}ifelse def
+ /NewLookup HiVal 1 add string def
+ 0 1 HiVal{
+ /tableIndex xdf
+ Lookup dup type/stringtype eq{
+ compCnt tableIndex map_index
+ }{
+ exec
+ }ifelse
+ /Names where{
+ pop setdevicencolor
+ }{
+ setsepcolor
+ }ifelse
+ currentgray
+ tableIndex exch
+ 255 mul cvi
+ NewLookup 3 1 roll put
+ }for
+ [/Indexed currentcolorspace HiVal NewLookup]setcolorspace_opt
+ end
+ }{
+ level3
+ {
+ currentdict/Names known{
+ [/Indexed[/DeviceN Names MappedCSA/TintTransform load]HiVal Lookup]setcolorspace_opt
+ }{
+ [/Indexed[/Separation Name MappedCSA sep_proc_name load]HiVal Lookup]setcolorspace_opt
+ }ifelse
+ }{
+ [/Indexed MappedCSA HiVal
+ [
+ currentdict/Names known{
+ Lookup dup type/stringtype eq
+ {/exch cvx CSDBase/CSD get_res/Names get length dup/mul cvx exch/getinterval cvx{255 div}/forall cvx}
+ {/exec cvx}ifelse
+ /TintTransform load/exec cvx
+ }{
+ Lookup dup type/stringtype eq
+ {/exch cvx/get cvx 255/div cvx}
+ {/exec cvx}ifelse
+ CSDBase/CSD get_res/MappedCSA get sep_proc_name exch pop/load cvx/exec cvx
+ }ifelse
+ ]cvx
+ ]setcolorspace_opt
+ }ifelse
+ }ifelse
+ end
+ set_crd
+ }
+ {
+ CSA map_csa
+ AGMCORE_host_sep level2 not and{
+ 0 0 0 0 setcmykcolor
+ }{
+ [/Indexed MappedCSA
+ level2 not has_color not and{
+ dup 0 get dup/DeviceRGB eq exch/DeviceCMYK eq or{
+ pop[/DeviceGray]
+ }if
+ HiVal GrayLookup
+ }{
+ HiVal
+ currentdict/RangeArray known{
+ {
+ /indexed_colorspace_dict AGMCORE_gget begin
+ Lookup exch
+ dup HiVal gt{
+ pop HiVal
+ }if
+ NComponents mul NComponents getinterval{}forall
+ NComponents 1 sub -1 0{
+ RangeArray exch 2 mul 2 getinterval aload pop map255_to_range
+ NComponents 1 roll
+ }for
+ end
+ }bind
+ }{
+ Lookup
+ }ifelse
+ }ifelse
+ ]setcolorspace_opt
+ set_crd
+ }ifelse
+ }ifelse
+ end
+}def
+/setindexedcolor
+{
+ AGMCORE_host_sep{
+ /indexed_colorspace_dict AGMCORE_gget
+ begin
+ currentdict/CSDBase known{
+ CSDBase/CSD get_res begin
+ currentdict/Names known{
+ map_indexed_devn
+ devn
+ }
+ {
+ Lookup 1 3 -1 roll map_index
+ sep
+ }ifelse
+ end
+ }{
+ Lookup MappedCSA/DeviceCMYK eq{4}{1}ifelse 3 -1 roll
+ map_index
+ MappedCSA/DeviceCMYK eq{setcmykcolor}{setgray}ifelse
+ }ifelse
+ end
+ }{
+ level3 not AGMCORE_in_rip_sep and/indexed_colorspace_dict AGMCORE_gget/CSDBase known and{
+ /indexed_colorspace_dict AGMCORE_gget/CSDBase get/CSD get_res begin
+ map_indexed_devn
+ devn
+ end
+ }
+ {
+ setcolor
+ }ifelse
+ }ifelse
+}def
+/ignoreimagedata
+{
+ currentoverprint not{
+ gsave
+ dup clonedict begin
+ 1 setgray
+ /Decode[0 1]def
+ /DataSource<FF>def
+ /MultipleDataSources false def
+ /BitsPerComponent 8 def
+ currentdict end
+ systemdict/image gx
+ grestore
+ }if
+ consumeimagedata
+}def
+/add_res
+{
+ dup/CSD eq{
+ pop
+ //Adobe_AGM_Core begin
+ /AGMCORE_CSD_cache load 3 1 roll put
+ end
+ }{
+ defineresource pop
+ }ifelse
+}def
+/del_res
+{
+ {
+ aload pop exch
+ dup/CSD eq{
+ pop
+ {//Adobe_AGM_Core/AGMCORE_CSD_cache get exch undef}forall
+ }{
+ exch
+ {1 index undefineresource}forall
+ pop
+ }ifelse
+ }forall
+}def
+/get_res
+{
+ dup/CSD eq{
+ pop
+ dup type dup/nametype eq exch/stringtype eq or{
+ AGMCORE_CSD_cache exch get
+ }if
+ }{
+ findresource
+ }ifelse
+}def
+/get_csa_by_name
+{
+ dup type dup/nametype eq exch/stringtype eq or{
+ /CSA get_res
+ }if
+}def
+/paintproc_buf_init
+{
+ /count get 0 0 put
+}def
+/paintproc_buf_next
+{
+ dup/count get dup 0 get
+ dup 3 1 roll
+ 1 add 0 xpt
+ get
+}def
+/cachepaintproc_compress
+{
+ 5 dict begin
+ currentfile exch 0 exch/SubFileDecode filter/ReadFilter exch def
+ /ppdict 20 dict def
+ /string_size 16000 def
+ /readbuffer string_size string def
+ currentglobal true setglobal
+ ppdict 1 array dup 0 1 put/count xpt
+ setglobal
+ /LZWFilter
+ {
+ exch
+ dup length 0 eq{
+ pop
+ }{
+ ppdict dup length 1 sub 3 -1 roll put
+ }ifelse
+ {string_size}{0}ifelse string
+ }/LZWEncode filter def
+ {
+ ReadFilter readbuffer readstring
+ exch LZWFilter exch writestring
+ not{exit}if
+ }loop
+ LZWFilter closefile
+ ppdict
+ end
+}def
+/cachepaintproc
+{
+ 2 dict begin
+ currentfile exch 0 exch/SubFileDecode filter/ReadFilter exch def
+ /ppdict 20 dict def
+ currentglobal true setglobal
+ ppdict 1 array dup 0 1 put/count xpt
+ setglobal
+ {
+ ReadFilter 16000 string readstring exch
+ ppdict dup length 1 sub 3 -1 roll put
+ not{exit}if
+ }loop
+ ppdict dup dup length 1 sub()put
+ end
+}def
+/make_pattern
+{
+ exch clonedict exch
+ dup matrix currentmatrix matrix concatmatrix 0 0 3 2 roll itransform
+ exch 3 index/XStep get 1 index exch 2 copy div cvi mul sub sub
+ exch 3 index/YStep get 1 index exch 2 copy div cvi mul sub sub
+ matrix translate exch matrix concatmatrix
+ 1 index begin
+ BBox 0 get XStep div cvi XStep mul/xshift exch neg def
+ BBox 1 get YStep div cvi YStep mul/yshift exch neg def
+ BBox 0 get xshift add
+ BBox 1 get yshift add
+ BBox 2 get xshift add
+ BBox 3 get yshift add
+ 4 array astore
+ /BBox exch def
+ [xshift yshift/translate load null/exec load]dup
+ 3/PaintProc load put cvx/PaintProc exch def
+ end
+ gsave 0 setgray
+ makepattern
+ grestore
+}def
+/set_pattern
+{
+ dup/PatternType get 1 eq{
+ dup/PaintType get 1 eq{
+ currentoverprint sop[/DeviceGray]setcolorspace 0 setgray
+ }if
+ }if
+ setpattern
+}def
+/setcolorspace_opt
+{
+ dup currentcolorspace eq{pop}{setcolorspace}ifelse
+}def
+/updatecolorrendering
+{
+ currentcolorrendering/RenderingIntent known{
+ currentcolorrendering/RenderingIntent get
+ }
+ {
+ Intent/AbsoluteColorimetric eq
+ {
+ /absolute_colorimetric_crd AGMCORE_gget dup null eq
+ }
+ {
+ Intent/RelativeColorimetric eq
+ {
+ /relative_colorimetric_crd AGMCORE_gget dup null eq
+ }
+ {
+ Intent/Saturation eq
+ {
+ /saturation_crd AGMCORE_gget dup null eq
+ }
+ {
+ /perceptual_crd AGMCORE_gget dup null eq
+ }ifelse
+ }ifelse
+ }ifelse
+ {
+ pop null
+ }
+ {
+ /RenderingIntent known{null}{Intent}ifelse
+ }ifelse
+ }ifelse
+ Intent ne{
+ Intent/ColorRendering{findresource}stopped
+ {
+ pop pop systemdict/findcolorrendering known
+ {
+ Intent findcolorrendering
+ {
+ /ColorRendering findresource true exch
+ }
+ {
+ /ColorRendering findresource
+ product(Xerox Phaser 5400)ne
+ exch
+ }ifelse
+ dup Intent/AbsoluteColorimetric eq
+ {
+ /absolute_colorimetric_crd exch AGMCORE_gput
+ }
+ {
+ Intent/RelativeColorimetric eq
+ {
+ /relative_colorimetric_crd exch AGMCORE_gput
+ }
+ {
+ Intent/Saturation eq
+ {
+ /saturation_crd exch AGMCORE_gput
+ }
+ {
+ Intent/Perceptual eq
+ {
+ /perceptual_crd exch AGMCORE_gput
+ }
+ {
+ pop
+ }ifelse
+ }ifelse
+ }ifelse
+ }ifelse
+ 1 index{exch}{pop}ifelse
+ }
+ {false}ifelse
+ }
+ {true}ifelse
+ {
+ dup begin
+ currentdict/TransformPQR known{
+ currentdict/TransformPQR get aload pop
+ 3{{}eq 3 1 roll}repeat or or
+ }
+ {true}ifelse
+ currentdict/MatrixPQR known{
+ currentdict/MatrixPQR get aload pop
+ 1.0 eq 9 1 roll 0.0 eq 9 1 roll 0.0 eq 9 1 roll
+ 0.0 eq 9 1 roll 1.0 eq 9 1 roll 0.0 eq 9 1 roll
+ 0.0 eq 9 1 roll 0.0 eq 9 1 roll 1.0 eq
+ and and and and and and and and
+ }
+ {true}ifelse
+ end
+ or
+ {
+ clonedict begin
+ /TransformPQR[
+ {4 -1 roll 3 get dup 3 1 roll sub 5 -1 roll 3 get 3 -1 roll sub div
+ 3 -1 roll 3 get 3 -1 roll 3 get dup 4 1 roll sub mul add}bind
+ {4 -1 roll 4 get dup 3 1 roll sub 5 -1 roll 4 get 3 -1 roll sub div
+ 3 -1 roll 4 get 3 -1 roll 4 get dup 4 1 roll sub mul add}bind
+ {4 -1 roll 5 get dup 3 1 roll sub 5 -1 roll 5 get 3 -1 roll sub div
+ 3 -1 roll 5 get 3 -1 roll 5 get dup 4 1 roll sub mul add}bind
+ ]def
+ /MatrixPQR[0.8951 -0.7502 0.0389 0.2664 1.7135 -0.0685 -0.1614 0.0367 1.0296]def
+ /RangePQR[-0.3227950745 2.3229645538 -1.5003771057 3.5003465881 -0.1369979095 2.136967392]def
+ currentdict end
+ }if
+ setcolorrendering_opt
+ }if
+ }if
+}def
+/set_crd
+{
+ AGMCORE_host_sep not level2 and{
+ currentdict/ColorRendering known{
+ ColorRendering/ColorRendering{findresource}stopped not{setcolorrendering_opt}if
+ }{
+ currentdict/Intent known{
+ updatecolorrendering
+ }if
+ }ifelse
+ currentcolorspace dup type/arraytype eq
+ {0 get}if
+ /DeviceRGB eq
+ {
+ currentdict/UCR known
+ {/UCR}{/AGMCORE_currentucr}ifelse
+ load setundercolorremoval
+ currentdict/BG known
+ {/BG}{/AGMCORE_currentbg}ifelse
+ load setblackgeneration
+ }if
+ }if
+}def
+/set_ucrbg
+{
+ dup null eq {pop /AGMCORE_currentbg load}{/Procedure get_res}ifelse
+ dup currentblackgeneration eq {pop}{setblackgeneration}ifelse
+ dup null eq {pop /AGMCORE_currentucr load}{/Procedure get_res}ifelse
+ dup currentundercolorremoval eq {pop}{setundercolorremoval}ifelse
+}def
+/setcolorrendering_opt
+{
+ dup currentcolorrendering eq{
+ pop
+ }{
+ product(HP Color LaserJet 2605)anchorsearch{
+ pop pop pop
+ }{
+ pop
+ clonedict
+ begin
+ /Intent Intent def
+ currentdict
+ end
+ setcolorrendering
+ }ifelse
+ }ifelse
+}def
+/cpaint_gcomp
+{
+ convert_to_process//Adobe_AGM_Core/AGMCORE_ConvertToProcess xddf
+ //Adobe_AGM_Core/AGMCORE_ConvertToProcess get not
+ {
+ (%end_cpaint_gcomp)flushinput
+ }if
+}def
+/cpaint_gsep
+{
+ //Adobe_AGM_Core/AGMCORE_ConvertToProcess get
+ {
+ (%end_cpaint_gsep)flushinput
+ }if
+}def
+/cpaint_gend
+{np}def
+/T1_path
+{
+ currentfile token pop currentfile token pop mo
+ {
+ currentfile token pop dup type/stringtype eq
+ {pop exit}if
+ 0 exch rlineto
+ currentfile token pop dup type/stringtype eq
+ {pop exit}if
+ 0 rlineto
+ }loop
+}def
+/T1_gsave
+ level3
+ {/clipsave}
+ {/gsave}ifelse
+ load def
+/T1_grestore
+ level3
+ {/cliprestore}
+ {/grestore}ifelse
+ load def
+/set_spot_alias_ary
+{
+ dup inherit_aliases
+ //Adobe_AGM_Core/AGMCORE_SpotAliasAry xddf
+}def
+/set_spot_normalization_ary
+{
+ dup inherit_aliases
+ dup length
+ /AGMCORE_SpotAliasAry where{pop AGMCORE_SpotAliasAry length add}if
+ array
+ //Adobe_AGM_Core/AGMCORE_SpotAliasAry2 xddf
+ /AGMCORE_SpotAliasAry where{
+ pop
+ AGMCORE_SpotAliasAry2 0 AGMCORE_SpotAliasAry putinterval
+ AGMCORE_SpotAliasAry length
+ }{0}ifelse
+ AGMCORE_SpotAliasAry2 3 1 roll exch putinterval
+ true set_spot_alias
+}def
+/inherit_aliases
+{
+ {dup/Name get map_alias{/CSD put}{pop}ifelse}forall
+}def
+/set_spot_alias
+{
+ /AGMCORE_SpotAliasAry2 where{
+ /AGMCORE_current_spot_alias 3 -1 roll put
+ }{
+ pop
+ }ifelse
+}def
+/current_spot_alias
+{
+ /AGMCORE_SpotAliasAry2 where{
+ /AGMCORE_current_spot_alias get
+ }{
+ false
+ }ifelse
+}def
+/map_alias
+{
+ /AGMCORE_SpotAliasAry2 where{
+ begin
+ /AGMCORE_name xdf
+ false
+ AGMCORE_SpotAliasAry2{
+ dup/Name get AGMCORE_name eq{
+ /CSD get/CSD get_res
+ exch pop true
+ exit
+ }{
+ pop
+ }ifelse
+ }forall
+ end
+ }{
+ pop false
+ }ifelse
+}bdf
+/spot_alias
+{
+ true set_spot_alias
+ /AGMCORE_&setcustomcolor AGMCORE_key_known not{
+ //Adobe_AGM_Core/AGMCORE_&setcustomcolor/setcustomcolor load put
+ }if
+ /customcolor_tint 1 AGMCORE_gput
+ //Adobe_AGM_Core begin
+ /setcustomcolor
+ {
+ //Adobe_AGM_Core begin
+ dup/customcolor_tint exch AGMCORE_gput
+ 1 index aload pop pop 1 eq exch 1 eq and exch 1 eq and exch 1 eq and not
+ current_spot_alias and{1 index 4 get map_alias}{false}ifelse
+ {
+ false set_spot_alias
+ /sep_colorspace_dict AGMCORE_gget null ne
+ {/sep_colorspace_dict AGMCORE_gget/ForeignContent known not}{false}ifelse
+ 3 1 roll 2 index{
+ exch pop/sep_tint AGMCORE_gget exch
+ }if
+ mark 3 1 roll
+ setsepcolorspace
+ counttomark 0 ne{
+ setsepcolor
+ }if
+ pop
+ not{/sep_tint 1.0 AGMCORE_gput/sep_colorspace_dict AGMCORE_gget/ForeignContent true put}if
+ pop
+ true set_spot_alias
+ }{
+ AGMCORE_&setcustomcolor
+ }ifelse
+ end
+ }bdf
+ end
+}def
+/begin_feature
+{
+ Adobe_AGM_Core/AGMCORE_feature_dictCount countdictstack put
+ count Adobe_AGM_Core/AGMCORE_feature_opCount 3 -1 roll put
+ {Adobe_AGM_Core/AGMCORE_feature_ctm matrix currentmatrix put}if
+}def
+/end_feature
+{
+ 2 dict begin
+ /spd/setpagedevice load def
+ /setpagedevice{get_gstate spd set_gstate}def
+ stopped{$error/newerror false put}if
+ end
+ count Adobe_AGM_Core/AGMCORE_feature_opCount get sub dup 0 gt{{pop}repeat}{pop}ifelse
+ countdictstack Adobe_AGM_Core/AGMCORE_feature_dictCount get sub dup 0 gt{{end}repeat}{pop}ifelse
+ {Adobe_AGM_Core/AGMCORE_feature_ctm get setmatrix}if
+}def
+/set_negative
+{
+ //Adobe_AGM_Core begin
+ /AGMCORE_inverting exch def
+ level2{
+ currentpagedevice/NegativePrint known AGMCORE_distilling not and{
+ currentpagedevice/NegativePrint get//Adobe_AGM_Core/AGMCORE_inverting get ne{
+ true begin_feature true{
+ <</NegativePrint//Adobe_AGM_Core/AGMCORE_inverting get>>setpagedevice
+ }end_feature
+ }if
+ /AGMCORE_inverting false def
+ }if
+ }if
+ AGMCORE_inverting{
+ [{1 exch sub}/exec load dup currenttransfer exch]cvx bind settransfer
+ AGMCORE_distilling{
+ erasepage
+ }{
+ gsave np clippath 1/setseparationgray where{pop setseparationgray}{setgray}ifelse
+ /AGMIRS_&fill where{pop AGMIRS_&fill}{fill}ifelse grestore
+ }ifelse
+ }if
+ end
+}def
+/lw_save_restore_override{
+ /md where{
+ pop
+ md begin
+ initializepage
+ /initializepage{}def
+ /pmSVsetup{}def
+ /endp{}def
+ /pse{}def
+ /psb{}def
+ /orig_showpage where
+ {pop}
+ {/orig_showpage/showpage load def}
+ ifelse
+ /showpage{orig_showpage gR}def
+ end
+ }if
+}def
+/pscript_showpage_override{
+ /NTPSOct95 where
+ {
+ begin
+ showpage
+ save
+ /showpage/restore load def
+ /restore{exch pop}def
+ end
+ }if
+}def
+/driver_media_override
+{
+ /md where{
+ pop
+ md/initializepage known{
+ md/initializepage{}put
+ }if
+ md/rC known{
+ md/rC{4{pop}repeat}put
+ }if
+ }if
+ /mysetup where{
+ /mysetup[1 0 0 1 0 0]put
+ }if
+ Adobe_AGM_Core/AGMCORE_Default_CTM matrix currentmatrix put
+ level2
+ {Adobe_AGM_Core/AGMCORE_Default_PageSize currentpagedevice/PageSize get put}if
+}def
+/capture_mysetup
+{
+ /Pscript_Win_Data where{
+ pop
+ Pscript_Win_Data/mysetup known{
+ Adobe_AGM_Core/save_mysetup Pscript_Win_Data/mysetup get put
+ }if
+ }if
+}def
+/restore_mysetup
+{
+ /Pscript_Win_Data where{
+ pop
+ Pscript_Win_Data/mysetup known{
+ Adobe_AGM_Core/save_mysetup known{
+ Pscript_Win_Data/mysetup Adobe_AGM_Core/save_mysetup get put
+ Adobe_AGM_Core/save_mysetup undef
+ }if
+ }if
+ }if
+}def
+/driver_check_media_override
+{
+ /PrepsDict where
+ {pop}
+ {
+ Adobe_AGM_Core/AGMCORE_Default_CTM get matrix currentmatrix ne
+ Adobe_AGM_Core/AGMCORE_Default_PageSize get type/arraytype eq
+ {
+ Adobe_AGM_Core/AGMCORE_Default_PageSize get 0 get currentpagedevice/PageSize get 0 get eq and
+ Adobe_AGM_Core/AGMCORE_Default_PageSize get 1 get currentpagedevice/PageSize get 1 get eq and
+ }if
+ {
+ Adobe_AGM_Core/AGMCORE_Default_CTM get setmatrix
+ }if
+ }ifelse
+}def
+AGMCORE_err_strings begin
+ /AGMCORE_bad_environ(Environment not satisfactory for this job. Ensure that the PPD is correct or that the PostScript level requested is supported by this printer. )def
+ /AGMCORE_color_space_onhost_seps(This job contains colors that will not separate with on-host methods. )def
+ /AGMCORE_invalid_color_space(This job contains an invalid color space. )def
+end
+/set_def_ht
+{AGMCORE_def_ht sethalftone}def
+/set_def_flat
+{AGMCORE_Default_flatness setflat}def
+end
+systemdict/setpacking known
+{setpacking}if
+%%EndResource
+%%BeginResource: procset Adobe_CoolType_Core 2.31 0
+%%Copyright: Copyright 1997-2006 Adobe Systems Incorporated. All Rights Reserved.
+%%Version: 2.31 0
+10 dict begin
+/Adobe_CoolType_Passthru currentdict def
+/Adobe_CoolType_Core_Defined userdict/Adobe_CoolType_Core known def
+Adobe_CoolType_Core_Defined
+ {/Adobe_CoolType_Core userdict/Adobe_CoolType_Core get def}
+if
+userdict/Adobe_CoolType_Core 70 dict dup begin put
+/Adobe_CoolType_Version 2.31 def
+/Level2?
+ systemdict/languagelevel known dup
+ {pop systemdict/languagelevel get 2 ge}
+ if def
+Level2? not
+ {
+ /currentglobal false def
+ /setglobal/pop load def
+ /gcheck{pop false}bind def
+ /currentpacking false def
+ /setpacking/pop load def
+ /SharedFontDirectory 0 dict def
+ }
+if
+currentpacking
+true setpacking
+currentglobal false setglobal
+userdict/Adobe_CoolType_Data 2 copy known not
+ {2 copy 10 dict put}
+if
+get
+ begin
+ /@opStackCountByLevel 32 dict def
+ /@opStackLevel 0 def
+ /@dictStackCountByLevel 32 dict def
+ /@dictStackLevel 0 def
+ end
+setglobal
+currentglobal true setglobal
+userdict/Adobe_CoolType_GVMFonts known not
+ {userdict/Adobe_CoolType_GVMFonts 10 dict put}
+if
+setglobal
+currentglobal false setglobal
+userdict/Adobe_CoolType_LVMFonts known not
+ {userdict/Adobe_CoolType_LVMFonts 10 dict put}
+if
+setglobal
+/ct_VMDictPut
+ {
+ dup gcheck{Adobe_CoolType_GVMFonts}{Adobe_CoolType_LVMFonts}ifelse
+ 3 1 roll put
+ }bind def
+/ct_VMDictUndef
+ {
+ dup Adobe_CoolType_GVMFonts exch known
+ {Adobe_CoolType_GVMFonts exch undef}
+ {
+ dup Adobe_CoolType_LVMFonts exch known
+ {Adobe_CoolType_LVMFonts exch undef}
+ {pop}
+ ifelse
+ }ifelse
+ }bind def
+/ct_str1 1 string def
+/ct_xshow
+{
+ /_ct_na exch def
+ /_ct_i 0 def
+ currentpoint
+ /_ct_y exch def
+ /_ct_x exch def
+ {
+ pop pop
+ ct_str1 exch 0 exch put
+ ct_str1 show
+ {_ct_na _ct_i get}stopped
+ {pop pop}
+ {
+ _ct_x _ct_y moveto
+ 0
+ rmoveto
+ }
+ ifelse
+ /_ct_i _ct_i 1 add def
+ currentpoint
+ /_ct_y exch def
+ /_ct_x exch def
+ }
+ exch
+ @cshow
+}bind def
+/ct_yshow
+{
+ /_ct_na exch def
+ /_ct_i 0 def
+ currentpoint
+ /_ct_y exch def
+ /_ct_x exch def
+ {
+ pop pop
+ ct_str1 exch 0 exch put
+ ct_str1 show
+ {_ct_na _ct_i get}stopped
+ {pop pop}
+ {
+ _ct_x _ct_y moveto
+ 0 exch
+ rmoveto
+ }
+ ifelse
+ /_ct_i _ct_i 1 add def
+ currentpoint
+ /_ct_y exch def
+ /_ct_x exch def
+ }
+ exch
+ @cshow
+}bind def
+/ct_xyshow
+{
+ /_ct_na exch def
+ /_ct_i 0 def
+ currentpoint
+ /_ct_y exch def
+ /_ct_x exch def
+ {
+ pop pop
+ ct_str1 exch 0 exch put
+ ct_str1 show
+ {_ct_na _ct_i get}stopped
+ {pop pop}
+ {
+ {_ct_na _ct_i 1 add get}stopped
+ {pop pop pop}
+ {
+ _ct_x _ct_y moveto
+ rmoveto
+ }
+ ifelse
+ }
+ ifelse
+ /_ct_i _ct_i 2 add def
+ currentpoint
+ /_ct_y exch def
+ /_ct_x exch def
+ }
+ exch
+ @cshow
+}bind def
+/xsh{{@xshow}stopped{Adobe_CoolType_Data begin ct_xshow end}if}bind def
+/ysh{{@yshow}stopped{Adobe_CoolType_Data begin ct_yshow end}if}bind def
+/xysh{{@xyshow}stopped{Adobe_CoolType_Data begin ct_xyshow end}if}bind def
+currentglobal true setglobal
+/ct_T3Defs
+{
+/BuildChar
+{
+ 1 index/Encoding get exch get
+ 1 index/BuildGlyph get exec
+}bind def
+/BuildGlyph
+{
+ exch begin
+ GlyphProcs exch get exec
+ end
+}bind def
+}bind def
+setglobal
+/@_SaveStackLevels
+ {
+ Adobe_CoolType_Data
+ begin
+ /@vmState currentglobal def false setglobal
+ @opStackCountByLevel
+ @opStackLevel
+ 2 copy known not
+ {
+ 2 copy
+ 3 dict dup/args
+ 7 index
+ 5 add array put
+ put get
+ }
+ {
+ get dup/args get dup length 3 index lt
+ {
+ dup length 5 add array exch
+ 1 index exch 0 exch putinterval
+ 1 index exch/args exch put
+ }
+ {pop}
+ ifelse
+ }
+ ifelse
+ begin
+ count 1 sub
+ 1 index lt
+ {pop count}
+ if
+ dup/argCount exch def
+ dup 0 gt
+ {
+ args exch 0 exch getinterval
+ astore pop
+ }
+ {pop}
+ ifelse
+ count
+ /restCount exch def
+ end
+ /@opStackLevel @opStackLevel 1 add def
+ countdictstack 1 sub
+ @dictStackCountByLevel exch @dictStackLevel exch put
+ /@dictStackLevel @dictStackLevel 1 add def
+ @vmState setglobal
+ end
+ }bind def
+/@_RestoreStackLevels
+ {
+ Adobe_CoolType_Data
+ begin
+ /@opStackLevel @opStackLevel 1 sub def
+ @opStackCountByLevel @opStackLevel get
+ begin
+ count restCount sub dup 0 gt
+ {{pop}repeat}
+ {pop}
+ ifelse
+ args 0 argCount getinterval{}forall
+ end
+ /@dictStackLevel @dictStackLevel 1 sub def
+ @dictStackCountByLevel @dictStackLevel get
+ end
+ countdictstack exch sub dup 0 gt
+ {{end}repeat}
+ {pop}
+ ifelse
+ }bind def
+/@_PopStackLevels
+ {
+ Adobe_CoolType_Data
+ begin
+ /@opStackLevel @opStackLevel 1 sub def
+ /@dictStackLevel @dictStackLevel 1 sub def
+ end
+ }bind def
+/@Raise
+ {
+ exch cvx exch errordict exch get exec
+ stop
+ }bind def
+/@ReRaise
+ {
+ cvx $error/errorname get errordict exch get exec
+ stop
+ }bind def
+/@Stopped
+ {
+ 0 @#Stopped
+ }bind def
+/@#Stopped
+ {
+ @_SaveStackLevels
+ stopped
+ {@_RestoreStackLevels true}
+ {@_PopStackLevels false}
+ ifelse
+ }bind def
+/@Arg
+ {
+ Adobe_CoolType_Data
+ begin
+ @opStackCountByLevel @opStackLevel 1 sub get
+ begin
+ args exch
+ argCount 1 sub exch sub get
+ end
+ end
+ }bind def
+currentglobal true setglobal
+/CTHasResourceForAllBug
+ Level2?
+ {
+ 1 dict dup
+ /@shouldNotDisappearDictValue true def
+ Adobe_CoolType_Data exch/@shouldNotDisappearDict exch put
+ begin
+ count @_SaveStackLevels
+ {(*){pop stop}128 string/Category resourceforall}
+ stopped pop
+ @_RestoreStackLevels
+ currentdict Adobe_CoolType_Data/@shouldNotDisappearDict get dup 3 1 roll ne dup 3 1 roll
+ {
+ /@shouldNotDisappearDictValue known
+ {
+ {
+ end
+ currentdict 1 index eq
+ {pop exit}
+ if
+ }
+ loop
+ }
+ if
+ }
+ {
+ pop
+ end
+ }
+ ifelse
+ }
+ {false}
+ ifelse
+ def
+true setglobal
+/CTHasResourceStatusBug
+ Level2?
+ {
+ mark
+ {/steveamerige/Category resourcestatus}
+ stopped
+ {cleartomark true}
+ {cleartomark currentglobal not}
+ ifelse
+ }
+ {false}
+ ifelse
+ def
+setglobal
+/CTResourceStatus
+ {
+ mark 3 1 roll
+ /Category findresource
+ begin
+ ({ResourceStatus}stopped)0()/SubFileDecode filter cvx exec
+ {cleartomark false}
+ {{3 2 roll pop true}{cleartomark false}ifelse}
+ ifelse
+ end
+ }bind def
+/CTWorkAroundBugs
+ {
+ Level2?
+ {
+ /cid_PreLoad/ProcSet resourcestatus
+ {
+ pop pop
+ currentglobal
+ mark
+ {
+ (*)
+ {
+ dup/CMap CTHasResourceStatusBug
+ {CTResourceStatus}
+ {resourcestatus}
+ ifelse
+ {
+ pop dup 0 eq exch 1 eq or
+ {
+ dup/CMap findresource gcheck setglobal
+ /CMap undefineresource
+ }
+ {
+ pop CTHasResourceForAllBug
+ {exit}
+ {stop}
+ ifelse
+ }
+ ifelse
+ }
+ {pop}
+ ifelse
+ }
+ 128 string/CMap resourceforall
+ }
+ stopped
+ {cleartomark}
+ stopped pop
+ setglobal
+ }
+ if
+ }
+ if
+ }bind def
+/ds
+ {
+ Adobe_CoolType_Core
+ begin
+ CTWorkAroundBugs
+ /mo/moveto load def
+ /nf/newencodedfont load def
+ /msf{makefont setfont}bind def
+ /uf{dup undefinefont ct_VMDictUndef}bind def
+ /ur/undefineresource load def
+ /chp/charpath load def
+ /awsh/awidthshow load def
+ /wsh/widthshow load def
+ /ash/ashow load def
+ /@xshow/xshow load def
+ /@yshow/yshow load def
+ /@xyshow/xyshow load def
+ /@cshow/cshow load def
+ /sh/show load def
+ /rp/repeat load def
+ /.n/.notdef def
+ end
+ currentglobal false setglobal
+ userdict/Adobe_CoolType_Data 2 copy known not
+ {2 copy 10 dict put}
+ if
+ get
+ begin
+ /AddWidths? false def
+ /CC 0 def
+ /charcode 2 string def
+ /@opStackCountByLevel 32 dict def
+ /@opStackLevel 0 def
+ /@dictStackCountByLevel 32 dict def
+ /@dictStackLevel 0 def
+ /InVMFontsByCMap 10 dict def
+ /InVMDeepCopiedFonts 10 dict def
+ end
+ setglobal
+ }bind def
+/dt
+ {
+ currentdict Adobe_CoolType_Core eq
+ {end}
+ if
+ }bind def
+/ps
+ {
+ Adobe_CoolType_Core begin
+ Adobe_CoolType_GVMFonts begin
+ Adobe_CoolType_LVMFonts begin
+ SharedFontDirectory begin
+ }bind def
+/pt
+ {
+ end
+ end
+ end
+ end
+ }bind def
+/unload
+ {
+ systemdict/languagelevel known
+ {
+ systemdict/languagelevel get 2 ge
+ {
+ userdict/Adobe_CoolType_Core 2 copy known
+ {undef}
+ {pop pop}
+ ifelse
+ }
+ if
+ }
+ if
+ }bind def
+/ndf
+ {
+ 1 index where
+ {pop pop pop}
+ {dup xcheck{bind}if def}
+ ifelse
+ }def
+/findfont systemdict
+ begin
+ userdict
+ begin
+ /globaldict where{/globaldict get begin}if
+ dup where pop exch get
+ /globaldict where{pop end}if
+ end
+ end
+Adobe_CoolType_Core_Defined
+ {/systemfindfont exch def}
+ {
+ /findfont 1 index def
+ /systemfindfont exch def
+ }
+ifelse
+/undefinefont
+ {pop}ndf
+/copyfont
+ {
+ currentglobal 3 1 roll
+ 1 index gcheck setglobal
+ dup null eq{0}{dup length}ifelse
+ 2 index length add 1 add dict
+ begin
+ exch
+ {
+ 1 index/FID eq
+ {pop pop}
+ {def}
+ ifelse
+ }
+ forall
+ dup null eq
+ {pop}
+ {{def}forall}
+ ifelse
+ currentdict
+ end
+ exch setglobal
+ }bind def
+/copyarray
+ {
+ currentglobal exch
+ dup gcheck setglobal
+ dup length array copy
+ exch setglobal
+ }bind def
+/newencodedfont
+ {
+ currentglobal
+ {
+ SharedFontDirectory 3 index known
+ {SharedFontDirectory 3 index get/FontReferenced known}
+ {false}
+ ifelse
+ }
+ {
+ FontDirectory 3 index known
+ {FontDirectory 3 index get/FontReferenced known}
+ {
+ SharedFontDirectory 3 index known
+ {SharedFontDirectory 3 index get/FontReferenced known}
+ {false}
+ ifelse
+ }
+ ifelse
+ }
+ ifelse
+ dup
+ {
+ 3 index findfont/FontReferenced get
+ 2 index dup type/nametype eq
+ {findfont}
+ if ne
+ {pop false}
+ if
+ }
+ if
+ dup
+ {
+ 1 index dup type/nametype eq
+ {findfont}
+ if
+ dup/CharStrings known
+ {
+ /CharStrings get length
+ 4 index findfont/CharStrings get length
+ ne
+ {
+ pop false
+ }
+ if
+ }
+ {pop}
+ ifelse
+ }
+ if
+ {
+ pop
+ 1 index findfont
+ /Encoding get exch
+ 0 1 255
+ {2 copy get 3 index 3 1 roll put}
+ for
+ pop pop pop
+ }
+ {
+ currentglobal
+ 4 1 roll
+ dup type/nametype eq
+ {findfont}
+ if
+ dup gcheck setglobal
+ dup dup maxlength 2 add dict
+ begin
+ exch
+ {
+ 1 index/FID ne
+ 2 index/Encoding ne and
+ {def}
+ {pop pop}
+ ifelse
+ }
+ forall
+ /FontReferenced exch def
+ /Encoding exch dup length array copy def
+ /FontName 1 index dup type/stringtype eq{cvn}if def dup
+ currentdict
+ end
+ definefont ct_VMDictPut
+ setglobal
+ }
+ ifelse
+ }bind def
+/SetSubstituteStrategy
+ {
+ $SubstituteFont
+ begin
+ dup type/dicttype ne
+ {0 dict}
+ if
+ currentdict/$Strategies known
+ {
+ exch $Strategies exch
+ 2 copy known
+ {
+ get
+ 2 copy maxlength exch maxlength add dict
+ begin
+ {def}forall
+ {def}forall
+ currentdict
+ dup/$Init known
+ {dup/$Init get exec}
+ if
+ end
+ /$Strategy exch def
+ }
+ {pop pop pop}
+ ifelse
+ }
+ {pop pop}
+ ifelse
+ end
+ }bind def
+/scff
+ {
+ $SubstituteFont
+ begin
+ dup type/stringtype eq
+ {dup length exch}
+ {null}
+ ifelse
+ /$sname exch def
+ /$slen exch def
+ /$inVMIndex
+ $sname null eq
+ {
+ 1 index $str cvs
+ dup length $slen sub $slen getinterval cvn
+ }
+ {$sname}
+ ifelse def
+ end
+ {findfont}
+ @Stopped
+ {
+ dup length 8 add string exch
+ 1 index 0(BadFont:)putinterval
+ 1 index exch 8 exch dup length string cvs putinterval cvn
+ {findfont}
+ @Stopped
+ {pop/Courier findfont}
+ if
+ }
+ if
+ $SubstituteFont
+ begin
+ /$sname null def
+ /$slen 0 def
+ /$inVMIndex null def
+ end
+ }bind def
+/isWidthsOnlyFont
+ {
+ dup/WidthsOnly known
+ {pop pop true}
+ {
+ dup/FDepVector known
+ {/FDepVector get{isWidthsOnlyFont dup{exit}if}forall}
+ {
+ dup/FDArray known
+ {/FDArray get{isWidthsOnlyFont dup{exit}if}forall}
+ {pop}
+ ifelse
+ }
+ ifelse
+ }
+ ifelse
+ }bind def
+/ct_StyleDicts 4 dict dup begin
+ /Adobe-Japan1 4 dict dup begin
+ Level2?
+ {
+ /Serif
+ /HeiseiMin-W3-83pv-RKSJ-H/Font resourcestatus
+ {pop pop/HeiseiMin-W3}
+ {
+ /CIDFont/Category resourcestatus
+ {
+ pop pop
+ /HeiseiMin-W3/CIDFont resourcestatus
+ {pop pop/HeiseiMin-W3}
+ {/Ryumin-Light}
+ ifelse
+ }
+ {/Ryumin-Light}
+ ifelse
+ }
+ ifelse
+ def
+ /SansSerif
+ /HeiseiKakuGo-W5-83pv-RKSJ-H/Font resourcestatus
+ {pop pop/HeiseiKakuGo-W5}
+ {
+ /CIDFont/Category resourcestatus
+ {
+ pop pop
+ /HeiseiKakuGo-W5/CIDFont resourcestatus
+ {pop pop/HeiseiKakuGo-W5}
+ {/GothicBBB-Medium}
+ ifelse
+ }
+ {/GothicBBB-Medium}
+ ifelse
+ }
+ ifelse
+ def
+ /HeiseiMaruGo-W4-83pv-RKSJ-H/Font resourcestatus
+ {pop pop/HeiseiMaruGo-W4}
+ {
+ /CIDFont/Category resourcestatus
+ {
+ pop pop
+ /HeiseiMaruGo-W4/CIDFont resourcestatus
+ {pop pop/HeiseiMaruGo-W4}
+ {
+ /Jun101-Light-RKSJ-H/Font resourcestatus
+ {pop pop/Jun101-Light}
+ {SansSerif}
+ ifelse
+ }
+ ifelse
+ }
+ {
+ /Jun101-Light-RKSJ-H/Font resourcestatus
+ {pop pop/Jun101-Light}
+ {SansSerif}
+ ifelse
+ }
+ ifelse
+ }
+ ifelse
+ /RoundSansSerif exch def
+ /Default Serif def
+ }
+ {
+ /Serif/Ryumin-Light def
+ /SansSerif/GothicBBB-Medium def
+ {
+ (fonts/Jun101-Light-83pv-RKSJ-H)status
+ }stopped
+ {pop}{
+ {pop pop pop pop/Jun101-Light}
+ {SansSerif}
+ ifelse
+ /RoundSansSerif exch def
+ }ifelse
+ /Default Serif def
+ }
+ ifelse
+ end
+ def
+ /Adobe-Korea1 4 dict dup begin
+ /Serif/HYSMyeongJo-Medium def
+ /SansSerif/HYGoThic-Medium def
+ /RoundSansSerif SansSerif def
+ /Default Serif def
+ end
+ def
+ /Adobe-GB1 4 dict dup begin
+ /Serif/STSong-Light def
+ /SansSerif/STHeiti-Regular def
+ /RoundSansSerif SansSerif def
+ /Default Serif def
+ end
+ def
+ /Adobe-CNS1 4 dict dup begin
+ /Serif/MKai-Medium def
+ /SansSerif/MHei-Medium def
+ /RoundSansSerif SansSerif def
+ /Default Serif def
+ end
+ def
+end
+def
+Level2?{currentglobal true setglobal}if
+/ct_BoldRomanWidthProc
+ {
+ stringwidth 1 index 0 ne{exch .03 add exch}if setcharwidth
+ 0 0
+ }bind def
+/ct_Type0WidthProc
+ {
+ dup stringwidth 0 0 moveto
+ 2 index true charpath pathbbox
+ 0 -1
+ 7 index 2 div .88
+ setcachedevice2
+ pop
+ 0 0
+ }bind def
+/ct_Type0WMode1WidthProc
+ {
+ dup stringwidth
+ pop 2 div neg -0.88
+ 2 copy
+ moveto
+ 0 -1
+ 5 -1 roll true charpath pathbbox
+ setcachedevice
+ }bind def
+/cHexEncoding
+[/c00/c01/c02/c03/c04/c05/c06/c07/c08/c09/c0A/c0B/c0C/c0D/c0E/c0F/c10/c11/c12
+/c13/c14/c15/c16/c17/c18/c19/c1A/c1B/c1C/c1D/c1E/c1F/c20/c21/c22/c23/c24/c25
+/c26/c27/c28/c29/c2A/c2B/c2C/c2D/c2E/c2F/c30/c31/c32/c33/c34/c35/c36/c37/c38
+/c39/c3A/c3B/c3C/c3D/c3E/c3F/c40/c41/c42/c43/c44/c45/c46/c47/c48/c49/c4A/c4B
+/c4C/c4D/c4E/c4F/c50/c51/c52/c53/c54/c55/c56/c57/c58/c59/c5A/c5B/c5C/c5D/c5E
+/c5F/c60/c61/c62/c63/c64/c65/c66/c67/c68/c69/c6A/c6B/c6C/c6D/c6E/c6F/c70/c71
+/c72/c73/c74/c75/c76/c77/c78/c79/c7A/c7B/c7C/c7D/c7E/c7F/c80/c81/c82/c83/c84
+/c85/c86/c87/c88/c89/c8A/c8B/c8C/c8D/c8E/c8F/c90/c91/c92/c93/c94/c95/c96/c97
+/c98/c99/c9A/c9B/c9C/c9D/c9E/c9F/cA0/cA1/cA2/cA3/cA4/cA5/cA6/cA7/cA8/cA9/cAA
+/cAB/cAC/cAD/cAE/cAF/cB0/cB1/cB2/cB3/cB4/cB5/cB6/cB7/cB8/cB9/cBA/cBB/cBC/cBD
+/cBE/cBF/cC0/cC1/cC2/cC3/cC4/cC5/cC6/cC7/cC8/cC9/cCA/cCB/cCC/cCD/cCE/cCF/cD0
+/cD1/cD2/cD3/cD4/cD5/cD6/cD7/cD8/cD9/cDA/cDB/cDC/cDD/cDE/cDF/cE0/cE1/cE2/cE3
+/cE4/cE5/cE6/cE7/cE8/cE9/cEA/cEB/cEC/cED/cEE/cEF/cF0/cF1/cF2/cF3/cF4/cF5/cF6
+/cF7/cF8/cF9/cFA/cFB/cFC/cFD/cFE/cFF]def
+/ct_BoldBaseFont
+ 11 dict begin
+ /FontType 3 def
+ /FontMatrix[1 0 0 1 0 0]def
+ /FontBBox[0 0 1 1]def
+ /Encoding cHexEncoding def
+ /_setwidthProc/ct_BoldRomanWidthProc load def
+ /_bcstr1 1 string def
+ /BuildChar
+ {
+ exch begin
+ _basefont setfont
+ _bcstr1 dup 0 4 -1 roll put
+ dup
+ _setwidthProc
+ 3 copy
+ moveto
+ show
+ _basefonto setfont
+ moveto
+ show
+ end
+ }bind def
+ currentdict
+ end
+def
+systemdict/composefont known
+{
+/ct_DefineIdentity-H
+{
+ /Identity-H/CMap resourcestatus
+ {
+ pop pop
+ }
+ {
+ /CIDInit/ProcSet findresource begin
+ 12 dict begin
+ begincmap
+ /CIDSystemInfo 3 dict dup begin
+ /Registry(Adobe)def
+ /Ordering(Identity)def
+ /Supplement 0 def
+ end def
+ /CMapName/Identity-H def
+ /CMapVersion 1.000 def
+ /CMapType 1 def
+ 1 begincodespacerange
+ <0000><FFFF>
+ endcodespacerange
+ 1 begincidrange
+ <0000><FFFF>0
+ endcidrange
+ endcmap
+ CMapName currentdict/CMap defineresource pop
+ end
+ end
+ }
+ ifelse
+}
+def
+/ct_BoldBaseCIDFont
+ 11 dict begin
+ /CIDFontType 1 def
+ /CIDFontName/ct_BoldBaseCIDFont def
+ /FontMatrix[1 0 0 1 0 0]def
+ /FontBBox[0 0 1 1]def
+ /_setwidthProc/ct_Type0WidthProc load def
+ /_bcstr2 2 string def
+ /BuildGlyph
+ {
+ exch begin
+ _basefont setfont
+ _bcstr2 1 2 index 256 mod put
+ _bcstr2 0 3 -1 roll 256 idiv put
+ _bcstr2 dup _setwidthProc
+ 3 copy
+ moveto
+ show
+ _basefonto setfont
+ moveto
+ show
+ end
+ }bind def
+ currentdict
+ end
+def
+}if
+Level2?{setglobal}if
+/ct_CopyFont{
+ {
+ 1 index/FID ne 2 index/UniqueID ne and
+ {def}{pop pop}ifelse
+ }forall
+}bind def
+/ct_Type0CopyFont
+{
+ exch
+ dup length dict
+ begin
+ ct_CopyFont
+ [
+ exch
+ FDepVector
+ {
+ dup/FontType get 0 eq
+ {
+ 1 index ct_Type0CopyFont
+ /_ctType0 exch definefont
+ }
+ {
+ /_ctBaseFont exch
+ 2 index exec
+ }
+ ifelse
+ exch
+ }
+ forall
+ pop
+ ]
+ /FDepVector exch def
+ currentdict
+ end
+}bind def
+/ct_MakeBoldFont
+{
+ dup/ct_SyntheticBold known
+ {
+ dup length 3 add dict begin
+ ct_CopyFont
+ /ct_StrokeWidth .03 0 FontMatrix idtransform pop def
+ /ct_SyntheticBold true def
+ currentdict
+ end
+ definefont
+ }
+ {
+ dup dup length 3 add dict
+ begin
+ ct_CopyFont
+ /PaintType 2 def
+ /StrokeWidth .03 0 FontMatrix idtransform pop def
+ /dummybold currentdict
+ end
+ definefont
+ dup/FontType get dup 9 ge exch 11 le and
+ {
+ ct_BoldBaseCIDFont
+ dup length 3 add dict copy begin
+ dup/CIDSystemInfo get/CIDSystemInfo exch def
+ ct_DefineIdentity-H
+ /_Type0Identity/Identity-H 3 -1 roll[exch]composefont
+ /_basefont exch def
+ /_Type0Identity/Identity-H 3 -1 roll[exch]composefont
+ /_basefonto exch def
+ currentdict
+ end
+ /CIDFont defineresource
+ }
+ {
+ ct_BoldBaseFont
+ dup length 3 add dict copy begin
+ /_basefont exch def
+ /_basefonto exch def
+ currentdict
+ end
+ definefont
+ }
+ ifelse
+ }
+ ifelse
+}bind def
+/ct_MakeBold{
+ 1 index
+ 1 index
+ findfont
+ currentglobal 5 1 roll
+ dup gcheck setglobal
+ dup
+ /FontType get 0 eq
+ {
+ dup/WMode known{dup/WMode get 1 eq}{false}ifelse
+ version length 4 ge
+ and
+ {version 0 4 getinterval cvi 2015 ge}
+ {true}
+ ifelse
+ {/ct_Type0WidthProc}
+ {/ct_Type0WMode1WidthProc}
+ ifelse
+ ct_BoldBaseFont/_setwidthProc 3 -1 roll load put
+ {ct_MakeBoldFont}ct_Type0CopyFont definefont
+ }
+ {
+ dup/_fauxfont known not 1 index/SubstMaster known not and
+ {
+ ct_BoldBaseFont/_setwidthProc /ct_BoldRomanWidthProc load put
+ ct_MakeBoldFont
+ }
+ {
+ 2 index 2 index eq
+ {exch pop }
+ {
+ dup length dict begin
+ ct_CopyFont
+ currentdict
+ end
+ definefont
+ }
+ ifelse
+ }
+ ifelse
+ }
+ ifelse
+ pop pop pop
+ setglobal
+}bind def
+/?str1 256 string def
+/?set
+ {
+ $SubstituteFont
+ begin
+ /$substituteFound false def
+ /$fontname 1 index def
+ /$doSmartSub false def
+ end
+ dup
+ findfont
+ $SubstituteFont
+ begin
+ $substituteFound
+ {false}
+ {
+ dup/FontName known
+ {
+ dup/FontName get $fontname eq
+ 1 index/DistillerFauxFont known not and
+ /currentdistillerparams where
+ {pop false 2 index isWidthsOnlyFont not and}
+ if
+ }
+ {false}
+ ifelse
+ }
+ ifelse
+ exch pop
+ /$doSmartSub true def
+ end
+ {
+ 5 1 roll pop pop pop pop
+ findfont
+ }
+ {
+ 1 index
+ findfont
+ dup/FontType get 3 eq
+ {
+ 6 1 roll pop pop pop pop pop false
+ }
+ {pop true}
+ ifelse
+ {
+ $SubstituteFont
+ begin
+ pop pop
+ /$styleArray 1 index def
+ /$regOrdering 2 index def
+ pop pop
+ 0 1 $styleArray length 1 sub
+ {
+ $styleArray exch get
+ ct_StyleDicts $regOrdering
+ 2 copy known
+ {
+ get
+ exch 2 copy known not
+ {pop/Default}
+ if
+ get
+ dup type/nametype eq
+ {
+ ?str1 cvs length dup 1 add exch
+ ?str1 exch(-)putinterval
+ exch dup length exch ?str1 exch 3 index exch putinterval
+ add ?str1 exch 0 exch getinterval cvn
+ }
+ {
+ pop pop/Unknown
+ }
+ ifelse
+ }
+ {
+ pop pop pop pop/Unknown
+ }
+ ifelse
+ }
+ for
+ end
+ findfont
+ }if
+ }
+ ifelse
+ currentglobal false setglobal 3 1 roll
+ null copyfont definefont pop
+ setglobal
+ }bind def
+setpacking
+userdict/$SubstituteFont 25 dict put
+1 dict
+ begin
+ /SubstituteFont
+ dup $error exch 2 copy known
+ {get}
+ {pop pop{pop/Courier}bind}
+ ifelse def
+ /currentdistillerparams where dup
+ {
+ pop pop
+ currentdistillerparams/CannotEmbedFontPolicy 2 copy known
+ {get/Error eq}
+ {pop pop false}
+ ifelse
+ }
+ if not
+ {
+ countdictstack array dictstack 0 get
+ begin
+ userdict
+ begin
+ $SubstituteFont
+ begin
+ /$str 128 string def
+ /$fontpat 128 string def
+ /$slen 0 def
+ /$sname null def
+ /$match false def
+ /$fontname null def
+ /$substituteFound false def
+ /$inVMIndex null def
+ /$doSmartSub true def
+ /$depth 0 def
+ /$fontname null def
+ /$italicangle 26.5 def
+ /$dstack null def
+ /$Strategies 10 dict dup
+ begin
+ /$Type3Underprint
+ {
+ currentglobal exch false setglobal
+ 11 dict
+ begin
+ /UseFont exch
+ $WMode 0 ne
+ {
+ dup length dict copy
+ dup/WMode $WMode put
+ /UseFont exch definefont
+ }
+ if def
+ /FontName $fontname dup type/stringtype eq{cvn}if def
+ /FontType 3 def
+ /FontMatrix[.001 0 0 .001 0 0]def
+ /Encoding 256 array dup 0 1 255{/.notdef put dup}for pop def
+ /FontBBox[0 0 0 0]def
+ /CCInfo 7 dict dup
+ begin
+ /cc null def
+ /x 0 def
+ /y 0 def
+ end def
+ /BuildChar
+ {
+ exch
+ begin
+ CCInfo
+ begin
+ 1 string dup 0 3 index put exch pop
+ /cc exch def
+ UseFont 1000 scalefont setfont
+ cc stringwidth/y exch def/x exch def
+ x y setcharwidth
+ $SubstituteFont/$Strategy get/$Underprint get exec
+ 0 0 moveto cc show
+ x y moveto
+ end
+ end
+ }bind def
+ currentdict
+ end
+ exch setglobal
+ }bind def
+ /$GetaTint
+ 2 dict dup
+ begin
+ /$BuildFont
+ {
+ dup/WMode known
+ {dup/WMode get}
+ {0}
+ ifelse
+ /$WMode exch def
+ $fontname exch
+ dup/FontName known
+ {
+ dup/FontName get
+ dup type/stringtype eq{cvn}if
+ }
+ {/unnamedfont}
+ ifelse
+ exch
+ Adobe_CoolType_Data/InVMDeepCopiedFonts get
+ 1 index/FontName get known
+ {
+ pop
+ Adobe_CoolType_Data/InVMDeepCopiedFonts get
+ 1 index get
+ null copyfont
+ }
+ {$deepcopyfont}
+ ifelse
+ exch 1 index exch/FontBasedOn exch put
+ dup/FontName $fontname dup type/stringtype eq{cvn}if put
+ definefont
+ Adobe_CoolType_Data/InVMDeepCopiedFonts get
+ begin
+ dup/FontBasedOn get 1 index def
+ end
+ }bind def
+ /$Underprint
+ {
+ gsave
+ x abs y abs gt
+ {/y 1000 def}
+ {/x -1000 def 500 120 translate}
+ ifelse
+ Level2?
+ {
+ [/Separation(All)/DeviceCMYK{0 0 0 1 pop}]
+ setcolorspace
+ }
+ {0 setgray}
+ ifelse
+ 10 setlinewidth
+ x .8 mul
+ [7 3]
+ {
+ y mul 8 div 120 sub x 10 div exch moveto
+ 0 y 4 div neg rlineto
+ dup 0 rlineto
+ 0 y 4 div rlineto
+ closepath
+ gsave
+ Level2?
+ {.2 setcolor}
+ {.8 setgray}
+ ifelse
+ fill grestore
+ stroke
+ }
+ forall
+ pop
+ grestore
+ }bind def
+ end def
+ /$Oblique
+ 1 dict dup
+ begin
+ /$BuildFont
+ {
+ currentglobal exch dup gcheck setglobal
+ null copyfont
+ begin
+ /FontBasedOn
+ currentdict/FontName known
+ {
+ FontName
+ dup type/stringtype eq{cvn}if
+ }
+ {/unnamedfont}
+ ifelse
+ def
+ /FontName $fontname dup type/stringtype eq{cvn}if def
+ /currentdistillerparams where
+ {pop}
+ {
+ /FontInfo currentdict/FontInfo known
+ {FontInfo null copyfont}
+ {2 dict}
+ ifelse
+ dup
+ begin
+ /ItalicAngle $italicangle def
+ /FontMatrix FontMatrix
+ [1 0 ItalicAngle dup sin exch cos div 1 0 0]
+ matrix concatmatrix readonly
+ end
+ 4 2 roll def
+ def
+ }
+ ifelse
+ FontName currentdict
+ end
+ definefont
+ exch setglobal
+ }bind def
+ end def
+ /$None
+ 1 dict dup
+ begin
+ /$BuildFont{}bind def
+ end def
+ end def
+ /$Oblique SetSubstituteStrategy
+ /$findfontByEnum
+ {
+ dup type/stringtype eq{cvn}if
+ dup/$fontname exch def
+ $sname null eq
+ {$str cvs dup length $slen sub $slen getinterval}
+ {pop $sname}
+ ifelse
+ $fontpat dup 0(fonts/*)putinterval exch 7 exch putinterval
+ /$match false def
+ $SubstituteFont/$dstack countdictstack array dictstack put
+ mark
+ {
+ $fontpat 0 $slen 7 add getinterval
+ {/$match exch def exit}
+ $str filenameforall
+ }
+ stopped
+ {
+ cleardictstack
+ currentdict
+ true
+ $SubstituteFont/$dstack get
+ {
+ exch
+ {
+ 1 index eq
+ {pop false}
+ {true}
+ ifelse
+ }
+ {begin false}
+ ifelse
+ }
+ forall
+ pop
+ }
+ if
+ cleartomark
+ /$slen 0 def
+ $match false ne
+ {$match(fonts/)anchorsearch pop pop cvn}
+ {/Courier}
+ ifelse
+ }bind def
+ /$ROS 1 dict dup
+ begin
+ /Adobe 4 dict dup
+ begin
+ /Japan1 [/Ryumin-Light/HeiseiMin-W3
+ /GothicBBB-Medium/HeiseiKakuGo-W5
+ /HeiseiMaruGo-W4/Jun101-Light]def
+ /Korea1 [/HYSMyeongJo-Medium/HYGoThic-Medium]def
+ /GB1 [/STSong-Light/STHeiti-Regular]def
+ /CNS1 [/MKai-Medium/MHei-Medium]def
+ end def
+ end def
+ /$cmapname null def
+ /$deepcopyfont
+ {
+ dup/FontType get 0 eq
+ {
+ 1 dict dup/FontName/copied put copyfont
+ begin
+ /FDepVector FDepVector copyarray
+ 0 1 2 index length 1 sub
+ {
+ 2 copy get $deepcopyfont
+ dup/FontName/copied put
+ /copied exch definefont
+ 3 copy put pop pop
+ }
+ for
+ def
+ currentdict
+ end
+ }
+ {$Strategies/$Type3Underprint get exec}
+ ifelse
+ }bind def
+ /$buildfontname
+ {
+ dup/CIDFont findresource/CIDSystemInfo get
+ begin
+ Registry length Ordering length Supplement 8 string cvs
+ 3 copy length 2 add add add string
+ dup 5 1 roll dup 0 Registry putinterval
+ dup 4 index(-)putinterval
+ dup 4 index 1 add Ordering putinterval
+ 4 2 roll add 1 add 2 copy(-)putinterval
+ end
+ 1 add 2 copy 0 exch getinterval $cmapname $fontpat cvs exch
+ anchorsearch
+ {pop pop 3 2 roll putinterval cvn/$cmapname exch def}
+ {pop pop pop pop pop}
+ ifelse
+ length
+ $str 1 index(-)putinterval 1 add
+ $str 1 index $cmapname $fontpat cvs putinterval
+ $cmapname length add
+ $str exch 0 exch getinterval cvn
+ }bind def
+ /$findfontByROS
+ {
+ /$fontname exch def
+ $ROS Registry 2 copy known
+ {
+ get Ordering 2 copy known
+ {get}
+ {pop pop[]}
+ ifelse
+ }
+ {pop pop[]}
+ ifelse
+ false exch
+ {
+ dup/CIDFont resourcestatus
+ {
+ pop pop
+ save
+ 1 index/CIDFont findresource
+ dup/WidthsOnly known
+ {dup/WidthsOnly get}
+ {false}
+ ifelse
+ exch pop
+ exch restore
+ {pop}
+ {exch pop true exit}
+ ifelse
+ }
+ {pop}
+ ifelse
+ }
+ forall
+ {$str cvs $buildfontname}
+ {
+ false(*)
+ {
+ save exch
+ dup/CIDFont findresource
+ dup/WidthsOnly known
+ {dup/WidthsOnly get not}
+ {true}
+ ifelse
+ exch/CIDSystemInfo get
+ dup/Registry get Registry eq
+ exch/Ordering get Ordering eq and and
+ {exch restore exch pop true exit}
+ {pop restore}
+ ifelse
+ }
+ $str/CIDFont resourceforall
+ {$buildfontname}
+ {$fontname $findfontByEnum}
+ ifelse
+ }
+ ifelse
+ }bind def
+ end
+ end
+ currentdict/$error known currentdict/languagelevel known and dup
+ {pop $error/SubstituteFont known}
+ if
+ dup
+ {$error}
+ {Adobe_CoolType_Core}
+ ifelse
+ begin
+ {
+ /SubstituteFont
+ /CMap/Category resourcestatus
+ {
+ pop pop
+ {
+ $SubstituteFont
+ begin
+ /$substituteFound true def
+ dup length $slen gt
+ $sname null ne or
+ $slen 0 gt and
+ {
+ $sname null eq
+ {dup $str cvs dup length $slen sub $slen getinterval cvn}
+ {$sname}
+ ifelse
+ Adobe_CoolType_Data/InVMFontsByCMap get
+ 1 index 2 copy known
+ {
+ get
+ false exch
+ {
+ pop
+ currentglobal
+ {
+ GlobalFontDirectory 1 index known
+ {exch pop true exit}
+ {pop}
+ ifelse
+ }
+ {
+ FontDirectory 1 index known
+ {exch pop true exit}
+ {
+ GlobalFontDirectory 1 index known
+ {exch pop true exit}
+ {pop}
+ ifelse
+ }
+ ifelse
+ }
+ ifelse
+ }
+ forall
+ }
+ {pop pop false}
+ ifelse
+ {
+ exch pop exch pop
+ }
+ {
+ dup/CMap resourcestatus
+ {
+ pop pop
+ dup/$cmapname exch def
+ /CMap findresource/CIDSystemInfo get{def}forall
+ $findfontByROS
+ }
+ {
+ 128 string cvs
+ dup(-)search
+ {
+ 3 1 roll search
+ {
+ 3 1 roll pop
+ {dup cvi}
+ stopped
+ {pop pop pop pop pop $findfontByEnum}
+ {
+ 4 2 roll pop pop
+ exch length
+ exch
+ 2 index length
+ 2 index
+ sub
+ exch 1 sub -1 0
+ {
+ $str cvs dup length
+ 4 index
+ 0
+ 4 index
+ 4 3 roll add
+ getinterval
+ exch 1 index exch 3 index exch
+ putinterval
+ dup/CMap resourcestatus
+ {
+ pop pop
+ 4 1 roll pop pop pop
+ dup/$cmapname exch def
+ /CMap findresource/CIDSystemInfo get{def}forall
+ $findfontByROS
+ true exit
+ }
+ {pop}
+ ifelse
+ }
+ for
+ dup type/booleantype eq
+ {pop}
+ {pop pop pop $findfontByEnum}
+ ifelse
+ }
+ ifelse
+ }
+ {pop pop pop $findfontByEnum}
+ ifelse
+ }
+ {pop pop $findfontByEnum}
+ ifelse
+ }
+ ifelse
+ }
+ ifelse
+ }
+ {//SubstituteFont exec}
+ ifelse
+ /$slen 0 def
+ end
+ }
+ }
+ {
+ {
+ $SubstituteFont
+ begin
+ /$substituteFound true def
+ dup length $slen gt
+ $sname null ne or
+ $slen 0 gt and
+ {$findfontByEnum}
+ {//SubstituteFont exec}
+ ifelse
+ end
+ }
+ }
+ ifelse
+ bind readonly def
+ Adobe_CoolType_Core/scfindfont/systemfindfont load put
+ }
+ {
+ /scfindfont
+ {
+ $SubstituteFont
+ begin
+ dup systemfindfont
+ dup/FontName known
+ {dup/FontName get dup 3 index ne}
+ {/noname true}
+ ifelse
+ dup
+ {
+ /$origfontnamefound 2 index def
+ /$origfontname 4 index def/$substituteFound true def
+ }
+ if
+ exch pop
+ {
+ $slen 0 gt
+ $sname null ne
+ 3 index length $slen gt or and
+ {
+ pop dup $findfontByEnum findfont
+ dup maxlength 1 add dict
+ begin
+ {1 index/FID eq{pop pop}{def}ifelse}
+ forall
+ currentdict
+ end
+ definefont
+ dup/FontName known{dup/FontName get}{null}ifelse
+ $origfontnamefound ne
+ {
+ $origfontname $str cvs print
+ ( substitution revised, using )print
+ dup/FontName known
+ {dup/FontName get}{(unspecified font)}
+ ifelse
+ $str cvs print(.\n)print
+ }
+ if
+ }
+ {exch pop}
+ ifelse
+ }
+ {exch pop}
+ ifelse
+ end
+ }bind def
+ }
+ ifelse
+ end
+ end
+ Adobe_CoolType_Core_Defined not
+ {
+ Adobe_CoolType_Core/findfont
+ {
+ $SubstituteFont
+ begin
+ $depth 0 eq
+ {
+ /$fontname 1 index dup type/stringtype ne{$str cvs}if def
+ /$substituteFound false def
+ }
+ if
+ /$depth $depth 1 add def
+ end
+ scfindfont
+ $SubstituteFont
+ begin
+ /$depth $depth 1 sub def
+ $substituteFound $depth 0 eq and
+ {
+ $inVMIndex null ne
+ {dup $inVMIndex $AddInVMFont}
+ if
+ $doSmartSub
+ {
+ currentdict/$Strategy known
+ {$Strategy/$BuildFont get exec}
+ if
+ }
+ if
+ }
+ if
+ end
+ }bind put
+ }
+ if
+ }
+ if
+ end
+/$AddInVMFont
+ {
+ exch/FontName 2 copy known
+ {
+ get
+ 1 dict dup begin exch 1 index gcheck def end exch
+ Adobe_CoolType_Data/InVMFontsByCMap get exch
+ $DictAdd
+ }
+ {pop pop pop}
+ ifelse
+ }bind def
+/$DictAdd
+ {
+ 2 copy known not
+ {2 copy 4 index length dict put}
+ if
+ Level2? not
+ {
+ 2 copy get dup maxlength exch length 4 index length add lt
+ 2 copy get dup length 4 index length add exch maxlength 1 index lt
+ {
+ 2 mul dict
+ begin
+ 2 copy get{forall}def
+ 2 copy currentdict put
+ end
+ }
+ {pop}
+ ifelse
+ }
+ if
+ get
+ begin
+ {def}
+ forall
+ end
+ }bind def
+end
+end
+%%EndResource
+currentglobal true setglobal
+%%BeginResource: procset Adobe_CoolType_Utility_MAKEOCF 1.23 0
+%%Copyright: Copyright 1987-2006 Adobe Systems Incorporated.
+%%Version: 1.23 0
+systemdict/languagelevel known dup
+ {currentglobal false setglobal}
+ {false}
+ifelse
+exch
+userdict/Adobe_CoolType_Utility 2 copy known
+ {2 copy get dup maxlength 27 add dict copy}
+ {27 dict}
+ifelse put
+Adobe_CoolType_Utility
+ begin
+ /@eexecStartData
+ <BAB431EA07F209EB8C4348311481D9D3F76E3D15246555577D87BC510ED54E
+ 118C39697FA9F6DB58128E60EB8A12FA24D7CDD2FA94D221FA9EC8DA3E5E6A1C
+ 4ACECC8C2D39C54E7C946031DD156C3A6B4A09AD29E1867A>def
+ /@recognizeCIDFont null def
+ /ct_Level2? exch def
+ /ct_Clone? 1183615869 internaldict dup
+ /CCRun known not
+ exch/eCCRun known not
+ ct_Level2? and or def
+ct_Level2?
+ {globaldict begin currentglobal true setglobal}
+if
+ /ct_AddStdCIDMap
+ ct_Level2?
+ {{
+ mark
+ Adobe_CoolType_Utility/@recognizeCIDFont currentdict put
+ {
+ ((Hex)57 StartData
+ 0615 1e27 2c39 1c60 d8a8 cc31 fe2b f6e0
+ 7aa3 e541 e21c 60d8 a8c9 c3d0 6d9e 1c60
+ d8a8 c9c2 02d7 9a1c 60d8 a849 1c60 d8a8
+ cc36 74f4 1144 b13b 77)0()/SubFileDecode filter cvx exec
+ }
+ stopped
+ {
+ cleartomark
+ Adobe_CoolType_Utility/@recognizeCIDFont get
+ countdictstack dup array dictstack
+ exch 1 sub -1 0
+ {
+ 2 copy get 3 index eq
+ {1 index length exch sub 1 sub{end}repeat exit}
+ {pop}
+ ifelse
+ }
+ for
+ pop pop
+ Adobe_CoolType_Utility/@eexecStartData get eexec
+ }
+ {cleartomark}
+ ifelse
+ }}
+ {{
+ Adobe_CoolType_Utility/@eexecStartData get eexec
+ }}
+ ifelse bind def
+userdict/cid_extensions known
+dup{cid_extensions/cid_UpdateDB known and}if
+ {
+ cid_extensions
+ begin
+ /cid_GetCIDSystemInfo
+ {
+ 1 index type/stringtype eq
+ {exch cvn exch}
+ if
+ cid_extensions
+ begin
+ dup load 2 index known
+ {
+ 2 copy
+ cid_GetStatusInfo
+ dup null ne
+ {
+ 1 index load
+ 3 index get
+ dup null eq
+ {pop pop cid_UpdateDB}
+ {
+ exch
+ 1 index/Created get eq
+ {exch pop exch pop}
+ {pop cid_UpdateDB}
+ ifelse
+ }
+ ifelse
+ }
+ {pop cid_UpdateDB}
+ ifelse
+ }
+ {cid_UpdateDB}
+ ifelse
+ end
+ }bind def
+ end
+ }
+if
+ct_Level2?
+ {end setglobal}
+if
+ /ct_UseNativeCapability? systemdict/composefont known def
+ /ct_MakeOCF 35 dict def
+ /ct_Vars 25 dict def
+ /ct_GlyphDirProcs 6 dict def
+ /ct_BuildCharDict 15 dict dup
+ begin
+ /charcode 2 string def
+ /dst_string 1500 string def
+ /nullstring()def
+ /usewidths? true def
+ end def
+ ct_Level2?{setglobal}{pop}ifelse
+ ct_GlyphDirProcs
+ begin
+ /GetGlyphDirectory
+ {
+ systemdict/languagelevel known
+ {pop/CIDFont findresource/GlyphDirectory get}
+ {
+ 1 index/CIDFont findresource/GlyphDirectory
+ get dup type/dicttype eq
+ {
+ dup dup maxlength exch length sub 2 index lt
+ {
+ dup length 2 index add dict copy 2 index
+ /CIDFont findresource/GlyphDirectory 2 index put
+ }
+ if
+ }
+ if
+ exch pop exch pop
+ }
+ ifelse
+ +
+ }def
+ /+
+ {
+ systemdict/languagelevel known
+ {
+ currentglobal false setglobal
+ 3 dict begin
+ /vm exch def
+ }
+ {1 dict begin}
+ ifelse
+ /$ exch def
+ systemdict/languagelevel known
+ {
+ vm setglobal
+ /gvm currentglobal def
+ $ gcheck setglobal
+ }
+ if
+ ?{$ begin}if
+ }def
+ /?{$ type/dicttype eq}def
+ /|{
+ userdict/Adobe_CoolType_Data known
+ {
+ Adobe_CoolType_Data/AddWidths? known
+ {
+ currentdict Adobe_CoolType_Data
+ begin
+ begin
+ AddWidths?
+ {
+ Adobe_CoolType_Data/CC 3 index put
+ ?{def}{$ 3 1 roll put}ifelse
+ CC charcode exch 1 index 0 2 index 256 idiv put
+ 1 index exch 1 exch 256 mod put
+ stringwidth 2 array astore
+ currentfont/Widths get exch CC exch put
+ }
+ {?{def}{$ 3 1 roll put}ifelse}
+ ifelse
+ end
+ end
+ }
+ {?{def}{$ 3 1 roll put}ifelse} ifelse
+ }
+ {?{def}{$ 3 1 roll put}ifelse}
+ ifelse
+ }def
+ /!
+ {
+ ?{end}if
+ systemdict/languagelevel known
+ {gvm setglobal}
+ if
+ end
+ }def
+ /:{string currentfile exch readstring pop}executeonly def
+ end
+ ct_MakeOCF
+ begin
+ /ct_cHexEncoding
+ [/c00/c01/c02/c03/c04/c05/c06/c07/c08/c09/c0A/c0B/c0C/c0D/c0E/c0F/c10/c11/c12
+ /c13/c14/c15/c16/c17/c18/c19/c1A/c1B/c1C/c1D/c1E/c1F/c20/c21/c22/c23/c24/c25
+ /c26/c27/c28/c29/c2A/c2B/c2C/c2D/c2E/c2F/c30/c31/c32/c33/c34/c35/c36/c37/c38
+ /c39/c3A/c3B/c3C/c3D/c3E/c3F/c40/c41/c42/c43/c44/c45/c46/c47/c48/c49/c4A/c4B
+ /c4C/c4D/c4E/c4F/c50/c51/c52/c53/c54/c55/c56/c57/c58/c59/c5A/c5B/c5C/c5D/c5E
+ /c5F/c60/c61/c62/c63/c64/c65/c66/c67/c68/c69/c6A/c6B/c6C/c6D/c6E/c6F/c70/c71
+ /c72/c73/c74/c75/c76/c77/c78/c79/c7A/c7B/c7C/c7D/c7E/c7F/c80/c81/c82/c83/c84
+ /c85/c86/c87/c88/c89/c8A/c8B/c8C/c8D/c8E/c8F/c90/c91/c92/c93/c94/c95/c96/c97
+ /c98/c99/c9A/c9B/c9C/c9D/c9E/c9F/cA0/cA1/cA2/cA3/cA4/cA5/cA6/cA7/cA8/cA9/cAA
+ /cAB/cAC/cAD/cAE/cAF/cB0/cB1/cB2/cB3/cB4/cB5/cB6/cB7/cB8/cB9/cBA/cBB/cBC/cBD
+ /cBE/cBF/cC0/cC1/cC2/cC3/cC4/cC5/cC6/cC7/cC8/cC9/cCA/cCB/cCC/cCD/cCE/cCF/cD0
+ /cD1/cD2/cD3/cD4/cD5/cD6/cD7/cD8/cD9/cDA/cDB/cDC/cDD/cDE/cDF/cE0/cE1/cE2/cE3
+ /cE4/cE5/cE6/cE7/cE8/cE9/cEA/cEB/cEC/cED/cEE/cEF/cF0/cF1/cF2/cF3/cF4/cF5/cF6
+ /cF7/cF8/cF9/cFA/cFB/cFC/cFD/cFE/cFF]def
+ /ct_CID_STR_SIZE 8000 def
+ /ct_mkocfStr100 100 string def
+ /ct_defaultFontMtx[.001 0 0 .001 0 0]def
+ /ct_1000Mtx[1000 0 0 1000 0 0]def
+ /ct_raise{exch cvx exch errordict exch get exec stop}bind def
+ /ct_reraise
+ {cvx $error/errorname get(Error: )print dup( )cvs print
+ errordict exch get exec stop
+ }bind def
+ /ct_cvnsi
+ {
+ 1 index add 1 sub 1 exch 0 4 1 roll
+ {
+ 2 index exch get
+ exch 8 bitshift
+ add
+ }
+ for
+ exch pop
+ }bind def
+ /ct_GetInterval
+ {
+ Adobe_CoolType_Utility/ct_BuildCharDict get
+ begin
+ /dst_index 0 def
+ dup dst_string length gt
+ {dup string/dst_string exch def}
+ if
+ 1 index ct_CID_STR_SIZE idiv
+ /arrayIndex exch def
+ 2 index arrayIndex get
+ 2 index
+ arrayIndex ct_CID_STR_SIZE mul
+ sub
+ {
+ dup 3 index add 2 index length le
+ {
+ 2 index getinterval
+ dst_string dst_index 2 index putinterval
+ length dst_index add/dst_index exch def
+ exit
+ }
+ {
+ 1 index length 1 index sub
+ dup 4 1 roll
+ getinterval
+ dst_string dst_index 2 index putinterval
+ pop dup dst_index add/dst_index exch def
+ sub
+ /arrayIndex arrayIndex 1 add def
+ 2 index dup length arrayIndex gt
+ {arrayIndex get}
+ {
+ pop
+ exit
+ }
+ ifelse
+ 0
+ }
+ ifelse
+ }
+ loop
+ pop pop pop
+ dst_string 0 dst_index getinterval
+ end
+ }bind def
+ ct_Level2?
+ {
+ /ct_resourcestatus
+ currentglobal mark true setglobal
+ {/unknowninstancename/Category resourcestatus}
+ stopped
+ {cleartomark setglobal true}
+ {cleartomark currentglobal not exch setglobal}
+ ifelse
+ {
+ {
+ mark 3 1 roll/Category findresource
+ begin
+ ct_Vars/vm currentglobal put
+ ({ResourceStatus}stopped)0()/SubFileDecode filter cvx exec
+ {cleartomark false}
+ {{3 2 roll pop true}{cleartomark false}ifelse}
+ ifelse
+ ct_Vars/vm get setglobal
+ end
+ }
+ }
+ {{resourcestatus}}
+ ifelse bind def
+ /CIDFont/Category ct_resourcestatus
+ {pop pop}
+ {
+ currentglobal true setglobal
+ /Generic/Category findresource
+ dup length dict copy
+ dup/InstanceType/dicttype put
+ /CIDFont exch/Category defineresource pop
+ setglobal
+ }
+ ifelse
+ ct_UseNativeCapability?
+ {
+ /CIDInit/ProcSet findresource begin
+ 12 dict begin
+ begincmap
+ /CIDSystemInfo 3 dict dup begin
+ /Registry(Adobe)def
+ /Ordering(Identity)def
+ /Supplement 0 def
+ end def
+ /CMapName/Identity-H def
+ /CMapVersion 1.000 def
+ /CMapType 1 def
+ 1 begincodespacerange
+ <0000><FFFF>
+ endcodespacerange
+ 1 begincidrange
+ <0000><FFFF>0
+ endcidrange
+ endcmap
+ CMapName currentdict/CMap defineresource pop
+ end
+ end
+ }
+ if
+ }
+ {
+ /ct_Category 2 dict begin
+ /CIDFont 10 dict def
+ /ProcSet 2 dict def
+ currentdict
+ end
+ def
+ /defineresource
+ {
+ ct_Category 1 index 2 copy known
+ {
+ get
+ dup dup maxlength exch length eq
+ {
+ dup length 10 add dict copy
+ ct_Category 2 index 2 index put
+ }
+ if
+ 3 index 3 index put
+ pop exch pop
+ }
+ {pop pop/defineresource/undefined ct_raise}
+ ifelse
+ }bind def
+ /findresource
+ {
+ ct_Category 1 index 2 copy known
+ {
+ get
+ 2 index 2 copy known
+ {get 3 1 roll pop pop}
+ {pop pop/findresource/undefinedresource ct_raise}
+ ifelse
+ }
+ {pop pop/findresource/undefined ct_raise}
+ ifelse
+ }bind def
+ /resourcestatus
+ {
+ ct_Category 1 index 2 copy known
+ {
+ get
+ 2 index known
+ exch pop exch pop
+ {
+ 0 -1 true
+ }
+ {
+ false
+ }
+ ifelse
+ }
+ {pop pop/findresource/undefined ct_raise}
+ ifelse
+ }bind def
+ /ct_resourcestatus/resourcestatus load def
+ }
+ ifelse
+ /ct_CIDInit 2 dict
+ begin
+ /ct_cidfont_stream_init
+ {
+ {
+ dup(Binary)eq
+ {
+ pop
+ null
+ currentfile
+ ct_Level2?
+ {
+ {cid_BYTE_COUNT()/SubFileDecode filter}
+ stopped
+ {pop pop pop}
+ if
+ }
+ if
+ /readstring load
+ exit
+ }
+ if
+ dup(Hex)eq
+ {
+ pop
+ currentfile
+ ct_Level2?
+ {
+ {null exch/ASCIIHexDecode filter/readstring}
+ stopped
+ {pop exch pop(>)exch/readhexstring}
+ if
+ }
+ {(>)exch/readhexstring}
+ ifelse
+ load
+ exit
+ }
+ if
+ /StartData/typecheck ct_raise
+ }
+ loop
+ cid_BYTE_COUNT ct_CID_STR_SIZE le
+ {
+ 2 copy cid_BYTE_COUNT string exch exec
+ pop
+ 1 array dup
+ 3 -1 roll
+ 0 exch put
+ }
+ {
+ cid_BYTE_COUNT ct_CID_STR_SIZE div ceiling cvi
+ dup array exch 2 sub 0 exch 1 exch
+ {
+ 2 copy
+ 5 index
+ ct_CID_STR_SIZE
+ string
+ 6 index exec
+ pop
+ put
+ pop
+ }
+ for
+ 2 index
+ cid_BYTE_COUNT ct_CID_STR_SIZE mod string
+ 3 index exec
+ pop
+ 1 index exch
+ 1 index length 1 sub
+ exch put
+ }
+ ifelse
+ cid_CIDFONT exch/GlyphData exch put
+ 2 index null eq
+ {
+ pop pop pop
+ }
+ {
+ pop/readstring load
+ 1 string exch
+ {
+ 3 copy exec
+ pop
+ dup length 0 eq
+ {
+ pop pop pop pop pop
+ true exit
+ }
+ if
+ 4 index
+ eq
+ {
+ pop pop pop pop
+ false exit
+ }
+ if
+ }
+ loop
+ pop
+ }
+ ifelse
+ }bind def
+ /StartData
+ {
+ mark
+ {
+ currentdict
+ dup/FDArray get 0 get/FontMatrix get
+ 0 get 0.001 eq
+ {
+ dup/CDevProc known not
+ {
+ /CDevProc 1183615869 internaldict/stdCDevProc 2 copy known
+ {get}
+ {
+ pop pop
+ {pop pop pop pop pop 0 -1000 7 index 2 div 880}
+ }
+ ifelse
+ def
+ }
+ if
+ }
+ {
+ /CDevProc
+ {
+ pop pop pop pop pop
+ 0
+ 1 cid_temp/cid_CIDFONT get
+ /FDArray get 0 get
+ /FontMatrix get 0 get div
+ 7 index 2 div
+ 1 index 0.88 mul
+ }def
+ }
+ ifelse
+ /cid_temp 15 dict def
+ cid_temp
+ begin
+ /cid_CIDFONT exch def
+ 3 copy pop
+ dup/cid_BYTE_COUNT exch def 0 gt
+ {
+ ct_cidfont_stream_init
+ FDArray
+ {
+ /Private get
+ dup/SubrMapOffset known
+ {
+ begin
+ /Subrs SubrCount array def
+ Subrs
+ SubrMapOffset
+ SubrCount
+ SDBytes
+ ct_Level2?
+ {
+ currentdict dup/SubrMapOffset undef
+ dup/SubrCount undef
+ /SDBytes undef
+ }
+ if
+ end
+ /cid_SD_BYTES exch def
+ /cid_SUBR_COUNT exch def
+ /cid_SUBR_MAP_OFFSET exch def
+ /cid_SUBRS exch def
+ cid_SUBR_COUNT 0 gt
+ {
+ GlyphData cid_SUBR_MAP_OFFSET cid_SD_BYTES ct_GetInterval
+ 0 cid_SD_BYTES ct_cvnsi
+ 0 1 cid_SUBR_COUNT 1 sub
+ {
+ exch 1 index
+ 1 add
+ cid_SD_BYTES mul cid_SUBR_MAP_OFFSET add
+ GlyphData exch cid_SD_BYTES ct_GetInterval
+ 0 cid_SD_BYTES ct_cvnsi
+ cid_SUBRS 4 2 roll
+ GlyphData exch
+ 4 index
+ 1 index
+ sub
+ ct_GetInterval
+ dup length string copy put
+ }
+ for
+ pop
+ }
+ if
+ }
+ {pop}
+ ifelse
+ }
+ forall
+ }
+ if
+ cleartomark pop pop
+ end
+ CIDFontName currentdict/CIDFont defineresource pop
+ end end
+ }
+ stopped
+ {cleartomark/StartData ct_reraise}
+ if
+ }bind def
+ currentdict
+ end def
+ /ct_saveCIDInit
+ {
+ /CIDInit/ProcSet ct_resourcestatus
+ {true}
+ {/CIDInitC/ProcSet ct_resourcestatus}
+ ifelse
+ {
+ pop pop
+ /CIDInit/ProcSet findresource
+ ct_UseNativeCapability?
+ {pop null}
+ {/CIDInit ct_CIDInit/ProcSet defineresource pop}
+ ifelse
+ }
+ {/CIDInit ct_CIDInit/ProcSet defineresource pop null}
+ ifelse
+ ct_Vars exch/ct_oldCIDInit exch put
+ }bind def
+ /ct_restoreCIDInit
+ {
+ ct_Vars/ct_oldCIDInit get dup null ne
+ {/CIDInit exch/ProcSet defineresource pop}
+ {pop}
+ ifelse
+ }bind def
+ /ct_BuildCharSetUp
+ {
+ 1 index
+ begin
+ CIDFont
+ begin
+ Adobe_CoolType_Utility/ct_BuildCharDict get
+ begin
+ /ct_dfCharCode exch def
+ /ct_dfDict exch def
+ CIDFirstByte ct_dfCharCode add
+ dup CIDCount ge
+ {pop 0}
+ if
+ /cid exch def
+ {
+ GlyphDirectory cid 2 copy known
+ {get}
+ {pop pop nullstring}
+ ifelse
+ dup length FDBytes sub 0 gt
+ {
+ dup
+ FDBytes 0 ne
+ {0 FDBytes ct_cvnsi}
+ {pop 0}
+ ifelse
+ /fdIndex exch def
+ dup length FDBytes sub FDBytes exch getinterval
+ /charstring exch def
+ exit
+ }
+ {
+ pop
+ cid 0 eq
+ {/charstring nullstring def exit}
+ if
+ /cid 0 def
+ }
+ ifelse
+ }
+ loop
+ }def
+ /ct_SetCacheDevice
+ {
+ 0 0 moveto
+ dup stringwidth
+ 3 -1 roll
+ true charpath
+ pathbbox
+ 0 -1000
+ 7 index 2 div 880
+ setcachedevice2
+ 0 0 moveto
+ }def
+ /ct_CloneSetCacheProc
+ {
+ 1 eq
+ {
+ stringwidth
+ pop -2 div -880
+ 0 -1000 setcharwidth
+ moveto
+ }
+ {
+ usewidths?
+ {
+ currentfont/Widths get cid
+ 2 copy known
+ {get exch pop aload pop}
+ {pop pop stringwidth}
+ ifelse
+ }
+ {stringwidth}
+ ifelse
+ setcharwidth
+ 0 0 moveto
+ }
+ ifelse
+ }def
+ /ct_Type3ShowCharString
+ {
+ ct_FDDict fdIndex 2 copy known
+ {get}
+ {
+ currentglobal 3 1 roll
+ 1 index gcheck setglobal
+ ct_Type1FontTemplate dup maxlength dict copy
+ begin
+ FDArray fdIndex get
+ dup/FontMatrix 2 copy known
+ {get}
+ {pop pop ct_defaultFontMtx}
+ ifelse
+ /FontMatrix exch dup length array copy def
+ /Private get
+ /Private exch def
+ /Widths rootfont/Widths get def
+ /CharStrings 1 dict dup/.notdef
+ <d841272cf18f54fc13>dup length string copy put def
+ currentdict
+ end
+ /ct_Type1Font exch definefont
+ dup 5 1 roll put
+ setglobal
+ }
+ ifelse
+ dup/CharStrings get 1 index/Encoding get
+ ct_dfCharCode get charstring put
+ rootfont/WMode 2 copy known
+ {get}
+ {pop pop 0}
+ ifelse
+ exch
+ 1000 scalefont setfont
+ ct_str1 0 ct_dfCharCode put
+ ct_str1 exch ct_dfSetCacheProc
+ ct_SyntheticBold
+ {
+ currentpoint
+ ct_str1 show
+ newpath
+ moveto
+ ct_str1 true charpath
+ ct_StrokeWidth setlinewidth
+ stroke
+ }
+ {ct_str1 show}
+ ifelse
+ }def
+ /ct_Type4ShowCharString
+ {
+ ct_dfDict ct_dfCharCode charstring
+ FDArray fdIndex get
+ dup/FontMatrix get dup ct_defaultFontMtx ct_matrixeq not
+ {ct_1000Mtx matrix concatmatrix concat}
+ {pop}
+ ifelse
+ /Private get
+ Adobe_CoolType_Utility/ct_Level2? get not
+ {
+ ct_dfDict/Private
+ 3 -1 roll
+ {put}
+ 1183615869 internaldict/superexec get exec
+ }
+ if
+ 1183615869 internaldict
+ Adobe_CoolType_Utility/ct_Level2? get
+ {1 index}
+ {3 index/Private get mark 6 1 roll}
+ ifelse
+ dup/RunInt known
+ {/RunInt get}
+ {pop/CCRun}
+ ifelse
+ get exec
+ Adobe_CoolType_Utility/ct_Level2? get not
+ {cleartomark}
+ if
+ }bind def
+ /ct_BuildCharIncremental
+ {
+ {
+ Adobe_CoolType_Utility/ct_MakeOCF get begin
+ ct_BuildCharSetUp
+ ct_ShowCharString
+ }
+ stopped
+ {stop}
+ if
+ end
+ end
+ end
+ end
+ }bind def
+ /BaseFontNameStr(BF00)def
+ /ct_Type1FontTemplate 14 dict
+ begin
+ /FontType 1 def
+ /FontMatrix [0.001 0 0 0.001 0 0]def
+ /FontBBox [-250 -250 1250 1250]def
+ /Encoding ct_cHexEncoding def
+ /PaintType 0 def
+ currentdict
+ end def
+ /BaseFontTemplate 11 dict
+ begin
+ /FontMatrix [0.001 0 0 0.001 0 0]def
+ /FontBBox [-250 -250 1250 1250]def
+ /Encoding ct_cHexEncoding def
+ /BuildChar/ct_BuildCharIncremental load def
+ ct_Clone?
+ {
+ /FontType 3 def
+ /ct_ShowCharString/ct_Type3ShowCharString load def
+ /ct_dfSetCacheProc/ct_CloneSetCacheProc load def
+ /ct_SyntheticBold false def
+ /ct_StrokeWidth 1 def
+ }
+ {
+ /FontType 4 def
+ /Private 1 dict dup/lenIV 4 put def
+ /CharStrings 1 dict dup/.notdef<d841272cf18f54fc13>put def
+ /PaintType 0 def
+ /ct_ShowCharString/ct_Type4ShowCharString load def
+ }
+ ifelse
+ /ct_str1 1 string def
+ currentdict
+ end def
+ /BaseFontDictSize BaseFontTemplate length 5 add def
+ /ct_matrixeq
+ {
+ true 0 1 5
+ {
+ dup 4 index exch get exch 3 index exch get eq and
+ dup not
+ {exit}
+ if
+ }
+ for
+ exch pop exch pop
+ }bind def
+ /ct_makeocf
+ {
+ 15 dict
+ begin
+ exch/WMode exch def
+ exch/FontName exch def
+ /FontType 0 def
+ /FMapType 2 def
+ dup/FontMatrix known
+ {dup/FontMatrix get/FontMatrix exch def}
+ {/FontMatrix matrix def}
+ ifelse
+ /bfCount 1 index/CIDCount get 256 idiv 1 add
+ dup 256 gt{pop 256}if def
+ /Encoding
+ 256 array 0 1 bfCount 1 sub{2 copy dup put pop}for
+ bfCount 1 255{2 copy bfCount put pop}for
+ def
+ /FDepVector bfCount dup 256 lt{1 add}if array def
+ BaseFontTemplate BaseFontDictSize dict copy
+ begin
+ /CIDFont exch def
+ CIDFont/FontBBox known
+ {CIDFont/FontBBox get/FontBBox exch def}
+ if
+ CIDFont/CDevProc known
+ {CIDFont/CDevProc get/CDevProc exch def}
+ if
+ currentdict
+ end
+ BaseFontNameStr 3(0)putinterval
+ 0 1 bfCount dup 256 eq{1 sub}if
+ {
+ FDepVector exch
+ 2 index BaseFontDictSize dict copy
+ begin
+ dup/CIDFirstByte exch 256 mul def
+ FontType 3 eq
+ {/ct_FDDict 2 dict def}
+ if
+ currentdict
+ end
+ 1 index 16
+ BaseFontNameStr 2 2 getinterval cvrs pop
+ BaseFontNameStr exch definefont
+ put
+ }
+ for
+ ct_Clone?
+ {/Widths 1 index/CIDFont get/GlyphDirectory get length dict def}
+ if
+ FontName
+ currentdict
+ end
+ definefont
+ ct_Clone?
+ {
+ gsave
+ dup 1000 scalefont setfont
+ ct_BuildCharDict
+ begin
+ /usewidths? false def
+ currentfont/Widths get
+ begin
+ exch/CIDFont get/GlyphDirectory get
+ {
+ pop
+ dup charcode exch 1 index 0 2 index 256 idiv put
+ 1 index exch 1 exch 256 mod put
+ stringwidth 2 array astore def
+ }
+ forall
+ end
+ /usewidths? true def
+ end
+ grestore
+ }
+ {exch pop}
+ ifelse
+ }bind def
+ currentglobal true setglobal
+ /ct_ComposeFont
+ {
+ ct_UseNativeCapability?
+ {
+ 2 index/CMap ct_resourcestatus
+ {pop pop exch pop}
+ {
+ /CIDInit/ProcSet findresource
+ begin
+ 12 dict
+ begin
+ begincmap
+ /CMapName 3 index def
+ /CMapVersion 1.000 def
+ /CMapType 1 def
+ exch/WMode exch def
+ /CIDSystemInfo 3 dict dup
+ begin
+ /Registry(Adobe)def
+ /Ordering
+ CMapName ct_mkocfStr100 cvs
+ (Adobe-)search
+ {
+ pop pop
+ (-)search
+ {
+ dup length string copy
+ exch pop exch pop
+ }
+ {pop(Identity)}
+ ifelse
+ }
+ {pop (Identity)}
+ ifelse
+ def
+ /Supplement 0 def
+ end def
+ 1 begincodespacerange
+ <0000><FFFF>
+ endcodespacerange
+ 1 begincidrange
+ <0000><FFFF>0
+ endcidrange
+ endcmap
+ CMapName currentdict/CMap defineresource pop
+ end
+ end
+ }
+ ifelse
+ composefont
+ }
+ {
+ 3 2 roll pop
+ 0 get/CIDFont findresource
+ ct_makeocf
+ }
+ ifelse
+ }bind def
+ setglobal
+ /ct_MakeIdentity
+ {
+ ct_UseNativeCapability?
+ {
+ 1 index/CMap ct_resourcestatus
+ {pop pop}
+ {
+ /CIDInit/ProcSet findresource begin
+ 12 dict begin
+ begincmap
+ /CMapName 2 index def
+ /CMapVersion 1.000 def
+ /CMapType 1 def
+ /CIDSystemInfo 3 dict dup
+ begin
+ /Registry(Adobe)def
+ /Ordering
+ CMapName ct_mkocfStr100 cvs
+ (Adobe-)search
+ {
+ pop pop
+ (-)search
+ {dup length string copy exch pop exch pop}
+ {pop(Identity)}
+ ifelse
+ }
+ {pop(Identity)}
+ ifelse
+ def
+ /Supplement 0 def
+ end def
+ 1 begincodespacerange
+ <0000><FFFF>
+ endcodespacerange
+ 1 begincidrange
+ <0000><FFFF>0
+ endcidrange
+ endcmap
+ CMapName currentdict/CMap defineresource pop
+ end
+ end
+ }
+ ifelse
+ composefont
+ }
+ {
+ exch pop
+ 0 get/CIDFont findresource
+ ct_makeocf
+ }
+ ifelse
+ }bind def
+ currentdict readonly pop
+ end
+ end
+%%EndResource
+setglobal
+%%BeginResource: procset Adobe_CoolType_Utility_T42 1.0 0
+%%Copyright: Copyright 1987-2004 Adobe Systems Incorporated.
+%%Version: 1.0 0
+userdict/ct_T42Dict 15 dict put
+ct_T42Dict begin
+/Is2015?
+{
+ version
+ cvi
+ 2015
+ ge
+}bind def
+/AllocGlyphStorage
+{
+ Is2015?
+ {
+ pop
+ }
+ {
+ {string}forall
+ }ifelse
+}bind def
+/Type42DictBegin
+{
+25 dict begin
+ /FontName exch def
+ /CharStrings 256 dict
+begin
+ /.notdef 0 def
+ currentdict
+end def
+ /Encoding exch def
+ /PaintType 0 def
+ /FontType 42 def
+ /FontMatrix[1 0 0 1 0 0]def
+ 4 array astore cvx/FontBBox exch def
+ /sfnts
+}bind def
+/Type42DictEnd
+{
+ currentdict dup/FontName get exch definefont end
+ct_T42Dict exch
+dup/FontName get exch put
+}bind def
+/RD{string currentfile exch readstring pop}executeonly def
+/PrepFor2015
+{
+Is2015?
+{
+ /GlyphDirectory
+ 16
+ dict def
+ sfnts 0 get
+ dup
+ 2 index
+ (glyx)
+ putinterval
+ 2 index
+ (locx)
+ putinterval
+ pop
+ pop
+}
+{
+ pop
+ pop
+}ifelse
+}bind def
+/AddT42Char
+{
+Is2015?
+{
+ /GlyphDirectory get
+ begin
+ def
+ end
+ pop
+ pop
+}
+{
+ /sfnts get
+ 4 index
+ get
+ 3 index
+ 2 index
+ putinterval
+ pop
+ pop
+ pop
+ pop
+}ifelse
+}bind def
+/T0AddT42Mtx2
+{
+/CIDFont findresource/Metrics2 get begin def end
+}bind def
+end
+%%EndResource
+currentglobal true setglobal
+%%BeginFile: MMFauxFont.prc
+%%Copyright: Copyright 1987-2001 Adobe Systems Incorporated.
+%%All Rights Reserved.
+userdict /ct_EuroDict 10 dict put
+ct_EuroDict begin
+/ct_CopyFont
+{
+ { 1 index /FID ne {def} {pop pop} ifelse} forall
+} def
+/ct_GetGlyphOutline
+{
+ gsave
+ initmatrix newpath
+ exch findfont dup
+ length 1 add dict
+ begin
+ ct_CopyFont
+ /Encoding Encoding dup length array copy
+ dup
+ 4 -1 roll
+ 0 exch put
+ def
+ currentdict
+ end
+ /ct_EuroFont exch definefont
+ 1000 scalefont setfont
+ 0 0 moveto
+ [
+ <00> stringwidth
+ <00> false charpath
+ pathbbox
+ [
+ {/m cvx} {/l cvx} {/c cvx} {/cp cvx} pathforall
+ grestore
+ counttomark 8 add
+}
+def
+/ct_MakeGlyphProc
+{
+ ] cvx
+ /ct_PSBuildGlyph cvx
+ ] cvx
+} def
+/ct_PSBuildGlyph
+{
+ gsave
+ 8 -1 roll pop
+ 7 1 roll
+ 6 -2 roll ct_FontMatrix transform 6 2 roll
+ 4 -2 roll ct_FontMatrix transform 4 2 roll
+ ct_FontMatrix transform
+ currentdict /PaintType 2 copy known {get 2 eq}{pop pop false} ifelse
+ dup 9 1 roll
+ {
+ currentdict /StrokeWidth 2 copy known
+ {
+ get 2 div
+ 0 ct_FontMatrix dtransform pop
+ 5 1 roll
+ 4 -1 roll 4 index sub
+ 4 1 roll
+ 3 -1 roll 4 index sub
+ 3 1 roll
+ exch 4 index add exch
+ 4 index add
+ 5 -1 roll pop
+ }
+ {
+ pop pop
+ }
+ ifelse
+ }
+ if
+ setcachedevice
+ ct_FontMatrix concat
+ ct_PSPathOps begin
+ exec
+ end
+ {
+ currentdict /StrokeWidth 2 copy known
+ { get }
+ { pop pop 0 }
+ ifelse
+ setlinewidth stroke
+ }
+ {
+ fill
+ }
+ ifelse
+ grestore
+} def
+/ct_PSPathOps 4 dict dup begin
+ /m {moveto} def
+ /l {lineto} def
+ /c {curveto} def
+ /cp {closepath} def
+end
+def
+/ct_matrix1000 [1000 0 0 1000 0 0] def
+/ct_AddGlyphProc
+{
+ 2 index findfont dup length 4 add dict
+ begin
+ ct_CopyFont
+ /CharStrings CharStrings dup length 1 add dict copy
+ begin
+ 3 1 roll def
+ currentdict
+ end
+ def
+ /ct_FontMatrix ct_matrix1000 FontMatrix matrix concatmatrix def
+ /ct_PSBuildGlyph /ct_PSBuildGlyph load def
+ /ct_PSPathOps /ct_PSPathOps load def
+ currentdict
+ end
+ definefont pop
+}
+def
+systemdict /languagelevel known
+{
+ /ct_AddGlyphToPrinterFont {
+ 2 copy
+ ct_GetGlyphOutline 3 add -1 roll restore
+ ct_MakeGlyphProc
+ ct_AddGlyphProc
+ } def
+}
+{
+ /ct_AddGlyphToPrinterFont {
+ pop pop restore
+ Adobe_CTFauxDict /$$$FONTNAME get
+ /Euro
+ Adobe_CTFauxDict /$$$SUBSTITUTEBASE get
+ ct_EuroDict exch get
+ ct_AddGlyphProc
+ } def
+} ifelse
+/AdobeSansMM
+{
+556 0 24 -19 541 703
+ {
+ 541 628 m
+ 510 669 442 703 354 703 c
+ 201 703 117 607 101 444 c
+ 50 444 l
+ 25 372 l
+ 97 372 l
+ 97 301 l
+ 49 301 l
+ 24 229 l
+ 103 229 l
+ 124 67 209 -19 350 -19 c
+ 435 -19 501 25 509 32 c
+ 509 131 l
+ 492 105 417 60 343 60 c
+ 267 60 204 127 197 229 c
+ 406 229 l
+ 430 301 l
+ 191 301 l
+ 191 372 l
+ 455 372 l
+ 479 444 l
+ 194 444 l
+ 201 531 245 624 348 624 c
+ 433 624 484 583 509 534 c
+ cp
+ 556 0 m
+ }
+ct_PSBuildGlyph
+} def
+/AdobeSerifMM
+{
+500 0 10 -12 484 692
+ {
+ 347 298 m
+ 171 298 l
+ 170 310 170 322 170 335 c
+ 170 362 l
+ 362 362 l
+ 374 403 l
+ 172 403 l
+ 184 580 244 642 308 642 c
+ 380 642 434 574 457 457 c
+ 481 462 l
+ 474 691 l
+ 449 691 l
+ 433 670 429 657 410 657 c
+ 394 657 360 692 299 692 c
+ 204 692 94 604 73 403 c
+ 22 403 l
+ 10 362 l
+ 70 362 l
+ 69 352 69 341 69 330 c
+ 69 319 69 308 70 298 c
+ 22 298 l
+ 10 257 l
+ 73 257 l
+ 97 57 216 -12 295 -12 c
+ 364 -12 427 25 484 123 c
+ 458 142 l
+ 425 101 384 37 316 37 c
+ 256 37 189 84 173 257 c
+ 335 257 l
+ cp
+ 500 0 m
+ }
+ct_PSBuildGlyph
+} def
+end
+%%EndFile
+setglobal
+Adobe_CoolType_Core begin /$None SetSubstituteStrategy end
+%%BeginResource: procset Adobe_AGM_Image 1.0 0
+%%Version: 1.0 0
+%%Copyright: Copyright(C)2000-2006 Adobe Systems, Inc. All Rights Reserved.
+systemdict/setpacking known
+{
+ currentpacking
+ true setpacking
+}if
+userdict/Adobe_AGM_Image 71 dict dup begin put
+/Adobe_AGM_Image_Id/Adobe_AGM_Image_1.0_0 def
+/nd{
+ null def
+}bind def
+/AGMIMG_&image nd
+/AGMIMG_&colorimage nd
+/AGMIMG_&imagemask nd
+/AGMIMG_mbuf()def
+/AGMIMG_ybuf()def
+/AGMIMG_kbuf()def
+/AGMIMG_c 0 def
+/AGMIMG_m 0 def
+/AGMIMG_y 0 def
+/AGMIMG_k 0 def
+/AGMIMG_tmp nd
+/AGMIMG_imagestring0 nd
+/AGMIMG_imagestring1 nd
+/AGMIMG_imagestring2 nd
+/AGMIMG_imagestring3 nd
+/AGMIMG_imagestring4 nd
+/AGMIMG_imagestring5 nd
+/AGMIMG_cnt nd
+/AGMIMG_fsave nd
+/AGMIMG_colorAry nd
+/AGMIMG_override nd
+/AGMIMG_name nd
+/AGMIMG_maskSource nd
+/AGMIMG_flushfilters nd
+/invert_image_samples nd
+/knockout_image_samples nd
+/img nd
+/sepimg nd
+/devnimg nd
+/idximg nd
+/ds
+{
+ Adobe_AGM_Core begin
+ Adobe_AGM_Image begin
+ /AGMIMG_&image systemdict/image get def
+ /AGMIMG_&imagemask systemdict/imagemask get def
+ /colorimage where{
+ pop
+ /AGMIMG_&colorimage/colorimage ldf
+ }if
+ end
+ end
+}def
+/ps
+{
+ Adobe_AGM_Image begin
+ /AGMIMG_ccimage_exists{/customcolorimage where
+ {
+ pop
+ /Adobe_AGM_OnHost_Seps where
+ {
+ pop false
+ }{
+ /Adobe_AGM_InRip_Seps where
+ {
+ pop false
+ }{
+ true
+ }ifelse
+ }ifelse
+ }{
+ false
+ }ifelse
+ }bdf
+ level2{
+ /invert_image_samples
+ {
+ Adobe_AGM_Image/AGMIMG_tmp Decode length ddf
+ /Decode[Decode 1 get Decode 0 get]def
+ }def
+ /knockout_image_samples
+ {
+ Operator/imagemask ne{
+ /Decode[1 1]def
+ }if
+ }def
+ }{
+ /invert_image_samples
+ {
+ {1 exch sub}currenttransfer addprocs settransfer
+ }def
+ /knockout_image_samples
+ {
+ {pop 1}currenttransfer addprocs settransfer
+ }def
+ }ifelse
+ /img/imageormask ldf
+ /sepimg/sep_imageormask ldf
+ /devnimg/devn_imageormask ldf
+ /idximg/indexed_imageormask ldf
+ /_ctype 7 def
+ currentdict{
+ dup xcheck 1 index type dup/arraytype eq exch/packedarraytype eq or and{
+ bind
+ }if
+ def
+ }forall
+}def
+/pt
+{
+ end
+}def
+/dt
+{
+}def
+/AGMIMG_flushfilters
+{
+ dup type/arraytype ne
+ {1 array astore}if
+ dup 0 get currentfile ne
+ {dup 0 get flushfile}if
+ {
+ dup type/filetype eq
+ {
+ dup status 1 index currentfile ne and
+ {closefile}
+ {pop}
+ ifelse
+ }{pop}ifelse
+ }forall
+}def
+/AGMIMG_init_common
+{
+ currentdict/T known{/ImageType/T ldf currentdict/T undef}if
+ currentdict/W known{/Width/W ldf currentdict/W undef}if
+ currentdict/H known{/Height/H ldf currentdict/H undef}if
+ currentdict/M known{/ImageMatrix/M ldf currentdict/M undef}if
+ currentdict/BC known{/BitsPerComponent/BC ldf currentdict/BC undef}if
+ currentdict/D known{/Decode/D ldf currentdict/D undef}if
+ currentdict/DS known{/DataSource/DS ldf currentdict/DS undef}if
+ currentdict/O known{
+ /Operator/O load 1 eq{
+ /imagemask
+ }{
+ /O load 2 eq{
+ /image
+ }{
+ /colorimage
+ }ifelse
+ }ifelse
+ def
+ currentdict/O undef
+ }if
+ currentdict/HSCI known{/HostSepColorImage/HSCI ldf currentdict/HSCI undef}if
+ currentdict/MD known{/MultipleDataSources/MD ldf currentdict/MD undef}if
+ currentdict/I known{/Interpolate/I ldf currentdict/I undef}if
+ currentdict/SI known{/SkipImageProc/SI ldf currentdict/SI undef}if
+ /DataSource load xcheck not{
+ DataSource type/arraytype eq{
+ DataSource 0 get type/filetype eq{
+ /_Filters DataSource def
+ currentdict/MultipleDataSources known not{
+ /DataSource DataSource dup length 1 sub get def
+ }if
+ }if
+ }if
+ currentdict/MultipleDataSources known not{
+ /MultipleDataSources DataSource type/arraytype eq{
+ DataSource length 1 gt
+ }
+ {false}ifelse def
+ }if
+ }if
+ /NComponents Decode length 2 div def
+ currentdict/SkipImageProc known not{/SkipImageProc{false}def}if
+}bdf
+/imageormask_sys
+{
+ begin
+ AGMIMG_init_common
+ save mark
+ level2{
+ currentdict
+ Operator/imagemask eq{
+ AGMIMG_&imagemask
+ }{
+ use_mask{
+ process_mask AGMIMG_&image
+ }{
+ AGMIMG_&image
+ }ifelse
+ }ifelse
+ }{
+ Width Height
+ Operator/imagemask eq{
+ Decode 0 get 1 eq Decode 1 get 0 eq and
+ ImageMatrix/DataSource load
+ AGMIMG_&imagemask
+ }{
+ BitsPerComponent ImageMatrix/DataSource load
+ AGMIMG_&image
+ }ifelse
+ }ifelse
+ currentdict/_Filters known{_Filters AGMIMG_flushfilters}if
+ cleartomark restore
+ end
+}def
+/overprint_plate
+{
+ currentoverprint{
+ 0 get dup type/nametype eq{
+ dup/DeviceGray eq{
+ pop AGMCORE_black_plate not
+ }{
+ /DeviceCMYK eq{
+ AGMCORE_is_cmyk_sep not
+ }if
+ }ifelse
+ }{
+ false exch
+ {
+ AGMOHS_sepink eq or
+ }forall
+ not
+ }ifelse
+ }{
+ pop false
+ }ifelse
+}def
+/process_mask
+{
+ level3{
+ dup begin
+ /ImageType 1 def
+ end
+ 4 dict begin
+ /DataDict exch def
+ /ImageType 3 def
+ /InterleaveType 3 def
+ /MaskDict 9 dict begin
+ /ImageType 1 def
+ /Width DataDict dup/MaskWidth known{/MaskWidth}{/Width}ifelse get def
+ /Height DataDict dup/MaskHeight known{/MaskHeight}{/Height}ifelse get def
+ /ImageMatrix[Width 0 0 Height neg 0 Height]def
+ /NComponents 1 def
+ /BitsPerComponent 1 def
+ /Decode DataDict dup/MaskD known{/MaskD}{[1 0]}ifelse get def
+ /DataSource Adobe_AGM_Core/AGMIMG_maskSource get def
+ currentdict end def
+ currentdict end
+ }if
+}def
+/use_mask
+{
+ dup/Mask known {dup/Mask get}{false}ifelse
+}def
+/imageormask
+{
+ begin
+ AGMIMG_init_common
+ SkipImageProc{
+ currentdict consumeimagedata
+ }
+ {
+ save mark
+ level2 AGMCORE_host_sep not and{
+ currentdict
+ Operator/imagemask eq DeviceN_PS2 not and{
+ imagemask
+ }{
+ AGMCORE_in_rip_sep currentoverprint and currentcolorspace 0 get/DeviceGray eq and{
+ [/Separation/Black/DeviceGray{}]setcolorspace
+ /Decode[Decode 1 get Decode 0 get]def
+ }if
+ use_mask{
+ process_mask image
+ }{
+ DeviceN_NoneName DeviceN_PS2 Indexed_DeviceN level3 not and or or AGMCORE_in_rip_sep and
+ {
+ Names convert_to_process not{
+ 2 dict begin
+ /imageDict xdf
+ /names_index 0 def
+ gsave
+ imageDict write_image_file{
+ Names{
+ dup(None)ne{
+ [/Separation 3 -1 roll/DeviceGray{1 exch sub}]setcolorspace
+ Operator imageDict read_image_file
+ names_index 0 eq{true setoverprint}if
+ /names_index names_index 1 add def
+ }{
+ pop
+ }ifelse
+ }forall
+ close_image_file
+ }if
+ grestore
+ end
+ }{
+ Operator/imagemask eq{
+ imagemask
+ }{
+ image
+ }ifelse
+ }ifelse
+ }{
+ Operator/imagemask eq{
+ imagemask
+ }{
+ image
+ }ifelse
+ }ifelse
+ }ifelse
+ }ifelse
+ }{
+ Width Height
+ Operator/imagemask eq{
+ Decode 0 get 1 eq Decode 1 get 0 eq and
+ ImageMatrix/DataSource load
+ /Adobe_AGM_OnHost_Seps where{
+ pop imagemask
+ }{
+ currentgray 1 ne{
+ currentdict imageormask_sys
+ }{
+ currentoverprint not{
+ 1 AGMCORE_&setgray
+ currentdict imageormask_sys
+ }{
+ currentdict ignoreimagedata
+ }ifelse
+ }ifelse
+ }ifelse
+ }{
+ BitsPerComponent ImageMatrix
+ MultipleDataSources{
+ 0 1 NComponents 1 sub{
+ DataSource exch get
+ }for
+ }{
+ /DataSource load
+ }ifelse
+ Operator/colorimage eq{
+ AGMCORE_host_sep{
+ MultipleDataSources level2 or NComponents 4 eq and{
+ AGMCORE_is_cmyk_sep{
+ MultipleDataSources{
+ /DataSource DataSource 0 get xcheck
+ {
+ [
+ DataSource 0 get/exec cvx
+ DataSource 1 get/exec cvx
+ DataSource 2 get/exec cvx
+ DataSource 3 get/exec cvx
+ /AGMCORE_get_ink_data cvx
+ ]cvx
+ }{
+ DataSource aload pop AGMCORE_get_ink_data
+ }ifelse def
+ }{
+ /DataSource
+ Width BitsPerComponent mul 7 add 8 idiv Height mul 4 mul
+ /DataSource load
+ filter_cmyk 0()/SubFileDecode filter def
+ }ifelse
+ /Decode[Decode 0 get Decode 1 get]def
+ /MultipleDataSources false def
+ /NComponents 1 def
+ /Operator/image def
+ invert_image_samples
+ 1 AGMCORE_&setgray
+ currentdict imageormask_sys
+ }{
+ currentoverprint not Operator/imagemask eq and{
+ 1 AGMCORE_&setgray
+ currentdict imageormask_sys
+ }{
+ currentdict ignoreimagedata
+ }ifelse
+ }ifelse
+ }{
+ MultipleDataSources NComponents AGMIMG_&colorimage
+ }ifelse
+ }{
+ true NComponents colorimage
+ }ifelse
+ }{
+ Operator/image eq{
+ AGMCORE_host_sep{
+ /DoImage true def
+ currentdict/HostSepColorImage known{HostSepColorImage not}{false}ifelse
+ {
+ AGMCORE_black_plate not Operator/imagemask ne and{
+ /DoImage false def
+ currentdict ignoreimagedata
+ }if
+ }if
+ 1 AGMCORE_&setgray
+ DoImage
+ {currentdict imageormask_sys}if
+ }{
+ use_mask{
+ process_mask image
+ }{
+ image
+ }ifelse
+ }ifelse
+ }{
+ Operator/knockout eq{
+ pop pop pop pop pop
+ currentcolorspace overprint_plate not{
+ knockout_unitsq
+ }if
+ }if
+ }ifelse
+ }ifelse
+ }ifelse
+ }ifelse
+ cleartomark restore
+ }ifelse
+ currentdict/_Filters known{_Filters AGMIMG_flushfilters}if
+ end
+}def
+/sep_imageormask
+{
+ /sep_colorspace_dict AGMCORE_gget begin
+ CSA map_csa
+ begin
+ AGMIMG_init_common
+ SkipImageProc{
+ currentdict consumeimagedata
+ }{
+ save mark
+ AGMCORE_avoid_L2_sep_space{
+ /Decode[Decode 0 get 255 mul Decode 1 get 255 mul]def
+ }if
+ AGMIMG_ccimage_exists
+ MappedCSA 0 get/DeviceCMYK eq and
+ currentdict/Components known and
+ Name()ne and
+ Name(All)ne and
+ Operator/image eq and
+ AGMCORE_producing_seps not and
+ level2 not and
+ {
+ Width Height BitsPerComponent ImageMatrix
+ [
+ /DataSource load/exec cvx
+ {
+ 0 1 2 index length 1 sub{
+ 1 index exch
+ 2 copy get 255 xor put
+ }for
+ }/exec cvx
+ ]cvx bind
+ MappedCSA 0 get/DeviceCMYK eq{
+ Components aload pop
+ }{
+ 0 0 0 Components aload pop 1 exch sub
+ }ifelse
+ Name findcmykcustomcolor
+ customcolorimage
+ }{
+ AGMCORE_producing_seps not{
+ level2{
+ //Adobe_AGM_Core/AGMCORE_pattern_paint_type get 2 ne AGMCORE_avoid_L2_sep_space not and currentcolorspace 0 get/Separation ne and{
+ [/Separation Name MappedCSA sep_proc_name exch dup 0 get 15 string cvs(/Device)anchorsearch{pop pop 0 get}{pop}ifelse exch load]setcolorspace_opt
+ /sep_tint AGMCORE_gget setcolor
+ }if
+ currentdict imageormask
+ }{
+ currentdict
+ Operator/imagemask eq{
+ imageormask
+ }{
+ sep_imageormask_lev1
+ }ifelse
+ }ifelse
+ }{
+ AGMCORE_host_sep{
+ Operator/knockout eq{
+ currentdict/ImageMatrix get concat
+ knockout_unitsq
+ }{
+ currentgray 1 ne{
+ AGMCORE_is_cmyk_sep Name(All)ne and{
+ level2{
+ Name AGMCORE_IsSeparationAProcessColor
+ {
+ Operator/imagemask eq{
+ //Adobe_AGM_Core/AGMCORE_pattern_paint_type get 2 ne{
+ /sep_tint AGMCORE_gget 1 exch sub AGMCORE_&setcolor
+ }if
+ }{
+ invert_image_samples
+ }ifelse
+ }{
+ //Adobe_AGM_Core/AGMCORE_pattern_paint_type get 2 ne{
+ [/Separation Name[/DeviceGray]
+ {
+ sep_colorspace_proc AGMCORE_get_ink_data
+ 1 exch sub
+ }bind
+ ]AGMCORE_&setcolorspace
+ /sep_tint AGMCORE_gget AGMCORE_&setcolor
+ }if
+ }ifelse
+ currentdict imageormask_sys
+ }{
+ currentdict
+ Operator/imagemask eq{
+ imageormask_sys
+ }{
+ sep_image_lev1_sep
+ }ifelse
+ }ifelse
+ }{
+ Operator/imagemask ne{
+ invert_image_samples
+ }if
+ currentdict imageormask_sys
+ }ifelse
+ }{
+ currentoverprint not Name(All)eq or Operator/imagemask eq and{
+ currentdict imageormask_sys
+ }{
+ currentoverprint not
+ {
+ gsave
+ knockout_unitsq
+ grestore
+ }if
+ currentdict consumeimagedata
+ }ifelse
+ }ifelse
+ }ifelse
+ }{
+ //Adobe_AGM_Core/AGMCORE_pattern_paint_type get 2 ne{
+ currentcolorspace 0 get/Separation ne{
+ [/Separation Name MappedCSA sep_proc_name exch 0 get exch load]setcolorspace_opt
+ /sep_tint AGMCORE_gget setcolor
+ }if
+ }if
+ currentoverprint
+ MappedCSA 0 get/DeviceCMYK eq and
+ Name AGMCORE_IsSeparationAProcessColor not and
+ //Adobe_AGM_Core/AGMCORE_pattern_paint_type get 2 ne{Name inRip_spot_has_ink not and}{false}ifelse
+ Name(All)ne and{
+ imageormask_l2_overprint
+ }{
+ currentdict imageormask
+ }ifelse
+ }ifelse
+ }ifelse
+ }ifelse
+ cleartomark restore
+ }ifelse
+ currentdict/_Filters known{_Filters AGMIMG_flushfilters}if
+ end
+ end
+}def
+/colorSpaceElemCnt
+{
+ mark currentcolor counttomark dup 2 add 1 roll cleartomark
+}bdf
+/devn_sep_datasource
+{
+ 1 dict begin
+ /dataSource xdf
+ [
+ 0 1 dataSource length 1 sub{
+ dup currentdict/dataSource get/exch cvx/get cvx/exec cvx
+ /exch cvx names_index/ne cvx[/pop cvx]cvx/if cvx
+ }for
+ ]cvx bind
+ end
+}bdf
+/devn_alt_datasource
+{
+ 11 dict begin
+ /convProc xdf
+ /origcolorSpaceElemCnt xdf
+ /origMultipleDataSources xdf
+ /origBitsPerComponent xdf
+ /origDecode xdf
+ /origDataSource xdf
+ /dsCnt origMultipleDataSources{origDataSource length}{1}ifelse def
+ /DataSource origMultipleDataSources
+ {
+ [
+ BitsPerComponent 8 idiv origDecode length 2 idiv mul string
+ 0 1 origDecode length 2 idiv 1 sub
+ {
+ dup 7 mul 1 add index exch dup BitsPerComponent 8 idiv mul exch
+ origDataSource exch get 0()/SubFileDecode filter
+ BitsPerComponent 8 idiv string/readstring cvx/pop cvx/putinterval cvx
+ }for
+ ]bind cvx
+ }{origDataSource}ifelse 0()/SubFileDecode filter def
+ [
+ origcolorSpaceElemCnt string
+ 0 2 origDecode length 2 sub
+ {
+ dup origDecode exch get dup 3 -1 roll 1 add origDecode exch get exch sub 2 BitsPerComponent exp 1 sub div
+ 1 BitsPerComponent 8 idiv{DataSource/read cvx/not cvx{0}/if cvx/mul cvx}repeat/mul cvx/add cvx
+ }for
+ /convProc load/exec cvx
+ origcolorSpaceElemCnt 1 sub -1 0
+ {
+ /dup cvx 2/add cvx/index cvx
+ 3 1/roll cvx/exch cvx 255/mul cvx/cvi cvx/put cvx
+ }for
+ ]bind cvx 0()/SubFileDecode filter
+ end
+}bdf
+/devn_imageormask
+{
+ /devicen_colorspace_dict AGMCORE_gget begin
+ CSA map_csa
+ 2 dict begin
+ dup
+ /srcDataStrs[3 -1 roll begin
+ AGMIMG_init_common
+ currentdict/MultipleDataSources known{MultipleDataSources{DataSource length}{1}ifelse}{1}ifelse
+ {
+ Width Decode length 2 div mul cvi
+ {
+ dup 65535 gt{1 add 2 div cvi}{exit}ifelse
+ }loop
+ string
+ }repeat
+ end]def
+ /dstDataStr srcDataStrs 0 get length string def
+ begin
+ AGMIMG_init_common
+ SkipImageProc{
+ currentdict consumeimagedata
+ }{
+ save mark
+ AGMCORE_producing_seps not{
+ level3 not{
+ Operator/imagemask ne{
+ /DataSource[[
+ DataSource Decode BitsPerComponent currentdict/MultipleDataSources known{MultipleDataSources}{false}ifelse
+ colorSpaceElemCnt/devicen_colorspace_dict AGMCORE_gget/TintTransform get
+ devn_alt_datasource 1/string cvx/readstring cvx/pop cvx]cvx colorSpaceElemCnt 1 sub{dup}repeat]def
+ /MultipleDataSources true def
+ /Decode colorSpaceElemCnt[exch{0 1}repeat]def
+ }if
+ }if
+ currentdict imageormask
+ }{
+ AGMCORE_host_sep{
+ Names convert_to_process{
+ CSA get_csa_by_name 0 get/DeviceCMYK eq{
+ /DataSource
+ Width BitsPerComponent mul 7 add 8 idiv Height mul 4 mul
+ DataSource Decode BitsPerComponent currentdict/MultipleDataSources known{MultipleDataSources}{false}ifelse
+ 4/devicen_colorspace_dict AGMCORE_gget/TintTransform get
+ devn_alt_datasource
+ filter_cmyk 0()/SubFileDecode filter def
+ /MultipleDataSources false def
+ /Decode[1 0]def
+ /DeviceGray setcolorspace
+ currentdict imageormask_sys
+ }{
+ AGMCORE_report_unsupported_color_space
+ AGMCORE_black_plate{
+ /DataSource
+ DataSource Decode BitsPerComponent currentdict/MultipleDataSources known{MultipleDataSources}{false}ifelse
+ CSA get_csa_by_name 0 get/DeviceRGB eq{3}{1}ifelse/devicen_colorspace_dict AGMCORE_gget/TintTransform get
+ devn_alt_datasource
+ /MultipleDataSources false def
+ /Decode colorSpaceElemCnt[exch{0 1}repeat]def
+ currentdict imageormask_sys
+ }{
+ gsave
+ knockout_unitsq
+ grestore
+ currentdict consumeimagedata
+ }ifelse
+ }ifelse
+ }
+ {
+ /devicen_colorspace_dict AGMCORE_gget/names_index known{
+ Operator/imagemask ne{
+ MultipleDataSources{
+ /DataSource[DataSource devn_sep_datasource/exec cvx]cvx def
+ /MultipleDataSources false def
+ }{
+ /DataSource/DataSource load dstDataStr srcDataStrs 0 get filter_devn def
+ }ifelse
+ invert_image_samples
+ }if
+ currentdict imageormask_sys
+ }{
+ currentoverprint not Operator/imagemask eq and{
+ currentdict imageormask_sys
+ }{
+ currentoverprint not
+ {
+ gsave
+ knockout_unitsq
+ grestore
+ }if
+ currentdict consumeimagedata
+ }ifelse
+ }ifelse
+ }ifelse
+ }{
+ currentdict imageormask
+ }ifelse
+ }ifelse
+ cleartomark restore
+ }ifelse
+ currentdict/_Filters known{_Filters AGMIMG_flushfilters}if
+ end
+ end
+ end
+}def
+/imageormask_l2_overprint
+{
+ currentdict
+ currentcmykcolor add add add 0 eq{
+ currentdict consumeimagedata
+ }{
+ level3{
+ currentcmykcolor
+ /AGMIMG_k xdf
+ /AGMIMG_y xdf
+ /AGMIMG_m xdf
+ /AGMIMG_c xdf
+ Operator/imagemask eq{
+ [/DeviceN[
+ AGMIMG_c 0 ne{/Cyan}if
+ AGMIMG_m 0 ne{/Magenta}if
+ AGMIMG_y 0 ne{/Yellow}if
+ AGMIMG_k 0 ne{/Black}if
+ ]/DeviceCMYK{}]setcolorspace
+ AGMIMG_c 0 ne{AGMIMG_c}if
+ AGMIMG_m 0 ne{AGMIMG_m}if
+ AGMIMG_y 0 ne{AGMIMG_y}if
+ AGMIMG_k 0 ne{AGMIMG_k}if
+ setcolor
+ }{
+ /Decode[Decode 0 get 255 mul Decode 1 get 255 mul]def
+ [/Indexed
+ [
+ /DeviceN[
+ AGMIMG_c 0 ne{/Cyan}if
+ AGMIMG_m 0 ne{/Magenta}if
+ AGMIMG_y 0 ne{/Yellow}if
+ AGMIMG_k 0 ne{/Black}if
+ ]
+ /DeviceCMYK{
+ AGMIMG_k 0 eq{0}if
+ AGMIMG_y 0 eq{0 exch}if
+ AGMIMG_m 0 eq{0 3 1 roll}if
+ AGMIMG_c 0 eq{0 4 1 roll}if
+ }
+ ]
+ 255
+ {
+ 255 div
+ mark exch
+ dup dup dup
+ AGMIMG_k 0 ne{
+ /sep_tint AGMCORE_gget mul MappedCSA sep_proc_name exch pop load exec 4 1 roll pop pop pop
+ counttomark 1 roll
+ }{
+ pop
+ }ifelse
+ AGMIMG_y 0 ne{
+ /sep_tint AGMCORE_gget mul MappedCSA sep_proc_name exch pop load exec 4 2 roll pop pop pop
+ counttomark 1 roll
+ }{
+ pop
+ }ifelse
+ AGMIMG_m 0 ne{
+ /sep_tint AGMCORE_gget mul MappedCSA sep_proc_name exch pop load exec 4 3 roll pop pop pop
+ counttomark 1 roll
+ }{
+ pop
+ }ifelse
+ AGMIMG_c 0 ne{
+ /sep_tint AGMCORE_gget mul MappedCSA sep_proc_name exch pop load exec pop pop pop
+ counttomark 1 roll
+ }{
+ pop
+ }ifelse
+ counttomark 1 add -1 roll pop
+ }
+ ]setcolorspace
+ }ifelse
+ imageormask_sys
+ }{
+ write_image_file{
+ currentcmykcolor
+ 0 ne{
+ [/Separation/Black/DeviceGray{}]setcolorspace
+ gsave
+ /Black
+ [{1 exch sub/sep_tint AGMCORE_gget mul}/exec cvx MappedCSA sep_proc_name cvx exch pop{4 1 roll pop pop pop 1 exch sub}/exec cvx]
+ cvx modify_halftone_xfer
+ Operator currentdict read_image_file
+ grestore
+ }if
+ 0 ne{
+ [/Separation/Yellow/DeviceGray{}]setcolorspace
+ gsave
+ /Yellow
+ [{1 exch sub/sep_tint AGMCORE_gget mul}/exec cvx MappedCSA sep_proc_name cvx exch pop{4 2 roll pop pop pop 1 exch sub}/exec cvx]
+ cvx modify_halftone_xfer
+ Operator currentdict read_image_file
+ grestore
+ }if
+ 0 ne{
+ [/Separation/Magenta/DeviceGray{}]setcolorspace
+ gsave
+ /Magenta
+ [{1 exch sub/sep_tint AGMCORE_gget mul}/exec cvx MappedCSA sep_proc_name cvx exch pop{4 3 roll pop pop pop 1 exch sub}/exec cvx]
+ cvx modify_halftone_xfer
+ Operator currentdict read_image_file
+ grestore
+ }if
+ 0 ne{
+ [/Separation/Cyan/DeviceGray{}]setcolorspace
+ gsave
+ /Cyan
+ [{1 exch sub/sep_tint AGMCORE_gget mul}/exec cvx MappedCSA sep_proc_name cvx exch pop{pop pop pop 1 exch sub}/exec cvx]
+ cvx modify_halftone_xfer
+ Operator currentdict read_image_file
+ grestore
+ }if
+ close_image_file
+ }{
+ imageormask
+ }ifelse
+ }ifelse
+ }ifelse
+}def
+/indexed_imageormask
+{
+ begin
+ AGMIMG_init_common
+ save mark
+ currentdict
+ AGMCORE_host_sep{
+ Operator/knockout eq{
+ /indexed_colorspace_dict AGMCORE_gget dup/CSA known{
+ /CSA get get_csa_by_name
+ }{
+ /Names get
+ }ifelse
+ overprint_plate not{
+ knockout_unitsq
+ }if
+ }{
+ Indexed_DeviceN{
+ /devicen_colorspace_dict AGMCORE_gget dup/names_index known exch/Names get convert_to_process or{
+ indexed_image_lev2_sep
+ }{
+ currentoverprint not{
+ knockout_unitsq
+ }if
+ currentdict consumeimagedata
+ }ifelse
+ }{
+ AGMCORE_is_cmyk_sep{
+ Operator/imagemask eq{
+ imageormask_sys
+ }{
+ level2{
+ indexed_image_lev2_sep
+ }{
+ indexed_image_lev1_sep
+ }ifelse
+ }ifelse
+ }{
+ currentoverprint not{
+ knockout_unitsq
+ }if
+ currentdict consumeimagedata
+ }ifelse
+ }ifelse
+ }ifelse
+ }{
+ level2{
+ Indexed_DeviceN{
+ /indexed_colorspace_dict AGMCORE_gget begin
+ }{
+ /indexed_colorspace_dict AGMCORE_gget dup null ne
+ {
+ begin
+ currentdict/CSDBase known{CSDBase/CSD get_res/MappedCSA get}{CSA}ifelse
+ get_csa_by_name 0 get/DeviceCMYK eq ps_level 3 ge and ps_version 3015.007 lt and
+ AGMCORE_in_rip_sep and{
+ [/Indexed[/DeviceN[/Cyan/Magenta/Yellow/Black]/DeviceCMYK{}]HiVal Lookup]
+ setcolorspace
+ }if
+ end
+ }
+ {pop}ifelse
+ }ifelse
+ imageormask
+ Indexed_DeviceN{
+ end
+ }if
+ }{
+ Operator/imagemask eq{
+ imageormask
+ }{
+ indexed_imageormask_lev1
+ }ifelse
+ }ifelse
+ }ifelse
+ cleartomark restore
+ currentdict/_Filters known{_Filters AGMIMG_flushfilters}if
+ end
+}def
+/indexed_image_lev2_sep
+{
+ /indexed_colorspace_dict AGMCORE_gget begin
+ begin
+ Indexed_DeviceN not{
+ currentcolorspace
+ dup 1/DeviceGray put
+ dup 3
+ currentcolorspace 2 get 1 add string
+ 0 1 2 3 AGMCORE_get_ink_data 4 currentcolorspace 3 get length 1 sub
+ {
+ dup 4 idiv exch currentcolorspace 3 get exch get 255 exch sub 2 index 3 1 roll put
+ }for
+ put setcolorspace
+ }if
+ currentdict
+ Operator/imagemask eq{
+ AGMIMG_&imagemask
+ }{
+ use_mask{
+ process_mask AGMIMG_&image
+ }{
+ AGMIMG_&image
+ }ifelse
+ }ifelse
+ end end
+}def
+ /OPIimage
+ {
+ dup type/dicttype ne{
+ 10 dict begin
+ /DataSource xdf
+ /ImageMatrix xdf
+ /BitsPerComponent xdf
+ /Height xdf
+ /Width xdf
+ /ImageType 1 def
+ /Decode[0 1 def]
+ currentdict
+ end
+ }if
+ dup begin
+ /NComponents 1 cdndf
+ /MultipleDataSources false cdndf
+ /SkipImageProc{false}cdndf
+ /Decode[
+ 0
+ currentcolorspace 0 get/Indexed eq{
+ 2 BitsPerComponent exp 1 sub
+ }{
+ 1
+ }ifelse
+ ]cdndf
+ /Operator/image cdndf
+ end
+ /sep_colorspace_dict AGMCORE_gget null eq{
+ imageormask
+ }{
+ gsave
+ dup begin invert_image_samples end
+ sep_imageormask
+ grestore
+ }ifelse
+ }def
+/cachemask_level2
+{
+ 3 dict begin
+ /LZWEncode filter/WriteFilter xdf
+ /readBuffer 256 string def
+ /ReadFilter
+ currentfile
+ 0(%EndMask)/SubFileDecode filter
+ /ASCII85Decode filter
+ /RunLengthDecode filter
+ def
+ {
+ ReadFilter readBuffer readstring exch
+ WriteFilter exch writestring
+ not{exit}if
+ }loop
+ WriteFilter closefile
+ end
+}def
+/spot_alias
+{
+ /mapto_sep_imageormask
+ {
+ dup type/dicttype ne{
+ 12 dict begin
+ /ImageType 1 def
+ /DataSource xdf
+ /ImageMatrix xdf
+ /BitsPerComponent xdf
+ /Height xdf
+ /Width xdf
+ /MultipleDataSources false def
+ }{
+ begin
+ }ifelse
+ /Decode[/customcolor_tint AGMCORE_gget 0]def
+ /Operator/image def
+ /SkipImageProc{false}def
+ currentdict
+ end
+ sep_imageormask
+ }bdf
+ /customcolorimage
+ {
+ Adobe_AGM_Image/AGMIMG_colorAry xddf
+ /customcolor_tint AGMCORE_gget
+ <<
+ /Name AGMIMG_colorAry 4 get
+ /CSA[/DeviceCMYK]
+ /TintMethod/Subtractive
+ /TintProc null
+ /MappedCSA null
+ /NComponents 4
+ /Components[AGMIMG_colorAry aload pop pop]
+ >>
+ setsepcolorspace
+ mapto_sep_imageormask
+ }ndf
+ Adobe_AGM_Image/AGMIMG_&customcolorimage/customcolorimage load put
+ /customcolorimage
+ {
+ Adobe_AGM_Image/AGMIMG_override false put
+ current_spot_alias{dup 4 get map_alias}{false}ifelse
+ {
+ false set_spot_alias
+ /customcolor_tint AGMCORE_gget exch setsepcolorspace
+ pop
+ mapto_sep_imageormask
+ true set_spot_alias
+ }{
+ //Adobe_AGM_Image/AGMIMG_&customcolorimage get exec
+ }ifelse
+ }bdf
+}def
+/snap_to_device
+{
+ 6 dict begin
+ matrix currentmatrix
+ dup 0 get 0 eq 1 index 3 get 0 eq and
+ 1 index 1 get 0 eq 2 index 2 get 0 eq and or exch pop
+ {
+ 1 1 dtransform 0 gt exch 0 gt/AGMIMG_xSign? exch def/AGMIMG_ySign? exch def
+ 0 0 transform
+ AGMIMG_ySign?{floor 0.1 sub}{ceiling 0.1 add}ifelse exch
+ AGMIMG_xSign?{floor 0.1 sub}{ceiling 0.1 add}ifelse exch
+ itransform/AGMIMG_llY exch def/AGMIMG_llX exch def
+ 1 1 transform
+ AGMIMG_ySign?{ceiling 0.1 add}{floor 0.1 sub}ifelse exch
+ AGMIMG_xSign?{ceiling 0.1 add}{floor 0.1 sub}ifelse exch
+ itransform/AGMIMG_urY exch def/AGMIMG_urX exch def
+ [AGMIMG_urX AGMIMG_llX sub 0 0 AGMIMG_urY AGMIMG_llY sub AGMIMG_llX AGMIMG_llY]concat
+ }{
+ }ifelse
+ end
+}def
+level2 not{
+ /colorbuf
+ {
+ 0 1 2 index length 1 sub{
+ dup 2 index exch get
+ 255 exch sub
+ 2 index
+ 3 1 roll
+ put
+ }for
+ }def
+ /tint_image_to_color
+ {
+ begin
+ Width Height BitsPerComponent ImageMatrix
+ /DataSource load
+ end
+ Adobe_AGM_Image begin
+ /AGMIMG_mbuf 0 string def
+ /AGMIMG_ybuf 0 string def
+ /AGMIMG_kbuf 0 string def
+ {
+ colorbuf dup length AGMIMG_mbuf length ne
+ {
+ dup length dup dup
+ /AGMIMG_mbuf exch string def
+ /AGMIMG_ybuf exch string def
+ /AGMIMG_kbuf exch string def
+ }if
+ dup AGMIMG_mbuf copy AGMIMG_ybuf copy AGMIMG_kbuf copy pop
+ }
+ addprocs
+ {AGMIMG_mbuf}{AGMIMG_ybuf}{AGMIMG_kbuf}true 4 colorimage
+ end
+ }def
+ /sep_imageormask_lev1
+ {
+ begin
+ MappedCSA 0 get dup/DeviceRGB eq exch/DeviceCMYK eq or has_color not and{
+ {
+ 255 mul round cvi GrayLookup exch get
+ }currenttransfer addprocs settransfer
+ currentdict imageormask
+ }{
+ /sep_colorspace_dict AGMCORE_gget/Components known{
+ MappedCSA 0 get/DeviceCMYK eq{
+ Components aload pop
+ }{
+ 0 0 0 Components aload pop 1 exch sub
+ }ifelse
+ Adobe_AGM_Image/AGMIMG_k xddf
+ Adobe_AGM_Image/AGMIMG_y xddf
+ Adobe_AGM_Image/AGMIMG_m xddf
+ Adobe_AGM_Image/AGMIMG_c xddf
+ AGMIMG_y 0.0 eq AGMIMG_m 0.0 eq and AGMIMG_c 0.0 eq and{
+ {AGMIMG_k mul 1 exch sub}currenttransfer addprocs settransfer
+ currentdict imageormask
+ }{
+ currentcolortransfer
+ {AGMIMG_k mul 1 exch sub}exch addprocs 4 1 roll
+ {AGMIMG_y mul 1 exch sub}exch addprocs 4 1 roll
+ {AGMIMG_m mul 1 exch sub}exch addprocs 4 1 roll
+ {AGMIMG_c mul 1 exch sub}exch addprocs 4 1 roll
+ setcolortransfer
+ currentdict tint_image_to_color
+ }ifelse
+ }{
+ MappedCSA 0 get/DeviceGray eq{
+ {255 mul round cvi ColorLookup exch get 0 get}currenttransfer addprocs settransfer
+ currentdict imageormask
+ }{
+ MappedCSA 0 get/DeviceCMYK eq{
+ currentcolortransfer
+ {255 mul round cvi ColorLookup exch get 3 get 1 exch sub}exch addprocs 4 1 roll
+ {255 mul round cvi ColorLookup exch get 2 get 1 exch sub}exch addprocs 4 1 roll
+ {255 mul round cvi ColorLookup exch get 1 get 1 exch sub}exch addprocs 4 1 roll
+ {255 mul round cvi ColorLookup exch get 0 get 1 exch sub}exch addprocs 4 1 roll
+ setcolortransfer
+ currentdict tint_image_to_color
+ }{
+ currentcolortransfer
+ {pop 1}exch addprocs 4 1 roll
+ {255 mul round cvi ColorLookup exch get 2 get}exch addprocs 4 1 roll
+ {255 mul round cvi ColorLookup exch get 1 get}exch addprocs 4 1 roll
+ {255 mul round cvi ColorLookup exch get 0 get}exch addprocs 4 1 roll
+ setcolortransfer
+ currentdict tint_image_to_color
+ }ifelse
+ }ifelse
+ }ifelse
+ }ifelse
+ end
+ }def
+ /sep_image_lev1_sep
+ {
+ begin
+ /sep_colorspace_dict AGMCORE_gget/Components known{
+ Components aload pop
+ Adobe_AGM_Image/AGMIMG_k xddf
+ Adobe_AGM_Image/AGMIMG_y xddf
+ Adobe_AGM_Image/AGMIMG_m xddf
+ Adobe_AGM_Image/AGMIMG_c xddf
+ {AGMIMG_c mul 1 exch sub}
+ {AGMIMG_m mul 1 exch sub}
+ {AGMIMG_y mul 1 exch sub}
+ {AGMIMG_k mul 1 exch sub}
+ }{
+ {255 mul round cvi ColorLookup exch get 0 get 1 exch sub}
+ {255 mul round cvi ColorLookup exch get 1 get 1 exch sub}
+ {255 mul round cvi ColorLookup exch get 2 get 1 exch sub}
+ {255 mul round cvi ColorLookup exch get 3 get 1 exch sub}
+ }ifelse
+ AGMCORE_get_ink_data currenttransfer addprocs settransfer
+ currentdict imageormask_sys
+ end
+ }def
+ /indexed_imageormask_lev1
+ {
+ /indexed_colorspace_dict AGMCORE_gget begin
+ begin
+ currentdict
+ MappedCSA 0 get dup/DeviceRGB eq exch/DeviceCMYK eq or has_color not and{
+ {HiVal mul round cvi GrayLookup exch get HiVal div}currenttransfer addprocs settransfer
+ imageormask
+ }{
+ MappedCSA 0 get/DeviceGray eq{
+ {HiVal mul round cvi Lookup exch get HiVal div}currenttransfer addprocs settransfer
+ imageormask
+ }{
+ MappedCSA 0 get/DeviceCMYK eq{
+ currentcolortransfer
+ {4 mul HiVal mul round cvi 3 add Lookup exch get HiVal div 1 exch sub}exch addprocs 4 1 roll
+ {4 mul HiVal mul round cvi 2 add Lookup exch get HiVal div 1 exch sub}exch addprocs 4 1 roll
+ {4 mul HiVal mul round cvi 1 add Lookup exch get HiVal div 1 exch sub}exch addprocs 4 1 roll
+ {4 mul HiVal mul round cvi Lookup exch get HiVal div 1 exch sub}exch addprocs 4 1 roll
+ setcolortransfer
+ tint_image_to_color
+ }{
+ currentcolortransfer
+ {pop 1}exch addprocs 4 1 roll
+ {3 mul HiVal mul round cvi 2 add Lookup exch get HiVal div}exch addprocs 4 1 roll
+ {3 mul HiVal mul round cvi 1 add Lookup exch get HiVal div}exch addprocs 4 1 roll
+ {3 mul HiVal mul round cvi Lookup exch get HiVal div}exch addprocs 4 1 roll
+ setcolortransfer
+ tint_image_to_color
+ }ifelse
+ }ifelse
+ }ifelse
+ end end
+ }def
+ /indexed_image_lev1_sep
+ {
+ /indexed_colorspace_dict AGMCORE_gget begin
+ begin
+ {4 mul HiVal mul round cvi Lookup exch get HiVal div 1 exch sub}
+ {4 mul HiVal mul round cvi 1 add Lookup exch get HiVal div 1 exch sub}
+ {4 mul HiVal mul round cvi 2 add Lookup exch get HiVal div 1 exch sub}
+ {4 mul HiVal mul round cvi 3 add Lookup exch get HiVal div 1 exch sub}
+ AGMCORE_get_ink_data currenttransfer addprocs settransfer
+ currentdict imageormask_sys
+ end end
+ }def
+}if
+end
+systemdict/setpacking known
+{setpacking}if
+%%EndResource
+currentdict Adobe_AGM_Utils eq {end} if
+%%EndProlog
+%%BeginSetup
+Adobe_AGM_Utils begin
+2 2010 Adobe_AGM_Core/ds gx
+Adobe_CoolType_Core/ds get exec
+Adobe_AGM_Image/ds gx
+[/NamespacePush pdfmark_5
+[/_objdef {Doc_Metadata} /type /stream /OBJ pdfmark_5
+[{Doc_Metadata} 959 (% &end XMP packet& %) ReadBypdfmark_5_string
+<?xpacket begin='' id='W5M0MpCehiHzreSzNTczkc9d'?>
+<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.6-c015 84.158975, 2016/02/13-02:40:29 ">
+ <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+ <rdf:Description rdf:about=""
+ xmlns:xmp="http://ns.adobe.com/xap/1.0/"
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/"
+ xmlns:pdf="http://ns.adobe.com/pdf/1.3/"
+ xmlns:adhocwf="http://ns.adobe.com/AcrobatAdhocWorkflow/1.0/"
+ xmp:ModifyDate="2016-09-13T08:27:42-05:00"
+ xmp:CreateDate="2016-09-04T06:32:01-05:00"
+ xmp:MetadataDate="2016-09-13T08:27:42-05:00"
+ xmp:CreatorTool="Adobe Acrobat 15.17"
+ dc:format="application/pdf"
+ xmpMM:DocumentID="uuid:7da0b9f3-65f4-47d1-9f2d-d0048d63a121"
+ xmpMM:InstanceID="uuid:3f49b776-381e-416b-a5ca-0219f8692552"
+ pdf:Producer="Adobe Acrobat 15.17 Image Conversion Plug-in"
+ adhocwf:state="1"
+ adhocwf:version="1.1"/>
+ </rdf:RDF>
+</x:xmpmeta>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<?xpacket end='w'?>
+
+
+% &end XMP packet& %
+
+[{Doc_Metadata} 2 dict begin /Type /Metadata def /Subtype /XML def currentdict end /PUT pdfmark_5
+[/Document 1 dict begin /Metadata {Doc_Metadata} def currentdict end /BDC pdfmark_5
+[/NamespacePop pdfmark_5
+currentdict Adobe_AGM_Utils eq {end} if
+%%EndSetup
+%%Page: 1 1
+%%EndPageComments
+%%BeginPageSetup
+Adobe_AGM_Utils begin
+Adobe_AGM_Core/ps gx
+Adobe_AGM_Core/capture_mysetup gx
+Adobe_AGM_Utils/capture_cpd gx
+Adobe_CoolType_Core/ps get exec
+Adobe_AGM_Image/ps gx
+%%EndPageSetup
+1 -1 scale 0 -228.48 translate
+pgsv
+[1 0 0 1 0 0 ]ct
+gsave
+np
+gsave
+0 0 mo
+0 228.48 li
+264.48 228.48 li
+264.48 0 li
+cp
+clp
+0 228.48 mo
+264.48 228.48 li
+264.48 0 li
+0 0 li
+cp
+false sop
+/0
+[/DeviceRGB] /CSA add_res
+/0 /CSA get_res setcolorspace
+gsave
+clp
+[1 0 0 -1 0 228.48 ]ct
+[264.48 0 0 228.48 0 -1.52588e-5 ]ct
+snap_to_device
+<<
+/T 1
+/W 551
+/H 476
+/M[551 0 0 -476 0 476 ]
+/BC 8
+/D[0 1 0 1 0 1 ]
+/DS [cf /ASCII85Decode fl dup/DCTDecode fl]
+/O 2
+>>
+%%BeginBinary: 1
+img
+s4IA0!"_al8O`[\!W`:e!1!Tbs53kg8k)BA!!*-%!1!VN!!*&d%@g7.Dffo=BQ%i41G1?]3'p22"76Fn
+ATMd+F`_>9D?'Y:!"]-r!!!!"!!*(c!!!!"!!,&G8PK<s(e.UM7r3*Q@;I&[BkM+$Bl7Q+6#L=OAH2]1
+!!E9%!$4*d8PK=*&k5tG7r3*Q@;I&PCijB5F_#%`!!!!%!!!!?3'p22"7lmsEbTE5+@^0UB6+%Q!!rW*
+z!!!$"3'p22":>W+DfBuBBkM+$+@^0UB)ho3!!*'"3'p22-P-ta@;oXmATME*:i^8fF<F%h@:sW]!!!!
++!!*'"z!!5,H8PK<[(IN+WDfQsk@;KOtDf0,/;e:&mBl7R)!!!!i!&%qr!!*(9AnD#Iz!!*'QAnD#D!2
+5gL!!WE'!!!!"!&=NS!!*('!!!!'z!!*'W!!!!"!%e0N!!WE'!!!!"3'p22"8E["Des?4+B3AiDKBE$E
+Ze:lFED57B6+%Q!,qo<s8W-!s8W-!s8W-!s8W-!s8W-!s8N2bzs8W-!s8W-!s8W-!s8W-!s8W-!s8N2b
+zs8W-!s8W-!s8W-!s8W-!s8W-!s8N2bzs8W-!s8W-!s8W-!s8W-!s8W-!s8N2b!!"uF8PK<n#"NfMA7]
+f^!!!!1!!!!"!!!'c!!!'cz3'p22"<J"P;G83OG%G]7Bk1dr!!!!%z3'p22"<%JCCh[BjErZ1?!+u93!
+!WE'zz!SdYT![dsJ!!<43!,hjT!!!!"zzzz!!!!"zz!!!'J!!!&Tzzzzzzzz!!"uF8PK="&P5>W+B<<$
+@:s4aA0=?X@:oQ?!!**#3'p22";DYG@<lF)+A"sD7qHRLEaa'.EZd\WF(G=O!!E9%!!5,H8PK<r'i&=a
++BN8pA8c[5+B3#sD.7BkBl!bL$3C2-!!*'"!,qo<!+>j-!DiarIo$+F$0D4)!!3,Ps53kg8k)BA!!*-%
+!([)\!!*&e!"M;*Ddm8XA:OX[!!3,S!/(=\#RC\B#Rh"G$kWjS$P=*a$k*X](_[Pt',)2p$k*OQ$k*^V
+$k*OQ$k*OQ$k*OQ$k*OQ$k*OQ$k*OQ$k*OF%1<OQ%LisZ%M0<a%Ls0e%LrsY'G1`^$k*OV&I]'V$k*OV
+$k*OQ$k*OQ$k*OQ$k*OQ$k*OQ$k*OQ$k*OQs1eUH#QS95E!$+b!!3`5!tbS6h#IQX#QM^C56(Za"T\W)
+!<E3$z!!!*$!<NB-"pYD?$4?k7!<iK)!<E3%z!!!!"!!36*"U52;#mq%O!!*3'!s/T,"U>5;"To/h!<<
+05!sBb[0a0j?@1si)JMIEDOeK$H,:""%_.#2WEe;\+#:5O3nDWnIF#=`-Z@aJlP>l']_P;32(Xc=CAb*
+0\_p`bgo0t*lUkQ1@`73l?V7":mjn2YdG(u<[[`6n\p,>KCB6T,tVmj^ukP#Pg!WiB("9\f0"U52:"pH
+jb!!3`7+YaT45uD'1+qk,8JWUY?YsK\O;UOti,\#_QJs&K"'k;;AnKeATU9]CV-8iZg7$CTF(M#s72KW
+Nio!="edrj^B7[0^&[$ASZjRf:V`RX)C<b?N0QDV+1f&lZR2b-q^GDDN_\&\O&!"8r1!!3`7&HG#qd;*
+/2N=$o%5M+tR^c3=4a^csVh@Z1j)E@Qm!8gXWRYGZ$E[*n_Le7:qVAHn_GTLMl>(VpEJ%ZGqGle"-o,^
+O<W:atqg>PE"WWqWKqjc#^M"g;;He1CWY0&$Dlgd]ZFdB`B5J#[BT==eC.h&Yu3=R&,Bl8S9nP0/DEHA
+_+:VYDtaL0QBa2iJ(=Tat^U>P@fg8nSP7d@AR>YeXbo^$#>I4%q5^cpZ5WRL]&V."30c5Mh?F9p8b2)k
+oX7?)/tP1gHDPe^$4P+Vd$gD&<@Oi5Qe8n+\fXo%c[#>[0ATXFL0[?q"$o*#`-5OT]LVVfOPe?'M*U#"
+Hf!^D^qMq9aj:K5<QE;^`\hXK/]lR]KWB)_k!?M=C!f;r3HU%g6MlZ]9(9*8md)-)]En6,$W/(aOo?Vr
+=\!Q?/d;MR9^fJ4Mb>TW^BT?]#M:!R\GJ"fcWa(QXIHWjkh#[;,"[R#=Oh?OLMhq2BZ2F^M$I?F=Wo_,
+u\p=F.MYApD6e+R"Zci3tM;toYW-`3U\RfMg>5k%#G^+\OfCl5/KLlO<abMB0=$3(!;lKn/eM]1_=48C
+lp:2W4>I_O2'\XT&(+eZ8l=';;j?#BR=YL2q3Y0RS/WUj@K;n23J%<FISNGe.NF'hl"KESdJN5dsmM;3
+^W?mu)EYi*;=oRImATB@Ya]hIOd"X"FQ#,nO$dHJJAI2VLITDXV0)78mUnDO8a6j5Kjd-<ad<Gce2Lsh
+"^RVD9k!,A!9Zld+!,`OuXnh+_DATkDYi8h5&.)(Pb_jX$o!(?he--N-&k_SD_MWFcEB4GJ[NcP3(+4P
+0ccMC>DQF5S63PV>4he2joWgsup=R][X>Vh6'6VjVl@=P4eUjJ'cG:d'ceD)cgQlTBop!uUEO0CY%eWl
+>O6_7INU'lb$BP#tI,?UUG1-J@M5`bPaJ*N;>4^FV!2PGRjEN-),W*!0hjiqil*D"uNgs=e\+'8!u*DP
+s0K$)9o+5*[!rr>W3pr'WsZ!_^Yh2HS1F-pT]*P&?IrrAhgY,CR(EnnljFY@SSN]j/eJ,Xh)GTO,nM[q
+Xo=$%+<+6,GX6RkDb2,PD98ki3oCV]NK6cf5jPE-DWrrE)Il%59d$6"9sJp@>/8:`%Y+j!^cjGbWAafU
+:#^#!!)m3!?RBH%6dG+e>05OY^Lg=RM]*J!&s@ug41-!"B"g?+$p&:TY1^O9\d%[&WZA#`ppBlLYV4B_
+Xorjc7)eZlK#6luo\Wbb5d<@EY'NpB*SOI'Hq)Eg^104ujU?fjTE'kWF$ScH,WZl+&(J*NK0\u/;OGp`
+BT>tra`!(^o*!.3K"PQ%[m?U/=Kcm3@BiWo%>=[nG\[iJbeGm6eG_liP.ffBgKp</F41?eHl^Y76LhLG
+MjX/3\HpfQ),ecY3@6Qugah"T!A3UU#J*u*X0*Fha7HUWtK,da1bC6-[=+1qM,C54[`>!ZqW["UUsJ36
+Jmc#XN>._eAHQ2^hUf#Gh8+A4P1jb2nDri)p5/"SA78:>,\fL)%bX;/'uR9!5gRUOSrDdi-"\s/sr9E<
+g`-QSF;:'t`Cs3p4D<QK6"F/\64T\=`/%s'3!cfj7qSmF_&`dR5mW:n$/KCb\pZDN+cmR"dd0K"OO,M`
+$Bo?$a[rO\V3M@<@gI?[G1c!]gBoRVYcqFK!p'IH<87t[T*%7G*9$HC7'!?>i:&+E1VGC=]C8I4aIR(*
+s#--[[uQBFK(V*co3;fgUbqaT_+RJY7#dC![Zlm5'2*o@EV+p7rqMdHmVJ[e7hpb=@g-^&ULJDMDaWgg
+Vo\>6AI0FsV4/[)"p24^o:I*]S,P%V?C8`1^LdSBSa!+9TC8p+6'dp_@E.AoGc)t_lLo\9:tBrd_?m\\
+Ri;2;WA0RFo-/NWaY'%(9/B'pW^c2=9[;+a!>!It.!d`m'H3f4i*UB>k`o&'9`J+I:,<Lcqho\r5e5Tf
+mobK%+sITB>G!"!0lqQ(a'?h@Q4^UCMM*h@kpb6Ql6j=nTH4EX'7H2T=s#?/%Jqa5#p?#"K6*",7g1&$
+[M]oR'i?opn*S%Jj1Du#]8Ej&Ee5&p<1?+V$G@RGtM)kFlpc>M/Y/-XTP7)5&f6?%'AUpCsM2$[miaaq
+9+R8@t?Gb4.KHQWq%T**)h:*r*OH\RV)+d\1anrO,mAie*)X=YZBdB`gE/Sdb>:9--R_CQ10Nor7@rkh
+d6,:^dV'\uu1VT-8S>K!qog.'ZrnQ?l*UZM-K$*E:\i?c#f"mfXGCGLFqm!%(R4`=parr>iCJ'F`+$fN
+UldD,CD6URI7ciE7LKc;eLE"-HgVirCs?u$jr]BH?Y5.UFCe%7tU+94G$cK/Kf=FbqF=Rf<n+?1#RJTp
+q:eG^#;J,e&:PPkf[ej&h#C#@>Xn6R<%F?WR_(/&l*nirmTn3<0?1]0JSTDGH=)bE2+IFrW4;[^F)9M\
+aHa)jClPC=g&6:`K!m^@NfX2"J*nQmK(+V2,*O6MH!/`2hOG.o'u!#GS7qNik*&l@Zb^5R\WdHfiTIk%
+j5dV&6@q%oACY")p]`aAc!3'p22"<e[aATDj+Df-\-Df'H%FD52uCh\!:+DG_*DZBb;!*'"!!!**#!!!
+N05lbEqDZF5HAH3hQ:]P//DZFkZDZFhYBE2rNDu]k<'*(;uA,pNJ@K9s>+954<BE2rNF9$4ZEr]kRDZF
+_V+94;"/c[R*!!!$"3'p22"9o9,:dmks;0?;`BlnV#!!!!(!!*'"!!**#s6]js6"FnCAH67k!!!!"s4[
+N@!"9,=#RLbF#mh"P$OR7R'b:]]%i#op',;/o(_I/b$k*OQ&I]'V$k*OQ$k*OQ$k*OQ$k*OQ$k*OQ$k*
+OQ%0,&^6NIW($OmRT&.T0]'FkT_'GM#e%Ls0b$k*OQ$kX'[$k*OQ$kWmV$k*OQ$k*OQ$k*OQ$k*OQ$k*
+OQ$k*OQ$k30O!"fJ;g]Ai*!?qLF&HMtG!WU(<*rl9A"T\W)!<E3$z!!!!"!WrQ/"pYD?$4HmP!4<@<!W
+`B*!X&T/"U"r.!!.KK!WrE*&Hrdj0gQ!W;.0\RE>10ZOeE%*6F"?A;UOtZ1LbBV#mqFa(`=5<-7:2j.P
+s"@2`NfY6UX@47n?3D;cHat='/U/@q9._B4u!oF*)PJGBeCZK7nr5LPUeEP*;,qQC!u,R\HRQV5C/hWN
+*81['d?O\@K2f_o0O6a2lBFdaQ^rf%8R-g>V&OjQ5OekiqC&o(2MHp@n@XqZ"J6*ru?D!<E3%!<E3%!<
+<*"!!!!"!WrQ/"pYD?$4HmP!4<C=!W`?*"9Sc3"U"r.!<RHF!<N?8"9fr'"qj4!#@VTc+u4]T'LIqUZ,
+$_k1K*]W@WKj'(*k`q-1Mcg)&ahL-n-W'2E*TU3^Z;(7Rp!@8lJ\h<``C+>%;)SAnPdkC3+K>G'A1VH@
+gd&KnbA=M2II[Pa.Q$R$jD;USO``Vl6SpZEppG[^WcW]#)A'`Q#s>ai`&\eCE.%f\,!<j5f=akNM0qo(
+2MHp@n@XqZ#7L$j-M1!YGMH!'^IpTE@eJj79#H$;nc.TV$rf<uq;@$;o,Q?C3^u[2hLgPOFB7^TB.fT3
+;43Tn!,m.XIAWJb>iZoGo@\X46-qSGrRM1&+\e3`$t]kOPSdP8'VSr2H%l5),ne$qLnO31pPAS1hAdn.
+'/hpJfV]HhX<<\f;VQPpc`no7KZN(<Gt![/^4u4EI*.7WZYH*#qnDlhSm0Hi):.UqtgsDY0S8e+'47Nb
+QCg63sK45G\>t!,&\grcF^@r$gIk3`6?A5+2,BELK82pSGYPJI@%!k("m8SghPuPQc[RTSsK>N_/r@^s
+<]'!5[iq1I1me*AR=eJWIZu(Q=CH&^;;7H;^>/!!MnE741E970#mj)hfTRrr>TK;TJON,lHGp3e0p)'S
+MQ^HfNP5Aq1'$TQg++!s8U^"k3eLbp__9FnWd(cjV>A'VJ8G.=4m)*@Lmf@h]mi.*"?F!csfTifc@fdZ
+dWNTP2:HT!VsW\<mJNU7=\6;G[Fu!g0sA$2j$V*+ja.o8e2#NX+C]ViEe)7OT=0!oRUk!Q"*Ocpg=I8l
+2NI!gmXJi&NqKq,gHiB:`fq0;S]BUb>%`2C:C#V:kq0MG8cr4T!JD#F(UO&Gd&5[DtX,$hsXFTa5S&hS
+-?qo%>"3Zqrh(Q3VJ'!6#AB!KI=3bC11M-pTL_a31"2dnXsWNd:"W%TOA(rI2,`$V_Yf8q'>Oo121_*&
+&bh'^e9HOAid>!#[,Sd*_5Q6(e3WOo<iUW6b%5^o=I-\;nKG!Kb4CC+;nsRUgnhf,s$K-QGqaN#H$_kt
+&Jc0hOIe;?9)HktXCe.A.[0]tJ(pJa,<pOj7Z(l,6C[L+0nJ^6FDT3"@auJ/Yr=+;))A*q]"a&P*04^M
+h\f&jI:$@!Un!;;.A=!YZ9\%VQm%'G"'V)EZAgN[[68*ji]d3"Bq!0p3qLG9#d/Bae"q_ZR;!3`(t7DK
+'V*0-dFTJ.N3)EJ$RCRQ\th!.7o?"XJ^Z5O]?_d_[dfYbWX*#O+JR_8)m0;ceU/;a<'N`tW1Zidc!@:b
+)PdO%N?k8glhN$OaG9C,(9*jAPkO!KQfCputBUXY'g&TL'7T7OTIF:]b.AC0irY>\$`/!Ld875U96ka?
+Hs2;KntV!HMiRks-9Qa#qf1M?!f#kbT!/69*#f/pO&\8$r=6UD1(iJ.,;6nN]37ciR()oMX$;@m'H!;Y
+HiP*2I<ip(NKZDgW%7f+dj:D9).Aa#PB!4FLq0-89/OSe"FY]1L7,$33hN$?G(Q@!Cf`5QdV-J,mE`A%
+`mY]e1]EFiQJ>%QMaJ2U_,e-ilW5TK/)BFs`o^?pD>3`df4k$m0Q88.Pi2EbVI4IqBg%n1\PVWhZbD:e
+s[`kNPT!4O=.jV(W(FoS4RZ8i)>)45ufg9Fg]fG+\hV:8HX%?IT>B]+-jZr`!apK0\[i3&H7R5fEh_?)
+.fncUnBi"cb`Z`rPkuMG?J3TQM=*$`MuR8oP[G.AUM;1onYh"tpjeoHWo(Bf"%K9c!h#,<ZJb-gOJ0@t
+R<WF,mV4#Dug&FfIB(]oA[3B`J7/3)EEJmR#JNkDQ2>2R0&ng.=&@ro`(3Eg.jG*F&WSj`q*sO3L$j,]
+ub7hF(a"3H>gV5Me96al4=A@TZo.a/7M8Q3Xkkf[W^8e]B+n/H%pl8Dg)'SW`89VU%PF7o)Hqh*S`"k!
+dVpo9tsqRq[C,bo>i=%_;T>d&YHPT.4u#K_5<Kr>TT.XdNB=QLsA:d@gH%mWrd"`^0=Yrr@o35j1D'U:
+f>792W'D_f[M4i%@SCpWqZtMa&+c7MRRbMWI>Id.oG,h`KkE/45)W9:^l!V<qEo4s89lYToX[EcL3aKl
+$bhFaq+)!*q*F4QDK2TC]XV01"7N*nd5^=$?Bu#l2"npVef7V#o.\lV?WF(^H2f8j;VB+R/aNn7`b\_j
+kT29Af&#KcEugif"ijks,LX30'5]bqGuk!!8?D1qh-OTEC5(Aq2=M5RjV$\>(%kh]dRe'V0=332I=Vk7
+do;JP$,:1^[Ja0t>7<F%U*[!"P6&QAjjm"9<S=P[J.\MI:IL"-6&M]hZiioJC'k;.)-iYL\5Fe#b!H.7
+h;ITEW+Rk9/3Oc>goG1Ig@XHK'kqpsK2tGs:)?1n\rcPLI2FNh2I@;@b$p'P%lr/pK?<&^::WHLX6.g8
+'NFl].5I3&MsGlPJkX"u#hp'R"58p$5.uf#ug:G<sQX-inD1pSG[gSs5cT.*"OD!8ok$e=c>'_!d-^Jh
+`j]J6g&Te%"d>j,W8n#HngA"-\UKZsX!Vk=PssTEIAsg74oPS95)+1naT9"WdUC8k&'l*jg.3j$=R(oq
+2:t#<^Ij3;943Gjj4M*.U)-!'9c<5WCdilTjl!He!J$aPd,3PLb]p`Ic5rDV:s7]i`*4Je(b#a8;U0aZ
+\Ir:l!/R]49tfr(TW@Mf@-*hTO2KQ!AePIsS!Ud8TI+H`EI,&nK!%r4A2Z5OQCuDjms!FW7k5CpLDRGn
+DY;\GlQ+NV?>(1L<X)k`DT'%F]ar5J(gJ_>aL_;A_"ZQ3n%9aYFm;rr<.N^FOf=\t.6U@$*nqY4#mM@i
+jX"8N`dP62ppZ-XlTG!4nG*q^51IrUoR0T#rfjN%"]+E]3aIOnELXG1u3&Oub5@!'GY>q'5n>Y*/UA9q
+KoT<8DgIg+PLOqoFHj!"T#/j*ER)/_I<igbTs/ds?*P'7br>!!,IYJ)f(.gJ<)]RBN5-mk(R+!<3%?b`
+?Ohj40PDh;k?R<Xbu4'V$TLYsa]0Z@r*n3<&tXLM-eh"$p8<R^YHt%QC34%Ga.^(m4gu!m=V5hLU/lQ3
+K\nkB>[kqXO/U50\E[gp=LqkEg&sq`C1qW-)BX!i,.Ze8bR5L4/eJ420eQ3Hd.$(E`7r>kZ:Y7`fV>&3
+cN<>;P0+VC(R6=cYa_IjmVN/QHJZDHA9Zb+CHp8>dH>:1TCnNiG9]qrCfWO5_[j>V>VlCW?.qhaRPF@"
+%=_o&^eq<`R0bU&P,PWYUNp0Vob1a&2j:!Yeoq>s=<Jdk*5TDklp+Uthl=^Vi:'C;=8<pbh41G,]\$E$
+S"GAa48oO8<ShordINeY9g;&3uSlp&>#+5M;^LE4;O7a$E<Y&P:TGR,HER*gDWM0>FV+#FYYQksn$)_f
+5p=:f$7G9AY55/Hg&Yoea#Udm+VWUD*t;*qZg90^G/-a'SD4N)1Ds3P_HZ9AYP6'N4V!'S[ne=trGH@)
+X9,qGNoTFecVQJ-.-UE'7m3#9[JspKR6aAAccO?@,W",iYB<,8("/.Rc>.*cmCE+I15R)9#-oV>rCC7D
+NRZo]/r\4_^c!]l8<rLu]Qq,(L^hO-_\rS7E%O2';;'l&k6[I-bgfM?HI1V:mAV,-_tI;q14?*ICZa,:
+94>i^N^m'Tr-F32aa=KBYW1IOBVkG#&g8$sYcg*/X_plUkj2j[U\U(_3A[jO+GT;>cCs$D8+tU4<allT
+rg;r2IL2F:;K?@rF1>?i_BZNh`5`J,tTBMLIS)1iPXlBh@d5BFBTCdGHd%oq6HJlTd0oF%T2'*htqe:!
+O*9N#n^lCKdHHp8p7mZ%+p"blUG%o'KFL.E`2\mV9>QOd2A/8Kc2(E",mX=lHfs=b#$tJk>,6hs2a_A8
+1HPP5tpVdlk7@B$j&V,A3D2Zp$V$h6["e=nf7jJV?-._F?\:)Omb_YFL]Ph&gi'N/s6kiud*W0%)g<E"
+X&/mj7GpWAKQ[Q=Z=k5"^Np<)L/Tb;@=(Kibpph$>dWL,7+2pQ)K2ZfJr6C*Y<[3b,`#!.eaeDJ,8\99
+5DeJc>`$VJ-dtQ:nIirL2De[)QC&a^b;3C9@(?GAn'>S.I1B_<u`"ktqIA4XdkR@=;8,[B^$)r&CYj*P
+Pb]*HD)Zf;Y%!+*:K'<Ki!RI494UE[%fik8m`B^:?@Uhc/a!\A6F"33-L'CiRe"ieN:7%DO@W#P4^XSl
+AQAMu^p[ob>u:6XVhoQ#sgH[TfYIr)/mf_fae^+%ePJOskT\r4RFheq]2(,E=g62.S$hauMRle82Yq+4
+%V?_('XX4DY=&a;lb]Q`//=E#itFBDU%IT-tqQKq]i1+,s>VN2\.lkn^VGE<9B7Efr'6li-qdWBp>OY"
+(b.9se8?EL"g>[fX.N-:s=lnWB#7E6\qFU0a7_)5SRk,o7[(`Ae3=aQZ?h31uC!k)O*hGG'-qMFq%T+J
+m(l.DgTHED,rg8$s`^TE>9Q@[<1.fJ"_M!g*)o!$(tPES?WcRPEZf(kS'):)!tI)#S'DmO4_<87SQo4s
+TZ[V(`m<2!FJCE-p%^?sGKtY&R4jhL^iMhDscfH;fU$+;Z#0P\15i!=,f(C&g73qMG8n\\M-="`_dA\S
+T]mk(*p%`93d1TL,F87b^B41uZJ!J.T[Ti2I,@hNTjSElm56Bu;=%39a0Ip`F5NNTF(^I.cFHK+>h!R6
+in6k*tGMIdbHF%N-Lr'Ha/-aCX=;n>-1tl8.m"#PY(WU[pMAJc)M,6mo):4ESOjUro;$UB"+CJrZ5`.<
+5>DJ9+=r(qufm5ibelA(Hn)"OI2[3"uQWV)VCD(scps5RR/J>]o(tCW,_r"8dnEq3gKP5CG3a30htXQQ
+j_p>D>6aSpn=R/)\qj?X@#0bP=R@TC5J=1]IH&VV5ft_oU]K\Cl!!:!3kD5-?pG!6?@B1b,>llpf9KMZ
+*:Lnm%UWbPW#ZaJsaSPU0c\q?:"1*Me@ILm8CAELm2o2?*ZZ^1;AU2Hq'.5%L!dC4al,`,L;%8,)*E!.
+403Df>>c]^<MsY>#k?6fsrg\L'].rR;qW0?IA=$XC5Ta@u(Za6Q;8a&4jZC\]aKA.!:KnbCTm&YqqX(a
+o*if!j=!-L:d6qn6bpn^X*2W1farQDJ^Cq*0j'!00812&E,#!hM32#6WD4SI#ck%mUXGC1Z8Slifk9\I
+6kLlI*I=$3s1hljRiljCEh(:Pp?t=Rpf<M%LTFh#j6);["PI"Eb\le8mBL,B8YrqrD6Da$SG=Ok`sU&H
+F`uB<E^B.^+u]rr=MgLd`)<K>>`$@9dm*4mMs-.HCPOd+)hRmV#;A1Hnq<B)m6V64bm$<MG!u,ZIGPI<
+hke9bG<%acXI72:C_JAI=$57`,6#(!V=ImDf:9oOc=]=oKT8rC(%j/U/V&ZlbN/.N<Y$UHSVWaJm3;7g
+5t7keI;cBh(bq)>9pX$]IqPF.,](/JN[a9S:cD'FIYk82F#[!$s%h4CXP%ciVW&>\%<$$388?V1<Hn1j
+,H$oM>R[BH7NbEC[D:-lc.34Xd0N44-^XMF'<5I[)0DL)fre4I,Xtjb\6L:?\DWrr?<^o?A[$(o`rD9]
+t%H?RTOed;Vd7TYRDf3Td.MG+_<N;/q`VFf!(e8`_"X'I;bd+dh^kmH`2l'-iAmN8m+WciOWT_<juF\>
+@s+W:cge'S>=TqGQoW(7l1!ofQ%e)P`8?OdP]d;7?s(Vcm>L`tS]pG'WIE,!A@I0uc9&?lt^Toq2E/6d
+XlX8bR?1L>nd/1$_KRjA7@hO$._41jPm9b!f"#LJsC4h3#e'"!J;TF,G/&kRKnVP`<8QVYubiG+;A/3T
+c?lp@P5`&h+ne*V2bRJ`I"Ve,b9`97iU1`]3R#$@\AD^C%"k>QDPT&@O[i`P;+M[H!%(gKPmL0dc7YS.
+7%s_cJCu%j*&2k8f'_1]IH9eQ^fKIO4,l_^&\KK;!nUK4CJn(.UU`n?lup$tM+f-j6mP]8rlZmf*8u/!
+bp8(?.m,pWr_(4b)q#gP/(6UnQ'ri^S:Td^,,7:$m$\rpDEsO["(\<]oH7[)c9;?9qQn)&6Hm6J5fJ*;
+epr[:uH47dlEN_!d.MZ-u$?5#c$-Z-?k8WtJ^LI^NnQ!!OX1g8iGof-Kj#=j]ePW>H?u*!:e,W.4k/eW
+aAo5?^e6fO?#q'G9e8'jl/P;5.L:DB+#RO"kit^jG7'e2MA*9E?8Gme?S,`YU6),Hbc--TM;AkRVu\A.
+G@Oq1^<&%25L+giWa42&eoQi9.KnG[Z`MoG#V0=QI?Z*V3/8FqL"dFl68FZJuhCd]CV:[lM7(ce!fZdj
+ZJ!cJ>B<GGnh2h"k":<;6;?,'Z;:8><ElXe(eu`bgm3c3ZH><Ep.sWU1qd)*Wh,hmI--<G9[\d-R/soP
+qiW*+0huXG^_8[u'quQtJS6po@aHK@lf_kuSPBRacM+31t=^3Q\%m1./Ka7PR@]EBo3A5Q[2CUDTX+'V
+^bA5RU"5.)c/fN);k'lTb\<\ku'\ddh&P4m2s6K0Z(0;9ijLJ-m`HbnL3(!%CGUa3oNr#g_a+"_3Apl]
+FcT3>A8"1[q(1_!+)i'_^kW8gjq95<<++F8/Q48jCCi%,dR=$33:_:btR#TG'SEgXl%n`o&os:i[%Z"!
+^!^K0T\BV)[m_MH/_Y8ii)"`de?@>kP"3j#G=G;:"/L6,CX86%MUbG92tU(rQN6?(fYukG9$7!MFsPQQ
+Gpu`<2!*)#'p]6hI1N:B(;hP_LlQQ\3nl0(,,JBrK\b'd3A%^:gHITCK4Ae"^_i,bNAmCE;!FDA;-W=X
+3ir0Ws$Gn/I?.ID:%-J&qWinMTLo,<(jTq,Dr1hE-5^Wjq>KSXFdo%69Mt^1K<6Z0Ci1cDKm3_eoMRg*
+ds2SlsD<o$rf,5<Thr:u`eUJ\&3@QgGS=!%2HrcPRb\W-b;6.%1F)3$OI_q$A:t*<R4AL#nicdlc8AA3
+T"*@.Y<8&Q(V\_!jSk,MZ8)==^XLJkn]r9h2S$3BVJ[E,M3Wk>,!U_40j@,asI1/J'B5qcE3GUt(9YPO
+e8LF4.CdiM)CW.=gT?pHSRM<L6UoN.>21\(j6EKDtq4;tb)scE(Nf3]P&fOpBru:MY2^+"0;<%bG$qFp
+gP&39NHLC-d&\.E$819TPQRnu-Zm\d;>og.7@n&09/0>H,HuJ?sA.:T--o2%6!_OtiDa`Qm?#N1*dY.<
+ct->9A&+oUrN1S.WeMRZOBW,MJR`AU4D;V.#HA"-(7WHIQOl$.obO^oM;h,986cR,\kpR^Ro[^HX3>HK
+8!G.>Vl0ln_\bEXD!t9#(q7oVZ[h'R$*%-\;Lr@_<A+14%AB(kN%Orr<d=dSr=VE$T?$!"-6k`j>DD2C
+oF87O\l*;m=i93+Ytm(]]",/S?I[<.B+b5>&>!-t$$I*/`-"c^MSETh`QR.7SdoUG6IJUP^H:R&-XTTM
+.$f^nR/0#R)mPUnn-Dl6d9EM"IL^!FQVB_]P]VM?#lC'Rr_'!2>>U8d#-:U7=7V70%C3_8S&e1mF['m7
+:`Vn"Dta3MW:DObP&:B0=NBJ^#VD[3.ZH.<bI3iCF.<a*KbldY^uOQj.iT3Cd?'!PnH-AG2Z_Nh9KPO>
+&*g8l8$m:iL+/F$\lGp8%tEoDh$g7fn]rr?rZZTF_W/7VTXLIgSGdk*-p3To;j332#H2+SsOY55t0SiJ
+s.XY7tC-1noL/IWXfL,]qtm&./?CkkNq]"TV%.6IM;j5;0`bh5CCgls=h1dIc4Q5;d3I!-ZSU=!_)naR
+66/\<\NeArtt*F.[DP]].WL\\+1Na2sLToZ=!IAD)(bbrDWOP/EJ=-4/`:5FlI`18$*-/kP6/hn/mgZI
+N'Bq)H:1^n8F*MH@9:0Xr\2p]1#e:L-`KdcIf>&k6n,4K`XtXip:T$Oi0<[ONe3C`[mUIbCXTaB48MTV
+XPH20M>(*94<`P#,GsYVO/TI0VUrV*X_oBo%^TGU*sJC/*TIZe<THqqI4B$38upH=>6[9-T_XKB;$%iu
+-jSH_D>QG\hCiC4uGq#8oK]*9V#8!5>GOam<Xg_0f97%gsgJP""(p#i@?Yn1HWL/%lio>aU7#e:Wo[Y8
+(d]?&$ohYmg5YaSb>Lp:lujYZW1m`ucNJhSqL(j0a*0[kdYVS'p1=.amcb[;=UC^]V*c+NPq^qqq2AFI
+I*Kf7YF7,F>Cfm6=?\S5!]Oh=n8&ERLXe=Acu0_ZS7b8kJH1+\>*c>;fUHduL3*6E?Ni,9ZSQL#%Iof/
+/u*a:!$(/*^$['=&$fhPnaN&Uj?[5.(41Q<9$I!UM>*e:l,*5iI&i`X/qgdVR<p=L&/Q@\;a^Vq,>[Cd
+0]sH@dXj1qT[]:'gL2=`"4\Tp=,IaVi?:l+q8]]qoAK$S^jX<s^&2n-46k6_Q1GaGp*F,P8-&9dX(i55
+tT_j>SHThU-3J40Anc5gN,m,a-_A8T&DT9j+"hcb(>rF.0A2\SV$$%%asdSImmYYW2>6WMH4OCmb$>a4
++(jc?\W54QlQ;UH_p957Y'658qni=t%W0!)Z>l+eVjGo]g+f)?;21,qT35HI5!PJM<gU-kLQsq9k:f*b
+ZRHlUEVJ"0F19TL+/hU6H/&8h#>8A%a95o@"DDpRkpWMLkCA0+k'A_5<1bV`mcrm[@T)2`0/lGfN\+.F
+5KrU]_`jQ_DY*'O^f9kKmh)P%`-%)?q[];njeS3U;Xa]`K"$`@i?2a5QDN"/.QY!HF5e5N+j1qbm+J;Z
+Ts[5?_F7V'$m%B^aZ*'G4!Rmm&k-+S=ald;a]W>$;+Z5g:G8!7L"nV#^7e0u0"GVaoY"F%dpQ++M:\,D
+bi<[%uaH9oJG3WMLu6RA#2Xpss-m:5Ms;h^AVf\A`N<*EINdM#44o:[;:&NEC[C_EWt'":q._c"Qhm8X
+teOQ8.isD>rpkiRR56e=IH`m5?^:iP(`I=(*E!X?"<'kto?:nW8D*ESmZ=2!]#J>IZmP087GFd^+t3I;
+L0pEmL-o\m^UjkARb/hn@50Sd2Z)Q<#pQ]=K'@b,:&o,aqWdW\O6c9#6o$"-ZWM,Y/X:b4Nd@8T)/OP$
+%=7<;.g&G(<'0hQq,uT&qoY^)LeKUsX&HU(Yd-M67O+!+D-%N]pXN+\*Ei8a^<7@jg,#[E%)dlWDHLSN
++l/Ephe#nscOjji_NiJ?JLk>sV2C>uuet,Lj(0f8sG$Aerjpf_[p@]$]P[Hh[L(P\<qL8a"D&;T]2=nA
+?XQfp1Cn!!92;RYIRW9+#Kq+M1Vt?)j[s[A9h"XH#8KUo1#Sjs/VTD(>cMFm?b]hY^?EAF%DJT_:5e]X
+\C;G(Yl*pP^AIQ]ZjDADX5XA?:bb2LdJE$usjo\7ARaGT>kO/6oC7cb3+tniTY2N)jeB`40T(3c.UROK
+<3@H78qZ.\t[s)[<i^W^t25F(70mlU;n+;5f<H/,lcOqqpld<H[M'mV$7^iZo]_COMu>$?trTrrB--S*
+ijP_(40\Z^bOnC,X[?MK0oK9=C@CPuLlsbP-gQ'-rg#WB5]AO?PXKgZ4K9IuZGe!73.`rJgH\OOTh%g,
+jIl98l9NS*&B4.CQ/+h/Aq0?j,bEedoHS^NunWNU2TPe?("OQJPXf%VCA,2\VD>g9546pd"#Ia$00aVM
+Aj$ITm]QSC^-*`.AMJfr0=WX!Pr0CHH]e"oHO@8'l\LhmU#b@g]-5,h*SFWtLa]PFb9\ea<r-`ddqdif
+5J1iWXg.72^#="XrE=3$()[+D>3UV$%\j%l>-QciT).B9mW0Op@g4hE,>"(S($DQTS2*0K:<JV$oD73X
++#W;4:gUK,El&IZsqC73>Asks0>#oMO%o!=C6J;*[#RAr9i*R"pXf1fALkJ2r-E]g0VU.7^RF:]]aQXN
+."(rh5+D0EI^'Uf!N3;\tR[esL+fa%B3lH01'S:h[@kU%Y5`\Y]"r(^H1c63.>Ug7/[l?F5DUIo/jkSB
+q?7naDoP\`@4^E.4&3_!/fR!#Z$16e;F>V=3_EFCIN@(o@Cq5Q`$Qk*uE9;+K6,6.V5<'`.!]>i^B38Y
+#DI;YTKGL&h'JjE@>*]F%TZj7/cGUY:__`@oKcFJ^3A2'cZLqANeak+mn<+3X8O`^M!)r+U0>MFb6Q`7
+(q$>$uCM2\#IbFrZ%q5F$9CHa:tKa=DimZgj8!oQH@Hjc]aq)WGVkagjneE-_@M<P?tAV!V&5bisT($e
+rVffO\;B*ITFj8_3u(PpD68b"*c`Vr`A/*r`QE,B[U$3Fk+oAJJcte!dt3ok%nG1!-Ini3!T:Wh<ubjO
+ED30GL+T_aJ3B[bR'E]/tU1qup&YoH(Dh3;R.T4mOP7%#-9U&afaPgV$dM'TpK?Fj3-Zc2kp66G@XF!A
+oJcoHmq3#L"FVEE"TMDFiZJHhFAq/-mUMR;6D3RV'>Q^s=@,0h+(NW?.\=).*@EO:QD/gjpGi^]^:X[-
+sh[?&S;bo2rJbQ]Nj;*AL;JCq-qHA*qpJiiL5F<9Kr]C:1W-kM!&B-8<0Ika(<FD<.->5UE0i_s(7)e,
+i:G1(FTamo?%^,kBUK2-l2b&?"rfPW9<'.o0dko8K;HrrA=_g'FnsN1Tk6=sn55du&gs]TLOCBlhJ-MK
+Z5:9]-HnFNnXdX10nc`^_mS!31,7:MSG,TJH>(K<uU,qZ0b-></r!h)=7n;h?akg8,\U9i]&jF+MRt3N
+\;LLM@gf5."0?72,a&pI-L+V9JumBgFT'9:>icr\S#/:ahu?#SC_uHQ$4?$=*2=`;uXXh@FokqL_[p1i
+Yd8Dc?$ra)5VG<;!,ULM@'&H1[ladsSSE&*HIO#JC*uPZ'N4ifm!Ea%C#5NS%*!>TWN6#;C!3IE0/&m5
+0`S4Jq*&.U^I]*)i-D*jqQY7hji2.tYEUUfgZ,EQ(Y;@E>6&n?V3oc_VHG!Xp,s;N,([ng70*Dis6t%'
+lcD+li?O![\dJZ1Y#9N#I[g7i;d'K22_8%SZp*4mBj%l=`>Zb5mb$:]\mY&PKX*4&Q0PIl_aum6CqA>&
+_c9["=L(cr7F]%4KM9^SNr27ic7]'HSu$.>/](n>?AW!)ZMVBt;8)WCD5VTs9V&M?2b/P_6(eaZn43J>
+=3uFJlu0&(FR,(QKt9Ns:Mn'Rt2o5L,h=2$Ol\9fk0S.;KN@qH_<[1.i44mItD?gPh`"A+LH$4$`uh@.
+6Ic1"EDWgJbV553b[Yq#&Z]l@?Q]>%L3AWkBl,\YP=YEb`k'Ar0AEAcQ@f<G8ZG%_SBK(V;hTm2P<p0E
+<5::5f]>'ds.d2&p-#K[RDI]b6d@XNEiTDJHgKF!pIMb1jJk;7JK(o%YW<4ZZT)'pIbUem]CB!--SsmF
+7Bu.RbVESm#X]]dX)9US\2g66Q";"%r$oB^*mjLed)UUGQqudJ'[mDg=8RhPZmNf5Kej<8rZ71't`;[B
+*AjWnUFq.>?)a<L$7]hSqRp6Z$fS@Cl\6X3L?DT.:GAq:)baALW?>?pQYi8S$n(orRt[:loX9d^3Fk,V
+$^Akt.u`QAfT.4Z_)(%iI@i[7ur)gbDg^gGLEp(*+Pr2M'A.4`UCBd-))/e!86^(pNjbhu/kOH!HVD3&
+j$Xm&UmIN!KVAKD]M2966"*m#prfk*D0rZoGi271tZL7qr9+8Kl<1g41/(;+J#.!2>gn+Jk`)"YD#KTK
+u%\U4Ls'Zso4U\Y)7:PTD87co@\.ZTt=Z*)H_"[09P#73JGO1a)A@'N(&_!-<7T*n6F^O9Q2?V9'`,"Y
+B^:4(FII]H.MO.</#d4E-G*N;AEH>D<<DLrU@/*:RZDNg'P!9V"Z24Z_#J7dMfQSfNTjV>243TEJ/g*-
+9@Q*;$+tGfe+tBJIZC)^F.b"8[,58^0^N`s$JKhOWf&i#ZUb#6Jp[EcFVTF2]an;.8Z/#To$cj#!.FkC
+P-QIqesgA73g6V'#toE,[j:(u^o`pZkO1jT^5Lni<VeN"PGSk+<ac;?<dQRIrD$ME>tqi]S]o"-s9do`
+4qO=-_W7oA*+c*4%^>:U.lbVD8E;);nu69j9mkW(8,#'cjTtW<E5$%i'%eK.:U3KQ5p6EX*Eq7FNKCEd
+@C9bM*<(i84rsa>e%S+-eFl6u/!MMH+*.o/lHLV)N&\;.5i%'He+;e9dXN")o!3f=>WPnq!Bsa&67hV$
+]CU@G?`>iWj]&e6^CY[0#h^._QdT'ho/f@-W(;<4=2Ah;-`DTfgg[>U3rqjf2i1p]muB;G1[gli9"*VO
+"$W7;cU@`nk2u)$$r'BrZ#N0Q&*d8\cVDr2W0HfcX@:ISl2HrSe%8`4BG"nCT",#'oDe>/a`aU:,dOFT
+$j9[$[!38B;".RBI_?-JGK?!OMe+ZJq_0YAk^_nuJdLqAQDY/@RCEEK\"j"+uTV7@q_pHRk+shI'b>Qj
+:+(f!]DNOqg_fHH`Y%On`#5\]=H#rr@UMfF3X(S<&-TEDo$%;JJjFgU7T,]91^MW>jt?J#,E`?:hs)XO
+0BnP/Tpl^]==K]2]-1#=TIO6,dhE&UE!T04!!S5ORr?DuBmPDtEdE>nC0\IP(H=#ARM$8ikKBUOX;;2?
+*[-dXdVSVN,1Im6D:^;+1I5V5+g&JM<q9'S;Rr#RrC84fN*!_\?R2T!VE-;+1W71bLq)U^!(3!6kS&0h
+apnMI+e0e.-5[[S7GCa9BR3T[4LcV?,#>)>0iAmF$Mu?lAU5)5FB-;:9t1P^ZRSTP(/ilTbi1lUhNces
+k9OoV-jX]B)'?9k94U*)ce:$P-uJi<7UHe;#=FB)j!-Pkg2U=$GW.E,n08G]S`p"C>[N9N6nbSth`ZK@
+Buo@>sh?9`^p#%0Z8oji@Z3E2N)D_^V6>&*(>R&hjQ:BIZOqo@t7GHdSe1$]KOW,Xh&Jg8!nnH?sPNnX
+p0<]).qG+<T%,;oN?a\uE#,mGm?gF0lHDrT\0F#mRl>Qm$^VNa7AW])XYe!4,`c0&mp,TD<<D+$oXsrr
+@1Vj2B2WlqUdc8LLYNkGiAJ\BL>p$@r="rr<B*!*fI'I90,kfa4seWTPn**&m<JCkY!A%QaUi[>K\D5#
+RU/=+!SZ(leu;pg!EO5W4]%#.*^$@d23bcOb6W^*i,KO-0rE#\M(k#Z#2tE$+btF#81lQVa6HES%2Y;S
+i`VSs9^YcTK^VQ,2k9ZXjp[NiS5;.$UC_I+dhG."RY<>9)1?e1A?`3W9[a3\hde8*tKnO9_>,OjD+$PP
+$d9g;T_Q5(1SdYfH8Pc'ljJ[ARKZK*&AcatY8AHhFM)M_\79GIb,\?3q2d<ZF)^9_:2;kuq'?RhRS!2g
+u6dX]=q[7R9!sF3QjAptN:jfOCEK)FfZ`+!#sNDX4epN^hUG)?0#'BPo#U^2`7n0cZ]*R\_c"4';m1Ic
+"=AS,acCcNb.2b*=g8<FYZoWQ;(`:blC,lu`PmXg]Cm[^C!)pRlU.Fl[iMH@N`2R^Tn6GM\4o7Jh]W+8
+;gFgJKI0#i@Q_]HlF_-%/Nm8hsE](0go]8Btq1\@8ZmV.%.%9E9E="gCaCkY5L8l;$X,VhV=tRZ@!!Yq
+$p7NN6>Z@/*n,'&mEJQ&Hf)oD\gWot3MgY*eR$G_ob%&soNEN!`G$1BCR\5*X%`jSfkdl=l+LO4Jj2I2
+!#:$]6BS9a6qJ]dNnIV5"m%J.,?9-@qU6&5bn+"Hg\P!:N2f$7UL&8gq_:!")maMC8JL'N%N%*:>t("X
+qJ5B\M8I24+_!TR5'T^];KlUHEN]cd:+#ZiCRqV]'G-92#NI;Y!=@.1\814o8%VOD34nNX;QH5RneRkt
+&Icbpr=Il7&cq#&"$.g[q<DNi/=P#=CcC-Vc_NMGL&sVLWV5esCXj1WZHAk<6)-?ocX_3SX>X6ob(&IY
+O(,$rRE:+VQIe%"V05`pS)r.!>\?,Z"iQ)$<%.`;i1Td6e#Yj97eOM=$B'._.O->MGLoV?@3^&0^+f*=
+r.'>+Qp&CC+\\5$m^MLX$)/nC/&gK5T)D0+'jr>r_KkSWP*bneECLOcOh,\=>es2AfO&-`/X\=$b.;YJ
+#!@-+/mtXiHgi)96U6\)sooX1K8D\#jprYC[N9$CU0K9Cr/`IFX6<A?UC3F@t;JHM@=f7b`\>rG/""]@
+?8c`nL6P0_1hqj1RQ//-tK<1h&lu*NGbY:<)</RagYPlh*+eYYRD3E1f.=3bP9f[?,CQ>ur$PaQlsM1s
+Is+7lt]UO9.^1*n8/J8K$Qs.CmbGoRN44gl[5HXS2H5LZ;DCA7lnY$<)n$,UrJ]>SYXTU?He#!/4,]p<
+'HU"QP#Y<8q\C.&h02W`'jL35ES6XV53VH_Fa'.?0]YU8p&Q:d7"03$De=*.;Q$!+l>4_"XaHhTFD!7g
+cVmZ.lBo>$Jqu/3+_#4b7k9At5"e36`m8$+8/miIL`*N)`>pSpGfL?hb(%/;;i0f<&3'/5>g.%DTK4kF
+A-58,T^n!4K8.)k"uD&T./$D'%Hu\o]Zg6]`=pf-f^srr@1bUXd^d..eMLlU>`-*_`-ZDlBCf9[T:8l8
+a+2VFSp+3;pjo8&4uJ%$5S*PGK\#5tF`V367qm*=ntH3#qlY;+M44=o\TB.5[8c!ms90TEGs+70"a4Us
+/t0!GDOl!Tt-sGJt9';?NDb_!a]2F7f1-^cHS6)i2O0F.+i(*=!SWUTZho%0.j&H)8M0!TX)lHMqLWTQ
+*J:0RHUtK:f7o,+Hh*51IAS5ou8fOAaF-O</E+9OG:YnbqpnRXf7qC&iHm6.UQ\..s6W%euq&9g*4+ci
+N!^T3>Tg4`O<?E>3eKk4BA)`5!!F#*G;iQ6ANdWbll7&!u?!X[6$WQTM4s=Br6[ndL>jF6hP\aX"0QSD
+\m=;@UB50Ii;UbYjZ<p]ompj['7@.SM:0@VAW[252D%lPk.hC6$&<pKDohCRJ].P^baBN-@,WUQb)lH5
+[X[m-]/D]&gUbk<3SA]&AB<=k.=PbGiRU@QB2<cb<.PTa1i>EXs;E4\a7,%i*0S/k.Y:IJBaYA*Viq<7
+1?ud["GSSDuT1mq-Z5>nq3e_dh/lBLaI1amI>bCcT9J,J?^4(#c[A3@gN7<md?A_`7Ci4NnJb'h)a?"<
+YLW=[6g"e2WmDR=7'i8NhKMWYnd?cXY>rbmN3U"/]eL5cdtsAuB(3,ddl\-f1B_-m0#6Q(nSGGpEKPoT
+*g[@!1^o76Y<:BrR?e2[%R0YWEfd".UH*]5XO!>T@qNC92pic_jW716]GH51>)g"-H8;c?g4#gq-=+cU
+tA2J8c!<es]YdaW^#gE!e?l^]UP_\t'lhe*TP>(OWt[K>)hcJ&!QR8$aO<[EPCTrrB))\c28=jbIoKot
+2a,?(PX]&^;q!r%!7Q7;ia0S/!BK$jbnUqGoS;pGAjglJF,M<B,.^'TILgii'hGrr>1d8#Y`SdV.E`X>
+AL.fVD'n7XaO"5#Frr!\V#?!J*cY[%`bA;*]_t;GrAV*U2(<Aq:?DK@5sc.A-hb.&>*9TE:!!V?2<;!g
+\oO*)T7IBn5V"U]BD35]bG!U5jS$?l5`d'Ud2oks,M=+3'Oc.6gu?IgQ0u#*X[0)5.&'HIC32RK:Ye'O
+lqn'1rHW!V--W_O<[U.XgSsS.'bk",85af+`4$9m7:V&"NJp5Zf&u_"XktHQ)!B(LVT3Wm:015&ti0+\
+,.)?,(T@[1Lu;9.Zk#4%Gs@Wdo%JpSAjZp$$EecUtSZ-H%*pVb.eGNjN<KeHe,tECXIA-qp/[`*a'>)I
+U^(UiLls9^jN'10B+S:nn#"KI`4Y!)q3@MN)]A;_%<2%*`P-m4`ETo>gGGoKU<"i[DUXr&lR=P!/#!oW
+E76YkpP;<$/_nP!'7_<]s=Di+k")^:P(h>TDn&<T'ALoqj(b_gUS>EDiH+f^:6ocU=`d_dm_7.>i=^Er
+J)"d]W7'kI"3V%AP%dC6Q2mUXX!CViK9ba1:G2QTX]/8-aIA&V#p\.uh%AJ_up#,Ze62\b3&s0t.9rHd
+neH(*#%r;UR0QOe@me#:#<ik,+%&J250B.kBuIIFgT*TWHtF5E715VDfmTe<Y@@4%DOlT6dSLgu!H(GP
+8$S\6SHd%r+ATbS,!>E!R>YWU%))Y:A'<k+.&0+3qg_%^i!?Th8U%]/r+@a!?/B<qO'\hUOQI^2aG@4c
+fITX42#LSF]sbC,S3>fVqTPZln'(D$'cW#G<-&od:HLAEK=7+!%C_ZoLQ>8mt^W.H[%L;?M*&TQBEo%j
+DS+`%^TE83ii>h7Y3SUD<&i*nL-tj!314Xb5?3e?C4%#M-&qW.74Xca`@>.,!f@bo-g$e9,2]G60R_:8
+fR`)5`R27048^[+s-@mm$lN;appD>$r%VMGP_*!2[X\*7+\E$0R1k*gIMtC"*.NoMQ1+%%70$d7,OZW#
+Y72S:W.+V\il\<0];[=kC+Pl73g),PK0S2NZ!>"H;B<.7^jN?kdeM5kj8s%.qdE3"A!,444U7V(Y$CqU
+5H5dXY,>;8D=H5QU`..5Gs;hLHT$k7l1^!A)mB2=;)$1We^8Uj#MN[W[k)<@G:2=`.NjfXc1L2'W3pkG
+b@/J\W*:^$A*!2AdI6F%OKO!L(=!855*(,<]bu2h%!c/`+-=e,XH&M7C>]j##[-55qFN^h8O6Y;eXs5Q
+Ns9Ng-2ERS]l5#W)PbMh^8h.0/]a7g,8u%r,Q`P<#VYihBUqU]^5Gd]2-X7m'KZ&%jkcojeO](]la2*j
+hBI/e[8[Y(n5QD$7j:(b0bo[.rE8:(M*jeguKq-9sN/aVa:n%9TeAO0*HPO"3B+4_7Y#od4RhrcH1#F4
+9AO`o-cr!?]mad4+,rq\kCFeW_>0*c]c31aBD7OC7#-HW3FZ_%g]Q8h$#(A3BE4A<_Xtd\\a[8n!JhmU
+s\n_<2nH.BPcp+2Xe8%rRWIUEG#n8KqF$Z6[URkCou5>RL&7UgYEOYIdd=3*`&F%+`^d*nsr(k'smrZ-
+EY5V't0q,7I8V@;`A.[,s#Z)!CGT=&b]!UPTU?#Q_^_XZRYpFKHjgk5jMh&2F\SN;Y2c5$t#.$&O^"R%
+\t?#*/<]C#IDN.9_[M87R.G.IY;`Zr'V=$OtnBlnS)ZFfg";KXcra:W-9YK9/S;r@[VK\Th>P)9#:DR7
+Z[^;MnpEZA/Z7gkp&.O[@KHEClTqBE6u=MEa]h9Eh1J;*YVcRn#;?#>e,B5t(bfTR5[]PY_GUU5CCB".
+mPJ"1nH[8.I&iXFPef(i=BuT(LJ=og=dT(F2nW4Qin_?m>mYjog`B8/Q[2Hd\[n*HDZM1uc^/QQgqnT%
+uPC`Wog`o"jEmj3Z.?Y>sW4;ZT\W8)[1tVkKq<E\mH<BE<TTL0=';-d6:fcbD3.l,J/9,EHNanTQj1NV
+*[<&MZA7jSDiLE4D_HSp7'V%m5nfeKHgk-sgWOT`*pG;m8'.0Ihcr"E^Di^np-g[4ZDRH@&I3TH9tmQQ
+qBOXX6i?!&\$R,+l+5ktGV8L#]iRj`k:(!-uXBKUP`rLKm^uIHU\NVJ7k96];S*[(nFQT5"KY!K)2`Br
+Wm`#G.<U>t8CrZnT;AC&k/AM@(LLi/DVjS():=cS9AmNd(Z8[<0WfW9QD^YC19]QqFUG*$4pSW=EH\iG
+8<?MtpqZ3H`>e3$P4tfuP.3"E,4nJ%Q:PWRSCn)W[3>ZcnlLe81![E'`a;]i14D?;p@uY2P:KG<L"Eb+
+h1-8YRb3;P[3NO2:IdaQNkDCqE6S9`*<\<d4]Kd]A4HTc62Xj+0s*`Cd@pV`[mg<d%SQ;UWWQ7L)i8G1
+EL=#^RjGd(,rdipP`!+O.PH,_(*S]Dhj3X_?j1-ZI7pc4eP7\QZIRBXUshgS8ZWq0*q!ho*G2QDRp*Za
+aC^;ssODmagq&<KAc7:3ebs7CXrR`*e#Eg_=ai8a(@sK6*'!OFEs^c[hpPQ5gJ!m\nE[[/%*HD:t[ro-
+Qo]@>ktN55t$0>&?&/7/c#H8n3L4IKktl;)Pr/KB//=%/&fR2"5bQYP?NZ,)#lI;o]nn35Ja#%o1XJkN
+FCK,HlRG/p^HQ!HUpDhNpNZ1^!MLf]u'=*7,iS"HEpZnR[kp!'2/lm_@R82]0S=@iQ$b6e6c@=^;^a+.
+3X8C=?&k,GF81pnZQpm91;"V&U`Y`oqh#,p&n[Bi$ddLE3r"*@]dp@i$t!N:`sD!LckW8gj]&n=u#nG+
+sKq;N@!+AC(D+jSDbOJNs_-MGDZ!q`o5TTP()BoObB/3N"*4O2d9M<'N(sesHkP!$7B8U_KIu!M<]*i9
+Vo*B;ac[54lX6;7UiI7;#uaW]-1NjIWF%MHs9\>!PVC4)f^j8ZI)bZ[q8_#a.uNkI"P>Fpu-%KHU9a*1
+EK%+%g:>0KT'YJdM,kCKhG(TGH`U)HAb5!M"A0<\2o/&bJ'NBu>\cV,BWrE8/m&BHoA%fedfD<uZe?RW
+gF5V&8So36`3U`KtN"ku+R]ktEhpd[>iKcih:5;Id-a(/T>MVj!PP1LTN@3#V*Y+OU79FVFgdIWWjj8#
+8=fe5?i6T3;<[6.aPT3qLTQE+sBG5`#XsF%mY&M?X2]?lfhNI548k;XSK(c2bsNm]Z.W1hYY/E6f[hMF
+daIFQ4SjrL0V[CtAN<1+#"h44^-3>2@5dhg2K_;3:)#m4[<sW<CXtd^t#L%,g19gK@.5?ADN3>t?9Ddc
+bbk=-,J7fYOT9"4FZ^/WruB,UgTRaQrV=XNR(NiJ]mO,<V+5@d-KKB;%g1$/8ZCd@%s4[bQ<h+G7kuN;
+JKYnC[F%.E@_7j4^6j7CnbVN;N7l>O_TrQM%BfO<@oDgN!%6rr@R.r]aC0,6o3M3$1n2T[@4'C!hYPBn
+(BfrSTSpqr;7)9361u)a7GKmTX]s"7G3tUHuGK[mBaY]h#u,iu.Tb7leW4]rQ4sCo]+2O#^a\BW[*.`/
+"_0rr?>/mf*:&Bu2Qk:^CE%F+a4r(&Qb#g8cAeC2UlPrdP9^bh5lQI6<QB9X^bpdAS#55MT-1e,KCiX1
+%a\f.35XEULLXEW6#%&H0b.j4qC9#lH-R!kSZk[Scd0?3id_It.G&6V3="LDc:pmQ1'<V@D]-q/2/JVq
+.Gam!c=D@9bQ[SiTe1VhQ-b0Th5u`Z.kt["l(QB]h4gNi"]n/NhK(W;Lq9W,s.r6;J/2]-^&.<`-3@IT
+8_mDRW^4;6gX77N5>$1uu#19[L2W.)Io--Y)CE@s0Uk@>oh@B]6Jnlh%6d\#gIhgnF!"=NVtIRK?8bV[
+3uu?!)*f1qQTUN)Ya@qGPd7TA_U9rV<)kob:>K%-+8:QZW9['Ead0TEQ$-%OjgH.-P?;'?Ho7:c[uZ!2
+QIbXFLO4jku(r7hhVdMI7Q5]_A1t"7Iq<Kr>3*3buk];XT!2P%iUb,kN(FadV/E>lC3XeY2s#rrC_@32
+YM^ME`lU@sDK7$2qqTgXd15,WgU^_/=[8@SkJo0X6WC@I6TN12cHkijrV6OIIOACu*\aJqbMn3!<i^J?
+2Hm+?/fee'p1%k53s<3tfTR0b=DQ4Gm*CEVNI-6Q\p0,onEhPO1UXN[\tnBFp^q;:^tq8Y"-]`?THTSO
+e%!#i77\*GM48HIVrDKE=00!0.?G;t:/cLM7`gJsBk03m\;)[V@fcERL?d"Ctn:+e5&9ges*Z!cUZ+.*
+!#46/^4Bk*e?Z40\N[AWM=,5RrrGO/L4BT_/*15SA8qb7=OPiCUD[?bC]R<B[=?K&Y.adG.&"9c.GRGf
+'_dm/(t8bPX3OW91T4(tR@E1F8iu(up\M$]+*)H>k:K4Clh3e1SlK:7-Fu>Y*lpXM?gq!6@kR/LK:F3*
+UXg:AZ<tO7sZEp1h4G@4[ceTF?<"E+%H4:+>&sL$W6m$9PJP,8BIcM>gb4r(GXa:j)SkoIJE0l0bY$kl
+uT;?b!uRJh&&5eYL9*"i>:T1$0#?J(gu=d8/V[boPG1@nf:.I@6RC$+[[.$lu1\5OP`#rrDiZf2TQG$8
+A6+liG(7kdL;tP%GYVW!Y_dk,j6qG68l#/h'\%$QE$5V3]LqS94$j3E.E#=$3(]\E""HiGVNmFenJ$+*
+T'$_)tNpnq2tpJ9+K$bpPkD=:R=N(o1toAsSP-&=N??;fZSn_%b[rSZ*-m@uu%7O>DbomnKZ""jUhFA:
+On,?Bjf-9k"HBe,2W9.\JG0^ij<gp_oSGnfTe)ZK<JTY5\LIV-fR%eu1sdYerR:eu-Up*K=-eK:MS5't
+5j09SuNUD0b3H&!D^s[;$oj?,5k5S;P)bj8%3uQYut6o,6r[=irm)Bq&AUL,Bl?NhMf%Nn!Li"!<4[74
+,k)P;KrGTEAs>SLJk]1J=;f!Ad>2WH]Ya!Cpl)#Gi,OI*kG\3T#-fN:HbmIMBDR@KFf$:@r)ERMOg%,U
+/2or((QAMhQa0G2jQp5SZ.\p5)17%*JSM.Z\ZN!6!?'?l%>7^NrYVhqhkoWTgAU[niqe.(KlkleSU=5'
+KhPm!SdrQ+]01$:Llq`K',EC+p#RdFGi,.J&Y+Ost74KacdARb+N%"e9Ff)<5[5:61$d"-,0/EhqI#*E
+VA+qMKA?'Fie;IJVD*,R0^nF%QrgG+aet]`?#XS5Y,2N'YEIRK[(ZblHdU5:SCV;8iVK*dt"`:--`_qt
+a,SpRhZOPYmQ4F$L%h$A2*m"!&g!@*&1Bmf_QHiNnOn$N>,RK7(?.oqpoD571;a%XHB8N0d:lE:fe0$i
+^26nnD&'4o<T`!6H'*RSh2(.u79TS%pm--9:(:T`mM7L5H0Q3Vq2q+Rr5K[!/00/*(PboZOjT4D/RB3C
+Y#T*GP<3V$B(aF,d!p<$3Vn>F:>ZlQ^?.[i9hj>.*I"%+,;0#oElBI,g6OZlGmuU2eg(DL&)6EP\I>9U
+%.hVM]G6BeUtH;1$c=d[l]YRK-[IV"^WH;In,s*!8l!;=pdd!"CXBdY54-#eW+IQ_*gZ[$a&*%Y;I^9Q
+Tcs_O$^$IFe7-nt8Bo]V*;ca7D.PG6"Pfdk+$%/p`,!;c6DQUX3!@ZB38$oKrK8Pq^(M4-B(p:a49YU`
+F/KJcQR@5D;U*amH6j]Cjs=e5jM*Y+_2Z/"Z"HX*.R('5_7MR[H[Ee@HSU[+''<]D+q<V$B-6AI:KsBi
+n19Bj7\>,q,QGiQX%j'8e1>MEl6);UP[5=Fa</PCl><!F,#*gEsJeC?b.4>8T@UOJh:Qc!'t7dbDQ>S/
+cNNg+3G2V7r:i4(CGFlh]/K(RLe3WMpLVX9(6:7Q.I$VRKI.jQ#C`kLQ>gmu_)*,El%\<)?B[oraOd-*
+TVIPum`*jj3S"*B<]WMMg%$:$3C8\:IP0#s<@-M/63Q7gG,TJgri[=p=p+4Xs`mCO0Lde2CPs&(gX+Fq
+Q,,-Q\NBc>u]SU_DK>"4RgFJW8mD+?WUuE,&@g'Fs)c91L4X8^/@Z14QDGpSGnj#*<inmm+i68hiu-$,
+nS31hW7*U]=1I*n5AP-[Gp7l(@-0!7#r?YUM<\R"WL:iPcaMEC^]Rn9C^s>RFdc(tJnXD]I64gU/AK-l
+CYd51Gu[blB@e1s$cBI[L&t8Z"HukV9n9ciiQ`:bSL>B]S\UHM#0"qq94ELlWCo1f2*PUU;t`\r,"_76
+Rua+'O\UZ#`HMBak%k(_k3a:*fAo9d5<;#DN#CDh%"D:MOV0Ok,1D"7K,G!MBu5-m6tKK1X<Ak+5eG@4
+.7(OP%?L<?*KK.F\7>%VPh^)C>9jVf3LeD$$7dG4$H;6R*u\V]R`\*i)^Gp_]8:W_q(HX'.O\Vjamp93
+,UULtE<[C2'Y=cUs640#D4TT6O9H\]UKKrr?B51\gk!3j)HP>'<u?i?UR4<)+aYRNU%eF%EgeXTu$ER6
+pL;32@8!TEWH3PMV0JmKY^H%NFLnoV%&:87Yc\6':J-neC[7!UOS%)aW_[_lY'p.D]B2X(iFY%C8&;&h
+l,1G8`2YbEI&m5o'r47PJo*X]nm?$ZpqhFtPT=55&b*7Yoi*4i7](>_52QCN;lf=au:4#M-I8X!(&f"*
+BMG++'l5"ZgTJFc:P+WUVUk)#S*1NRAUApC$asU_aV0TGYN;ViEi<IpOkK8u!W&PS,76E8mp#*86&<ra
+r5d_R=bjD*3<Bq]4S>T0Pi0jXGQQ$6^P31&03j*SACMU]B>!;j!,9eCHW#0odYK:BlO[&n[2N#lmho4f
+JiL1i\sZ570-i!us%a6@UIG;;Qg10PDIUH;Gb532OkI-g<m`EWml5VN/<<<52$+%Kqe@9f-IKOk,)A`>
+QWA73FVMJVm39,kRtlO/3'dO['DsiCMgiIM@HociP,H3L2f-!.4QAK_eXq+k6?.dfRp)1$V"`qU-%u^o
+!F5*h=_*9QApb69%';UuqrIZe)<&3#K\>@d5t7ask'sUud&idRGp((iW2,O(qZ35.$>`!!aA;dM%q^UG
+rt$k^*UF,+<5i:Z5!mBL?6ARTrd*_kf'r4;qpPPgc*DNBo:,$0.p?!/>;t./MH(aN:HEB+.At;o[]Jcr
+F0RUYR36*f=r<JJl8d*NCW3.]*$IblNBCE]rUtk_@448(:P_eM_e[UCl,+X95t1QK9]ROucMIoV&5d*)
+]$FpYqK!8e?=I3n%69EC`)MaV8Us`#=BK*agN^LG^W/Q(oG7O0)qY-RDmfW2G?7M^Lm:B?R8u3^oVh5L
+m8YPOu"NcBW?MJitU=)O9$,"Gc2dTti[KN+8H(U9[]s]%V54j\?>*BW8>OLN9"n4&?2'W9Hsp1#BIf%e
+F$-B-Y-+T@`MhP^-ZpVKWPcfX[)4"1^DF/!Yrcm\CPeY3jG'T^>_oG#>N@>FShB:Z>fn_"[*n!05RhkE
+'bUU\1Okm8?453Msa0+C[$3P?g`t[S=AMA\YgS1q&2CBR93=RYp?cJ0=hD.b#uVGoQk`._:d*I*KuPRu
+C;pH/b[f9LC'f@!"PHY*`"KN8t&tcE3V/V,Pi^Tp,AV_tBqS&TZd(YBjro3QFu`2j\UPh.[jS;jA@Fme
+pi"nVhP=o15dJDXMOkG,7KjkG9?WQaIf2$tG/u5U#<C:<%SOVVqFf\K.Uc*#\u6=tr8CoUq4#74IAdL3
+)TP5s;0B!UJ1!H@""IIXG%D"TScaPjTt>eq&f*1uXr3DnS,C'EE=$$]^Ha1olZ/!/0rpdXt/<k)c#3@s
+"Z1hB,QY3g>deW6\?6'[V\@#8s>Y'Vl?Br;QaX:-*Tp!8Ptn0uZ/("/R^M-kPgIrY42@'Ec?(0R9?&TR
+`Qq1p,)-0gRVrdu7,:B[7]=86@N*cNO5HF9T103VK>9"/S(>VR?Kh9ak`EScpOf.=gNjV]Ilt7(pD!2,
+`eFM72tN:A&/,#-1E`_"XO?"DA.8;<cA?nK)X6>*!nQ+0K>BNP@,FhQ-sKq*\smH4$&b$D0'8RgQ09E*
+1SZ\QfV/$:5Ug6U\`i!"]:nZ)Q+DrrD@b8_Ys"Gp/KO7i2AX2)7NeXFJME1'^tme'aUc%b-@NNd=UP1(
+!2@'`%f_i:0iF_i,M::'P^#lU5c15?^cd'-AO3[Rd@I0up+o)dI>s4e[1R#H^b&@W'o4T"crAMCP.&LR
+f#P6BSeOl6r[ndeuMor6c7M5?]f184nGsc93\6UF0?X`'-fdDRE,&KDfB'(s(F=?WW`A\SQ?m!.AWlc6
+'CH`udX*1[go\X_C;(4c(K.0St:;VpJDY"+WFUW$31V0&-uKUjdGM5U;qQ[mVu#IXAFfb,&?5q%%;%eP
+6POTK2J,Dl64:*XZu;W2>6ggRR<XX:q&'CjA#,H<$/\1JYlJ3R.kZku95h*W<oErRNRrJCT.#T5e##"N
+RLBJc;o0I537I1gcc#U/+NuoAWD^j/W%TH4R\[h_Hl+`r_0/qm*,_35m"NH-+ssL-Y,uXbRe_9O'*T7.
+S!OV*2in_!VCr3p)>$2JI505l9RErSbX)HBUAR8YMhuBic"9'FG%+(o&=h)',ZO+UK0f#(o>E-[JriSs
+5X"!uqS'&i3,9K>GM,0>D6gHVm)+!'4&CA7h:C+0QC?o^qH?@[mq8R0UGTEVRt&%L3&c%+65$<ZKP2TE
+[-mW1;lh`#=oIRYehr-akLdR5`D]'ESM7^$3[2;3(<2>Psm0EKa5Q>E6sn=Kr_K^GMj>:<3c6qGV`f;^
+=ZM4g@`Kf<$GGRW#S9HNn/V".j2gMZNoR@W6V[O3X<FXYI+;a'*X&;$k:H*jit6EST@L!'4UXrGj<jmR
+/<AAh$m('b\:aDEOA[NO\tPgTh!n'=_!Zmoc!D!=0_;^`Jc9.".n2^aGSk]"*N4$8W./*GN;+/=0/'\;
+YUd14HVfCOL_6F_i+QC;8LH,[muK'f'*qN9#!VX%c"U-XhD_CJ5E`b,7JLLng7K?);-SL75S[QR['K>#
+?Gl1Y.YE?;8P*gop=M;.(LgcDaDjjehIA+3LZSlj#Z9]h:^E!]j7T.CnIqJ<EG</IZUarW8U/.9%qTT"
+^GE*J`fK@Fq#uFOiUi>$]shT6d[e_C<:rch@I?6I;,GABDpqV_qN;p1HQoB0N^Cm5#/g!uN0d-_G^G93
+E@\Q:u_d#(6YQMFuiJ@#C)<TUr(:O=7#Tk5bJ2b@e8(0h!)ak+Bgs[0q\?#&N4[JQ?jZ=IpYG4-gW$3h
+#Y@k,)^SIqmIHE6<pjhbM_:1MoI)*hT&>Q_D9cAse.94%IYD<eGeO&[!pomQR54f2NKI14#-RKb[S[".
+u\Ha)#8r94/*Mj3Ohs`&-4q+O5E#aW@)[,L?F*`$6B3Xq"$>&e@U+#L5<F'hK%Y5ZME-4aPY9YP2W<l7
+0i'3`2g]CG,OMOuYi*Xb5kmXYqQ#WgBrH@?N@pJ3iXhk*f[\Lk\>C\>?u7T3A4kc+;_$EDt*#MQ#fS=9
+_!XQCK&/cJMG^rCVNY\hF=YbP9SV<?jV:Nn%#D-lsV*OQCqU^frPr8>M3>@D0u%CEmgCZD+j9[E'%j>H
+WBi9b-)8.8)ona#'JTmV)n1Pa[bjG2eBsHW'!V#32.4`?oZWN06/t:Jdj``Wf-SUbEJphMPXH!-Y71C"
+`E_*G>ET]f8o%S1#4dS)/`F`X[>l!ZnkI,`]S&guBYY$-E$?!(AVmjAVIs3;&rIH1n/7LEh2!V-"BQ0@
+5^_<'gqQ>(0$>eIF%r41%#(_>NR\S7\+.jGnM_j;``t<>*795s07bks95[A*>3Vi1EV*V_jC[clc^*$o
+,^E-Qc2YgZ^s4p<W%q7QA^9SLIqU+`-[6%0rM?CQm5VXZ2De+B)NX$GVQ/UdjD=/WtJQXN<$OS<bB.Hf
+DCi'BE<>19#aT8_Uh@O/Lg8><PjlP.O6p7jq+<5?b!B%1dk3*239@;c0ZuLtQ;uoW-tV!6d1mrr=NG3%
++U@]kML-aC;PXjFX/7>Daih)'c%_N6VZ7Ss52qK4DSBEM6&$P*`u$n1&,(@!pW#Wp%&o&'gbln+fj!CH
+mU*SueT)<6U"K4HE*M8jM6X?BfKc&UgGqnP#*f74c]65;W;[XQI-[pk<a<]R!O2Dek<U`JTVH5Ub^qjK
+gYFjsDM2VtZ"D6tS]hWJDYU5BtXc,$+;;"+u=(<L)?7HMqO09Q%e##&Fm396V_`l&1p$[Ws.tFZuQK>B
+$4lj,-r9Q6jNU*;q>Yo`;8>UheG[I6.B.m'K]"b=^s'K?rK*;</`,2IN5l0jL<JEb2dn(ul`?7B"Dkg:
+>K8(!FK3RcP>GgiC9EkUWugL@(L(%BN)S:=)T$lVg+Vo-PSfr1NooNS=fZ7K<Euh#+Qg&B+uGhOcauY.
+1MMYt*Zkn;J,HeAsglT<@`VigS(R[r-n[dI_<+BNL9Y3dr&KFVED!18icNe?L*_&^^3FFW5@94*MRB,d
+SW=(j;m0a<$TcEebZ+V1jb2H>uR:@[nOWUEHmqSd%c_@tR=-,a(6!M?'[g2Yr)gSe:s4qAQa%#$)`Yo2
+'0pKM.RP1b>JYq^:J_383R8Z0-u^>mB*>iaWPeN72dSN.m&2]eVPhm8eB%Ed>\E^0ut\[&6\m86*Z0AH
+5Cq,_M`&chFHAYr=0aj6[uL#i-HORb>'8YQI"7<`Rpi(+)6q(C5Z&+Ipri;D`2KGQ)^FY.Y$VK1^GhC3
+#u)G>>he+f6Y5T5&Kq7PRD>oF*HGe,KF"9DHoTXUIOI`<WL_,*86Y!"*m(9ZbO@GB6"WesmHI'[V-fQS
+\\OQSaBDBB_\%;bo6\j8)XU5Q^$99d=Ys)94S3SnJ.X*n\FOOADOHYs3q&&#D!8W5&gc!eS_TrG%H08L
+NC0lmUoBL*@q&k;3n*Gjj4Z-h-l-8_E0U(f)O5OIXZn5?_coG8H:p;E%3'0uXB[5cbtp.HFE,N*oP6EQ
+p0K+NIZ"aQ*\RigA.*0h>u]M)'.m2'QUPH_*6s2ro)F9Q!=@K1M_@73?5<gufgCd^+<uiCN,@WG.K(iB
+CsmUDVhmhKZfG-"pG&G7`r:Xh[KkEU-ILAql@%[$(4&-FT"2S`5uj>]iBjm+$Zf#lanbi[H!gmqp5I!8
+g,Mr(j,Z2WX0^WLI$p(QkXD@K->!iIBSY[7WFoccZ-[EOg/3_>aMUCM5f1VFr1dmb208O^!j8\Z&.JmW
+\&$=7AOZIR"BmKOFf[j0\"XXC:.WQNNL8Y(-'sr-GD?Z)@K8pUV9*!!B*;CHQ?,\.U3.p4ib@V"<c?Y_
+UCheC,.jnm'-NjCS3:k+UGuYVI5uf5J&c*$I=0\<G3Qb]0oQ8/^Yc$1[,rODpbqktjhN7d`buSnZZY^l
+R*T.g!!6na'p#[VLRs#<hBA"p*%Y`E'=$,4Fii8tJN+LHYI4QMLVSn+YE_)!!=sVgk!pisL%0@,,;a:J
+toY4K.G#I=QaW&T8n(Wg!9:'_oHZXL\<DrZD"p'Qpo#2;,3c1#B6YW:sOZKD5WUer=/#Rd#s?TfmbP\l
+.mIH/m*oT?((C.-bXB1h0H/WqG-<)OaaIE)/TWj\]2l.<E<ib+5*O!Sb;1F>FsEarhQ(P(&[.+&U@1Wu
+2?s0`rrF?&Sq('I:W:9D;.H*t152R<TSAWh]%@&91YnlC>"*Lm<"ji:BW;h5OpH9"$cY[\,1IK>=;dm2
+5]K,q<k(H4pB?VF^F_<+S30'lTeGRXBcX@?^/u8tX#hrrD)eDtnD+j<)C?ap_I*^[TGP+70U<`e(?tE3
+(kC\q<oVOj(OE^]HtCEP\TZ%mfibQ9"!(mn9;khG;EK-"?/C\MMhZ_b_t&V=NA#rXsW/mH=W9:[nSsIY
+=._\4"`D-ftNm_#AIlDc%>;hgB4sNn%MNgf>biE)o=>S.W_V02?:@RUm[<-l<&`BtSc?kL,G%#LePia#
+)=1[(.4R:]mpbBr6n=idhD2V![P7a(b\9Z'l!^'PA,8eq'OIoqRC>I7AYL$(teAknor=Ng,2n!hA<)PB
+KDkdY$$&O<3'6P6$>ZcdmbfQr<e1,9j'[R<,pDoqs\KlVR#eG<'!E8plRV@!W/H#&lWqUin!l*\"V@kG
+9V-a'<,^!&Gu^V9=$E;K,F_PlC`G5R;Wqr$a^I8[o:G$-siR#!!M?n]7M=D"Q_P%mPamPDWffmD`lf,`
+6X_%^a*":bbtS3Tt/b@/>aG:@<F+0^kS^'Nrnq]L/4I'3fkYr$rj[:i7/3n?3pnC]g-KVW0p=,Y!e^hM
+sM"&Wf<U^t/mpkm,-#$SAt(UsA$JH1IH95Q*C@mle:+VU#Ya`pm;'ZGds?nZ^(YP[rdifq*J1\k(7?q'
+pE)h`d:*VVdXIJT+(G"2P_OWq\pKaL0$B9[FhkZ#e'Jm;C^/]B*'fL9KYuJj;_3OS8#JZ6/iVF@Ku-eW
+Ds497dSR&#eepbTVFB:'F1o/?.dM6O[NkVE9MToKC7.>1B*2#Z\HK'_Z?agsfp3oA53b3QRir6b[phU9
++PR[bddm<K2Soj3ZA1,rXj\?D`X3,41<mi+&G!6Ta`R'_[$&Kq/IRUjsZi!2I#L/og"G*-S37;:+LY;G
+SbW&Zu3p9[tGf&j)e<6Cr1[UTG8.[RNYn`qT:#pG>gQF>G;Xo,7JV&ei+p44WOrA\;`9'8jh8DdKs"3V
+BMma.4:?]8e\r28r(Ok-EXOpCl1.r@*j15&]m"Bs[6[hO+6j:3afR]REkm+HkPR1GB[TC@[,O`DO"_QC
+bVc[<Q1$BATV(-7#JsSGj7$;Ki<I#J$lJo_r!lADOY7T79IB-\7+N:Z521,8eZo&)I6c$CA5O_Pa=E2^
+8F'm7N&(lV226)#Serh>#=V<$Bq2D=(?r"==]GpZ)(#X!=MaX[dC1V71Q_blEJe0:<H_mOD`e@.ZVJ50
+#iX`cgG'eukRu>9;GA-8Lk8Q.;T\NJ2P*5Okct8teRtFK.B^G:3=\gc#04p/QKQ"+OQsor@5+bE[IS`1
+r?<Xf*NUJGWAIk0KOJX_GLnQh05X^6GJ&]7Shc#JE2D\YaAeXsng<_Ot^glu_BA`gV*\P\3,*KK>!-00
+<hI*q\B9VMo,PELnTZmW7beS;K>O+%cdb>_5!%lTi;P9qY;bqL'b>V'5`KoV7?UdXd9iKnprUY8$GpSs
+8-%51G*uA0.,W6sD3::FAqeq5W4kMPMRk)2?`0Jj2;$Z,b&BXYa\OqXNfJS_2upksH$=7qua%Zo=K/'[
+aNW5Nt]=DC6[%TUrm)MsZrD]`<eNbpRCn2dSOCF5QVe*Cm(PL3q?)!60]LOcG[Z2rsi8!(pWen&75)`r
+hc/T?#fW54J3?`\'h"mm1hSa0-3.muFrOrQjZmrrA*V;5p<C;FrQ*33=`leON0Nf_GI?5G_]SCC0o-/V
+WS\4+lcfC0iAT#'#05Neb,.eXNW7G>$L@pIXIO&%cs*"9/A:\7KUUk-W0(.6I.PWF#E,i,q0f=O=h2&l
+X!b:(5OD/ALl3+Fir65oom0."<bkai=+9i(s6bGq7:/4RMHpF425uBBB-n^?^IB8+n%Z5N52*m9SVaq`
+jq9rr<kh1&QOo`j^Sm<$u.YgVUDMN^OcK=#As:_K)G2+7,Gf+11Bm5O^=%p^Zb]XL:+c\]6i`>mW:sU7
+Hj"n.S>M)7/lYOn:W8+e3qja+*ZEf%JrY^1bk#CNl^Mb].08jPlV>e@?YNj,u4sC<,c:rpMrIZi+U)?=
+r<j1$*alG(85b![3?dOu?"/DgVum'kQP?Xq51C8>gjI5Bi+%fDYkL/pI<dnG6-.0bG[Zd\"1&Yk6q4^E
+8ZEZ2N.DdY^*P5)90k~>
+%%EndBinary
+grestore
+np
+grestore
+grestore
+pgrs
+%%PageTrailer
+[
+[/CSA [/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/richtext/examples/graphics/dpsweb.pdf b/texmf-dist/doc/latex/richtext/examples/graphics/dpsweb.pdf
new file mode 100644
index 00000000..658565bf
--- /dev/null
+++ b/texmf-dist/doc/latex/richtext/examples/graphics/dpsweb.pdf
Binary files differ
diff --git a/texmf-dist/doc/latex/richtext/examples/richtext_tst.pdf b/texmf-dist/doc/latex/richtext/examples/richtext_tst.pdf
new file mode 100644
index 00000000..1833cc82
--- /dev/null
+++ b/texmf-dist/doc/latex/richtext/examples/richtext_tst.pdf
Binary files differ
diff --git a/texmf-dist/doc/latex/richtext/examples/richtext_tst.tex b/texmf-dist/doc/latex/richtext/examples/richtext_tst.tex
index 0f84e599..ff70453b 100644
--- a/texmf-dist/doc/latex/richtext/examples/richtext_tst.tex
+++ b/texmf-dist/doc/latex/richtext/examples/richtext_tst.tex
@@ -1,13 +1,16 @@
+% Use any workflow to build this file
\documentclass[12pt]{article}
-\usepackage[designiii,forcolorpaper]{web}
-\usepackage{eforms}
+\usepackage{xcolor}
+%\usepackage[designiii,forcolorpaper]{web}
\usepackage{richtext}
+\hypersetup{bookmarks=false,pdfpagemode=UseNone} % don't need to see bookmarks
+
\let\uif\textsf
\let\app\textsf
\let\pkg\textsf
-\convertcolorspec{named}{webbrown}{HTML}{\htmlWebBrown}
+\convertcolorspec{named}{brown}{HTML}{\htmlBrown}
\parindent0pt \parskip6pt
@@ -30,15 +33,16 @@ Height allows roughly 4 lines of text. Let's have more text so we get another li
Multiple paragraph field with multiple lines of text.
\rtpara[indent=first]{para1}{Now is the time for
- \span{style=strikeit,color=ff0000}{\it{\bf{J\374rgen}}} and all good men to
- come to the aid of \it{their} \bf{country}. Now is the time for
- \span{style=italic}{all good} women to do the same.
+\span{style=strikeit,color=ff0000}{\it{\bf{J\374rgen}}} and all good men to
+come to the aid of \it{their} \bf{country}. Now is the time for
+\span{style=italic}{all good} women to do the same.
}
+
\rtpara[indent=first]{para2}{This is a second paragraph. I hope we can agree
on what to do next.}
\rtpara[halign=right]{para3}{\span{url=http://www.acrotex.net}{AcroTeX.Net}}
-\setDefaultStyle{myDS}{font={Helvetica,sans-serif},color=\htmlWebBrown}
+\setDefaultStyle{myDS}{font={Helvetica,sans-serif},color=\htmlBrown}
\setRVVContent{myContent}
diff --git a/texmf-dist/doc/latex/richtext/richtext.pdf b/texmf-dist/doc/latex/richtext/richtext.pdf
new file mode 100644
index 00000000..7dc078fc
--- /dev/null
+++ b/texmf-dist/doc/latex/richtext/richtext.pdf
Binary files differ
diff --git a/texmf-dist/doc/latex/richtext/richtextman.pdf b/texmf-dist/doc/latex/richtext/richtextman.pdf
index c11f86d5..50240ee9 100644
--- a/texmf-dist/doc/latex/richtext/richtextman.pdf
+++ b/texmf-dist/doc/latex/richtext/richtextman.pdf
Binary files differ
diff --git a/texmf-dist/source/latex/richtext/doc/richtextman.tex b/texmf-dist/doc/latex/richtext/richtextman.tex
index 7526f9ad..c8c56358 100644
--- a/texmf-dist/source/latex/richtext/doc/richtextman.tex
+++ b/texmf-dist/doc/latex/richtext/richtextman.tex
@@ -7,11 +7,13 @@
% linktoattachments,
aebxmp
]{aeb_pro}
+\usepackage{aeb_mlink}
\usepackage{richtext}
\usepackage{graphicx,array}
%\usepackage{myriadpro}
%\usepackage{calibri}
\usepackage[altbullet]{lucidbry}
+\usepackage{pifont}
%\previewtrue
%\usepackage{makeidx}
@@ -22,6 +24,7 @@
\setcounter{secnumdepth}{4}
\setcounter{tocdepth}{5}
\makeatletter
+%\def\rtEOL{\let\\\@empty}
\renewcommand*{\theparagraph}{\texorpdfstring{\protect\P\protect\ }{\textparagraph}}
\renewcommand{\paragraph}
{\renewcommand{\@seccntformat}[1]{\theparagraph}%
@@ -30,9 +33,13 @@
\def\chgCurrLblName#1{\def\@currentlabelname{#1}}
\def\echgCurrLblName#1{\edef\@currentlabelname{#1}}
\makeatother
+\let\tops\texorpdfstring
\getDimsFromGraphic{graphics/dpsweb}{\dpswebW}{\dpswebH}
+\newcommand{\FmtMP}[2][0pt]{\mbox{}\marginpar{\raisebox{#1}{\parbox{\marginparwidth}{\slshape\raggedleft\small#2}}}}
+\addtolength{\marginparwidth}{1in}
+
%\urlstyle{rm}
\urlstyle{sf}
@@ -61,7 +68,7 @@
email={dpstory@acrotex.net},
subject={Documentation for the richtext package from AcroTeX},
talksite={\url{www.acrotex.net}},
- version={v1.0c, 2016/10/03},
+ version={1.1.1, 2020/07/02},
keywords={AcroTeX, rich text strings},
copyrightStatus=True,
copyrightNotice={Copyright (C) \the\year, D. P. Story},
@@ -192,8 +199,9 @@ drivers except \pkg{dvips}, and that is used by default.
We begin by illustrating the result of the \pkg{richtext} package, consider the rich text field below.
-\rtpara[indent=first]{para1}{Now is the time for
-\span{style={bold,italic,strikeit},color=ff0000}{J\374rgen} and all
+\rtpara[indent=first]{para1}
+{Now is the time for \span{style={bold,italic,%
+strikeit},color=ff0000}{J\374rgen} and all
good men to come to the aid of \it{their} \bf{country}. Now is the time for
\span{style=italic}{all good} women to do the same.}
\rtpara[indent=first]{para2}{With rich text, we can format the text within
@@ -244,14 +252,43 @@ the \uif{Link} attributes (URLs) are classified as \uif{Font}. The optional
argument of \cs{rtpara} consists of usually \uif{Paragraph} attributes, most
\uif{Font} attributes are also recognized.
+\newtopic\noindent\textbf{\textcolor{red}{Important!}} These comments are focused on the
+\app{dvips\,->\,distiller} workflow. The \app{dvips} application when
+converting from DVI to PS inserts line breaks in the Postscript file,
+according to rules known only to the developer. Breaking lines can cause problems with
+JavaScript code and rich text markup. The problems encountered do not occur in the other
+workflows (\app{pdflatex}, \app{lualatex}, and \app{xelatex}).
+\begin{description}
+ \item[\bfseries\color{red}Rule 1.] For the workflow \FmtMP{\app{dvips->distiller} workflow}\app{dvips\,->\,distiller}, spaces
+ in the third argument (\ameta{rich-text-paragraph}) are obeyed and are replaced
+ with the octal \cs{040} which is the (PDF) space character. Of particular importance,
+ the third argument of \cs{rtpara} must be flush against the left margin, otherwise
+ spurious spaces are introduced. See the verbatim listing below.
+% \item[\bfseries\color{red}Rule 2.] Do not allow spaces between the arguments
+% of \cs{rtpara}. To break a line, insert a comment character (\texttt{\%}), see
+% line~\ding{182} below.
+ \item[\bfseries\color{red}Rule 2.]
+ Within\FmtMP{\app{dvips->distiller} workflow} the argument of
+ the \cs{span} command, \emph{do not use spaces}. To break a line within the
+ argument of \cs{span}, use the comment character (\texttt{\%}) to avoid spurious
+ spaces, see line~\ding{182} below. The \textit{value} of a key may require spaces, for example,
+ \cs{span\darg{font='Myriad Pro'}}. There should be no spaces between
+ key-value pairs, for example, don't type something like this: \verb*|\span{font = 'Myriad Pro'}|,
+ or do this: \verb~\span{style={bold, italic, strikeit}~.
+
+\end{description}
+
+\newtopic\noindent
The definition of the first paragraph of the above rich text field reads as
-follows:
-\begin{Verbatim}[fontsize=\small]
-\rtpara[indent=first]{para1}{Now is the time for
- \span{style={bold,italic,strikeit},color=ff0000}{J\374rgen}
- and all good men to come to the aid of \it{their}
- \bf{country}. Now is the time for \span{style=italic}
- {all good} women to do the same.}
+follows:\def\1{\leavevmode\rlap{\hskip3.5in\normalfont\ding{182}}}\def\2{\leavevmode\rlap{\hskip3.5in\%\sffamily\space this is OK}}
+\begin{Verbatim}[fontsize=\small,commandchars=!()]
+!2\rtpara[indent=first]{para1}
+{Now is the time for
+!1\span{style={bold,italic,strikeit},%
+color=ff0000}{J\374rgen}
+and all good men to come to the aid of \it{their}
+\bf{country}. Now is the time for \span{style=italic}
+{all good} women to do the same.}
\end{Verbatim}
In this example, the optional argument for \cs{rtpara} was used to indent the
paragraph. The rich text defined here is named \texttt{para1}. The third
@@ -274,25 +311,26 @@ described here, is only defined within the third argument
\cs{span} is a {\TeX} primitive command, and we must not overwrite its
definition.
-When you create a \emph{rich text string} there is a parallel development of a
-\emph{plain text string}, the string without its rich text markup, these two
-(rich and plain strings) are used to populate the values of the \psf{RV} and
-\psf{V} keys of a text field. When you define a rich text paragraph string
-under its own \ameta{name}, you can typeset it (to check the syntax) and its
-plain text counterpart using the \cs{useRV\darg{\ameta{name}}} and
-\cs{useV\darg{\ameta{name}}} commands. For example,
-\begin{quote}\raggedright\ttfamily\makeatletter\def\rt@SC{;\penalty0}%
+When you create a \emph{rich text string} there is a parallel development of
+a \emph{plain text string}, the string without its rich text markup, these
+two (rich and plain strings) are used to populate the values of the \psf{RV}
+and \psf{V} keys of a text field. When you define a rich text paragraph
+string under its own \ameta{name}, you can typeset it (to check the syntax)
+and its plain text counterpart using the methods of
+\hyperref[s:displayRVV]{Section~\ref*{s:displayRVV}}. For example,
+\begin{displayRtPara}{para1}
\rtpara[indent=first]{para1}{Now is the time for
-\span{style={bold,italic,strikeit},color=ff0000}{J\string\374rgen} and all
+\span{style={bold,italic, strikeit},color=ff0000}{J\string\374rgen} and all
good men to come to the aid of \it{their} \bf{country}. Now is the time for
\span{style=italic}{all good} women to do the same.}
-\makeatother
-\hspace*{-\leftmargini}\textbf{\cs{useRV\darg{para1}:}}\ \useRV{para1}\\[\baselineskip]
-\hspace*{-\leftmargini}\textbf{\cs{useV\darg{para1}:}}\ \useV{para1}
-\end{quote}
-These commands may also be used to insert the strings into the \psf{RV} and
-\psf{V} keys, respectively; though the \pkg{richtext} package offers an
-alternative technique.
+\end{displayRtPara}
+\begin{flushleft}\textbf{\cs{useRV\darg{para1}:}}
+\texttt{\displayRV{para1}}\\[\baselineskip]
+\textbf{\cs{useV\darg{para1}:}} \texttt{\displayV{para1}}
+\end{flushleft}
+The commands \cs{useRV\darg{\ameta{name}}} and \cs{useV\darg{\ameta{name}}} may also be used to insert the strings
+into the \psf{RV} and \psf{V} keys, respectively; though the \pkg{richtext}
+package offers an alternative technique.
\subsection{The \texorpdfstring{\uif{Font}}{Font} and
\texorpdfstring{\uif{Link}}{Link} tabs}\label{s:FLtabs}
@@ -321,12 +359,12 @@ may appear as \ameta{Font-attrs} or \ameta{Para-Font-attrs}.
contains white space, enclose it within single quotes (\texttt{'}).
\begin{flushleft}\small %\previewtrue
\verb|\rtpara[font={Arial,sans-serif}]{para1}{This is Arial or a|
-\hspace*{20pt}\verb|san-serif substitute.}|\\[3pt]
+\verb|san-serif substitute.}|\\[3pt]
\rtpara[font={Arial,sans-serif}]{para1}{This is Arial or a san-serif substitute.}%
\incFldCnt\textField[\Ff{\FfRichText}%\Ff{\FfMultiline}
\DS{\useDefaultDS}\RV{\useRV{para1}}\V{\useV{para1}}]{rtFld\the\fldCnt}{3in}{16bp}\\[6pt]
\verb|\rtpara{para2}{This is \span{font='Myriad Pro'}|
-\hspace*{20pt}\verb|{Myriad Pro} font.}|\\[3pt]
+\verb|{Myriad Pro} font.}|\\[3pt]
\rtpara{para2}{This is \span{font='Myriad Pro'}{Myriad Pro} font.}
\incFldCnt\textField[\Ff{\FfRichText}%\Ff{\FfMultiline}
\DS{\useDefaultDS}\RV{\useRV{para2}}\V{\useV{para2}}]{rtFld\the\fldCnt}{3in}{16bp}
@@ -451,8 +489,8 @@ commas.
We can create a link within rich text by using the \texttt{url} key from within
the first argument of the \cs{span} command. The syntax is \texttt{url=\ameta{URL}}.
\begin{Verbatim}[fontsize=\small]
-\rtpara{para1}{Visit me at \span{url={http://www.acrotex.net},
- font='Courier New'}{http://www.acrotex.net}}
+\rtpara{para1}{Visit me at \span{url={http://www.acrotex.net},%
+font='Courier New'}{http://www.acrotex.net}}
\end{Verbatim}
\begin{quote}
\rtpara{para1}{Visit me at \span{url={http://www.acrotex.net},font='Courier New'}{http://www.acrotex.net}}\par\smallskip
@@ -461,14 +499,13 @@ the first argument of the \cs{span} command. The syntax is \texttt{url=\ameta{UR
\end{quote}
It appears the \app{Acrobat/Reader} applications format a URL in underlined blue. We can override this however.
\begin{Verbatim}[fontsize=\small]
-\rtpara{para1}{Visit me at \span{url={http://www.acrotex.net},
- color=\htmlMagenta,ulstyle=none,font='Courier New'}
- {http://www.acrotex.net}}
+\rtpara{para1}{Visit me at \span{url={http://www.acrotex.net},%
+color=\htmlMagenta,ulstyle=none,font='Courier New'}%
+{http://www.acrotex.net}}
\end{Verbatim}
\begin{quote}
-\rtpara{para1}{Visit me at \span{url={http://www.acrotex.net},
- color=\htmlMagenta,ulstyle=none,font='Courier New'}
- {http://www.acrotex.net}}
+\rtpara{para1}{Visit me at \span{url={http://www.acrotex.net},color=\htmlMagenta,ulstyle=none,font='Courier New'}%
+{http://www.acrotex.net}}
\par\smallskip
\incFldCnt\textField[\Ff{\FfRichText}%\Ff{\FfMultiline}
\DS{\useDefaultDS}\RV{\useRV{para1}}\V{\useV{para1}}]{rtFld\the\fldCnt}{3.5in}{16bp}
@@ -477,14 +514,14 @@ Special characters are no problem, with the exception of wrapping a long URL
around to a different line (usually needed for display purposes):
\begin{Verbatim}[fontsize=\small]
\rtpara{para1}{Visit me at
- \span{url={http://www.math.uakron.edu/~dpstory/%
- acrotex.html#technical}}{AcroTeX at The University
- of Akron}}
+\span{url={http://www.math.uakron.edu/~dpstory/%
+acrotex.html#technical}}{AcroTeX at The University
+of Akron}}
\end{Verbatim}
\begin{quote}
\rtpara{para1}{Visit me at \span{url={http://www.math.uakron.edu/%
- ~dpstory/acrotex.html#technical}}
- {AcroTeX at The University of Akron}}\par\smallskip
+~dpstory/acrotex.html#technical}}%
+{AcroTeX at The University of Akron}}\par\smallskip
\incFldCnt\textField[\Ff{\FfRichText}\Ff{\FfMultiline}
\DS{\useDefaultDS}\RV{\useRV{para1}}\V{\useV{para1}}]{rtFld\the\fldCnt}{3.5in}{16bp*2}
\end{quote}
@@ -507,12 +544,14 @@ Both \cs{bf} and \cs{it} are local commands, undefined outside of the third argu
of \cs{rtpara}. Do not code \texttt{<b>\ameta{text}</b>} or \texttt{<i>\ameta{text}</i>}
directly, rather, always use the {\LaTeX} commands \cs{bf} and \cs{it}. \cs{bf} and \cs{it} may be nested.
\begin{Verbatim}[fontsize=\small]
-\rtpara{para1}{We \bf{boldly} say that \it{italic} is used for
-emphasis, but both \bf{\it{drive home the point}}.}
+\rtpara{para1}{We \bf{boldly} say that \it{italic} is used
+for emphasis, but both \span{color=\htmlBlue}%
+{\bf{\it{drive home the point}}}.}
\end{Verbatim}
\begin{quote}
-\rtpara{para1}{We \bf{boldly} say that \it{italic} is used for emphasis,
-but both \span{color=\htmlBlue}{\bf{\it{drive home the point}}}.}
+\rtpara{para1}{We \bf{boldly} say that \it{italic} is used
+for emphasis, but both \span{color=\htmlBlue}%
+{\bf{\it{drive home the point}}}.}
\incFldCnt\textField[\Ff{\FfRichText}\Ff{\FfMultiline}
\DS{\useDefaultDS}\RV{\useRV{para1}}\V{\useV{para1}}]{rtFld\the\fldCnt}{3.5in}{16bp*2}
\end{quote}
@@ -558,18 +597,18 @@ the one on the right is \emph{Vertical Alignment}.
key-values are obvious, we'll illustrate with examples.
\begin{Verbatim}[fontsize=\small]
\rtpara[halign=left]{para1}{This paragraph is left
- aligned or flush left. Let's have a few more words
- to wrap around.}
+aligned or flush left. Let's have a few more words
+to wrap around.}
\rtpara[halign=center]{para2}{This paragraph is
- centered. Let's have a few more words to wrap
- around.}
+centered. Let's have a few more words to wrap
+around.}
\rtpara[halign=right]{para3}{This paragraph is right
- aligned or flush right. Let's have a few more words
- to wrap around.}
+aligned or flush right. Let's have a few more words
+to wrap around.}
\rtpara[halign=justify]{para4}{This paragraph is
- justified. Space between words are stretched a
- little to make this happen. It is adequate for
- our purposes.}
+justified. Space between words are stretched a
+little to make this happen. It is adequate for
+our purposes.}
\end{Verbatim}
\begin{flushleft}
\rtpara[halign=left]{para1}{This paragraph is left aligned or flush left. Let's have a few more words to wrap around.}
@@ -589,11 +628,11 @@ Horizontal alignment is applied to individual paragraph, unlike vertical alignme
we shall illustrate by example.
\begin{Verbatim}[fontsize=\small]
\rtpara[valign=top]{para1}{This paragraph is vertically
- aligned at the top.}
+aligned at the top.}
\rtpara[valign=middle]{para2}{This paragraph is
- vertically aligned at the middle.}
+vertically aligned at the middle.}
\rtpara[valign=bottom]{para3}{This paragraph is
- vertically aligned at the bottom.}
+vertically aligned at the bottom.}
\end{Verbatim}
\begin{flushleft}
\rtpara[valign=top]{para1}{This paragraph is vertically aligned at the top.}
@@ -628,14 +667,14 @@ The vertical alignment for the whole rich text field obeys the \texttt{valign} k
\medskip
Below is an example for both \texttt{margleft} and \texttt{margright}.
\begin{Verbatim}[fontsize=\small]
-\rtpara[margleft=10,margright=40,halign=justify
- ]{para1}{This is the first paragraph, it has
- a left margin of 10pt and a right margin of
- 40pt.}
+\rtpara[margleft=10,margright=40,halign=justify]%
+{para1}{This is the first paragraph, it has
+a left margin of 10pt and a right margin of
+40pt.}
\rtpara[halign=justify]{para2}{This is the second
- paragraph. We demonstrate that the left and
- margins can be applied separately to
- paragraphs.}
+paragraph. We demonstrate that the left and
+margins can be applied separately to
+paragraphs.}
\end{Verbatim}
\begin{flushleft}
\rtpara[font=10,margleft=10,margright=40,halign=justify]{para1}{This is the first
@@ -654,13 +693,13 @@ left and margins can be applied separately to paragraphs.}
(the minus sign (\texttt{-}) is automatically applied. The default indent amount it \texttt{12pt}.\smallskip\kern0pt
\begin{Verbatim}[fontsize=\small]
\rtpara[indent=first]{para1}{This paragraph is
- indented by the default amount of 12pt.}
+indented by the default amount of 12pt.}
\rtpara[indent=first,indentby=24]{para2}{In this
- second paragraph, we indent by 24pt, twice
- as wide as the default.}
+second paragraph, we indent by 24pt, twice
+as wide as the default.}
\rtpara[indent=hanging]{par3}{Here we have a third
- paragraph, separated from the other two, with
- the default hanging indentation.}
+paragraph, separated from the other two, with
+the default hanging indentation.}
\end{Verbatim}
\begin{flushleft}
\rtpara[indent=first]{para1}{This paragraph is indented by the default amount of 12pt.}
@@ -681,9 +720,9 @@ the default hanging indentation.}\par\smallskip
vertical space \emph{above} the paragraph.\medskip
\begin{Verbatim}[fontsize=\small]
\rtpara[margtop=12]{para1}{We put 12pt of extra
- space above this paragraph.}
+space above this paragraph.}
\rtpara[margtop=24]{para2}{Extra space above this
- paragraph (24pt).}
+paragraph (24pt).}
\end{Verbatim}
\begin{flushleft}
\rtpara[margtop=12]{para1}{We put 12pt of extra space above this paragraph.}
@@ -697,8 +736,8 @@ the default hanging indentation.}\par\smallskip
vertical space below the paragraph.\par\medskip
\begin{Verbatim}[fontsize=\small]
\rtpara[valign=bottom,margbottom=12]{para1}{We put
- \span{font=Courier,style=bold}{valign=bottom},
- but bring the paragraph up 12pt from there.}
+\span{font=Courier,style=bold}{valign=bottom},
+but bring the paragraph up 12pt from there.}
\end{Verbatim}
\rtpara[valign=bottom,margbottom=12]{para1}{We put \span{font=Courier,style=bold}{valign=bottom}, but bring the
paragraph up 12pt from there.}\par\medskip
@@ -728,18 +767,19 @@ linespacing=exact, lineheight=30. Do we get significant separation between sente
The paragraph declarations for the above rich text field are,
\begin{Verbatim}[fontsize=\small]
\rtpara[linespacing=oneandhalf]{para1}{This
- paragraph has line spacing of oneandhalf. We
- will prattle on to get some wraparound to the
- next line.}
+paragraph has line spacing of oneandhalf. We
+will prattle on to get some wraparound to the
+next line.}
\rtpara[linespacing=double]{para2}{This paragraph
- has double spacing. Once again, we'll ramble,
- not prattle, on for several more words.}
+has double spacing. Once again, we'll ramble,
+not prattle, on for several more words.}
\rtpara[linespacing=exact,lineheight=30]{para3}
- {Let's see what we get here, with
- linespacing=exact, lineheight=30. Do we
- get significant separation between sentences?}
+{Let's see what we get here, with
+linespacing=exact, lineheight=30. Do we
+get significant separation between sentences?}
\end{Verbatim}
-\medskip\noindent
+
+\newtopic\noindent
The value of \texttt{lineheight}, which gives a `squeezing' effect between lines of the paragraph.
\end{description}
\end{description}
@@ -753,22 +793,22 @@ There are several other features that do not fit conveniently anywhere else, so
{Starting a new line using \cs{br}.}\chgCurrLblName{Starting a new line using \protect\cs{br}}\label{para:NewLine}
The \cs{br} command expands to \texttt{<br />}. It should not be put within
the second argument of the \cs{span} command. As was the case with \cs{bf},
-\cs{it}, \cs{sub}, and \cs{sup}, do not directly code in \texttt{<br />} for
+\cs{it}, \cs{sub}, and \cs{sup}, do not code in \texttt{<br />} directly, for
you will fail.
\begin{Verbatim}[xleftmargin=\amtIndent]
\rtpara{para1}{Let's begin a sentence,\br then we'll
- start a new line for no apparent reason.\br\br
- Let's double down on the new lines shall we?}
+start a new line for no apparent reason.\br\br
+Let's double down on the new lines shall we?}
\end{Verbatim}
\begin{quote}
\rtpara{para1}{Let's begin a sentence,\br then we'll
- start a new line for no apparent reason.\br\br Let's
- double down on the new lines shall we?}
+start a new line for no apparent reason.\br\br Let's
+double down on the new lines shall we?}
\incFldCnt\textField[\Ff{\FfRichText}\Ff{\FfMultiline}
\DS{\useDefaultDS}\RV{\useRV{para1}}\V{\useV{para1}}]{rtFld\the\fldCnt}{3.5in}{16bp*6}
\end{quote}
-\paragraph[Adding spaces with \texorpdfstring{\cs{spc}}{\textbackslash{spc}}]{Adding
+\paragraph[Adding a space with \texorpdfstring{\cs{spc}}{\textbackslash{spc}}]{Adding
spaces with \cs{spc}.}\chgCurrLblName{Adding
spaces with \protect\cs{spc}}\label{para:addSPC}
As with {\TeX} multiple spaces are ignored. To insert additional
@@ -792,8 +832,8 @@ within the optional argument of \cs{rtpara} or within the first argument of \cs{
you can pass raw CSS2 markup.
\begin{Verbatim}[xleftmargin=\amtIndent]
\rtpara{para1}{We test the letter-spacing
- attribute:\br\br\span{raw=letter-spacing:0.25em;}
- {We test the letter-spacing attribute.}}
+attribute:\br\br\span{raw=letter-spacing:0.25em;}
+{We test the letter-spacing attribute.}}
\end{Verbatim}
\begin{quote}
\rtpara{para1}{We test the letter-spacing attribute:\br\br\span{raw=letter-spacing:0.25em;}{We test the letter-spacing
@@ -802,7 +842,7 @@ attribute.}}
\DS{\useDefaultDS}\RV{\useRV{para1}}\V{\useV{para1}}]{rtFld\the\fldCnt}{3.5in}{16bp*6}
\end{quote}
The syntax for a CSS2 attribute is `\texttt{\ameta{key}:\ameta{value};}', that is, keys and values are separated
-by a colon (\texttt{:}) and the value is terminated with a semi-colon (\texttt{;}).
+by a colon (\texttt{:}) and the value is terminated with a semi-colon~(\texttt{;}).
It appears that tab stops work as well, these can be specified using the \texttt{raw} key as well. Refer to the
XFA Specifications~\cite{webpage:XFASpec}.
@@ -822,29 +862,29 @@ command \cs{cs\darg{\ameta{text}}} to obtain a literal backslash (`\verb|\|'); f
\verb|\cs{LaTeX}|, shown below, expands to `\texttt{\cs{LaTeX}}'.
\begin{Verbatim}[fontsize=\small]
\rtpara{para1}{We \"test\" \'special\' \bf{characters:}
- \<\>\&\{ #\% in \cs{LaTeX} $x^2_4$ becomes
- \it{x}\sup{2}\sub{4} \{\}}
+\<\>\&\{ #\% in \cs{LaTeX} $x^2_4$ becomes
+\it{x}\sup{2}\sub{4} \{\}}
\end{Verbatim}
The above \cs{rtpara} paragraph has two forms the \psf{RV} form and the \psf{V} form; these
can be seen by using the \cs{useRV} and \cs{useV} commands.
-\begingroup\raggedright
-\makeatletter\def\rt@SC{;\penalty0}\makeatother
+\begin{displayRtPara}{para1}
\rtpara{para1}{We \"test\" 'special' \bf{characters:} \<\>\&\{ #\% in
\cs{LaTeX} $x^2_4$ becomes \it{x}\sup{2}\sub{4} \{\}}
-\begin{quote}
-\hspace*{-\leftmargini}\textbf{\cs{useRV\darg{para1}:}} \texttt{\useRV{para1}}
+\end{displayRtPara}
-\hspace*{-\leftmargini}\textbf{\cs{useV\darg{para1}:}} \texttt{\useV{para1}}
-\end{quote}
+
+\begin{flushleft}\textbf{\cs{useRV\darg{para1}:}} \texttt{\displayRV{para1}}\end{flushleft}
+
+\begin{flushleft}\textbf{\cs{useV\darg{para1}:}} \texttt{\displayV{para1}}\end{flushleft}
+%
The resulting rich text form field is seen below:\\[3pt]
-\makeatletter\def\rt@SC{;}\makeatother
\rtpara{para1}{We \"test\" \'special\' \bf{characters:} \<\>\&\{ #\% in
\cs{LaTeX} $x^2_4$ becomes \it{x}\sup{2}\sub{4} \{\}}
\incFldCnt\textField[\Ff{\FfRichText}\Ff{\FfMultiline}
\DS{\useDefaultDS}\RV{\useRV{para1}}\V{\useV{para1}}]{rtFld\the\fldCnt}{3in}{16bp*4}
-\par\endgroup
-\medskip\noindent
+
+\newtopic\noindent
That's pretty cool!
\section{Rich text fields}
@@ -865,7 +905,7 @@ Remove \cs{Ff\darg{\cs{FfMultiline}}} if the field is only a single line. We
discuss the \psf{DS} key (\cs{DS}) key first, followed by the keys \psf{RV}
and \psf{V} (\cs{RV} and \cs{V}).
-\subsection{The \texorpdfstring{\protect\psf{DS}}{DS} key}
+\subsection{The \tops{\protect\psf{DS}}{DS} key}
The value of the \psf{DS} key sets the formatting for the text field as a
whole. Most importantly, use it to set the font, text size, and color.
@@ -893,18 +933,19 @@ why most all rich text fields in this document use Helvetica at \texttt{12pt}! U
\setDefaultStyle{!ameta(name)}{!ameta(Font-Para-attrs)}
\useDS{!ameta(name)}
\end{dCmd}
+\eVerb
Typically, the key-values associated with the \uif{Font} tab, Section~\ref{s:FLtabs}, may be used,
some key-values are removed, such as \texttt{ul}, \texttt{raise}, and \texttt{url}. When you've defined
a custom default style using \cs{setDefaultStyle}, insert \cs{useDS\darg{\ameta{name}}} as the value
of the \psf{DS} key.\incFldCnt
\begin{Verbatim}[xleftmargin=\amtIndent,fontsize=\small,commandchars=!()]
\rtpara{para1}{The font should be \'Myriad Pro\' at 10pt
- and the default color of the field is webbrown, a color
- defined in the web package.}
+and the default color of the field is webbrown, a color
+defined in the web package.}
\setDefaultStyle{myStyle}{font='Myriad Pro',size=10,
- color=!htmlWebBrown}
+color=!htmlWebBrown}
\textField[\Ff{\FfRichText}\Ff{\FfMultiline}
- \DS{!textbf(\useDS{myStyle})}\RV{\useRV{para1}}\V{\useV{para1}}
+ \DS{!textbf(\useDS{myStyle})}\RV{\useRV{para1}}\V{\useV{para1}}
]{rtFld!the!fldCnt}{3in}{16bp*3}
\end{Verbatim}
\begin{quote}
@@ -917,8 +958,8 @@ of the \psf{DS} key.\incFldCnt
Note the use of \cs{useRV} and \cs{useV} in the \psf{RV} and \psf{V} fields.
These are discussed in the next section.
-\subsection{The \texorpdfstring{\protect\psf{RV}}{RV} and
-\texorpdfstring{\protect\psf{V}}{V} keys}
+\subsection{The \tops{\protect\psf{RV}}{RV} and
+\tops{\protect\psf{V}}{V} keys}
The techniques to handle multiple paragraph fields are more complex (but not discouragingly so),
that topic will be taken up after the discussion of single paragraph fields.
@@ -930,12 +971,12 @@ data (both rich and plain) are inserted into the \cs{RV} and \cs{V} keys using \
previous example, but with the emphasis on \cs{RV} and \cs{V}, and not on \cs{DS}.
\begin{Verbatim}[xleftmargin=\amtIndent,fontsize=\small,commandchars=!()]
\rtpara{para1}{The font should be \'Myriad Pro\' at 10pt
- and the default color of the field is webbrown, a
- color defined in the web package.}
+and the default color of the field is webbrown, a
+color defined in the web package.}
\setDefaultStyle{myStyle}{font='Myriad Pro',size=10,
- color=!htmlWebBrown}
+color=!htmlWebBrown}
\textField[\Ff{\FfRichText}\Ff{\FfMultiline}
- \DS{\useDS{myStyle}}\RV{!textbf(\useRV{para1})}\V{!textbf(\useV{para1})}
+ \DS{\useDS{myStyle}}\RV{!textbf(\useRV{para1})}\V{!textbf(\useV{para1})}
]{rtFld!the!fldCnt}{3in}{16bp*3}
\end{Verbatim}
\begin{quote}
@@ -950,7 +991,6 @@ We declare our rich paragraph string using \cs{rtpara} and name it
(\cs{RV\darg{useRV\darg{para}}}) and the other into the (plain) text key
(\cs{V\darg{useV\darg{para}}}).
-
\subsubsection{Multiple paragraph fields}
The strategy is to use several \cs{rtpara} commands to declare several rich
@@ -977,19 +1017,20 @@ Having composed how the strings are to be put together, we need to insert them i
command. Insert \cs{useRVContent} as the value of the \psf{RV} key, and
\cs{useVContent} as the value of the \psf{V} key.
+\newtopic\noindent
We take as an example, the one from Section~\ref{s:CreateRTS}.\incFldCnt
\begin{Verbatim}[fontsize=\small]
\rtpara[indent=first]{para1}{Now is the time for
- \span{style={bold,italic,strikeit},color=ff0000}{J\374rgen}
- and all good men to come to the aid of \it{their}
- \bf{country}. Now is the time for \span{style=italic}
- {all good} women to do the same.}
+\span{style={bold,italic,strikeit},color=ff0000}{J\374rgen}
+and all good men to come to the aid of \it{their}
+\bf{country}. Now is the time for \span{style=italic}%
+{all good} women to do the same.}
\rtpara[indent=first]{para2}{With rich text, we can format the
- text within the text field. As a reader of this rich text
- field, you can edit the contents of the box, feel free to
- do so.}
+text within the text field. As a reader of this rich text
+field, you can edit the contents of the box, feel free to
+do so.}
\rtpara[halign=right]{para3}{D. P. Story
- \span{url=http://www.acrotex.net}{AcroTeX.Net}}
+\span{url=http://www.acrotex.net}{AcroTeX.Net}}
\end{Verbatim}
Now set the content with \cs{setRVVContent}, naming it \texttt{myContent}.
\begin{Verbatim}[fontsize=\small]
@@ -999,9 +1040,9 @@ Having done all that, we create our rich text field:
\begin{Verbatim}[fontsize=\small,commandchars=!()]
\begin{center}
\textField[\Ff{\FfRichText}\Ff{\FfMultiline}
- \DS{\useDefaultDS}
- !textbf(\RV{\useRVContent{myContent}})
- !textbf(\V{\useVContent{myContent}})
+ \DS{\useDefaultDS}
+ !textbf(\RV{\useRVContent{myContent}})
+ !textbf(\V{\useVContent{myContent}})
]{rtFld!the!fldCnt}{4in}{10\baselineskip}
\end{center}
\end{Verbatim}
@@ -1027,6 +1068,8 @@ contents of the box, feel free to do so.}
\RV{\useRVContent{myContent}}\V{\useVContent{myContent}}]{rtFld\the\fldCnt}{4in}{10\baselineskip}
\end{center}
+\medskip
+\newtopic\noindent
The argument of \cs{setRVVContent} is pretty robust. In making our declarations, we can type:
\begin{Verbatim}[xleftmargin=\amtIndent,fontsize=\small]
\setRVVContent{myContent}
@@ -1041,19 +1084,98 @@ The argument of \cs{setRVVContent} is pretty robust. In making our declarations,
Note that I've added a \texttt{skipline} so that are two blank lines after the second paragraph
and before the third paragraph.
-\bigskip\noindent
-That's about it! Now, back to my retirement. \dps \space (See next page)
-\newpage
+\section{Displaying the values of the \tops{\protect\psf{RV} and \protect\psf{V}}{RV and V} keys}\label{s:displayRVV}
+
+For the purposes of inspection or discussion, you can \emph{typeset} the rich text values for both the
+\psf{RV} and \psf{V} keys using the following set of environments and commands.
+\bVerb\takeMeasure{\small\string\rtpara[\ameta{Para-Font-attrs}]\darg{\ameta{name}}\darg{\ameta{rich-text-paragraph}}}%
+\begin{dCmd}[fontsize=\small,commandchars=!()]{\bxSize}
+\begin{displayRtPara}{!ameta(name)}
+\rtpara[!ameta(Para-Font-attrs)]{!ameta(name)}{!ameta(rich-text-paragraph)}
+\end{displayRtPara}
+
+\begin{displayRtPara*}{!ameta(name)}
+\rtpara[!ameta(Para-Font-attrs)]{!ameta(name)}{!ameta(rich-text-paragraph)}
+\end{displayRtPara*}
+
+\displayRV{!ameta(name)}
+\displayV{!ameta(name)}
+\end{dCmd}
+\eVerb By placing an \cs{rtpara} command within the \env{displayRtPara} environment,
+you can then typeset a (cleaned-up) version of \psf{RV} and \psf{V} by
+expanding \cs{displayRV\ameta{name}} and/\allowbreak or
+\cs{displayRV\ameta{name}}. The \env{displayRtPara*} environments produces
+the `ugly' version of the entries, useful only with the
+\app{dvips\,->\,distiller} workflow.
+
+\paragraph*{Example.} If we say,
+\begin{Verbatim}[fontsize=\small]
+\begin{displayRtPara}{para1}
+\rtpara[indent=first]{para1}{Now is the time for
+\span{style={bold,italic,strikeit},color=ff0000}{J\374rgen}
+and all good men to come to the aid of \it{their}
+\bf{country}. Now is the time for \span{style=italic}%
+{all good} women to do the same.}
+\end{displayRtPara}
+\end{Verbatim}
+then type,
+\begin{Verbatim}[fontsize=\small]
+\begin{flushleft}\textbf{Rich text: }\ttfamily
+\displayRV{para1}\end{flushleft}
+\begin{flushleft}\textbf{Plain text: }\ttfamily
+\displayV{para1}\end{flushleft}
+\end{Verbatim}
+The following is typeset into the document:
+
+\begin{displayRtPara}{para1}
+\rtpara[indent=first]{para1}{Now is the time for
+\span{style={bold,italic,strikeit},color=ff0000}{J\374rgen}
+and all good men to come to the aid of \it{their}
+\bf{country}. Now is the time for \span{style=italic}%
+{all good} women to do the same.}
+\end{displayRtPara}
+
+\begin{flushleft}\textbf{Rich text: }\ttfamily\displayRV{para1}\end{flushleft}
+\begin{flushleft}\textbf{Plain text: }\ttfamily\displayV{para1}\end{flushleft}
+
+\newtopic %\noindent
+Now, if the same \cs{rtpara} is enclosed in a \env{displayRtPara} environment (not shown), we get the following:
+
+\begin{displayRtPara*}{para1}
+\rtpara[indent=first]{para1}{Now is the time for
+\span{style={bold,italic,strikeit},color=ff0000}{J\374rgen}
+and all good men to come to the aid of \it{their}
+\bf{country}. Now is the time for \span{style=italic}%
+{all good} women to do the same.}
+\end{displayRtPara*}
+
+\begin{flushleft}\textbf{Rich text: }\ttfamily\displayRV{para1}\end{flushleft}
+\begin{flushleft}\textbf{Plain text: }\ttfamily\displayV{para1}\end{flushleft}
+Yes, this document was created by a \app{dvips\,->\,distiller}
+workflow!\footnote{Actually, the \app{dvipsone\,->\,distiller} workflow.} As
+you can see, \cs{040} is inserted whenever there is a space. This is to keep
+\app{dvips} from breaking the Postscript at a point that will break the rich
+text CSS2 markup.
+
+For a non-Postscript workflow, typeset print outs from \env{displayRtPara} and
+\env{displayRtPara*} are the same, because only \app{dvips} needs special handling.
+
+\bigskip\noindent
+That's about it! Now, back to my retirement. \dps %\space (See next page)
+
+%\newpage
+\newtopic\noindent
Did I say that you can write captions to figures using rich text?
\rtpara[valign=bottom,margbottom=12,margleft=12,margright=12]{farewell}{\bf{Thank you} for reviewing the
\span{font=Courier}{richtext} package, I hope you will enjoy exploring
-it. Did I say that \span{url=www.acrotex.net,style=bold}{AcroTeX Rocks!}\spc\spc\spc\spc dps}
+it. Did I say '\span{url=www.acrotex.net,style=bold}{AcroTeX Rocks!}'?\spc\spc\spc\spc\spc dps}
\begin{center}\incFldCnt
-\makebox[\dpswebW]{\makebox[0pt][l]{\textField[\BC{}\BG{}\autoCenter{n}\Ff{\FfRichText}\Ff{\FfMultiline}
+\makebox[\dpswebW]{\makebox[0pt][l]{\textField[\Ff\FfDoNotSpellCheck\Ff\FfDoNotScroll
+\AAkeystroke{event.rc=false;}\AAformat{event.rc=false;}\BC{}\BG{}\autoCenter{n}\Ff{\FfRichText}\Ff{\FfMultiline}
\DS{\useDefaultDS}
\RV{\useRV{farewell}}\V{\useV{farewell}}]{rtFld\the\fldCnt}{\dpswebW}{\dpswebH}}%
\includegraphics{dpsweb}}
@@ -1071,7 +1193,7 @@ it. Did I say that \span{url=www.acrotex.net,style=bold}{AcroTeX Rocks!}\spc\spc
\bibitem{webpage:XFASpec}\hypertarget{references}{}%
Adobe XML Forms Architecture (XFA) Specification, Version 3.3, Adobe Systems, Inc.,
Jan.\ 2012\backrefprint
- \lngln\hfill{\small\url{partners.adobe.com/public/developer/xml/index_arch.html}}
+ \lngln\hfill{\small\mlurl{https://reference.pdfa.org/iso/32000/wp-content/uploads/2017/04/XFA-3_3.pdf}}
\bibitem{webpage:CSS2}
Cascading Style Sheets (CSS 2.2) Specification, Editors: Bert Bos \textsl{et al.},
@@ -1081,12 +1203,13 @@ World Wide Web Consortium (W3C), June 2011
\bibitem{tech:AcroJS}
JavaScript for Acrobat API Reference,
Adobe Systems, Inc., May 2015
- \lngln\hfill{\small\url{adobe.com/devnet/acrobat/documentation.html}}
-
+ \lngln\hfill{\small\url{https://www.adobe.com/devnet/acrobat/documentation.html}}%https://www.adobe.com/devnet/acrobat/documentation.html
+%https://www.adobe.com/content/dam/acom/en/devnet/acrobat/pdfs/js_api_reference.pdf
\bibitem{book:pdfspec}
PDF Reference, Sixth Edition, Version 1.7, Adobe Systems, Inc., 2006
- \lngln\hfill{\small\url{adobe.com/devnet/pdf/pdf_reference_archive.html}}
-
+ \lngln\hfill{\small\url{https://www.adobe.com/devnet/pdf/pdf_reference_archive.html}}
+%https://www.adobe.com/devnet/pdf/pdf_reference_archive.html
+%https://www.adobe.com/devnet/pdf/pdf_reference_archive.html
\end{thebibliography}
diff --git a/texmf-dist/source/latex/richtext/richtext.dtx b/texmf-dist/source/latex/richtext/richtext.dtx
index 51bb4118..c56bd39d 100644
--- a/texmf-dist/source/latex/richtext/richtext.dtx
+++ b/texmf-dist/source/latex/richtext/richtext.dtx
@@ -2,7 +2,7 @@
%<*copyright>
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% richtext package, %%
-%% Copyright (C) 2016 D. P. Story %%
+%% Copyright (C) 2016--2020 %%
%% dpstory@uakron.edu %%
%% %%
%% This program can redistributed and/or modified under %%
@@ -14,24 +14,33 @@
%</copyright>
%<package>\NeedsTeXFormat{LaTeX2e}[1997/12/01]
%<package>\ProvidesPackage{richtext}
-%<package> [2016/10/03 v1.0c richtext: create rich text strings (dps)]
+%<package> [2020/07/02 v1.1.1 richtext: create rich text strings (dps)]
%<*driver>
\documentclass{ltxdoc}
\usepackage[colorlinks,hyperindex=false]{hyperref}
\usepackage{calc}
+\usepackage{fancyvrb}
\let\uif\textsf\let\app\textsf
\let\pkg\textsf\let\env\texttt
\def\psf#1{\textsf{\textbf{#1}}}
+\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{>}
+\let\app\textsf\let\pkg\textsf\def\CMD#1{\textbackslash#1}
%\pdfstringdefDisableCommands{\let\\\textbackslash}
-\OnlyDescription % comment out for implementation details
-\EnableCrossrefs
-\CodelineIndex
-\RecordChanges
+%\OnlyDescription % comment out for implementation details
+\EnableCrossrefs \CodelineIndex \RecordChanges
\InputIfFileExists{aebdocfmt.def}{\PackageInfo{richtext}{Inputting aebdocfmt.def}}
{\def\IndexOpt{\DescribeMacro}\def\IndexKey{\DescribeMacro}\let\setupFullwidth\relax
\PackageInfo{richtext}{aebdocfmt.def cannot be found}}
\begin{document}
-\def\CMD#1{\textbackslash#1}
\GetFileInfo{richtext.sty}
\title{\textsf{richtext}: Creating Rich Text Strings}
\author{D. P. Story\\
@@ -40,10 +49,6 @@
\maketitle
\tableofcontents
\let\Email\texttt
- \renewenvironment{theglossary}{%
- \let\efill\relax
- \begin{itemize}}{\end{itemize}}
- \value{GlossaryColumns}=1
\DocInput{richtext.dtx}
\IfFileExists{\jobname.ind}{\newpage\setupFullwidth\par\PrintIndex}{\paragraph*{Index} The index goes here.\\Execute
\texttt{makeindex -s gind.ist -o richtext.ind richtext.idx} on the command line and recompile
@@ -55,12 +60,16 @@
%</driver>
% \fi
% \MakeShortVerb{|}
-% \InputIfFileExists{aebdonotindex.def}{\PackageInfo{web}{Inputting aebdonotindex.def}}
-% {\PackageInfo{web}{cannot find aebdonotindex.def}}
+% \InputIfFileExists{aebdonotindex.def}{\PackageInfo{richtext}{Inputting aebdonotindex.def}}
+% {\PackageInfo{richtext}{cannot find aebdonotindex.def}}
% \begin{macrocode}
%<*package>
-\RequirePackage{xkeyval}
-\RequirePackage{ifxetex}[2006/08/21]
+\RequirePackage{xkeyval}
+\RequirePackage{ifpdf}
+\RequirePackage{ifxetex}[2006/08/21]
+\RequirePackage{eforms}
+\@ifundefined{ifpdfmarkup}{\newif\ifpdfmarkup}{}\pdfmarkupfalse
+\ifpdf\else\ifxetex\else\pdfmarkuptrue\fi\fi
% \end{macrocode}
% \section{Introduction}
% This package supports the creation of \emph{rich text strings} (a type of pdf string). A
@@ -73,31 +82,34 @@
% restricted set of CSS2 style attributes.''
%
% A rich text field may be created using the \pkg{eforms} package, like so
-%\begin{verbatim}
-% \textField[\Ff{\FfRichText}\Ff{\FfMultiline}<other-options>
-% \DS{<defaultstyle>}\RV{<richvalue>}\V{<value>}
-% ]{<fldname>}{<width>}{<height>}
-%\end{verbatim}
+%\begin{Verbatim}[xleftmargin=\parindent,codes={\catcode`\%=9},commandchars={!()}]
+%\textField[\Ff{\FfRichText}\Ff{\FfMultiline}!ameta(other-options)
+%!quad\DS{!ameta(defaultstyle)}\RV{!ameta(rich-value)}\V{!ameta(plain-value)}
+%]{!ameta(fldname)}{!ameta(width)}{!ameta(height)}
+%\end{Verbatim}
% This package provides commands and methods for `conveniently' create values
-% \texttt{<richvalue>} and \texttt{<defaultstyle>} for \psf{RV} and
-% \psf{DS}; additionally, the value \texttt{<value>} of the \psf{V} key is the `plain' text
+% \ameta{rich-value} and \ameta{defaultstyle} for \psf{RV} and
+% \psf{DS}; additionally, the value \ameta{plain-value} of the \psf{V} key is the `plain' text
% value of the field; that is the text with all the formatting stripped out.
+% \changes{v1.1.1}{2020/07/02}{Did not upload the docs, retry under new version number.}
%
%\section{Preliminaries}
% \begin{macrocode}
\newif\ifrt@formfield \rt@formfieldtrue
\newif\ifrt@needsbody\rt@needsbodyfalse
\@ifpackageloaded{eforms}%
- {\ifxetex\let\@eqV\@eqnuV\fi}{\rt@needsbodytrue}
+ {\ifxetex\let\@eqV\@eqnuV\fi}{\rt@needsbodytrue}
+\ifxetex\else\hypersetup{pdfencoding=pdfdoc}\fi
\providecommand\eq@RV@Body{<?xml version="1.0"?><body %
- xfa:APIVersion="Acroform:2.7.0.0" %
- xfa:contentType="text/html" %
- xfa:spec="2.1" xmlns="http://www.w3.org/1999/xhtml" %
- xmlns:xfa="http://www.xfa.org/schema/xfa-data/1.0/">}
+ xfa:APIVersion="Acroform:2.7.0.0" %
+ xfa:contentType="text/html" %
+ xfa:spec="2.1" xmlns="http://www.w3.org/1999/xhtml" %
+ xmlns:xfa="http://www.xfa.org/schema/xfa-data/1.0/">}
\providecommand\eq@RV@endBody{</body>}
\def\rt@bBody{\ifrt@needsbody\eq@RV@Body\fi}
\def\rt@eBody{\ifrt@needsbody\eq@RV@endBody\fi}
% \end{macrocode}
+%
%\section{Documentation for the \texorpdfstring{\protect\psf{RV}}{RV} key}
%
%We follow the \app{Acrobat} user interface.
@@ -156,39 +168,39 @@
% in single quotes: \texttt{font=Arial} or \texttt{font='Myriad Pro'}.
% \begin{macrocode}
\define@key{rtFont}{font}[]{\def\rt@argi{#1}\ifx\rt@argi\@empty
- \let\rf@font\@empty\else\rtfontstyletrue
- \def\rf@font{font-family:#1}\fi}
+ \let\rf@font\@empty\else\rtfontstyletrue
+ \def\rf@font{font-family:#1}\fi}
% \end{macrocode}
% The value of \IndexKey{size}\texttt{size} is the size of the font, as measured in points
% \texttt{font=12pt}, note the use of the entity `\texttt{pt}'.
% \begin{macrocode}
\define@key{rtFont}{size}[]{\def\rt@argi{#1}\ifx\rt@argi\@empty
- \let\rf@size\@empty\else\rtfontstyletrue\def\rf@size@num{#1}%
- \def\rf@size@pt{#1pt}\def\rf@size{font-size:#1pt}\fi}
+ \let\rf@size\@empty\else\rtfontstyletrue\def\rf@size@num{#1}%
+ \def\rf@size@pt{#1pt}\def\rf@size{font-size:#1pt}\fi}
\def\rf@size@num{12}\def\rf@size@pt{12pt}
% \end{macrocode}
-% The key \IndexOpt{raise}\texttt{raise} corresponds to the user interface item \uif{Baseline Shift},
+% The key \IndexKey{raise}\texttt{raise} corresponds to the user interface item \uif{Baseline Shift},
% measured in points, for example, \texttt{raise=6pt}.
% \begin{macrocode}
\define@key{rtFont}{raise}[]{\def\rt@argi{#1}\ifx\rt@argi\@empty
- \let\rf@raise\@empty\else\rtfontstyletrue
- \def\rf@raise{vertical-align:#1pt}\fi}
+ \let\rf@raise\@empty\else\rtfontstyletrue
+ \def\rf@raise{vertical-align:#1pt}\fi}
% \end{macrocode}
-% The key \IndexOpt{ulstyle}\texttt{ulstyle} supplies an underline attribute, for example,
+% The key \IndexKey{ulstyle}\texttt{ulstyle} supplies an underline attribute, for example,
% \texttt{ul=word} underlines each word in the span.
% \begin{macrocode}
\define@choicekey+{rtFont}{ulstyle}[\val\nr]%
- {none,ul,2ul,wul,2wul}[none]{%
- \ifcase\nr\relax
- \def\rf@ul{none}\or
- \def\rf@ul{underline}\or
- \def\rf@ul{double}\or
- \def\rf@ul{word}\or
- \def\rf@ul{double word}\fi
- \rtfontstyletrue
+ {none,ul,2ul,wul,2wul}[none]{%
+ \ifcase\nr\relax
+ \def\rf@ul{none}\or
+ \def\rf@ul{underline}\or
+ \def\rf@ul{double}\or
+ \def\rf@ul{word}\or
+ \def\rf@ul{double word}\fi
+ \rtfontstyletrue
}{}
% \end{macrocode}
-% The key \IndexOpt{color}\texttt{color} supplies a color attribute for the text in the span.
+% The key \IndexKey{color}\texttt{color} supplies a color attribute for the text in the span.
% There are two formats: \texttt{rrggbb} (hex) and \texttt{rgb(r,g,b)} (0-255). For example,
% \texttt{color=ff0000} or \texttt{color=rgb(255,0,0)} both color the text red.
% \begin{macrocode}
@@ -199,57 +211,57 @@
\bgroup\@makeother\#\@makeother\&%
\gdef\rt@hashtag{#}\gdef\rt@amp{&}\egroup
\define@key{rtFont}{color}[]{\def\rt@argi{#1}\ifx\rt@argi\@empty
- \let\rf@color\@empty\else\rtfontstyletrue
- \rt@parseColor#1(\@nil
- \if\rt@rgbdec\rt@One
- \def\rf@color{color:#1}\else
- \def\rf@color{color:\rt@hashtag#1}\fi
+ \let\rf@color\@empty\else\rtfontstyletrue
+ \rt@parseColor#1(\@nil
+ \if\rt@rgbdec\rt@One
+ \def\rf@color{color:#1}\else
+ \def\rf@color{color:\rt@hashtag#1}\fi
\fi}
\let\rf@color\@empty
% \end{macrocode}
-% The key \IndexOpt{url}\texttt{url} enable the rich text string to contain
+% The key \IndexKey{url}\texttt{url} enable the rich text string to contain
% a URL hypertext link.
% \begin{macrocode}
\define@key{rtFont}{url}[]{\def\rt@argi{#1}\ifx\rt@argi\@empty
- \let\rt@url\@empty\else\rtfontstyletrue\def\rt@url{#1}\fi}
+ \let\rt@url\@empty\else\rtfontstyletrue\def\rt@url{#1}\fi}
% \end{macrocode}
-% The \texttt{rtFontStyle} family provides keys \IndexOpt{bold}\texttt{bold},
-% \IndexOpt{italic}\texttt{italic} and \IndexOpt{strikeit}\texttt{strikeit}.
+% The \texttt{rtFontStyle} family provides keys \IndexKey{bold}\texttt{bold},
+% \IndexKey{italic}\texttt{italic} and \IndexKey{strikeit}\texttt{strikeit}.
% They are possible values of the \texttt{style} key, define below. The \texttt{style} key
% can take on one or several values.
% \begin{macrocode}
\define@choicekey+{rtFontStyle}{bold}[\val\nr]{normal,bold}[bold]%
- {\edef\rfS@bold{\val}}{}
+ {\edef\rfS@bold{\val}}{}
\define@choicekey+{rtFontStyle}{italic}[\val\nr]{normal,italic}[italic]%
- {\edef\rfS@italic{\val}}{}
+ {\edef\rfS@italic{\val}}{}
\define@key{rtFontStyle}{strikeit}[]{\def\rfS@strikeit{line-through}}
\let\rfS@normal\@empty\let\rfS@bold\@empty
\let\rfS@italic\@empty\let\rfS@strikeit\@empty
% \end{macrocode}
-% Continuing the \texttt{rtFont} family, the \IndexOpt{style}\texttt{style} can take on
+% Continuing the \texttt{rtFont} family, the \IndexKey{style}\texttt{style} can take on
% several values: The key-value of \texttt{style=\{bold,italic,strikeit\}} sets the text to bold, italic,
% and strike out. Multiple attributes must be enclosed in parentheses, as shown above.
% \begin{macrocode}
\define@key{rtFont}{style}[]{\def\rt@argi{#1}\ifx\rt@argi\@empty
- \let\rf@style\@empty\else\rtfontstyletrue\def\rf@style{#1}\fi}
+ \let\rf@style\@empty\else\rtfontstyletrue\def\rf@style{#1}\fi}
% \end{macrocode}
% We provide a \IndexKey{raw}\texttt{raw} experimental key. The value of this key is passed through; it must
% be of the proper syntax.
% \begin{macrocode}
\define@key{rtFont}{raw}[]{\def\rt@argi{#1}\ifx\rt@argi\@empty
- \let\rf@raw\@empty\else\rtfontstyletrue\def\rf@raw{#1}\fi}
+ \let\rf@raw\@empty\else\rtfontstyletrue\def\rf@raw{#1}\fi}
% \end{macrocode}
% The \DescribeMacro{\resetRtFontKeys} is an internal command to reset all keys to their default values.
% \begin{macrocode}
\def\resetRtFontKeys{% rtFont family
- \let\rf@font\@empty\let\rf@size\@empty
- \let\rf@raise\@empty\let\rf@ul\@empty
- \let\rf@color\@empty\let\rf@style\@empty\let\rt@url\@empty
- \let\rf@raw\@empty
- % rtFontStyle family
- \let\rfS@normal\@empty\let\rfS@bold\@empty
- \let\rfS@italic\@empty\let\rfS@strikeit\@empty
- \rtfontstylefalse}
+ \let\rf@font\@empty\let\rf@size\@empty
+ \let\rf@raise\@empty\let\rf@ul\@empty
+ \let\rf@color\@empty\let\rf@style\@empty\let\rt@url\@empty
+ \let\rf@raw\@empty
+% rtFontStyle family
+ \let\rfS@normal\@empty\let\rfS@bold\@empty
+ \let\rfS@italic\@empty\let\rfS@strikeit\@empty
+ \rtfontstylefalse}
% \end{macrocode}
% Now give all keys their default values.
% \begin{macrocode}
@@ -284,10 +296,10 @@
% \begin{macrocode}
\newif\if@rvstring \@rvstringfalse
\def\rvorvstring{\if@rvstring
- \expandafter\@firstoftwo
- \else
- \expandafter\@secondoftwo
- \fi
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi
}
% \end{macrocode}
% \paragraph*{Subscripts (\cs{sub}\DescribeMacro{\sub}) and superscripts (\cs{sup}\DescribeMacro{\sup})} There are two versions, one for rich text expansion
@@ -303,7 +315,7 @@
\def\rt@bf#1{\rvorvstring{<b>#1</b>}{#1}}
\def\rt@it#1{\rvorvstring{<i>#1</i>}{#1}}
\def\rt@spc{\rvorvstring{<span style="xfa-spacerun:yes">\rt@amp
- \rt@hashtag160\rt@SC</span>}{ }}
+ \rt@hashtag160\rt@SC</span>}{ }}
% \end{macrocode}
% Some convenience commands
% \begin{macrocode}
@@ -314,47 +326,46 @@
% are \cs{rt@remove@span} for plain text and \cs{rt@span} for rich text strings.
% \begin{macrocode}
\def\rt@remove@span#1#2{#2}
-%\let\rt@remove@span\@gobble
% \end{macrocode}
% \begin{macro}{\rt@span}
% This is the internal \cs{span} command, it is \cs{let}\cs{span}\cs{rt@span}. Of course
% \cs{span} is a {\TeX} primitive, so we must be careful not to overwrite it.
% \begin{macrocode}
\def\rt@StyleAttr{\ifx\rf@font\@empty\else\rf@font\rt@SC\fi
- \ifx\rf@size\@empty\else\rf@size\rt@SC\fi
- \ifrt@formfield\ifx\rf@raise\@empty\else\rf@raise\rt@SC\fi\fi
- \ifx\rf@ul\@empty\ifx\rfS@strikeit\@empty\else
- \rt@td\rt@CN\rfS@strikeit\rt@SC\fi
- \else\rt@td\rt@CN\rf@ul\ifx\rfS@strikeit\@empty\else\space
- \rfS@strikeit\fi\rt@SC\fi
- \ifx\rfS@bold\@empty\else\rt@fw\rt@CN\rfS@bold\rt@SC\fi
- \ifx\rfS@italic\@empty\else\rt@fs\rt@CN\rfS@italic\rt@SC\fi
- \ifx\rf@color\@empty\else\rf@color\rt@SC\fi
- \ifx\rf@raw\@empty\else\rf@raw\fi}
+ \ifx\rf@size\@empty\else\rf@size\rt@SC\fi
+ \ifrt@formfield\ifx\rf@raise\@empty\else\rf@raise\rt@SC\fi\fi
+ \ifx\rf@ul\@empty\ifx\rfS@strikeit\@empty\else
+ \rt@td\rt@CN\rfS@strikeit\rt@SC\fi
+ \else\rt@td\rt@CN\rf@ul\ifx\rfS@strikeit\@empty\else\space
+ \rfS@strikeit\fi\rt@SC\fi
+ \ifx\rfS@bold\@empty\else\rt@fw\rt@CN\rfS@bold\rt@SC\fi
+ \ifx\rfS@italic\@empty\else\rt@fs\rt@CN\rfS@italic\rt@SC\fi
+ \ifx\rf@color\@empty\else\rf@color\rt@SC\fi
+ \ifx\rf@raw\@empty\else\rf@raw\fi}
% \end{macrocode}
% The \DescribeMacro{\span}\cs{span} is let to \cs{rt@span} within the \cs{rtpara} command.
% \changes{v1.0c}{2016/10/03}{Added \string\cs{rt@afterFont} to allow access by \string\pkg{annot\_pro}.}
% \begin{macrocode}
\let\rt@afterFont\relax
\newcommand\rt@span[2]{\resetRtFontKeys
- \edef\x{\noexpand\setkeys{rtFont}{#1}}\x\rt@afterFont
- \edef\x{\noexpand\setkeys{rtFontStyle}{\rf@style}}\x
- \edef\rt@Style@ttr{\rt@StyleAttr}%
- \ifx\rt@url\@empty
+ \edef\x{\noexpand\setkeys{rtFont}{#1}}\x\rt@afterFont
+ \edef\x{\noexpand\setkeys{rtFontStyle}{\rf@style}}\x
+ \edef\rt@Style@ttr{\rt@StyleAttr}%
+ \ifx\rt@url\@empty
% \end{macrocode}
% We are processing a regular \cs{span}.
% \begin{macrocode}
- \ifx\rt@StyleAttr\@empty\def\x{#2}\else
- \edef\x{<span\ifrtfontstyle\space
- style="\rt@Style@ttr"\fi>#2</span>}\fi
- \else
+ \ifx\rt@StyleAttr\@empty\def\x{#2}\else
+ \edef\x{<span\ifrtfontstyle\space
+ style="\rt@Style@ttr"\fi>#2</span>}\fi
+ \else
% \end{macrocode}
% We are processing a \cs{span} with the \texttt{url} key set.
% \begin{macrocode}
- \ifx\rt@StyleAttr\@empty\edef\x{<a href="\rt@url">#2</a>}\else
- \edef\x{<a href="\rt@url"
- \ifrtfontstyle style="\rt@Style@ttr">#2</a>\fi}\fi
- \fi
+ \ifx\rt@StyleAttr\@empty\edef\x{<a href="\rt@url">#2</a>}\else
+ \edef\x{<a href="\rt@url"
+ \ifrtfontstyle style="\rt@Style@ttr">#2</a>\fi}\fi
+ \fi
}
% \end{macrocode}
% \end{macro}
@@ -365,7 +376,7 @@
% This is how you define a rich text string, through the use of \cs{rtpara}. The command
% takes three options: (1) The optional first takes key-values just defined in the \texttt{rtFont}
% and the \texttt{rtPara} families.
-%\begin{verbatim}
+%\begin{Verbatim}[xleftmargin=\parindent,codes={\catcode`\%=9},commandchars={!()}]
% halign: text-align:left|center|right|justify
% valign: text-valign:top|middle|bottom
% top is same as no text-valign attribute (vertical-align)
@@ -383,19 +394,19 @@
% 1.5 Lines : line-height: 1.8*max(\rt@size)
% Double : line-height: 2.4*max(\rt@size)
% Exact : line-height: <num>pt
-%\end{verbatim}
+%\end{Verbatim}
%\paragraph*{Alignment}
% The \IndexKey{halign}\texttt{halign} key effects the horizontal alignment of a paragraph, choices
% are \texttt{left}, \texttt{center}, \texttt{right}, and \texttt{justify}. The default is \texttt{left}.
% \begin{macrocode}
\define@choicekey+{rtPara}{halign}[\val\nr]%
- {left,center,right,justify}[left]{%
- \ifcase\nr\relax
- \def\rt@halign{text-align:left}\or
- \def\rt@halign{text-align:center}\or
- \def\rt@halign{text-align:right}\or
- \def\rt@halign{text-align:justify}\fi
- \rtfontstyletrue
+ {left,center,right,justify}[left]{%
+ \ifcase\nr\relax
+ \def\rt@halign{text-align:left}\or
+ \def\rt@halign{text-align:center}\or
+ \def\rt@halign{text-align:right}\or
+ \def\rt@halign{text-align:justify}\fi
+ \rtfontstyletrue
}{}
% \end{macrocode}
% The \IndexKey{valign}\texttt{valign} seems to effect all paragraphs in the rich text field. Its value
@@ -403,11 +414,11 @@
% The default is \texttt{top}.
% \begin{macrocode}
\define@choicekey+{rtPara}{valign}[\val\nr]{top,middle,bottom}[top]{%
- \ifcase\nr\relax
- \def\rt@valign{text-valign:top}\or
- \def\rt@valign{text-valign:middle}\or
- \def\rt@valign{text-valign:bottom}\fi
- \rtfontstyletrue
+ \ifcase\nr\relax
+ \def\rt@valign{text-valign:top}\or
+ \def\rt@valign{text-valign:middle}\or
+ \def\rt@valign{text-valign:bottom}\fi
+ \rtfontstyletrue
}{}
\let\rt@halign\@empty\let\rt@valign\@empty
% \end{macrocode}
@@ -442,15 +453,15 @@
% \texttt{oneandhalf} (spacing), \texttt{double} (spacing), and \texttt{exact} (spacing).
% \begin{macrocode}
\define@choicekey{rtPara}{linespacing}[\val\nr]%
- {single,oneandhalf,double,exact}[single]{%line-height
- \edef\rt@linespacingtype{\nr}%
- \ifcase\nr
- \let\rt@linesp\@empty\or
- \setlength{\@tempdima}{1.8pt*\rf@size@num}%
- \edef\rt@linesp{\the\@tempdima}\or
- \setlength{\@tempdima}{2.4pt*\rf@size@num}%
- \edef\rt@linesp{\the\@tempdima}\or
- \def\rt@linesp{\rf@size@pt}\fi
+ {single,oneandhalf,double,exact}[single]{%line-height
+ \edef\rt@linespacingtype{\nr}%
+ \ifcase\nr
+ \let\rt@linesp\@empty\or
+ \setlength{\@tempdima}{1.8pt*\rf@size@num}%
+ \edef\rt@linesp{\the\@tempdima}\or
+ \setlength{\@tempdima}{2.4pt*\rf@size@num}%
+ \edef\rt@linesp{\the\@tempdima}\or
+ \def\rt@linesp{\rf@size@pt}\fi
}{}
\let\rt@linesp\@empty\def\rt@linespacingtype{0}
% \end{macrocode}
@@ -468,34 +479,31 @@
% \begin{macrocode}
\def\rt@ParaAttr{%
% Alignment
- \ifx\rt@halign\@empty\else\rt@halign\rt@SC\fi
+ \ifx\rt@halign\@empty\else\rt@halign\rt@SC\fi
\ifrt@formfield
- \ifx\rt@valign\@empty\else\rt@valign\rt@SC\fi
+ \ifx\rt@valign\@empty\else\rt@valign\rt@SC\fi
% Indents
- \ifx\rt@margleft\@empty\else\rt@margleft\rt@SC\fi
- \ifx\rt@margright\@empty\else\rt@margright\rt@SC\fi
- \ifcase\rt@indenttype\space\or
- \rtp@ti\rt@CN\rt@indentby\rt@SC\or
- \rtp@ti\rt@CN-\rt@indentby\rt@SC\fi
+ \ifx\rt@margleft\@empty\else\rt@margleft\rt@SC\fi
+ \ifx\rt@margright\@empty\else\rt@margright\rt@SC\fi
+ \ifcase\rt@indenttype\space\or
+ \rtp@ti\rt@CN\rt@indentby\rt@SC\or
+ \rtp@ti\rt@CN-\rt@indentby\rt@SC\fi
% Spacing
- \rtp@mt\rt@CN\rt@margtop\rt@SC\rtp@mb\rt@CN\rt@margbottom\rt@SC
- \ifx\rt@linesp\@empty\else
- \if\rt@linespacingtype3%
- \ifx\rt@lineheight\@empty
- \rtp@lh\rt@CN\rt@linesp\rt@SC
- \else
- \rtp@lh\rt@CN\rt@lineheight\rt@SC
- \fi
- \else
- \rtp@lh\rt@CN\rt@linesp\rt@SC
- \fi
+ \rtp@mt\rt@CN\rt@margtop\rt@SC\rtp@mb\rt@CN\rt@margbottom\rt@SC
+ \ifx\rt@linesp\@empty\else
+ \if\rt@linespacingtype3%
+ \ifx\rt@lineheight\@empty
+ \rtp@lh\rt@CN\rt@linesp\rt@SC
+ \else
+ \rtp@lh\rt@CN\rt@lineheight\rt@SC
+ \fi
+ \else
+ \rtp@lh\rt@CN\rt@linesp\rt@SC
\fi
-\fi
-}
+ \fi
+\fi }
\begingroup
-\catcode`\@=0 @catcode`@\=12
-@gdef@rtbs{\}
-@endgroup
+\catcode`\@=0 @catcode`@\=12 @gdef@rtbs{\} @endgroup
\def\rt@cs#1{\rvorvstring{\rtbs\rtbs#1}{\string\134#1}}
% \end{macrocode}
% The \DescribeMacro{\rtpara}\cmd{rtpara} takes three arguments. The first optional argument is key-value pairs
@@ -510,90 +518,131 @@
% \begin{macrocode}
\def\rt@dir{ dir="ltr"}
% \end{macrocode}
+% We still have problems with \app{dvips} wrapping postscript lines around that break
+% the code. Here we remove all \cs{spaces}'s with PDF spaces (\cs{040}), hopefully,
+% there are no spaces at which to break the line and cause harm. \cs{pdfSP} and
+% \cs{dl@sp@ce} are defined in \pkg{insdljs}.
+% \changes{v1.1}{2020/06/28}{For pdfmarkup, spaces are now obeyed, and replaced with \string\cs{040}}
+% \begin{macrocode}
+\def\rt@sp@ce{ }
+\def\rtpdfSPDef{\string\040}
+\def\rtpdfSPDefPrnt{\string\040\allowbreak}
+\bgroup\obeyspaces
+\gdef\makePDFSp{\global\let =\pdfSP}%
+\gdef\makeTeXSp{\global\let =\rt@sp@ce}%
+\gdef\makeTeXSpPrnt{\global\let =\rtpdfSPDefPrnt}%
+\egroup
+% \end{macrocode}
+% Again, there are problems with EOL that disrupts \uif{RV} key.
+% Here, we define \cs{insertPDFSp@tEOL} to insert a PDF space (\cs{040})
+% at the end of the line. Seems to work.
+% \begin{macrocode}
+\bgroup\catcode`\^^M=\active%
+\gdef\insertPDFSp@tEOL{%
+ \catcode`\^^M=\active%
+ \let^^M\rtpdfSPDef%
+ \endlinechar=`\^^M}%
+\egroup
+% \end{macrocode}
% \begin{macrocode}
\newcommand\rtpara[2][]{\begingroup
- \setkeys{rtPara,rtFont}{#1}\rt@afterParaFont
- \edef\rt@Para@ttr{\rt@ParaAttr\rt@StyleAttr}%
- \global\let\rt@RichText\@empty
- \global\let\rt@PlainText\@empty
- \def\rt@ctrlName{#2}%
+ \setkeys{rtPara,rtFont}{#1}\rt@afterParaFont
+ \edef\rt@Para@ttr{\rt@ParaAttr\rt@StyleAttr}%
+ \global\let\rt@RichText\@empty
+ \global\let\rt@PlainText\@empty
+ \def\rt@ctrlName{#2}%
% \end{macrocode}
% Before taking the next parameter, we'll make some special definitions.
% \begin{macrocode}
- \def\{{\string\{}\def\}{\string\}}%
- \def\1{\string\1}\def\2{\string\2}\def\3{\string\3}%
- \@makeother\$\@makeother\#\@makeother\^\@makeother\_\@makeother\~%
- \@makeother\&\def\&{\rvorvstring{\string&amp;}{\string&}}% req
- \@makeother\<\def\<{\rvorvstring{\string&lt;}{\string<}}% req
- \@makeother\>\def\>{\rvorvstring{\string&gt;}{\string>}}%
- \@makeother\'\def\'{\rvorvstring{\string&apos;}{\string'}}%
- \@makeother\"\def\"{\rvorvstring{\string&quot;}{\string"}}%
- \let\cs\rt@cs
- \rtpara@cont}
-% \end{macrocode}
-% \cs{rtpara} continues with \cs{rtpara@cont}.
-% \begin{macrocode}
-\def\rtpara@cont#1{%
- \let\sup\rt@sup\let\sub\rt@sub
- \let\br\rt@br\let\bf\rt@bf\let\it\rt@it
- \let\spc\rt@spc
- \let\span\rt@remove@span
- \@rvstringfalse
- \edef\x{#1}\expandafter\@AddToPlainText\expandafter{\x}%
- \let\span\relax
- \@rvstringtrue
- \rtpara@i#1\span!;\endgroup}
+ \def\{{\string\{}\def\}{\string\}}%
+ \def\1{\string\1}\def\2{\string\2}\def\3{\string\3}%
+ \@makeother\$\@makeother\#\@makeother\^\@makeother\_\@makeother\~%
+ \@makeother\&\def\&{\rvorvstring{\string&amp;}{\string&}}% req
+ \@makeother\<\def\<{\rvorvstring{\string&lt;}{\string<}}% req
+ \@makeother\>\def\>{\rvorvstring{\string&gt;}{\string>}}%
+ \@makeother\'\def\'{\rvorvstring{\string&apos;}{\string'}}%
+ \@makeother\"\def\"{\rvorvstring{\string&quot;}{\string"}}%
+ \let\cs\rt@cs
+ \rtpara@cont}
+% \end{macrocode}
+% \cs{rtpara} continues with \cs{rtpara@cont}. For pdfmarkup, we make special definitions
+% that are not needed otherwise. \cs{makePDFSp} makes the space character into \cs{040},
+% \cs{insertPDFSp@tEOS} insert \cs{040} at the end of each line.
+% \begin{macrocode}
+\def\rtpara@cont{\ifpdfmarkup
+ \makePDFSp\obeyspaces\insertPDFSp@tEOL\fi
+ \@ifnextchar\bgroup\rtpara@cont@i{\expandafter
+ \rtpara@cont@i\@gobble}}
+% \end{macrocode}
+% Now we take the last parameter, which is the rich text markup.
+% \begin{macrocode}
+\def\rtpara@cont@i#1{%
+ \let\sup\rt@sup\let\sub\rt@sub
+ \let\br\rt@br\let\bf\rt@bf\let\it\rt@it
+ \let\spc\rt@spc
+ \let\span\rt@remove@span
+ \@rvstringfalse
+% \end{macrocode}
+% Inserting a space at the beginning of plain text does no harm, but has
+% benefits; it betters matches the plain text with the rich context better.
+% \changes{v1.0.4}{2018/08/05}{Inserted space when adding to plain text}
+% \changes{v1.0.5}{2018/09/25}{Backing off that change}
+% \begin{macrocode}
+ \edef\x{#1}\expandafter\@AddToPlainText\expandafter{\x}%
+ \let\span\relax
+ \@rvstringtrue
+ \rtpara@i#1\span!;\endgroup}
% \end{macrocode}
% Step 1: \cs{rtpara} comes here.
% \begin{macrocode}
\def\rtpara@i#1\span#2;{\def\argii{#2}%
- \g@addto@macro\rt@RichText{#1}%
- \ifx\argii\rt@excl
- \rt@csarg\xdef{\rt@ctrlName-ri}%
- {%
- <p\rt@dir\ifx\rt@Para@ttr\@empty\else\space
- style="\rt@Para@ttr"\fi>\rt@RichText</p>%
- }%
- \rt@csarg\xdef{\rt@ctrlName-pl}{\rt@PlainText}%
- \let\rt@next\relax
- \else
- \def\rt@next{\rtpara@ii#2;}%
- \fi
+ \@AddToRichText{#1}%
+ \ifx\argii\rt@excl
+ \rt@csarg\xdef{\rt@ctrlName-ri}%
+ {%
+ <p\rt@dir\ifx\rt@Para@ttr\@empty\else\space
+ style="\rt@Para@ttr"\fi>\rt@RichText</p>%
+ }%
+ \rt@csarg\xdef{\rt@ctrlName-pl}{\rt@PlainText}%
+ \let\rt@next\relax
+ \else
+ \def\rt@next{\rtpara@ii#2;}%
+ \fi
\rt@next}
% \end{macrocode}
% Step 2: \cs{rtpara@i} comes here.
% \begin{macrocode}
\def\rtpara@ii#1#2#3;{\def\argii{#2}%
- \ifx\argii\rt@excl
- \let\rt@next\relax
- \else
- \let\span\rt@span
- \let\br\rt@br\let\bf\rt@bf\let\it\rt@it
+ \ifx\argii\rt@excl
+ \let\rt@next\relax
+ \else
+ \let\span\rt@span
+ \let\br\rt@br\let\bf\rt@bf\let\it\rt@it
% \end{macrocode}
% We have encountered \cs{span\{<argi>\}\{<argii>\}} and we expand it appropriately.
% \begin{macrocode}
- \@rvstringtrue
- \span{#1}{#2}\edef\rt@tmp{\noexpand\g@addto@macro
- \noexpand\rt@RichText{\x}}\rt@tmp
- \rt@csarg\xdef{\rt@ctrlName-ri}%
- {%
- <p\rt@dir\ifx\rt@Para@ttr\@empty\else\space
- style="\rt@Para@ttr"\fi>\rt@RichText</p>%
- }%
- \rt@csarg\xdef{\rt@ctrlName-pl}{\rt@PlainText}%
- \let\span\relax
+ \@rvstringtrue
+ \span{#1}{#2}\edef\rt@tmp{\noexpand
+ \@AddToRichText{\x}}\rt@tmp
+ \rt@csarg\xdef{\rt@ctrlName-ri}%
+ {%
+ <p\rt@dir\ifx\rt@Para@ttr\@empty\else\space
+ style="\rt@Para@ttr"\fi>\rt@RichText</p>%
+ }%
+ \rt@csarg\xdef{\rt@ctrlName-pl}{\rt@PlainText}%
+ \let\span\relax
\def\rt@next{\rtpara@i#3;}%
- \fi\rt@next}
+ \fi\rt@next}
% \end{macrocode}
% \end{macro}
-% There is a special definition for \IndexKey{par}\texttt{par} and
-% \IndexKey{skipline}\texttt{skipline}, these should be used between paragraphs to add
+% There is a special definition for
+% \IndexKey{skipline}\texttt{skipline}, \texttt{skipline} is used between paragraphs to add
% a blank line between paragraphs.
% \begin{macrocode}
\rt@csarg\def{par-ri}{}\rt@csarg\def{par-pl}{\string\r}
\rt@csarg\def{skipline-ri}%
- {<p><span style="xfa-spacerun:yes">\rt@amp
- \rt@hashtag160;</span></p>}
+ {<p><span style="xfa-spacerun:yes">\rt@amp
+ \rt@hashtag160;</span></p>}
\rt@csarg\def{skipline-pl}{\string\r\space}
\def\rt@skipline{skipline}
\rt@csarg\def{br-ri}{}\rt@csarg\def{br-pl}{\string\r}
@@ -602,66 +651,66 @@
% The \psf{DS} key sets the default style. According to the JavaScript API for Acrobat reference,
% the default style supports alignment, textFont, (font family, font style, font weight), textColor,
% and textSize
-%\begin{verbatim}
-% /DS(font: Helvetica,sans-serif 12.0pt;text-align:left;color:#000000)
-% f=this.getField("RichText")
-% style=f.defaultStyle;
-% style.fontFamily;
-% style.fontStyle;
-% style.fontWeight;
-% style.textFont;
-% style.alignment;
-% style.textColor;
-% style.textSize;
-%\end{verbatim}
+%\begin{Verbatim}[xleftmargin=\parindent,codes={\catcode`\%=9},commandchars={!()}]
+%/DS(font: Helvetica,sans-serif 12.0pt;text-align:left;color:#000000)
+%f=this.getField("RichText")
+%style=f.defaultStyle;
+%style.fontFamily;
+%style.fontStyle;
+%style.fontWeight;
+%style.textFont;
+%style.alignment;
+%style.textColor;
+%style.textSize;
+%\end{Verbatim}
% \begin{macrocode}
\def\rt@DSAttr{\ifx\rf@font\@empty\else\rf@font\rt@SC\fi
- \ifx\rf@size\@empty\else\rf@size\rt@SC\fi
- \ifx\rf@raise\@empty\else\rf@raise\rt@SC\fi
- \ifx\rf@ul\@empty\ifx\rfS@strikeit\@empty\else
- \rt@td\rt@CN\rfS@strikeit\rt@SC\fi
- \else\rt@td\rt@CN\rf@ul\ifx\rfS@strikeit\@empty\else\space
- \rfS@strikeit\fi\rt@SC\fi
- \ifx\rfS@bold\@empty\else\rt@fw\rt@CN\rfS@bold\rt@SC\fi
- \ifx\rfS@italic\@empty\else\rt@fs\rt@CN\rfS@italic\rt@SC\fi
- \ifx\rf@color\@empty\else\rf@color\rt@SC\fi}
+ \ifx\rf@size\@empty\else\rf@size\rt@SC\fi
+ \ifx\rf@raise\@empty\else\rf@raise\rt@SC\fi
+ \ifx\rf@ul\@empty\ifx\rfS@strikeit\@empty\else
+ \rt@td\rt@CN\rfS@strikeit\rt@SC\fi
+ \else\rt@td\rt@CN\rf@ul\ifx\rfS@strikeit\@empty\else\space
+ \rfS@strikeit\fi\rt@SC\fi
+ \ifx\rfS@bold\@empty\else\rt@fw\rt@CN\rfS@bold\rt@SC\fi
+ \ifx\rfS@italic\@empty\else\rt@fs\rt@CN\rfS@italic\rt@SC\fi
+ \ifx\rf@color\@empty\else\rf@color\rt@SC\fi}
% \end{macrocode}
% \begin{macro}{\useDefaultDS}
% A fixed definition for default \psf{DS}.
% \begin{macrocode}
\newcommand\useDefaultDS{font-family:Helvetica,sans-serif;%
- font-size:12.0pt;font-style:normal;font-weight:normal;%
- text-align:left;color:\rt@hashtag000000}
+ font-size:12.0pt;font-style:normal;font-weight:normal;%
+ text-align:left;color:\rt@hashtag000000}
% \end{macrocode}
% \end{macro}
% \begin{macro}{\setDefaultStyle}
-%\begin{verbatim}
-% \setDefaultStyle{myDS}{font=Arial,...,color=#ff0000}
-%\end{verbatim}
+%\begin{Verbatim}[xleftmargin=\parindent,codes={\catcode`\%=9},commandchars={!()}]
+%\setDefaultStyle{myDS}{font=Arial,...,color=ff0000}
+%\end{Verbatim}
% \begin{macrocode}
\newcommand{\setDefaultStyle}[2]{\begingroup
- \edef\x{\noexpand\setkeys{rtFont}{#2}}\x
- \edef\x{\noexpand\setkeys{rtFontStyle}{\rf@style}}\x
- \ifx\rf@ul\@empty\else
- \let\rt@ul\@empty\PackageWarning{richtext}{%
- The ul key is not supported within\MessageBreak
- \string\setDefaultStyle. Ignoring it}\fi
- \ifx\rf@raise\@empty\else
- \let\rt@raise\@empty\PackageWarning{richtext}{%
- The raise key is not supported within\MessageBreak
- \string\setDefaultStyle. Ignoring it}\fi
- \ifx\rt@url\@empty\else\let\rf@url\@empty
- \PackageWarning{richtext}{%
- The url key is not supported within\MessageBreak
- \string\setDefaultStyle. Ignoring it}\fi
+ \edef\x{\noexpand\setkeys{rtFont}{#2}}\x
+ \edef\x{\noexpand\setkeys{rtFontStyle}{\rf@style}}\x
+ \ifx\rf@ul\@empty\else
+ \let\rt@ul\@empty\PackageWarning{richtext}{%
+ The ul key is not supported within\MessageBreak
+ \string\setDefaultStyle. Ignoring it}\fi
+ \ifx\rf@raise\@empty\else
+ \let\rt@raise\@empty\PackageWarning{richtext}{%
+ The raise key is not supported within\MessageBreak
+ \string\setDefaultStyle. Ignoring it}\fi
+ \ifx\rt@url\@empty\else\let\rf@url\@empty
+ \PackageWarning{richtext}{%
+ The url key is not supported within\MessageBreak
+ \string\setDefaultStyle. Ignoring it}\fi
% \end{macrocode}
% Fill in any missing essential attributes.
% \begin{macrocode}
- \ifx\rf@font\@empty
- \def\rf@font{font-family:Helvetica,sans-serif}\fi
- \ifx\rf@size\@empty\def\rf@size{font-size:\rf@size@pt}\fi
- \ifx\rf@color\@empty\def\rf@color{color:\rt@hashtag000000}\fi
- \rt@csarg\xdef{#1-DS}{\rt@DSAttr}%
+ \ifx\rf@font\@empty
+ \def\rf@font{font-family:Helvetica,sans-serif}\fi
+ \ifx\rf@size\@empty\def\rf@size{font-size:\rf@size@pt}\fi
+ \ifx\rf@color\@empty\def\rf@color{color:\rt@hashtag000000}\fi
+ \rt@csarg\xdef{#1-DS}{\rt@DSAttr}%
\endgroup}
% \end{macrocode}
% \end{macro}
@@ -684,92 +733,134 @@
% both to \cs{toks0}, which holds the \psf{RV} string, and to \cs{toks2}, which holds the \psf{V} string.
% \begin{macrocode}
\def\rt@addtoRVV#1{%
- \toks4={\useRV{#1}}\edef\rt@tmpRV{\the\toks0\the\toks4}%
- \toks4={\useV{#1}}\edef\rt@tmpV{\the\toks2\the\toks4}%
- \toks0=\expandafter{\rt@tmpRV}\toks2=\expandafter{\rt@tmpV}%
+ \toks4={\useRV{#1}}\edef\rt@tmpRV{\the\toks0\the\toks4}%
+ \toks4={\useV{#1}}\edef\rt@tmpV{\the\toks2\the\toks4}%
+ \toks0=\expandafter{\rt@tmpRV}\toks2=\expandafter{\rt@tmpV}%
}
% \end{macrocode}
% We begin \cmd{\setRVVContent}
% \begin{macrocode}
\def\rt@testifbgroup{\@ifnextchar\bgroup
- {\let\rt@nultiargs=1\rt@gobbletonil}
- {\let\rt@nultiargs=0\rt@gobbletonil}}
+ {\let\rt@nultiargs=1\rt@gobbletonil}
+ {\let\rt@nultiargs=0\rt@gobbletonil}}
\newcommand{\setRVVContent}[2]{\begingroup
- \rt@firsttoktrue \rt@itsskiplinefalse
- \rt@testifbgroup#2\@nil
- \def\contName{#1}\toks0={}\toks2={}\toks4={}%
- \if\rt@nultiargs1\def\rt@next{\setRVVContent@i#2;}\else
- \def\rt@next{\setRVVContent@i{#2};}\fi\rt@next}
+ \rt@firsttoktrue \rt@itsskiplinefalse
+ \rt@testifbgroup#2\@nil
+ \def\contName{#1}\toks0={}\toks2={}\toks4={}%
+ \if\rt@nultiargs1\def\rt@next{\setRVVContent@i#2;}\else
+ \def\rt@next{\setRVVContent@i{#2};}\fi\rt@next}
\def\setRVVContent@i#1{\def\rt@argi{#1}%
- \ifx\rt@argi\rt@SC
+ \ifx\rt@argi\rt@SC
% \end{macrocode}
% If a semi-colon (\cs{rt@SC}), we are finished. Make the definitions
% for \psf{RV} and \psf{V}, and exit.
% \begin{macrocode}
- \rt@csarg\xdef{\contName-vcont}{\the\toks0}%
- \rt@csarg\xdef{\contName-pcont}{\the\toks2}%
- \let\rt@next\endgroup
- \else
+ \rt@csarg\xdef{\contName-vcont}{\the\toks0}%
+ \rt@csarg\xdef{\contName-pcont}{\the\toks2}%
+ \let\rt@next\endgroup
+ \else
% \end{macrocode}
% See if the current argument has been declared earlier by \cs{rtpara}.
% If not, we issue a warning and ignore it.
% \begin{macrocode}
- \expandafter\ifx\csname #1-ri\endcsname\relax
- \PackageWarning{richtext}
- {The name '#1' is not declared,\MessageBreak
- will ignore it. Check the spelling}%
- \def\rt@next{\setRVVContent@i}%
- \else
+ \expandafter\ifx\csname #1-ri\endcsname\relax
+ \PackageWarning{richtext}
+ {The name '#1' is not declared,\MessageBreak
+ will ignore it. Check the spelling}%
+ \def\rt@next{\setRVVContent@i}%
+ \else
% \end{macrocode}
% We want to automatically induce \texttt{par} between non-\texttt{lineskip}
% tokens. The automatic \texttt{par} goes in prior to the token, so we first
% skip the first token.
% \begin{macrocode}
- \ifrt@firsttok\rt@firsttokfalse\else
+ \ifrt@firsttok\rt@firsttokfalse\else
% \end{macrocode}
% Not the first token, see if it is a \texttt{skipline}, if yes, register it
% as a skip line for the next token.
% \begin{macrocode}
- \ifx\rt@argi\rt@skipline
- \rt@itsskiplinetrue
- \else
+ \ifx\rt@argi\rt@skipline
+ \rt@itsskiplinetrue
+ \else
% \end{macrocode}
% If the previous token was a \texttt{skipline}, we don't induce a \texttt{par}.
% \begin{macrocode}
- \ifrt@itsskipline
- \rt@addtoRVV{br}\rt@itsskiplinefalse
- \else
+ \ifrt@itsskipline
+ \rt@addtoRVV{br}\rt@itsskiplinefalse
+ \else
% \end{macrocode}
% Finally, if this is not a \texttt{skipline}, and the previous token is not a \texttt{skipline},
% we induce a \texttt{par}.
% \begin{macrocode}
- \rt@addtoRVV{par}%
- \fi
- \fi
- \fi
- \rt@addtoRVV{#1}%
- \def\rt@next{\setRVVContent@i}%
+ \rt@addtoRVV{par}%
+ \fi
\fi
- \fi\rt@next
+ \fi
+ \rt@addtoRVV{#1}%
+ \def\rt@next{\setRVVContent@i}%
+ \fi
+ \fi\rt@next
}
% \end{macrocode}
% \end{macro}
-% \begin{macro}{\useRVContent}
-% \verb!\useRVConent{<name>}!
-% \begin{macro}{\useVContent}
-% \verb!\useVConent{<name>}!
+% \begin{macro}{\useRVContent}\hskip-\marginparsep\texttt{\darg{\ameta{name}}}
+% Used to combine several paragraphs (\psf{RV})
% \begin{macrocode}
\def\useRVContent#1{\@nameuse{#1-vcont}}
-\def\useVContent#1{\@nameuse{#1-pcont}}
% \end{macrocode}
% \end{macro}
+% \begin{macro}{\useVContent}\hskip-\marginparsep\texttt{\darg{\ameta{name}}}
+% Used to combine several paragraphs (\psf{V})
+% \begin{macrocode}
+\def\useVContent#1{\@nameuse{#1-pcont}}
+% \end{macrocode}
% \end{macro}
+% \section{Typesetting rich text mark up}
+% It may be case that an author may want to display the underlying rich text markup and
+% typeset it into the document for inspection and discussion. For this purpose, we offer
+% \begin{macrocode}
+% \end{macrocode}
+% \leavevmode\DescribeEnv{displayRtPara}\hskip-\marginparsep\texttt{\darg{\ameta{name}}}
+% Place an \cs{rtpara} command within and get a readout of RV and with \cs{displayRV\darg{\ameta{name}}}
+% and \cs{displayV\darg{\ameta{name}}}.
+% \changes{v1.1}{2020/06/28}{Added \string\env{displayRtPara} and \string\env{displayRtPara*}}
+% \begin{macrocode}
+\newenvironment{displayRtPara}[1]{%
+ \gdef\displayRtParaName{#1}\let\rtpdfSPDef\rt@sp@ce
+ \let\makePDFSp\makeTeXSp\let\rt@spc\rt@sp@ce
+ \def\rt@SC{;\allowbreak}\def\rt@CN{:\allowbreak}%
+}{%
+ \rt@csarg\xdef{displayRV\displayRtParaName}%
+ {\useRV{\displayRtParaName}}
+ \rt@csarg\xdef{displayV\displayRtParaName}%
+ {\useV{\displayRtParaName}}
+}
+% \end{macrocode}
+% \leavevmode\DescribeEnv{displayRtPara*}\hskip-\marginparsep\texttt{\darg{\ameta{name}}}
+% Place an \cs{rtpara} command within and get a readout of RV and with \cs{displayRV\darg{\ameta{name}}}
+% and \cs{displayV\darg{\ameta{name}}}. In this version, spaces are displayed as \cs{040}, designed for
+% the \app{dvips\,\texttt{->}\,distiller} workflow. Prints the same result for all other workflows as \env{displayRtPara}.
+% \begin{macrocode}
+\newenvironment{displayRtPara*}[1]{%
+ \gdef\displayRtParaName{#1}\let\rtpdfSPDef\rtpdfSPDefPrnt
+ \let\makePDFSp\makeTeXSpPrnt\let\rt@spc\rtpdfSPDefPrnt
+ \def\rt@SC{;\allowbreak}\def\rt@CN{:\allowbreak}%
+}{%
+ \rt@csarg\xdef{displayRV\displayRtParaName}%
+ {\useRV{\displayRtParaName}}
+ \rt@csarg\xdef{displayV\displayRtParaName}%
+ {\useV{\displayRtParaName}}
+}
+% \end{macrocode}
+% \leavevmode\DescribeMacro\displayRV\hskip-\marginparsep\texttt{\darg{\ameta{name}}} displays
+% the \psf{RV} entry as defined by a \cs{rtpara} command with \ameta{name}. Similarly,
+% \DescribeMacro\displayV\cs{displayV\darg{\ameta{name}}} displays the \psf{V} entry
+% \changes{v1.1}{2020/06/28}{Added \string\cs{displayRV} and \string\cs{displayV}}
+% \begin{macrocode}
+\def\displayRV#1{\csname displayRV#1\endcsname}
+\def\displayV#1{\csname displayV#1\endcsname}
+% \end{macrocode}
% \begin{macrocode}
%</package>
% \end{macrocode}
\endinput
-
-% iPad
-% Landscape
-% w: 7.75in
-% h: 5.8in
diff --git a/texmf-dist/tex/latex/richtext/richtext.sty b/texmf-dist/tex/latex/richtext/richtext.sty
index 3541612b..540f8435 100644
--- a/texmf-dist/tex/latex/richtext/richtext.sty
+++ b/texmf-dist/tex/latex/richtext/richtext.sty
@@ -1,366 +1,407 @@
-%%
-%% This is file `richtext.sty',
-%% generated with the docstrip utility.
-%%
-%% The original source files were:
-%%
-%% richtext.dtx (with options: `copyright,package')
-%%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% richtext package, %%
-%% Copyright (C) 2016 D. P. Story %%
-%% dpstory@uakron.edu %%
-%% %%
-%% This program can redistributed and/or modified under %%
-%% the terms of the LaTeX Project Public License %%
-%% Distributed from CTAN archives in directory %%
-%% macros/latex/base/lppl.txt; either version 1 of the %%
-%% License, or (at your option) any later version. %%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\NeedsTeXFormat{LaTeX2e}[1997/12/01]
-\ProvidesPackage{richtext}
- [2016/10/03 v1.0c richtext: create rich text strings (dps)]
-\RequirePackage{xkeyval}
-\RequirePackage{ifxetex}[2006/08/21]
-\newif\ifrt@formfield \rt@formfieldtrue
-\newif\ifrt@needsbody\rt@needsbodyfalse
-\@ifpackageloaded{eforms}%
- {\ifxetex\let\@eqV\@eqnuV\fi}{\rt@needsbodytrue}
-\providecommand\eq@RV@Body{<?xml version="1.0"?><body %
- xfa:APIVersion="Acroform:2.7.0.0" %
- xfa:contentType="text/html" %
- xfa:spec="2.1" xmlns="http://www.w3.org/1999/xhtml" %
- xmlns:xfa="http://www.xfa.org/schema/xfa-data/1.0/">}
-\providecommand\eq@RV@endBody{</body>}
-\def\rt@bBody{\ifrt@needsbody\eq@RV@Body\fi}
-\def\rt@eBody{\ifrt@needsbody\eq@RV@endBody\fi}
-\newif\ifrtfontstyle\rtfontstylefalse
-\define@key{rtFont}{font}[]{\def\rt@argi{#1}\ifx\rt@argi\@empty
- \let\rf@font\@empty\else\rtfontstyletrue
- \def\rf@font{font-family:#1}\fi}
-\define@key{rtFont}{size}[]{\def\rt@argi{#1}\ifx\rt@argi\@empty
- \let\rf@size\@empty\else\rtfontstyletrue\def\rf@size@num{#1}%
- \def\rf@size@pt{#1pt}\def\rf@size{font-size:#1pt}\fi}
-\def\rf@size@num{12}\def\rf@size@pt{12pt}
-\define@key{rtFont}{raise}[]{\def\rt@argi{#1}\ifx\rt@argi\@empty
- \let\rf@raise\@empty\else\rtfontstyletrue
- \def\rf@raise{vertical-align:#1pt}\fi}
-\define@choicekey+{rtFont}{ulstyle}[\val\nr]%
- {none,ul,2ul,wul,2wul}[none]{%
- \ifcase\nr\relax
- \def\rf@ul{none}\or
- \def\rf@ul{underline}\or
- \def\rf@ul{double}\or
- \def\rf@ul{word}\or
- \def\rf@ul{double word}\fi
- \rtfontstyletrue
-}{}
-\def\rt@r{r}\let\rt@One=1 \let\rt@Zero=0
-\def\rt@parseColor#1(#2\@nil{\def\rt@argi{#2}\ifx\rt@argi\@empty
-\let\rt@rgbdec\rt@Zero\else\let\rt@rgbdec\rt@One\fi}
-\def\rt@gobbletonil#1\@nil{}
-\bgroup\@makeother\#\@makeother\&%
-\gdef\rt@hashtag{#}\gdef\rt@amp{&}\egroup
-\define@key{rtFont}{color}[]{\def\rt@argi{#1}\ifx\rt@argi\@empty
- \let\rf@color\@empty\else\rtfontstyletrue
- \rt@parseColor#1(\@nil
- \if\rt@rgbdec\rt@One
- \def\rf@color{color:#1}\else
- \def\rf@color{color:\rt@hashtag#1}\fi
-\fi}
-\let\rf@color\@empty
-\define@key{rtFont}{url}[]{\def\rt@argi{#1}\ifx\rt@argi\@empty
- \let\rt@url\@empty\else\rtfontstyletrue\def\rt@url{#1}\fi}
-\define@choicekey+{rtFontStyle}{bold}[\val\nr]{normal,bold}[bold]%
- {\edef\rfS@bold{\val}}{}
-\define@choicekey+{rtFontStyle}{italic}[\val\nr]{normal,italic}[italic]%
- {\edef\rfS@italic{\val}}{}
-\define@key{rtFontStyle}{strikeit}[]{\def\rfS@strikeit{line-through}}
-\let\rfS@normal\@empty\let\rfS@bold\@empty
-\let\rfS@italic\@empty\let\rfS@strikeit\@empty
-\define@key{rtFont}{style}[]{\def\rt@argi{#1}\ifx\rt@argi\@empty
- \let\rf@style\@empty\else\rtfontstyletrue\def\rf@style{#1}\fi}
-\define@key{rtFont}{raw}[]{\def\rt@argi{#1}\ifx\rt@argi\@empty
- \let\rf@raw\@empty\else\rtfontstyletrue\def\rf@raw{#1}\fi}
-\def\resetRtFontKeys{% rtFont family
- \let\rf@font\@empty\let\rf@size\@empty
- \let\rf@raise\@empty\let\rf@ul\@empty
- \let\rf@color\@empty\let\rf@style\@empty\let\rt@url\@empty
- \let\rf@raw\@empty
- % rtFontStyle family
- \let\rfS@normal\@empty\let\rfS@bold\@empty
- \let\rfS@italic\@empty\let\rfS@strikeit\@empty
- \rtfontstylefalse}
-\resetRtFontKeys
-\newcommand{\@AddToRichText}{\g@addto@macro\rt@RichText}
-\newcommand{\@AddToPlainText}{\g@addto@macro\rt@PlainText}
-\def\rt@excl{!}
-\def\rt@csarg#1#2{\expandafter#1\csname#2\endcsname}
-\newcommand{\useRV}[1]{\@nameuse{#1-ri}}
-\newcommand{\useV}[1]{\@nameuse{#1-pl}}
-\newif\if@rvstring \@rvstringfalse
-\def\rvorvstring{\if@rvstring
- \expandafter\@firstoftwo
- \else
- \expandafter\@secondoftwo
- \fi
-}
-\def\rt@sub#1{\rvorvstring{<sub>#1</sub>}{#1}}
-\def\rt@sup#1{\rvorvstring{<sup>#1</sup>}{#1}}
-\def\rt@br{\rvorvstring{<br />}{\string\r}}
-\def\rt@bf#1{\rvorvstring{<b>#1</b>}{#1}}
-\def\rt@it#1{\rvorvstring{<i>#1</i>}{#1}}
-\def\rt@spc{\rvorvstring{<span style="xfa-spacerun:yes">\rt@amp
- \rt@hashtag160\rt@SC</span>}{ }}
-\def\rt@SC{;}\def\rt@CN{:}\def\rt@fs{font-style}\def\rt@fw{font-weight}
-\def\rt@td{text-decoration}
-\def\rt@remove@span#1#2{#2}
-\def\rt@StyleAttr{\ifx\rf@font\@empty\else\rf@font\rt@SC\fi
- \ifx\rf@size\@empty\else\rf@size\rt@SC\fi
- \ifrt@formfield\ifx\rf@raise\@empty\else\rf@raise\rt@SC\fi\fi
- \ifx\rf@ul\@empty\ifx\rfS@strikeit\@empty\else
- \rt@td\rt@CN\rfS@strikeit\rt@SC\fi
- \else\rt@td\rt@CN\rf@ul\ifx\rfS@strikeit\@empty\else\space
- \rfS@strikeit\fi\rt@SC\fi
- \ifx\rfS@bold\@empty\else\rt@fw\rt@CN\rfS@bold\rt@SC\fi
- \ifx\rfS@italic\@empty\else\rt@fs\rt@CN\rfS@italic\rt@SC\fi
- \ifx\rf@color\@empty\else\rf@color\rt@SC\fi
- \ifx\rf@raw\@empty\else\rf@raw\fi}
-\let\rt@afterFont\relax
-\newcommand\rt@span[2]{\resetRtFontKeys
- \edef\x{\noexpand\setkeys{rtFont}{#1}}\x\rt@afterFont
- \edef\x{\noexpand\setkeys{rtFontStyle}{\rf@style}}\x
- \edef\rt@Style@ttr{\rt@StyleAttr}%
- \ifx\rt@url\@empty
- \ifx\rt@StyleAttr\@empty\def\x{#2}\else
- \edef\x{<span\ifrtfontstyle\space
- style="\rt@Style@ttr"\fi>#2</span>}\fi
- \else
- \ifx\rt@StyleAttr\@empty\edef\x{<a href="\rt@url">#2</a>}\else
- \edef\x{<a href="\rt@url"
- \ifrtfontstyle style="\rt@Style@ttr">#2</a>\fi}\fi
- \fi
-}
-\define@choicekey+{rtPara}{halign}[\val\nr]%
- {left,center,right,justify}[left]{%
- \ifcase\nr\relax
- \def\rt@halign{text-align:left}\or
- \def\rt@halign{text-align:center}\or
- \def\rt@halign{text-align:right}\or
- \def\rt@halign{text-align:justify}\fi
- \rtfontstyletrue
-}{}
-\define@choicekey+{rtPara}{valign}[\val\nr]{top,middle,bottom}[top]{%
- \ifcase\nr\relax
- \def\rt@valign{text-valign:top}\or
- \def\rt@valign{text-valign:middle}\or
- \def\rt@valign{text-valign:bottom}\fi
- \rtfontstyletrue
-}{}
-\let\rt@halign\@empty\let\rt@valign\@empty
-\define@key{rtPara}{margleft}{\def\rt@margleft{margin-left:#1pt}}
-\define@key{rtPara}{margright}{\def\rt@margright{margin-right:#1pt}}
-\define@choicekey+{rtPara}{indent}[\val\nr]{none,first,hanging}[none]{%
- \edef\rt@indenttype{\nr}%
-}{}
-\define@key{rtPara}{indentby}[12]{\def\rt@indentby{#1pt}}
-\let\rt@margleft\@empty\let\rt@margright\@empty
-\def\rt@indenttype{0}\def\rt@indentby{12pt}
-\define@key{rtPara}{margtop}[0]{\def\rt@margtop{#1pt}}
-\define@key{rtPara}{margbottom}[0]{\def\rt@margbottom{#1pt}}
-\def\rt@margtop{0pt}\def\rt@margbottom{0pt}
-\define@choicekey{rtPara}{linespacing}[\val\nr]%
- {single,oneandhalf,double,exact}[single]{%line-height
- \edef\rt@linespacingtype{\nr}%
- \ifcase\nr
- \let\rt@linesp\@empty\or
- \setlength{\@tempdima}{1.8pt*\rf@size@num}%
- \edef\rt@linesp{\the\@tempdima}\or
- \setlength{\@tempdima}{2.4pt*\rf@size@num}%
- \edef\rt@linesp{\the\@tempdima}\or
- \def\rt@linesp{\rf@size@pt}\fi
-}{}
-\let\rt@linesp\@empty\def\rt@linespacingtype{0}
-\define@key{rtPara}{lineheight}[]{\def\rt@lineheight{#1pt}}
-\let\rt@lineheight\@empty
-\def\rtp@ti{text-indent}\def\rtp@mt{margin-top}
-\def\rtp@mb{margin-bottom}\def\rtp@lh{line-height}
-\def\rt@ParaAttr{%
- \ifx\rt@halign\@empty\else\rt@halign\rt@SC\fi
-\ifrt@formfield
- \ifx\rt@valign\@empty\else\rt@valign\rt@SC\fi
- \ifx\rt@margleft\@empty\else\rt@margleft\rt@SC\fi
- \ifx\rt@margright\@empty\else\rt@margright\rt@SC\fi
- \ifcase\rt@indenttype\space\or
- \rtp@ti\rt@CN\rt@indentby\rt@SC\or
- \rtp@ti\rt@CN-\rt@indentby\rt@SC\fi
- \rtp@mt\rt@CN\rt@margtop\rt@SC\rtp@mb\rt@CN\rt@margbottom\rt@SC
- \ifx\rt@linesp\@empty\else
- \if\rt@linespacingtype3%
- \ifx\rt@lineheight\@empty
- \rtp@lh\rt@CN\rt@linesp\rt@SC
- \else
- \rtp@lh\rt@CN\rt@lineheight\rt@SC
- \fi
- \else
- \rtp@lh\rt@CN\rt@linesp\rt@SC
- \fi
- \fi
-\fi
-}
-\begingroup
-\catcode`\@=0 @catcode`@\=12
-@gdef@rtbs{\}
-@endgroup
-\def\rt@cs#1{\rvorvstring{\rtbs\rtbs#1}{\string\134#1}}
-\let\rt@afterParaFont\relax
-\def\rt@dir{ dir="ltr"}
-\newcommand\rtpara[2][]{\begingroup
- \setkeys{rtPara,rtFont}{#1}\rt@afterParaFont
- \edef\rt@Para@ttr{\rt@ParaAttr\rt@StyleAttr}%
- \global\let\rt@RichText\@empty
- \global\let\rt@PlainText\@empty
- \def\rt@ctrlName{#2}%
- \def\{{\string\{}\def\}{\string\}}%
- \def\1{\string\1}\def\2{\string\2}\def\3{\string\3}%
- \@makeother\$\@makeother\#\@makeother\^\@makeother\_\@makeother\~%
- \@makeother\&\def\&{\rvorvstring{\string&amp;}{\string&}}% req
- \@makeother\<\def\<{\rvorvstring{\string&lt;}{\string<}}% req
- \@makeother\>\def\>{\rvorvstring{\string&gt;}{\string>}}%
- \@makeother\'\def\'{\rvorvstring{\string&apos;}{\string'}}%
- \@makeother\"\def\"{\rvorvstring{\string&quot;}{\string"}}%
- \let\cs\rt@cs
- \rtpara@cont}
-\def\rtpara@cont#1{%
- \let\sup\rt@sup\let\sub\rt@sub
- \let\br\rt@br\let\bf\rt@bf\let\it\rt@it
- \let\spc\rt@spc
- \let\span\rt@remove@span
- \@rvstringfalse
- \edef\x{#1}\expandafter\@AddToPlainText\expandafter{\x}%
- \let\span\relax
- \@rvstringtrue
- \rtpara@i#1\span!;\endgroup}
-\def\rtpara@i#1\span#2;{\def\argii{#2}%
- \g@addto@macro\rt@RichText{#1}%
- \ifx\argii\rt@excl
- \rt@csarg\xdef{\rt@ctrlName-ri}%
- {%
- <p\rt@dir\ifx\rt@Para@ttr\@empty\else\space
- style="\rt@Para@ttr"\fi>\rt@RichText</p>%
- }%
- \rt@csarg\xdef{\rt@ctrlName-pl}{\rt@PlainText}%
- \let\rt@next\relax
- \else
- \def\rt@next{\rtpara@ii#2;}%
- \fi
-\rt@next}
-\def\rtpara@ii#1#2#3;{\def\argii{#2}%
- \ifx\argii\rt@excl
- \let\rt@next\relax
- \else
- \let\span\rt@span
- \let\br\rt@br\let\bf\rt@bf\let\it\rt@it
- \@rvstringtrue
- \span{#1}{#2}\edef\rt@tmp{\noexpand\g@addto@macro
- \noexpand\rt@RichText{\x}}\rt@tmp
- \rt@csarg\xdef{\rt@ctrlName-ri}%
- {%
- <p\rt@dir\ifx\rt@Para@ttr\@empty\else\space
- style="\rt@Para@ttr"\fi>\rt@RichText</p>%
- }%
- \rt@csarg\xdef{\rt@ctrlName-pl}{\rt@PlainText}%
- \let\span\relax
- \def\rt@next{\rtpara@i#3;}%
- \fi\rt@next}
-\rt@csarg\def{par-ri}{}\rt@csarg\def{par-pl}{\string\r}
-\rt@csarg\def{skipline-ri}%
- {<p><span style="xfa-spacerun:yes">\rt@amp
- \rt@hashtag160;</span></p>}
-\rt@csarg\def{skipline-pl}{\string\r\space}
-\def\rt@skipline{skipline}
-\rt@csarg\def{br-ri}{}\rt@csarg\def{br-pl}{\string\r}
-\def\rt@DSAttr{\ifx\rf@font\@empty\else\rf@font\rt@SC\fi
- \ifx\rf@size\@empty\else\rf@size\rt@SC\fi
- \ifx\rf@raise\@empty\else\rf@raise\rt@SC\fi
- \ifx\rf@ul\@empty\ifx\rfS@strikeit\@empty\else
- \rt@td\rt@CN\rfS@strikeit\rt@SC\fi
- \else\rt@td\rt@CN\rf@ul\ifx\rfS@strikeit\@empty\else\space
- \rfS@strikeit\fi\rt@SC\fi
- \ifx\rfS@bold\@empty\else\rt@fw\rt@CN\rfS@bold\rt@SC\fi
- \ifx\rfS@italic\@empty\else\rt@fs\rt@CN\rfS@italic\rt@SC\fi
- \ifx\rf@color\@empty\else\rf@color\rt@SC\fi}
-\newcommand\useDefaultDS{font-family:Helvetica,sans-serif;%
- font-size:12.0pt;font-style:normal;font-weight:normal;%
- text-align:left;color:\rt@hashtag000000}
-\newcommand{\setDefaultStyle}[2]{\begingroup
- \edef\x{\noexpand\setkeys{rtFont}{#2}}\x
- \edef\x{\noexpand\setkeys{rtFontStyle}{\rf@style}}\x
- \ifx\rf@ul\@empty\else
- \let\rt@ul\@empty\PackageWarning{richtext}{%
- The ul key is not supported within\MessageBreak
- \string\setDefaultStyle. Ignoring it}\fi
- \ifx\rf@raise\@empty\else
- \let\rt@raise\@empty\PackageWarning{richtext}{%
- The raise key is not supported within\MessageBreak
- \string\setDefaultStyle. Ignoring it}\fi
- \ifx\rt@url\@empty\else\let\rf@url\@empty
- \PackageWarning{richtext}{%
- The url key is not supported within\MessageBreak
- \string\setDefaultStyle. Ignoring it}\fi
- \ifx\rf@font\@empty
- \def\rf@font{font-family:Helvetica,sans-serif}\fi
- \ifx\rf@size\@empty\def\rf@size{font-size:\rf@size@pt}\fi
- \ifx\rf@color\@empty\def\rf@color{color:\rt@hashtag000000}\fi
- \rt@csarg\xdef{#1-DS}{\rt@DSAttr}%
-\endgroup}
-\newcommand{\useDS}[1]{\@nameuse{#1-DS}}
-\newif\ifrt@firsttok \rt@firsttoktrue
-\newif\ifrt@itsskipline \rt@itsskiplinefalse
-\def\rt@addtoRVV#1{%
- \toks4={\useRV{#1}}\edef\rt@tmpRV{\the\toks0\the\toks4}%
- \toks4={\useV{#1}}\edef\rt@tmpV{\the\toks2\the\toks4}%
- \toks0=\expandafter{\rt@tmpRV}\toks2=\expandafter{\rt@tmpV}%
-}
-\def\rt@testifbgroup{\@ifnextchar\bgroup
- {\let\rt@nultiargs=1\rt@gobbletonil}
- {\let\rt@nultiargs=0\rt@gobbletonil}}
-\newcommand{\setRVVContent}[2]{\begingroup
- \rt@firsttoktrue \rt@itsskiplinefalse
- \rt@testifbgroup#2\@nil
- \def\contName{#1}\toks0={}\toks2={}\toks4={}%
- \if\rt@nultiargs1\def\rt@next{\setRVVContent@i#2;}\else
- \def\rt@next{\setRVVContent@i{#2};}\fi\rt@next}
-\def\setRVVContent@i#1{\def\rt@argi{#1}%
- \ifx\rt@argi\rt@SC
- \rt@csarg\xdef{\contName-vcont}{\the\toks0}%
- \rt@csarg\xdef{\contName-pcont}{\the\toks2}%
- \let\rt@next\endgroup
- \else
- \expandafter\ifx\csname #1-ri\endcsname\relax
- \PackageWarning{richtext}
- {The name '#1' is not declared,\MessageBreak
- will ignore it. Check the spelling}%
- \def\rt@next{\setRVVContent@i}%
- \else
- \ifrt@firsttok\rt@firsttokfalse\else
- \ifx\rt@argi\rt@skipline
- \rt@itsskiplinetrue
- \else
- \ifrt@itsskipline
- \rt@addtoRVV{br}\rt@itsskiplinefalse
- \else
- \rt@addtoRVV{par}%
- \fi
- \fi
- \fi
- \rt@addtoRVV{#1}%
- \def\rt@next{\setRVVContent@i}%
- \fi
- \fi\rt@next
-}
-\def\useRVContent#1{\@nameuse{#1-vcont}}
-\def\useVContent#1{\@nameuse{#1-pcont}}
-\endinput
-%%
-%% End of file `richtext.sty'.
+%%
+%% This is file `richtext.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% richtext.dtx (with options: `copyright,package')
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% richtext package, %%
+%% Copyright (C) 2016--2020 %%
+%% dpstory@uakron.edu %%
+%% %%
+%% This program can redistributed and/or modified under %%
+%% the terms of the LaTeX Project Public License %%
+%% Distributed from CTAN archives in directory %%
+%% macros/latex/base/lppl.txt; either version 1 of the %%
+%% License, or (at your option) any later version. %%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\NeedsTeXFormat{LaTeX2e}[1997/12/01]
+\ProvidesPackage{richtext}
+ [2020/07/02 v1.1.1 richtext: create rich text strings (dps)]
+\RequirePackage{xkeyval}
+\RequirePackage{ifpdf}
+\RequirePackage{ifxetex}[2006/08/21]
+\RequirePackage{eforms}
+\@ifundefined{ifpdfmarkup}{\newif\ifpdfmarkup}{}\pdfmarkupfalse
+\ifpdf\else\ifxetex\else\pdfmarkuptrue\fi\fi
+\newif\ifrt@formfield \rt@formfieldtrue
+\newif\ifrt@needsbody\rt@needsbodyfalse
+\@ifpackageloaded{eforms}%
+ {\ifxetex\let\@eqV\@eqnuV\fi}{\rt@needsbodytrue}
+\ifxetex\else\hypersetup{pdfencoding=pdfdoc}\fi
+\providecommand\eq@RV@Body{<?xml version="1.0"?><body %
+ xfa:APIVersion="Acroform:2.7.0.0" %
+ xfa:contentType="text/html" %
+ xfa:spec="2.1" xmlns="http://www.w3.org/1999/xhtml" %
+ xmlns:xfa="http://www.xfa.org/schema/xfa-data/1.0/">}
+\providecommand\eq@RV@endBody{</body>}
+\def\rt@bBody{\ifrt@needsbody\eq@RV@Body\fi}
+\def\rt@eBody{\ifrt@needsbody\eq@RV@endBody\fi}
+\newif\ifrtfontstyle\rtfontstylefalse
+\define@key{rtFont}{font}[]{\def\rt@argi{#1}\ifx\rt@argi\@empty
+ \let\rf@font\@empty\else\rtfontstyletrue
+ \def\rf@font{font-family:#1}\fi}
+\define@key{rtFont}{size}[]{\def\rt@argi{#1}\ifx\rt@argi\@empty
+ \let\rf@size\@empty\else\rtfontstyletrue\def\rf@size@num{#1}%
+ \def\rf@size@pt{#1pt}\def\rf@size{font-size:#1pt}\fi}
+\def\rf@size@num{12}\def\rf@size@pt{12pt}
+\define@key{rtFont}{raise}[]{\def\rt@argi{#1}\ifx\rt@argi\@empty
+ \let\rf@raise\@empty\else\rtfontstyletrue
+ \def\rf@raise{vertical-align:#1pt}\fi}
+\define@choicekey+{rtFont}{ulstyle}[\val\nr]%
+ {none,ul,2ul,wul,2wul}[none]{%
+ \ifcase\nr\relax
+ \def\rf@ul{none}\or
+ \def\rf@ul{underline}\or
+ \def\rf@ul{double}\or
+ \def\rf@ul{word}\or
+ \def\rf@ul{double word}\fi
+ \rtfontstyletrue
+}{}
+\def\rt@r{r}\let\rt@One=1 \let\rt@Zero=0
+\def\rt@parseColor#1(#2\@nil{\def\rt@argi{#2}\ifx\rt@argi\@empty
+\let\rt@rgbdec\rt@Zero\else\let\rt@rgbdec\rt@One\fi}
+\def\rt@gobbletonil#1\@nil{}
+\bgroup\@makeother\#\@makeother\&%
+\gdef\rt@hashtag{#}\gdef\rt@amp{&}\egroup
+\define@key{rtFont}{color}[]{\def\rt@argi{#1}\ifx\rt@argi\@empty
+ \let\rf@color\@empty\else\rtfontstyletrue
+ \rt@parseColor#1(\@nil
+ \if\rt@rgbdec\rt@One
+ \def\rf@color{color:#1}\else
+ \def\rf@color{color:\rt@hashtag#1}\fi
+\fi}
+\let\rf@color\@empty
+\define@key{rtFont}{url}[]{\def\rt@argi{#1}\ifx\rt@argi\@empty
+ \let\rt@url\@empty\else\rtfontstyletrue\def\rt@url{#1}\fi}
+\define@choicekey+{rtFontStyle}{bold}[\val\nr]{normal,bold}[bold]%
+ {\edef\rfS@bold{\val}}{}
+\define@choicekey+{rtFontStyle}{italic}[\val\nr]{normal,italic}[italic]%
+ {\edef\rfS@italic{\val}}{}
+\define@key{rtFontStyle}{strikeit}[]{\def\rfS@strikeit{line-through}}
+\let\rfS@normal\@empty\let\rfS@bold\@empty
+\let\rfS@italic\@empty\let\rfS@strikeit\@empty
+\define@key{rtFont}{style}[]{\def\rt@argi{#1}\ifx\rt@argi\@empty
+ \let\rf@style\@empty\else\rtfontstyletrue\def\rf@style{#1}\fi}
+\define@key{rtFont}{raw}[]{\def\rt@argi{#1}\ifx\rt@argi\@empty
+ \let\rf@raw\@empty\else\rtfontstyletrue\def\rf@raw{#1}\fi}
+\def\resetRtFontKeys{% rtFont family
+ \let\rf@font\@empty\let\rf@size\@empty
+ \let\rf@raise\@empty\let\rf@ul\@empty
+ \let\rf@color\@empty\let\rf@style\@empty\let\rt@url\@empty
+ \let\rf@raw\@empty
+ \let\rfS@normal\@empty\let\rfS@bold\@empty
+ \let\rfS@italic\@empty\let\rfS@strikeit\@empty
+ \rtfontstylefalse}
+\resetRtFontKeys
+\newcommand{\@AddToRichText}{\g@addto@macro\rt@RichText}
+\newcommand{\@AddToPlainText}{\g@addto@macro\rt@PlainText}
+\def\rt@excl{!}
+\def\rt@csarg#1#2{\expandafter#1\csname#2\endcsname}
+\newcommand{\useRV}[1]{\@nameuse{#1-ri}}
+\newcommand{\useV}[1]{\@nameuse{#1-pl}}
+\newif\if@rvstring \@rvstringfalse
+\def\rvorvstring{\if@rvstring
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi
+}
+\def\rt@sub#1{\rvorvstring{<sub>#1</sub>}{#1}}
+\def\rt@sup#1{\rvorvstring{<sup>#1</sup>}{#1}}
+\def\rt@br{\rvorvstring{<br />}{\string\r}}
+\def\rt@bf#1{\rvorvstring{<b>#1</b>}{#1}}
+\def\rt@it#1{\rvorvstring{<i>#1</i>}{#1}}
+\def\rt@spc{\rvorvstring{<span style="xfa-spacerun:yes">\rt@amp
+ \rt@hashtag160\rt@SC</span>}{ }}
+\def\rt@SC{;}\def\rt@CN{:}\def\rt@fs{font-style}\def\rt@fw{font-weight}
+\def\rt@td{text-decoration}
+\def\rt@remove@span#1#2{#2}
+\def\rt@StyleAttr{\ifx\rf@font\@empty\else\rf@font\rt@SC\fi
+ \ifx\rf@size\@empty\else\rf@size\rt@SC\fi
+ \ifrt@formfield\ifx\rf@raise\@empty\else\rf@raise\rt@SC\fi\fi
+ \ifx\rf@ul\@empty\ifx\rfS@strikeit\@empty\else
+ \rt@td\rt@CN\rfS@strikeit\rt@SC\fi
+ \else\rt@td\rt@CN\rf@ul\ifx\rfS@strikeit\@empty\else\space
+ \rfS@strikeit\fi\rt@SC\fi
+ \ifx\rfS@bold\@empty\else\rt@fw\rt@CN\rfS@bold\rt@SC\fi
+ \ifx\rfS@italic\@empty\else\rt@fs\rt@CN\rfS@italic\rt@SC\fi
+ \ifx\rf@color\@empty\else\rf@color\rt@SC\fi
+ \ifx\rf@raw\@empty\else\rf@raw\fi}
+\let\rt@afterFont\relax
+\newcommand\rt@span[2]{\resetRtFontKeys
+ \edef\x{\noexpand\setkeys{rtFont}{#1}}\x\rt@afterFont
+ \edef\x{\noexpand\setkeys{rtFontStyle}{\rf@style}}\x
+ \edef\rt@Style@ttr{\rt@StyleAttr}%
+ \ifx\rt@url\@empty
+ \ifx\rt@StyleAttr\@empty\def\x{#2}\else
+ \edef\x{<span\ifrtfontstyle\space
+ style="\rt@Style@ttr"\fi>#2</span>}\fi
+ \else
+ \ifx\rt@StyleAttr\@empty\edef\x{<a href="\rt@url">#2</a>}\else
+ \edef\x{<a href="\rt@url"
+ \ifrtfontstyle style="\rt@Style@ttr">#2</a>\fi}\fi
+ \fi
+}
+\define@choicekey+{rtPara}{halign}[\val\nr]%
+ {left,center,right,justify}[left]{%
+ \ifcase\nr\relax
+ \def\rt@halign{text-align:left}\or
+ \def\rt@halign{text-align:center}\or
+ \def\rt@halign{text-align:right}\or
+ \def\rt@halign{text-align:justify}\fi
+ \rtfontstyletrue
+}{}
+\define@choicekey+{rtPara}{valign}[\val\nr]{top,middle,bottom}[top]{%
+ \ifcase\nr\relax
+ \def\rt@valign{text-valign:top}\or
+ \def\rt@valign{text-valign:middle}\or
+ \def\rt@valign{text-valign:bottom}\fi
+ \rtfontstyletrue
+}{}
+\let\rt@halign\@empty\let\rt@valign\@empty
+\define@key{rtPara}{margleft}{\def\rt@margleft{margin-left:#1pt}}
+\define@key{rtPara}{margright}{\def\rt@margright{margin-right:#1pt}}
+\define@choicekey+{rtPara}{indent}[\val\nr]{none,first,hanging}[none]{%
+ \edef\rt@indenttype{\nr}%
+}{}
+\define@key{rtPara}{indentby}[12]{\def\rt@indentby{#1pt}}
+\let\rt@margleft\@empty\let\rt@margright\@empty
+\def\rt@indenttype{0}\def\rt@indentby{12pt}
+\define@key{rtPara}{margtop}[0]{\def\rt@margtop{#1pt}}
+\define@key{rtPara}{margbottom}[0]{\def\rt@margbottom{#1pt}}
+\def\rt@margtop{0pt}\def\rt@margbottom{0pt}
+\define@choicekey{rtPara}{linespacing}[\val\nr]%
+ {single,oneandhalf,double,exact}[single]{%line-height
+ \edef\rt@linespacingtype{\nr}%
+ \ifcase\nr
+ \let\rt@linesp\@empty\or
+ \setlength{\@tempdima}{1.8pt*\rf@size@num}%
+ \edef\rt@linesp{\the\@tempdima}\or
+ \setlength{\@tempdima}{2.4pt*\rf@size@num}%
+ \edef\rt@linesp{\the\@tempdima}\or
+ \def\rt@linesp{\rf@size@pt}\fi
+}{}
+\let\rt@linesp\@empty\def\rt@linespacingtype{0}
+\define@key{rtPara}{lineheight}[]{\def\rt@lineheight{#1pt}}
+\let\rt@lineheight\@empty
+\def\rtp@ti{text-indent}\def\rtp@mt{margin-top}
+\def\rtp@mb{margin-bottom}\def\rtp@lh{line-height}
+\def\rt@ParaAttr{%
+ \ifx\rt@halign\@empty\else\rt@halign\rt@SC\fi
+\ifrt@formfield
+ \ifx\rt@valign\@empty\else\rt@valign\rt@SC\fi
+ \ifx\rt@margleft\@empty\else\rt@margleft\rt@SC\fi
+ \ifx\rt@margright\@empty\else\rt@margright\rt@SC\fi
+ \ifcase\rt@indenttype\space\or
+ \rtp@ti\rt@CN\rt@indentby\rt@SC\or
+ \rtp@ti\rt@CN-\rt@indentby\rt@SC\fi
+ \rtp@mt\rt@CN\rt@margtop\rt@SC\rtp@mb\rt@CN\rt@margbottom\rt@SC
+ \ifx\rt@linesp\@empty\else
+ \if\rt@linespacingtype3%
+ \ifx\rt@lineheight\@empty
+ \rtp@lh\rt@CN\rt@linesp\rt@SC
+ \else
+ \rtp@lh\rt@CN\rt@lineheight\rt@SC
+ \fi
+ \else
+ \rtp@lh\rt@CN\rt@linesp\rt@SC
+ \fi
+ \fi
+\fi }
+\begingroup
+\catcode`\@=0 @catcode`@\=12 @gdef@rtbs{\} @endgroup
+\def\rt@cs#1{\rvorvstring{\rtbs\rtbs#1}{\string\134#1}}
+\let\rt@afterParaFont\relax
+\def\rt@dir{ dir="ltr"}
+\def\rt@sp@ce{ }
+\def\rtpdfSPDef{\string\040}
+\def\rtpdfSPDefPrnt{\string\040\allowbreak}
+\bgroup\obeyspaces
+\gdef\makePDFSp{\global\let =\pdfSP}%
+\gdef\makeTeXSp{\global\let =\rt@sp@ce}%
+\gdef\makeTeXSpPrnt{\global\let =\rtpdfSPDefPrnt}%
+\egroup
+\bgroup\catcode`\^^M=\active%
+\gdef\insertPDFSp@tEOL{%
+ \catcode`\^^M=\active%
+ \let^^M\rtpdfSPDef%
+ \endlinechar=`\^^M}%
+\egroup
+\newcommand\rtpara[2][]{\begingroup
+ \setkeys{rtPara,rtFont}{#1}\rt@afterParaFont
+ \edef\rt@Para@ttr{\rt@ParaAttr\rt@StyleAttr}%
+ \global\let\rt@RichText\@empty
+ \global\let\rt@PlainText\@empty
+ \def\rt@ctrlName{#2}%
+ \def\{{\string\{}\def\}{\string\}}%
+ \def\1{\string\1}\def\2{\string\2}\def\3{\string\3}%
+ \@makeother\$\@makeother\#\@makeother\^\@makeother\_\@makeother\~%
+ \@makeother\&\def\&{\rvorvstring{\string&amp;}{\string&}}% req
+ \@makeother\<\def\<{\rvorvstring{\string&lt;}{\string<}}% req
+ \@makeother\>\def\>{\rvorvstring{\string&gt;}{\string>}}%
+ \@makeother\'\def\'{\rvorvstring{\string&apos;}{\string'}}%
+ \@makeother\"\def\"{\rvorvstring{\string&quot;}{\string"}}%
+ \let\cs\rt@cs
+ \rtpara@cont}
+\def\rtpara@cont{\ifpdfmarkup
+ \makePDFSp\obeyspaces\insertPDFSp@tEOL\fi
+ \@ifnextchar\bgroup\rtpara@cont@i{\expandafter
+ \rtpara@cont@i\@gobble}}
+\def\rtpara@cont@i#1{%
+ \let\sup\rt@sup\let\sub\rt@sub
+ \let\br\rt@br\let\bf\rt@bf\let\it\rt@it
+ \let\spc\rt@spc
+ \let\span\rt@remove@span
+ \@rvstringfalse
+ \edef\x{#1}\expandafter\@AddToPlainText\expandafter{\x}%
+ \let\span\relax
+ \@rvstringtrue
+ \rtpara@i#1\span!;\endgroup}
+\def\rtpara@i#1\span#2;{\def\argii{#2}%
+ \@AddToRichText{#1}%
+ \ifx\argii\rt@excl
+ \rt@csarg\xdef{\rt@ctrlName-ri}%
+ {%
+ <p\rt@dir\ifx\rt@Para@ttr\@empty\else\space
+ style="\rt@Para@ttr"\fi>\rt@RichText</p>%
+ }%
+ \rt@csarg\xdef{\rt@ctrlName-pl}{\rt@PlainText}%
+ \let\rt@next\relax
+ \else
+ \def\rt@next{\rtpara@ii#2;}%
+ \fi
+\rt@next}
+\def\rtpara@ii#1#2#3;{\def\argii{#2}%
+ \ifx\argii\rt@excl
+ \let\rt@next\relax
+ \else
+ \let\span\rt@span
+ \let\br\rt@br\let\bf\rt@bf\let\it\rt@it
+ \@rvstringtrue
+ \span{#1}{#2}\edef\rt@tmp{\noexpand
+ \@AddToRichText{\x}}\rt@tmp
+ \rt@csarg\xdef{\rt@ctrlName-ri}%
+ {%
+ <p\rt@dir\ifx\rt@Para@ttr\@empty\else\space
+ style="\rt@Para@ttr"\fi>\rt@RichText</p>%
+ }%
+ \rt@csarg\xdef{\rt@ctrlName-pl}{\rt@PlainText}%
+ \let\span\relax
+ \def\rt@next{\rtpara@i#3;}%
+ \fi\rt@next}
+\rt@csarg\def{par-ri}{}\rt@csarg\def{par-pl}{\string\r}
+\rt@csarg\def{skipline-ri}%
+ {<p><span style="xfa-spacerun:yes">\rt@amp
+ \rt@hashtag160;</span></p>}
+\rt@csarg\def{skipline-pl}{\string\r\space}
+\def\rt@skipline{skipline}
+\rt@csarg\def{br-ri}{}\rt@csarg\def{br-pl}{\string\r}
+\def\rt@DSAttr{\ifx\rf@font\@empty\else\rf@font\rt@SC\fi
+ \ifx\rf@size\@empty\else\rf@size\rt@SC\fi
+ \ifx\rf@raise\@empty\else\rf@raise\rt@SC\fi
+ \ifx\rf@ul\@empty\ifx\rfS@strikeit\@empty\else
+ \rt@td\rt@CN\rfS@strikeit\rt@SC\fi
+ \else\rt@td\rt@CN\rf@ul\ifx\rfS@strikeit\@empty\else\space
+ \rfS@strikeit\fi\rt@SC\fi
+ \ifx\rfS@bold\@empty\else\rt@fw\rt@CN\rfS@bold\rt@SC\fi
+ \ifx\rfS@italic\@empty\else\rt@fs\rt@CN\rfS@italic\rt@SC\fi
+ \ifx\rf@color\@empty\else\rf@color\rt@SC\fi}
+\newcommand\useDefaultDS{font-family:Helvetica,sans-serif;%
+ font-size:12.0pt;font-style:normal;font-weight:normal;%
+ text-align:left;color:\rt@hashtag000000}
+\newcommand{\setDefaultStyle}[2]{\begingroup
+ \edef\x{\noexpand\setkeys{rtFont}{#2}}\x
+ \edef\x{\noexpand\setkeys{rtFontStyle}{\rf@style}}\x
+ \ifx\rf@ul\@empty\else
+ \let\rt@ul\@empty\PackageWarning{richtext}{%
+ The ul key is not supported within\MessageBreak
+ \string\setDefaultStyle. Ignoring it}\fi
+ \ifx\rf@raise\@empty\else
+ \let\rt@raise\@empty\PackageWarning{richtext}{%
+ The raise key is not supported within\MessageBreak
+ \string\setDefaultStyle. Ignoring it}\fi
+ \ifx\rt@url\@empty\else\let\rf@url\@empty
+ \PackageWarning{richtext}{%
+ The url key is not supported within\MessageBreak
+ \string\setDefaultStyle. Ignoring it}\fi
+ \ifx\rf@font\@empty
+ \def\rf@font{font-family:Helvetica,sans-serif}\fi
+ \ifx\rf@size\@empty\def\rf@size{font-size:\rf@size@pt}\fi
+ \ifx\rf@color\@empty\def\rf@color{color:\rt@hashtag000000}\fi
+ \rt@csarg\xdef{#1-DS}{\rt@DSAttr}%
+\endgroup}
+\newcommand{\useDS}[1]{\@nameuse{#1-DS}}
+\newif\ifrt@firsttok \rt@firsttoktrue
+\newif\ifrt@itsskipline \rt@itsskiplinefalse
+\def\rt@addtoRVV#1{%
+ \toks4={\useRV{#1}}\edef\rt@tmpRV{\the\toks0\the\toks4}%
+ \toks4={\useV{#1}}\edef\rt@tmpV{\the\toks2\the\toks4}%
+ \toks0=\expandafter{\rt@tmpRV}\toks2=\expandafter{\rt@tmpV}%
+}
+\def\rt@testifbgroup{\@ifnextchar\bgroup
+ {\let\rt@nultiargs=1\rt@gobbletonil}
+ {\let\rt@nultiargs=0\rt@gobbletonil}}
+\newcommand{\setRVVContent}[2]{\begingroup
+ \rt@firsttoktrue \rt@itsskiplinefalse
+ \rt@testifbgroup#2\@nil
+ \def\contName{#1}\toks0={}\toks2={}\toks4={}%
+ \if\rt@nultiargs1\def\rt@next{\setRVVContent@i#2;}\else
+ \def\rt@next{\setRVVContent@i{#2};}\fi\rt@next}
+\def\setRVVContent@i#1{\def\rt@argi{#1}%
+ \ifx\rt@argi\rt@SC
+ \rt@csarg\xdef{\contName-vcont}{\the\toks0}%
+ \rt@csarg\xdef{\contName-pcont}{\the\toks2}%
+ \let\rt@next\endgroup
+ \else
+ \expandafter\ifx\csname #1-ri\endcsname\relax
+ \PackageWarning{richtext}
+ {The name '#1' is not declared,\MessageBreak
+ will ignore it. Check the spelling}%
+ \def\rt@next{\setRVVContent@i}%
+ \else
+ \ifrt@firsttok\rt@firsttokfalse\else
+ \ifx\rt@argi\rt@skipline
+ \rt@itsskiplinetrue
+ \else
+ \ifrt@itsskipline
+ \rt@addtoRVV{br}\rt@itsskiplinefalse
+ \else
+ \rt@addtoRVV{par}%
+ \fi
+ \fi
+ \fi
+ \rt@addtoRVV{#1}%
+ \def\rt@next{\setRVVContent@i}%
+ \fi
+ \fi\rt@next
+}
+\def\useRVContent#1{\@nameuse{#1-vcont}}
+\def\useVContent#1{\@nameuse{#1-pcont}}
+\newenvironment{displayRtPara}[1]{%
+ \gdef\displayRtParaName{#1}\let\rtpdfSPDef\rt@sp@ce
+ \let\makePDFSp\makeTeXSp\let\rt@spc\rt@sp@ce
+ \def\rt@SC{;\allowbreak}\def\rt@CN{:\allowbreak}%
+}{%
+ \rt@csarg\xdef{displayRV\displayRtParaName}%
+ {\useRV{\displayRtParaName}}
+ \rt@csarg\xdef{displayV\displayRtParaName}%
+ {\useV{\displayRtParaName}}
+}
+\newenvironment{displayRtPara*}[1]{%
+ \gdef\displayRtParaName{#1}\let\rtpdfSPDef\rtpdfSPDefPrnt
+ \let\makePDFSp\makeTeXSpPrnt\let\rt@spc\rtpdfSPDefPrnt
+ \def\rt@SC{;\allowbreak}\def\rt@CN{:\allowbreak}%
+}{%
+ \rt@csarg\xdef{displayRV\displayRtParaName}%
+ {\useRV{\displayRtParaName}}
+ \rt@csarg\xdef{displayV\displayRtParaName}%
+ {\useV{\displayRtParaName}}
+}
+\def\displayRV#1{\csname displayRV#1\endcsname}
+\def\displayV#1{\csname displayV#1\endcsname}
+\endinput
+%%
+%% End of file `richtext.sty'.
diff --git a/tlpkg/texlive.tlpdb b/tlpkg/texlive.tlpdb
index af4dcb1c..10482952 100644
--- a/tlpkg/texlive.tlpdb
+++ b/tlpkg/texlive.tlpdb
@@ -7,7 +7,7 @@ depend container_split_src_files/1
depend frozen/0
depend minrelease/2016
depend release/2100-nonfree
-depend revision/280
+depend revision/282
name 00texlive.installation
category TLCore
@@ -5320,17 +5320,22 @@ catalogue-version 0.1
name richtext
category Package
-revision 44
+revision 282
shortdesc Create rich text strings
longdesc The richtext package is used to create rich text strings that
longdesc can, in turn, be inserted into the RV (and V) keys of text
longdesc field. Currently, only the eforms package supports the RV key.
-docfiles size=487
+docfiles size=737
texmf-dist/doc/latex/richtext/README.md details="Readme"
+ texmf-dist/doc/latex/richtext/examples/caption-image.tex
+ texmf-dist/doc/latex/richtext/examples/graphics/dpsweb.eps
+ texmf-dist/doc/latex/richtext/examples/graphics/dpsweb.pdf
+ texmf-dist/doc/latex/richtext/examples/richtext_tst.pdf
texmf-dist/doc/latex/richtext/examples/richtext_tst.tex
+ texmf-dist/doc/latex/richtext/richtext.pdf
texmf-dist/doc/latex/richtext/richtextman.pdf details="Package documentation"
-srcfiles size=23
- texmf-dist/source/latex/richtext/doc/richtextman.tex
+ texmf-dist/doc/latex/richtext/richtextman.tex
+srcfiles size=11
texmf-dist/source/latex/richtext/richtext.dtx
texmf-dist/source/latex/richtext/richtext.ins
runfiles size=4