diff options
author | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
commit | e0c6872cf40896c7be36b11dcc744620f10adf1d (patch) | |
tree | 60335e10d2f4354b0674ec22d7b53f0f8abee672 /graphics/figfrag |
Initial commit
Diffstat (limited to 'graphics/figfrag')
-rw-r--r-- | graphics/figfrag/README | 53 | ||||
-rw-r--r-- | graphics/figfrag/epscrop | 92 | ||||
-rw-r--r-- | graphics/figfrag/figfrag | 326 | ||||
-rw-r--r-- | graphics/figfrag/test.eps | 1695 | ||||
-rw-r--r-- | graphics/figfrag/test.fig | 23 |
5 files changed, 2189 insertions, 0 deletions
diff --git a/graphics/figfrag/README b/graphics/figfrag/README new file mode 100644 index 0000000000..d002c5e03d --- /dev/null +++ b/graphics/figfrag/README @@ -0,0 +1,53 @@ + +FIGFRAG - convert FIG to EPS replacing all text by its LaTeX equivalent. + + +Latest features: + - color support + - fontstyle support + + +1. Why figfrag? + +The idea of figfrag started when I wanted to use LaTeX commands in +xfig figures. So far, nothing new: use the special text options in +xfig and use the pstex backend. However, I also wanted to create +standalone EPS figures which consequently should be converted to PDF +in order to use the figures with pdflatex. So I wrote a first script +based on the pstex backend, but soon switched to use the psfrag package +instead and, voila, the first version of figfrag was born. + + +2. Requirements + +To use figfrag you need the following: +- the fig2dev program (http://www.xfig.org) +- a working (La)TeX environment +- the psfrag, epsfig, graphics, color, calc and ifthen packages +- perl (I use version 5.6.1, and I haven't tried other versions) +- the epscrop script (uses bash and awk) + + +3. Usage + +See the help text (figfrag -h). For best results enable the use of +Type1 for Computer Modern fonts. This results in scalable (non bitmapped +version) text and math. + + +4. Bugs + +Plenty of course ;-) I just haven't found them yet. Be warned: I have +only been able to test figfrag on my own machine (Linux - Debian 3.0). + + +5. Acknowledgements + +Thanks to Hylke van Dijk and Jacco Taal for their valuable comments, +support and patches. + + + +Have fun with it! +Maarten Ditzel (ditzel@cobalt.et.tudelft.nl) + diff --git a/graphics/figfrag/epscrop b/graphics/figfrag/epscrop new file mode 100644 index 0000000000..2bf3826ee1 --- /dev/null +++ b/graphics/figfrag/epscrop @@ -0,0 +1,92 @@ +#!/bin/bash + +# epscrop -- crop EPS files using ghostscript +# Copyright (C) 2002, Maarten Ditzel +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program 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. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +# process arguments +infile=$1 +if [ "$1" == "-h" ]; then + echo "synopsis: epscrop <file>" + echo "author: Maarten Ditzel (February 2002)" + echo "description: adjusts the bounding box of <file> to fit" + exit 1 +fi + +if (( $# < 1 )); then + echo "no input file specified" + exit 2 +fi + +# create a temporary directory +tmpdir=/tmp/epscrop-$$ +mkdir $tmpdir + +# check ghostscript version (both GNU and Aladdin should work) +gstype=`gs -v | awk '/^GNU|AFPL/ { print $1; }'` +version=`gs -v | awk '/^GNU|AFPL/ { print $3; }'` +major=`echo $version | awk -F "." '{ print $1; }'` +minor=`echo $version | awk -F "." '{ print $2; }'` + +if [[ (( $major > 5 )) && (( $minor > 50 )) ]]; then + # retrieve the bounding box + gs -dNOPAUSE -sDEVICE=bbox -q $infile quit.ps 2> $tmpdir/bbox +else + # bbox device doesn't seem to work for previous versions + # thus we use epswrite to find the bounding box + # Q: why don't we use epswrite all the time ? + # A: it returns a poor quality eps + # Q: why don't we use the psbb program ? + # A: only returns the boundingbox already specified in the file + # and the whole point is to replace it with a cropped version + + gs -dNOPAUSE -sDEVICE=epswrite -sOutputFile=$tmpdir/bbox.eps -q $infile quit.ps + grep BoundingBox $tmpdir/bbox.eps > $tmpdir/bbox + +fi + +# get the cropped bounding box +bbox=`awk '/^%%BoundingBox:/ { print $2,$3,$4,$5; }' $tmpdir/bbox` + +# create awk script +cat <<EOF > $tmpdir/epscrop.awk + +# created by epscrop + +BEGIN { + bbdone = 0; +} + +/^%%BoundingBox/ { + if (!bbdone) { + print \$1, bbox; + bbdone = 1; + } + else + print; +} + +!/^%%BoundingBox/ { + print; +} + +EOF + +# adjust bounding box +awk -v bbox="$bbox" -f $tmpdir/epscrop.awk $infile + +# remove the temporary directory +rm -r $tmpdir diff --git a/graphics/figfrag/figfrag b/graphics/figfrag/figfrag new file mode 100644 index 0000000000..f8d4ca6dc0 --- /dev/null +++ b/graphics/figfrag/figfrag @@ -0,0 +1,326 @@ +#!/usr/bin/perl + +# figfrag -- generate EPS from FIG files (generated with xfig) +# Copyright (C) 1999, Maarten Ditzel +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program 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. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +use strict; + +use Getopt::Std; +use File::Path; +use Cwd; + +my $program = "figfrag"; +my $version = "2.5"; + +my $tmpdir = "/tmp/.$program-$$"; +my $calldir = cwd(); + +my $fig = "$program.fig"; +my $tex = "$program.tex"; +my $dvi = "$program.dvi"; +my $eps1 = "$program.eps1"; +my $eps2 = "$program.eps2"; + +my $quiet = 0; +my $keep = 0; +my $defaultcolor = "black"; +my $font; + +my ($include, $infile, $outfile); + +my $texheader = <<EOF; +%% AUTOMATICALLY GENERATED WITH $program $version + +\\documentclass[a4paper,10pt]{article} + +\\usepackage{epsfig} +\\usepackage{psfrag} +\\usepackage{color} +\\usepackage{calc} +\\usepackage{ifthen} + +\\pagestyle{empty} + +\\begin{document} + +\\newbox{\\fig} +\\newlength{\\figwidth} +\\newlength{\\figheight} +\\newlength{\\widthratio} +\\newlength{\\heightratio} +EOF + +my $texfooter = <<EOF; +\\settowidth{\\figwidth}{\\usebox{\\fig}} +\\settoheight{\\figheight}{\\usebox{\\fig}} +\\setlength{\\widthratio}{1pt*\\ratio{\\textwidth}{\\figwidth}} +\\setlength{\\heightratio}{1pt*\\ratio{\\textheight}{\\figheight}} + +\\ifthenelse{\\lengthtest{\\widthratio < \\heightratio}}{%% +\\resizebox{.95\\textwidth}{!}{\\usebox{\\fig}}}{%% +\\resizebox{!}{.95\\textheight}{\\usebox{\\fig}}} + +\\end{document} +EOF + +sub debug { + my ($msg) = @_; + print STDERR "$msg\n" if (not $quiet); +} + +sub print_info { + print STDERR "$program $version\n"; + print STDERR "Maarten Ditzel, July 1999, revised February 2002\n"; + print STDERR "usage: $program [options] <file>\n"; + print STDERR + "options:\n", + " -h : this help\n", + " -V : print version\n", + " -k : keep intermediate files (debug purposes)\n", + " -q : quite (non-verbose)\n", + " -i <include_file> : include file with LaTeX commands\n", + " -o <output_file> : output to file\n", + " -f <fontfamily> : set default font\n", + " -c <color> : set default color (default black)\n"; +} + +sub print_version { + print STDERR "$program $version\n"; +} + +sub create_tmpdir { + mkdir($tmpdir, 0775) || + die "ERROR: could not make temporary directory.\n"; + chdir($tmpdir) || + die "ERROR: could not change to working directory.\n"; +} + +sub destroy_tmpdir { + chdir $calldir; + rmtree($tmpdir) || + die "ERROR: could not remove temporary directory.\n"; +} + +sub process_options { + + my %options; + + getopts('hVkqc:f:i:o:', \%options) || + die "ERROR: invalid arguments.\n"; + + if (defined $options{h}) { + &print_info; + exit; + } + + if (defined $options{V}) { + &print_version; + exit; + } + + if (defined $options{q}) { + $quiet = 1; + } + + if (defined $options{f}) { + $font = "$options{f}"; + } + + if (defined $options{c}) { + $defaultcolor = "$options{c}"; + } + + if (defined $options{i}) { + $include = "$options{i}"; + } + + if (defined $options{k}) { + $keep = 1; + } + + $infile = shift @ARGV || + die "ERROR: no input file specified\n"; + $infile = "$calldir/$infile"; + + if (defined $options{o}) { + $outfile = $options{o}; + } + else { + $outfile = $infile; + $outfile =~ s/\.fig$/\.eps/; + } +} + +sub read_fig { + # create fig and tex files + open(FIG, ">$fig") || + die "ERROR: could not create $fig\n"; + open(TEX, ">$tex") || + die "ERROR: could not create $tex\n"; + + debug("Generating LaTeX file..."); + + print TEX $texheader; + + # set custom font + if ($font) { + print TEX "\\renewcommand{\\familydefault}{$font}\n"; + print TEX "\\normalfont\n"; + } + + # include file + open(INC, "<$calldir/$include") || + die "ERROR: could not open $include\n"; + while(<INC>) { + print TEX; + } + close(INC); + + # start figure box + print TEX "\\savebox{\\fig}{\n"; + + # variables + my ($mark, $ltx, $marker, $line, $opt, + $fontscale, $fontcolor, $fontstyle); + + # alignment strings + my @align = ( "[Bl][Bl]", "[Bc][Bc]", "[Br][Br]" ); + my @color = ( $defaultcolor, + "black", + "blue", + "green", + "cyan", + "red", + "magenta", + "yellow", + "white" ); + my @style = ( "", # default font (no change) + "\\rmfamily", + "\\bfseries", + "\\itshape", + "\\sffamily", + "\\ttfamily" ); + + $mark = 0; + + open(INFILE, "<$infile") || + die "ERROR: could not open $infile\n"; + + while ($line = <INFILE>) { + + my @fields = split / /, $line, 14; + + # process only text fields with non Postscript fonts + if ( $fields[0] == 4 && ! ( $fields[8] & 0x04 ) ) { + + # reset special flag + $fields[8] = 0; + + # create unique marker + $marker = sprintf "mark-%04d", $mark++; + + # get fonts scale factor + $fontscale = $fields[6]/10.0; + + # get the font color + if ( $fields[2] > 7 ) { + print STDERR "color $fields[2] not supported (>7)"; + $fields[2] = -1; # default color + } + + $fontcolor = "\\color\{$color[$fields[2]+1]\}"; + + # get the font style + $fontstyle = $style[$fields[5]]; + + # get the latex command + $ltx = $fields[13]; + $ltx =~ s/\\001\n$//; + + # replace double backslashes by single + $ltx =~ s/\\\\/\\/g; + + # replace special characters + $ltx =~ s/&/\\&/g; + + # change math mode from textstyle to displaystyle + $ltx =~ s/\$(.*)\$/\$\\displaystyle $1\$/g; + + # replace \int and \sum by \int\limits and \sum\limits + $ltx =~ s/\\int/\\int\\limits/g; + $ltx =~ s/\\sum/\\sum\\limits/g; + + $ltx = "\\resizebox{!}{$fontscale\\height}{$fontstyle$fontcolor $ltx}"; + + # adjust alignment + $opt = $align[$fields[1]]; + + # generate psfrag command + print TEX " \\psfrag{$marker}$opt\{$ltx}\n"; + + $fields[13] = $marker; + print FIG "@fields\\001\n"; + } + else { + print FIG $line; # @fields; + } + } + + close INFILE; + + # close figure box + print TEX " \\epsfig{file=$eps1}\n"; + print TEX "}\n"; + + print TEX $texfooter; + + close FIG; + close TEX; + +} + +sub convert_fig { + + debug("Converting figure to EPS..."); + system "fig2dev -L eps $fig $eps1 > /dev/null" || + die "ERROR: could not execute fig2dev\n"; + + debug("Replacing tags with LaTeX commands..."); + system "latex --interaction nonstopmode $tex > /dev/null" || + die "ERROR: could not execute latex\n"; + + debug("Converting DVI to EPS..."); + system "\\dvips -E -o $eps2 $dvi 2> /dev/null" || + die "ERROR: could not execute dvips\n"; + + debug("Adjusting bounding box..."); + system "epscrop $eps2 > $outfile" || + die "ERROR: could not execute epscrop\n"; + +} + + +&process_options; +&create_tmpdir; +&read_fig; +&convert_fig; +if ( $keep ) { + debug("keeping intermediate files in $tmpdir\n"); +} +else { + &destroy_tmpdir; +} diff --git a/graphics/figfrag/test.eps b/graphics/figfrag/test.eps new file mode 100644 index 0000000000..6fdcc72d79 --- /dev/null +++ b/graphics/figfrag/test.eps @@ -0,0 +1,1695 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Creator: dvips(k) 5.86e Copyright 2001 Radical Eye Software +%%Title: figfrag.dvi +%%BoundingBox: 143 412 463 666 +%%DocumentFonts: CMR10 CMR7 CMMI10 CMMI7 CMEX10 CMTT10 CMSS10 CMTI10 +%%+ CMBX10 +%%EndComments +%DVIPSWebPage: (www.radicaleye.com) +%DVIPSCommandLine: dvips -E -o figfrag.eps2 figfrag.dvi +%DVIPSParameters: dpi=1200, compressed +%DVIPSSource: TeX output 2003.08.29:1150 +%%BeginProcSet: texc.pro +%! +/TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S +N}B/A{dup}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{A A 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/IEn 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 IEn N end A{/foo setfont}2 +array copy cvx N load 0 nn put/ctr 0 N[}B/sf 0 N/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 A +definefont setfont}B/Cw{Cd A length 5 sub get}B/Ch{Cd A length 4 sub get +}B/Cx{128 Cd A length 3 sub get sub}B/Cy{Cd A length 2 sub get 127 sub} +B/Cdx{Cd A length 1 sub get}B/Ci{Cd A 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/CharBuilder{save 3 +1 roll S A/base get 2 index get S/BitMaps get S get/Cd X pop/ctr 0 N Cdx +0 Cx Cy Ch sub Cx Cw add Cy setcachedevice Cw Ch true[1 0 0 -1 -.1 Cx +sub Cy .1 sub]/id Ci N/rw Cw 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 A 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 A gp add/gp X adv}B/nd{ +/cp 0 N rw exit}B/lsh{rw cp 2 copy get A 0 eq{pop 1}{A 255 eq{pop 254}{ +A A add 255 and S 1 and or}ifelse}ifelse put 1 adv}B/rsh{rw cp 2 copy +get A 0 eq{pop 128}{A 255 eq{pop 127}{A 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}]A{bind pop} +forall N/D{/cc X A type/stringtype ne{]}if nn/base get cc ctr put nn +/BitMaps get S ctr S sf 1 ne{A A length 1 sub A 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 A 1 get A +mul exch 0 get A 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/IEn 256 array N 2 string 0 1 255{IEn S A 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/Rx 0 N/Ry 0 N/V{}B/RV/v{ +/Ry X/Rx X V}B statusdict begin/product where{pop false[(Display)(NeXT) +(LaserWriter 16/600)]{A length product length le{A 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 Rx Ry false RMat{BDot}imagemask +grestore}}{{gsave TR -.1 .1 TR Rx Ry scale 1 1 false RMat{BDot} +imagemask grestore}}ifelse B/QV{gsave newpath transform round exch round +exch itransform moveto Rx 0 rlineto 0 Ry neg rlineto Rx neg 0 rlineto +fill grestore}B/a{moveto}B/delta 0 N/tail{A/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: texps.pro +%! +TeXDict begin/rf{findfont dup length 1 add dict begin{1 index/FID ne 2 +index/UniqueID ne and{def}{pop pop}ifelse}forall[1 index 0 6 -1 roll +exec 0 exch 5 -1 roll VResolution Resolution div mul neg 0 0]/Metrics +exch def dict begin Encoding{exch dup type/integertype ne{pop pop 1 sub +dup 0 le{pop}{[}ifelse}{FontMatrix 0 get div Metrics 0 get div def} +ifelse}forall Metrics/Metrics currentdict end def[2 index currentdict +end definefont 3 -1 roll makefont/setfont cvx]cvx def}def/ObliqueSlant{ +dup sin S cos div neg}B/SlantFont{4 index mul add}def/ExtendFont{3 -1 +roll mul exch}def/ReEncodeFont{CharStrings rcheck{/Encoding false def +dup[exch{dup CharStrings exch known not{pop/.notdef/Encoding true def} +if}forall Encoding{]exch pop}{cleartomark}ifelse}if/Encoding exch def} +def end + +%%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 +%%BeginProcSet: color.pro +%! +TeXDict begin/setcmykcolor where{pop}{/setcmykcolor{dup 10 eq{pop +setrgbcolor}{1 sub 4 1 roll 3{3 index add neg dup 0 lt{pop 0}if 3 1 roll +}repeat setrgbcolor pop}ifelse}B}ifelse/TeXcolorcmyk{setcmykcolor}def +/TeXcolorrgb{setrgbcolor}def/TeXcolorgrey{setgray}def/TeXcolorgray{ +setgray}def/TeXcolorhsb{sethsbcolor}def/currentcmykcolor where{pop}{ +/currentcmykcolor{currentrgbcolor 10}B}ifelse/DC{exch dup userdict exch +known{pop pop}{X}ifelse}B/GreenYellow{0.15 0 0.69 0 setcmykcolor}DC +/Yellow{0 0 1 0 setcmykcolor}DC/Goldenrod{0 0.10 0.84 0 setcmykcolor}DC +/Dandelion{0 0.29 0.84 0 setcmykcolor}DC/Apricot{0 0.32 0.52 0 +setcmykcolor}DC/Peach{0 0.50 0.70 0 setcmykcolor}DC/Melon{0 0.46 0.50 0 +setcmykcolor}DC/YellowOrange{0 0.42 1 0 setcmykcolor}DC/Orange{0 0.61 +0.87 0 setcmykcolor}DC/BurntOrange{0 0.51 1 0 setcmykcolor}DC +/Bittersweet{0 0.75 1 0.24 setcmykcolor}DC/RedOrange{0 0.77 0.87 0 +setcmykcolor}DC/Mahogany{0 0.85 0.87 0.35 setcmykcolor}DC/Maroon{0 0.87 +0.68 0.32 setcmykcolor}DC/BrickRed{0 0.89 0.94 0.28 setcmykcolor}DC/Red{ +0 1 1 0 setcmykcolor}DC/OrangeRed{0 1 0.50 0 setcmykcolor}DC/RubineRed{ +0 1 0.13 0 setcmykcolor}DC/WildStrawberry{0 0.96 0.39 0 setcmykcolor}DC +/Salmon{0 0.53 0.38 0 setcmykcolor}DC/CarnationPink{0 0.63 0 0 +setcmykcolor}DC/Magenta{0 1 0 0 setcmykcolor}DC/VioletRed{0 0.81 0 0 +setcmykcolor}DC/Rhodamine{0 0.82 0 0 setcmykcolor}DC/Mulberry{0.34 0.90 +0 0.02 setcmykcolor}DC/RedViolet{0.07 0.90 0 0.34 setcmykcolor}DC +/Fuchsia{0.47 0.91 0 0.08 setcmykcolor}DC/Lavender{0 0.48 0 0 +setcmykcolor}DC/Thistle{0.12 0.59 0 0 setcmykcolor}DC/Orchid{0.32 0.64 0 +0 setcmykcolor}DC/DarkOrchid{0.40 0.80 0.20 0 setcmykcolor}DC/Purple{ +0.45 0.86 0 0 setcmykcolor}DC/Plum{0.50 1 0 0 setcmykcolor}DC/Violet{ +0.79 0.88 0 0 setcmykcolor}DC/RoyalPurple{0.75 0.90 0 0 setcmykcolor}DC +/BlueViolet{0.86 0.91 0 0.04 setcmykcolor}DC/Periwinkle{0.57 0.55 0 0 +setcmykcolor}DC/CadetBlue{0.62 0.57 0.23 0 setcmykcolor}DC +/CornflowerBlue{0.65 0.13 0 0 setcmykcolor}DC/MidnightBlue{0.98 0.13 0 +0.43 setcmykcolor}DC/NavyBlue{0.94 0.54 0 0 setcmykcolor}DC/RoyalBlue{1 +0.50 0 0 setcmykcolor}DC/Blue{1 1 0 0 setcmykcolor}DC/Cerulean{0.94 0.11 +0 0 setcmykcolor}DC/Cyan{1 0 0 0 setcmykcolor}DC/ProcessBlue{0.96 0 0 0 +setcmykcolor}DC/SkyBlue{0.62 0 0.12 0 setcmykcolor}DC/Turquoise{0.85 0 +0.20 0 setcmykcolor}DC/TealBlue{0.86 0 0.34 0.02 setcmykcolor}DC +/Aquamarine{0.82 0 0.30 0 setcmykcolor}DC/BlueGreen{0.85 0 0.33 0 +setcmykcolor}DC/Emerald{1 0 0.50 0 setcmykcolor}DC/JungleGreen{0.99 0 +0.52 0 setcmykcolor}DC/SeaGreen{0.69 0 0.50 0 setcmykcolor}DC/Green{1 0 +1 0 setcmykcolor}DC/ForestGreen{0.91 0 0.88 0.12 setcmykcolor}DC +/PineGreen{0.92 0 0.59 0.25 setcmykcolor}DC/LimeGreen{0.50 0 1 0 +setcmykcolor}DC/YellowGreen{0.44 0 0.74 0 setcmykcolor}DC/SpringGreen{ +0.26 0 0.76 0 setcmykcolor}DC/OliveGreen{0.64 0 0.95 0.40 setcmykcolor} +DC/RawSienna{0 0.72 1 0.45 setcmykcolor}DC/Sepia{0 0.83 1 0.70 +setcmykcolor}DC/Brown{0 0.81 1 0.60 setcmykcolor}DC/Tan{0.14 0.42 0.56 0 +setcmykcolor}DC/Gray{0 0 0 0.50 setcmykcolor}DC/Black{0 0 0 1 +setcmykcolor}DC/White{0 0 0 0 setcmykcolor}DC end + +%%EndProcSet +%%BeginFont: CMBX10 +%!PS-AdobeFont-1.1: CMBX10 1.00B +%%CreationDate: 1992 Feb 19 19:54:06 +% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. +11 dict begin +/FontInfo 7 dict dup begin +/version (1.00B) readonly def +/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def +/FullName (CMBX10) readonly def +/FamilyName (Computer Modern) readonly def +/Weight (Bold) readonly def +/ItalicAngle 0 def +/isFixedPitch false def +end readonly def +/FontName /CMBX10 def +/PaintType 0 def +/FontType 1 def +/FontMatrix [0.001 0 0 0.001 0 0] readonly def +/Encoding 256 array +0 1 255 {1 index exch /.notdef put} for +dup 98 /b put +dup 100 /d put +dup 108 /l put +dup 111 /o put +readonly def +/FontBBox{-301 -250 1164 946}readonly def +/UniqueID 5000768 def +currentdict end +currentfile eexec +D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891 +016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171 +9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F +D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758 +469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8 +2BDBF16FBC7512FAA308A093FE5F00F963068B8B731A88D7740B0DDAED1B3F82 +7DB9DFB4372D3935C286E39EE7AC9FB6A9B5CE4D2FAE1BC0E55AE02BFC464378 +77B9F65C23E3BAB41EFAE344DDC9AB1B3CCBC0618290D83DC756F9D5BEFECB18 +2DB0E39997F264D408BD076F65A50E7E94C9C88D849AB2E92005CFA316ACCD91 +FF524AAD7262B10351C50EBAD08FB4CD55D2E369F6E836C82C591606E1E5C73F +DE3FA3CAD272C67C6CBF43B66FE4B8677DAFEEA19288428D07FEB1F4001BAA68 +7AAD6DDBE432714E799CFA49D8A1A128F32E8B280524BC8041F1E64ECE4053C4 +9F0AEC699A75B827002E9F95826DB3F643338F858011008E338A899020962176 +CF66A62E3AEF046D91C88C87DEB03CE6CCDF4FB651990F0E86D17409F121773D +6877DF0085DFB269A3C07AA6660419BD0F0EF3C53DA2318BA1860AB34E28BAC6 +E82DDB1C43E5203AC9DF9277098F2E42C0F7BD03C6D90B629DE97730245B8E8E +8903B9225098079C55A37E4E59AE2A9E36B6349FA2C09BB1F5F4433E4EEFC75E +3F9830EB085E7E6FBE2666AC5A398C2DF228062ACF9FCA5656390A15837C4A99 +EC3740D873CFEF2E248B44CA134693A782594DD0692B4DBF1F16C4CDECA692C4 +0E44FDBEF704101118BC53575BF22731E7F7717934AD715AC33B5D3679B784C9 +4046E6CD3C0AD80ED1F65626B14E33CFDA6EB2825DC444FA6208BF8D08FB53A5 +CBF97B4F65DA9BB68DB482A3C0658C2A225509DF6016654F8CA3D57DF9FBEA8B +0960A982D2FD6B018961F05D7BD2C250DCC8A9DA8EC75EEF3919EB6C563F2EEF +8623E0DC81C8F1ABADDD399C63DEE9A6B13A3E53D1F2A17997FBBE68D91CBD0D +5E6CB9B777366802EF24D2B557843D46ECC2F45B63622AFAD93D6DE1716329EB +E4A424C61E71F5C59075B9BDCEFC4B659E93BACF45D1A498457708D281F5762A +DE506C2DA47286A8A2312B11DE49FE74C8B42C6EA815E150DE0739F413482171 +52723CC9ABEADA0440A13599261073FC8F97CCFBF00AD20DC178EAB069AF7233 +7FA9495DCAC8CE84E14C701FD053FF0F727EE7A62C4A4C0C8D10A93430C7FAD6 +48A1E83BEB468EAA8FAF6CA4C24899968C61F14312257AB2DF361B2AF95849F3 +AF9E42B66361134916C8EEFD359AEE06232DA7EBC45D51B25D1A18AFED94F499 +9DFFED7C736E945F8453ABBCA099EAE8CEA0025C4859D2A47248BAAA2A6D4330 +094BC0F348A0C8597F716170C5EA7DB77612DF679C0906D77AB2144E81008DC5 +DF4E23A07F6C0E1387DD54F5C8BD071C4E9A7B45812C8E9EE7A622F66300B69C +5B27CC34FCE072424DDECC8F7BD3EF0C79354354299C85E1799134872BE96C56 +9BACF9290478CFDD203BA47E66E3B893246723109832853C664B53C4ECDF81B0 +004DBE82B869A76148C0798ECEBC9EC234234A21E0DB20718EAA7C8475E97474 +2B76CE9724465C49DC221DF6D624C689F6DB7F67AE9DB3C7D5700C2E03190574 +DD1EDB1537FF04DA5F493A7818D223AA99905CADECFF5045C4FE88F3D6D44A4F +160C814001228745DAB9A9286F1CDC816838A6D92CF30DFB76635186758B39CA +84BE9DB965A297B6BA82725E655C19F4D75F96952D8C8301CAA43DA4AE84F8DA +B063019DCDF2544CC6F1F589B466BFDB244428706A858A039B840FEE93563680 +E435659DB7CC2AA810E4F056CD8DA9E61C39ED2BC42A159E11E02F4A51BC6132 +73432DA786C4A0CDC428E9C6BFB09A0795C369C955D89AB09DA0BA6000453A79 +E95D1238B414CEAD3C97FB91E7295C6262015FCC8C215D1043B0FF599ABB21BE +7402C77485F3B5AFED89AA25A6192337B4C42BE74EB91CFF488B3259E13FDD70 +A57912100D31D83C7C0CADC3AEED5120643AD75B7644C52589C18B1D0F2B8564 +AB9D62FCC770E17F573DB8922EC916DE61C08D9AA263FE28094EBC096FD94456 +82E3B24D8FF9479EE1847C4E0F55198789A7BC97C24B6ED78B720C1D1A63BFF1 +5A7EB2A8DB17F1E3373FB35997F70D738801E1BF51966012856DF2B8C5D18E17 +BBCE1C30DFD00D8C8F430764740F5FD4BDB42C6EC7CB223649056D7EC8C47FEF +5A8048A7518DE0627CD4FD1F194FB9C051C6EF47B2482307843C3C704A38CB54 +DC61E205F936CDFAF0B40C58AA71F24CA0EB508E53C8C5A75C3D4B8F8D676104 +B8929899CFA4BAD605EF8425552FF904EC7C96D60711F033C3C27945ED371999 +90F7368E3DB8C9161205FC57CCD6BB371753C8C3BD462161FCE6E4E86A72774F +167A4F016BE33B9D792B63D6890654CFA3A2230910DD6A568230364AE6F14A5F +8A5B07DF7C573AA628FACFDE3A4A6BD18B2A3D56BE532F71F7620ACA5BC20DC1 +DBBE79C3F01B9E801D789D3BFB8E5B7FCAD20855CFC2D8E9B7A25757EDCA79FA +1D1AD79651C1B1A4203892CDA454CF343060259ED8C2DF8603AAE9F79C9B8EEE +2744B77EFC9971ECC69A69FAD36792A8B79C1F67A6D81E5BBE350BF113450AA1 +A017545C6062C8181DC299FF2F0F6F5DF2DC2D531F1FEF82C280BFEA232585BB +00185B296C1D85AB60A1CF9EA345 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +cleartomark +%%EndFont +%%BeginFont: CMTI10 +%!PS-AdobeFont-1.1: CMTI10 1.00B +%%CreationDate: 1992 Feb 19 19:56:16 +% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. +11 dict begin +/FontInfo 7 dict dup begin +/version (1.00B) readonly def +/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def +/FullName (CMTI10) readonly def +/FamilyName (Computer Modern) readonly def +/Weight (Medium) readonly def +/ItalicAngle -14.04 def +/isFixedPitch false def +end readonly def +/FontName /CMTI10 def +/PaintType 0 def +/FontType 1 def +/FontMatrix [0.001 0 0 0.001 0 0] readonly def +/Encoding 256 array +0 1 255 {1 index exch /.notdef put} for +dup 97 /a put +dup 99 /c put +dup 105 /i put +dup 108 /l put +dup 116 /t put +readonly def +/FontBBox{-163 -250 1146 969}readonly def +/UniqueID 5000828 def +currentdict end +currentfile eexec +D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE +3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B +532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470 +B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B +986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE +D919C2DDD26BDC0D99398B9F4D03D5993DFC0930297866E1CD0A319B6B1FD958 +9E3948FFB0B4E70F212EC976D65099D84E0D37A7A771C3101D6AD26A0513378F +21EC3643079EECE0C9AB54B4772E5DCA82D0D4ACC7F42FB493AA04A3BF4A1BD6 +06ECE186315DBE9CFDCB1A0303E8D3E83027CD3AFA8F0BD466A8E8CA0E7164CF +55B332FAD43482748DD4A1CB3F40CB1F5E67192B8216A0D8FE30F9F05BF016F5 +B5CC130A4B0796EE065495422FBA55BEE9BFD99D04464D987AC4D237C208FA86 +0B112E55CE7B3782A34BC22E3DE31755D9AFF19E490C8E43B85E17ECE87FA8B9 +1485831624D24F37C39BF9972D74E6EC4784727AC00B9C4A3AD3DA1C22BD6961 +7E0ADAF55422F22ACA5E4DCD4DF9FCD187A566B7FB661D0530454D0DD6C6C50A +7A3875C6CBF8EC7769F32A1F3F7FC1C072BADEC97794D4E90E0035282A170402 +356E5A9CD9ABD80AC4342A5283E458A7269252F4541CBB6452B39ED54D336D0B +19928E9CD1AB26AD83EB209E2EC75011A2643813053B5DBB0246097C4821B5F2 +C92554E9140BE35B2DBFCD98809A8EC9FC910FDE9E0D86457C70ACB056EBF90F +244DC0A5BBD455E15D6E3180311D52CF50B0BF7D0A7F64F3A1821E0AEDBC2E7B +AEB549FE1D51088C153799C6E089B5D5D65E1C4E2D2B430CDF1FFA23CCB25D95 +5C43C8942435D0AAA3D9055FF808F2C3C887A3C469BBD98F026D0A59E26BA9F9 +C2144CFE49A9AD892D4D31764F0AE3A10644AE3966B0A790684B14D11FA49785 +EC5565D2B2E584CBFD85125F3FAC133338DE35361943DCE9AF05FCF2840CE512 +998D42CBEC52B57B79DD63F00985881E8463396ADA47189A94DDF951A78866F0 +B8A3D9197E39335277EF2294308DA70065D910943A34F7D5F2090FB4AA42ED70 +CBA469A9F64B95A6FBA4BC89DBC93765E3AE4723162DF3F9D6BDE77DD5870ADE +C8900D6346957B84C3CE88A8F9A12D46B8FCA50DF4433B0B8AED6A63B3DA102B +6DF94E62408E24154BAAC66B2B249C695BC0FA37A28699D9C0F3EE94AA32E3C5 +8F8D7F803B5D25014D43A353D719B14B247A87898A960DF68C0C0BAF70C83917 +6E9F7B3ACC64DBAEF3FDCD3A80C0AB907EE342E543D607556CBE5A9089B86D1D +E768F27D74A613F3ABF883222A8596B542EBF54E9DCE327B5682AEE5F1A7A225 +BF26E2AEA0F352B9C950B47ADF650E1B2AE31E883EDD884EC90F94761C470EB1 +72F27B74049C2A13EC522271032939B656020D617F4E58DCA88D138F4C84979D +5EE89221BFD28AE8117B6ED99D1DABF7CE20C919C6704E490A41F6019452DCD1 +FC704003D63E9A0EC0B739FD6E4F2042D5477E5F98D67216183250218B301B2D +A51C2560CA3F5173F4B573F17565C3241A0D2758CFFB2918AADF114BD033B52A +90D87830C77BB10AF141A1E2636E43CC3EFAA9A458F10043FF9BA197E583FD8E +D4577E270508621E0FC3F51682D6A5264FB10FC5B2F01D6733FD6FC01193B257 +3215D536C186D6D6C2C29BFC4D7B75AA78C12591291704763EF85C8AB93A361E +A4800A9E149D0DBC25AA96FA3E3EB00A96FD929B13CFE89FF5187F3D993C3C56 +9CBAF9419E5495D0810007295BA145E718CFF092635344BC74436840C8843606 +41ECC5AD425B1D9D3F6AB37C5B970B27DD0551DFF14DED1F0BA095AB91CA6DEB +B104FF1EB6562D45E38E9F8FE5533F16C727CA83CE5F8E3BF6456F98B28785DC +B5D023366E189D3E1E5B4F5940F0E9DAF7904760C0232E37260B7B3A0836C772 +EBEF075A0819C85E20B38F8108C775B117C572D77A751CA265BA6056D125BACB +150DFCB65B9057C1BE24A6B2E0ECB4EE180FABBBF28EFD3D561F2AC7ED018275 +326C024252234061D6DB05E135FBF05526E761AD51F042189B7EC40886F985E8 +E7CC70EC2B32D65B14A210C1014F1FA6B876D18DA41D1B71C2AD9A43B326D8C2 +3DFAFFF7E53D0A899EB40B131B2E0F15C431821543028054CDEFE6C8FA4063DE +FDE4389784DD11E5702837C6E960588E75A98D785FAF1F929699C6838C595962 +97E3B0564C5717123BAB44362F30E6A77B2207C4A0E40A2F836687DB1F3F2260 +3943692AF84C55ED54CB4410416C16A7B432C109D95A0829F8A0ECC93C11A76C +8DAC117F7F6A46F82CE11EAB0D03FF464DC5C795760604DA6F110474624058A6 +01DA932C344A2151790915F0F94CC6218C4AB3BF4EB94BEA617F32FA1A144CB8 +22473B92E52470E7A0763739F2246ED1B258D437929B64B50026BCDF5D6AFCC7 +8AB7AC3E5C01CCBC45FBE34C9CAE195C19E47DE86A0E8CE440EFECDC1751AC3D +1348B2565D5FC83C6FF54390C45F64B4747B1201D6D08CC05F22046D92B09269 +5C6C446020027E4C0A82D2A9ED165EFFDB9A16E6872EE321A60367201FC60B9C +B93E67674157B6C75ADE6BBFF6F9521063ED6F9C55FA543267394FEE9C1C495A +493558111812560D6AC993DE389F50A238E591EEF12C0E0C24DAD9A862526F84 +AD8A56941AC9F4EDF3C8D452053B44E8DAB1E77DB61878C2D8D1BCD33DF89D42 +A3A2214C358480E8B7C2EACBDFD3763DFB42E969209F34168752CBEF088D6FB1 +75F1BBD64C16238AF9843B1D4F15824C2344AFD14BBC4C873EA51B00B23DEBDA +3C6D03F100D5E89647E4BE015CBDC733242FAFAC048411D04EBF3A26E6871F2F + +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +cleartomark +%%EndFont +%%BeginFont: CMSS10 +%!PS-AdobeFont-1.1: CMSS10 1.0 +%%CreationDate: 1991 Aug 20 17:33:34 +% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. +11 dict begin +/FontInfo 7 dict dup begin +/version (1.0) readonly def +/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def +/FullName (CMSS10) readonly def +/FamilyName (Computer Modern) readonly def +/Weight (Medium) readonly def +/ItalicAngle 0 def +/isFixedPitch false def +end readonly def +/FontName /CMSS10 def +/PaintType 0 def +/FontType 1 def +/FontMatrix [0.001 0 0 0.001 0 0] readonly def +/Encoding 256 array +0 1 255 {1 index exch /.notdef put} for +dup 97 /a put +dup 101 /e put +dup 102 /f put +dup 105 /i put +dup 110 /n put +dup 114 /r put +dup 115 /s put +readonly def +/FontBBox{-61 -250 999 759}readonly def +/UniqueID 5000803 def +currentdict end +currentfile eexec +D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891 +016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171 +9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F +D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758 +469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8 +2BDBF16FBC7512FAA308A093FE5CF7158F1163BDCEEA888D07B439DBD4E8B4C9 +D198C03874B5E6F8FBF4922065A92BC3E66D05DE53971CB1424510E892442858 +D69CE1F76E4DA76C87C763A4B2FE36321E54B1328C9155B8ED6361855A151723 +3386AEA3D042B8D89C8C0E9A33E5DF3B466F7BB8C2C8A4ED4CDAFF55FC6D3EE6 +0AF2CEBFC1AC3A6E6692F8BB81F82D86BAE85016AD62FCB05467082C2E5AD348 +44D1439C2B59F65590E57CA0DE481A7A34E79931B1513C4C30156170409A4BB8 +46D412D1DAF88AD30722F12DBCA1CCC6B4BCC28D06B0D29149DDEC520C8FBA13 +6B82E2E1790F00B216282FF122EF0D47B70A1B29514DDF7C0435ED238C14BDF5 +6DA243117FBEF7398F97EB95597707ED63C6797EBA1B46EA19ABB1DABDA171B3 +16CD500F5D64CBFBE4F9CBC3E66A34427D3C4D0C432710289381F9BFD91B4FF4 +1E3A896C3EEA2F3105C218877D6C0C6B763760FA364D00065E1CAE9DCB5676ED +286A9ED0D1C946DCA6A2A670EE0936FB4706CC62E234CFEED34AA615C48D2872 +A087F30990C85E64BA68F3D5C117123467DB411C9F2D6F6858CC70C1E352C477 +713097321B4C4FD4C5CDE305415F998E7245908EEDE6E056A736EA77BD8C639C +3A79FFD0B74B3D28F0494A115F2841CF8A8827AB5608F96FD8998A5F40FB3DFE +3AA0C7696DE4E1D18DC0D6E84B943175FC38FFC42A9C0CBB13A908978C98BFE5 +034F88480F32B9DEB2FD228FF6CB0B89B045AB02020C82E3F5716DC640613185 +9F597CE262729BC52132F43922B9E28BB71A30AC8709634561B22D13C4FAFE0A +12C4451969226B220038AD8DDA990A4E2CAD53DBEAB698898BBD3046234EB4EA +901287E71CB41296C431383AB85F18882F65BE36923F6C0FD6FAD1834E7C49A3 +915F0967CAD843D98F5EDA7FB9018AA95FD09288C389C787B8AA867AB93A9037 +4C27C9F9BA697832CB16563A9ABD8B10E12BFCCBB77DD4621AEC033B6AB2FDA4 +50261315214412CDB2C5D1B57DE7F9F2FCC409A188D9446FEF85A8DE763F33D9 +36275F09EDF3CB171A635A101EAD6F060DC9BE6905145EC0CCF54EF8D262E241 +435819E659B41B61CB9E114F17F91D218D1D3672CDA2A6661B8A659F540E890C +75BCE6F40DF276462826298055443EAF6A97A3B639564F1D036A48A28EC2173B +5F0E8AF745EBBF25DC1C79527F787471C935A0039F88CF67D8C85F55C0437E85 +A0AD0966B3B8B49865083413CCF6C6C03413E2009F6B7EA4E75F9315FD62E6F7 +3632FC370F02C8F3F33F749C528BA09A16A52DEEA889B8C9C706FE1B702337B4 +ABED409BF1AA464B381AC623CB24C3AD7D8DF4BE30C6B8025DEFF8500676F093 +C723543D4516CCE87362F8203A5ED6DE144DD4B3F5842B93AF9F823C824D032F +B8B36EDD87873C13A24388F4E3D4BFAA98EC418931B48A7905A1E2785A1D40CC +D8F87F568AECF118E028EBD35DFB429307211C728B8F5E721DCB403C46798EFE +2298803734899AE24E7D29FCA020E3AFBF1BB017D277B0A2726E510616270DB9 +0F57C711DED3129CD76B1FA2A0831CC0DB53FC9708B09E3DC2328EFCA5AD3CB7 +ECFB8649FA3FCBD528A7025CA5E6B1E8E7FC9B813499A955B23FD62EBDC47CCA +1B19FF1B882934AFF296494AFF46818B45A1B4DC97855AEB2ADC17B62050F067 +C35CAAA2DB9AFF314DA23D71C0161A21D826E6DD9191E5238F3D5D6A75BBFA1E +228DB0DEC600A1CE3F919737B1FBD6874A3230D8447B926E38FD5EBB4C2C4810 +241E9C23B7D6C8952567AE5A9FA47E201B2959F5BD71A2FDFEB0BB8A56F63E62 +50BB51F3C595E4C95B4A66C798D87E7BC53EC2B92746EB9ED7C3BADDA9B90511 +0C2CEE0A010F64931220EECD1A05C8646E96CF41F547037D91942D89AF32C3B3 +01253A49BFCB8B81E638400A969D501B08CF52BA1B8F3F15B9E44D4BF781B585 +F5E801093146154A1846362BFFCE7EF715BE0F0FABE3C73725C08A3AEF3B5513 +1BEA859353CFC621B780A225D12738EE07898851A251BAF0969FCC9AA2F43EE6 +190674254C69327E8645FB58DF80CB39E4D12D89E940850A3295C329201ECBC0 +EDADCE90C22E6CA38A9AF6BE9C595919242440E0EF04816782FBF0F178A4BB85 +D9890D8F0705A4 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +cleartomark +%%EndFont +%%BeginFont: CMTT10 +%!PS-AdobeFont-1.1: CMTT10 1.00B +%%CreationDate: 1992 Apr 26 10:42:42 +% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. +11 dict begin +/FontInfo 7 dict dup begin +/version (1.00B) readonly def +/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def +/FullName (CMTT10) readonly def +/FamilyName (Computer Modern) readonly def +/Weight (Medium) readonly def +/ItalicAngle 0 def +/isFixedPitch true def +end readonly def +/FontName /CMTT10 def +/PaintType 0 def +/FontType 1 def +/FontMatrix [0.001 0 0 0.001 0 0] readonly def +/Encoding 256 array +0 1 255 {1 index exch /.notdef put} for +dup 101 /e put +dup 105 /i put +dup 112 /p put +dup 114 /r put +dup 116 /t put +dup 119 /w put +dup 121 /y put +readonly def +/FontBBox{-4 -235 731 800}readonly def +/UniqueID 5000832 def +currentdict end +currentfile eexec +D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891 +016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171 +9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F +D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758 +469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8 +2BDBF16FBC7512FAA308A093FE5F00F963068B8232429ED8B7CF6A3D879A2D19 +38DD5C4467F9DD8C5D1A2000B3A6BF2F25629BAEC199AE8BD4BA6ED9BBF7DABF +D0E153BAB1C17900D4FCE209622ACD19E7C74C2807D0397357ED07AB460D5204 +EB3A45B7AC4D106B7303AD8348853032A745F417943F9B4FED652B835AA49727 +A8B4117AFF1D4BCE831EB510B6851796D0BE6982B76620CB3CE0C22CACDD4593 +F244C14EEC0E5A7C4AC42392F81C01BC4257FE12AF33F4BFEA9108FF11CF9714 +4DD6EC70A2C4C1E4F328A1EB25E43525FB1E16C07E28CC359DF61F426B7D41EA +6A0C84DD63275395A503AAE908E1C82D389FD12A21E86999799E7F24A994472E +A10EAE77096709BE0D11AAD24A30D96E15A51D720AFB3B10D2E0AC8DC1A1204B +E8725E00D7E3A96F9978BC19377034D93D080C4391E579C34FF9FC2379CB119F +1E5BBEA91AE20F343C6420BE1E2BD0636B04FCCC0BEE0DC2D56D66F06DB22438 +452822CBEAF03EE9EAA8398F276EC0D92A7FB978C17805DB2F4A7DFBA56FD6AF +8670EB364F01DE8FCAFBAF657D68C3A03112915736CEABAA8BA5C0AC25288369 +5D49BD891FABEFE8699A0AE3ED85B48ACB22229E15623399C93DE7D935734ADA +DA7A1462C111D44AD53EA35B57E5D0B5FC0B481820E43222DB8EFCD5D30E15F9 +BA304FA879392EE0BCC1A77C8392948FE1B07931A19298FB60E443E198089A0A +16D46095558E6DBAB7E03022F2A762470D545CE6B8D931FA66E63DDB04125D5E +A2F86EC0944B0D160100C2DB33B92C400A8CCB715F68477177459BCD57C86D97 +449A25D63E9584EEF820A7AB919BC62D28434BFBA0EC53913CEB3BF4857057BB +3FB43E95092D6DC0B7CE4E1D8C1FDD292F80E973E277C7FCC9878D2F97D0E3E9 +8DD466CCB4EEC3E16429C36FC9583A048A83F68049C707E5FC1473E7DF90125D +BCC3489C04F227D170EA0C1E8E021294FBF894B19E966F94B1F3FF879474E9EA +34D55A9EEB4459E5DBF801CDAB652D681BC673C26D3C73FE1AE6232638CB2582 +F75CA7F1BA6327B0A39B251E10606247224799C0B710586D3E3DDF28A5864D56 +6F5C532735511ECB7C52B7B6D47042B26B5C7B7D12DE631FE3BB27C41F4FB436 +5874CC0D1A182B42E4E0146BBECF156134C82BC2BE6F136D0439FF5B2585A53C +7CB0DA52270915680C1610576D93988FC7CBCE8F8EEAD343E3ECE86CFC8D7D71 +D73F8FAB6D0BDCA8250D0E561E2A9F3A9ADCFCF2099128D1C3565C6F5FC2D898 +DF5FAA3E7842920D073CEFD986A0584E020CB5105DD5ED27FB4BE67A1833D36D +09829FA03EE7D559D5AA98758BEE3BB7AB14D465CB0E4F622144E415EA54E08A +F6B92ECA12783242342904893D044DA384E4836D27E70A5013119C3EE06D6ECB +7A1A81C660EBD526C1AB4DC80B1F6F08FD5A956ECE9F5C5620713064FA149FED +C651186F696F54D06555A5B0BB867298676E550BA31C9E73B10D6CAC28B34092 +D88C7315495CA2904FD702766B36916DBA8F9C96141BBF4788F99A22B2128EE6 +D33810625A52619D8F9D4EEFBC3BB1791F16A55843D2D962DD7B47A86BDA04DD +10ED27986410EBD812D5358C88273B11D50A42EC6C24CD5B9532CDE7B69245BB +11D82287427FD4D49FBE285075E792D2136B2B26517BA631CE1B18D6DE8E25EB +F428F7E6F92D7326042BCA821A39AA48FB5161A4A164671576324451AD1B2CEA +8ED4307F34009E509F8514C8F216279E64F9DD4264FBB9B80369E9D421A4C8B1 +C6541CC186D5DD79F08C05F8FFDF82D681441E33CC88BFC5EC2AAA42DDC6FA2D +2FFC7A8A8FAECAE58E4FE3322A9A919B60856A5ED9A2E48AB7AA6F8A9AE3750E +9197F982FA63E83F5904DA2243BDC25710CDBE486D7503632324555329D9E82F +D0D481C39D69B2B07E8B8D5E45707AD1F1EACB72FC9CC439485BFBA0A3A483B0 +C11D777B299AF2C41314A498BED2B0C45344B4B0EC70FF1471621EB0510C5E7A +A428E73E7B26DFCFAF26E05CFF7B352059CE4F7D5602800A7C3A9FF76CDD563C +79506DE0D2C6234749887D3C6AEACD324E713576C80F68F09EEB7E28F3017954 +4589D1E376F8D39D331883EA23968649745CA791A4D57F849C14270A7D10C746 +654C489FA20720D9F66F5BEA4998E62F824C8C9FF7E5E7E766E78BFFA7F854E7 +682F9C2DDEE0A47ADBAAF1C5B36DAB36E0100B410F3FF7FFA7B4FE27C929AEC6 +2C26F89874C3779C8267D6722D84E3A4B5AABCEFCD9387A2271B455741D9F4F4 +15C872952AA25F65FD68DFE1C70DC2191F6A5455265FD782B7D6A9925E1E24EE +B45EA0E81FE79C48C7BBE6E4AE4168831F603062F30EFA94CA23325BCF3C276F +7837BAB66F8CD747680383D534BEFEBB27D1A058E0BFF85C79EB441997CFBC93 +C03B94693BC7BA69303C8309FB1406B7E46B4174FBD34D5622F9755C312FEAB6 +0A493BB41BB5F84360C968C39B814FC008F19E11AC30561495FD833084192D91 +8D6819866058903A3115609235ABD7347B619B9AE094F72C895AD1E24FE730A5 +0BDDA20CA4F35445C51BB7BF8CCB0300396BB0802AAC0C69DE8C7AFD2CE42F8E +A50B506384AE7F01D18DAC728AB25633F4E79A0A60E94D633C654E06B119AB31 +06143FC14BF6A0B77C87F126AD4B587F3C9A3C4CBB88BE581346A5E39AB305A1 +674BA7C573B7AF96C45CA4F345CBA98DDE62B529FEE651DADF2728D700B9CA6F +6B6F24124CF2CFE7606A2F74394137D058F983D16EB2D6DDC2B242DC504D25FF +8453038701A73CC9CA29C88F8336D3BF5F6F29C72457AFFD93F8872954BB8088 +A81D88E999C7073247BAEA138B5D54D9C9D7915231D82D34C64AEE162672CA85 +EF59F2C6C4D9A18C9066763B8019CB0C02AA37BF555A4FBE726188EE72AF1A6D +3BB381B0E8EEC80C3A3D279473898F49A6B7D2DEFCC84A440D0310117F97E888 +F0BE8962118535BB66021339A2E860971266B0445996D375635A6B5F405E74AC +B7337556C8B8F1DDE03B659B0813848A902C3A8C86E07A1B4B0BC5FB5ABC407A +DD45BA9FC4329A53E770A0E3C66BDC7AE241FA99B78B8EA965D4120DA0C5901A +946707B9C401118D66D046388B368F3B2A203F68BA559191FD092DF853059873 +7042E93EBC70894EB266E2C537157F8CCA745DB70336810D43594CC7B44A6646 +B9B53C09D65A8BC47AA1AB348A470DBFE4F34EC68228E39BEDB25E7BE474815A +05001B662CF3BD281C5D9F322E89BDE1645069F4C765AFFC0C7E7CDBD5ABA6AF +8AB0F162AAF951DDFB7EB1694FC05C148ED39232C205C1 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +cleartomark +%%EndFont +%%BeginFont: CMEX10 +%!PS-AdobeFont-1.1: CMEX10 1.00 +%%CreationDate: 1992 Jul 23 21:22:48 +% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. +11 dict begin +/FontInfo 7 dict dup begin +/version (1.00) readonly def +/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def +/FullName (CMEX10) readonly def +/FamilyName (Computer Modern) readonly def +/Weight (Medium) readonly def +/ItalicAngle 0 def +/isFixedPitch false def +end readonly def +/FontName /CMEX10 def +/PaintType 0 def +/FontType 1 def +/FontMatrix [0.001 0 0 0.001 0 0] readonly def +/Encoding 256 array +0 1 255 {1 index exch /.notdef put} for +dup 88 /summationdisplay put +readonly def +/FontBBox{-24 -2960 1454 772}readonly def +/UniqueID 5000774 def +currentdict end +currentfile eexec +D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891 +016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171 +9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F +D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758 +469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8 +2BDBF16FBC7512FAA308A093FE5CF5B8CAC6A7BEB5D02276E511FFAF2AE11910 +DE076F24311D94D07CACC323F360887F1EA11BDDA7927FF3325986FDB0ABDFC8 +8E4B40E7988921D551EC0867EBCA44C05657F0DC913E7B3004A5F3E1337B6987 +FEBC45F989C8DC6DC0AD577E903F05D0D54208A0AE7F28C734F130C133B48422 +BED48639A2B74E4C08F2E710E24A99F347E0F4394CE64EACB549576E89044E52 +EABE595BC964156D9D8C2BAB0F49664E951D7C1A3D1789C47F03C7051A63D5E8 +DF04FAAC47351E82CAE0794AA9692C6452688A74A7A6A7AD09B8A9783C235EC1 +EA2156261B8FB331827145DE315B6EC1B3D8B67B3323F761EAF4C223BB214C4C +6B062D1B281F5041D068319F4911058376D8EFBA59884BA3318C5BC95684F281 +E0591BC0D1B2A4592A137FF301610019B8AC46AE6E48BC091E888E4487688350 +E9AD5074EE4848271CE4ACC38D8CBC8F3DB32813DDD5B341AF9A6601281ABA38 +4A978B98483A63FCC458D0E3BCE6FD830E7E09B0DB987A6B63B74638FC9F21A5 +8C68479E1A85225670D79CDDE5AC0B77F5A994CA700B5F0FF1F97FC63EFDE023 +8135F04A9D20C31998B12AE06676C362141AAAA395CDEF0A49E0141D335965F2 +FB4198499799CECCC8AA5D255264784CD30A3E8295888EFBC2060ADDD7BAC45A +EEEECDFF7A47A88E69D84C9E572616C1AC69A34B5F0D0DE8EE4EDF9F4ADE0387 +680924D8D5B73EF04EAD7F45977CA8AD73D4DD45DE1966A3B8251C0386164C35 +5880DD2609C80E96D1AB861C9259748E98F6711D4E241A269ED51FF328344664 +3AF9F18DCE671611DB2F5D3EA77EE734D2BED623F973E6840B8DAD1E2C3C2666 +DD4DD1C1C8384F906A7BAACDF441BB0AAEA2A697E453D89E61340D3A13F615FF +3E64BC24A22786C838BF3BAF6B2829B5E16372EE3B9347142EE6853C37C61423 +540C793D56EF624F68D2BD0C0A43524C3DD7DE1A30702B79032D9EAF715668AC +6701F3B3E54B877104A17D328FA3B6F17B484771428F11365153D779E59132B8 +8AA4D47495417DC5F6CC5315B779C2B12A4EA32D16BE254D2EF2E0FEE0021791 +B46226F1A45386FA41C56864FD6EEBE29E98E00C279EBA6F17ABFC1F8E0519F0 +A9E5A7FFDBFF06D6475D65A977BEA0F5DACFAB70461E8E08B1BFD3D31ABB37C0 +5C42D17ACBC194B89A50063B9C2F02ED26A99FF436DFEACD70511658C9554FA6 +6EB73CA3F0A8F17C8C34B79C6A5BB7C395190BA6822EBBB81A40EEE29A69E316 +9AC9134E9DF5007B32E8CFA45579F310413D25E82691774DF4B83610A41BCFFE +E2119028B24BFAED5197C3ECAC5F0D0D66D17E69 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +cleartomark +%%EndFont +%%BeginFont: CMMI7 +%!PS-AdobeFont-1.1: CMMI7 1.100 +%%CreationDate: 1996 Jul 23 07:53:53 +% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. +11 dict begin +/FontInfo 7 dict dup begin +/version (1.100) readonly def +/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def +/FullName (CMMI7) readonly def +/FamilyName (Computer Modern) readonly def +/Weight (Medium) readonly def +/ItalicAngle -14.04 def +/isFixedPitch false def +end readonly def +/FontName /CMMI7 def +/PaintType 0 def +/FontType 1 def +/FontMatrix [0.001 0 0 0.001 0 0] readonly def +/Encoding 256 array +0 1 255 {1 index exch /.notdef put} for +dup 78 /N put +dup 105 /i put +readonly def +/FontBBox{0 -250 1171 750}readonly def +/UniqueID 5087382 def +currentdict end +currentfile eexec +D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE +3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B +532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470 +B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B +986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE +D919C2DDD26BDC0D99398B9F4D03D77639DF1232A4D6233A9CAF69B151DFD33F +C0962EAC6E3EBFB8AD256A3C654EAAF9A50C51BC6FA90B61B60401C235AFAB7B +B078D20B4B8A6D7F0300CF694E6956FF9C29C84FCC5C9E8890AA56B1BC60E868 +DA8488AC4435E6B5CE34EA88E904D5C978514D7E476BF8971D419363125D4811 +4D886EDDDCDDA8A6B0FDA5CF0603EA9FA5D4393BEBB26E1AB11C2D74FFA6FEE3 +FAFBC6F05B801C1C3276B11080F5023902B56593F3F6B1F37997038F36B9E3AB +76C2E97E1F492D27A8E99F3E947A47166D0D0D063E4E6A9B535DC9F1BED129C5 +123775D5D68787A58C93009FD5DA55B19511B95168C83429BD2D878207C39770 +012318EA7AA39900C97B9D3859E3D0B04750B8390BF1F1BC29DC22BCAD50ECC6 +A3C633D0937A59E859E5185AF9F56704708D5F1C50F78F43DFAC43C4E7DC9413 +44CEFE43279AFD3C167C942889A352F2FF806C2FF8B3EB4908D50778AA58CFFC +4D1B14597A06A994ED8414BBE8B26E74D49F6CF54176B7297CDA112A69518050 +01337CBA5478EB984CDD22020DAED9CA8311C33FBCC84177F5CE870E709FC608 +D28B3A7208EFF72988C136142CE79B4E9C7B3FE588E9824ABC6F04D141E589B3 +914A73A42801305439862414F893D5B6C327A7EE2730DEDE6A1597B09C258F05 +261BC634F64C9F8477CD51634BA648FC70F659C90DC042C0D6B68CD1DF36D615 +24F362B85A58D65A8E6DFD583EF9A79A428F2390A0B5398EEB78F4B5A89D9AD2 +A517E0361749554ABD6547072398FFDD863E40501C316F28FDDF8B550FF8D663 +9843D0BEA42289F85BD844891DB42EC7C51229D33EE7E83B1290404C799B8E8C +889787CDC0C51802EA1E0C63E6DE20980D3DD206F053478FF5AE66A7217C1CE7 +68644C66840D20118D0A093B41EDD90B9A2C84D1C95BE367D2D730A7532D1BCD +155B8BAD768579F7607585502BDBA41524013169F52BB5331BA3C6959212E385 +34CEDDD5B83FD29163DD01344B92D28E90DC4A99777B509806C172CCDC104C63 +AFE893E8F00751F74D252287C59E386E82EDD61488DCAAC861EADDA2B2A283FF +673AD4AAEC9ECD2E02D674E7061C7787087B46E9ABCF92E937EC49DB4E30059F +7CE634BAFAE93267F36F4E6BB4CC8CA0BB747FC835BFEDFB293D9909E0370650 +306301584F4D7D20A25EC84F81E8EFDD6962563204FD5FBE497C0B3D540A4B30 +ABFDECD785CDF6E16F66F2E0923DACD55420675519148DBFBF59AA29C09CC74E +5AA941919F8E64C1A5F519EC055BD9BD6F2E9F615A5C5AF2CB23F041D7604742 +629F7BB50B4C6655E64234BA0E50E6731901CFA91A64787AF27139E8DEAFB2CC +4BE10D11DE595818B0CAB56D23F06413295908CDA80C0CBB8353CB1746926B95 +6F04C1DC7F616C54F1FB17736269A172E1E185D03C7DBE8CC7D59955E345C5CF +459932BB39DD9EA8A13FAB8208BBBBF6D5C2F782203A16688FDCE85DC2374066 +3B18B0486420C54CB408E08A04585C202D44E587CC71EC88D6E9EF191B925977 +4738B02B21AE9FF20CAFD3E0E2BE295E5E09A8B2A5037C8CF85F47CF5A72798F +A1D5E1B48B93D61A916B381C58F80C548CBE8A01212648BF4C94BDAC4945798F +1A0999EFB22A1A63BBFC7CAC99CCC5 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +cleartomark +%%EndFont +%%BeginFont: CMMI10 +%!PS-AdobeFont-1.1: CMMI10 1.100 +%%CreationDate: 1996 Jul 23 07:53:57 +% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. +11 dict begin +/FontInfo 7 dict dup begin +/version (1.100) readonly def +/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def +/FullName (CMMI10) readonly def +/FamilyName (Computer Modern) readonly def +/Weight (Medium) readonly def +/ItalicAngle -14.04 def +/isFixedPitch false def +end readonly def +/FontName /CMMI10 def +/PaintType 0 def +/FontType 1 def +/FontMatrix [0.001 0 0 0.001 0 0] readonly def +/Encoding 256 array +0 1 255 {1 index exch /.notdef put} for +dup 78 /N put +dup 120 /x put +readonly def +/FontBBox{-32 -250 1048 750}readonly def +/UniqueID 5087385 def +currentdict end +currentfile eexec +D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE +3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B +532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470 +B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B +986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE +D919C2DDD26BDC0D99398B9F4D03D5993DFC0930297866E1CD0A319B6B1FD958 +9E394A533A081C36D456A09920001A3D2199583EB9B84B4DEE08E3D12939E321 +990CD249827D9648574955F61BAAA11263A91B6C3D47A5190165B0C25ABF6D3E +6EC187E4B05182126BB0D0323D943170B795255260F9FD25F2248D04F45DFBFB +DEF7FF8B19BFEF637B210018AE02572B389B3F76282BEB29CC301905D388C721 +59616893E774413F48DE0B408BC66DCE3FE17CB9F84D205839D58014D6A88823 +D9320AE93AF96D97A02C4D5A2BB2B8C7925C4578003959C46E3CE1A2F0EAC4BF +8B9B325E46435BDE60BC54D72BC8ACB5C0A34413AC87045DC7B84646A324B808 +6FD8E34217213E131C3B1510415CE45420688ED9C1D27890EC68BD7C1235FAF9 +1DAB3A369DD2FC3BE5CF9655C7B7EDA7361D7E05E5831B6B8E2EEC542A7B38EE +03BE4BAC6079D038ACB3C7C916279764547C2D51976BABA94BA9866D79F13909 +95AA39B0F03103A07CBDF441B8C5669F729020AF284B7FF52A29C6255FCAACF1 +74109050FBA2602E72593FBCBFC26E726EE4AEF97B7632BC4F5F353B5C67FED2 +3EA752A4A57B8F7FEFF1D7341D895F0A3A0BE1D8E3391970457A967EFF84F6D8 +47750B1145B8CC5BD96EE7AA99DDC9E06939E383BDA41175233D58AD263EBF19 +AFC0E2F840512D321166547B306C592B8A01E1FA2564B9A26DAC14256414E4C8 +42616728D918C74D13C349F4186EC7B9708B86467425A6FDB3A396562F7EE4D8 +40B43621744CF8A23A6E532649B66C2A0002DD04F8F39618E4F572819DD34837 +B5A08E643FDCA1505AF6A1FA3DDFD1FA758013CAED8ACDDBBB334D664DFF5B53 +95601766777978D01677B8D19E1B10A078432D2884BB6D6F58047310ED447C2D +173BAF532B6DB146CCC30BC6A7D051EC0926D9E9EC4563A28AF3595B6EAD2A62 +50D7E40CBDFF6315034F4912283FA1ECDA2EB2116AAFC22D6AA21A6184C73C53 +DD5EF32DF7EF78643130566425C30C0FF7FA3E6EC52BF3EC667039069C9E5068 +6F3DFC7B7627B440D3A11CFA663E7800EABE7E482CA0D2C36D44A41F1E7C75AA +BBB50509CA3D5CF1D48DBF16216D6F4A333C1589BA505632E971160B5A7A6878 +DA2C761EC94DA56899D9B36225F5A2593992F109B24C1EC5BA6FE987980CE9CA +515E746EC2AD5AED6400F7A37162802AB20CCB2EFDBE7EF9A22B4115CB017E22 +92A16915E7AE3C62570FB2A32F09A3039BC8D4A5E9231AB53979F7D5BB38414C +1C85F6E7C2633C405CDCF00B3AF9257751C58019ABA3A5A20F70BD1BEF0C98E3 +A5DF3305E2C45A2FF4F4E6C93E17FEAD939F5209D073147C0156D6E30C3FF76A +1DD2E2EA5016DF8E5871999576CC60DA9265C5851009556F2E5D7B6B57D699CC +A7ACA5DE3BB82A0AFDAEC183B39000EA266110DEF458C010A68DB6849BDD6F5F +75822436FF959A12653132A700F442D94BA22E4A773AB957951742502458ABE7 +B1DEF93736318D55729497E94147AE54657F420140B87E7F64F20D22CEC43E23 +5DB4C019F50FCD5F11903DA60B1203C73B72A2D422A40F2CBB98ABCAD50A5EAA +1034E544379E6D7EF855D9E9AC2D0EEFF3935820E2D83A451345A4CFAC6D5549 +70F87DAAF9833E9843A098E5B931CD240492ECB15E4405498E7871AA41A98D68 +2ECBBFAAE793C47D3C84B94153DC72D470207AC1B606B6FC7A1DFED6 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +cleartomark +%%EndFont +%%BeginFont: CMR7 +%!PS-AdobeFont-1.1: CMR7 1.0 +%%CreationDate: 1991 Aug 20 16:39:21 +% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. +11 dict begin +/FontInfo 7 dict dup begin +/version (1.0) readonly def +/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def +/FullName (CMR7) readonly def +/FamilyName (Computer Modern) readonly def +/Weight (Medium) readonly def +/ItalicAngle 0 def +/isFixedPitch false def +end readonly def +/FontName /CMR7 def +/PaintType 0 def +/FontType 1 def +/FontMatrix [0.001 0 0 0.001 0 0] readonly def +/Encoding 256 array +0 1 255 {1 index exch /.notdef put} for +dup 49 /one put +dup 61 /equal put +dup 65 /A put +readonly def +/FontBBox{-27 -250 1122 750}readonly def +/UniqueID 5000790 def +currentdict end +currentfile eexec +D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891 +016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171 +9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F +D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758 +469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8 +2BDBF16FBC7512FAA308A093FE5CF5B8CABB9FFC6CC3F1E9AE32F234EB60FE7D +E34995B1ACFF52428EA20C8ED4FD73E3935CEBD40E0EAD70C0887A451E1B1AC8 +47AEDE4191CCDB8B61345FD070FD30C4F375D8418DDD454729A251B3F61DAE7C +8882384282FDD6102AE8EEFEDE6447576AFA181F27A48216A9CAD730561469E4 +78B286F22328F2AE84EF183DE4119C402771A249AAC1FA5435690A28D1B47486 +1060C8000D3FE1BF45133CF847A24B4F8464A63CEA01EC84AA22FD005E74847E +01426B6890951A7DD1F50A5F3285E1F958F11FC7F00EE26FEE7C63998EA1328B +C9841C57C80946D2C2FC81346249A664ECFB08A2CE075036CEA7359FCA1E90C0 +F686C3BB27EEFA45D548F7BD074CE60E626A4F83C69FE93A5324133A78362F30 +8E8DCC80DD0C49E137CDC9AC08BAE39282E26A7A4D8C159B95F227BDA2A281AF +A9DAEBF31F504380B20812A211CF9FEB112EC29A3FB3BD3E81809FC6293487A7 +455EB3B879D2B4BD46942BB1243896264722CB59146C3F65BD59B96A74B12BB2 +9A1354AF174932210C6E19FE584B1B14C00E746089CBB17E68845D7B3EA05105 +EEE461E3697FCF835CBE6D46C75523478E766832751CF6D96EC338BDAD57D53B +52F5340FAC9FE0456AD13101824234B262AC0CABA43B62EBDA39795BAE6CFE97 +563A50AAE1F195888739F2676086A9811E5C9A4A7E0BF34F3E25568930ADF80F +0BDDAC3B634AD4BA6A59720EA4749236CF0F79ABA4716C340F98517F6F06D9AB +7ED8F46FC1868B5F3D3678DF71AA772CF1F7DD222C6BF19D8EF0CFB7A76FC6D1 +0AD323C176134907AB375F20CFCD667AB094E2C7CB2179C4283329C9E435E7A4 +1E042AD0BAA059B3F862236180B34D3FCED833472577BACD472A4B067A46F8EE +2AFACDE591ADF7304939394F221B5B9B316BC47DC7772711A35B466E1790D4F5 +C02C57DE57A0498128C6041CB7E702F4D8500433633B8358C438237BBA39C647 +F659FACF75574B1AAD3FE61FB97D6C5D0B19E4AC762321891092E73D192C4816 +2F14A6FFAA1B22AABB65E8F611F1E9AF66DF68DA1B2B64B4CA886149E8266C52 +730D764C6CF54810444A57216DADABF4EC50906924AD855671E99640B766EB71 +3EEF8FA5F32EF14D500F19062EF03239BEFAA5947159E6F259C2FB97094E8C09 +7633D28C3624C8B26E5A3CFDF00EC45E517FB1D1E0545F9C3CAE39BBFF7591A4 +E52CB048ABDF0AA00C424283D6C3C021372DB35A687534F63EEF63F485787E5D +CF486CE7876346D49420D8470DCF4691B30FD6E008234D8A78CCA36E5F2549F3 +49E9539C5ECB8EE8293E78087BA7268A2A2171DD78B89324434882FF1B178896 +46EF7DC2E2A21A3BDC179CE18281C559A36A3B7C2657C9D3C7AFFAE41C595718 +5793126983556ED60F78E705BF92891E7179770031911BE72F015C03E41E3AA9 +039EAB3368550468F3BC8C3D9C3721948A4CAA3DDAD53C03A52C6A49DA124943 +064864E19F7A27DDDF0D849E618D9A0B2171E07891F01B366286F392864BCB03 +1DE042697669C9CEBF7859779C55CC044971663A9CEA6A1AD5B2C5CFF6DC5E02 +DC8889217F7ECEA1497E35AB9E43A92EAE79E1560CED24B5B1FF08997BE3EAF2 +68BCD6CD5D5BA8121A +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +cleartomark +%%EndFont +%%BeginFont: CMR10 +%!PS-AdobeFont-1.1: CMR10 1.00B +%%CreationDate: 1992 Feb 19 19:54:52 +% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. +11 dict begin +/FontInfo 7 dict dup begin +/version (1.00B) readonly def +/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def +/FullName (CMR10) readonly def +/FamilyName (Computer Modern) readonly def +/Weight (Medium) readonly def +/ItalicAngle 0 def +/isFixedPitch false def +end readonly def +/FontName /CMR10 def +/PaintType 0 def +/FontType 1 def +/FontMatrix [0.001 0 0 0.001 0 0] readonly def +/Encoding 256 array +0 1 255 {1 index exch /.notdef put} for +dup 49 /one put +dup 58 /colon put +dup 69 /E put +dup 76 /L put +dup 80 /P put +dup 83 /S put +dup 84 /T put +dup 88 /X put +dup 97 /a put +dup 99 /c put +dup 100 /d put +dup 101 /e put +dup 102 /f put +dup 103 /g put +dup 104 /h put +dup 105 /i put +dup 108 /l put +dup 109 /m put +dup 110 /n put +dup 111 /o put +dup 112 /p put +dup 114 /r put +dup 115 /s put +dup 116 /t put +dup 117 /u put +readonly def +/FontBBox{-251 -250 1009 969}readonly def +/UniqueID 5000793 def +currentdict end +currentfile eexec +D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891 +016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171 +9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F +D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758 +469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8 +2BDBF16FBC7512FAA308A093FE5CF7158F1163BC1F3352E22A1452E73FECA8A4 +87100FB1FFC4C8AF409B2067537220E605DA0852CA49839E1386AF9D7A1A455F +D1F017CE45884D76EF2CB9BC5821FD25365DDEA6E45F332B5F68A44AD8A530F0 +92A36FAC8D27F9087AFEEA2096F839A2BC4B937F24E080EF7C0F9374A18D565C +295A05210DB96A23175AC59A9BD0147A310EF49C551A417E0A22703F94FF7B75 +409A5D417DA6730A69E310FA6A4229FC7E4F620B0FC4C63C50E99E179EB51E4C +4BC45217722F1E8E40F1E1428E792EAFE05C5A50D38C52114DFCD24D54027CBF +2512DD116F0463DE4052A7AD53B641A27E81E481947884CE35661B49153FA19E +0A2A860C7B61558671303DE6AE06A80E4E450E17067676E6BBB42A9A24ACBC3E +B0CA7B7A3BFEA84FED39CCFB6D545BB2BCC49E5E16976407AB9D94556CD4F008 +24EF579B6800B6DC3AAF840B3FC6822872368E3B4274DD06CA36AF8F6346C11B +43C772CC242F3B212C4BD7018D71A1A74C9A94ED0093A5FB6557F4E0751047AF +D72098ECA301B8AE68110F983796E581F106144951DF5B750432A230FDA3B575 +5A38B5E7972AABC12306A01A99FCF8189D71B8DBF49550BAEA9CF1B97CBFC7CC +96498ECC938B1A1710B670657DE923A659DB8757147B140A48067328E7E3F9C3 +7D1888B284904301450CE0BC15EEEA00E48CCD6388F3FC3BEFD8D9C400015B65 +0F2F536D035626B1FF0A69D732C7A1836D635C30C06BED4327737029E5BA5830 +B9E88A4024C3326AD2F34F47B54739B48825AD6699F7D117EA4C4AEC4440BF6D +AA0099DEFD326235965C63647921828BF269ECC87A2B1C8CAD6C78B6E561B007 +97BE2BC7CA32B4534075F6491BE959D1F635463E71679E527F4F456F774B2AF8 +FEF3D8C63B283796A9AD847424B4E6508546C36223A3B17EB82A56592F27FC27 +F1D49D5FF4BBC0E16231807AF7E195AA7D0D01C7566243448B222D57B811EAE6 +DE9370F84E207DC9BEC731AD6040FD9B804FA14CA264B73136F9AF34390319F6 +A543D5D4D7FDDDF2F76651E557683614521110DEC1CCAC426117DDA7D6CF1B8B +7879B21FDC78BAB3C944BCDCD6A65B67F3692F0A8D5E36FB783A63D4FBC9842E +2CBC2720A7206F42A99AEC79FBBA92A27965AF40A71E05E4BA8D7FC58C828491 +84A8EBDB90B1167333987F7D42A76E9C5C5A842EF91A19C55CCA6ADEB88B59E2 +4FE4A96A8CFF51A1BEC1F1A6A1A5A5BFB54A1BE8C704194D72A79D33F099107F +153E3FFC70BED6D04DB4820FDAC002428C6741B91D8206296D827D3171351E85 +39BB0DF1C2457E876D3A2E7E499D9D4104762FD19BA0526D38D2BF751EC56EB5 +C80EE2A7AAF2CA12D1EB4548266CE8C0D2F93158A6728EB552FA09202865142F +E8D1300D637E64C338DCAE28398846CB3752FA92F87103C231C0D072E20D0E00 +0DBE4A0656BE7F021DB863F63DE612622FCCA2C5462EA92B205DD2FB6D547ED3 +D559010FF2C0CE42AE6B9BD22EC4FC4732685264CDB9505BF091F72A7C8D0811 +F4C992268C3BF83A5D3D5D9829376AB2AFE27452B4836A97676CB1481C74C2E8 +B07192913D1A14D8D8F824A51C94A7355F79D06964067D8574F19CAB46BEE616 +8EAED2B0EC9606F6300D6B118150CB8BF0C629CCCB888E134FC6B7BFBE717D5E +3F29953608F9A0CB2F78F3E8686D2398C6351B1520ED246A051F08F7407C6FEB +2E343B68B5B2747911C268CB5D5F5E5E079B7A9B78EB25A0AAF0202885FF6B4F +D4EE4053C1BF14B636D49EBCD66F539D6A105C9480DE278A8368D9D43A2BAFA4 +423177A9CC4C6F9D14DD64DD2D471F47B2178FADBABA51B0704DEF5FD5082183 +D579379394AC02A4443E54220756F2283B62A4AEC4D2AD2C9042139D5E7DD439 +1957E2FFE82B94D83A68432A9209DC512B758FFCE76ACEAA28384FDEBC3C1FFC +908FCFBAB8252F56989F4B39E08CB46581C7B319BC943B68E3806A2E47D46949 +B4376F8D3A429D9AC37D580569E0B5F37A43352667CAD340C0D42D850BD31A8B +48230E486B090F5A01B52642675A9683CB1CEFF8B8F566DEF92426F5619284BE +DF7FAE6328A4EFF4D22180BDB1DC95F824CACE70CAA7B7375B6C19C1A4ABB625 +65328322752746417D1A8B515A54A33560D35C21A968A12EB67A32A2225417F5 +6C0E1508981EC8BEB0686DB4D93048C073D568CEF766E828D1441E3A2454BA5C +BA431C301CD88C978752A46D7F2BFEE446BAEAB8EE45A06D6A66C4A23F5AABC7 +93DF4217BD2ED366BCA999E0BB60203B63CB2A8EAE81BB8585FA46E0610A1D84 +244D3C4020675A590BC0487C37C5E5198AF97536BD7ABA7598367D01FDC0394C +CAB2CAF57A7FD03042D4B2253FC36D8D13014BF2B2A2371E9B25E19B549B3C11 +C7969FFA8BE3EBC2E7B48DF2D05EC5BB2BF7E09D8F7CA0A00554818293B6C57F +23CA8859067F9F9AEEC55D52D39540E65FF1945537CCBAC8A23BC4DA4EEF0D23 +CB7538B1D3B17660EAD2E96238B2EC2A9E96463C42E4C0A524AD926D2C18F06A +643A71EEEFDCE0A625DC1B798A54FFE46EF1540C276D35603AF5E4FF60BACA91 +63B83BA11CC111ECC9B9493614D8058D6E63494D76C46FC72BC1660F5BB458C5 +6C76A1DBA41FF320A1CC7E773F19C1098BDD546CE02BF4BCCEA9367818C4A73C +065B50A6DDAD9C9133C1BCEC94D434F2162F10339EF3CF9970A8A014981A0091 +9D7B84687F9FA260645329BB9475D0F614EEC0CF4008CF9AFDF5AB764EB5600E +B1C5C3582FA62969DBE75AD10DC185C84876D3048BBE52EF2B5154E3B6CABE32 +A355297945A46C90F9B15700393BFE819AD5BDD45DB6B18C28ECDF4060519AC1 +FA6008912A6E3B3C9B9D2B1569C4ED464177D9A9E7373DEAD063019202FCEF66 +E46DE52C94E244220F876313A29DEF603EE15E50DAD2B80FB8509A408AFFEBA1 +C09696A8DB139615A79F876CE587D64B3B0DD16A12BF214711BC9A95749C0A50 +4957C46F161C2B9F03570ABB8D13A7A47459956A9054F784E84E625626F5E07D +048ABFA3DB872A10B983010DD07A9A6A3560237BAD86CCF36A7D962DBCEA056C +E5A9906425EFA567AFE3AE78F8BAD8DF8F0C9175DCC6476E88830439E17CD3AC +817A26271FCEFC43947398AA4FB05632F42D3B7F50B31BD87821ABB0E26DB5AA +82A3AEC96274BF46B1EF8F8B31C23B663EE7928E9B494D7E92A64E1E24FA2E04 +C490C818229A1FBA3047EF199620A34D30579AF913EE5CE8F61A9BCD82650869 +50F5B778A908B12FA26B0BAF84BD49335A41D1A1DB9A0D29561F627E5595CD9D +B7D118FD9B0F93FFBA84B7A01FB5751F7DE66791B4C15D237F13FA6D241A106F +54DCED67BA8B9098772E8A2A4F3E386F1A07E6ACA51625A0B88574817B2DB2D1 +5E6A886A3A2B1EB430E65AC8CA85E84B4399DE743A7AACC9C8EECB65AA664852 +1E570B4B811F1D54D835405A1098D5A6E7FBD9CAAA06CD4AE31F61EED7B110F9 +B2D0D62344F2747733CAC06FA3BF0D382FA57C0DB06D221A68C1FD482794D040 +B9DFADC8BE91BFB567037D7AF38437DC5CB3F199B4145A39525D84B718789D7B +DFD204ECC8D57BCD782B33273DBC8C19DD039818E5FCC2B42A8A02DCB25C02D0 +C62F05672019AB9EA47FCFECE51A2AC57FD91C2750445BE71F3BA4BCC6A39564 +94F1722DFFC88405B24B8F84ACB186E45D7BFB875221191389EDD93265ECAA31 +4DE6E01F832A4082D00F93DA2986C305005CADAA21122888850F111116609262 +D11A6CAD8EA360E4D689C6F0682329EDBE8874E7677833CF69E84F58066E350B +59B3093AE0FADB7B5E7FCEECAE7E5186F7454B90B2DAC300984E265241CC9C03 +A250DA9D52EB0EA98359E9D214B4845DE842A1A1FD239C902B7C57AC85DEBD86 +0D688070B8BF3C46A31EED3595EBA57A90B10815EA2DFA30C77D6AE691AC3558 +D942BA1C98736481B8D49181D105223610999B164778B7DF4CB4B363984B329D +5002DB59F911881757E585F6DFFD473AC59271AE10BBDD03F298B1D8F657D003 +CE328C5C8AB82D6DF61B75482EE3512F2B1CC2563A3B223B6946299A0EA8A5C9 +0D8DE92B45B1DCC2236F0E9C1E1D6ADE07FF9E54AF3D1921AF8816098121D422 +E17F0AC768FB76C18B37067A30FAFD8B9BB0AA3618060743677A37A423E3AA76 +ADB42240A4F4C6D3FC8C6E2D53A761AF56835A119DB2C0F8CF3A9C3C52259B81 +4707D362316611B2465066029E6A4E027CF531F61E480C0F317EF974106DD579 +7B6C6A786425B4ED181D376DA0C6FF4CFC9475D6FDAF36713E98A41B5468C475 +A93FA81456B88A545CC104918CE7943BC6145C09E9BCB41996846584296E6467 +DD61BD1C8C11526815F307056D976223573679D9E53B05BB28C70CE79989FBBD +C94F373C656E220F22181F376842F107D49C911A22E8C00BB3C6F8A39A0DA4E0 +897E100D8C24CBCE7E56376742E0D6B6D015259A6DBA011841389DA57B38F765 +6BAA64642755B3F02D0ABDB1EE2B3D3D1CC4EACB600B421899B525BDBA8A3EEC +F8606ABF159E725829D8C2D94EDEB8A08EBD232869F484EBE52AD3964F0DABBE +FDBB96B87A0F26E580A4568FC1448FE244BE6D3C933E099370E51961E94321CA +D06EECE177A83955CF34E50765639D9B10EAB1195402E09DD62ABD10343AA8B8 +236C4ECFE2948D3AE120B5952811C67624D6310BF7FEF0EF84D087F8352964EB +854ACD8297A4216E968EF9EAD6175A328DCFF160C2AD57BC334CAA97E5ECAEB8 +AB748AD314399B05A73B708F6DE4D169FA0937087B2696132E35A545D75C364F +6191F8D24FFF9E2123F0B6B93FEF74083D09C8FA03C6314E5D12E17314A3A34F +1B9ED5F142DB58133BD2ABF442E2EC53C73DF92E0461E41619B681DF7E197CA8 +7573C5620C87415DCCC307999629CC1CAD4DB45C6C11C081FA8D7EF2EC273DBE +694B47C8070D459DA52337A98B7494C3DA122E3825724CEEF16E8D827298603E +4E3400D203B6C6C63AECDD81FF32647970110E2FA5D3957DBF4DBBAC123A185C +29F7FF523496C3EDF3FF654226D59FA1604F236C8B64BD1FF65C267A3BE85304 +E85BF46861E894617921DB04CF579346C1E6FF1D3C918A5755F6A14CC74FDC31 +525A22C6EE7DF43C42E48AB9B25A955199782A2C0F25801BA4A786E3D1C0097E +12E4F40FA8ADEB27E8E75180DB8F4DBC030DE7FB6CCEE40DB1999BD513830E55 +AF0B63AC4A68C7F42E8E9777DAC525049D4161CA75CF17F70B41C46EC13DA705 +38559CE5E40DB01230EE97F5DFD0C8AAE5F44920815FF7022AEF920F8E41EC0A +5FE2644083E61C7C55A5AB0B72D44E597FEC19F9EC854AF6331D392A4DCC5FC4 +0D441D8142FF54BDBD3B61E9F92327D1FD99520DBA5A2FFAE25145A156A6E849 +CEE3AFFAA6208D4B749C3587A08F332715423D7B38F0DFC2918F13E6F8437BB6 +7206BC3056AC89055BA4482AA8DF03175910D74870223D08DDBC912F28CD1CB8 +1DFA68CF20EAAC54F4D03FB63087914D45D025C58842BF852403DFB47E5FD7D2 +AD6F8287771B48F766B7B861C8C3F3C0FD9A3EA1B9CAA59640880AC062797956 +5149AEDAD4FF89E7C44B987D87BF5D77FC2738E105D9F519E73398F770436AE0 +04C6A2F099AA64E028CA9D4D311085B1BBE52488B48D65158491CFEF6BE711CD +0961E16DE00FBEF950E6D9718B6537A72AA4DEA5BF1BACB3D42A63DA6B0D2576 +670D61C3D01A97596269ACD7DBDA1D111E546F9517636D7AF4F2F6BD0A66704A +7CECE9CA2A3B2C6CDED98591D003A40D62534A121EBF6DFA4CE4CE8C1ECF1E60 +54DECE28C37A1A40A4A104D81ED322BE269BBFC8D027565616DF8B16DD39299D +31B080B08C602F248B8347292BC83605180DD66D2572613A981489197EFB3086 +1C9CE854C77AFDA1DEF0E077BCDB8628627C336852B41824BF1105CD5E14C767 +AD0DC9E17E5A143809510B05B491CD11DE8F753358607387A412ED12015D9F50 +CA9DDB4D0A93B557CF513083845E6B01304FDB02C66521E7ACAD1BB31F65DBA6 +DFD540C913EA6660049823F4A8F6404B5A90AC275F4FBB7CE4BAFEB5F7648155 +43B91EE2901C0E1E0D125505648DB769DFE315D82AC12B181E6A1DCC80D0F2E7 +8E663E5ACF4E0276024221B97CAD3DBB10DFA7B38242D66A9FFE63D59BB14352 +F1272FD5CDFEE96577AEFF8C5B1905943A2429E361D0FD8A6C4505D1273C4924 +55D2BD27BA14BC988AC93BFE6BC4760B840EBD3D0ED8A99F616EE661E2CF4224 +B9E3DE348AE73850B497DDD1EECF1D724EDB605ACA755726E95E9638667E83F7 +D3CF3E51FBE5F594E992B9EB366F2F37AAFBAAA7635D2EB52BA2A9A3E11E77CA +4890C16B27B2D5C7F94993D19CABD4FB08A039D38FA8F68E77036A9B81C07EDD +13F1A5AF38FAC067123EE9A6960AE0295DC1B540D5975B3EAC9FC3173D7ACEC6 +35B19FE0DDD60DC8AD9B7B2EB2F3C54A8CCCFCE1F028E818044B8A4685399523 +2C0BC7163253ED4A60D2A534B8CCB9C4D89977CA0D90E99B09BE9F6A11C34119 +AF96944503B93165579A74FB582950616D6C87AE28510CB208DD6DD5C3600A3D +4EB1E50376D134EA0FC4736AB6B17151DE4C090E99D6DA61F625F9485FEA4439 +356FC0FF79DE83EF68369B2D7693DFCC50D0E08D19EA7CDC2F994CC33A0161FD +5A77D6033C55F8DF709FDEB926003BACB4135112F6A9B7332398E0B0BFD2A4A4 +32F4C849EA782C09C95F40C81FCC85C85D959D1439C8CC0741BBE9F1B7918591 +17A984284D1685E4F87FB25C94930A145DC81194265E5F512FD3F92776B9E609 +CC5F9F130ED68DD5EAD682BE784099F7ADFD8ECE98A84F143F786D42D6B09B9F +7322FF73D41F13F3F514BEE62E6A55A9CF858C5BCC1848697DF341538CE900AB +AAFD3C5065C6F3956C6BD43CCCEB3B2CCFA512581D949F8423EF310760E9D47E +999D350AE071209203F6F290CCC883C2EA507D4515C3FD31703B3CCC76490690 +CEC6F19FC9262AB7880420850959A2A03B14624D5F64B19D0EA0DC847FFF2859 +7F04C7109ADB23FCD15BE995F1C6297DAC4911DAE23D6FB3A482B7E209BC4F42 +58D10660BF79C7578C805A9F2F612C1367ACDA47289B38A67C4194BCA54F0F4F +E0C90C7E1AE9B5469E9116FE57CEC1071161B7C6D97B646ED834A3294BC7EE71 +92399D29A1FBCBC93181FC63F1D9291F87CE554F565B969DEA613AA2E5B78D9D +E97BE0C0B30FB988205AB75454ABDC070E27ABCAC944FCD61B77F84B3486042B +71D2925577F2EC12C8FCEF863CC2F912936D7EE2C7C615A9794514DA2C3B70F2 +F074660B9A64EB7D75B571260BF788D36416E93A933F426233EFB74DD4B4D924 +7118386EE4D5762562EF359C52E71B75C617701661963AA4A855D24C75FF4E13 +AB8D481111CCB117100A6A1DE1A296A013A9F3CD7CDA47CF5E86D3E144A6962B +9AF37508E6AF217F781AED3E486D3E89A457A7C0896B66329627C6FF3A08B020 +C48E9DA451159ABD5042997C7709A0435EBADD260A43C6CCA3427BA7633C35DA +FFB43A2F567378FB53BA716231D50807999DDA64464FE0F7D792A9E3B191D8FA +603710AC6F99F297C61556ED00C63741FEFD482BE8B6A150BF7739AFE2D6251D +7C56EF43276D8F56B01B6D7DD20F0331B2DED0E0984FDF4668D43B031CF040D2 +9D177CB536673CD2FAD101205E33E98AB861D3CFB15D6BC4AC71DBD1AC44D6EC +38B73842D64903C29BEFA0211B4CE15CC98AF01DC158B3001B8F5CE806FCD3AC +C1305916E89204DB800B15EC3DD6484D10A3A8E85E3492147044AE525FC315B5 +E6FF950A6FE1BBBB3A455E0363B37B84C998665113336C8E584F6B2791005BEB +D64B52A7829A84FF82055696E8D4A7E0A527F41F9043D10F349796C58DD259C9 +16CE4982A6EF337B49D71AB7F76CA8A58D5FA17994A4D43F7DAA9E2F72EF917C +EEA86CDFDB1A5F654CBF3CF8FF63B9AF32BBF13ACB04C62B05CB8B765520AB38 +D820 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +cleartomark +%%EndFont +TeXDict begin 40258437 52099154 1000 1200 1200 (figfrag.dvi) +@start /Fa 144[95 2[53 7[106 1[106 98[{}4 166.044 /CMBX10 +rf /Fb 139[55 7[42 2[51 5[76 1[85 97[{}5 166.044 /CMTI10 +rf /Fc 140[64 57 3[86 4[40 2[51 74 3[80 97[{}7 166.044 +/CMSS10 rf /Fd 134[87 1[87 2[87 1[87 1[87 6[87 3[87 101[{}7 +166.044 /CMTT10 rf /Fe 167[240 88[{}1 166.044 /CMEX10 +rf /Ff 150[47 26[105 78[{}2 116.231 /CMMI7 rf /Fg 135[95 +41[133 78[{}2 166.044 /CMMI10 rf /Fh 190[98 3[102 11[66 +49[{}3 116.231 /CMR7 rf /Fi 138[92 65 65 65 1[92 83 92 +138 46 2[46 92 83 51 74 92 74 1[83 8[125 3[120 92 2[113 +3[104 6[113 10[46 8[83 49[{}25 166.044 /CMR10 rf end +%%EndProlog +%%BeginSetup +%%Feature: *Resolution 1200dpi +TeXDict begin + +%%EndSetup +1 0 bop Black Black 1129 5115 a + currentpoint currentpoint translate 0.93391 0.93391 scale neg exch +neg exch translate + 1129 5115 a Black 1184 +5115 a + /PSfrag where{pop(mark-0000)[[0(Bl)1 0]](mark-0001)[[1(Bc)1 0]](mark-0002)[[2(Br)1 +0]](mark-0003)[[3(Bc)1 0]](mark-0004)[[4(Bl)1 0]](mark-0005)[[5(Bl)1 +0]](mark-0006)[[6(Bl)1 0]](mark-0007)[[7(Bl)1 0]](mark-0008)[[8(Bl)1 +0]](mark-0009)[[9(Bl)1 0]](mark-0010)[[10(Bl)1 0]]11 0 -1/Begin PSfrag}{userdict +/PSfrag{pop}put}ifelse + 1184 5115 a @beginspecial 0 @llx 0 @lly 343 @urx +271 @ury 3430 @rwi @setspecial +%%BeginDocument: figfrag.eps1 +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: figfrag.fig +%%Creator: fig2dev Version 3.2 Patchlevel 3d +%%CreationDate: Fri Aug 29 11:50:03 2003 +%%For: ditzel@aragorn (Maarten Ditzel,,,) +%%BoundingBox: 0 0 343 271 +%%Magnification: 1.0000 +%%EndComments +/$F2psDict 200 dict def +$F2psDict begin +$F2psDict /mtrx matrix put +/col-1 {0 setgray} bind def +/col0 {0.000 0.000 0.000 srgb} bind def +/col1 {0.000 0.000 1.000 srgb} bind def +/col2 {0.000 1.000 0.000 srgb} bind def +/col3 {0.000 1.000 1.000 srgb} bind def +/col4 {1.000 0.000 0.000 srgb} bind def +/col5 {1.000 0.000 1.000 srgb} bind def +/col6 {1.000 1.000 0.000 srgb} bind def +/col7 {1.000 1.000 1.000 srgb} bind def +/col8 {0.000 0.000 0.560 srgb} bind def +/col9 {0.000 0.000 0.690 srgb} bind def +/col10 {0.000 0.000 0.820 srgb} bind def +/col11 {0.530 0.810 1.000 srgb} bind def +/col12 {0.000 0.560 0.000 srgb} bind def +/col13 {0.000 0.690 0.000 srgb} bind def +/col14 {0.000 0.820 0.000 srgb} bind def +/col15 {0.000 0.560 0.560 srgb} bind def +/col16 {0.000 0.690 0.690 srgb} bind def +/col17 {0.000 0.820 0.820 srgb} bind def +/col18 {0.560 0.000 0.000 srgb} bind def +/col19 {0.690 0.000 0.000 srgb} bind def +/col20 {0.820 0.000 0.000 srgb} bind def +/col21 {0.560 0.000 0.560 srgb} bind def +/col22 {0.690 0.000 0.690 srgb} bind def +/col23 {0.820 0.000 0.820 srgb} bind def +/col24 {0.500 0.190 0.000 srgb} bind def +/col25 {0.630 0.250 0.000 srgb} bind def +/col26 {0.750 0.380 0.000 srgb} bind def +/col27 {1.000 0.500 0.500 srgb} bind def +/col28 {1.000 0.630 0.630 srgb} bind def +/col29 {1.000 0.750 0.750 srgb} bind def +/col30 {1.000 0.880 0.880 srgb} bind def +/col31 {1.000 0.840 0.000 srgb} bind def + +end +save +newpath 0 271 moveto 0 0 lineto 343 0 lineto 343 271 lineto closepath clip newpath +-27.0 411.0 translate +1 -1 scale + +/cp {closepath} bind def +/ef {eofill} bind def +/gr {grestore} bind def +/gs {gsave} bind def +/sa {save} bind def +/rs {restore} bind def +/l {lineto} bind def +/m {moveto} bind def +/rm {rmoveto} bind def +/n {newpath} bind def +/s {stroke} bind def +/sh {show} bind def +/slc {setlinecap} bind def +/slj {setlinejoin} bind def +/slw {setlinewidth} bind def +/srgb {setrgbcolor} bind def +/rot {rotate} bind def +/sc {scale} bind def +/sd {setdash} bind def +/ff {findfont} bind def +/sf {setfont} bind def +/scf {scalefont} bind def +/sw {stringwidth} bind def +/tr {translate} bind def +/tnt {dup dup currentrgbcolor + 4 -2 roll dup 1 exch sub 3 -1 roll mul add + 4 -2 roll dup 1 exch sub 3 -1 roll mul add + 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb} + bind def +/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul + 4 -2 roll mul srgb} bind def +/reencdict 12 dict def /ReEncode { reencdict begin +/newcodesandnames exch def /newfontname exch def /basefontname exch def +/basefontdict basefontname findfont def /newfont basefontdict maxlength dict def +basefontdict { exch dup /FID ne { dup /Encoding eq +{ exch dup length array copy newfont 3 1 roll put } +{ exch newfont 3 1 roll put } ifelse } { pop pop } ifelse } forall +newfont /FontName newfontname put newcodesandnames aload pop +128 1 255 { newfont /Encoding get exch /.notdef put } for +newcodesandnames length 2 idiv { newfont /Encoding get 3 1 roll put } repeat +newfontname newfont definefont pop end } def +/isovec [ +8#055 /minus 8#200 /grave 8#201 /acute 8#202 /circumflex 8#203 /tilde +8#204 /macron 8#205 /breve 8#206 /dotaccent 8#207 /dieresis +8#210 /ring 8#211 /cedilla 8#212 /hungarumlaut 8#213 /ogonek 8#214 /caron +8#220 /dotlessi 8#230 /oe 8#231 /OE +8#240 /space 8#241 /exclamdown 8#242 /cent 8#243 /sterling +8#244 /currency 8#245 /yen 8#246 /brokenbar 8#247 /section 8#250 /dieresis +8#251 /copyright 8#252 /ordfeminine 8#253 /guillemotleft 8#254 /logicalnot +8#255 /hyphen 8#256 /registered 8#257 /macron 8#260 /degree 8#261 /plusminus +8#262 /twosuperior 8#263 /threesuperior 8#264 /acute 8#265 /mu 8#266 /paragraph +8#267 /periodcentered 8#270 /cedilla 8#271 /onesuperior 8#272 /ordmasculine +8#273 /guillemotright 8#274 /onequarter 8#275 /onehalf +8#276 /threequarters 8#277 /questiondown 8#300 /Agrave 8#301 /Aacute +8#302 /Acircumflex 8#303 /Atilde 8#304 /Adieresis 8#305 /Aring +8#306 /AE 8#307 /Ccedilla 8#310 /Egrave 8#311 /Eacute +8#312 /Ecircumflex 8#313 /Edieresis 8#314 /Igrave 8#315 /Iacute +8#316 /Icircumflex 8#317 /Idieresis 8#320 /Eth 8#321 /Ntilde 8#322 /Ograve +8#323 /Oacute 8#324 /Ocircumflex 8#325 /Otilde 8#326 /Odieresis 8#327 /multiply +8#330 /Oslash 8#331 /Ugrave 8#332 /Uacute 8#333 /Ucircumflex +8#334 /Udieresis 8#335 /Yacute 8#336 /Thorn 8#337 /germandbls 8#340 /agrave +8#341 /aacute 8#342 /acircumflex 8#343 /atilde 8#344 /adieresis 8#345 /aring +8#346 /ae 8#347 /ccedilla 8#350 /egrave 8#351 /eacute +8#352 /ecircumflex 8#353 /edieresis 8#354 /igrave 8#355 /iacute +8#356 /icircumflex 8#357 /idieresis 8#360 /eth 8#361 /ntilde 8#362 /ograve +8#363 /oacute 8#364 /ocircumflex 8#365 /otilde 8#366 /odieresis 8#367 /divide +8#370 /oslash 8#371 /ugrave 8#372 /uacute 8#373 /ucircumflex +8#374 /udieresis 8#375 /yacute 8#376 /thorn 8#377 /ydieresis] def +/Times-Roman /Times-Roman-iso isovec ReEncode +/Courier /Courier-iso isovec ReEncode +/Helvetica /Helvetica-iso isovec ReEncode +/Times-Italic /Times-Italic-iso isovec ReEncode +/Times-Roman /Times-Roman-iso isovec ReEncode +/Times-Bold /Times-Bold-iso isovec ReEncode +/Helvetica-Oblique /Helvetica-Oblique-iso isovec ReEncode +/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def +/$F2psEnd {$F2psEnteredState restore end} def + +$F2psBegin +10 setmiterlimit +0 slj 0 slc + 0.06299 0.06299 sc +% +% Fig objects follow +% +% Polyline +15.000 slw +n 450 2250 m 5850 2250 l 5850 4050 l 450 4050 l + cp gs col0 s gr +/Times-Roman-iso ff 300.00 scf sf +675 2700 m +gs 1 -1 sc (mark-0000) col4 sh gr +/Times-Roman-iso ff 450.00 scf sf +3150 3150 m +gs 1 -1 sc (mark-0001) dup sw pop 2 div neg 0 rm col2 sh gr +/Times-Roman-iso ff 600.00 scf sf +5625 3825 m +gs 1 -1 sc (mark-0002) dup sw pop neg 0 rm col1 sh gr +/Times-Roman-iso ff 300.00 scf sf +3150 4725 m +gs 1 -1 sc (mark-0003) dup sw pop 2 div neg 0 rm col-1 sh gr +/Times-Roman-iso ff 240.00 scf sf +450 5400 m +gs 1 -1 sc (mark-0004) col0 sh gr +/Courier-iso ff 240.00 scf sf +4275 5625 m +gs 1 -1 sc (mark-0005) col0 sh gr +/Helvetica-iso ff 240.00 scf sf +3150 5400 m +gs 1 -1 sc (mark-0006) col0 sh gr +/Times-Italic-iso ff 240.00 scf sf +2475 5625 m +gs 1 -1 sc (mark-0007) col0 sh gr +/Times-Roman-iso ff 240.00 scf sf +1350 5625 m +gs 1 -1 sc (mark-0008) col0 sh gr +/Times-Bold-iso ff 240.00 scf sf +2025 5400 m +gs 1 -1 sc (mark-0009) col0 sh gr +/Helvetica-Oblique-iso ff 240.00 scf sf +450 6075 m +gs 1 -1 sc (Postscript: Helvetica-Oblique) col0 sh gr +/Times-Roman-iso ff 240.00 scf sf +450 6525 m +gs 1 -1 sc (mark-0010) col-1 sh gr +$F2psEnd +rs + +%%EndDocument + @endspecial 1184 5115 a + /End PSfrag + 1184 5115 a 1184 1048 a + /Hide PSfrag + 1184 +1048 a -296 1163 a Fi(PSfrag)56 b(replacemen)-5 b(ts)p +-296 1222 1481 7 v 1184 1228 a + /Unhide PSfrag + 1184 1228 a -249 1476 +a + { + -249 1476 a Black -249 1476 a + currentpoint currentpoint translate 2.00003 2.00003 scale neg exch +neg exch translate + -249 1476 a 1 0 0 TeXcolorrgb +Fi(left)55 b(L)86 1442 y Fh(A)159 1476 y Fi(T)251 1511 +y(E)343 1476 y(X)p Black -249 1476 a + currentpoint currentpoint translate 1 2.00003 div 1 2.00003 div scale +neg exch neg exch translate + -249 1476 a Black +-249 1476 a + } 0/Place PSfrag + -249 1476 a -196 1904 a + { + -196 1904 a Black +-1576 1904 a + currentpoint currentpoint translate 3.00055 3.00055 scale neg exch +neg exch translate + -1576 1904 a 0 1 0 TeXcolorrgb Fi(cen)-5 +b(ter)55 b(L)-1038 1870 y Fh(A)-965 1904 y Fi(T)-873 +1940 y(E)-781 1904 y(X)p Black -1576 1904 a + currentpoint currentpoint translate 1 3.00055 div 1 3.00055 div scale +neg exch neg exch translate + -1576 1904 +a Black -196 1904 a + } 1/Place PSfrag + -196 1904 a 1184 2489 a + { + 1184 2489 +a Black -2128 2489 a + currentpoint currentpoint translate 4.00061 4.00061 scale neg exch +neg exch translate + -2128 2489 a 0 0 1 TeXcolorrgb Fi(righ)-5 +b(t)56 b(L)-1682 2455 y Fh(A)-1609 2489 y Fi(T)-1517 +2525 y(E)-1424 2489 y(X)p Black -2128 2489 a + currentpoint currentpoint translate 1 4.00061 div 1 4.00061 div scale +neg exch neg exch translate + -2128 2489 +a Black 1184 2489 a + } 2/Place PSfrag + 1184 2489 a -367 3256 a + { + -367 3256 +a Black -1918 3256 a + currentpoint currentpoint translate 2.00023 2.00023 scale neg exch +neg exch translate + -1918 3256 a 0 TeXcolorgray Fi(some)g(math:)-949 +3144 y(1)p -984 3218 152 7 v -984 3370 a Fg(N)-723 3049 +y Ff(N)-785 3098 y Fe(X)-772 3452 y Ff(i)p Fh(=1)-517 +3256 y Fg(x)-422 3281 y Ff(i)p Black -1918 3256 a + currentpoint currentpoint translate 1 2.00023 div 1 2.00023 div scale +neg exch neg exch translate + -1918 +3256 a Black -367 3256 a + } 3/Place PSfrag + -367 3256 a 380 3881 a + { + 380 3881 +a Black 380 3881 a + currentpoint currentpoint translate 1.60002 1.60002 scale neg exch +neg exch translate + 380 3881 a 0 TeXcolorgray Fi(default)p +Black 380 3881 a + currentpoint currentpoint translate 1 1.60002 div 1 1.60002 div scale +neg exch neg exch translate + 380 3881 a Black 380 3881 a + } 4/Place PSfrag + 380 3881 +a -210 4060 a + { + -210 4060 a Black -210 4060 a + currentpoint currentpoint translate 1.6002 1.6002 scale neg exch neg +exch translate + -210 4060 +a 0 TeXcolorgray Fd(typewriter)p Black -210 4060 a + currentpoint currentpoint translate 1 1.6002 div 1 1.6002 div scale +neg exch neg exch translate + -210 +4060 a Black -210 4060 a + } 5/Place PSfrag + -210 4060 a 172 4318 a + { + 172 4318 +a Black 172 4318 a + currentpoint currentpoint translate 1.60002 1.60002 scale neg exch +neg exch translate + 172 4318 a 0 TeXcolorgray Fc(sans)e(serif)p +Black 172 4318 a + currentpoint currentpoint translate 1 1.60002 div 1 1.60002 div scale +neg exch neg exch translate + 172 4318 a Black 172 4318 a + } 6/Place PSfrag + 172 4318 +a 607 4517 a + { + 607 4517 a Black 607 4517 a + currentpoint currentpoint translate 1.60002 1.60002 scale neg exch +neg exch translate + 607 4517 a 0 +TeXcolorgray Fb(italic)p Black 607 4517 a + currentpoint currentpoint translate 1 1.60002 div 1 1.60002 div scale +neg exch neg exch translate + 607 4517 a +Black 607 4517 a + } 7/Place PSfrag + 607 4517 a 446 4716 a + { + 446 4716 a Black +446 4716 a + currentpoint currentpoint translate 1.60013 1.60013 scale neg exch +neg exch translate + 446 4716 a 0 TeXcolorgray Fi(roman)p Black +446 4716 a + currentpoint currentpoint translate 1 1.60013 div 1 1.60013 div scale +neg exch neg exch translate + 446 4716 a Black 446 4716 a + } 8/Place PSfrag + 446 4716 a 599 +4916 a + { + 599 4916 a Black 599 4916 a + currentpoint currentpoint translate 1.60002 1.60002 scale neg exch +neg exch translate + 599 4916 a 0 TeXcolorgray +Fa(b)5 b(old)p Black 599 4916 a + currentpoint currentpoint translate 1 1.60002 div 1 1.60002 div scale +neg exch neg exch translate + 599 4916 a Black 599 +4916 a + } 9/Place PSfrag + 599 4916 a -1333 5115 a + { + -1333 5115 a Black -1333 +5115 a + currentpoint currentpoint translate 1.60002 1.60002 scale neg exch +neg exch translate + -1333 5115 a 0 TeXcolorgray Fi(default)55 b(fon)-5 +b(t)56 b(and)f(color)p Black -1333 5115 a + currentpoint currentpoint translate 1 1.60002 div 1 1.60002 div scale +neg exch neg exch translate + -1333 5115 +a Black -1333 5115 a + } 10/Place PSfrag + -1333 5115 a Black 1129 5115 a + currentpoint currentpoint translate 1 0.93391 div 1 0.93391 div scale +neg exch neg exch translate + 1129 +5115 a Black Black eop +%%Trailer +end +userdict /end-hook known{end-hook}if +%%EOF diff --git a/graphics/figfrag/test.fig b/graphics/figfrag/test.fig new file mode 100644 index 0000000000..8c0218d7c1 --- /dev/null +++ b/graphics/figfrag/test.fig @@ -0,0 +1,23 @@ +#FIG 3.2 +Landscape +Center +Metric +A4 +100.00 +Single +-2 +1200 2 +2 2 0 2 0 7 50 0 -1 0.000 0 0 -1 0 0 5 + 450 2250 5850 2250 5850 4050 450 4050 450 2250 +4 0 4 50 0 0 20 0.0000 0 195 1350 675 2700 left \\LaTeX\001 +4 1 2 50 0 0 30 0.0000 0 345 2880 3150 3150 center \\LaTeX\001 +4 2 1 50 0 0 40 0.0000 0 450 2580 5625 3825 right \\LaTeX\001 +4 1 -1 50 0 0 20 0.0000 0 270 5190 3150 4725 some math: $\\frac{1}{N}\\sum_{i=1}^N x_i$\001 +4 0 0 50 0 0 16 0.0000 0 165 690 450 5400 default\001 +4 0 0 50 0 5 16 0.0000 0 195 1500 4275 5625 typewriter\001 +4 0 0 50 0 4 16 0.0000 0 180 1035 3150 5400 sans serif\001 +4 0 0 50 0 3 16 0.0000 0 165 525 2475 5625 italic\001 +4 0 0 50 0 1 16 0.0000 0 120 630 1350 5625 roman\001 +4 0 0 50 0 2 16 0.0000 0 165 465 2025 5400 bold\001 +4 0 0 50 0 17 16 0.0000 4 240 3120 450 6075 Postscript: Helvetica-Oblique\001 +4 0 -1 50 0 0 16 0.0000 0 165 2130 450 6525 default font and color\001 |