diff options
Diffstat (limited to 'support/easylatex/psfrag')
-rw-r--r-- | support/easylatex/psfrag/00readme.txt | 82 | ||||
-rw-r--r-- | support/easylatex/psfrag/announce.txt | 63 | ||||
-rw-r--r-- | support/easylatex/psfrag/example.eps | 389 | ||||
-rw-r--r-- | support/easylatex/psfrag/pfgguide.ps | 3935 | ||||
-rw-r--r-- | support/easylatex/psfrag/pfgguide.tex | 695 | ||||
-rw-r--r-- | support/easylatex/psfrag/psfrag.dtx | 1102 | ||||
-rw-r--r-- | support/easylatex/psfrag/psfrag.ins | 25 | ||||
-rw-r--r-- | support/easylatex/psfrag/testfig.eps | 6 |
8 files changed, 6297 insertions, 0 deletions
diff --git a/support/easylatex/psfrag/00readme.txt b/support/easylatex/psfrag/00readme.txt new file mode 100644 index 0000000000..948a8c46fc --- /dev/null +++ b/support/easylatex/psfrag/00readme.txt @@ -0,0 +1,82 @@ +This is the 00readme.txt file to accompany PSfrag, a system for LaTeX to +integrate LaTeX equations with Encapsulated PostScript figures. + +These files compose the April 11, 1998 release of PSfrag 3.04. This is a +maintenance release, and fixes some bugs and shortcomings in version 3.03. If +you decide to install this release, you should not need to re-compile any of +your files, unless you happened to encounter one of the bugs in an earlier +version. + ++-------------------------------+ +|QUICK INSTALLATION INSTRUCTIONS| ++-------------------------------+ + +1. Run LaTeX on psfrag.ins, generating the package file psfrag.sty and + the PostScript header file psfrag.pro. +2. Place psfrag.sty anywhere in your TeX search path; for kpathsea-based + systems such as teTeX, this is determined by the TEXINPUTS variable. +3. Place psfrag.pro where your DVI-to-PostScript driver (e.g., dvips) + can find it. For kpathsea-based systems such as teTeX, this is + determined by the DVIPSHEADERS variable. For dvips in particular, + this includes the directory containing tex.pro and special.pro. + +More complete instructions are found in pfgguide.{tex,ps}. The files +example.eps and testfig.eps are needed to typeset the documentation, so +do not delete them if you want to re-generate pfgguide.ps. In fact, a +good test to see if your TeX/LaTeX/PSfrag installation is working +properly is to rename pfgguide.ps, generate a new pfgguide.ps from the +.tex file, and compare the two files. + ++------------------------------------+ +|IMPORTANT NOTES FOR PSFRAG 2.X USERS| ++------------------------------------+ + +Note that PSfrag 3.x is quite a bit different from previous versions. +The interface has been preserved, but the most notable difference is +the absence of the preprocessing script ps2frag. That's right: _you +will no longer need to run the ps2frag script_. This is a relief, of +course, to users who could never get Perl working on their OS. + +However, PLEASE HEED the following differences between PSfrag 2.x and +PSfrag 3.x! You will be soundly flogged with wet noodles if you ask +about these and you haven't read this warning or the ones in pfgguide: +1) PSfrag replacements no longer show up in their proper positions when + viewing the file with Xdvi. Instead, they show up in a vertical list + along the left side of the figure. So, you can check if they are + typeset properly in Xdvi, but you can't make sure they are properly + placed. To do that, you should use a PostScript previewer like + GhostView and GhostScript. This is an unforunate but necessary + consequence of the elimination of the preprocessing step. +2) If you use the \tex command, note that it has been _deprecated_. + Now, you have to explicitly turn it on, either for the entire + LaTeX document or for each file individually. pfgguide.{tex,ps} + describe how to do this in detail. The reasons for this once + again turn to the elimination of the preprocessing step. +I think that the elimination of the ps2frag script far outweighs +either of these two (possible) disadvantages. + ++---------------+ +| RELEASE NOTES | ++---------------+ + +This is a bug-fix release, which fixes the following bugs encountered +in PSfrag 3.03: + +1. Attempting to use EPS figures as PSfrag replacements would cause + an infinite loop. This should work properly now. +2. Since the last release, the DVI-to-PS driver DVIPSone changed in + a way that made PSfrag replacements appear upside down. +3. Small improvements to the psfrag.pro file have been made, which + will hopefully allow you to make EPS files out of PSfrag-ged + figures. I can't make any guarantees about this yet. +4. The manual has been improved slightly; the known issues for + XFig and Seminar are now discussed. In addition, a more complete + discussion about ``valid'' tags is included. + +Bug reports and suggestions should go to psfrag@rascals.stanford.edu, +the PSfrag maintainer's email-list. However, before submitting a bug +report, please make sure that it is not already covered in the "Known +issues" section of pfgguide.tex! + +Michael C. Grant + diff --git a/support/easylatex/psfrag/announce.txt b/support/easylatex/psfrag/announce.txt new file mode 100644 index 0000000000..6263b05fc1 --- /dev/null +++ b/support/easylatex/psfrag/announce.txt @@ -0,0 +1,63 @@ +A brand-spankin' new version of PSfrag, version 3.04, for LaTeX2e can be +found at CTAN sites in the directory + +macros/latex/contrib/supported/psfrag. + +PSfrag 3.04 fixes some bugs discovered in PSfrag 3.03. + +What is PSfrag? +--------------- + +Many drawing and graphing packages produce output in the Encapsulated +PostScript (EPS) format, but few can easily produce the equations and +other scientific text of which LaTeX is capable. On the other hand, many +LaTeX-based drawing packages are not as expressive or easy-to-use as the +many advanced drawing packages that produce EPS output. + +PSfrag provides the best of both worlds by allowing the user to +precisely overlay Encapsulated PostScript (EPS) files with arbitrary +LaTeX constructions. In order to accomplish this, the user places a +simple text ``tag'' in the graphics file, as a ``position marker'' of +sorts. Then, using simple LaTeX commands, the user instructs PSfrag to +remove that tag from the figure, and replace it with a properly sized, +aligned, and rotated LaTeX equation. + +The full documentation for PSfrag found in the release contains examples +and usage instructions. + +To use PSfrag... +---------------- + +...you will need: + +* LaTeX2e and the "graphics" package. (You can use the old epsf.sty + macros with PSfrag, but you still need the graphics package.) Please + make sure to get the newest versions of these packages from CTAN + before submitting bug reports. + +* If you plan to use PSfrag with the Seminar package, make sure you + get the 10/97 release of this package. + +* Any DVI-to-PostScript program that is well-supported by the "graphics" + package. This author uses Tom Rokicki's "dvips"; I recommend it. + PSfrag has also been verified for DVIPSone from Y&Y (using Level 2 + PostScript printers). + +Bugs? What Bugs? +---------------- + +PSfrag 3.04 is bug-free. Of course, we're kidding. That's what we said +about PSfrag 3.0, in fact, and look where it got us. + +If you have problems, bug reports, or improvement suggestions, please +send them to the PSfrag maintainer's mailing list, + +psfrag@rascals.stanford.edu + +Please supply an example .tex file and .eps figure to demonstrate the +behavior you wish to have corrected or improved. + +This is a majordomo mailing list; feel free to join if you would like to +actively participate in PSfrag development. + +Thanks for using PSfrag! diff --git a/support/easylatex/psfrag/example.eps b/support/easylatex/psfrag/example.eps new file mode 100644 index 0000000000..4074a32b45 --- /dev/null +++ b/support/easylatex/psfrag/example.eps @@ -0,0 +1,389 @@ +%!PS-Adobe-2.0 EPSF-1.2 +%%Creator: MATLAB, The Mathworks, Inc. +%%Title: example.eps +%%CreationDate: 11/05/96 21:16:44 +%%DocumentNeededFonts: Helvetica +%%DocumentProcessColors: Cyan Magenta Yellow Black +%%Pages: 1 +%%BoundingBox: 97 197 502 604 +%%EndComments + +%%BeginProlog + +% MathWorks dictionary +/MathWorks 150 dict begin + +% definition operators +/bdef {bind def} bind def +/ldef {load def} bind def +/xdef {exch def} bdef +/xstore {exch store} bdef + +% operator abbreviations +/c /clip ldef +/cc /concat ldef +/cp /closepath ldef +/gr /grestore ldef +/gs /gsave ldef +/mt /moveto ldef +/np /newpath ldef +/cm /currentmatrix ldef +/sm /setmatrix ldef +/rc {rectclip} bdef +/rf {rectfill} bdef +/rm /rmoveto ldef +/rl /rlineto ldef +/s /show ldef +/sc {setcmykcolor} bdef +/sr /setrgbcolor ldef +/w /setlinewidth ldef +/j /setlinejoin ldef +/cap /setlinecap ldef + +% page state control +/pgsv () def +/bpage {/pgsv save def} bdef +/epage {pgsv restore} bdef +/bplot /gsave ldef +/eplot {stroke grestore} bdef + +% orientation switch +/portraitMode 0 def +/landscapeMode 1 def + +% coordinate system mappings +/dpi2point 0 def + +% font control +/FontSize 0 def +/FMS { + /FontSize xstore %save size off stack + findfont + [FontSize 0 0 FontSize neg 0 0] + makefont + setfont + }bdef + +/reencode { +exch dup where +{pop load} {pop StandardEncoding} ifelse +exch +dup 3 1 roll +findfont dup length dict begin + { 1 index /FID ne {def}{pop pop} ifelse } forall + /Encoding exch def + currentdict +end +definefont pop +} bdef + +/isroman { +findfont /CharStrings get +/Agrave known +} bdef + +/FMSR { +3 1 roll 1 index +dup isroman +{reencode} {pop pop} ifelse +exch FMS +} bdef + +/csm { + 1 dpi2point div -1 dpi2point div scale + neg translate + landscapeMode eq {90 rotate} if + } bdef + +% line types: solid, dotted, dashed, dotdash +/SO { [] 0 setdash } bdef +/DO { [.5 dpi2point mul 4 dpi2point mul] 0 setdash } bdef +/DA { [6 dpi2point mul] 0 setdash } bdef +/DD { [.5 dpi2point mul 4 dpi2point mul 6 dpi2point mul 4 dpi2point mul] 0 setdash } bdef + +% macros for lines and objects +/L { + lineto + stroke + } bdef +/MP { + 3 1 roll moveto + 1 sub {rlineto} repeat + } bdef +/AP { + {rlineto} repeat + } bdef +/PP { + closepath fill + } bdef +/DP { + closepath stroke + } bdef +/MR { + 4 -2 roll moveto + dup 0 exch rlineto + exch 0 rlineto + neg 0 exch rlineto + closepath + } bdef +/FR { + MR stroke + } bdef +/PR { + MR fill + } bdef +/L1i { + { currentfile picstr readhexstring pop } image + } bdef + +/tMatrix matrix def +/MakeOval { + newpath + tMatrix currentmatrix pop + translate scale + 0 0 1 0 360 arc + tMatrix setmatrix + } bdef +/FO { + MakeOval + stroke + } bdef +/PO { + MakeOval + fill + } bdef + +/PD { + 2 copy moveto lineto stroke + } bdef + + +currentdict end def +%%EndProlog + +%%BeginSetup +MathWorks begin + +0 cap + +end +%%EndSetup + +%%Page: 1 1 +%%BeginPageSetup +%%PageBoundingBox: 97 197 502 604 +MathWorks begin +bpage +%%EndPageSetup + +%%BeginObject: graph1 1 +bplot + +/dpi2point 12 def +portraitMode 0216 7344 csm + + 956 91 4862 4883 MR c np +76 dict begin %Colortable dictionary +/c0 { 0 0 0 sr} bdef +/c1 { 1 1 1 sr} bdef +/c2 { 1 0 0 sr} bdef +/c3 { 0 1 0 sr} bdef +/c4 { 0 0 1 sr} bdef +/c5 { 1 1 0 sr} bdef +/c6 { 1 0 1 sr} bdef +/c7 { 0 1 1 sr} bdef +%%IncludeResource: font Helvetica +/Helvetica /ISOLatin1Encoding 144 FMSR + +1 j +c1 + 0 0 6912 5185 PR +6 w +DO +4 w +c0 +1463 4613 mt 1463 388 L +1463 388 mt 1463 388 L +2308 4613 mt 2308 388 L +2308 388 mt 2308 388 L +3153 4613 mt 3153 388 L +3153 388 mt 3153 388 L +3999 4613 mt 3999 388 L +3999 388 mt 3999 388 L +4844 4613 mt 4844 388 L +4844 388 mt 4844 388 L +5689 4613 mt 5689 388 L +5689 388 mt 5689 388 L +1463 4613 mt 5689 4613 L +5689 4613 mt 5689 4613 L +1463 4191 mt 5689 4191 L +5689 4191 mt 5689 4191 L +1463 3768 mt 5689 3768 L +5689 3768 mt 5689 3768 L +1463 3346 mt 5689 3346 L +5689 3346 mt 5689 3346 L +1463 2923 mt 5689 2923 L +5689 2923 mt 5689 2923 L +1463 2501 mt 5689 2501 L +5689 2501 mt 5689 2501 L +1463 2078 mt 5689 2078 L +5689 2078 mt 5689 2078 L +1463 1655 mt 5689 1655 L +5689 1655 mt 5689 1655 L +1463 1233 mt 5689 1233 L +5689 1233 mt 5689 1233 L +1463 811 mt 5689 811 L +5689 811 mt 5689 811 L +1463 388 mt 5689 388 L +5689 388 mt 5689 388 L +1463 4613 mt 1463 388 L +1463 388 mt 5689 388 L +1463 4613 mt 1463 388 L +1463 388 mt 5689 388 L +1463 4613 mt 1463 388 L +1463 388 mt 5689 388 L +SO +6 w +1463 4613 mt 5689 4613 L +1463 388 mt 5689 388 L +5689 4613 mt 5689 388 L +1463 4613 mt 1463 388 L +5689 4613 mt 5689 4613 L +1463 4613 mt 1463 4613 L +1463 4613 mt 5689 4613 L +1463 4613 mt 1463 388 L +1463 4613 mt 1463 4613 L +1463 4613 mt 1463 4571 L +1463 388 mt 1463 430 L +1423 4782 mt +(0) s +2308 4613 mt 2308 4571 L +2308 388 mt 2308 430 L +2268 4782 mt +(2) s +3153 4613 mt 3153 4571 L +3153 388 mt 3153 430 L +3113 4782 mt +(4) s +3999 4613 mt 3999 4571 L +3999 388 mt 3999 430 L +3959 4782 mt +(6) s +4844 4613 mt 4844 4571 L +4844 388 mt 4844 430 L +4804 4782 mt +(8) s +5689 4613 mt 5689 4571 L +5689 388 mt 5689 430 L +5609 4782 mt +(10) s +1463 4613 mt 1505 4613 L +5689 4613 mt 5647 4613 L +1264 4666 mt +(-1) s +1463 4191 mt 1505 4191 L +5689 4191 mt 5647 4191 L +1144 4244 mt +(-0.8) s +1463 3768 mt 1505 3768 L +5689 3768 mt 5647 3768 L +1144 3821 mt +(-0.6) s +1463 3346 mt 1505 3346 L +5689 3346 mt 5647 3346 L +1144 3399 mt +(-0.4) s +1463 2923 mt 1505 2923 L +5689 2923 mt 5647 2923 L +1144 2976 mt +(-0.2) s +1463 2501 mt 1505 2501 L +5689 2501 mt 5647 2501 L +1348 2554 mt +(0) s +1463 2078 mt 1505 2078 L +5689 2078 mt 5647 2078 L +1228 2131 mt +(0.2) s +1463 1655 mt 1505 1655 L +5689 1655 mt 5647 1655 L +1228 1708 mt +(0.4) s +1463 1233 mt 1505 1233 L +5689 1233 mt 5647 1233 L +1228 1286 mt +(0.6) s +1463 811 mt 1505 811 L +5689 811 mt 5647 811 L +1228 864 mt +(0.8) s +1463 388 mt 1505 388 L +5689 388 mt 5647 388 L +1348 441 mt +(1) s +1463 388 mt 5689 388 L +1463 4613 mt 5689 4613 L +1463 4613 mt 1463 388 L +5689 4613 mt 5689 388 L +1463 388 mt 1463 388 L +5689 388 mt 5689 388 L +gs 1463 388 4227 4226 MR c np +42 183 43 192 42 200 42 206 42 210 43 211 42 210 42 208 +42 204 43 196 42 188 42 177 42 165 43 151 42 135 42 119 +42 100 43 82 42 61 42 42 42 20 43 -1 42 -22 42 -43 +42 -63 43 -83 42 -102 42 -120 43 -137 42 -152 42 -166 42 -178 +43 -188 42 -197 42 -204 42 -208 43 -211 42 -211 42 -209 42 -206 +43 -199 42 -192 42 -182 42 -170 43 -157 42 -142 42 -126 42 -108 +43 -89 42 -70 42 -50 43 -29 42 -8 42 13 42 34 43 55 +42 75 42 94 42 113 43 130 42 146 42 160 42 173 43 185 +42 193 42 202 42 206 43 210 42 211 42 211 42 207 43 202 +42 195 42 186 42 176 43 162 42 149 42 132 43 116 42 97 +42 79 42 58 43 37 42 17 42 -4 42 -26 43 -46 42 -67 +42 -86 42 -105 43 -123 42 -139 42 -155 42 -168 43 -180 42 -190 +42 -198 42 -205 43 -209 1505 2290 100 MP stroke +42 -211 1463 2501 2 MP stroke +42 -106 43 -87 42 -67 42 -48 42 -26 43 -5 42 15 42 37 +42 57 43 78 42 96 42 115 42 132 43 148 42 162 42 175 +42 185 43 195 42 202 42 207 42 210 43 211 42 211 42 206 +42 202 43 194 42 185 42 174 43 161 42 146 42 131 42 113 +43 95 42 76 42 56 42 35 43 14 42 -7 42 -28 42 -49 +43 -69 42 -89 42 -107 42 -125 43 -141 42 -157 42 -169 42 -182 +43 -191 42 -199 42 -205 43 -210 42 -211 42 -210 42 -209 43 -204 +42 -197 42 -189 42 -179 43 -166 42 -153 42 -137 42 -121 43 -103 +42 -84 42 -64 42 -44 43 -22 42 -2 42 19 42 40 43 61 +42 81 42 99 42 118 43 135 42 150 42 164 43 177 42 187 +42 197 42 203 43 207 42 211 42 211 42 210 43 206 42 200 +42 193 42 183 43 172 42 158 42 144 42 128 43 110 42 92 +42 73 42 52 43 31 1505 399 100 MP stroke +42 11 1463 388 2 MP stroke + +gr +3194 4942 mt +(\\tex[t][t]{$t$}) s +1090 3419 mt -90 rotate +(\\tex[B][B]{$\\sin\(t\)$, $\\cos\(t\)$}) s +90 rotate +2314 273 mt +(\\tex[B][B]{Plot of $\\sin\(t\)$ and $\\cos\(t\)$}) s +2689 2048 mt +(p1) s +3956 3343 mt +(p2) s +5224 1495 mt +(p2) s +3486 2178 mt -78 rotate +(p3) s +78 rotate + +end + +eplot +%%EndObject graph 1 + +epage +end + +showpage + +%%Trailer +%%EOF diff --git a/support/easylatex/psfrag/pfgguide.ps b/support/easylatex/psfrag/pfgguide.ps new file mode 100644 index 0000000000..f24202202b --- /dev/null +++ b/support/easylatex/psfrag/pfgguide.ps @@ -0,0 +1,3935 @@ +%!PS-Adobe-2.0 +%%Creator: dvips(k) 5.78 Copyright 1998 Radical Eye Software (www.radicaleye.com) +%%Title: pfgguide.dvi +%%Pages: 11 +%%PageOrder: Ascend +%%BoundingBox: 0 0 612 792 +%%DocumentFonts: Helvetica +%%EndComments +%DVIPSCommandLine: C:\TEX\BIN\WIN32\DVIPS.EXE pfgguide -o +%DVIPSParameters: dpi=600, compressed +%DVIPSSource: TeX output 1998.05.04:0923 +%%BeginProcSet: texc.pro +%! +/TeXDict 300 dict def TeXDict begin /N{def}def /B{bind def}N /S{exch}N +/X{S N}B /TR{translate}N /isls false N /vsize 11 72 mul N /hsize 8.5 72 +mul N /landplus90{false}def /@rigin{isls{[0 landplus90{1 -1}{-1 1} +ifelse 0 0 0]concat}if 72 Resolution div 72 VResolution div neg scale +isls{landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div +hsize mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul +TR[matrix currentmatrix{dup dup round sub abs 0.00001 lt{round}if} +forall round exch round exch]setmatrix}N /@landscape{/isls true N}B +/@manualfeed{statusdict /manualfeed true put}B /@copies{/#copies X}B +/FMat[1 0 0 -1 0 0]N /FBB[0 0 0 0]N /nn 0 N /IE 0 N /ctr 0 N /df-tail{ +/nn 8 dict N nn begin /FontType 3 N /FontMatrix fntrx N /FontBBox FBB N +string /base X array /BitMaps X /BuildChar{CharBuilder}N /Encoding IE N +end dup{/foo setfont}2 array copy cvx N load 0 nn put /ctr 0 N[}B /df{ +/sf 1 N /fntrx FMat N df-tail}B /dfs{div /sf X /fntrx[sf 0 0 sf neg 0 0] +N df-tail}B /E{pop nn dup definefont setfont}B /ch-width{ch-data dup +length 5 sub get}B /ch-height{ch-data dup length 4 sub get}B /ch-xoff{ +128 ch-data dup length 3 sub get sub}B /ch-yoff{ch-data dup length 2 sub +get 127 sub}B /ch-dx{ch-data dup length 1 sub get}B /ch-image{ch-data +dup type /stringtype ne{ctr get /ctr ctr 1 add N}if}B /id 0 N /rw 0 N +/rc 0 N /gp 0 N /cp 0 N /G 0 N /sf 0 N /CharBuilder{save 3 1 roll S dup +/base get 2 index get S /BitMaps get S get /ch-data X pop /ctr 0 N ch-dx +0 ch-xoff ch-yoff ch-height sub ch-xoff ch-width add ch-yoff +setcachedevice ch-width ch-height true[1 0 0 -1 -.1 ch-xoff sub ch-yoff +.1 sub]/id ch-image N /rw ch-width 7 add 8 idiv string N /rc 0 N /gp 0 N +/cp 0 N{rc 0 ne{rc 1 sub /rc X rw}{G}ifelse}imagemask restore}B /G{{id +gp get /gp gp 1 add N dup 18 mod S 18 idiv pl S get exec}loop}B /adv{cp +add /cp X}B /chg{rw cp id gp 4 index getinterval putinterval dup gp add +/gp X adv}B /nd{/cp 0 N rw exit}B /lsh{rw cp 2 copy get dup 0 eq{pop 1}{ +dup 255 eq{pop 254}{dup dup add 255 and S 1 and or}ifelse}ifelse put 1 +adv}B /rsh{rw cp 2 copy get dup 0 eq{pop 128}{dup 255 eq{pop 127}{dup 2 +idiv S 128 and or}ifelse}ifelse put 1 adv}B /clr{rw cp 2 index string +putinterval adv}B /set{rw cp fillstr 0 4 index getinterval putinterval +adv}B /fillstr 18 string 0 1 17{2 copy 255 put pop}for N /pl[{adv 1 chg} +{adv 1 chg nd}{1 add chg}{1 add chg nd}{adv lsh}{adv lsh nd}{adv rsh}{ +adv rsh nd}{1 add adv}{/rc X nd}{1 add set}{1 add clr}{adv 2 chg}{adv 2 +chg nd}{pop nd}]dup{bind pop}forall N /D{/cc X dup type /stringtype ne{] +}if nn /base get cc ctr put nn /BitMaps get S ctr S sf 1 ne{dup dup +length 1 sub dup 2 index S get sf div put}if put /ctr ctr 1 add N}B /I{ +cc 1 add D}B /bop{userdict /bop-hook known{bop-hook}if /SI save N @rigin +0 0 moveto /V matrix currentmatrix dup 1 get dup mul exch 0 get dup mul +add .99 lt{/QV}{/RV}ifelse load def pop pop}N /eop{SI restore userdict +/eop-hook known{eop-hook}if showpage}N /@start{userdict /start-hook +known{start-hook}if pop /VResolution X /Resolution X 1000 div /DVImag X +/IE 256 array N 2 string 0 1 255{IE S dup 360 add 36 4 index cvrs cvn +put}for pop 65781.76 div /vsize X 65781.76 div /hsize X}N /p{show}N +/RMat[1 0 0 -1 0 0]N /BDot 260 string N /rulex 0 N /ruley 0 N /v{/ruley +X /rulex X V}B /V{}B /RV statusdict begin /product where{pop false[ +(Display)(NeXT)(LaserWriter 16/600)]{dup length product length le{dup +length product exch 0 exch getinterval eq{pop true exit}if}{pop}ifelse} +forall}{false}ifelse end{{gsave TR -.1 .1 TR 1 1 scale rulex ruley false +RMat{BDot}imagemask grestore}}{{gsave TR -.1 .1 TR rulex ruley scale 1 1 +false RMat{BDot}imagemask grestore}}ifelse B /QV{gsave newpath transform +round exch round exch itransform moveto rulex 0 rlineto 0 ruley neg +rlineto rulex neg 0 rlineto fill grestore}B /a{moveto}B /delta 0 N /tail +{dup /delta X 0 rmoveto}B /M{S p delta add tail}B /b{S p tail}B /c{-4 M} +B /d{-3 M}B /e{-2 M}B /f{-1 M}B /g{0 M}B /h{1 M}B /i{2 M}B /j{3 M}B /k{ +4 M}B /w{0 rmoveto}B /l{p -4 w}B /m{p -3 w}B /n{p -2 w}B /o{p -1 w}B /q{ +p 1 w}B /r{p 2 w}B /s{p 3 w}B /t{p 4 w}B /x{0 S rmoveto}B /y{3 2 roll p +a}B /bos{/SS save N}B /eos{SS restore}B end + +%%EndProcSet +%%BeginProcSet: psfrag.pro +%% +%% This is file `psfrag.pro', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% psfrag.dtx (with options: `filepro') +%% +%% Copyright (c) 1996 Craig Barratt, Michael C. Grant, and David Carlisle. +%% All rights reserved. +%% +%% This file is part of the PSfrag package. +%% +userdict begin +/PSfragLib 90 dict def +/PSfragDict 6 dict def +/PSfrag { PSfragLib begin load exec end } bind def +end +PSfragLib begin +/RO /readonly load def +/CP /currentpoint load def +/CM /currentmatrix load def +/B { bind RO def } bind def +/X { exch def } B +/MD { { X } forall } B +/OE { end exec PSfragLib begin } B +/S false def +/tstr 8 string def +/islev2 { languagelevel } stopped { false } { 2 ge } ifelse def +[ /sM /tM /srcM /dstM /dM /idM /srcFM /dstFM ] { matrix def } forall +sM currentmatrix RO pop +dM defaultmatrix RO idM invertmatrix RO pop +srcFM identmatrix pop +/Hide { gsave { CP } stopped not newpath clip { moveto } if } B +/Unhide { { CP } stopped not grestore { moveto } if } B +/setrepl islev2 {{ /glob currentglobal def true setglobal array astore + globaldict exch /PSfrags exch put glob setglobal }} + {{ array astore /PSfrags X }} ifelse B +/getrepl islev2 {{ globaldict /PSfrags get aload length }} + {{ PSfrags aload length }} ifelse B +/convert { + /src X src length string + /c 0 def src length { + dup c src c get dup 32 lt { pop 32 } if put /c c 1 add def + } repeat +} B +/Begin { + /saver save def + srcFM exch 3 exch put + 0 ne /debugMode X 0 setrepl + dup /S exch dict def { S 3 1 roll exch convert exch put } repeat + srcM CM dup invertmatrix pop + mark { currentdict { end } stopped { pop exit } if } loop + PSfragDict counttomark { begin } repeat pop +} B +/End { + mark { currentdict end dup PSfragDict eq { pop exit } if } loop + counttomark { begin } repeat pop + getrepl saver restore + 7 idiv dup /S exch dict def { + 6 array astore /mtrx X tstr cvs /K X + S K [ S K known { S K get aload pop } if mtrx ] put + } repeat +} B +/Place { + tstr cvs /K X + S K known { + bind /proc X tM CM pop + CP /cY X /cX X + 0 0 transform idtransform neg /aY X neg /aX X + S K get dup length /maxiter X + /iter 1 def { + iter maxiter ne { /saver save def } if + tM setmatrix aX aY translate + [ exch aload pop idtransform ] concat + cX neg cY neg translate cX cY moveto + /proc load OE + iter maxiter ne { saver restore /iter iter 1 add def } if + } forall + /noXY { CP /cY X /cX X } stopped def + tM setmatrix noXY { newpath } { cX cY moveto } ifelse + } { + Hide OE Unhide + } ifelse +} B +/normalize { + 2 index dup mul 2 index dup mul add sqrt div + dup 4 -1 roll exch mul 3 1 roll mul +} B +/replace { + aload pop MD + CP /bY X /lX X gsave sM setmatrix + str stringwidth abs exch abs add dup 0 eq + { pop } { 360 exch div dup scale } ifelse + lX neg bY neg translate newpath lX bY moveto + str { /ch X ( ) dup 0 ch put false charpath ch Kproc } forall + flattenpath pathbbox [ /uY /uX /lY /lX ] MD + CP grestore moveto + currentfont /FontMatrix get dstFM copy dup + 0 get 0 lt { uX lX /uX X /lX X } if + 3 get 0 lt { uY lY /uY X /lY X } if + /cX uX lX add 0.5 mul def + /cY uY lY add 0.5 mul def + debugMode { gsave 0 setgray 1 setlinewidth + lX lY moveto lX uY lineto uX uY lineto uX lY lineto closepath + lX bY moveto uX bY lineto lX cY moveto uX cY lineto + cX lY moveto cX uY lineto stroke + grestore } if + dstFM dup invertmatrix dstM CM srcM + 2 { dstM concatmatrix } repeat pop + getrepl /temp X + S str convert get { + aload pop [ /rot /scl /loc /K ] MD + /aX cX def /aY cY def + loc { + dup 66 eq { /aY bY def } { % B + dup 98 eq { /aY lY def } { % b + dup 108 eq { /aX lX def } { % l + dup 114 eq { /aX uX def } { % r + dup 116 eq { /aY uY def } % t + if } ifelse } ifelse } ifelse } ifelse pop + } forall + K srcFM rot tM rotate dstM + 2 { tM concatmatrix } repeat aload pop pop pop + 2 { scl normalize 4 2 roll } repeat + aX aY transform + /temp temp 7 add def + } forall + temp setrepl +} B +/Rif { + S 3 index convert known { pop replace } { exch pop OE } ifelse +} B +/XA { bind [ /Kproc /str } B /XC { ] 2 array astore def } B +/xs { pop } XA XC +/xks { /kern load OE } XA /kern XC +/xas { pop ax ay rmoveto } XA /ay /ax XC +/xws { c eq { cx cy rmoveto } if } XA /c /cy /cx XC +/xaws { ax ay rmoveto c eq { cx cy rmoveto } if } + XA /ay /ax /c /cy /cx XC +/raws { xaws { awidthshow } Rif } B +/rws { xws { widthshow } Rif } B +/rks { xks { kshow } Rif } B +/ras { xas { ashow } Rif } B +/rs { xs { show } Rif } B +/rrs { getrepl dup 2 add -1 roll //restore exec setrepl } B +PSfragDict begin +islev2 not { /restore { /rrs PSfrag } B } if +/show { /rs PSfrag } B +/kshow { /rks PSfrag } B +/ashow { /ras PSfrag } B +/widthshow { /rws PSfrag } B +/awidthshow { /raws PSfrag } B +end PSfragDict RO pop +end + + +%%EndProcSet +%%BeginProcSet: 8r.enc +% @@psencodingfile@{ +% author = "S. Rahtz, P. MacKay, Alan Jeffrey, B. Horn, K. Berry", +% version = "0.6", +% date = "22 June 1996", +% filename = "8r.enc", +% email = "kb@@mail.tug.org", +% address = "135 Center Hill Rd. // Plymouth, MA 02360", +% codetable = "ISO/ASCII", +% checksum = "119 662 4424", +% docstring = "Encoding for TrueType or Type 1 fonts to be used with TeX." +% @} +% +% Idea is to have all the characters normally included in Type 1 fonts +% available for typesetting. This is effectively the characters in Adobe +% Standard Encoding + ISO Latin 1 + extra characters from Lucida. +% +% Character code assignments were made as follows: +% +% (1) the Windows ANSI characters are almost all in their Windows ANSI +% positions, because some Windows users cannot easily reencode the +% fonts, and it makes no difference on other systems. The only Windows +% ANSI characters not available are those that make no sense for +% typesetting -- rubout (127 decimal), nobreakspace (160), softhyphen +% (173). quotesingle and grave are moved just because it's such an +% irritation not having them in TeX positions. +% +% (2) Remaining characters are assigned arbitrarily to the lower part +% of the range, avoiding 0, 10 and 13 in case we meet dumb software. +% +% (3) Y&Y Lucida Bright includes some extra text characters; in the +% hopes that other PostScript fonts, perhaps created for public +% consumption, will include them, they are included starting at 0x12. +% +% (4) Remaining positions left undefined are for use in (hopefully) +% upward-compatible revisions, if someday more characters are generally +% available. +% +% (5) hyphen appears twice for compatibility with both ASCII and Windows. +% +/TeXBase1Encoding [ +% 0x00 (encoded characters from Adobe Standard not in Windows 3.1) + /.notdef /dotaccent /fi /fl + /fraction /hungarumlaut /Lslash /lslash + /ogonek /ring /.notdef + /breve /minus /.notdef +% These are the only two remaining unencoded characters, so may as +% well include them. + /Zcaron /zcaron +% 0x10 + /caron /dotlessi +% (unusual TeX characters available in, e.g., Lucida Bright) + /dotlessj /ff /ffi /ffl + /.notdef /.notdef /.notdef /.notdef + /.notdef /.notdef /.notdef /.notdef + % very contentious; it's so painful not having quoteleft and quoteright + % at 96 and 145 that we move the things normally found there down to here. + /grave /quotesingle +% 0x20 (ASCII begins) + /space /exclam /quotedbl /numbersign + /dollar /percent /ampersand /quoteright + /parenleft /parenright /asterisk /plus /comma /hyphen /period /slash +% 0x30 + /zero /one /two /three /four /five /six /seven + /eight /nine /colon /semicolon /less /equal /greater /question +% 0x40 + /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O +% 0x50 + /P /Q /R /S /T /U /V /W + /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore +% 0x60 + /quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o +% 0x70 + /p /q /r /s /t /u /v /w + /x /y /z /braceleft /bar /braceright /asciitilde + /.notdef % rubout; ASCII ends +% 0x80 + /.notdef /.notdef /quotesinglbase /florin + /quotedblbase /ellipsis /dagger /daggerdbl + /circumflex /perthousand /Scaron /guilsinglleft + /OE /.notdef /.notdef /.notdef +% 0x90 + /.notdef /.notdef /.notdef /quotedblleft + /quotedblright /bullet /endash /emdash + /tilde /trademark /scaron /guilsinglright + /oe /.notdef /.notdef /Ydieresis +% 0xA0 + /.notdef % nobreakspace + /exclamdown /cent /sterling + /currency /yen /brokenbar /section + /dieresis /copyright /ordfeminine /guillemotleft + /logicalnot + /hyphen % Y&Y (also at 45); Windows' softhyphen + /registered + /macron +% 0xD0 + /degree /plusminus /twosuperior /threesuperior + /acute /mu /paragraph /periodcentered + /cedilla /onesuperior /ordmasculine /guillemotright + /onequarter /onehalf /threequarters /questiondown +% 0xC0 + /Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla + /Egrave /Eacute /Ecircumflex /Edieresis + /Igrave /Iacute /Icircumflex /Idieresis +% 0xD0 + /Eth /Ntilde /Ograve /Oacute + /Ocircumflex /Otilde /Odieresis /multiply + /Oslash /Ugrave /Uacute /Ucircumflex + /Udieresis /Yacute /Thorn /germandbls +% 0xE0 + /agrave /aacute /acircumflex /atilde + /adieresis /aring /ae /ccedilla + /egrave /eacute /ecircumflex /edieresis + /igrave /iacute /icircumflex /idieresis +% 0xF0 + /eth /ntilde /ograve /oacute + /ocircumflex /otilde /odieresis /divide + /oslash /ugrave /uacute /ucircumflex + /udieresis /yacute /thorn /ydieresis +] def + +%%EndProcSet +%%BeginProcSet: special.pro +%! +TeXDict begin /SDict 200 dict N SDict begin /@SpecialDefaults{/hs 612 N +/vs 792 N /ho 0 N /vo 0 N /hsc 1 N /vsc 1 N /ang 0 N /CLIP 0 N /rwiSeen +false N /rhiSeen false N /letter{}N /note{}N /a4{}N /legal{}N}B +/@scaleunit 100 N /@hscale{@scaleunit div /hsc X}B /@vscale{@scaleunit +div /vsc X}B /@hsize{/hs X /CLIP 1 N}B /@vsize{/vs X /CLIP 1 N}B /@clip{ +/CLIP 2 N}B /@hoffset{/ho X}B /@voffset{/vo X}B /@angle{/ang X}B /@rwi{ +10 div /rwi X /rwiSeen true N}B /@rhi{10 div /rhi X /rhiSeen true N}B +/@llx{/llx X}B /@lly{/lly X}B /@urx{/urx X}B /@ury{/ury X}B /magscale +true def end /@MacSetUp{userdict /md known{userdict /md get type +/dicttype eq{userdict begin md length 10 add md maxlength ge{/md md dup +length 20 add dict copy def}if end md begin /letter{}N /note{}N /legal{} +N /od{txpose 1 0 mtx defaultmatrix dtransform S atan/pa X newpath +clippath mark{transform{itransform moveto}}{transform{itransform lineto} +}{6 -2 roll transform 6 -2 roll transform 6 -2 roll transform{ +itransform 6 2 roll itransform 6 2 roll itransform 6 2 roll curveto}}{{ +closepath}}pathforall newpath counttomark array astore /gc xdf pop ct 39 +0 put 10 fz 0 fs 2 F/|______Courier fnt invertflag{PaintBlack}if}N +/txpose{pxs pys scale ppr aload pop por{noflips{pop S neg S TR pop 1 -1 +scale}if xflip yflip and{pop S neg S TR 180 rotate 1 -1 scale ppr 3 get +ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg TR}if xflip yflip +not and{pop S neg S TR pop 180 rotate ppr 3 get ppr 1 get neg sub neg 0 +TR}if yflip xflip not and{ppr 1 get neg ppr 0 get neg TR}if}{noflips{TR +pop pop 270 rotate 1 -1 scale}if xflip yflip and{TR pop pop 90 rotate 1 +-1 scale ppr 3 get ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg +TR}if xflip yflip not and{TR pop pop 90 rotate ppr 3 get ppr 1 get neg +sub neg 0 TR}if yflip xflip not and{TR pop pop 270 rotate ppr 2 get ppr +0 get neg sub neg 0 S TR}if}ifelse scaleby96{ppr aload pop 4 -1 roll add +2 div 3 1 roll add 2 div 2 copy TR .96 dup scale neg S neg S TR}if}N /cp +{pop pop showpage pm restore}N end}if}if}N /normalscale{Resolution 72 +div VResolution 72 div neg scale magscale{DVImag dup scale}if 0 setgray} +N /psfts{S 65781.76 div N}N /startTexFig{/psf$SavedState save N userdict +maxlength dict begin /magscale true def normalscale currentpoint TR +/psf$ury psfts /psf$urx psfts /psf$lly psfts /psf$llx psfts /psf$y psfts +/psf$x psfts currentpoint /psf$cy X /psf$cx X /psf$sx psf$x psf$urx +psf$llx sub div N /psf$sy psf$y psf$ury psf$lly sub div N psf$sx psf$sy +scale psf$cx psf$sx div psf$llx sub psf$cy psf$sy div psf$ury sub TR +/showpage{}N /erasepage{}N /copypage{}N /p 3 def @MacSetUp}N /doclip{ +psf$llx psf$lly psf$urx psf$ury currentpoint 6 2 roll newpath 4 copy 4 2 +roll moveto 6 -1 roll S lineto S lineto S lineto closepath clip newpath +moveto}N /endTexFig{end psf$SavedState restore}N /@beginspecial{SDict +begin /SpecialSave save N gsave normalscale currentpoint TR +@SpecialDefaults count /ocount X /dcount countdictstack N}N /@setspecial +{CLIP 1 eq{newpath 0 0 moveto hs 0 rlineto 0 vs rlineto hs neg 0 rlineto +closepath clip}if ho vo TR hsc vsc scale ang rotate rwiSeen{rwi urx llx +sub div rhiSeen{rhi ury lly sub div}{dup}ifelse scale llx neg lly neg TR +}{rhiSeen{rhi ury lly sub div dup scale llx neg lly neg TR}if}ifelse +CLIP 2 eq{newpath llx lly moveto urx lly lineto urx ury lineto llx ury +lineto closepath clip}if /showpage{}N /erasepage{}N /copypage{}N newpath +}N /@endspecial{count ocount sub{pop}repeat countdictstack dcount sub{ +end}repeat grestore SpecialSave restore end}N /@defspecial{SDict begin} +N /@fedspecial{end}B /li{lineto}B /rl{rlineto}B /rc{rcurveto}B /np{ +/SaveX currentpoint /SaveY X N 1 setlinecap newpath}N /st{stroke SaveX +SaveY moveto}N /fil{fill SaveX SaveY moveto}N /ellipse{/endangle X +/startangle X /yrad X /xrad X /savematrix matrix currentmatrix N TR xrad +yrad scale 0 0 1 startangle endangle arc savematrix setmatrix}N end + +%%EndProcSet +TeXDict begin 40258431 52099146 1000 600 600 (pfgguide.dvi) +@start +%DVIPSBitmapFont: Fa cmssi10 10.95 6 +/Fa 6 115 df<0107B67E17F017FC17FF4916809126F0000313C09338007FE0EF1FF017 +0F4948EC07F8A2EF03FCA349481401A31703494815F8A3EF07F0A249C8EA0FE0171FEF3F +C0EF7F8017FF484802031300EE0FFEEE7FF890B75A4816C05F04FCC7FC16F001FCCAFC48 +5AA5485AA5485AA4485AA5485AA548CBFCA2363F78BE3A>80 D<ED07FF037F13F04AB512 +FC020714FF4A15C0023F158091387FF8039139FFC0007F4990C7EA1F00D903FC80494880 +4A1402494891C7FCA2495AA2495AA680A28080EB1FFCECFF806D13F86DEBFF806D14E06D +14F86D14FE6E7F020F801401DA001F7F03037FED007F163F707EA2160FA21607A44C5AA3 +5F161F121000384B5A003C4BC7FC003E5D007F4A5A01C0EB07FCD8FFF0EB1FF801FFEB7F +F06C90B55A001F15806C92C8FC000114FC6C6C13F0010390C9FC32437BC033>83 +D<EC1FF0903801FFFC010F13FF013F14804914C0A29138803FE09038FC001F01F0EB0FF0 +13C049130790C7FCA5ED0FE0A3EC0FFF49B5FC011F14C0137F48B6FC0007EBFC1F380FFE +00D81FF0EB3F80EA3F8048C7FC127E48EC7F00A25DA26C13036C495AEBC03F6CB5FCA214 +FE6CEBF9FC6C13C1D807FCC8FC242B7AA92C>97 D<ED7FC0913803FFF05C141F5C4A13E0 +ECFF80903901FC0020494813005C13075C130FA3495AA4495AA5007FB57EA5B6C7FCC648 +C8FCA3485AA5485AA5485AA5485AA4485AA5485AA548C9FCA2244078BF1C>102 +D<037FEB0FE0913903FFC0FF4A13F7021F90B5FC5C5C9126FF03FEC7FC903801FC004948 +137E4A137F49487FA2495AA34948137EA35EA26E485A010F13036E485A9138F81FE091B5 +5A495C4991C8FC5D90387C7FF8EC1FC001FCCAFCA47F90B512FEEDFFC016F016FC488100 +07815A391FF000074901007FD83F80147F127F90C8123FA200FE4BC7FCA26C5D4B5A6C6C +495A01E0EB1FF8D83FFCEBFFF06CB65A6C5D6C92C8FC000114FC6C6C13F0010F90C9FC33 +3D80A82D>I<017E133E9038FC01FC1407141F147F14FFD801F913809038FBFC00EBFFF0 +5C485B5C91C7FC5B5B12075B5BA3485AA5485AA4485AA548C8FCA512FEA21F2979A81F> +114 D E +%EndDVIPSBitmapFont +%DVIPSBitmapFont: Fb line10 10 2 +/Fb 2 12 df<1718173C177CA217F8A2EE01F0A2EE03E0A2EE07C0A2EE0F80A2EE1F00A2 +163EA25EA25EA24B5AA24B5AA24B5AA24B5AA24BC7FCA2153EA25DA25DA24A5AA24A5AA2 +4A5A140F5D4AC8FCA2143EA25CA25CA2495AA2495AA2495AA2495AA249C9FCA2133EA25B +A25BA2485AA2485AA2485AA2485AA248CAFCA2123EA25AA25AA25A12602E5782D42A>1 +D<1208120EEA0F8013E013F813FE6D7E14E014F814FEECFF80A24814005C14F85C5C5C5C +49C7FC5B5B485A5B5B5B90C8FC123E5A12781270126012405A192280A22A>11 +D E +%EndDVIPSBitmapFont +%DVIPSBitmapFont: Fc cmti7 7 1 +/Fc 1 66 df<ED0780150FA2151FA2153F157FA215EFEDE7C0EC01C714031587EC0707A2 +140E141E141C02387F1503147014F014E0EB01C0A2EB038049B5FC8290380E0001A25B5B +A25B13F05B12014848801207120FD8FFF890381FFF80A2292A7CA932>65 +D E +%EndDVIPSBitmapFont +%DVIPSBitmapFont: Fd cmssbx10 12 13 +/Fd 13 121 df<91397FC00FFE903A03FFF81FFF010F4A13805B5B5B90B5FCECF8784814 +3814F01518481400701300705A93C8FCAA003F9039FFF00FFF5AB66C481380A36C14F0A2 +0003EBF000B3B36C496D13007E31467EC53A>12 D<003FB612F04815FFB812E017F817FE +83188018C0A249C714E0041F13F0827013F88282A218FC82A95E18F8A25E4C13F05E4C13 +E093B5FC90B812C0188018005F17F817E0178004F0C7FC49CAFCB3A76C5A123F364577C4 +46>80 D<EC3FFF0103B512F0010F14FE013F6E7E90B712E04816F85A5A5A5F48EBF00391 +38C0003F4890C7120F1607491403007F6F5A491400176094C7FCA37FA27F80806C13F014 +FF15F06C14FF6C15E016F86C15FE6C816C16C06C826D817F010F81010381EB007F020780 +EC007F03077F15016F7E701380A282A282A312301238123C007F5D6D160001E05C01F85C +01FE91B5FC9026FFE0035BB8FC5FA25F003F5E6C5E00075EC693C7FC013F14FC010314F0 +D9003F90C8FC31497BC63D>83 D<903801FFF8011F13FF90B612E0000381000F15FC82A2 +49C66C7E01F86D1380D807E07F5B496D13C090C7FC1206C8FCA60207B5FC49B6FC131F13 +7F48B512EF0007EBF80F4813C0481380481300485A5B12FF5BA45D7F5D6C6C5B92B5FC38 +3FFF8391B6FC6C14EF6C14CF6C148F6CD9FE071380C613F8D93FC0C8FC2A317DAF34>97 +D<EC7FF80103B57E011F14E0017F8090B612FC48815A489038F03FFF48D9C00F1380EC80 +0348010014C048804915E0A248487FA217F012FFA25BA390B7FCA317E0A201F8C9FCA37F +127FA37F003F16C016016C6C14036E13076C6DEB1FE06E137F6C9038F803FF6C90B6FC7E +6C1680013FECFE00010F14F8010114E09026003FFEC7FC2C317DAF33>101 +D<EC1FFE49B512C01307131F5B5B90B6FCECFC0F48EBF8031501ECF000481500AD003FEB +FFE05AB67EA36C5CA2000301F0C7FCB3B36C5B7E22467EC521>I<DAFFF0EB0FC0010F01 +FF13FF013F14C390B8FC4817E05A48EDFE0F489039C03FFF004A6C140048496C7FA2497F +003F82A9001F5E6D5BA26C6D4890C7FC6E5A6C90B55A6C5D6C5D485D4815C0018F91C8FC +018013F0000F90CAFC7FA27F7F90B612E016FF17C06C16F017FC836C82A2000F1780123F +A2D87FF0C7003F13C049140348488082A46D5CA26C6C4A138001FC140F263FFFC090B512 +006C90B65A6C5E6C5E6C5EC66C1580011F4AC7FC010014C033447EAE37>I<EA3FFC127F +EAFFFEAAEA7FFCA2C7FCAAEA1FFC123FEA7FFEB3B3A6EA3FFC121F0F467CC519>105 +D<D83FF0D97FE049B47E007F902603FFFC010F13F026FFF80F01FF013F13FC4A6E487F02 +7F02C1B6FC91B612C301F903E71580DAF80FECE03F9026FBE0079038EF801FD9FFC0DAFF +0014C04A6C497FA202005C495DA3495DB3AB6C486D496D1380003F6E814A2F7AAE57> +109 D<D83FF0EB7FC0007F903803FFF826FFF80F13FE023F7F4A148091B6FC01F915C0EC +F81F9026FBE00F13E0EBFFC04A7E1400A25BA35BB3AB6C486D13C0123F2B2F7AAE38>I< +D83FF013F8007F130338FFF80F141F147FA214FF13F913FBA290B5120014F85C5C5C5C91 +C7FC5BA35BB3A76C5A123F1D2F7AAE25>114 D<EB0FFF017F13F048B512FC000714FF48 +15C05AA2383FF8039039F0007F80151F4848130F15071503ED01006D90C7FC7F13FEEBFF +E014FF6C14C015F06C80816C806C806C1580C6FC013F14C0130FD9007F13E01407140180 +12200070147F1278127C127ED87F8013FF01E014C038FFFC0390B6FC16801600123F000F +5C000314F8C614E0010F90C7FC23317DAF2A>I<D83FF0ECFFC0486C4913E06D5B6D4913 +C06C6C5B6C16806C6D4813006C6D485A6C6D485A14F06C4A5A6C01F95BD97FFD5B6DB5FC +5E6D5C6D91C7FC6D5B7F6D5B5D6D5B147F4A7E5B497F497F8149804980EB3FFDD97FF87F +4A7F01FF6D7E48496C7E4813C06F7E48496C7E4801001480486E13C048486D13E05B007F +6E13F048486D13F85B6C48EC3FF02D2E7EAD32>120 D E +%EndDVIPSBitmapFont +%DVIPSBitmapFont: Fe cmsy10 10 2 +/Fe 2 106 df<14C0EB01E01303A214C01307A21480130FA2EB1F00A2131E133EA25BA2 +137813F8A2485AA25B1203A25B1207A2485AA290C7FC5AA2123EA2123C127CA2127812F8 +A41278127CA2123C123EA27EA27E7FA26C7EA212037FA212017FA26C7EA21378137CA27F +A2131E131FA2EB0F80A2130714C0A2130314E0A21301EB00C0135278BD20>104 +D<126012F07EA21278127CA2123C123EA27EA27E7FA26C7EA212037FA26C7EA212007FA2 +1378137CA27FA2131E131FA2EB0F80A2130714C0A2130314E0A414C01307A21480130FA2 +EB1F00A2131E133EA25BA2137813F8A25B1201A2485AA25B1207A2485AA290C7FC5AA212 +3EA2123C127CA2127812F8A25A126013527CBD20>I E +%EndDVIPSBitmapFont +%DVIPSBitmapFont: Ff cmti10 10 17 +/Ff 17 121 df<0107B8FCA3903A000FF000034BEB007F183E141F181E5DA2143FA25D18 +1C147FA29238000380A24A130718004A91C7FC5E13015E4A133E167E49B512FEA25EECF8 +000107147C163C4A1338A2010F147818E04A13701701011F16C016004A14031880013F15 +0718004A5CA2017F151E173E91C8123C177C4915FC4C5A4914070001ED7FF0B8FCA25F38 +397BB838>69 D<0107B512FCA25E9026000FF8C7FC5D5D141FA25DA2143FA25DA2147FA2 +92C8FCA25CA25CA21301A25CA21303A25CA21307A25CA2130F170C4A141CA2011F153C17 +384A1478A2013F157017F04A14E01601017F140317C091C71207160F49EC1F80163F4914 +FF000102071300B8FCA25E2E397BB834>76 D<0007B812E0A25AD9F800EB001F01C049EB +07C0485AD900011403121E001C5C003C17801403123800785C00701607140700F0170048 +5CA2140FC792C7FC5DA2141FA25DA2143FA25DA2147FA292C9FCA25CA25CA21301A25CA2 +1303A25CA21307A25CA2130FA25CEB3FF0007FB512F8B6FCA2333971B83B>84 +D<49B5D8F007B5FCA3D9000790C713E0DA03FCEC7F00187C020115786F5C4D5A02005D6F +495A4DC7FC6F5BEE801E5F033F5BEEC0705F92381FC1C016E3EEE780DB0FEFC8FC16FE6F +5A5EA2150382A2150782150F151CED3CFF5D4B7EDA01E07FEDC03FDA03807FEC0700020E +131F021E805C4A130F0270805C49481307494880130749C71203011E81133E01FE81D807 +FF1407B500E090387FFFFC93B5FC6040397CB83E>88 D<14F8EB07FE90381F871C90383E +03FE137CEBF801120148486C5A485A120FEBC001001F5CA2EA3F801403007F5C1300A214 +07485C5AA2140F5D48ECC1C0A2141F15831680143F1587007C017F1300ECFF076C485B90 +38038F8E391F0F079E3907FE03FC3901F000F0222677A42A>97 D<147F903803FFC09038 +0FC1E090381F0070017E13784913383901F801F83803F003120713E0120FD81FC013F091 +C7FC485AA2127F90C8FCA35A5AA45AA3153015381578007C14F0007EEB01E0003EEB03C0 +EC0F806CEB3E00380F81F83803FFE0C690C7FC1D2677A426>99 D<147F903803FFC09038 +0FC1E090383F00F0017E13785B485A485A485A120F4913F8001F14F0383F8001EC07E0EC +1F80397F81FF00EBFFF891C7FC90C8FC5A5AA55AA21530007C14381578007E14F0003EEB +01E0EC03C06CEB0F806CEB3E00380781F83803FFE0C690C7FC1D2677A426>101 +D<EC07C0EC3FF09138FC38E0903901F01FF0EB03E0903807C00FEB0F80011F1307D93F00 +13E05B017E130F13FE4914C01201151F1203491480A2153F1207491400A25DA249137EA2 +15FEA25D00031301140314076C6C485A0000131FEB787BEB3FF390380FC3F0EB00031407 +A25DA2140F5D121C007E131F5D00FE49C7FC147E5C387801F8387C07E0381FFF80D803FE +C8FC24367CA426>103 D<EB0FC0EA07FFA3EA001F1480A2133FA21400A25BA2137EA213 +FEA25BA21201A25BA21203A25BA21207A25BA2120FA25BA2121FA25BA2123FA290C7FCA2 +5AA2EA7E0EA212FE131EEAFC1CA2133C133812F81378EA7870EA7CE0121FEA0F80123B79 +B915>108 D<D801E001FEEB07F03C07F803FF801FFC3C0E3C0F07C0783E3C1E3E3C03E1 +E01F261C1F78D9F3C013803C383FF001F7800F02E01400007801C013FE007018C002805B +4A4848EB1F80EAF07FD8E07E5CA200000207143F01FE1700495CA2030F5C0001177E495C +18FE031F5C120349DA8001131C18F8033F153C00070403133849020013F0A24B1570000F +17E049017E15F019E003FEECE1C0001FEE01E34949903800FF000007C70038143C3E2679 +A444>I<D801E013FE3A07F803FF803A0E3C0F07C03A1E3E3C03E0261C1F787F39383FF0 +0114E0007813C000708114804A485AEAF07FEAE07EA20000140701FE5C5BA2150F00015D +5B151F5E12034990383F8380160316070007027F130049137EA2160E000F147C49141E16 +1C5E001FEC3C7849EB1FE00007C7EA0780292679A42F>I<147F903803FFC090380FC1F0 +90381F00F8017E137C5B4848137E4848133E0007143F5B120F485AA2485A157F127F90C7 +FCA215FF5A4814FEA2140115FC5AEC03F8A2EC07F015E0140F007C14C0007EEB1F80003E +EB3F00147E6C13F8380F83F03803FFC0C648C7FC202677A42A>I<9039078007C090391F +E03FF090393CF0787C903938F8E03E9038787FC00170497EECFF00D9F0FE148013E05CEA +01E113C15CA2D80003143FA25CA20107147FA24A1400A2010F5C5E5C4B5A131F5EEC8003 +5E013F495A6E485A5E6E48C7FC017F133EEC70FC90387E3FF0EC0F8001FEC9FCA25BA212 +01A25BA21203A25B1207B512C0A3293580A42A>I<3903C003F0390FF01FFC391E783C0F +381C7C703A3C3EE03F8038383FC0EB7F800078150000701300151CD8F07E90C7FCEAE0FE +5BA2120012015BA312035BA312075BA3120F5BA3121F5BA3123F90C9FC120E212679A423 +>114 D<14FE903807FF8090380F83C090383E00E04913F00178137001F813F000011303 +13F0A215E00003EB01C06DC7FC7FEBFFC06C13F814FE6C7F6D13807F010F13C01300143F +141F140F123E127E00FE1480A348EB1F0012E06C133E00705B6C5B381E03E06CB45AD801 +FEC7FC1C267AA422>I<EB0380EB07C0130FA4131F1480A3133F1400A35B137E007FB5FC +A2B6FC3800FC00A312015BA312035BA312075BA3120F5BA3121FEB801CA2143C003F1338 +EB0078147014F014E0EB01C0EA3E03381F0780380F0F00EA07FCEA01F0183579B31C>I< +903907E007C090391FF81FF89039787C383C9038F03E703A01E01EE0FE3803C01F018013 +C0D8070014FC481480000E1570023F1300001E91C7FC121CA2C75AA2147EA214FEA25CA2 +1301A24A1370A2010314F016E0001C5B007E1401010714C000FEEC0380010F1307010EEB +0F0039781CF81E9038387C3C393FF03FF03907C00FC027267CA427>120 +D E +%EndDVIPSBitmapFont +%DVIPSBitmapFont: Fg cmtt10 10 57 +/Fg 57 126 df<121C127FEAFF80B1EA7F00AF123EC7FCA8121C127FA2EAFF80A3EA7F00 +A2121C09346FB32C>33 D<EB01C0497EA6EB0FFC90387FFF8048B512E00007804880391F +FBEFFC393FC3E1FE903803E07F007E80127C00FC158012F8157FA300FCEC3F00A2007E91 +C7FC127FEA3FC313FBEA1FFF6C13FC6C13FF000114C06C6C7F011F13F801037F14E7ECE1 +FEECE07F81001880007E1580150F12FFA312FE151F1600007E5C007F143ED83F8313FE90 +38C3E1FC391FFBEFF86CB55A6C5C6C5CC691C7FCEB1FF8EB03E0A66D5A21417BB92C>36 +D<EA0F80EA1FC0EA3FE013F0A213F8A2121F120F1200A4120113F0A2120313E01207EA0F +C0121FEA3F80EA7F0012FE5A5A12700D1B71B22C>39 D<143814FC13011303EB07F8EB0F +F0EB1FC0EB3F80EB7F0013FE485A485A5B12075B120F5B485AA2123F90C7FCA25A127EA3 +12FE5AAC7E127EA3127F7EA27F121FA26C7E7F12077F12037F6C7E6C7E137FEB3F80EB1F +C0EB0FF0EB07F8EB03FC130113001438164272B92C>I<127012FC7E7E6C7E6C7EEA0FE0 +6C7E6C7E6C7E6C7E137F7F1480131F14C0130FEB07E0A214F01303A214F81301A314FC13 +00AC130114F8A3130314F0A2130714E0A2EB0FC0131F1480133F14005B13FE485A485A48 +5A485AEA3FC0485A48C7FC5A5A1270164279B92C>I<EB0380497EA60020140800F8143E +00FE14FE00FF13C1EBC7C7EBE7CF003FB512F8000F14E0000314806C140038007FFCA248 +B5FC481480000F14E0003F14F839FFE7CFFEEBC7C7EB07C100FE13C000F8143E00201408 +00001400A66D5A1F247AAA2C>I<EA0F80EA1FE0EA3FF0EA7FF8A213FCA3123F121F120F +120013F8A21201EA03F01207EA1FE0EA7FC0EAFF80130012FC12700E17718A2C>44 +D<007FB6FCB71280A46C150021067B9B2C>I<121FEA3F80EA7FC0EAFFE0A5EA7FC0EA3F +80EA1F000B0B708A2C>I<1507ED0F80151FA2153F16005D157E15FE5D14015D14035DA2 +14075D140F5D141F5D143F92C7FC5C147E14FE5CA213015C13035C13075C130F5C131F5C +A2133F91C8FC5B137E13FE5B12015B12035B12075BA2120F5B121F5B123F90C9FC5A127E +12FE5AA25A127821417BB92C>I<EB03F8EB0FFE90383FFF80497F90B57E3901FE0FF039 +03F803F848486C7EEBE0004848137EA248487FA248C7EA1F80A2003E140F007E15C0A300 +7C140700FC15E0AC6C140F007E15C0A46CEC1F80A36C6CEB3F00A26C6C137E6D13FE0007 +5CEBF0016C6C485A3901FE0FF06CB55A6D5B6D5BD90FFEC7FCEB03F823357CB32C>I<13 +07497EA2131FA2133F137F13FF5A1207127FB5FC13DF139FEA7C1F1200B3AE007FB512E0 +B612F0A36C14E01C3477B32C>I<EB0FF890387FFF8048B512E00007804814FC391FF80F +FE393FE001FF903880007F48C7EA3F80007E141F00FE15C0150F6C15E01507A3127E123C +C8FCA2150F16C0151F1680153F16005D15FE4A5A14034A5A4A5A4A5A4A5AECFF804948C7 +FC495A495A495AEB3FE0EB7F8049C8FC485A4848EB03C04848EB07E0EA1FE0485A48B6FC +B7FCA36C15C023347CB32C>I<EB0FFC90387FFF8048B512E0000714F84880391FF807FE +EBC0004848137F6D7F1680151FA26C5A6CC7FCC8FC153F16005D15FE14014A5AEC1FF890 +381FFFF0495BA215F86D7F90380007FEEC00FF81ED3F80ED1FC0150FA216E01507A2123C +127EB4FC150F16C0A248141F007FEC3F806DEB7F006C6C5B391FF807FE6CB55A6C5C6C14 +E0C66C1380D90FFCC7FC23357CB32C>I<000FB512FE4880A35D0180C8FCADEB83FE9038 +9FFF8090B512E015F8819038FE03FE9038F000FF01C07F49EB3F8090C7121F6C15C0C812 +0FA2ED07E0A4123C127EB4FC150F16C0A248141F007EEC3F80007FEC7F006C6C5B6D485A +391FF80FFC6CB55A6C5C000114C06C6C90C7FCEB0FF823347CB22C>53 +D<EC3FC0903801FFF801077F011F7F497F90387FE07F9039FF003F804848137FEA03F848 +5A5B000FEC3F004848131E4990C7FC123F90C9FCA25A127EEB03FE90381FFF80D8FC7F13 +E000FDB57EB67E9038FE07FC9038F001FE9038C0007F49EB3F8090C7121F16C048140F16 +E01507A3127EA47E150F6D14C0001F141F6D1480000F143F6DEB7F003907F801FE3903FE +07FC6CB55A6C5C6D5B011F1380D907FCC7FC23357CB32C>I<EB07FC90383FFF8090B512 +E0000314F84880390FFC07FE391FF001FF9038C0007F4848EB3F8090C7121F4815C0007E +140FA56CEC1F80A26C6CEB3F006D5B390FF001FE3903FC07F86CB55A6C6C13C0D907FCC7 +FC90387FFFC048B512F03903FC07F8390FF001FE391FC0007F497F48C7EA1F80007EEC0F +C0A248EC07E0A7007EEC0FC0A2007F141F6C6CEB3F806C6CEB7F009038F001FF390FFC07 +FE6CB55A6C5CC614E0013F1380D907FCC7FC23357CB32C>56 D<EB07FCEB3FFF90B512C0 +488048803907FC07F8390FF001FC48486C7ED83F80137E157F48C77E007EEC1F8012FE5A +ED0FC0A416E0A37E127E007F141F7E6D133F6C6C137F390FF001FF3807FC0F6CB6FC6C14 +F76C14C7013F130FD90FF813C090C7FCA2151F1680153F1600000F5C486C137E486C13FE +4A5A4A5A14079038801FF0391FE07FE090B55A6C91C7FC6C5B000113F838007FC023357C +B32C>I<121FEA3F80EA7FC0EAFFE0A5EA7FC0EA3F80EA1F00C7FCAE121FEA3F80EA7FC0 +EAFFE0A5EA7FC0EA3F80EA1F000B2470A32C>I<EA0F80EA1FC0EA3FE0EA7FF0A5EA3FE0 +EA1FC0EA0F80C7FCAEEA0F80EA1FC0EA3FE0127F13F0A4123F121F120F1201120313E012 +07EA0FC0A2EA3F80EA7F005A5A12F812700C3071A32C>I<007FB612F0B712F8A4003F15 +F0CAFCA8003FB612F0B712F8A46C15F025147DA22C>61 D<14FE497EA4497FA214EFA213 +0781A214C7A2010F7FA314C390381F83F0A590383F01F8A490387E00FCA549137E90B512 +FEA34880A29038F8003FA34848EB1F80A4000715C049130FD87FFEEBFFFC6D5AB514FE6C +15FC497E27347EB32C>65 D<007FB512E015F8B612FE6C8016C03903F0003FED0FE0ED07 +F01503A2ED01F8A6ED03F0A21507ED0FE0ED1FC0EDFF8090B612005D5D15FF16C09039F0 +001FE0ED07F0ED03F81501ED00FCA216FE167EA616FE16FC1501ED03F8150FED3FF0007F +B612E016C0B712806CECFE0015F027337FB22C>I<D87FFEEBFFFCB54813FEA36C486C13 +FCD807E0EB0FC0B190B6FCA59038E0000FB3D87FFEEBFFFCB54813FEA36C486C13FC2733 +7EB22C>72 D<007FB512C0B612F88115FF6C15802603F00013C0153FED0FE0ED07F0A215 +0316F81501A6150316F01507A2ED0FE0ED3FC015FF90B61280160015FC5D15C001F0C8FC +B0387FFF80B57EA36C5B25337EB22C>80 D<387FFFFCB67E15E015F86C803907E007FE14 +01EC007F6F7E151FA26F7EA64B5AA2153F4BC7FCEC01FE140790B55A5D15E081819038E0 +07FCEC01FE1400157F81A8160FEE1F80A5D87FFEEB1FBFB5ECFF00815E6C486D5AC8EA01 +F029347EB22C>82 D<D87FFCEB7FFC486CEBFFFEA36C48EB7FFCD80FC0EB07E06D130F00 +0715C0A36D131F00031580A36D133F00011500A36D5B0000147EA4017E5BA46D485AA490 +381F83F0A4010F5B14C7A301075BA214EFA201035BA214FFA26D90C7FCA46D5A27347EB2 +2C>86 D<387FFFFCB512FEA314FC00FCC7FCB3B3B3B512FC14FEA36C13FC17416FB92C> +91 D<127812F87EA27E127E127F7E7F121F7F120F7F1207A27F12037F12017F12007F13 +7E137F7F80131FA280130F801307801303801301801300A280147E147F8081141F81140F +811407811403A281140181140081157E157F811680151FA2150FED070021417BB92C>I< +387FFFFCB512FEA37EC7127EB3B3B3387FFFFEB5FCA36C13FC17417DB92C>I<3801FFF0 +000713FE001F6D7E15E048809038C01FF81407EC01FC381F80000006C77EC8127EA3ECFF +FE131F90B5FC1203120F48EB807E383FF800EA7FC090C7FC12FE5AA47E007F14FEEB8003 +383FE01F6CB612FC6C15FE6C14BF0001EBFE1F3A003FF007FC27247CA32C>97 +D<EA7FF0487EA3127F1201AAEC1FE0ECFFF801FB13FE90B6FC16809138F07FC09138801F +E091380007F049EB03F85BED01FC491300A216FE167EA816FE6D14FCA2ED01F86D13036D +EB07F0150F9138801FE09138E07FC091B51280160001FB5B01F813F83900F03FC027337F +B22C>I<903803FFE0011F13F8017F13FE48B5FC48804848C6FCEA0FF0485A49137E4848 +131890C9FC5A127EA25AA8127EA2127F6C140F6DEB1F806C7E6D133F6C6CEB7F003907FE +03FF6CB55A6C5C6C6C5B011F13E0010390C7FC21247AA32C>I<EC0FFE4A7EA380EC003F +AAEB07F8EB3FFE90B512BF4814FF5A3807FC0F380FF00348487E497E48487F90C7FC007E +80A212FE5AA87E007E5CA2007F5C6C7E5C6C6C5A380FF0073807FC1F6CB612FC6CECBFFE +6C143FEB3FFC90390FF01FFC27337DB22C>I<EB03FE90381FFFC0017F13F048B57E4880 +3907FE03FE390FF800FFD81FE0EB3F805B4848EB1FC090C7120F5A007E15E015075AB7FC +A416C000FCC9FC7E127EA2127F6CEC03C06DEB07E06C7ED80FF0130F6C6CEB3FC001FF13 +FF000190B512806C1500013F13FC010F13F00101138023247CA32C>I<EC0FF8EC3FFE91 +B5FC4914805B903807FC7F14F090390FE03F0014C092C7FCA6007FB512FEB7FCA36C5C26 +000FC0C7FCB3A8003FB512F04880A36C5C21337DB22C>I<ED03F8903907F80FFC90391F +FE3FFE017FB6FC48B7FC48ECFE7F9038FC0FF82607F003133E3A0FE001FC1CD9C0001300 +001F8049137EA66D13FE000F5CEBE0016C6C485A3903FC0FF048B5FC5D481480D99FFEC7 +FCEB87F80180C8FCA37F6C7E90B512F06C14FE48ECFF804815E04815F03A3FC0001FF848 +C7EA03FC007E1400007C157C00FC157E48153EA46C157E007E15FCD87F801303D83FE0EB +0FF8D81FFCEB7FF06CB612E0000315806C1500D8003F13F8010713C028387EA42C>I<EA +7FF0487EA3127F1201AAEC1FE0EC7FFC9038F9FFFE01FB7F90B6FC9138F03F80ECC01F02 +807FEC000F5B5BA25BB3267FFFE0B5FCB500F11480A36C01E0140029337FB22C>I<1307 +EB1FC0A2497EA36D5AA20107C7FC90C8FCA7387FFFC080B5FC7EA2EA0007B3A8007FB512 +FCB612FEA36C14FC1F3479B32C>I<EA7FE0487EA3127F1201AA91381FFFF04A13F8A36E +13F0913800FE004A5A4A5A4A5A4A5A4A5A4A5A4AC7FC14FEEBF1FC13F3EBF7FE90B5FCA2 +EC9F80EC0FC001FE7FEBFC07496C7E496C7E811400157E811680151F3A7FFFC0FFFCB500 +E113FEA36C01C013FC27337EB22C>107 D<387FFFE0B57EA37EEA0003B3B3A5007FB612 +80B712C0A36C158022337BB22C>I<3A7F83F007E09039CFFC1FF83AFFDFFE3FFCD87FFF +13FF91B57E3A07FE1FFC3E01FCEBF83F496C487E01F013E001E013C0A301C01380B33B7F +FC3FF87FF0027F13FFD8FFFE6D13F8D87FFC4913F0023F137F2D2481A32C>I<397FF01F +E039FFF87FFC9038F9FFFE01FB7F6CB6FC00019038F03F80ECC01F02807FEC000F5B5BA2 +5BB3267FFFE0B5FCB500F11480A36C01E0140029247FA32C>I<EB07FCEB1FFF017F13C0 +48B512F048803907FC07FC390FF001FE48486C7E0180133F003F158090C7121F007EEC0F +C0A348EC07E0A76C140F007E15C0A2007F141F6C15806D133F6C6CEB7F006D5B6C6C485A +3907FC07FC6CB55A6C5C6C6C13C0011F90C7FCEB07FC23247CA32C>I<397FF01FE039FF +F8FFF801FB13FE90B6FC6C158000019038F07FC09138801FE091380007F049EB03F85BED +01FC491300A216FE167EA816FE6D14FCA2ED01F86D13036DEB07F0150F9138801FE09138 +E07FC091B51280160001FB5B01F813F8EC3FC091C8FCAD387FFFE0B57EA36C5B27367FA3 +2C>I<903903FC078090391FFF0FC0017F13CF48B512EF4814FF3807FE07380FF0014848 +7E49137F4848133F90C7FC48141F127E150F5AA87E007E141FA26C143F7F6C6C137F6D13 +FF380FF0033807FC0F6CB6FC6C14EF6C6C138F6D130FEB07F890C7FCAD0203B5FC4A1480 +A36E140029367DA32C>I<D87FFEEB3FC0B53801FFF0020713F8021F13FC6C5B39003F7F +E1ECFF019138FC00F84A13704A13005CA25C5CA391C8FCAF007FB512E0B67EA36C5C2624 +7EA32C>I<90387FF8700003B512F8120F5A5A387FC00F387E00034813015AA36CEB00F0 +007F140013F0383FFFC06C13FE6CEBFF80000314E0C66C13F8010113FCEB0007EC00FE00 +78147F00FC143F151F7EA26C143F6D133E6D13FE9038F007FC90B5FC15F815E000F81480 +39701FFC0020247AA32C>I<131E133FA9007FB6FCB71280A36C1500D8003FC8FCB1ED03 +C0ED07E0A5EC800F011FEB1FC0ECE07F6DB51280160001035B6D13F89038003FE0232E7E +AD2C>I<3A7FF003FF80486C487FA3007F7F0001EB000FB3A3151FA2153F6D137F3900FE +03FF90B7FC6D15807F6D13CF902603FE07130029247FA32C>I<3A7FFF01FFFCB514FE14 +8314016C15FC3A03E0000F80A26D131F00011500A26D5B0000143EA26D137E017C137CA2 +017E13FC013E5BA2EB3F01011F5BA21483010F5BA214C701075BA214EF01035BA214FF6D +90C7FCA26D5A147C27247EA32C>I<D87FFFEB7FFF6EB5FCB515806C16004A7ED807C0EB +01F0A66C6C495AA3143E147FA2D801F0495AECFF87A214F7A201F113C700005D9038F9E3 +CFA201FB13EFA3D97BC190C7FC017F13FFA21480A2013F5B90381F007C29247FA32C>I< +3A3FFF03FFF048018713F8A36C010313F03A00FC007E005D90387E01F8013F5BEB1F83EC +87E090380FCFC0903807EF80EB03FF6D90C7FC5C6D5A147C14FE130180903803EF809038 +07CFC0EB0FC7EC83E090381F01F0013F7FEB7E00017C137C49137E0001803A7FFF01FFFC +1483B514FE6C15FC140127247EA32C>I<3A7FFF01FFFCB5008113FE148314816C010113 +FC3A03E0000F806C7E151F6D140012005D6D133E137C017E137E013E137CA2013F13FC6D +5BA2EB0F815DA2EB07C1ECC3E0A2EB03E3ECE7C0130114F75DEB00FFA292C7FC80A2143E +A2147E147CA214FC5CA2EA0C01003F5BEA7F83EB87E0EA7E0F495A387FFF806C90C8FC6C +5A6C5AEA07E027367EA32C>I<003FB612E04815F0A4007EC7EA1FE0ED3FC0ED7F80EDFF +004A5A003C495AC7485A4A5A4A5A4A5A4A5A4AC7FCEB01FC495AEB0FF0495A495A495A49 +C8FC4848EB01E04848EB03F0485A485A485A485A485AB7FCA46C15E024247DA32C>I<15 +FF02071380141F147F91B512004913C04AC7FCEB03F85CB31307EB1FE013FF007F5BB55A +49C8FC6D7E6C7FC67F131FEB07F01303B380EB01FEECFFC06D13FF6E1380141F14070200 +130021417BB92C>I<EA7FC0EAFFF813FE6D7E6C7FC67F131FEB07F01303B380EB01FEEC +FFC06D13FF6E1380141F147F91B512004913C04AC7FCEB03F85CB31307EB1FE013FF007F +5BB55A49C8FC13F8EA7FC021417BB92C>125 D E +%EndDVIPSBitmapFont +%DVIPSBitmapFont: Fh cmti8 8 1 +/Fh 1 66 df<16E01501821503A21507150FA2151FA2153B157B157315E382EC01C11403 +1581EC0701A2140EA2141C143C143802707F15005C13015C49B5FCA249C7FCA2130E131E +131C4980167E5B13F0485AA21203D80FF014FFD8FFFC011F13F0A22C2F7CAE35>65 +D E +%EndDVIPSBitmapFont +%DVIPSBitmapFont: Fi cmti10 10.95 36 +/Fi 36 122 df<933807FF80043F13E09338FE00F8DB01F0133EDB07E0130E4B48131F4C +137F031F14FF4BC7FCA218FE157E1878180015FE5DA31401A25DA414030103B712F0A218 +E0903A0003F000070207140F4B14C0A3171F020F15805DA2173F1800141F5D5F177EA214 +3F92C712FE5FA34A1301027EECF81CA3160302FEECF03C4A1538A21878187013014A0101 +13F018E0933800F1C0EF7F804948EC1F0094C7FCA35C1307A2001E5B127F130F00FF5BA2 +49CAFC12FEEAF81EEA703CEA7878EA1FF0EA07C0385383BF33>12 +D<143C14FEEB01FF5BA414FE1307A214FCA314F8130FA214F0A314E0131FA214C0A31480 +133FA21400A3133E137EA2137CA3137813F8A25BA35B1201A26C5A90C7FCA8120FEA3FC0 +127FA212FFA35B6CC7FC123C184177C01C>33 D<EA01E0EA07F8120F13FC121FA4120FEA +03D8EA0018A2133813301370136013E013C01201EA038013005A120E5A5A5A5A5A0E1C6D +BE1C>39 D<387FFFFEA3B5FCA21705799521>45 D<120FEA3FC0127FA212FFA31380EA7F +00123C0A0A77891C>I<171C173C177CA217FCA216011603A21607A24C7EA2161DA21639 +1679167116E1A2ED01C1A2ED038115071601150EA2031C7FA24B7EA25D15F05D4A5AA24A +5AA24AC7FC5C140E5C021FB6FC4A81A20270C7127FA25C13015C495AA249C8FCA2130E13 +1E131C133C5B01F882487ED807FEEC01FFB500E0017FEBFF80A25C39417BC044>65 +D<49B812F8A390260003FEC7121F18074B14031801F000F014075DA3140F5D19E0A2141F +4B1338A2EF7801023F027013C04B91C7FCA217F0027F5CED80011603160F91B65AA3ED00 +1F49EC07805CA3010392C8FC5CF003804C13070107020E14005C93C75A180E010F161E4A +151C183CA2011F5E5C60A2013F15014A4A5A1707017F150F4D5A4A147F01FF913807FF80 +B9FCA295C7FC3D3E7BBD3E>69 D<49B6FC5BA2D9000313005D5DA314075DA3140F5DA314 +1F5DA3143F5DA3147F5DA314FF92C7FCA35B5CA313035CA313075CA3130F5CA3131F5CA3 +133F5CA2137FA25C497EB67EA3283E7BBD23>73 D<49B612C0A25FD9000390C8FC5D5DA3 +14075DA3140F5DA3141F5DA3143F5DA3147F5DA314FF92C9FCA35B5CA313035C18C0EF01 +E0010716C05C17031880130F4A140718005F131F4A141EA2173E013F5D4A14FC1601017F +4A5A16074A131F01FFECFFF0B8FCA25F333E7BBD39>76 D<49B77E18F018FC903B0003FE +0003FEEF00FF4BEC7F80F03FC00207151F19E05DA2020F16F0A25DA2141FF03FE05DA202 +3F16C0187F4B1580A2027FEDFF00604B495A4D5A02FF4A5A4D5A92C7EA3FC04CB4C7FC49 +90B512FC17E04ACAFCA21303A25CA21307A25CA2130FA25CA2131FA25CA2133FA25CA213 +7FA25C497EB67EA33C3E7BBD3E>80 D<92390FF001C0ED7FFE4AB5EA0380913907F80FC7 +91390FC003EF91391F8001FF4AC71300027E805C495A4948143EA2495AA2010F153C5CA3 +011F1538A38094C7FC80A214FC6DB4FC15F015FE6DEBFFC06D14F06D14FC6D80143F020F +7F020180EC001F150303007F167F163FA2161FA212075A5F120EA2001E153F94C7FCA216 +3E003E157E167C003F15FC4B5A486C5C4B5A6D495AD87DE0EB1F80D8F8F849C8FC017F13 +FE39F03FFFF8D8E00F13E048C690C9FC32427ABF33>83 D<48B9FCA25A903AFE001FF001 +01F89138E0007FD807E0163E49013F141E5B48C75BA2001E147FA2001C4B131C123C0038 +14FFA2007892C7FC12704A153C00F01738485CC716001403A25DA21407A25DA2140FA25D +A2141FA25DA2143FA25DA2147FA25DA214FFA292C9FCA25BA25CA21303A25CEB0FFE003F +B67E5AA2383D71BC41>I<91B690383FFFFC605E020101E0010F13006E49EB07F84C6D5A +19C06F6C495A96C7FC033F140E705B183C031F5C705B4D5A030F5C70485A4DC8FC030713 +0EEEFC1E5F03035BEEFE705F6F6C5A5FA26F90C9FC83A2707EA216FF4B7F5DED079FEE1F +F0150EED1C0F03387F1578EDF007DA01E07F15C09138038003DA07007F140E021E13014A +805C02707F4A81495A4948147F01078249C8FC013F6F7E496C147F2603FFC049487EB500 +F8011FEBFFE0A261463E7CBD44>88 D<147E49B47E903907C1C38090391F80EFC090383F +00FF017E137F4914804848133F485AA248481400120F5B001F5C157E485AA215FE007F5C +90C7FCA21401485C5AA21403EDF0385AA21407EDE078020F1370127C021F13F0007E013F +13E0003E137FECF3E1261F01E313C03A0F8781E3803A03FF00FF00D800FC133E252977A7 +2E>97 D<EB1FC0EA0FFF5CA2EA003FA291C7FCA25BA2137EA213FEA25BA21201A25BA212 +03A25B147E3907F1FF809038F783E09038EF01F013FE390FF800F8A24913FC49137C485A +157E5B15FE123FA290C7FCA248130115FC127EA2140300FE14F85AA2EC07F0A215E04813 +0F15C0141F15800078EB3F00127C147E003C5B383E01F8381E03E06C485A6CB4C7FCEA01 +F81F4076BE2A>I<EC1FE0ECFFF8903803F03E903807C00F90381F8007D93F001380017E +131F49137F485A485A000715005B000F147E484890C7FCA2485AA3127F90C9FCA35A5AA6 +481403007E5C5D151E003E5C5D6C5CEC03E0390F800F802603E07EC7FC3801FFF838003F +C0212977A72A>I<EE3F80ED1FFF1700A2ED007FA2167EA216FEA25EA21501A25EA21503 +A25EA21507A25E147E903801FF8F903807C1CF90391F80EFC090383F00FF017E137F5B48 +486D5A485AA2485A000F92C7FC5B001F5CA24848137EA215FE127F90C75AA214015A485C +A2140316384814F0A21407167891380FE070127C021F13F0007E013F5B003E137FECF3E1 +261F01E35B3A0F8781E3802703FF00FFC7FCD800FC133E294077BE2E>I<EC3F80903801 +FFE0903807E0F890381F803CEB3E0001FC131E485A485A12074848133E49133C121F4848 +137C15F8EC03F0397F000FE0ECFF80B5EAFC0014C048C8FCA45AA61506150E151E007C14 +3C15786C14F0EC01E06CEB07C0390F801F003807C0FC3801FFF038007F801F2976A72A> +I<167C4BB4FC923807C78092380F83C0ED1F87161FED3F3FA2157EA21780EE0E004BC7FC +A414015DA414035DA30103B512F8A390260007E0C7FCA3140F5DA5141F5DA4143F92C8FC +A45C147EA414FE5CA413015CA4495AA4495AA4495A121E127F5C12FF49C9FCA2EAFE1EEA +F83C1270EA7878EA3FE0EA0F802A5383BF1C>I<EC03F0EC0FFC91383E0E1C9138FC077E +903901F003FE1303903807E001D90FC013FCEB1F80A2EB3F004914F8137E01FE1303A248 +4814F0A2150712034914E0A2150F12074914C0A2151FA216805B153F1203ED7F006D5BA2 +00015B0000495A9038F80F7E90387C1EFEEB1FF8903807E0FC90C7FC1401A25DA21403A2 +5D001C1307007F5C48130F5D4A5A4AC7FC48137E00F85B387C03F0381FFFC0D803FEC8FC +273B7CA72A>I<EB01FC13FF5CA21303A25CA21307A25CA2130FA25CA2131FA25CA2133F +A291C8FCEC03F890387F0FFE91383E0F80D97E7813C0ECE007D9FFC013E014801400A248 +5A5BA25B0003140F16C05BA20007141F16805BA2000F143F16005B5D001F147EEDFE0749 +13FCA2003F0101130FEDF80E1300161E48ECF01CA2007E1538A200FE1570020013E048EC +7FC00038EC1F0028407ABE2E>I<1478EB01FCA21303A314F8EB00E01400AD137C48B4FC +38038F80EA0707000E13C0121E121CEA3C0F1238A2EA781F00701380A2EAF03F14001200 +5B137E13FE5BA212015BA212035B1438120713E0000F1378EBC070A214F0EB80E0A2EB81 +C01383148038078700EA03FEEA00F8163E79BC1C>I<EB07F0EA03FF14E0A2EA000FA214 +C0A2131FA21480A2133FA21400A25BA2137EA213FEA25BA21201A25BA21203A25BA21207 +A25BA2120FA25BA2121FA25BA2123FA290C7FCA25A1307127EA2EAFE0F130E12FCA2131E +131CA2EA7C381378EA3C70EA1FE0EA0780144079BE17>108 D<D801F0D93F80137F3D07 +FC01FFE003FFC03D0F3E07C1F80F83F03D0E1F0F00FC1E01F8001E011C90387C3800001C +49D97E707F003C01F05C0038157F4A5C26783FC05C12704A91C7FC91C7127E00F003FE13 +01494A5CEA007EA20301140301FE5F495CA203031407000160495C180F03075D0003051F +13E0494A1480A2030FEC3F810007F001C0495CA2031F91383E0380120F494AEC0700A203 +3F150E001FEF1E1C4991C7EA0FF80007C7000EEC03E0432979A74A>I<D801F0EB3F803A +07FC01FFE03A0F3E07C1F83A0E1F0F00FC001E011C137C001C49137E003C13F012385C38 +783FC012705C91C7FC00F015FE495CEA007EA2150101FE5C5BA2150300015D5B15075E00 +03020F13704914C0A2031F13F00007ED80E05B1681EE01C0120F49EC0380A2EE0700001F +EC0F0E49EB07FC0007C7EA01F02C2979A733>I<EC1FC0ECFFF8903803F07C90380FC01F +EB1F8090393F000F80017E14C0491307484814E0485A12075B000F15F0485AA2485AA2ED +0FE0127F90C7FCA2151F4815C05AA2ED3F80A2ED7F00A248147E007C5C007E13015D4A5A +003E495A6C495A4A5A260F803EC7FC3807C0FC3801FFF038003F80242977A72E>I<9039 +03E001F890390FF807FE903A1E7C1E0F80903A1C3E3C07C0013C137801389038E003E0EB +783F017001C013F0ED80019038F07F0001E015F8147E1603000113FEA2C75AA201011407 +17F05CA20103140F17E05CA20107EC1FC0A24A1480163F010F15005E167E5E131F4B5A6E +485A4B5A90393FB80F80DA9C1FC7FCEC0FFCEC03E049C9FCA2137EA213FEA25BA21201A2 +5BA21203A2387FFFE0B5FCA22D3A80A72E>I<027E1360903901FF81E0903807C1C39039 +1F80E7C090383F00F7017E137F5B4848EB3F80485AA2485A000F15005B121F5D4848137E +A3007F14FE90C75AA3481301485CA31403485CA314074A5A127C141F007E133F003E495A +14FF381F01EF380F879F3903FF1F80EA00FC1300143F92C7FCA35C147EA314FE5CA21301 +130390B512F05AA2233A77A72A>I<D801F013FC3A07FC07FF803A0F3E0F03C0260E1F1C +13E0001EEB380F001C1370003CEBE01F123814C0D8783F14C00070903880070092C7FC91 +C8FC12F05BEA007EA313FE5BA312015BA312035BA312075BA3120F5BA3121F5B0007C9FC +232979A726>I<EC7F80903801FFE0903807C0F890381F003C013E131C013C131E017C13 +3E49137E15FEA2000114FCA215706D13007FEBFFC014FC6C13FF15806D13C06D13E0010F +13F01300140F14071403120C123F387F80011403D8FF0013E0A300FCEB07C000F0EB0F80 +12700078EB1F006C133C381F01F83807FFE0C690C7FC1F297AA725>I<EB01C0EB03F013 +07A25CA2130FA25CA2131FA25CA2133FA291C7FCA2007FB51280B6FC1500D8007EC7FC13 +FEA25BA21201A25BA21203A25BA21207A25BA2120FA25BA2121F141C1380A2003F133C14 +38EB0078147014F05C495AEA1F03495A6C48C7FCEA07FCEA01F0193A78B81E>I<137C48 +B4141C26038F80137EEA0707000E7F001E15FE121CD83C0F5C12381501EA781F00700180 +5BA2D8F03F1303140000005D5B017E1307A201FE5C5B150F1201495CA2151F0003EDC1C0 +491481A2153F1683EE0380A2ED7F07000102FF13005C01F8EBDF0F00009038079F0E9039 +7C0F0F1C90391FFC07F8903907F001F02A2979A731>I<017CEB01C048B4EB07F038038F +80EA0707000E01C013F8121E001C1403EA3C0F0038EC01F0A2D8781F130000705BA2EAF0 +3F91C712E012005B017E130116C013FE5B1503000115805BA2ED07001203495B150EA25D +A25D1578000114706D5B0000495A6D485AD97E0FC7FCEB1FFEEB03F0252979A72A>I<01 +7C167048B491387001FC3A038F8001F8EA0707000E01C015FE001E1403001CEDF000EA3C +0F0038177C1507D8781F4A133C00701380A2D8F03F130F020049133812005B017E011F14 +784C137013FE5B033F14F0000192C712E05BA2170100034A14C049137E17031880A2EF07 +0015FE170E00010101141E01F86D131C0000D9039F5BD9FC076D5A903A3E0F07C1E0903A +1FFC03FFC0902703F0007FC7FC372979A73C>I<903903F001F890390FFC07FE90393C1E +0E0F9026780F1C138001F0EBB83FD801E013F89039C007F07FEA0380000714E0D9000F14 +0048151C000E4AC7FCA2001E131FA2C75BA2143F92C8FCA35C147EA314FE4A131CA30101 +143C001E1538003F491378D87F811470018314F000FF5D9039077801C039FE0F7C033A7C +0E3C078027783C1E1EC7FC391FF80FFC3907E003F029297CA72A>I<137C48B414382603 +8F8013FCEA0707000E7F001E1401001C15F8EA3C0F12381503D8781F14F000701380A2D8 +F03F1307020013E012005B017E130F16C013FE5B151F1201491480A2153F000315005BA2 +5D157EA315FE5D00011301EBF8030000130790387C1FF8EB3FF9EB07E1EB00035DA21407 +000E5CEA3F80007F495AA24A5AD8FF0090C7FC143E007C137E00705B387801F0383803E0 +381E0FC06CB4C8FCEA03F8263B79A72C>I E +%EndDVIPSBitmapFont +%DVIPSBitmapFont: Fj cmbx12 12 36 +/Fj 36 123 df<ED0FFF4AB512C0020F14F0027F80903A01FFF803FC499038C000FE010F +EB00034948497E49485B5C495A4C138001FF6E13005CA3705AEE01F893C8FCA74BB51280 +B9FCA5C69038E00003B3B0007FD9FFC1B6FCA538467EC53E>12 D<EA07C0EA1FF0EA3FF8 +EA7FFCEAFFFEA7EA7FFCEA3FF8EA1FF0EA07C00F0F788E1F>46 D<EC03C01407141F147F +EB03FF133FB6FCA413C3EA0003B3B3ADB712FCA5264177C038>49 +D<ECFFE0010F13FE013F6D7E90B612E0000315F82607FC0313FE3A0FE0007FFFD81F806D +138048C7000F13C0488001C015E001F07F00FF6E13F07F17F881A46C5A6C5A6C5AC9FC17 +F05DA217E05D17C04B13804B1300A2ED1FFC4B5A5E4B5A4B5A4A90C7FC4A5A4A5AEC0FF0 +4A5AEC3F804AC7127814FE495A494814F8D907E014F0495A495A49C8FC017C1401491403 +48B7FC4816E05A5A5A5A5AB8FC17C0A42D417BC038>I<ECFFF0010713FF011F14C0017F +14F049C66C7ED803F8EB3FFED807E06D7E81D80FF86D138013FE001F16C07FA66C5A6C48 +15806C485BC814005D5E4B5A4B5A4B5A4A5B020F1380902607FFFEC7FC15F815FF16C090 +C713F0ED3FFCED0FFEEEFF80816F13C017E0A26F13F0A217F8A3EA0FC0EA3FF0487EA248 +7EA217F0A25D17E06C5A494913C05BD83F80491380D81FF0491300D80FFEEBFFFE6CB612 +F800015D6C6C14C0011F49C7FC010113E02D427BC038>I<0007150301E0143F01FFEB07 +FF91B6FC5E5E5E5E5E16804BC7FC5D15E092C8FC01C0C9FCAAEC3FF001C1B5FC01C714C0 +01DF14F09039FFE03FFC9138000FFE01FC6D7E01F06D13804915C0497F6C4815E0C8FC6F +13F0A317F8A4EA0F80EA3FE0487E12FF7FA317F05B5D6C4815E05B007EC74813C0123E00 +3F4A1380D81FC0491300D80FF0495AD807FEEBFFFC6CB612F0C65D013F1480010F01FCC7 +FC010113C02D427BC038>53 D<121E121F13FC90B712FEA45A17FC17F817F017E017C0A2 +481680007EC8EA3F00007C157E5E00785D15014B5A00F84A5A484A5A5E151FC848C7FC15 +7E5DA24A5A14035D14074A5AA2141F5D143FA2147F5D14FFA25BA35B92C8FCA35BA55BAA +6D5A6D5A6D5A2F447AC238>55 D<EC7FF00103B5FC010F14C0013F14F090397F801FFC3A +01FC0003FE48486D7E497F4848EC7F80163F484815C0A2001F151FA27FA27F7F01FE143F +6D158002C0137F02F014006C01FC5B6E485A6C9038FF83FCEDE7F86CECFFE06C5D6C92C7 +FC6D14C06D80010F14F882013F8090B7FC48013F14802607FC0F14C0260FF80314E04848 +C6FC496D13F0003F141F48481307496D13F8150000FF157F90C8123F161F160FA21607A3 +6D15F0127F160F6D15E06C6C141F6DEC3FC06C6CEC7F80D80FFE903801FF003A07FFC00F +FE6C90B55AC615F0013F14C0010F91C7FC010013F02D427BC038>I<DCFFF01470031F01 +FF14F04AB6EAE0010207EDF803023FEDFE0791B539E001FF0F4949C7EA3F9F010701F0EC +0FFF4901C0804990C87E4948814948814948167F4849163F4849161F5A4A160F485B1907 +4890CAFC19035A5BA2007F1801A34994C7FC12FFAE127F7F1AF0A2123FA27F6C18011AE0 +6C7F19036C6D17C06E16077E6C6DEE0F806C6DEE1F006D6C5E6D6C167E6D6C6C5D6D6D4A +5A6D01F0EC07F0010101FEEC1FE06D903AFFF001FF80023F90B6C7FC020715FC020115F0 +DA001F1480030001F8C8FC44467AC451>67 D<BA12F8A485D8001F90C71201EF003F180F +180318011800A2197E193EA3191EA21778A285A405F890C7FCA316011603161F92B5FCA5 +ED001F160316011600A2F101E01778A2F103C0A494C7FC1907A21A80A2190FA2191FA219 +3FF17F0061601807181F4DB5FCBBFC61A443447DC34A>69 D<BA1280A419C026003FFEC7 +121F1701EF007F183F181F180F180719E01803A31801A3EE01E0F000F0A419001603A316 +07160F167F91B6FCA59138FE007F160F16071603A31601A693C9FCAFB712F0A53C447CC3 +46>I<B9FC18F018FE727E19E0D8001F90C7000F7F05017F716C7E727E727E721380A21A +C084A21AE0A91AC0A24E1380A21A00604E5A4E5A4D485A050F5B92B712C096C7FC18FC18 +C092CBFCB3A7B712E0A543447DC34D>80 D<DAFFE0131C010701FE133C013F9038FF807C +90B6EAE0FC4815F9489038801FFF3907FC00014848EB007F4848143F4848140F49140700 +7F15035B1601160012FF177CA27FA26D153C7F7F6D92C7FC6C7EEBFFE014FE6CEBFFF015 +FF6C15E016FC6C816C6F7E6C826C826C6C81011F810107811300020F80140003077FED00 +7F82040F1380828212F082A282A27EA218007EA26C5D6C5E6D14036D5D6D140701F84A5A +01FFEC3FF002F8EBFFE0486CB65AD8FC1F92C7FCD8F80714FC48C614F048010713803146 +7AC43E>83 D<B76C010FB512F8A526003FFEC93803E000B3B3A9011F17076280190F6D60 +6F151F6D95C7FC6D6D5D197E6D6D5D6D6D1403DA7FFC4A5A6EB4EC3FF0020F9039F003FF +E06E90B61280020193C8FC6E6C14FC030F14E09226007FFEC9FC4D457CC356>85 +D<903801FFE0011F13FE017F6D7E48B612E03A03FE007FF84848EB1FFC6D6D7E486C6D7E +A26F7FA36F7F6C5A6C5AEA00F090C7FCA40203B5FC91B6FC1307013F13F19038FFFC0100 +0313E0000F1380381FFE00485A5B127F5B12FF5BA35DA26D5B6C6C5B4B13F0D83FFE013E +EBFFC03A1FFF80FC7F0007EBFFF86CECE01FC66CEB8007D90FFCC9FC322F7DAD36>97 +D<EB7FC0B5FCA512037EB1ED0FF892B57E02C314E002CF14F89139DFC03FFC9139FF000F +FE02FCEB03FF4A6D13804A15C04A6D13E05CEF7FF0A218F8173FA318FCAC18F8A2177F18 +F0A3EFFFE06E15C06E5B6E491380027C491300496C495A903AFC1FC07FFC496CB512F0D9 +F00314C049C691C7FCC8EA1FF036467DC43E>I<EC3FFC49B512C0010F14F0013F14FC90 +397FF003FE9039FFC001FF0003495A48494813805B120F485AA2485A6F1300007F6E5AED +00784991C7FCA212FFAC6C7EA3123F6DEC03C0A26C6C1407000F16806D140F6C6DEB1F00 +6C6D133E6C01F05B3A007FFC03F86DB55A010F14C0010391C7FC9038003FF82A2F7CAD32 +>I<EE03FEED07FFA5ED001F160FB1EC3FE0903803FFFC010FEBFF8F013F14CF9039FFF8 +07FF48EBC00148903880007F4890C7123F4848141F49140F121F485AA3127F5BA212FFAC +127FA37F123FA26C6C141FA26C6C143F0007157F6C6C91B5FC6CD9C00314FC6C9038F01F +EF6DB5128F011FEBFE0F010713F89026007FC0EBF80036467CC43E>I<EC3FF80103B57E +010F14E0013F8090397FF83FF89039FFC007FC48496C7E48496C7E48486D1380485A001F +ED7FC05B003FED3FE0A2127F5B17F0161F12FFA290B7FCA401F0C9FCA5127FA27FA2123F +17F06C7E16016C6C15E06C6C14036C6DEB07C06C6DEB0F806C01F0EB3F0090397FFE01FE +011FB55A010714F0010114C09026001FFEC7FC2C2F7DAD33>I<EDFF80020F13E0027F13 +F049B512F849EB8FFC90390FFE0FFE90381FFC1F14F8133FEB7FF0A2ED0FFCEBFFE0ED03 +F0ED00C01600ABB612F8A5C601E0C7FCB3B0007FEBFFE0A527467DC522>I<DAFFE0137E +010F9039FE03FF80013FEBFF8F90B812C048D9C07F133F489038001FF84848EB0FFC4848 +903907FE1F80001F9238FF0F00496D90C7FCA2003F82A8001F93C7FCA26D5B000F5D6C6C +495A6C6C495A6C9038C07FF04890B55A1680D8078F49C8FC018013E0000F90CAFCA47F7F +7F90B612C016FC6CEDFF8017E06C826C16FC7E000382000F82D81FF0C77ED83FC0140748 +48020113808248C9FC177FA46D15FF007F17006D5C6C6C4A5A6C6C4A5AD80FFEEC3FF83B +07FFC001FFF0000190B612C06C6C92C7FC010F14F8D9007F90C8FC32427DAC38>I<EB7F +C0B5FCA512037EB1ED07FE92383FFF8092B512E002C114F89139C7F03FFC9138CF801F91 +39DF000FFE14DE14FC4A6D7E5CA25CA35CB3A7B60083B512FEA537457CC43E>I<137C48 +B4FC4813804813C0A24813E0A56C13C0A26C13806C1300EA007C90C7FCAAEB7FC0EA7FFF +A512037EB3AFB6FCA518467CC520>I<EB7FC0B5FCA512037EB293387FFFE0A593380FE0 +004C5A4CC7FC167E5EED03F8ED07E04B5A4B5A037FC8FC15FEECC1FCECC3FE14C7ECDFFF +91B57E82A202F97F02E17F02C07FEC807F6F7E826F7E816F7F836F7F816F7F83707E163F +B60003B512F8A535457DC43B>107 D<EB7FC0B5FCA512037EB3B3B3A3B61280A519457C +C420>I<90277F8007FEEC0FFCB590263FFFC090387FFF8092B5D8F001B512E002816E48 +80913D87F01FFC0FE03FF8913D8FC00FFE1F801FFC0003D99F009026FF3E007F6C019E6D +013C130F02BC5D02F86D496D7EA24A5D4A5DA34A5DB3A7B60081B60003B512FEA5572D7C +AC5E>I<90397F8007FEB590383FFF8092B512E0028114F8913987F03FFC91388F801F00 +0390399F000FFE6C139E14BC02F86D7E5CA25CA35CB3A7B60083B512FEA5372D7CAC3E> +I<EC1FFC49B512C0010714F0011F14FC90397FF80FFF9026FFC0017F48496C7F4848C7EA +3FE000078248486E7E49140F001F82A2003F82491407007F82A400FF1780AA007F1700A4 +6C6C4A5AA2001F5E6D141F000F5E6C6C4A5AA26C6C6CEBFFE06C6D485B27007FF80F90C7 +FC6DB55A010F14F8010114C09026001FFCC8FC312F7DAD38>I<90397FC00FF8B590B57E +02C314E002CF14F89139DFC03FFC9139FF001FFE000301FCEB07FF6C496D13804A15C04A +6D13E05C7013F0A2EF7FF8A4EF3FFCACEF7FF8A318F017FFA24C13E06E15C06E5B6E4913 +806E4913006E495A9139DFC07FFC02CFB512F002C314C002C091C7FCED1FF092C9FCADB6 +7EA536407DAC3E>I<90387F807FB53881FFE0028313F0028F13F8ED8FFC91389F1FFE00 +0313BE6C13BC14F8A214F0ED0FFC9138E007F8ED01E092C7FCA35CB3A5B612E0A5272D7D +AC2E>114 D<90391FFC038090B51287000314FF120F381FF003383FC00049133F48C712 +1F127E00FE140FA215077EA27F01E090C7FC13FE387FFFF014FF6C14C015F06C14FC6C80 +0003806C15806C7E010F14C0EB003F020313E0140000F0143FA26C141F150FA27EA26C15 +C06C141FA26DEB3F8001E0EB7F009038F803FE90B55A00FC5CD8F03F13E026E007FEC7FC +232F7CAD2C>I<EB01E0A51303A41307A2130FA2131FA2133F137F13FF1203000F90B512 +80B7FCA4C601E0C7FCB3A3ED01E0A9150302F013C0137F150790393FF80F8090391FFC1F +006DB5FC6D13FC01015B9038003FE023407EBE2C>I<D97FC049B4FCB50103B5FCA50003 +EC000F6C81B3A85EA25EA25E7E6E491380017FD901F713FE9138F807E76DB512C7010F14 +07010313FE9026007FF0EBFC00372E7CAC3E>I<B6903803FFFCA5000101E09038003E00 +6C163C80017F5D8017F8013F5D6E1301011F5D6E1303010F5D6E13076D5DED800F6D92C7 +FC15C05E6DEBE01E163E6D143CEDF07C027F1378EDF8F8023F5B15FD021F5B15FF6E5BA3 +6E5BA26E90C8FCA26E5AA26E5AA21578362C7EAB3B>I<B6903803FFFCA5000101E09038 +003E006C163C80017F5D8017F8013F5D6E1301011F5D6E1303010F5D6E13076D5DED800F +6D92C7FC15C05E6DEBE01E163E6D143CEDF07C027F1378EDF8F8023F5B15FD021F5B15FF +6E5BA36E5BA26E90C8FCA26E5AA26E5AA21578A215F85D14015D001F1303D83F805B387F +C007D8FFE05B140F92C9FC5C143E495A387FC1F8EB07F06CB45A6C5B000790CAFCEA01FC +36407EAB3B>121 D<001FB71280A49026FC001F130001E0495A5B49495A90C7485A4849 +5B123E4A5B4A5B003C495BA24A90C7FC4A5A4A5AC7FC4A5A495B495BA2495B4990388007 +80491300A2495A4948130F49481400A2485B48495B485BA248495B4890C75A48485C1503 +4848EB1FFEB7FCA4292C7DAB32>I E +%EndDVIPSBitmapFont +%DVIPSBitmapFont: Fk cmtt10 10.95 64 +/Fk 64 126 df<1438147C14FCA4EB03FF011F13E090B512FC4880000780481580261FFE +FD13C09039F0FC3FE0D83FC0131FD87F80EB0FF001001307007E15F800FE14035A1507A3 +6CEC03F0A2007F91C7FC138013C0EA3FF0EA1FFE13FF6C13FF6C14E0000114F86C6C7F01 +1F7F01037F0100148002FD13C09138FC7FE0151FED0FF015070018EC03F8127E1501B4FC +A35AA26CEC03F07E01801307ED0FE0D83FC0131F01F0EB7FC0D81FFEB512806CB612006C +5C6C5CC614F0013F13C0D907FEC7FCEB00FCA5147C143825477BBE30>36 +D<141E147F14FF5BEB03FEEB07FCEB0FF0EB1FE0EB3FC0EB7F80EBFF00485A5B12035B48 +5A120F5BA2485AA2123F5BA2127F90C7FCA412FEAD127FA47F123FA27F121FA26C7EA27F +12076C7E7F12017F6C7EEB7F80EB3FC0EB1FE0EB0FF0EB07FCEB03FEEB01FF7F147F141E +184771BE30>40 D<127812FE7E7F6C7E6C7EEA0FF06C7E6C7E6C7E6C7EEB7F80133F14C0 +131FEB0FE014F01307A2EB03F8A214FC1301A214FE1300A4147FAD14FEA4130114FCA213 +0314F8A2EB07F0A2130F14E0EB1FC0133F1480137FEBFF00485A485A485A485AEA3FE048 +5A485A90C7FC5A1278184778BE30>I<14E0497E497EA60038EC0380007EEC0FC0D8FF83 +EB3FE001C3137F9038F3F9FF267FFBFB13C06CB61280000FECFE00000314F86C5C6C6C13 +C0011F90C7FC017F13C048B512F04880000F14FE003FECFF80267FFBFB13C026FFF3F913 +E09038C3F87F0183133FD87E03EB0FC00038EC0380000091C7FCA66D5A6D5A23277AAE30 +>I<143EA2147FAF007FB7FCA2B81280A36C1600A2C76CC8FCAF143EA229297DAF30>I<EA +03E0EA0FF0EA1FF813FCEA3FFEA213FFA27EA27E1203EA007FA2137E13FEEA01FC1203EA +07F8EA3FF0127FEAFFE0EA7F801300123C1019708B30>I<120FEA3FC0EA7FE0A2EAFFF0 +A4EA7FE0A2EA3FC0EA0F000C0C6E8B30>46 D<16F01501ED03F8A21507A2ED0FF0A2ED1F +E0A2ED3FC0A2ED7F80A2EDFF00A24A5AA25D1403A24A5AA24A5AA24A5AA24A5AA24A5AA2 +4AC7FCA2495AA25C1303A2495AA2495AA2495AA2495AA2495AA249C8FCA2485AA25B1203 +A2485AA2485AA2485AA2485AA2485AA248C9FCA25AA2127CA225477BBE30>I<14FE9038 +07FFC0497F013F13F8497F90B57E48EB83FF4848C6138049137F4848EB3FC04848EB1FE0 +49130F001F15F0491307A24848EB03F8A290C712014815FCA400FEEC00FEAD6C14016C15 +FCA36D1303003F15F8A26D1307001F15F0A26D130F6C6CEB1FE0A26C6CEB3FC06C6CEB7F +806D13FF2601FF8313006CEBFFFE6D5B6D5B010F13E06D5BD900FEC7FC273A7CB830>I< +EB03C0497EA2130FA2131FA2133F137F13FF1203123FB5FCA213EF138FEA7E0F1200B3B0 +003FB512F84814FCB612FEA26C14FC6C14F81F3977B830>I<EB07FC90383FFFC090B512 +F00003804814FE4880261FF80F1380263FE00113C09038C0007F4848EB3FE090C7121FED +0FF04814075A6C15F81503A3127E1218C8FCA2150716F0150F16E0151F16C0153FED7F80 +15FF4A13005DEC07FC4A5A4A5A4A5A4A5A4A5A4990C7FC495A495AEB0FF0EB3FE0495A49 +5A4890C8FC4848EB01F04848EB03F8485AEA1FE048B6FCB7FCA37E6C15F025397BB830> +I<EB03FF013F13E090B512F84814FE4880481580260FFE0113C09038F0007F4848EB1FE0 +150F16F01507A26C5A6C5AC8FC150F16E0A2151FED3FC0157FEDFF8002071300903807FF +FE495B5D8115FF6D1480D9000113C09138003FE0ED1FF0ED07F8150316FC150116FE1500 +A21218127EB4FCA2150116FC4814036C15F86C6C13076DEB1FF0D83FF0133F3A1FFE01FF +E06CB612C06C15806CECFE00C65C013F13F001031380273A7CB830>I<EC03FC4A7E140F +141FA2143F147F157E14FEA2EB01FCEB03F8A2EB07F0A2EB0FE0EB1FC0A2EB3F80A2EB7F +0013FEA2485A485AA2485AA2485A485AA2485AA248C7FC12FEB8FC1780A46C1600C8007E +C7FCAA91387FFFFE91B6FCA46E5B29397DB830>I<000FB612804815C05AA316800180C8 +FCAEEB83FF019F13C090B512F015FC8181D9FE0313809039F0007FC049133F0180EB1FE0 +6CC7120F000E15F0C81207A216F81503A31218127EA2B4FC150716F048140F6C15E06C14 +1F6DEB3FC06D137F3A3FE001FF80261FFC0F13006CB55A6C5C6C5C6C14E06C6C1380D90F +FCC7FC25397BB730>I<127CB712FC16FEA416FC48C7EA0FF816F0ED1FE0007CEC3FC0C8 +EA7F80EDFF00A24A5A4A5A5D14075D140F5D4A5AA24A5AA24AC7FCA25C5C13015CA21303 +5CA213075CA4495AA6131F5CA96D5A6DC8FC273A7CB830>55 D<49B4FC011F13F0017F13 +FC90B57E0003ECFF804815C048010113E03A1FF8003FF049131FD83FC0EB07F8A24848EB +03FC90C71201A56D1303003F15F86D13076C6CEB0FF06C6CEB1FE0D807FCEB7FC03A03FF +83FF806C90B512006C6C13FC011F13F0497F90B512FE48802607FE0013C0D80FF8EB3FE0 +D81FE0EB0FF04848EB07F8491303007F15FC90C712014815FE481400A66C14016C15FC6D +1303003F15F86D1307D81FF0EB1FF06D133F3A0FFF01FFE06C90B512C06C1580C6ECFE00 +6D5B011F13F0010190C7FC273A7CB830>I<49B4FC010F13E0013F13F890B57E48804880 +48010113803A0FFC007FC0D81FF0EB3FE04848131F49EB0FF048481307A290C7EA03F85A +4815FC1501A416FEA37E7E6D130315076C7E6C6C130F6D133FD80FFC13FF6CB6FC7E6C14 +FE6C14F9013FEBE1FC010F138190380060011400ED03F8A2150716F0150F000F15E0486C +131F486CEB3FC0157FEDFF804A1300EC07FE391FF01FFC90B55A6C5C6C5C6C1480C649C7 +FCEB3FF0273A7CB830>I<120FEA3FC0EA7FE0A2EAFFF0A4EA7FE0A2EA3FC0EA0F00C7FC +AF120FEA3FC0EA7FE0A2EAFFF0A4EA7FE0A2EA3FC0EA0F000C276EA630>I<007FB7FCA2 +B81280A36C16006C5DCBFCA7003FB612FE4881B81280A36C1600A229157DA530>61 +D<EC1FE0ECFFF8010313FE010F7F4914804914C090397FF03FE09038FF800F4890380007 +F0D803FC13033A07F801FBF89038F007FF380FE01F4A13FCEA1FC0495A003FEBFF0F9038 +00FE07903901FC03FE007FEBF801EA7E03ECF000A2EAFE0700FC49137EAA00FE6D13FED8 +7E0314FCA2ECF801D87F0114F8003FEBFC03903900FE07F0903880FF0F001F90387FFFE0 +6D6C13C0EA0FE06E13803A07F007FE009038F801F86C6CC7127C6CB414FE6CEB80039038 +7FF01F6DB512FC6D14F86D14E0010314C00100EBFE00EC1FF0273A7CB830>64 +D<147F4A7EA2497FA4497F14F7A401077F14E3A3010F7FA314C1A2011F7FA490383F80FE +A590387F007FA4498049133F90B6FCA34881A39038FC001F00038149130FA40007814913 +07A2D87FFFEB7FFFB56CB51280A46C496C130029397DB830>I<007FB512F0B612FE6F7E +82826C813A03F8001FF815076F7E1501A26F7EA615015EA24B5A1507ED1FF0ED7FE090B6 +5A5E4BC7FC6F7E16E0829039F8000FF8ED03FC6F7E1500167FA3EE3F80A6167F1700A25E +4B5A1503ED1FFC007FB6FCB75A5E16C05E6C02FCC7FC29387EB730>I<91387F803C9039 +03FFF03E49EBFC7E011F13FE49EBFFFE5B9038FFE07F48EB801F3903FE000F484813075B +48481303A2484813015B123F491300A2127F90C8FC167C16005A5AAC7E7EA2167C6D14FE +123FA27F121F6D13016C6C14FCA26C6CEB03F86D13076C6CEB0FF03901FF801F6C9038E0 +7FE06DB512C06D14806D1400010713FC6D13F09038007FC0273A7CB830>I<003FB512E0 +4814FCB67E6F7E6C816C813A03F8007FF0ED1FF8150F6F7E6F7E15016F7EA2EE7F80A216 +3F17C0161FA4EE0FE0AC161F17C0A3163F1780A2167F17005E4B5A15034B5A150F4B5AED +7FF0003FB65A485DB75A93C7FC6C14FC6C14E02B387FB730>I<007FB7FCB81280A47ED8 +03F8C7123FA8EE1F0093C7FCA4157C15FEA490B5FCA6EBF800A4157C92C8FCA5EE07C0EE +0FE0A9007FB7FCB8FCA46C16C02B387EB730>I<3B3FFF800FFFE0486D4813F0B56C4813 +F8A26C496C13F06C496C13E0D803F8C7EAFE00B290B6FCA601F8C7FCB3A23B3FFF800FFF +E0486D4813F0B56C4813F8A26C496C13F06C496C13E02D387FB730>72 +D<007FB6FCB71280A46C1500260007F0C7FCB3B3A8007FB6FCB71280A46C1500213879B7 +30>I<D83FFC90381FFF80486C4913C0B54913E0A26C6D6C13C06C6E13800003913801F8 +00EBF7C0A3EBF3E0A314F013F1A214F8A213F014FCA2147C147EA2143E143FA2141FA215 +81A2140F15C1A2140715E1A2140315F1A21401A215F91400A3157DA3153FEA3FFF481380 +B5EAC01FA26CEB800F6C496C5A2B387EB730>78 D<007FB512F0B612FE6F7E16E0826C81 +3903F8003FED0FFCED03FE15016F7EA2821780163FA6167F17005EA24B5A1503ED0FFCED +3FF890B6FC5E5E16804BC7FC15F001F8C9FCB0387FFFC0B57EA46C5B29387EB730>80 +D<003FB57E4814F0B612FC15FF6C816C812603F8017F9138003FF0151F6F7E1507150382 +1501A515035E1507150F4B5A153F4AB45A90B65A5E93C7FC5D8182D9F8007FED3FE0151F +150F821507A817F8EEF1FCA53A3FFF8003FB4801C0EBFFF8B56C7E17F06C496C13E06C49 +EB7FC0C9EA1F002E397FB730>82 D<90390FF803C0D97FFF13E048B512C74814F74814FF +5A381FF80F383FE001497E4848137F90C7123F5A48141FA2150FA37EED07C06C91C7FC7F +7FEA3FF0EA1FFEEBFFF06C13FF6C14E0000114F86C80011F13FF01031480D9003F13C014 +019138007FE0151FED0FF0A2ED07F8A2007C140312FEA56C140716F07F6DEB0FE06D131F +01F8EB3FC001FF13FF91B51280160000FD5CD8FC7F13F8D8F81F5BD878011380253A7BB8 +30>I<003FB712C04816E0B8FCA43AFE003F800FA8007CED07C0C791C7FCB3B1011FB5FC +4980A46D91C7FC2B387EB730>I<3B7FFFC007FFFCB56C4813FEA46C496C13FCD803F8C7 +EA3F80B3B16D147F00011600A36C6C14FE6D13016D5CEC800390393FE00FF890391FF83F +F06DB55A6D5C6D5C6D91C7FC9038007FFCEC1FF02F3980B730>I<D87FFE90380FFFC0B5 +4913E06E5AA24A7E6C486D13C0D807F0903801FC00A26D130300035DA46C6C495AA46C6C +495AA46D131F6D5CA3EC803F013F5CA46D6C48C7FCA490380FE0FEA401075B14F1A30103 +5BA314FB01015BA314FFA26D5BA46E5A6E5A2B397EB730>I<3A3FFF01FFF84801837F02 +C77FA202835B6C01015B3A01FC007F806D91C7FC00005C6D5BEB7F01EC81FCEB3F8314C3 +011F5B14E7010F5B14FF6D5BA26D5BA26D5BA26D90C8FCA4497FA2497FA2815B81EB0FE7 +81EB1FC381EB3F8181EB7F0081497F49800001143F49800003141F49800007140FD87FFE +EB7FFFB590B5128080A25C6C486D130029387DB730>88 D<007FB5FCB61280A4150048C8 +FCB3B3B3A5B6FC1580A46C140019476DBE30>91 D<127CA212FEA27EA26C7EA26C7EA26C +7EA26C7EA26C7EA26C7EA212017FA26C7EA26D7EA26D7EA26D7EA26D7EA26D7EA26D7EA2 +130180A26D7EA26E7EA26E7EA26E7EA26E7EA26E7EA26E7EA2140181A26E7EA2ED7F80A2 +ED3FC0A2ED1FE0A2ED0FF0A2ED07F8A21503A2ED01F0150025477BBE30>I<007FB5FCB6 +1280A47EC7123FB3B3B3A5007FB5FCB6FCA46C140019477DBE30>I<EB3FFC48B57E4814 +E04880488048809038F00FFE9038E001FF806F7E6C48133F6C4880C8121FA491B5FC130F +137F48B6FC12075A48EBC01F383FFC00EA7FE0138048C7FC5AA46C143FA26C6C137F9038 +C001FF263FF80FEBFFC06CB712E0A2000714F76C14C3C6020013C0D93FF090C7FC2B2A7C +A830>97 D<EA3FFC487E12FFA2127F123F1200AAEC03FE91381FFF80027F13E091B57E90 +B612FC82ECFE079138F001FF4A6C13804A137F4AEB3FC091C7121F4915E0160FA217F016 +07A8160FA217E07F161F6EEB3FC0A26EEB7F806E13FFDAF00313009138FC0FFE91B55A5E +495CD97E7F13C0D93C1F90C7FC90380003FC2C3980B730>I<ECFFE0010713FC011F7F01 +7F7F90B612804815C048EB807F3907FC003F485A485A49EB1F804848EB0F004990C7FC12 +7F90C9FCA25A5AA87E7EA27F003FEC07C06DEB0FE06C7E6D131F6C6C14C0D807FE133F90 +39FFC0FF806C90B5FCC615006D5B011F13F801075B01011380232A7AA830>I<913801FF +E04A7F5CA28080EC0007AAEB03FE90381FFF874913E790B6FC5A5A481303380FFC00D81F +F0133F49131F485A150F4848130790C7FCA25AA25AA87E6C140FA27F003F141F6D133F6C +7E6D137F390FF801FF2607FE07EBFFC06CB712E06C16F06C14F76D01C713E0011F010313 +C0D907FCC8FC2C397DB730>I<49B4FC010713E0011F13F8017F7F90B57E488048018113 +803A07FC007FC04848133FD81FE0EB1FE0150F484814F0491307127F90C7FCED03F85A5A +B7FCA516F048C9FC7E7EA27F003FEC01F06DEB03F86C7E6C7E6D1307D807FEEB1FF03A03 +FFC07FE06C90B5FC6C15C0013F14806DEBFE00010713F8010013C0252A7CA830>I<EDFF +80020713E0021F13F05C4A13F891B5FC491387903803FE079138FC03F0903907F800C04A +1300A8003FB612C04815E0B7FCA36C15C0260007F0C7FCB3A9003FB512FE4880B71280A2 +6C15006C5C25397DB830>I<D903FC13FF90261FFF8713C04913DF90B712E05A5A2607FE +07138F903AF801FE07C048486C6CC7FCA2497F001F8149133FA56D137F000F92C7FC6D5B +A26C6C485AEBFE0790B55A5D485C15C001DF5BD9C3FCC8FC01C0C9FCA37F7F6CB512F015 +FF6C15C04815F0488148813A3FE0001FFE0180130148C8127F007E8100FE168048151FA5 +6C153F007FED7F006D5C6C6C495A01F013076CB4EB7FFC6C90B55A6C5D000115C06C6C91 +C7FC011F13FC010113C02B3E7DA730>I<EA3FFC487E12FFA2127F123F1200AAEC01FE91 +380FFF80023F13E091B57E90B67EA29138FE07FCECF8039138E001FE14C0EC8000A291C7 +FCA25BB3A23B3FFFF81FFFF8486D4813FCB500FE14FEA26C01FC14FC6C496C13F82F3880 +B730>I<14E0EB03F8A2497EA36D5AA2EB00E091C8FCA9381FFFF8487F5AA27E7EEA0001 +B3A9003FB612C04815E0B7FCA27E6C15C023397AB830>I<EC01C0EC07F0A2EC0FF8A3EC +07F0A2EC01C091C7FCA990B512F04814F8A47EEB0003B3B3A5EC07F0A2123C007EEB0FE0 +B4131FEC3FC0147F90B512806C14005C6C5B000F13F0000313C01D4E7CB830>I<EA7FF8 +487EA4127F1200AB0203B512804A14C017E0A217C06E14809139001FE0004B5A4B5A4BC7 +FC4A5A4A5AEC0FF84A5A4A5A4A5A4A5A01FD7F90B57E8114F7ECE3F8ECC1FCEC81FEEC00 +FF497F496D7E6F7E826F7E15076F7E6F7E3B7FFFF81FFFE0B56C4813F017F8A217F06C49 +6C13E02D387FB730>I<387FFFF8B57EA47EEA0001B3B3A8007FB612F0B712F8A46C15F0 +25387BB730>I<02FC137E3B7FC3FF01FF80D8FFEF01877F90B500CF7F15DF92B57E6C01 +0F13872607FE07EB03F801FC13FE9039F803FC01A201F013F8A301E013F0B3A23C7FFE0F +FF07FF80B548018F13C0A46C486C01071380322881A730>I<EC01FE3A3FFC0FFF80267F +FE3F13E000FF90B57E90B67E7E6C9038FE07FCC6EBF8039138E001FE14C0EC8000A291C7 +FCA25BB3A23B3FFFF81FFFF8486D4813FCB500FE14FEA26C01FC14FC6C496C13F82F2880 +A730>I<49B4FC010F13E0013F13F8497F90B57E0003ECFF8014013A07FC007FC04848EB +3FE0D81FE0EB0FF0A24848EB07F8491303007F15FC90C71201A300FEEC00FEA86C14016C +15FCA26D1303003F15F86D13076D130F6C6CEB1FF06C6CEB3FE06D137F3A07FF01FFC06C +90B512806C15006C6C13FC6D5B010F13E0010190C7FC272A7CA830>I<EC03FE3A3FFC1F +FF80267FFE7F13E000FF90B57E90B612FC6C816CEBFE07C69038F001FF4A6C13804A137F +4AEB3FC091C7121F4915E0160FA217F01607A8160FA217E07F161F6EEB3FC0A26EEB7F80 +6E13FFDAF00313009138FC0FFE91B55A5E495C6E13C0021F90C7FCEC03FC91C9FCAD383F +FFF8487FB57EA26C5B6C5B2C3C80A730>I<ED07F83A3FFF803FFF486DB51280B512C302 +CF14C06C13DF6C9038FFFC3FD8001F13E09238801F809238000F004A90C7FC5C5C5CA25C +A45CAF003FB512FC4880B7FCA26C5C6C5C2A287EA730>114 D<90381FFC1E48B5129F00 +0714FF5A5A5A387FF007EB800100FEC7FC4880A46C143E007F91C7FC13E06CB4FC6C13FC +6CEBFF806C14E0000114F86C6C7F01037F9038000FFF02001380007C147F00FEEC1FC0A2 +150F7EA27F151F6DEB3F806D137F9039FC03FF0090B6FC5D5D00FC14F0D8F83F13C02678 +0FFEC7FC222A79A830>I<EB0780497E131FA9003FB612E04815F0B7FCA36C15E026001F +C0C7FCB216F8ED01FCA5ECE003010FEB07F814F09138FC1FF06DB512E06D14C016806D14 +009038007FFCEC1FF026337EB130>I<D83FFCEB3FFC486C497E00FF14FFA2007F147F00 +3F143F00001400B3A41501A2150315076D130F903A7FC07FFFF891B612FC6D15FE7F6D49 +13FC6D9038F87FF8010001C0C7FC2F2880A630>I<3B3FFFC01FFFE0486D4813F0B515F8 +A26C16F06C496C13E0D807E0C7EA3F00A26D5C0003157EA56D14FE00015DEC0F80EC1FC0 +EC3FE0A33A00FC7FF1F8A2147DA2ECFDF9017C5C14F8A3017E13FBA290393FF07FE0A3EC +E03FA2011F5C90390F800F802D277FA630>119 D<3A3FFF81FFFC4801C37FB580A26C5D +6C01815BC648C66CC7FC137FEC80FE90383F81FC90381FC3F8EB0FE3ECE7F06DB45A6D5B +7F6D5B92C8FC147E147F5C497F81903803F7E0EB07E790380FE3F0ECC1F890381F81FC90 +383F80FE90387F007E017E137F01FE6D7E48486D7E267FFF80B5FCB500C1148014E3A214 +C16C0180140029277DA630>I<3B3FFFC07FFF80486DB512C0B515E0A26C16C06C496C13 +803B01FC0003F000A2000014076D5C137E150F017F5C7F151FD91F805BA214C0010F49C7 +FCA214E00107137EA2EB03F0157C15FCEB01F85DA2EB00F9ECFDF0147D147FA26E5AA36E +5AA35DA2143F92C8FCA25C147EA2000F13FE486C5AEA3FC1EBC3F81387EB8FF0EBFFE06C +5B5C6C90C9FC6C5AEA01F02B3C7EA630>I<001FB612FC4815FE5AA316FC90C7EA0FF8ED +1FF0ED3FE0ED7FC0EDFF80003E491300C7485A4A5A4A5A4A5A4A5A4A5A4A5A4990C7FC49 +5A495A495A495A495A495A4948133E4890C7127F485A485A485A485A485A48B7FCB8FCA4 +6C15FE28277DA630>I<ED3FF0913803FFF8140F5C147F16F09138FFF00092C7FC495A5C +B3A21303495A133F383FFFF0B55A5C91C8FC14C080003F7F38003FF813076D7E1301B3A2 +806D7E15F091387FFFF016F8141F8014039138003FF025477BBE30>I<EA7FE0EAFFFE6D +7E8014F07EC66C7E13076D7E1301B3A2806D7E15E091387FFFE06E13F8801407141F5C4A +13E09138FFE00092C7FC495A5CB3A21303495A137F387FFFF0B5FC14C05C49C8FCEA7FE0 +25477BBE30>125 D E +%EndDVIPSBitmapFont +%DVIPSBitmapFont: Fl cmmi10 10.95 5 +/Fl 5 122 df<EC07F8EC3FFF9138FC0F80903903F003E090270FC001F01370D91F806D +13F0017FC714E001FE804848147E000316014916C04848143F000FEE03805B001F160700 +3F1700495D170E007F161E49151C173C5F00FF167090C813F05F5F5FA294C7FC7EA25E6C +5D4B7F6C6C9039079F81C0ED0F1F6C6C90383C0F836C6C01F014803C01F80FC007C7003B +007FFF0003FED91FF0EB00F834297DA73A>11 D<EC1FF0903801FFFC010713FF011F14C0 +90397FC01FE09038FC0007D801F01301D803C090C7FC485AA290C9FC5A120EA2120F7E7F +3803CFFF6CB57E023FC7FC3803DFFE380780E0000EC9FC5A123C5A127012F05AA515066C +140E5D00785C007C14F0393F8007E06CB55A000791C7FC000113FC38007FE0232B7DA82A +>34 D<147014FC1301A25CA21303A25CA21307A25CA2130FA25CA2007FB512F0B6FC15E0 +39001F8000133FA291C7FCA25BA2137EA213FEA25BA21201A25BA21203A25BA21207EC01 +C013E01403000F1480A2EBC0071500140E141E5C000713385C3803E1E03801FF80D8003E +C7FC1C3A7EB821>116 D<D901F8133FD907FEEBFFE0903A1E0F83C0F0903A3807C780F8 +90397003CF0301E013FED801C0EBFC071203018013F8D8070015F0EE01C0000E4AC7FCA2 +001E1307A2C75BA2140F5DA3141F5DA3143F92380001C0A34A1303001E1680003F017E13 +07267F80FE14005ED8FF81141ED901DF131CD8FE035C3A7C078F80F03A3C0F07C1E03A1F +FC03FF802707F0007EC7FC2D297EA734>120 D<137C48B4EC03802603C7C0EB0FC0EA07 +03000F7F000E151F001C168013071238163FD8780F150000705BA2D8F01F5C4A137E1200 +133F91C712FE5E5B137E150113FE495CA2150300015D5BA215075EA2150F151F00005D6D +133F017C137F017E13FF90393F03DF8090380FFF1FEB01FC90C7123F93C7FCA25DD80380 +137ED80FE013FE001F5C4A5AA24848485A4A5A6CC6485A001C495A001E49C8FC000E137C +380781F03803FFC0C648C9FC2A3B7EA72D>I E +%EndDVIPSBitmapFont +%DVIPSBitmapFont: Fm cmsy10 10.95 6 +/Fm 6 106 df<EB03C0A2805CA600F0140F00FC143F00FE147F00FF14FF393FC3C3FC39 +0FE187F03903F18FC03900FDBF00EB3FFCEB0FF0EB03C0EB0FF0EB3FFCEBFDBF3903F18F +C0390FE187F0393FC3C3FC39FF03C0FF00FE147F00FC143F00F0140F00001400A6805CA2 +20277AA92D>3 D<EB0FFCEB3FFF90B512C0000314F04880488048804880A2481580A3B7 +12C0AA6C1580A36C1500A26C5C6C5C6C5C6C5CC614C0013F90C7FCEB0FFC22227BA72D> +15 D<153FEC03FFEC0FE0EC3F80EC7E00495A5C495AA2495AB3AA130F5C131F495A91C7 +FC13FEEA03F8EA7FE048C8FCEA7FE0EA03F8EA00FE133F806D7E130F801307B3AA6D7EA2 +6D7E80EB007EEC3F80EC0FE0EC03FFEC003F205B7AC32D>102 D<12FCEAFFC0EA07F0EA +01FCEA007E6D7E131F6D7EA26D7EB3AA801303806D7E1300147FEC1FC0EC07FEEC00FFEC +07FEEC1FC0EC7F0014FC1301495A5C13075CB3AA495AA2495A133F017EC7FC485AEA07F0 +EAFFC000FCC8FC205B7AC32D>I<146014F01301A214E01303A214C01307A2EB0F80A214 +005BA2131E133EA25BA2137813F8A25B1201A25B1203A2485AA25B120FA290C7FC5AA212 +3EA2123C127CA2127812F8A41278127CA2123C123EA27EA27E7FA212077FA26C7EA21201 +7FA212007FA21378137CA27FA2131E131FA27F1480A2EB07C0A2130314E0A2130114F0A2 +13001460145A77C323>I<126012F07EA21278127CA2123C123EA27EA27E7FA212077FA2 +6C7EA212017FA212007FA21378137CA27FA2131E131FA27F1480A2EB07C0A2130314E0A2 +130114F0A414E01303A214C01307A2EB0F80A214005BA2131E133EA25BA2137813F8A25B +1201A25B1203A2485AA25B120FA290C7FC5AA2123EA2123C127CA2127812F8A25A126014 +5A7BC323>I E +%EndDVIPSBitmapFont +%DVIPSBitmapFont: Fn cmr8 8 1 +/Fn 1 66 df<4A7E4A7EA34A7EA24A7EA3EC1BF81419A2EC30FCA2EC70FEEC607EA24A7E +A349486C7EA2010380EC000FA201066D7EA3496D7EA2011FB57EA29038180001496D7EA3 +49147EA201E0147F4980A20001ED1F801203000716C0D80FF0EC3FE0D8FFFC0103B5FCA2 +302F7EAE35>65 D E +%EndDVIPSBitmapFont +%DVIPSBitmapFont: Fo cmssbx10 14.4 6 +/Fo 6 115 df<001FB712E0007F16FF18E0B912FC84727E85858585859138C00001DC00 +3F7F050F7F838371148083A37213C0AC95B51280A35F4D14005F4D5B173F4CB55A91B85A +A26161198096C7FC18FC18F0188005E0C8FC02C0CBFCB3AB7E5C001F90CCFC425376D254 +>80 D<913803FFFC027FEBFFE049B612FC010FEDFF804916E0017F16F890B812FE5A5AA2 +5A485FED801F489038F800014AEB007F4801C0141F17074A6E5A17014890C9FC18781838 +181095C7FCA280A38080806C13FC14FF15F06CECFF8016F86C15FF17E06C16F86C826C16 +FF6C836D826D826D826D820103826D82EB003F020F81140003071580ED007F040F14C016 +0316007113E083A283A283A312101238123C123F6D5D6D17C0EA7FF06D5D01FE5D6D6C91 +B5128002F013039126FF801F1400BAFC60A26060003F5F000F5F00035FC65F013F4BC7FC +010715F8D9007F14C0020301FCC8FC3B597AD549>83 D<91381FFFE00103B512FE011F6E +7E90B712E0000316F84882488283ECFE07DAE001148091C7FC01FC6E13C06C5A13E0496E +13E05B90C8FC1202C9FCA50307B5FC020FB6FC49B7FC130F133F90B6123F000314E04814 +004813F8485B485B5C485BA2B5FC91C7FCA45E8093B5FC6C5C6E5A6E5A6CEBF83F91B7FC +6C15BF6C153F6C14FE6C14FC6C14F06C4A6C13C0013FD9800F1380D90FFCC9FC333A7CB8 +3F>97 D<913803FFF8023FEBFF8091B6FC1303130F5B5BA25B90B5EAE07FED801F48EC00 +0716034AEB01004892C7FCAF001F90B5FC007F8182B7FCA46C5D6C92C7FC000349C8FCB3 +B3A77E5C6C6C5A29547DD328>102 D<91263FFFC0EB0FC00103B500FCEBFFE0010FECFF +03013F15CF4992B5FC90B912F05A5A48EEFE0748D9FC039038FF0070DAF000150048496D +7FA34A7F4883AA6C5F6E5BA36C6D90B5C7FCECFC036C90B65A6C5E6C5E6C5E485E5FD803 +EF92C8FC01E314FC2607E03F13C091CBFC7FA27F13FE90B712C017FCEFFF8018E018F86C +83846C83A2198012074818C05A5A4848C7000114E049EC001F48481507A283A36D5DA26C +6C4B13C06D5D02C0147F6C01FC0107B512806C90B812006C5F6C5F6C5F6C5F6C6C16C001 +1F93C7FC010315F8D9001F91C8FC3C517DB742>I<D81FFCEB07E0D87FFE131F6D137FB5 +13FF14035C5CA25C5CA25CEDFC00ECFFE015804AC7FC5C5C5C5CA25CA35CB3AB7E91C8FC +EA1FFE233879B72D>114 D E +%EndDVIPSBitmapFont +%DVIPSBitmapFont: Fp cmss10 10.95 31 +/Fp 31 121 df<027E13FF49B47E13075B5BA2EB3F8314004990C7FC137EA213FEADB6EA +807FA6C648C7FCB3B028407FBF31>12 D<B512FEA617067F961E>45 +D<EB0FF8EB3FFF90B512C04814F048804880390FF01FFE391FC003FF4848C6138090C712 +7F48EC3FC0127EED1FE012FE48140F007C15F0123C1238001814071208C8FCA2150FA216 +E0A2151F16C0153F1680ED7F005D5D4A5A4A5A4A5A4A5A4A5A4A5A4AC7FC14FE495A495A +495A495A495A495A49C8FC13FC485A485A485A485A485A48C9FC48B612F0B7FCA6243E7C +BD2D>50 D<B612F8EDFF8016E016F88290C7EA1FFF03037F03007F707EEE1FF0707E707E +1603707EA2707EEF7F80A2173F18C0A2171F18E0A2170FA218F0AC18E0171FA318C0173F +A2EF7F80A2EFFF00A24C5A16034C5A4C5A4C5A4C5AEEFFC003035B031F90C7FC90B65A16 +F816E0168003F8C8FC343F78BE42>68 D<B8FCA690CAFCB3A390B612FCA690CAFCB3A590 +B71280A7293F78BE36>I<12FFB3B3B3A9083F78BE19>73 D<D8FFF015FEA27FA27FA27F +12FE137FA280133F80131F80130F801307801303801301801300808081143F81141F8114 +0F81140781140381140181140081811680153F16C0151F16E0150F16F0150716F8150316 +FC1501A2ED00FE16FF167FA2163FA2161FA22F3F78BE40>78 D<4AB47E020F13F0027F13 +FE91B6FC010315C04981011F010013F8D93FF8EB1FFCD97FE0EB07FE4A130349486D7E48 +90C813804848ED7FC049153F4848ED1FE04848ED0FF0A24848ED07F8A2491503003F17FC +A2491501007F17FEA390CAFC4817FFAC6D5D007F17FEA46D1503003F17FCA26D1507001F +17F86D150F000F17F06D151F6C6CED3FE0A26C6CED7FC06C6CEDFF806C6D4913006E5BD9 +7FF0EB0FFE6D6C495A6DB4EBFFF8010790B512E06D5D010092C7FC6E5B020F13F0020113 +8038437BC043>I<B612F015FEEDFFC08216F890C7EA3FFCED07FEED01FF6F1380167FEE +3FC0EE1FE0A2160F17F01607A6160F17E0161FA2EE3FC0167FEEFF804B1300ED07FEED3F +FC90B65A5E16C093C7FC15FC90CAFCB3A92C3F78BE3A>I<ECFFF0010713FF011F14C001 +7F14F890B67E5A48EB803F3A07FC0007F848481301D81FE0EB0078491438003F15184991 +C7FCA248CAFCA67FA26C7E7F7F6C7EEA0FFEEBFFC06C13FC6CEBFFC06C14F86C14FE013F +6D7E010F80010380D9003F7F02037F9138007FFC150F6F7E15018281821780163FA7EE7F +0012601270007815FE007C1401007F4A5AD8FFC0130701F0EB1FF801FFEB7FF06C90B55A +001F5D000792C7FC00015CD8003F13F8010113C029437CC033>83 +D<B912FEA6C890C8FCB3B3B3A2373E7DBD3E>I<B46CEE1FC0007FEF3F807F003FEF7F00 +A27F001F17FE7F000F4C5AA27F00074C5AA26C6C4B5AA27F00014C5AA27F6C4C5A80017F +4B5AA280013F4BC7FCA26D6C14FEA280010F4A5AA26D6C5C1603A26D6C495AA26D6C5C16 +0FA26D6C5C161FA2DA7F805B163FDA3FC090C8FC5EA291381FE07E16FE020F5B15F015F1 +02075B15F902035B15FB15FF6E5BA26E5BA36F5A3A3F7FBE3D>86 +D<D87FC0ED0FF86C6CED1FF06D16E0001FEE3FC06C6C157F6C6CEDFF806C6C16004C5A6C +6C14036C6D5C6D6C495A160F6D6C495A6D6C5C6D6C495A167F6D6C5C6D6C49C7FC010149 +5A903800FF03ED83FC91387FC7F8EC3FCF91381FEFF0EDFFE06E5B806E5B93C8FC6E5A81 +4A7F5C824A7F91381FEFF015CF91383FC7F891387F83FC9138FF03FE150149486C7E4948 +6D7E0107814A6D7E4948131F49486D7E8349486D7E4948130301FF8191C76C7E48486E13 +800003167F484816C049ED3FE04848ED1FF0001F17F849150F4848ED07FC007FEE03FE48 +4816FF90C97E383F7EBE3D>88 D<EB0FF890B5FC00031480000F14E04814F0A29038F00F +F890388003FC381E0001001814FE00101300C812FF157FA7EC7FFF010FB5FC137F48B6FC +120748EBF07F383FFC0013C048C7FC12FE5AA315FF7E5C387F8007EBE01F6CB6FCA26C14 +7F6C13FC6C13F0000190C7FC202B7CA92C>97 D<49B47E010F13F0013F13FC4913FF90B6 +12805A481300D807FCEB1F00D80FF0130748487F4990C7FC123F5B127F90C9FCA312FEAA +127FA36C7EA26C6C14406DEB01C06C6C13036C6C131F01FF13FF6C90B5FC7E6C6C14806D +EBFE00010F13F001011380222B7DA928>99 D<ED07F0B3A4EB07F8EB3FFF4913C748B512 +F74814FF5A1480390FFC003FD81FF0131F49130F48481307A2485A90C7FCA312FEAA127F +A37F003F140F7F6C6C131F6D133F6C6C137F9038FF01FF6C90B5FC6C14F76C14E76C1487 +90383FFE07D90FF0C7FC24407DBE2F>I<EB03F8EB1FFF017F13C090B57E488048803807 +FE07390FF801FC9038E000FE4848137E003F143E49133F90C77E5A127EED0F80B7FCA600 +FCC9FCA37E127EA2127FA26C7EA26C7E6D14806C6C1303D807FC131F01FF13FF6C90B5FC +7E6C6C14006D13FC010F13E0010190C7FC212B7DA928>I<EC1FF0ECFFFC5B13075BA290 +381FE03C90383F800491C7FC5B137E13FEADB6FCA6C648C7FCB3B01E407FBF1C>I<D903 +FC133F90390FFF03FF013F13DF4990B5128090B7FC5A9026FE07FCC7FC3803F80148486C +7E49137EA248487FA86C6C137EA26D13FE6C6C485A3901FE07F848B5FC5D485C5DD80FCF +90C8FCEBC3FC0180C9FC7FA37F6CB512F015FF6C15C0824881001F81823A3FE0001FFED8 +7F80130390C8FC48814881A46C5D6C5D01C01303D83FF0EB0FFCD81FFEEB7FF86CB65A6C +5D6C5DC692C7FC011F13F8010313C0293D7EA82D>I<12FEB3A449B4FC010713C0011F13 +F0017F13F890B512FCB6FC9038F80FFEEBE003EBC00190388000FFA290C7127FA35AB3A9 +203F79BE2F>I<12FFA81200AF127FB3B3A4083F7ABE16>I<12FEB3A5EDFF804A13004A5A +4A5A4A5A4A5A4A5A4A5A4A5A4990C7FC495A495A495A5C495A495A497E13FFB57E8013FB +EBF1FCEBE0FE497E497E496C7E488048131F6E7E8114076E7E8114016E7E157F1680153F +ED1FC016E0233F79BE2C>107 D<26FC01FFECFF800107D9C00313E0011FD9F00F13F801 +7FD9F83F7F90B56C487F00FD92B5FC3CFFF80FFFFC07FFD9E003EBF001496C497E496C49 +EB7F80A290C76C48133FA34892C7FCB3A9392979A848>109 D<38FC01FF010713C0011F +13F0017F13F890B512FC12FD39FFF80FFEEBE003EBC00190388000FFA290C7127FA35AB3 +A9202979A82F>I<14FFD8FE0713E0011F7F017F7FB67E819038F80FFFEBE003D9800013 +8090C7EA7FC0153F5AED1FE0A2150FA216F01507A8150F16E0A2151FA2ED3FC06C147F6D +EBFF805CD9E00313009038F81FFE90B55A485C6D5B6D5B010F1380D901FEC7FC90C9FCB1 +243B79A82F>112 D<00FC137CEB03FC130F131F133F137FEBFFC038FDFE00EAFFF85B5B +5BA25BA290C7FCA25AB3A6162979A81F>114 D<EB1FF890B51280000314E04814F85A5A +393FE00FF0EB8000007F143090C8FCA57F6C7E13F06CB4FC14F06C13FE6C7F000114C06C +14E0011F13F013019038001FF81407EC03FCA21401A3124012700078EB03F8007E130738 +FFE01F90B512F015E06C14C0001F14800003EBFE0038003FF01E2B7EA923>I<EA01F8AC +B612E0A6D801F8C7FCB3A77F152015E03800FE0790B512F0A27F6D13C06D1300EB0FF01C +357EB321>I<B415FE6CEC01FCA26C6CEB03F8A27F001FEC07F0A27F000FEC0FE0A26C6C +EB1FC0A27F0003EC3F80A26C6C14005DA26C6C137E15FEA2017F5B1401013F5B14811483 +011F5B14C314C7010F5BA2903807E7C014EFA26DB45AA36D90C7FCA227287FA72A>118 +D<00FEDA7F80EB0FE0007F6F14C0181F15FF6C6C6E148003FB143F140101C013F3001F6F +EB7F00140315F1D80FE06E137E03E114FE1407D807F0D9E0FC5B170115C0140FD803F802 +7E5B1703EC1F8000015F01FC143F17070000D93F005C161F01FE1587023E148F017E5E02 +7E130F17CFD93E7C5D013FEC07DFA21478D91FF86DB4C7FCA25C010F5D16013B287FA73E +>I<D87F80EB01FE003F5D6C6C495A6C6C13076D495A6C6C495A6C6C5C00014A5A6C6C49 +C7FC017F5B90383F81FEECC1FC90381FE3F890380FE7F06DB45A7F6D5B6D5B92C8FC147E +14FF497F81497F903807E7F090380FE3F8EB1FC190383F80FC4A7E49137F01FE6D7E4848 +6D7E4848800007140F496D7E48486D7E48486D7E003F8148486D7E48C8EA7F80292880A7 +2A>I E +%EndDVIPSBitmapFont +%DVIPSBitmapFont: Fq cmr10 10.95 76 +/Fq 76 125 df<4AB4EB0FE0021F9038E03FFC913A7F00F8FC1ED901FC90383FF03FD907 +F090397FE07F80494801FF13FF4948485BD93F805C137F0200ED7F00EF003E01FE6D91C7 +FC82ADB97EA3C648C76CC8FCB3AE486C4A7E007FD9FC3FEBFF80A339407FBF35>11 +D<4AB4FC021F13C091387F01F0903901FC0078D907F0131C4948133E494813FF49485A13 +7F1400A213FE6F5A163893C7FCAA167FB8FCA33900FE00018182B3AC486CECFF80007FD9 +FC3F13FEA32F407FBF33>I<4AB47E021F13F791387F00FFEB01F8903807F001EB0FE0EB +1FC0EB3F80137F14008101FE80AEB8FCA3C648C77EB3AE486CECFF80007FD9FC3F13FEA3 +2F407FBF33>I<121EEA7F80EAFFC0A9EA7F80ACEA3F00AC121EAB120CC7FCA8121EEA7F +80A2EAFFC0A4EA7F80A2EA1E000A4179C019>33 D<001E130F397F803FC000FF137F01C0 +13E0A201E013F0A3007F133F391E600F3000001300A401E01370491360A3000114E04913 +C00003130101001380481303000EEB070048130E0018130C0038131C003013181C1C7DBE +2D>I<EC0FC0EC3FF0ECF878903801F01CEB03E049487E130FEC800F011F7FA2EB3F00A5 +EC800EA25DA25DA25D6D6C5AECC1C0A2ECC38002E7C7387FFFFCEB0FEE14FC4A020713C0 +6D48913801FE006E5DEF00F06D7E4D5A496C5D010F1503D91DFF4A5A013893C7FC496C6C +5B01E0150E48486C6C131E00036E131C2607801F143C000F6E5B001F6D6C1370263F0007 +14F06F485A48D903FE5B913801FF03486D495A0487C8FCED7FCFED3FFE6F4814386D6D5A +A2007F6E6C14786D6D6C14704B6C14F06C6C496C6C13E0001F91393E3FC0016C6C903AFC +1FF003C03D07FC07F007FC1F800001B5D8C001B512006C6C90C7EA7FFCD90FF8EC0FF03E +437CC047>38 D<121EEA7F8012FF13C0A213E0A3127FEA1E601200A413E013C0A3120113 +80120313005A120E5A1218123812300B1C79BE19>I<1430147014E0EB01C0EB03801307 +EB0F00131E133E133C5B13F85B12015B1203A2485AA2120F5BA2121F90C7FCA25AA3123E +127EA6127C12FCB2127C127EA6123E123FA37EA27F120FA27F1207A26C7EA212017F1200 +7F13787F133E131E7FEB07801303EB01C0EB00E014701430145A77C323>I<12C07E1270 +7E7E121E7E6C7E7F12036C7E7F12007F1378137CA27FA2133F7FA21480130FA214C0A313 +0714E0A6130314F0B214E01307A614C0130FA31480A2131F1400A25B133EA25BA2137813 +F85B12015B485A12075B48C7FC121E121C5A5A5A5A145A7BC323>I<1506150FB3A9007F +B912E0BA12F0A26C18E0C8000FC9FCB3A915063C3C7BB447>43 D<121EEA7F8012FF13C0 +A213E0A3127FEA1E601200A413E013C0A312011380120313005A120E5A1218123812300B +1C798919>I<B512FEA617067F961E>I<121EEA7F80A2EAFFC0A4EA7F80A2EA1E000A0A79 +8919>I<ED0180ED03C01507A21680150FA216005DA2151E153EA2153C157CA2157815F8 +A25D1401A25D1403A25D1407A25D140FA24AC7FCA2141E143EA2143C147CA2147814F8A2 +5C1301A25C1303A25C1307A25C130FA291C8FC5BA2131E133EA25BA2137813F8A25B1201 +A25B1203A25B1207A25B120FA290C9FC5AA2121E123EA2123C127CA2127812F8A25A1260 +225B7BC32D>I<EB01FE90380FFFC090383F03F090387C00F849137C48487F48487F4848 +EB0F80A2000F15C04848EB07E0A3003F15F0A290C712034815F8A64815FCB3A26C15F8A5 +6C6CEB07F0A3001F15E0A36C6CEB0FC0A26C6CEB1F80000315006C6C133E6C6C5B017C5B +90383F03F090380FFFC0D901FEC7FC263F7DBC2D>I<EB01C013031307131F137FEA07FF +B5FC139FEAF81F1200B3B3ACEB7FF0B612F8A31D3D78BC2D>I<EB07FC90383FFF8090B5 +12E03903F01FF83907C007FC390F0001FE001E6D7E001C1580003CEC7FC05AED3FE01270 +B4FC6DEB1FF07FA56C5A6CC7FC120CC813E0153FA216C0157F168015FF16004A5A5D4A5A +4A5A5D4A5A4A5A4AC7FC147E147C5C495A495A495A495A49C71270133E133C5B4914E048 +5A485A485A48C7120148B6FCA25A4815C0B7FCA3243D7CBC2D>I<EB07FC90383FFF8090 +38F80FE03901E003F839078001FCD80F007F000E6D7E001E1580D81F80137F486C14C07F +A27F5BA2121F6C5AC8138015FF1600A24A5AA24A5A5DEC07E04A5A023FC7FCEB1FFCECFF +809038000FE0EC07F86E7E6E7E6E7E1680ED7FC0A216E0153FA216F0A2120C123F487E48 +7EA316E0A249137F6CC713C01278EDFF807E6C4913006C495A3907C007FC3903F80FF0C6 +B55A013F1380D907F8C7FC243F7CBC2D>I<150E151E153EA2157EA215FE1401A21403EC +077E1406140E141CA214381470A214E0EB01C0A2EB0380EB0700A2130E5BA25B5BA25B5B +1201485A90C7FC5A120E120C121C5AA25A5AB8FCA3C8EAFE00AC4A7E49B6FCA3283E7EBD +2D>I<00061403D80780131F01F813FE90B5FC5D5D5D15C092C7FC14FCEB3FE090C9FCAC +EB01FE90380FFF8090383E03E090387001F8496C7E49137E497F90C713800006141FC813 +C0A216E0150FA316F0A3120C127F7F12FFA416E090C7121F12FC007015C012780038EC3F +80123C6CEC7F00001F14FE6C6C485A6C6C485A3903F80FE0C6B55A013F90C7FCEB07F824 +3F7CBC2D>I<EC1FE0ECFFF8903803F03E90380FC00F90391F000780133E017EEB1FC049 +133F4848137F12035B12074848EB3F80ED1F00001F91C7FC5BA2123FA3485AA214FE9038 +87FF8039FF8F07E090389C01F09038B800FC01B0137E13F0497F16804914C0A2ED1FE0A3 +4914F0A5127FA6123F6D14E0A2121FED3FC0A26C6C1480A20007EC7F006C6C137E6C6C5B +6C6C485A90387E07F06DB45A010F1380D903FCC7FC243F7CBC2D>I<1238123C123F90B6 +12FCA316F85A16F016E00078C712010070EC03C0ED078016005D48141E151C153C5DC812 +7015F04A5A5D14034A5A92C7FC5C141EA25CA2147C147814F8A213015C1303A31307A313 +0F5CA2131FA6133FAA6D5A0107C8FC26407BBD2D>I<EB03FC90381FFF8090387C07E090 +38F001F83901E0007C48487F48487F48C7FCED0F80121E16C0003E1407A4123FA26DEB0F +807F6C6C131F6D140001FC133E6C6C5B9038FF80786C6D5A6CEBF3E06CEBFF806C91C7FC +133F6D13C06D7F013F13F801787F48486C7E3903E01FFF48486C1380260F800313C04848 +7E489038007FE0003E143F007E141F007CEC0FF01507481403A31501A46C15E0007C1403 +A2007E15C06C14076CEC0F806DEB1F006C6C133ED807F05B3901FC03F86CB512E0011F13 +80D903FCC7FC243F7CBC2D>I<EB03FCEB1FFF90387E07C09038FC03F048486C7E48486C +7E4848137C000F147E4848137F81003F15805B007F15C0A2151F12FF16E0A516F0A5127F +153FA36C7EA2001F147F120F6C6C13FF6D13DF000313013900F8039F90387E0F1FD91FFE +13E0EB07F090C7FCA2ED3FC0A41680157FD80F801400487E486C13FEA24A5A5D49485AEB +8007391E000FE0001F495A260FC07FC7FC3803FFFE6C13F838003FC0243F7CBC2D>I<12 +1EEA7F80A2EAFFC0A4EA7F80A2EA1E00C7FCB3121EEA7F80A2EAFFC0A4EA7F80A2EA1E00 +0A2779A619>I<121EEA7F80A2EAFFC0A4EA7F80A2EA1E00C7FCB3121E127FEAFF80A213 +C0A4127F121E1200A412011380A3120313005A1206120E120C121C5A1230A20A3979A619 +>I<15074B7EA34B7EA34B7EA34B7EA34B7E15E7A2913801C7FC15C3A291380381FEA34A +C67EA3020E6D7EA34A6D7EA34A6D7EA34A6D7EA34A6D7EA349486D7E91B6FCA249819138 +800001A249C87EA24982010E157FA2011E82011C153FA2013C820138151FA2017882170F +13FC00034C7ED80FFF4B7EB500F0010FB512F8A33D417DC044>65 +D<B712FCEEFF8017F00001903980000FF86C6CC7EA03FE707E701380EF7FC0EF3FE0A2EF +1FF0A218F8A3170F171FA318F0A2EF3FE0177F18C0EFFF804C1300EE03FCEE0FF8EE7FE0 +91B6C7FC17E091C7EA07FCEE01FE933800FF80EF7FC0EF3FE0EF1FF018F8170F18FC1707 +A218FEA718FC170FA2EF1FF818F0173FEF7FE0EFFFC00403138048486C90380FFE00B85A +17E094C7FC373E7DBD40>I<DB3FF01306912603FFFE130E020F9038FF801E913A3FF007 +E03E9139FF8000F8D903FEC7EA7C7ED907F8EC1EFE4948140FD93FE0140749481403495A +91C812014848150012034848167E5B000F173EA24848161EA2123F5B180E127FA3491600 +12FFAC127F7F180EA2123FA27F001F171E181C6C7EA20007173C6D16386C6C1678000117 +706C6C16F06EEC01E06D6C15C06D6C1403D90FF0EC07806D6CEC1F00D903FE143E902600 +FF8013F891393FF007F0020FB512C0020391C7FC9138003FF037427BBF42>I<B712FCEE +FF8017E000019039C0001FF86C6C48EB03FEEE00FF717E717EEF0FE084717E717E170184 +717EA21980187F19C0A3F03FE0A519F0AB19E0A5F07FC0A21980A218FF19004D5AA24D5A +6017074D5A4D5AEF7FC04DC7FCEE03FE48486CEB1FF8B85A178004FCC8FC3C3E7DBD45> +I<B912E0A300019038C000016C6C48EB001FEF0FF01703A217011700A31870A41838161C +A41800A2163CA2167C16FC150391B5FCA3EC80031500167C163CA2161CA21807A3180E93 +C7FCA4181E181CA2183CA2187CA218F8170117031707171F48486CEB01FFB912F0A3383E +7DBD3E>I<B91280A300019038C000036C6C48EB007FEF1FC0170F1707A21703A31701A4 +EF00E0A21638A31800A31678A216F81501150791B5FCA3EC8007150115001678A21638A6 +93C8FCAF3801FFE0B612F0A3333E7DBD3B>I<DB3FE0130C912603FFFE131C021F9038FF +803C913A7FF00FC07C9139FF0001F0D903FC90380078FC4948143DD91FE0141F4948140F +4948140701FF15034890C8FC491501485A000716005B000F177C5B001F173CA2485AA218 +1C127FA25B95C7FC12FFAB041FB512F0127FA26D9139000FFE00EF03FC123FA27F121FA2 +6C7EA212077F12036C7E7F6C7F6D6C14076D7E6D6C140FD907F8141ED903FEEC3C7C9026 +00FF80EBF83C913A7FF007F01C021FB5EAC00C020391C8FC9138003FF03C427BBF47>I< +B6D8C01FB512F8A3000101E0C7383FFC0026007F80EC0FF0B3A691B7FCA30280C7120FB3 +A92601FFE0EC3FFCB6D8C01FB512F8A33D3E7DBD44>I<B612F0A3C6EBF000EB3FC0B3B3 +B2EBFFF0B612F0A31C3E7EBD21>I<B612F8A3000101E0C9FC38007F80B3B0EF0380A517 +071800A45FA35FA25F5F5F4C5A160748486C133FB8FCA3313E7DBD39>76 +D<B500C093383FFFF0A300016D93387FF800D8007F18E0D977F016EFA3D973F8ED01CFA2 +D971FCED038FA3D970FEED070FA26E150E80A26E6C141CA36E6C1438A26E6C1470A36E6C +14E0A26E6CEB01C0A36E6CEB0380A36E6CEB0700A2037F130EA36F6C5AA26F6C5AA36F6C +5AA25FED07F0A2923803F9C0A36FB45AA26F90C7FCA213F8486C147ED807FFEF3FF8B500 +F8013C011FB512F0A34C3E7DBD53>I<B56C91B512F88080D8007F030713006EEC01FC6E +6E5A1870EB77FCEB73FEA2EB71FF01707FA26E7E6E7EA26E7E6E7EA26E7E6E7EA26E7E6E +7FA26F7E6F7EA26F7E6F7EA26F7E6F7EA26F7E6F1380A2EE7FC0EE3FE0A2EE1FF0EE0FF8 +A2EE07FCEE03FEA2EE01FF7013F0A2177F173FA2171F170FA2170701F81503487ED807FF +1501B500F81400A218703D3E7DBD44>I<ED7FE0913807FFFE91391FC03F8091397E0007 +E04948EB03F8D907F0EB00FE4948147F49486E7E49486E7E49C86C7E01FE6F7E00018349 +150300038348486F7EA248486F7EA2001F188049167F003F18C0A3007F18E049163FA300 +FF18F0AC007F18E06D167FA4003F18C0A26C6CEEFF80A36C6C4B1300A26C6C4B5A00035F +6D150700015F6C6C4B5A6D5E6D6C4A5A6D6C4A5A6D6C4AC7FC6D6C14FED901FCEB03F8D9 +007FEB0FE091391FC03F80912607FFFEC8FC9138007FE03C427BBF47>I<B712F8EEFF80 +17E000019039C0003FF86C6C48EB07FCEE01FE707EEF7F80EF3FC018E0A2EF1FF0A218F8 +A818F0A2EF3FE0A218C0EF7F80EFFF004C5AEE07FCEE3FF091B612C04CC7FC0280C9FCB3 +A73801FFE0B612C0A3353E7DBD3E>I<B712C016FCEEFF800001D9C00013E06C6C48EB1F +F0EE07FCEE01FE707E84717EA2717EA284A760177F606017FF95C7FCEE01FCEE07F8EE1F +E0EEFF8091B500FCC8FC16F091388001FCED003FEE1FC0707E707E83160383160183A383 +A484A4F0C004190EA28218E0057F131E2601FFE0161CB600C0EB3FF094381FF838050713 +70CA3801FFE09438003F803F407DBD43>82 D<D907FC130C90391FFF801C017FEBF03C39 +01FC03F83A03F0007E7CD807C0EB1FFC4848130F001F140748C71203003E1401007E1400 +A2007C157C12FCA2163CA36C151CA27EA26C6C14007F7FEA3FF8EBFF806C13F86CEBFF80 +6C14F06C14FC6C14FF6C15C0013F14E0010714F0EB007F020713F89138007FFC150FED07 +FE15031501ED00FFA200E0157FA3163FA27EA3163E7E167E6C157C6C15FC6C15F86D1301 +6DEB03F06DEB07E0D8F9FCEB0FC03AF07F803F8090391FFFFE00D8E00713F839C0007FC0 +28427BBF33>I<003FB91280A3903AF0007FE001018090393FC0003F48C7ED1FC0007E17 +07127C00781703A300701701A548EF00E0A5C81600B3B14B7E4B7E0107B612FEA33B3D7D +BC42>I<B600C090B512F8A3000101E0C70007130026007F80EC01FC715A1870B3B3A401 +3F16F06E5DA21701011F5E80010F15036E4A5A010793C7FC6D6C5C6D6C141E6D6C5C027F +14F86E6C485A91390FF00FE00203B51280020049C8FCED1FF03D407DBD44>I<B691380F +FFFEA3000301E0020113E06C01809138007F806CEF3F00017F163E181C6E153C013F1638 +A26E1578011F1670A26D6C5DA26E140101075EA26E140301035EA26D6C4AC7FCA2806D15 +0EA26F131E027F141CA26F133C023F1438A26E6C5BA26F13F0020F5CA2EDF80102075CA2 +6E6C485AA2EDFE07020191C8FCA26F5A6E130EA2ED7F9CA216DCED3FF8A36F5AA36F5AA2 +6F5AA36F5A3F407EBD44>I<B500FE017FB5D88007B5FCA3000301C0010101E0C713F86C +90C849EC3FE07148EC0F807E7215006E143F017F190E84A26D6C60A24D7E6D6C60A2EFE7 +F86D6C60A2933801C3FC6E18F001076104037F6E0281140101036104077F17006D6C4D5A +A2040EEB7F806D6C4DC7FCA24CEB3FC0DA7F80160EA24CEB1FE003C0161E023F171C0478 +14F0DBE070010F133C021F173804F014F84C1307DA0FF05EA2DBF1C0EB03FCDA07F95EA2 +DBFB80EB01FEDA03FF6F5AA293C8FCA26E5FA24B157F020094C8FCA24B81037C153EA203 +78151E0338151C58407EBD5D>I<007FB5D8C003B512E0A3C649C7EBFC00D93FF8EC3FE0 +6D48EC1F806D6C92C7FC171E6D6C141C6D6C143C5F6D6C14706D6D13F04C5ADA7FC05B02 +3F13036F485ADA1FF090C8FC020F5BEDF81E913807FC1C163C6E6C5A913801FF7016F06E +5B6F5AA26F7E6F7EA28282153FED3BFEED71FF15F103E07F913801C07F0203804B6C7EEC +07004A6D7E020E6D7E5C023C6D7E02386D7E14784A6D7E4A6D7F130149486E7E4A6E7E13 +0749C86C7E496F7E497ED9FFC04A7E00076DEC7FFFB500FC0103B512FEA33F3E7EBD44> +I<B66C0103B51280A3000101F0C8EBF8006C6C48ED3FC0725A013F041EC7FC6D7E606D6C +15386D6C1578606D6C5D6E14016D5E6D6D1303606E6C49C8FC6E6C5B170E6E6C131E171C +6E6C5B6E6C137817706E6C13F06F5B6E13016EEB83C05FED7FC7DB3FE7C9FC16EFED1FFE +5E150F6F5AB3A4ED1FFC020FB512FCA3413E7FBD44>I<486C13C0000313010100138048 +1303000EEB070048130E0018130C0038131C003013180070133800601330A300E0137048 +1360A400CFEB678039FFC07FE001E013F0A3007F133FA2003F131F01C013E0390F000780 +1C1C73BE2D>92 D<EB0FF8EBFFFE3903F01F8039078007E0000F6D7E9038E001F8D81FF0 +7F6E7EA3157F6C5AEA0380C8FCA4EC1FFF0103B5FC90381FF87FEB7F803801FC00EA07F8 +EA0FE0485A485AA248C7FCEE038012FEA315FFA3007F5BEC03BF3B3F80071F8700261FC0 +0E13CF3A07F03C0FFE3A01FFF807FC3A003FC001F0292A7DA82D>97 +D<EA01FC12FFA3120712031201B1EC03FC91381FFF8091387C07E09039FDE001F09039FF +C000FC4A137E91C77E49158049141F17C0EE0FE0A217F0A2160717F8AA17F0A2160FA217 +E0161F17C06D1580EE3F006D5C6E13FE9039F3C001F89039F1E003F09039E0780FC09026 +C03FFFC7FCC7EA07F82D407EBE33>I<49B4FC010F13E090383F00F8017C131E4848131F +4848137F0007ECFF80485A5B121FA24848EB7F00151C007F91C7FCA290C9FC5AAB6C7EA3 +003FEC01C07F001F140316806C6C13076C6C14000003140E6C6C131E6C6C137890383F01 +F090380FFFC0D901FEC7FC222A7DA828>I<ED01FC15FFA3150715031501B114FF010713 +E190381F80F990387E003D49131FD803F81307485A49130348481301121F123F5B127FA2 +90C7FCA25AAA7E7FA2123FA26C7E000F14037F000714076C6C497E6C6C497ED8007C0179 +13F890383F01F190380FFFC1903A01FE01FC002D407DBE33>I<EB01FE90380FFFC09038 +3F03F09038FC01F848486C7E4848137E48487F000F158049131F001F15C04848130FA212 +7F16E090C7FCA25AA290B6FCA290C9FCA67EA27F123F16E06C7E1501000F15C06C6C1303 +6DEB07806C6C1400C66C131E017E5B90381F80F8903807FFE0010090C7FC232A7EA828> +I<EC1FC0EC7FF8903801F83C903807E07E90380FC0FFEB1FC1EB3F811401137FEC00FE01 +FE137C1500AEB6FCA3C648C7FCB3AE487E007F13FFA320407EBF1C>I<167C903903F801 +FF903A1FFF078F8090397E0FDE1F9038F803F83803F001A23B07E000FC0600000F6EC7FC +49137E001F147FA8000F147E6D13FE00075C6C6C485AA23901F803E03903FE0FC026071F +FFC8FCEB03F80006CAFC120EA3120FA27F7F6CB512E015FE6C6E7E6C15E06C810003813A +0FC0001FFC48C7EA01FE003E140048157E825A82A46C5D007C153E007E157E6C5D6C6C49 +5A6C6C495AD803F0EB0FC0D800FE017FC7FC90383FFFFC010313C0293D7EA82D>I<EA01 +FC12FFA3120712031201B1EC01FE913807FFC091381E07E091387803F09138E001F8D9FD +C07F148001FF6D7E91C7FCA25BA25BB3A6486C497EB5D8F87F13FCA32E3F7DBE33>I<EA +01E0EA07F8A2487EA46C5AA2EA01E0C8FCACEA01FC127FA3120712031201B3AC487EB512 +F0A3143E7DBD1A>I<1478EB01FEA2EB03FFA4EB01FEA2EB00781400AC147FEB7FFFA313 +017F147FB3B3A5123E127F38FF807E14FEA214FCEB81F8EA7F01387C03F0381E07C0380F +FF803801FC00185185BD1C>I<EA01FC12FFA3120712031201B292B51280A392383FFC00 +16E0168093C7FC153C5D5D4A5AEC07C04A5A4AC8FC143E147F4A7E13FD9038FFDFC0EC9F +E0140F496C7E01FC7F496C7E1401816E7E81826F7E151F826F7EA282486C14FEB539F07F +FFE0A32B3F7EBE30>I<EA01FC12FFA3120712031201B3B3B1487EB512F8A3153F7DBE1A> +I<2701F801FE14FF00FF902707FFC00313E0913B1E07E00F03F0913B7803F03C01F80007 +903BE001F87000FC2603F9C06D487F000101805C01FBD900FF147F91C75B13FF4992C7FC +A2495CB3A6486C496CECFF80B5D8F87FD9FC3F13FEA347287DA74C>I<3901F801FE00FF +903807FFC091381E07E091387803F000079038E001F82603F9C07F0001138001FB6D7E91 +C7FC13FF5BA25BB3A6486C497EB5D8F87F13FCA32E287DA733>I<14FF010713E090381F +81F890387E007E01F8131F4848EB0F804848EB07C04848EB03E0000F15F04848EB01F8A2 +003F15FCA248C812FEA44815FFA96C15FEA36C6CEB01FCA3001F15F86C6CEB03F0A26C6C +EB07E06C6CEB0FC06C6CEB1F80D8007EEB7E0090383F81FC90380FFFF0010090C7FC282A +7EA82D>I<3901FC03FC00FF90381FFF8091387C0FE09039FDE003F03A03FFC001FC6C49 +6C7E91C7127F49EC3F805BEE1FC017E0A2EE0FF0A3EE07F8AAEE0FF0A4EE1FE0A2EE3FC0 +6D1580EE7F007F6E13FE9138C001F89039FDE007F09039FC780FC0DA3FFFC7FCEC07F891 +C9FCAD487EB512F8A32D3A7EA733>I<02FF131C0107EBC03C90381F80F090397F00387C +01FC131CD803F8130E4848EB0FFC150748481303121F485A1501485AA448C7FCAA6C7EA3 +6C7EA2001F14036C7E15076C6C130F6C7E6C6C133DD8007E137990383F81F190380FFFC1 +903801FE0190C7FCAD4B7E92B512F8A32D3A7DA730>I<3901F807E000FFEB1FF8EC787C +ECE1FE3807F9C100031381EA01FB1401EC00FC01FF1330491300A35BB3A5487EB512FEA3 +1F287EA724>I<90383FC0603901FFF8E03807C03F381F000F003E1307003C1303127C00 +78130112F81400A27E7E7E6D1300EA7FF8EBFFC06C13F86C13FE6C7F6C1480000114C0D8 +003F13E0010313F0EB001FEC0FF800E01303A214017E1400A27E15F07E14016C14E06CEB +03C0903880078039F3E01F0038E0FFFC38C01FE01D2A7DA824>I<131CA6133CA4137CA2 +13FCA2120112031207001FB512C0B6FCA2D801FCC7FCB3A215E0A912009038FE01C0A2EB +7F03013F138090381F8700EB07FEEB01F81B397EB723>I<D801FC14FE00FF147FA30007 +14030003140100011400B3A51501A31503120015076DEB06FF017E010E13806D4913FC90 +381FC078903807FFE00100903880FE002E297DA733>I<B539E00FFFE0A32707FE000313 +006C48EB00FC5E00015D7F00005DA26D13016D5CA26D6C485AA2ECC007011F91C7FCA290 +380FE00EA2ECF01E0107131CA26D6C5AA2ECFC7801011370A2ECFEF001005BA2EC7FC0A3 +6E5AA26EC8FCA3140E2B287EA630>I<B53BC3FFFE03FFF8A3290FFE003FE00013C06C48 +6D48EB3F806C4817006D010F141E00016F131C15076D163C00004A6C1338A2017F5E4B7E +151DD93F805DED3DFC1538D91FC04A5AED78FE9238707E03D90FE0017F5BEDE03F02F014 +0701070387C7FC9138F1C01F02F9148F010315CE9138FB800F02FF14DE6D15FCED00076D +5DA24A1303027E5CA2027C1301023C5C023813003D287EA642>I<B539F01FFFE0A30003 +D9C00F1300C690388007F8D97F0013E002805BD93FC05B011F49C7FC90380FE00EECF01E +6D6C5A01035B6D6C5A6E5AEB00FF6E5A6E5A81141F814A7E81147BECF1FC903801E1FEEC +C0FF01037F49486C7ED90F007F011E6D7E013E130F496D7E01FC80486C80000F4A7EB539 +803FFFF8A32D277FA630>I<B539E00FFFE0A32707FE000313006C48EB01FC6F5A00015D +7F00005DA2017F495AA2EC8003013F5CA26D6C48C7FCA26E5A010F130EA26D6C5AA2ECF8 +3C01031338A26D6C5AA2ECFEF001005BA2EC7FC0A36E5AA36EC8FCA2140EA2141E141C14 +3C1438A2147800181370127EB45BA2495AA248485AD87E07C9FCEA780EEA3C3CEA1FF8EA +07E02B3A7EA630>I<001FB61280A2EBE0000180140049485A001E495A121C4A5A003C49 +5A141F00385C4A5A147F5D4AC7FCC6485AA2495A495A130F5C495A90393FC00380A2EB7F +80EBFF005A5B484813071207491400485A48485BA248485B4848137F00FF495A90B6FCA2 +21277EA628>I<BE12C0A25A0280985B>124 D E +%EndDVIPSBitmapFont +%DVIPSBitmapFont: Fr cmssbx10 10.95 6 +/Fr 6 115 df<003FB67E4815FCB8FC17C017F08383839038FC000703007F163F701380 +A28218C0A282A75E1880A25EA24C130093B5FC03075B90B75A5F5F5F17804CC7FC16F001 +FCCAFCB3A56C5A123F323F78BE40>80 D<EC7FFC0107B512E0013F14FC4914FF48B712C0 +5A5A5A481680ECE0074890C7FC49143F49141F160F4848EC0700160193C7FCA37FA27F7F +806C13F014FF6C14F015FF6C15C016F06C15FC6C816C816C1680013F15C0010F15E01303 +D9007F14F01407DA007F13F81507816F13FC81167FA2163FA312201238007C157F007F16 +F86D14FF13E001FC5B9026FFC00F13F0B8FC17E0A217C0003F1680000F1600000315FCC6 +6C14F0010F14C09026007FFCC7FC2E437CC038>83 D<903803FFE0013F13FC48B6FC0007 +15C0001F15E016F016F8EBF80001E014FC6C48137F90C713FE000E143F120CC8FCA5EC07 +FF0103B5FC133F90B6FC1203000FEBF03F481380383FFE00485A5B12FF5BA3157FA26D13 +FFA2387FFC036D5A6CB6FC15BF6C143F6C13FE6C9038F81FFC000113E06C6CC8FC272D7D +AB30>97 D<EC7FF80103B5FC130F133F5B90B6FC5AECF01F48EBE007150348EBC000AC00 +3FEBFF805AB612C0A36C1480A20007EBC000B3AF6C5B7E20407EBF1F>102 +D<903A03FFC001F8011FEBF80F017FEBFE3F48B7FC4816FC5A4815F00281140C3B1FFE00 +7FF800A249133F003F81A9001F5D6D137FA23A0FFF81FFF091B5FC6C5D6C5D5E484AC7FC +019F13F8D80F8313C00180C9FC7FA27F90B6FC16F016FC16FF6C16C0A217E0001F16F05A +5A9026F0000313F84848EB007F49143F161FA46D143F6C6CEC7FF06D14FF01FF13076C90 +B612E06C16C06C16806C1600000115FCD8003F14E0010349C7FC2E3F7EAA32>I<393FE0 +03E0007F130F38FFF03F147F14FF13F113F313F7A29038FFFC0014F014C05C91C7FC5BA2 +5BA25BB3A56C5A123F1B2B7BAA22>114 D E +%EndDVIPSBitmapFont +%DVIPSBitmapFont: Fs cmbx10 10.95 41 +/Fs 41 121 df<EA0FC0EA1FE0EA3FF0EA7FF8EAFFFCA313FEA3127F123F121FEA0FDEEA +001EA2133E133CA2137C1378A213F8EA01F0A2EA03E0EA07C0EA0F80121FEA3F00121E12 +0C0F20798D1D>44 D<140F143F5C495A130F48B5FCB6FCA313F7EAFE071200B3B3A8B712 +F0A5243C78BB34>49 D<903803FF80013F13F890B512FE00036E7E4881260FF80F7F261F +C0037F4848C67F486C6D7E6D6D7E487E6D6D7EA26F1380A46C5A6C5A6C5A0007C7FCC8FC +4B1300A25E153F5E4B5AA24B5A5E4A5B4A5B4A48C7FC5D4A5AEC1FE04A5A4A5A9139FF00 +0F80EB01FC495A4948EB1F00495AEB1F8049C7FC017E5C5B48B7FC485D5A5A5A5A5AB7FC +5EA4293C7BBB34>I<903801FFE0010F13FE013F6D7E90B612E04801817F3A03FC007FF8 +D807F06D7E82D80FFC131F6D80121F7FA56C5A5E6C48133FD801F05CC8FC4B5A5E4B5A4A +5B020F5B902607FFFEC7FC15F815FEEDFFC0D9000113F06E6C7E6F7E6F7E6F7E1780A26F +13C0A217E0EA0FC0487E487E487E487EA317C0A25D491580127F49491300D83FC0495A6C +6C495A3A0FFE01FFF86CB65A6C5DC61580013F49C7FC010313E02B3D7CBB34>I<ED01F8 +15031507A2150F151F153FA2157F15FF5C5CA25C5CEC1FBFEC3F3F143E147C14FCEB01F8 +14F0EB03E01307EB0FC0EB1F801400133E137E5B485A5B485A1207485A5B48C7FC5A127E +5AB812F8A5C8387FF800AA49B612F8A52D3C7DBB34>I<00071538D80FE0EB01F801FE13 +3F90B6FC5E5E5E5E93C7FC5D15F85D15C04AC8FC0180C9FCA9ECFFC0018713FC019F13FF +90B67E020113E09039F8007FF0496D7E01C06D7E5B6CC77FC8120F82A31780A21207EA1F +C0487E487E12FF7FA21700A25B4B5A6C5A01805C6CC7123F6D495AD81FE0495A260FFC07 +5B6CB65A6C92C7FCC614FC013F13F0010790C8FC293D7BBB34>I<EC07FF023F13C049B5 +12F001078049EB03FC90383FF80090397FE001FE9038FFC0034849487E48495AA2485A12 +0FA2485A6F5A003F6E5A6F5A92C8FC485AA21402EC3FFE00FF496C7E01F9B512E001FB80 +9138E03FF89039FF800FFC4A6C7E825B6F13804915C0A317E05BA4127FA5123FA26D15C0 +121FA2000F4A13806D150012076C6C495A6C6D485A6C9038E07FF86DB55A6D5C6D148001 +0749C7FC010013F02B3D7CBB34>I<121F7F13F890B712F0A45A17E017C0178017005E5E +5A007EC7EA01F84B5A007C4A5A4B5A4B5A93C7FC485C157E5DC7485A4A5AA24A5A140F5D +141F143F5D147FA214FF92C8FC5BA25BA3495AA3130FA5131FAA6D5A6D5A6D5A2C3F7ABD +34>I<ECFFF0010713FE011F6D7E017F14E09039FFC07FF03A01FE001FF848486D7E4848 +6D7E1503485A8281121FA27F7F7F6D5B02C05B14F06C6D485A9138FE0FF89138FF9FF06C +ECFFE06C5D5E6C92C7FC6C816D14E0011F80498090B67E48812607FE3F7F48486C148038 +1FF807D9F00114C048486C7E007F8049010F13E0150348487F81167FA2163FA36D15C012 +7FEE7F807F6C6CECFF006C6C5B01FEEB07FE3A0FFFC03FFC6C90B55A000115E06C6C5C01 +1F49C7FC010113F02B3D7CBB34>I<903801FFE0010F13FC013F13FF90B612C04801E07F +489038003FF048486D7E000F6E7E485A6F7E123F48488081178012FFA217C0A517E0A400 +7F5CA4003F5C6C7E5D6C7E00075C3903FF80FB6C13FF6C6C13F36D13C3010F018313C090 +380008031400A24B1380EA03F0487E486C1500487E4B5AA25E151F4B5A495C6C48EBFFE0 +49485B2607FC0F5B6CB6C7FC6C14FC6C14F06D13C0D90FFEC8FC2B3D7CBB34>I<90381F +FF8090B512F0000314FC000F14FF261FF8071380263FC00113C0018014E0486C7E486C14 +F07FA56C5A4A13E0EA3FC0260F000313C0C714804A13004A5A4A5A15F04A5A4A5A5D92C7 +FC14FE5C13015CA25CAA90C9FCA8EB03F0497E497E497E497EA66D5A6D5A6D5A6D5A2440 +7ABF31>63 D<16FCA24B7EA24B7EA34B7FA24B7FA34B7FA24B7FA34B7F157C03FC7FEDF8 +7FA2020180EDF03F0203804B7E02078115C082020F814B7E021F811500824A81023E7F02 +7E81027C7FA202FC814A147F49B77EA34982A2D907E0C7001F7F4A80010F835C83011F83 +91C87E4983133E83017E83017C81B500FC91B612FCA5463F7CBE4F>65 +D<922607FFC0130E92B500FC131E020702FF133E023FEDC07E91B7EAE1FE01039138803F +FB499039F80003FF4901C01300013F90C8127F4948151FD9FFF8150F48491507485B4A15 +03481701485B18004890CAFC197E5A5B193E127FA349170012FFAC127F7F193EA2123FA2 +7F6C187E197C6C7F19FC6C6D16F86C6D150119F06C6D15036C6DED07E0D97FFEED0FC06D +6CED3F80010F01C0ECFF006D01F8EB03FE6D9039FF801FFC010091B55A023F15E0020715 +80020002FCC7FC030713C03F407ABE4C>67 D<BAFCA4198026003FFEC7123F1707170183 +183FA2181FF00FC0A31807EE07C0A3F003E0A3160F95C7FC161F163F16FF91B6FCA54AC6 +FC163F161F040F147CA2160719F8A593C71201A219F01803A21807A2180FF01FE0183F18 +FF1703173FBAFCA219C0A33E3D7DBC45>69 D<B71280A526003FFEC7FCB3B3B0B71280A5 +213E7DBD28>73 D<ED3FFF0203B512F0021F14FE027F6E7E902701FFF80713E00107D9C0 +0013F84990C7EA3FFCD93FFCEC0FFF49486E7F49486E7F48496E7F4A80488448496F7EA2 +4890C96C7E4884A249161F003F84A34848701380A400FF19C0AD007F19806D5EA3003F19 +00A26D5E6C60A26C6D4B5AA26C6D4B5A6C6D4A5BA26C6D4A5B6C6D4A5B6D6C4A5B6DB402 +3F90C7FC6D01C0EBFFFE0107D9F80713F8010190B612E06D5E021F4AC8FC020314F0DA00 +3F90C9FC42407ABE4F>79 D<B812F017FF18C018F018FC26003FFCC77FEF1FFF71138071 +13C07113E0A27113F0A319F8A819F0A34D13E019C05F4D1380053F1300EFFFFE91B712F8 +60188005FCC7FC4ACAFCB3A4B77EA53D3E7DBD47>I<003FB912FCA5903BFE003FFE003F +D87FF0EE0FFE01C0160349160190C71500197E127EA2007C183EA400FC183F48181FA5C8 +1600B3AF010FB712F8A5403D7CBC49>84 D<B76C90B61280A526003FFEC9003EC7FCB3B3 +A4197E011F177C80A26D17FC616D6D14014E5A6D6D4A5A6D6D140F6D01F8EC3FC0DA7FFE +ECFF8091273FFFC00F90C8FC020F90B512FC02035D020015E0031F1480030101F8C9FC49 +3F7DBD50>I<B6D8FC03B600F090B512FEA5C601FCC7000301F0C8EA7E00017F6F177C85 +6E6E17FC013F63856D6C037F4B5AA26F4A6C14036D634D7F6F18076D634D806F02EF150F +6D636F01076E131F6D04C793C7FC050F806F02835D6D1A3E051F806F0201157E027F197C +6F013F6E13FC023FDA3E005D057E806F017C017F13016E6105FC14FE7048013F13036E61 +04C1EDFF076E4A6D5C04C31687DCE3E06D138F6E6104E716CFDCF7C06D13DF6E96C8FC04 +FF16FF6E4A6D5BA294C77E6F5FA24C80033F5FA26F486F5AA24C153F030F5FA24C151F03 +075FA26F486F5A673F7EBD6C>87 D<903807FFC0013F13F848B6FC48812607FE037F260F +F8007F6DEB3FF0486C806F7EA36F7EA26C5A6C5AEA01E0C8FC153F91B5FC130F137F3901 +FFFE0F4813E0000F1380381FFE00485A5B485A12FF5BA4151F7F007F143F6D90387BFF80 +6C6C01FB13FE391FFF07F36CEBFFE100031480C6EC003FD91FF890C7FC2F2B7DA933>97 +D<13FFB5FCA512077EAFEDFFE0020713FC021FEBFF80027F80DAFF8113F09139FC003FF8 +02F06D7E4A6D7E4A13074A80701380A218C082A318E0AA18C0A25E1880A218005E6E5C6E +495A6E495A02FCEB7FF0903AFCFF01FFE0496CB55AD9F01F91C7FCD9E00713FCC7000113 +C033407DBE3A>I<EC7FF00107B5FC011F14C0017F14E09039FFF01FF0489038800FF848 +EB001F4848EB3FFC120F485AA2485AA2007FEC1FF849EB0FF0ED03C000FF91C7FCAB127F +7FA3003F153E7F001F157E6C6C147C6C6C14FC91388001F86C9038C003F0C69038F81FE0 +6DB512C0011F14800107EBFE009038007FF0272B7DA92E>I<EE07F8ED07FFA5ED003F16 +1FAFEC7FF0903807FFFE011FEBFF9F017F14DF9039FFF01FFF48EBC00348EB00014848EB +007F485A001F153F5B123FA2127F5BA212FFAA127FA37F123FA26C6C147F120F6D14FF6C +6C01037F6C6D48EBFFE06CEBF03F6C6CB512BF6D143F010713FC010001E0EBE00033407D +BE3A>I<ECFFF0010713FE011F6D7E017F809039FFE07FE0489038801FF048496C7E4848 +6D7E48486D7E121F491301003F81A2485A6F1380A212FFA290B7FCA401F0C9FCA5127FA2 +7F123FEE0F806C7E161F6C6C15006C6C5C6C6D137E6C9038E001FC6C9038F80FF8013FB5 +5A6D14C0010391C7FC9038007FF8292B7DA930>I<903A03FF8007F0013F9038F83FF849 +9038FCFFFC48B712FE48018313F93A07FC007FC34848EB3FE1001FEDF1FC4990381FF0F8 +1700003F81A7001F5DA26D133F000F5D6C6C495A3A03FF83FF8091B5C7FC4814FC01BF5B +D80F03138090CAFCA2487EA27F13F06CB6FC16F016FC6C15FF17806C16C06C16E0120700 +1F16F0393FE000034848EB003F49EC1FF800FF150F90C81207A56C6CEC0FF06D141F003F +16E001F0147FD81FFC903801FFC02707FF800F13006C90B55AC615F8013F14E0010101FC +C7FC2F3D7DA834>103 D<13FFB5FCA512077EAFED1FF8EDFFFE02036D7E4A80DA0FE07F +91381F007F023C805C4A6D7E5CA25CA35CB3A4B5D8FE0FB512E0A5333F7CBE3A>I<EA01 +F8487E487E487E481380A66C13006C5A6C5A6C5AC8FCA913FFB5FCA512077EB3ABB512F8 +A515407CBF1D>I<13FFB5FCA512077EB092380FFFFEA5DB01FEC7FC4B5AED07F0ED1FE0 +4B5A4B5A4BC8FCEC03FC4A5A4A5A141FEC7FF84A7EA2818102E77F02C37F148102007F82 +6F7E6F7E151F6F7E826F7F6F7F816F7FB5D8FC07EBFFC0A5323F7DBE37>107 +D<13FFB5FCA512077EB3B3AFB512FCA5163F7CBE1D>I<01FFD91FF8ECFFC0B590B50107 +13F80203DAC01F13FE4A6E487FDA0FE09026F07F077F91261F003FEBF8010007013EDAF9 +F0806C0178ECFBC04A6DB4486C7FA24A92C7FC4A5CA34A5CB3A4B5D8FE07B5D8F03FEBFF +80A551297CA858>I<01FFEB1FF8B5EBFFFE02036D7E4A80DA0FE07F91381F007F000701 +3C806C5B4A6D7E5CA25CA35CB3A4B5D8FE0FB512E0A533297CA83A>I<EC7FF0903803FF +FE011FEBFFC0017F14F09039FFE03FF8489038800FFC3A03FE0003FE48486D7E000F1680 +48486D13C0A2003F16E049147F007F16F0A400FF16F8AA007F16F0A46C6CECFFE0A2001F +16C06C6C491380A26C6C4913003A03FF800FFE6C9038E03FFC6C6CB512F0011F14C00107 +91C7FC9038007FF02D2B7DA934>I<01FFEBFFE0B5000713FC021FEBFF80027F80DAFF81 +13F09139FC007FF8000301F06D7E4A6D7E4A130F4A6D7E1880A27013C0A38218E0AA4C13 +C0A318805E18005E6E5C6E495A6E495A02FCEBFFF0DAFF035B92B55A029F91C7FC028713 +FC028113C00280C9FCACB512FEA5333B7DA83A>I<3901FE01FE00FF903807FF804A13E0 +4A13F0EC3F1F91387C3FF8000713F8000313F0EBFFE0A29138C01FF0ED0FE091388007C0 +92C7FCA391C8FCB3A2B6FCA525297DA82B>114 D<90383FFC1E48B512BE000714FE5A38 +1FF00F383F800148C7FC007E147EA200FE143EA27E7F6D90C7FC13F8EBFFE06C13FF15C0 +6C14F06C806C806C806C80C61580131F1300020713C014000078147F00F8143F151F7EA2 +7E16806C143F6D140001E013FF9038F803FE90B55A15F0D8F87F13C026E00FFEC7FC222B +7DA929>I<EB07C0A5130FA4131FA3133F137FA213FF5A1207001FEBFFFEB6FCA40001EB +C000B3151FA96CEBE03EA2017F137EECF8FC90383FFFF86D13F0010713E001001380203B +7EB929>I<D9FF80EB0FF8B5EB0FFFA50007EC007F6C153FB3A5167FA316FF6C5C4B7F6C +903AC007DFFFE09138F01F9F6DB5121F6D13FE010F13F8010101E0EBE000332A7CA83A> +I<B500FC90383FFFC0A5000101C0903803E0006E1307A26C5E6E130F017F5D6E131F013F +92C7FC6E5B011F143E6E137E010F147C6E13FCA26D5C15816D5C15C36D5C15E76D5C15FF +6E5BA36E90C8FCA26E5AA26E5AA26E5AA26E5AA232287EA737>I<B53CFC3FFFFC03FFFE +A50003D980009039C0000F806E161F6C037F15006E496C5B6C183E836E48157E017F177C +6E486D13FC013F02EF5C83DAFC071401011F02C75CDAFE0FEBFE03010F02835C17FFDAFF +1F14076D02015C03BF148F6DD9BE005C18CF03FE14DF6D49017F90C7FC18FF6D496D5AA3 +6E486D5AA26E486D5AA36E486D5AA26E486D5A47287EA74C>I<B5D8FC03B51280A5C690 +26E0007FC7FC6E13FE6D6C5B6D6C485A6D6C485A010F13076D6C485AED9FC06DEBFF806D +91C8FC6D5B6E5AA2143F6E7E140F814A7F4A7F4A7F02FE7F903801FC7F49486C7E02F07F +49486C7E49486C7E011F7F49486C7FD97F008001FE6D7FB5D8C007EBFFC0A532287EA737 +>I E +%EndDVIPSBitmapFont +%DVIPSBitmapFont: Ft cmbx12 14.4 41 +/Ft 41 121 df<EA07F0EA1FF8487E487E7FB5FC1480A314C0A37EA27E7EEA07F3EA0003 +A213071480A3130F1400A25B131E133E133C137C5BA2485A485A485A485A48C7FC121E12 +0C1228769025>44 D<157815FC14031407141F14FF130F0007B5FCB6FCA2147F13F0EAF8 +00C7FCB3B3B3A6007FB712FEA52F4E76CD43>49 D<EC3FFE0103B512E0010F14FC013F14 +FF90B712C048D9C07F7F2703FE000F13F8D807F801037FD80FE06D7F48486D7F48488001 +F01680486C6E13C07F486C6E13E07FA27013F0A56C5AA26C5AEA0FF0EA03C0C914E05EA2 +18C05E1880A24C13005F4C5A4B5B5F4B5B5F4B5B4B90C7FC4B5A5E4B5AED7FE04B5A4A5B +4A48C8FC4A5A5D4A48EB01F04A5AEC3F804AC7FC02FEEC03E0495A495A495A495AD91F80 +140749C8FC013E150F017FB7FC90B812C05A5A5A5A5A5A5AB9FC1880A4344E79CD43>I< +91380FFFC091B512FC0107ECFF80011F15E090263FF8077F9026FF800113FC4848C76C7E +D803F86E7E491680D807FC8048B416C080486D15E0A4805CA36C17C06C5B6C90C75AD801 +FC1680C9FC4C13005FA24C5A4B5B4B5B4B13C04B5BDBFFFEC7FC91B512F816E016FCEEFF +80DA000713E0030113F89238007FFE707E7013807013C018E07013F0A218F8A27013FCA2 +18FEA2EA03E0EA0FF8487E487E487EB57EA318FCA25E18F891C7FC6C17F0495C6C4816E0 +01F04A13C06C484A1380D80FF84A13006CB44A5A6CD9F0075BC690B612F06D5D011F1580 +010302FCC7FCD9001F1380374F7ACD43>I<177C17FEA2160116031607160FA2161F163F +167FA216FF5D5DA25D5DED1FBFED3F3F153E157C15FCEC01F815F0EC03E01407EC0FC015 +80EC1F005C147E147C5C1301495A495A5C495A131F49C7FC133E5B13FC485A5B485A1207 +485A485A90C8FC123E127E5ABA12C0A5C96C48C7FCAF020FB712C0A53A4F7CCE43>I<D8 +0380150ED807E0157E01FEEC03FED9FFF0137F91B65A5F5F5F5F5F94C7FC5E5E16F016C0 +93C8FC15F801E190C9FC01E0CAFCABEC0FFF027F13F001E3B512FE01E76E7E9026FFF807 +7FDAC0017F49C713F8496E7E49143F4981496E7E6C481680C9FC18C08218E0A418F0A3EA +0FE0487E487E487E487EA418E0A35B6C484A13C05B491680003EC85A003F17006C6C4A5A +6D5D6C6C4A5AD807F8495BD803FE01075B2701FFC03F5B6C90B65A013F4AC7FC6D14F801 +0314C09026007FF8C8FC344F79CD43>I<ED0FFF92B512E0020780021F14FC91397FFE03 +FE903A01FFF0007F4901C0EB3F804990C7121F4948EC7FC0494814FF49484913E049485B +01FF5C485BA2485B5AA2486F13C04A6D1380486F1300177E94C7FC5AA291CAFC5AA21508 +913801FFF8020713FFB54814C04A14F04AC66C7E023C6D7E4A6D7E4A6D7E7013804A15C0 +A24A15E07013F05C18F8A491C714FCA37EA67EA46C17F880A27E18F06C5D18E06C6D15C0 +7E6E4913806C6D15006D6C495A6D6CEB7FFC6DB448485A6D90B55A010315C0010092C7FC +023F13FC020713C0364F7ACD43>I<121F7F7FEBFF8091B81280A45A1900606060A26060 +60485F0180C86CC7FC007EC95A4C5A007C4B5A5F4C5A160F4C5A484B5A4C5A94C8FC16FE +C812014B5A5E4B5A150F4B5AA24B5AA24B5A15FFA24A90C9FCA25C5D1407A2140FA25D14 +1FA2143FA4147F5DA314FFA55BAC6D5BA2EC3FC06E5A395279D043>I<913807FFC0027F +13FC0103B67E010F15E090261FFC0113F8903A3FE0003FFCD97F80EB0FFE49C76C7E4848 +8048486E1380000717C04980120F18E0177FA2121F7FA27F7F6E14FF02E015C014F802FE +4913806C7FDBC00313009238F007FE6C02F85B9238FE1FF86C9138FFBFF06CEDFFE01780 +6C4BC7FC6D806D81010F15E06D81010115FC010781011F81491680EBFFE748018115C048 +D9007F14E04848011F14F048487F48481303030014F8484880161F4848020713FC160182 +4848157F173FA2171FA2170FA218F8A27F007F17F06D151FA26C6CED3FE0001F17C06D15 +7F6C6CEDFF806C6C6C010313006C01E0EB0FFE6C01FCEBFFFC6C6CB612F06D5D010F1580 +010102FCC7FCD9000F13C0364F7ACD43>I<91380FFF8091B512F8010314FE010F6E7E49 +01037F90267FF8007F4948EB3FF048496D7E484980486F7E484980824817805A91C714C0 +5A7013E0A218F0B5FCA318F8A618FCA46C5DA37EA25E6C7F6C5DA26C5D6C7F6C6D137B6C +6D13F390387FF803011FB512E36D14C30103028313F89039007FFE03EC00401500A218F0 +5EA3D801F816E0487E486C16C0487E486D491380A218005E5F4C5A91C7FC6C484A5A494A +5A49495B6C48495BD803FC010F5B9027FF807FFEC7FC6C90B55A6C6C14F06D14C0010F49 +C8FC010013F0364F7ACD43>I<91B5FC010F14F8017F14FF90B712C00003D9C00F7F2707 +FC00017FD80FE06D7F48486E7E48C87FD87FE06E7E7F7F486C1680A66C5A18006C485C6C +5AC9485A5F4B5B4B5B4B5B4B5B4B90C7FC16FC4B5A4B5A16C04B5A93C8FC4A5A5D14035D +5D14075DA25D140FA25DAB91CAFCAAEC1FC04A7EECFFF8497FA2497FA76D5BA26D5BEC3F +E06E5A315479D340>63 D<171F4D7E4D7EA24D7EA34C7FA24C7FA34C7FA34C7FA24C7FA3 +4C8083047F80167E8304FE804C7E03018116F8830303814C7E03078116E083030F814C7E +031F81168083033F8293C77E4B82157E8403FE824B800201835D840203834B800207835D +844AB87EA24A83A3DA3F80C88092C97E4A84A2027E8202FE844A82010185A24A82010385 +4A82010785A24A82010F855C011F717FEBFFFCB600F8020FB712E0A55B547BD366>65 +D<932601FFFCEC01C0047FD9FFC013030307B600F81307033F03FE131F92B8EA803F0203 +DAE003EBC07F020F01FCC7383FF0FF023F01E0EC0FF94A01800203B5FC494848C9FC4901 +F8824949824949824949824949824990CA7E494883A2484983485B1B7F485B481A3FA248 +49181FA3485B1B0FA25AA298C7FC5CA2B5FCAE7EA280A2F307C07EA36C7FA21B0F6C6D19 +80A26C1A1F6C7F1C006C6D606C6D187EA26D6C606D6D4C5A6D6D16036D6D4C5A6D6D4C5A +6D01FC4C5A6D6DEE7F806D6C6C6C4BC7FC6E01E0EC07FE020F01FEEC1FF80203903AFFE0 +01FFF0020091B612C0033F93C8FC030715FCDB007F14E0040101FCC9FC525479D261>67 +D<BC1280A5D8000701F8C7000114C0F0001F19071901851A7F1A3F1A1FA2F20FE0A21A07 +A31A03A318F81BF01A01A497C7FC1701A317031707170F177F92B6FCA59238F8007F170F +170717031701A317001B3EA31B7CA395C8FCA21BFCA21BF8A21A01A31A031BF01A071A0F +A21A1F1A3FF27FE0F101FF1907191F0603B5FCBCFCA21BC0A34F517CD058>69 +D<B812C0A5D8000701F8C7FCB3B3B3B2B812C0A52A527CD132>73 +D<93380FFFC00303B6FC031F15E092B712FC0203D9FC0013FF020F01C0010F13C0023F90 +C7000313F0DA7FFC02007F494848ED7FFE4901E0ED1FFF49496F7F49496F7F4990C96C7F +49854948707F4948707FA24849717E48864A83481B804A83481BC0A2481BE04A83A2481B +F0A348497113F8A5B51AFCAF6C1BF86E5FA46C1BF0A26E5F6C1BE0A36C6D4D13C0A26C6D +4D1380A26C1B006C6D4D5A6E5E6C626D6C4C5B6D6D4B5B6D6D4B5B6D6D4B5B6D6D4B5B6D +6D4B90C7FC6D6D4B5A6D01FF02035B023F01E0011F13F0020F01FC90B512C0020390B7C8 +FC020016FC031F15E0030392C9FCDB001F13E0565479D265>79 D<BAFC19F819FF1AE086 +D8000701F0C7001F13FC060113FF726C13807313C0070F13E01BF0857313F81BFCA27313 +FEA41BFFA81BFEA31BFC61A21BF84F13F04F13E0614F13C04F13004E485A061F5B92B812 +F01AC04FC7FC19E003F8CBFCB3AEB812C0A550527CD15C>I<003FBC1280A59126C0003F +9038C0007F49C71607D87FF8060113C001E08449197F49193F90C8171FA2007E1A0FA300 +7C1A07A500FC1BE0481A03A6C994C7FCB3B3AC91B912F0A553517BD05E>84 +D<B800C00103B612FCA5D8000701F8CAEBF000F31F80B3B3B11B3FA26D97C7FC81637F1B +7E6D6D17FE505A6E7E505A6E6D15076E4D5A6E6D4B5A6E6D4B5A6E01F84B5A6E6DDA03FF +C8FC6E6CB46CEB0FFE6F9039F001FFF8030F90B65A030316C0DB007F92C9FC040F14F8DC +007F13805E537CD167>I<B700FC017FB600FE91B612F0A5D8003F01C0C8001F01E0C9EB +F8006F71EE0FC06D7161876F1C1F6D7196C7FC6F8373606D1E3E6F836D7160876F1CFC6D +666F4B801F016D66704A806E525A88704A17076E059F5F70021F80080F160F6E6570023F +806EDC3E074CC8FC8870027E5F6EDC7C03163E7002FC804F6C167E6E1C7C700101814F6C +16FC6E745B70010317016E4C6D5D060716C00580496D14036F63DDC00F16E04F6D14076F +07F05BDDE01F170F6F92C76C5D1DF8DDF03E6E141F6F98C9FCDDF87E16FC067C6E5C6FF1 +FE3EDDFCFC177E6F4A6E147C1DFFDDFFF06E14FC6F62A24E816F62A270496F5BA24E8170 +61A295C97E7061A270487090CAFCA37048705AA24D1601040360A27048705A84537DD18B +>87 D<EC7FFF0107B512F0013F14FE90B77E48D9E00F7F2703FE000113F0486C6D7F6EEB +3FFC48826E131F83707FA36C496D7FA26C90C7FC6C5AC9FCA6037FB5FC020FB6FC91B7FC +01071487013FEBF0074913803901FFFC004813F0485B485B485B4890C7FC5A5BA2485AA4 +5EA26D5C007F151D163D6C6C02797F6C6D01F113F86C9026C003E1EBFFE06C9026F81FC0 +14F06C90B5487EC6ED001F011F01FC010713E0010101E090C8FC3C387CB641>97 +D<EB3FF0B5FCA51203C6FCB3A4923801FFE0030F13FE033FEBFFC092B612F002F301017F +913AF7F8003FFEDAFFE0EB0FFF03806D7F92C76C7F4A6E7F4A824A6E7FA2727EA285A285 +84A31A80AC1A00A44E5AA36118FF616E4A5BA26E4A5B6E4A5B6F495BDACFC04990C7FCDA +87F0EB7FFC913A03FE03FFF849C6B612E0496D148049011F01FCC8FC90C7000313C04154 +7BD24B>I<913801FFF8021FEBFF8091B612F0010315FC010F9038C00FFE903A1FFE0001 +FFD97FFC491380D9FFF05B4817C048495B5C5A485BA2486F138091C7FC486F1300705A48 +92C8FC5BA312FFAD127F7FA27EA2EF03E06C7F17076C6D15C07E6E140F6CEE1F806C6DEC +3F006C6D147ED97FFE5C6D6CEB03F8010F9038E01FF0010390B55A01001580023F49C7FC +020113E033387CB63C>I<4DB47E0407B5FCA5EE001F1707B3A4913801FFE0021F13FC91 +B6FC010315C7010F9038E03FE74990380007F7D97FFC0101B5FC49487F4849143F484980 +485B83485B5A91C8FC5AA3485AA412FFAC127FA36C7EA37EA26C7F5F6C6D5C7E6C6D5C6C +6D49B5FC6D6C4914E0D93FFED90FEFEBFF80903A0FFFC07FCF6D90B5128F0101ECFE0FD9 +003F13F8020301C049C7FC41547CD24B>I<913803FFC0023F13FC49B6FC010715C04901 +817F903A3FFC007FF849486D7E49486D7E4849130F48496D7E48178048497F18C0488191 +C7FC4817E0A248815B18F0A212FFA490B8FCA318E049CAFCA6127FA27F7EA218E06CEE01 +F06E14037E6C6DEC07E0A26C6DEC0FC06C6D141F6C6DEC3F806D6CECFF00D91FFEEB03FE +903A0FFFC03FF8010390B55A010015C0021F49C7FC020113F034387CB63D>I<DA3FFF14 +FF0103B5D8F00713C0010FDAFC1F13E0013FECFF7F90267FFC0F9038FF9FF09026FFE001 +EBF83F48496C13E0484990387FF01F4890C7D83FF813E0489338FC0FC0F0078048486E6C +C7FCA2003F82A9001F5EA26C6C4A5AA26C5E6C6D495A6C6D495A6C6D485BDAFC0F5B4890 +B6C8FCD803EF14FC01C314F02607C03F90C9FC91CBFCA2120FA37FA213F813FE90B7FC6C +16F817FF18C06C836C836C836D828448B9FC12074848C700031480D81FF8EC003F484815 +0748486F13C083485A83A56D5D007F18806D5D003F18006C6C4B5AD80FFEED1FFC6C6C6C +EC7FF86C01E049485A6C01FE011F5B6C6CB71280010F03FCC7FC010115E0D9000F01FCC8 +FC3C4F7CB543>103 D<EB3FF0B5FCA51203C6FCB3A4EE1FFC93B512C0030314F0030F80 +92391FE07FFC92393F001FFE037C8003F07FDAF1E081ECF3C0DAF7807F8502FFC7FC5CA2 +5CA45CB3ACB6D8F807B612C0A542537BD24B>I<137F497E000313E0487FA2487FA76C5B +A26C5BC613806DC7FC90C8FCADEB3FF0B5FCA512017EB3B3A6B612E0A51B547BD325>I< +EB3FF0B5FCA51203C6FCB3A54CB512F8A59339003FFE00EF1FF0EF3FC04D5A4DC7FCEE03 +FEEE07F84C5A4C5AEE7FC04CC8FC4B5A4B5AED0FF8ED1FE04B7E4B7EECF1FF02F37F02F7 +7F91B6FC83159F030F7F02FE80DAF8077F4A7E6F7F6F7F83707E82707F84707F707F8270 +7F84707F177F717E4D13C0B6D8F003B6FCA540537CD247>107 D<EB3FF0B5FCA512017E +B3B3B3B1B612F0A51C537BD225>I<D93FF0D91FFCEDFFE0B591B500C0010713FE030302 +F0011F6D7E030F6E017F8092271FE07FFCD9FF037F922A3F001FFE01F8007F0003027C91 +26FF03E080C602F06DD90780137FDAF1E0038FC77FDAF3C0159EDAF7806D01BC143F07FC +8102FFC75C4A5EA24A5EA44A5EB3ACB6D8F807B6D8C03FB512FEA567367BB570>I<D93F +F0EB1FFCB591B512C0030314F0030F8092391FE07FFC92393F001FFE0003027C80C602F0 +7FDAF1E081ECF3C0DAF7807F8502FFC7FC5CA25CA45CB3ACB6D8F807B612C0A542367BB5 +4B>I<913801FFE0021F13FE91B612C0010315F0010F9038807FFC903A1FFC000FFED97F +F86D6C7E49486D7F48496D7F48496D7F4A147F48834890C86C7EA24883A248486F7EA300 +7F1880A400FF18C0AC007F1880A3003F18006D5DA26C5FA26C5F6E147F6C5F6C6D4A5A6C +6D495B6C6D495B6D6C495BD93FFE011F90C7FC903A0FFF807FFC6D90B55A010015C0023F +91C8FC020113E03A387CB643>I<903A3FF001FFE0B5010F13FE033FEBFFC092B612F002 +F301017F913AF7F8007FFE0003D9FFE0EB1FFFC602806D7F92C76C7F4A824A6E7F4A6E7F +A2717FA285187F85A4721380AC1A0060A36118FFA2615F616E4A5BA26E4A5B6E4A5B6F49 +5B6F4990C7FC03F0EBFFFC9126FBFE075B02F8B612E06F1480031F01FCC8FC030313C092 +CBFCB1B612F8A5414D7BB54B>I<90397FE003FEB590380FFF80033F13E04B13F09238FE +1FF89139E1F83FFC0003D9E3E013FEC6ECC07FECE78014EF150014EE02FEEB3FFC5CEE1F +F8EE0FF04A90C7FCA55CB3AAB612FCA52F367CB537>114 D<903903FFF00F013FEBFE1F +90B7FC120348EB003FD80FF81307D81FE0130148487F4980127F90C87EA24881A27FA27F +01F091C7FC13FCEBFFC06C13FF15F86C14FF16C06C15F06C816C816C81C681013F158001 +0F15C01300020714E0EC003F030713F015010078EC007F00F8153F161F7E160FA27E17E0 +7E6D141F17C07F6DEC3F8001F8EC7F0001FEEB01FE9039FFC00FFC6DB55AD8FC1F14E0D8 +F807148048C601F8C7FC2C387CB635>I<143EA6147EA414FEA21301A313031307A2130F +131F133F13FF5A000F90B6FCB8FCA426003FFEC8FCB3A9EE07C0AB011FEC0F8080A26DEC +1F0015806DEBC03E6DEBF0FC6DEBFFF86D6C5B021F5B020313802A4D7ECB34>I<D93FF8 +913801FFC0B50207B5FCA50003ED001FC61607B3AE5FA35FA2017F5D173B177B6D6C14F3 +DC01E313F06D6CD907C3EBFFC0903A0FFFC03F836D90B51203010114FE6D6C13F8020701 +E091C7FC42377BB54B>I<B600F00107B5FCA5000101F8C8EA7FE06C6DED3F00A2017F16 +3E6E157E013F167C6E15FC6D5E6F13016D5E8117036D5E6F13076D5E6F130F6D5E6F131F +6D93C7FC815F6E6C133E177E023F147C6F13FC6E5C16816E5C16C3A26EEBE3E016E76E5C +16FF6E5CA26E91C8FCA26F5AA36F5AA26F5AA26F5AA26F5A6F5A40367DB447>I<B6D8E0 +7FB5D8C003B512C0A5000101F0C701F0C7381FF8006E027FED07E06C715DA26E023F150F +017F705DA26E181F013F4B6C92C7FC6E606D70143E94B5FC6F177E6D4A6E137C03C001F3 +15FC6D715B160303E001E114016D020702E05B03F013C06D71485A160F03F8D9807F1307 +6D05F85B93381F003F03FC160F027F4902FC5BDBFE3E011F131F023F04FE90C8FC167EDB +FF7C010F5B6E01FCECFF3E4C6D137E6E5FA24C7F6E5F4C7F6E5FA24C7F6E5F4C147FA26E +5F93C8123F6F5EA2033E6FC9FC5A367DB461>I<007FB500F090387FFFFEA5C66C48C700 +0F90C7FC6D6CEC07F86D6D5C6D6D495A6D4B5A6F495A6D6D91C8FC6D6D137E6D6D5B9138 +7FFE014C5A6E6C485A6EEB8FE06EEBCFC06EEBFF806E91C9FCA26E5B6E5B6F7E6F7EA26F +7F834B7F4B7F92B5FCDA01FD7F03F87F4A486C7E4A486C7E020F7FDA1FC0804A486C7F4A +486C7F02FE6D7F4A6D7F495A49486D7F01076F7E49486E7E49486E7FEBFFF0B500FE49B6 +12C0A542357EB447>I E +%EndDVIPSBitmapFont +%DVIPSBitmapFont: Fu cmtt12 12 16 +/Fu 16 118 df<121FEA3F80EA7FC0EAFFE0A5EA7FC0EA3F80EA1F000B0B6C8A33>46 +D<EC07F8EC3FFF91B57E010314E0010F80498090383FFC0F90397FE003FC9038FF800148 +90C77ED803FC147E49EB7E7F0007903801FFBFD9F00713FF4848481480495A001F5B0180 +13C3003FEB7F810100010013C002FE137F4849133FEA7E014A131FA212FEEAFC034A130F +A96E131FD8FE011580127EA26E133FD87F0015006C6D5B027F13FE01801381001F90383F +C3FC01C013FF000F6D5B6D6C5B6C6C6C5BD9F80113800003D9007EC7FC6D9038000F806C +B4EC1FC06C6D133FD97FE013FF90263FFC0713806DB612006D5C010314F801005C023F13 +80DA07FCC7FC2A3F7CBD33>64 D<EB1FFC90B57E000314E048804814FC48809038F007FF +EBE0016E7F153F6C48806C48131FC87F150FA5EC0FFF49B5FC131F137F48B6FC0007140F +4813C0381FFC00EA3FF0EA7FC05B48C7FC5AA56C141F7E6D137FD83FE0497ED9F807EBFF +F06CB712F87E6C14F36C14C1C69138003FF0D91FF090C7FC2D2E7BAC33>97 +D<ECFFF0010713FE011FEBFF804914C04914E048B612F048EBC01F9038FE000F485A485A +4848EB07E049EB03C0484890C7FC5BA2127F90C9FCA25A5AA97E7EA27F003FEC01F06DEB +03F86C7E6D13076C6C14F06C6C130F01FFEB1FE06CEBE07F6C90B512C06C1580013F1400 +6D13FC01075B010013C0252E79AC33>99 D<ED7FF84B7E5CA280157F1501ABEB01FF0107 +13C1011F13F1017F13F990B6FC5A4813813907FE003FD80FF8131F49130F484813074913 +03123F491301127F90C7FCA25A5AA97E7E15037F123F6D1307A26C6C130F6D131F6C6C13 +3F6C6C137F2603FF81B512F091B612F8C602FD13FC6D13F96D01E113F8010F018013F0D9 +01FEC8FC2E3E7DBC33>I<ECFF80010713F0011F13FC497F90B6FC48158048018013C03A +07FE003FE001F8EB0FF048481307484814F8491303003F15FC491301127F90C7FC16FE15 +005A5AB7FCA516FC48C9FC7E7EA36C7E167C6C6C14FE7F6C7E6D13016C6CEB03FC6CB413 +0F6C9038C03FF86C90B512F06D14E06D14C0010F1400010313FC9038007FE0272E7BAC33 +>I<ED3FE0913801FFFC020713FE141F4A13FF5CECFFC015004948137E4A133C01031400 +5CA8003FB612F84815FCB7FCA36C15F8260003F8C7FCB3AD003FB612804815C0A46C1580 +283E7DBD33>I<D901FEEB1FE0903A0FFFC0FFF0013F01F313F84990B512FC90B7FC5A48 +010313E12607FC00EB80F849017F1360484890383FC00049131FA2001F8149130FA66D13 +1F000F5DA26D133F6C6C495A6D13FF2603FF0390C7FCECFFFE485C5D5DD80FCF13C0D981 +FEC8FC0180C9FCA27FA26C7E7F90B512FC6CECFFC06C15F0000715FC4815FF4816809038 +E0000748489038007FC090C8EA1FE048150F007E150700FE16F0481503A56C1507007E16 +E0007F150F6C6CEC1FC001E0147FD81FF8903801FF80270FFF801F13006C90B55A6C5DC6 +15F0013F14C0010F91C7FC010013F02E447DAB33>I<383FFFFC487FB5FCA27E7EC7FCB3 +B3AD003FB612F84815FCB712FEA26C15FC6C15F8273D7ABC33>108 +D<4AB4FC263FFC0713C0267FFE1F13F000FF017F7F91B5FC6CB67E6CEC07FEC6EBF801EC +F0004A7F4A7F5CA291C7FCA35BB3A43B3FFFF80FFFFC486D4813FEB56C4813FFA26C496C +13FE6C496C13FC302C7FAB33>110 D<EB01FE90380FFFC0013F13F0497F90B57E488048 +EB03FF2607FC0013804848EB7FC049133F4848EB1FE049130F4848EB07F0A2007F15F890 +C71203A300FEEC01FCAA6C14036C15F8A26D1307003F15F06D130FA26C6CEB1FE06D133F +6C6CEB7FC06C6CEBFF802603FF0313006CEBFFFE6C5C6D5B6D5B010F13C0D901FEC7FC26 +2E7AAC33>I<EC01FE3A3FFC0FFFC0486C4813F000FF017F7F91B512FE6CB7FC6CEBFE07 +C6D9F800138002E0EB7FC04AEB3FE04A131FEE0FF091C7FC16074915F81603A217FC1601 +A9160317F8A26D140717F06E130F17E06E131FEE3FC06E137F9139F801FF80DAFE071300 +91B55A495C6E5B6E13E0020F1380DA03FEC7FC91C9FCAF383FFFF8487FB57EA26C5B6C5B +2E427FAB33>I<ED03FE3B7FFF801FFF80B5D8C07F13E002C1B5FC02C314F014C76C9038 +CFFE0F39001FDFF09139FFC007E092388003C092C8FC5C5C5CA25CA25CA35CB2007FB512 +FEB7FCA46C5C2C2C7DAB33>114 D<90381FFE0F90B5EA8F80000314FF120F5A5AEBF007 +387F800190C7FC00FE147F5A153FA37E007FEC1F0001C090C7FCEA3FF8EBFFC06C13FF6C +14E0000314F8C680011F13FF01001480020713C0EC007FED1FE0007C140F00FEEC07F015 +03A27EA27F15076D14E06D130F6DEB3FC09038FE01FF90B61280160000FD5C00FC14F8D8 +F83F13E0D8780790C7FC242E79AC33>I<EB03C0497E130FAA003FB612FC4881B7FCA36C +5D26000FE0C8FCB3A3161FEE3F80A5167F6E140001075C6E5A9138FE07FE6DB55A6D5C6D +5C6E5B021F1380DA07FCC7FC29387EB633>I<D83FFCEB1FFE486C497E00FF5CA2007F80 +003F800000EC007FB3A75EA25DA26D5B90387F800FDAE03F13FC6DB612FE17FF6D806D01 +FE13FE01039038F83FFC010001C0C7FC302C7FAA33>I E +%EndDVIPSBitmapFont +%DVIPSBitmapFont: Fv cmr12 12 22 +/Fv 22 119 df<121EEA7F80A2EAFFC0A4EA7F80A2EA1E000A0A78891B>46 +D<143014F013011303131F13FFB5FC13E713071200B3B3B0497E497E007FB6FCA3204278 +C131>49 D<14FF010713E0011F13F890387F00FE01FC133FD801F0EB1F804848EB0FC049 +EB07E00007EC03F048481301A290C713F8481400A47FA26D130116F07F6C6CEB03E013FC +6C6CEB07C09039FF800F806C9038C01F006CEBF03EECF87839007FFEF090383FFFC07F01 +077F6D13F8497F90381E7FFFD97C1F1380496C13C02601E00313E048486C13F000079038 +007FF84848EB3FFC48C7120F003EEC07FE150148140016FF167F48153FA2161FA56C151E +007C153EA2007E153C003E157C6C15F86DEB01F06C6CEB03E06C6CEB07C0D803F8EB1F80 +C6B4EBFF0090383FFFFC010F13F00101138028447CC131>56 D<14FF010713E0011F13F8 +90387F80FC9038FC007E48487F4848EB1F804848EB0FC0000FEC07E0485AED03F0485A16 +F8007F140190C713FCA25AA216FE1500A516FFA46C5CA36C7E5D121F7F000F5C6C6C1306 +150E6C6C5B6C6C5BD8007C5B90383F01E090390FFF80FE903801FE0090C8FC150116FCA4 +ED03F8A216F0D80F801307486C14E0486C130F16C0ED1F80A249EB3F0049137E001EC75A +001C495A000F495A3907E01FE06CB51280C649C7FCEB1FF028447CC131>I<16C04B7EA3 +4B7EA34B7EA34B7EA3ED19FEA3ED30FFA203707FED607FA203E07FEDC03FA2020180ED80 +1FA2DA03007F160FA20206801607A24A6D7EA34A6D7EA34A6D7EA20270810260147FA202 +E08191B7FCA249820280C7121FA249C87F170FA20106821707A2496F7EA3496F7EA3496F +7EA201788313F8486C83D80FFF03037FB500E0027FEBFFC0A342477DC649>65 +D<DB0FFE146092B500C013E0020314F0913A0FFC01FC0191393FC0003E02FFC7EA0F83D9 +03FCEC03C74948EC01E74948EC00FF4948157F4948153F4948151F49C9120F485A491607 +120348481603A248481601A248481600A2123FA2491760127FA31900485AAE6C7EA21960 +A2123F7FA2001F18E07F000F18C0A26C6C160119806C6C160312016DEE07006C6C16066D +6C150E6D6C5D6D6C5D6D6C15786D6C5D6D6C4A5AD900FFEC0780DA3FC0011FC7FCDA0FFC +13FC0203B512F0020014C0DB0FFEC8FC3B487BC546>67 D<B8FC17F017FC00019039C000 +07FF6C499038007FC0017FED1FE0EF07F0EF03FC717E717E84727E727E727EA2727E8518 +0385A2180185A38584A31A80AD1A00A36061A361180361180761180F614E5A183F614EC7 +FC18FEEF03FC4D5AEF1FE001FFED7FC0486DD907FFC8FCB812FC17F094C9FC41447CC34B +>I<DB0FFE146092B500C013E0020314F0913A0FFC01FC0191393FC0003E02FFC7EA0F83 +D903FCEC03C74948EC01E74948EC00FF4948157F4948153F4948151F49C9120F485A4916 +07120348481603A248481601A248481600A2123FA2491760127FA396C7FC485AAD4CB612 +C06C7EA293C7387FF000725A003F171F7FA2121F7F120FA26C7EA26C7E6C7EA26C7E6D7E +6D6C153F6D7E6D6C157F6D6C15E7D903FEEC01C7D900FFEC0383DA3FE0EB0F01DA0FFCEB +FE000203B500F81360020002E090C7FCDB0FFEC9FC42487BC54D>71 +D<B56C933807FFFC6E5EA20001F1FE0026006FE0EE1BF8A3D967F01633A2D963F81663A3 +D961FC16C3A3D960FEED0183A2027FED0303A36E6C1406A36E6C140CA26E6C1418A36E6C +1430A36E6C1460A26E6C14C0A36E6CEB0180A3037FEB0300A292383F8006A36F6C5AA36F +6C5AA26F6C5AA36F6C5AA36F6C5AA26FB45AA370C7FC13F0A2486C143ED80FFFEF0FFEB5 +00F0011C0107B512FCA34E447BC359>77 D<EB07FC90383FFF809038F80FE03903C003F0 +48C66C7E000E6D7ED80FC0137E486C137F6D6D7EA36F7EA26C5AEA0380C8FCA4EC0FFF49 +B5FC90380FFE1FEB3FC0EBFF00EA03FC485A485A485A485A127F5B176048C7FCA3153FA3 +6D137F007F14EF6D9038C7E0C0003F13013A1FE00783F13B07F81E03FF802701FFFC0113 +003A001FE0007C2B2E7CAC31>97 D<EC7F80903803FFF090380FC07C90383F000F01FCEB +03804848EB01C00003140F4848EB1FE049133F120F485AA2485AED1FC0007FEC070092C7 +FCA290C9FC5AAB7E7FA2123F16307F001F15706C6C146016E06C6C14C06C6C13010001EC +03806C6CEB0700013F131E90381FC078903807FFF001001380242E7DAC2B>99 +D<167FED3FFFA315018182B3EC7F80903803FFF090380FC07C90383F000E017E1307496D +5AD803F87F48487F5B000F81485AA2485AA2127FA290C8FC5AAB7E7FA2123FA26C7EA200 +0F5D7F6C6C5B00035C6C6C9038077F806C6C010E13C0013F011C13FE90380FC0F8903803 +FFE09026007F0013002F467DC436>I<EB01FE903807FFC090381F03F090387E00FC4913 +7E48487F485A4848EB1F80000F15C049130F121F484814E01507A2007F15F090C7FCA25A +A390B6FCA290C9FCA67EA27FA2123F16306C7E1670000F15606D14E06C6C14C000031401 +6C6CEB03806C6CEB0700013E131E90381F80F8903803FFE0010090C7FC242E7DAC2B>I< +EA01FC12FFA3120712031201B3EC01FE913807FFC091381E07F091383801F802707FECE0 +00D9FDC07F5C01FF147F91C7FCA25BA35BB3A8486CECFF80B5D8F83F13FEA32F457DC436 +>104 D<EA01E0EA07F8A2487EA46C5AA2EA01E0C8FCADEA01FC12FFA3120712031201B3 +B0487EB512F8A315437DC21C>I<EA01FC12FFA3120712031201B3B3B3A5487EB512F8A3 +15457DC41C>108 D<3901FC01FE00FF903807FFC091381E07F091383801F8000701707F +0003EBE0002601FDC07F5C01FF147F91C7FCA25BA35BB3A8486CECFF80B5D8F83F13FEA3 +2F2C7DAB36>110 D<3901FC03FC00FF90380FFF8091383C07E091387001F83A07FDE000 +FE00010180137F01FFEC3F8091C7EA1FC04915E049140F17F0160717F8160317FCA3EE01 +FEABEE03FCA3EE07F8A217F0160F6D15E0EE1FC06D143F17806EEB7E00D9FDC05B9039FC +F003F891383C0FE091381FFF80DA03FCC7FC91C9FCAE487EB512F8A32F3F7DAB36>112 +D<3903F803F000FFEB1FFCEC3C3EEC707F0007EBE0FF3803F9C000015B13FBEC007E153C +01FF13005BA45BB3A748B4FCB512FEA3202C7DAB26>114 D<90383FE0183901FFFC3839 +07E01F78390F0003F8001E1301481300007C1478127800F81438A21518A27EA27E6C6C13 +006C7E13FC383FFFE06C13FC6C13FF6C14C06C14E0C614F0011F13F81300EC0FFC140300 +C0EB01FE1400157E7E153EA27EA36C143C6C147C15786C14F86CEB01F039F38003E039F1 +F00F8039E07FFE0038C00FF01F2E7DAC26>I<1306A5130EA4131EA3133E137EA213FE12 +011207001FB512F0B6FCA2C648C7FCB3A4150CAA017E131C017F1318A26D133890381F80 +30ECC070903807E0E0903801FFC09038007F001E3E7EBC26>I<B539F001FFFCA3000790 +C7EA7FE06C48EC1F8000011600160E1200160C017F5CA280013F5CA26E1370011F146080 +010F5CA2ECF00101075CA26D6C48C7FCA26E5A01011306A26D6C5AA214FF6E5AA215B8EC +3FB015F06E5AA36E5AA26E5AA36EC8FC2E2C7EAA33>118 D E +%EndDVIPSBitmapFont +%DVIPSBitmapFont: Fw cmss17 17.28 6 +/Fw 6 115 df<B8FC17F017FE717E18E018F8848401F0C700076D7EDC007F7F051F7F05 +077F8305007F727E183F727EA2727E841A80A284A21AC0A284A660A21A80A260A21A0060 +4E5AA24E5A187F4E5A5F05075B051F5B057F5B0407B55A90B9C7FC6018F86018C095C8FC +17FC17C001F0CCFCB3B3A6426474E356>80 D<ED7FFE0207B512E0021F14FE91B77E4916 +E0010716F84916FE49825B5B90B5D8C0035B4849C7123F4801F8140F4801E014034A1400 +4849153E91C9121C4848160C491604003F94C7FC5BA3485AA77FA2123F7FA27F6C7E806C +7F806C13F814FE6CEBFFC06C14FC6CECFFC016F86DECFF80011F15E06D15F86D15FE0101 +816D16C0021F81020781DA007F80030F80030080160F04017F706C138083050F13C08371 +13E0A27113F083A2187F19F8A2183FA9F07FF0A21220003017FF003818E0007C5E007F4C +13C07F01E04B13806D5D01FE033F1300B56C4A5A02F0EB01FF9126FF801F5B6C91B65A00 +1F5F6C5F00035FC694C7FC013F5D010F15F8010115E0D9001F91C8FC020013F03D687AE5 +4B>83 D<EC1FFE0103B512C0011F14F0017F14FC48B67E00078148168017C017E0DAC003 +13F049C713F8D807F0147F01C0EC3FFC5B0006C8EA1FFE0004150FC9FCA2EE07FFAA163F +92B6FC141F91B7FC1307133F5B48B8FC48ECFC074814004813F04813804848C7FC485A5B +5B485AA55E7F5E6C6C5C6D91B5FC01FF13036CEBC01F91B7FC7EA26C15F76C15C76C1507 +6C14FC6C6C13E0D91FFCC8FC30417ABF41>97 D<ED1FFE92B512C01403140F5C5C5C91B6 +FC5BEDF007499038C000404990C8FC5C130F5C131F5CA3133FB3A2B712E0A926003FF8C8 +FCB3B3B12A657DE429>102 D<DA07FCEC1FE0913A3FFF8003FF91B5EAE01F010302F8B5 +FC4991B6FC5B4917F05B90387FFC079026FFF00101E0C7FC489039C0007FF04A133F4882 +91C7121F48486E7EA448486E7EA96C6C4A5AA46C6C4A5A6E133F6C5E6E137F6C9039F001 +FFE0DAFC075B91B65A4893C8FC485D5ED807FB5C01F814E0023F13809026F007FCC9FC00 +0F90CBFCA37FA37F6CB4FC91B512FCEEFFE06C16FC17FF6C17C06C834883488348834883 +488349C712034848DA003F138049150F48488149817113C0485A83A56D5D007F18806D5D +A2D83FFC030F13006C6C4B5A6D6C147F6C01E049485A6C01FE011F5B6C90B75A6C5F6C6C +16806D93C7FC010F15FC010115E0D9003F91C8FC020313F03C5D7CBE43>I<ED1F80D8FF +C013FF14075C143F5C01C1B5FC13C313C713CFEDF00001DF1380D9FFFCC7FC5C14E05C5C +91C8FC5BA25BA25BA25BA35BB3B2213F76BE2E>114 D E +%EndDVIPSBitmapFont +%DVIPSBitmapFont: Fx cmr17 17.28 14 +/Fx 14 122 df<120FEA3FC0EA7FE012FF13F0A313F8A2127F123FEA0F381200A71378A2 +1370A313F013E0A2120113C012031380120713005A121EA25A5A127012300D28748B24> +44 D<913803FF80023F13F849B512FE01076E7E90261FFC0013E0D93FC0EB3FF8017EC7 +EA0FFC01F86E7E48486E7E48486E13804848804916C048C9EA7FE013E013F8486CED3FF0 +7FA66C5A6C5AEA01E0CAEA7FE0A318C017FF18805E18005E5F4C5A4C5A4C5A4C5AEE7F80 +4CC7FCED03FC913801FFF091B512C05E16F891380001FE9238003F80EE1FE0EE07F8707E +707E83701380EF7FC018E0173F18F018F8171FA218FCA2170F18FEA21207EA1FC0EA7FF0 +A2487EA5EF1FFC5B5B6C4816F80078C9123F18F07EEF7FE07E001FEEFFC06C6C4A13806C +7E6C6C4A1300D801F84A5AD800FEEC1FF8D93FC0495A903A1FFC01FFE00107B612800101 +4AC7FCD9003F13F00203138037607BDD42>51 D<003FBC12F8A49126C000039038C00003 +01FCC76C49EB007F01F0190F01C019074848F103FC90C81701007E1A00007C1B7CA30078 +1B3CA400701B1CA600F01B1E481B0EA7C91800B3B3B3A54C7FA2041F13F84AB87EA45762 +7CE160>84 D<EC03FE91381FFFE091B512F8903901FE03FE903A07F0007F8049486D7ED9 +3FC06D7E49C76C7E496E7E49140348488148481401000782491400000F8283485A188012 +3F49153FA2007F17C0A35BA212FF90B8FCA30180CAFCA9127F7FA3123FA27F121FEF01C0 +6C7E17036C6C1680A26C6C15070001EE0F006D150E6C6C151E6D6C5C6D6C5C6D6C5CD907 +F0EB03E0D903FC495A902700FF803FC7FC91383FFFFC020F13F00201138032417CBF3A> +101 D<EB03C0EA07FFB5FCA41201EA007FA2133FB3AAEE7FE0923803FFFC030F13FFDB3F +0013C00378EB1FE04B6D7EDAC1C06D7EDAC3808002C7C7120302CE81170114DC14D802F8 +6E7E5CA35CA35CB3B3496C4A7F496C4A7FB6D8F003B612C0A442647DE349>104 +D<133C13FF487F487FA66C5B6C90C7FC133C90C8FCB3A2EB03C0EA07FF127FA41201EA00 +7FA2133FB3B3AC497E497EB612E0A41B5F7DDE23>I<D903C0D9FFC0EC07FED807FF0103 +01F891381FFFC0B5010F01FE027F13F0923D3F00FF8001F807FC0378903B3FC003C001FE +DAC1E090261FE00FC77E0001D9C3C090260FF01E6E7ED8007F49902607F81C6E7E02C7C7 +5CD93FCE6E6C486E7E02CC166002DC16E002D85E02F8DA01FF6F7E4A5EA24A93C8FCA44A +5DB3B3496C4A6C4B7E496C4A6D4A7EB6D8F007B6D8803FB512FCA4663F7CBE6F>109 +D<D903C0EB7FE0D807FF903803FFFCB5010F13FFDB3F0013C00378EB1FE04B6D7E0001D9 +C1C06D7E27007FC3808002C7C71203D93FCE81170114DC14D802F86E7E5CA35CA35CB3B3 +496C4A7F496C4A7FB6D8F003B612C0A4423F7DBE49>I<EDFF80020F13F8023F13FE9139 +FF007F80D903FCEB1FE0D907F0EB07F0D90FC0EB01F8D93F80EB00FE49C8127F017E8149 +6F7E48486F7E00038349150700078348486F7EA2001F83491501A2003F83A348486F7EA4 +00FF1880AC007F1800A26D5DA2003F5FA36C6C4B5AA36C6C4B5A00075FA26C6C4B5A6C6C +4B5AA26C6C4B5A017F4BC7FC6D6C14FE6D6C495AD90FF0EB07F8D903FCEB1FE0D900FFEB +7F806EB5C8FC020F13F8020113C039417CBF42>I<9039078003F8D807FFEB0FFFB5013F +13C092387C0FE0913881F01F9238E03FF00001EB838039007F8700148FEB3F8E029CEB1F +E0EE0FC00298EB030002B890C7FCA214B014F0A25CA55CB3B0497EEBFFF8B612FCA42C3F +7CBE33>114 D<9139FFE00180010FEBFC03017FEBFF073A01FF001FCFD803F8EB03EFD8 +07E0EB01FF48487F4848147F48C8123F003E151F007E150F127CA200FC1507A316037EA2 +7E7F6C7E6D91C7FC13F8EA3FFE381FFFF06CEBFF806C14F86C14FF6C15C06C6C14F0011F +80010714FED9007F7F02031480DA003F13C01503030013E0167F00E0ED1FF0160F17F86C +15071603A36C1501A37EA26C16F016037E17E06D14076DEC0FC06D1580D8FDF0141FD8F8 +F8EC7F00013E14FC3AF01FC00FF80107B512E0D8E001148027C0003FF8C7FC2D417DBF34 +>I<1438A71478A414F8A31301A31303A21307130F131FA2137F13FF1203000F90B6FCB8 +FCA3260007F8C8FCB3AE17E0AE6D6CEB01C0A316036D6C148016076D6C14006E6C5A9138 +3FC01E91381FF07C6EB45A020313E09138007F802B597FD733>I<B66C49B512E0A40001 +01F8C8387FFE0026007FE0ED1FF819E0013F705A61131F6E93C7FC130F180E6E151E0107 +161C8001035EA26E157801011670806D5EA26F1301027F5DA26E6C495AA26F1307021F92 +C8FCA26E6C130EA26F131E0207141CA26F133C020314388102015CA26F13F06E5C168092 +387F81C0A216C3033F5B16E3DB1FE7C9FCA216FF6F5AA26F5AA36F5AA26F5AA36F5A433F +7FBD46>118 D<B66C49B512E0A4000101F8C8387FFE0026007FE0ED1FF819E0013F705A +61131F6E93C7FC010F160EA26D6C5DA26E153C01031638A26D6C5DA26E15F06D5EA26E6C +495AA26F1303023F5DA26F1307021F92C8FC6F5B020F140EA26F131E0207141C6F133C02 +031438A26F1378020114706F13F06E5CA21681037F5B16C3033F5BA216E7031F90C9FC16 +FF6F5AA36F5AA26F5AA36F5AA26F5AA215015E15035EA2150793CAFC5D150EA2151E151C +153CD81F801338487E486C5BA25D14015D49485A383F80074948CBFC001E133E380FC0FC +6CB45A000113E06C6CCCFC435B7FBD46>121 D E +%EndDVIPSBitmapFont +end +%%EndProlog +%%BeginSetup +%%Feature: *Resolution 600dpi +TeXDict begin + +%%EndSetup +%%Page: 1 1 +1 0 bop 1041 456 a Fx(The)44 b Fw(PSfrag)h Fx(system,)d(v)l(ersion)i(3) +1093 758 y Fv(Mic)m(hael)32 b(C.)h(Gran)m(t)g(and)f(Da)m(vid)g +(Carlisle)1188 874 y Fu(psfrag@rascals.stanford.)q(edu)1592 +1128 y Fv(11)g(April)f(1998)0 1563 y Ft(Con)l(ten)l(ts)0 +1767 y Fs(1)84 b(What)35 b(is)g Fr(PSfrag)q Fs(?)2841 +b(1)0 1971 y(2)84 b Fr(PSfrag)35 b Fs(necessities)2784 +b(2)136 2084 y Fq(2.1)94 b(Cho)s(osing)29 b(a)i(P)m(ostScript)f(driv)m +(er)82 b(.)46 b(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g +(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)132 +b(2)0 2288 y Fs(3)84 b(Installing)37 b Fr(PSfrag)2824 +b Fs(3)0 2492 y(4)84 b(Usage)3300 b(3)0 2695 y(5)84 b(Commands)33 +b(and)i(En)m(vironmen)m(ts)2191 b(4)136 2808 y Fq(5.1)94 +b(Em)m(b)s(edding)30 b Fp(PSfrag)h Fq(op)s(erations)f(in)m(to)g(EPS)f +(\014les)44 b(.)i(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g +(.)g(.)f(.)h(.)g(.)f(.)h(.)132 b(5)0 3012 y Fs(6)84 b(P)m(ac)m(k)-6 +b(age)37 b(Options)2815 b(6)0 3216 y(7)84 b(An)35 b(Example)3002 +b(7)136 3329 y Fq(7.1)94 b(Figure)30 b(scaling)g(and)g(resizing)f(.)46 +b(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g +(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)132 +b(8)0 3533 y Fs(8)84 b(Common)34 b(mistak)m(es,)g(kno)m(wn)h(problems,) +g(and)f(bugs)1448 b(9)136 3646 y Fq(8.1)94 b(Using)31 +b Fp(PSfrag)g Fq(tags)h(prop)s(erly)89 b(.)45 b(.)h(.)g(.)f(.)h(.)g(.)f +(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.) +f(.)h(.)g(.)f(.)h(.)132 b(9)136 3758 y(8.2)94 b(Problems)29 +b(using)g(some)i Fp(x\014g)h Fq(\014gures)81 b(.)45 b(.)h(.)g(.)f(.)h +(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.) +h(.)g(.)f(.)h(.)87 b(11)136 3871 y(8.3)94 b(Problems)29 +b(using)g(old)h(v)m(ersions)g(of)g(the)h Fp(semina)m(r)h +Fq(pac)m(k)-5 b(age)60 b(.)45 b(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g +(.)f(.)h(.)g(.)f(.)h(.)87 b(11)0 4075 y Fs(9)d(The)35 +b Fr(PSfrag)g Fs(mailing)f(list)2478 b(11)0 4411 y Ft(1)135 +b(What)45 b(is)g Fo(PSfrag)r Ft(?)0 4664 y Fq(Man)m(y)38 +b(dra)m(wing)d(and)h(graphing)g(pac)m(k)-5 b(ages)39 +b(pro)s(duce)c(output)i(in)e(the)i(Encapsulated)f(P)m(ostScript)h +(\(EPS\))0 4777 y(format,)46 b(but)41 b(few)i(can)f(easily)g(pro)s +(duce)f(the)h(equations)g(and)g(other)h(scien)m(ti\014c)e(text)j(of)e +(whic)m(h)f(T)3539 4797 y(E)3589 4777 y(X)i(is)0 4890 +y(so)37 b(capable.)59 b(On)35 b(the)i(other)g(hand,)g(man)m(y)g(L)1602 +4873 y Fn(A)1641 4890 y Fq(T)1692 4910 y(E)1742 4890 +y(Xbased)f(dra)m(wing)g(pac)m(k)-5 b(ages)38 b(are)f(not)g(as)f +(expressiv)m(e)h(or)0 5003 y(easy-to-use)32 b(as)f(these)g(stand-alone) +f(to)s(ols.)0 5166 y Fp(PSfrag)h Fq(pro)m(vides)e(the)i(b)s(est)f(of)g +(b)s(oth)g(w)m(orlds)f(b)m(y)h(allo)m(wing)f(the)i(user)f(to)h +(precisely)e(o)m(v)m(erla)m(y)j(Encapsulated)0 5279 y(P)m(ostScript)27 +b(\(EPS\))g(\014les)f(with)g(arbitrary)g(L)1504 5262 +y Fn(A)1543 5279 y Fq(T)1594 5298 y(E)1644 5279 y(X)h(constructions.)39 +b(In)27 b(order)f(to)i(accomplish)e(this,)h(the)g(user)0 +5391 y(places)38 b(a)g(simple)e(text)j(\\tag")i(in)36 +b(the)i(graphics)f(\014le,)j(as)e(a)h(\\p)s(osition)d(mark)m(er")j(of)f +(sorts.)64 b(Then,)39 b(using)0 5504 y(simple)g(L)318 +5488 y Fn(A)357 5504 y Fq(T)408 5524 y(E)458 5504 y(X)j(commands,)h +(the)f(user)e(instructs)g Fp(PSfrag)h Fq(to)h(remo)m(v)m(e)h(that)f +(tag)g(from)e(the)i(\014gure,)h(and)0 5617 y(replace)36 +b(it)g(with)f(a)h(prop)s(erly)e(sized,)k(aligned,)e(and)g(rotated)h(L) +2207 5601 y Fn(A)2246 5617 y Fq(T)2297 5637 y(E)2347 +5617 y(X)g(equation.)58 b Fp(PSfrag)37 b Fq(also)f(allo)m(ws)f(the)0 +5730 y(user)30 b(to)h(place)f(L)560 5713 y Fn(A)599 5730 +y Fq(T)650 5750 y(E)700 5730 y(X)h(constructs)g(directly)e(in)m(to)h +(the)g(EPS)g(\014le)g(itself.)1858 6065 y(1)p eop +%%Page: 2 2 +2 1 bop 0 91 a Fq(Dr.)33 b(Craig)e(Barratt)j(wrote)f(the)f(original)f +(v)m(ersion)g(of)40 b Fp(PSfrag)33 b Fq(as)g(a)g(graduate)g(studen)m(t) +f(at)h(Stanford)e(Uni-)0 204 y(v)m(ersit)m(y)-8 b(.)40 +b(The)26 b(in)m(terface)i(has)e(c)m(hanged)i(v)m(ery)f(little)e(since)h +(then,)i(but)e(the)h(in)m(ternals)e(ha)m(v)m(e)j(b)s(een)e(completely)0 +317 y(re-written.)45 b(The)32 b(curren)m(t)g(v)m(ersion)g(of)g(PSfrag)g +(is)f(main)m(tained)g(b)m(y)h(Mic)m(hael)g(Gran)m(t)h(and)e(Da)m(vid)i +(Carlisle.)0 430 y(Man)m(y)c(thanks)f(go)i(to)f(the)g(mem)m(b)s(ers)f +(of)h(the)f Fp(PSfrag)i Fq(mailing)c(list,)i(and)g(to)h(ev)m(ery)m(one) +i(who)d(has)g(submitted)0 543 y(a)j(bug)f(rep)s(ort)f(or)i(suggestion.) +0 879 y Ft(2)135 b Fo(PSfrag)46 b Ft(necessities)0 1132 +y Fq(In)30 b(order)g(to)h(use)f Fp(PSfrag)p Fq(,)g(y)m(ou)h(will)c +(need)j(the)h(follo)m(wing)e(to)s(ols:)136 1369 y Fm(\017)46 +b Fq(A)e(recen)m(t)h(v)m(ersion)f(of)g(L)1087 1353 y +Fn(A)1126 1369 y Fq(T)1177 1389 y(E)1227 1369 y(X)14 +b(2)1354 1383 y Fl(")1445 1369 y Fq(and)43 b(the)h Fp(graphics)g +Fq(pac)m(k)-5 b(age.)83 b Fp(PSfrag)45 b Fq(curren)m(tly)e(requires)f +(the)227 1482 y(1995/12/01)47 b(v)m(ersion)41 b(or)h(later)g(of)g +(these)g(pac)m(k)-5 b(ages,)47 b(but)41 b(it)h(is)f(alw)m(a)m(ys)h(b)s +(est)f(to)i(ha)m(v)m(e)g(the)f(most)227 1595 y(recen)m(t)32 +b(release.)136 1783 y Fm(\017)46 b Fq(If)34 b(y)m(ou)h(wish)d(to)j(use) +f(the)h Fp(semina)m(r)g Fq(pac)m(k)-5 b(age)37 b(with)c +Fp(PSfrag)p Fq(,)i(y)m(ou)f(should)e(mak)m(e)k(sure)d(y)m(ou)i(ha)m(v)m +(e)g(the)227 1896 y(1997/10/13)g(v)m(ersion)30 b(or)g(later)h(\(see)g +(section)g(8.3\).)136 2083 y Fm(\017)46 b Fq(A)40 b(compatible)e(D)m +(VI-to-P)m(ostScript)k(driv)m(er)c(\(see)i(b)s(elo)m(w\).)67 +b Fp(dvips)39 b Fq(is)g(the)g(primary)f(c)m(hoice)i(of)f(the)227 +2196 y Fp(PSfrag)31 b Fq(dev)m(elop)s(ers,)f(and)g(is)g(certainly)f +(the)i(most)f(widely-used.)0 2434 y(The)39 b(latest)h(v)m(ersions)f(of) +g(L)943 2417 y Fn(A)982 2434 y Fq(T)1033 2453 y(E)1084 +2434 y(X)14 b(2)1211 2448 y Fl(")1258 2434 y Fq(,)41 +b(the)f Fp(graphics)g Fq(pac)m(k)-5 b(age,)44 b Fp(PSfrag)p +Fq(,)d(and)e Fp(dvips)g Fq(can)g(all)g(b)s(e)g(found)f(on)0 +2547 y(CT)-8 b(AN,)28 b(the)f(Comprehensiv)m(e)f(T)1146 +2566 y(E)1196 2547 y(X)i(Arc)m(hiv)m(e)f(Net)m(w)m(ork.)41 +b(The)27 b(CT)-8 b(AN)28 b(cites,)g(and)f(their)f(mirrors,)h(include:) +978 2778 y(Name)491 b(IP)30 b(address)301 b(Lo)s(cation)p +928 2815 1906 4 v 978 2894 a Fk(ftp.dante.de)144 b Fq(129.206.100.192) +106 b(German)m(y)978 3007 y Fk(ftp.tex.ac.uk)96 b Fq(128.232.1.87)241 +b(England)978 3120 y Fk(ftp.cdrom.com)96 b Fq(165.113.58.253)151 +b(USA)0 3409 y Fj(2.1)112 b(Cho)s(osing)38 b(a)g(P)m(ostScript)d(driv)m +(er)0 3630 y Fp(PSfrag)h Fq(relies)e(on)h(some)g(sensitiv)m(e)g(P)m +(ostScript)f(tric)m(ks)h(to)h(accomplish)e(its)g(goals.)56 +b(Due)35 b(to)h(limited)d(time)0 3743 y(and)40 b(resources,)j(the)e +(authors)f(could)f(not)i(con\014rm)e(that)i Fp(PSfrag)g +Fq(w)m(orks)g(prop)s(erly)d(on)i(ev)m(ery)h(a)m(v)-5 +b(ailable)0 3856 y(P)m(ostScript)37 b(driv)m(er.)61 b(W)-8 +b(e)39 b(ha)m(v)m(e)g(attempted)g(to)f(insure)e(that)i(it)f(will)e +Fi(eventual)5 b(ly)46 b Fq(w)m(ork)38 b(on)f(ev)m(ery)i(driv)m(er)0 +3969 y(that)31 b(is)e(fully)f(comaptible)i(with)f(the)i +Fp(graphics)f Fq(pac)m(k)-5 b(age)33 b(\()p Fi(i.e.)p +Fq(,)d(one)h(for)f(whic)m(h)f(a)i Fk(.def)e Fq(\014le)g(is)h(pro)m +(vided.\))0 4131 y(The)g(driv)m(ers)f(whic)m(h)g(ha)m(v)m(e)j(b)s(een)d +(con\014rmed)h(to)h(w)m(ork)f(with)f Fp(PSfrag)i Fq(are:)768 +4361 y(Driv)m(er)777 b(T)-8 b(ested)31 b(b)m(y)168 b(Compatibilit)m(y)p +718 4398 2326 4 v 768 4477 a(Thomas)30 b(Rokic)m(ki's)g +Fp(dvips)99 b Fq(the)30 b(authors)100 b(fully)28 b(compatible)768 +4590 y(Y&Y's)i Fp(D)m(VIPSONE)288 b Fq(the)30 b(authors)100 +b(fully)28 b(compatible)0 4820 y(Please)37 b(help)f(us)g(add)h(en)m +(tries)f(to)i(this)e(list!)59 b(If)44 b Fp(PSfrag)38 +b Fq(w)m(orks)f(with)f(y)m(our)g(driv)m(er,)i(please)f(let)g(us)f(kno)m +(w,)0 4933 y(so)e(w)m(e)h(can)f(add)f(it)h(to)h(the)f(list.)50 +b(If)34 b(p)s(ossible,)e(test)j(y)m(our)f Fp(PSfrag)h +Fq(output)f(on)g(b)s(oth)f(Lev)m(el)h(1)h(and)e(Lev)m(el)h(2)0 +5046 y(prin)m(ters,)c(so)h(w)m(e)g(can)g(mak)m(e)g(a)h(distinction)c +(here)j(if)e(necessary)-8 b(.If)39 b Fp(PSfrag)31 b Fq(do)s(es)g +Fi(not)40 b Fq(w)m(ork,)31 b(please)f(submit)0 5159 y(a)g(bug)f(rep)s +(ort;)h(consult)f(section)h(9)g(for)g(con)m(tact)i(information.)39 +b(unfortunately)-8 b(,)29 b(w)m(e)h(cannot)g(promise)f(a)h(\014x)0 +5272 y(for)g(ev)m(ery)m(one,)i(but)e(w)m(e)h(w)m(ould)e(lik)m(e)h(to)h +(insure)d(that)j(the)g(most)g(p)s(opular)d(driv)m(ers)h(remain)g +(compatible.)1858 6065 y(2)p eop +%%Page: 3 3 +3 2 bop 0 91 a Ft(3)135 b(Installing)48 b Fo(PSfrag)0 +341 y Fq(Installing)28 b(the)j(v)-5 b(arious)29 b Fp(PSfrag)i +Fq(\014les)e(is)h(quite)g(simple:)111 566 y(1.)46 b(Run)30 +b(L)450 549 y Fn(A)489 566 y Fq(T)540 586 y(E)590 566 +y(X)g(on)h Fk(psfrag.ins)c Fq(to)k(extract)h Fk(psfrag.sty)c +Fq(and)h Fk(psfrag.pro)p Fq(.)111 750 y(2.)46 b(Install)19 +b Fk(psfrag.sty)f Fq(in)h(a)i(standard)f(lo)s(cation)g(for)g(L)2017 +734 y Fn(A)2056 750 y Fq(T)2107 770 y(E)2158 750 y(X)14 +b(2)2285 764 y Fl(")2352 750 y Fq(macros.)38 b(F)-8 b(or)21 +b Fp(kpathsea)p Fq(-based)g(systems)227 863 y(lik)m(e)30 +b Fp(teT)514 883 y(E)557 863 y(X)p Fq(,)g(this)f(path)h(is)g +(determined)f(b)m(y)h(the)h Fk(TEXINPUTS)c Fq(v)-5 b(ariable.)111 +1047 y(3.)46 b(Install)32 b Fk(psfrag.pro)e Fq(wherev)m(er)j(y)m(our)g +(P)m(ostScript)g(driv)m(er)f(lo)s(oks)h(for)g(header)g(\014les.)48 +b(F)-8 b(or)33 b Fp(kpathsea)p Fq(-)227 1160 y(based)f(systems)h(lik)m +(e)e Fp(teT)1110 1181 y(E)1153 1160 y(X)p Fq(,)i(this)e(is)g +(determined)g(b)m(y)h(the)h Fk(DVIPSHEADERS)c Fq(v)-5 +b(araible.)45 b(F)-8 b(or)33 b Fp(dvips)f Fq(in)227 1273 +y(particular,)40 b(the)g(most)g(logical)f(c)m(hoice)h(w)m(ould)e(b)s(e) +h(the)g(same)h(directory)f(in)f(whic)m(h)g Fk(tex.pro)f +Fq(and)227 1386 y Fk(special.pro)28 b Fq(are)i(lo)s(cated.)111 +1570 y(4.)46 b(If)36 b(y)m(ou)h(ha)m(v)m(e)g(an)g(older)e(v)m(ersion)h +(of)44 b Fp(PSfrag)p Fq(,)37 b(y)m(ou)g(ma)m(y)g(delete)f(the)h(follo)m +(wing)e(\014les,)i(if)e(they)i(exist:)227 1683 y Fk(ps2frag.ps)p +Fq(,)26 b Fk(ps2frag)g Fq(or)i Fk(ps2psfrag)e Fq(\(the)j(pro)s(cessing) +e(scripts\),)g(and)h Fk(epsf.sty)e Fq(\(the)i(one)h(pro-)227 +1796 y(vided)h(b)m(y)j Fp(PSfrag)p Fq(,)f Fi(not)41 b +Fq(the)32 b Fp(dvips)f Fq(v)m(ersion!\).)44 b(System)32 +b(managers)g(ma)m(y)g(wish)e(to)i(replace)g Fk(ps2frag)227 +1909 y Fq(with)d(a)i(script)e(whic)m(h)g(noti\014es)h(users)g(of)g(the) +h(upgrade.)0 2240 y Ft(4)135 b(Usage)0 2490 y Fq(Here)31 +b(is)e(a)i(quic)m(k)f(summary)f(of)i(the)f(usage)h(of)38 +b Fp(PSfrag)q Fq(:)136 2715 y Fm(\017)46 b Fq(Use)38 +b(the)f Fk(\\includegraphics)c Fq(command)k(de\014ned)f(b)m(y)i(the)f +Fp(graphics)h Fq(and)e Fp(graphicx)i Fq(pac)m(k)-5 b(ages)39 +b(to)227 2828 y(add)33 b(EPS)g(\014gures)h(to)g(y)m(our)g(new)f(do)s +(cumen)m(ts.)51 b(If)33 b(y)m(ou)i(m)m(ust)e(use)h(the)g +Fk(\\epsfbox)d Fq(command)j(from)227 2941 y Fk(epsf.sty)e +Fq(for)i(old)g(do)s(cumen)m(ts,)h(then)f Fk(epsf.sty)e +Fq(m)m(ust)j(b)s(e)e(loaded)h Fi(b)-5 b(efor)g(e)42 b +Fk(psfrag.sty)p Fq(.)50 b(Other)227 3054 y(pac)m(k)-5 +b(ages)29 b(based)e(on)h Fk(graphics.sty)p Fq(,)d(suc)m(h)i(as)g +Fp(graphicx)h Fq(or)f Fp(eps\014g)p Fq(,)i(do)e(not)g(su\013er)g(this)f +(restriction.)136 3238 y Fm(\017)46 b Fq(Load)31 b Fk(psfrag.sty)c +Fq(with)i(a)i Fk(\\usepackage)d Fq(command.)136 3422 +y Fm(\017)46 b Fq(Mak)m(e)36 b(sure)d(that)h(y)m(our)g(EPS)f(\014gures) +g(con)m(tain)h(a)g(simple)d(\\tag")36 b(w)m(ord)e(in)e(eac)m(h)j(p)s +(osition)d(that)i(y)m(ou)227 3535 y(w)m(ould)42 b(lik)m(e)h(a)g(L)797 +3519 y Fn(A)836 3535 y Fq(T)887 3555 y(E)937 3535 y(X)h(replacemen)m +(ts.)79 b(Use)44 b(a)f Fi(single)50 b Fq(w)m(ord,)c(comp)s(osed)d(of)g +(unaccen)m(ted)h(letters)227 3648 y(and)35 b(n)m(um)m(b)s(ers.)55 +b(Some)35 b(e\013ort)i(has)e(b)s(een)g(made)g(to)i(allo)m(w)e(for)g +(more)h(arbitrary)e(tag)i(text,)j(but)34 b(the)227 3761 +y(mec)m(hanism)c(is)f(not)i(infallible;)26 b(see)31 b(section)g(8.1.) +136 3945 y Fm(\017)46 b Fq(F)-8 b(or)40 b(eac)m(h)g(tag)g(w)m(ord)f(in) +e(y)m(our)i(EPS)f(\014le,)j(add)d(a)i(command)e(to)i(y)m(our)f(y)m(our) +g(L)3005 3929 y Fn(A)3044 3945 y Fq(T)3095 3965 y(E)3145 +3945 y(X)g(do)s(cumen)m(t)g(to)227 4058 y(sp)s(ecify)29 +b(ho)m(w)i(this)e(tag)j(is)d(to)i(replaced,)f(as)h(follo)m(ws:)427 +4242 y Fk(\\psfrag{)p Fi(tag)8 b Fk(}[)p Fm(h)p Fi(p)-5 +b(osn)7 b Fm(i)p Fk(][)p Fm(h)p Fi(psp)-5 b(osn)7 b Fm(i)s +Fk(][)p Fm(h)p Fi(sc)-5 b(ale)7 b Fm(i)p Fk(][)p Fm(h)p +Fi(r)-5 b(ot)9 b Fm(i)r Fk(]{)p Fi(L)2483 4226 y Fh(A)2522 +4242 y Fi(T)2572 4262 y(E)2620 4242 y(X)32 b(text)9 b +Fk(})227 4427 y Fq(The)27 b(tag)i(will)c(b)s(e)i(replaced)g(b)m(y)h +(the)g(L)1513 4410 y Fn(A)1552 4427 y Fq(T)1603 4446 +y(E)1653 4427 y(X)g(text.)41 b(Example:)d(in)27 b(a)h(dra)m(wing)e +(program)i(lik)m(e)f Fp(x\014g)p Fq(,)h(y)m(ou)227 4540 +y(place)j(the)f(text)427 4724 y Fk(xy)227 4908 y Fq(at)h(a)g +(particular)e(p)s(oin)m(t.)40 b(T)-8 b(o)30 b(replace)h(this)e(with)g +Fl(x)20 b Fq(+)g Fl(y)s Fq(,)31 b(one)f(p)s(ossible)e(macro)j(w)m(ould) +e(b)s(e)427 5092 y Fk(\\psfrag{xy}{$x+y$})0 5318 y Fq(All)20 +b Fk(\\psfrag)f Fq(calls)h(that)h(precede)g(the)g Fk(\\includegraphics) +c Fq(\(or)k(equiv)-5 b(alen)m(t\))21 b(in)e(the)j(same)f(or)g +(surrounding)0 5431 y(en)m(vironmen)m(ts)30 b(will)e(b)s(e)i(utilized)e +(for)j(a)g(giv)m(en)f(P)m(ostScript)g(\014le.)41 b(So,)30 +b(y)m(ou)h(can)g(de\014ne)f(global)g Fk(\\psfrag)p Fq(s)e(as)0 +5544 y(w)m(ell)h(as)i(those)g(that)g(are)g(lo)s(cal)e(to)i(a)g +(\014gure.)0 5703 y(An)m(y)f(text)h(that)f(is)f(not)h(men)m(tioned)f +(in)g(a)h Fk(\\psfrag)e Fq(command)i(will)d(not)j(b)s(e)f(replaced;)h +(hence,)g(P)m(ostScript)0 5816 y(and)g(L)201 5799 y Fn(A)240 +5816 y Fq(T)291 5835 y(E)341 5816 y(X)h(text)g(can)g(b)s(e)e(freely)h +(mixed.)1858 6065 y(3)p eop +%%Page: 4 4 +4 3 bop 0 91 a Fq(When)38 b(viewing)e(the)i(output)g(with)e(a)j(D)m(VI) +g(preview)m(er)e(suc)m(h)g(as)i Fp(dviwin)e Fq(or)h Fp(xdvi)p +Fq(,)h(a)g(v)m(ertical)f(list)e(of)i(the)0 204 y(replacemen)m(ts)g +(will)c(b)s(e)j(placed)g(on)g(the)h(left)f(side)g(of)g(eac)m(h)i +(\014gure.)61 b(This)36 b(list)g(allo)m(ws)g(y)m(ou)i(to)g(c)m(hec)m(k) +h(the)0 317 y(t)m(yp)s(esetting)34 b(of)f(y)m(our)h(replacemen)m(ts;)h +(it)e(disapp)s(ears)e(in)h(the)i(\014nal)e(P)m(ostScript)g(v)m(ersion.) +50 b(Unfortunately)-8 b(,)0 430 y(D)m(VI)35 b(driv)m(ers)d(are)i +(incapable)f(of)h Fi(placing)42 b Fq(the)34 b Fp(PSfrag)h +Fq(replacemen)m(ts)f(on)f(top)h(of)g(the)g(\014gure,)g(so)g(for)g(that) +0 543 y(y)m(ou)d(will)c(need)k(to)g(prin)m(t)e(it)h(out)g(or)h(use)f(a) +g(P)m(ostScript)g(preview)m(er)g(lik)m(e)g(GhostView.)0 +706 y(This)23 b(v)m(ersion)g(of)32 b Fp(PSfrag)25 b Fi(should)35 +b Fq(run)23 b(prop)s(erly)f(in)h(the)i(compatibilit)m(y)d(mo)s(de)i(of) +g(L)2852 689 y Fn(A)2891 706 y Fq(T)2942 725 y(E)2993 +706 y(X2.09.)40 b(Let)25 b(us)f(kno)m(w)0 819 y(if)29 +b(y)m(ou)i(\014nd)e(otherwise)h(\(see)h(section)g(9\).)0 +1155 y Ft(5)135 b(Commands)45 b(and)g(En)l(vironmen)l(ts)p +-227 1417 2477 4 v -229 1517 4 100 v -177 1487 a Fg(\\psfrag{)p +Ff(tag)7 b Fg(}[)p Fe(h)p Ff(p)l(osn)f Fe(i)m Fg(][)p +Fe(h)p Ff(psp)l(osn)g Fe(i)q Fg(][)p Fe(h)p Ff(sc)l(ale)g +Fe(i)q Fg(][)p Fe(h)p Ff(r)l(ot)i Fe(i)o Fg(]{)p Ff(r)l(eplac)l(ement)g +Fg(})p 2248 1517 V -229 1617 V -177 1587 a(\\psfrag*{)p +Ff(tag)f Fg(}[)p Fe(h)p Ff(p)l(osn)f Fe(i)m Fg(][)p Fe(h)p +Ff(psp)l(osn)g Fe(i)p Fg(][)p Fe(h)p Ff(sc)l(ale)g Fe(i)q +Fg(][)p Fe(h)p Ff(r)l(ot)i Fe(i)p Fg(]{)p Ff(r)l(eplac)l(ement)g +Fg(})p 2248 1617 V -227 1620 2477 4 v 0 1774 a Fq(The)34 +b Fk(\\psfrag)e Fq(macro)j(de\014nes)f(a)g(L)1242 1757 +y Fn(A)1281 1774 y Fq(T)1332 1793 y(E)1383 1774 y(X-t)m(yp)s(eset)h +Fk({)p Fi(r)-5 b(eplac)g(ement)9 b Fk(})36 b Fq(to)f(b)s(e)e(placed)h +(at)h(the)g(same)f(p)s(osition)0 1886 y(as)g(a)g(P)m(ostScript)f +Fk({)p Fi(tag)8 b Fk(})p Fq(.)51 b(The)33 b(command)g(should)f(b)s(e)h +(placed)g(b)s(efore)h(the)f(call)g(to)i Fk(\\includegraphics)p +Fq(,)0 1999 y(or)30 b(equiv)-5 b(alen)m(t.)41 b(It)30 +b(matc)m(hes)i Fi(al)5 b(l)40 b Fq(o)s(ccurrences)30 +b(of)h Fk({)p Fi(tag)8 b Fk(})30 b Fq(in)f(the)i(\014gure.)0 +2162 y(A)21 b Fk(\\psfrag)f Fq(command)h(will)d(remain)j(in)f(e\013ect) +i(un)m(til)e(its)h(surrounding)d(en)m(vironmen)m(t)j(is)f(exited.)38 +b(Therefore,)0 2275 y(y)m(ou)32 b(can)h(de\014ne)e(global)g +Fk(\\psfrag)p Fq(s)f(whic)m(h)h(will)e(apply)i(to)i(ev)m(ery)g +(\014gure,)f(or)g(de\014ne)f Fk(\\psfrag)p Fq(s)f(inside)g(a)i(a)0 +2388 y Fk(figure)d Fq(en)m(vironmen)m(t)h(\(for)g(example\))h(whic)m(h) +e(apply)g(to)i(a)g(single)e(EPS)g(\014le.)0 2551 y(The)g(optional)g(p)s +(ositioning)e(argumen)m(ts)k Fk([)p Fm(h)p Fi(p)-5 b(osn)7 +b Fm(i)r Fk(])29 b Fq(and)g Fk([)p Fm(h)p Fi(psp)-5 b(osn)7 +b Fm(i)s Fk(])29 b Fq(sp)s(ecify)g(ho)m(w)h(the)g(b)s(ounding)d(b)s(o)m +(x)i(of)0 2664 y(the)d(L)176 2647 y Fn(A)215 2664 y Fq(T)266 +2683 y(E)317 2664 y(X)g(text)h(and)e(the)i(b)s(ounding)c(b)s(o)m(x)j +(of)g(the)g(P)m(ostScript)g(text)h(line)d(up,)j(resp)s(ectiv)m(ely)-8 +b(.)39 b(Some)26 b(dra)m(wing)0 2776 y(pac)m(k)-5 b(ages)32 +b(w)m(ould)d(refer)h(to)i(these)e(as)h(\\con)m(trol)g(p)s(oin)m(ts")f +(or)g(\\alignmen)m(t)h(p)s(oin)m(ts.")45 3039 y Fk([)p +Fm(h)p Fi(p)-5 b(osn)7 b Fm(i)r Fk(])34 b Fq(the)h(L)614 +3022 y Fn(A)653 3039 y Fq(T)704 3058 y(E)754 3039 y(X)g(text)g +(reference)g(p)s(oin)m(t.)52 b(The)33 b(syn)m(tax)i(of)g(this)e +(argumen)m(t)i(is)e(iden)m(tical)g(to)i(that)g(of)227 +3152 y(the)i Fk(\\makebox)d Fq(command.)58 b(Up)36 b(to)g(t)m(w)m(o)i +(letters)e(ma)m(y)h(b)s(e)f(c)m(hosen,)i(one)f(from)f(the)g(list)f +Fm(f)p Fk(t)p Fq(,)p Fk(b)p Fq(,)p Fk(B)p Fq(,)p Fk(c)p +Fm(g)p Fq(,)227 3265 y(\(top,)42 b(b)s(ottom,)f(baseline,)f(cen)m +(ter\))g(and)e(another)g(from)h Fm(f)p Fk(l)p Fq(,)p +Fk(r)p Fq(,)p Fk(c)p Fm(g)g Fq(\(left,)i(righ)m(t,)f(cen)m(ter\).)67 +b(If)38 b(either)227 3378 y(letter)g(is)f(omitted,)j(then)d +Fk(c)g Fq(\(cen)m(ter\))j(is)d(assumed.)62 b(T)-8 b(ogether,)40 +b(these)f(sp)s(ecify)d(one)i(of)g(12)g(anc)m(hor)227 +3490 y(p)s(oin)m(ts.)52 b(If)34 b(the)h(argumen)m(t)f(is)g(omitted)g +(altogether,)j(then)d Fk([Bl])p Fq(,)h(or)f(left)h(baseline)e(p)s +(ositioning,)g(is)227 3603 y(assumed|but)c(note)i(that)g(supplying)c +Fk([])j Fq(sp)s(eci\014es)f(cen)m(tered)i(p)s(ositioning.)227 +3754 y(When)g(running)d(in)i(L)963 3737 y Fn(A)1002 3754 +y Fq(T)1053 3773 y(E)1103 3754 y(X)h(2.09)i(compatibilit)m(y)c(mo)s +(de,)i(the)g(default)f(alignmen)m(t)g(is)g Fk([bl])p +Fq(,)g(in)g(order)227 3867 y(to)h(supp)s(ort)e(legacy)i(do)s(cumen)m +(ts.)41 b(Usually)28 b(this)i(should)e(not)j(mak)m(e)g(a)g +(signi\014can)m(t)e(di\013erence.)45 4054 y Fk([)p Fm(h)p +Fi(psp)-5 b(osn)7 b Fm(i)s Fk(])33 b Fq(the)g(P)m(ostScript)g(text)h +(reference)g(p)s(oin)m(t.)48 b(The)33 b(p)s(ossible)e(argumen)m(ts)i +(are)h(iden)m(tical)e(to)i(that)227 4167 y(of)d Fk([)p +Fm(h)p Fi(p)-5 b(osn)7 b Fm(i)r Fk(])p Fq(,)30 b(as)h(is)e(the)i +(default)e(v)-5 b(alue,)30 b Fk([Bl])g Fq(\()p Fk([bl])f +Fq(in)g(L)2269 4150 y Fn(A)2308 4167 y Fq(T)2359 4187 +y(E)2409 4167 y(X)i(2.09)h(compatibilit)m(y)c(mo)s(de.\))0 +4429 y(The)i(L)211 4413 y Fn(A)250 4429 y Fq(T)301 4449 +y(E)351 4429 y(X)h(replacemen)m(t)g(ma)m(y)f(b)s(e)g(optionally)f +(scaled)h(and)g(rotated)h(ab)s(out)f(its)g(reference)h(p)s(oin)m(t:)45 +4667 y Fk([)p Fm(h)p Fi(sc)-5 b(ale)7 b Fm(i)r Fk(])36 +b Fq(Scaling)g(factor)i(\(default)e(1\).)62 b(It's)37 +b(b)s(est)f(if)g(y)m(ou)h(use)g(fon)m(t)h(size)e(c)m(hanges)i(in)e(the) +h(L)3356 4650 y Fn(A)3395 4667 y Fq(T)3446 4686 y(E)3496 +4667 y(X)h(text)227 4780 y(rather)31 b(than)f(scale,)h(but)e(y)m(ou)i +(can)g(use)f(the)g(scale)h(to)g(t)m(w)m(eak)h(its)e(size.)40 +b(Default)31 b(is)e Fk([1])p Fq(.)45 4967 y Fk([)p Fm(h)p +Fi(r)-5 b(otn)7 b Fm(i)r Fk(])23 b Fq(Extra)g(rotation)g(of)g(the)g +(text)h(around)e(its)g(reference)i(p)s(oin)m(t,)f(in)f(degrees.)39 +b(The)22 b(nominal)f(rotation)227 5080 y(of)36 b(the)h(L)523 +5064 y Fn(A)562 5080 y Fq(T)613 5100 y(E)663 5080 y(X)f(text)h(matc)m +(hes)g(that)g(of)f(the)g(P)m(ostScript)f(text)i(it)f(replaces.)57 +b(The)35 b(total)i(rotation)g(is)227 5193 y(this)30 b(nominal)e(v)-5 +b(alue)30 b(plus)e Fk([)p Fm(h)p Fi(r)-5 b(otn)7 b Fm(i)r +Fk(])p Fq(.)41 b(The)29 b(default)h(is)f Fk([0])p Fq(.)0 +5431 y(Figure)k(1)h(illustrates)e(v)-5 b(arious)32 b(com)m(binations)h +(of)h(the)g(argumen)m(ts.)50 b(If)34 b(y)m(ou're)g(viewing)e(this)g +(with)h(a)h(D)m(VI)0 5544 y(preview)m(er)26 b(suc)m(h)g(as)h +Fp(xdvi)p Fq(,)f(the)h Fp(PSfrag)g Fq(replacemen)m(ts)g(should)e(b)s(e) +g(lined)g(up)g(to)i(the)g(left)f(of)h(the)f(\014gure;)i(and,)0 +5657 y(if)h(y)m(our)h(preview)m(er)f(can)i(displa)m(y)d(EPS)h(\014les,) +h(a)g(large,)h(rotated)g Fk(gA)p Fq(.)e(If)h(y)m(ou)h(ha)m(v)m(e)g +(prin)m(ted)d(this)h(out,)i(or)f(are)0 5769 y(viewing)23 +b(it)h(with)f(a)i(P)m(ostScript)f(view)m(er)h(lik)m(e)f(GhostView,)h +(then)g(the)g(replacemen)m(ts)f(should)f(sup)s(erimp)s(osed)1858 +6065 y(4)p eop +%%Page: 5 5 +5 4 bop 680 2155 a + currentpoint currentpoint translate 0.98076 0.98076 scale neg exch +neg exch translate + 680 2155 a 1359 2155 a + gsave currentpoint currentpoint translate 30 neg rotate neg exch neg +exch translate + 1359 2155 a +1359 2155 a + /PSfrag where{pop(gA)[[0(br)1 0][1(b )2 0][2(bl)1 0][3(Bl)1 0][4(B )1 +0][5(Br)1 0][6( r)1 0][7( )0.75 45][8( l)1.5 30][9(tl)1 0][10(Bl)1 +0][11(l)1 0][12(t)1 -90][13(t )1 0][14(tr)1 180]]1 1 -1/Begin PSfrag}{userdict +/PSfrag{pop}put}ifelse + 1359 2155 a @beginspecial 0 @llx 0 @lly 245 +@urx 163 @ury 2450 @rwi @setspecial +%%BeginDocument: testfig.eps +%!PS-Adobe-3.0 EPSF-3.0 +%%BoundingBox: 0 0 245 163 +(Courier) findfont 216 scalefont setfont +-13 41 moveto (gA) show +showpage +%%EOF + +%%EndDocument + @endspecial 1359 2155 a + /End PSfrag + 1359 2155 a 1359 364 a + /Hide PSfrag + 1359 +364 a 549 427 a Fq(PSfrag)30 b(replacemen)m(ts)p 549 +458 811 4 v 1359 461 a + /Unhide PSfrag + 1359 461 a 1359 574 a + { + 1359 574 +a 978 566 a Fk([br][br])1359 574 y + } 0/Place PSfrag + 1359 574 a 1359 679 +a + { + 1359 679 a -477 w Fk([Br][b][2])1359 679 y + } 1/Place PSfrag + 1359 679 +a 1359 765 a + { + 1359 765 a 1025 792 a Fk([r][bl])1359 765 +y + } 2/Place PSfrag + 1359 765 a 1359 842 a + { + 1359 842 a 978 905 a Fk([tr][Bl])1359 +842 y + } 3/Place PSfrag + 1359 842 a 1216 1026 a + { + 1216 1026 a 1073 1018 a +Fk([b][B])1216 1026 y + } 4/Place PSfrag + 1216 1026 a 1192 1131 a + { + 1192 1131 +a -167 w Fk([B][Br])1192 1131 y + } 5/Place PSfrag + 1192 1131 a 1240 1216 +a + { + 1240 1216 a 1121 1244 a Fk([][r])1240 1216 y + } 6/Place PSfrag + 1240 1216 +a 1001 1294 a + { + 1001 1294 a 643 1357 a Fk([t][][0.75][45])1001 +1294 y + } 7/Place PSfrag + 1001 1294 a 596 1477 a + { + 596 1477 a -8 x Fk([bl][l][1.5][30])596 +1477 y + } 8/Place PSfrag + 596 1477 a 978 1582 a + { + 978 1582 a Fk([Bl][tl])978 +1582 y + } 9/Place PSfrag + 978 1582 a 824 1703 a + { + 824 1703 a 975 1680 a Fq(\(baseline\))824 +1703 y + } 10/Place PSfrag + 824 1703 a 725 1816 a + { + 725 1816 a 877 1793 a Fq(\(cen)m(ter)i +(line\))725 1816 y + } 11/Place PSfrag + 725 1816 a 725 1929 a + { + 725 1929 a 877 +1906 a Fq(\(cen)m(ter)g(line\))725 1929 y + } 12/Place PSfrag + 725 1929 a +1073 2007 a + { + 1073 2007 a 27 x Fk([l][t])1073 2007 y + } 13/Place PSfrag + 1073 +2007 a 596 2084 a + { + 596 2084 a 63 x Fk([tl][tr][1][180])596 +2084 y + } 14/Place PSfrag + 596 2084 a 3401 2155 a + currentpoint grestore moveto + 3401 2155 a 680 2155 a + currentpoint currentpoint translate 1 0.98076 div 1 0.98076 div scale +neg exch neg exch translate + +680 2155 a 473 2450 a Fq(Figure)e(1:)41 b(An)30 b(illustration)d(of)k +(v)-5 b(arious)29 b(options)h(for)g(the)g Fk(\\psfrag)f +Fq(command.)0 2728 y(on)24 b(a)h(graphical)e(represen)m(tation)h(of)h +(the)f(b)s(ounding)d(b)s(o)m(x,)26 b(cen)m(ter)f(lines,)f(and)g +(baseline)f(of)h(the)h(tag)g Fk(gA)p Fq(.)f(\(This)0 +2841 y(graphical)29 b(b)s(o)m(x)h(is)g(pro)m(vided)f(only)g(in)g(debug) +h(mo)s(de.\))0 3004 y(If)21 b(a)g(replacemen)m(t)h(for)f +Fk({)p Fi(tag)8 b Fk(})21 b Fq(already)g(exists,)i(the)e(unstarred)f +(command)h Fk(\\psfrag)e Fq(will)g(replace)i(it)g(without)0 +3117 y(w)m(arning.)39 b(The)26 b(starred)h(v)m(ersion)g +Fk(\\psfrag*)p Fq(,)f(ho)m(w)m(ev)m(er,)j(will)c Fi(add)38 +b Fq(the)27 b(new)g(replacemen)m(t)g(to)h(a)g(list.)38 +b(Using)0 3229 y(the)22 b(starred)g(command,)h(a)g(single)d(piece)i(of) +g(P)m(ostScript)g(text)h(could)e(trigger)g(sev)m(eral)i(replacemen)m +(ts.)38 b(I)22 b(can't)0 3342 y(think)35 b(of)i(a)g(reason)g(wh)m(y)f +(most)h(users)f(w)m(ould)f(use)i(the)f(starred)h(v)m(ersion,)h(but)e +(it)g(w)m(as)h(used)f(in)f(Figure)h(1)0 3455 y(ab)s(o)m(v)m(e.)p +-227 3645 1348 4 v -229 3745 4 100 v -177 3715 a Fg(\\begin{psfrags})21 +b(\\end{psfrags})p 1119 3745 V -227 3748 1348 4 v 0 3911 +a Fq(The)29 b Fk(psfrags)e Fq(en)m(vironmen)m(t)i(ma)m(y)h(b)s(e)f +(used,)g(if)g(necessary)-8 b(,)30 b(to)g(delimit)d(the)j(scop)s(e)g(of) +f(the)h Fk(\\psfrag)d Fq(calls.)0 4024 y(As)g(w)m(e)h(said)e(b)s +(efore,)h Fk(\\psfrag)e Fq(commands)i(retain)g(their)f(e\013ect)j(un)m +(til)c(the)i(most)h(immediate)e(surrounding)0 4137 y(en)m(vironmen)m(t) +g(is)f(exited.)39 b Fi(A)n(ny)34 b Fq(en)m(vironmen)m(t)26 +b(will)e(do:)38 b Fk(center)p Fq(,)26 b Fk(figure)p Fq(,)f +Fi(etc.)p Fq(.)39 b(Therefore,)28 b(it)d(ma)m(y)i(nev)m(er)0 +4250 y(b)s(e)d(necessary)i(to)g(use)e(this)g(en)m(vironmen)m(t,)i(and)f +(the)g(en)m(vironmen)m(t)g(has)f(no)h(other)h(e\013ect)g(on)f(the)g(do) +s(cumen)m(t.)0 4543 y Fj(5.1)112 b(Em)m(b)s(edding)39 +b Fd(PSfrag)g Fj(op)s(erations)e(in)m(to)g(EPS)f(\014les)p +-227 4793 2046 4 v -229 4893 4 100 v -177 4863 a Fg(\\tex[)p +Fe(h)p Ff(p)l(osn)6 b Fe(i)o Fg(][)p Fe(h)p Ff(psp)l(osn)g +Fe(i)p Fg(][)p Fe(h)p Ff(sc)l(ale)g Fe(i)q Fg(][)p Fe(h)p +Ff(r)l(ot)i Fe(i)p Fg(]{)p Ff(L)1366 4846 y Fc(A)1404 +4863 y Ff(T)1449 4881 y(E)1494 4863 y(X)29 b(text)8 b +Fg(})p 1817 4893 V -229 4993 V -177 4963 a(\\psfragscanon)77 +b(\\psfragscanoff)p 1817 4993 V -227 4996 2046 4 v 0 +5150 a Fp(PSfrag)35 b Fq(3.0)g(supp)s(orts)c(the)k(em)m(b)s(edded)d +Fk(\\tex)h Fq(commands)g(found)g(in)f(previous)h(release)h(of)41 +b Fp(PSfrag)p Fq(.)51 b(Used)0 5263 y(prop)s(erly)-8 +b(,)26 b(this)f(is)h(a)h(p)s(o)m(w)m(erful)e(to)s(ol,)j(but)d(it)h(has) +h(b)s(een)f(deprecated)h(somewhat)g(b)s(ecause)f(of)h(its)f(reliance)g +(on)0 5375 y(a)k(pre-pro)s(cessing)d(step.)41 b(Unlik)m(e)28 +b(previous)f(v)m(ersions)i(of)36 b Fp(PSfrag)p Fq(,)29 +b(supp)s(ort)f(for)h(the)g Fk(\\tex)f Fq(command)h(m)m(ust)0 +5488 y(b)s(e)h Fi(explicitly)j(r)-5 b(e)g(queste)g(d)p +Fq(,)32 b(as)f(describ)s(ed)d(b)s(elo)m(w.)0 5651 y(As)39 +b(y)m(ou)h(can)f(see,)j(the)d(syn)m(tax)h(of)f(the)g +Fk(\\tex)f Fq(command)h(is)f(v)m(ery)i(similar)c(to)k(the)f +Fk(\\psfrag)f Fq(command.)0 5764 y(Ho)m(w)m(ev)m(er,)25 +b(instead)20 b(of)h(adding)e(the)i Fk(\\tex)e Fq(command)i(to)g(y)m +(our)g(L)2156 5747 y Fn(A)2195 5764 y Fq(T)2246 5784 +y(E)2296 5764 y(X)g(\014le,)h(the)f Fk(\\tex)e Fq(command)i(is)f +Fi(emb)-5 b(e)g(dde)g(d)1858 6065 y Fq(5)p eop +%%Page: 6 6 +6 5 bop 0 91 a Fi(in)33 b(the)g(EPS)e(\014le)i(itself)p +Fq(.)41 b(In)30 b(other)g(w)m(ords,)g(the)h(command)f(b)s(ecomes)h(its) +e(o)m(wn)i(replacemen)m(t)g(tag.)0 254 y(F)-8 b(or)31 +b(example,)f(y)m(ou)h(migh)m(t)f(place)h(the)f(text)227 +491 y Fk(\\tex[bl][bl]{$\\alpha$})0 729 y Fq(at)e(a)h(particular)d(p)s +(oin)m(t)g(in)h(y)m(our)g(P)m(ostScript)h(\014le)e(to)j(ha)m(v)m(e)g(L) +2066 712 y Fn(A)2105 729 y Fq(T)2156 749 y(E)2206 729 +y(X)f(replace)f(it)h(with)e Fl(\013)p Fq(.)40 b(Man)m(y)30 +b Fp(PSfrag)e Fq(users)0 842 y(\014nd)h(this)g(feature)i(useful)e(for)h +(the)g(axis)g(lab)s(els,)f(titles,)h(and)g(legends)f(of)i(MA)-8 +b(TLAB)31 b(graphs.)0 1005 y(The)d(adv)-5 b(an)m(tage)31 +b(to)f(this)e(approac)m(h)h(is)f(that)i(c)m(hanges)g(can)f(b)s(e)f +(made)h(to)h(the)f(EPS)f(\014le)g(without)g(ha)m(ving)h(to)0 +1117 y(mo)s(dify)g(an)m(y)j Fk(\\psfrag)d Fq(commands)i(in)f(the)h(L) +1583 1101 y Fn(A)1622 1117 y Fq(T)1673 1137 y(E)1723 +1117 y(X)h(\014le.)42 b(\(It)32 b(is)e(still)f(necessary)i(to)h +Fi(r)-5 b(e-c)g(ompile)40 b Fq(the)31 b(L)3552 1101 y +Fn(A)3591 1117 y Fq(T)3642 1137 y(E)3692 1117 y(X)0 1230 +y(\014le)e(in)h(suc)m(h)g(cases,)h(ho)m(w)m(ev)m(er.\))0 +1393 y(There)f(are)h(cautions)f(and)g(disadv)-5 b(an)m(tages)30 +b(to)h(this)f(approac)m(h,)h(including:)136 1631 y Fm(\017)46 +b Fq(Changing)39 b(the)i(lab)s(els)d(created)k(b)m(y)e +Fk(\\tex)f Fq(commands)h(requires)f(editing)g(the)i(\014gure;)k(if)39 +b(y)m(ou)i(use)227 1743 y Fk(\\psfrag)31 b Fq(instead,)h(y)m(ou)g(need) +g(only)g(to)h(edit)e(the)i(do)s(cumen)m(t,)g(whic)m(h)e(migh)m(t)h(b)s +(e)f(less)h(cum)m(b)s(ersome.)227 1856 y(\(Y)-8 b(ou)31 +b(m)m(ust)g(run)e(L)866 1840 y Fn(A)905 1856 y Fq(T)956 +1876 y(E)1006 1856 y(X)h(again)h(in)e(b)s(oth)h(cases.\))136 +2044 y Fm(\017)46 b Fq(Because)28 b Fk(\\tex)d Fq(commands)h(are)h +(long)f(strings,)g(they)h(can)g(extend)f(past)h(the)f(other)h(graphics) +f(in)f(y)m(our)227 2157 y(EPS)30 b(\014le.)42 b(As)31 +b(a)h(result,)e(they)h(can)g(mo)s(dify)f(the)h(EPS)f(b)s(ounding)e(b)s +(o)m(x)j(in)f(an)h(undesired)d(w)m(a)m(y)-8 b(.)44 b(This)227 +2270 y(problem)27 b(can)i(b)s(e)e(mitigated)h(b)m(y)h(reducing)e(the)h +(fon)m(t)h(size)f(of)h(the)f Fk(\\tex)f Fq(string,)h(since)g(this)f(do) +s(es)h(not)227 2383 y(a\013ect)k(the)f(size)f(of)h(its)e +Fp(PSfrag)i Fq(replacemen)m(t.)136 2570 y Fm(\017)46 +b Fq(The)30 b Fk(\\tex)f Fq(command)h(is)g(not)h(supp)s(orted)d(in)h +(compressed)h(P)m(ostScript)g(\014les.)136 2758 y Fm(\017)46 +b Fq(The)40 b(T)475 2778 y(E)525 2758 y(X)h(engine)f(m)m(ust)h(scan)g +(the)g(P)m(ostScript)f(\014le)g(for)g(these)h(strings,)i(whic)m(h)c +(can)i(add)f(to)h(the)227 2871 y(pro)s(cessing)29 b(time)g(of)h(y)m +(our)g(do)s(cumen)m(t.)41 b(\(T)-8 b(o)30 b(b)s(e)f(honest,)i(w)m(e)f +(ha)m(v)m(e)h(y)m(et)g(to)g(encoun)m(ter)f(a)g(case)h(where)227 +2984 y(this)f(is)f(a)i(signi\014can)m(t)e(concern.\))136 +3171 y Fm(\017)46 b Fi(Imp)-5 b(ortant!)100 b Fq(Whenev)m(er)47 +b(a)f(\014le)e(is)h(scanned)g(b)m(y)i Fp(PSfrag)p Fq(,)i(it)c +(generates)i(a)f(\014le)e(with)h(the)h(name)227 3284 +y Fk(\\jobname.pfg)p Fq(,)20 b(where)g Fk(\\jobname)e +Fq(is)i(the)h(base)f(name)h(of)g(the)g(master)f(L)2710 +3268 y Fn(A)2749 3284 y Fq(T)2800 3304 y(E)2851 3284 +y(X)h(\014le.)36 b(It)21 b(will)d(o)m(v)m(erwrite,)227 +3397 y(without)30 b(w)m(arning,)f(an)m(y)i(\014le)e(with)g(that)i +(name.)0 3635 y(This)f(feature)j(is)f(no)g(longer)g(enabled)f +(automatically)-8 b(,)33 b(except)g(in)e(L)2361 3618 +y Fn(A)2400 3635 y Fq(T)2451 3654 y(E)2502 3635 y(X)h(2.09)i +(compatibilit)m(y)c(mo)s(de.)46 b(So,)0 3748 y(for)30 +b(L)163 3731 y Fn(A)202 3748 y Fq(T)253 3767 y(E)303 +3748 y(X)14 b(2)430 3762 y Fl(")508 3748 y Fq(do)s(cumen)m(ts,)30 +b(y)m(ou)h(m)m(ust)f(activ)-5 b(ate)32 b(it)e(in)f(one)h(of)h(t)m(w)m +(o)h(w)m(a)m(ys:)136 3985 y Fm(\017)46 b Fq(T)-8 b(o)46 +b(turn)e(on)g(scanning)g(for)h(a)g(single)f(\014gure,)k(precede)d(the)g +Fk(\\epsfbox)e Fq(or)i Fk(\\includegraphics)227 4098 +y Fq(command)29 b(with)f(a)h(call)g(to)g(the)g(command)g +Fk(\\psfragscanon)p Fq(.)37 b(Scanning)27 b(will)g(b)s(e)h(turned)g +(o\013)i(again)227 4211 y(when)i(the)h(surrounding)d(en)m(vironmen)m(t) +j(is)f(exited;)i(or,)g(y)m(ou)f(can)h(turn)e(it)g(o\013)h(explicit)m(y) +f(with)g(a)h(call)227 4324 y(to)e Fk(\\psfragscanoff)p +Fq(.)136 4511 y Fm(\017)46 b Fq(T)-8 b(o)31 b(turn)f(on)h(scanning)e +(for)i(the)g(en)m(tire)f(do)s(cumen)m(t,)h(pass)g(the)g(option)f +Fk(scanall)e Fq(to)k Fk(psfrag.sty)c Fq(in)227 4624 y(the)j +Fk(\\usepackage)c Fq(command.)0 4862 y(The)35 b Fk(\\tex)g +Fq(scanner)h(will)d(con)m(tin)m(ue)j(to)h(b)s(e)f(supp)s(orted)e(in)g +(this)h(form.)57 b(So,)38 b(if)d(y)m(ou)h(do)g(\014nd)e(applications)0 +4975 y(where)c(y)m(ou)h(prefer)e(the)i Fk(\\tex)e Fq(command,)h(do)h +(not)f(hesitate)h(to)g(use)f(it!)0 5311 y Ft(6)135 b(P)l(ac)l(k)-7 +b(age)46 b(Options)0 5564 y Fq(There)38 b(are)h(only)e(four)h(pac)m(k) +-5 b(age)41 b(options)d(for)g Fp(PSfrag)p Fq(.)64 b(An)m(y)39 +b(other)g(options)e(that)j(are)e(not)h(handled)e(b)m(y)0 +5677 y Fp(PSfrag)31 b Fq(will)d(b)s(e)i(forw)m(arded)f(to)i +Fk(graphics.sty)p Fq(.)1858 6065 y(6)p eop +%%Page: 7 7 +7 6 bop 0 91 a Fk(209mode)44 b Fq(\(L)439 75 y Fn(A)478 +91 y Fq(T)529 111 y(E)579 91 y(X)14 b(2)706 105 y Fl(")780 +91 y Fq(nativ)m(e)28 b(mo)s(de)e(only\))h(forces)g Fp(PSfrag)h +Fq(to)g(op)s(erate)g(exactly)g(as)f(if)f(L)3013 75 y +Fn(A)3052 91 y Fq(T)3103 111 y(E)3154 91 y(X)h(2.09)h(compat-)227 +204 y(ibilit)m(y)i(mo)s(de)i(w)m(as)g(enabled.)46 b(As)32 +b(a)h(result,)f Fk(bl)g Fq(alignmen)m(t)f(is)h(the)g(default,)g(and)g +Fk(\\tex)f Fq(scanning)h(is)227 317 y(enabled)d(for)g(all)f(EPS)h +(\014les.)39 b(This)28 b(option)h(is)f(useful)g(if)g(y)m(ou)i(are)g +(trying)e(to)j(con)m(v)m(ert)g(old)d(L)3361 300 y Fn(A)3400 +317 y Fq(T)3451 337 y(E)3501 317 y(X)i(2.09)227 430 y(do)s(cumen)m(ts)g +(to)h(L)817 413 y Fn(A)856 430 y Fq(T)907 450 y(E)958 +430 y(X)14 b(2)1085 444 y Fl(")1132 430 y Fq(.)227 580 +y(The)25 b(L)433 564 y Fn(A)472 580 y Fq(T)523 600 y(E)574 +580 y(X2.09)i(v)m(ersion)e(of)32 b Fp(PSfrag)26 b Fq(generated)h(an)e +(auxiliary)e(\014le)i(for)g(eac)m(h)i(EPS)d(\014gure)h(con)m(taining) +227 693 y(imp)s(ortan)m(t)30 b(replacemen)m(t)h(information.)39 +b(These)30 b(\014les)f(are)i(no)f(longer)g(used)g(and)f(can)i(b)s(e)f +(deleted.)0 881 y Fk(2emode)44 b Fq(\(L)391 864 y Fn(A)430 +881 y Fq(T)481 900 y(E)531 881 y(X)33 b(2.09)h(compatibilit)m(y)c(mo)s +(de)i(only\))g(forces)h Fp(PSfrag)g Fq(to)g(remain)e(in)g(L)2965 +864 y Fn(A)3004 881 y Fq(T)3055 900 y(E)3105 881 y(X)14 +b(2)3232 895 y Fl(")3311 881 y Fq(mo)s(de,)33 b(ev)m(en)227 +994 y(in)f(the)h(presence)g(of)g(a)g(L)1070 977 y Fn(A)1109 +994 y Fq(T)1160 1013 y(E)1211 994 y(X)g(2.09)h(do)s(cumen)m(t;)h(this)c +(is)h(the)i(direct)e(opp)s(osite)g(of)h Fk(209mode)p +Fq(.)47 b(When)227 1107 y(enabled,)30 b(the)g(default)g(alignmen)m(t)g +(is)f Fk(Bl)p Fq(,)h(and)g Fk(\\tex)f Fq(scanning)g(is)h(turned)f +(o\013)i(b)m(y)f(default.)0 1294 y Fk(scanall)44 b Fq(turns)26 +b(on)h Fk(\\tex)f Fq(scanning)h(b)m(y)g(default.)39 b(Use)28 +b(this)e(option)h(if)g(most)g(y)m(our)h(\014gures)e(use)i(em)m(b)s +(edded)227 1407 y Fk(\\tex)h Fq(commands.)0 1595 y Fk(debug)44 +b Fq(turns)i(on)h(some)h(of)f(the)h(debugging)e(features)h(of)h +(PSfrag.)90 b(It)48 b(inserts)e(extra)i(co)s(de)f(in)m(to)g(the)227 +1708 y(P)m(ostScript)38 b(\014le)f(that)i(dra)m(w)f(the)g(b)s(ounding)e +(b)s(o)m(xes)i(of)h(eac)m(h)g(piece)f(of)g(text)i(that)e(is)g +(replaced.)63 b(It)227 1820 y(is)30 b(probably)e(not)j(useful)d(to)k +(an)m(y)m(one)f(but)f(the)g(dev)m(elop)s(ers)g(of)38 +b Fp(PSfrag)p Fq(.)0 2157 y Ft(7)135 b(An)44 b(Example)0 +2409 y Fq(In)30 b(the)g(follo)m(wing)f(example,)i(w)m(e)g(demonstrate)g +(ho)m(w)f(to)h(use)g Fp(PSfrag)g Fq(with)e(the)i(MA)-8 +b(TLAB)31 b(pac)m(k)-5 b(age.)43 b(The)0 2522 y(follo)m(wing)33 +b(MA)-8 b(TLAB)36 b(commands)e(generate)i(a)g(plot)e(of)h(b)s(oth)f(a)h +(sine)e(w)m(a)m(v)m(e)k(and)d(a)h(cosine)g(w)m(a)m(v)m(e,)j(places)0 +2635 y(b)s(oth)g(simple)e(tags)k(and)e Fk(\\tex)f Fq(replacemen)m(ts)i +(in)m(to)g(the)g(\014gure,)h(and)e(sa)m(v)m(es)i(the)f(result)e(as)i +(an)g(EPS)e(\014le)0 2748 y Fk(example.eps)p Fq(.)174 +2997 y Fg(t)44 b(=)f(0:.1:10;)174 3096 y(plot\(t,sin\(t\),t,c)o(os)o +(\(t\))o(\);)174 3196 y(axis\('square'\);)38 b(grid;)174 +3296 y(title\('\\tex[B][B])o({P)o(lot)f(of)43 b($\\sin\(t\)$)c(and)k +($\\cos\(t\)$}'\);)174 3395 y(xlabel\('\\tex[t][t)o(]{)o($t$)o(}')o +(\);)174 3495 y(ylabel\('\\tex[B][B)o(]{)o($\\s)o(in)o(\(t\))o($,)37 +b($\\cos\(t\)$}'\);)174 3595 y(text\(t\(30\),sin\(t\()o(30)o(\)\),)o +('p)o(1'\))o(;)174 3694 y(text\(t\(60\),sin\(t\()o(60)o(\)\),)o('p)o +(2'\))o(;)174 3794 y(text\(t\(90\),sin\(t\()o(90)o(\)\),)o('p)o(2'\))o +(;)174 3894 y(tt=text\(t\(50\),cos)o(\(t)o(\(50)o(\)\))o(,'p)o(3')o +(\);)174 3993 y(set\(tt,'Horizonta)o(lA)o(lig)o(nm)o(ent)o(',)o('ce)o +(nt)o(er)o(',')o(Ve)o(rti)o(ca)o(lA)o(lig)o(nm)o(ent)o(',)o(...)349 +4093 y('bottom','Rotat)o(ion)o(',)o(ata)o(n2)o(\(-s)o(in)o(\(t)o(\(50)o +(\)\))o(*10)o(,2)o(\)*)o(180)o(/p)o(i\);)174 4192 y(print)42 +b(-deps)f(example)0 4454 y Fq(\(In)46 b(MA)-8 b(TLAB,)48 +b(the)f('text')i(command)d(defaults)g(to)h(a)h(left-cen)m(ter)f +(alignmen)m(t,)k(corresp)s(onding)45 b(to)i(a)0 4567 +y Fk([)p Fm(h)p Fi(psp)-5 b(osn)7 b Fm(i)s Fk(])30 b +Fq(argumen)m(t)g(of)h Fk([l])p Fq(.\))0 4730 y(The)g(co)s(de)h(b)s(elo) +m(w)e(includes)f Fk(example.eps)g Fq(in)m(to)i(the)h(curren)m(t)f(do)s +(cumen)m(t,)h(resizing)e(it)h(to)h(a)g(width)e(of)h(3.5)0 +4843 y(inc)m(hes.)38 b(Sev)m(eral)25 b Fk(\\psfrag)d +Fq(commands)i(are)h(used)f(to)h(replace)f(the)h(tags)h +Fk(p1)p Fq(,)f Fk(p2)p Fq(,)g(and)f Fk(p3)g Fq(in)f(the)i(\014gure,)g +(and)0 4956 y(the)g(command)f Fk(\\psfragscanon)d Fq(command)j(is)f +(used)h(to)h(notify)g Fp(PSfrag)g Fq(that)g(it)f(m)m(ust)g(scan)h +Fk(example.eps)0 5069 y Fq(for)30 b(the)h Fk(\\tex)e +Fq(tags.)174 5318 y Fg(\\begin{figure}[tb)o(h])349 5417 +y(\\unitlength=1in)349 5517 y(\\begin{center})523 5616 +y(\\psfragscanon)523 5716 y(\\psfrag{p1}[l]{\\)o(beg)o(in)o({pi)o(ct)o +(ur)o(e}\()o(0,)o(0\))697 5816 y(\\put\(0.15,)40 b(0.2\){\\makebox\(0,) +o(0\))o([l])o({$)o(\\s)o(in\()o(t\))o($}})1858 6065 y +Fq(7)p eop +%%Page: 8 8 +8 7 bop 697 91 a Fg(\\put\(0.1,0.2\){\\ve)o(cto)o(r\()o(-1)o(,-2)o(\){) +o(0.1)o(}})697 191 y(\\end{picture}})523 291 y(\\psfrag*{p1}[][l)o(]{$) +o(\\a)o(st$)o(})523 390 y(\\psfrag{p2}[][l])o({$\\)o(as)o(t$})523 +490 y(\\psfrag{p3}{$\\co)o(s\(t)o(\)$)o(})523 589 y(\\includegraphics)o +([wi)o(dt)o(h=3)o(.5)o(in)o(]{e)o(xa)o(mpl)o(e.)o(ep)o(s})392 +689 y(\\end{center})392 789 y(\\caption{A)40 b(\\textsf{psfrag})d +(example.})174 888 y(\\end{figure})0 1137 y Fq(Note)32 +b(the)e(use)g(of)h(a)g Fk(picture)d Fq(en)m(vironmen)m(t)i(within)e +(the)i(replacemen)m(t)h(for)f Fk(p1)p Fq(.)830 3364 y + /PSfrag where{pop(p1)[[0(Bl)1 0][1(l)1 0]](p2)[[2(l)1 0]](p3)[[3(Bl)1 +0]](\\tex[t][t]{$t$})[[4(t)1 0]](\\tex[B][B]{$\\sin\(t\)$, $\\cos\(t\)$})[[5(B)1 +0]](\\tex[B][B]{Plot of $\\sin\(t\)$ and $\\cos\(t\)$})[[6(B)1 0]]6 +0 -1/Begin PSfrag}{userdict /PSfrag{pop}put}ifelse + +830 3364 a @beginspecial 97 @llx 197 @lly 502 @urx 604 +@ury 2520 @rwi @setspecial +%%BeginDocument: example.eps +%!PS-Adobe-2.0 EPSF-1.2 +%%Creator: MATLAB, The Mathworks, Inc. +%%Title: example.eps +%%CreationDate: 11/05/96 21:16:44 +%%DocumentNeededFonts: Helvetica +%%DocumentProcessColors: Cyan Magenta Yellow Black +%%Pages: 1 +%%BoundingBox: 97 197 502 604 +%%EndComments + +%%BeginProlog + +% MathWorks dictionary +/MathWorks 150 dict begin + +% definition operators +/bdef {bind def} bind def +/ldef {load def} bind def +/xdef {exch def} bdef +/xstore {exch store} bdef + +% operator abbreviations +/c /clip ldef +/cc /concat ldef +/cp /closepath ldef +/gr /grestore ldef +/gs /gsave ldef +/mt /moveto ldef +/np /newpath ldef +/cm /currentmatrix ldef +/sm /setmatrix ldef +/rc {rectclip} bdef +/rf {rectfill} bdef +/rm /rmoveto ldef +/rl /rlineto ldef +/s /show ldef +/sc {setcmykcolor} bdef +/sr /setrgbcolor ldef +/w /setlinewidth ldef +/j /setlinejoin ldef +/cap /setlinecap ldef + +% page state control +/pgsv () def +/bpage {/pgsv save def} bdef +/epage {pgsv restore} bdef +/bplot /gsave ldef +/eplot {stroke grestore} bdef + +% orientation switch +/portraitMode 0 def +/landscapeMode 1 def + +% coordinate system mappings +/dpi2point 0 def + +% font control +/FontSize 0 def +/FMS { + /FontSize xstore %save size off stack + findfont + [FontSize 0 0 FontSize neg 0 0] + makefont + setfont + }bdef + +/reencode { +exch dup where +{pop load} {pop StandardEncoding} ifelse +exch +dup 3 1 roll +findfont dup length dict begin + { 1 index /FID ne {def}{pop pop} ifelse } forall + /Encoding exch def + currentdict +end +definefont pop +} bdef + +/isroman { +findfont /CharStrings get +/Agrave known +} bdef + +/FMSR { +3 1 roll 1 index +dup isroman +{reencode} {pop pop} ifelse +exch FMS +} bdef + +/csm { + 1 dpi2point div -1 dpi2point div scale + neg translate + landscapeMode eq {90 rotate} if + } bdef + +% line types: solid, dotted, dashed, dotdash +/SO { [] 0 setdash } bdef +/DO { [.5 dpi2point mul 4 dpi2point mul] 0 setdash } bdef +/DA { [6 dpi2point mul] 0 setdash } bdef +/DD { [.5 dpi2point mul 4 dpi2point mul 6 dpi2point mul 4 dpi2point mul] 0 setdash } bdef + +% macros for lines and objects +/L { + lineto + stroke + } bdef +/MP { + 3 1 roll moveto + 1 sub {rlineto} repeat + } bdef +/AP { + {rlineto} repeat + } bdef +/PP { + closepath fill + } bdef +/DP { + closepath stroke + } bdef +/MR { + 4 -2 roll moveto + dup 0 exch rlineto + exch 0 rlineto + neg 0 exch rlineto + closepath + } bdef +/FR { + MR stroke + } bdef +/PR { + MR fill + } bdef +/L1i { + { currentfile picstr readhexstring pop } image + } bdef + +/tMatrix matrix def +/MakeOval { + newpath + tMatrix currentmatrix pop + translate scale + 0 0 1 0 360 arc + tMatrix setmatrix + } bdef +/FO { + MakeOval + stroke + } bdef +/PO { + MakeOval + fill + } bdef + +/PD { + 2 copy moveto lineto stroke + } bdef + + +currentdict end def +%%EndProlog + +%%BeginSetup +MathWorks begin + +0 cap + +end +%%EndSetup + +%%Page: 1 1 +%%BeginPageSetup +%%PageBoundingBox: 97 197 502 604 +MathWorks begin +bpage +%%EndPageSetup + +%%BeginObject: graph1 1 +bplot + +/dpi2point 12 def +portraitMode 0216 7344 csm + + 956 91 4862 4883 MR c np +76 dict begin %Colortable dictionary +/c0 { 0 0 0 sr} bdef +/c1 { 1 1 1 sr} bdef +/c2 { 1 0 0 sr} bdef +/c3 { 0 1 0 sr} bdef +/c4 { 0 0 1 sr} bdef +/c5 { 1 1 0 sr} bdef +/c6 { 1 0 1 sr} bdef +/c7 { 0 1 1 sr} bdef +%%IncludeResource: font Helvetica +/Helvetica /ISOLatin1Encoding 144 FMSR + +1 j +c1 + 0 0 6912 5185 PR +6 w +DO +4 w +c0 +1463 4613 mt 1463 388 L +1463 388 mt 1463 388 L +2308 4613 mt 2308 388 L +2308 388 mt 2308 388 L +3153 4613 mt 3153 388 L +3153 388 mt 3153 388 L +3999 4613 mt 3999 388 L +3999 388 mt 3999 388 L +4844 4613 mt 4844 388 L +4844 388 mt 4844 388 L +5689 4613 mt 5689 388 L +5689 388 mt 5689 388 L +1463 4613 mt 5689 4613 L +5689 4613 mt 5689 4613 L +1463 4191 mt 5689 4191 L +5689 4191 mt 5689 4191 L +1463 3768 mt 5689 3768 L +5689 3768 mt 5689 3768 L +1463 3346 mt 5689 3346 L +5689 3346 mt 5689 3346 L +1463 2923 mt 5689 2923 L +5689 2923 mt 5689 2923 L +1463 2501 mt 5689 2501 L +5689 2501 mt 5689 2501 L +1463 2078 mt 5689 2078 L +5689 2078 mt 5689 2078 L +1463 1655 mt 5689 1655 L +5689 1655 mt 5689 1655 L +1463 1233 mt 5689 1233 L +5689 1233 mt 5689 1233 L +1463 811 mt 5689 811 L +5689 811 mt 5689 811 L +1463 388 mt 5689 388 L +5689 388 mt 5689 388 L +1463 4613 mt 1463 388 L +1463 388 mt 5689 388 L +1463 4613 mt 1463 388 L +1463 388 mt 5689 388 L +1463 4613 mt 1463 388 L +1463 388 mt 5689 388 L +SO +6 w +1463 4613 mt 5689 4613 L +1463 388 mt 5689 388 L +5689 4613 mt 5689 388 L +1463 4613 mt 1463 388 L +5689 4613 mt 5689 4613 L +1463 4613 mt 1463 4613 L +1463 4613 mt 5689 4613 L +1463 4613 mt 1463 388 L +1463 4613 mt 1463 4613 L +1463 4613 mt 1463 4571 L +1463 388 mt 1463 430 L +1423 4782 mt +(0) s +2308 4613 mt 2308 4571 L +2308 388 mt 2308 430 L +2268 4782 mt +(2) s +3153 4613 mt 3153 4571 L +3153 388 mt 3153 430 L +3113 4782 mt +(4) s +3999 4613 mt 3999 4571 L +3999 388 mt 3999 430 L +3959 4782 mt +(6) s +4844 4613 mt 4844 4571 L +4844 388 mt 4844 430 L +4804 4782 mt +(8) s +5689 4613 mt 5689 4571 L +5689 388 mt 5689 430 L +5609 4782 mt +(10) s +1463 4613 mt 1505 4613 L +5689 4613 mt 5647 4613 L +1264 4666 mt +(-1) s +1463 4191 mt 1505 4191 L +5689 4191 mt 5647 4191 L +1144 4244 mt +(-0.8) s +1463 3768 mt 1505 3768 L +5689 3768 mt 5647 3768 L +1144 3821 mt +(-0.6) s +1463 3346 mt 1505 3346 L +5689 3346 mt 5647 3346 L +1144 3399 mt +(-0.4) s +1463 2923 mt 1505 2923 L +5689 2923 mt 5647 2923 L +1144 2976 mt +(-0.2) s +1463 2501 mt 1505 2501 L +5689 2501 mt 5647 2501 L +1348 2554 mt +(0) s +1463 2078 mt 1505 2078 L +5689 2078 mt 5647 2078 L +1228 2131 mt +(0.2) s +1463 1655 mt 1505 1655 L +5689 1655 mt 5647 1655 L +1228 1708 mt +(0.4) s +1463 1233 mt 1505 1233 L +5689 1233 mt 5647 1233 L +1228 1286 mt +(0.6) s +1463 811 mt 1505 811 L +5689 811 mt 5647 811 L +1228 864 mt +(0.8) s +1463 388 mt 1505 388 L +5689 388 mt 5647 388 L +1348 441 mt +(1) s +1463 388 mt 5689 388 L +1463 4613 mt 5689 4613 L +1463 4613 mt 1463 388 L +5689 4613 mt 5689 388 L +1463 388 mt 1463 388 L +5689 388 mt 5689 388 L +gs 1463 388 4227 4226 MR c np +42 183 43 192 42 200 42 206 42 210 43 211 42 210 42 208 +42 204 43 196 42 188 42 177 42 165 43 151 42 135 42 119 +42 100 43 82 42 61 42 42 42 20 43 -1 42 -22 42 -43 +42 -63 43 -83 42 -102 42 -120 43 -137 42 -152 42 -166 42 -178 +43 -188 42 -197 42 -204 42 -208 43 -211 42 -211 42 -209 42 -206 +43 -199 42 -192 42 -182 42 -170 43 -157 42 -142 42 -126 42 -108 +43 -89 42 -70 42 -50 43 -29 42 -8 42 13 42 34 43 55 +42 75 42 94 42 113 43 130 42 146 42 160 42 173 43 185 +42 193 42 202 42 206 43 210 42 211 42 211 42 207 43 202 +42 195 42 186 42 176 43 162 42 149 42 132 43 116 42 97 +42 79 42 58 43 37 42 17 42 -4 42 -26 43 -46 42 -67 +42 -86 42 -105 43 -123 42 -139 42 -155 42 -168 43 -180 42 -190 +42 -198 42 -205 43 -209 1505 2290 100 MP stroke +42 -211 1463 2501 2 MP stroke +42 -106 43 -87 42 -67 42 -48 42 -26 43 -5 42 15 42 37 +42 57 43 78 42 96 42 115 42 132 43 148 42 162 42 175 +42 185 43 195 42 202 42 207 42 210 43 211 42 211 42 206 +42 202 43 194 42 185 42 174 43 161 42 146 42 131 42 113 +43 95 42 76 42 56 42 35 43 14 42 -7 42 -28 42 -49 +43 -69 42 -89 42 -107 42 -125 43 -141 42 -157 42 -169 42 -182 +43 -191 42 -199 42 -205 43 -210 42 -211 42 -210 42 -209 43 -204 +42 -197 42 -189 42 -179 43 -166 42 -153 42 -137 42 -121 43 -103 +42 -84 42 -64 42 -44 43 -22 42 -2 42 19 42 40 43 61 +42 81 42 99 42 118 43 135 42 150 42 164 43 177 42 187 +42 197 42 203 43 207 42 211 42 211 42 210 43 206 42 200 +42 193 42 183 43 172 42 158 42 144 42 128 43 110 42 92 +42 73 42 52 43 31 1505 399 100 MP stroke +42 11 1463 388 2 MP stroke + +gr +3194 4942 mt +(\\tex[t][t]{$t$}) s +1090 3419 mt -90 rotate +(\\tex[B][B]{$\\sin\(t\)$, $\\cos\(t\)$}) s +90 rotate +2314 273 mt +(\\tex[B][B]{Plot of $\\sin\(t\)$ and $\\cos\(t\)$}) s +2689 2048 mt +(p1) s +3956 3343 mt +(p2) s +5224 1495 mt +(p2) s +3486 2178 mt -78 rotate +(p3) s +78 rotate + +end + +eplot +%%EndObject graph 1 + +epage +end + +showpage + +%%Trailer +%%EOF + +%%EndDocument + @endspecial 830 3364 a + /End PSfrag + 830 3364 a 830 2476 a + /Hide PSfrag + 830 2476 +a 20 2539 a Fq(PSfrag)g(replacemen)m(ts)p 20 2570 811 +4 v 830 2573 a + /Unhide PSfrag + 830 2573 a 830 2686 a + { + 830 2686 a 920 2589 +a Fq(sin)o(\()p Fl(t)p Fq(\))849 2649 y Fb(\001)830 2686 +y(\001)-42 b(\013)830 2686 y + } 0/Place PSfrag + 830 2686 a 807 2778 a + { + 807 +2778 a 784 2799 a Fm(\003)807 2778 y + } 1/Place PSfrag + 807 2778 a 807 2891 +a + { + 807 2891 a 784 2912 a Fm(\003)807 2891 y + } 2/Place PSfrag + 807 2891 a +605 3002 a + { + 605 3002 a Fq(cos)q(\()p Fl(t)p Fq(\))605 +3002 y + } 3/Place PSfrag + 605 3002 a 814 3082 a + { + 814 3082 a 798 3138 a Fl(t)814 +3082 y + } 4/Place PSfrag + 814 3082 a 582 3228 a + { + 582 3228 a -248 w Fq(sin)o(\()p +Fl(t)p Fq(\),)31 b(cos)q(\()p Fl(t)p Fq(\))582 3228 y + } 5/Place PSfrag + +582 3228 a 356 3341 a + { + 356 3341 a -475 w Fq(Plot)f(of)h(sin)n(\()p +Fl(t)p Fq(\))g(and)f(cos)q(\()p Fl(t)p Fq(\))356 3341 +y + } 6/Place PSfrag + 356 3341 a 1313 3659 a Fq(Figure)f(2:)41 b(A)31 b Fp(PSfrag)g +Fq(example.)0 3866 y(The)f(result)f(of)i(these)g(t)m(w)m(o)g(steps)g +(is)e(sho)m(wn)h(in)f(Figure)h(2.)0 4154 y Fj(7.1)112 +b(Figure)37 b(scaling)g(and)h(resizing)0 4372 y Fq(There)33 +b(are)h(t)m(w)m(o)g(w)m(a)m(ys)h(to)f(resize)f(EPS)g(\014gures)f(with)g +(the)i Fp(graphics)f Fq(pac)m(k)-5 b(age,)37 b(and)c(eac)m(h)h(has)f +(as)h(di\013eren)m(t)0 4485 y(e\013ect)i(on)f Fp(PSfrag)h +Fq(replacemen)m(ts.)55 b(If)34 b(y)m(ou)i(are)f(used)f(to)i(using)f +Fk(epsf.sty)p Fq(,)f(y)m(ou)h(will)d(b)s(e)j(accustomed)h(to)0 +4598 y(only)29 b(one)i(suc)m(h)f(b)s(eha)m(vior.)0 4757 +y(If)25 b(y)m(ou)g(use)g(the)g Fk(\\scalebox)e Fq(or)i +Fk(\\resizebox)d Fq(macros)k(of)32 b Fk(graphics.sty)p +Fq(,)24 b(then)g(the)i Fp(PSfrag)g Fq(replacmen)m(ts)0 +4870 y Fi(wil)5 b(l)50 b Fq(scale)41 b(with)d(the)j(\014gure.)70 +b(This)38 b(e\013ect)k(is)d(illustrated)f(in)h(3)i(b)s(elo)m(w.)69 +b(Figure)40 b(3)h(uses)f(the)g(follo)m(wing)0 4983 y(command)30 +b(to)h(scale)g(the)f(\014gure)g(to)h(3.5)h(inc)m(hes)e(in)f(width:)0 +5219 y Fg(\\resizebox{3.5in)o(}{!)o(}{)o(\\i)o(ncl)o(ud)o(egr)o(ap)o +(hic)o(s{)o(ex)o(amp)o(le)o(.ep)o(s})o(})0 5467 y Fq(This)f(is)h(in)g +(direct)g(con)m(trast)i(to)g(Figure)e(2,)i(whic)m(h)d(uses)i(the)g +Fk(width=)e Fq(k)m(eyw)m(ord)i(from)g(the)g Fk(graphicx.sty)p +Fq(,)0 5580 y(as)h(follo)m(ws:)0 5816 y Fg(\\includegraphics)o([wi)o +(dt)o(h=)o(3.5)o(in)o(]{\\)o(in)o(clu)o(de)o(gr)o(aph)o(ic)o(s{e)o(xa)o +(mp)o(le.)o(ep)o(s}})1858 6065 y Fq(8)p eop +%%Page: 9 9 +9 8 bop 830 2110 a + currentpoint currentpoint translate 0.62222 0.62222 scale neg exch +neg exch translate + 830 2110 a 830 2110 a + /PSfrag where{pop(p1)[[0(Bl)1 0][1(l)1 0]](p2)[[2(l)1 0]](p3)[[3(Bl)1 +0]](\\tex[t][t]{$t$})[[4(t)1 0]](\\tex[B][B]{$\\sin\(t\)$, $\\cos\(t\)$})[[5(B)1 +0]](\\tex[B][B]{Plot of $\\sin\(t\)$ and $\\cos\(t\)$})[[6(B)1 0]]6 +0 -1/Begin PSfrag}{userdict /PSfrag{pop}put}ifelse + 830 2110 a @beginspecial +97 @llx 197 @lly 502 @urx 604 @ury 4050 @rwi @setspecial +%%BeginDocument: example.eps +%!PS-Adobe-2.0 EPSF-1.2 +%%Creator: MATLAB, The Mathworks, Inc. +%%Title: example.eps +%%CreationDate: 11/05/96 21:16:44 +%%DocumentNeededFonts: Helvetica +%%DocumentProcessColors: Cyan Magenta Yellow Black +%%Pages: 1 +%%BoundingBox: 97 197 502 604 +%%EndComments + +%%BeginProlog + +% MathWorks dictionary +/MathWorks 150 dict begin + +% definition operators +/bdef {bind def} bind def +/ldef {load def} bind def +/xdef {exch def} bdef +/xstore {exch store} bdef + +% operator abbreviations +/c /clip ldef +/cc /concat ldef +/cp /closepath ldef +/gr /grestore ldef +/gs /gsave ldef +/mt /moveto ldef +/np /newpath ldef +/cm /currentmatrix ldef +/sm /setmatrix ldef +/rc {rectclip} bdef +/rf {rectfill} bdef +/rm /rmoveto ldef +/rl /rlineto ldef +/s /show ldef +/sc {setcmykcolor} bdef +/sr /setrgbcolor ldef +/w /setlinewidth ldef +/j /setlinejoin ldef +/cap /setlinecap ldef + +% page state control +/pgsv () def +/bpage {/pgsv save def} bdef +/epage {pgsv restore} bdef +/bplot /gsave ldef +/eplot {stroke grestore} bdef + +% orientation switch +/portraitMode 0 def +/landscapeMode 1 def + +% coordinate system mappings +/dpi2point 0 def + +% font control +/FontSize 0 def +/FMS { + /FontSize xstore %save size off stack + findfont + [FontSize 0 0 FontSize neg 0 0] + makefont + setfont + }bdef + +/reencode { +exch dup where +{pop load} {pop StandardEncoding} ifelse +exch +dup 3 1 roll +findfont dup length dict begin + { 1 index /FID ne {def}{pop pop} ifelse } forall + /Encoding exch def + currentdict +end +definefont pop +} bdef + +/isroman { +findfont /CharStrings get +/Agrave known +} bdef + +/FMSR { +3 1 roll 1 index +dup isroman +{reencode} {pop pop} ifelse +exch FMS +} bdef + +/csm { + 1 dpi2point div -1 dpi2point div scale + neg translate + landscapeMode eq {90 rotate} if + } bdef + +% line types: solid, dotted, dashed, dotdash +/SO { [] 0 setdash } bdef +/DO { [.5 dpi2point mul 4 dpi2point mul] 0 setdash } bdef +/DA { [6 dpi2point mul] 0 setdash } bdef +/DD { [.5 dpi2point mul 4 dpi2point mul 6 dpi2point mul 4 dpi2point mul] 0 setdash } bdef + +% macros for lines and objects +/L { + lineto + stroke + } bdef +/MP { + 3 1 roll moveto + 1 sub {rlineto} repeat + } bdef +/AP { + {rlineto} repeat + } bdef +/PP { + closepath fill + } bdef +/DP { + closepath stroke + } bdef +/MR { + 4 -2 roll moveto + dup 0 exch rlineto + exch 0 rlineto + neg 0 exch rlineto + closepath + } bdef +/FR { + MR stroke + } bdef +/PR { + MR fill + } bdef +/L1i { + { currentfile picstr readhexstring pop } image + } bdef + +/tMatrix matrix def +/MakeOval { + newpath + tMatrix currentmatrix pop + translate scale + 0 0 1 0 360 arc + tMatrix setmatrix + } bdef +/FO { + MakeOval + stroke + } bdef +/PO { + MakeOval + fill + } bdef + +/PD { + 2 copy moveto lineto stroke + } bdef + + +currentdict end def +%%EndProlog + +%%BeginSetup +MathWorks begin + +0 cap + +end +%%EndSetup + +%%Page: 1 1 +%%BeginPageSetup +%%PageBoundingBox: 97 197 502 604 +MathWorks begin +bpage +%%EndPageSetup + +%%BeginObject: graph1 1 +bplot + +/dpi2point 12 def +portraitMode 0216 7344 csm + + 956 91 4862 4883 MR c np +76 dict begin %Colortable dictionary +/c0 { 0 0 0 sr} bdef +/c1 { 1 1 1 sr} bdef +/c2 { 1 0 0 sr} bdef +/c3 { 0 1 0 sr} bdef +/c4 { 0 0 1 sr} bdef +/c5 { 1 1 0 sr} bdef +/c6 { 1 0 1 sr} bdef +/c7 { 0 1 1 sr} bdef +%%IncludeResource: font Helvetica +/Helvetica /ISOLatin1Encoding 144 FMSR + +1 j +c1 + 0 0 6912 5185 PR +6 w +DO +4 w +c0 +1463 4613 mt 1463 388 L +1463 388 mt 1463 388 L +2308 4613 mt 2308 388 L +2308 388 mt 2308 388 L +3153 4613 mt 3153 388 L +3153 388 mt 3153 388 L +3999 4613 mt 3999 388 L +3999 388 mt 3999 388 L +4844 4613 mt 4844 388 L +4844 388 mt 4844 388 L +5689 4613 mt 5689 388 L +5689 388 mt 5689 388 L +1463 4613 mt 5689 4613 L +5689 4613 mt 5689 4613 L +1463 4191 mt 5689 4191 L +5689 4191 mt 5689 4191 L +1463 3768 mt 5689 3768 L +5689 3768 mt 5689 3768 L +1463 3346 mt 5689 3346 L +5689 3346 mt 5689 3346 L +1463 2923 mt 5689 2923 L +5689 2923 mt 5689 2923 L +1463 2501 mt 5689 2501 L +5689 2501 mt 5689 2501 L +1463 2078 mt 5689 2078 L +5689 2078 mt 5689 2078 L +1463 1655 mt 5689 1655 L +5689 1655 mt 5689 1655 L +1463 1233 mt 5689 1233 L +5689 1233 mt 5689 1233 L +1463 811 mt 5689 811 L +5689 811 mt 5689 811 L +1463 388 mt 5689 388 L +5689 388 mt 5689 388 L +1463 4613 mt 1463 388 L +1463 388 mt 5689 388 L +1463 4613 mt 1463 388 L +1463 388 mt 5689 388 L +1463 4613 mt 1463 388 L +1463 388 mt 5689 388 L +SO +6 w +1463 4613 mt 5689 4613 L +1463 388 mt 5689 388 L +5689 4613 mt 5689 388 L +1463 4613 mt 1463 388 L +5689 4613 mt 5689 4613 L +1463 4613 mt 1463 4613 L +1463 4613 mt 5689 4613 L +1463 4613 mt 1463 388 L +1463 4613 mt 1463 4613 L +1463 4613 mt 1463 4571 L +1463 388 mt 1463 430 L +1423 4782 mt +(0) s +2308 4613 mt 2308 4571 L +2308 388 mt 2308 430 L +2268 4782 mt +(2) s +3153 4613 mt 3153 4571 L +3153 388 mt 3153 430 L +3113 4782 mt +(4) s +3999 4613 mt 3999 4571 L +3999 388 mt 3999 430 L +3959 4782 mt +(6) s +4844 4613 mt 4844 4571 L +4844 388 mt 4844 430 L +4804 4782 mt +(8) s +5689 4613 mt 5689 4571 L +5689 388 mt 5689 430 L +5609 4782 mt +(10) s +1463 4613 mt 1505 4613 L +5689 4613 mt 5647 4613 L +1264 4666 mt +(-1) s +1463 4191 mt 1505 4191 L +5689 4191 mt 5647 4191 L +1144 4244 mt +(-0.8) s +1463 3768 mt 1505 3768 L +5689 3768 mt 5647 3768 L +1144 3821 mt +(-0.6) s +1463 3346 mt 1505 3346 L +5689 3346 mt 5647 3346 L +1144 3399 mt +(-0.4) s +1463 2923 mt 1505 2923 L +5689 2923 mt 5647 2923 L +1144 2976 mt +(-0.2) s +1463 2501 mt 1505 2501 L +5689 2501 mt 5647 2501 L +1348 2554 mt +(0) s +1463 2078 mt 1505 2078 L +5689 2078 mt 5647 2078 L +1228 2131 mt +(0.2) s +1463 1655 mt 1505 1655 L +5689 1655 mt 5647 1655 L +1228 1708 mt +(0.4) s +1463 1233 mt 1505 1233 L +5689 1233 mt 5647 1233 L +1228 1286 mt +(0.6) s +1463 811 mt 1505 811 L +5689 811 mt 5647 811 L +1228 864 mt +(0.8) s +1463 388 mt 1505 388 L +5689 388 mt 5647 388 L +1348 441 mt +(1) s +1463 388 mt 5689 388 L +1463 4613 mt 5689 4613 L +1463 4613 mt 1463 388 L +5689 4613 mt 5689 388 L +1463 388 mt 1463 388 L +5689 388 mt 5689 388 L +gs 1463 388 4227 4226 MR c np +42 183 43 192 42 200 42 206 42 210 43 211 42 210 42 208 +42 204 43 196 42 188 42 177 42 165 43 151 42 135 42 119 +42 100 43 82 42 61 42 42 42 20 43 -1 42 -22 42 -43 +42 -63 43 -83 42 -102 42 -120 43 -137 42 -152 42 -166 42 -178 +43 -188 42 -197 42 -204 42 -208 43 -211 42 -211 42 -209 42 -206 +43 -199 42 -192 42 -182 42 -170 43 -157 42 -142 42 -126 42 -108 +43 -89 42 -70 42 -50 43 -29 42 -8 42 13 42 34 43 55 +42 75 42 94 42 113 43 130 42 146 42 160 42 173 43 185 +42 193 42 202 42 206 43 210 42 211 42 211 42 207 43 202 +42 195 42 186 42 176 43 162 42 149 42 132 43 116 42 97 +42 79 42 58 43 37 42 17 42 -4 42 -26 43 -46 42 -67 +42 -86 42 -105 43 -123 42 -139 42 -155 42 -168 43 -180 42 -190 +42 -198 42 -205 43 -209 1505 2290 100 MP stroke +42 -211 1463 2501 2 MP stroke +42 -106 43 -87 42 -67 42 -48 42 -26 43 -5 42 15 42 37 +42 57 43 78 42 96 42 115 42 132 43 148 42 162 42 175 +42 185 43 195 42 202 42 207 42 210 43 211 42 211 42 206 +42 202 43 194 42 185 42 174 43 161 42 146 42 131 42 113 +43 95 42 76 42 56 42 35 43 14 42 -7 42 -28 42 -49 +43 -69 42 -89 42 -107 42 -125 43 -141 42 -157 42 -169 42 -182 +43 -191 42 -199 42 -205 43 -210 42 -211 42 -210 42 -209 43 -204 +42 -197 42 -189 42 -179 43 -166 42 -153 42 -137 42 -121 43 -103 +42 -84 42 -64 42 -44 43 -22 42 -2 42 19 42 40 43 61 +42 81 42 99 42 118 43 135 42 150 42 164 43 177 42 187 +42 197 42 203 43 207 42 211 42 211 42 210 43 206 42 200 +42 193 42 183 43 172 42 158 42 144 42 128 43 110 42 92 +42 73 42 52 43 31 1505 399 100 MP stroke +42 11 1463 388 2 MP stroke + +gr +3194 4942 mt +(\\tex[t][t]{$t$}) s +1090 3419 mt -90 rotate +(\\tex[B][B]{$\\sin\(t\)$, $\\cos\(t\)$}) s +90 rotate +2314 273 mt +(\\tex[B][B]{Plot of $\\sin\(t\)$ and $\\cos\(t\)$}) s +2689 2048 mt +(p1) s +3956 3343 mt +(p2) s +5224 1495 mt +(p2) s +3486 2178 mt -78 rotate +(p3) s +78 rotate + +end + +eplot +%%EndObject graph 1 + +epage +end + +showpage + +%%Trailer +%%EOF + +%%EndDocument + @endspecial 830 2110 a + /End PSfrag + 830 2110 a 830 1223 a + /Hide PSfrag + 830 1223 +a 20 1286 a Fq(PSfrag)30 b(replacemen)m(ts)p 20 1317 +811 4 v 830 1320 a + /Unhide PSfrag + 830 1320 a 830 1433 a + { + 830 1433 a 920 +1336 a Fq(sin)o(\()p Fl(t)p Fq(\))849 1396 y Fb(\001)830 +1433 y(\001)-42 b(\013)830 1433 y + } 0/Place PSfrag + 830 1433 a 807 1525 +a + { + 807 1525 a 784 1546 a Fm(\003)807 1525 y + } 1/Place PSfrag + 807 1525 a +807 1638 a + { + 807 1638 a 784 1659 a Fm(\003)807 1638 y + } 2/Place PSfrag + 807 +1638 a 605 1749 a + { + 605 1749 a Fq(cos)q(\()p Fl(t)p Fq(\))605 +1749 y + } 3/Place PSfrag + 605 1749 a 814 1829 a + { + 814 1829 a 798 1885 a Fl(t)814 +1829 y + } 4/Place PSfrag + 814 1829 a 582 1975 a + { + 582 1975 a -248 w Fq(sin)o(\()p +Fl(t)p Fq(\),)31 b(cos)q(\()p Fl(t)p Fq(\))582 1975 y + } 5/Place PSfrag + +582 1975 a 356 2088 a + { + 356 2088 a -475 w Fq(Plot)f(of)h(sin)n(\()p +Fl(t)p Fq(\))g(and)f(cos)q(\()p Fl(t)p Fq(\))356 2088 +y + } 6/Place PSfrag + 356 2088 a 830 2110 a + currentpoint currentpoint translate 1 0.62222 div 1 0.62222 div scale +neg exch neg exch translate + 830 2110 a 198 2406 a Fq(Figure)g(3:)41 +b(The)30 b(same)h Fp(PSfrag)g Fq(example)f(as)h(Figure)f(2,)h(using)e +Fk(\\resizebox)e Fq(to)k(set)g(the)g(width.)0 2665 y(Figure)50 +b(2)g(also)g(re\015ects)h(the)f(b)s(eha)m(vior)f(that)i(y)m(ou)f(w)m +(ould)f(see)h(when)f(using)g(the)h Fk(epsf.sty)e Fq(macros)0 +2778 y Fk(\\epfxsize)p Fq(,)40 b Fk(\\epsfysize)p Fq(,)g +Fi(etc)p Fq(.)70 b(In)40 b(these)h(cases,)i(the)e Fp(PSfrag)g +Fq(text)g(do)s(es)f(not)g(scale)h(with)e(it.)69 b(to)41 +b(re-)0 2891 y(size)30 b(the)h(\014gure.)0 3045 y(As)d(y)m(ou)g(can)g +(see,)h(the)g(text)f(in)f(the)h(second)g(\014gure)f(is)g(decidedly)f +(smaller)h(than)g(the)h(\014rst.)40 b(This)26 b(is)h(b)s(ecause)0 +3158 y Fk(\\resizebox)19 b Fq(uses)j(P)m(ostScript)g(tric)m(ks)g(to)h +(scale)f Fi(al)5 b(l)32 b Fq(of)23 b(the)f(con)m(ten)m(ts)i(of)e(its)g +(argumen)m(t.)38 b(Since)21 b(the)i Fk(\\psfrag)0 3271 +y Fq(commands)41 b(are)h(not)f(actually)g(t)m(yp)s(eset)h(un)m(til)e +Fi(within)49 b Fq(the)42 b Fk(\\includegraphics)37 b +Fq(command,)44 b(they)d(are)0 3384 y(resized)30 b(as)g(w)m(ell.)0 +3539 y(The)20 b Fk(graphicx.sty)e Fq(k)m(ey-v)-5 b(alue)21 +b(pairs)f Fk(width=)p Fq(,)h Fk(height=)p Fq(,)g(and)g +Fk(scale=)e Fq(scale)i(the)g(\014gure)g(without)e(scaling)0 +3652 y(the)36 b(replacemen)m(t)g(text,)j(as)d(long)f(as)h(they)g(are)h +(supplied)32 b Fi(b)-5 b(efor)g(e)44 b Fq(an)35 b Fk(angle=)f +Fq(rotation)j(k)m(ey)-8 b(.)58 b(Of)35 b(course,)0 3765 +y(the)26 b Fk(\\resizebox)d Fq(and)i Fk(\\scalebox)f +Fq(macros)i(are)g(still)e(a)m(v)-5 b(ailable)26 b(in)e +Fk(graphicx.sty)p Fq(,)g(so)i(y)m(ou)g(can)g(mix)f(and)0 +3878 y(matc)m(h)31 b(b)s(oth)f(b)s(eha)m(viors)f(as)i(y)m(ou)g(see)g +(\014t.)40 b(See)31 b(the)f Fp(graphics)h Fq(do)s(cumen)m(tation)f(for) +g(more)h(details.)0 4032 y(If)h(y)m(ou)h(are)f(still)f(unsure)f(ab)s +(out)i(these)h(distinctions,)e(then)h(try)g(b)s(oth)g(metho)s(ds)f(for) +i(scaling)e(y)m(our)h(\014gures)0 4145 y(un)m(til)d(y)m(ou)h(\014nd)f +(a)i(con)m(v)m(en)m(tion)g(that)g(w)m(orks)g(b)s(est)f(for)g(y)m(ou.)0 +4470 y Ft(8)135 b(Common)45 b(mistak)l(es,)i(kno)l(wn)e(problems,)h +(and)e(bugs)0 4714 y Fp(PSfrag)31 b Fq(is)f(bug-free.)0 +4869 y(W)-8 b(ell,)29 b(of)g(course)f(w)m(e're)i(kidding.)37 +b Fp(PSfrag)30 b Fq(uses)e(some)h(tric)m(ky)f(P)m(ostScript)h(hac)m(ks) +g(to)g(ac)m(hiev)m(e)h(its)e(goals.)41 b(So)0 4982 y(it)33 +b(really)g(w)m(ould)f(not)i(surprise)e(us)h(if)g(y)m(ou)h(\014nd)e +(bugs,)i(If)f(y)m(ou)h(\014nd)f(an)m(y)h(problems,)f(please)g +(con\014rm)g(they)0 5095 y(are)e(not)f(men)m(tioned)g(b)s(elo)m(w;)g +(and,)g(if)f(not,)i(rep)s(ort)f(them)g(to)i(te)f Fp(PSfrag)g +Fq(mailing)d(list)h(\(see)i(b)s(elo)m(w\).)0 5377 y Fj(8.1)112 +b(Using)39 b Fd(PSfrag)g Fj(tags)f(prop)s(erly)0 5590 +y Fq(One)31 b(of)h(the)f(more)h(frequen)m(t)g(problems)d(that)k(p)s +(eople)d(encoun)m(ter)i(with)e Fp(PSfrag)j Fq(is)d(that)i(it)f +(replaces)h Fi(some)0 5703 y Fq(of)h(their)f(tags)h(prop)s(erly)-8 +b(,)32 b(but)g(not)h(all)f(of)h(them.)48 b(Whenev)m(er)33 +b(p)s(ossible,)e(y)m(ou)i(should)e(design)h(y)m(our)g(\014gures)0 +5816 y Fi(with)h Fa(PSfrag)g Fi(in)f(mind)p Fq(,)f(b)m(y)g(follo)m +(wing)e(this)g(rule:)1858 6065 y(9)p eop +%%Page: 10 10 +10 9 bop 227 91 a Fq(When)35 b(adding)f(a)h(piece)g(of)h(text)g(\(a)f +Fi(tag)8 b Fq(\))36 b(in)e(a)i(\014gure)e(for)h Fp(PSfrag)h +Fq(to)g(replace,)g(use)f(a)g Fi(single)227 204 y(wor)-5 +b(d)p Fq(,)33 b(con)m(taining)d(only)f(unaccen)m(ted)i(letters)g(and)f +(n)m(um)m(b)s(ers.)0 442 y(This)f(is)h(the)h(w)m(a)m(y)h(that)g +Fp(PSfrag)g Fq(is)e(in)m(tended)f(to)j(b)s(e)f(used;)f(doing)g(so)i +(will)c(almost)j(guaran)m(tee)h(that)g Fp(PSfrag)0 555 +y Fq(w)m(orks)41 b(as)g(adv)m(ertised.)73 b(Of)41 b(course,)j(one)d +(cannot)h(alw)m(a)m(ys)g(follo)m(w)e(this)g(rule;)45 +b(and)c(a)g(small)f(handful)e(of)0 667 y(dra)m(wing)d(pac)m(k)-5 +b(ages)37 b(consisten)m(tly)e(cause)i(problems.)55 b(In)m(v)-5 +b(ariably)d(,)36 b(these)g(problems)e(can)i(b)s(e)f(resolv)m(ed)h(b)m +(y)0 780 y(understanding)28 b(ho)m(w)j Fp(PSfrag)h Fq(lo)s(oks)d(for)h +(these)h(tags.)0 943 y(P)m(ostScript)20 b(has)g(\014v)m(e)g(commands)g +(to)h(displa)m(y)e(text|)p Fk(show)p Fq(,)j Fk(ashow)p +Fq(,)f Fk(kshow)p Fq(,)g Fk(widthshow)p Fq(,)f(and)g +Fk(awidthshow)p Fq(|)0 1056 y(although,)34 b(in)e(man)m(y)h(cases,)i +(an)e(EPS)g(\014le)f(will)f(de\014ne)h(abbreviations)g(of)i(these)f +(commands.)49 b Fp(PSfrag)34 b Fq(ac-)0 1169 y(tually)j +Fi(inter)-5 b(c)g(epts)46 b Fq(these)39 b(commands)e(and)g(c)m(hec)m +(ks)j(them)e(for)f(the)h(tags)h(to)g(replace.)63 b(When)38 +b(the)g(string)0 1282 y(matc)m(hes)32 b(a)f(kno)m(wn)f(tag,)i +Fp(PSfrag)f Fq(\014gures)f(out)g(where)g(the)h(tag)h +Fi(would)41 b Fq(ha)m(v)m(e)32 b(b)s(een)d(displa)m(y)m(ed,)h(and)g +(inserts)0 1395 y(its)g(replacemen)m(t)h(there.)41 b(When)30 +b(it)g(do)s(esn't,)g Fp(PSfrag)h Fq(lets)f(the)h Fk(*show)e +Fq(command)h(pro)s(ceed)g(normally)-8 b(.)0 1557 y(The)30 +b(strings)g(that)i(these)f Fk(*show)f Fq(displa)m(y)f(are)i(delimited)e +(with)g(paren)m(theses,)j(m)m(uc)m(h)f(lik)m(e)f(the)i +Fk(C)e Fq(language)0 1670 y(uses)g(double)f(quotes.)41 +b(F)-8 b(or)31 b(example:)227 1908 y Fk(\(This)47 b(is)g(a)g(test.\))f +(show)393 b Fq(displa)m(ys)362 b Fk(This)47 b(is)g(a)g(test.)0 +2145 y Fq(Unmatc)m(hed)34 b(paren)m(theses)f(and)g(certain)g(other)h +(sp)s(ecial)e(c)m(haracters)j(m)m(ust)e(b)s(e)g(preceded)g(b)m(y)g(a)h +(bac)m(kslash)0 2258 y(in)29 b(a)i(P)m(ostScript)f(string.)39 +b(F)-8 b(or)32 b(example:)227 2496 y Fk(\(x)47 b(=)h(\\\(0,1]\))e(show) +393 b Fq(displa)m(ys)361 b Fk(x)48 b(=)f(\(0,1])0 2733 +y Fq(With)30 b(this)f(in)g(mind,)g(here)h(is)f(the)i(rule)e(ab)s(out)h +Fp(PSfrag)h Fq(tags:)227 2971 y(The)i(tag)h(supplied)c(to)k(the)g +Fk(\\psfrag)d Fq(command)i(m)m(ust)g(b)s(e)g(t)m(yp)s(ed)f +Fi(exactly)k(as)g(it)f(app)-5 b(e)g(ars)38 b(in)227 3083 +y(the)33 b(EPS)f(\014le's)h Fk(*show)e Fi(c)-5 b(ommand)p +Fq(,)33 b(without)c(the)i(surrounding)c(paren)m(theses.)0 +3321 y(In)i(other)h(w)m(ords,)f Fp(PSfrag)i Fq(will)c(w)m(ork)j(only)e +(if)h(the)h(string)e(in)h(the)h Fk(\\psfrag)d Fq(command)j(exactly)g +(duplicates)0 3434 y(what)45 b(is)e(found)g(in)h(the)h(EPS)e(\014le.)83 +b(If)44 b(y)m(our)h(strings)e(ha)m(v)m(e)j(bac)m(kslashes)f(added)e(to) +j(them,)i(as)d(in)e(the)0 3547 y Fk(x)k(=)h(\\\(0,1])35 +b Fq(example,)k(then)d(y)m(ou)i(will)c(ha)m(v)m(e)k(to)g(add)e(that)i +(bac)m(kslash)f(to)g(the)h Fk(\\psfrag)d Fq(command)h(as)0 +3660 y(w)m(ell.)65 b(And)38 b Fp(PSfrag)h Fq(can)g(only)f(replace)h +Fi(entir)-5 b(e)46 b Fq(strings,)40 b(not)f(just)f(parts)g(of)h(one.)66 +b(So)39 b(if)f(y)m(our)h(EPS)e(\014le)0 3773 y(con)m(tains)227 +4010 y Fk(\(I)47 b(want)g(to)g(replace)f(the)h(XXX)g(here\))f(show)0 +4247 y Fq(then)30 b(the)h Fk(\\psfrag)d Fq(command)i(will)e(fail)h(if)g +(y)m(ou)i(supply)d(just)i(the)g Fk(XXX)p Fq(.)0 4410 +y(Y)-8 b(ou)31 b(can)f(use)g(a)g(simple)e(text)j(editor)f(to)g(c)m(hec) +m(k)i(things,)d(if)g(y)m(ou)h(lik)m(e;)g(EPS)f(\014les)g(are)i +(\(almost)f(alw)m(a)m(ys\))h(just)0 4523 y(simple)d(ASCI)s(I)h +(\014les.)0 4686 y(Unfortunately)-8 b(,)30 b(some)h(dra)m(wing)e(pac)m +(k)-5 b(ages)31 b(displa)m(y)e(text)i(b)m(y)f(sending)e(eac)m(h)k(c)m +(haracter)f Fi(individual)5 b(ly)39 b Fq(to)31 b(a)0 +4799 y Fk(show)k Fq(command.)57 b(In)36 b(other)g(w)m(ords,)h(if)e(y)m +(ou)i(use)e(the)i(dra)m(wing)e(to)s(ol)h(to)g(put)g(the)g(string)f +(\\test")j(in)d(y)m(our)0 4912 y(\014gure,)30 b(it)g(will)e(do)i +(something)g(lik)m(e)f(this:)227 5149 y Fk(\(t\))47 b(show)g(\(e\))g +(show)f(\(s\))h(show)g(\(t\))g(show)0 5386 y Fq(If)32 +b(this)f(is)h(true)g(in)f(y)m(our)i(case,)h(w)m(e)f(ap)s(ologize;)h(it) +e(mak)m(es)i(using)e Fp(PSfrag)h Fq(m)m(uc)m(h)g(more)f(incon)m(v)m +(enien)m(t|y)m(ou)0 5499 y(will)c(b)s(e)h(limited)g(to)i(single-c)m +(haracter)g(tags.)41 b(Suc)m(h)30 b(to)s(ols)g(also)h(prev)m(en)m(t)g +(the)f(use)g(of)h(the)f Fk(\\tex)g Fq(command.)1835 6065 +y(10)p eop +%%Page: 11 11 +11 10 bop 0 91 a Fj(8.2)112 b(Problems)36 b(using)h(some)h +Fd(x\014g)g Fj(\014gures)0 305 y Fp(PSfrag)27 b Fq(do)s(es)f(not)h(w)m +(ork)f(with)f Fp(x\014g)j Fq(\014gures)d(that)i(use)f(\\pattern)h +(\014lls.")38 b(When)26 b(pain)m(ting/\014lling)d(a)j(p)s(olygon,)0 +418 y Fp(x\014g)40 b Fq(pro)m(vides)e(a)h(n)m(um)m(b)s(er)e(of)i(c)m +(hoices:)58 b(simple)37 b(colors)h(or)h(grey)g(lev)m(els,)i(or)d(a)h(n) +m(um)m(b)s(er)f(of)h(patterns)f(lik)m(e)0 531 y(cross-hatc)m(hes,)d(c)m +(hec)m(k)m(ers,)h Fi(etc.)c Fq(Unfortunately)-8 b(,)33 +b(using)e(a)j(pattern)e(\014ll)f(in)h(a)h(\014gure)f(pro)s(cessed)g(b)m +(y)i Fp(PSfrag)0 644 y Fq(results)29 b(in)g(P)m(ostScript)h(\014les)f +(that)i(will)d(not)j(prin)m(t.)0 798 y(F)-8 b(ortunately)g(,)32 +b(there)e(are)h(w)m(ork)-5 b(arounds:)111 1008 y(1.)46 +b(Av)m(oid)34 b(pattern)f(\014lls)f(in)g(y)m(our)h Fp(x\014g)i +Fq(\014gures;)g(use)e(simple)e(colors)j(\(or)g(greys\))g(instead.)49 +b(Consult)32 b(the)227 1121 y Fp(x\014g)g Fq(do)s(cumen)m(tation)e(for) +g(details.)111 1301 y(2.)46 b(Op)s(en)25 b(the)h(o\013ending)f +Fk(.eps)g Fq(\014le)g(\(generated)i(b)m(y)g Fp(\014g2dev)h +Fq(or)e Fp(x\014g)q Fq('s)g(\\exp)s(ort")h(command\))f(with)f(y)m(our) +227 1414 y(fa)m(v)m(orite)40 b(text)f(editor.)63 b(Lo)s(ok)38 +b(for)g(the)h(de\014nition)c Fk(PATfill)i Fq(command;)42 +b(inside)35 b(this)i(subroutine,)227 1527 y(replace)31 +b Fk(show)e Fq(with)g Fk(oldshow)f Fq(\(there)j(is)f(only)f(one)i(o)s +(ccurrence\).)0 1736 y(F)-8 b(or)45 b(those)f(P)m(ostScript)f(hac)m(k)m +(ers)i(out)f(there:)68 b(b)s(oth)43 b Fp(PSfrag)h Fq(and)f +Fp(x\014g)i Fq(rede\014ne)e(the)h(P)m(ostScript)g Fk(show)0 +1849 y Fq(command.)39 b Fk(oldshow)23 b Fq(is)g(where)i +Fp(x\014g)h Fq(stores)f(the)h(\\old")e(v)m(ersion)h(of)g(the)g +(command.)39 b(If)24 b(y)m(ou)h(can)g(determine)0 1962 +y(wh)m(y)h(this)g(\014x)g(w)m(orks,)h(and)f(con)m(vince)h(the)g +Fp(x\014g)h Fq(main)m(tainers)d(to)i(mak)m(e)h(the)f(c)m(hange;)i(or,)e +(if)f(y)m(ou)h(can)g(suggest)0 2075 y(a)k(\014x)f(for)g +Fp(PSfrag)p Fq(,)g(please)g(do.)0 2357 y Fj(8.3)112 b(Problems)36 +b(using)h(old)g(v)m(ersions)g(of)h(the)f Fd(semina)m(r)i +Fj(pac)m(k)-6 b(age)0 2570 y Fq(The)30 b(p)s(opular)e +Fp(semina)m(r)k Fq(pac)m(k)-5 b(age)32 b(w)m(as,)f(for)g(a)m(while,)e +(incompatbile)g(with)g(PSfrag)h(3.0.)41 b(This)29 b(is)h(due)f(to)i +(the)0 2683 y(fact)39 b(that)g(PSfrag)f(relies)f(on)h(certain)h +(features)f(of)h(the)f(L)2033 2666 y Fn(A)2072 2683 y +Fq(T)2123 2703 y(E)2174 2683 y(X)14 b(2)2301 2697 y Fl(")2386 +2683 y Fq(output)38 b(routine,)h(while)e Fp(semina)m(r)j +Fq(still)0 2796 y(uses)30 b(one)h(largely)e(b)s(orro)m(w)m(ed)h(from)g +(L)1291 2779 y Fn(A)1330 2796 y Fq(T)1381 2816 y(E)1431 +2796 y(X)h(2.09.)0 2951 y(The)24 b(b)s(est)g(solution)f(for)h(this)f +(problem)g(is)g(to)i(mak)m(e)h(sure)e(that)g(y)m(ou)h(ha)m(v)m(e)h(the) +e(latest)h(v)m(ersion)f(of)h(the)f Fp(semina)m(r)0 3064 +y Fq(pac)m(k)-5 b(age,)31 b(whic)m(h)26 b(can)i(b)s(e)g(retriev)m(ed)f +(from)h(an)m(y)g(CT)-8 b(AN)28 b(site,)g(lik)m(ely)f(from)g(the)h(same) +g(place)g(y)m(ou)g(found)f Fp(PS-)0 3177 y(frag)p Fq(.)41 +b(A)31 b(w)m(eb)f(page)i(for)e Fp(semina)m(r)i Fq(can)f(b)s(e)f(found)f +(at)i Fk(http://www.tug.org/applic)o(atio)o(ns/S)o(emi)o(nar/)o +Fq(.)0 3290 y(The)f(1997/10/13)35 b(v)m(ersion)30 b(seems)g(to)h(ha)m +(v)m(e)h(corrected)f(the)g(problem.)0 3444 y(If)36 b(for)g(some)h +(reason)f(y)m(ou)h(are)g(forced)f(to)h(use)f(an)g(older)g(v)m(ersion,)h +(there)g(is)e(a)i(temp)s(orary)-8 b(,)38 b Fp(dvips)p +Fq(-sp)s(eci\014c)0 3557 y(\014x:)i(add)30 b(the)h(command)f +Fk(\\special{header=psfrag.)o(pro})24 b Fq(just)30 b(b)s(efore)g +Fk(\\begin{document})c Fq(in)j(y)m(our)0 3670 y(L)24 +3653 y Fn(A)63 3670 y Fq(T)114 3690 y(E)164 3670 y(X)i(\014le.)0 +3995 y Ft(9)135 b(The)44 b Fo(PSfrag)i Ft(mailing)g(list)0 +4240 y Fq(There)31 b(is)g(a)h(Ma)5 b(joro)s(domo)33 b(mailing)c(list)i +(for)g(purp)s(oses)f(of)39 b Fp(PSfrag)33 b Fq(main)m(tenance.)45 +b(It)32 b Fi(is)i(not)41 b Fq(in)m(tended)31 b(to)0 4353 +y(replace)i(this)f(man)m(ual)g(or)g(a)i(small)d(amoun)m(t)i(of)g +(educated)h(guessw)m(ork.)48 b(But,)34 b(it)e Fi(is)40 +b Fq(the)33 b(p)s(erfect)g(place)g(for)0 4465 y(bug)25 +b(rep)s(orts,)h(dev)m(elopmen)m(t)g(ideas,)h(and)e(so)h(forth.)38 +b(An)m(y)m(one)27 b(who)e(wishes)f(to)j(assist)e(in)f +Fp(PSfrag)q Fq('s)i(ev)m(olution)0 4578 y(ma)m(y)31 b(subscrib)s(e;)d +(to)j(do)f(so,)h(just)f(send)g(mail)f(to)227 4788 y Fk +(majordomo@rascals.stanfor)o(d.ed)o(u)0 4998 y Fq(with)g(the)i(line)d +Fk(subscribe)46 b(psfrag)28 b Fq(in)h(the)i Fi(b)-5 b(o)g(dy)40 +b Fq(of)30 b(the)h(text.)0 5153 y(Bug)g(supp)s(orts,)d(ideas,)i +Fi(etc.)41 b Fq(should)28 b(go)j(to)227 5362 y Fk +(psfrag@rascals.stanford.e)o(du)p Fq(.)0 5572 y(If)41 +b(y)m(ou)h(ha)m(v)m(e)h(found)e(a)h(bug)f(to)i(rep)s(ort,)h(please)d +(pro)m(vide)g(us)g(with)g(the)h(necessary)g(\014les)f(\(a)h(L)3369 +5556 y Fn(A)3408 5572 y Fq(T)3459 5592 y(E)3509 5572 +y(X)g(\014le,)0 5685 y(the)g(EPS)e(\014gures,)k Fi(etc.)p +Fq(\))e(so)g(w)m(e)g(can)f(test)i(it)e(out)h(ourselv)m(es!)73 +b(T)-8 b(ry)42 b(to)g(pro)m(vide)e(us)h(with)g(the)g(shortest)0 +5798 y(self-con)m(tained)30 b(example)g(that)h(demonstrates)g(y)m(our)f +(bug.)41 b(If)29 b(this)h(is)f(not)i(p)s(ossible,)d(drop)h(us)h(a)h +(line)d(\014rst.)1835 6065 y(11)p eop +%%Trailer +end +userdict /end-hook known{end-hook}if +%%EOF diff --git a/support/easylatex/psfrag/pfgguide.tex b/support/easylatex/psfrag/pfgguide.tex new file mode 100644 index 0000000000..7e7d68c6a1 --- /dev/null +++ b/support/easylatex/psfrag/pfgguide.tex @@ -0,0 +1,695 @@ +%% pfgguide.dtx Copyright (c) 1995 Michael C. Grant and Craig Barratt +%% All rights are reserved. +%% +%% This system is distributed in the hope that it will be +%% useful, but WITHOUT ANY WARRANTY; without even the +%% implied warranty of MERCHANTABILITY or FITNESS FOR A +%% PARTICULAR PURPOSE. Don't come complaining to us if you +%% modify this file and it doesn't work! If this file is +%% modified by anyone but the authors, those changes and +%% their authors must be explicitly stated HERE. +%% +\documentclass[11pt]{ltxguide} +\usepackage{shortvrb,psfrag,graphicx} + +% I prefer more to a page. +\marginparsep 0pt \oddsidemargin 0pt \evensidemargin 0pt +\textwidth \paperwidth \advance \textwidth by-2in +\topmargin 0pt \headheight 0pt \headsep 0pt +\textheight \paperheight \advance \textheight by-2in + +\let\pkg\textsf +\let\fname\texttt +\let\pscom\texttt +\newcommand{\pfg}{\pkg{PSfrag}} +\newcommand{\ie}{\emph{i.e.\@}} +\newcommand{\eg}{\emph{e.g.\@}} +\newcommand{\etc}{\emph{etc.\@}} +\newcommand{\netaddress}[1]{\texttt{#1}} +\MakeShortVerb{\|} +\def\cs#1{% + {\ttfamily\expandafter\string\csname #1\endcsname}} +\providecommand\marg[1]{% + {\ttfamily\char`\{}{\em#1\/}{\ttfamily\char`\}}} +\providecommand\oarg[1]{% + {\ttfamily[}{\em #1\/}{\ttfamily]}} +\providecommand\parg[1]{% + {\ttfamily(}{\em #1\/}{\ttfamily)}} + +\title{The \pfg\ system, version 3} +\author{Michael C. Grant and David Carlisle\\ + \netaddress{psfrag@rascals.stanford.edu}} +\date{11 April 1998} + +\begin{document} + +\maketitle +\tableofcontents + +\section{What is \pfg?} + +Many drawing and graphing packages produce output in the Encapsulated +PostScript (EPS) format, but few can easily produce the equations and other +scientific text of which \TeX\ is so capable. On the other hand, many +\LaTeX\-based drawing packages are not as expressive or easy-to-use as these +stand-alone tools. + +\pfg\ provides the best of both worlds by allowing the user to precisely +overlay Encapsulated PostScript (EPS) files with arbitrary \LaTeX\ +constructions. In order to accomplish this, the user places a simple text +``tag'' in the graphics file, as a ``position marker'' of sorts. Then, using +simple \LaTeX\ commands, the user instructs \pfg\ to remove that tag from the +figure, and replace it with a properly sized, aligned, and rotated \LaTeX\ +equation. \pfg\ also allows the user to place \LaTeX\ constructs directly into +the EPS file itself. + +Dr.\ Craig Barratt wrote the original version of \pfg\ as a graduate student at +Stanford University. The interface has changed very little since then, but the +internals have been completely re-written. The current version of PSfrag is +maintained by Michael Grant and David Carlisle. Many thanks go to the members +of the \pfg\ mailing list, and to everyone who has submitted a bug report or +suggestion. + +\section{\pfg\ necessities} + +In order to use \pfg, you will need the following tools: +\begin{itemize} +\item A recent version of \LaTeXe\ and the \pkg{graphics} package. + \pfg\ currently requires the 1995/12/01 version or later of these + packages, but it is always best to have the most recent release. +\item If you wish to use the \pkg{seminar} package with \pfg, you + should make sure you have the 1997/10/13 version or later (see + section \ref{sec:sem-bug}). +\item A compatible DVI-to-PostScript driver (see below). \pkg{dvips} is + the primary choice of the \pfg\ developers, and is certainly the + most widely-used. +\end{itemize} + +The latest versions of \LaTeXe, the \pkg{graphics} package, \pfg, +and \pkg{dvips} can all be found on CTAN, the +Comprehensive \TeX\ Archive Network. The CTAN cites, and their mirrors, +include: +\begin{center} + \begin{tabular}{lll} + Name & IP address & Location \\ \hline + |ftp.dante.de| & 129.206.100.192 & Germany \\ + |ftp.tex.ac.uk| & 128.232.1.87 & England \\ + |ftp.cdrom.com| & 165.113.58.253 & USA \\ + \end{tabular} +\end{center} + +\subsection{Choosing a PostScript driver} +\label{sec:compat} + +\pfg\ relies on some sensitive PostScript tricks to accomplish its goals. Due +to limited time and resources, the authors could not confirm that \pfg\ works +properly on every available PostScript driver. We have attempted to insure that +it will \emph{eventually} work on every driver that is fully comaptible with +the \pkg{graphics} package (\ie, one for which a \fname{.def} file is +provided.) + +The drivers which have been confirmed to work with \pfg\ are: +\begin{center} +\begin{tabular}{lll} +Driver & Tested by & Compatibility \\ \hline +Thomas Rokicki's \pkg{dvips} & the authors & +fully compatible \\ +Y\&Y's \pkg{DVIPSONE} & the authors & +fully compatible +\end{tabular} +\end{center} +Please help us add entries to this list! If \pfg\ works with your driver, +please let us know, so we can add it to the list. If possible, test your \pfg\ +output on both Level 1 and Level 2 printers, so we can make a distinction here +if necessary.If \pfg\ does \emph{not} work, please submit a bug report; consult +section \ref{sec:mail} for contact information. unfortunately, we cannot +promise a fix for everyone, but we would like to insure that the most popular +drivers remain compatible. + +\section{Installing \pfg} + +Installing the various \pfg\ files is quite simple: +\begin{enumerate} +\item Run \LaTeX\ on \fname{psfrag.ins} to extract + \fname{psfrag.sty} and \fname{psfrag.pro}. +\item Install \fname{psfrag.sty} in a standard location for + \LaTeXe\ macros. For \pkg{kpathsea}-based systems like + \pkg{te\TeX}, this path is determined by the + \texttt{TEXINPUTS} variable. +\item Install \fname{psfrag.pro} wherever your PostScript driver + looks for header files. For \pkg{kpathsea}-based systems + like \pkg{te\TeX}, this is determined by the \texttt{DVIPSHEADERS} + varaible. For \pkg{dvips} in particular, the most logical choice would + be the same directory in which \fname{tex.pro} and + \fname{special.pro} are located. +\item If you have an older version of \pfg, you may delete the + following files, if they exist: \fname{ps2frag.ps}, \fname{ps2frag} + or \fname{ps2psfrag} (the processing scripts), + and \fname{epsf.sty} (the one provided by \pfg, + \emph{not} the \pkg{dvips} version!). System managers may wish to + replace \fname{ps2frag} with a script which notifies users of the + upgrade. +\end{enumerate} + +\section{Usage} +Here is a quick summary of the usage of \pfg: +\begin{itemize} + +\item Use the \cs{includegraphics} command defined by the \pkg{graphics} + and \pkg{graphicx} packages to add EPS figures to your new documents. + If you must use the \cs{epsfbox} command from \fname{epsf.sty} for + old documents, then \fname{epsf.sty} must be loaded \emph{before} + \fname{psfrag.sty}. Other packages based on \fname{graphics.sty}, + such as \pkg{graphicx} or \pkg{epsfig}, do not suffer this restriction. + +\item Load \fname{psfrag.sty} with a \cs{usepackage} command. + +\item Make sure that your EPS figures contain a simple ``tag'' word in + each position that you would like a \LaTeX\ replacements. Use + a \emph{single} word, composed of unaccented letters and numbers. + Some effort has been made to allow for more arbitrary tag text, + but the mechanism is not infallible; see section \ref{sec:tags}. + +\item For each tag word in your EPS file, add a command to your + your \LaTeX\ document to specify how this tag is to replaced, + as follows: +\begin{quote} + \cs{psfrag}\marg{tag}\oarg{posn}\oarg{psposn}% + \oarg{scale}\oarg{rot}\marg{\LaTeX\ text} +\end{quote} + The tag will be replaced by the \LaTeX\ text. + Example: in a drawing program like \pkg{xfig}, you place the text + \begin{quote} + |xy| + \end{quote} + at a particular point. To replace this with $x+y$, one possible + macro would be + \begin{quote} + \cs{psfrag{xy}{$x+y$}} + \end{quote} +\end{itemize} + +All \cs{psfrag} calls that precede the \cs{includegraphics} (or +equivalent) in the same or surrounding environments will be utilized +for a given PostScript file. So, you can define global \cs{psfrag}s as +well as those that are local to a figure. + +Any text that is not mentioned in a \cs{psfrag} command +will not be replaced; hence, PostScript and \LaTeX\ +text can be freely mixed. + +When viewing the output with a DVI previewer such as \pkg{dviwin} or +\pkg{xdvi}, a vertical list of the replacements will be placed on the +left side of each figure. This list allows you to check the +typesetting of your replacements; it disappears in the final +PostScript version. Unfortunately, DVI drivers are incapable of +\emph{placing} the \pfg\ replacements on top of the figure, so +for that you will need to print it out or use a PostScript +previewer like GhostView. + +This version of \pfg\ \emph{should} run properly in the compatibility +mode of \LaTeX2.09. Let us know if you find otherwise (see section +\ref{sec:mail}). + +\section{Commands and Environments}\label{sec:pos} + +\begin{decl} +\cs{psfrag}\marg{tag}\oarg{posn}\oarg{psposn}% + \oarg{scale}\oarg{rot}\marg{replacement}\\ +\cs{psfrag*}\marg{tag}\oarg{posn}\oarg{psposn}% + \oarg{scale}\oarg{rot}\marg{replacement} +\end{decl} + +The \cs{psfrag} macro defines a \LaTeX-typeset \marg{replacement} to be placed +at the same position as a PostScript \marg{tag}. The command should be placed +before the call to \cs{includegraphics}, or equivalent. It matches \emph{all} +occurrences of \marg{tag} in the figure. + +A \cs{psfrag} command will remain in effect until its surrounding environment +is exited. Therefore, you can define global \cs{psfrag}s which will apply to +every figure, or define \cs{psfrag}s inside a a |figure| environment (for +example) which apply to a single EPS file. + +The optional positioning arguments \oarg{posn} and \oarg{psposn} specify how +the bounding box of the \LaTeX\ text and the bounding box of the PostScript +text line up, respectively. Some drawing packages would refer to these as +``control points'' or ``alignment points.'' + +\begin{description} +\item{\oarg{posn}} +the \LaTeX\ text reference point. The syntax of this argument is identical to +that of the \cs{makebox} command. Up to two letters may be chosen, one from the +list \{|t|,|b|,|B|,|c|\}, (top, bottom, baseline, center) and another from +\{|l|,|r|,|c|\} (left, right, center). If either letter is omitted, then |c| +(center) is assumed. Together, these specify one of 12 anchor points. If the +argument is omitted altogether, then |[Bl]|, or left baseline positioning, is +assumed---but note that supplying |[]| specifies centered positioning. + +When running in \LaTeX\ 2.09 compatibility mode, the default alignment +is |[bl]|, in order to support legacy documents. Usually this should +not make a significant difference. +\item{\oarg{psposn}} +the PostScript text reference point. The possible arguments are +identical to that of \oarg{posn}, as is the default value, |[Bl]| +(|[bl]| in \LaTeX\ 2.09 compatibility mode.) +\end{description} + +The \LaTeX\ replacement may be optionally scaled and rotated about +its reference point: +\begin{description} +\item{\oarg{scale}} Scaling factor (default 1). It's best if you + use font size changes in the \LaTeX\ text rather than scale, but + you can use the scale to tweak its size. Default is |[1]|. +\item{\oarg{rotn}} Extra rotation of the text around its reference + point, in degrees. The nominal rotation of the \LaTeX\ text matches + that of the PostScript text it replaces. The total rotation is this + nominal value plus \oarg{rotn}. The default is |[0]|. +\end{description} + +\begin{figure}[tbh] +\psfragdebugon +\begin{center} + \psfrag{gA}[br][br]{|[br][br]|} + \psfrag*{gA}[Br][b ][2]{|[Br][b][2]|} + \psfrag*{gA}[ r][bl]{|[r][bl]|} + \psfrag*{gA}[tr][Bl]{|[tr][Bl]|} + \psfrag*{gA}[b ][B ]{|[b][B]|} + \psfrag*{gA}[B ][Br]{|[B][Br]|} + \psfrag*{gA}[ ][ r]{|[][r]|} + \psfrag*{gA}[t ][ ][0.75][45]{|[t][][0.75][45]|} + \psfrag*{gA}[bl][ l][1.5][30]{|[bl][l][1.5][30]|} + \psfrag*{gA}[Bl][tl]{|[Bl][tl]|} + \psfrag*{gA}[bl][Bl]{~~~~~(baseline)} + \psfrag*{gA}[bl][l]{~~~~~(center line)} + \psfrag*{gA}[bl][t][1][-90]{~~~~~(center line)} + \psfrag*{gA}[ l][t ]{|[l][t]|} + \psfrag*{gA}[tl][tr][1][180]{|[tl][tr][1][180]|} + \resizebox{4in}{!}{\includegraphics[angle=30]{testfig.eps}} +\end{center} +\caption{An illustration of various options for the \cs{psfrag} command.} +\label{fig:argexam} +\end{figure} +Figure~\ref{fig:argexam} illustrates various combinations of the arguments. If +you're viewing this with a DVI previewer such as \pkg{xdvi}, the \pfg\ +replacements should be lined up to the left of the figure; and, if your +previewer can display EPS files, a large, rotated |gA|. If you have printed +this out, or are viewing it with a PostScript viewer like GhostView, then the +replacements should superimposed on a graphical representation of the bounding +box, center lines, and baseline of the tag |gA|. (This graphical box is +provided only in debug mode.) + +If a replacement for \marg{tag} already exists, the unstarred +command \cs{psfrag} will replace it without warning. The starred +version \cs{psfrag*}, however, will \emph{add} the new replacement +to a list. Using the starred command, a single piece of PostScript +text could trigger several replacements. I can't think of a reason +why most users would use the starred version, but it was used in +Figure~\ref{fig:argexam} above. + +\begin{decl} +\cs{begin}|{psfrags}| +\cs{end}|{psfrags}| +\end{decl} + +The |psfrags| environment may be used, if necessary, to delimit the +scope of the \cs{psfrag} calls. As we said before, \cs{psfrag} +commands retain their effect until the most immediate surrounding +environment is exited. \emph{Any} environment will do: |center|, +|figure|, \etc. Therefore, it may never be necessary to use this +environment, and the environment has no other effect on the document. + +\subsection{Embedding \pfg\ operations into EPS files} +\label{sec:texcomm} + +\begin{decl} +\cs{tex}\oarg{posn}\oarg{psposn}\oarg{scale}% + \oarg{rot}\marg{\LaTeX\ text}\\ +\cs{psfragscanon}~~~\cs{psfragscanoff} +\end{decl} + +\pfg\ 3.0 supports the embedded \cs{tex} commands found in previous release of +\pfg. Used properly, this is a powerful tool, but it has been deprecated +somewhat because of its reliance on a pre-processing step. Unlike previous +versions of \pfg, support for the \cs{tex} command must be \emph{explicitly +requested}, as described below. + +As you can see, the syntax of the \cs{tex} command is very similar to the +\cs{psfrag} command. However, instead of adding the \cs{tex} command to your +\LaTeX\ file, the \cs{tex} command is \emph{embedded in the EPS file itself}. +In other words, the command becomes its own replacement tag. + +For example, you might place the text +\begin{quote} + |\tex[bl][bl]{$\alpha$}| +\end{quote} +at a particular point in your PostScript file to have \LaTeX\ replace it +with $\alpha$. Many \pfg\ users find this feature useful for the axis +labels, titles, and legends of MATLAB graphs. + +The advantage to this approach is that changes can be made to the +EPS file without having to modify any \cs{psfrag} commands in the +\LaTeX\ file. (It is still necessary to \emph{re-compile} the +\LaTeX\ file in such cases, however.) + +There are cautions and disadvantages to this approach, including: +\begin{itemize} +\item Changing the labels created by \cs{tex} commands requires editing + the figure; if you use \cs{psfrag} instead, you need only to edit the + document, which might be less cumbersome. (You must + run \LaTeX\ again in both cases.) +\item Because \cs{tex} commands are long strings, they can extend + past the other graphics in your EPS file. As a result, they can modify + the EPS bounding box in an undesired way. This problem can be mitigated by + reducing the font size of the \cs{tex} string, since this does not affect + the size of its \pfg\ replacement. +\item The \cs{tex} command is not supported in compressed PostScript files. +\item The \TeX\ engine must scan the PostScript file for these strings, + which can add to the processing time of your document. (To be honest, + we have yet to encounter a case where this is a significant concern.) +\item \emph{Important!} Whenever a file is scanned by \pfg, + it generates a file with the name \cs{jobname}\fname{.pfg}, where \cs{jobname} + is the base name of the master \LaTeX\ file. It will overwrite, without + warning, any file with that name. +\end{itemize} + +This feature is no longer enabled automatically, except in \LaTeX\ 2.09 +compatibility mode. So, for \LaTeXe\ documents, you must activate it in one of +two ways: +\begin{itemize} +\item To turn on scanning for a single figure, precede the \cs{epsfbox} + or \cs{includegraphics} command with a call to the command \cs{psfragscanon}. + Scanning will be turned off again when the surrounding environment is + exited; or, you can turn it off explicity with a call to \cs{psfragscanoff}. +\item To turn on scanning for the entire document, pass the option + |scanall| to \fname{psfrag.sty} in the \cs{usepackage} command. +\end{itemize} +The \cs{tex} scanner will continue to be supported in this form. So, if you do +find applications where you prefer the \cs{tex} command, do not hesitate to use +it! + +\section{Package Options} + +There are only four package options for \pfg. Any other options +that are not handled by \pfg\ will be forwarded to +\fname{graphics.sty}. +\begin{description} +\item[|209mode|] (\LaTeXe\ native mode only) forces \pfg\ +to operate exactly as if \LaTeX\ 2.09 compatibility mode was +enabled. As a result, |bl| alignment is the default, and +\cs{tex} scanning is enabled for all EPS files. This option is +useful if you are trying to convert old \LaTeX\ 2.09 documents +to \LaTeXe. + +The \LaTeX 2.09 version of \pfg\ generated an auxiliary +file for each EPS figure containing important replacement information. +These files are no longer used and can be deleted. + +\item[|2emode|] (\LaTeX\ 2.09 compatibility mode only) +forces \pfg\ to remain in \LaTeXe\ mode, even in the presence of a +\LaTeX\ 2.09 document; this is the direct opposite of |209mode|. When +enabled, the default alignment is |Bl|, and \cs{tex} scanning is turned +off by default. + +\item[|scanall|] turns on \cs{tex} scanning by default. Use this +option if most your figures use embedded \cs{tex} commands. + +\item[|debug|] turns on some of the debugging features of PSfrag. It +inserts extra code into the PostScript file that draw the bounding boxes +of each piece of text that is replaced. It is probably not useful to anyone +but the developers of \pfg. +\end{description} + +\section{An Example}\label{sec:example} + +In the following example, we demonstrate how to use \pfg\ with +the MATLAB package. The following MATLAB commands generate a +plot of both a sine wave and a cosine wave, places both simple +tags and \cs{tex} replacements into the figure, and saves the +result as an EPS file \fname{example.eps}. +\begin{verbatim} + t = 0:.1:10; + plot(t,sin(t),t,cos(t)); + axis('square'); grid; + title('\tex[B][B]{Plot of $\sin(t)$ and $\cos(t)$}'); + xlabel('\tex[t][t]{$t$}'); + ylabel('\tex[B][B]{$\sin(t)$, $\cos(t)$}'); + text(t(30),sin(t(30)),'p1'); + text(t(60),sin(t(60)),'p2'); + text(t(90),sin(t(90)),'p2'); + tt=text(t(50),cos(t(50)),'p3'); + set(tt,'HorizontalAlignment','center','VerticalAlignment',... + 'bottom','Rotation',atan2(-sin(t(50))*10,2)*180/pi); + print -deps example +\end{verbatim} +(In MATLAB, the 'text' command defaults to a left-center alignment, +corresponding to a \oarg{psposn} argument of |[l]|.) + +The code below includes \fname{example.eps} into the current document, +resizing it to a width of 3.5 inches. Several \cs{psfrag} +commands are used to replace the tags |p1|, |p2|, and |p3| in +the figure, and the command \cs{psfragscanon} command is used to +notify \pfg\ that it must scan \fname{example.eps} for the +\cs{tex} tags. +\begin{verbatim} + \begin{figure}[tbh] + \unitlength=1in + \begin{center} + \psfragscanon + \psfrag{p1}[l]{\begin{picture}(0,0) + \put(0.15, 0.2){\makebox(0,0)[l]{$\sin(t)$}} + \put(0.1,0.2){\vector(-1,-2){0.1}} + \end{picture}} + \psfrag*{p1}[][l]{$\ast$} + \psfrag{p2}[][l]{$\ast$} + \psfrag{p3}{$\cos(t)$} + \includegraphics[width=3.5in]{example.eps} + \end{center} + \caption{A \textsf{psfrag} example.} + \end{figure} +\end{verbatim} +Note the use of a |picture| environment within the replacement +for |p1|. + +\begin{figure}[tbh] + \unitlength=1in + \begin{center} + \psfragscanon + \psfrag{p1}[l]{\begin{picture}(0,0) + \put(0.15, 0.2){\makebox(0,0)[l]{$\sin(t)$}} + \put(0.1,0.2){\vector(-1,-2){0.1}} + \end{picture}} + \psfrag*{p1}[][l]{$\ast$} + \psfrag{p2}[][l]{$\ast$} + \psfrag{p3}{$\cos(t)$} + \includegraphics[width=3.5in]{example.eps} + \end{center} + \caption{A \pfg\ example.} + \label{fig:example1} +\end{figure} +The result of these two steps is shown in Figure~\ref{fig:example1}. + +\subsection{Figure scaling and resizing} +\label{sec:scaling} + +There are two ways to resize EPS figures with the \pkg{graphics} +package, and each has as different effect on \pfg\ replacements. If you +are used to using \fname{epsf.sty}, you will be accustomed to only one +such behavior. + +If you use the \cs{scalebox} or \cs{resizebox} macros of \fname{graphics.sty}, +then the \pfg\ replacments \emph{will} scale with the figure. This +effect is illustrated in \ref{fig:example2} below. +\begin{figure}[tbh]\unitlength=1in + \begin{center} + \psfragscanon + \psfrag{p1}[l]{\begin{picture}(0,0) + \put(0.15, 0.2){\makebox(0,0)[l]{$\sin(t)$}} + \put(0.1,0.2){\vector(-1,-2){0.1}} + \end{picture}} + \psfrag*{p1}[][l]{$\ast$} + \psfrag{p2}[][l]{$\ast$} + \psfrag{p3}{$\cos(t)$} + \resizebox{3.5in}{!}{\includegraphics{example.eps}} + \end{center} + \caption{The same \pfg\ example as Figure~\ref{fig:example1}, using + \cs{resizebox} to set the width.} + \label{fig:example2} +\end{figure} +Figure~\ref{fig:example2} uses the following command to scale the figure +to 3.5 inches in width: +\begin{verbatim} +\resizebox{3.5in}{!}{\includegraphics{example.eps}} +\end{verbatim} This +is in direct contrast to Figure~\ref{fig:example1}, which uses the +|width=| keyword from the \fname{graphicx.sty}, as follows: +\begin{verbatim} +\includegraphics[width=3.5in]{\includegraphics{example.eps}} +\end{verbatim} +Figure~\ref{fig:example1} also reflects the behavior that +you would see when using the \fname{epsf.sty} macros \cs{epfxsize}, +\cs{epsfysize}, \emph{etc}. In these cases, the \pfg\ text does not +scale with it. to resize the figure. + +As you can see, the text in the second figure is decidedly smaller +than the first. This is because \cs{resizebox} uses PostScript tricks to +scale \emph{all} of the contents of its argument. Since the \cs{psfrag} +commands are not actually typeset until \emph{within} the +\cs{includegraphics} command, they are resized as well. + +The \fname{graphicx.sty} key-value pairs |width=|, |height=|, +and |scale=| scale the figure without scaling the replacement +text, as long as they are supplied \emph{before} an |angle=| +rotation key. Of course, the \cs{resizebox} and \cs{scalebox} +macros are still available in \fname{graphicx.sty}, so you can +mix and match both behaviors as you see fit. See the \pkg{graphics} +documentation for more details. + +If you are still unsure about these distinctions, then try both +methods for scaling your figures until you find a convention that +works best for you. + +\section{Common mistakes, known problems, and bugs} + +\pfg\ is bug-free. + +Well, of course we're kidding. \pfg\ uses some tricky PostScript hacks to +achieve its goals. So it really would not surprise us if you find bugs, If you +find any problems, please confirm they are not mentioned below; and, if not, +report them to te \pfg\ mailing list (see below). + +\subsection{Using \pfg\ tags properly} +\label{sec:tags} + +One of the more frequent problems that people encounter with \pfg\ is that it +replaces \emph{some} of their tags properly, but not all of them. Whenever +possible, you should design your figures \emph{with \pfg\ in mind}, by +following this rule: +\begin{quote} + When adding a piece of text (a \emph{tag}) in a figure for \pfg\ to + replace, use a \emph{single word}, containing only unaccented letters + and numbers. +\end{quote} +This is the way that \pfg\ is intended to be used; doing so will almost +guarantee that \pfg\ works as advertised. Of course, one cannot always follow +this rule; and a small handful of drawing packages consistently cause problems. +Invariably, these problems can be resolved by understanding how \pfg\ looks for +these tags. + +PostScript has five commands to display text---|show|, |ashow|, |kshow|, +|widthshow|, and |awidthshow|---although, in many cases, an EPS file will +define abbreviations of these commands. \pfg\ actually \emph{intercepts} these +commands and checks them for the tags to replace. When the string matches a +known tag, \pfg\ figures out where the tag \emph{would} have been displayed, +and inserts its replacement there. When it doesn't, \pfg\ lets the |*show| +command proceed normally. + +The strings that these |*show| display are delimited with parentheses, much +like the \fname{C} language uses double quotes. For example: +\begin{quote} + |(This is a test.) show| ~~~~~~~~~~~~displays~~~~~~~~~~~~|This is a test.| +\end{quote} +Unmatched parentheses and +certain other special characters must be preceded by a backslash in a +PostScript string. For example: +\begin{quote} + |(x = \(0,1]) show| ~~~~~~~~~~~~displays~~~~~~~~~~~~|x = (0,1]| +\end{quote} + +With this in mind, here is the rule about \pfg\ tags: +\begin{quote} + The tag supplied to the \cs{psfrag} command must be typed \emph{exactly + as it appears in the EPS file's |*show| command}, without the surrounding + parentheses. +\end{quote} +In other words, \pfg\ will work only if the string in the \cs{psfrag} command +exactly duplicates what is found in the EPS file. If your strings have +backslashes added to them, as in the |x = \(0,1]| example, then you will have +to add that backslash to the \cs{psfrag} command as well. And \pfg\ can only +replace \emph{entire} strings, not just parts of one. So if your EPS file +contains +\begin{quote} + |(I want to replace the XXX here) show| +\end{quote} +then the \cs{psfrag} command will fail if you supply just the |XXX|. + +You can use a simple text editor to check things, if you like; EPS files are +(almost always) just simple ASCII files. + +Unfortunately, some drawing packages display text by sending each character +\emph{individually} to a |show| command. In other words, if you use the +drawing tool to put the string ``test'' in your figure, it will do something like this: +\begin{quote} + |(t) show (e) show (s) show (t) show | +\end{quote} +If this is true in your case, we apologize; it makes using \pfg\ much more +inconvenient---you will be limited to single-character tags. Such tools +also prevent the use of the \cs{tex} command. + +\subsection{Problems using some \pkg{xfig} figures} + +\pfg\ does not work with \pkg{xfig} figures that use ``pattern fills.'' When +painting/filling a polygon, \pkg{xfig} provides a number of choices: simple +colors or grey levels, or a number of patterns like cross-hatches, checkers, +\etc\ Unfortunately, using a pattern fill in a figure processed by \pfg\ results +in PostScript files that will not print. + +Fortunately, there are workarounds: +\begin{enumerate} + \item Avoid pattern fills in your \pkg{xfig} figures; use simple + colors (or greys) instead. Consult the \pkg{xfig} documentation + for details. + \item Open the offending \fname{.eps} file (generated by \pkg{fig2dev} + or \pkg{xfig}'s ``export'' command) with your favorite text editor. + Look for the definition \pscom{PATfill} command; inside this + subroutine, replace \pscom{show} with \pscom{oldshow} (there is only + one occurrence). +\end{enumerate} +For those PostScript hackers out there: both \pfg\ and \pkg{xfig} redefine the +PostScript \pscom{show} command. \pscom{oldshow} is where \pkg{xfig} stores the +``old'' version of the command. If you can determine why this fix works, and +convince the \pkg{xfig} maintainers to make the change; or, if you can suggest +a fix for \pfg, please do. + +\subsection{Problems using old versions of the \pkg{seminar} package} +\label{sec:sem-bug} + +The popular \pkg{seminar} package was, for awhile, incompatbile with PSfrag +3.0. This is due to the fact that PSfrag relies on certain features of the +\LaTeXe\ output routine, while \pkg{seminar} still uses one largely borrowed +from \LaTeX\ 2.09. + +The best solution for this problem is to make sure that you have the latest +version of the \pkg{seminar} package, which can be retrieved from any CTAN +site, likely from the same place you found \pfg. A web page for \pkg{seminar} +can be found at \fname{http://www.tug.org/applications/Seminar/}. The +1997/10/13 version seems to have corrected the problem. + +If for some reason you are forced to use an older version, there is a +temporary, \pkg{dvips}-specific fix: add the command +|\special{header=psfrag.pro}| just before |\begin{document}| in your \LaTeX\ +file. + +\section{The \pfg\ mailing list} +\label{sec:mail} + +There is a Majorodomo mailing list for purposes of \pfg\ maintenance. +It \emph{is not} intended to replace this manual or a small amount of +educated guesswork. But, it \emph{is} the perfect place for bug reports, +development ideas, and so forth. Anyone who wishes to assist in +\pfg's evolution may subscribe; to do so, just send mail to +\begin{quote} + \netaddress{majordomo@rascals.stanford.edu} +\end{quote} +with the line |subscribe psfrag| in the \emph{body} of the text. + +Bug supports, ideas, \emph{etc.} should go to +\begin{quote} + \netaddress{psfrag@rascals.stanford.edu}. +\end{quote} +If you have found a bug to report, please provide us with the +necessary files (a \LaTeX\ file, the EPS figures, \etc) so we can +test it out ourselves! Try to provide us with the shortest +self-contained example that demonstrates your bug. If this is not +possible, drop us a line first. + +\end{document} diff --git a/support/easylatex/psfrag/psfrag.dtx b/support/easylatex/psfrag/psfrag.dtx new file mode 100644 index 0000000000..e2baef58f9 --- /dev/null +++ b/support/easylatex/psfrag/psfrag.dtx @@ -0,0 +1,1102 @@ +% +% \iffalse +% psfrag.dtx Copyright (C) 1996 Craig Barratt, Michael C. Grant, +% and David Carlisle. +% All rights are reserved. +% +% This system is distributed in the hope that it will be +% useful, but WITHOUT ANY WARRANTY; without even the +% implied warranty of MERCHANTABILITY or FITNESS FOR A +% PARTICULAR PURPOSE. Don't come complaining to us if you +% modify this file and it doesn't work! If this file is +% modified by anyone but the authors, those changes and +% their authors must be explicitly stated HERE. +% +%<package>\NeedsTeXFormat{LaTeX2e}[1995/12/01] +%<package>\ProvidesPackage{psfrag}[1998/04/11 v3.04 PSfrag (MCG)] +% \fi +% +% \iffalse +%<*driver> +\documentclass{ltxdoc} +\usepackage{graphicx,psfrag} +\begin{document} + \DocInput{psfrag.dtx} +\end{document} +%</driver> +% \fi +% +% \GetFileInfo{psfrag.sty} +% \RecordChanges +% +% \let\pkg\textsf +% \let\fname\texttt +% \let\pscom\texttt +% \newcommand{\pfg}{\textsf{PSfrag}} +% \newcommand{\bsl}{\protect\bslash} +% \newcommand{\ie}{\emph{i.e.}} +% \newcommand{\eg}{\emph{e.g.}} +% \newcommand{\etc}{\emph{etc.}} +% \newcommand{\netaddress}[1]{\texttt{#1}} +% \marginparsep 0pt +% +% \title{\fname{psfrag.sty} and \fname{psfrag.pro}%^^A +% \thanks{This file has version number \fileversion, +% last revised \filedate.}} +% +% \author{Michael Grant, David Carlisle, and Craig Barratt \\ +% \netaddress{psfrag@rascals.stanford.edu}} +% \date{\filedate} +% \maketitle +% \PrintChanges +% +% \changes{3.04}{1998/04/11}{Made some (theoretically) back-compatible +% changes to \fname{psfrag.pro} which should make it more friendly +% to EPS and page-manipulation packages like \pkg{psnup}. Fixed +% orientation problem for DVIPSone. Added support for EPS files +% as \pfg\ replacements.} +% \changes{3.03}{1997/01/21}{Fixed some typographical errors that +% broke the \pscom{awidthshow} command. Improved the scanner to +% handle multi-line \cs{tex} commands. Fixed a bug in the +% \pscom{replace} command which would break some legal EPS files.} +% \changes{3.02}{1996/12/06}{Continued to improve the transformation +% code to make it more robust to rotations and odd scaling. +% Improved the range of strings accepted as PSfrag tags.} +% \changes{3.01}{1996/11/26}{Expanded the PSfrag dictionary +% for Level 1 printers. Fixed bugs that produce incorrect output +% for rotated figures. Output should now print properly when +% combined with page-manipulation programs like \pkg{psnup}.} +% \changes{3.0}{1996/10/31}{Major rewrite. Elimination of the +% preprocessing step, deprecation of the \pscom{tex} command. I've +% wiped most of the source-level change entries as a result.} +% \changes{2.0}{1995/04/04}{Bug fixes} +% \changes{2.0}{1995/03/14}{Bug fixes. Better support for \LaTeX\ 2.09 +% \pfg\ files, including both naming schemes. Improved +% documentation and separated it from this file.} +% \changes{1.99}{1995/02/14}{Taken over from Craig, completely +% overhauled for \LaTeXe. Completely changed the placement code; +% baseline alignment added. Integrated \pscom{psfrag} commands into +% the PostScript file. \textsf{graphics} package used for +% portability across multiple DVI-to-PostScript packages. +% Improved ps2frag.ps file provides improved (correct) support +% for ashow, widthshow, awidthshow, and kshow.} +% \changes{1.1}{1992/10/20}{Released version 1.1, adding support for +% ashow, widthshow, awidthshow, and kshow.} +% \changes{1.0}{1992/06/01}{Released version 1.0.} +% +% \section{\fname{psfrag.sty}} +% +% \begin{macrocode} +%<*package> +% \end{macrocode} +% +% \subsection{Intialization} +% +% \begin{macrocode} +\newif\ifpfg@compat +\newif\ifpfg@prepass +\newif\ifpfg@debug \pfg@debugfalse +\if@compatibility + \pfg@compattrue\pfg@prepasstrue +\else + \pfg@compatfalse\pfg@prepassfalse +\fi +\def\psfragscanon{\pfg@prepasstrue} +\def\psfragscanoff{\pfg@prepassfalse} +\def\psfragdebugon{\pfg@debugtrue} +\def\psfragdebugoff{\pfg@debugfalse} +% \end{macrocode} +% +% \begin{macrocode} +\DeclareOption{scanall}{\pfg@prepasstrue} +\DeclareOption{2emode}{\pfg@compatfalse\pfg@prepassfalse} +\DeclareOption{209mode}{\pfg@compattrue\pfg@prepasstrue} +\DeclareOption{debugshow}{\pfg@debugtrue + \PassOptionsToPackage\CurrentOption{graphics}} +\DeclareOption*{\PassOptionsToPackage\CurrentOption{graphics}} +\ProcessOptions +% \end{macrocode} +% +% \fname{psfrag.sty} requires the \pkg{graphics} package and the +% support file \fname{psfrag.pro}. (\fname{epsf.sty} can still be +% used,but \pkg{graphics} package is still used for internal +% purposes.) To load \fname{psfrag.pro} in a portable way, we provide +% and use the \cs{Gin@PS@file@header} command, which the +% \pkg{graphics} will eventually provide for us. +% \changes{3.01}{1996/11/25}{Added the \cs{AtBeginDocument} command +% to save some important global transformation information.} +% \changes{3.02}{1996/12/03}{Deleted this \cs{AtBeginDocument} info; +% see \cs{pfg@orient}.} +% \begin{macrocode} +\RequirePackage{graphics} +\providecommand\Gin@PS@file@header[1]{\AtBeginDvi{\special{header=#1}}} +\Gin@PS@file@header{psfrag.pro} +% \end{macrocode} +% +% \begin{macro}{\pfg@orient} +% In order to properly handle all cases of rotation, scaling, +% \etc\ that \pfg\ may encounter, it is necessary that we know a bit +% about the transformations that the DVI to PS driver uses itself. +% Specifically, we need to know what transformations, if any, the +% DVI to PS driver appends to PostScript's \pscom{defaultmatrix} +% before it starts to typeset text. At the moment, all of the drivers +% which work with \pfg\ reverse the orientation of the $y$ axis; +% new drivers may not. But until we can find a portable way to make +% this determination in PostScript itself, we have to supply that +% information here. +% \changes{3.02}{1996/12/03}{Created. Added \pkg{dvips} and +% \pkg{textures} as ``$y$-reversers.''} +% \changes{3.04}{1998/04/11}{\pkg{dvipsone} now uses the same +% orientation as \pkg{dvips}, so we added a line for it here.} +% \begin{macrocode} +\def\pfg@orient{1} +\def\@tempa{dvipsone.def}\ifx\Gin@driver\@tempa\def\pfg@orient{-1}\fi% +\def\@tempa{dvips.def}\ifx\Gin@driver\@tempa\def\pfg@orient{-1}\fi% +\def\@tempa{textures.def}\ifx\Gin@driver\@tempa\def\pfg@orient{-1}\fi% +% \end{macrocode} +% \end{macro} +% +% \subsection{Interface to the \pkg{graphics} +% and \pkg{epsf} packages} +% +% \begin{macro}{\pfg@epsfbox} +% The original definition of \cs{epsfbox} from \pkg{epsf.sty} or \pkg{graphics}. +% \begin{macro}{\pfg@Ginclude@eps} +% The original definition of \cs{Ginclude@eps} from \pkg{graphics}, +% the key routine inside the \cs{includegraphics} routine for EPS files. +% +% Below we redefine these two commands to add \pfg\ functionality. +% \begin{macrocode} +\let\pfg@epsfbox\epsfbox +\let\pfg@Ginclude@eps\Ginclude@eps +% \end{macrocode} +% \end{macro}\end{macro} +% +% \begin{macro}{\pfg@pcount} +% Counts how many fragments are active in the current figure. +% \begin{macro}{\pfg@scount} +% Counts how many replacements strings are active in the current +% figure. +% +% Since it is possible for a single string to accept multiple +% replacements, \cs{pfg@scount} $\le$ \cs{pfg@pcount}. +% \begin{macrocode} +\newcount\pfg@pcount \pfg@pcount=\z@ +\newcount\pfg@scount \pfg@scount=\z@ +% \end{macrocode} +% \end{macro}\end{macro} +% +% \begin{macro}{\epsfbox} +% Here we intercept calls to \cs{epsfbox} and wrap them with the +% \pfg\ processing. The first thing we do is revert \cs{epsfbox} +% and \cs{Ginclude@eps} back to their original definitions, to +% prevent recursion---which could occur if some of the replacements +% are themselves EPS files. +% \changes{3.04}{1998/04/11} +% {Improved the recursion protection by reverting +% \cs{epsfbox} and \cs{Ginclude@eps} back to their original +% definitions within the block. Deleted \cs{ifpfg@epsf}, which +% is no longer needed in this new system.} +% \begin{macrocode} +\def\epsfbox#1{% + \begingroup + \let\Ginclude@eps\pfg@Ginclude@eps + \let\epsfbox\pfg@epsfbox + \ifpfg@prepass\pfg@scan{#1}\fi + \ifnum\pfg@scount>\z@\pfg@hidestart\fi + \pfg@epsfbox{#1}% + \ifnum\pfg@scount>\z@\pfg@hideend\fi + \endgroup} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\Ginclude@eps} +% We need to override this function from the \pkg{graphics} +% package in a similar fashion to \cs{epsfbox}. As we did for +% \cs{epsfbox}, we revert \cs{epsfbox} and \cs{Ginclude@eps} +% back to their original definitions in order to prevent recursion. +% \changes{3.01}{1996/11/26} +% {Added the \cs{pfg@hideinit} functionality.} +% \changes{3.02}{1996/12/01} +% {Removed \cs{pfg@hideinit}.} +% \changes{3.04}{1998/04/11} +% {Improved the recursion protection by reverting +% \cs{epsfbox} and \cs{Ginclude@eps} back to their original +% definitions within the block.} +% \begin{macrocode} +\def\Ginclude@eps#1{% + \begingroup + \let\Ginclude@eps\pfg@Ginclude@eps + \let\epsfbox\pfg@epsfbox + \ifpfg@prepass\pfg@scan{#1}\fi + \ifnum\pfg@scount>\z@\pfg@hidestart\fi + \pfg@Ginclude@eps{#1}% + \ifnum\pfg@scount>\z@\pfg@hideend\fi + \endgroup} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{psfrags} +% Defines a dummy environment to delimit the scope of \pfg\ +% replacements. +% \begin{macrocode} +\newenvironment{psfrags}{\ignorespaces}{\global\@ignoretrue} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\psfragspecial} +% This macro is no longer supported. +% \begin{macrocode} +\ifpfg@compat +\def\psfragspecial#1#2#3#4#5#6{% + \PackageError{PSfrag}% + {\string\psfragspecial no longer implemented.}{}} +\fi +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\psfrag} +% \marg{tag}\oarg{posn}\oarg{psposn}\oarg{scl}\oarg{rot}\\ +% The main macro \cs{psfrag} must be defined specially in order +% to handle its odd combination of optional and required arguments. +% In addition, catcode tricks (thanks to David Carlisle and others) +% allow special characters to be used inside the tag text. It also +% replaces spaces with their octal equivalents to prevent drivers +% like \pkg{dvips} from breaking one in the middle. +% \changes{3.01}{1996/11/26}{Now changes every space in the tag +% text by its octal code. Some DVI to PS drivers were breaking the +% strings onto multiple lines; this should prevent that from happening.} +% \changes{3.01}{1996/11/26}{Removed octal code in favour of convert +% routine in the prologue} +% \changes{3.03}{1997/1/6}{Added another ``special'' character.} +% \begin{macrocode} +\newif\ifpfg@star +\def\psfrag{\@ifstar{\pfg@startrue\@psfraga}{\pfg@starfalse\@psfraga}} +% \end{macrocode} +% +% \begin{macrocode} +\def\@psfraga{\begingroup + \@makeother\"\@makeother\*\@makeother\!\@makeother\~% + \@makeother\:\@makeother\\\@makeother\%\@makeother\#% + \@makeother\ \@psfragb} +% \end{macrocode} +% +% \begin{macrocode} +\ifpfg@compat +\def\@psfragb#1{\xdef\@gtempa{#1}\endgroup + \@ifnextchar[{\@psfragc{\@gtempa}}% + {\@psfrag{\@gtempa}[bl][bl][1][0]}} +\def\@psfragc#1[#2]{\@ifnextchar [{\@psfragd{#1}[#2]}% + {\@psfrag{#1}[#2][bl][1][0]}} +% \end{macrocode} +% +% \begin{macrocode} +\else +\def\@psfragb#1{\xdef\@gtempa{#1}\endgroup + \@ifnextchar [{\@psfragc{\@gtempa}}% + {\@psfrag{\@gtempa}[Bl][Bl][1][0]}} +\def\@psfragc#1[#2]{\@ifnextchar [{\@psfragd{#1}[#2]}% + {\@psfrag{#1}[#2][Bl][1][0]}} +\fi +% \end{macrocode} +% +% \begin{macrocode} +\def\@psfragd#1[#2][#3]{\@ifnextchar [{\@psfrage{#1}[#2][#3]}% + {\@psfrag{#1}[#2][#3][1][0]}} +\def\@psfrage#1[#2][#3][#4]{\@ifnextchar [{\@psfrag{#1}[#2][#3][#4]}% + {\@psfrag{#1}[#2][#3][#4][0]}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@psfrag}\marg{tag}\\ +% Now that we have all of the arguments, we need to check to check to +% see if the string has been used yet; if not, increment the string +% count and create a place for the new string. Then pass the string +% number on down the line to \cs{@@psfrag}. +% \begin{macrocode} +\def\pfg@newstring#1.#2{% + \@nameedef{pfg@using@#2}{#1}% + \pfg@starfalse\advance\pfg@scount\@ne} +% \end{macrocode} +% +% \begin{macrocode} +\def\@psfrag#1{% + \@ifundefined{pfg@using@#1}% + {\expandafter\pfg@newstring\the\pfg@scount.{#1}}% + {}% + \edef\@tempa{\@nameuse{pfg@using@#1}}% + \expandafter\@@psfrag\@tempa.{#1}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@@psfrag}\marg{tag-key}.\marg{tag}\\ +% \cs{@@psfrag} passes along the current \emph{replacement} number to +% to \cs{@@@psfrag}, which is doing all of the dirty work. +% \begin{macrocode} +\def\@@psfrag{\expandafter\@@@psfrag\the\pfg@pcount.} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@@@psfrag} +% \marg{repl-key}.\marg{tag-key}.\marg{tag}\oarg{posn}% +% \oarg{psposn}\oarg{scl}\oarg{rot}\oarg{repl} +% \begin{macro}{\pfg@align}\marg{tag-key}. +% \begin{macro}{\pfg@place}\marg{repl-key}.\\ +% \cs{@@@psfrag}, armed with numeric keys for the tag string and the +% replacement, creates a \cs{pfg@place} procedure call for this +% fragment and appends the control point, scale, and rotation +% information to the proper tag's list, found in +% \cs{pfg@align\emph{<tag-key>}.} +% \changes{3.01}{1996/11/26}{Added some extra spaces in +% \cs{pfg@align@} to encourage more benevlolent line-breaking +% by DVI to PS drivers.} +% \begin{macrocode} +\def\@nameedef#1#2{\expandafter\edef\csname #1\endcsname{#2}} +% \end{macrocode} +% +% \begin{macrocode} +\def\@@@psfrag#1.#2.#3[#4][#5][#6][#7]#8{% + \advance\pfg@pcount\@ne + \ifpfg@star\else\@nameedef{pfg@align@#2}{(#3)[}\fi + \@nameedef{pfg@align@#2}{\@nameuse{pfg@align@#2}[#1(#5)#6 #7]}% + \@namedef{pfg@place@#1}{\pfg@@place{#1}{#4}{#8}}\ignorespaces} +% \end{macrocode} +% +% \begin{macrocode} +\def\pfg@align#1.{\@nameuse{pfg@align@#1}} +\def\pfg@place#1.{\@nameuse{pfg@place@#1}} +% \end{macrocode} +% \end{macro}\end{macro}\end{macro} +% +% \subsection{Fragment processing} +% +% \begin{macro}{\pfg@hidestart} +% This procedure provides PostScript with a list of the strings that +% \pfg\ would like to replace, and the control points, scales, and +% rotations of each one. The PostScript code in \fname{psfrag.pro} +% will use this information to construct transformation matrices for +% each replacement to move them into proper position. +% \changes{3.01}{1996/11/26}{Moved the \pkg{xdvi} stub to +% \cs{pfg@hideinit}}. +% \changes{3.02}{1996/12/01}{Moved it back.} +% \begin{macrocode} +\def\pfg@hidestart{% + \def\pfg@{}\count@=\z@\loop\ifnum\count@<\pfg@scount + \toks@=\expandafter{\expandafter\pfg@align\the\count@.}% + \edef\pfg@{\pfg@\the\toks@]}% + \advance\count@ by\@ne\repeat + \Gin@PS@raw{/PSfrag where{pop\pfg@\the\pfg@scount\space + \ifpfg@debug1\else0\fi\space\pfg@orient/Begin + PSfrag}{userdict /PSfrag{pop}put}ifelse}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\pfg@hideend} +% Now that the EPS file has been loaded, and (therefore) all of the +% replacement positions have been determined, move each replacement +% to its proper position by calling the \cs{pfg@place} procedure for +% each one. Except for the calls to \cs{Gin@PS@raw}, it looks like +% we're building a vertical list of the replacements: that's the idea, +% because we want it to look decent when viewed by a DVI viewer. +% \begin{macrocode} +\def\pfg@hideend{% + \Gin@PS@raw{/End PSfrag}% + \vbox to\z@{\vss + \Gin@PS@raw{/Hide PSfrag}% + \hbox to\z@{\hss \raisebox{\depth}{% + \underline{PSfrag replacements}}}% + \Gin@PS@raw{/Unhide PSfrag}% + \count@=\z@\loop\ifnum\count@<\pfg@pcount + \expandafter\pfg@place\the\count@.% + \advance\count@ by\@ne\repeat}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\pfg@@place} +% \marg{repl-key}\marg{posn}\marg{replacement}\\ +% The following macro does the dirty work. Its job is to insert the +% appropriate code so that the \TeX\ replacement is transformed to +% its requested location; and, if desired, repeated for as many times +% as the PostScript tag text appeared in the figure. +% +% It performs this magic by first surrounding the \TeX-produced code +% in curly braces, so we can defer its execution while we figure out +% where to place it. Then, we call the \pscom{Place} routine in +% \fname{psfrag.pro}, which takes \marg{repl-key} +% and provides the proper coordinate transformations. +% +% We're allowed to reassign these dimension registers because we are +% always inside a group when we use them. This technique is taken from +% \fname{graphics.sty}... +% \begin{macrocode} +\let\pfg@dp\leftmargini\let\pfg@wd\leftmarginii +\let\pfg@dx\leftmarginiii\let\pfg@dy\leftmarginiv +% \end{macrocode} +% We need to stuff the curly braces into macros. +% \begin{macrocode} +\edef\pfg@bchar{ \string{ } +\edef\pfg@echar{ \string} } +\def\pfg@@place#1#2#3{\begingroup +% \end{macrocode} +% Typeset the replacement into a box and determine its dimensions. +% \begin{macrocode} + \sbox\z@{#3}% + \dimen@=\ht\z@ \advance\dimen@ by\dp\z@% +% \end{macrocode} +% Determine the desired alignment of the \TeX\ box, and the glue +% that will be needed in order to achieve this alignment. +% \begin{macrocode} + \pfg@wd=0.5\wd\z@\pfg@dp=0.5\dimen@ + \pfg@dx=\pfg@wd\pfg@dy=\pfg@dp + \@tfor\@tempa:=#2\do{% + \if l\@tempa \pfg@dx=\z@ \pfg@wd=\wd\z@ \else + \if r\@tempa \pfg@dx=\wd\z@ \pfg@wd=\z@ \else + \if b\@tempa \pfg@dy=\z@ \pfg@dp=\z@ \else + \if t\@tempa \pfg@dy=\dimen@\pfg@dp=\dimen@\else + \if B\@tempa \pfg@dy=\dp\z@ \pfg@dp=\dp\z@ \fi\fi\fi\fi\fi}% +% \end{macrocode} +% Create a zero-area box with the desired \pfg\ replacement +% text typeset inside of it (and aligned with the glue). This +% is actually the box that will be moved, rotated, and/or scaled. +% \begin{macrocode} + \setbox\z@\hbox to\z@{\hskip-\pfg@dx\box\z@\hss}% + \setbox\z@\vbox to\z@{\vss\box\z@\vskip-\pfg@dy}% +% \end{macrocode} +% Typeset the box. The inner, zero-size box is the one we place +% with the PostScript code, and the outer, full-height, right-\ +% justified box is the one that we use to stack up the preview +% list. +% \begin{macrocode} + \vbox to\dimen@{\vss\hbox to\z@{\hss + \Gin@PS@raw{\pfg@bchar}\box\z@ + \Gin@PS@raw{\pfg@echar#1/Place PSfrag}% + \hskip\pfg@wd}\vskip\pfg@dp}% + \endgroup} +% \end{macrocode} +% \end{macro} +% +% \begin{macrocode} +%</package> +%<*filepro> +% \end{macrocode} +% +% \section{The PostScript library, \fname{psfrag.pro}} +% This code must perform two functions: 1) determine and save the +% alignment point, rotation, and scaling for each piece of PostScript +% text that is going to serve as a \pfg\ tag; and 2) use that +% information to properly transform the coordinate system for each +% \TeX\ replacement. +% +% The only two symbols that we define globally are \pscom{PSfragLib}, +% the library of support routines, \pscom{PSfragDict}, the dictionary +% containing the ``magic'' \pscom{show} commands, +% and \pscom{PSfrag}, the gateway from +% the global namespace to \pscom{PSfragLib}. This technique minimizes +% the possibility that our procedure names will conflict with those +% defined by the PostScript driver or the figure itself. +% \changes{3.02}{1996/12/03}{Added code to insure that \pscom{PSfragLib} +% and \pscom{PSfrag} are stored in \pscom{userdict}. Some cruel DVI to +% PostScript drivers try and force these into their own dictionary. Also +% moved \pscom{PSfragDict} out of \pscom{PSfragLib}.} +% \begin{macrocode} +userdict begin +/PSfragLib 90 dict def +/PSfragDict 6 dict def +/PSfrag { PSfragLib begin load exec end } bind def +end +% \end{macrocode} +% +% \begin{macro}{PSfragLib} +% \pscom{PSfragLib} is the dictionary with the meaty stuff. We're also +% defining some useful abbreviations. Of note is the \pscom{OE} command +% (``outside exec''), which executes some code after removing +% \pscom{PSfragLib} from the stack (to insure that there are no +% collisions with \pscom{PSfragLib}'s internal names. +% \changes{3.01}{1996/11/26}{Fixed \pscom{islev2}.} +% \changes{3.02}{1996/12/03}{Added \pscom{readonly} to \pscom{BD} to +% help insure that this dictionary isn't being trampled on.} +% \changes{3.02}{1996/12/03}{Added some abbreviations.} +% \changes{3.04}{1998/04/11}{Added the default definition of \pscom{S} to +% avert potential problems if it is defined elsewhere. Thanks again to +% J. Scott Berg for this fix.} +% \begin{macrocode} +PSfragLib begin +/RO /readonly load def +/CP /currentpoint load def +/CM /currentmatrix load def +/B { bind RO def } bind def +/X { exch def } B +/MD { { X } forall } B +/OE { end exec PSfragLib begin } B +/S false def +/tstr 8 string def +/islev2 { languagelevel } stopped { false } { 2 ge } ifelse def +% \end{macrocode} +% Allocate some space for matrices that we will use frequently. +% \pscom{sM} is the matrix we encounter at the time this library +% is defined; this should theoretically be \pscom{initmatrix}, unless +% we are in an EPS/psnup situation. +% \pscom{srcFM} contains a matrix which describes the difference +% between PostScript's \pscom{defaultmatrix} and the transformation +% defined by the DVI-to-PS driver's ``default matrix.'' This information +% is crucial to the proper placing of the \pfg\ replacements. +% \changes{3.02}{1996/12/01}{Changed the names to be a tiny bit +% more descriptive, and added a couple.} +% \changes{3.02}{1996/12/03}{Added the \pscom{readonly} commands.} +% \changes{3.04}{1998/04/11}{Added \pscom{sM}, which stores the +% \pscom{currentmatrix} found at the time \pscom{PSfragLib} is defined. +% See the \pscom{replace} command for its use. Thanks to J. Scott Berg.} +% \begin{macrocode} +[ /sM /tM /srcM /dstM /dM /idM /srcFM /dstFM ] { matrix def } forall +sM currentmatrix RO pop +dM defaultmatrix RO idM invertmatrix RO pop +srcFM identmatrix pop +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{Hide} +% \begin{macro}{Unhide} +% Surrounding a (fairly) arbitrary piece of PostScript code with calls +% to \pscom{Hide} and \pscom{Unhide} should render it invisible. +% \pfg\ uses these calls to hide unused replacements. Note that we are +% assuming that the DVI-to-PS driver isn't relying on any of the +% information that will be wiped out by the \pscom{grestore}, except +% for the \pscom{currentpoint}. +% \begin{macrocode} +/Hide { gsave { CP } stopped not newpath clip { moveto } if } B +/Unhide { { CP } stopped not grestore { moveto } if } B +% \end{macrocode} +% \end{macro}\end{macro} +% +% \begin{macro}{setrepl} +% \begin{macro}{getrepl} +% These macros are defined differently for Level 1 and Level 2 +% PostScript. \pscom{setrepl} accepts an array of N elements, +% followed by the length N, and store them in a global variable (or +% the equivalent) for later use. \pscom{getrepl} restores that exact +% information to the stack. This is used to store the replacement +% information in a persistent fashion. +% \begin{macrocode} +/setrepl islev2 {{ /glob currentglobal def true setglobal array astore + globaldict exch /PSfrags exch put glob setglobal }} + {{ array astore /PSfrags X }} ifelse B +/getrepl islev2 {{ globaldict /PSfrags get aload length }} + {{ PSfrags aload length }} ifelse B +% \end{macrocode} +% \end{macro}\end{macro} +% +% \begin{macro}{convert} +% This routine takes a string and replaces every character whose +% ASCII code is less than 32 with a space. This makes the replacement +% dictionary robust to multiple-line tags, etc. +% \begin{macrocode} +/convert { + /src X src length string + /c 0 def src length { + dup c src c get dup 32 lt { pop 32 } if put /c c 1 add def + } repeat +} B +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{Begin} +% \pfg\ calls this routine once per figure, once it has placed +% on the stack all of each tag's alignment, rotation, and scaling +% information. This information is collected into a dictionary: +% each tag has an entry which is an array of [ repl-key, (psposn), +% scl, rot ] quads. Then it saves the current transformation +% information in a form ready for \pscom{/replace} to use. +% \changes{3.02}{1996/12/03}{\pscom{PSfragDict} now goes at the +% \emph{bottom} of the read-write portion of the dictionary stack, +% to insure that it does not conflict with dictionary manipulation +% by the EPS file or the DVI to PS driver.} +% \changes{3.02}{1996/12/03}{Changes to account for transformation +% rearrangement; see \pscom{/replace}.} +% \begin{macrocode} +/Begin { + /saver save def + srcFM exch 3 exch put + 0 ne /debugMode X 0 setrepl + dup /S exch dict def { S 3 1 roll exch convert exch put } repeat + srcM CM dup invertmatrix pop + mark { currentdict { end } stopped { pop exit } if } loop + PSfragDict counttomark { begin } repeat pop +} B +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{End} +% End converts the alignment information that has been collected +% into a dictionary: each repl-key that was encountered in +% \pscom{Begin} has an entry which is an array of +% transformation matrices. +% \changes{3.02}{1996/12/03}{Changes to the dictionary placement +% as discussed in \pscom{/Begin}.} +% \begin{macrocode} +/End { + mark { currentdict end dup PSfragDict eq { pop exit } if } loop + counttomark { begin } repeat pop + getrepl saver restore + 7 idiv dup /S exch dict def { + 6 array astore /mtrx X tstr cvs /K X + S K [ S K known { S K get aload pop } if mtrx ] put + } repeat +} B +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{Place} +% This macro is called once for each \pfg\ replacement. It checks to +% see if the replacement's tag was actually encountered in the PS +% figure; if not, it surrounds the code in a ``clip all'' context and +% executes it. This makes it invisible, as requested, but still allows +% it to run so that any side effects that the code may have will take +% place. +% +% If the replacement's tag \emph{was} encountered, however, it +% retrieves the transformation matrix that was calculated for it; it +% prepends this calculation to the current (\TeX) transformation matrix +% (some tricky math to wade through there!), and then draws the +% replacement. +% +% If there are multiple copies of the replacement to be laid down, +% this will do it, surrounding all but the last replacement in a +% \pscom{save}-\pscom{restore} pair. This \pscom{save}-\pscom{restore} +% pair may slow things down, but theoretically it is necessary, +% because the procedure might modify other variables in the PostScript +% namespace. We need to be sure that those modifications do not +% ``accumulate''. +% +% For multiple replacements to work, the code that \pfg\ surrounds with +% curly braces must leave the stack the same way it found it. So far, +% we have confirmed this fact for \pkg{dvips} and \pkg{DVIPSONE}. +% \changes{3.02}{1996/12/03}{Changes to account for transformation +% rearrangement; see \pscom{/replace}.} +% \begin{macrocode} +/Place { + tstr cvs /K X + S K known { + bind /proc X tM CM pop + CP /cY X /cX X + 0 0 transform idtransform neg /aY X neg /aX X + S K get dup length /maxiter X + /iter 1 def { + iter maxiter ne { /saver save def } if + tM setmatrix aX aY translate + [ exch aload pop idtransform ] concat + cX neg cY neg translate cX cY moveto + /proc load OE + iter maxiter ne { saver restore /iter iter 1 add def } if + } forall + /noXY { CP /cY X /cX X } stopped def + tM setmatrix noXY { newpath } { cX cY moveto } ifelse + } { + Hide OE Unhide + } ifelse +} B +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{normalize} +% This function accepts three numbers, $x$, $y$, and $s$, and returns +% $sx/\sqrt{x^2+y^2}$ and $sy/\sqrt{x^2+y^2}$. +% \begin{macrocode} +/normalize { + 2 index dup mul 2 index dup mul add sqrt div + dup 4 -1 roll exch mul 3 1 roll mul +} B +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{replace} +% This routine is called for every string in the string list. It +% must determine the translation, scaling, and rotation necessary to +% move a piece of \TeX code to the proper orientation. It stores in +% \pscom{replArray}, for each alignment/scale/rotation combination, a +% transformation matrix that achieves this. +% \begin{macrocode} +/replace { + aload pop MD +% \end{macrocode} +% Trace out the text and determine its bounding box. We need to +% temporarily revert to an identity transformation matrix, so that +% we can be sure to get the tightest bounding box possible. If the +% text is rotated, the bounding box that PostScript produces with the +% \pscom{pathbbox} command is not optimal. +% +% We also need to save the position of the point following the text +% placement, and move to that position when we've finished, to fool +% the PS interpreter into thinking we actually drew that text. +% \changes{3.01}{1996/11/22}{Modified this transformation to put the +% beginning of the text at the origin, and forced its width to be +% $\sim5$ in. Some figures were using coordinate systems that were +% so ``large'' that they would break PostScript with +% ``limitcheck'' errors here.} +% \changes{3.01}{1996/12/03}{The added transformation is no longer +% ``slipped under'' the CTM, but now it is more properly appended. +% this should allow the replacements to move properly if the entire +% figure is rotated or transformed. This required changes throughout +% the code, but primarily here.} +% \changes{3.03}{1997/01/06}{Added a \pscom{gsave}/\pscom{grestore} +% pair around the bounding-box calculations. I thought I was being +% clever by avoiding it; but it wasn't infallible, so I was wrong.} +% \changes{3.04}{1998/04/11}{Changed \pscom{initmatrix} to \pscom{sM} +% \pscom{setmatrix}, to be more EPS-friendly. Thanks to J. Scott Berg.} +% \begin{macrocode} + CP /bY X /lX X gsave sM setmatrix + str stringwidth abs exch abs add dup 0 eq + { pop } { 360 exch div dup scale } ifelse + lX neg bY neg translate newpath lX bY moveto + str { /ch X ( ) dup 0 ch put false charpath ch Kproc } forall + flattenpath pathbbox [ /uY /uX /lY /lX ] MD + CP grestore moveto +% \end{macrocode} +% If the FontMatrix shows that the font is draw in the opposite X or +% opposite Y direction, then the X or Y coordinates of the bounding +% box, respectively, need to be swapped. This actually occurs quite +% often. Here we also determine the center of the box. +% \begin{macrocode} + currentfont /FontMatrix get dstFM copy dup + 0 get 0 lt { uX lX /uX X /lX X } if + 3 get 0 lt { uY lY /uY X /lY X } if + /cX uX lX add 0.5 mul def + /cY uY lY add 0.5 mul def +% \end{macrocode} +% If debug mode has been enabled, we draw the bounding box, the +% baseline, and the center lines of the text. +% \begin{macrocode} + debugMode { gsave 0 setgray 1 setlinewidth + lX lY moveto lX uY lineto uX uY lineto uX lY lineto closepath + lX bY moveto uX bY lineto lX cY moveto uX cY lineto + cX lY moveto cX uY lineto stroke + grestore } if +% \end{macrocode} +% Add each replacement's alignment to \pscom{replArray}. +% \changes{3.02}{1996/12/01}{Now saves the current CTM here.} +% \begin{macrocode} + dstFM dup invertmatrix dstM CM srcM + 2 { dstM concatmatrix } repeat pop + getrepl /temp X + S str convert get { +% \end{macrocode} +% Retrieve the replacement information +% \begin{macrocode} + aload pop [ /rot /scl /loc /K ] MD +% \end{macrocode} +% Determine the PostScript alignment point. +% \begin{macrocode} + /aX cX def /aY cY def + loc { + dup 66 eq { /aY bY def } { % B + dup 98 eq { /aY lY def } { % b + dup 108 eq { /aX lX def } { % l + dup 114 eq { /aX uX def } { % r + dup 116 eq { /aY uY def } % t + if } ifelse } ifelse } ifelse } ifelse pop + } forall +% \end{macrocode} +% Store the replacement key, and the transformation information, in +% \pscom{replArray}. These transformations are appended to the CTM +% encountered when \pscom{Place} is run. Indeed, this and +% \pscom{Place} are the two most difficult pieces of code to +% understand. +% \changes{3.03}{1996/12/03}{The added transformation is no longer +% ``slipped under'' the CTM, but now it is more properly appended. +% this should allow the replacements to move properly if the entire +% figure is rotated or transformed. This required changes throughout +% the code, but primarily here.} +% \begin{macrocode} + K srcFM rot tM rotate dstM + 2 { tM concatmatrix } repeat aload pop pop pop + 2 { scl normalize 4 2 roll } repeat + aX aY transform + /temp temp 7 add def + } forall + temp setrepl +} B +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{rs} +% \begin{macro}{rks} +% \begin{macro}{ras} +% \begin{macro}{rws} +% \begin{macro}{raws} +% These macros intercept calls to their PostScript +% counterparts and execute \pscom{replace} in their stead if the +% argument string matches one in the replacement list. +% \changes{3.03}{1996/12/17}{Corrected typo for \pscom{raws}.} +% \begin{macrocode} +/Rif { + S 3 index convert known { pop replace } { exch pop OE } ifelse +} B +/XA { bind [ /Kproc /str } B /XC { ] 2 array astore def } B +/xs { pop } XA XC +/xks { /kern load OE } XA /kern XC +/xas { pop ax ay rmoveto } XA /ay /ax XC +/xws { c eq { cx cy rmoveto } if } XA /c /cy /cx XC +/xaws { ax ay rmoveto c eq { cx cy rmoveto } if } + XA /ay /ax /c /cy /cx XC +/raws { xaws { awidthshow } Rif } B +/rws { xws { widthshow } Rif } B +/rks { xks { kshow } Rif } B +/ras { xas { ashow } Rif } B +/rs { xs { show } Rif } B +% \end{macrocode} +% \end{macro}\end{macro}\end{macro}\end{macro}\end{macro} +% +% \begin{macro}{restore} +% In Level 1 PostScript, this is necessary because global variables +% do not exist (and we need one!). Every call to \pscom{restore} +% wipes out any variables that were modified since the previous call +% to \pscom{save}. Unfortunately, this is not guaranteed to work, +% although it does work for \pkg{dvips}. +% +% For Level 2, we can use global variables so this is not necessary. +% We make this distinction \emph{at print time}, so a file that does +% not seem to work on a Level 1 printer for which it was originally +% intended should still work on a Level 2 printer without +% modification. +% \changes{3.04}{1998/04/11}{Added a fix recommended by J. Scott Berg.} +% \begin{macrocode} +/rrs { getrepl dup 2 add -1 roll //restore exec setrepl } B +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{Dict} +% This dictionary is added to the stack just before the figure, so +% that its definitions of the \pscom{show} operators can substitute +% for the originals. +% \changes{3.02}{1996/12/03}{Made \pscom{Dict} read-only to help +% track down problems.} +% \changes{3.03}{1996/12/17}{Corrected typo in \pscom{awidthshow}.} +% \begin{macrocode} +PSfragDict begin +islev2 not { /restore { /rrs PSfrag } B } if +/show { /rs PSfrag } B +/kshow { /rks PSfrag } B +/ashow { /ras PSfrag } B +/widthshow { /rws PSfrag } B +/awidthshow { /raws PSfrag } B +end PSfragDict RO pop +end +% \end{macrocode} +% \end{macro} +% +% \begin{macrocode} +%</filepro> +% \end{macrocode} +% +% \begin{macrocode} +%<*package> +% \end{macrocode} +% +% \section{The scanner} +% This code implements the \TeX-based scanner that performs the work +% that the \pfg\ Perl script used to perform. This is +% very similar to the code used +% to scan for bounding boxes in \fname{graphics.sty}. +% +% We need to read the string with two sets of catcodes: as `verbatim +% text' for using in the first argument of |\psfrag|, and as normal +% \TeX\ commands for using in the replacemnt text argument. +% The only way to do this sensibly in standard \TeX\ is to write +% the string to a file and then read it back. So while reading the +% EPS file, the character |\| will be `active'. +% Then the argument can be duplicated +% before writing this temp file, once with |\| expanding to |\\| (two +% catcode 12 tokens) and once to |\| (one catcode 12 token). When this +% is read back, these tokens will be re-catcoded by the |psfrag| +% command. +% \begin{macrocode} +\newwrite\pfg@temp +% \end{macrocode} +% +% \begin{macro}{\pfg@scan} +% The main command. |#1| is the name of the file. It might be better +% to use the bounding box (`|.bb|') file name so +% that compressed files could work by you copying any lines with +% |(\\tex|\ldots strings in them to the |bb| file before compressing. +% However, if you are +% doing that, you may as well just move the |\psfrag| commands to the +% main \TeX\ file. So currently compression is not supported by this +% system. +% \begin{macrocode} +\def\pfg@scan#1{\begingroup +% \end{macrocode} +% First the standard making `safe' of illegal characters. +% \begin{macrocode} + \@tempcnta\z@ + \loop + \ifnum\@tempcnta<\@xxxii + \catcode\@tempcnta12 \advance\@tempcnta\@ne + \repeat +% \end{macrocode} +% +% Now normalise some catcodes we need. Most things are treated verbatim, +% but |{}| have their normal catcodes so |\read| will read multi-line +% |\\tex| expresions; and, as discussed above, |\| is made active. +% The end of a line is treated as space. Originally this meant that +% multi-line |\tex| commands did not work, but with v3.02, the PS side +% of things normalises white space to `space', as well so everyone is in +% agreement. +% \begin{macrocode} + \let\do\@makeother\dospecials\catcode`\ 10 % + \catcode`\{=1\catcode`\}=2\catcode127=12 % + \catcode`\\=\active\catcode\endlinechar5 % +% \end{macrocode} +% +% Open the scratch file. Don't complain if it already exists as that +% is probably just a previous graphic, or a previous run. +% \fname{pfgguide.tex} warns that any existing file of this name will +% be zapped, so: you've been warned. +% \begin{macrocode} + \immediate\openout\pfg@temp=\jobname.pfg % +% \end{macrocode} +% +% If the graphic file is not there, complain, else start reading it +% line by line. Look at each line with |\pfg@find|. Unlike the looking +% for |%%BoundingBox| where you can stop once you've found it, here +% you need to go to the end of the file looking for all the occurrences +% of |\tex| so if you give it megabytes of data, this may take a while. +% \begin{macrocode} + \immediate\openin\@inputcheck=#1 % + \ifeof\@inputcheck + \PackageWarning{psfrag}{Could not scan #1...}\endgroup + \else + \message{<psfrag:#1>}% + \@tempswatrue + \loop + \ifeof\@inputcheck + \@tempswafalse + \else + \read\@inputcheck to\@tempa + \expandafter\pfg@find\@tempa{\@nil}% + \fi + \if@tempswa + \repeat + \closein\@inputcheck + \fi + \immediate\closeout\pfg@temp + \endgroup + \@input{\jobname.pfg}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\pfg@find} +% \changes{3.03}{1997/01/07} +% {Find strings even if nested inside brace groups} +% This command first looks for an explicit brace group |{ }|. +% (one definitely exists as |{\@nil}| is added at the end as +% a `marker'). +% \begin{macrocode} +\long\def\pfg@find#1#{\pfg@finda{#1}} +% \end{macrocode} +% \end{macro} +% +% To enable an `active' copy or |\| to be accessed easily, use a special +% lowercase table while defining these macros. +% \begin{macrocode} +\begingroup + \lccode`\~=`\\ + \lowercase{\endgroup +% \end{macrocode} +% +% \begin{macro}{\pfg@finda} +% If the group found contained the |\@nil| marker stop, else +% start looking for |(\\tex| in the tokens before the group. +% \begin{macrocode} +\long\def\pfg@finda#1#2{% + \def\@tempa{#2}% + \ifx\@tempa\@nnil + \else + \pfg@findb#1(~~tex(~~tex% + \fi} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\pfg@findb} +% Having found a brace group, look for the string |\\tex| in the +% preceding tokens. If there is such, discard any tokens before that +% then take all tokens after |\\tex| (up to the brace already found) +% to be the optional arguments. In that case write out a suitable +% call to |\psfrag|, and then continue after the brace group. +% Otherwise if no |\\tex| is found, Add the contents of the brace group +% (without the braces) back in front of the list before restarting the +% search. In that way any strings inside brace groups will be found. +% +% As |{}| have their normal catcodes, multiline |\tex| commands work +% as long as any line breaks occur inside the main |{ }| argument, not +% between the optional arguments (normally there is no space at all +% there, so no possibility of a break). This is because \TeX\ will +% read more than a line if necessary to ensure that braces balance. +% +% The arguments are delimited by |(\\tex| sequences:\\ +% |#1| Is always discarded; the tokens before any |(\\tex| string.\\ +% |#2| contains any optional arguments (complete with |[]| brackets).\\ +% |#3| Will be the `dummy tokens' placed at the end, unless +% no |(\\tex| is in the string, in which case |#3| will be empty. +% This argument is |\fi| delimited which allows for tail recursion +% in a slightly sneaky way. +% \begin{macrocode} +\long\def\pfg@findb#1(~~tex#2(~~tex#3\fi{% + \fi + \ifx\box#3\box + \else +% \end{macrocode} +% Since |\| is the PS escape character in strings, as well as the \TeX\ +% escape character, the following looks a bit weird, but it's probably +% right. A |\| will appear in the PS string as |\\|, so\ldots +% +% First set |\| to be |\string| (recall |\| is active, and can be written +% as |~| due to the |\lowercase| above). +% This means that +% |\\foo| expands to |\foo| (one catcode 12 |\| coming from |\string\| +% and then a catcode 11 |foo|). This expansion is frozen by an |\edef| +% for use in the second argument. Then redefine |\| to be |\relax| +% so it is a non-expandable active token, which writes as itself. +% +% Now write a call to |\psfrag| to the temp file. +% The `user' string |\foo| which was the literal PS |\\foo| thus ends +% up as:\\ +% |\psfrag{|\ldots |\\foo| \ldots |}{| \ldots |\foo| |}%| +% +% When this file is read back |\psfrag| will read the first argument +% verbatim, and the second argument with normal catcodes so finally +% |\foo| gets to be a single token instead of 4, and is executed +% as part of the replacement text. +% +% Finally reset |\@tempa| (which contatined the contents of the brace group +% to empty, as we've done with that. +% \begin{macrocode} + {\let~\string + \edef\@tempb{\@tempa}% + \let~\relax + \immediate\write\pfg@temp{% + \string\psfrag\space + {\string\\tex#2{\@tempa}}#2\@percentchar + ^^J\@spaces\@spaces{\@tempb}\@percentchar}}% + \let\@tempa\@empty + \fi +% \end{macrocode} +% +% Now start looking for the next brace group to test. First tip +% the contents of |\@tempa| in front of the tokens not yet seen, so that +% the contents of a brace group will be searched if they were not +% used as the argument to |\tex|. +% \begin{macrocode} + \expandafter\pfg@find\@tempa} +% \end{macrocode} +% \end{macro} +% +% +% Finally close the call to |\lowercase|. +% \begin{macrocode} +} +% \end{macrocode} +% +% \begin{macrocode} +%</package> +% \end{macrocode} +% +% diff --git a/support/easylatex/psfrag/psfrag.ins b/support/easylatex/psfrag/psfrag.ins new file mode 100644 index 0000000000..9c22e7cf66 --- /dev/null +++ b/support/easylatex/psfrag/psfrag.ins @@ -0,0 +1,25 @@ +%% +%% This file is part of the standard PSfrag bundle. It extracts the +%% files from psfrag.dtx to be installed in the TeX hierarchy. +%% +%% This file may not be changed unless it is distributed under a +%% different name, accompanied by a copy of the original file. +%% The author of the changes and their scope should be clearly +%% documented, so that questions can be distributed to the proper author. +%% +\def\batchfile{psfrag.ins} +\input docstrip +\preamble + +Copyright (c) 1996 Craig Barratt, Michael C. Grant, and David Carlisle. +All rights reserved. + +This file is part of the PSfrag package. + +\endpreamble +\generateFile{psfrag.sty}{f}{\from{psfrag.dtx}{package}} +\def\npostamble{}\usepostamble\npostamble +\generateFile{psfrag.pro}{f}{\from{psfrag.dtx}{filepro}} + + + diff --git a/support/easylatex/psfrag/testfig.eps b/support/easylatex/psfrag/testfig.eps new file mode 100644 index 0000000000..437bb54899 --- /dev/null +++ b/support/easylatex/psfrag/testfig.eps @@ -0,0 +1,6 @@ +%!PS-Adobe-3.0 EPSF-3.0 +%%BoundingBox: 0 0 245 163 +(Courier) findfont 216 scalefont setfont +-13 41 moveto (gA) show +showpage +%%EOF |