summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/latex/skak/refman.ps
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/doc/latex/skak/refman.ps')
-rw-r--r--Master/texmf-dist/doc/latex/skak/refman.ps6586
1 files changed, 0 insertions, 6586 deletions
diff --git a/Master/texmf-dist/doc/latex/skak/refman.ps b/Master/texmf-dist/doc/latex/skak/refman.ps
deleted file mode 100644
index e273f763c38..00000000000
--- a/Master/texmf-dist/doc/latex/skak/refman.ps
+++ /dev/null
@@ -1,6586 +0,0 @@
-%!PS-Adobe-2.0
-%%Creator: dvips(k) 5.991 Copyright 2011 Radical Eye Software
-%%Title: refman.dvi
-%%CreationDate: Thu Jul 18 23:26:37 2013
-%%Pages: 3
-%%PageOrder: Ascend
-%%Orientation: Landscape
-%%BoundingBox: 0 0 596 842
-%%DocumentFonts: CMTT10 CMBX10 CMSSBX10 CMSY10 CMR10 CMSSI10 CMTI10
-%%+ CMMI10 SkakNew-Figurine
-%%DocumentPaperSizes: a4
-%%EndComments
-%DVIPSWebPage: (www.radicaleye.com)
-%DVIPSCommandLine: dvips -o refman.ps refman.dvi
-%DVIPSParameters: dpi=600
-%DVIPSSource: TeX output 2013.07.18:2326
-%%BeginProcSet: tex.pro 0 0
-%!
-/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/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]{Ci}imagemask
-restore}B/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
-/dir 0 def/dyy{/dir 0 def}B/dyt{/dir 1 def}B/dty{/dir 2 def}B/dtt{/dir 3
-def}B/p{dir 2 eq{-90 rotate show 90 rotate}{dir 3 eq{-90 rotate show 90
-rotate}{show}ifelse}ifelse}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: pstricks.pro 0 0
-% $Id: pstricks.pro 647 2012-02-12 15:03:40Z herbert $
-%
-%% PostScript prologue for pstricks.tex.
-%% Version 1.12, 2012/02/12
-%%
-%% This program can be redistributed and/or modified under the terms
-%% of the LaTeX Project Public License Distributed from CTAN archives
-%% in directory macros/latex/base/lppl.txt.
-%
-%
-% Define the follwing gs-functions if not known, eg when using distiller
-%
-systemdict /.setopacityalpha known not {/.setopacityalpha { pop } def } if
-systemdict /.setblendmode known not {/.setblendmode { pop } def } if
-systemdict /.setshapealpha known not {/.setshapealpha { pop } def } if
-%
-/tx@Dict 200 dict def % the main PSTricks dictionary
-tx@Dict begin
-/ADict 25 dict def % The arrow dictionaray
-/CM { matrix currentmatrix } bind def
-/SLW /setlinewidth load def
-/CLW /currentlinewidth load def
-/CP /currentpoint load def
-/ED { exch def } bind def
-/L /lineto load def
-/T /translate load def
-/TMatrix { } def
-/RAngle { 0 } def
-/Sqrt { dup 0 lt { pop 0 } { sqrt } ifelse } def % return 0 for negative arguments
-/Atan { /atan load stopped { pop pop 0 } if } def % return 0 if atan not known
-/ATAN1 {neg -1 atan 180 sub } def % atan(x) (only one parameter)
-/Div { dup 0 eq { pop } { div } ifelse } def % control the division
-/tan { dup cos abs 1.e-10 lt
- { pop 1.e10 } % return 1.e10 as infinit
- { dup sin exch cos div } ifelse % default sin/cos
-} def
-/Tan { dup sin exch cos Div } def % sin(x)/cos(x) x in degrees
-/Acos {dup dup mul neg 1 add dup 0 lt { % arc cos, returns 0 when negative root
- pop pop 0 }{ sqrt exch atan} ifelse } def
-/NET { neg exch neg exch T } def % change coordinate system to the negative one
-/Pyth { dup mul exch dup mul add sqrt } def % Pythagoras, expects 2 parameter
-/Pyth2 { % Pythagoras, xA yA xB yB
- 3 -1 roll % xA xB yB yA
- sub % xA xB yB-yA
- 3 1 roll % yB-yA xA xB
- sub % yB-yA xA-xB
- Pyth } def
-/PtoC { 2 copy cos mul 3 1 roll sin mul } def % Polar to Cartesian
-/Rand { rand 4294967295 div } def % a real random number
-%----------------- hv added 20050516 ---------------
-/PiDiv2 1.57079632680 def
-/Pi 3.14159265359 def
-/TwoPi 6.28318530718 def
-/Euler 2.71828182846 def
-%/e Euler bind def
-%
-/RadtoDeg { 180 mul Pi div } bind def % convert from radian to degrees
-/DegtoRad { Pi mul 180 div } bind def % viceversa
-%----------------- hv end---------------------------
-/PathLength@ { /z z y y1 sub x x1 sub Pyth add def /y1 y def /x1 x def } def
-%
-/PathLength {
- flattenpath /z 0 def
- { /y1 ED /x1 ED /y2 y1 def /x2 x1 def }
- { /y ED /x ED PathLength@ }
- {}
- { /y y2 def /x x2 def PathLength@ }
- /pathforall load stopped { pop pop pop pop } if
- z
-} def
-%
-/STP { .996264 dup scale } def % BP/PT scaling
-/STV { SDict begin normalscale end STP } def %
-%
-/DashLine {
- dup 0 gt
- { /a .5 def PathLength exch div }
- { pop /a 1 def PathLength } ifelse
- /b ED % pattern should fit evenly in b
- dup /X ED % pattern array
- 0 get /y ED % length of first black segment
- /z 0 X {add} forall def % length of the full pattern
- %% Computation of the scaling factor as described by van Zandt:
- b a .5 sub 2 mul y mul sub z Div round
- z mul a .5 sub 2 mul y mul add b exch Div
- %%%% scaling factor on stack.
- /z ED %% now, z is the scaling factor
- false % for the length test below
- X { z mul } forall X astore %% modification TN 04-08-07
- %%% Checking whether at least one dash in X has positive length:
- {0 gt or} forall
- { X 1 a sub y mul }
- { [ 1 0 ] 0 }
- ifelse
- setdash stroke
-} def
-%
-/DotLine {
- /b PathLength def
- /a ED /z ED /y CLW def
- /z y z add def
- a 0 gt {
- /b b a div def
- }{
- a 0 eq {
- /b b y sub def
- }{ a -3 eq {
- /b b y add def } if
- } ifelse
- } ifelse
- [ 0 b b z Div round Div dup 0 le { pop 1 } if ]
- a 0 gt { 0 }{ y 2 div a -2 gt { neg }if } ifelse
- setdash 1 setlinecap stroke
-} def
-%
-/SymbolLine { % on stack [ x y x y ...
- counttomark % number of elements
- 2 div cvi /n ED % n pairs
- /YA ED /XA ED % the start point
- n 1 sub {
- /YB ED /XB ED
- /XLength XB XA sub def
- /YLength YB YA sub def
- /PAngle YLength XLength Atan def
- /XYLength XLength YLength Pyth def
-
- %% for negative SymStep we calculate the distance
- SymStep 0 lt
- { %XYLength SymStep div abs cvi
- /nSym SymStep abs cvi def }
- { /nSym XYLength SymStep div cvi def }
- ifelse
- 0.5 setflat
- /Shift Symbol stringwidth pop 2 div def
- /deltaX XLength nSym div def
- /deltaY YLength nSym div def
- curveticks
- { XA YA moveto }
- { XA Shift sub YA Shift sub moveto }
- ifelse
- nSym {
- gsave
- curveticks
- { PAngle 180 sub CorrAngle sub tickAngle add /rotAngle ED
- currentpoint translate rotAngle rotate
- 0 SymbolWidth 2 div moveto 0 SymbolWidth 2 div neg lineto
- SymbolLinewidth setlinewidth stroke
- }
- {
- rotateSymbol { PAngle 180 sub CorrAngle sub rotate } if
- Symbol show
- }
- ifelse
- grestore
- deltaX deltaY rmoveto
- } repeat
- /YA YB def /XA XB def
- } repeat
- curveticks
- { XA YA moveto }
- { XA Shift sub YA Shift sub moveto }
- ifelse
- gsave
- curveticks
- { PAngle 180 sub CorrAngle sub tickAngle add /rotAngle ED
- XA YA translate rotAngle rotate
- 0 SymbolWidth 2 div moveto 0 SymbolWidth 2 div neg lineto
- SymbolLinewidth setlinewidth stroke
- }
- {
- rotateSymbol { PAngle 180 sub CorrAngle sub rotate } if
- Symbol show
- }
- ifelse
- grestore
- pop % delete the mark symbol
-} def
-%
-/LineFill { % hv ------------ patch 7 -------------
- gsave
- abs /hatchWidthInc ED
- abs /hatchSepInc ED
- abs CLW add /a ED
- a 0 dtransform round exch round exch
- 2 copy idtransform
- exch Atan rotate
- idtransform pop /a ED
- .25 .25 itransform pathbbox
- /y2 ED
- a Div ceiling cvi /x2 ED /y1 ED
- a Div cvi /x1 ED /y2 y2 y1 sub def
- clip
- newpath
- 2 setlinecap
- systemdict
- /setstrokeadjust known { true setstrokeadjust } if
- x2 x1 sub 1 add {
- x1 a mul y1 moveto 0 y2 rlineto stroke
- /x1 x1 1 add
- hatchWidthInc 0 gt { CLW add } if
- def
- hatchSepInc 0 gt hatchWidthInc 0 gt or {
- /a a hatchSepInc add def
- CLW hatchWidthInc add SLW
- } if
- } repeat
- grestore
- pop pop } def
-%
-/DotFill {% on stack: dot radius
- /dotRadius ED
- abs CLW add /a ED
- a 0 dtransform round exch round exch
- 2 copy idtransform
- exch Atan rotate
- idtransform pop /a ED
- .25 .25 itransform
- pathbbox % llx lly urx ury of smallest bounding box
- /y2 ED /x2 ED /y1 ED /x1 ED
- y2 y1 sub a div 2 add cvi /Ny ED
- x2 x1 sub a div 2 add cvi /Nx ED
- clip
- newpath
- /yA y1 dotRadius add CLW add def
- /xA0 x1 dotRadius add CLW add def
- Ny {
- /xA xA0 def
- Nx {
- newpath
- xA yA dotRadius 0 360 arc
- SolidDot { gsave fill grestore } if
- stroke
- xA a add /xA ED
- } repeat
- yA a add /yA ED
- } repeat
- grestore
-} def
-%
-/PenroseFill {% on stack: scaling factor
- dup dup scale
- 1 exch div round /penroseFactor ED
- a 0 dtransform round exch round exch
- 2 copy idtransform
- exch Atan rotate
- idtransform pop /a ED
- .25 .25 itransform pathbbox
- /y2 ED
- a Div ceiling cvi /x2 ED /y1 ED
- a Div cvi /x1 ED /y2 y2 y1 sub def
- clip
- newpath
- systemdict
- /setstrokeadjust known { true setstrokeadjust } if
- /I/S/L/W/G/+/Z/F/E/D[/def/exch/for{E D}/add{s E get mul}
- { Z -36.2001 1 33 }{25 E S rlineto}{/q Z dup q G E q 1 + G}{Z 2 2}]{cvx def}forall
- [0 72 1008 {dup sin E cos }F ]1 setlinejoin/s W{/a W{/b I 10{/i I 4{/m I moveto
- i m +/j I 10{/l Z b m l + G a l G sub s m get div .2 + floor .3 + 25
- mul j l + S rmoveto}F i L j L stroke }F}F}F}F
- grestore
- pop pop
-} def
-%
-/TruchetFill { % on stack: scaling factor
- 10 dict begin
- dup dup scale
- 1 exch div round /penroseFactor ED
- a 0 dtransform round exch round exch
- 2 copy idtransform
- exch Atan rotate
- idtransform pop /a ED
- .25 .25 itransform pathbbox
- /y2 ED
- a Div ceiling cvi /x2 ED /y1 ED
- a Div cvi /x1 ED /y2 y2 y1 sub def
- clip
- newpath
- systemdict
- /setstrokeadjust known { true setstrokeadjust } if
- /ma a neg def
- /ha a 2 div def
- /mha ha neg def
- /tile {
- rand dup 2 idiv 2 mul eq { 90 rotate } if
- mha mha moveto ha mha lineto
- ha ha lineto mha ha lineto
-% closepath .1 setlinewidth stroke
- contents
- } def
- /contents{
- 0 ha moveto ha 0 lineto
- 0 mha moveto mha 0 lineto
-% 1 setlinewidth stroke
- } def
- /dotiling {
- f ma mul a f a mul {
- /i exch def
- f ma mul a f a mul {
- /j exch def
- gsave i j translate
- tile stroke grestore
- } for
- } for
- } def
-%
- /f 3 def
- 5 srand dotiling
- end % local user dict
-} def
-%
-/BeginArrow {
- ADict begin % hold it local, for end see EndArrow
- /@mtrx CM def
- gsave
- 2 copy T
- 2 index sub neg exch
- 3 index sub exch Atan
- rotate newpath
-} def
-%
-/EndArrow { @mtrx setmatrix CP grestore end } def % end the ADict
-%
-/Arrow {
- CLW mul add dup
- 2 div /w ED
- mul dup /h ED
- mul /a ED
- { 0 h T 1 -1 scale } if
- w neg h moveto
- 0 0 L w h L w neg a neg rlineto
- gsave fill grestore
-} def
-%
-/ArrowD { % the sides are drawn as curves (hv 20071211)
- CLW mul add dup
- 2 div /w ED
- mul dup /h ED
- mul /Inset ED
- { 0 h T 1 -1 scale } if % changes the direction
-% we use y=w/h^2 * x^2 as equation for the control points
-% for the coordinates the arrow is seen from top to bottom
-% the bottom (tip) is (0;0)
- w neg h moveto % lower left of >
- w 9 div 4 mul neg h 3 div 2 mul
- w 9 div neg h 3 div
- 0 0 curveto % tip of >
- w 9 div h 3 div
- w 9 div 4 mul h 3 div 2 mul
- w h curveto % upper left of >
- w neg Inset neg rlineto % move to x=0 and inset
- gsave fill grestore
-} def
-%
-/Tbar {
- CLW mul add /z ED
- z -2 div CLW 2 div moveto
- z 0 rlineto stroke
- 0 CLW moveto
-} def
-%
-/Bracket {
- CLW mul add dup CLW sub 2 div
- /x ED mul CLW add /y ED /z CLW 2 div def
- x neg y moveto
- x neg CLW 2 div L x CLW 2 div L x y L stroke
- 0 CLW moveto
-} def
-%
-/RoundBracket {
- CLW mul add dup 2 div
- /x ED mul /y ED /mtrx CM def
- 0 CLW 2 div T x y mul 0 ne { x y scale } if
- 1 1 moveto
- .85 .5 .35 0 0 0 curveto
- -.35 0 -.85 .5 -1 1 curveto
- mtrx setmatrix stroke 0 CLW moveto
-} def
-%
-/SD { 0 360 arc fill } def
-%
-/EndDot { % DS is the dot size
- { /z DS def } { /z 0 def } ifelse % outer or inner dimen
- /b ED % the color definition
- 0 z DS SD
- b { 0 z DS CLW sub SD } if
- 0 DS z add CLW 4 div sub
- moveto
-} def
-%
-/Shadow { [ { /moveto load } { /lineto load } { /curveto load } {
- /closepath load } /pathforall load stopped { pop pop pop pop CP /moveto
- load } if ] cvx newpath 3 1 roll T exec } def
-%
-/NArray { % holds the coordinates and on top of stack the showpoints boolean
- /showpoints ED
- counttomark 2 div dup cvi /n ED % n 2 div on stack
- n eq not { exch pop } if % even numbers of points? delete one
- ] aload /Points ED
- showpoints not { Points aload pop } if
-% { ] aload /Points ED }
-% { n 2 mul 1 add -1 roll pop } ifelse % delete the mark symbol
-} def
-%
-/Line {
- NArray n 0 eq not
- { n 1 eq { 0 0 /n 2 def } if ArrowA /n n 2 sub def
- n { Lineto } repeat
- CP 4 2 roll ArrowB L pop pop
- } if
-} def
-%
-/LineToYAxis {
- /Ox ED % Save the x origin value
- NArray % all x-y pairs on stack
- n { 2 copy moveto % go to current point
- Ox exch Lineto % line to y-axis
- pop % delete old x-value
- } repeat
-} def
-%
-/LineToXAxis{
- /Oy ED % Save the y origin value
- NArray % all x-y pairs on stack
- n 0 eq not
- { n 1 eq { 0 0 /n 2 def } if
- ArrowA
- /n n 2 sub def
- CP 2 copy moveto pop Oy Lineto
- n { 2 copy moveto pop Oy Lineto } repeat
- CP
- 4 2 roll
- ArrowB
- 2 copy moveto pop Oy
- L
- pop pop } if
-} def
-%
-/Arcto {
- /a [ 6 -2 roll ] cvx def
- a r
- /arcto load stopped { 5 } { 4 } ifelse { pop } repeat
- a
-} def
-%
-/CheckClosed {
- dup n 2 mul 1 sub index eq 2 index n 2 mul 1 add index eq
- and { pop pop /n n 1 sub def } if
-} def
-%
-/Polygon {
- NArray n 2 eq { 0 0 /n 3 def } if
- n 3 lt
- { n { pop pop } repeat }
- { n 3 gt { CheckClosed } if
- n 2 mul -2 roll
- /y0 ED /x0 ED /y1 ED /x1 ED
- x1 y1
- /x1 x0 x1 add 2 div def
- /y1 y0 y1 add 2 div def
- x1 y1 moveto
- /n n 2 sub def
- n { Lineto } repeat
- x1 y1 x0 y0 6 4 roll Lineto
- Lineto pop pop closepath } ifelse
-} def
-%
-/SymbolPolygon { % on stack [ x y x y ...
- counttomark % number of elements
- 2 add /m ED
- 2 copy m 2 roll % copy last two
- m 2 div cvi /n ED % n pairs
- /YA ED /XA ED % the start point
- n 1 sub {
- /YB ED /XB ED
- /XLength XB XA sub def
- /YLength YB YA sub def
- /PAngle YLength XLength Atan def
- /XYLength XLength YLength Pyth def
- /nSym XYLength SymStep Div cvi def
- /Shift Symbol stringwidth pop 2 Div def
- /deltaX XLength nSym Div def
- /deltaY YLength nSym Div def
- XA Shift sub YA Shift sub moveto
- nSym {
- gsave rotateSymbol { PAngle 180 sub CorrAngle sub rotate } if
- Symbol show
- grestore
- deltaX deltaY rmoveto
- } repeat
-% XB Shift sub YB Shift sub moveto Symbol show
- /YA YB def /XA XB def
- } repeat
- pop % delete the mark symbol
-} def
-%
-/Diamond {
- /mtrx CM def
- T rotate
- /h ED
- /w ED
- dup 0 eq { pop } { CLW mul neg
- /d ED
- /a w h Atan def
- /h d a sin Div h add def
- /w d a cos Div w add def } ifelse
- mark w 2 div h 2 div w 0 0 h neg w neg 0 0 h w 2 div h 2 div
- /ArrowA { moveto } def
- /ArrowB { } def
- false Line
- closepath mtrx setmatrix } def
-%
-/Triangle {
- /mtrx CM def
- translate
- rotate /h ED 2 div /w ED
- dup CLW mul /d ED
- /h h d w h Atan sin Div sub def
- /w w d h w Atan 2 div dup cos exch sin Div mul sub def
- mark
- 0 d w neg d 0 h w d 0 d
- /ArrowA { moveto } def
- /ArrowB { } def
- false
- Line
- closepath
- mtrx
-% DG/SR modification begin - Jun. 1, 1998 - Patch 3 (from Michael Vulis)
-% setmatrix } def
- setmatrix pop
-} def
-% DG/SR modification end
-%
-/CCA {
- /y ED /x ED
- 2 copy y sub /dy1 ED
- x sub /dx1 ED
- /l1 dx1 dy1 Pyth def
-} def
-%
-/CC {
- /l0 l1 def
- /x1 x dx sub def
- /y1 y dy sub def
- /dx0 dx1 def
- /dy0 dy1 def
- CCA
- /dx dx0 l1 c exp mul dx1 l0 c exp mul add def
- /dy dy0 l1 c exp mul dy1 l0 c exp mul add def
- /m dx0 dy0 Atan dx1 dy1 Atan sub 2 div cos abs b exp a mul dx dy Pyth Div 2 div def
- /x2 x l0 dx mul m mul sub def
- /y2 y l0 dy mul m mul sub def
- /dx l1 dx mul m mul neg def
- /dy l1 dy mul m mul neg def
-} def
-%
-/IC {
- /c c 1 add def
- c 0 lt { /c 0 def } { c 3 gt { /c 3 def } if } ifelse
- /a a 2 mul 3 div 45 cos b exp div def
- CCA
- /dx 0 def
- /dy 0 def
-} def
-%
-/BOC { IC CC x2 y2 x1 y1 ArrowA CP 4 2 roll x y curveto } def
-/NC { CC x1 y1 x2 y2 x y curveto } def
-/EOC { x dx sub y dy sub 4 2 roll ArrowB 2 copy curveto } def
-/BAC { IC CC x y moveto CC x1 y1 CP ArrowA } def
-/NAC { x2 y2 x y curveto CC x1 y1 } def
-/EAC { x2 y2 x y ArrowB curveto pop pop } def
-%
-/OpenCurve {
- NArray n 3 lt
- { n { pop pop } repeat }
- { BOC /n n 3 sub def n { NC } repeat EOC } ifelse
-} def
-%
-/CurvePath {
- %% for negative SymStep we calculate the distance
- SymStep 0 lt { gsave PathLength SymStep div abs /SymStep ED grestore } if
- 0.5 setflat
- flattenpath /z 0 def /z0 0 def
- { /y1 ED /x1 ED /y2 y1 def /x2 x1 def
- x1 Shift sub y1 Shift sub moveto
- gsave
- curveticks
- { x1 y1 translate startAngle rotate
- 0 SymbolWidth 2 div moveto 0 SymbolWidth 2 div neg lineto
- SymbolLinewidth setlinewidth stroke
- }
- { startAngle rotate Symbol show }
- ifelse
- grestore /z0 z def }
- { /y ED /x ED PathLength@ z z0 sub SymStep ge {
- x Shift sub y Shift sub moveto
- gsave
- curveticks
- { y yOld sub x xOld sub Atan 180 sub CorrAngle sub /rotAngle ED
- x y translate rotAngle rotate
- 0 SymbolWidth 2 div moveto 0 SymbolWidth 2 div neg lineto
- SymbolLinewidth setlinewidth stroke
- }
- {
- rotateSymbol { y yOld sub x xOld sub Atan 180 sub CorrAngle sub rotate } if
- Symbol show
- }
- ifelse
- grestore /z0 z def } if
- /yOld y def /xOld x def }
- {} %% the lineto part
- { /y y2 def /x x2 def PathLength@
- x Shift sub y Shift sub moveto
- gsave
- curveticks
- { y yOld sub x xOld sub Atan 180 sub /rotAngle ED
- x y translate rotAngle rotate
- 0 SymbolWidth 2 div moveto 0 SymbolWidth 2 div neg lineto
- SymbolLinewidth setlinewidth stroke
- }
- {
- x Shift sub y Shift sub moveto
- rotateSymbol { y yOld sub x xOld sub Atan 180 sub CorrAngle sub rotate } if
- Symbol show
- }
- ifelse
- grestore
- }
- pathforall
-% curveticks
-% { gsave
-% x y translate rotAngle rotate
-% 0 SymbolWidth 2 div moveto 0 SymbolWidth 2 div neg lineto
-% SymbolLinewidth setlinewidth stroke grestore
-% } if
- z
-} def
-%
-/OpenSymbolCurve {
- OpenCurve
- 0.1 setflat
- /Shift Symbol stringwidth pop 2 div def
- CurvePath
-} def
-%
-/AltCurve {
- { false NArray n 2 mul 2 roll
- [ n 2 mul 3 sub 1 roll ] aload
- /Points ED
- n 2 mul -2 roll }
- { false NArray } ifelse
- n 4 lt { n { pop pop } repeat } { BAC /n n 4 sub def n { NAC } repeat EAC } ifelse
-} def
-%
-/AltOpenSymbolCurve {
- AltCurve
- 0.1 setflat
- /Shift Symbol stringwidth pop 2 div def
- CurvePath
-} def
-%
-/ClosedCurve {
- NArray n 3 lt
- { n { pop pop } repeat }
- { n 3 gt { CheckClosed } if
- 6 copy n 2 mul 6 add 6 roll
- IC CC x y moveto n { NC } repeat
- closepath pop pop
- } ifelse
-} def
-%
-/ClosedSymbolCurve {
- ClosedCurve
- 0.1 setflat
- /Shift Symbol stringwidth pop 2 div def
- CurvePath
-} def
-%
-/SQ { /r ED r r moveto r r neg L r neg r neg L r neg r L fill } def
-/ST { /y ED /x ED x y moveto x neg y L 0 x L fill } def
-/SP { /r ED gsave 0 r moveto 4 { 72 rotate 0 r L } repeat fill grestore } def
-%
-/FontDot {
- DS 2 mul dup
- matrix scale matrix concatmatrix exch matrix
- rotate matrix concatmatrix exch
- findfont exch makefont setfont
-} def
-%
-/Rect {
- x1 y1 y2 add 2 div moveto
- x1 y2 lineto
- x2 y2 lineto
- x2 y1 lineto
- x1 y1 lineto
- closepath
-} def
-%
-/OvalFrame {
- x1 x2 eq y1 y2 eq or
- { pop pop x1 y1 moveto x2 y2 L }
- { y1 y2 sub abs x1 x2 sub abs 2 copy gt
- { exch pop } { pop } ifelse
- 2 div exch { dup 3 1 roll mul exch } if
- 2 copy lt { pop } { exch pop } ifelse
- /b ED
- x1 y1 y2 add 2 div moveto
- x1 y2 x2 y2 b arcto
- x2 y2 x2 y1 b arcto
- x2 y1 x1 y1 b arcto
- x1 y1 x1 y2 b arcto
- 16 { pop } repeat
- closepath
- } ifelse
-} def
-%
-/Frame {
- CLW mul /a ED
- 3 -1 roll
- 2 copy gt { exch } if
- a sub /y2 ED
- a add /y1 ED
- 2 copy gt { exch } if
- a sub /x2 ED
- a add /x1 ED
- 1 index 0 eq { pop pop Rect } { OvalFrame } ifelse
-} def
-%
-/BezierNArray {
- /f ED
- counttomark 2 div dup cvi /n ED
- n eq not { exch pop } if
- n 1 sub neg 3 mod 3 add 3 mod { 0 0 /n n 1 add def } repeat
- f { ] aload /Points ED } { n 2 mul 1 add -1 roll pop } ifelse
-} def
-%
-/OpenBezier {
- BezierNArray
- n 1 eq
- { pop pop }
- { ArrowA n 4 sub 3 idiv
- { 6 2 roll 4 2 roll curveto } repeat
- 6 2 roll 4 2 roll ArrowB curveto } ifelse
-} def
-%
-/OpenSymbolBezier {
- OpenBezier
- 0.1 setflat
- /Shift Symbol stringwidth pop 2 div def
- CurvePath
-} def
-%
-/ClosedBezier {
- BezierNArray
- n 1 eq
- { pop pop }
- { moveto n 1 sub 3 idiv
- { 6 2 roll 4 2 roll curveto } repeat
- closepath } ifelse
-} def
-%
-/ClosedSymbolBezier {
- /f ED % save showpoints value
- 2 copy /yEnd ED /xEnd ED
- counttomark -2 roll 2 copy /yStart ED /xStart ED
- counttomark 2 roll
- f
- ClosedBezier
- 0.1 setflat
- /Shift Symbol stringwidth pop 2 div def
- CurvePath
- [ xEnd yEnd xStart yStart SymbolLine
-} def
-%
-/BezierShowPoints {
- gsave
- Points aload length 2 div cvi /n ED
- moveto
- n 1 sub { lineto } repeat
- CLW 2 div SLW [ 4 4 ] 0 setdash stroke
- grestore
-} def
-%
-/Parab {
- /y0 ED /x0 ED /y1 ED /x1 ED
- /dx x0 x1 sub 3 div def
- /dy y0 y1 sub 3 div def
- x0 dx sub y0 dy add x1 y1 ArrowA
- x0 dx add y0 dy add x0 2 mul x1 sub y1 ArrowB
- curveto
- /Points [ x1 y1 x0 y0 x0 2 mul x1 sub y1 ] def
-} def
-%
-/Parab1 { % 1 end | 0 SP
- /ySP ED /xSP ED /y1 ED /x1 ED
- /dx xSP x1 sub 3 div def
- /dy ySP y1 sub 3 div def
- newpath x1 y1 moveto xSP y1 lineto xSP ySP lineto
- x1 ySP lineto closepath clip
- currentpoint
- newpath moveto
- xSP dx sub ySP dy add x1 y1 ArrowA
- xSP dx add ySP dy add xSP 2 mul x1 sub y1 ArrowB
- curveto
- /Points [ x1 y1 xSP ySP xSP 2 mul x1 sub y1 ] def
-} def
-%
-/Grid {
- newpath
- /a 4 string def
- /b ED % psk@gridlabels in pt
- /c ED % { \pst@usecolor\psgridlabelcolor }
- /n ED % psk@griddots
- cvi dup 1 lt { pop 1 } if
- /s ED % \psk@subgriddiv
- s div dup 0 eq { pop 1 } if
- /dy ED s div dup 0 eq { pop 1 } if % \pst@number\psyunit abs
- /dx ED dy div round dy mul % \pst@number\psxunit abs
- /y0 ED dx div round dx mul
- /x0 ED dy div round cvi
- /y2 ED dx div round cvi
- /x2 ED dy div round cvi
- /y1 ED dx div round cvi
- /x1 ED
- /h y2 y1 sub 0 gt { 1 } { -1 } ifelse def
- /w x2 x1 sub 0 gt { 1 } { -1 } ifelse def
- b 0 gt {
- /z1 b 4 div CLW 2 div add def
-% /Helvetica findfont b scalefont setfont
- /b b .95 mul CLW 2 div add def } if
- systemdict /setstrokeadjust known
- { true setstrokeadjust /t { } def }
- { /t { transform 0.25 sub round 0.25 add exch 0.25 sub round 0.25 add
- exch itransform } bind def } ifelse
- gsave n 0 gt { 1 setlinecap [ 0 dy n div ] dy n div 2 div setdash } { 2 setlinecap } ifelse
- /i x1 def
- /f y1 dy mul n 0 gt { dy n div 2 div h mul sub } if def
- /g y2 dy mul n 0 gt { dy n div 2 div h mul add } if def
- x2 x1 sub w mul 1 add dup 1000 gt { pop 1000 } if
- { i dx mul dup y0 moveto
- b 0 gt
- { gsave c i a cvs dup stringwidth pop
- /z2 ED w 0 gt {z1} {z1 z2 add neg} ifelse
- h 0 gt {b neg}{z1} ifelse
- rmoveto show grestore } if
- dup t f moveto
- g t L stroke
- /i i w add def
- } repeat
- grestore
- gsave
- n 0 gt
- % DG/SR modification begin - Nov. 7, 1997 - Patch 1
- %{ 1 setlinecap [ 0 dx n div ] dy n div 2 div setdash }
- { 1 setlinecap [ 0 dx n div ] dx n div 2 div setdash }
- % DG/SR modification end
- { 2 setlinecap } ifelse
- /i y1 def
- /f x1 dx mul n 0 gt { dx n div 2 div w mul sub } if def
- /g x2 dx mul n 0 gt { dx n div 2 div w mul add } if def
- y2 y1 sub h mul 1 add dup 1000 gt { pop 1000 } if
- { newpath i dy mul dup x0 exch moveto
- b 0 gt { gsave c i a cvs dup stringwidth pop
- /z2 ED
- w 0 gt {z1 z2 add neg} {z1} ifelse
- h 0 gt {z1} {b neg} ifelse
- rmoveto show grestore } if
- dup f exch t moveto
- g exch t L stroke
- /i i h add def
- } repeat
- grestore
-} def
-%
-/ArcArrow {
- /d ED /b ED /a ED
- gsave
- newpath 0 -1000 moveto clip
- newpath
- 0 1 0 0 b
- grestore
- c mul
- /e ED
- pop pop pop r a e d PtoC y add exch x add
- exch r a PtoC y add exch x add exch b pop pop pop pop a e d CLW 8 div c
- mul neg d
-} def
-%
-/Ellipse {
- /rotAngle ED
- /mtrx CM def
- T
- rotAngle rotate
- scale 0 0 1 5 3 roll arc
- mtrx setmatrix
-} def
-%
-/ArcAdjust { %%%% Vincent Guirardel
-% given a target length (targetLength) and an initial angle (angle0) [in the stack],
-% let M(angle0)=(rx*cos(angle0),ry*sin(angle0))=(x0,y0).
-% This computes an angle t such that (x0,y0) is at distance
-% targetLength from the point M(t)=(rx*cos(t),ry*sin(t)).
-% NOTE: this an absolute angle, it does not have to be added or substracted to angle0
-% contrary to TvZ's code.
-% To achieve, this, one iterates the following process: start with some angle t,
-% compute the point M' at distance targetLength of (x0,y0) on the semi-line [(x0,y0) M(t)].
-% Now take t' (= new angle) so that (0,0) M(t') and M' are aligned.
-%
-% Another difference with TvZ's code is that we need d (=add/sub) to be defined.
-% the value of d = add/sub is used to know on which side we have to move.
-% It is only used in the initialisation of the angle before the iteration.
-%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% Input stack: 1: target length 2: initial angle
-% variables used : rx, ry, d (=add/sub)
-%
- /targetLength ED /angle0 ED
- /x0 rx angle0 cos mul def
- /y0 ry angle0 sin mul def
-% we are looking for an angle t such that (x0,y0) is at distance targetLength
-% from the point M(t)=(rx*cos(t),ry*sin(t)))
-%initialisation of angle (using 1st order approx = TvZ's code)
- targetLength 57.2958 mul
- angle0 sin rx mul dup mul
- angle0 cos ry mul dup mul
- add sqrt div
-% if initialisation angle is two large (more than 90 degrees) set it to 90 degrees
-% (if the ellipse is very curved at the point where we draw the arrow, %
-% the value can be much more than 360 degrees !)
-% this should avoid going on the wrong side (more than 180 degrees) or go near
-% a bad attractive point (at 180 degrees)
- dup 90 ge { pop 90 } if
- angle0 exch d % add or sub
-% maximum number of times to iterate the iterative procedure:
-% iterative procedure: takes an angle t on top of stack, computes a
-% better angle (and put it on top of stack)
- 30 { dup
-% compute distance D between (x0,y0) and M(t)
- dup cos rx mul x0 sub dup mul exch sin ry mul y0 sub dup mul add sqrt
-% if D almost equals targetLength, we stop
- dup targetLength sub abs 1e-5 le { pop exit } if
-% stack now contains D t
-% compute the point M(t') at distance targetLength of (x0,y0) on the semi-line [(x0,y0) M(t)]:
-% M(t')= ( (x(t)-x0)*targetLength/d+x0 , (y(t)-y0)*targetLength/d+y0 )
- exch dup cos rx mul x0 sub exch sin ry mul y0 sub
-% stack contains: y(t)-y0, x(t)-x0, d
- 2 index Div targetLength mul y0 add ry Div exch
- 2 index Div targetLength mul x0 add rx Div
-% stack contains x(t')/rx , y(t')/ry , d
-% now compute t', and remove D from stack
- atan exch pop
- } repeat
-% we don't look at what happened... in particular, if targetLength is greater
-% than the diameter of the ellipse...
-% the final angle will be around /angle0 + 180. maybe we should treat this pathological case...
-% after iteration, stack contains an angle t such that M(t) is the tail of the arrow
-% to give back the result as a an angle relative to angle0 we could add the following line:
-% angle0 sub 0 exch d
-%
-% begin bug fix 2006-01-11
-% we want to adjust the new angle t' by a multiple of 360 so that | t'-angle0 | <= 180
-%(we don't want to make the ellipse turn more or less than it should)...
-dup angle0 sub dup abs 180 gt { 180 add 360 div floor 360 mul sub } { pop } ifelse
-% end bug fix
-} def
-%
-/EllipticArcArrow {
- /d ED % is add or sub
- /b ED % arrow procedure
- /a1 ED % angle
- gsave
- newpath
- 0 -1000 moveto
- clip % Set clippath far from arrow.
- newpath
- 0 1 0 0 b % Draw arrow to determine length.
- grestore
-% Length of arrow is on top of stack. Next 3 numbers are junk.
-%
- a1 exch ArcAdjust % Angular position of base of arrow.
- /a2 ED
- pop pop pop
- a2 cos rx mul xOrig add % hv 2007-08-29 x->xOrig
- a2 sin ry mul yOrig add % hv 2007-08-29 y->yOrig
- a1 cos rx mul xOrig add %
- a1 sin ry mul yOrig add %
-% Now arrow tip coor and base coor are on stack.
- b pop pop pop pop % Draw arrow, and discard coordinates.
- a2 CLW 8 div
-% change value of d (test it by looking if `` 1 1 d '' gives 2 or not )
- 1 1 d 2 eq { /d { sub } def } { /d { add } def } ifelse
- ArcAdjust
-% resets original value of d
- 1 1 d 2 eq { /d { sub } def } { /d { add } def } ifelse % Adjust angle to give overlap.
-} def
-%%------------------ tvz/DG/hv (2004-05-10) end -------------------%%
-%
-/Rot { CP CP translate 3 -1 roll neg rotate NET } def
-%
-/RotBegin {
- tx@Dict /TMatrix known not { /TMatrix { } def /RAngle { 0 } def } if
- /TMatrix [ TMatrix CM ] cvx def
- /a ED
- a Rot /RAngle [ RAngle dup a add ] cvx def
-} def
-%
-/RotEnd {
- /TMatrix [ TMatrix setmatrix ] cvx def
- /RAngle [ RAngle pop ] cvx def
-} def
-%
-/PutCoor { gsave CP T CM STV exch exec moveto setmatrix CP grestore } def
-/PutBegin { /TMatrix [ TMatrix CM ] cvx def CP 4 2 roll T moveto } def
-/PutEnd { CP /TMatrix [ TMatrix setmatrix ] cvx def moveto } def
-%
-/Uput {
- /a ED
- add 2 div /h ED 2
- div /w ED
- /s a sin def
- /c a cos def
- /b s abs c abs 2 copy gt dup
- /q ED
- { pop } { exch pop } ifelse def
- /w1 c b div w mul def
- /h1 s b div h mul def
- q { w1 abs w sub dup c mul abs }{ h1 abs h sub dup s mul abs } ifelse
-} def
-%
-/UUput {
- /z ED
- abs /y ED
- /x ED
- q { x s div c mul abs y gt }{ x c div s mul abs y gt } ifelse
- { x x mul y y mul sub z z mul add sqrt z add }
- { q { x s div } { x c div } ifelse abs
- } ifelse
- a PtoC
- h1 add exch
- w1 add exch
-} def
-%
-/BeginOL {
- dup (all) eq exch TheOL eq or
- { IfVisible not { Visible /IfVisible true def } if }
- { IfVisible { Invisible /IfVisible false def } if } ifelse
-} def
-%
-/InitOL {
- /OLUnit [ 3000 3000 matrix defaultmatrix dtransform ] cvx def
- /Visible { CP OLUnit idtransform T moveto } def
- /Invisible { CP OLUnit neg exch neg exch idtransform T moveto } def
- /BOL { BeginOL } def
- /IfVisible true def
-} def
-%
-%%%%%%%%%%%%%%%%% tools %%%%%%%%%%%%%%%%%%%%%%%%%
-%%%%% ### bubblesort ###
-%% syntax : array bubblesort --> array2 trie par ordre croissant
-%% code de Bill Casselman
-%% http://www.math.ubc.ca/people/faculty/cass/graphics/text/www/
-/bubblesort {
-4 dict begin
- /a exch def
- /n a length 1 sub def
- n 0 gt {
- % at this point only the n+1 items in the bottom of a remain to
- % the sorted largest item in that blocks is to be moved up into
- % position n
- n {
- 0 1 n 1 sub {
- /i exch def
- a i get a i 1 add get gt {
- % if a[i] > a[i+1] swap a[i] and a[i+1]
- a i 1 add
- a i get
- a i a i 1 add get
- % set new a[i] = old a[i+1]
- put
- % set new a[i+1] = old a[i]
- put
- } if
- } for
- /n n 1 sub def
- } repeat
- } if
- a
-end
-} def
-%
-%
-/concatstringarray{ % [(a) (b) ... (z)] --> (ab...z) 20100422
- 0 1 index { length add } forall
- string
- 0 3 2 roll
- { 3 copy putinterval length add }forall
- pop
-} bind def
-%
-/dot2comma {% on stack a string (...)
- 2 dict begin
- /Output exch def
- 0 1 Output length 1 sub {
- /Index exch def
- Output Index get 46 eq { Output Index 44 put } if
- } for
- Output
- end
-} def
-%
-end
-%-----------------------------------------------------------------------------%
-%
-% END pstricks.pro
-
-%%EndProcSet
-%%BeginProcSet: pst-algparser.pro 0 0
-% $Id: pst-algparser.pro 594 2011-10-31 18:13:18Z herbert $
-%%
-%% PostScript prologue for PSTricks algorithm parser
-%% Version 0.04, 2011/10/21
-%%
-%% This program can be redistributed and/or modified under the terms
-%% of the LaTeX Project Public License Distributed from CTAN archives
-%% in directory macros/latex/base/lppl.txt.
-%%
-%%-----------------------------------------------------------------------------%
-%
-/AlgParser { tx@AlgToPs begin AlgToPs end } def % Dominique Rodriguez
-%
-/tx@CoreAnalyzerDict 100 dict def tx@CoreAnalyzerDict begin
-%
-% PS ANALYZER FOR ALGEBRAIC EXPRESSION V1.13
-%
-% 09/2011 DR factorial with ! added
-%
-% E->T|E+T
-% T->FS|T*FS
-% FS -> F | +FS | -FS
-% F->P|F^SF|P!
-% P->(E)|literal
-% literal->number|var|var[E]|func(params)
-% params->E|E,param
-% number->TOBEFINISHED
-%
-%% E expression, T term, SF signed factor, F factor, P power
-%
-%% parser
-%
-%% str
-%
-%% C->E<condition_operators>E
-%% STR index -> STR index+lenExpr
-/AnalyzeCond { AnalyzeExpr ReadCondOp AnalyzeExpr EvalCondOp } def
-%
-%% analyze Expression List (separator , or | )
-%% STR index -> STR index+lenExpr
-%% /AnalyzeListOfE {
-%% { NextNonBlankChar pop AnalyzeExpr%%dup Strlen eq { exit } if NextNonBlankChar
-%% NextNonBlankChar dup 0 eq { pop exit } if
-%% dup 44 ne 1 index 124 ne and { dup 41 ne { PROBLEMCONTACTBILLOU } { pop exit } ifelse } if
-%% pop NextNonBlankChar dup 0 eq { exit } if 124 ne { PROBLEMCONTACTBILLOU } if 1 add NextNonBlankChar 0 eq {toto} if } loop
-%% AnalyzeListOfEPostHook
-%% } def
-/AnalyzeListOfE {
- /NotFirst false def
- { NextNonBlankChar pop AnalyzeExpr
- NotFirst { EvalListOfExpr } { /NotFirst true def } ifelse
- dup Strlen eq { exit } if NextNonBlankChar
- dup 44 ne 1 index 124 ne and
- { dup 41 ne { PROBLEMCONTACTBILLOU } { pop exit } ifelse }
- if pop 1 add } loop
- AnalyzeListOfEPostHook
-} def
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% E->T|E+T
-%% STR index -> STR index+lenExpr
-/AnalyzeExpr {
- AnalyzePreHook AnalyzeTerm IsEndingExpr
- { dup 0 ne { 32 eq { NextNonBlankChar } if } { pop } ifelse }
- { { RollOp 1 add NextNonBlankChar pop AnalyzeTerm PreEvalHook EvalAddSub IsEndingExpr { pop exit } if } loop }
- ifelse
- AnalyzePostHook
-} def
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% T->FS|T*FS
-%% STR index
-/AnalyzeTerm {
- AnalyzePreHook AnalyzeSignedFactor IsEndingTerm
- { dup 0 ne { 32 eq { NextNonBlankChar } if } { pop } ifelse }
- { { RollOp 1 add NextNonBlankChar pop AnalyzeSignedFactor PreEvalHook EvalMulDiv IsEndingTerm { pop exit } if} loop }
- ifelse
- AnalyzePostHook
-} def
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% FS -> F | +FS | -FS
-%% STR index
-/AnalyzeSignedFactor {
- AnalyzePreHook 2 copy get dup IsUnaryOp
- { RollOp 1 add NextNonBlankChar pop AnalyzeSignedFactor EvalUnaryOp }
- { pop AnalyzeFactor }
- ifelse AnalyzePostHook
-} def
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% F->P|F^P|P!
-%% STR index
-/AnalyzeFactor {
- AnalyzePreHook AnalyzePower IsEndingFactor
- { dup 0 ne { 32 eq { NextNonBlankChar } if } { pop } ifelse }
- { { dup 33 eq%% is there a ! DR 09/2011
- { pop 1 add NextNonBlankChar pop EvalFactorial }
- { RollOp 1 add NextNonBlankChar pop AnalyzePower PreEvalHook EvalPower }
- ifelse
- IsEndingFactor { pop exit } if } loop }
- ifelse AnalyzePostHook
-} def
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% P->(E)|literal
-%% STR index
-/AnalyzePower {
- %% depending of first char either a number, or a literal
- 2 copy get dup 40 eq%%an open par
- { pop 1 add NextNonBlankChar pop AnalyzeExpr 1 add NextNonBlankChar pop }
- { AnalyzeLiteral }
- ifelse
-} def
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% STR index STR[index] -> STR index
-%/AnalyzeLiteral { IsNumber { EvalNumber } { EvalLiteral } ifelse } def
-/AnalyzeLiteral { dup IsUnaryOp exch IsNumber or { EvalNumber } { EvalLiteral } ifelse } def%%dr 09102006
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% recognize + or -
-%% chr -> T/F
-/IsUnaryOp { dup 43 eq exch 45 eq or } bind def
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% a number can contain only : 0123456789.
-%% chr -> T/F
-/IsNumber { dup 48 ge exch dup 57 le 3 -1 roll and exch 46 eq or } bind def
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% STR index -> STR index number
-%% a number can be of the form [0-9]*.[0-9]*\([eE][+-]?[0-9]+\)?
-%% STR index -> STR index' number
-/ReadNumber {
- exch dup 3 -1 roll dup 3 1 roll
- %%read mantissa
- { 1 add 2 copy dup Strlen eq { pop pop 0 exit } if get dup IsNumber not { exit } if pop } loop
- dup 101 eq exch 69 eq or
- %%% there is a "e" or "E" -> read exponant
- { 1 add 2 copy get dup IsUnaryOp
- { pop 1 add 2 copy get } if
- { IsNumber not { exit } if 1 add 2 copy get } loop }
- if
- dup 4 1 roll
- 3 -1 roll exch 1 index sub getinterval
-} def
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% a number can contain only : 0123456789.
-%% chr -> T/F
-/IsCondOp { dup 30 eq exch dup 60 ge exch 62 le and or } bind def
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% STR index -> STR index number
-%% a number can be of the form [0-9]*.[0-9]*\([eE][+-]?[0-9]+\)?
-%% STR index -> STR index' number
-/ReadCondOp {
- NextNonBlankChar 1 index 4 1 roll
- { IsCondOp not { exit } if 1 add 2 copy get } loop
- 2 copy 5 -1 roll
- exch 1 index sub getinterval 3 1 roll
-} def
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% a literal can contain only : 0123456789.
-%% chr -> T/F
-/IsLiteral {%
- dup 48 ge exch dup 57 le 3 -1 roll and exch
- dup 65 ge exch dup 90 le 3 -1 roll and 3 -1 roll or exch
- dup 97 ge exch 122 le and or } bind def
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% a literal can be of the form [a-zA-Z][a-zA-Z0-9]*\(\((Expression)\)|\(\[Expression\]\)\)?
-%% STR index -> literal STR index' nextchr
-/ReadLiteral {
- exch dup 3 -1 roll dup 3 1 roll
- %%read literal core
- { 2 copy dup Strlen eq { pop pop 0 exit } if get dup IsLiteral not { exit } if pop 1 add } loop
- 4 1 roll dup 5 1 roll 3 -1 roll exch 1 index sub getinterval 4 1 roll
-} def
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% expr is ended by end of str or a clpar
-%% STR index -> STR index STR[index] T/F
-/IsEndingExpr {%
- 2 copy dup Strlen eq
- %% if end of str is reached -> end !
- { pop pop 0 true }
- %% ending chr -> clpar, comma, |, <, >, =, !,
- {get dup dup 41 eq
- exch dup 124 eq
- exch dup 93 eq
- exch dup 44 eq
- exch dup 30 eq
- exch dup 60 ge exch 62 le and or or or or or}
- ifelse } def
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% expr is ended by end of str or a +-
-%% STR index -> STR index STR[index] T/F
-/IsEndingTerm { IsEndingExpr { true } { dup dup 43 eq exch 45 eq or } ifelse } def
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% expr is ended by end of str or */
-%% STR index -> STR index STR[index] T/F
-/IsEndingFactor { IsEndingTerm { true } { dup dup 42 eq exch 47 eq or } ifelse } def
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% expr is ended by end of str or ^
-%% STR index -> STR index STR[index] T/F
-/IsEndingPower { IsEndingFactor { true } { dup 94 eq } ifelse } def
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% STR index -> STR index STR[index]
-/NextNonBlankChar { { dup Strlen eq { 0 exit } if 2 copy get dup neBlkChar { exit } if pop 1 add } loop } bind def
-/neBlkChar { dup 32 ne exch dup 10 ne exch 9 ne and and } bind def
-%%%%%%%%%%%%%%%%%%%%%%%%
-%% DEBUG
-/BRK {false} def
-/BRKtrue {/BRK true def} def
-/BRKStop {BRK {BRKtoto} if } def
-/BRKEvalStop {BRK exch if } def
-/BRKBRK2true {BRK {BRK2true} if } def
-/BRK2 {false} def
-/BRK2true {/BRK2 true def} def
-/BRK2Stop {BRK2 {BRK2toto} if } def/BRK {false} def
-end
-%
-%-------------------------------------------------------------------------------%
-%
-/tx@AlgToPs 12 dict def tx@AlgToPs begin
-%
-%% algExpr -> PSVector
-/AlgToPs { tx@CoreAnalyzerDict begin InitParser AnalyzeListOfE pop pop EndingSequence end } def
-/EndingSequence { ExpressionVector aload length /end cvx exch 1 add array astore } def
-/InitParser { /ExpressionVector [ /tx@AddMathFunc cvx /begin cvx ] def dup length /Strlen exch def 0 } def
-/Strlen 0 def
-/EvalListOfExpr {} def%
-/EvalNumber {%
- ReadNumber cvr /ExpressionVector ExpressionVector aload length dup 3 add -1 roll cvx
- exch 1 add array astore def NextNonBlankChar pop } def
-/EvalAddSub {%
- /ExpressionVector ExpressionVector aload length dup 5 add -1 roll
- 43 eq { /add } { /sub } ifelse cvx exch 1 add array astore def
-} def
-/EvalMulDiv {%
- /ExpressionVector ExpressionVector aload length dup 5 add -1 roll
- 42 eq { /mul } { /div } ifelse cvx exch 1 add array astore def
-} def
-/EvalPower {%
- /ExpressionVector ExpressionVector aload length dup 5 add -1 roll
- pop /exp cvx exch 1 add array astore def
-} def
-/EvalFactorial {% DR 09/2011
- /ExpressionVector ExpressionVector aload length
- /fact cvx exch 1 add array astore def
-} def
-/EvalLiteral {%
- ReadLiteral
- dup 40 eq%%% there is an open par -> function call
- { pop 2 index
- dup (Sum) eq { EvalSum }
- { dup (IfTE) eq { EvalCond }
- { dup (Derive) eq { pop EvalDerive }
- { pop 1 add NextNonBlankChar pop AnalyzeListOfE 2 index TrigoFunc
- /ExpressionVector ExpressionVector aload length dup 5 add -1 roll cvn cvx
- exch 1 add array astore def 1 add NextNonBlankChar pop } ifelse } ifelse} ifelse }
- { /ExpressionVector ExpressionVector aload length dup 6 add -1 roll cvn cvx exch 1 add array astore def
- dup 91 eq%%% there is an open bracket -> vector element
- { pop 1 add NextNonBlankChar pop AnalyzeExpr
- /ExpressionVector ExpressionVector aload length /cvi cvx exch /get cvx exch 2 add array astore def 1 add }
- { pop NextNonBlankChar pop }
- ifelse}
- ifelse
-} def
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% the derive function : Derive(n,f(x))
-%% firstparindex lastparindex ->
-/EvalDerive {
- %% manage the function descripiton
- 1 add ReadNumber 3 1 roll NextNonBlankChar
- 44 ne { ANALYZER_ERROR_missing_second_comma_in_Sum } if
- 1 add NextNonBlankChar pop
- 3 -1 roll cvi
- dup 0 eq
- { pop AnalyzeExpr 3 -1 roll pop 1 add }
- { 1 sub 3 1 roll (x) exch tx@Derive begin DeriveIndexed end 4 -1 roll
- { (x) tx@Derive begin Derive end } repeat
- ExpressionVector exch /ExpressionVector [] def
- AlgToPs aload length
- /ExpressionVector 1 index 3 add -1 roll aload length dup 3 add -1 roll /l2 exch def /l1 exch def
- l1 l2 add 1 add l2 neg roll l1 l2 add array astore def 3 -1 roll pop 1 add
- 1 index length /Strlen exch def } ifelse
-} def
-/EvalSum {%
- pop 1 add NextNonBlankChar pop
- %% read the variable name
- ReadLiteral pop NextNonBlankChar
- 44 ne { ANALYZER_ERROR_missing_first_comma_in_Sum } if
- %% read the initial value
- 1 add NextNonBlankChar pop ReadNumber cvi 3 1 roll
- 2 copy get 44 ne { ANALYZER_ERROR_missing_second_comma_in_Sum } if
- %% read the increment value
- 1 add NextNonBlankChar pop ReadNumber cvi 3 1 roll
- 2 copy get 44 ne { ANALYZER_ERROR_missing_second_comma_in_Sum } if
- %% read the limit value
- 1 add NextNonBlankChar pop ReadNumber cvi 3 1 roll
- 2 copy get 44 ne { ANALYZER_ERROR_missing_second_comma_in_Sum } if
- /ExpressionVector ExpressionVector aload length dup 7 add -3 roll 0 4 1 roll
- 5 -1 roll 4 add array astore def
- %% keep ExpressionVector for later and create a new one for internal Sum computation
- ExpressionVector 3 1 roll /ExpressionVector [ 6 -1 roll cvn /exch cvx /def cvx ] def
- 1 add NextNonBlankChar pop AnalyzeExpr
- %% add each term
- /ExpressionVector ExpressionVector aload length 1 add /add cvx exch array astore def
- /ExpressionVector 4 -1 roll aload length ExpressionVector cvx /for cvx 3 -1 roll 2 add
- array astore def 3 -1 roll pop 1 add
-} def
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% Convert to radians if trigo function call
-%% (name) ->
-/TrigoFunc {
- dup (cos) eq 1 index (sin) eq or exch (tan) eq or
- { /ExpressionVector ExpressionVector aload length Pi /div cvx 180 /mul cvx 5 -1 roll 4 add
- array astore def
- } if
-} def
-/EvalCond {%
- pop 1 add AnalyzeCond NextNonBlankChar
- 44 ne { ANALYZER_ERROR_missing_first_comma_in_IfTE } if
- ExpressionVector 3 1 roll /ExpressionVector [] def
- 1 add AnalyzeExpr ExpressionVector 3 1 roll /ExpressionVector [] def
- NextNonBlankChar 44 ne { ANALYZER_ERROR_missing_second_comma_in_IfTE } if
- 1 add AnalyzeExpr
- NextNonBlankChar 41 ne { ANALYZER_ERROR_missing_ending parenthesis_in_IfTE } if
- ExpressionVector
- /ExpressionVector 6 -1 roll aload length dup
- 6 add -1 roll cvx exch dup 4 add -1 roll cvx /ifelse cvx 3 -1 roll 3 add array astore def
- 1 add 3 -1 roll pop
-} def
-%% CondOp STR index
-/EvalCondOp {%
- 3 -1 roll
- dup (=) eq { /eq } {%
- dup (<) eq { /lt } {%
- dup (>) eq { /gt } {%
- dup (>=) eq { /ge } {%
- dup (<=) eq { /ge } {%
- dup (!=) eq { /ne } { ERROR_non_valid_conditional_operator }
- ifelse } ifelse } ifelse } ifelse } ifelse } ifelse
- cvx exch pop
- /ExpressionVector ExpressionVector aload length dup 3 add -1 roll exch 1 add array astore def } def
-/EvalUnaryOp {
- 3 -1 roll 45 eq { /ExpressionVector ExpressionVector aload length /neg cvx exch 1 add array astore def } if
-} def
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% H O O K S
-/AnalyzePreHook {} bind def
-/PreEvalHook {} bind def
-/AnalyzeListOfEPostHook {} bind def
-/AnalyzePostHook {} def
-/RollOp { 3 1 roll } bind def
-end %tx@CoreAnalyzerDict
-%
-%--------------------------------------------------------------------%
-%
-/tx@Derive 41 dict def tx@Derive begin
-%%increase ^^ for each function added
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% algExpr variable -> PSVector
-/Derive {%
- 10240 string 3 1 roll 0 3 1 roll
- /Variable exch def
- tx@CoreAnalyzerDict begin InitParser AnalyzeListOfE end
-} def
-/Strlen 0 def
-/InitParser { dup length /Strlen exch def 0 } def
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% algExpr variable index -> PSVector
-/DeriveIndexed {%
- 3 1 roll 10240 string 3 1 roll 0 3 1 roll
- /Variable exch def
- tx@CoreAnalyzerDict begin InitParser pop 4 -1 roll AnalyzeExpr 4 -2 roll pop pop 4 -2 roll exch pop end
-} def
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% (u,v)'=-(u',v')
-/EvalListOfExpr {%
- 4 2 roll 2 copy 9 -1 roll dup length 4 1 roll putinterval add AddPipe
- 2 copy 7 -1 roll dup length 4 1 roll putinterval add
- 6 -2 roll pop pop
- 2 copy pop 0 6 2 roll GetIntervalNewStr 5 1 roll 2 copy 0 exch getinterval 6 1 roll } def
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% (-u)'=-(u')
-/EvalUnaryOp {
- 4 -2 roll 4 index (0) eq
- { (0) StrConcat 7 -1 roll pop }
- { 7 -1 roll 45 eq
- { AddSub AddOpPar true } { false } ifelse
- 3 1 roll 5 index StrConcat 3 -1 roll { AddClPar } if } ifelse
- 2 copy pop 0 6 2 roll GetIntervalNewStr
- 7 -2 roll pop pop 2 index 6 index dup 4 index exch sub getinterval exch 6 2 roll
-} def
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% (number)'=0
-/EvalNumber { ReadNumber (0) 6 2 roll } def
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% (u+v)'=u'+v'
-/EvalAddSub {%
- 7 index dup (0) eq
- { pop true }%% du=0 nothing added
- { dup length exch 5 index 5 index 3 -1 roll putinterval 4 -1 roll add 3 1 roll false }
- ifelse
- 5 index dup (0) eq
- { pop { (0) } { 4 -2 roll 2 copy pop 0 6 2 roll GetIntervalNewStr } ifelse }%%dv=0
- { exch
- { 5 -2 roll 7 index 45 eq { AddSub } if false } %%nothing yet added
- { 5 -2 roll 7 index 43 eq%%something yet added
- { AddAdd false } { AddSub AddOpPar true } ifelse }
- ifelse 11 1 roll
- 3 -1 roll StrConcat 10 -1 roll { AddClPar } if
- 2 copy pop 0 6 2 roll GetIntervalNewStr }
- ifelse
- mark 11 -5 roll cleartomark 2 index 6 index dup 4 index exch sub getinterval exch 6 2 roll
-} def
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% (u*v)' or (u/v)'
-/EvalMulDiv { 6 index 42 eq {EvalMul} {EvalDiv} ifelse } def
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% (u*v)'=u'*v+u*v'
-/EvalMul {%
- 4 -2 roll 7 index dup (0) eq
- { pop false }%%du=0
- { (1) eq%%du=1
- { false }
- { AddOpPar 7 index StrConcat AddClPar AddMul AddOpPar true } ifelse
- 3 1 roll 6 index StrConcat 3 -1 roll { AddClPar } if
- true }%%du!=0
- ifelse
- 5 1 roll 5 index (0) eq
- { 5 -1 roll not { (0) StrConcat } if }%%dv=0
- { 5 -1 roll { AddAdd } if
- 4 index (1) eq
- { 8 index StrConcat }
- { AddOpPar 8 index StrConcat AddClPar AddMul AddOpPar 4 index StrConcat AddClPar }
- ifelse
- }%%dv!=0
- ifelse
- 2 copy pop 0 6 2 roll GetIntervalNewStr
- mark 11 -5 roll cleartomark 2 index 6 index dup 4 index exch sub getinterval exch 6 2 roll
-} def
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% (u/v)'=(u'*v-u*v')/v^2
-/EvalDiv {%
- 4 -2 roll
- 4 index (0) eq%%dv=0 -> u'/v
- { 7 index (0) eq { (0) StrConcat } { AddOpPar 7 index StrConcat AddClPar AddDiv 5 index StrConcat } ifelse }
- { 7 index dup (0) eq
- { pop }%%du=0
- { (1) eq%%du=1
- { false }
- { AddOpPar 7 index StrConcat AddClPar AddMul AddOpPar true } ifelse
- 3 1 roll 6 index StrConcat 3 -1 roll { AddClPar } if}%%du!=0
- ifelse
- AddSub
- 4 index (1) eq
- { 8 index StrConcat }
- { AddOpPar 8 index StrConcat AddClPar AddMul AddOpPar 4 index StrConcat AddClPar }
- ifelse
- %}%%dv!=0
- 2 copy GetIntervalNewStr 3 1 roll pop 0 AddOpPar 3 -1 roll StrConcat AddClPar
- AddDiv AddOpPar 5 index StrConcat AddClPar 2 copy (^2) putinterval 2 add }
- ifelse
- 2 copy pop 0 6 2 roll GetIntervalNewStr
- mark 11 -5 roll cleartomark 2 index 6 index dup 4 index exch sub getinterval exch 6 2 roll
-} def
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% str1 index str2 -> str1 index
-/StrConcat { dup length 4 2 roll 2 copy 6 -1 roll putinterval 3 -1 roll add } bind def
-/GetIntervalNewStr { 0 exch getinterval dup length string copy } bind def
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% (u^v)'=(u^v)'=u'vu^(v-1)+v'u^(v)ln(u)
-/EvalPower {%
- 4 -2 roll 7 index (0) eq
- {%%if du=0 then (u^v)'=v'ln(u)u^v
- 4 index (0) eq
- { (0) StrConcat }%%if dv=0 then (u^v)'=0
- { 4 index (1) ne { AddOpPar 4 index StrConcat (\)*) StrConcat } if
- 8 index (e) ne { (ln\() StrConcat 8 index StrConcat (\)*) StrConcat } if
- AddOpPar 8 index StrConcat (\)^\() StrConcat 5 index StrConcat AddClPar } ifelse
- }
- {%%du!=0
- 4 index (0) eq
- {%%if dv=0 then (u^v)'=vu'u^(v-1)
- 5 index dup IsStrNumber
- { dup (0) eq
- { StrConcat }
- { dup dup (1) eq exch (1.0) eq or
- { StrConcat }
- { StrConcat
- 7 index dup (1) ne exch (1.0) ne and%%%dr 09102006 insert du if <> 1
- { (*\() StrConcat 7 index StrConcat (\)) StrConcat } if%%%dr 09102006
- (*\() StrConcat 8 index StrConcat (\)) StrConcat
- 5 index dup dup (2) eq exch (2.0) eq or
- { pop } { cvr 1 sub 20 string cvs 3 1 roll (^) StrConcat 3 -1 roll StrConcat } ifelse } ifelse } ifelse }
- { pop AddOpPar 5 index StrConcat (\)*\() StrConcat 8 index StrConcat (\)^\() StrConcat
- 5 index StrConcat (-1\)) StrConcat } ifelse
- }
- {%%if dv!=0 and du!=0 then (u^v)'=u'vu^(v-1)+v'u^(v)ln(u)
- 7 index (1) ne { AddOpPar 7 index StrConcat (\)*) StrConcat } if
- AddOpPar 5 index StrConcat (\)*\() StrConcat
- 8 index StrConcat (\)^\() StrConcat
- 5 index StrConcat (-1\)+\() StrConcat
- 4 index (1) ne { 4 index StrConcat (\)*\() StrConcat } if
- 8 index StrConcat (\)^\() StrConcat
- 5 index StrConcat (\)*ln\() StrConcat
- 8 index StrConcat AddClPar
- } ifelse
- } ifelse
- 2 copy pop 0 6 2 roll GetIntervalNewStr
- mark 11 -5 roll cleartomark 2 index 6 index dup 4 index exch sub getinterval exch 6 2 roll
-} def
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% No derivative for factorial ! only cst => null derivative
-/EvalFactorial {% DR 09/2011
- 4 index (0) eq
- { (0) mark 8 -2 roll cleartomark 2 index 7 index dup 4 index exch sub getinterval exch 6 2 roll }
- { DERIVATIVE_ENGINE_ERROR_no_variable_in_factorial } ifelse
-} def
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% str -> true/false
-/IsStrNumber {%
- true exch
- { dup 48 lt exch dup 57 gt 3 -1 roll or
- exch dup 46 ne%%.
- exch dup 43 ne%%+
- exch 45 ne%%-
- and and and { pop false } if } forall
-} def
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% literal switch -> func call, vector, variables
-/EvalLiteral {%
- ReadLiteral dup 40 eq%%% there is an open par -> function call
- { pop (EvalFunc_ ) 9 4 index StrConcat 0 exch getinterval cvn cvx exec }
- { dup 91 eq%%% there is an open bracket -> vector element
- { DERIVATIVE_ENGINE_ERROR_vector_not_yet_implemented }
- { pop EvalVariable }
- ifelse }
- ifelse
-} def
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% first last parpos Expr[first:parpos-1] ->
-/EvalVariable { 2 index Variable eq { (1) } { (0) } ifelse 4 -1 roll exch 6 2 roll } def
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% (f(u))'=u'f'(u)
-/EvalFunc {
- 4 2 roll 4 index (1) ne
- { AddOpPar 4 index StrConcat (\)*) StrConcat } if
- (Eval ) 4 8 index StrConcat 0 exch getinterval cvn cvx exec
- 2 copy pop 0 6 2 roll GetIntervalNewStr
- mark 9 -3 roll cleartomark 2 index 6 index dup 4 index exch sub getinterval exch 6 2 roll
-} def
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% Func derivative -> Eval<func>
-/EvalFunc_sin {%
- PreCommonFunc
- { (cos\() StrConcat 5 index StrConcat AddClPar } if
- PostCommonFunc } def
-/EvalFunc_cos {%
- PreCommonFunc
- { (\(-sin\() StrConcat 5 index StrConcat (\)\)) StrConcat } if
- PostCommonFunc } def
-/EvalFunc_tan {%
- PreCommonFunc
- { dup 0 eq { (1) StrConcat } { 1 sub } ifelse (/cos\() StrConcat 5 index StrConcat (\)^2) StrConcat } if
- PostCommonFunc } def
-/EvalFunc_asin {%
- PreCommonFunc
- { (1/sqrt\(1-\() StrConcat 5 index StrConcat (\)^2\)\)) StrConcat } if
- PostCommonFunc } def
-/EvalFunc_acos {%
- PreCommonFunc
- { (-1/sqrt\(1-\() StrConcat 5 index StrConcat (\)^2\)\)) StrConcat } if
- PostCommonFunc } def
-/EvalFunc_atg {%
- PreCommonFunc
- { (1/\(1+\() StrConcat 5 index StrConcat (\)^2\)\)) StrConcat } if
- PostCommonFunc } def
-/EvalFunc_ln {%
- PreCommonFunc
- { dup 0 eq { (1) StrConcat } { 1 sub } ifelse (/\() StrConcat 5 index StrConcat AddClPar } if
- PostCommonFunc } def
-/EvalFunc_exp {%
- PreCommonFunc
- { (exp\() StrConcat 5 index StrConcat AddClPar } if
- PostCommonFunc } def
-/EvalFunc_EXP {%
- PreCommonFunc
- { (EXP\() StrConcat 5 index StrConcat AddClPar } if
- PostCommonFunc } def
-/EvalFunc_sqrt {%
- PreCommonFunc
- { dup 0 eq { (1) StrConcat } { 1 sub } ifelse (/\(2*sqrt\() StrConcat 5 index StrConcat (\)\)) StrConcat } if
- PostCommonFunc } def
-/EvalFunc_Fact {%
- PreCommonFunc { DERIVATIVE_ENGINE_ERROR_no_variable_expression_in_Fact } if
- PostCommonFunc } def
-/EvalFunc_sh {%
- PreCommonFunc
- { (ch\() StrConcat 5 index StrConcat AddClPar } if
- PostCommonFunc } def
-/EvalFunc_ch {%
- PreCommonFunc
- { (sh\() StrConcat 5 index StrConcat AddClPar } if
- PostCommonFunc } def
-/EvalFunc_th {%
- PreCommonFunc
- { dup 0 eq { (1) StrConcat } { 1 sub } ifelse (/ch\() StrConcat 5 index StrConcat (\)^2) StrConcat } if
- PostCommonFunc } def
-/EvalFunc_Argsh {%
- PreCommonFunc
- { (1/sqrt\(1+\() StrConcat 5 index StrConcat (\)^2\)\)) StrConcat } if
- PostCommonFunc } def
-/EvalFunc_Argch {%
- PreCommonFunc
- { (1/sqrt\(\() StrConcat 5 index StrConcat (\)^2-1\)\)) StrConcat } if
- PostCommonFunc } def
-/EvalFunc_Argth {%
- PreCommonFunc
- { (1/\(1-\() StrConcat 5 index StrConcat (\)^2\)\)) StrConcat } if
- PostCommonFunc } def
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-/PreCommonFunc {
- 1 add NextNonBlankChar pop 3 -1 roll 5 1 roll AnalyzeExpr 1 add NextNonBlankChar pop
- 4 2 roll 4 index (0) eq
- { (0) StrConcat false }
- { 4 index (1) ne { AddOpPar 4 index StrConcat (\)*) StrConcat } if true } ifelse
-} def
-/PostCommonFunc {
- 2 copy pop 0 6 2 roll GetIntervalNewStr
- mark 9 -3 roll cleartomark 2 index 6 index dup 4 index exch sub getinterval exch 6 2 roll
-} def
-/EvalFunc_Derive {%
- 1 add ReadNumber cvi 1 add dup cvr log 1 add cvi string cvs
- 4 -1 roll pop 5 1 roll 1 add NextNonBlankChar pop AnalyzeExpr 1 add
- 4 -2 roll (Derive\() StrConcat 7 -1 roll StrConcat (,) StrConcat 6 -1 roll StrConcat AddClPar
- 2 copy pop 0 6 2 roll GetIntervalNewStr 6 -1 roll pop 2 index 6 index dup 4 index exch sub getinterval
- exch 6 2 roll } def
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% literal switch -> func call, vector, variables
-/EvalFunc_Sum {%
- 1 add NextNonBlankChar pop
- %% read the variable name
- ReadLiteral pop 3 -1 roll pop NextNonBlankChar
- 44 ne { ANALYZER_ERROR_missing_first_comma_in_Sum } if
- %% read the initial value
- 1 add NextNonBlankChar pop ReadNumber pop
- 2 copy get 44 ne { ANALYZER_ERROR_missing_second_comma_in_Sum } if
- %% read the increment value
- 1 add NextNonBlankChar pop ReadNumber pop
- 2 copy get 44 ne { ANALYZER_ERROR_missing_third_comma_in_Sum } if
- %% read the limit value
- 1 add NextNonBlankChar pop ReadNumber pop
- 2 copy get 44 ne { ANALYZER_ERROR_missing_fourth_comma_in_Sum } if
- 1 add NextNonBlankChar pop dup 6 1 roll 3 -1 roll pop AnalyzeExpr 1 add NextNonBlankChar pop
- 4 -2 roll 3 index 8 index dup 9 index exch sub getinterval StrConcat
- 4 index StrConcat AddClPar
- 2 copy pop 0 6 2 roll GetIntervalNewStr
- mark 9 -3 roll cleartomark 2 index 6 index dup 4 index exch sub getinterval exch 6 2 roll
-} def
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% literal switch -> func call, vector, variables
-/EvalFunc_IfTE {%
- 3 -1 roll pop 1 add NextNonBlankChar pop SkipCond
- NextNonBlankChar
- 44 ne { ANALYZER_ERROR_missing_first_comma_in_IfTE } if
- 1 add NextNonBlankChar pop dup 5 1 roll
- AnalyzeExpr NextNonBlankChar
- 44 ne { ANALYZER_ERROR_missing_second_comma_in_IfTE } if
- 1 add NextNonBlankChar pop
- AnalyzeExpr 1 add NextNonBlankChar pop
- 4 -2 roll 3 index 10 index dup 11 index exch sub getinterval StrConcat
- 6 index StrConcat (,) StrConcat 4 index StrConcat AddClPar
- 2 copy pop 0 6 2 roll GetIntervalNewStr
- mark 11 -5 roll cleartomark 2 index 6 index dup 4 index exch sub getinterval exch 6 2 roll
-} def
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% advance in str until a comma is found (no error detection!)
-%% str index -> str index'
-/SkipCond { { 1 add 2 copy get 44 eq {exit } if } loop } bind def
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% Convert to radians if trigo function call
-%% (name) ->
-/TrigoFunc {
- dup (cos) eq 1 index (sin) eq or exch (tan) eq or
- { /ExpressionVector ExpressionVector aload length Pi /div cvx 180 /mul cvx 5 -1 roll 4 add
- array astore def
- } if
-} def
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% No derivative for condition....
-/EvalCondOp { 3 -1 roll pop } bind def
-/PutIntervalOneAdd {putinterval 1 add} bind def
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% Add open parenthesis in string at the given index
-%% str index -> str index+1
-/AddOpPar {2 copy (\() PutIntervalOneAdd} bind def
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% Add close parenthesis in string at the given index
-%% str index -> str index+1
-/AddClPar {2 copy (\)) PutIntervalOneAdd} bind def
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% Add 0 in string at the given index
-%% str index -> str index+1
-/AddZero {2 copy (0) PutIntervalOneAdd} bind def
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% Add open parenthesis in string at the given index
-%% str index -> str index+1
-/AddMul {2 copy (*) PutIntervalOneAdd} bind def
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% Add open parenthesis in string at the given index
-%% str index -> str index+1
-/AddDiv {2 copy (/) PutIntervalOneAdd} bind def
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% Add a plus sign in string at the given index
-%% str index -> str index+1
-/AddAdd {2 copy (+) PutIntervalOneAdd} bind def
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% Add a minus sign in string at the given index
-%% str index -> str index+1
-/AddSub {2 copy (-) PutIntervalOneAdd} bind def
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% Add a pipe sign in string at the given index
-%% str index -> str index+1
-/AddPipe {2 copy (|) PutIntervalOneAdd} bind def
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% H O O K S
-/AnalyzePreHook { dup 5 1 roll } bind def
-/PreEvalHook {} def
-/AnalyzePostHook { 7 -1 roll pop } bind def
-/AnalyzeListOfEPostHook { 6 -1 roll mark 6 1 roll cleartomark } bind def
-/RollOp { 5 1 roll } bind def
-end%%%tx@CoreAnalyzerDict
-/tx@AddMathFunc 12 dict def tx@AddMathFunc begin
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% NEW FUNC
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% function arcsine in radians asin(x)=atan(x/sqrt(1-x^2))
-%% x -> theta
-/asin {%
- dup abs 1 gt { EQDFasinrangeerror } if
- dup dup dup mul 1 exch sub sqrt atan exch 0 lt { 360 sub } if DegtoRad
-} def
-%% function arccosine in radians acos(x)=atan(sqrt(1-x^2)/x)
-%% x -> theta
-/acos {%
- dup abs 1 gt { EQDFacosrangeerror } if
- dup dup mul 1 exch sub sqrt exch atan DegtoRad
-} def
-%% function arctangent in radians
-%% x -> theta
-/atg { 1 atan dup 90 gt { 360 sub } if DegtoRad } bind def
-%% HYPERBOLIC FUNCTIONS
-/sh { dup Ex exch neg Ex sub 2 div } def
-/ch { dup Ex exch neg Ex add 2 div } def
-/th { dup sh exch ch div } def
-/Argsh { dup dup mul 1 add sqrt add ln } def
-/Argch { dup dup mul 1 sub sqrt add ln } def
-/Argth { dup 1 add exch 1 exch sub div ln 2 div } def
-%% modified exponential funtion for 0
-%% x n -> x^n
-/Exp { dup 0 eq { pop pop 1 } { exp } ifelse } bind def
-%% modified exponential funtion for 0
-%% x -> e^x
-/Ex { Euler exch exp } bind def
-%%
-%% factorial function
-%% n -> n!
-/Fact { 1 exch 2 exch 1 exch { mul } for } bind def
-/fact { Fact } bind def
-/! { Fact } bind def
-end
-%
-% END pst-algparser.pro
-
-%%EndProcSet
-%%BeginProcSet: pst-tools.pro 0 0
-% $Id: pst-tools.pro 622 2012-01-01 15:36:14Z herbert $
-%
-%% PostScript tools prologue for pstricks.tex.
-%% Version 0.02, 2012/01/01
-%%
-%% This program can be redistributed and/or modified under the terms
-%% of the LaTeX Project Public License Distributed from CTAN archives
-%% in directory macros/latex/base/lppl.txt.
-%
-%
-/Pi2 1.57079632679489661925640 def
-/factorial { % n on stack, returns n!
- dup 0 eq { 1 }{
- dup 1 gt { dup 1 sub factorial mul } if }
- ifelse } def
-%
-/MoverN { % m n on stack, returns the binomial coefficient m over n
- 2 dict begin
- /n exch def /m exch def
- n 0 eq { 1 }{
- m n eq { 1 }{
- m factorial n factorial m n sub factorial mul div } ifelse } ifelse
- end
-} def
-%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% subroutines for complex numbers, given as an array [a b]
-% which is a+bi = Real+i Imag
-%
-/cxadd { % [a1 b1] [a2 b2] = [a1+a2 b1+b2]
- dup 0 get % [a1 b1] [a2 b2] a2
- 3 -1 roll % [a2 b2] a2 [a1 b1]
- dup 0 get % [a2 b2] a2 [a1 b1] a1
- 3 -1 roll % [a2 b2] [a1 b1] a1 a2
- add % [a2 b2] [a1 b1] a1+a2
- 3 1 roll % a1+a2 [a2 b2] [a1 b1]
- 1 get % a1+a2 [a2 b2] b1
- exch 1 get % a1+a2 b1 b2
- add 2 array astore
-} def
-%
-/cxneg { % [a b]
- dup 1 get % [a b] b
- exch 0 get % b a
- neg exch neg % -a -b
- 2 array astore
-} def
-%
-/cxsub { cxneg cxadd } def % same as negative addition
-%
-% [a1 b1][a2 b2] = [a1a2-b1b2 a1b2+b1a2] = [a3 b3]
-/cxmul { % [a1 b1] [a2 b2]
- dup 0 get % [a1 b1] [a2 b2] a2
- exch 1 get % [a1 b1] a2 b2
- 3 -1 roll % a2 b2 [a1 b1]
- dup 0 get % a2 b2 [a1 b1] a1
- exch 1 get % a2 b2 a1 b1
- dup % a2 b2 a1 b1 b1
- 5 -1 roll dup % b2 a1 b1 b1 a2 a2
- 3 1 roll mul % b2 a1 b1 a2 b1a2
- 5 -2 roll dup % b1 a2 b1a2 b2 a1 a1
- 3 -1 roll dup % b1 a2 b1a2 a1 a1 b2 b2
- 3 1 roll mul % b1 a2 b1a2 a1 b2 a1b2
- 4 -1 roll add % b1 a2 a1 b2 b3
- 4 2 roll mul % b1 b2 b3 a1a2
- 4 2 roll mul sub % b3 a3
- exch 2 array astore
-} def
-%
-% [a b]^2 = [a^2-b^2 2ab] = [a2 b2]
-/cxsqr { % [a b] square root
- dup 0 get exch 1 get % a b
- dup dup mul % a b b^2
- 3 -1 roll % b b^2 a
- dup dup mul % b b^2 a a^2
- 3 -1 roll sub % b a a2
- 3 1 roll mul 2 mul % a2 b2
- 2 array astore
-} def
-%
-/cxsqrt { % [a b]
-% dup cxnorm sqrt /r exch def
-% cxarg 2 div RadtoDeg dup cos r mul exch sin r mul cxmake2
- cxlog % log[a b]
- 2 cxrdiv % log[a b]/2
- aload pop exch % b a
- 2.781 exch exp % b exp(a)
- exch cxconv exch % [Re +iIm] exp(a)
- cxrmul %
-} def
-%
-/cxarg { % [a b]
- aload pop % a b
- exch atan % arctan b/a
- DegtoRad % arg(z)=atan(b/a)
-} def
-%
-% log[a b] = [a^2-b^2 2ab] = [a2 b2]
-/cxlog { % [a b]
- dup % [a b][a b]
- cxnorm % [a b] |z|
- log % [a b] log|z|
- exch % log|z|[a b]
- cxarg % log|z| Theta
- cxmake2 % [log|z| Theta]
-} def
-%
-% square of magnitude of complex number
-/cxnorm2 { % [a b]
- dup 0 get exch 1 get % a b
- dup mul % a b^2
- exch dup mul add % a^2+b^2
-} def
-%
-/cxnorm { % [a b]
- cxnorm2 sqrt
-} def
-%
-/cxconj { % conjugent complex
- dup 0 get exch 1 get % a b
- neg 2 array astore % [a -b]
-} def
-%
-/cxre { 0 get } def % real value
-/cxim { 1 get } def % imag value
-%
-% 1/[a b] = ([a -b]/(a^2+b^2)
-/cxrecip { % [a b]
- dup cxnorm2 exch % n2 [a b]
- dup 0 get exch 1 get % n2 a b
- 3 -1 roll % a b n2
- dup % a b n2 n2
- 4 -1 roll exch div % b n2 a/n2
- 3 1 roll div % a/n2 b/n2
- neg 2 array astore
-} def
-%
-/cxmake1 { 0 2 array astore } def % make a complex number, real given
-/cxmake2 { 2 array astore } def % dito, both given
-%
-/cxdiv { cxrecip cxmul } def
-%
-% multiplikation by a real number
-/cxrmul { % [a b] r
- exch aload pop % r a b
- 3 -1 roll dup % a b r r
- 3 1 roll mul % a r b*r
- 3 1 roll mul % b*r a*r
- exch 2 array astore % [a*r b*r]
-} def
-%
-% division by a real number
-/cxrdiv { % [a b] r
- 1 exch div % [a b] 1/r
- cxrmul
-} def
-%
-% exp(i theta) = cos(theta)+i sin(theta) polar<->cartesian
-/cxconv { % theta
- RadtoDeg dup sin exch cos cxmake2
-} def
-
-%%%%% ### bubblesort ###
-%% syntax : array bubblesort --> array2 trie par ordre croissant
-%% code de Bill Casselman
-%% http://www.math.ubc.ca/people/faculty/cass/graphics/text/www/
-/bubblesort { % on stack must be an array [ ... ]
-4 dict begin
- /a exch def
- /n a length 1 sub def
- n 0 gt {
- % at this point only the n+1 items in the bottom of a remain to
- % the sorted largest item in that blocks is to be moved up into
- % position n
- n {
- 0 1 n 1 sub {
- /i exch def
- a i get a i 1 add get gt {
- % if a[i] > a[i+1] swap a[i] and a[i+1]
- a i 1 add
- a i get
- a i a i 1 add get
- % set new a[i] = old a[i+1]
- put
- % set new a[i+1] = old a[i]
- put
- } if
- } for
- /n n 1 sub def
- } repeat
- } if
- a % return the sorted array
-end
-} def
-%
-/concatstringarray{ % [(a) (b) ... (z)] --> (ab...z) 20100422
- 0 1 index { length add } forall
- string
- 0 3 2 roll
- { 3 copy putinterval length add }forall
- pop
-} bind def
-%
-/dot2comma {% on stack a string (...)
- 2 dict begin
- /Output exch def
- 0 1 Output length 1 sub {
- /Index exch def
- Output Index get 46 eq { Output Index 44 put } if
- } for
- Output
- end
-} def
-%
-%-----------------------------------------------------------------------------%
-% END pst-tools.pro
-
-%%EndProcSet
-%%BeginProcSet: pst-dots.pro 0 0
-% $Id: pst-dots.pro 130 2009-08-27 08:55:03Z herbert $
-%
-%% PostScript prologue for pstricks.tex.
-%% Version 2.02, 2009/06/16
-%%
-%% For distribution, see pstricks.tex.
-%%
-%% Timothy Van Zandt <tvz@Princeton.EDU>
-%%
-%% This program can be redistributed and/or modified under the terms
-%% of the LaTeX Project Public License Distributed from CTAN archives
-%% in directory macros/latex/base/lppl.txt.
-%%
-%% Modified by Etienne Riga - Dec. 16, 1999
-%% Modified by Etienne Riga - 2005/01/01 (er)
-%% to add /Diamond, /SolidDiamond and /BoldDiamond
-%% Modified by Herbert Voss (hv) - 2008/04/17
-%
-10 dict dup begin % hold local
- /FontType 3 def
- /FontMatrix [.001 0 0 .001 0 0] def
-% /FontBBox [-571.5 -742.5 571.5 742.5] def % changed to next line 20060616 hv
- /FontBBox [-1000 -1000 1000 1000] def % See end of file in /BuildGlyph
- /Encoding 256 array def
- 0 1 255 {Encoding exch /.notdef put} for % fill the array with /.notdef
- Encoding % replace with given dot names
- dup (b) 0 get /Bullet put % get the numerical position of b in ASCII
-% % and save /Bullet at this place in Encoding
- dup (c) 0 get /Circle put
- dup (C) 0 get /BoldCircle put % 67
- dup (u) 0 get /SolidTriangle put
- dup (t) 0 get /Triangle put
- dup (T) 0 get /BoldTriangle put
- dup (r) 0 get /SolidSquare put
- dup (s) 0 get /Square put
- dup (S) 0 get /BoldSquare put
- dup (q) 0 get /SolidPentagon put
- dup (p) 0 get /Pentagon put
- dup (P) 0 get /BoldPentagon put
-%%%
- dup (k) 0 get /Asterisk put
- dup (K) 0 get /BoldAsterisk put
- dup (J) 0 get /SolidAsterisk put
- dup (h) 0 get /Hexagon put
- dup (H) 0 get /BoldHexagon put
- dup (G) 0 get /SolidHexagon put
- dup (f) 0 get /Octogon put % 2008-04-18 hv
- dup (F) 0 get /BoldOctogon put % 2008-04-18 hv
- dup (g) 0 get /SolidOctogon put % 2008-04-18 hv
- dup (a) 0 get /Add put
- dup (A) 0 get /BoldAdd put % 65
- dup (x) 0 get /Mul put
- dup (X) 0 get /BoldMul put
- dup (m) 0 get /Oplus put
- dup (M) 0 get /BOplus put
- dup (e) 0 get /SolidOplus put
- dup (n) 0 get /Otimes put
- dup (N) 0 get /BOtimes put
- dup (E) 0 get /SolidOtimes put
- dup (i) 0 get /Bar put
- dup (I) 0 get /BoldBar put
- dup (l) 0 get /SolidDiamond put
- dup (d) 0 get /Diamond put
- (D) 0 get /BoldDiamond put
-%%%
-/CharProcs 47 dict def
-CharProcs begin
- /CirclePath {0 0 500 0 360 arc closepath} def
- /Bullet {CirclePath fill} def
- /Circle {CirclePath .9 .9 scale CirclePath eofill} def
- /BoldCircle {CirclePath .8 .8 scale CirclePath eofill} def
- /TrianglePath {0 660 moveto -571.5 -330 lineto 571.5 -330 lineto closepath} def
- /SolidTriangle {TrianglePath fill} def
- /Triangle {TrianglePath .85 .85 scale TrianglePath eofill} def
- /BoldTriangle {TrianglePath .7 .7 scale TrianglePath eofill} def
- /SquarePath {-450 450 moveto 450 450 lineto 450 -450 lineto -450 -450 lineto closepath} def
- /SolidSquare {SquarePath fill} def
- /Square {SquarePath .89 .89 scale SquarePath eofill} def
- /BoldSquare {SquarePath .78 .78 scale SquarePath eofill} def
- /PentagonPath {
- -337.8 -465 moveto 337.8 -465 lineto 546.6 177.6 lineto
- 0 574.7 lineto -546.6 177.6 lineto closepath
- } def
- /SolidPentagon {PentagonPath fill} def
- /Pentagon {PentagonPath .89 .89 scale PentagonPath eofill} def
- /BoldPentagon {PentagonPath .78 .78 scale PentagonPath eofill} def
-%-------------- hv begin 2004/07/25 from: er 2003/03/24
- /HexagonPath {
- 0 550 moveto -476 275 lineto -476 -275 lineto
- 0 -550 lineto 476 -275 lineto 476 275 lineto closepath
- } def
- /SolidHexagon {HexagonPath fill} def
- /Hexagon {HexagonPath .89 .89 scale HexagonPath eofill} def
- /BoldHexagon {HexagonPath .79 .79 scale HexagonPath eofill} def
-% 2008-04-18 hv
- /OctogonPath {
- 550 dup 22.5 tan mul dup neg dup add /xMove exch def
- exch moveto 7 { xMove 0 rlineto 45 rotate } repeat closepath } def
- /SolidOctogon { OctogonPath fill } def
- /Octogon { OctogonPath .89 .89 scale OctogonPath eofill } def
- /BoldOctogon { OctogonPath .79 .79 scale OctogonPath eofill } def
-%
- /AsteriskPath {
- 20 0 moveto 10 250 180 500 0 500 curveto
- -180 500 -10 250 -20 0 curveto closepath
- } def
- /Asterisk {
- AsteriskPath 60 rotate AsteriskPath 60 rotate AsteriskPath
- 60 rotate AsteriskPath 60 rotate AsteriskPath 60 rotate AsteriskPath fill
- } def
-%
- /Basterp {50 250 220 500 0 500 curveto -220 500 -50 250 -50 30 cos 100 mul curveto} def
- /BoldAsteriskPath {
- 50 30 cos 100 mul moveto Basterp
- 60 rotate Basterp 60 rotate Basterp
- 60 rotate Basterp 60 rotate Basterp
- 60 rotate Basterp closepath
- } def
- /BoldAsterisk {BoldAsteriskPath fill} def
- /SolidAsterisk {CirclePath .9 .9 scale BoldAsteriskPath eofill} def
- /CrossPath {
- 40 550 moveto -40 550 lineto -40 40 lineto -550 40 lineto
- -550 -40 lineto -40 -40 lineto -40 -550 lineto 40 -550 lineto
- 40 -40 lineto 550 -40 lineto 550 40 lineto 40 40 lineto closepath
- } def
- /BoldCrossPath {80 550 moveto -80 550 lineto -80 80 lineto -550 80 lineto
- -550 -80 lineto -80 -80 lineto -80 -550 lineto 80 -550 lineto
- 80 -80 lineto 550 -80 lineto 550 80 lineto 80 80 lineto closepath
- } def
- /Add {CrossPath fill} def
- /Mul {45 rotate CrossPath fill} def
- /BoldAdd {BoldCrossPath fill} def
- /BoldMul {45 rotate BoldCrossPath fill} def
- /Oplus {CirclePath .9 .9 scale CirclePath eofill .775 .775 scale CrossPath fill } def
- /SolidOplus {CirclePath .775 .775 scale BoldCrossPath eofill} def
- /BOplus {CirclePath .8 .8 scale CirclePath eofill .775 .775 scale BoldCrossPath fill} def
- /Otimes {CirclePath .9 .9 scale CirclePath eofill 45 rotate .775 .775 scale CrossPath fill} def
- /BOtimes {CirclePath .8 .8 scale CirclePath eofill 45 rotate .775 .775 scale BoldCrossPath fill } def
- /SolidOtimes {CirclePath 45 rotate .775 .775 scale BoldCrossPath eofill} def
- /BarPath {40 660 moveto -40 660 lineto -40 -660 lineto 40 -660 lineto closepath} def
- /Bar {BarPath fill} def
- /BoldBarPath {80 660 moveto -80 660 lineto -80 -660 lineto 80 -660 lineto closepath} def
- /BoldBar {BoldBarPath fill} def
- /DiamondPath {0 742.5 moveto -428.5 0 lineto 0 -742.5 lineto 428.5 0 lineto closepath} def
- /SolidDiamond {DiamondPath fill} def
- /Diamond {DiamondPath .865 .865 scale DiamondPath eofill} def
- /BoldDiamond {DiamondPath .73 .73 scale DiamondPath eofill} def
-%%%
- /.notdef { } def
-end
-%
-/BuildGlyph {
- exch
- begin
-% Metrics 1 index get exec 0
- 0 0
-% BBoxes 3 index get exec
- -1000 -1000 1000 1000
-% -571.5 -742.5 571.5 742.5
- setcachedevice
- CharProcs begin load exec end
- end
-} def
-%
-/BuildChar {
- 1 index /Encoding get exch get
- 1 index /BuildGlyph get exec
-} bind def
-%
-end
-/PSTricksDotFont exch definefont pop
-%
-%% end
-
-%%EndProcSet
-%%BeginProcSet: pst-node.pro 0 0
-% $Id: pst-node.pro 645 2012-02-12 09:09:51Z herbert $
-%%
-%% PostScript prologue for pst-node.tex.
-%% Version 1.13, 2011/11/21.
-%%
-%% This program can be redistributed and/or modified under the terms
-%% of the LaTeX Project Public License Distributed from CTAN archives
-%% in directory macros/latex/base/lppl.txt.
-%
-/tx@NodeDict 400 dict def tx@NodeDict begin
-tx@Dict begin % from main pstricks dict
- /T /translate load def
- /CP /currentpoint load def
-end
-/NewNode { % on stack: { x y } boolean N@name type InitXnode
- gsave
- NodeScale % a bugfix for xelatex, it's empty for dvips
- /next exch def % { x y } boolean N@name type
- dict dup % { x y } boolean N@name dict dict
- 3 1 roll def % { x y } boolean dict N@name dict def
- exch { dup 3 1 roll def } if % { x y } dict boolean
- begin % { x y } dict begin
- tx@Dict begin
- STV CP T exec % set scaling
- end
- /NodeMtrx CM def % save CM
- next % InitXNode
- end
- grestore
-} def
-%
-/InitPnode {
- /Y ED /X ED
- /NodePos { NodeSep Cos mul NodeSep Sin mul } def
-} def
-%
-/InitCnode {
- /r ED /Y ED /X ED
- /NodePos { NodeSep r add dup Cos mul exch Sin mul } def
-} def
-%
-/GetRnodePos {
- Cos 0 gt { /dx r NodeSep add def } { /dx l NodeSep sub def } ifelse
- Sin 0 gt { /dy u NodeSep add def } { /dy d NodeSep sub def } ifelse
- dx Sin mul abs dy
- Cos mul abs gt { dy Cos mul Sin div dy } { dx dup Sin mul Cos Div } ifelse
-} def
-%
-/InitRnode {
- /Y ED /X ED X sub /r ED /l X neg def Y add neg /d ED Y sub /u ED
- /NodePos { GetRnodePos } def
-} def
-%
-/DiaNodePos {
- w h mul w Sin mul abs h Cos mul abs add Div NodeSep add dup
- Cos mul exch Sin mul
-} def
-%
-/TriNodePos {
- Sin s lt
- { d NodeSep sub dup Cos mul Sin Div exch }
- { w h mul w Sin mul h Cos abs mul add Div
- NodeSep add dup Cos mul exch Sin mul
- } ifelse
-} def
-%
-/InitTriNode {
- sub 2 div exch
- 2 div exch
- 2 copy T
- 2 copy 4 index index /d ED
- pop pop pop pop
- -90 mul rotate
- /NodeMtrx CM def
- /X 0 def /Y 0 def
- d sub abs neg /d ED
- d add /h ED
- 2 div h mul h d sub Div /w ED
- /s d w Atan sin def
- /NodePos { TriNodePos } def
-} def
-%
-/OvalNodePos {
- /ww w NodeSep add def
- /hh h NodeSep add def
- Sin ww mul Cos hh mul Atan dup cos ww mul exch sin hh mul
-} def
-%
-/GetCenter { begin X Y NodeMtrx transform CM itransform end } def
-%
-/XYPos {
- dup sin exch cos Do
- /Cos ED /Sin ED /Dist ED
- Cos 0 gt
- { Dist Dist Sin mul Cos div }
- { Cos 0 lt
- { Dist neg Dist Sin mul Cos div neg }
- { 0 Dist Sin mul } ifelse
- } ifelse
- Do
-} def
-%
-/GetEdge {
- dup 0 eq
- { pop begin 1 0 NodeMtrx dtransform
- CM idtransform
- exch atan sub
- dup
- sin /Sin ED
- cos /Cos ED
- /NodeSep ED
- NodePos NodeMtrx dtransform CM idtransform end }
- { 1 eq {{exch}} {{}} ifelse /Do ED pop XYPos } ifelse
-} def
-%
-/AddOffset {
- 1 index 0 eq
- { pop pop }
- { 2 copy 5 2 roll cos mul add 4 1 roll sin mul sub exch } ifelse
-} def
-%
-/GetEdgeA {
- NodeSepA AngleA NodeA NodeSepTypeA GetEdge
- OffsetA AngleA AddOffset
- yA add /yA1 ED
- xA add /xA1 ED
-} def
-%
-/GetEdgeB {
- NodeSepB AngleB NodeB NodeSepTypeB GetEdge
- OffsetB AngleB AddOffset
- yB add /yB1 ED
- xB add /xB1 ED
-} def
-%
-/GetArmA {
- ArmTypeA 0 eq
- { /xA2 ArmA AngleA cos mul xA1 add def
- /yA2 ArmA AngleA sin mul yA1 add def }
- { ArmTypeA 1 eq {{exch}} {{}} ifelse
- /Do ED
- ArmA AngleA XYPos OffsetA AngleA AddOffset
- yA add /yA2 ED
- xA add /xA2 ED } ifelse
-} def
-%
-/GetArmB {
- ArmTypeB 0 eq
- { /xB2 ArmB AngleB cos mul xB1 add def
- /yB2 ArmB AngleB sin mul yB1 add def }
- { ArmTypeB 1 eq {{exch}} {{}} ifelse
- /Do ED
- ArmB AngleB XYPos OffsetB AngleB AddOffset
- yB add /yB2 ED
- xB add /xB2 ED } ifelse
-} def
-%
-/InitNC {
- /b ED /a ED % second and first node
- /NodeSepTypeB ED /NodeSepTypeA ED
- /NodeSepB ED /NodeSepA ED
- /OffsetB ED /OffsetA ED
- tx@NodeDict a known tx@NodeDict b known and dup {
- /NodeA a load def
- /NodeB b load def
- NodeA GetCenter /yA ED /xA ED
- NodeB GetCenter /yB ED /xB ED } if
-} def
-%
-/LPutLine {
- 4 copy
- 3 -1 roll sub neg 3 1 roll sub Atan /NAngle ED
- 1 t sub mul
- 3 1 roll 1 t sub mul
- 4 1 roll t mul add /Y ED
- t mul add /X ED
-} def
-%
-/LPutLines {
- mark LPutVar counttomark 2 div 1 sub /n ED
-% t floor dup n gt
- t floor dup n ge % to allow npos<= hv 2008-08-14
- { pop n 1 sub /t 1 def } { dup t sub neg /t ED } ifelse
- cvi 2 mul { pop } repeat
- LPutLine
- cleartomark
-} def
-%
-/BezierMidpoint {
- /y3 ED /x3 ED /y2 ED /x2 ED /y1 ED /x1 ED /y0 ED /x0 ED /t ED
- /cx x1 x0 sub 3 mul def
- /cy y1 y0 sub 3 mul def
- /bx x2 x1 sub 3 mul cx sub def
- /by y2 y1 sub 3 mul cy sub def
- /ax x3 x0 sub cx sub bx sub def
- /ay y3 y0 sub cy sub by sub def
- ax t 3 exp mul bx t t mul mul add
- cx t mul add x0 add ay t 3 exp mul
- by t t mul mul add cy t mul add
- y0 add 3 ay t t mul mul mul 2
- by t mul mul add cy add 3 ax t t mul mul mul
- 2 bx t mul mul add cx add atan /NAngle ED
- /Y ED /X ED
-} def
-%
-/HPosBegin { yB yA ge { /t 1 t sub def } if /Y yB yA sub t mul yA add def
-} def
-/HPosEnd { /X Y yyA sub yyB yyA sub Div xxB xxA sub mul xxA add def
-/NAngle yyB yyA sub xxB xxA sub Atan def } def
-/HPutLine { HPosBegin /yyA ED /xxA ED /yyB ED /xxB ED HPosEnd } def
-/HPutLines { HPosBegin yB yA ge { /check { le } def } { /check { ge } def
-} ifelse /xxA xA def /yyA yA def mark xB yB LPutVar { dup Y check { exit
-} { /yyA ED /xxA ED } ifelse } loop /yyB ED /xxB ED cleartomark HPosEnd
-} def
-/VPosBegin { xB xA lt { /t 1 t sub def } if /X xB xA sub t mul xA add def
-} def
-/VPosEnd { /Y X xxA sub xxB xxA sub Div yyB yyA sub mul yyA add def
-/NAngle yyB yyA sub xxB xxA sub Atan def } def
-/VPutLine { VPosBegin /yyA ED /xxA ED /yyB ED /xxB ED VPosEnd } def
-/VPutLines { VPosBegin xB xA ge { /check { le } def } { /check { ge } def
-} ifelse /xxA xA def /yyA yA def mark xB yB LPutVar { 1 index X check {
-exit } { /yyA ED /xxA ED } ifelse } loop /yyB ED /xxB ED cleartomark
-VPosEnd } def
-/HPutCurve { gsave newpath /SaveLPutVar /LPutVar load def LPutVar 8 -2
-roll moveto curveto flattenpath /LPutVar [ {} {} {} {} pathforall ] cvx
-def grestore exec /LPutVar /SaveLPutVar load def } def
-/NCCoor { /AngleA yB yA sub xB xA sub Atan def /AngleB AngleA 180 add def
-GetEdgeA GetEdgeB /LPutVar [ xB1 yB1 xA1 yA1 ] cvx def /LPutPos {
-LPutVar LPutLine } def /HPutPos { LPutVar HPutLine } def /VPutPos {
-LPutVar VPutLine } def LPutVar } def
-%
-/NCLine {
- NCCoor
- tx@Dict begin
- ArrowA CP 4 2 roll
- ArrowB
- lineto pop pop
- end
-} def
-%
-/NCLines {
- false NArray
- n 0 eq
- { NCLine }
- { 2 copy yA sub exch xA sub Atan /AngleA ED
- n 2 mul dup index exch index yB sub exch xB sub
- Atan /AngleB ED
- GetEdgeA GetEdgeB
- /LPutVar [ xB1 yB1 n 2 mul 4 add 4 roll xA1 yA1 ] cvx def
- mark LPutVar
- tx@Dict begin false Line end
- /LPutPos { LPutLines } def
- /HPutPos { HPutLines } def
- /VPutPos { VPutLines } def
- } ifelse
-} def
-%
-/NCCurve {
- GetEdgeA
- GetEdgeB
- xA1 xB1 sub yA1 yB1 sub Pyth 2 div dup 3 -1
-roll mul /ArmA ED mul /ArmB ED /ArmTypeA 0 def /ArmTypeB 0 def GetArmA
-GetArmB xA2 yA2 xA1 yA1 tx@Dict begin ArrowA end xB2 yB2 xB1 yB1 tx@Dict
-begin ArrowB end curveto /LPutVar [ xA1 yA1 xA2 yA2 xB2 yB2 xB1 yB1 ]
-cvx def /LPutPos { t LPutVar BezierMidpoint } def /HPutPos { { HPutLines
-} HPutCurve } def /VPutPos { { VPutLines } HPutCurve } def } def
-%
-/NCAngles {
- GetEdgeA GetEdgeB GetArmA GetArmB
- /mtrx AngleA matrix rotate def
- xA2 yA2 mtrx transform pop
- xB2 yB2 mtrx transform exch pop
- mtrx itransform
- /y0 ED /x0 ED
- mark ArmB 0 ne { xB1 yB1 } if
- xB2 yB2 x0 y0 xA2 yA2
- ArmA 0 ne { xA1 yA1 } if
- tx@Dict begin false Line end
- /LPutVar [ xB1 yB1 xB2 yB2 x0 y0 xA2 yA2 xA1 yA1 ] cvx def
- /LPutPos { LPutLines } def
- /HPutPos { HPutLines } def
- /VPutPos { VPutLines } def } def
-%
-/NCAngle {
- GetEdgeA GetEdgeB GetArmB
- /mtrx AngleA matrix rotate def
- xB2 yB2 mtrx itransform pop xA1 yA1 mtrx itransform exch pop mtrx transform
- /y0 ED /x0 ED
- mark
- ArmB 0 ne { xB1 yB1 } if
- xB2 yB2 x0 y0 xA1 yA1
- tx@Dict begin false Line end
- /LPutVar [ xB1 yB1 xB2 yB2 x0 y0 xA1 yA1 ] cvx def
- /LPutPos { LPutLines } def
- /HPutPos { HPutLines } def
- /VPutPos { VPutLines } def
-} def
-%
-/NCBar {
- GetEdgeA GetEdgeB GetArmA GetArmB
- /mtrx AngleA matrix rotate def
- xA2 yA2 mtrx itransform pop
- xB2 yB2 mtrx itransform pop
- sub dup 0 mtrx transform
- 3 -1 roll 0 gt
- { /yB2 exch yB2 add def /xB2 exch xB2 add def }
- { /yA2 exch neg yA2 add def /xA2 exch neg xA2 add def } ifelse
- mark
- ArmB 0 ne { xB1 yB1 } if
- xB2 yB2 xA2 yA2 ArmA 0 ne { xA1 yA1 } if
- tx@Dict begin false Line end
- /LPutVar [ xB1 yB1 xB2 yB2 xA2 yA2 xA1 yA1 ] cvx def
- /LPutPos { LPutLines } def
- /HPutPos { HPutLines } def
- /VPutPos { VPutLines } def
-} def
-%
-/NCDiag {
- /lineAngle ED
- GetEdgeA GetEdgeB GetArmA GetArmB mark
- lineAngle abs 0 gt {
- /xTemp xA2 10 add def
- /yTemp yA2 lineAngle dup sin exch cos div 10 mul add def
- /dY1 yTemp yA2 sub def
- /dX1 xTemp xA2 sub def
- /dY2 yB2 yB1 sub def
- /dX2 xB2 xB1 sub def
- dX1 abs 0.01 lt {
- /m2 dY2 dX2 div def
- /xB2 xA2 def
- /yB2 xA2 xB1 sub m2 mul yB1 add def
- }{
- dX2 abs 0.01 lt {
- /m1 dY1 dX1 div def
- /xB2 xB1 def
- /yB2 xB1 xA2 sub m1 mul yA2 add def
- }{%
- /m1 dY1 dX1 div def
- /m2 dY2 dX2 div def
- /xB2 m1 xA2 mul m2 xB1 mul sub yA2 sub yB1 add m1 m2 sub div def
- /yB2 xB2 xA2 sub m1 mul yA2 add def
- } ifelse
- } ifelse
- } if
- ArmB 0 ne { xB1 yB1 } if
- xB2 yB2 xA2 yA2
- ArmA 0 ne { xA1 yA1 } if
- tx@Dict begin false Line end
- /LPutVar [ xB1 yB1 xB2 yB2 xA2 yA2 xA1 yA1 ] cvx def
- /LPutPos { LPutLines } def
- /HPutPos { HPutLines } def
- /VPutPos { VPutLines } def
-%
-% GetEdgeA GetEdgeB GetArmA GetArmB mark
-% ArmB 0 ne { xB1 yB1 } if
-% xB2 yB2 xA2 yA2
-% ArmA 0 ne { xA1 yA1 } if
-% tx@Dict begin false Line end
-% /LPutVar [ xB1 yB1 xB2 yB2 xA2 yA2 xA1 yA1 ] cvx def
-% /LPutPos { LPutLines } def
-% /HPutPos { HPutLines } def
-% /VPutPos { VPutLines } def
-} def
-%
-/NCDiagg {
- /lineAngle ED
- GetEdgeA GetArmA
- lineAngle abs 0 gt
- { lineAngle }
- { yB yA2 sub xB xA2 sub Atan 180 add } ifelse
- /AngleB ED
- GetEdgeB mark
- lineAngle abs 0 gt {
- /dY2 yA2 yA1 sub def
- /dX2 xA2 xA1 sub def
- lineAngle abs 90 eq {
- /m2 dY2 dX2 div def
- /yA2 xB xA2 sub m2 mul yA2 add def
- /xA2 xB def
- }{
- /m1 lineAngle dup sin exch cos div def % tan alpha
- dX2 abs 0.01 lt {
- /yA2 xA1 xB sub m1 mul yB add def
- /xA2 xA1 def
- }{%
- /m2 dY2 dX2 div def
- /xA2 m1 xB mul m2 xA2 mul sub yA2 add yB sub m1 m2 sub div def
- /yA2 xA2 xB sub m1 mul yB add def
- } ifelse
- } ifelse
- } if
- xB1 yB1 xA2 yA2
- ArmA 0 ne { xA1 yA1 } if
- tx@Dict begin false Line end
- /LPutVar [ xB1 yB1 xA2 yA2 xA1 yA1 ] cvx def
- /LPutPos { LPutLines } def
- /HPutPos { HPutLines } def
- /VPutPos { VPutLines } def
-%
-% GetEdgeA GetArmA
-% yB yA2 sub xB xA2 sub Atan 180 add /AngleB ED
-% GetEdgeB
-% mark
-% xB1 yB1 xA2 yA2
-% ArmA 0 ne { xA1 yA1 } if
-% tx@Dict begin false Line end
-% /LPutVar [ xB1 yB1 xA2 yA2 xA1 yA1 ] cvx def
-% /LPutPos { LPutLines } def
-% /HPutPos { HPutLines } def
-% /VPutPos { VPutLines } def
-} def
-%
-/NCLoop {
- GetEdgeA GetEdgeB GetArmA GetArmB
- /mtrx AngleA matrix rotate def
- xA2 yA2 mtrx transform loopsize add /yA3 ED /xA3 ED
- /xB3 xB2 yB2 mtrx transform pop def
- xB3 yA3 mtrx itransform /yB3 ED /xB3 ED
- xA3 yA3 mtrx itransform /yA3 ED /xA3 ED
- mark ArmB 0 ne { xB1 yB1 } if
- xB2 yB2 xB3 yB3 xA3 yA3 xA2 yA2 ArmA 0 ne { xA1 yA1 } if
- tx@Dict begin false Line end
- /LPutVar [ xB1 yB1 xB2 yB2 xB3 yB3 xA3 yA3 xA2 yA2 xA1 yA1 ] cvx def
- /LPutPos { LPutLines } def
- /HPutPos { HPutLines } def
- /VPutPos { VPutLines } def
-} def
-%
-% DG/SR modification begin - May 9, 1997 - Patch 1
-%/NCCircle { 0 0 NodesepA nodeA \tx@GetEdge pop xA sub 2 div dup 2 exp r
-%r mul sub abs sqrt atan 2 mul /a ED r AngleA 90 add PtoC yA add exch xA add
-%exch 2 copy /LPutVar [ 4 2 roll r AngleA ] cvx def /LPutPos { LPutVar t 360
-%mul add dup 5 1 roll 90 sub \tx@PtoC 3 -1 roll add /Y ED add /X ED /NAngle ED
-%
-/NCCircle {
- NodeSepA 0 NodeA 0 GetEdge pop
- 2 div dup 2 exp r r mul sub abs sqrt
- atan 2 mul /a ED
- r AngleA 90 add PtoC yA add exch xA add
- exch 2 copy
- /LPutVar [ 4 2 roll r AngleA ] cvx def
- /LPutPos {
- LPutVar t 360 mul add dup 5 1 roll 90 sub PtoC
- 3 -1 roll add
- /Y ED add /X ED /NAngle ED
-% DG/SR modification end
- } def
- /HPutPos { LPutPos } def
- /VPutPos { LPutPos } def
- r AngleA 90 sub a add AngleA 270 add a sub
- tx@Dict begin
- /angleB ED /angleA ED /r ED
- /c 57.2957 r Div def
- /y ED /x ED
-} def
-%
-/NCBox {
- /d ED /h ED
- /AngleB yB yA sub xB xA sub Atan def
- /AngleA AngleB 180 add def
- GetEdgeA GetEdgeB
- /dx d AngleB sin mul def
- /dy d AngleB cos mul neg def
- /hx h AngleB sin mul neg def
- /hy h AngleB cos mul def
- /LPutVar [
- xA1 hx add yA1 hy add xB1 hx add yB1 hy add
- xB1 dx add yB1 dy add xA1 dx add yA1 dy add ] cvx def
- /LPutPos { LPutLines } def
- /HPutPos { xB yB xA yA LPutLine } def
- /VPutPos { HPutPos } def
- mark
- LPutVar tx@Dict begin false Polygon end
-} def
-%
-/NCArcBox {
- /l ED neg /d ED /h ED /a ED
- /AngleA yB yA sub xB xA sub Atan def
- /AngleB AngleA 180 add def
- /tA AngleA a sub 90 add def
- /tB tA a 2 mul add def
- /r xB xA sub tA cos tB cos sub Div dup 0 eq { pop 1 } if def
- /x0 xA r tA cos mul add def
- /y0 yA r tA sin mul add def
- /c 57.2958 r div def
- /AngleA AngleA a sub 180 add def
- /AngleB AngleB a add 180 add def
- GetEdgeA GetEdgeB
- /AngleA tA 180 add yA yA1 sub xA xA1 sub Pyth c mul sub def
- /AngleB tB 180 add yB yB1 sub xB xB1 sub Pyth c mul add def
- l 0 eq {
- x0 y0 r h add AngleA AngleB arc x0 y0 r d add AngleB AngleA arcn
- }{
- x0 y0 translate
- /tA AngleA l c mul add def
- /tB AngleB l c mul sub def
- 0 0 r h add tA tB arc r h add
- AngleB PtoC r d add
- AngleB PtoC 2 copy
- 6 2 roll l arcto 4 { pop } repeat
- r d add tB PtoC l arcto 4 { pop } repeat
- 0 0 r d add tB tA arcn r d add
- AngleA PtoC r h add
- AngleA PtoC 2 copy 6 2 roll
- l arcto 4 { pop } repeat
- r h add tA PtoC l arcto 4 { pop } repeat
- } ifelse
- closepath
- /LPutVar [ x0 y0 r AngleA AngleB h d ] cvx def
- /LPutPos {
- LPutVar /d ED /h ED
- /AngleB ED /AngleA ED
- /r ED /y0 ED /x0 ED
- t 1 le {
- r h add AngleA 1 t sub mul AngleB t mul add dup 90 add /NAngle ED PtoC
- }{t 2 lt {
- /NAngle AngleB 180 add def r 2 t sub
- h mul t 1 sub d mul add add AngleB PtoC
- }{
- t 3 lt {
- r d add AngleB 3 t sub mul AngleA 2 t sub
- mul add dup 90 sub /NAngle ED PtoC
- }{
- /NAngle AngleA 180 add def
- r 4 t sub d mul t 3 sub h mul add add AngleA PtoC
- } ifelse
- } ifelse
- } ifelse
- y0 add /Y ED x0 add /X ED
- } def
- /HPutPos { LPutPos } def
- /VPutPos { LPutPos } def
-} def
-%
-/Tfan { /AngleA yB yA sub xB xA sub Atan def GetEdgeA w xA1 xB sub yA1 yB
-sub Pyth Pyth w Div CLW 2 div mul 2 div dup AngleA sin mul yA1 add /yA1
-ED AngleA cos mul xA1 add /xA1 ED /LPutVar [ xA1 yA1 m { xB w add yB xB
-w sub yB } { xB yB w sub xB yB w add } ifelse xA1 yA1 ] cvx def /LPutPos
-{ LPutLines } def /VPutPos@ { LPutVar flag { 8 4 roll pop pop pop pop }
-{ pop pop pop pop 4 2 roll } ifelse } def /VPutPos { VPutPos@ VPutLine }
-def /HPutPos { VPutPos@ HPutLine } def mark LPutVar tx@Dict begin
-/ArrowA { moveto } def /ArrowB { } def false Line closepath end } def
-%
-/LPutCoor {
- NAngle
- tx@Dict begin /NAngle ED end
- gsave
- CM STV
- CP Y sub neg exch X sub neg exch moveto
- setmatrix CP
- grestore
-} def
-%
-/LPut {
- tx@NodeDict /LPutPos known
- { LPutPos } { CP /Y ED /X ED /NAngle 0 def } ifelse
- LPutCoor
-} def
-%
-/HPutAdjust {
- Sin Cos mul 0 eq
- { 0 }
- { d Cos mul Sin div flag not { neg } if
- h Cos mul Sin div flag { neg } if
- 2 copy gt { pop } { exch pop } ifelse
- } ifelse
- s add flag { r add neg }{ l add } ifelse
- X add /X ED
-} def
-%
-/VPutAdjust {
- Sin Cos mul
- 0 eq
- { 0 }
- { l Sin mul Cos div flag { neg } if
- r Sin mul Cos div flag not { neg } if
- 2 copy gt { pop } { exch pop } ifelse
- } ifelse
- s add flag { d add } { h add neg } ifelse
- Y add /Y ED
-} def
-%
-%
-end
-%
-% END pst-node.pro
-
-%%EndProcSet
-%%BeginProcSet: texps.pro 0 0
-%!
-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]FontType 0
-ne{/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}{{1 index type
-/nametype eq{exit}if exch pop}loop}ifelse[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 0 0
-%!
-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/setpagedevice{pop}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
-/setpagedevice{pop}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 0 0
-%!
-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
-TeXDict begin @defspecial
-
- /landplus90 true store
-
-@fedspecial end
-%%BeginFont: SkakNew-Figurine
-%!PS-AdobeFont-1.0: SkakNew-Figurine 001.003
-%%CreationDate: Mon Feb 02 15:14:46 2009
-%%VMusage: 120000 150000
-11 dict begin
-/FontInfo 15 dict dup begin
-/version (001.003) readonly def
-/Notice (Copyright (c) Ulrich Dirr 2003, former designs by Piet Tutelaers, Torben Hoffmann, Dirk Bächle. All rights reserved.) readonly def
-/FullName (SkakNew-Figurine) readonly def
-/FamilyName (SkakNew-Figurine) readonly def
-/ItalicAngle 0 def
-/isFixedPitch false def
-/UnderlinePosition -100 def
-/UnderlineThickness 50 def
-/Weight (Regular) readonly def
-end readonly def
-/FontName /SkakNew-Figurine def
-/Encoding 256 array
-0 1 255 {1 index exch /.notdef put} for
-dup 78 /N put
-dup 88 /X put
-readonly def
-/PaintType 0 def
-/FontType 1 def
-/FontMatrix [ 0.001 0 0 0.001 0 0 ] readonly def
-/FontBBox {0 -114 1241 842} readonly def
-currentdict end
-currentfile eexec
-D9D66F633B846A989B9974B0179FC6CC445BCF7C3C3333173232E3FDBFF43949
-1DB866C39088C203DC22FDC758584860EC7BB67FDA28CC6208249060E18FAB32
-204779B5C03C0493BBBBC95CF02692CC4DEAA8D2EA90B5C2E64374E92BCB8501
-429B8FAE4A76C0C6B76D6FF7CF9A7D5EDFBCA0E959541C59BD05B7DE43D25D53
-FC3DDA6EF0C2743978A6D03E19CCED4A11F2EA4BCC3110BE8B8D9E2772361969
-C19258EFAFDC276CB1ADE9208A941A36D18F9FB1C33DEF76AA315DDB04A81691
-6676E5A648D7DE382599A7743325F8403952F71AC144CB079B79EA0F6CC70FE9
-5F3188F983A1F1EC77ACFC7CCF01778F00CCFB385AFDEB4E5A9CE7CC620FF716
-C61C9DE01E055E0CAFD45A716C0BE3FCBE9055D993851DE60E1E573FA960A4E0
-DA00D6FC534C4CF679C935A5D4A5B19672767A386D945B17D996CF36231F8E98
-218CA1C3BBB7D39931D4D50B1D1EF947277C4A9C9E84D419D55550E2A5FF0549
-1FA0277DC7AD9334BF50CC5492D5EAA01A2BD4770AD8B320B546FDD69F0FE7B8
-7DCE3B013AFA239B624C50424184F8B2E6C035CD8D09C0AEEA727DA23EBB0563
-F296F801C2D059FAA56DDC675D141E980EE19E8693DD546BB1EFAF23B25EE18F
-401F89336BBB74A63088F8D1EEBE74494B265B6B737BBE29B09C257B26F2DC39
-B3CC5E66AB9A1696EE887C7638A4455C101BA7567859E0E604629B5D3FF0C3BD
-9415B98896048B159A2B809B92737580090FE1E59963263B10DCFDBFEFE15B88
-68ADC79BDC0DF2CA41AEBB4338C85C6CC6C21EA274FF5724D26BC8563E63DACC
-067651091F0E4F77C75213298BCD391606C39E1C1F37DD9C2C4515172E0DB0AB
-3E93275D2FCA7CBFA53CB4D8123F6F54D0986482FE3E98ECF421B3A21437BD9E
-E1556833796B0E3BDAAB179595F761991103B3CF06E89E5DDA1F6D91AE06E510
-6896FF0B71F0D2911767CB1DFEEF3500F070270EADED32C917A92CEE4B70D0AA
-AEC0F959827BFFAB9A4BCDD270540B157307FC76AA894CE6094B0A399768CC90
-A73760A26EA9F28C74DA6FD1AEE7BD8F21404F8FC3215606F8E3838371563F7C
-27C0833ED579C89FF32E4F2275FE27F5E70B4B6D62EBB0E0E26724A5B882D939
-13C29A0FE8B6823CF7E0FD24EAFEE0B17FD81119F9E9E730F889E0E6A6BF83C4
-C3AB5B3335202013A4C07D71EDCB645D75EBE01B6D98DF536ABDCEDFCFE0C622
-333D69C242E78C42BDC2E33ABEAC4122F4596B941EEE41F2B753588999185585
-F81C9AEDA32A0BD44F9524B9507F56322B2F69125FA7879FE893379DB4E9B623
-4A4284E77EC96EB41BD5014C4D2C952C8B879ECDD46A7D6F765AF5CFDC63EB48
-F3F635F1FD8DA05FBEDB7792CC93AE900A7E6D0D5E651DB84901133618EF2A2E
-0171B1265CD7728C0BE06A039942CFBCE56565997574AAB2E4D872A51D8BF02B
-8C9FF495D51DA88E25C017DA0BCFD68F818DBC70C21B0D1A5BFAA10D703FD9EA
-70DB8A6D0713921E6A9F06D18EB8C923D578B49B56B957F2829078137A1654D7
-07092331189B3832622448CAEA135A077CEEFD9F115DBCF8F8EFD10A7E9ACED8
-465CAAB3C01D7DA2DA499E4356F15DC5F39D92C89652D2076DA4156E2F6FF1CC
-CD25F6103A1ADA4D804AF9713EDC2E735305BF84268AC987D25E618FF5830ABC
-664C7D24F5BE04A94B10508F995F25551F09DDE397411C32DFE1DE7BB4B362EE
-F0E89BCC857F6A90A2E16A87B235EA5F907D242886828533DE028CAF26599169
-51786065E65083F6E7998D450209A662EBBE0F47FE9F857830D0A53FB713BD10
-1F617F1534AC91EF42C29F809333A085CF82E28FD4C4CE70E005C968FA255598
-FB48DCDB10D59E0BDEA6E48DB2DC38A73D7DDA26E4DC6C20D789C9DE0FD07DBE
-77C505C5481790BE351E82B2E71797BC63C4FD2E5A3D2200FC869C8731D1C4D4
-52927DB2FB6A9A9D94E5A9B82386BD671317D335068F327B80A76B76821197ED
-7477E1A0F3E825319F38B5B19D8D4254A568404F573503A98486EA3FE9D90B49
-B8FB9A14C78C398FEE336C6C06D26094253CB3C05DE94D479246F98955525E5B
-D396DB0463D820EFE630E45FDE82A1AEC969005BBBECF953A4E4D36FEA40774E
-257696BA1AA6893D8F50A739291882B49D194AA6CB52B6A9A5A0BA572D888611
-1D820E39A37484CB2F59442267F69CE3A98AA183B301EF970EFE0CBA542946D2
-B9A3376F2EDC866218B68FB3B04F95DAA1414BB2044863226EFBA073668EB743
-D77E06DF99647DBDCCD31821EB3FAF7FE8492230D69863CBA258F0E0AB8D706E
-32C3D545CFED4D6B3EC8D75B6D44B0CBD3D101217C9188711C50D7F96001B86D
-A6FDFD52372F09F7D4F9AD059B4C16E96F4E4B7956D7BC1A5202FCCD97F69580
-EAE80A741927F939513C39258BEBC1336F60F2F9E1BB946CCB222BB5F7923A0E
-54AB540082DD231B11E1F262EBAEA0E01E90D212BF3CBA3CBEED477CB1823C4E
-B98F9D1D10B4E036AD5E21504A2B9257C6A0183F194E9C048CB520DED328F39F
-5BC23801CB9668D693FBA408A32D9FA99A47FB3B29D8
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-%%EndFont
-%%BeginFont: CMMI10
-%!PS-AdobeFont-1.0: CMMI10 003.002
-%%Title: CMMI10
-%Version: 003.002
-%%CreationDate: Mon Jul 13 16:17:00 2009
-%%Creator: David M. Jones
-%Copyright: Copyright (c) 1997, 2009 American Mathematical Society
-%Copyright: (<http://www.ams.org>), with Reserved Font Name CMMI10.
-% This Font Software is licensed under the SIL Open Font License, Version 1.1.
-% This license is in the accompanying file OFL.txt, and is also
-% available with a FAQ at: http://scripts.sil.org/OFL.
-%%EndComments
-FontDirectory/CMMI10 known{/CMMI10 findfont dup/UniqueID known{dup
-/UniqueID get 5087385 eq exch/FontType get 1 eq and}{pop false}ifelse
-{save true}{false}ifelse}{false}ifelse
-11 dict begin
-/FontType 1 def
-/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def
-/FontName /CMMI10 def
-/FontBBox {-32 -250 1048 750 }readonly def
-/UniqueID 5087385 def
-/PaintType 0 def
-/FontInfo 10 dict dup begin
-/version (003.002) readonly def
-/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050<http://www.ams.org>\051, with Reserved Font Name CMMI10.) readonly def
-/FullName (CMMI10) readonly def
-/FamilyName (Computer Modern) readonly def
-/Weight (Medium) readonly def
-/ItalicAngle -14.04 def
-/isFixedPitch false def
-/UnderlinePosition -100 def
-/UnderlineThickness 50 def
-/ascent 750 def
-end readonly def
-/Encoding 256 array
-0 1 255 {1 index exch /.notdef put} for
-dup 60 /less put
-dup 62 /greater put
-readonly def
-currentdict end
-currentfile eexec
-D9D66F633B846AB284BCF8B0411B772DE5CE3C05EF98F858322DCEA45E0874C5
-45D25FE192539D9CDA4BAA46D9C431465E6ABF4E4271F89EDED7F37BE4B31FB4
-7934F62D1F46E8671F6290D6FFF601D4937BF71C22D60FB800A15796421E3AA7
-72C500501D8B10C0093F6467C553250F7C27B2C3D893772614A846374A85BC4E
-BEC0B0A89C4C161C3956ECE25274B962C854E535F418279FE26D8F83E38C5C89
-974E9A224B3CBEF90A9277AF10E0C7CAC8DC11C41DC18B814A7682E5F0248674
-11453BC81C443407AF41AF8A831A85A700CFC65E2181BCBFBC7878DFBD546AC2
-1EF6CC527FEEA044B7C8E686367E920F575AD585387358FFF41BCB212922791C
-7B0BD3BED7C6D8F3D9D52D0F181CD4D164E75851D04F64309D810A0DEA1E257B
-0D7633CEFE93FEF9D2FB7901453A46F8ACA007358D904E0189AE7B7221545085
-EDD3D5A3CEACD6023861F13C8A345A68115425E94B8FDCCEC1255454EC3E7A37
-404F6C00A3BCCF851B929D4FE66B6D8FD1C0C80130541609759F18EF07BCD133
-78CBC4A0D8A796A2574260C6A952CA73D9EB5C28356F5C90D1A59DC788762BFF
-A1B6F0614958D09751C0DB2309406F6B4489125B31C5DD365B2F140CB5E42CEE
-88BE11C7176E6BBC90D24E40956279FBDC9D89A6C4A1F4D27EC57F496602FBC4
-C854143903A53EF1188D117C49F8B6F2498B4698C25F2C5E8D8BD833206F88FC
-BD5B495EB993A26B6055BD0BBA2B3DDFD462C39E022D4A1760C845EA448DED88
-98C44BAAB85CD0423E00154C4741240EB3A2290B67144A4C80C88BE3D59AD760
-E553DAC4E8BA00B06398B1D0DFE96FB89449D4AE18CE8B27AFE75D2B84EFDB44
-143FD887F8FB364D000651912E40B0BAEDDA5AD57A3BC0E411E1AD908C77DCE3
-981985F98E258A9BB3A1B845FC4A21BCC54559E51BC0E6C22F0C38540F8C9490
-88A0E23EA504FA79F8960CC9D58611C519D3ACDC63FB2FBCAE6674357D7F2285
-4BCC9F54D3DA421D744D3A341DA3B494BB526C0734E1A8FC71501745399F7683
-FD17EC3044419A88C3979FD2ABA5B0130907B145A8462AAF0A9B511D2C8A7C7F
-347FF6AC057E6512902BFD2918E2CD31DE615F5D643764E900B60287670AE18F
-FDE15545D8BC69591A8CBBB275AFFC9B14BD68DF0AAB32268FB84844D4DBC7BB
-C591C1AC5102C50A9C7BAAA848DA88B0519F0F5F0813BF055CF0E3C86F633A04
-B779D2E8E656DB1E09A66A85FE21CA8BA5523F472A229E83F2C4E91ABA46C733
-F3C7B5775B06C97782BC225C46385BEBDC61572458EFC5CF4190AB7A9C1C92DA
-29F84BAACF552089195966E3AD9E57CC914D20B6962BE80429A16D4DF1ECAA66
-36C4343FADF0B2B48F12E2EB8443C4AA29D00949255F3968617F98B8ABD4CC12
-048B838EE243A21AC808BD295195E4AE9027005F52258BFCA915C8D9AED9A2C0
-80814F79CF943FBE3594C530A22A92E11BE80FCEC1684C4F56712D5846B0749C
-9B54A979B315222F209DEE72583B03093EC38F7C5B9F9BCB21DBE8EDDAE9BE8B
-75ACE6B12A31083AC8348EC84D1D29D2297A266284B7E9734E207DAF59A25F4E
-4AA38509E993C5394FED76E6A2F25462685C4C86C6E8CFC9863338EC1428BDFC
-74616BB1BC8948B0ED4C87C15B4405F3A7796F9DB3798FFFE8BD0A94E834817B
-D5E9812E308D0CC920470A6F2CD088FCB80462BF7CB3F039A7DF3DAF5B2B5355
-E083A385CD2EAF0FC181E40E96DD7E9AB9EF5C7E6866A13B8A54718E950FE097
-EF0951A357114F18CE9933D28B3A77AA71E3CE884661F13284BCED5D5FD1A86D
-543E588FF473DC2CF9A4DC312500135F29C2D0174B32018C8DBD40EF9A232883
-710A1F2AB2CD11312300ACDF789A9B7B93D2035D81D1C84984D92D78A53A00C6
-EDA94B24BBAC1AD17774A4E07E6F74ABD90415965616AD540C8ECD8C3A44EE4F
-7F4F6BB6238C5062D63FA59B7BF08BE93FAEA70A2AB08FBEAAF7DBF56B95FD93
-03CA406543BA6C9527D0DF01F5108D31A51778A5EB1C93F27B72B46146A353A2
-01CACBC829603B9989A87CF64528682CCBA0562A8165B185C58A5C6BB72F5E89
-500ACCAAB8ECEFBB2640E99EAEEC4EA979AA793D013D61D8ACF8784FF8D9398F
-F6A252A709324FB39509F0B3A4E725E82F53543383C6765BE556CC897C758208
-AA3AD37B0406E4A79F8F0A6C1983FC73E71CD858C0DB66ED66D5D992978614EE
-1EA91EBE191E082EBA1FC040AF19A2202575C2EBEB8058833E3520FA03D2F915
-85C1ED337E457B9FEEB0C6EF2735EFDA6E0D05FA641BCF698AC6B97751E8306C
-4DF00A39B8581FF53DB8F8525FDB196D85950906CCB59B8EF171349AA3B567B1
-6A00819947A995FB383C3C1709C9A2C113B2E40BB832B7D4A0FBA0B16A2C455F
-55809CC425C403E9668DC66BE45B71A81C332FD4DB279D22A2959962304A8F18
-085893DAC61317D24A8F198FDAB95F3B86F0AFD35047B868A9A17037A2829A02
-BAB042F75F349E197A7EED41984C2859754CAFD0251439921C248B463B516951
-2E1322C80D73F9CBCAA63A585450275AC2492E4D3FB78E800F788254DB5E610D
-CF788DF5C70FF99892BCDF16133E34B24B77C8F097F546B87C603DDB8998B66E
-BACB68BA27462AF54AA405682EC96D701F0D474DECD5F95CA2102DF639EB169E
-D518162C2BAE45FF698B6DE15FC6E7DE48C336C40A670FD26952A6BAB09115E1
-991F0073419F2CC2A1C08BE91096936AA0C37E4ED3CCCEE235476074B8FF1125
-6BDE3701F85532D8BB64CCC927CC335281C95EA689706F0AC717DC2CF680C754
-E5EFD7FA4BB8880B2B727A964C876D4A223069D4E6001771F0E23EAD2A4BBC80
-E76675297B2EF05F52BF4E71B3EE2BE3048CF088C79540113C66AE98B2FD3CB1
-B0741A215FD070882C52765009D7D711DAA2508F19AE7DDA15229A856AC49BC3
-4DDF40814FF96500E4B9B02D412E94623C5FDCC76C0FB8E42DF56A904FE49D65
-1DA7C53901B2EA71AB658A464D3ABDE27D9DB8D9E0B48F64E61A2495AD5D8DAB
-B5E72424AD017DF37964AF911BD7FA21A5EB4775DC8E95EF0C0EB856B00D89D7
-8172A1DE8530767D317B8256103E53CFB877E10686A04F5A08F8DC58D843DEBA
-FD5F40597588663D103689F6EB3EB14D06E18C8078F2538B43E712DF491FC5C6
-AF639256C8C6134B64D560D8476DEA6329D995E46CC4BC78841C59E73648B47E
-BFA7DE0846422F738454AE77E822A083405289247BD7C478BE4974F742CD6051
-E99FBB1D1B3FBABFEE855174734EE45E87D0AADF32B1283B911162A9955847FD
-38944D70584FAA6B1A7191C5C134B73F98EB632B69E2F0C0F94156787C34C8A3
-7622A029D58F9626B74F8A8A1F3803E0BC20E0EADEB1E99B70F1BD9F980FB751
-2A842843DE42EB142A84D5D3138629AE9EAF6F3479C423E8829C8816FA6EFA27
-DCE5580E65AA9854B1C64163DC318420CD993C15BFD76A8BA1182860A6B03D6D
-22B8CF43CFE6C8AB27C64842E239CAE707D3086BADDE1D7C94E3BC96319470D6
-8D26915C575CFDD03271D6BB9DE86A0EB6EEA6E768B224A626C62A9AB48A6EDB
-44F70BB5AF991CDF9736D65933E81CC57A78F623F33EC9AF535F2F25FA4EEC90
-D50DB7E87F31E971A75A33A301CA6013EEC5A4E179D695B33DADF2C98364434A
-42926776000B610E17524162253F6FA638D6581C18F99EA0BD1D2E24D2424ADF
-C05010D08192485153DD03930C7BF45237593E484F9851E6D464FA10FECA5D9E
-0C8CCC97DE029030900CDBB491C5CF226DBF903CFE7735D939C3FDF3A20B70CE
-66579B28B99313FEE914E295388C7BC8E055A2E54EA3A8206D3C8F4F7C0BA5E6
-E519419FD8CE215F7B8E9BEC604A9E3FE272A0328A24E31997C8A91E0946BCF1
-6943A97CBED2AB9FC636B49828BBB8B89E0BBC2653796431224895ABA5DAC41E
-1854BD9764E86147FD7624F736F40DE3B7582EDDFD15C2BDE3F22B5A54D7DF10
-B87A1301CE85CFC061689A890A321412A13314AE96DCD3EDA75035FDD8F4AB9B
-897A2C68263A68457032C469987970648BA2D88B1C5375DFEAA35A917B8A952E
-EE670427942AEDB3CB599C5746180E392837D371E15D860620ABDB6AA7772C40
-A5E346661673ACA530BE3D8E3FFB895E5DA3DC23B1B43C080C77F7E47847F0F3
-F3AA5CA9E4BF75FC5EBD18D19F21A7DAA3B11CABC6E4070A15F7DBC8B05EB6AA
-A02EF1B078EB66D61D6AFE41DA9B36FE7EC9EF94D1EA26282A9871E2CACB3126
-2AD49C2D9B50A6E47D8F2CCAD50992D1B430979A45FD9E76182A19964BB2A1F6
-51779A2B258DC1DF4C2F3074621286831F3848AC152DDD2BA561E6586ADA88D3
-598A2CE2CD048F027CE0008B828BD915887D7785341E8305DF2346ADB76BE99F
-87B02173BDC334E9221C8DF54114A6B24C1C5340299512FA6C8C51AB4C8778CE
-178CEF531C6D1B5FF0A1BE8EFF767F959BD4C345C52699A29A17B2A230842BF6
-4B011217D6D24EDAC3F6D53482786F1CA33169B90ECD499407D37CE9B70DDF78
-7B7547B32952535BA9ACD1E244447AE3FCED3AF28717083CF9590A09780984D6
-AF0743C82AE4FB3E2BB2856A4153A3967A023FFC35382D6C22D84A924900B6A6
-3DDD400E6D2418DA6C27F2FA34C075C902B89EBAE658B3C9A18EEE449DA5A379
-337DE95CB7AB3F0970CF1A5D8FAD8090E495570FDFB2FBBA79244780D8035547
-C5A55BB21A2270F724BF5D442CDC5BB9F09BE0CAE59B1C2270F0BDACE698F2C5
-DE8F66BFB9634904B161F5BA2B1950048300D69BABD312D58D89C4ED527AF7BA
-7DA2478EDC2CDEE3473DD8A8ED9D891CD1FC21F23013228BB3281B71FCE959BD
-6F8E9059D682A7FCC5265A0620992D4FA8D78377EB34CE3ECA070EE3707239BC
-98907DB0120CE42ABA32CF97127E28382BDDFD685674279F588D4F951216C355
-821361790F64C2CC720DE97E8ECB57326C43EE47367628E05769E106868B54F4
-C33C9951908DF6FC4F5ED2C7787BD8FA591BBB3E9C6C1DA94CC5E38D9B20C886
-7D237572FF46DD896A4D6163408EA6CEFAC398EE041EAE29D577E75326CA17A6
-B072D47A7B13EC441CE6DAA042ECD02134CBFA6809A435050413817193DAEB16
-A5882C8AEA44BCF36E74E9ECCDFE7E19FF5A5DD7A94E5AB4F8702C3DA7F42325
-23C808670A0490F5B373DADE40814FF9650241D3D69C91FBC5ECE728F827D9BF
-C928602E05477903449E079164CA39859C4BCA60C579F490AA455F82B5050BB3
-969AFB478E0D4A257B3356EA3CD62051FCE6C6B1929CFF85BFDF166BEF658E10
-3A55E007F38EBBB248B3F0B8ED1925106B499B762E45113AE1AC9DE09644C84B
-9C08034B297314EE69BC32DB6E7D7FB9913CE5AC17E7335979E9DCCE2BAB3725
-1976155551F9706A576FE0E3ADCCF72C87683291528ECB749CB0ED291966E239
-B5E3630676BD409E08F85BC1AEC9A2D4135376284A96EA24431243BD6FE8B966
-95F11A4BB53F392E0AEFEA623064FF8A7002367B0A515635CB2D2DDFB9B4A8D7
-FE721754E81BBA548848A235B91AD4E4F7DB19CCE2F61D277FC00AB956EB93BE
-44AB4970CA56BF59506C94ED160FB1E25D3DF2988A532BDB787BFB8539D22986
-FDC378AC31444E63C4727FEE121A43751043849E6DCAC5B59D0FC703AAFBBFD4
-E8B7C268F21615AD02CE9DABEFA27B5FE6A6441B619539CAB1F810F1263447AA
-633F5DAF483752EF1A0421740E3A811D2D2898CBF53E7F686C9223FD7235F02D
-6F90D2D48CC20AB87778DE3C6FB335E0F0EC20B5DC5B65223FE117526DE2C72F
-FE839DF93CB2A7D66CD900CB325F891E311BEC932F703FB4FEFA29DB8B9C88DD
-375EC71B3D58C7BC59ADA91971A3BDA1ADEA629CE6CC92BD542CDDFAA7706FB2
-6CDDE2DF07E56D6741916AE8E8744339816F3E6C38062747AA9FDA2A2678A6B7
-EFEA870AA3A4D71B25EE3013EAB1DBA34401B867C7A41AE51E0421D41D3BB83C
-E120C8FEABA6E5DEC53A689C21426D4BBCB68CB37568761C360E6D4E3596FB7D
-F4DEC7918E58C0293D12D6DDA7E9DCDAAD7C939F55CD1BC4A228B31E9A904156
-DA6B40B08E6ACE674618B768DD681C772A3E55FE096CF949CF3B0460ABDCD891
-D17B37B355B29AB5137899C036F31DA026244FA25FB798FBE5105BDA29F46538
-D3D3AC1001A7BCECE64DE94FFE6C354166A0F97256137BDFA07F6E22A3D1D2F4
-9588DBAE95E895BC5E64DDCBBAA8D0A22C229B42CB717FC711E7E9DF793DF80B
-9F14754585A3C7E17F37B32924B9F9870DA8635E3E18BD1DCD81EDF01834D9C6
-B33F23C956C2FCBFA47D84422F583459D827D1E120B97694D12F1F54D02379C0
-D288F7104F3FFCF4F76E3494F4ACBD1BE3A15543CC680924C78A473F8E311ADF
-8FE00A04C6C393DE61AD3EDA5BC031E2353076A2489391B52632387CA28A7B93
-FBB065A6EF3658AE80B1ADA47E9B2539E73A71FA75645F85ED8ECC257FB4CF26
-B6C912DE9D0F9899E70BECCB934AD32CF49A093371A9F73DE6255EBC39DE1E7F
-00D0CBDABD4D0383977E694890E71FBE5C376BE5F3A80C28987417504F515C50
-909F3D31178BB9B1D085BE514F71B910A9085BD6122DDC72A150BFE266920E49
-5661BCB4BAB51D6DEFE32B616963DBD989FCDD1637B294CE4E288655FBEFA1BF
-7F25BBF8CF17C2D5FD161A7C2CC9CC7490D9BF15A1D35B3BFA43ADE256E88BDA
-BD490D92907C57BAC408A575EC84D6AEE070148C7C9A91C03B09FDBD792E8FF0
-C0B886AAD2EDD86541E5E579359D40E3AC312ACD3D8FD49F71BD533DDF8859B1
-BAF17F1884E331DD07CEEF93B71D492AEBAADF7A263450A7A72210CE630A0D37
-BF024BDC09ACC882816B8C22C62AE38A3A8D0F6EBC2B1B2C0B8161A8B076DD5D
-4B779C0788546BB4CF57332230D237856B00D79C28A7C01D11F44B7304F69075
-94B97A745DA43D1BE561372CE611C345A843834E46AD9DDB16CABCD3FA33D6F1
-F6B5C0497F5EE5400B305CDC16A7EC286AA4D45D0EEBB9DA06AC9C5294D68EC9
-E4DC3CA2B92CE8FC0526184A86EDC7AB34D67E60AC12D9CA8FD300235EC968BA
-92C6FBDA47572BC5600F25249F60AD287CBDAE980E747FCBE7EE5CD323E733F0
-63553B494D3DDEB9CC1480B5C3BB79A28E419AA65B18CB297AB383419E890E2A
-CE6F98C9900CCB4675280A10CF060B8D220DDA1BE55DFA65715EABCC1AFAA271
-B1F8732341613E17B231231A0D24D4D7FC198AE04D89A99C4536217769C6FBD9
-5EE24A6302F97438F7C0E311C878F674B4477A5ADA3952CDE4055AC408B8174E
-86F8FB797646DFFFE0ECA25D1BAB9A9F71F3926D3D85AA63E7A8C931D71E79E0
-AF1EAC26FADE468F4FF7F3861D14C10E3BE1F9EAFD6D3A544E8108D5DAB5B180
-3950C74818BC8AF4758A108F462EF1826647A49667F5E482038C54716856D9BC
-35F29922846D2148F92F943E951D7438C73D6A60459A8003174036C64E1629CD
-155D47FD04B03C023AD67CD5A70C98AB556EEAB8C48169706E5B352F6505D580
-AC945171BFE62E81F8F500438AC3B64D857BA5BC54C2C4BBB237F8FA51296255
-E66A92A61FE13FDE781D393557EB72CEBAD86511035F775FAC39A0479CCD400F
-226709118F887F47CC2ECC8F79816D4A945B2845F50AFD62D8C9A9BBF4739496
-9E644BC9F7B04803B7EE75A09EAE94365F6F374B4FCEB0B506C76297564B9B6B
-8B812BC3A33929AA94692572B010E6210AEAA312BDFC88BF302244AB9D587A9B
-919823FD01DE12438D960944D1977800FEB49E638C32E5B188B1CA033E0C37EE
-A142F746367888AA119535F0CCAF7EAA461B790EB089D2D6962E28A398439BB7
-9C9943654D7A2D765B46BC0DD1F915327F369162E1BA1BA83110B93F442905E0
-523BFF5E279508A98568CD5CFD18FABBE9D17265A9081E7BF64155A2CE3C0DF7
-88D00671AD65654709589BAD7EA65BBA811387ABA5CA0BC3F66D3D48597A0D1D
-2C268375DF47CCF62166262AE4840AB03BF49BE67A05EF66328EC729F03CA5FF
-AD3937FC053E223303565DC771ACF32E63DFB96D5030E787961D72D02C195C66
-B48E9AF0309DC169CFE8D16E2818DA94693A18F027DEA0D9173633D9B50449E0
-F9026E7A4CC1A3694D6C030E5AE53C0DAAF90B0046E22E14FF2787AC8194C42A
-4B8846856AFE4CA20940A4E53896A851344E2E5538B9550721332077A972C793
-89CE532A20FA4A52F80B5D7EE0FF0915523A98E98B71B8ABB4D7F35DA6C05364
-A8B3D5DA9B1716C5C4D4402847C5A9BDA2F668709D51041BD566B7E1E675DCEC
-1AF4BD172F05A73329FBB30BC7D1D7EC85FEAF5CF1ED6BE70F7526E115381BF2
-47D955C5032404DA2FD82824C73F530E15E157EF023A2D9B50F4516A611B3F99
-3803C6EFE49E08AE983B4D15CE6699B5111C0A45913DE61EAC437709143AF4ED
-0D5136428AEEEF3776F9BA48212963150132D63DB4098AC124EE86C3AC7138AF
-B90A504A1E15524BA2662D7E0FFD6377FF7CAA3B6113DAB8AF64837C4A99D99E
-A499EC597828133A4C6421E0707E7E978C9B2A459620D0CB189775816D1421C1
-87110675A765C25DC2FB607ECCD8C53F705B406932F41A9DFE08
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-{restore}if
-%%EndFont
-%%BeginFont: CMTI10
-%!PS-AdobeFont-1.0: CMTI10 003.002
-%%Title: CMTI10
-%Version: 003.002
-%%CreationDate: Mon Jul 13 16:17:00 2009
-%%Creator: David M. Jones
-%Copyright: Copyright (c) 1997, 2009 American Mathematical Society
-%Copyright: (<http://www.ams.org>), with Reserved Font Name CMTI10.
-% This Font Software is licensed under the SIL Open Font License, Version 1.1.
-% This license is in the accompanying file OFL.txt, and is also
-% available with a FAQ at: http://scripts.sil.org/OFL.
-%%EndComments
-FontDirectory/CMTI10 known{/CMTI10 findfont dup/UniqueID known{dup
-/UniqueID get 5000828 eq exch/FontType get 1 eq and}{pop false}ifelse
-{save true}{false}ifelse}{false}ifelse
-11 dict begin
-/FontType 1 def
-/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def
-/FontName /CMTI10 def
-/FontBBox {-35 -250 1124 750 }readonly def
-/UniqueID 5000828 def
-/PaintType 0 def
-/FontInfo 9 dict dup begin
-/version (003.002) readonly def
-/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050<http://www.ams.org>\051, with Reserved Font Name CMTI10.) readonly def
-/FullName (CMTI10) readonly def
-/FamilyName (Computer Modern) readonly def
-/Weight (Medium) readonly def
-/ItalicAngle -14.04 def
-/isFixedPitch false def
-/UnderlinePosition -100 def
-/UnderlineThickness 50 def
-end readonly def
-/Encoding 256 array
-0 1 255 {1 index exch /.notdef put} for
-dup 110 /n put
-dup 111 /o put
-dup 116 /t put
-readonly def
-currentdict end
-currentfile eexec
-D9D66F633B846AB284BCF8B0411B772DE5CE32340DC6F28AF40857E4451976E7
-5182433CF9F333A38BD841C0D4E68BF9E012EB32A8FFB76B5816306B5EDF7C99
-8B3A16D9B4BC056662E32C7CD0123DFAEB734C7532E64BBFBF5A60336E646716
-EFB852C877F440D329172C71F1E5D59CE9473C26B8AEF7AD68EF0727B6EC2E0C
-02CE8D8B07183838330C0284BD419CBDAE42B141D3D4BE492473F240CEED931D
-46E9F999C5CB3235E2C6DAAA2C0169E1991BEAEA0D704BF49CEA3E98E8C2361A
-4B60D020D325E4C2450F3BCF59223103D20DB6943DE1B57C5FD29DA32D34C95E
-2AB2ADB3F60EEB0600C8ADE15A2380DE10AC5AAD585FBD13097B1A7E8E210D4A
-EE96785449E07F0C8EBC2EC5EFBFD0897DFDC15E5BFAC9584D8DE95C5AB288CD
-8AD8B9BEF0B8E5F887B3B0B331542FC8184DCCB753DB6ACEEF98B85756B988DF
-CAF1AE0DBE7D37D5F44A2E760AAE3A5197C27B15E32275A64946C3E4D0476FD2
-7FDE148C788DD2106F7C825E270588AC05B57E625AB17BDD02306F9E5FC851DC
-32A5A6EDC43C770A71419B2C0C8074EF3F222C8A2097CD81A91F333A521B3A09
-482A4FE1CB231CE344AD126AA284C3280AAC3AD162CF0EE241BFB4C8F20502FF
-118507F5D1B5FD898571015E73E5CF2281085072E00D401F6F59761EEC3E8381
-1F26F75DB66C504AB6BABA87D121B1E7040A07AA2FE01F80DBC246CC03C4B2DC
-C2A715980C52B7F96BC1A78FCC7F4F52EEED5F705E08FC1E5BBFCAD121FA88AA
-8EBE58172C162AF409DBB0728F14923ED02A65EA24E5D52B6AD07777455A70A4
-61833D3789C719BA92E901232599767E423D5AD9C807670BE0E7B5CFF8256A20
-C7BF7214FFE0342809570F5966A2C43E784F35015D9040BA34FEAB6A6F089504
-3A40A9E9D711A2721D3F4998371430FB3C94BFC619559B97D49627BB630F4B70
-9D0A8FE4E916235335C3962F3CFDB04C4A3CF714DB5E260F4E66FFF2F27CEF2A
-D4AA26BBCAED23B8BDC98F8F453BA27AD7758537561E766B82DC3032E92A9EB0
-125D98A22C5466AF069BF72A9BFA052A8628FEC6A6AD0B711DFFEDE3AA2D7CE8
-34EA487038EF50F953B8B4471CBA6FC3C53877EC1BC94582B1123EDF44B4056A
-30F49394BDE22CDAD7F01951C7013D26979277D18EFA594E8F4F2B5E615187D9
-39E842EC28461B9ABA52020A127D2CB9002A673A435B13C10602EEFDBBA6BD49
-9DDEAB9E68D655443A5C2492BA061C1391A51592BA8C353A6F6A0708E8860184
-2B5D031D2CAB87D618E9F6F7A0BF3F66B3FD5A25BB91F7F1F5F99CFF56EFF4FF
-0A35C55658001ED2E97B26C869292F6274D433A5443179DBB8EE987196306348
-3F9E87C6422AFFDD30080C9AC4EE7FE5E2DCBFEE4974331F4AAE479FD8806D4D
-9C2B85FC69EB0453AD827A1E767E5C484BDFBF5C8D6E2B3C96298B390F22D757
-802643A79D5E29CF3AEDF0E12CFBECA4663444FC87F2027571DBA9ECF688BF28
-FF0DDB3AEDBA0FB28447CB4B5D5205F40C1E7A525FD7373392EEFFD910AC82D0
-98E71660A1B3227C4A2592F3E853CA4CDF64DF19A52582E167234F4036FAAAB9
-5446BE102DE2BF43E82F0112C2A20F15A3F92C6571AC761665A905362C4F8BDF
-AC8705519C99862CD9C0D75113C4AB5FBB83C880E46B82715B5628890D9103AD
-A2329638B95D93C4DECDC5E6C588C9D5183EE6FC28FAF9825F02DCA567306D93
-5440987A81B51EE7291107A08F201C609FEF91A8F0587E8B13D4BAF74A5A6815
-DE9E4441F46AF8E1DDDFA2D611C889614040B144A5EC064DEE4638C04EAB2E37
-4CA8F50FB8C4D65BB296DCCCD39F1F554CFBED96670A91F515CA10EF896874BC
-8EF48C6447752C70FF5A06F928DB55586354076773BFF7E94C4C3A7A1C1F421B
-A9B4E3936EC26E0C19BBBFC90F021E877F54B62108F6DD1C7F6D5B8E64FC9362
-E173F01BF2904B7E5A08B3543611562C2714099DE7D4FA330DB148B560A9601F
-42A84452811CE213DCE782A0D7809CFD954D6BC1EBF2BA4D1B18F50FA8174C96
-3E0120E266AD5DDB40B3F6798AC28CDC5C3C4BC34583528F5B5DC8A222B80B59
-A3A93DC715D061EC6915E6E6E21A25425C25E8747C60F170D61047108826F96F
-7830E220C108B441B6EA3198E33C49BAD8D43086E49F5A2BC7958A1A8CD011C4
-49045193394696EC3DDD0BE084E8F2E9F0B9496F035C0DEC1CE11409DF566428
-D50043CFF5CDD1092F6E0807E660B68163BCA738E8D98FC6EE3F713164CD204C
-0BA84FFF4F33F47BC31750B448603D7ADB9AE92FA91AEBBBEC0DCD66980E6955
-CEB425ED07115B24E40F53B29B9D840842EAC691B4F591F866DF27556474B485
-1C6F53DD72499847109B16C7093984A6B8487D4F3870DD517945CD90E648C1BB
-8A6861E540FCF9D75B984B5009B5CC760CBE297042C240DD624111670B703388
-6FE6FC0E89C6B4C88F51DFF3913D0CC1FB4770C8CBEADD4B86393605C0B6C468
-83CA5594754411B6FC331EF56D7CD6D247FAE42E966583C29239A8F862348D29
-60B177984B6B957E733DB4D275015691D91443BBB13C2DA96097A29733CDB284
-42F89C85A7A743338C9DD3BBC4EE53F695E5163E6E1ABE5791ABF100B198B9B2
-1C21E2FA2FB4AFE7F9BB2D381260CDD3A2CC05BF513AA1E80ED69FA27BC5ED5A
-21445BF00BC2F997B356D94AF13736C6D3B0613EB6F4CD96A685FEB672661DCA
-206105EDC3CA07900676EB2FAB37F48D2E8207BDE1463894DA3C5B1488AC1EE9
-D39DAF691648048F5D7A384B8927F8DA2BE3602669F71D80686E427F395134E7
-7ADCC611BA91AD4B7A0237213C60CF2C905359C90795230344FC3C50A22BD44B
-55B2044792509F50F5C21F53D9F9E9F063ADBED3AB99E2613B23334FE8DF70B4
-6120F2EDF69F50BE793EE145B9FF9C73179DE640FC2ACEB5C6617F918CEEB762
-4CD81E665B2E544864D13230B058717B207D3CC5D6647D5343DB4D0356082392
-871EFFA896631A7E0D6477942B632074A9A4EF7B09D4701B1639BAAB4E03A40E
-9B54A7A4F845CD63F88831EBFA4FB847847CB98F3455CB5957F2E0A0F5623645
-DBB5C5564C7F8B117D6E27E65C0F3EA81AE67B4AE4B201E7C4FB0A8364FE53F5
-41A7CE8F834C2C4B322809B353A5E63BBA7BF3B7DC1A85EA700BD287C2BD3FC8
-2832B0BB4695FC937FF5EF06FCD87DCE6DE793C2B1EE10E6450352C17726155F
-220D550B1759E15AB2C1D5968E52C8080CD280E99D3CCC0E80C2EF8BBFD96001
-A226FEED7311EFB4B67F424B557A877379A15BCA54780F0CD2CCA00400B9B39D
-981C6B552AFD2506D1B23618FA9AE6D8143CD7198A8482CB416CCE62B992347F
-337D505A4078713BBD91E5535BD58EF0351EBDCD749CC24D4AD39F8CECD7D6C8
-139756680A4C03A58B3374CEC658D30160AE4863A3938A891BB59CBE02BB451B
-1BA4B2B6E68AB61DEB85F95E3C909B8B66E220B9F18280161C279F10F7093CDC
-100A53D542F071CC0A5AF834DC1D18738F5DD62A5573E884E1FFD22BD810828A
-1EA47F8218C15A2E97CBC609927DA3CC2B802EA4A0D7EB57627C135E3B065905
-F97597D818A2C5CC6F328AD25AD11FA50F1E4FE637980B7474D6F85A521892FB
-72989AABEBE02A2D0EFE88A6F67AC29F5D8DDFEDAAF465C439983C6B84389FF7
-A6434462BEB7B07DBE4BBA61ACD4A60C55B5C0AAE527DE381DFECA2E6BAFDC8D
-310364ECB42CAFF72BA93C067B2F02D1CA7C34AE7CDC46787A0E234C8BE8A928
-7A6F3DDE0338FAD532A9886E8E3525B85DD39364AB03EC4C0DD25DC179CC1989
-1BE232E387E857C78332D834679195E10F1E7B87B7966DA3B2238F53D1E13FE2
-8F55ED6A92A750C7250C9B91E29796621E7E9520373214D7DA81B2875A986D33
-80382AFF6DE1F829F048E57664D9C4ACE91E4684A51023943A4964AB5657D610
-3A5405EFD4CFD1EBA684243E15093C9667797BB47617B66054EE02C41FFEC45C
-C1BAE8AD56B00D323FCB1D2744F061FA16E161988741A319B1564E04BA210996
-4F9F02A3268CABE450D166A763F5284954564A1C86B76544C5F5ACDFE0D758DB
-865A1CFCF9FE8CD5F9C3B2998C56468FD52DF8EE60C6935A3D221EAEC7714E3B
-301371C7DDA0B03A2416238F2B47BAD3A2C5021C886DF51C695AF9C87A864B48
-3BB3FE0B355EED5454B59B25A0D8A1B8CBD356C24F64D9B55E16C30C011365C9
-1E0380753BA3EDC0868788D5F50B9353D0227BCEE1BE36998B2622C0759BD66B
-E4444250589F9CEDE766D8B940770CB6B89503E925B35C00CBEC2873D2DC4A29
-0823FB7A3717B69A7DEDBAAECC067949932728E89BEECAA91DE3AF9BF070B9C0
-30EEFA8C0A55C8388CAA2F0515915C98E67FA095BB98967D14B0DCAFA9622E4E
-2E0EBFC768D80585ACDF28D8A5C2B6EE2FE7AAF62FFB90F569F84A0903996DF0
-C1D5723366C436E4088F3E2BB9B47F9789052A71CF5C49908CDC1DDA194BFB89
-14D7E3D7D4D72A150FD6FFD8303E9DE5A97A71B808B8BDF2AE466F31BF5D7A4A
-44F81230BBE2B456A221E2F72A8B59F8FEA8D31F8A005A5BD93B9F49CFDC3DCC
-CE2B67090460F632271C7157BDC2F05BC2749FD562FC28682A616A52D1B67654
-DF78B7843A9EC26A7DE2EB168F874904C2915B97534B2D4D9F74A9573A771D34
-9F7BC855E8F794621BF6AD471BCC347E2DF5F620F5C209E33A4CBF1EA85AEA87
-4492A77342DD33EF615FF34037D660B713C908786D9022051B825226545827A3
-2AD1B05D654DB6E6D261B4E8AF0933AD1F0FCFC7201E1A7C1B4199F160C38676
-21ABA2DDF1CEB655B3EC3226E0B122976EEA998F7A5241F062E54AD1DFD6ED26
-47C99A439E0AE95415059179867CDD3F0FF751F3141309F40E00A6C7C28433E4
-F649BCD5DAA64177580E05C495EE7BCBCC5FBF104DAF360CC2711386655B26F9
-D349D887EEB32ADE595241560FD5924A1745A22E6A01DB9C285EF14596EBFF0F
-03F36EB2E0A7C3864F819EF7B0855121292D49482F046A55CD7271FE03F02EA5
-886864D9D8EC22A68C23089EAEFFF03DED6484D8C341861EF8B6FD3C5BDF5AC8
-352DA4E13A1E30D0CB71E090E9CFB9AB2CAFD0CA7C34AE7D8E3B2EB4666834BD
-9CCD1AC2108348AFEF6071796F4BB2FFA4A67ED917E76A109FA2DC2A30D744A0
-9AE653A748C1D18FB52595D84E87F1C1FB6B2F32667FE203262C66627AEFFED3
-92B23861E5EB238BB4EDCE09DAE1C65BAFC198CDD1B45D42CDF93E16BB82D35F
-821E9E49067E966AFAB2AB52928F8DD6359984071FC37AA652FB834A09E5BD93
-3AFAE161140E74C6531E413E8FBBFC42BFE8A464B71EB1D8CAA93B33D7BCC3B0
-47C7EEFCD3E9FCF26FF9441DD9BDE68D77AD7251C06BBB9A2103049E8827CAF0
-F26BEF33F656A690235DEEC623CC519AFA82DE2AE16FB99F780FD7D8290DA40B
-9B604AEF36B529FD184239E7D50561A07428D28E51B55546590A1AEAD4B7F2B1
-AB8C5B9022C1FA03E33F8F409B24911AB8BFCF6EF4A8E415263C789F89063E71
-C0910DC20347469380B7FC1EEB87D4CED7F4A361E58B61C91AFCABA35C03F978
-B9FB5257C31657EE48504C355CE893FE3C553274C641DBC4004F5D5B879CC5ED
-D3F21F867F6DF054127067DE86189F0B59A1B90FDABCDFEE61423609D888EEFD
-F4A1367129962110C651D9481CEDDB8C5C2576A59AED64E95F7ED042AEAE2F7E
-81AC0C408E593DC30DCAC334EDE9EE27D932B98F040DDCD195D6155607DD2038
-970EB78221A94C52BD4F0EAC65F1FC10E5DAA93C17266F351669CAE56F42B68C
-6D01E1EA03AE554D63CE76D800FDD9CFD89F80A241EAEFF7EDFA41794EA25CE7
-97BD5028464D2CD45B53834B4AEF8BF0B9E7C6ECDEACEC887E8790A47A93F668
-A9095E5FA1116A122C0E5B74E2226C654D3187C6CFD8807917820423DA3EC1DE
-AA020EEEF2280C44A15209EE2F3FC1776875308CEAD38571E7BF889F287E4594
-971A83605E0B4169D4A23EE790515223DF8724054EDAD905F57918FC0BC64F96
-514B4BF7DC9BA79E763C22C977FB6146B10D26FEA1BAA7BAF21312F78D1625A7
-8E242D743471DB5821408AB786E4A7EA9D35E30E85533C617689F95758FB2C7C
-392E759C299DCCE36689686DE0C4DCE32649493650BA194A6208C5EAB670B170
-3F2C70BF0EF0E3BE2FB0A79224FF4ECECD6BB3388C6D06867A0E5E3DB93C1B2F
-464C23E44D3132E7D4086E3B59B1D13F49EB4772DEDF8EDC4F603217233FB7BE
-C13C28648E9AA51D53F11FB896839F97AEDD8834BCA53CB0021AE91FD8E95E2E
-F8A094093AF556B9639F508A401542B06821FF9DE1A745FE9AC5CACD5E8E1053
-911442FC15CA5333751ABFE2C617D38FA1DC332BFEF44AE569DC631C93EC54D6
-261583A695F5A392867A57F59B741EFCD2DCFECBC55D1EA5F2317601C9DFE9ED
-D1EA466210FFA905A8F85BD58B98991BEA58DFD1CDED5C9B086D42CCE632DADA
-147941917B879139E016B0DDEB8446BA017FC8EE5A354533D667B0835F5D027D
-C2D580C16B80B3D05CC92C0465CAE077729F0A15B2DAFC89DCD349B3F81D0516
-C65526EB5C10E45A8A85D716EE35FB9AB201FD7C89ADE5AD925A174169DA20FB
-61E96C73A143DF964C20589EF24A0FCFE6195317F2FA0D2249C0D8E649C3D9AD
-FF13332EA2E4C9CD36D8443EC8F027B61CEF92C6A6B72DD4ACBACC16E429A9A3
-F5F29C1631360E32F8C1C93ACB22F810B86D2969A7480F486F62F8488BEEC74C
-2C1AF13BB92BC578E8CD30BEA6BC8CB68ED730F54CED0167605FA76AD7B7E88C
-7AE7688E598F91C471BD65A542E96D64B1EAF19FB4F1234308C48C2DC86E2193
-11ABDB4C6189C6F201627C693691A86DD07FF55C30FDB3F72381E09C6080FD7C
-9182762E5001E30F52A216E0B71E4D2D4E2F3B20F95DF3A11FDB2D2B5B5FAA66
-C46226D5E0C77066349770514E5675550FAC9394FB27CD2C2F974F1FD58C04A3
-1EF53A8AB3B2202CCA1CEFA66228E1480A0709436C44BD3319C40CF888AE4692
-5DBBB52B15CF3A518F627F672135A24D5DB9B2EBEF04C860AECF231EBB5A3BF5
-6DCCD5E72FE4B6DD29E896691868A7DE4120AD06AC573F5608B8449B38E71CA0
-EB5CDA3F942482EA7973661170F81DC88D54DD5B92323F46F833DFA757107E9E
-F62A47CC50FAA1B68ED535C3E0E1073532A05ED339C8D70B3B9864808ABACD23
-AA95E9FDA43D54C66A675FA074E0A5B8777D3C07850A09087F36852B5351F35D
-8BC4DDFCA35CF29CD5E3DE118A741FAC4DED36847F2E2C6CFE08669301722D94
-376F540982958074E7F1383C409652F6C99DA39FE90B38221E75BC1ECB93ABF6
-B00F410A0C5651DB418566AB350FDA1789AFD88286AF3BCB42B98386F7BC144B
-02DEB8940D20A6B3062F0C4244EABC50923390064F1D027A8BACC3DE45156E56
-4A942D1B87F1C4A76B0D4D6801AE792CCAE3009BF25368B31B6AD5476FBD3BFF
-9759EF463EF5E78E10B7BF64005B2ABE0E8813950A08A1808587A98E0021D0DD
-751AD515E8278F1A0759E85D8A084490BBB0F8206484AA36388B1013643D3198
-3509078847BDAE08E76FA5BF3E3A73C323CE093DCC148E3C02C2DE1E26C94D5A
-40EC8308ECB02FF7DD04EC1005A2A0DC74D4E587F10A3EF349E828F69FD38962
-2F0C74D5DAB3ED6CC9F97008ACCE74C086A503948DEF1AAF58FC8BEC703CD360
-D32098A56AC776B1BD08442052A2A4EF6C8798F7CDC102AF1A2009657254762A
-0793F79A39DCD6ADBAA5EC84A7ED6018BBE727E5D477893D84F157074B24C13E
-8D4881C7DF8ADC13EBA0D89745EF93B7616EC5355600BB0D2B630AABA3CF2946
-AFFD0B2B724EF0F28393F3DEFD59E05F83ED622EF1906B1A24A599C58E9CB8EA
-E9A28325A5DD621EDB3642FC06FFB416FB3029ADCFE5D7D23192C650FCD7D1F8
-ED7AEDC7166E26191B12F8E56F060D2D08D41E533813A8D64E5B7F2F151EC8E7
-E2333ACD6F78ACA804CD809616BE4342A5047C07E7421CCFAFA7B057B6F5A801
-21254E447FB15A8D020E976D8544D374B3A5974A7F194FDB147A2350923DDABE
-457B7AA8A2D05B2B993D1E3D64D048CEB465BDDB93249897B7470D7885E09640
-0C493522A4B260106698DC076B24ED70A29B29ACAD8E0976BC0C4C647716BD75
-A008490BD634504BD01639C0260C04DF791FFA51D5BD6DB0B4881071E7BEA3B3
-B457217E778ABF7E5CDFFE6E0408A8414C68F7BB0D5E2DFD34798763D6EC004D
-0C5E1CD575A379579F80E0036A8D3CE7C9A033D993567AF9959567FF8FC473C2
-A2545ED18E039847BD1FEBA958F0C9E5CEBFBC3EA8301823629A588F77AFABB6
-5309BAEF9A4E762A1C56434E83FD96ADF1129585E409D3148E4BF724A0E0FB52
-8655FC71A34655C85F6D8A0CA2801A97547AA83ADF8C829D0392B985C9F2D60F
-8105103B2EB1600189CD93ECAB2449CEBC5D364576B73EB26E8EC760AD31848F
-065DDEC8D51DB284D7395A719237CF2262946EA7A90DBF818272ABD8799DAD3D
-98FA7ED773708399D198399306D44717CCBF6030C5B68A5FA420B0132974120B
-D9C8A6FA8D096854AFBD4DF4E9188CA4D9CD3AFD65DA452D7B642DFA305F8627
-2ED7406E4E11D522C3B700C1C5D51131D6A8813D89CBDC469AABB4E8EC4A5649
-EA75095BEDED116B9CA61D884285A326F1527686A507912D8B44333032BB168D
-58A2B5532A76142B3B7F2157D17E70FC65BEC4A9DF1830F40A19FDF862001A66
-EF30F571470D58962352EBBEA70134564F6BFA8D0D3E5738875018EA87587137
-990C1F817EEBC1C5EE77F4001F9B9AE40ECAB505BC87EB382E6D7D1328E391B5
-6925F46E63D26EA1539FC422C4E7C70D6F8B3EC291709E3E38E4BF8A613D5973
-FBF6EEA30CFCD0EADA75E9C148EA563A0EA36DBC72D99E72D3EC18EC
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-{restore}if
-%%EndFont
-%%BeginFont: CMSSI10
-%!PS-AdobeFont-1.0: CMSSI10 003.002
-%%Title: CMSSI10
-%Version: 003.002
-%%CreationDate: Mon Jul 13 16:17:00 2009
-%%Creator: David M. Jones
-%Copyright: Copyright (c) 1997, 2009 American Mathematical Society
-%Copyright: (<http://www.ams.org>), with Reserved Font Name CMSSI10.
-% This Font Software is licensed under the SIL Open Font License, Version 1.1.
-% This license is in the accompanying file OFL.txt, and is also
-% available with a FAQ at: http://scripts.sil.org/OFL.
-%%EndComments
-FontDirectory/CMSSI10 known{/CMSSI10 findfont dup/UniqueID known{dup
-/UniqueID get 5000810 eq exch/FontType get 1 eq and}{pop false}ifelse
-{save true}{false}ifelse}{false}ifelse
-11 dict begin
-/FontType 1 def
-/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def
-/FontName /CMSSI10 def
-/FontBBox {-97 -250 1077 759 }readonly def
-/UniqueID 5000810 def
-/PaintType 0 def
-/FontInfo 9 dict dup begin
-/version (003.002) readonly def
-/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050<http://www.ams.org>\051, with Reserved Font Name CMSSI10.) readonly def
-/FullName (CMSSI10) readonly def
-/FamilyName (Computer Modern) readonly def
-/Weight (Medium) readonly def
-/ItalicAngle -12 def
-/isFixedPitch false def
-/UnderlinePosition -100 def
-/UnderlineThickness 50 def
-end readonly def
-/Encoding 256 array
-0 1 255 {1 index exch /.notdef put} for
-dup 12 /fi put
-dup 44 /comma put
-dup 45 /hyphen put
-dup 47 /slash put
-dup 48 /zero put
-dup 49 /one put
-dup 53 /five put
-dup 56 /eight put
-dup 65 /A put
-dup 66 /B put
-dup 67 /C put
-dup 69 /E put
-dup 70 /F put
-dup 75 /K put
-dup 78 /N put
-dup 80 /P put
-dup 81 /Q put
-dup 82 /R put
-dup 83 /S put
-dup 91 /bracketleft put
-dup 93 /bracketright put
-dup 97 /a put
-dup 98 /b 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 107 /k put
-dup 108 /l put
-dup 109 /m put
-dup 110 /n put
-dup 111 /o put
-dup 112 /p put
-dup 113 /q put
-dup 114 /r put
-dup 115 /s put
-dup 116 /t put
-dup 117 /u put
-dup 118 /v put
-dup 119 /w put
-dup 121 /y put
-readonly def
-currentdict end
-currentfile eexec
-D9D66F633B846AB284BCF8B0411B772DE5CE3C05EF98F858322DCEA45E0874C5
-45D25FE192539D9CDA4BAA46D9C431465E6ABF4E4271F89EDED7F37BE4B31FB4
-7934F62D1F46E8671F6290D6FFF601D4937BF71C22D60FB800A15796421E3AA7
-72C500501D8B10C0093F6467C553250F7C27B2C3D893772614A846374A85BC4E
-BEC0B0A89C4C161C3956ECE25274B962C854E535F418279FE26D8F83E38C5C89
-974E9A224B3CBEF90A9277AF10E0C7CAC8DC11C41DC18B814A7682E5F0248674
-11453BC81C443407AF41AF8A831A85A700CFC65E2919BE7E94DF619E5D4CC604
-78288A019B254A5A0A8E2D5ED465C9DB3CFEF0F444DA2A7DB2022495EA1B3FF8
-BA3E769C503BAC77336BAAEFA8F7B4BCF9BD63253ABE621C7C696DDD22E0EDDE
-ABDE1706338BB5F604B4F42356E2A96751B8EAF1112A1BE30B618E7F7BAA96CC
-A264B5EA7138FD007E2CBE19B1F008AE13B47252D2956A06299FB28035624C39
-08E9E5A4BC08DADE08861DB9940F6F0FA67E97E9A73C9F41525E865D0BF68F8B
-6D48D1595EB69B3FF78F5F4B18470370BA219A010F9B5EA904289205DF20C7EC
-91A2B866BA05251BD3D00FE5229CE2D2F220B6E25DA5B3C0EAC68979BB312E2C
-532264814FF214CBD46C8B9C8E45878C9E28FF334C5CC7DF9D378EA5A37986DF
-0450E2D5645371B8C577C28A008AB7A702E89FF337A17D05AFB0FDC55856AB3D
-FFF997FF51AAD70FED81A5D307FFBE26E862070E361DDF6D162934B7852D2FC2
-F3FE611F218E28CE0B964BE311E59D8729C7C0FC2B2D5781F73C87D64E6388D1
-D7798FE70E74E76368174F5E055FB8CDA3809536768B0E6028826436C7E6454E
-895EB7E435FF8AA342BDAD46A2C7BE5FEC83B8AD16F2C773F55F58870E70F2D4
-FFCA12D89B06A706CC204383C0238C17EFD01E0118FA4CB77681CB7260BBACE8
-30C8E7B16669700F884F234C36EE9694841EDD4FE5644949AA28AE2745FACFDC
-CFEF1590F99B0DE494BB0851205DF4E7F2EB88CFF794DFA7958F6EC9197021DC
-D4C3590B2729779345143AF6C349CBD2F17AEDDDC23AA8F0998C27170C44FE2F
-163C1E2FC314C6CE27D6CB497C3A12F6D10B92D699E1578C23B5D9A907EEA297
-4BF7D5C4ADFACA310E61EBE5655745FDCC48B661CC2D3EC016A87632AE410B69
-C2B98B87D3F46491EE8611E31CE17843B05C05924FA42FBAD7687003C14599DB
-08D72670855271EA55082BBF6AC146D452C1531338138D9AAC7E4D2F0CA1FDAD
-11E4CB830A9F38A83999F6F0ED15D12FA631B8604D4E3018E625C8BABD8E1075
-93F5E17CAD3CADA2210088E71C02CC6654DB4E12F8C2B6B7EADE37E52FAD3FD5
-83E45B62FC9B573A6068EF3B43856CD4B6C3E096BA93728B05AEE2BB96C60AEF
-58214FD24DEFA63E3FA299289B211A57E4B0CE9EB58414FB78E20151BCED3F4A
-9AE6B1D7ED559B3B619385AA8496D6F56D2B353E4B1BCCFA0A50247E283B1540
-4300E1119F710664ED5DECAAE9087B8C0CBA63F3FA09F217757B8448D13648BD
-D16FEAB50D245C198EDF27C8628CC7BD02385EEB04AF8F4C76308BEF4D640C8D
-6F2FDA7BED98F1498CEB1226F009BFAF6425265EC0D13FCACF4909B7495F4211
-BA32B04A3B0BCBAC89D6A9088C47C47B4BAC36FB59D9B5D73B2E9E926A9DD183
-1AE00AC58E9485379FC6DA119EEA3F6E478F22B60A464F192B2F43379407D4A8
-795073B4309C27D8E945468055493D0204B4A57C39CFDC951A04E0288775FCFB
-DE3993852671BE697999C9831A33CADEA75B369C179EB8A807CFEEA5CD97BC55
-1B0EE49DCC4B6BF4137124123626A5C91603B01B4E0AC759526C129F6AC5BE74
-B77B4E431B596E29C17BCCD1CE8279E9C00DF7557AB25770FC9B02762D7EF141
-84FFB4730BB8451A485F784A34647741D9B8D2127D158283E01B38BDC39BFA8D
-EAE249871ADB347827989E11FAC23F76C2389F8E883B01FFD1EA4968B44D1B1D
-760A1FC8F79B50385D8327D6A6381923BE9A2FB8AB0CC6ACAAF5C7701C8F7BDC
-81424F63D2CB312235AADD050FC4B71448EE02B7B25C82B6BFB070261919DC1E
-32F5E6DD4C38691581D472C254BAF83D7F568016B5AFAEC895187E88AA4D05C8
-FEBB3AEBC348AAB84907BC4D85C1F888ECAA5ED2714598384D7369F5FBA0B92B
-ACA0B6BCD2D22F9F10B27FBF11A8AF204794CED402A3597D2D469A99CE64BF1C
-9242867251B8EFEC0001A1ED0F470A4346BCD9DA22C005A079EE1DE3E33970FE
-56620C318D2FD3DD9DFBB773B4FEA7FEECEA9FA1923AD4B2F49DAFEF48E1C529
-DBE9EC77299E02DEA39C7B91F9E4F6D68EB224F4555F53E66CD00326CCB5FBAE
-70243CDD407BE63DF7BB85E70A99F8B58BEC1562C290D8E50666E1E4EAA484DD
-487C567B7BBFEED34A65A6407E3D8925E3C667AF40DB0EFBAE2C07EBE60A83DD
-C1A02842861C994C4D314A87986CC94EE74DD4E29AA9E70F393CF956D3BE586B
-AC618055571DE00541BA60D022DB49CB62C13FFCB3932DFBFD2D52C8F0C72F1E
-9337D95767E376B80AB35264405CC5C385ED6DC9F95535E00C5252DE66961AFC
-BC7C83ABFCFD5E0A055E37E7D261A19039D47EE792CA30EA673F80C48C0EEB20
-DB21686ABD169A45DB94E35FF086C9946F51409E9E0836041081B04F861838C1
-87157DB76A983928BB4122798551318EEB70A32C11A412FD56B7805BDA93AFCD
-B11D35FE799224AE30C3BD09D971AC651D06184FCE45D898D09685009DA35EC9
-CAB63751F8241297562AE2FEB577AB074D36381B0E5FC0DD5572E3A3079B166F
-56C42FBE6147FBDC7EC2ECF6380A70F87D1E44CFD02A70BB3AF4BD9D350C7B21
-5DDFD4FE288F0D9EB2FF4C24612FA759B41D0854C04163DC973570B974BAD7B7
-BF766AD59D543E808E8F56F831472ECFEECFA7BEA74CBCCB025AB04079AE0838
-75852BDC83E1D723824761459DA6A8920A27282043C38BDDB43157A70D552072
-400E84CED5FDFDA0F09DF94431956F304F6E92F3DE5F99874F995B467E2038A3
-B9C787E650C4A31B2FEFF078BCAC93ACA5816F5DC3FCE322C9DDB15E34856182
-BA15F2D56FF4E91573BD2D8B34767974BE928F10EDB3525C2B259F320DF99B88
-87801826F2B6AAB2C178270B27730496C44CC83C8036EE6D7D33D6D4C0D871A3
-62B7BBC8D8A4E86AEB2CAE76CC7B091B7DF5516EEF043C7D2727FE569B2E28FF
-F6BCC6FD3696A85CF5ED26571BFD346494CD6C0974BDE257EDD4A2C53C70FA89
-C81F9D32F5CCBAB39A7C00A1BE116FA1254F291AD26C1DE4CBA27BC03C5E5561
-8E960A7169F86C0DF884419ECAC607FA82B00CE0B41F7696B2C384582AF6A986
-5A9FF800D3A1F4B6C2524F1A4300B9FCDAE2C2050B9882BE4F512FF539FA6BE4
-C9577484EB323E7BFA5BDF628875A3634214B14947F7C16541CCE359F72A0E27
-C0DB4CCD1653693F7D0BA68D02D5A61AB516173E794BBE4C2C3F34ED9C33BE3C
-4A9E20A687498DA1DF7BCB1F6C595B90A5730A10070A54180318A1BD01844585
-E78C6EA28EEACCDCB49F1CAF1D21EE97B1DF74523291FCE2ABFE2C000E8F061A
-7CAEA494183B9261307CEAC6CD13B362130AE56A651DFACBBE7A6F6747CB61BF
-F94BF393769F2A1BD493E1E6502A3507416984FE0F7E509D901A106B857E2448
-7284E7ECC2D316EC1C54EE4FD7DC9972DE33B46356E414C92CF8DF9E472F7FE6
-7404362C8DFF6BE223B8886503A83A83348F7E9F88726CE068C904D45496494C
-641E4443D9474344508ABACF3FF3424383D79A8BDFE6E9D9138E660EB3FFCDCF
-8F4E01B24B3070E8B480064D946D0D200F4468EDDF7BDE9D3DAFF03B6D8165F4
-0CCB584D542D40DC72554A7597A19EFF3BD72B8520EA71A51048F15E2CA53F3B
-C3432278CC19751B38AEB52534BE6CD9BBD489444D313F8C78C2C252AB25AE6A
-5EC7D05F3FC21202C4B30A7FF9E1BDC6AE3F6B39B1E09F65E95292FBB1915D20
-44D7212A60408FC0F5A2E957BCEBE93DDDAD35D05D23F7E58A3602FB3FC1D431
-754A3A21F181C437437D7A22C402DC82275DE903E256979985B6E794B459FEFB
-393317FE573DAA5416AC52AED36AE9E79040097E2BAF6A0C6CB68C346E4EB059
-5E8A6AA1C751CA4A4094257C39ED48FE4414BE73B4E0BF6394FAC05CEEFD1C3A
-F5F5233CEB4625752057789ADF113E1E2F77F5B471A0AAA761AEB46CF37C2360
-E701B0DCAE13D4583D8DA516BE2E264230DEEE5053AED15368B6CD81DB761A49
-9987A07FC48E1EC246D04D80D86B32F7A093AA23B769B0DBC554EE48DA202C28
-55847E3D36D80B7C8E779DFE6EAFE3EB35811A1EF80DC639195D5810D90B4DB9
-6BABF8F4468AD92939567DEB43BB00CADB46964B73AE13ECC82C3A57A63A23A9
-92A46206C70B027CE34FB81E6919828462F8C2166AEBE9663259CE5D4CD8084A
-8BA479CDB203F1B0C3579B3E0B8B8E7AA616D798970A11423C391C25EAD95351
-A46A856512518A92C7693B42BE92C2E375047E9DF8620B624AF8DCF2836FB1BA
-801C822472AAF5AAA719038D3B53D0AE481753F2EC689394CFF9A911C42BE535
-C5B4A187712D487C63A0C8607D67D1DBD0EE766B526184768A93416366B2CCF6
-364F2D24B44021D0935CAEA289B120A613378399B53E2B50C11F67B7DC4BB1E5
-861D745B7FA3C7906AD591765884FA7D746A19EF86C30309DE0F43D4747EA290
-8E3C68BAF4D5F4C0C4E08DCA301E46AE3A0141A58074BA2EBBAD8B3F326C240E
-ABE33FA5AC689444E7E04B78C29E49D3A128567D08E712C5EC42EC1BD3D95E19
-5A7337B8AB2AA410EF1C0EB31D5766575340016CE477CBA3478FB68A98362C60
-18CDC9BA410A545AB339B2AAA2934222DA734F6A1AED9942B43B18BAF77FB63A
-71059FA66EE04B76730B499FA022A52139BEFF9CA6CE3F9855C7706E3F804F6D
-D622A6929D049F921079DF979F31828C31A73CA0238C0D2F11BE2FD68F2228EF
-BDE9837348C10E9F08477F754F6343A39736386912D6BC865BE30D1862BACA23
-0DF2061049CDF9F894D73A549C10E7BE7790043F9A642E4676F9DE2B934A7F8A
-7B0917DDF3255E6FE122D88DBD80252D0C1C8047A13F835E3FCFBFC0AA1D92CD
-F1CAB8D1C673EBDC5601B84615F513E4D9FE1F8CBF2337C9FFCDDAC85B6922E0
-0BCB0DEF0FA647E6828DED2F5B20F227AF3A792C0C63AD888D7AF39B10171FB1
-A24840EDC55158FF3D8513C89F666A2DECB4AA4A1D46503919A4CFD911977DAE
-4779F23271C23BDF14F4EF8352D9C66A7C24100C28CAD7BCD89E6E344EEE173F
-CF8BD462E1C67F06D73A9085A2AD1EA3DFCD19EB5FE217406771B80C8A3EE798
-A4CBFAB9AA93672B8FC9D02014F7076FBB477A777867C6A6AF2E6FFE3CBF3917
-1E4F68BCED22EC345F87A92480F4568006BAC16A2DAB940CB9F3462D254614B7
-78ECD86F7C3B3A7DAF06DA2D790F353D9254133C38D668C38082D0CC1BDC226B
-4A7EBB1460735A5CB04BCA4D71995483CDDC9EA7D3E070C00D5EA6DD4AB539E7
-E5C8E436656C99F30B3B464E5BA6CF7025E098C1FDED8B76260ACF62D1A08DB1
-F126517B05C47376D20C999565399B06CC686A817B226101AEE3644A706F3767
-372117607576BC2B9AD2637DD13C76F9CF2A356F1B9101496868EA8875C94C3B
-D181936A02D5387D1C3C285F2DBEEA25457F6A74FF7E00449FA41878776C0DF7
-C58FE07009574AE6B457F3BDE448E71CD04AC7E3C22E0CC8AF56B8B5611C4014
-3CC20A39A5FA3D9F6A5599495BA0457109823CE71BAC2B7057AF826DC623213E
-A6738E640DAECF08E69FE365741CFF8858337131B53A0AF9E49C3655F62E367E
-DE824A37A5DA853E1DD5970EC07D3594A59DA1AA85D4FFE3E9E7745FA7FC7F2F
-AFD4B9405C7907F383A5149D4DEACA083B457151CDCE3BA5F0C350945E8B92A1
-635239241B8FAF7704E3013EE5D21F421254F23194B537C36F8B673E70073189
-8B2DE6C30159232A2D054AB8254A450759ACE9C0B94DE035D9D6E5024E8AB56B
-644A5C3EF00A5B2EAC0F89C5FE8D7DEB9BC817EF1F87C2BBD956AFE4DD4B50C3
-A3BA4931A32827E612DC3059E97069D3894234BAC0E9AA1DB7B7EEE7F97C648E
-0B7E7012CA4977258733C72CE466A2EBA8F2B391BDB7652BC07C2343FC8A4B5F
-7C6B926D1B751BFFC6FCFDFAB9CBFF6D630CFC8BF374DF4DFB4B0845237E1E0A
-E2D044324B4F05C8C96970451C9348E8AA6F1153EAC8BA1C57FFA09B3A181CF1
-3EACE89F204BDBA7884FF6F90D1D0CB578DE1CDE56F526AB11F9DEC4FC09642C
-A68C8F1DD2EFC7BB301279F474967B1B10DD7FBA6B09B95E7B4D34F66CAAE07B
-F792BFE7755882FC790961FAD109A7C35258021DE25BB14410828F9122E01428
-D72EDC917C835553A30FBCAE5D067266A205DDD3AF3A4734371426968A7BF7C7
-9F48A5D91B596D765E15356F388E74D100B2243D230BFB33147BBCB298320930
-000670CB15B7EE9C787EC751621851C3BD5EA6E70FDE66C9834189A9B0D796C4
-1FA4179D594B7E8A39987A3DB806F337945A02DDD2B33D43F1E39FD20F41CA25
-BA3B5ECD3B32F961F4A98BE40604BF61732690F3C8B247C6E381AED4F277788E
-223F8EBECE8CBA7F48801118966E39D4EEEE3F04B254A87EB21C2E4B00F15AE6
-F1E2E59DA6353A45BD0A5BF4B822D86E0E7237809C1F0129B83BA2DF82D5D54A
-522697FD78DC73D8A75DC6BEE09FC523E5DDEA837BEDD90DEFCF214640DFD4E5
-477FD73B86A08885AC44CEE72F0E27AA63A901F2DCC7C42EC261EDD9699A278B
-507ABA7BE7101057297C6A3D67C37D61CA4015E7A46C30202617F3585D719309
-7DFF48AF4FBDFC7DD9F66E9549B8B800DDFB2D8AD69B3C6D2C3410E982559191
-93498926825E6A96A2CB12F8FD15F858AA28E4F9A9D1457D7B9AB16D9B9D4D45
-8FD6853853DF5851C529D134CBE17C6B99A8286519535CC1368407909A5B3CF3
-C75B4F86A40BD2EAB1918F03D93A283EB119A8F63E346E7502F0CFD12369B2B0
-09A2AD610FD210E8CBAEF4C0498B0E53BF4EE1A00B0C067C113F88E5E000E6F4
-FACE37B09D72B4242CD320E4F72F5E123E5578ACC48F604124A0A45559E1DCD9
-B58D9EE14F3BC6B4452B9236F6A3CAD7FB7E7D5C949DF2875CE44537DBA8B1D4
-C7ECEB76F55EA06D56209E0BAC984AD37A459B6C45B4D7F8B84CA66BF274F1D8
-02BF247751733715BDCAFBD55854B0F436BCC787F66B44784838F56AA29F83B7
-7D46F0D88835E45159413BEDFEC525BDEDE44291003D313CD2268E240C2388DC
-37380A430557D988332DF505B16CE488AF68C8F8626B7EA790121D6ACB87D94C
-83418919E0CAF58E41A3E036DF13D13C6B107500902A747CD7D7BF12235A766C
-00539129C31EA3E738733C4E443698673AAF4E9588AFAFBD00577721011A12BA
-D556591A82E2739AC4234917DD7A850C05F595BD87E0F7719D42DCBD9D724C85
-520006A9069E1CB2557D2F97D7A0C54AB564DC62759F793D60A4760854AFB05B
-AE445CB9131D0C14B6A6ADFE12DB225684D8254EFD295E7542031CCADC4B27E4
-F579C84F35DC502F17DAD24C1775F15F505888F0C3E0FD42357ED07FB5076E78
-E862016F7E5835CD5BAF87CECAC4BC92375B426E9512928E748E0328947B1844
-E251F3A6E99BAA5B97045D1ACA798296D0CCEC2044E59F32075BB7CB7C636BDE
-755916CB59C802761A99B211EEB550EF9BC14AADC70818D0053993C9F299B3D5
-AB1427B463A4D76459385F036A95770A8157D225FB75B2C92CA39D1AE7411AD7
-19AB8DEAABDE9A2F7530B474CC7119E4335AE12A9CE84BA7FA92AD46D6A7AD54
-A676EF1B2B0F3A73E6FB24B20F9702ED522DB7BC30DD2212ED63C88128ED1FA3
-7B05D70B0BD95BC58F1330343EAD91AED48EB4252314CA3B7FF921B61E040858
-EB3F545F8A8ADD86FD770249BDAAD02613AD5A45C3997E33188E59E004E2255D
-BDC14AFFD80F49365D5006821F2A4A2F801820D4D1DA9D11F02CA514EED93425
-742D97CC8F84E529FDE0BF4C6437A849A6630BD6760B31870D69C4C15EEA09E1
-831354F7C4A70C5F04DDB4B27952C3745B76EE5B168F047E59360CDD5D084D3D
-BC8BA0C569C7DDE62033CE401D65C35DF34D2875D4E6E83E7854E73F44EDBADA
-9368225C6160F4B0C4032A9800198C83EABDE656CFC1C1B65993D629A1BE0263
-41D83EDDCD589F05D1135AE5FDF759260CAA81FFA75E52E7721686F09ED30B6F
-A7E3A8B23FD647A7156FC46A098835E130519E9B03D51BE72D93AFD1C8E26369
-1003E8DECAB113FB42AFEC3EB1B58E4D4C57DA6A7EFF05766E9640AD6221244D
-863351C7E11AAE874D2C37B6AD9F9324344621662E0F626F85F2466C4DD58751
-8CF9D2ABFFE134E2281BEC8D06F7B41B1E46873EDDD6D5EE7953B988399A6C98
-57B8186F02ED58B05FA74B94FD084CB58F31EBFD5EBC64404C2DAEF49047078B
-06C8A968F278BA7BCA00EA900B268D520162BD000C1F8359A11D488DCE3E1240
-72620E53A10E1A0B555FC30C8CC126593508297A962130FF121C9621988B5909
-B8DAA24AD638AF9C9E4B9A8A99F13E8E0E1A1C7666BA3372C3432B5BD650F404
-BA14C3E9EAF67AD47B14035E4555E73E38D51BE87D6819BBE989CAF6F7B670C5
-B0D37784AA64A2F9636175C36B9997A071BDD275850A4F13A09FF65D57BA71AC
-87EA99A7C3C898D707553AA905E009F13662C2CCB8A22A4D6A236642F9EB8BF5
-65CFC666A8087C4B9D2B67E91911E03F9D9898B246E414AACB8CA8A22522A688
-2F513EE7D3DA11312A2B33128BDD0D9611564C99CDD4218B6097B1A8D527250E
-D06D7A6E316CC400C43D101C708062E98B2E3E6F0C2B4843A7615CB8F7A62B41
-1B6E77C241BB03BCB2A0FDF5C777A91F0B28330E00E9D2C9BF34F9861C47C420
-B509E436C446CCEC37AE97A88E17EDFE1C1451E1F922E7D6BF1C07FCF5BA55E5
-086C44F64DC8CF01E5B7329985500E0843243FAE19FFC776DD40D3CDFD3F3F5E
-380A603BE26E115F1581FA37FDBCBC3F74BE8B7481B377258AB9883A9FAF4AE0
-2BFB5505446BCA1A571E27A0D6DAAC312F7F5893A55D366E629237CD018458EA
-ECD90980C2E25FF13A928153E48347A50DBC46E60BC23F2AB1A25255C7C43B56
-ACF69FE81D608DA6A4744E88A4E6B3BAD37085DCAC470CFF413429B3CB33647F
-DE74E89C657FB6E95DFF863F70B0FB9C9AEA84AD4026907A4F2F1F5B73394E54
-5F24857D07F27C2B7F05565BF9B8227CCC870E578EDA8333B280CFAF6AB53FC5
-986EF9B3DDD2F97418526B89F3C166735F1E9FB8DCDF274326E41A9475789638
-29DB011B8508B09FF0D016ED1993382FD8B112AE89215955E34DC8117544FF86
-9BBEDFD821636C4666D5F85A6285B4F072A6B2BB39983E940AA149335E5CA57C
-9227EFDCAC25D1389D048192A848E2B57A0DADBD54D759E24B73CF56A580C38F
-6C0A41FD898F28B86A7E35F1D9C6301237C35828229C43A10D5C2F624EE80616
-CCD087884A919301754DB026DD7B5D0BF7F92FDD3663935D92716C0A6D73E432
-55E60BCF8E257E2B16BFE9BCEB5E1CADB082EFF5BC8362760F9DBF482AC53550
-DE8E7307CC94A17269F4E072C214C30965FF8001302A33A6682FF1B646E7FBD9
-82FF696174772548F04BF5703272CC5243915C0BA12E1E16A8A13FF1CD91832D
-14EFEB996D87395BE57985614DD69A438F06D3EA35C1984FFB124253DF153BF8
-7A23E50A601A34E20EC2ED6060B4A305BFF150E99F8C1DFC5FD0B149AEA55338
-4CEAB0B7673B8B33D18E2BDD3BFDE7A0B0269645E99D74B913CA74225D35F3F0
-4B7B868BAA796203E6FC720E6CD5753ACCC84BE4A4693D83A216C3D2EBA24606
-EC2AA7D30ACEE8DB8724D14D4DA28FD3D0BC8CAE5F05E8F667308D5D291DC1A0
-6A04107B93A6F3BC4F5C43DD989CECCAE3C263F32E1D87BE884203FFF304CCFE
-AB8D782E001263982E436750E53C5A21BE7B9F25D6B6CE178C529CD741BC14C6
-A9DD3CFBFBAAE1381BF375F622054AB84E487A9715EB718C09072EB43F173BEA
-EE0A3D981DF89F3E2911C8D0180B2FB117022CD3BD2728FD7A2B210D22863741
-5B67D94A4512A6CBF00F451E27AED24BD1E94D2C33CC1F5BF10618840106C79C
-0A70C547B6A739AA763B975C5AEEFAF3ED37DFCA33BEFBB6F17E8DE96E6E9D93
-DDAAF22A7F369F9564E688729112E25BE2C8952B496196705B72AE20FD65DC7C
-177B4564AB3F5E2C0D744209BCDC6E7D732071C9EB9F35386C29174C110D3714
-00420597CE811D2A891F845029FAC350278A79641FC2E62D8EF85DC4DEAD6362
-0945B22B25EA8ADA8AF3CDC1B907510BC028EEDEAC9EC1048B64B576D3B95FBB
-0864D96DBFE6408C5E680717A4C6D6BEC5D997699DEAD866315D28483F96CDAA
-490643EEAB079C47836DA0BE6EB432467BA84AAB278888E0E3520072AD999759
-B3BB99066BCDDB347467C1185CDD9BE1B6EBBA0D1348D1F4E41A78FCDBA97AE8
-D0A3A4619754685259ED1F24CDC39E36651307384467D51D7E15707B8C0EE506
-1C9995949B334E4891E0107BFC45849AAD5D13CB0500106B9E35D30F4C201AC4
-6C7F64C49DFF7921BF765BA7A840F757C192A21986765CC69A0B8B5678BA03EC
-06392E18756AFE81DCDCF2303EBC515E7314A2F030D6D5982E971B6E76B75553
-6EE103CAEC61923735BE23826E6188D2026B9BDE6D5EDCE539AABAEC01D390D7
-1036913A7D9149AA8B386999B5A78B7EF5315A0A07D6125CB2A3E0C6A6FCBD0B
-627325730E613C31937DA670530780EEA08AECA730C1246DA651357B7E4CF808
-ECF5E9E2ECC28357E4F5857E21396BC04582D0CC7647049A830AEC277DA82E31
-FD28E305C18C408AF4C2EAAD1A780BC7165494EED0B109E7A61265441D0FF0BF
-716E3A275DDAEC49579CEEE0CAF3C1BDD39DE0E958848550405962DE23E298F8
-EE78171374FB6D4ECC267AAE3A44E986CB5067958AEA67E2F5FAED6F3455395A
-C9D57CDAC571B5225619FBC801C322004589CB676D04CE4003E534FC74AA77FF
-1A400A6888EE3A1F395D31CDC412C39B27A758835DA380D319A7C4586FA682DE
-4C2C311F3CFA0AB281D2298B97053039AADA6136ACBD090582D552F7E5DC2335
-2F3920C0B7AE12AEFEF44EBE0E5C46F1C8723DEC22F8D4A4081C88105D41D305
-99F11751E1CDE4F9A4FD1DC5F46620B18ACF5273A0556B046C2CDF9272A6B093
-9EDC8F4A07457095C29D741DA644540C97C8CD4DD6422931A875B7D508ADE031
-30AE4E53B076358780D154B8DEC44CD4634415BD6F6A5ED4FB67B6C8BFE46E04
-0825E942E3372DC12364DC4258D4581A53C84F7B40FB8C2AB487C40C076FB2E0
-2119C09604DA55D04A3CD71A64FE3CC40630FCF4526CD23D9209C38A63CEB5DC
-5A38AB584937F75DEC7849C7B87B986D2557EEC20A621101055EA371E13B0F44
-695CBC4E1399DDC577E9B254F10144357C88F1F6FA97B2E7C589BFC16A4EED08
-85B17967429FDCDC16A22EF656935BB2C5AD7C1F7730EE9CAAFDDC680A876555
-0039AB74B913EDCA4B4847C9EC328BEEA65BB634FA3CB8A830E3D244C25ECADA
-9C3F7B64242779AC2CB12A43A90994D3233D447EE89AA1439FEA5A924AB77B15
-0321BC42C8129FDA3AB471AA002F9EC629E0E59D792A6EC43C7DC815C83BD7B3
-E8859C3CF707C700300BF475F585B2E61599AB988728DE07E8FAD97794F7F72F
-FAE04D436AA069C28DA27482F62102FEDD78B0FBB3DEC60EEF6F3B34CAD38DA9
-4C580279EDA8B9978315805539D3FA0F91E8FE31BCC0D841EEF75CD810F95714
-19CF1FD5834AED4C2ED817B62E571D4C42971788692DD2C4323DAA4032323A2A
-1F8E91BE8CAEB35992C890159DAF1EF50FC2A400CA13F716A694FAC7EB165714
-68133A6889C968D989CF9A3130AB5DB9EB2403D07EA6B6A9790B31F54FD5D039
-749D2B1D5BB579570600B5C051F83E2EECCAD8C087879270B60AA966C3FFE28B
-C8F7E805074D665524205E93B828909410FEC4494FE71D2935EA75B8231CD600
-B13411538D73B2EDE351F5C135A4138F10EFBC2EFB255FA3583B90014BFC5476
-5D9DF52DED61C7B8D1D03D2AE323E2F97448546BD4EEE26C24AFB1F0F07B461E
-7DFF0C40040385B56080F2D4C0F9614450A26A73FF410FA05DAD6865E207E3D7
-CA06CA08FACA85DA4BD5494E2F6E59040063AA4D5554DDA97AAAE956C340D46A
-04A3D90448FA9C2E4D803525F04FEA55FA48FF888CA9859560F90EA2884F04BA
-EFA2ADC837D0C3BDD94AFC36171FB44FBF6C9410115348A4A0C3CBD799F05C60
-AC944711AF4444B5C1B9A3A4D8486B036E8EB5E0A614FE46D0BD2C851AAE1A62
-E6BC80F4DF23D2E8219D124D0EDA1A1AC4E0F6826F90583D1FCCE6072E3BDE39
-D7AA16E0F84140812F906A63F1BD8693FE1F60259D3CF28BAEA60CA4F96A2243
-C09331B283F4825A85FE23D27093A102335ED62571FDF43760A5C0B6780B8AFE
-BB793C128307E65058A06B9CCD1FBBBAAE2A761179C4C4E1AE06743178940C58
-FD24711ACF0B16C0A1FE73AD4A2D43A7E986B3C401AEC31A1282BC489F8B2856
-2671F43D11CC7120789CFF12384E8048502BA3C5550635FE41F4B53D2B14FD50
-B4531FEACBDCBEBD7FA6F340732F0C820A5FFF7A1C505E9B82AA5E805CAE5E5A
-A979CB66A9821A8443D5A0C30C459ADE51B87B2088A12ABBDB85B12E8044F994
-900FD73E924A4EE76A9FD4C5B72AE3278143C79CAF1C58993C575940A6CA1CB8
-5DF299A27CC978DBFC845517A1F45DE76057CF1EB854044E1F0DEEC492842C13
-C46509DCD78185EE8C702826BAD9988370CCF24C7EE4F64866BA4D61AA2CE114
-153FA58F17B5EBC87EA46F2F23634ADA8957101340092A3703C3E7AD3A7C2C40
-73FC655531DAE01E1901F71C2920F825D5BD2E60A8B4C4D05518C631CCEEA92D
-729C8ADC9359D1C5B8CDC769D945A11E7B7B0B5A7136145DD77C84EFD04DDB7D
-AF1305234C5235D94FE416BB2DFD7342C8FF24B11A07295240C9E4519B4E3ABA
-45582FE5007A008602885FFA8D0C0C6E4929724EC8A1B1919ACEE2A84BEF4E04
-182BC6D6687784B6DE7FBC853AAE9A30F903FCED1D16EB9B5FF9DC1E5E6EDB2A
-D43F7E6497BBD11C5A668E6D76EB494790816FD4B3AD01F7FE4DCD3D045DA8E0
-8D98B214195ECDA182F6052E443B71AB6EA5D68086449390B613C69D3A0DAFEB
-2F29F4F306A47200CA7C1842E7F329A77F9D04EFF1636899B3CF49FAA3260ACC
-9B278CB5E006A172134D2423396B476758B49C4B75E970F179936D2FF45887A4
-04E9A6D932EC8AC7B3427F44D0085C80AA5FF08C8BC5FD470EC499AB11772920
-8B1868513D048867337053C886F4D5048210BEDC4C589375CA9A1440414F2FB9
-E80F9FD5729157E6DD07B2B0068F6AF9394E9C17252AB81FE68DEB609AD8A42E
-50D5879D4D638EB76573BEDB6E78C3132F016BBC547D4391558D228FAFEE9A84
-ACC27C6981A7294C55C87F6E3C4B4226C86D99D17E12FA91DF9CD0396B740874
-7B3401AC08F2F3CDE7FFC1C95B8CC48D63AF009E4F6FA1D12576EDE381B150F4
-0372997921D0E0B55C94169835A7091A4C335CEA972893D24386A1934F9DC7CF
-31FB39CD70EC9E5D29D76BB9E12D3012F1B771D0B0F5E97C323332F4F89BECD0
-DF217CE4C2B0FFC095FFF3DA9644FF0DF043562D3DB1E40D61D2236E43245232
-F48C21CDF7E1E7C7B67B823784E45A178C724199532F5832916E44A0003A82A7
-6119AFEA841CDE11182F04E133033CA72F75BD1C911D914455D9B1DE47B93E80
-F74593BD8385E33064F7524BFE81BFA79544B1A2F7E96885054DEF9FC36B52DB
-7ADEBC340616BCA96959170EECE50AB2961DCB39BAD3C648028803BB5DC10090
-0F0AB818841F736B268E06EBC317A45905C9F723078561177D580BCEAD729328
-4C987E6071267252AE217839E7213E96170EF8B24BEF73D40A65D501A63A5E7D
-614F88F7B00A0BE3BBA4AC04F2704D9367231BC7D23C353A264E6191F67398F4
-83FF7E7E9365B476138A083D378A4C448436542DA895CACA5F1A465A188F55EB
-B9BBFEA0AEFCEEAA5F2536AA8EE03ADE16A1A1B0B34E53ABAF34E4311FD26FC2
-81557A04F4D890B6A1E26018FC3E28DD57E46109A30A5FB65AD121C182672DCD
-F45D1A738E62B64B4224FA20FD0F22E492548B07CE1F6CBA0966ED1D86914424
-C0BCBE258E38F5A6972122856AD38F87840BBD154EDEE7DCD9BACB834E63AD7D
-3862D8F37BDB71AC595D8378DFAC81BA749C7CB1687ADF5F05EC8A18A9C57075
-D2D82275CC9B8150054526BD78284B43C6DC180468A386C655503A3EDE694FBC
-7905C8DFBD8F573BAEB0839A3C85E9434F19BBB569827FBA207666FFD37F1BDC
-F0CC71A277FAA9E3C25B5D6E3D24AD9FEF1782169ECE7CB2A2095613095232FA
-60CA70D962AFEEAB0199759B917D83DF7F695BAF5FB55DFF040C9E18F219D59B
-A0429CA824B655448210888BAB47F407E878EF29933577268FA8CF3BB764DEC8
-0337BF121ECAFF024EC0EF18B56617CC47A7F7BD2030C6838D5DBB67675C7A79
-D0772A8B515DCE57C04DF173CCD71159721672AE541B91A1BF7A45292D95FFCF
-2062E7E4A01693750CDA8B9A09E742D96C0A9A17C5C39C0EAB3B1214182E7D55
-873BCE23E46912F44EF6B9E3C7E50E340926C30A1FB1AB638EE15617301B4197
-B85C1C703F9A54D51CA10FD6CFD0A7659899D0B3525A8608A437279160D49393
-88E6E3FFBA88E5CCA8F833B6FBC30F32DF89E717347C464619E0EF172C72ADE9
-628FC3F22F6FE185ED66D87C992823EE779316BD7016B42A8B31D5C08A4C77A0
-24BEFDAA4FC771A54716DC19BA9A3FDE31A0127AF69730A5C038C96540980E34
-A60C64683997CE491CAA40829171EE1799665B3DF16F8A3CF1E4391EA3FE2E55
-41E19008BACD478B900CA9CA3553F854F6C506CA466D9CD85F77092EBAE37D77
-B6217ADD9C1E70A20988F3DBCE74FA45B0FA5A850A051A216A090F69BCC1AA8A
-2C5494E79DC7A74355D890F2E38301CBA018F73ACFCA9CA9FDD84D870A1174F7
-D36FD7B1DF9B668CC8399924E5AAAB1C1D5EAEB66CA9A45DBE10073E35826ED9
-863EA4B88CE8A3E0BDAE1A709F951230712B0402C670C17C886919154C974220
-935E16E146ABCCDE8EB50E7E1D569C03E1D8CD3CA1D2CEF7C3D5596EF61471BD
-0071EAC87F998209F6B77EF4FD8CBAF201F96BD911DAAD9AE38D4474B77F222E
-DCC9D0BADFEF1E5683884511DDE519ED77F655222C54FD3E6C6689AE542CBCAD
-173D609CA323F55DEF622D8973FF50B0291D7B29D5AB1B922BB8DC0ED492A49D
-3FF1590B5F01A87BC4E40D3A2978D09927DD0C7081F48C967EBCCC49A9DA5057
-78CA0C
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-{restore}if
-%%EndFont
-%%BeginFont: CMR10
-%!PS-AdobeFont-1.0: CMR10 003.002
-%%Title: CMR10
-%Version: 003.002
-%%CreationDate: Mon Jul 13 16:17:00 2009
-%%Creator: David M. Jones
-%Copyright: Copyright (c) 1997, 2009 American Mathematical Society
-%Copyright: (<http://www.ams.org>), with Reserved Font Name CMR10.
-% This Font Software is licensed under the SIL Open Font License, Version 1.1.
-% This license is in the accompanying file OFL.txt, and is also
-% available with a FAQ at: http://scripts.sil.org/OFL.
-%%EndComments
-FontDirectory/CMR10 known{/CMR10 findfont dup/UniqueID known{dup
-/UniqueID get 5000793 eq exch/FontType get 1 eq and}{pop false}ifelse
-{save true}{false}ifelse}{false}ifelse
-11 dict begin
-/FontType 1 def
-/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def
-/FontName /CMR10 def
-/FontBBox {-40 -250 1009 750 }readonly def
-/UniqueID 5000793 def
-/PaintType 0 def
-/FontInfo 9 dict dup begin
-/version (003.002) readonly def
-/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050<http://www.ams.org>\051, with Reserved Font Name CMR10.) readonly def
-/FullName (CMR10) readonly def
-/FamilyName (Computer Modern) readonly def
-/Weight (Medium) readonly def
-/ItalicAngle 0 def
-/isFixedPitch false def
-/UnderlinePosition -100 def
-/UnderlineThickness 50 def
-end readonly def
-/Encoding 256 array
-0 1 255 {1 index exch /.notdef put} for
-dup 12 /fi put
-dup 33 /exclam put
-dup 39 /quoteright put
-dup 40 /parenleft put
-dup 41 /parenright put
-dup 44 /comma put
-dup 45 /hyphen put
-dup 46 /period put
-dup 48 /zero put
-dup 49 /one put
-dup 50 /two put
-dup 51 /three put
-dup 52 /four put
-dup 53 /five put
-dup 58 /colon put
-dup 65 /A put
-dup 66 /B put
-dup 67 /C put
-dup 68 /D put
-dup 69 /E put
-dup 70 /F put
-dup 73 /I put
-dup 75 /K put
-dup 76 /L put
-dup 77 /M put
-dup 78 /N put
-dup 79 /O put
-dup 80 /P put
-dup 81 /Q put
-dup 82 /R put
-dup 83 /S put
-dup 84 /T put
-dup 85 /U put
-dup 87 /W put
-dup 88 /X put
-dup 97 /a put
-dup 98 /b 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 106 /j put
-dup 107 /k put
-dup 108 /l put
-dup 109 /m put
-dup 110 /n put
-dup 111 /o put
-dup 112 /p put
-dup 113 /q put
-dup 114 /r put
-dup 115 /s put
-dup 116 /t put
-dup 117 /u put
-dup 118 /v put
-dup 119 /w put
-dup 120 /x put
-dup 121 /y put
-dup 122 /z put
-dup 124 /emdash put
-readonly def
-currentdict end
-currentfile eexec
-D9D66F633B846AB284BCF8B0411B772DE5CE3DD325E55798292D7BD972BD75FA
-0E079529AF9C82DF72F64195C9C210DCE34528F540DA1FFD7BEBB9B40787BA93
-51BBFB7CFC5F9152D1E5BB0AD8D016C6CFA4EB41B3C51D091C2D5440E67CFD71
-7C56816B03B901BF4A25A07175380E50A213F877C44778B3C5AADBCC86D6E551
-E6AF364B0BFCAAD22D8D558C5C81A7D425A1629DD5182206742D1D082A12F078
-0FD4F5F6D3129FCFFF1F4A912B0A7DEC8D33A57B5AE0328EF9D57ADDAC543273
-C01924195A181D03F5054A93B71E5065F8D92FE23794D2DB9B8591E5F01442D8
-569672CF86B91C3F79C5DDC97C190EE0082814A5B5A2A5E77C790F087E729079
-24A5AC880DDED58334DD5E8DC6A0B2BD4F04B17334A74BF8FF5D88B7B678A04A
-2255C050CB39A389106B0C672A1912AFA86A49EFD02E61E6509E50EE35E67944
-8FC63D91C3D2794B49A0C2993832BC4CDC8F7BD7575AD61BCDF42E2E421AA93E
-3FF9E4FAD980256D8B377043A07FC75D6169338028692CCA8CD1FE92FD60AD26
-D57B7519B80A8F8DCE9CEE5CDF720AF268D3C14099498A843D76E3B6C0328F24
-D36EFE7F5C4E5B5C612786200C8DE3A41EE5F1FFAF4097653CFCDC8F4FD32E0B
-03EDB3E413283B9EFB0AC33B055617005BC9B0057FD68C52D1B0E67F0C571685
-767F2AA85ADE4E0104A1C777733D5E318A22A9944336E5B98D965E50D31F357A
-8B6EA5A0EA98E1B027CE68C2EDB149EDDD04ED74A1B3D206D471A0C11C11449B
-DE190BBFEBC08C9E1B7513B43DA3134D6B11A2516E6E86B67F68C970A320D05E
-94FEC57FB347606DF89989C33482BD09D011C55AA920319E7B26A205D3D0F004
-22466F09C0482A164CFB27EF6ED2B040ECCC3DCAF345B5A73676F193D43123B7
-72FD6CFC5E37930E61EBD5A6307E4DE70194E6384EC0D79DB6AD86D3B319A31C
-8B0589D0FE28241D8ACE280D0530EE99C80723E560BB72AE9D53F4713181F491
-344B06D3027BA4E9E94D4305BE1D817197C54C8FF56CD6964165F6448ECC8A8A
-64B48B4F0FD69299A137589E2491A283509B21A3A5772F75B7602A9F60AE559B
-07A58436D04222C73EAEA72DE9A5A441F88D27C11F4F91255EFE280E91A4ACAC
-1E98A4E5E6C57B9AE86FD218C3CD8F24A4104156A80F13821384E529783C52C8
-78B94AB3A0096090867ED32E8A30980E737922037F75F062BD83BF4F5929BC51
-CC22AEE2DBBAAA001CFFBFF41D258424FAD888FFF1BEAB796A44E3126159E120
-7E4025C676CF94888A1971AEF8B6764B3AF4A92D36FAF6FC56FD049710EE3782
-BC2CD84FE2473F133BE03C1346B875463F126DCAB15C7A9BCC9A727D23611462
-4E8D2BFD2466600285D79518712B8681ABCD69608E6AA9578F7BD771EC36E01A
-5A17BC17E375020ECA59B43790ABEB9DF5F4FBBEF807E5699EFEAC563E1ACC5D
-EFA336E75DE6D8248E9381BB110884FDC89C2F9A41EBBC9A8A1F98E6A41F68BE
-EE30E25CA148C1EFF42DFF8C214A6537AB11F260B8C329A4947B5FC8DC9C5622
-4DF7BF4FBFB00380D47BABB03BC30627AA74103E553F55278F538EDD8C1E64CE
-0F1398CA0AB5A86630139B4A7E8FC02804CAFF3830114640AE50D2FDA3B561B5
-C63AD7EE3347804CBB40FB1E77A6C89735DD870351C3A1811591AB493251B904
-314F65791963C0412377C1D02362C5E9655F1C3D4803CD379A8EF24C48218C2E
-DF1165840462BF37DDE1B8D5FF09FA2C3B261E2F1A65ECFBE5D4EAD43B52C029
-EEB3948CB8A252CBAF545C8FA1C31E920E23A12DD7222CEF2D2A513BD758EA13
-DA33BF5FBF1D734653EB83DA2D374A5B9A0CE316F24EE375D6DF6BDA49954C2E
-DB25A88821193636119D469BA66E5DAA9C92520FD4F84426A4E54273FA469084
-7517817A6EE3E21176D333825E88046F50B3CF6938AF9BA79A2F51398239EB91
-1A2D07F7FCD948427FF62F40FF95E39FE1A1AA8451411563FD5388472251C155
-69BDE9283B41900B21EB1190D06E6B13B7794FED020D2C1BDD205AE77B084BCE
-EF628249398B496DE85B406FC2E1939EF00DFC84C07E26CF72EC401BAAE756E5
-7F6673216E7560D1C2A723CB405EE5CA474A07F61B81F8836482F73DC9516D67
-CE0CB770EAD755B6B356198B4B97EBB29C63456953270CCC8D5650C1D006E69D
-38DE2DFEAB27DAD50A817F0D645D30AF5B75A7B53CBD3D2B8D87BD0A7E525AF3
-22F7ADDFCE31716914C2318260C2E2B4664893921B68C5A93334A361D94A759C
-0D7B146D6FD94F0442D672BDA0F6432E18F3C5DFA37ADA378D95B75F413C9ED1
-BB5C606A3EC7DFB3F796F59B0478C13FD1900381EFE0BB5242D5B5D34D03AF1D
-4BDC93EAF8020E26CA23C8B0E7DDEBBC6762A557067A4CE05A524188A8F02E2F
-3625DA38DFCF381727887F5646A3995A8A38A5FB1E5D5EBB395FDD0B7C8E71AD
-B48EEDB62AB2CE99D121435EFBBFCEEA69AE9ED8238B60CC7288DE33C766CDFE
-15B767B4AE2E6CE0965E77272AC9F86023DA620548CFAC85BC751C44218A29C9
-849F1C2DCBDFAD895B54E51A569952ED50F82DC8A19F367E7E44643854EFD6B3
-FCAEB04E55E4661C82D31E2932611748480EF61FB2FBFB0CFB940BEA81AFCD84
-4C6A6332D7A600170E38A8EAFCD4F93DC153C43175434C86BC747348FAC61B76
-1FEC9027C1A193E55C80F1F20B5317AA0A05AAA36AE235F6E49F06E570FEE798
-84857D7552EA92EF3EFAD52DE39C2F8F43C59E3A957B7B926FC95FC4B60186DF
-7F3523EE2AB74E294C8C4BCD8B4975E84849E0FBDA6C0B0F24A636DFA578B122
-CF97BC5089E21E9F5298D1C9F30CB8BAFF6A3A11BB4D9A0A5CF2B18D055C44CA
-4FD4D8FE1AF3630907DE7E585AA811F9CD11FB2C8FC791851D651009FA5DF20B
-3C33FD2FF848A9E3F5652BD294965A332DD3F246C91B0ADA34017FF2451D1394
-F9C3C95AAC6EC8062BE98E8914D51DA6A164AD13938693D446044859D03A949D
-F9AC5DF4A000CDA98BB516D762CB9F6D44B5268FD0C26E88BC4A760C0F75A140
-DEBDECA4F511128B7D2805872160C55236F0A0FA7637FF0D4E94AC079CD3C8A7
-D03A5A56F26B0438B577C46011A10532FEBCAD14FBD6032E224F45691A726886
-56F305231EB2FCDF59C8BBFCB5DBD2D093A0E84D62AC93A2312CA69295E937C4
-8DBA1802B85F54B5E7E6D6216A918F911FF705D3B5CF055F1D873B96283A0B53
-59344D910CD396D883F6F7836BA65FAB4393A773A8F6BC298069E5BA38210EED
-49C9D920F718E3FCE692527DC7CCE6963BF744F2C91BC5952564196D60574E86
-87A0FAB21F2DB2BD5A51D7FBD8FC19946D24E5A228462C4772F978E650ADCE3B
-8D66B9C21279C531CA1C3A8ECE3420BB65837287A7222CC3673A2A5F8BBFDB60
-C719CD073EF9A23675198462C7C87B24CC92D6AEE5C25AC63855CC3281494342
-D28F3D2FDE0C183486769A4FD5B0143193D31FCB2C2A14E487BBD96D0BADBB64
-D1B56021C363A795BF10E2DB448261C363A54A4AC1182B470C457AA82DF3F5D1
-F4B329806141EBD53CAE309319B94133D7EBDC2D0453A905ADD207364371E178
-0A95C2686E3B34C4A978BFC0EE968C39ABA00889BC5149162C2B54483D44FD3B
-5CFF41F611C7E03B94945F414560E874D7CF27FFD0630890D7D7EA66CBD15448
-229059E1C436BB33D69552B5367AB5D53591C4678D0C704DD3EA23F5D9E8A7AC
-17D003C19E333E726FFFA2961F33C70F429085F7BFE3E2510F59B78F58B19CB4
-01B48E184BAD9020FECCE3AF52048A056981DAEA02AE78197E65855DDB170616
-F54278395D9EA50DC83761AE759F9CDEF9E1948E7002414FC05286ED793E6662
-3347F2A9AF8917493D7305B92CF93E8E9185F70015F5594084298A6C2F9FD3C0
-689F262AC9FEDC9B89577ECDE92F08D3142209FBCE7B5C0A840CC767BCA56C20
-4E4E545E2BE4D21C53855CEE4CD0AB35D1A604C0FFFF77DBAE4289752276559F
-A05FEE65F45ECAF44E95E23FAB6052195C7948AF0B1126482D4E02D72BF8AB03
-DE0F1A632F7672AD9DDE70EDC82AA993678A82BEAD0BC2649C4707FD8509810D
-364B5C6FE0E10772E95288C622C2F06C634F4DF8C7FD1432BC9310D5F24FEE3F
-7AB324863D6DABAA1576E70643CA79EF4D7DF4105093D66CEE0F3B87D2164A7F
-26EA05F5C4645B22D3E1BFD2219657712C168FD90DE801FB0F32759E80DEC1E1
-43CEEB19FED12D757205043FC98FEC62D6A8D8B97BC083B4A0E985AF7850D6FD
-8716B9957C1C35A0675BC53DF672C425C79F43FDABAEE7D63F092CF271C9A9D7
-C41F40C4189510987887942E60A412B3EEC84C9A6E1AC7D54D528F5604B72C08
-94B7882621A5BF1F325B92FF96B80878CC550D1AE4D8196E41CB1251856609A5
-C4D3BD05A922D0D45E039D9450DEF8490A3E924E41434194910BF60BA1B08BE1
-B41824345627745541A4F1703E956328F6227D11C74946B38CFB096139979E56
-4E723B889B44C6D78673868C89912F8B4F0B4B485F1587A637B630F92E6072D5
-7F3B44EA6FD96BBD4FC28A6C1D90805E3BE3E42A7BC9C880762966C55BC04E01
-204D083AE976FAE6F37C94F27E68F8C0F28D52B17F6C0FD7C9150701FD78F8CE
-B8E8DC9260E3974005EB5CA728171F482D765016C94D4ADFE4A42EF42212BC56
-7E4EEEE8B0D2A7856CD4E44F55C0BAB762F92CB8D64C17022D4BF3A47C12F5E6
-279FC23101FEE93753653CE8CEDC3B75C9CCB29BF1D4554C6120DE8EE750FCBB
-E38B5D915206974962E320362E59B3F21B3AB1875703191043D03284D4467346
-CFF2F98CEB4845B73ED8E003E0DC94251B73E13A9B51A3F1430BCF6A21EB9B7A
-65E17FA411F53BE6432F1506232B8159E008FA257F884A4A01AC53BE91754D78
-BF14A5B0FBFB9C31BF4908355F8A762052968DF526D118708CCB0B7CB5BEE285
-6DAB6CD2E3934178E60BECB11AAB5478623CF6C50C92F8BB5D1A583609028FA7
-B8A53B791BDC9EF76A124F3F7641857E4BEA0837CB36176EC9A522EA7F41B8D3
-63C37D1145367BD300F17B54522A834BBB74DE12BF9EB26ACE6F24A046D58F89
-4D4B7DF74875F1A0C1C9D97BE0849593D7B398EB4B00BEBC8C8D1497B6EF831A
-A35380FFB7F1AFA4D888AA52C9482E8B1755CC209905F98F40D95B44D4DCBCB6
-67423D1BC2F3560FF0A8B4F0CAC352A4EE2C1D946E45AAEC8A6AD40303F3382C
-DF0756BFA3B1ED64C169E56ED1C760F2FF0E24DC5C9F41306EF8D2628153D30A
-5DCB0791126BEFD4947D7EF08301FE015F2B0008DFFCBF9F2D4D859FD43EC7D9
-C5BE237E9BF6665B7B1BEBB362F0C0C3A8D86010B9C97FA741C97C2E0513386C
-9C26C235B14DD2A58BFDAC7B5F63DB4DA6D5D37D0098175A9071590E1DF66A3D
-B8173A047C29D7D35557F06132CC920B5460B8AFC11D23D09A4E45D089F5EB51
-963FA1A6256E359D485107FD143B2BF21FDE9DA5744BC2615E86C31C89470CF0
-D06C6397D9FCCB316EA9989430240759D2C4945D941F159FC02327F34B042BAB
-B5C3A47C78E8C1A6FBCD396B1A51CC4B020B8AD401841EDABACECDB482D6EC5B
-72D2BFEB4556720FADD49D07307C8B22ACB7E310CA4151A85C71EEF70E8D15DE
-B3B00F26E0E166C14647A65ADA228A3D1C89025BE059306565DB1B1EFC37D358
-8C1EB024254AFD049BA977BD4C2C605050E17940A89D0D4C5D963E792320F5DB
-3706682E03D25D9E02487247819551465092CC22B6B56E93F3AB528038FEC3F0
-668F866707A19B0463BE706EC729D2EE1653AAC7E29BD25BFB3241D4792F5152
-ED415B4E7FA92C2EE5A22E27E8B75542C492E56D811C192E95542A6FE0BFE5A5
-69273C2ABED4300D491B92D2AECDD278404CB84B1BB1BD7AFEC858215837D118
-C0E928BE7E07CFEEB51A6D21375B772B8248C994564014015232A0DA4BEA1754
-3274F407FED0837A236371F1A32056240F2015B1E7F4B2CA72C6B58610A66F13
-407CFFBA5E0A2893C1F572D50F51286E9133B5A84239C9493B0574E77D281D01
-11D00683354A000C9700EAFBC1FD104EA19DFCB87470190E7E2CE26E3A6FD0FF
-2620B87B82AC8686B6206B530F17E9348BC7D04B948348802CE53A312443DB87
-4DBBA5313A6A2A8DAB8A1CC9A594FF8C299281C0A261C8CB2226B732FBEEDE40
-2C6ACC74A1A61379E2E1CD5548CD908268A32FA83D8504C442EA0E183ADBF7FF
-9FD09C037AB03516ECCA93FF048235BD11A25DB07F164512A079C5392AC7F889
-CE96AE5C8D9580BCAFCC087C35E76EED1A671E87C12E3045E15A687134736DF8
-DA984772AFD189D68571A2ED7256F1E204230E41D3D9DD876F938951714A3973
-0CA9310489F8E807C1C7A4E51AEA5BC030610A5D7263FF7E0F9FDE3E5E37A362
-5B919000BD94D978583B942EB79CF2BEAC33FEBC9A67272EB10865BA8FB75FD7
-9D280AB59F91B96C16C982DE848D76D8FA8620DFD7C80B7DEAE7264350D6FB3A
-EF04794DA3305844A7CF718F6D1A4A3AFF6826173A076A1372ABFC54ED3AC6C2
-09C9287FC830556CA694E21CA5342ECA7B10C90AFC4783D841D7B1E34FA3DB7A
-2B706F3E21B0FBAB23E7257962FC3BC309CEA2C7239A9D6B44CC96825115ABD2
-AF9A2566D2F3382C01569FBDB94C8D664A5DA0F7DC3DD140CA77C743D7BC1420
-324ECF9E4780280EB119885E96A6C619CE3C0C8E1E264E2DEB137E5DC8149786
-486D65667ECF47B1A1E20E9E6E4FC8323E0BC8E61BDD3BCDFC6575C69C03E31A
-EFFC290472CBBD049DE3F840AEE37A2486034240F80E75D8A79E0762377DF660
-52B12EAA16D678990B11A9BFBC03C1D4FCDA9FD4FFBB3E88352438102F10B7C5
-9F04C013B6575B5E948FAB58EA691984A0E54E6B9F3F505FFFEF74D06FA1CDF3
-4B8A95904C8A2763AA8AF5B71D00F5DE09DC1CDF87A08B6D181453063E14C12D
-B7BB3775A6E2A901636273D9EEB833EA8CF20FD83AE899E28DADE10EEEC20BD7
-BD93085A4B1AC80AC1AE8280C14767F1A487BD066007A0D050317BD081131A14
-6EA0898ED59E46DA7B6254BDCCBC660686E2EDA0E77A705A653733BB5C5497D0
-B130359F866CF293FB6EF0C2AC5BAA2DB0DED045E2DED3A2612D078333260359
-16CF0CCB272D34767EA069E0F0B0D42327A18529D72E890EDA6195C2688438ED
-E9ACDBEED41E81CA8EB5E43C2B09CE266EFCA03F2D7FF57F12B06F9E54FCC6A6
-546676F6FFC5B8B7D3F0982B6FF0D21D949309F0C0B175CC1D0976F8C55C6AED
-6E821C39041E22D91AB30922F2B2EC2746BC7DAB484991542FBC82D87B487507
-559AB466F73EE23C2D3194DC5CE4C9AE66D3164613AC5CBB3DB501B64DA7C91B
-C7ED2EE9027FC0906820B35D4F2CF66C4F9CE4A884B7C07155BCA884ECA5EB3A
-ABB83F84DB1F5639599DC7D3F51241AB5D95C3BCB7AB1EC90B4BC989F74FB354
-04B2D7366A34D335A47B8C00C05CB423482BF6C7970A95545424A08AFF9A035B
-7F83F52B65A9799CE76E303B85664B624C65E9CA58184C7BE2BB9D9C86A4DE5A
-8165EE3DA2E652B5022EE7893896BABD88931DE1D538F615787645DF5ACBBA0B
-A8E5B899A37321AA7D4B283AC9234978C2DD81813A1EE5DB6EC170DAC1B6EF02
-94892635B498765C07A38D2E9DB0B7581B11056C28278F89B0E60998379C07EB
-C0EAEDC32AA69B8B836F92A61AFD35688315B2C3F860632FC13E4BDFB63214BC
-41CC6859EAB3AC3034449213CAB99FA1D216563419CD6D6CE4E1B56F33E6C654
-7AA9DCB5B05FC068DF02AC32408C8010AD004F6CCA9887830927F8CBCD49CDB5
-18CAC1EAFF815FF2F6F527F936948201565003022C6C7390B4E3C2B219FB4F76
-9F12BD25CA7B3B61D1A2F8DFEE795D04D5428B42FB66E0C254AF7B7A10CEF7FD
-E5ADA5E217BE24851180E9A1700FBA66C7D2B0D7BFDE4F4EED1D24B821A40947
-5620363657F6D048E651A689822CF815E72FC8AE9D835BE31D1DD8B54C9A717F
-4DC319B4B59AE073936EA40B070524C7E71D5A7B64436DA107749746B516E29F
-E3BBCB8F8C473E706670E11E5B221716F315FF097CD1841D0069FA69EA1898FF
-9F9EC2518C77806A19730C97F54BEAD604548D553D4A6EDB247853225E24E7E9
-89D71F6BC94DB986467E755CCC99069B313F5745B02B4BB608A39F0A0A732B87
-7EA2DED68219754BF1FBCA350327572D769C962EF9242132D93A5C8E9725D8D3
-AAAEC15ED0F43F9A1290E91C463895BD12E8A831DAD661EF23CB9AD2C26CFB26
-71B72D15270CD8CB1D59CA2D9DE884C96BB923B1EC8208BD7DCEAB0FC2293629
-2AA1F72C6B470701C381E335C2364CFCEBACDD20CA36182CA7E70AFF5B14B02B
-75CBD0738E35DAD8E60CB3DA4DDED557FF9ED386DA52D10615E700751C842FBC
-85D89C0E713F556814E051C6CEFE7E83C2F379B88A801DDA565BE73013DD56D9
-44D97798564787AE6D5A6A9FB777EEB850C7481B4A353EB9279731512C9B95D3
-2ACA3A0D44585E55AFD968135F6492A9381FA2D126CF50373AB7D47B509AE6F5
-C4B100BE8334ABE2268DAFB7983BF339540A8D8280F3576CDCD4F21408AA7D92
-BBB218043ADCAB60ADF6385516C2A5A9BFC5C3845124E0954EC5C627FA7C65AE
-AC1A283A5A9670ED2A2073826941E9AAD904A05CDB5B692AF725B6B9102574E2
-461D2FAE65B7321C0093A2A34996C214331F7A91B4F74898E2FAD14576F81B1D
-688DD9ADCABD51FF07C966B61B0118F09E24354A9F75277B03026CA1C783CF92
-76255E2A560768B3A8764F0BBACFC2BCEBF870EC12EF096A2BE42692EA401E2A
-3A12BA99AA66F8BEC315412BA9A17E6574742A624447122C877F80740924F346
-0E22CA288DC767537CFC7236CB28E31AC2C563B89563D0A57F798CB843680E9A
-26A03BAD01DA05792528BDD89944986C15BEF8D3E84C08B3CFD68AD25993B6A3
-903A215F9BAE352E428CA0E862EBFCED059D65F3C47D22B2B8E48E97507E8399
-AD4FC0BE438049A369F1C68E0430642B5CA02080DD55A96E34ACFAC469B18732
-655CE5C09F9E499346B2E0DB6FCD5D64384C2F529685F91BFAED8E85CD5704A2
-54E457F74B77B97BC47EBB0F292F8B9839D248B20DFA40ED6AC6C136A7451F9E
-57FE699CD9F0CABE94AA602DD5F17214F05886AD032731EDA504B76A19DCB8C5
-02B38C86D8D507AC17AA803E5A22632DD205AF07F8AE35EE4129EB0B37E20231
-463C95CD9943F718E9635F8765BC693AA01D8B18E0318D56BE2225A82EAE9027
-257F2186CF716C6853EC7389FDC1874319631E4C662C9C68868890B42D93A44F
-4F90FF43CABCCE04E27E3D9DABF95CE121CA4B3389E3FAA8AD725CFCC84AA3BB
-820A654E2172ADDF88F7AAE1EB3E34869AD5A9FEE87CB3C125AE6CC4F723DA9E
-6E7040E6A0131184185A428C37E133A909D6CBEA24B0C9920CC4A8F933F7D7E7
-1505B73C16EAE85FFBAD53C403EC4BCD0B75DF8008633BCACB1FF8C6275B0025
-F5169291029FE697BD123AA4EF021B951DAEE133E2A1C17F6B89FAC0D0D8829B
-994386AF7574278AAE385AD7B587A7E8E59EF92E6CC1D2BC815E17AC56D1946A
-608EA2655E2E2A8DCCBE54353F36F4E774CF776840DD148024FB210E217E0852
-031A7D7F36BF1B708F787EDD1CAA6A64AF0E4738E5785A13DDAEAD02B13FBD8E
-CAD50825E0805A6B7C6A9B3D9363DEE1FF11AD7311DE1E29EECC0B3B592C4E22
-637826FEE4F51D273ED865B89F6E1A6A781D86A0C662DA545F41320F1BC615E4
-2A6E79BAA8C8D4127BA30637E2548D045FDFCB7879A80950B920717296570932
-E1456B873972DE35878B25BE36FD03D80D7F0FAF3C270451B5A9923E57A4F551
-67FE8A2F947030413B8C42BDC2E33ABEAC4132883FC9107AD8C633ECBC2EC7B5
-5F467F12BB61BF99669E3449EAADC717918F45CF83D8C5A955A34E87ADED2BFF
-B3A4972640A8BDB9A8A3593C10F20A118BA6B85CA52B36DF9185814B65B339B6
-79F5830E4BDCCF6D32E9BB5B03E860B59A297D7DCF797C8F18CC0644CFED52DD
-450B0D34EBA62E99CBD1AC1A0CB1E7BB27C347E379817760012E134F225CB1B8
-A2C0F7339B45431179AB4CC2F2E6B107A0F419AF8DD2D9B46E1F8C42A3D70C7D
-DABE98B213EA221F1129ABDB9B85AD5549133EF4D6C4D74EB5448642FC41D20E
-9994A1F6C35E1C0A7E812419A59B5310567A38E88190011E19389EC52BABD91F
-477B06FE855C45A924199B057DAE78F8DE0451BE2D39031BCFA0FC4F604F7F00
-EC0A18AF6E0C71CB53D01ACFCABB35BD34693C21BD24037CA7A96E3C66FB6A93
-CD041D9A34FC79121E46873EDDD6D5EE7953B988399A6C9857B8186BCF91C21D
-63B69BF99C8690A400D1CA2FE0E78ED83CB3D71908740B1CAEF5127D119986C6
-0E8474360DD1D3A7ECF49D9E6EC014E952660E9E16109F9CC8170475C298C715
-49E86B585CBD2B71DFAA94111B892DCA762BCE71DA37C609A831C2C5739F4629
-05B1C1244304606C26777E858635C1A842070CF69B7333D58873663239C9397C
-79645EE1471EB95D5ADDF0821009F5686D8E1027A7D7B9990F04DF98ADD8468A
-EF74790EA23BF76211CD865F328F54DBBEF0181E9379C2A199464C4E1550F7B9
-6BD586A956F89B8C0E91891321A1DDDC6B39335C85E12121AC8CBABF042A6A15
-7BBCC127E2E2011181E9DAA9C0E01D0F11FE571BD75E0493A03EF1D6982AC51B
-003A4D5A6099CFD9D88FAC3D958013F8DE7F22E7FB13ED50BD3F26AA67B8FC1B
-1350787B084ABDB846B808969D529740949C437A7DDFFD4C18A858C2ED18D068
-E2C6C21E7D2A1403C4ACB7DE2DFA80E34A90B12646B3A5FECF77538CE55BF99A
-E121F495A9135BFF73C1A531D5F9AE0D448ECAC997FB83DD9C099B73ACAAF2F2
-9B7AFB6D1710CB6E2D3C5E05D7A90B5BBF36845CD641E85C4F6D5103FD92791C
-A43F0AE5BE4ADCCE414B562824672DCBCBEBF7F69B2C513EDA46C9AAF35264F5
-A590CE01ABC8EFFD9B0B6F1AA6DAE282D69E25CB2C0BB3B039CABA8FBA79D946
-765AAD67418EBCC961ED8FF9D514EB7A5042D9D52A210969CF48AF899CF2272E
-5D4A4C2001B71D52D3E83FFC086397EABA35C15A5B0610214F0A6CBAB285A0B9
-DA9475D34528238F3697113D936DA8B01806128E41A91EE43C4EC19A0D63112D
-71A72A8ABCF89071C9EB5BEBD2166E7CAE33C7522AA1AB43F5D26BB072F2540E
-9612D605E39346DF44036D0E11020AF2C67BDE0D385104C7C0839389DF2DE45C
-75BA94A27BD08AED6F66E7C536F6759ACC4C6FBF1E3B70E1A00E87EDA4C7B9E7
-AA036CD174EAB0F5CBE249C234AC0A313FF090EC82E0BF9FBF432EF46FEE4E36
-2E91A4B5F518445A66CE1C1B433FFE0DFA8F2BC135B4DEB7D540E46CD2824DDD
-A8CF5C7004C2A603DE8D88BC029D03BCECD2516B26D8C8D2A4F3F90F622382CC
-9ABB385D300EAA72C74E18A9670D2576675EA38B6FB6CE8134B888F972723266
-4259182202DB21A73395BCA830DFEC0A2252A1F976B7A48101ECA141ACD68FCF
-7E1E3791E910896957AE263EC2EBA316F10AFE92048510BFB0D09B560FF43A19
-CA43E66167AA9A49D8948ED4D54325986EE678833815E2F744AF97D7C02586ED
-B98FBE60B6F7491BCC891E8688AA96B495873B270AA3E60391407D31B5C62854
-B3D276E1EF1B97C67A3A2A384C92029F3941F8768E3FBBEFF11615453BCB4D3A
-C46CE7AA1C6AEC94CBD224C35F11523178F724DB01EC7E67FCB37C0796597233
-D90A21249238E0092A1708B1A968EB32FFE46340DC10B9EC7590C31F3DA4CB96
-A4B4D3F47AC0B592C30DB09B415495635BDFF798B9CFBA71FFB5F4FCFB4ED010
-74C776108CF5F166883E54D1FDBD0316F104DC95DDBD1FA5CC26D439A9687BD9
-F33D19327646851E976E986092C6850FC3B010EE523352299DA2A2209688963B
-35C3521EBE7C5497413D4BD74244CAA8BAE0E25601F2EDE3CF3F028E00965DEF
-CCE3E144F053F55B75BDE37DFB709A424799F8DF33D9271E20F0913AEB920AC0
-3641019D7735DE32DC8120E63045002D044B71370D2195B07457A646A203D58B
-74C3A4A0927374A0D87992244FDD432B79605E1591E19AD0E79B616787F348A0
-66401EAA31ABFC926F03982C54D7D03E02278C3CDF154D1DCA305FD1D602269C
-73C8B107D49B98E5E0C823066636932D3B9A492B777A5246BACE613DBC2CA3C0
-30354B824DB613D561C49C85A31472E074183D3427FCA4CB60FBD2CF9261DCA3
-EEED67EC08D704A5C76187E8FE00747407A1C3C0D2CD37814E058AC017CA546F
-6C4C6B34EEA836994665A4E41C750E53E61A74BE0CF33EF1B7F5B2138AF50A52
-AE4A7EAA8D51402EF8AD97296C73BD7041D048AB23E6A8DC8F1FB53400CF2CEB
-91C815998B9080882620469AC4D0251F21FF313C69074164C253326CCDDFC28F
-B32AC6A369680233B5F65CD966D4A24C782DDC09305942D9D5334058573A75B7
-2F5BB465941B59D8ECFC37031A9DE46A8FA9ECE13E0D01EB0532153D5C6216D9
-C9F43ACAD6C5DAF01B737E30BF4312B139CCEF00722ACDA099D2E3B026BB1896
-3A81D696FB4E01A4F028DC5EF2E073BD163C11B1D33DA05721E17313490F4CDE
-233ED8AC7E69264270AF05EE7FD59641A99D3529DD3B8224D77F85FE0C0FA84E
-5982631047678177BDB1EC93DF74839B0D2B28C3EC7D6505E47D6E76BD5C9CC6
-EC08DB9DEC5670442C353BFF38589785CF58BD802870D89C85F9ED422C5FDE3D
-C0FF5DAD20F71DE5A8EA592AA84FB05F2673F4CA1A38DC169CC6B40412A7F5CD
-26A041E7FD808475B0E9F612EC00075FA5D1419F9A6EE0D3DEF420127F7C3C3B
-405D04931471FE89F97A171C4E8118331723BB811D3E9C54875B2146E9555BE7
-87A8BA43CB32D81E9A0328E93EC7C5D9F10B663B4A29EFCF6A0C6CC0E315A83B
-AB96B42A9792F731C249271CC9FB13F198D4B2A61465C958D38C79FC41348ED9
-C56652892C0BD2965A1F5B6132C363163D1F60CF7601DEE167F5F2576189EA61
-289B87371E8089D21977D5E9611F4BE039132A78B7F60C1B896AE1214578E550
-75B781E183F46FADAA2D1C235B021121ABE6D0F3F07AB62D3E9AA5858D29458C
-9FD93DAA342F7EE545CC302E87B5781993A3571B347735CF8743EEE9BA042D9E
-09F44EE4854F5312AC651BB7042A1DEB52F28334EDA5BE5A647C3C98BCB9E123
-B8520BCACCEC7E44C1B460FF152DADAD834A4337A4F3ABD7BD597B4547380FAA
-E6D63A5452671713BCC9475BD6D9DF05E57E2CFA6521C575FEED4BDDF41F3DCD
-EF0A62D30B5D646E907407F6671708D2E93CB86E2E14E7A13680158B6369888E
-623215498F8810A77688D932305700C0BAF6F531D0AF48CC858945C7AC4D2155
-BACEA3DF2351DCA1E675A9164BD9E45715F46574FC956197B0DD7B3689184396
-DA726793683C16CE628F19377CBDCA9497951EC5A5380DABFF783CA37491E90F
-E85599447DEA5FB3CB6C2EC95CBFFF9AD28992870613722CF009287F2618A354
-56A0137B99EE21355A7A2950955D1483F5FEBD36CECB32C41E234840D6B3E15B
-2B858BC442594669827B752E4F0C4C21E3120615A67A445EA6BB8E192215EFE5
-B63E669303FD91D72612DC32427AEB32AD1F48CFA187C7D08E41191C9CBB1DE7
-0DAB1289079E84AAC599CAF4692EC27C297C2F419D579A5B46B0EF83532AC9D6
-854D8CA02890BA2948B126BB018E2FBEB9E96F3B52EC41A7776C5A35140F3893
-EFF849FEA4963554D300193E89B3879BA0011B35EB850B78D70E85B5BF8C2C22
-762B35F4478601FC3AB06413D6C26AD26D57934033B1AFF5245946F87B6D8307
-B0BB18EB1C848C6F6C82D5AB21E42F25506C090F9B89CE5047476F2034FEEC96
-E6C1847416A0543775F266E73D534E7773871FFAAF646D62315F5E3A47D09445
-B18516E452AE332560A1793F80D9F65CF464223A9740A7291F8314EA87FC11EC
-E41D489A1C263A0B11C7D838FBD8C8E13DFA6F3CB88C163DD95749AEF53B2C52
-18A0D7E64AA1ED89A7B7BFBE653CF5B287636A94809540D7197900BE39D18C7C
-D060BEC1843ADBDBD5AB1F8DA35720A7D4133C14C19C81BDA35BECD81AEBB4CA
-E45903E6D944386B92F56165F27CAF7B20F3440AE425E167D2CC79CD5307D190
-8F288BE070103DB7B3C506BA455A223744CBB0D921B270DA922287758A6D3912
-E32CF5EE0121CCBAB5DA252B4BABEF2C61908A21E2BA209750ABD4269034FF0F
-3980002CF653AA398268E8E2560D32C090E3F6D90B77A87C08D82444D0AE000E
-8CC562C0773B8E0AD16B9B82D177B6ACC21E91EA84CC8AE62F63EFF6D632F30C
-27CA5B9A3E6EA20CC7BE934007F73B056E4CBB6041935806ADC46D9AC3AB7AD1
-15041F513191DAC59745AFB67A821BF400F4C41EF7E1D056016248BA883E89B6
-260C62AB9F70090D04D91DBCF3D315C9E13DC7141AE73174E152632252F22CFD
-DDA96F8B25840BF6C1FDEB6EAE57E6DDC58399EE8540614F2862475E273DA1E1
-CAE15E7F9AF4C9A74A66BEC3854BEB1196A3E94E53E2C6BBD98C291719E53030
-BBA9CBB1FAAE31389D324A0B00B9CB380694149D74EEA7186C27A87CE961E0DD
-15B5D3C1E452E1E22AE11250737C5215D5F187B7739A5EAC13BDD829D1081131
-AE6CBA39DA326A846711E5E33E9B31B082A6A7A7AECDC771B8F2380073A20803
-4B14B7777705CA83AC0ECCA867C89FA4B2B654BC5EF0654DA81DE1D9B03729B8
-0CB0873477B739476D4A23A81EFC63260FA461611960F689B94EE9C44982552B
-02D710A283E84A67102B57B53942435D22F798F5B4F164CA3B17C20B9D94BE97
-3BBF2D7C7220CC6D41C71E83A013104F5AA9F7E1353D115B622B5F5EFA95296A
-0C97FD912206C8C7C467286A685F713FE527D94B04426DF78DD44A19DB94A158
-5F66F8D1A93152E465827884CF5693C5B69C7AD7A104AB1A27FD74784F0378B1
-2AA00C7B04FC5D788F0BA82C81DEC0CACE755181DF72E231D46B8E5A97C88681
-0CD9F476FAD370FBB2668E48B31D55BB964A078D40ADA170A17263C32E35E40C
-9C27F31BB31ACFA06261583D4224689D53B61A56E252F0A936BB747E0167EB64
-18AF31F967DE4878F3B4B354A43F8A32B703424E9614F26D67F1D3B2BAC82C30
-C25830F63614D85B362E0EDB01A2D46D8C16D6D154116EAA6310644BE814FCC1
-E5594C05D6A7485F7433176651F1B8329AA5334CA26B3501654E770B3C00176B
-4E34B6AB7502B668369F81BABAA8C34ACDF5C02D3A7B72A972D5F3631D12B3D8
-04F5309F74D52FE491ADF7B0FD4C79D452478F055A5A7AED37B374190331C1E9
-32795E40596E940DA034BF1BD6181A2E7D84DF61B4D1B72FDD793C064693DBE5
-8152EEE1752C8B38F1A0AEB2089389CB7BF2C353334A805204DA8496B5344059
-E30CD43DF34C5BD40FE52D9D90E2713F0CA5E0231E06423B6F62688EBA17C137
-5C2DC50BECE8AE23D030FF1D8371DCCF73F1F8BA83B6FAF26FA8F675967EAF0F
-4AB529600B0A1781FCDFBAAB30F9DD313E834EDFFB1F64512C1FE701098F77CD
-8686F7BFA53730CD3BE819315492E77E135677EF09CC71B1A4DFFB8A491FA2C9
-052783A8FE7BD599F8B1D47B3E440C6CD94DF036BB823110AF7F7EA4A09BCCCC
-B8093EECF3C734294704EC67269E3FE3E59DC6DD39DD5D0BED8080B2197BEED9
-E164ED36CC893993A6484414DE23A4F59E4323C3E04C15A992BD7256F98F8113
-2E3BE53E4F79C03BF22B934B64B7153E5EC55F0FED4E80940A1DF5ADFA515426
-38A87F84FBBF73C0CA39C0FA920D784CB39E0A482868B102C93D68BF7D2321F7
-3DF74F937A890A342025958C696919E885BEC8BD87889ECEC76D739460DFC5D6
-357FEB46D7393341A4C50D4E99075883343516D912BEEE2C390F1536F13B2CED
-965D302CAE3245F40EB6241068A36D0A63724AA3F8D618C4AB110D2E40B33CE4
-918962E7D2C367D69C4B930C8D486C3A17EEBCA33BC20DE3EB505CF188091216
-14BD6620BDB1CF205DF5CBEAE4830A480E1F616E14D022C92034E628848A1B17
-8646CA6CAD8A94292781DA0754C4A117678089E04DEFF6BF2A3942656EEFDD0D
-E1E47F92E822BD83FB9C492B67137C4D01FCEC010A2019680A7B179FDB772223
-932862E227D0B25249B5D5DA3CC1EA8C07BD0F89D723D2853D6ED3A2A504712E
-53550F30F9CB9E587C16AF687A0F5F8D444C2AAAA08D270BAD2CF27F14B6A918
-3803B204EE11FD092415B90633E98F3F73BA7BD790F084E337ABB96B056B3F24
-6F061F9AF1C33D69FF08CD41000B9C8F592615E8AB55A05C9E68B7EE0B47644B
-35239B81663A5E6A21848E7AEF7AE5FB1523DCA5496C277190FC32E4020AE860
-B797EB58B8FC4ECFAF926B627FCCE7879FBDDDA998AEE234052AB98B6AEE3859
-5CE50666C056B32A85DA0CEB5190B246B52A27E8F499989B384B6B0DDFDA82F9
-48E0E8A7B3F1EEE51D66A0E2F6EDEF3D0E095446BA683851D0B89120918EF4E9
-E5BAE8ABF8D0ED16BECC8A14AE5BAA50A6507512690D2DF6A339B703BE33D035
-794EFE575ED176256C9CE036213A7D85ABE09D942F1A81D574E8CF5A5F289528
-E630680B44CFD4379E15E6F8E10373AF66786767FA3BA060C0A60B6A6BD7DFB6
-FBFFA93BB13F75B1148751D1EBEB4FEBBC4E5AB6CED0373EBB31819A3412E544
-FFBB67EF665BFC7E09D4FFC65DF77538E2515C68DA5228107A5250C4E586391E
-9F12EEF67ED37562D402E5539504F49435C6A8FC38D3E69325DF1C381CA3B18B
-4BE3185DF2B0C95C1078F1A1BF01C5E6294A15F56874D348792FF90E5C150C18
-BCA828B1059444B2EB9714779F128F503606AAC7E1BC04EBD0CD799D8DE68E68
-5A26855C559F20576740910AC79CD410EDFDECCAAB44DB171DB6CDB0FCAE2978
-3E078B7C99DE96543C338F2040C8483C8FAE98C21B7E8DD17C48082912B2A04C
-580E9B9EB6784848C00BB1EAB3C6C08819B80E0F227EC8F4230EAAEAE8E95809
-392E23E62D96F7F7024C75B312709B8F2ABE6BB23F57B5C52F41C934AC395EE4
-DE5D574D44CDBAFE76C414AB9A57A5FB6B8B9652CA2FE6C2A8F9ED3B0F63C84A
-E13640A6EE2A32B2950F54B61EEDF443C3A5EC2A3748249DD2FA0426622BBD13
-7B7F3A5E2C5CDC2F41C57A110705EFC67D28D26DD05FF4A75EB51AAD244F8CA2
-04D4D6C2B97770B1CB1A31780BE0E2DB62B8E22CE7E8FBDC0D99AD3EAD3C9BC8
-F6A1E01EA13DF95F15051F28909650EDD5CF2A39DFFE7BC67B814C3EC266F53E
-D8298B663E2E98E96B18EC7AC95CBF828E195AD9C2A816921E0DED82A9D002C1
-DF25A3AD7DB63C076A64C40344350397869C01E70CDC0110EECE0C4A0CFB86ED
-99892DEC28F4357C165569373DE0E518D7A6270E9BECD50BE18528261984E026
-37E83516546DAF23579C03FF778DF6A5953B3229E46EAE38049EEC99AFCEF595
-1305A40F82391CFF8DC915EA884B8F24386DED2DC26C28A403BB6D84417A38E0
-BA9DCC37764F44E80B38439E12C85CAE8CD62C2672D74CA554FD16982CBBAA62
-F05AC754DA56C395B64F66E609DAB1E7B869F293CAB2F8431A91315B81A8BDE6
-7F564A054443472B8900FC9A096ABB404C016D2BBBBF08F538376EB6761375E4
-690280C2A65AF639E6F884B0C6A98BE4D4F3241B29D6D90505B8C5458DC5DAF2
-B71D37D3BF0E6B0C5982FD145FA7B1DEB84BA31F9CEEFF193E098AA125E63B22
-037AC5F33A40740C97D869E9DE483E26EE6CC605D6D37C62C3EC5E2D70731B7C
-1C1A810FCE38719CBF746B19A6B6407A82A5CA6CDE5579F331BD6D214600103F
-2CB1DB5E4EA115A2B7FDBD4AD3711F76F0AF388A9C0842492692C9FF85311A99
-2438A7BAB685F0B2D595356DF8900149D3DA7CA2B07D5CC1137196FD6DCEA0DF
-9ED738DC0E4EBCD7E89B19CF453B751ACB6EF68623036CBF47D49012E2D05F0C
-C4133842495E939E3825F22804B6D40525DB77FACCFCD9686E19E8280B1B0FE9
-97C741F3E31E8343F77A96D73680AC7D15FBEC9FCBDAC770C7074ECF9B9E27C2
-A57CF6FADFE0A853E39C904FBA7E72A361726B359962FA59D3BD0239821E3334
-E2A244E66440804188355C2F92C5B096FF20A9AAB29ECC193557ABE31C9AA46E
-A964F52EE49BF794083FAAB661F1A114A83550DE9DAEC62AC24BFE480AF01107
-E7C0E1D17955049D48A4C82485E0AAED3855106DFFCC1EDDECB1F002E8C1BA6C
-84628613FBAB88D412B456EA77B3ECC04F8F689086BB7F43F4CEEE2AAE3444F4
-63C292726DDA4CAF38788B1293A733B4FF579B43C3C82739B7A12346B442CEAA
-DF67303018171991C7702B4319DD83367635BA74A5233BA0487820F95E037B1B
-DBA168CB85403096205F625E8E4BF3143CE998121A2022429B5F314508328199
-60364E00D907D1F8F0D81F4896F6611F85AC2C2538E4158477ABA1B2C26DCEC4
-75517A0A2400D35FB2D63518E33F23C5A4F7210D38AEB82542BFB6EB7E06BE80
-EA27362B337D53F340B0ABB809CB20EEC536B9CBD9399D9B603C94509A050D31
-A685B29F16F3F2ED4D8E715E1CB28F0E4D2897F7C1DD466AF64590F4AAAEB337
-2E4154FCFBB5F5044D046811B66F16C2887F3220802589B3A6FD9819CE72307E
-63EB146B4B76F24403DEA09456D8613A8236057D1B0FC6B0615DB595EE64FE13
-22533431344B59D93BC85B572041C47FA26FAFD56023EEDCA2BD827E2AED7D25
-BCA2547A6DDA7799741699E5B55C5F9D900FF10C9F9837A9636A47208122D144
-B6EDBE1849A0FF8764066A277F9AC4F670657B2297FD202AB52A0DEE3F42C3F8
-22D060E7E12B68655E7BE0FD98C8F9D9EA2BF6FFE8D56EBD3A475201BE41FD57
-CB378D548E0F60C1B39DFA6FDAC87144701477B9D5D95C8F8221684CD1CF8410
-8765B9E53345A7B4EB6D93A246F0AC92F2DFCA5608EB92B3D623DBC69899BB7C
-20175C86EE09D92D2283CE74597B93E684111F97313C2CC1E607C1EE5D387200
-A16A545C4207CB5A0853FFAAB66363A505D13F9455734A2E4AE72FCE46AD4953
-60EB6D986792CF5865BEEBDD9628CD910E6305B9E537910C36FD2A4EFC35BD7D
-75C8B2A3544FE04DE229A9F5613FBBF36AE361CDDAE57DE5C41AF3237DC67736
-B4DAFC0AFEA42CD956E6B9B53D3A013986B49FA8BFB1D8E179BFEB990C439CBD
-E183F7B34462E0EF3F3FAE54C37A50A64C0423C61DEEC1201B57989FAFB71310
-68921101D459C1E637092B31D2A9645742C236E019B65EB8CF51F0281F2AF327
-45A9CDFFB267301075930E104A86F481958E3A1A97FB52B606950F5A663C1072
-8B50D82DFE3CE783D1708C7BC1EE5429923889EF180BD52AE93C907B4DE30767
-27084C5815D99CAF65EB5B17DD0BD989FC77885BB82D0F58B7FFDB8556062D14
-F5B0E6B44C5467F1B0BFACF7D41B111DBF57A03D28FF4F7488AE938785F56C21
-84FFA937ADA59F1ABD0EF17D05D0076F444EC3BA12E2E135B0EC8D61458BBA60
-E44CD9AC676725D9E256A1A97C462E9685353FA83D1B12164DDF740D71DB4ACF
-E9647570736718BDA388244D96ED6F22ACA77316ACC455064A334049FE24CAC6
-A031EAC85CAA93DD1CDFBA587818820A1AF7459EE70422024A7111D902068F83
-9C9D431C6CF675FE99AD3DD83C941D86AA50DDC7A991FE7D7AC375142E1330C0
-8160D2D92096E90B00631E609E77A6B19542D3D8C62FDE9901533D876285031B
-EF6DF462373B595EDFFC36E585621DF391EA65F7DF3EF92E2CD268F9368CA91A
-46E040C184F9B9F4147F38CD0B55DAC9D5CBBDEA0F9A2E1627FB9D1BC8391553
-122154028E7E48BA9B29244C1674A8D3BACF50C70C8B2C2EA06CC77FFDC3BC37
-DD535985BA830172D0204028CCA20EC05F494E5EFB08A37584141C1222A4E214
-9B69F1647CED393857B574E3F16C128EEB36750E88191E381D44835FF636827F
-EAA630E13B47C2C93FF668CB1F17B9ADFB497AC91FA84C78DCBF083587330523
-811BD811CBD8E4FF4EB894C7396183087F8445A451BB8D5CF86515FFAC955548
-E7BCF576E064604DCF9E142244EEF7B5561BCCEF28AC11F6AF8154FAFB8A75D9
-F89BE523BAC02924C2099C316E331CFC39DF04B952067853692DD30CC84D3E53
-9E55253BABB9662EFDA1D26007A117082048F15E7C809035014C5E4B546CEC44
-C1F75A8FA429C7B567605F0F9C3A0ACB86C6AEB80D0EC6640EA518AEDC4ADE86
-CDF9DC9DF91A1523C0D3FD6B532D07B72AED86742DFFDE8BE485E5CE0141CF2E
-F7DD73E2F0E4C14CA03F06F1D11EF523F72AA7913710624D1BD536FAC0BD73F8
-C8B3E07C89D6AA0F28782D5FFF7E8BB3108485C51D0EFD13C7FCC532947843F3
-72AF0C42F480BB0CCA42B642F47D97BB14E2F183B5E14CFD14B774CF506A8684
-3E75715C44A5354A3D1C388DF88B5FF977BFB1EA0AFA6A9DB641DC86D3322E80
-18491B35AE50C3DA3923A0998BFCDDA0B23B226F2F7266D530EC8B9FA8A3FEAA
-54C6F30069F1F075F348B7207CC2A4D881F7268B79B064839320608126FF6A3D
-9AC1E4FA459094363A03D6B43AE53D2B5E6692F65BB35B2500EC243DF50CB14A
-8633DD76882E6883C19C7F06E1406DA82241BDB9F204C02BC2E7C5CA389FEFFF
-F842670BD9860530E7376108C089A67B07657932ED08098D84015360D1268865
-E92644B365827C0ED09A1B2043F297C603143D57477D8F1777370D9417B8CCAA
-A29B707D61A273589AA16C9D854173DD8F0A384393A1DDF2F3DFBAE60DBAC13C
-52FDDBB4521FB8AC6EAF0788ADD6414C1230E3A7F9426BB5CE7A755AC2D95987
-4FDC1248E830DF7388FC7D459DBD219126ED47366297FF1A54950572FDD07A44
-E9D6D28B569884E2E013C53EC0D36B6FBD675D62415B0C8B7F7E4387145F4F6B
-6706847CDCB928701934132B84A25577680B36F76B0FA9DF164524BA090D97AC
-65551A510C67ECF3258FB3BB2236439B2FA1AF55AB4AC70897E2F3B015D53344
-2E218ACC544D88860FCFEE30577A9AE910F3093E397117F79FF6949595B9FA23
-35FE83BB2D964310674BAF62144DC98A91EDADA24A85049B03B0F3D4FA9BC452
-B51FBD53F07BEBE5CB31A9A06CCE0D3C99B9575854CF9F5595B56A90863642BE
-F3CE7A131083215226F3748E0F427ADD3C952C8982357ACD7CD7B6F5F4E48FA6
-74C13E9154AC725E5AB161386FC2B2EB089064622CB4E96E5D55BCD90F5759F8
-AB42B5C0FCC592363C839F683348AEAA0A20A0DAF1FBD75AC1233833E1995272
-A3EC0DBC8E2DF182E44F9DEF9BC76804ED16305F8A431B757C0F5459C2C780AC
-3451C86C9650B6A1A6922EA91C9D57945796E6141347D1B66005EBCC3B0A327A
-90E16092E78B5F2D98632B99991AC4A127D4604914E113429635889965CE8B3A
-F587D96C71F213294DAB6560EF1913CABACDD05893531360C9FF47B42FB26349
-17685C52DC0255357CA502AB8AF4B6F56331F44DB16319D401AF8374F88A2619
-89FC1975C5AEAF11625F935B8A8D86FE7FA475AB8CEC2B023BDAB07D750E56D4
-6A73D5F985098AE8EE5A90E0B177E48F9D6B522B869DFAB57BCCAD899A3107F5
-66B70F9EED4C1A1B18BD1316034E69C4F6D2D71911577ED1E71C29277E208680
-FC5461C8F746A8CE09BB2A83ECD32F2F16E7FE65505CD5371461AAF620EA7AFB
-A5E6B75A94BAE9DF3A64737FE596D7DED0E5DC8DCF4C32844B999E057AB3BDDE
-B344F9931F57B59B61A29A88687F83B36056CCEDF294BF50E4EF9EF1301B8FF9
-09A6D0A9F82D0D1E077787BB1B8ECD8C90BAA891E7D8BE930E97F60F8D701E66
-7B9B3BE513063B2B8CF5404B22855BEFFED8C74D762B45A75F606AE16BA0A7AA
-B7947C9A55FC77A9A1A2B6EDC05DC5E056D5A2400E0CB20D28648B152E4E049C
-509D38C97550753CD8D47FE1AB02E6737913F8CEE99D40D075DE0C839BF4BCA2
-98413EB9AAE34AF3F7CCE9ED39E3421AA0F101BA284DAB29624EA761B70EB436
-D648FEF00EB1AC11ACE5054897BDE77E3371520032301CE52DB6B9E0393289B2
-0F38B51E7E459C4BC65102E834B12B905227B0E83828CC83A5106F702F0C7890
-10DD4AD72F4B46A107C222D38DE41A73F7E7CDD174EEB4E844160D80B8B30BB1
-D7D4048E5F4BC0A40C37B2512709447C377D29754F33C51EF8BEF48CDA91BB94
-0A3273D31BD51249577A2440919206A031F3685AEDC1DC219D81013BFF457A53
-0BC8844CA44E513FB470B59846AA40A4127955BABE057B586555F018C131166D
-11087267B05AC994CA6E4A120D7F4B83241550988CD20CCFC8AC30D4F7691BB8
-74776B791AA81CBAE360E47C9D3E1AE6CC53ACE31AA52AE615864906AE7DF80F
-806D1C1805D030209F38B908C179CE715FC3DE41E0DAE8EAE6021835E3271437
-9A39BB9317E5959441B0C274C396A0A23BC559E9C487BE315D4218FCCB2F4B77
-4177A43B78976D9A772D58F707A95E77F301D7789DEFE284EF1C921710524C68
-D58C46DCFEF1AF5BED73CA78CC045C193CA472D316C4AA5F8171365626392397
-7C5BDBFF28CA3CDFD75E4C4CF7836E8C5DADDC733AB5EB3B3011DA456B979544
-151577F38DF3888F45330801FE208ECC29503191ADE4BB98C9BF2F2B0999772F
-433F976168DBC18E928682C90108C38F54E9E2EC164A17899C88ADD7348D3E65
-2BFFF124FFD09FF0355F7A30258359849AC8B955DD11D417CA487F3E7538F278
-358E2CE00BAEB9FF195F542D2F5F7B09F8BF5F04BAC7976155C3A0DBEA415682
-D20F267E76B0886865DB7F7D34B4CAED1A5CA8EA2CC276CB18F663FE570138B0
-444F4E61DABADDBCE7D501BD4A9E06C947B93C44B028053D52F933FE4FD397A0
-F1A43CAD67BE4B97069F84FCE6BF9085335FB7FE6A65420F93879A00ED5EC1D5
-5166B6DD5A1F0BBBA087007B69F3431B400DD2AA8211283B9F26A97116BA13C5
-2A96078B665AD62C60BC10E5A9748B2C7CF049F688CD1AFDAC13F82A6F2F5489
-062C9DEE23435EAAF352C22EDFF7BE110938B52077A6E1306C90FFEDB6933CE1
-384FFE323F92AAF5314AAB2B29BD85A2222275102ECAC3D7BA95913E317ADD3E
-85053BE91937B2EFBA797583F59884D2EE1675F355A6EDA48DDB894CEBAB9DE9
-70B50D1F2F02B033ACB7280D22A2E538FC8CD4A5C0F7E1184DC534869E707B35
-5D257495423B03CFE7E00DF966CB5AC5D877CA87A377ADBF20271815570988F6
-563163B440FA92B6C8D48DD818257B22C997CB2A9E3882D30D132E83037463E0
-C1AE69D8F29DC825DF19C0F1DD2EEEEAB6F8E2C02D837D9D71BED1FF77327EEC
-79738DF541913DDDC18DF5B5F75DF06A3037B078B288C197F12057CB0A418393
-6557014E5FB2201F77EE19D1A1247577FCC26128300AEC98E69D73B86C622870
-FCEF2E9AA65BB6BF2A790883DDB1D3C6B17747DCB177E6DE97D98B81DF5CFBE7
-DD609CDAB8C2EFD920471013908BD8426A8F797371FF7A379ACFA1EA334397F7
-E589BB9307AA7DBCB06FF7915DF8DD21783BFE27B679DE290EC0432048B3289E
-C1A6D07A355B8E4DE93CAD903EA3AF7D01BBAA1B57E2AD9806279FBA6743F3F0
-976EFA1E424DEDA446CA1EEDC0557975DC0AEFCFCC1DF586E7E6DCB23A94AC1D
-D345FFB1194F23179355255D757DBB00FE9D09022963AD06D3DEB5DA2ED62F8F
-53D63F4541EF8CD1570FF54E5CF93EEF7BAA0950FA0B564EC0F769531130A51F
-AAEA05F0637A988EBB1F615347B1FAF64E4A03A38C76F6846C8B8B8A7C02A54D
-A981D08A948049E8FAFB8B5226695974A3B69B79E45726392D398838012510BD
-20875A839E7243CBDDA8BD71B2ECF2D02A9A3C73F5F859E2AB66E9992FC9F9B8
-F6CDE75A0EF66FB252F3E18A7852FE2373722421D7AE7C37A6EBE5591EC81DC0
-F79A89F76A94BF1B421CE8D1E5042452B582A46C2263E8961974CCAA1FC44CBE
-8841D70C177694412822E894C7330D833BC0DB52A442E8BE93BF972DBFEF76D1
-341E66FE8D9E973FCA21E7F06595B200845E0D53EE5C41600A6D9B127C5A90B3
-3249FF9EF55343A77DC6071369FDCA3985BD8AF29CA7B739248C6290A279ED35
-8D5ADC7D2B54426C90D94337472039AAC2C6DAC946617D9C7B5AD44AA702B6A7
-E216C05DDF46B5741BA5E190008DFF1D952B3C7C18CA5AE940CB9265DD577C9C
-65D7561A6790973B338194B5237B5D9948A86FDE27171A3BA227BF5443BDCEB4
-F330604421130276C0D5C0AD3BF73076893929B7982C59E76E657172BC6E0BA1
-5402E65D6812F1BD0DB84E9B28B9F86FA6708AF865170BFA902F717C30AF22DD
-DC6063C732A6F428C0930FAEFF1D2470D07AB6581D4B7DBBD6D9E246B5227BA9
-8D399415D1A9068963D707C29504B8730E87D260984760C4C7B7E0B4AC08A96B
-B4909B3BE711FDC8581C8834EAFFCFE045B1D45A327EA56BF4A61EAFFAFD5F29
-A99E798A521D8114490670E527BC95332DBF95DE70C076C137D3D5B0AC1B80BD
-C75F147276CF75AF31700C32F301848A6039F6F5A164CC33E4C8320706CE4148
-855B50E3C37C4F8ED4CE7D79B796732724A0A8F2F828CB1DD315C636253FCF3D
-6026D040A2D8BE827E39E7E0B06B1B0C4E7685BE712D925656D23317D0FAD0E6
-3EBEA4DAC99574E813AF4F72501D78FB92A8A32F408C758F785EBE774458D65A
-E1C0699D9F64D0D6F462A49979BD6FCF474E97B4E0A7FB9206B33F7A59A17A5E
-83794F56962D76B876D11CD33C610204905422080A852323A8834D981922AAAC
-2D5F2BCB0A0BA66719B60B37801E203754E1785D185EA29513F3C9BE6191F255
-72452B3698C34C32CDE4AEFC297530DBBB9E8F402FBA40C3D2E93BA0A6C911D8
-D3B73AF2689026B2F255D95FA0F097430840CEBA3C00838CCECF62709DD989B3
-8BC03B5A233DF75B7D1213329980CFCFB12A1360E9119B536CA3848C620F7645
-5B20F2F4CF50B1139F1DB6903AB982845710838B729CEDB7836F1EE1809E80B2
-6C85BF301606266F400204C11B430C89BAA234E6D354688EC1014A607B2C51B4
-2E9F464124C8F862CF5758AD7CF1415B5DDAFCE95E8AC06FB0B847E0C0E26E07
-4BD48BCE629C4D9BF6117DACC9A9972CD0CBFE537A86AA0E6C1A0D3635EF3AD4
-D2DF2A0607C0019A3B7CC9292874ABECADFEA3F3DEB90A2D99517A35BC451831
-7C673BBB207594EDA347E486C3F70EC67C55649BD4783EA351457683186BDA68
-0794703B5B337E5C912707E4122CB2200EC7E672B0B13B3D0DA532D2F7087F32
-05BA59D9C0BE703CD07CBF7A8C6EE352B1C4CF7CC990ADF8D81A672772807AEA
-BCEB36F56B59D8230C42647953A07169127F3E85B3CD2B2D3B2D06A940CCD5D3
-BACE10C323F429126F5AE12739FDE06D9DC43183C48000BEE64228990E59D9F0
-B282F6C574262E4622B2CA73405E82F418144ABA58E5C033AD0C0FEBEF8F330B
-F6970510A30E39212199729BFBEEB59B41D106B9C8C491C94D59FC570FD31858
-FE93591098CBFFF2285604FD976CFFB42CB4E3E7BDF00FB502F59237381069E5
-8ACD6FA8A324649434C09D08EBF19C7F02C11FDA51250502EE600EA717D41B5D
-65EBF066867A98793E5C1360814308E4B74EE3510705C3A105527BC7379B8129
-CE2ADF113BB01E9009E16CB43D886805437AE7BAEE8D109C4D529E6E816F7DDF
-A1EC3D79388DA5BD29DAA58AADFFC1B635F71D4280D2B1D5A9B62919F08EA188
-264EADE8D32AA577415897DE9345C42308A90D507106B457CB841BAEECA71950
-CF5091FFE041426108185EB7F58EB7F3D6C684FB216A6B8A4AA9715A93CAC34C
-6D04D0ADB51AFE9B73054A41BDD7BB24BF4A1024278687CD3E343B8650B550FB
-B706205C4705507BC67423E7214B7EB04EEDD30B3FA29048BA3C0392C196B8E3
-8BE3BA3E3360B7EFF8542CF72DD07FB73D081DF6B6E562D863E959B5972DFE80
-3B7E68DFEB6CB76F52D27DCBC3286542D9EBA6F112F5C0C747A30500DF890462
-18FA6023A59AD8690D5B665561EB70D54236782119D73879441DBD758C96C041
-9A36E9EFF7E397AEC27F49BDC1B0FA9712DAA076344598AF7AC32008EAEBB9F4
-0CFA76396A6678176BF27AB8AB22293AD9A13BDA7EA5FA85929735D5F5AFED43
-A04794308C1A55BCE37F79482BD65D5AD1E47AC669EA276620386E6323031479
-0060A65AB8756A92EC055CEFDC55BE91D24B4D7680A3A6EF4146FFF03F2E396F
-E8FD53B43EADAFF1A63ECF0D268A11F2B980E1DDB0E0A926919509712901FD04
-4F3A3D6B69C9C081F089F66796D3559FFB24D0F977A1177F8B88A42469E7E5AF
-0FF0E6EDA585E1095E6A9375BD675B202E24D76C86A7472CE931C39A9518620F
-31F9CC61496C397A1A46C69FA1888DFDF4DC5424339744836CB1C0A13F013D73
-D0C6BC868A8992EA2F747FB603CE960D43B48C4CADAA902FEF43372D5D1D92FE
-7D143FBA8719B87AE4AA8D7BF8C1F65FB2CB2D603A722684D2FBD652D747CE86
-2CD3C06E30B3566E444084682D76C854B7A997D157253CCFC757EA239EBF3A1E
-728F64F3C092477F1C44C8D723454C4D98F2369FEFFA88B1D4DAE41FBDC7581B
-60F3ECC73743D7B7E81E4DA90AC98CC9ACA77C8C7AF106C1C7145DC5D315D8D8
-2E2017F203DF0A8298F4273AEAE0268C8518A3288EC8C56D4CCF898798FA3350
-509335DD4D051015D94367B2D236C9E8F639578E3BBF140DEFBA03B813A4E7C0
-FF078C21292D8388CC990D4598A90723CA6F9BE62C08F31256CAFB6043490966
-7825417626E45CBEFDA8EFAEC8D03AB6185424C85963D80340D56A96D580A0B4
-C8B69A054CE529CD9C36104694DF3B8BB5904F2581340557C3D668337A1EBCC9
-3F282475F3CB81AD29B5E0753DB80463876F311E6C572A38B97E1CE6741E2025
-4715B704DF7080D9FFDCC0412267548215190DAA9970887D990BC8D29A5F9E7D
-4F59DEE71E0F936C9670318E90CC10EB63F3425E8CE88058DCD2CABA070FD78E
-C96E6DB7F554299D893F30806EF60DD0FB11A07A2DBD9EECC2E57546546A2550
-2FE08B3BA75E5DC2E66C100A4D72C335DE605393675F8FE5927E9BD2DD24EEA0
-7E991DB13B685AD13284E0CBB7A41DC6B7015219480FF73E0A676B3AF36DAF64
-3FBA5F10E5B789C27EE99E9C689EE66519EEF26C7300E4D90DC9FF73A9A2F938
-7F009E6211108052984CAE0F368C741A7ED2350363F148BDF963B1E31C55637E
-D1CBC916A5C8C5D6B30C5150A9A185CF001EB3FE363F7566B6937589B6EAF025
-33163043D40433305D5D6C67B98CA049B0A4F1DBDA9F0A976F346D9B3D700785
-6CD75048380B1C88FD441BA10B8F6630A9B3CB2E19484FCB6DF49BD628D46993
-C68960091CE02B457DC31B04DA70E8972F3A347B83DD922B13778E4EDE3C5121
-F411473C5B1669840BA412B7D5693E0B5F2A59CA51BCF84BA45F3F3837987709
-EAF7AD5678C7DA763E23A0B7F3BF09F0F8F4E0D9A44BD4AA7A8DD46BD1878572
-566FA20256649867525587AF615902407949DD45119526B2C3D29456192901DF
-C6E4A0209873EBF15A4A990A5E42E1E99999D535BFB68FCB1CF91AF9DD343B10
-DC8B9A5432989BE7B4AB989476FBA0A6A645AC89751912DBC2BC6EF3D85D705F
-9A7FD52FFC37BEBD42B388E73618D6A4CF61AB9CC08AE7E65BDD1C39EBC98ED9
-183535A6F05DA10849978B1325CC654EF0E799E5B56446D797F423C7E5D1EA3F
-22D801536A7B9EDFA7AD42C7C07EE168A78D116DEDBD7B3C4EAFBA5FFD7B1D83
-0B400EBFFAF9B2432FC80C38E0A144CC731BABBE8F71E70720B1F6A9120B513B
-2D6A3C54B82025296B46BD00A249A682D4353F84ACFEC7710D87905040508ACC
-7A1A974BD03C1D
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-{restore}if
-%%EndFont
-%%BeginFont: CMSY10
-%!PS-AdobeFont-1.0: CMSY10 003.002
-%%Title: CMSY10
-%Version: 003.002
-%%CreationDate: Mon Jul 13 16:17:00 2009
-%%Creator: David M. Jones
-%Copyright: Copyright (c) 1997, 2009 American Mathematical Society
-%Copyright: (<http://www.ams.org>), with Reserved Font Name CMSY10.
-% This Font Software is licensed under the SIL Open Font License, Version 1.1.
-% This license is in the accompanying file OFL.txt, and is also
-% available with a FAQ at: http://scripts.sil.org/OFL.
-%%EndComments
-FontDirectory/CMSY10 known{/CMSY10 findfont dup/UniqueID known{dup
-/UniqueID get 5096651 eq exch/FontType get 1 eq and}{pop false}ifelse
-{save true}{false}ifelse}{false}ifelse
-11 dict begin
-/FontType 1 def
-/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def
-/FontName /CMSY10 def
-/FontBBox {-29 -960 1116 775 }readonly def
-/UniqueID 5096651 def
-/PaintType 0 def
-/FontInfo 9 dict dup begin
-/version (003.002) readonly def
-/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050<http://www.ams.org>\051, with Reserved Font Name CMSY10.) readonly def
-/FullName (CMSY10) readonly def
-/FamilyName (Computer Modern) readonly def
-/Weight (Medium) readonly def
-/ItalicAngle -14.04 def
-/isFixedPitch false def
-/UnderlinePosition -100 def
-/UnderlineThickness 50 def
-end readonly def
-/Encoding 256 array
-0 1 255 {1 index exch /.notdef put} for
-dup 102 /braceleft put
-dup 103 /braceright put
-dup 106 /bar put
-dup 110 /backslash put
-readonly def
-currentdict end
-currentfile eexec
-D9D66F633B846AB284BCF8B0411B772DE5CD06DFE1BE899059C588357426D7A0
-7B684C079A47D271426064AD18CB9750D8A986D1D67C1B2AEEF8CE785CC19C81
-DE96489F740045C5E342F02DA1C9F9F3C167651E646F1A67CF379789E311EF91
-511D0F605B045B279357D6FC8537C233E7AEE6A4FDBE73E75A39EB206D20A6F6
-1021961B748D419EBEEB028B592124E174CA595C108E12725B9875544955CFFD
-028B698EF742BC8C19F979E35B8E99CADDDDC89CC6C59733F2A24BC3AF36AD86
-1319147A4A219ECB92D0D9F6228B51A97C29547000FCC8A581BE543D73F1FED4
-3D08C53693138003C01E1D216B185179E1856E2A05AA6C66AABB68B7E4409021
-91AA9D8E4C5FBBDA55F1BB6BC679EABA06BE9795DB920A6343CE934B04D75DF2
-E0C30B8FD2E475FE0D66D4AA65821864C7DD6AC9939A04094EEA832EAD33DB7A
-11EE8D595FB0E543D0E80D31D584B97879B3C7B4A85CC6358A41342D70AD0B97
-C14123421FE8A7D131FB0D03900B392FDA0ABAFC25E946D2251F150EC595E857
-D17AE424DB76B431366086F377B2A0EEFD3909E3FA35E51886FC318989C1EF20
-B6F5990F1D39C22127F0A47BC8461F3AFDF87D9BDA4B6C1D1CFD7513F1E3C3D3
-93BEF764AA832316343F9FE869A720E4AA87AE76FA87A833BBC5892DE05B867F
-10FA225E233BCFA9BB51F46A6DF22ADCEACC01C3CD1F54C9AEFA25E92EFAC00D
-7E2BA427C25483BA42A199F4D2E43DFCE79A7156F7417ACF78E41FCA91E6C9EF
-B933450D851B73A6AB6AEA7EE4C710CB5C14270D1674FA334686653793FCB31B
-491E870D3C2BC654D2C1DE463EC9BA29D7371AA1078800EF93D3F66263A2EBBB
-F5723697BF7448BD0D2E301544BECF497FD475B85DFEF52AF4F8F8BE445CABE6
-019318806D10C5952157FF8F8286C1EE701545C8F60EFA854EAE66835A2046A6
-915D395F1E0366EFE0C0391583FE001FF16D82A2E2DA5F57754A2C6F69306E36
-356ECF8EFC3F1188AD6FCD2427E0580C97A5B69B4E0E09B85EEDE142F5ADD2F0
-5DE51D6DB72B127412A0D57106C19CA493048A4F815129ABE767D51715B1515D
-9C21067CB5BC88741B7298C83EAE36A866DFA87D8981F179B1C31292F56BBB64
-3C430779468AAF07C8A8B4934E1E775FE3F35186BD1FA6EE3689C1C750678AF1
-FBF9B23195A124C5C991FE670AC0C86FD39D2B07B9A319E74EFD498B45820252
-720ECDF7294F7B0B137CEB86D33BFCEB8606985A3260FD669E461C8BE94216C5
-D434FD8854F44EE66E5A289A9F9E32BC36AF645D53F96652602BAED418C8D726
-BD04A1B4617551FE4DEF54083D414F7DCE004E6BB2DC9C2EF7CE232B254BA2C5
-7DCBD36C2072ED46FF711F121A701E2284BF1B718B3164382B8F453D68FA0377
-DFE106503B8401D4DB87F5402A3AC9A442FA060B0610A9524D530C7157C26B56
-AC970FCC1D5655FFFFA39246E6420CF97D08ADFB7B05822679BD40C638DDF0E7
-A97BFE8918B611A145AC965C203F1428812F9D340AF499B3A915B22BE798594E
-0F520109FC81E452180AE45B170FF999C5FC2761C6CECD8742A5A6FC97F16743
-AD4EFCC6572A6D3F3E4E330C5CB2FF6FEA48A5B64DD3DBE943BD9918D4A18E18
-CBCF598AEFBB6AB3CD2CBC9BFD6099272F6543F3E532E0E21E614BD2880B1023
-0AC234CB705827BF016DB84E00E8C255FDEFA0101A842929540B7B4AA8A089BD
-5EFF05B72356B6BC3727817823B5CDBB1B963103000D7F2A4E2A1472FC3E614B
-5CBCB6D6D784023173DEFEBFA8F9ED87EC1A0A9EE98CA59CFC964CF943DC683F
-E9E00DA718C4425A705A69D99988EC6F152525C790912C2E46A2381A569424AB
-54DF4798BC2D7E7A361E7991641D4B756CE2A7FF4A2848927092C59C2C4B8809
-E13AB84FB6B111E680D7FB9F2FFC2C5C66B0B501E4447C2E46C10E2F6124476F
-A140C404CFE2DC9E0199BF61E035CEB481D438139A9630934E541D261FFD2906
-4CAD99E20655FA746AFB81EDBB5601F5FD6B1D6832A01D585E2C55053F6A7378
-4DAACCAC7608DBDADAAE732D66B3E7F87E79756337C1A961E53A4651BE7C77F4
-038B89C87F650C54A2A90EB7F1D525BB353F33318551EE8D84A6A83C718EA5A4
-B2AC0F7306B1E095819B87015A90CA3ED739B09061782C28CDB36BA4BD5E5308
-5CBB70414E4112193DAC4A1FA30996327230D1E021F3CD8115E12D239D93FFDC
-B645910EB29E40D830E7BAF2DB255FD7C4E776557BB38157917D993EAC245837
-A3B515147043574157B8342D829C7228CCEA843ABC89D1785A9672A5923FC4CD
-2F3FF27E6FCACF84E2D3136CA2C0FD3EF1EE7354CD04C38B5FB874553646ED2D
-CEDF7E362EADD04B18051F20A8FB0DE18E152385B9D05F98A3A7EF177824E246
-455ABE69E2F700EB78185CCFC07E3B4C6FA301112528D977367D30D0D5D59EDE
-FAEB706DDC970A9E296236C725B2B55B09B9C336B8E23CBA5FB8692D56F33B03
-16294E5FC7FAA42E96395A57CE51CA8DDD77442F142E2E576B778373FB31C81C
-16840BB422CA827E30A81829648BDF1CA36700EA32AD888D097C1FE0A05B2D9F
-483AEE40269DF09AF0D1AD3DF80C45DDC59C2A03FBB661C79B87853737C6D352
-67626B657321B16198DBD6DB98A092F17878AE4698121E1006E53D6F9B0A3BE2
-3FB68828EF854A0CDBAA68B37ABCA6AD4A3D809AAF0BAB1697A81FE59C98C472
-1E33CD70A75A22C249DD11D76C2575ED3370A25892A16D2FD569CDA70C130770
-93F493C7D47D6F9A5424A7A542BAD726BFC3AB225DCEBBE6AC4BE006F8C7C0EA
-051424B08305BF2D951AB2986AAFEA04E078CA79B399585BFF0F1ADCED02E15B
-8765EB6BF6A8E4D0901EFF2C3AA104924EAD9637A35D877E0C51A3C37DA78CD4
-8643C8CE6DCDDE3F116A6C2390F948E5371BEB5AD2E87B41C5F01FB5C196C436
-6E256A88D082E3F46E4EFFBF605B2EFF1E9D9AD5EE4DDC323A137CD9451EDEE0
-06F7D82898D71FAF2362C0FCF1F726F97F820305B7CE20728CA08C63575083A7
-84BA28B7DE2B916432475510E274C12FFD1660A717F51DACFDF0A102D85224E0
-D6DB607BB72569ABB8A7BC6A10354CBBC01732EFE35B72062DF269CB25EA3DE6
-DC603B04C90C5912D2C38D7A5ACDCDD3F6F116D884F0D8C528F69D5D47BA20DB
-0A9E585C7D8CC3C324FE8A1DF150279F7E8FB43BDB720E624E5E9918032C02CD
-8020636AE5C38DA2484B7F4B34163E0D0A561B43B80E97746DC05C871AB620EC
-C5D47101ECED4A7E25F291184BEF8B80024AA7BB456C1B83A907652B331DEA34
-754226C39C6889EBEEFDAD081E01EF8FE47751987667836FDE4C8BB8A3FD4406
-1E643B4EA37BD370734D1A2DB17C2F4B74B4ED75098B433601F75A88C9A37A05
-CCB157EF6E32023BFA33973F3E655A4D58289136996FCFA61EEABD70791B6523
-1FF5DE71AB8A17038923118A5EED8D59C4C58D246FFA9BB26472346B40C8741F
-153D19CAFF20DD2A86C6DB89154A630FB1761929FC3F0448EE2F089C1C953E02
-905BA8DE75D101A982A611056C4B237596C10951DD98BAB838B742D3CF7DE718
-617DB72E5268583223E37E029D1C8FD3F1D21690151F76B76C52C725CA135CA2
-8666553E863CE188BFC9B99AF56AC2DB5BFEBEB12FB563D00244EB89E478657A
-98AF2E1223C1ABC25A4500E8119B86EB3C26B8A2F3505A3E5610F89B7C34E278
-53FA0A54A7F46D84A35EFEC36AE660A9E3C37EE3864106702DE5AF6C45ABF64B
-888A4A51323138CE77DB935576FE6B4824B6942DF80625098CE1B5B32B234F1D
-052A9D6039697118A9D793793775D8729D8574A2E74D7109C7B7E23BC5E2E87A
-CA8E019203952A4892544E1AD3D4EDD22971611358AB230E9A2ABDF00A288501
-A01B67C42B33F6B78C39562DB50F4663B922D9BE0D8A150311AE44B83C1F129F
-07337323E9A23211EE58E16043E127C6F9574019179F5635648A011266677B56
-B5D0201A4E1470B952A1579B57AB2329CD4C615395023C653F784D36B5EE3672
-10D191F29EA508CE84763CA4CE7C2C5229E38E241255A5CABCD6C7CBAED901A2
-CA53B5E24111921CDDF83578D33D463D70EDACA0E470D8F592303FB6BFD68B4D
-3F3BE2D7C5EC8BBF10C90111A33E205F2649B56E8443F6FAA6C721C66575AE12
-D4C40F1F46CF9E9DA675AB5D5840D938780CD9E4AD6736ECBEB6A4397613586F
-849B51048AC5F9405E03E14540A5E5582F61CDCDB57EDDF95A8C6705F433EE16
-648F098C03DED8A2AD94AE3DE202D629B9422ABB031318D48F2C85F9DBFA17BE
-84708AA3B6C9F81F4508F7A5CB7B6646AB8722ECF817877B77D473F577556DAA
-2BA0ABACFCF5DEA7498C47328E873019A956FBB250FD9D8885D21D368FA70CBD
-2709D2DA44EE7A9869963EAB48789541906DE49FAE785ECE1F18A22C7E7ED204
-9768896B78E9EB7A2BD6EEC1B26083940656ECD689D92942CC8AF05CBF82AED0
-B45A7DF4DD7AA6526FB597322560B9ED3087A65B5EEF1371C328A021411BFE3B
-D9B5088B2F1AAE381FFED52D2D1E02CD0DA78683E3B06171CBE94BE9760005D7
-135893D7CC2DB097F6AC664D9594CF1C650F84DA80D2EDE04802DBA33CE3DAFE
-EB7A37E8AEFA4FDA6252FF21E8673DD98E67124D5DBC7BACF361E57077B71939
-C1D1FB923E4E35C075CD1BCBE0E80DAEA1320D55B43EAB45D9B26C366B278782
-7519FDC482D98839BF0DF2E7C3A56A1C1A3FC0E57A75CA414F6536C1FE8EB7A0
-4ADFEE3BEDA0F53BE8CF5F64230784A797133E8CD46BCCB3BF38BCE38A73CCE2
-9E073ADE792F7128231DDD1F63E6156ADB2609C200837C2E8A2D93D2A7BC9171
-050C709A71E44E32B1B03C92EB5CF1D3BAB1C38E027DC4ED9AED633D98CD7486
-3F773ACF8AE332631CF2ABE6D606607593FE862ADE31803964E3F4DC3CE3A271
-C76BDD95C87CDB3B87BC26FC7A16D567EEC62E6FF0D471B4853DB8A94D4CACF8
-843824F818083F10E88D52FC4253E8203292CB40F1414AE7E51DD7347007C342
-CD70E8E9F2D2A13D71213B841DDEAAB208AD9EA644591C15DEB084165F9DF24B
-B91D3BBEEC2E34E38EF16A0C3F00700A7BDCBBFED2EC0D09601AD6538288DB50
-3478B051B5E16B604A0341FE621A58718D960D699D3FAD284310DCF54EB13175
-19A75A539EE98E804AEA24689D3540F0F12951A3C01FACCE9A7BAF4D0DAFA946
-FF65A4D2A4C39969607272C6886F44E90ABE27CA3A1F12A29D9B32E60E8E34F0
-17C5FE43D0E69A99A922D98909B2BBCD145E59A5E7F5426B3988F73B09A525F6
-8BD4915663C1301323180E760BE81CB874B020FDA3AE63340E4261E4F3E4949B
-CC0966BDC4426190BE9F5D77F76A72AD925662E5FE1CEF9CCAB68F0BD33DA003
-F11EB91AC4502FBD6AE48DA0F9D07C35B96B103E379B8A83A05FE728F1716194
-1F650F75BEBADB2E3810388F3E2DC7B19F1BA9E32925F2FD9F19F4E8701F3E4E
-4069125D7C401144740691E7A460021A47B1E27997FC1DDABEC5BD0EE0B20194
-2D579C7D6727AA124083242BDA46D8E116E2751C5F298851A62B60AEBE82A929
-9B9F2492BA35690D1EFD16215B8EF14E7A3803B93C28FA41D971B05B6AF3B593
-E74AD1E68A5FCE12A86E63B78BFEA87D3949FD164F12277A4688BE96356791CB
-8671C49365608F3EDECC109321AF92B4C29CAF073DA3A7D73E913D0D83FAC5EB
-BD884D4C686056404DAAAD6F82F94F803FA1FB0DD8908D1DF08FB87A8BB83027
-04DE0CBB1C6FEB6B517FBD7CF065120079E608CE41893C2BC96A347826CCDFD5
-C69E161217F2127A59F1A6F22037641613F191F22D5B4CDCBCC2EE5615623404
-ABA7BE6C5FE475481615B2AC1A2412E54688DD21E44CC9AF5F16E634AFCA389C
-4D740B7B51BB141BFAD1080E7C726C1606A28ED492E6BDE9F800EFACD1513909
-84E98CEB6A0B7A2A6F3E1D1DCC3B2552795E0932673E59ECC56DDD37A1D52BA6
-C3F0E905978AB568941A163F4CE3AAB5C5B16F86016EC47BA6F3F7AAAA77C3B6
-09C8C3ABDB6D514A76ECD37C37AA88B5860630B3406B494F7725975596F84777
-D9CF48686EC9C5DBCC1D78513F591C7C10AB9D153B3D41426B7BF668B0D04503
-56BCB686258462C1DC61095724B9F3312316262FD7C1AEC6E54DE7E5A7BD8EFF
-035299B8FD8A4A7B0F51404F4A760F4D8B4C0FB7A32FA4B2383AB6E9C78FDEDB
-FE6A5788D38A6701B123630C2A6D820A684166FBBC83DB17069494FBD411B333
-CB37E2491C5BD035A33867A6D3A3D420CC31ACF43AA07182CAAE67E40EC63663
-B678F71D4C6E0EC3A0AAF904CD3AA66E0DE5E3CDE049E94249B39A1C06E3CE9A
-F974B2484BB2CDA14282B9511E505B3C89F9C802218AE40D1A7541335C5736DD
-CD565D4B9F4CC78F3A393737EDB4FBD0DA299E21CCFEBA5478EEF013F0552A8B
-0BB11FF46CCDB784E8BDCF730A16363E66572049E42C695886EAB42A9AD9094C
-B635DF4B5B9BD9B9AE8455DFA3EEFC77653190F9A8B1E93B7281C2A21EA7DDA9
-33484745BDF7E3DD63C7AC66C286C9A5A698A5E4D7A91710B7FF943FB23609B6
-4B442F83CB795788FAB5E9CF3F75D5487DA26170E4561C7941C910B088C3B86D
-F844B0F340CF82786A3FCF347048463EBD2006281A816627065DDA6CD4D3AC5E
-2024BC96C7D896381BBB567951E7A1F29D4E95351298B000D29E5F3D0448CB5A
-CFDAE1BADE9403B90371C3A07D208948AFA022A69C519434B6813086ADF518D5
-88E0B92072A44BA1B3EBB630A13B7AB90992E85B6D67361C8D96F3E0D826FF37
-17B67E4B1EB7BADFD98D7F4FD17BECE740ADF13C141EBF0A91CB105DABB32FE0
-55086D56A0D358841D15FD349E6B95512E4EDF4C430216FF85C2ABE995E4B40A
-A6044CC8820AD885C07E052B3F91C2E9A1D163BFFD210F7BE95B923E2500DB50
-2075106DB541C267BD450B25B670CE80BCD068D4DBFF2D82634175B61FBD3BC3
-406131F44C7D6F18D375D1F2270829DDF29DC14DBB58A30AC193245D18DE91F8
-AB88AB548D8138605BB5A50073295534E314366E26665AE70482B890E4101D6B
-60E4F3B37ABCA1346DAAE8FDB8DD9C832EFF3E73BA470E2BACE7B8515CB43388
-C27AF99FF9322175CF8D4947E6B3846AFF5163E972156847F58A66660EC8A3A6
-5FB47C9F637B4CBB4C73B6A080B0CF6FD1E9665E92032540570FFCC747C67C50
-822811AADC404BC7ECD1673E8AA6C3A2F1D82F39430B58C29145E2F1B679C46E
-94EDC711883F1E4EA84117A54757E8895A40401A26E1437B39A2F65CAADD6E02
-D71FA8AF7453668DC613F326A3344F74AD7AC67569AF399385500ABDA5EDD3BA
-343CC5EDD4B558467626850E752B9959FEF1454E53E7A3DCBC2255AD8F6AB4FE
-894455118A61C58840CB68A925ACCAD75CEACE863D806916228F0614191A1CD5
-DC9BAE256018615AA3725834519449B0A88B4F396654E74099C007930ADB1327
-DD119BF799FE3B0B223E1EDA04FE2DA7A1C879143E1C33B6C6344F4BA033AD6F
-8E88C33DEF1977796B454BAB2494C930F492A518E8198C708A75FFEF8C49C324
-A718AB59B889DED521229E741FFE53F98EBE88B0405AD523254FD3FA4BBE96DA
-DA1C27C1C979A0DD4E61C3B1F4C4DE01E42F1C4435EECFC02D97994BC8AF5270
-E7CB1458D76ED0229C5FFB4A23B8716018F9050970895D51722CDE8F2EA3D947
-DFF374D84915D5C5D16463A6FFCD079D1ED416C4347BF831FF0C4ADFB61295DC
-4D5785BB0852BF472CFC97EC174491CAF961AB90629F055E75DAA6D9898E8653
-5BCF379816CAE46FEA62E7BE8E9B953466E51828172C4DBD0E1BBAD1CE28B5B1
-02B3E36403BE80B49A47446A6677FCED438F01D60EB10F478C89528FA337D0D8
-88D3FC123C076507ACDAF783A9A6E24ED73BF24B6E0F11C13E532DE5F70EB02A
-60651FC2E263002D3986B7B20CC2AA08330B9FC2E26765CD52266969A86EE30E
-71E0B41B6C1C6DA423D3A7E1553D2FAF26EF40DC183099322D362E4965695C52
-9FC3E5BD7ABD743CDCB717DB10372A722A39CE53FABB454EADE2179C4CBFC016
-A8E893C28EF549CA1692C8D8ADFC471DCCDE266FB4E97A1F3035801F3F034D44
-A962226E1AFD39AD32B28B924B247F85B87CC4CE00A01F0DE7DCC439C05297F8
-AB66A0899A135B400DA86109FFA7A6A6FDDD10F23FA4FB84C626402F2ADE388F
-8E15FD1310A54E213599843C7E4F6320D2E6ACD58DFA107554985C62C277D580
-6AAA79CCC71454992970B82C1EC19345B393A2D13A4F5110BA6AC7747674EF31
-6A464E208F1A38FD21BF1F62E1DA0E31C3E687393FA84708A1063BAC1B5E2640
-DFA4A30DC75B3347473A27915F6E9B3911C0228107405CBE945D5A92E25E8C65
-F9129501B87E1A3E5572A24F2436C08C2D2FF1D1A9B11052AD1E15B69C9342CA
-A71281C67CC3EC0D070E3194BA9F01F68658F210974EDE91EB4B1C67F2DF1CA8
-21C6594D49E7DE5ABD9CD93196989B7B5176E1C7F301C5163BE92DC79799757B
-7CC33A6A525423164BC94F98256EC2CD929AAF141C1810BB3D302F83C1A49903
-8C1EA4A568D9C3C27F3CEE245A9A4AE9A376EB2BD898C915B56DBD063054728B
-A69C0132640395A84760DE8D09CDC9CD54E3F5F268980C2860B66195045FF6E7
-7508F5D23E6A51A2AE1E3C7058E3F4FCE6D8147E319FEB8A5836F7810AC8D5B9
-F85F8135F813AC9F41E62BD1C10479BA112E79B080359E6CEEB2611323D69994
-5913A228E0E1DE2847E4D50C4C63EAC9F884BC3683351FEC27274728B2727421
-B6DABB1F89DD5CED4D4E75583E6A7CE327F89D70190BC917EA887E3DDD87C11E
-F838D58317721257F2CAC9E991BBDEF6ED51F0719CE1F0B4446596A78A0737B6
-0802CD6B543FCC01ADAF847C21E6966A9B2FFFEBE545D3B2E8D24732E7C44C38
-62C4999D769C15F24299D76A71DBB3178582A15CEAB6A8CF8F3E6B0E75BF73CE
-C5280880B7C88D6E9BD4B8D5A3B18CE41C681D6BC7C73CAACC7B533EEEE2B234
-D38C22612FC6D2075E4303D8470FFC72BA88618D7FF7E138199232D1BCFD1F9D
-0F
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-{restore}if
-%%EndFont
-%%BeginFont: CMSSBX10
-%!PS-AdobeFont-1.0: CMSSBX10 003.002
-%%Title: CMSSBX10
-%Version: 003.002
-%%CreationDate: Mon Jul 13 16:17:00 2009
-%%Creator: David M. Jones
-%Copyright: Copyright (c) 1997, 2009 American Mathematical Society
-%Copyright: (<http://www.ams.org>), with Reserved Font Name CMSSBX10.
-% This Font Software is licensed under the SIL Open Font License, Version 1.1.
-% This license is in the accompanying file OFL.txt, and is also
-% available with a FAQ at: http://scripts.sil.org/OFL.
-%%EndComments
-FontDirectory/CMSSBX10 known{/CMSSBX10 findfont dup/UniqueID known{dup
-/UniqueID get 5000806 eq exch/FontType get 1 eq and}{pop false}ifelse
-{save true}{false}ifelse}{false}ifelse
-11 dict begin
-/FontType 1 def
-/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def
-/FontName /CMSSBX10 def
-/FontBBox {-71 -250 1099 780 }readonly def
-/UniqueID 5000806 def
-/PaintType 0 def
-/FontInfo 9 dict dup begin
-/version (003.002) readonly def
-/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050<http://www.ams.org>\051, with Reserved Font Name CMSSBX10.) readonly def
-/FullName (CMSSBX10) readonly def
-/FamilyName (Computer Modern) readonly def
-/Weight (Bold) readonly def
-/ItalicAngle 0 def
-/isFixedPitch false def
-/UnderlinePosition -100 def
-/UnderlineThickness 50 def
-end readonly def
-/Encoding 256 array
-0 1 255 {1 index exch /.notdef put} for
-dup 11 /ff put
-dup 44 /comma put
-dup 65 /A put
-dup 66 /B put
-dup 67 /C put
-dup 68 /D put
-dup 71 /G put
-dup 77 /M put
-dup 78 /N put
-dup 79 /O put
-dup 80 /P put
-dup 82 /R put
-dup 83 /S put
-dup 85 /U put
-dup 97 /a put
-dup 98 /b 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 107 /k 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
-dup 118 /v put
-dup 119 /w put
-dup 121 /y put
-dup 122 /z put
-readonly def
-currentdict end
-currentfile eexec
-D9D66F633B846AB284BCF8B0411B772DE5CE3C05EF98F858322DCEA45E0874C5
-45D25FE192539D9CDA4BAA46D9C431465E6ABF4E4271F89EDED7F37BE4B31FB4
-7934F62D1F46E8671F6290D6FFF601D4937BF71C22D60FB800A15796421E3AA7
-72C500501D8B10C0093F6467C553250F7C27B2C3D893772614A846374A85BC4E
-BEC0B0A89C4C161C3956ECE25274B962C854E535F418279FE26D8F83E38C5C89
-974E9A224B3CBEF90A9277AF10E0C7CAC8DC11C41DC18B814A7682E5F0248674
-11453BC81C443407AF41AF8A831A85A700CFC65E2919BE7F4437ED75BF2F7BA7
-02F85142A4EADC8C9C7F11ABE2AE2A9DEA79CBF9577DD8627E31D25A7E4DED9E
-FBB1C413696C88A07E5C937451D40A9211B29E24C9424635CD4FD6B16FA7D76F
-5BA1DF0EC26097EEADD70EAA577531177A26B5017A32675C68052E90E68538DD
-E779AB23150FCD1653460CDDCC713599EFA381C3322175809A73447720F6911C
-6BFBDC0458C477D2CE69BBAFD05B5C2DA1D2E3E8378A2112066B045243D3D080
-DAB211DCC25430973C18E7FC5574A814E3EB79F34FF5197453873C8AC66E47AB
-5EA57CB3C8365D5235E7746C8584734F002E9A28C38B0C25E3753D85A1D2F3CA
-B8DECFE14A7AFBFB76CF3E91A1E0203FBC8052C2DF967693C9BA0ABE86B5D264
-BC345D7954C9523B3E70C4AEBBB0F2D56BAD6D76E095F9390FBE2CD607F3060D
-F713ABF47F0FCA5D5C27CBCD4140C668F733F769FF5326917C0AC5D4C72F99BC
-5AF4540DB169622644D320872947BCF1D30DA4EA150AA22D6D53777345858DFA
-3286EB68314E30EC650C8BCC572D72879E431FB4297AAD6533C8F4802E0B9902
-8360C57504D4176C1DE7F57382FF2E2C0A3D5285A061CE91D3149E3096B91076
-1E914125CCA8D1C9230B72427990ED4468CE79C11E8F0CB89A3213C535B040E4
-0C5784E6D53C96696EE45C87B5E0DAA80D3A06E5759D0676ACF99020DCFC3E8B
-50002675B01959500133BC30223C75A54948DD28FA83F399924D4ACBE33F1F2E
-D85095A76AF6DD92EAD139A8D5673A35B3633D25EF3B10A40A7E28F329D6E7AD
-DBF1DAD1E666931611FB107D1FD3576F11A22B50943C536DC2BA477EBAA52BDB
-B65A98268602F26DCA5EC761526CB7F33CB5B345110B7A90E1D078A21E332F78
-33A0CF88EBB2CE852384DE3435F7B3564A0AFBB2024F79A633BA5B6EB7CC5389
-C43621C82972D60F7DAC71FD9DD38CAAB865D7DE4ABC39D71879BF31549DE649
-4B9CD8C149880504E5B34C2153E963B3FEEDA0D59F70E0ADCD24EDBBB8EA961A
-90E5AE4ABB26E1AB1757E25572622D5A2541CFFACAB673665C7693855473D78B
-847FAD590B657CC0B8289034AFEC3C54FE97B010535F70AF67ECC88E21B077D3
-A9C2C52D25CE9714EE430735DB57991AEC946C96B6988B2C85D17C8BC80EA844
-3A076618A686040ABCAC347F1B1C14676B05E13C239E99C3A2B63D0388CB50F2
-BC119D6F74F70DD96BB5343D5458950070576BD6E319AAF5792EBB9DA5778CA2
-58DE0976AEB766DA6A865F09FD6753FB4E7E0E9A06AA1A06C2636AFACF787460
-9E73BAFC4A56A99277DCB14F52555EBF6DC5E5785EF7745521FA061227B725B0
-7A5BA223D5EE9239A7A1694D4F9EC1132FA23DA44ED0FB0AFD8987A01F9FAE15
-ABD485BE098CA7B1AC780A9A02AC58DCF0425D4D110226DC7B5982FE31BB78A1
-C0AAF9B712E8D478FC4F85400B5E6D71AA653F9BB2E967A76D02B04887CEB9F0
-0EF50A956AF7F790400EBBC07467D9A8BF8BFE8200F8F7EEB5DF3E62A9A332B4
-513120FD9F8A93ED683CC47551C629B5313E4E20A207845CC37491ECC3945EE2
-71A0C5633B353B03B1A7727D5D9A0478D20D67A981F6E5CD8737548ED4348A91
-82F2CE805724A028E346E6B7C542FC69CFC7935E6CF3320ED9701C6127FBDFD3
-B20F0DC2D1F92DC69E4FEE57B457E82D5721D932B140CD6DB9BC86B961E7E6A7
-5816F42AF937D97C3149DC2AB0054564592448D0CF52427B766FD38E3B040B81
-59AA9030CE06A9A9E3A0572A11BDA85531060B75DF8791176CDEC0A9BBF472EE
-BD433BCDAB926689B8806CC8044D0925814C1784A41CEA48ABB9AC039485BFA3
-026FD30CCE84AC57DF09B1581ED01B3A840AC5E9208465BC160238EECC7A6753
-D5B65B159FB08E0DFE4C9F2EF5986352C0E0C4DCA0EE62EE5C19BB6C486FCADE
-99D3519723B70B20FACE685ED8D364905EA64A15981B00A6DC06D7B0E3D38FC0
-9DDF04221696F7A8F3CC7FDBC25A61D9AAF9F65D3A64BCAC4084CF13BBED7195
-6BA4C2445676804C333DA6569E4AB7E6999505DD1988C3E62495DF61B722A6E3
-00ECC4EC698E33F7B8225FF591B746E449D2D178880741074D0C3CA740312D21
-1F8B0B1A855FCA081AF1E69D14C9131B1769943EA6D5D6210E10BBD9E404B445
-FC3E2ADF8C9AB6AC07BC2FC0482515625523C04303F7884283D5CC35A4A6ADAF
-59738F3DDDFB51E7134327AC4CA577BAB076F3B588FA3828971FE9D561F46358
-24BEC4C7F84D8FFEEAC94E2C632AFA5AED635E867AD362E373CEA718C750B4B6
-954A7CB6E4CB2614A4E1C707412B7B09F8969EBD5B6510B66818A2F5AE4EFEE5
-9DD7690A3520C477DECB7D61FBE5F84D1C655971FAD7CDA78E695C18908016CA
-48B468BB6B43EBE1DDBC49F43B7CD667B4131D7B0C9BB048178A31D0CB70A76F
-527DD352F7A9F0F35226117FF305A9DF4AEDF474FCD5C7F31FB06D4B2CC40629
-1BE1F40B6347201F84BF35CB5155BC4D2E1DF2A5C7613C27A0EE77BE55A744B6
-DF7DA5741AB55F133D518660751B0A91E6BE43B527E9C97E2F06FBEB58DD0215
-BF4105DAE1B2A29DB05FA204D0EA6E574C7344C3B3F44092F7F997654D61EA9D
-4C811CE6087BA1615A31F8D107DC64F1CFF707234135B728EAA0ABB475E678D8
-9200950F24A8A61AE6AA18F34A067849825FB3925A8E01D64E849546FF7F4418
-19C0FFC2EEEEBDC7805612F7849BBA7BBD954BFDAF2E6FFE3CA520B79070F8E6
-B1509EE0040714C9F5023816250F40FD1C6867F77FC8ADD3A16A3A6275CD6F5A
-21BC03274B350EEFA6EE929AE91DEB8D8B309E3B3524807B4562C7758794A8C8
-4E3C6EE0C0859AC9B799428EAC242BC4AD9564F2444E3C79F11D4C1D5672DCF3
-2E191E25165C77EEA2DB51753ADE07F5E7E748704000265649A2E1DF68909F38
-68F0D5F415330C9537A065728D2104C34CE05458AC1B2A53946890DFDD67563A
-E044E7AEDA111FCBF431546D410D67602985F6E13988999E46C80A983C7F12A9
-FB56C6735454F1E194F63A1B6B21683A281AC6164B3229AE25B1189366C9DDB4
-09D1BBC8429AC3D64F8BBFEF1265611E7C2FE1D3A2FE24FBF3ED96A5CBA6FCA7
-847F5E3AD4D14C0C77C225588FBD0DA2E960FA3901DA1B46B796121DC804FE82
-C382F75AA0495312A80EF9350CE0F80CE0D18316E5D02B7BD78667C2DAABD879
-E17D5EB8F274DD2B1BFBC04EA2F72EE5376D01DAA129FE257162BD19D19B13CB
-C13181E6DBC12826AFFD87AB152A59D67D0FBBE5D9CADDB1CAA8C27689355AA8
-FDC556015E4A9708995E51E46D6D1ED7B68A61625561FB594B9BEF87A1720222
-64E4F8A47637705CA32B1B4CA5B8473F1D67FCB7E4041502B7ADA9FA4B16CC6D
-282FB636979D3DE7C76F3000ECA08AD6E116B1558FADCA251D67FDEB4607CD3A
-84BCA7DF488C97FAA4FC195661D7977A08EF04A7D9A2D619EFC7AE291D7DA633
-C6DBCA7DA01EF336E378764F6B4E4D6C517BE05F10BD1FCDB20E5ABA7F65A8FF
-17D93CDF1E60787712C40775A5C3808AD05A2F276C94B05E10C6042604F592C8
-AF1F25B98A0C78AA7BE1DE9ACF2273965F0795B0D79ED6CE2753FD0FD7B41A18
-FB490B06B5467561DFE5161C27F58E48EA5F38A5477C9CD0C2FA13683271E55D
-8B08DA0C96BDE97C653B0B18096EE7C0E6BC3894057F14E83A902FAAA4C2AC7A
-566A9EB8F9D622476DD4E722F55F28230124F67501866FFE952AE93DF5BBE2D9
-4B9CB9955320A9E256E611EA3838ACD9073107936226140ABEE92A096659764C
-4ED2485B33E75BEA57CCF19AB9409B684EB14103ABF6811E7A8C0AE0C0C11BBD
-87801F3F0260D04A8921FB9EBDA2A2048F4B5C47DF63051A0BA6DDBBD895E0B5
-F9F0F3CE62CB118B86AF595F4F34359DABD9EA354798E8561599CB32345A43B5
-93B217C43E316BD10BCE1C66A10C9A8041A14570ED7FFDD95AAA76E92EF52042
-69F0B8FBE21CA4E37647DDC890D13AF489606195900063DB0CB8D71968C1311A
-D56155D2B2382119E603AA85E9ACF1785E4C0ECA137E7E4F5EE7915E8A080509
-02FFCD2494DA2D3B2AD27DE5F11684BFFA2366B6C834AE309D8E07F98B7B556C
-DF3E0B42559610F1B78C79254AEBD7B0F5B3D7F420BA725AAA91EA20D014334E
-8FE221BB02BE7B59FC3D03D8ECBAE21F5E37E4A0352C475F9F29C5D2FCE8CB9F
-2A059AC06AD9E6F13C39F2781D7D4B3FC34291D165E5C66C5D01B5AAA2AE8F72
-9B3C634FB38FCF35283792048BACA9F7EE6789621D9243B917234405BF194BF5
-A4F137680ED10F216076AA2767C1D220AE71EA7393C7E252209B6ABD94213AE9
-F61FD2CB3160F41C4328DB8563483E13EEBA83A7935E4AC11A97DB7988585184
-6BD3DBB8241EFA1F1DC5CA9C2E16EC1EE12CAF4471FA83605DA85672B34B1F9F
-8CDBAB6907D6CAB6DD7E00A7D636EA20961BAC97D1AAF32C8096003E096855B0
-EF4845013B9243A29BD509436CA78C6F8DF4F90DDED960A0D12BFDBFCEA539AD
-BD4BF883E09542C9D75DCB8A4AE82DB495B0B918D330979F347A76D73B19995F
-4039557D337FB55B8C5922F35B354F6C8E4D861A0B66B3D803C9862C9C507404
-5EE039245AEDB521E90F83F15E44F42F0802F8DAD6A9BF6176C364286601FC80
-E14926FA518CC035337904132AEAB9785361709CA01AB0F352317294B34B2B20
-FF88CFBCC8E89863BFA2D3ABB2A596C9D9DEB261CFE48E403F88652150EEDF05
-3390F002B2E4B53446FB39C488E3D0D4EF4AE2AD19019710FDE56FE29B58B00F
-0A6D5B26B814BF64F13C35EE903FA2190F460F9438924E1D7158704F305E326D
-66CB529B3A4836DB0FE383EF989C975A2F603332FFE0748E0D695327CC8D9AB6
-E036E0E6409261C30B80977BCC3CFF8FF8A9BCBB889ABE47B0CE3450783E1EC7
-1C030CC18E074E01605908C3FB61B78CF4FDCC8E8CB13EB77CE6FF2BFF91D658
-51FB05DEDBB20B0E4C5604AE3CE6D41A4C8D71A1F90120B1F90C83989B892253
-31D06ABB335DE237CD0CDC91256A54797CBA5E284B6CEA6FAE01F7BEFD905E5E
-139D57E163137B5751A765B46A3AE6F653FF2551988CE792011E0548CFAA6ADC
-E32B876763AF6F6FD6864E7B55E341C97FFA711913F8A7FBCC1FDCB4CF2F4D3F
-17358EBCED45C975F2EFF3FB9F77A22EEE4C9DDE63360DCB2DA2C1AA4BE44BA9
-3F9CE6F27631809DBC45643DF7BEFE247E79AA7937C409986500EC1026ABFDB2
-6C30E0A4852A6976A73AD7483C36F1717460327BBC05DE729E23D370B78630D1
-7E87C99A5C3A3C0FFE204EA81A8A33D7DE80DF3C0EAB557F4E86DDF8E03AD072
-61B1D8E1BA05452A6FCA404D9BB8FE9831A367B0AB31041B474DA9536035E7B5
-EC83DEF0AE17DCE958DA19869DD51F53D4A4BFCF7CFA635D6F9F882E6F0215A7
-0494E76F258D44FF72EB5A1104E8F73AD2F6F2ED337D854B81DF4083E6A2D679
-6B5613D76DA2347118CF009E8A88924C2A42B154DF1CEFC93C89DE0ED8DB26CD
-8C2EDE2670F494DC591E79DA26CF8B5FB76613296FB1F39AF2001BBDAAB12CF4
-3906B4C304CCF1D066524DCF92FF484CC682C2B197CD797056555F318279C3A3
-7AD8EA9CB19724AF57EFC6706157A5E2F51F104F6232F252594510E0E4BC872D
-D610F4C99BC3ECB668139331216DF1AA8F6358EB90CE1F0B8267B878B19BA7E6
-77A53A674E0B029E9142865CB92A1596D5AB97FA12FD05A04369AA00BDCBC2DD
-1AECE1A4AD55A93885C626004B41FD277AAE6DF68161F7443EFA7D9C913AF909
-970F4C6292A694AF033B953CE37116A2AF2439E482867EE9EE2BFE1093A738DE
-24D3C408DD105CE6D7B8967994F7C5CE49FBF61AF135F8F7799E2FEF29A168CD
-B2F16F795FB475204FBC41AB78AF87E4E80F992FDCB770A3DC0501AE1D786ED0
-449956A1BDC93876934331C24CFE4392AA860A1ACCA39978BA8AB90A2174F5F4
-97539772660D3920E1B57E9E0674CD34C9EDA83B6AF1B06B26207FE5D67E75DB
-B170F1D01D512CF6D586DABFCA32404253F0A9985A29D46641A81D5A810469C2
-8081D7774B3188423822003AEB638F21661E0BA7AAC765CF8321F9677C85A562
-88AB1320B3256EA9FE0C67E5B69A5127DC1B13E4062CD0C9ED10AB36CD370105
-8FA04F89E3F836B01393F1E9365077A30D8E46B67400DDE8EB0AF8C815729699
-469773FC3F0ABCEF752A5768C9DAA1931421214E69053775A238553AB6620E9C
-E875223681E60B7F7B25BEFBECDD4FF799ADF34BFB397AA114515E2133304A57
-B422E97EB3FC5314F64BAADDFEF9C0EC719A78915B26E7E3F381435563F650EB
-7587F11CA3B14875F6B1D817C1EFA0B89C85B888E8391C74D77CBCC6A990C36B
-1062D049E20876B40CB030367818A3CD3E2CC354CDCC9A0FBB8DFCF7135FB2E6
-A0BB0C3A441CEB8D5FE849AC7299431DEE27CE28B33AB7E836D6958104D1777F
-8010546687CCA23DB48E53376A446136F449A92C07102315D4D0A897521313ED
-1A3A8456A70C16EAA50A3E67336DC89FEC56AB54A579EF264377A103939D5EE0
-0A90B4F20AE1F2511469C34B5984A04D5AB8A162F18DBE4D613BA1C1C85E994F
-80AFE3C18A045148018045C63376CDEEFAC53A55DA67D5980E3A99CC1C981FC5
-5C25CD0A685E3AA6F8C0B8FAAE157DB91AAA50A2B5F7D8860624F29B8DD87606
-C30F84C33D802DD5B95E090BD7AA4400E090DC1913BBC392D7E5E87717AB14C8
-A031737560F3D132BAAC0D6DD88C586322804BC2D8C505973F015F7662571FD1
-C89CA0281CD48AD84B9ED8D70D240A4EFC2715DBE98E545B987AB64FA259D81F
-3F768326717675A3A2E22F4EEEA22A5201797C6D5EC644318CDA28A2C3CCD123
-B0159205FD52E1F9A60A69AF7B40C4F7189FDED20EAC3869E5F53F4955CDA0C3
-2B06D72EA2B8CA5F0B557E9A36B8E9BE7EEEF96B5EDCA6F79F53F83234B2BD45
-6B3D631B1C9CBF7D283F377177C60B3D65ADD945D31458164043A17B8DAC8409
-B4261A4A0EB36E18BD104A8E66F45C3AECC07F4E8FA9F3D2A27334F95AB79BF8
-06C18D57EA745116DE0B36C12B6F5411A9805218B5A31731CA0A35D9AB6BF5AD
-928726A6EA61E0B69FF0F4FDAB2CF5B222FBF9BDF4F89EE47373AA3944678328
-1EB230EACCEFF4243D6B4F8797482DAB78C1A053F2800144A4C76BB839E536EA
-2D4DCEB625DC0F754EED8BE3FA53A7AC3ED17C92757CCCCDCBE21A9D733291E3
-61235172F117D4B8305B45D7728DBB2D71411954EE599B0EE786D7603D61CABA
-AB241062BE3776FA150680F9CB8784FC7A94790FBD2922772EE886254B59D0C7
-4A4DF7A2C1C4ADA1DBC51CE27D3FFF7F96BC5FF7382864369536BEB2EBA6DE2C
-1C427990F6BC84E92CF718BC6D4CE9EC1F2DDEB8637AB1FD673C5BCE1A090146
-171717B39B9A83F2DE0B79CB1B836390828B3EB6DC397AADE45B21F55D1A3583
-C3A5BA93A4ACC08CCA4DB80B78AEA6002D80C5513A705E7232938D8423FFC72E
-1B96313ADB255D43E2676DD2B00B51D116A328164BDA8475741EC234EE6581DE
-06162F006405D6D823DC47DDD14536BB530D132975C0C436F08F9243F1A9AD16
-898823B8E2739B4428E62CE0E41C291157F1886BF937B3D3B9B6DF0D0EAA38C7
-D7F17D962490AF81157E76074422D746EBA97ECE803A205B482B03FB06D080D8
-05CFE4868E62494AE445824BC127FB7367DD9F70B2168F2B8CA0CF190BB838C0
-67563169C8454E5D0DA086467F1536F5E8A1E4D3E727B1688F745FFB4F9E56CE
-4DF06341FC891C28C943B570A7A38C595E07707E41935285DFDCA777CE731DE6
-B46EE9D1C3D61DB6EB8434F17B15274840BEB842587F3B9AED05B97988E18380
-9095E88840F703E9BF997E8A666691909635B7CE630194962E4183C3838D9401
-260A743CC9A7FC4713C309364EC95DE29F6D6E1FE8C348E25A878C7133EEA500
-102E3952322F6337A44AC6070352D2594952A1234035388F5E4A9BA075B48F2B
-BB86E2FB3FADE2F7F18B865A1C5CC0DA17E34F9F8127A8D020AF96CCD64B5BB9
-90D31E59E4B8258173740252A2667C765A7567788E9F64EE4F71E704C8F7037F
-43BAA8BC434FD9680AA039F1DE6EB2DA3D71B47DF439558CB59EE04921B2E186
-4F99469C7FB363F4D59CCBEEAFA09987B5978A87A278F8D21AE383FFC43C30B4
-51DAB7F784178804D2BEB5031508FEB0ED5ECF846D99F9AF8DF98647196DEEBD
-0EB21449B5C2CE51E49A07044356A8C6C8B9C3F3E00BAF3B3C58A4DDB1BB6711
-98ADCD04C76640DE3524BD0622A445AD11BB43D8C4628D25551C686B0F7FB8E8
-1951064B4E1834FF5CAA8BBA6DFC1B2F6E8A9A91B0267E96D73A17951D0CB96D
-4B8F9CCEF3C84EAEC4CCC5C1E4B7D14AC0EFE5A42FF7077083405236F7B6BE76
-A141F2C6ECF4A6CF8E183B5D71E7EA9D370D20A8FBFAC9AAB39662E6D1DE6DB7
-00D37402DBAE9347BBF0D65ABB6224F5E5DA0FC52A80C3C2A0580D065DCECE2E
-FE228239DA44AE72F8730B607591F517CCA3BA9D94A72BFDE1AB707BF3B45F5C
-D26C958C757167ABA99BDE64A35AF5C80A1450986080788AF2E70979C4696B5B
-057E03522CF0DF8CFE4F4ACFE7114AB435241AA75EACFF4131EB35987377FC45
-32E001C04839E46FCE7C80C0AC8F720963876CE7947198C2DF6AC8869E15EC16
-D6867AC12F40F7FC462E55952C1CFD9B01A7513A6C0D273E88B504BA4429CCFA
-E9B65D65F8B3CEA519DC3A48DDF2185AC8B1DF1AE3A3115352DC3C7E17413B20
-5E111B8140646020648F9677A27019A909954D5C4C02366F97D8DE10A8EAB4F2
-D6F6EC7137544FB6D10F9577490D9588B730FE9A349A7F13641DA4F0C6A8309C
-E5BC7E0E00B732FF41483EB5A5751A722648BC8C8C7996060C9118EB00C227C1
-2BDE3E261A4CC4D74A0F20733C42AC4E1D88BA79AE7124C17057675387FD1E81
-CF24F6AB1512B8A9AEA7FBB6E53D7DAF283BF863EB3DD7F9F55C21A04F1AAED8
-7C854F0EB136FB76BB96D8503D6844B79000254377EF99CB72433AC6DB6C8CCF
-F47E4D44F2B4BCA4F750BE236F541C763CC890DBE03F39C90EF39A352FEDAE19
-B261BCCA04AEC45E8C9D3276D4B5062522F44A925B555A6EA6E5F16C33474080
-C50F068696F90B465620CCA8B2181CE92417030D00AAE28A85BB1A31B0FC5A91
-404F77036F0EC33C21773C46EADBAAFF95C07F50083319EB83205F2B8137B343
-02AC094DBCF0506C3CC757D3663A9C06B49FB9B251DCC4D2708499C877D26D03
-4FDD5735D5EB233DE2C17258DF16DF6D4974916F5A6D014C600CF7AD18A3153A
-39EF17B01F13524EE7DCAA5CCC0D80EEC526F59DABA970CB5651CD6E9E71BF4F
-09F7356C2DB0A1DFE82C4C4969DA1CB1D0AE0E263A53B8F0529AB5BF0FC1F653
-DEB838C8ED968AFA0BF8D9B7D51A645C95A415931AE587DA37213C0C51CD34C1
-66A69B1FF7DA7E1A1BCF8496AB284E326786963B59D9A09C7AD30115FFF92536
-FE458D70AE2DE5EFBC54763176A52565111C05A0E81468F58F5BC98E55C12193
-DBEDEA09AFE84A9292983E882ECC6620278E7DDEC5C6D8FCA4AC3DB1FA0E39CE
-B198CBF6204C25A8BEEFB45D53FC0E6895B29AE2F95160723B11DCFC06E34E0A
-D4D216A8148F39767D142A14FA96E7F0B92DBB7886ADFB4E55B7A7B4719AFF55
-0FFCB6C913D3D0A5287EE3E01476802F3996854E1C43C5136C6BF73ECA3092CE
-5A42AB40AD6B235330ACF421637A07B4C473FE0F8373D3721C56699078D0737E
-A90587194647F24785B302C756C44D900E0286628A3C560715D504F578890B8D
-E836F9B058CE94DACA1E8D1F985B6FDFF6A333BC8FB9E0CDB5215E2157D7D044
-56CA63DA9955A67AF2E74AA249E4F4E9A6740195F8F7F217B724DD78BF229051
-CF865DEEF4DDA79B66C410C224CCE4E887184A706A278A6E280DAEC8A6DCB4F9
-729E9FA77B7A71210D5E9FF8493C6731A2E06CCCAB2DDF2609462F7AE842CDAC
-3B330E77DE11F8933D0047F2AE7C1511D91C9EFCDA71B665F941ECBB02C25A0B
-9F93498EC1D4FF58630DA69C0EF224669A64764A2B7CE2AA28267A54EE7D6D30
-3129BEB24FDB02F234C87DFED18F99AEA42292262E0250275E3CBD337FFF75C7
-7A24D5FC81E9B92EF35EAF2C94D9DA8B7CDA46B4D5D04B05A8012549600C01FD
-0A479208058DF898F9F2D66CC5800D3AAE341037684012239F852B33353B90EC
-A187BAF521E12266FAA1F2147B524C14719A22EE48ECD5C1904403F6D24B423C
-6F2581355A55186009E57266D206DDED832CFF38AE62A7C4C2AF813A84B38867
-EBC5AB8BFC2F6DD92ADD7C25EF6861A2E858CFD9E8071A927E8A6D21F32E1D2B
-3841261A0A65453FE299AE9D9F92343FD3E59BF896BE4F8F5E37301E1FF54445
-29A78ABADC532F573B3AA814A2B8E8F3BB7384C9B1E2CF076D6A4CD12735B732
-D86A6060745C3F2259532F2F736121695C9E68DF2C492600351418EB5A898BA9
-EA56103B5E362C368671D30A51312EA1ADC0D461FA7AD0AD0F1E12138DD4EF42
-D95EE63303C802CF9323EB0BA982F0762222D2FAA808075BDC3C98E921F335E0
-A165821C5D5D94B74C9A58085EB4F4BF49D6890F31D0A36188CFE1962C14D5C9
-4E38FB3CA04CBBAD7DF0B93B54B73981C9CA5B0F29AD880B4DBCCAE5362BAC2A
-CFF5287031DA97EC29D758332CAB38B1FD366ADE966771B5AF7472B9CE45D1E1
-4C8E7CCE80EAC82E3F862AED69465CD0A5BEE34490CD77F0B0AB6283D0211F2E
-AB4E11B8C82EA079623B4C72C5F515DC6328210AF19C3A7DFE965AAF74D505DC
-22EBFBDBD9C9D60D6D78A00BFB189B951C63457EAA2EA85914C8B170EA410468
-2E73B28DD36AC2BC59970500FA332488F1B926EBEB43F37CEE560190963D6862
-0C8F7F9CBAFEA3855503B8BC04A75CA357C3415584E9A6E7AD11D3ACA0E48032
-3263292DB49F5B2D68BF08438B2DD99B53CD91FF206FBC520CA93CBD1E94AFFC
-57A10246AE461AF37E2A30DDB18766C17506A9913783A336C9DC4948E7B78CE4
-F773A12606424260A6885E032BCF4499464C12ED15E0D01A2CDC28DADB8746A3
-81D4AF22F02D075C5D2694363AB65E2383B629F572B6A3327507A5D0A0E3BDD5
-8ACFB96368A60FFF7F1FDDB27FE8CCA96B64022E2FCB6F0BFDCE088C3A26D8DF
-DCFAAF3A2C3D404B7A6CA002C9DC171B02F806F0C9B7F571B5474F4D9318A005
-AD6A983047B23BEE8F55C980A4255386BBA9B1DFC45374670EBDF72EEAB0E5B0
-A3F2940FD70CE16F5F598C6B0F6A38048F2EA10F68D5F0C6FFBC07BCECBD0E3C
-246A53B0483A0A9F1FAD2815B97CF5D3115B409DDFFEE27545D2772043025537
-3D04EFA9EF5563F3E5F6379580EFB79941EA961E77D42B1C3CACE31BA462B82A
-DFDCAE87FDA2392032FD811DDDED35864E4A85EC61B68DC5A55361B3F3B54147
-05F683DE5555BA3065BC0FF577624D6AF22120A795A9906AABFCE03E0399B7E9
-31A53030B2014B57E32A2F2548C4BBD88D112D86819A74DCA21E4F24F9BC632F
-4B6A07180796B05E1C329E3B137C476E7833F42516D71A7E6E8ACC3EFA2AD8B0
-E243EEB86E8764BAD95237D0DE6DE8C96D5A850B6B4AADE1BDE62B7A29DADD01
-D8AD258A291F98B57EB56A7E53CA2CA37E400FA52AD8EDA9992538B3DC69D5F7
-55052DB9BE972F8CACF0F1820DF5672714597EBCBDA59BB8A91F8C9D353895F4
-6FFB1301806BB3A194550C798CBA7F2E1799CC7AD8816C97F5D42DF44285AAF8
-D94B22BA2DA93B961C3447A9E36E73E62C3158BAB675BC46BE0584140D58621C
-F80E5225EFD57459055CB5FC8D17E3FDBF1355A4FA515E39663EDEAA66BD677D
-E9FFABECF40E2836AA7CF8D7438C244BFAFB343D1866A5504D55F6B5219D0FEC
-980B7B91C718AB802A8C3EF19D4C33550034D686D04385DA603A6A099C986622
-00C64E39E27C95596652640F26938C248D1FA7F2ACAF5F0DDBC70F8C6DA2EC74
-315C590692BEB807927B7A60F16061AEC0A57119A73D88FC3EACA1BE1537BC80
-CC963B2FB7EADF916B506C78F32930FA2159F23B8F9C8FC73FC998C972128278
-590F4000F567F85A6362284DAEDDE4E7996DF5F18FDD5985AA379CFC8D501F55
-62F68333676C1A750B344A8C2950024AFFE8322B86BEB28B00B1A179F48B2A7A
-3B814C840BD47852FA6EC5D1A6948BE58E5AD931A4CF3249BDD8C945CD9CC2E7
-FA20A3A6DC3D5E43DD88B1A85003CFB546C6CE4E5278D0C60DB1D6200AD5FA32
-682C9E3F4B5C95D0788CFB2E2BB042ED6BD0A9643F8B31DA412CE97F665FB356
-08488ECEA5D18F6C38746545422F700150D32D86ED59AD1F7A32D185A38D555B
-3992FE710B379B4CB6ED0612FAD4EB10EEE8B915E40545EC924BF0434AA2E15D
-E8958604E80F2EBA44CF0F3D0FA461A20BC31369FDF487BB8F820D226F1F5013
-660B935F40F6FD5BA538780E569618F25120F26CB6903786F0D38E20F504AAB2
-52D7170871A73C6C9FEAE12A0CDDFABB0D133EBD31598CB8D14A1559DB8CBFE4
-301BB7B8C811D4612F91496FCFCAB7D110639F49BE71C3478EF633EBE6EE4ED8
-B7AC835A975B2FF6684810BB0CF57BB88ED5FF8A00FD00F28F7D46F8BA089BCF
-F7CCF4DA30DEFB2330DBEBCF928875F40ACBCA8C815F7B3A64E297CF3FD626CC
-47D247CCAB9B7B772BC934F0983E6643787AE1F50502B4D6DD3824F3963AEF8C
-62353F8CC09FDFCBC69B3EF51F1B2CB8907B8E26E8792E22DC46B9A9F2CAD94D
-0916F6FB3F189B5621D374878E636EFD089E81B7DA5C7F67131B267AAD36124D
-E3DC8BC08B7FEC1D8EFB873798613528E04B694780E2C4AD132B212D59CBCE57
-EB0D92B5C590ACE21F79233FF8FAA9F03141F84CC59AEAB1622A76034539DF61
-59DF9E448B7DDDAACBCBDC996CA2A2D2281A9FF9DC3085FAB099E0538174DA8A
-480E6B2C82DB804FF228992270E1039CAE24FA6C7ECCF47FC8FE3DC93AF5CE5F
-FDDC9D104966B8C098232486727FFF7D7174451D1C559AB0AB4E75BC64785F74
-2569C78EA16F0F516CE3065C483E6923656E924AD61027D7B2D33F2FD97B783B
-D7171AA6C02534543F76F56D0D397C8E981C0D32DF71845ECB1B0E8DE3A09FA6
-A232C2B120A80FF68B779710493AF2EFBC22090C190AF97C4445BCB7690518C9
-4E59517C36935BB565559D1F36A1F9B6C9B4773265EB63902568FF99E7CDCC8F
-9AC8F6A1130294527F59187DD7E69A0412D5BD5AD4E1EE12C5A4A5E21E460D67
-16A5F7279FCABCA3BEA9655A159036417018139F31C43D2B50F1EFE12DEF52FA
-24BC855751201D413AD322E884CB4BD220725C53B4534084958FB53862A9CF34
-996E9491B848A9827D1856E2F4E83BA71C15C2132B64967509802798A11089CB
-47E0474D0D62AB4BC9AB39B7B41F93332B2B68BAC5979BD46403FA4B079B20F1
-E36C5DC8CDAAE3C5D97A289538A8BFB7B2F425D94FBAB3632BD44064EE1FCC01
-CACC75076BA87D29A4079B24C20E5AC57645B3BBA1D67FBDCDEB134FBA62E011
-F50B8728B5DC0E0517EB39551A6DB31E332CEA857E8E5FD62C8204EA4061018D
-83B9A441D730A05332FC7FA9DD10C9F785B14F4A6B9CD06CD0C3DE492FDD9B4E
-BFD04C5E38B10C2D12B10A1475B753E1E4906D4EA72C7F2ACEE0D69D0FDADC9F
-982B151078F96328E9909A9C39F282028EAAA4CA6D95938D8BF9CD1034CF0501
-9AB0CD7B19AEFFE54EA25BB0418DB5D068B68DCC68B45B2027C5D534B9D66984
-CA6ADA7A52BA677F8DEFFE844656347B514ADB52AD0509FC0F9986D8D33311D6
-C014E6B8BC0EA58721D9C4D92A55E8B973FE59BDD6DE5451280ACFB0C2FFF54D
-FC5184B2390C02BC342872366B98CFDC692111A5D2D5322AFED9C4049B1A5276
-9283F09F362344DEABA5B5EFF2748964C3D3149A9DC92A4A7B66E1C8E3F2D3EF
-075DF53BFBCF1790B255C7FA87B398CB4DCFDE1692673ACE41A49921A00F2E96
-F2909E3C8DD7315CA1DC44A9F504084BF32B442B72566E9041BCEC2DCB2EEC02
-532A7864D00CD9AF4676C0BF7ADD7F82AFD03E94062B2297B32EE22EC57E39FB
-82A52D9E53F446CB7EB9E1372CF30C269C4CE5BC6ABED3887C679948711CE525
-FCFF55A15AFCB88BD9B03DE2D4A8FCA7F1A5F75124677237E667DB4A19ECD57D
-9FC9EDA5A7DE854C8C862AE0133C993D19643BC7ACF722FFE9CBE54987B09E21
-BC24DF15E8669F1B89BB7606D791ADCAB5747F29DC814A33DAEA5E7E239F9ECD
-08DA565A271B15BB9A0201B80999D067DD96AA2BC79B4C5FF94127F50C5C62B9
-C0F805F54C5C11FE40952D962624DC8EB57C6494780926F0266AC161A7D6538B
-5E536518D99D9397B37199ACCDC7E5D506782ACC9E455A4FF2EEBF6E32804402
-6CD996ED3FD8D834B7BF693EE569320688672BCCCDB2CDC454A54D53D2F58F99
-B6F3FE0AEFBEB573FC054159F73E5806B9EDDD6CA00B982159CAE4D6AA001322
-1EE16D0A7F1249277EE4A12249864167F38DECCCEA91A86514425C2677589A51
-CCBA755E7A82F864AC991071504DCE6C21253F3C952C4A8844826D2682168573
-DDB07F5E27A4A5F5DCE16120B0AF579C546B73BB3003F0821A071EAF4DAE7BD8
-79789F0F4B9198716F023A0B79E021F588D0E60E8B1BBCD4C4A0065582AA89E7
-9097077CAA4A35D34BFE16290ED3443AB1ADB5468D78C3B3064E96BCFF71EFDB
-BA0AB8A4D2439A51F31591622B7766078FC2D5E7D6F727898A197E818992AC10
-C6199531D60C8E8B10AE0974C979DAF7F30EA87C2A52A2394D49C8E76515F861
-8B596E17FD9B599DFFBA26C8CFDECE79DE4F871859DE9D0682A68BAEDC176967
-60F808C7FEF13F630E9307BD239914F8774A1B7072E27EF5D7F1DBB7AAF3D0C5
-AA448D07F6808A5A72D5DBB9EAE4B9D906D256C1C5691386EBF0365DD89DAE47
-66E2C29C10A1A3D1D17FFA107C5A8EFFBC7C8431A12536B464AC96CFC79BCD12
-CE09467797C6C73097AF2A9A948244FA7D310F1EF9EA900DBFD80B822B5A7B1B
-0AD222516C5BAA35AD8588597FDD75721BB4E23B4AE1F79835C8D6766A18CCDF
-F179A2510DA9DE4D5BFDFE44E315661D93E1634E7F043D9A04B6428D3B9AE1C4
-F22CB3A3AC1978C93E0DDB57311825AD1FD13AFCCB67B2391E967555F9E3A3B2
-4F453091A719A0CAE3CF514BC9B68ED65E928AEEA1E61BC9AEB1EABDE876522A
-9ED439A92433CA8A95B441D19C1236F1B1EA69DCA366F92E4C3F0D4E1151CEF9
-C083470E2F8202C06EDE655E14B239D6F5F4458E30414DC9A247A10932BEE664
-946450341BD1BD5C3F5A6111D1BAD32EF1EB5ECE513335576A9089BC3DF2A586
-7CB8CF140A3B9D181AEC90CD17999B37F1947926B2DC12DACC6652DB4E399C6E
-B878862850F2FF07B04A16FF88E81D97AD93BE222C39C9BCFD0473E04C26DA09
-CEF8BA97B832790D52092DBD362C987D15D6B3E586
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-{restore}if
-%%EndFont
-%%BeginFont: CMBX10
-%!PS-AdobeFont-1.0: CMBX10 003.002
-%%Title: CMBX10
-%Version: 003.002
-%%CreationDate: Mon Jul 13 16:17:00 2009
-%%Creator: David M. Jones
-%Copyright: Copyright (c) 1997, 2009 American Mathematical Society
-%Copyright: (<http://www.ams.org>), with Reserved Font Name CMBX10.
-% This Font Software is licensed under the SIL Open Font License, Version 1.1.
-% This license is in the accompanying file OFL.txt, and is also
-% available with a FAQ at: http://scripts.sil.org/OFL.
-%%EndComments
-FontDirectory/CMBX10 known{/CMBX10 findfont dup/UniqueID known{dup
-/UniqueID get 5000768 eq exch/FontType get 1 eq and}{pop false}ifelse
-{save true}{false}ifelse}{false}ifelse
-11 dict begin
-/FontType 1 def
-/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def
-/FontName /CMBX10 def
-/FontBBox {-56 -250 1164 750 }readonly def
-/UniqueID 5000768 def
-/PaintType 0 def
-/FontInfo 9 dict dup begin
-/version (003.002) readonly def
-/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050<http://www.ams.org>\051, with Reserved Font Name CMBX10.) readonly def
-/FullName (CMBX10) readonly def
-/FamilyName (Computer Modern) readonly def
-/Weight (Bold) readonly def
-/ItalicAngle 0 def
-/isFixedPitch false def
-/UnderlinePosition -100 def
-/UnderlineThickness 50 def
-end readonly def
-/Encoding 256 array
-0 1 255 {1 index exch /.notdef put} for
-dup 46 /period put
-dup 49 /one put
-dup 50 /two put
-dup 101 /e put
-dup 105 /i put
-dup 110 /n put
-dup 111 /o put
-dup 114 /r put
-dup 115 /s put
-dup 118 /v put
-readonly def
-currentdict end
-currentfile eexec
-D9D66F633B846AB284BCF8B0411B772DE5CE3DD325E55798292D7BD972BD75FA
-0E079529AF9C82DF72F64195C9C210DCE34528F540DA1FFD7BEBB9B40787BA93
-51BBFB7CFC5F9152D1E5BB0AD8D016C6CFA4EB41B3C51D091C2D5440E67CFD71
-7C56816B03B901BF4A25A07175380E50A213F877C44778B3C5AADBCC86D6E551
-E6AF364B0BFCAAD22D8D558C5C81A7D425A1629DD5182206742D1D082A12F078
-0FD4F5F6D3129FCFFF1F4A912B0A7DEC8D33A57B5AE0328EF9D57ADDAC543273
-C01924195A181D03F5054A93B71E5065F8D92FE23794D2D43B233BABF23DF8DB
-B6C2BD2F04672F9A3B7FE430263E962F16A948319C51B8ADE6E8A80D3D88023A
-6DEA4D271676C2C8615C4A0EA7DC8F6601610F398673A4D4B905F49EA868FEF6
-39BE073001A36DEA6C08ED51452F062B971740019692E221F4455EDE46AF24B8
-407A98B791F6AD525C72C09776247E194043281D04FE1CD1D8AD8DCEEC3045B4
-F95B3B41CD3300768D8A049815348BD7AC1004F5500817E3A267D694AE108BAF
-285B288FC5F28A03E9D34FE5D9B2F9A9BB26ADE66B1CF8EB5BE606E83D213C33
-DE083C20D636EF780E761944FCE3B8A950B1E6E7568F33B557C6D59E0CEAF185
-53E609A4F58AC4D5269116F958C4D115C44B5A6DABAB79D3BB6E60BDFCECE108
-74CFBE258779F32C80CD7D9A7CEBA50A0966BD9961F71560119668C4A0C30A5D
-ED91ACB30940502B24F33906D6E0F16F81DA87EB6D7FC8B7853BE388C40D75C2
-2CA8F94713AAA1561F5321CE97997CB4AF0E37F44E25B0F73CF4986422B1CD89
-8F861CA623004ADB1C28268D7F8C484AA10C9519B6AEADC95AFAA3304D60E85D
-718B2F67D2B734095E5A92C90785252C98067DC05137BE735220BBCB7C341D61
-C4B98BFB1EAF883D38D7A93195A059EF82B42027F23B6CD633231D704B891A9B
-03D11A646F13898F20321D7BC150C63FD6DC6BF9CAFD8DA759E95384B729A0B2
-767B9F3E55C682F7A248BC1184F7D294CFFAE0B246DFCC8F215625DDD4F49F09
-FA8D41CBF4A06152FEB152C61539ADF7E70A4D23AF8267D25CE3B12D39D62377
-547E2528D18DC4134FA3BE0437EE0B3509223D71F06D44C6227D62BD01AC0A2A
-3EDA975E894371C07CA1027B102549A7D552FFD25ED2DCC68E29E71BBAB43C62
-57B0BFC6A953ABC2EF703F35D112F6B5460018CDCEAD17F149DBE5B52C2B9E10
-9818EA6D97C8AC884F6841C9B600A7D868F59C1D80E98DE0741D06D69858EC84
-1B33C6C9938B7E8A6FF6C12AD456EECBD3EBAF0D7331536B9F6422019FAFFFA4
-822E79D6D89D6366DA636CB708894FEF904F366E295F1CB808E78E883913C4FB
-1631248ED6A7CF1095C0C61C4F05E4B9DFC47533A5FD24540AD71A0E2907B98B
-28085EB88ABFC3478C9644594C7DC4244ED5A7C1CA8D960B65497D56D174645A
-B88F12C2CF0A807DA314017984CF3C4FB7F47392A651EB9CFA961B28E2989893
-9FC4D97171BD5338673F5D1CE2C3C08D48A1B77769F01D5058236C655FFD864B
-80E28F900191D4EB349AA5E400A7B0A0FCA0F3E79D7A7C69775BF754329397B7
-D18B20B2683CBC4A19729BA878B3C17EBA0A7E9EE297A5B67E915CAD92C8F356
-582B8299DE6A58E73408F525F7EA895C48A8F0D626A06A96A50348DFBE479D89
-4272576FBB0CD332193D28A8F11503BAE98F8E1D73CF5BCADF23DCD4E6586ABB
-323568F5A34E359661074D50CD8D9DF27191FCE24F10225A5D721EFDE2547E1D
-CA998077D2340B1A4ADFFF570AA677CDF3305D5E3A394BB1626EB35074D4EEAC
-2F037CA2EA389F7683FD17A8E07C12B4CB3BA8C249C9B12D297C618009F76717
-0EBF5F2DD39A6BDA10A2E5A811D4E190660F5FDDBA29201B6F8042620397AB2C
-E59267A7247B0463891831A6F40582BC3F614E5167B646A8F53D8A31717DD9A1
-9034034E705BA7884F0E0738307AF69D3517147C282747F2788462FDC4336A4F
-9CD222908401A25F0A1F7B13B8DAE622DC965AD0BE62497420B70C04AF432237
-E0FDD043456187658ED93B0F9822A3998511DF05E59CC85B7B9992CA0CE3B814
-9723BAE70D2631F32B4BF93511F67179FFAD2075E1591CA5907A4C67701B56CF
-A5E5B02EB4A842BA1F18D6864E5677359C2FB4AF5BCBABAFB053F230CC129B45
-8D15413F736EB07C571521C7DE2A13F2AC1C133D491B0A607197BE9AA1231D96
-BED7968788246B2E4D2BD330F802810F5BDA3760FEA5210CFC6F54748FB1D921
-5CC3624BBA5B8962AA7D94159651589540B17CF7A785F297264F9C1006D36928
-6E2756D3B623A6087E4B106FBA76255903C624C07E18A1AF4E185A533C640711
-86BB477A906ADD36EB6C8F4A12BC2F01B2B98412E4E105977640930CD998D990
-0254A1E5E9843B7A8ADE0AF6D5871E6D3D666465AE69813A2E26333213FF6713
-6F08D55A90C079A56E1B9AC655F720FC22B5AD8550FFF26DA7B0C5A0B60DDB05
-64E8FAF684F3A455BA9BC9278043D79537D201D520E38750335A4C8FEA887377
-879331B68DAD6B253F4FF9981D0F9B9550ED5179B15EEEB00E560A3DB6E5973B
-63403E4E2F40A3D0B937246E9652000B917B1369741E0F913C14C2D2D6D1FCBE
-2CEC4422177C58523715BD070002EC2E13D383A1DC8C84228862B6C5D3B65667
-9FA97E175239BB7FE7E37E14B96DD7960A8AD49DF428CFC13B5D3CC22E245317
-47B5244DA97F1DF954CED2D552477237CB23D037C0DE728E26C82738954EEA1F
-F34FE497DA005AF03746DD2ACF77F6E6F2C224862A1D18AF6F7A5DAF34564387
-9E01DBFF49F8621C058C04C2B3F4F3033FF3E8A977B2CD6B2A3CA4A6C569B19F
-C5AC457AE9AF334DA66A730960C7565E93A2D373C0E3DE14646FFDA05DF4C6EB
-6D4CA8ACCA3C3115764F77B842581760BFB9E5C0EBE55308B0577A8F4D968CE2
-BA3361D79378D451DD150C34D7E901397AC63B33BD7DB13C50D678F5DE999238
-4B4EA15BD449C46F262D931478F5685CDEEC4C4201FC3EFA607AFB8F27AF6751
-125DE42D2FE2D31DE769B7E7FD8CC8C5D91343B537139A822A5BC4160BB5314E
-37501F65B4FC35475FE9E03E34CBF6795AE86CE409500BD0799DE39FA69978B6
-EC74D2197C03632D3F59B85F404DB31240968FA75059B2581B101E028CDECC2E
-7E5E25DFA106E9B8ADB81E82BE9ED3BAA9D03EEB22B7B67AB1262DF6AF5F5EFD
-A5627EFEB84F3A5F92EF2557EDA2843D7D18C592635623CEAB14CC3620F33986
-410D6DBAEF9F86E4E6682054540E2B01D8FF2161F10E66851A188BC15BD6666E
-8D3F21709F196A31EE676D28A2D12639CC2E7020A52910F052E61A0710DF09B0
-064171D05611451BD24FAD64716F141E1C41D3218A8115A3D73CA041D02B46D9
-28C3D07DF0FB668E8E91409C8D0A26A65CD737C075E026AC0A974C9BE658199B
-3B9D82ED95E4646977D8F60717DA4C68767DBD7E8320D5AA1D5DEB2E6B009759
-8282F27D64F1F904830AAB501CDA4D9233FC2F12F77F0FBCC46E6B729C71F6D5
-E6F3EA02EC35D1048394F4EF2177FC5EB726DE5EF2DE7997166B8BE5B5105D08
-EAAC3481FC612665CA112D3F889A0E5B7843EFFCEFACA24A01B6AC2B7DDE02F4
-A9295AA2409A3756BAAB44608DACBB56840060037869455BEBA46F10AFC68DD0
-0563843DF111C6D34911CF13AA6023E5E899060B5EC60D0F78FDEF3E981151A9
-24903EB13ED1A67EA1977449716D1A5A7EDE1A2E9465C9C2B20A58AF02D9F373
-73E627CBF296B3A6A4670C39F3B5EA30D76F0362C81020A1777F0ADDBC6B52F7
-213FEE1718214087837049CF2AF00407639657428B9E8B532F68B631611A3501
-3D9DCA38090E227BD0D6D0FB4130EE866DB6B195C873AFD18DDB3B1E40F740C6
-B3B375ADCBBF628A07A5FACED539FEDA3379D3B60216C2EA6629BE2F65199D82
-FE3AE627D7C67270F3497AE75F7A9514968B5950E2D63C38DA240AF4E6CAE88E
-E25167D179108679876E7C80C85FE1D2BCC2EC9B88BE76A8F5736E8E6B3A9CF9
-42E58A4ECB7914865E67C1468CF66D658206830B9380FE346DC2DC4BB56A92CE
-4B5E4EA9036C177869315A2D9E6CFE97E3BFD7CBE0747D40CE5E8A3A0988576B
-8AD2B1E4314C0D8A0CBCA08844A49F7E054D31BA7543730C0A7390BC4A288D10
-CE29E389A4791305D3AC1BB6F77C805F1032787306F78FF76A20A9E629899F6D
-13356768D33D7B9E294E8CD50CBFB9CA02A193922BD9B4372C912D1689B6644D
-52CAA30F7421E8114D077288119AD9514EF21E5B9989CCE2ABA0C12549FDF493
-FFB39736AC9EB72DAF45E4EA6057527FA9F5AA0A1A3F03C12F7482E465C766D3
-760DA7714D56C91BDAED507A5572BEB51A895F8DD3BD5AAB042650154FC7E4E5
-5EEA6194DF73AC5EE2CBD4EE26E29B1D2D0C458B4850BFE842DDF2EBB4E2A25D
-C6A11CA2D8F346E2B736DF88A3D57BC0380B52396A6C039212699F5D3342EB58
-0C3DD5D01D5078479BD9FD10C07925556C0AB0F03606F33796BA72074549EDA6
-E33644F62CA35207D7421D2727AD8419AD1772789D33405FCDDC9286BC34C974
-A52297F5BBD2E541E8BB473F733AE5097BBC9D5FACF18DE4173B4711E28B23ED
-16E0A6746A60F6FF903026A3900169EDA87D98396E762C2EC963D89197B8CD0C
-25244806BE7CBF46BE60A8F9171731EADFC969C28679B025371E5572E52A0EF8
-B3FD9B4638D03E20BFDEC9345E70B8166D38846DCA68E0D0B4B53629C7E7620B
-45E0A610BCD07FEF8814CF915CFB11119F42407D1C6DC1E6353451D40A382C2E
-C74DF2A4889ED5A3495C3E973565F7178CA190D22C9693C10EB12C1E7A8679CE
-4AFECFC964CC98111BA4ED2BA9B10292A71D5B11870EB08EB483922CE8628A06
-05E7CF6DF93E112B60EF888AA8DB52994EC33DC7277D7B7A4F913AD30257261A
-D6EE80476A9A8D316D190BE6CE0046CBBCED365AB305495284FA921BE0638E00
-63DB2AA4C5F163340BCCD1061B469504DEE350B82FBE1689C1B65D095405614B
-35997D6F0DACA7190D64ABA351705B17B23FE2EE5996FCD607F49F54392463EC
-DD5B944A4B82FA2BE3E75E2946D483060DF99277340B0AB65A2042AD088E2B75
-BBDAB869D1940F64B50D25078519D18748AD64AC5615EFAAF4F3105B0111AD40
-70EE173ABE6A4ACE486B4E5999158A4377FDA6922FAA6E9305F48570D14BC81F
-BFF4C663E1EA9D1E050534F9315A663C4C5DA52CB02EA6408AA473C32CB0CD71
-169BB43C0508A842F400240F0063243B4C459A1FCB3312C41C32ED0EE87F591A
-BCB6D5D3830AE4645CB4D40336DB4AB6540B52E70E1EA415CC6D886827EBC5B3
-EC35CC5C136243B0C20B3C603B648B132B99D05F9B48263ACFA59A856BE74441
-FECF5C6D1FE9D1F4F9942F460961901E16017144C37E83C6822177B2A6C47ECC
-6C47A1104460665E5BCFCF08874008302750EB991CD98D0D8D22B921F90B99B9
-05EE7C39F2BC2A7798157503743C9F2F267BDBE2E8A4CDA7317F81DBF8962E1C
-EC02822CC7F770FD4D08D335904375BF0C6DAA0510771627ECB9EE69C0F47D30
-69A87052989DF80D9F4F19F75B070C3689AB3BE0966453F9D56CED6C1745B50D
-813AE6D7E44B73423AB3778ABE4CD2C4DF40E14C5A426043F7057E2DFA2DAA70
-EA6723F1C7967FECB1E7C1C0CA283334163FBE31C32254490170C3513580A552
-19A5DD75E6C4ADCB12D33517A03318A6BBC7E4214266E125140D8C40F78A0340
-1F95D9FBEC4DCC55B71E89375AA94B0D55646F6C069561480407D0A3AC127024
-D7D1E9ED6B599A2A8766B8792F46D35508B66F302D289405B101A3C6BADA680D
-8C56E2A00B766A4CB155446F862FCF17537A2BE85418E20CD77C4F1F69F70BC6
-17BB5DA8FAA876D0E8BABE273A19C04A8697B3E3CF4725E2C77C8761A9243F24
-96F8AE96399996001A57FD75106745AB4646FB9C6421F1D4EBF3BE533BD11AE8
-14BFBD6D308376B26E08E4ADA490DDCCA94BE8240403D5EB0FE3549061DFB668
-4105B4FE77189546619B6BCF3F9723E278E98D50A17DB8A4C46744FA21760635
-5B332689316BD17C966D466AE737FE3ED7ABC443ADD88D4823A10BC9747ABDEE
-027515AC353A420523F85298029475D8BFD83A2CD00C02CA07974BAA581D2215
-A850E6E4C0A5E17E0EDF91C63FAC18C70093F40FEEAF0350B403E2806F4EAE96
-BF616A805616EE55C4657418C26CAF54187A6684821B86A76F15088AC4D5B551
-66C3CA8DC61E9810858D1204F899C7E3A1754F483134609F6EEE6364B1CC04FD
-92C86EF194FA3249601AD722D75D1D395CD15A93C768EC60A486AE885683364F
-93DA00A865C1035F913FDA69E7D9A0422880FB81EC23C00427F07A5EA3CCB613
-83C859958AC53FAEA26A6BB39ABA068863CCE3D447720BC31A5136E08EE58963
-093AF587A72112D55853A1048A2B1695DB2D7F13CC924F2F0902071260C33ED6
-30893A04577C0ACF0681C0FEC23E5404F844A83BB5A2F8DE1F0792196139993C
-1152094BC36A6AE5BAB4B8281E506F485F0BAEEBBE71E174B7CED1E52A8242F9
-DBDF3E0FBA296538D964EB5B7A4E23B1BB0F59872C9D4FE8498203E3AC08B71E
-D2B965AA6CD5D20DA6C83FDC86F4A5D68A58A72C5BB9BFE9BC755C56B24025CE
-6F24443D3CF32CD711D3D94C7C1DC275DDAE3341D840090F97CB6CAEF274C94F
-9F3BD3AAB3F98BA8A7B5CE5E48D1462DAAB37BEB1C10B410E8D33FA42D898183
-BD4F807112D78AA94509E33C179BF7C9E82E55AA7D09E128A0DA06A330CF4AF8
-5DC861498CE029CE8C1BD15C923A708F2E7AF98E4F7B34212A0CB417553C86EB
-6DD46B0466F1A21D29FC5111226794ECFCA5DD4240C0B8D106CCD7EA6F03E133
-BB7733F055D6FFA04EF5C6F872B4FDA3E42F0F036C4825543D75682ACF71B548
-DED160ACD05625274799D0AE201305DA526E01A3D2A719B1B15C05CC09467F3A
-5627860C0F36C503EE392E1786620F3F2287AFE56634E03566B9B1F537FD92A2
-913166228791871A8F8CBA1A1DA634E8224058052A10FE1E67CBD3FD21A6C07E
-243CBF58BDC78577847664EEA5225EB8D6679AB17C563848A9D4D58995EA3609
-51C1443B752A070D9872FE1643F0677019235AC25DC2B29169D38308F2170A1A
-A0FDCC59E6602197D2815B914041FFC7106DAAAF30CD97400C6D0826A40385A4
-C8520119A065CF32CF2FC5FBD8DFD29222528A7F96FDA533145846B3428F8239
-E50277C366418D713F84B12A5FD4F904DC13DB1844A391FDAEB97643A6FD2945
-942FD4FC5A4A35E184F23304B8B4D93D0C37EFCC4E106D4FCD0DA3E5D2117589
-3FFC2BD1D121026562C55C455C3585050B9460891B006F62D9D9B66695C3D348
-A467C14C0256FA9621CB056E7CD389505194FF463BCC4010897F9A690EA87D9D
-BB3ED4C174FBADB8A4744C6E4A44D773967FD703EC37672F9993DC48BCC8A060
-6CEFE8E6B8F10886E15BA0466AF410B90DF0020FAB88BE493606B6A734EA85BB
-926950EB10D2F2CFDBD182B0F133809612CCF6ACCAD049C8005A42FAF78368B9
-E7684F98DE421BE0A3BC0FAEE024A7BE67E15C8394F17FE84DFD8156C2A3E94D
-08259E15CC657E8CE3088395BF6B5F825764E141AE15EBD186DC049261623D26
-8636705E06C6E4A1F8ACAEA59F91B042DF5DB9C2AB986A784384706A43E5F18E
-42C29CC1CA86D4F247B3BBBC89F3633EE074DCA4AC15B1E33EE4822812A62E88
-C32B0AA57249980EE17AFC1346074800FA529445D18649A0475246A25CF325A0
-BDA06AAF392FD455218B13D9ED577D51A9500B9FB7860716A8E2FB3A8C4BE3B3
-6656C6A5653AEF00184020ACA0BCCBF48BE3BF91E11C8658686C89848E714E6D
-DC158DCD1C1BC03B83FF94C60B1DC71CE8A86B46DBE661C9F8F4677F8A2C7CF1
-E41A91EBDA2304735147BE66CDFF2673F09D408297302124C127F0B35690CAE9
-CE1679120CC4D582FB69550AD34A047DDFCD9D411724554CCED753DB52D6AA7B
-22B0C55EB698ADDBB0F8ED15C971AEF113C74B9E25DA29199237B98DA4023665
-C2A63A837E4CAB38F8DF37DBAB5DC80C0C3FA72C8A70DC76B5B36B2EEADDCE74
-23CF794B66E4DD3B35BF99893789063BF7B01D5F186B2FDE518B2CF2EDE51F81
-38244BC64548AC3433A80B86D6A0CA26D77F403C06D65B7394BF1FC7D06D37A5
-E70ACD844E3367DE4DB71312CBB85ADD21D5A1F99BB8427F252D90ABB66D7154
-EA5AF4A165DF6415A0880AE784071E6B3E2101F0B663DE14DB1ABF8B7CE0E6D9
-D24F9CDD9F80028D37C9CB4067A28D41E879AEFECDA71F649EB3C250BFF809D8
-1E427E3BF24E85C75F080D93E0314883988B3A4A2B72A1B4A3D2189AB6ECFFBB
-C58151AF05AE335200711ED945E18B4BBCE24A8A162BD9BB26137253BA8B5819
-41E759A7CA7CBA129BAAD438E87189F2F6AE7C86F4EA099DEB23705A500332A7
-4F141D8778EAF3910486B2EA25AAD16B60DD804D0E5BAB0FEBB77BC95EDED08D
-B8941E040D99E8F44E70FF842306ACCF65C0AC9673859DB9C3A724238CB8CE62
-255BAF0145692EE3B52643A0DE3E667AD03EEF6C753F57E34AECAB0CFEC7B07A
-150D7151E57BB3A026D50C7A88DF5F480147D87DFEFE463F76122EEB5128796E
-46CB0AF4B537987C2ED552B37D83F393222659DB735F2A293159AD84AF082B95
-6F1454471FC36D805485D619D58FC53FBD6E3F72660ABA559B91ECDEFB267268
-86A75650C3919962B0139409A29F5E3FA70B901CD5D2C49144778CFFF1D5B63E
-099C92AABDAA73D54689812279C95FB7A4F7E840DD53DD3197A4E6D3099446FA
-C0032FD40411E8F3300A8A8934B5216B01D916D41DDB32513DC4ACFCEFE43D6B
-22FEF13D3567B047C6B35C477ACF2E172701FDB0FFFBE01DD58D7E54398EF4AF
-DA5A404E194BCC39BEADEE5C76D7CD1E602793B950256F25871A9760C80B1EB4
-D1E1179C390BC240DA061C9D539B20F4FCFB72DD0C1E860DEA2988E749819787
-F04BA7A9CC3EDBF9CDE46895FE31EF0F8DEB63E295E8826BF920C8FEAE3B2080
-8C98DC43DB22C6537028798198E2D3B0453ED725B774686310F635AE6153D9E1
-8A0514882D4CCFE9D2D2465513E42E548F64A50ED78AEC9D62E0F9CF61EBFC9E
-E8832D60E91796C916FAFE58F51818B80BBA52C1C06D94E602481654E5378C8D
-137E3A872753CCDE4B2618C031CFB13EE91C91335441C434296DDEF61CDFBF8E
-8FAF25DB3B6D6796FCCE2711938D605AAC00F0A58DD1A03FCE8732DE541E5E8A
-41FC87E1FCA5CD9B5E8D63E7A7D6CEBA67D8A83EAFCF490DB7185AD55ED0F43F
-9A1290E91C463895BD12E8A831DAD661E36E1B01ED4C112B8E1D0991D0294BB9
-A13B7E9A8835B12A7133E834379B3477DAD425B7996592FB0395E3B4FEDADF4E
-23A07F6C0E1387DD54F5C8BD071C4E9E4CC98BB16FD06B69192A2146790B67AA
-56FADF3E66C9DE6A975007BF6EFC3BE05801B2FFB32162A41F22B8CEC7D01555
-1B07AAD8C85C6196DC28076CF4C4A1C4569E58941EC067EC4C03A2F8D4D19690
-C2AFC60AB75F8A618D455B3B13A9AAF2BD7442D393B3431CDD133C7C3BB39FB2
-4F9C16AF9C4EFEE51EF298B5F6040755C8EC13E0CB4A7EF88E3592E577E044F4
-2EC01203E8C0EDE2D696E60DFEE5F15D5EA092DCC4D49B12ED573CDE6BCD32FD
-6801B199C3BD68C675412849099612EA52BCD504367D0DCCCF62D091D5276CE5
-65DD41674FCE08A600644BA6809C10739E3DC03011481D2AD6D0270F9B030756
-2905FC6B07D20248F857B32920AD49354FA7A748A71FC9BAE2F5714E57C8F6AA
-9362E8A8C69E14731135956DDDCE694AA0656AE18670DAA3BC88E7A85599FC79
-4A93D7F051F55968F63A8507C386FCB705BBF46AAE7CE33D950E79953DDE9F3B
-04019CE057473CE62550F2DB9D317DCCAC277B9FDBCCA8E99A035B26D05EC9AB
-5B3FDEEA5E6B5F589744DB14DA1B182397CF03F07D66C46A4BB5842DB2F4AB03
-FD01A2657AE0E24179E719D6674DBBB512BA97E4085C23730EEBBBC2D1323B23
-9944FC0727155B6A248DE14B83C7B313FE192599F5C1BE52AD65C5F78B048C00
-28AFD0E5B70F8524CB12BC34CD34C3251813CE12B7620D9B713FC26F35AB339A
-BB48DD4EC07C9F30EF7E85931AED5B2CA6B68415E301B14680A3B9650D699C9A
-592C464FE65352F56E7855FEEE8886025336AAF350CEFFCFACC48629586C7D5D
-F306BD03A3C8BB99996749691B0E9C8A3C32C3C394AE9B2E7E7CC48F7869C019
-717E4F7691688FDB8B30E08C9681BAFB0F0EC7233746DAA9EFE32783C300FD83
-731BF72F6C13EFF7AF02A722D5BFA4EA491DF016DEEEC4AA85D17812F9302EE8
-C0D3169B31AF7034155870747FCA1150FF64B719550BB63C46244F0115F1CFD2
-7B102E3AB251EB9FD654EF7057A74C206BE178320D01B4DF145D6DC515C88CCA
-36F894B4EE4F16964E6C44133145FFFDA237FE9329F03A34955CD521F35DE66F
-1E96F90A8FB2B785287A4A6D77D423F8B82923BCF82ED05DB98A2EED951E7A3A
-24E661E7F98C07845CD85D5A41A317A9D1F5F14377D75506A966334C622CEA33
-2147C7E17F4E7D1A3D592C795528D30A8F10854D497B84048CC3954B44D35852
-7B20D9741AE93676CA3925E9D2221524FBE68BED4C64FF1B61A76FF8FEDDD552
-F26F829E105E486C829264B058D390127F6F40CB8387218CD94EF127847A48B6
-48FD0B691D5E1AB0CD9B4F53D76767CEBB5907ED1D486993131F24D58247DE6E
-D8D91F32EBED2672A3B75FACE3944869DE18407AB99EEF38F110610C982A4797
-32DB1F8AC46237680ABAEAAD15FCC022B7E44A97CCFC95552FB1189648FCDB9B
-4E11514A957757D2A7DE972650DB9E7822A7E76D06CA8843CEEFC991073DC00B
-B1B12F5F1FD47AF9F648A4883EDE733CD79552BE2C55747D7A733196FA6DCAEB
-E4C8059F524810E76A41D85840139298877221F8DD695404E083A59089A726F8
-627C03F34D3497CB9A895D5B84664934FC4D65BC6B73CF85EA4ED9C2FA5127A5
-1CF68FD2DCB05FFE2923670AEC10EFB838FF77A47366316DFAB72FA65617E1E1
-1F6E58380B604CA1B1E67715D33A3405DB4C5BDA12D6BC74227FFD29102910A6
-2F9B937CD016F3A2C486C0397CA068EF73F6745D4E07AE431935C86900995600
-1CB414839555437CAA2596E7676EED3BD4C545BC36CBFBA3BA1C7FFE79A00837
-C7DFC6CB623C871E204A2AB5880D33230F4D14DE16CF1379D6DBBF1F53A4AF06
-079573D3CE3D7A70B9FCF6415E8161BCF58257C1D243EC2E0C788FD9013759B4
-AE948304ACF34F0661254C4C0E9A795A7AE38D94CA85F0AB987BC6CD15782D3E
-0A907EF1071494B3B43D3615675A9BF0A25A2E73283DDE5D92BAE6709F99AF03
-F923F3B1759FA3857F76636634E05397AE767968ED4CF408AD2EABA2C58642D9
-8F284D433AD44CE6D656AE33137CB508A718F2C6D6255A1BCDD5A8511F6D51BA
-9929B3035FF57C27A39E08164F4D7FABCF7890A8D05CA70DF8343F630C406FCA
-83ACBA24FB6EDF0966CED4754A6D5E5492E7C6D7E68199C72CD505B705D047B3
-7BD0389BEFBA9FFAAC78B6814B1CEFD348CE29484BEF3A598DD4999F5423D0AF
-7E21A589EC463F659591DFDF6482CAAA3605853256062EB72116573126F1507D
-CF280F96F425238C9D82D79D7CD399DB5F8F75FCB66645C65CC17FA55B4AC8FE
-B1CFA98C1A8BD360F943B9761203DDB59CDCAF6474107A53B880B69EB00419FC
-D8DF80A69949E9B431C524F8FC6C619D6B61BB35990323493358266FBA0DDBCC
-242FF0D9759B6E9A190924BB180C2FC480AD23D3D1F968DB91CB7C898A5B6A31
-6285A79B0FF893563999F00422F81D3C7BE97C850B177E32FBE823C3D59E3513
-B895446BE443236ABD095D25589231F995BF177E03D35E12870B680CEF505645
-8BE5B45860D905315BC27700F5C17D23B6224C27161748515E4D3D0CD17BDEAC
-F137048C626C3AE67867BD5488F6895BD9225BA59B6F41B00EBEF04483754FC1
-09DFE918660EBC9E2E3682D3F3DB37231A086DA36C6F7B8D4A33F28792C259E4
-572A425EC1761D3EB74D8B46DEA01A89B0376662CEFD2D632379EEC34D5DFCA1
-94ACF58358B7D9F6B65DC32200E796531DE450654662753BB8241CC0600389EB
-42FCECF23F7781B7985CD6BEDC5F3FEF7CD5A48EBD652ED5352C713E9D36D936
-1BDA95D18DAD5E7E48C901F7C0BFBFECE431D937DFBF86A034B36E7F682E4BD1
-E7F229341795ADDEC27BD550478DBC031DB8A1198C703E46FB2DC7F4BBB4412D
-93C126E77D2461AB00C3FCE46BFD20F8F03F223B6B698D07258E7BE2FD1A3FB8
-C8FA19011078B8A498F1972CEAC6B4E5A30553EF75A12F65918AAE593CB46C10
-670C95387DD01F86935DC105E7B4ECB3C33F198B90D14433093DF9BC994A07D6
-DAFB9FB081F123EE651C868F2ACD0B50B1AE66A64180106BCA4A5279B40D3CB8
-C64E50D8506AE17B131D6F8D078C98BFD1260D731189BA6F6B411D7D250D4EBA
-AE115DABBA864901E69539643F53608DFEA8738645CF29CEF244C62509562164
-666195274757A3A8269DCB600E81811AE932CA1C37814854BACBC0AEF9D75056
-B8400563AE9EB767FE8478CDA103295B951C397136BF6CD87D0F5EBB4B00CA22
-711D948F36AF201B749F979B0827D78D99B470B9385FB67BD2011C1DC5AF326F
-B7B08953FA7F0FBAEB12947BAE2C5F7FD30F410CD86C987888F3755674D5D4B9
-51BD9D7C6C07EFA27F0A87BCCCA6895EC8676AE98C8B490BF565B6AA0CA274E5
-A028B9D12E52C47B2564BF2F4484118D1E77E6B672582BA630A6B7D7A61EE5DA
-DA8B7D5BB579EE7E05E2EA92980364BD59A9DCC0BAAC3FB8DE34D8E1F9786933
-721DD0A73C10EB61E1E1DF623E13EB0458996DA50E295EF15E804186EDE46608
-BC4C8A0851887DC87D4EBC41CDD34ED1EEA66C7F30A9C890A95A65AF81168041
-E421D2D5AA1D756FD5DD
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-{restore}if
-%%EndFont
-%%BeginFont: CMTT10
-%!PS-AdobeFont-1.0: CMTT10 003.002
-%%Title: CMTT10
-%Version: 003.002
-%%CreationDate: Mon Jul 13 16:17:00 2009
-%%Creator: David M. Jones
-%Copyright: Copyright (c) 1997, 2009 American Mathematical Society
-%Copyright: (<http://www.ams.org>), with Reserved Font Name CMTT10.
-% This Font Software is licensed under the SIL Open Font License, Version 1.1.
-% This license is in the accompanying file OFL.txt, and is also
-% available with a FAQ at: http://scripts.sil.org/OFL.
-%%EndComments
-FontDirectory/CMTT10 known{/CMTT10 findfont dup/UniqueID known{dup
-/UniqueID get 5000832 eq exch/FontType get 1 eq and}{pop false}ifelse
-{save true}{false}ifelse}{false}ifelse
-11 dict begin
-/FontType 1 def
-/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def
-/FontName /CMTT10 def
-/FontBBox {-4 -233 537 696 }readonly def
-/UniqueID 5000832 def
-/PaintType 0 def
-/FontInfo 9 dict dup begin
-/version (003.002) readonly def
-/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050<http://www.ams.org>\051, with Reserved Font Name CMTT10.) readonly def
-/FullName (CMTT10) readonly def
-/FamilyName (Computer Modern) readonly def
-/Weight (Medium) readonly def
-/ItalicAngle 0 def
-/isFixedPitch true def
-/UnderlinePosition -100 def
-/UnderlineThickness 50 def
-end readonly def
-/Encoding 256 array
-0 1 255 {1 index exch /.notdef put} for
-dup 45 /hyphen put
-dup 46 /period put
-dup 51 /three put
-dup 52 /four put
-dup 66 /B put
-dup 68 /D put
-dup 75 /K put
-dup 76 /L put
-dup 78 /N put
-dup 83 /S put
-dup 84 /T put
-dup 97 /a put
-dup 98 /b 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 107 /k 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
-dup 118 /v put
-dup 119 /w put
-dup 120 /x put
-readonly def
-currentdict end
-currentfile eexec
-D9D66F633B846AB284BCF8B0411B772DE5CE3DD325E55798292D7BD972BD75FA
-0E079529AF9C82DF72F64195C9C210DCE34528F540DA1FFD7BEBB9B40787BA93
-51BBFB7CFC5F9152D1E5BB0AD8D016C6CFA4EB41B3C51D091C2D5440E67CFD71
-7C56816B03B901BF4A25A07175380E50A213F877C44778B3C5AADBCC86D6E551
-E6AF364B0BFCAAD22D8D558C5C81A7D425A1629DD5182206742D1D082A12F078
-0FD4F5F6D3129FCFFF1F4A912B0A7DEC8D33A57B5AE0328EF9D57ADDAC543273
-C01924195A181D03F5054A93B71E5065F8D92FE23794DDF2E5ECEBA191DB82B3
-7A69521B0C4D40495B5D9CE7A3AF33D17EE69979B82B715BAD8A5904C5DE0260
-6C15950CCF6E188A0CDF841EB68E5A2F88253E382140F87C87E55C9EA93B8C89
-14A36CDF630D6BE7CD36DBDCE22B21778E8648B97B7EC6742EB5114BDF0454B0
-0EA7B1FE236C84C0E5308C871F67B973892890557AA12E00B2C20C71F516C397
-3F3BBD14A1D0149CA064391056E45E9470FC7F6F556ABC82653B3C8049AB5CF4
-BA83C8F2158C236B2FFD4208846013BAF4165E8BB8D334C8FF2E8D74AF5DAB2F
-D44788869B08399421AAA900ECC6A2D594641C121660D4B5F512938994C18DD0
-FCD9B008F68F0351D21ED735B2740CB1E0C1CCD25EB548C35B844601D98828DB
-556F71D07E081A593FF12DAF83676492A0FFE16E95717A07082B43A966C1EE8F
-8A59E1255E1705C43A23CF29A5E4A6547C93F1680A870EE7BAD8CF74D838CD5E
-F806911D8FE4262ED8E7F5BC58B92C9C6D74F8AD45FBB021EC7E97393018B9DB
-B1B84E7B243ADB05ADD3F1DB3692ADC5D47FEC7DF93080669E63281F1576B673
-125EDF08016664BE73364F65389F7C3B66623AD1754ECBEF9E5CE6948D933787
-A5674279ACB2EBECD3B4E6361419AB32028A27670C9F3E18B746A10B00AF6D77
-4EC00E3BE521C02A99AE5BAA98F793EB1228952BE67934B91472E01AF7B816BC
-56D7F19F631A1927846D800C107B1E9CBFF9D2DD513B4A8CE2E0DFD77B1ED178
-E43FA7052765E9FAF89989D490D8FEF6C536EC0D4AE27A74F474B98DA9E6B92F
-15E063DB260571979A5DE2423920CE1F59F56EB11E00E3BB9D466A8263E1E385
-2014BEFDA8D1EA3EDA04BE32AEE6CD15C5C010A1DF7F705A2C0C18E87C8DCCE9
-05D9163181CBA56C0FAC8C06A2990554C8E759D076B01BBEADE3B5FB8B551390
-6C8E4A2A1C6E7D9C708614626F3770C0AB7DD2027469C77975C27576065862AD
-04E5E50CEBE907E3E991FA0C627302C0E207B4D5992BEBAB5853AD1C0D271728
-C76F40A79392ACCA7358F948AC65DC823CFDA59E1FF69CEBB6B7EC3CF21669E4
-70D999508F9C49E2D9F8818CA53C977D93E15FBBBAF75B1E84F0BA62BCC4BAFA
-4EEC82D804C8A8C0210F3E5E258BB1F6921AF02BA9861BAD5C3D5FC8CEFABA8A
-A607E547B802096F7AEB09FBA99C83C9A494B94408DD607CA6561A6E6660C473
-62CF8D35F31D052F6C6C8138A8E1430CBA7EA6973D6D510C1A06B3FBD79D9364
-240C1A00272DA44B89A9FE8D5BF36DC1B5EBB4A78ADBE9C5EDB485F093D9517D
-69E1AC9A8E6C9D7C324E3797CFEAD9A18E82E03F69B2CED7D5DDCD1A218BF2E2
-ED2293AE999FE2A4B5213A10083EE0407BCF8007670B8C737EAB30311C868D84
-121149ACB4A27F3ED6C0C181C98AAAF51B105F264B5672D7F745131ABAB5BEA4
-0C9B43C0DD9116D6DC61F90BE72018F290D26D5E9D341055CAF09C9F45333CDB
-D45B7954271767F638EEC499F7B53C2CC5774EA7A7F024C4CABFB93D9CB1856A
-0C671A4ECA7C62EA5242648A84E7F3AFB9547A0AFC29593CFCE6D8B873A78157
-D337CABD291431C0A2CE1F37E0CD7340567AC206FF98E4B5A6410F70F750451C
-550EFB54AA259A1B236CA9CB730D2CEF125EC65D959441F7CC9768F777B44844
-CC9842A307C72B740680ACBBF6AA35FA7A94825069BF7696ED81A371A9E5475A
-9D997F2DFAD339AADF797F7E03E654234455AC3D17702A420EE0A597BA31BDE4
-FEB8DBA7C61D311CC90441A620164DC22DC2D373973EF84CC553453AB1B3337F
-7B39983B8DFFB3A9425F119B45C1CD37A76F905777B3154CA6200792F1759D06
-E017890F4041A385F2238E3C48B6C8EE6F5258463FDBFF7AC762F6C4363926D6
-50F004D473B7B7F73CA686B559C2885F1AA761653C727A77D73431E9D110E76A
-2E55C68CD50F43997C9B2FC4710F8C8540909829E215678E63BB8363C4B8AF05
-9986102BB36580D9CA95CD216B7C321822CB41B2E0422CD077F3B55E0246FDB2
-44D5976F67296B5B0BE4B06F6E43535C21164E6C5089C3E9BA2D6B30888C57DE
-49DC8D9D46C0D5EDC47ACF2C03B72DE3B69512508539019B759280BABEA12BC9
-385308A0395C4CD33182A10A5A229743379C2075D82D8BFCE4A66E1AA087A091
-8F5372684FA5037D1B92D50CD9CB4F50AD4F8EE7D51F1C9E63C721CB5B9BD011
-6F0A8DD4FDCD2B008F223A1036D90F0F3B252487DE7898F9AFBB3A9D9CD49E0C
-EF4ADAD5155A98D2125ED5A3D3907F67301649519419F33CD942E8DDEAC1BDA0
-E90C431B198F646766A8FA9F8D1561B57E126EF604838C0C1966655CF31FB7EB
-C8CCC434FC1C96046D38203E1791EC824A3D7AED85C029288D4608CA7668A2BE
-484C99639F121845B22EEFCE0A3B808261921AA042AE19E641769E91277BEC29
-4594082CCB3058F90FAC4A700A8A827ACA00FCF574ABC8EB7DBCECD97F2B22C0
-0AA19E8739B81AF8C6F621D69B8E6F29BAE233FBA655A0AF5BDFD7F5C6B9167C
-6BC7AB693D45EF2AD999F5DA3CEFA39BA48A17EE6D9F2C4DAB91AE3F0044DC3F
-5D5506CE4675AA928B0092D6F173644F91295216D8BBB14CDDE0AD524A4D545C
-1B5E284A3BF0396664081CFB4F186A84A0D24D61E82F4767C1E55A0642720CF3
-909FA1AB8EAB78030B59BEA067DEDBD2F1D0340E790AB2777DB18248521934A8
-BB38A58B7F633DEA4291B0D5D13E9A882C974697CC6D3B49E030C94EA29B5506
-CC29C44D01B4751B453A46A9F6BF3BF135AE87A4CE232AF57B66578310DE41E0
-2A6AC422117F1963C4D7CC306BD25A6E724E51921779F22F029733122E23E2F0
-CB340008813ABB104380C80A492B3FC6D0BB07CB8D8409E9576891EF6E5C9D08
-EB8320DFA31BAFFBD336D0C2BBC3D3B2D30368B9860768FC080D30569C7F7811
-0EBEDA2962476113625EEB555490B8CE4C5F99D74ED10F738C61854CFF8B41C6
-9402E56BE8856144A1A05D0B05F4CB7EF728B2F4F5A439F18C3B68CEFA41E59A
-D8308ADC92EC1289DC84CF48D2CDEFF509A145BF945E1E00D552D329EBD2A7C4
-21D58082CC8FA790E981F4AC8EAB99950678FD3A7DA3DF13778681B208DD71A0
-7C3CBD0664B37C9EDC6B601D79A2C51FB54DAEE849F93209793849104E722D3F
-52DFAF7047EEEDDFE744787A5801E4AC2C3D58EC5DDC15FCEE03990C53B0C57A
-FC54F125A04C8E4A0ADAA725808C587E7DAFB9F784FA2875689979D316DC22BD
-AA36B306A1ABCF907B63C6476737B746099973CAEA8C1E2C5C41F27E0F7DE8D7
-F0D942E34E92F43FE902653D4D2EBB6F3B9F7928B1550A82AF234D45D028F429
-067652BD3D391BF423AE72B9CB1E8D91E898161BE3A7849D456A861A2046711E
-E934DC59442AE7D81661CE8EF727D8D7DDC0270E937E40F896AEAE6171661431
-C1025C53172F9D366834BA0054FBFD84503FBAE328B6FDEA180F8EA35B1DA937
-5CC3B8F00C206908C2FFFFA6A7AC6915D15EA44BDCF29E2BFCFD4A849535F19B
-0D307C696BE8205C7D84B9C77F02EF27D911056EDBB4080E4D3ED72788666CAD
-CD91B0ECE27A177DB23320A7FA9C31408B4D02D2A4B1CC6DDE1A6CAC3D8EC1EC
-2226EC98E51046D1EC26FA20EE62D24747D83CF4941DCE5CCEEC0DBE387149CD
-E05B19FFCAFC0D117F9A3E60DCD4C815228D98EF95EB559AD0ACC0D50FFDF714
-56C3C812EA5ADBB013BBD956A7C4CC0ED7D3E25D5C9AF5E626F18297F75D4957
-F5B0B33379114B903FE98BCF35C3FF76FEE1D9AEB711F2962276531F7380EE3F
-E368720E0292A170A15C5539B1FC7BB954EE2624B504CB8C805B8D31AC38307F
-0513606F09211AE64DAC447693B2A0AD15E9A64C34F5A911ECD0ABCA90E9791D
-67C6BD202B0858EF96E7722305B8AC02B01AB1706CC6AE875A8DDD15EE349046
-EAA65005E7866B506EDFB7A5A2AFD5C9E9DCC821A79EE9C1EA2C7BBA32A40BC7
-CEC26DB1AC473C8C3960ACEC581B37D6569E8C8C42950BAB7930B65E1570E3F8
-9A7FA719F1DCFDA45A3BF2AAB32C9A93BA3552608A61C623DE59BCB346E87EF5
-9CF025A87803161221C5C1C6F6B3403712C76E9D755C7BD68D7F2DC03C14CDF0
-C1BBED1D648B905B4B17037B7263C1EA7A7F06FAAC4E09E08483A8D714C19861
-327CD9C32DDF850302DD6DDE24912D00C22ECDF3CDFB18FA831A41A7488EC203
-F564CFE30D506F0829A96D35A7E09C3DCD107D589B627A15B55C5D6649126BEC
-60B88C55ECCBB4E680265D9EAB4CE22965D3B1AF759B01ACB0D0E6C92B6B4EFD
-A81E6A648708979487FC591CF09631310D46891423F4EC159A73E30D8DD147A4
-B0EACF6D45D18CD16CEB8176F03ABCB41F2234747B9733C8FAF34AE5D43D3BA5
-0CE0FACFC9B087F84FB6C68678BC6E76022B1526D6E5B3A48EC1A110BD75F45F
-1C4DC6D39F254976453F57DF873B7D635C80C42026DE020E5BAFE0DA0D54D1E1
-DC634D2621BA184347E5252F645A6A1DB7657C48124186F0E4C644077457C24D
-55753C651A9A7B6349867641464B515B821349C795A645420508673B93750D0C
-7A3B33EB1F09782033742AE8F3A23FC02284E6C03818FADD1731361542E3FA3E
-75B8D52B668C3E18A4AE967D0FC3157083D952AFB8144D549E69EAAC51C279C5
-E5D88A0D9D53013DFFB4352A1598FF84DCDE6FA32FC377306B9B92C0F96EE149
-8CD55E7B2445B86CCA7A547FA732D52D59025129FD8C6333AC0DF4F0CFF6287E
-F2036D5DBBB3B91B92F12FEBE0B61A313A4DB5A9CF0BB3DDB781A56FEBFFACCB
-8CB9D1D3DBDBC4CB6AAE6769E470582403CB920630221B68BCB625CD4605FA8F
-D3D5B7A1A28D15E44B38E92E906C138E72C15B86F64C38E23BF0440052A8C914
-54397F49DBED99D0AF7CEA3B0A05FF37C2D7EAE1412567E6776333237C31E3C0
-49949EC8BFD6E0F6446CE2D4DCD2C1524A288818CC5D159BF8463A847AE4A2B9
-CC8C58F822804B81B13BF4F2DEB6229C4F51F093075581791D02C36A13B855A0
-34900AA7CD4F1A797652656FE3A8425A38F421C4CC0ACA1CDD44FA6B31219276
-1CDE1CD63D6A58CE705CB56CCA1260F9B86E989019071563A9B4C274A87558CA
-6EF1660D574EDA276801F0057740E2C3B80D253D697736484D892CE1AB128B8A
-DECD69712F5E70E895FBAA927E8194D792A04AB6CE205E04E38A433BBB793FB4
-E8BBC4279D58A223C6673D909D6AFECD246E66A52F4CB35E5931D24C828489BD
-4ECAF621A220D8ECF702BEB01C4FC7510197D3F6D15321EC87175ADBA6434ECD
-2B5A306E91375CAD22CD94301763E4A8B981472890422C5488FCD523C9CB17DC
-ED22FBF12D5F7525D0D6BCFE8CE85B0DFB1D6F989C267FFBA0A996D309E4A934
-3DB54A9D29C88B9D55D7300DA3D46419256C5A07A2A529A8DE8BD1727281F5FE
-97033D861E0531B14E811378EC1AF1CC7EE9BA2B07D935843D3053F673979F8C
-FAFD59D555B56CE338F606747238B22BD62C42BB7238FEA335678D474A643570
-A9E7B4970E8C541CE9DBC7BF70ED7BA33639D6744A18379455029E934C95E2EF
-639C4848CE9A0879B51649FAB023A71782444B451F92A34CB8A124270CCF86D4
-D18EEF5C1D2B2A29012613851C49F50702D63BACF95EE2AB4D72B375E0A62615
-E0991E130A67ECBA9E05329B740708F1CB148724C3A6E5E3AEC1F88EBCA398D2
-1CA8827C977D72734310233176D1AE26C55CF2CEACA62223315C28FCF6305C7E
-A22414D4739A059F552F1F9372CCCA5FED4F9AC987942848EB498900269511F3
-F408CBEA0659B954F5F1B18AE4FB270213646F9B28AE4439D2BA2D3E0AAAA780
-5E530E4EFC8A060EB979E12191044509DA0C14397AFF949E12DC970658D5EAF5
-4EA963F5BC1407A32F3837CA6A24B7F3D60EB8E6222B702E25ED903F9D21AE50
-664A095009BDEAF4B78DAF94E5A55D48366CABF07791A1684B2F54EA69070844
-4F031AF8DF416C2D3679F8BA038B0DC9DD0400CA6B34667BCBBC07E62C1668A8
-35A8C57C9048A7227E672E89681B54D662079A189A9E96A3CA96D8DD10189B04
-1DA49BA2729F1CA585B1BD5C467295285D52E47CA904235A1A3E48EFAE9EB6F6
-01374125CE89D53C276858668CF45D2F092DDCAA52418E0BB94C2B8266B4D88A
-5D911507BB1DDA3D8F6E7C14A91CA11AE799EC42E993098E18CADA70BD2A1D82
-2C39326C6E3F9E84CD9758B9AE43D79BF99E6A0CD713E95B3D9B7DB90D127DE0
-DAFEBF850CAAACBD860B5DEF2082F1ADA64B44B193C4A1417BE221FDCA36456C
-BE5934C8CE3ED55AE3A11697C2D682B7D0F72D48976451D205783BE25DBD2507
-39C14FFB4BB828DFD187104F38A7F11D5F0698C11E8C1D4F107CACE573FDC4B1
-C56FDAE47024D6FD16A2FEABB434CA320300FC4B6C1B6CA08F76C60B7C08A665
-99F404DBA8A2A1EB18EF6750E4EC186E31561A3F080BA6562967546715859481
-7BA782940F5C5D06626D6F6A412CA7C13820EC7C1DF23E15E5829F698CF617BE
-D940523E4EE4ADECEC48C24297DBAD528BA1DCE7AC335A1D15D55415B108EFC8
-6D45030D27B3EA63B2B4CD771DBE66AE0218ABB1153D4B7482289D1313CEF184
-5C960B1E3C3C953912CC6F4521D1E15636C1545EEE457EFB87B88C9E43CC2F38
-6BC4BC96969F4FF28ABB06F4454C01CEF1B6DC538F1E832FC1666D977E5A881B
-F72F1B4C7DD4BE167A5535F1163A0706F9A0B26400178DF8A128FB5EBE6A7B81
-E478AD183EC06622B591337B9F1872AAEA356F4FC67EE767B34CB5A4D90702D9
-39FB846947F4096FB3DCF16EC81455164783BA0B5D723060DAFF411B68307E81
-7BEA1D9A47A5AA3D648E618C83C60F060029E6EC4D46B045FA7415BAB2AD0AA5
-ED9C729C24136F6AF61E6409C0B5CA760B16225641E268A68CFB8260BBEAFC77
-6626EBD97195E77CAB425CFB0096D805D9EE699E41680D095AE9FA10122A7882
-2F00F495C9EB2102DF0D3E61833BC0A2E468C5CF7AB430FDB7C0BE3DF2C0D230
-1580BAA25D65F599378D873165482A1FBB224AEA89C6BCCFBDBA42AE1C5DCF41
-06969F585CD3B737D1388D6359F5468D88FCD2279BDB270F6A858FB7D2ABDEFE
-5EE8FB79FA437F8F50237B92C307B73B0DCB808D07A9C3255CB9B3B17039CE5A
-288103D05D132863FB522A02CEE3839EF9AF7F07D99732F0B8B384745369FB3E
-7901166478F4A16076A1504C5E98D17408494E270BBF4470ED12B4332422679F
-759F1D93984D7E506D16950DB6C2682FE1379EFFA6F6C95DD71F6E55BE3EF6AF
-E0CB25388EEB436E6527806FC75484133F6E561DEB979D5C1FFEFDAF2A6D964E
-03BAE0BD593C2992AD84569C81050F7A793C5263E50C2F50B98C4CC703EAE17A
-6AEDAACE312DAFAF5278D125B6EFC5587484F61DAFF46B87B7C9B1EEDECA4859
-314A9A9E2248467DE1E54D90DD671660B9040B3E0DD982260822177EFD757266
-74A16C83A7FB168016A320D3DF3BD7726F1F4EC90EE5DFE810C96B099FD4368D
-906AE4699049EFD37E8EF058D4B97BF71106445AADD4FC6E90615A0066823A36
-673B8DE32322BBE861AE251226B4385AB28702831270DBD25D666FBB0AD7B96E
-A44E891EA1EAF0F87013AFC982E33D67A28E96E0C9CB99B9E4192536830D9901
-931A8CAFA41289633B20BA3BD7AA3414B6DA8D57CCF2FBE39920CC06361F075B
-CC40335DB9A0071CFF77F6B7BB47F3100DBDC9C4A58C2B81EC99E8E966AF3390
-E3FBCC28BA1D79961C8A1584266454DF772FBA99664D74D4A89FC82FFEDFCFE1
-4C9E4A04291E803D142E37E7ACA66AB279378F2F192FFB2B5BBAD18B95F03136
-2CB594A3D6D3F8576B90A6C4DAD6D6C8EE07AF682F925F01D0B26CBA347C03BE
-F3B0585CF4539FDC66915E22117078CC94D621F31DCB3E021998A5D6EE94CA4B
-E214D07517283D56973D8E4367392BF6C1150DEBF459D141AE0941C1C8C5CFBE
-E735D796E365A1B0F60BB4CF2801EAFE4889EE5F338D3C4885368281B3C95CCE
-251C28A90D318A8A0384439B38D63B94757252062EA44E88509FDD2E75FAAB71
-7329622828B2785C1A8B26351BC7448C1719C88FE99BCB73F7DEA427FBFCDF4F
-00EE079B0C712F7D2C8DF98D4830A9D8C8B70A8C5D54BC1DF3171135278BED55
-DA1CF0E696B12935EB59B606AA3C0CC50C7A259AF32F4C81D9B39470D9993CBC
-8644403D2833B34AF40511654F96BCE0064860F39849DC62E4A0693F75308FF5
-FF450EC05F142D5E300D3850C66D432BA581D5D8DFA97D901589C53181CB5057
-7FA8B2C95DF751A861DD1A614B2F32ABD284607F40B3462FB05C79DCBB586B43
-B853D7F77AF5ED7AF2A913FB2CE66241C5102CAEC3992BEEF19A4F760E98EAF5
-063E373A084CD6829DC18D063618B4AE443B35B63BFA956368397A69D41DD715
-6C5ED849CFCB2825CCB577C1669626E2C87DE60D69559B3CB98FAA07F1893EE9
-DAAAE01D549A252D77E79AD37BF64540DAF7FDF2FDF4017F94D9D89F1B6F249B
-CAAC5BF817A1979163F3A316640E382B501A6BE18C334DED469CA5643FD07D8F
-6E37275108F7168F45BFB5024D4FFBDB140741D2C8AA4AF19F22592587A05FF0
-A324A0DD415F312D653513ADE6EDE9E560BA16573295F6B3A0427A15A585A40D
-5265A4CB711011332AAE28B05BE6E4B11B1B3C178225B2108D94089E6544907F
-DDC2496B0B36E2E8C1494640BC702AC192A3CF82B04FC836B9A8F2B42AD59DC3
-77DB2F1D8B7F9C0DC9CB7BD85C3D2C7730AF276E6F22D1158896CA00870B4B64
-B72731CE69E9A92BFCA929E0834456AA81EEDF26F58D771229C2A3A491455426
-500E410A707ABAA26C2EBC0178A2DC6A24350823AAB33A391820EC085C6C7F35
-65B4A26C6C28C08567BF5860D0930D7EACCC5227BCA1589504504DE109D1AAC3
-9B97AB1FF22BF698E5C01C812B0C32F4F0110E37BEB86AC57D1842C8DD13102D
-2AFFAE9B89C5965994D167E4008EEF6ECA04DF853985B8E7E5783D62CB82BD0B
-1984EC07B99D887C2344393FA940D33B693F074E58FFB1B0CBBDD1263A9AEDB2
-9E4B3D4C87EDB94FF5664A8B29A0FAFE5E61900FAC8F910C7F073FA7C227DEBE
-F9D38482DCFC5F6F6E6590E30852211E3953CD7AD902B72051DA4A839D61846C
-633967FDE5A3C7F8E670E4BA0CD7D2227F5FFBE12A10FB29634CAD38F0B948CB
-022868DD84BEBB8142D95D00364B969F8AA651DFD7BFC5FC1ED5CC71B9F43B5B
-E8837EA00B304EF419E41F0169D250AB650794B7BA5F7F92FA3FE7A7DF7F4EE6
-D26D6C66A45541320F1BC615E42A90EBFF77422970D01D5A056E2D16DF2FC184
-D547684B190468BFB7BF81602799930DE5E32CBC4CDB2199A47BBCC9753491EB
-90F9FD2E532F971AAD224D6E9A5A869916E8F6A31EEEC01E83B18DE3C0BAA2B0
-8F811A23E1897EFB01FAA2676E16FCF3BB0E6BBAFCF65D434E8A92A2CAC20ED1
-7BF006616A3453365758F50534E6ED6794D38BE3C3E79047A38BCC6BEEE1B892
-52A246887920976D383241758D0D5EA9018EB689C9F20EE15F98A4010CA4DD07
-82520D170267CC9BB5EB439D43ACA47BC3DF2C96046816223BE4157F0A4307D1
-18828992D032C341F9B8CDBFDEA3CBF8189CAC95333DBC8305E2D7B5D30DA9A2
-E715D31B2A9F95A6306F7D5261C85D4A011886DDD520D8A429FCDCA476EDDFE1
-5E63310A8BE3EDC46871AE21A24A0AC523379D9F2ADD4BFAFF031C32BBFFB33C
-7C11726F5B7DB8A8D7F3E1C56E50C986D9DE03CCC5709F6D80ECEE69FB2D921E
-6819C33950E7DF87FF3B51680A23603F2267173EDC0E27D2E91AF18427CA61F1
-7DE1E2FE17E87E20B973635459474A064BBF94DB3DFFE16B447FFF69499F029D
-2AA21FAC0ADB16ED438E9577B1DB34F9DA70EFF044F21E58E6CCBC63A6415ECD
-55BE2301E115BF38212DC6A01F45384CC706BF6B6F85F1407BB061886BF564BD
-D888F397697A70416E36E9127419F27499232B36CE27F29A9BCF43FC7B4676DF
-805447BD7AD01EB17C5D14F4E6B98F584664D911B0E64203D75D3911C3E60CF5
-683BCDC2F4524323E067A69959FCFE3179134C3CA13ECEEA7A16305AA80B0CBF
-0B5A64309B4D30CB87799DA576274B6896EA3FC5082386B939F6C6B628B89501
-1B8DA347EE03B97FD19D4CC070A06FAA516DAAC180C7FA5CCEF819CFD86A06EF
-122451DD2380BEC359FC48129FED52D8782A2D295FCC07346BE82080C78085AB
-907493BFB424316E1AA433892A68A36C0A7E8FB0AEC8429706986B502216EE84
-2B1B7EE5CFBF9B70964B3A8AB43FAF4980FBEFDDFBE9DC4CF11BE9CE560DD2C1
-658D75329245640329667BDB2B79A6C97B54B8BFE82A1E6D7F3FE9433BC4B809
-68AD1178A8DDBF0175562C2E450B9BF2902FE31CF600427C11D65BD670F22FEA
-570C34D7C3320F4B0562FBC0AA2A4525AB8C8AC6D254E74DC132283448AF16E2
-F6896603072ADB6CCE65BD6A3A5D23E96C0B0616DA2E2448F499AE49E8437431
-EBF58521D5C9ACF119025B3EBCC8A2E60ADF67A1867B9E09A5A39270E37AC4E8
-08834EA5E1F1409C0185280F62DD2CC436E9D88A6B89D36D0DCAEDE5018EF41C
-5D418651E3B1EDFE3F14ED7BA85AA036C15338BDC24238BB910C11D23439CBBC
-7CC32B387E42044765E800D817BFFF2D0818403A26D1ED01722E83609862BD36
-44ED8993C4CBE39FBE830678A19912E7197A423405389974C5CE46B247AA0FBE
-DFBB823DDD3AA01A1B487324E304F996BBF6132EB91BC1D37E1D9D351DA60B65
-08F49A8E959132D9929266498E6D409FDBD910BE7886D6172393058EA872F7D6
-3258654378484F5700C33B474300FB97FD7DAC00B46C36448FE2DBFDE99043C9
-E69434290C26AC940EA1D3D6433BC3EF7F2748F126BFFCE0AF7438B170502CBD
-EB3982F857D11869F41C4B4624238448EFF5A1FEABA071E9F7701FA7DCDDD053
-008FFE748BEB9851EAD2D9A4C9C6B422548DA9E80C85B746408B794212E5BF33
-63A7BD9BCFC1DBF4B3F47A82596075BDDED840436A6D487EA59EE1F031D2F369
-5C5087A2F4232EDE2994914DA29155F292E9A75BAF7EF413888DF12274EFA541
-405139C62EF85E7F14479E7D8C80DAC237C034AB6E55ADD91D7EA476932AE079
-07D1B1454F424CFF149DEBCA8B8CB54B2FB900F1B1924443A85BB87581AC180B
-181C09E46669C52C5BBC47E007174C5C3722A5EAA0C8F43F36429A5804997ACE
-90D45F5E89A171AFB5FC5CA1075DABA918C3B0A45780F0BA276D794533BCC224
-FD990347DC10307365919914E4B235D91FD6609820C578E77BF103C7D76A5C3A
-026693A3834D9D286AA159AADA7D1C3CF5E5B078C27B4399B1B79177DF54231B
-D83337B400038A80286DAE1DEA5C1A0C9CCF8A427FB7A9D3C9F850D2328DB47A
-624C0296013AF251918EE824878018A3048EEE1FF3BE6C3516B3742777A5C1D4
-34F2BCC7AFC5E4E9F9F14F8567573E95E13AA99BE913021FC2D6526821C6A0B5
-8808E1555A49AD087347116E6F068B8037575FCD1AE8F191CE1ADAFE01B1B25C
-62A0A6F94AC26199811C7A46615AA20EABA3B8C7CEEE8C1273E59E12156FA535
-50780F7707B23695100CBFC23DA2636FBBCF8F974B4B63B2FACB13CD9094006C
-EAE505D8A58107437BA59253D9BD9A431921C9B0D5FA31AB145E989D0488F073
-A246A06DE64816BF3494EC3A25B1A7018000BE34C03B566BCC75735473808936
-89001FD98067E231F6A17A1E6829DFE906D0F26BA8DAAB40EBD5460074555ACA
-3D9A06A85A6BFCB9A89D9D895426FCC9E1786A3BBE8572FFA0ADFF4FA441B1F8
-93A1F2825F83D0F39AAD50F81C9C502C4D2A389756BF7CD41F40B7E00DB971F3
-1F79BFAFAD4F5C1DCCC295E9D7EE3E8C935B948F63A37BAC3A8C3395B768AF90
-9D7A3BDE3614159D5BE42A302761E70913C419B8735DB8BD003C88A222AEE9B2
-7ADEA0AA9867E56479A35B982CB227C30DBC0B17D89F8BB736AAAF64A85CC8FE
-D6F3F3C38F09982D6B9863B2AD1DD209F7D7CCC73C20EF069FC21A17A7F5DD8E
-5E909B78A23D621B1B715AFFF927BA680DBFFD0FACA27A007D9B7A9D6149AF19
-DB19133B02845DF2D5B41AC037D2F1E0207909DAAF7AB7AE4ECA6F1576E56B43
-2B101E445F5DDE49CCC1E220951621D1B375B38AF2C8B8060C2AE4EC36BECC2B
-8E48175BCDA6404B9A9776FDE9ADC7D846CFE341A490E4F84BF9C88EEB8CFA0C
-71C7F9C70A166EB4A3D7B285DA39595CD5C58A91445D1FF01A1772D2C6A30924
-CF4AE0A521DFDE9321AF5D9BD9BC88424C5CE13FC4BB9768848499204A1CE4FF
-3E19E5CAA58870A24274A1E8B8B7FD81979448506B37A05FE47206F82F1DAF24
-93745F328137A5FCD09950C59DBF30F335136ADAC47EE6DF56688BADE4BE7F93
-FB60EF3C8046C68E7A5C1AF812E30F6E6A21B5E0195B6DC383ECAC0AA6BF76E3
-8BC64B9F68E7F7EE86C91B6590C155CC793BEA88B7BC142439E8A554039AE55E
-EAE7456BC31486F997635D756B98AD011345E4F96361CA12B051F81B17DAEF91
-1DD10F5CA9FCBDD6B371872D18EE12EA51D3E7C6BC0A188C47C2773ECF4441B7
-AD94735E327264FD738137A23312C40648F125B75CB7ADFC904C00E72BD74B47
-E5F5EB75CCDAE8B11CE33E468014DA1E87EF63BA7B898E61F03D414C8B67FA9E
-F5AB2C74903BC196D200E5E9DA2116DC5F6922F35A0AAC8CBB81AAAB95C1C337
-64FBCCC1635FB1203A4D8F545189048DA98E7938B05C6A5468464ECD5E2512DC
-1E7523890987ED095FAF98CE425474E813E5DF4C6EE9C0441A5DDB75E8C158D8
-1649907A0A136D52288962B150E3749D993CE76C3F1376E0899E8C3B06767563
-A71E0F94E611A71BBED10E4F00310BB1803FB3DA376892E57557E6B049AD4848
-D205FE19358BDD9A78AD754BC39265E51DCD45F39DD45C9DC4EA3776C726C111
-0CA3754CC7B2FF7067B0E86AB24417D8AB5CC849A80132816DBA63F8F8E266DF
-66107F9533DDA3E0735E5F32AC1E39ACCE64E45F7958B9D69BF52F87B21781EA
-A7B1193BA98C4433407C56ADFFDCEAC621AB4B60C0C293BB158A8CBCBADF4F88
-BFDAC62243F57757EC33990AD15E0C3F202661210AEF980C50F26786532AF1FD
-162FD82D10CD1C130B8DD72FC7819EDDFB455548ADC5AEC93169E26130275557
-A40E3A0507C33ABD1337B07546E470942FB1B44ED2D4B961FBFBA2DF21F8C4AF
-E90BAA5E8F73A090F63696CE0F5F2A78621B7A0BF579856DD6D2C4BC10392663
-9B15EA5E63F0407962576373A6B462BA09394ED5E1D2F80DA13FBF3E77AC1992
-2BFC86622B4E5F3F19B941B2E74CAD1674EF7656ECAD894C17D7F1EB8F616A08
-5F940B8BA909EBF960B60FBA0C107C3B8473890125AA7FD77CB534E74F59AE7B
-BA364BC989382ED656A2512BFC5146DE7B11EDF42309163B94600861140F125D
-D0C0305C2DED435F98A9CD52C07EF2C8202DDBAD4F4CBCA1BB2A991BAB9261B6
-C8949B70605D0B3FF8145CCBF3BC642A363E4D432BFA03F772CACF35CDE51CBA
-5BB14B426DDCDF08E275786A9C1CF040A8945AC2FD369BC53F2262F1ADB27871
-E711B7F0C67D2DB65A4FB892FA72F88BDF2DE1C3D3877BE6149A335519702830
-F27F07EA02C921A73E44A4DEE6D4D11ED16C9DF2E914952865AB0F1A9E46FC43
-4EC18296BD068870F1FB936B814B16E8C83200DC078DA0E856AF477AEEB3BE4F
-4C98AD0BD79DAB678BC97E122664AEAC251192C3C6A0A02EF9FE7CF81EE3DAF6
-BF9E8459B5128F2C270FC1C452701BEE026EC93BD3B1373612C37560D7E73DB5
-88EA90EBCD1B78E579AC0983899B9C092A2D870C519F44DD29596F9DDD98944A
-BCBDF56BC16C02A3B34B39B422C51B6A003E8C31A7F552649913ED5B190EF3AA
-5D9A285613ABB7A88212A5FE1FDB1E7E97615A94C79F7255C11AE7768FF3D795
-43F3F9B0C5ECDF9715A1148DD3E9868372D3F8967D34FEE7A6E5ABCB3976AA59
-D6C205C7652A54D2EC8A988EE20C4A675E4D422823FD8DBD93CB0EE12AD86C87
-056903A7639D91572C54D193336F145E45E1C2B1E4C1348BDDD96B06773D6F23
-2A424046A7AC21324A2A4C339C5F849A0189C91006CAC30600B3347919B41D62
-01CB3103A5116818A1D986A49CD294D6A0D44894201C8DA852338DD7D177B719
-EFC34429B60AE19D1CC1CC6E3C653C677CE6F0D175A2A4F33E509FA3AFED1C3F
-27C2BE2ABD0D00CFAD4C28D8DCA9E8FEC4DF43C85EB11250498F3B6743023976
-72B9FA7EEA0838AA5BF59349DAC852E1B712E0F42F6F95DE73EC1EE585B6D08B
-3039232559B97270F88FDB8A9971757CD4F74088C8E4386BED2942137FC603CA
-5C48A08AF753C720544DDBF419CBBFCC0094ED6E426A6914EDCDBFF782FE5904
-986716E075C855002B5AE15C2E8DE58E70F94FCE9CB3F15EC963A84FEFDAD012
-F7E49F220C9C7EB9F387D95091882C688F5A661ABD214C3AB891FD4865D734A5
-42FF37007306AEE7883B5D229A41A20622BF12A06B907A938142CDBA5B2323A2
-3FB3C5407F122AE2580772252716F1C249AB457EB21EA14C919C426D99A8C1A5
-A71FB14516B931ADFEE851C106C32F9973F95644B141CE8B669663BE3B83FDBC
-BC7AE9C07DBC14EB54F98F657A62B3ADCAADB9C3D3985621B0CE816EC7538EAC
-7AB801FA7C688C7925C3B69D93862244C625421ED707199D1E1DFF6000B0BC36
-6251E989FA5A3584B32862DCC65ACC44444E9EC15D742A4A4E860936B4B18237
-FEC4021295A1523DEB1B3596968FE7B65B18B04D73B3D331E18403A6E9FF8767
-6D5BEF04E9D500932BCC6D47DFFAB2A1B12048A717D14C9A8C2416CA600D3EAA
-22DF60124EC9E1A177498EEECDE88F9214CBCC14520DCA6EA0AEC710E345D10D
-DEE7ECDEA83810A6A9F5A8BC2655FB6ADE99CF1F3C9D2D6FB809016DBE406872
-AEBD3F1A3DEE15E28FC00FEB73A075C85D2088CF1CDACA30BD55C9E2F7B4D2E1
-6C3C59C6CD18384AA4D7618CD68022A3F9964D932C98351A9E26C6C8B150B8AA
-91165D6E1D37C2E0D59760C917610BA3116867A0225191297E533991033EB770
-28EF61050962894BECD66FDDD5EC8194279E5280025594CA2D24576B34B89103
-18BFA198F06ED188B8341EB63A61FB11483754248C7D395A835E57C90618CF9C
-962E7B59B0AA6319585E7AD5780C70F634607ED4889DFC82FA600996832D770C
-C75A1D1A58976A1222E6AE38354742C05F133FF64CF1464FB468A5212768DA0D
-1AA4BDE59CE93FD594052BF8B476B5889ADF864D4347684775C778E838AD245D
-D04A5A0CA410949A02855F70E7C0C292D7C0BC7FC7BD58659C167B65ECCC1BEB
-D3BE173E7899AE4E1D03A5A96FF6C6E7B40D368CB23ECD3225C27A1A81B11C1C
-BABB8F3C63EC967AB3F5A43D7C3521F2526E2051DD950F00ED71E4E4BA26F747
-E4CB2C607FD31D237DAC9E5BDDC4B076633909F4F50FA76DC152259140146C14
-793FBFA0FCCFE05F29761CE7A8A0ECB677AFC17642A5067072557CCDCC56532B
-F1805AA83D4449A15293A75B559A55B7B6B27166746C81FC3D320291C0D88E2D
-FCBEE754190B5C3C00A35721BC469C4BF045D5695E827152D4FE496F593BAB40
-E8305381E7E6615C14CDDBB962D84373508BC3764A52412383478C3760EC5B9A
-B28FB151E8F93C4CD097F2F5842D84AC330921C1AFCF3C978E81F6D6CC52CAEE
-D1C2080B644F32C97B9571B50DE6932901EF9F3C232AB9C5ACA7B9834558C2E2
-62834B6DA12C3F6AB98CAA7537D5DEE061A7CB2BC0787517C75BECA2658A422F
-C69B8493B314F3531A8C24A86E3C7922DDC1FA642B69664AC0F79A8FE45429EB
-C52897FA3528BA6BBD3679DE7304A69A49BCC57D7E3463F32BCCE93CF501B524
-03C1F1B08901EB3F0AADE811709AF1C53918874BD5A1F5FA8224E6E6E4BF2FFD
-1F75848B67F57183BA93C051D5DF6CEDD84ADDC305185D12789EBBDCBA92058B
-A464D44049C7BDF71C67383A6DC38528D9B2B4328431C9FED18431855DB98AAE
-BC85C4CA37FDE476CE0F4EE25250462CC747477446BA6375CCD72647C3A62E27
-759FE92621522A5815F02819F1F127805078D1945C6B5C91A09133C05E38CF15
-11966BA0C0C1EDB2601DACCE3823FA8F0B7C147EECE12C27CA629DE958EE88C7
-506FF8ACC164AE2F84263A84871664A411ECD21F38E580646DDA140824F78E2A
-CFA4F230256C8C6ACA374358D705EEB228FE6287590C09AB3945C5781282E983
-531D2346F4F3F8A9D7DA641995E291E65493BB49D4C73D5848B771EBA7887C90
-9EEA2ED6483AEE6B872A85ED677335A3444D643B1ACD8D8C7A28CC69CF436F29
-CA1BB157E48C50A7C5285E6EF96E3462AFBAC03EA387B1C740A52F3286FE44C5
-019771E29CB71E6A8DBA063966AA7E7809FEBED3D6DD8B59DB1148BAFD00070C
-4348FA2C3D4C79D415465E2BB2AB7955D8AFC378EE7FF7AD30495425AA8E1CA7
-26F94AD3E0CE97A54BDAB5541A66064C987A445AD31BD84B3956E7C7A7490BEC
-C71FB27CF47B1C1BBEF350B1A292AE42274EB8951E6317B22C44A6B41F5FFD8C
-EA0E2B153A55FD5959AB20563D0AF87834641F3E088D94BC83D918FF6C135FCC
-DFBCEE2C0D72A8D860824C6D5D49CA061A7FC66171206AC522801B88BD99981A
-3F012715D19F9F75DC19C39E106EE07FFFD5902E6E650EEA932325FD0F3C06BD
-BDE3796DE7B2E4844273CBA2EF29BFD210168261C396ADBCA70F4D0B8895779C
-099D09B84516A1494A25C4DCB93F1DAF7C616301A793E55308CDC1EA165AD12B
-45C60F2E0131BD59951F840DAC5E316E4E287A6DD7CB39DB811DEF405F76D739
-5FA11220DC99F4E773AD6E3AC8355E2F002DEFA280E1C9871B6E9A4D344400A8
-E2C3B8B1270B0BBEB5D0D00A91FE1920CDC950CC041D73BCE70E19868132DD46
-C042E2B5531B227A38794189273BEF0D0AEC976386D3A6E1A9E094D5FAD1F28E
-FC34357DE397C66809C369A42741F0F7495B49C27D630EE2424025A26E426F83
-1E1463482E81D9759B16C5524CD32BA173512B85940776E27671C52DAD1CF777
-A238A175654E87DFF60BA6DD49CD44726EF0D477698AE57741241FA90E362C82
-E11C98E05BDF19AD96DC237B9336F4D672920A99C36BE42165244FFAD5796406
-520349F098DE9C9D6F2368CF5B6318C5661D2ECA41B7118E9F27156EA140C2C6
-941375A07DC940293E378FC0CC742FDB4A15C8C1A9DF90DD4E87A7CEAEFD6AE7
-50A8755630AB66DB2812654ABB2D69041CF9F90B9A9C64F48FC5E12742169D
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-{restore}if
-%%EndFont
-TeXDict begin 55380987 39158274 1000 600 600 (refman.dvi)
-@start /Fa 167[50 9[75 78[{}2 83.022 /SkakNew-Figurine
-rf /Fb 193[65 1[65 60[{}2 83.022 /CMMI10 rf /Fc 139[28
-4[42 47 110[{}3 83.022 /CMTI10 rf /Fd 134[38 1[57 38
-43 30 32 28 43 43 42 43 66 20 41 1[20 43 42 25 37 43
-37 43 40 3[24 1[24 7[46 54 61 53 1[59 2[58 4[47 50 1[53
-55 55 8[42 2[42 3[42 42 42 1[28 23 31[45 12[{}44 83.022
-/CMSSI10 rf /Fe 131[83 1[37 44 44 60 44 46 32 33 33 44
-46 42 46 69 23 44 25 23 46 42 25 37 46 37 46 42 8[62
-85 1[62 60 46 61 65 57 65 62 76 52 65 1[30 2[54 57 63
-60 59 62 6[23 4[42 42 42 42 42 42 1[23 28 23 2[32 32
-23 5[23 20[46 12[{}62 83.022 /CMR10 rf /Ff 145[42 3[23
-2[42 42 102[{}4 83.022 /CMSY10 rf /Fg 133[47 50 1[74
-50 56 40 42 37 1[56 55 56 86 25 53 1[25 56 55 33 51 56
-49 56 52 11[76 1[61 2[70 1[79 97 5[73 2[79 70 67[{}31
-99.6264 /CMSSBX10 rf /Fh 134[42 1[62 42 47 34 35 31 1[47
-46 47 72 21 44 1[21 47 46 28 42 47 41 47 44 14[58 2[66
-1[81 9[58 61 61 20[25 32[53 11[{}30 83.022 /CMSSBX10
-rf /Fi 137[50 2[38 39 2[48 53 4[27 3[44 50[48 48 2[27
-46[{}10 83.022 /CMBX10 rf /Fj 135[44 44 44 44 44 44 44
-1[44 44 44 44 44 44 1[44 44 44 44 44 44 44 44 44 12[44
-44 4[44 1[44 44 6[44 1[44 13[44 44 4[44 44 45[{}33 83.022
-/CMTT10 rf end
-%%EndProlog
-%%BeginSetup
-%%Feature: *Resolution 600dpi
-TeXDict begin
-%%BeginPaperSize: a4
-/setpagedevice where
-{ pop << /PageSize [595 842] >> setpagedevice }
-{ /a4 where { pop a4 } if }
-ifelse
-%%EndPaperSize
- @landscape end
-%%EndSetup
-%%Page: 1 1
-TeXDict begin @landscape 1 0 bop 0 TeXcolorgray 2220
--242 a Fj(skak)31 b Fi(v)m(ersion)g(1.2)g Fh(Reference)h(Manual)p
-452 -209 4912 4 v Black 452 -5 a
-tx@Dict begin gsave STV CP T /ps@rot 0 def grestore end
- 452 -5 a 452 -5 a
-tx@Dict begin gsave STV CP T /ps@refangle 0. def grestore end
- 452
--5 a 0 TeXcolorgray 452 -5 a
-tx@Dict begin gsave STV CP T /ps@rot 0 def grestore end
- 452 -5 a 0 TeXcolorgray
-0 TeXcolorgray 83 x Fg(Up)s(dating)38 b(the)e(b)s(oa)m(rd)452
-214 y Ff(n)p Fh(newgame)452 313 y Fe(Initialises)28 b(the)g(b)r(oard)e
-(to)i(the)g(op)r(ening)f(p)r(osition.)452 437 y Ff(n)p
-Fh(mainline)p Ff(f)p Fd(SAN)g(moves)p Ff(g)452 536 y
-Fe(Up)r(dates)33 b(the)h(b)r(oard)d(with)j(the)f Fd(SAN)g(moves)39
-b Fe(and)32 b(t)n(yp)r(esets)h Fd(SAN)g(moves)452 636
-y Fe(according)26 b(to)i(the)g(curren)n(t)e Ff(n)p Fh(mainlinest)m(yle)
-p Fe(.)452 759 y Ff(n)p Fh(hidemoves)p Ff(f)p Fd(SAN)h(moves)p
-Ff(g)452 859 y Fe(Up)r(dates)32 b(the)g(b)r(oard)e(with)i(the)g
-Fd(SAN)f(moves)38 b Fe(but)32 b(do)r(es)f Fc(not)39 b
-Fe(t)n(yp)r(eset)31 b(the)452 958 y(mo)n(v)n(es)37 b(|)i(this)g(is)f
-(useful)h(for)f(commen)n(ting)g(a)g(game)g(where)f(y)n(ou)h(w)n(an)n(t)
-452 1058 y(to)29 b(fo)r(cus)h(on)f(a)f(certain)h(p)r(osition)g(after)g
-(some)f(mo)n(v)n(es)g(ha)n(v)n(e)g(already)g(b)r(een)452
-1158 y(made.)452 1281 y Ff(n)p Fh(fenb)s(oa)m(rd)p Ff(f)p
-Fd(FEN)d(p)r(osition)p Ff(g)452 1380 y Fe(Initialises)35
-b(the)g(b)r(oard)e(to)i(the)g(p)r(osition)f(describ)r(ed)h(with)g
-Fd(FEN)f(p)r(osition)q Fe(.)452 1480 y(The)28 b(format)f(of)h(a)f(FEN)g
-(p)r(osition)h(is:)452 1580 y Fb(<)p Fd(b)r(oa)n(rd)f(ro)n(ws)p
-Fb(>)g Fd(w)p Ff(j)p Fd(b)i Fb(<)p Fd(castling)d(options)p
-Fb(>)g(<)p Fd(en)h(passant)g(squa)n(re)p Fb(>)452 1679
-y(<)p Fd(50)g(moves)g(counter)p Fb(>)f(<)p Fd(move)h(numb)r(er)p
-Fb(>)452 1779 y Fe(The)h(FEN)g(for)f(the)h(op)r(ening)f(p)r(osition)g
-(is)452 1879 y Fd(rnb)r(qkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR)452
-1978 y(w)h(K)n(Qkq)e(-)i(0)f(1)452 2078 y Fe(Note:)42
-b(the)30 b(50)g(mo)n(v)n(es)e(coun)n(ter)h(is)h(not)g(used)g(b)n(y)g
-(the)g Fj(skak)f Fe(game)g(engine,)452 2177 y(but)g(it)f(is)f(up)r
-(dated)h(to)g(sta)n(y)e(in)i(sync)g(with)g(external)e(programs.)p
-0 TeXcolorgray 0 TeXcolorgray 452 2370 a Fg(Describing)37
-b(moves)452 2600 y Ff(n)p Fh(va)m(riation)p Ff(f)p Fd(SAN)26
-b(moves)p Ff(g)452 2699 y Fe(This)20 b(will)g(t)n(yp)r(eset)g
-Fd(SAN)g(moves)25 b Fe(using)19 b(the)h(curren)n(t)f
-Ff(n)p Fh(va)m(riationst)m(yle)p Fe(.)32 b(This)452 2799
-y(command)c(undo)r(es)f(the)h(last)f(mo)n(v)n(e)g(so)g(y)n(ou)g(ha)n(v)
-n(e)f(to)h(start)g(one)h(ply)f(bac)n(k.)452 2922 y Ff(n)p
-Fh(va)m(riationcurrentt)p Ff(f)p Fd(SAN)d(moves)p Ff(g)452
-3022 y Fe(Lik)n(e)j Ff(n)p Fh(va)m(riation)p Fe(,)f(but)i(do)r(es)f
-(not)h(undo)g(the)g(last)f(mo)n(v)n(e.)452 3145 y Ff(n)p
-Fh(continueva)m(riation)p Ff(f)p Fd(SAN)d(moves)p Ff(g)452
-3245 y Fe(Con)n(tin)n(ues)j(the)h(v)-5 b(ariation)27
-b(but)h(undo)r(es)f(the)h(last)g(mo)n(v)n(e)e(\014rst.)452
-3368 y Ff(n)p Fh(continueva)m(riationcurrent)p Ff(f)p
-Fd(SAN)c(moves)p Ff(g)452 3468 y Fe(Con)n(tin)n(ues)27
-b(the)h(v)-5 b(ariation)27 b(without)h(undoing)f(the)h(last)f(mo)n(v)n
-(e)g(\014rst.)p 0 TeXcolorgray 0 TeXcolorgray 2949 78
-a Ff(n)p Fh(wmove)p Ff(f)p Fd(SAN)g(move)p Ff(g)2949
-178 y Fe(T)n(yp)r(esets)36 b Fd(SAN)g(move)41 b Fe(using)36
-b(the)g(curren)n(t)f Ff(n)p Fh(va)m(riationst)m(yle)p
-Fe(.)59 b(Example:)2949 278 y Ff(n)p Fj(wmove)p Ff(f)p
-Fj(Nf3)p Ff(g)23 b Fe(giv)n(es)k Fa(N)p Fe(f3.)2949 406
-y Ff(n)p Fh(bmove)p Ff(f)p Fd(SAN)g(move)p Ff(g)2949
-506 y Fe(T)n(yp)r(esets)44 b Fd(SAN)h(move)k Fe(using)44
-b(the)h(curren)n(t)e Ff(n)p Fh(va)m(riationst)m(yle)f
-Fe(but)j(with)2949 605 y(.)14 b(.)g(.)g(\(or)42 b(something)f(similar)g
-(according)g(to)h(the)g(st)n(yle\))g(in)g(fron)n(t)g(of)g(the)2949
-705 y(mo)n(v)n(e)35 b(|)h(can)g(b)r(e)g(used)g(to)f(describ)r(e)h(a)f
-(single)h(blac)n(k)f(mo)n(v)n(e.)60 b(Example:)2949 804
-y Ff(n)p Fj(bmove)p Ff(f)p Fj(Nxd4)p Ff(g)23 b Fe(giv)n(es)j(.)14
-b(.)g(.)g Fa(NX)p Fe(d4)2949 933 y Ff(n)p Fh(movecomment)p
-Ff(f)p Fd(Chess)25 b(moves)p Ff(g)2949 1032 y Fe(T)n(yp)r(esets)38
-b(the)h Fd(Chess)e(moves)44 b Fe(using)38 b(the)h(curren)n(t)e
-Ff(n)p Fh(va)m(riationst)m(yle)p Fe(,)i(but)2949 1132
-y(do)r(esn't)28 b(c)n(hec)n(k)f(for)g(mo)n(v)n(e)f(n)n(um)n(b)r(ers)h
-(lik)n(e)h Ff(n)p Fh(va)m(riation)d Fe(do)r(es.)p 0 TeXcolorgray
-0 TeXcolorgray 2949 1335 a Fg(Sho)m(wing)37 b(the)f(b)s(oa)m(rd)2949
-1474 y Ff(n)p Fh(sho)m(wb)s(oa)m(rd)2949 1573 y Fe(Sho)n(ws)27
-b(the)h(curren)n(t)f(p)r(osition)g(from)h(whites)f(p)r(ersp)r(ectiv)n
-(e.)2949 1702 y Ff(n)p Fh(sho)m(winverseb)s(oa)m(rd)2949
-1801 y Fe(Sho)n(ws)g(the)h(curren)n(t)f(p)r(osition)g(from)h(blac)n(ks)
-e(p)r(ersp)r(ectiv)n(e.)p 0 TeXcolorgray 0 TeXcolorgray
-2949 2004 a Fg(St)m(yle)37 b(selection)2949 2143 y Ff(n)p
-Fh(st)m(yleA)2949 2243 y Fe(Cho)r(oses)27 b(the)h Fd(st)n(yleA)f
-Fe(for)g(t)n(yp)r(esetting)h(of)g(mo)n(v)n(es.)2949 2371
-y Ff(n)p Fh(st)m(yleB)2949 2471 y Fe(Cho)r(oses)36 b(the)g
-Fd(st)n(yleB)43 b Fe(for)36 b(t)n(yp)r(esetting)h(of)f(mo)n(v)n(es.)62
-b(This)36 b(is)g(the)h(default)2949 2570 y(st)n(yle.)2949
-2699 y Ff(n)p Fh(st)m(yleC)2949 2798 y Fe(Cho)r(oses)27
-b(the)h Fd(st)n(yleC)37 b Fe(for)27 b(t)n(yp)r(esetting)h(of)f(mo)n(v)n
-(es.)p 0 TeXcolorgray 0 TeXcolorgray 2949 3001 a Fg(Size)38
-b(of)e(the)h(b)s(oa)m(rd)2949 3140 y Ff(n)p Fh(no)m(rmalb)s(oa)m(rd)
-2949 3240 y Fe(The)19 b(default)g(size)f(of)h(the)g(b)r(oard)e(t)n(yp)r
-(eset)i(b)n(y)f(the)h Ff(n)p Fh(sho)m(wb)s(oa)m(rd)d
-Fe(commands.)2949 3368 y Ff(n)p Fh(tinyb)s(oa)m(rd)2949
-3468 y Fe(The)28 b Ff(n)p Fh(sho)m(wb)s(oa)m(rd)d Fe(commands)i(will)h
-(b)r(e)g(t)n(yp)r(eset)g(in)f(a)h(tin)n(y)f(fon)n(t.)p
-0 TeXcolorgray 2887 3717 a(1)p 0 TeXcolorgray eop end
-%%Page: 2 2
-TeXDict begin @landscape 2 1 bop 0 TeXcolorgray 0 TeXcolorgray
-2220 -242 a Fj(skak)31 b Fi(v)m(ersion)g(1.2)g Fh(Reference)h(Manual)p
-452 -209 4912 4 v 0 TeXcolorgray 452 78 a Ff(n)p Fh(smallb)s(oa)m(rd)
-452 178 y Fe(The)c Ff(n)p Fh(sho)m(wb)s(oa)m(rd)d Fe(commands)i(will)h
-(b)r(e)g(t)n(yp)r(eset)g(in)f(a)h(small)f(fon)n(t.)452
-305 y Ff(n)p Fh(la)m(rgeb)s(oa)m(rd)452 405 y Fe(The)h
-Ff(n)p Fh(sho)m(wb)s(oa)m(rd)d Fe(commands)i(will)h(b)r(e)g(t)n(yp)r
-(eset)g(in)f(a)h(large)e(fon)n(t.)p 0 TeXcolorgray 0
-TeXcolorgray 452 605 a Fg(Notation)38 b(and)e(mover)452
-743 y Ff(n)p Fh(notationOn)452 843 y Fe(The)28 b Ff(n)p
-Fh(sho)m(wb)s(oa)m(rd)c Fe(commands)j(sho)n(w)f(rank)g(and)h(\014le)h
-(names.)36 b(This)27 b(is)g(the)452 943 y(default.)452
-1070 y Ff(n)p Fh(notationO\013)452 1170 y Fe(The)h Ff(n)p
-Fh(sho)m(wb)s(oa)m(rd)d Fe(commands)i(sho)n(w)g(only)g(the)h(b)r(oard.)
-452 1297 y Ff(n)p Fh(sho)m(wmoverOn)452 1397 y Fe(The)e
-Ff(n)p Fh(sho)m(wb)s(oa)m(rd)e Fe(commands)h(indicate)h(|)g(with)h(a)e
-(small)h(b)r(o)n(x)f(|)i(whic)n(h)452 1496 y(pla)n(y)n(er)32
-b(has)g(to)g(mo)n(v)n(e.)52 b(Note:)47 b(this)33 b(only)f(w)n(orks)f
-(when)i(the)g(ps)g(option)g(is)452 1596 y(used.)452 1723
-y Ff(n)p Fh(sho)m(wmoverO\013)452 1823 y Fe(The)28 b(dual)g(of)34
-b Ff(n)p Fh(sho)m(wmoverOn)p Fe(.)p 0 TeXcolorgray 0
-TeXcolorgray 452 2023 a Fg(Selective)j(sho)m(wing)g(of)g(pieces)452
-2161 y Ff(n)p Fh(sho)m(w)m(all)452 2261 y Fe(Mak)n(es)27
-b(the)h Ff(n)p Fh(sho)m(wb)s(oa)m(rd)d Fe(commands)i(sho)n(w)g(all)g
-(pieces.)452 2388 y Ff(n)p Fh(sho)m(w)m(onlywhite)452
-2488 y Fe(The)h Ff(n)p Fh(sho)m(wb)s(oa)m(rd)d Fe(commands)i(will)h
-(only)f(sho)n(w)g(the)h(white)g(pieces.)452 2615 y Ff(n)p
-Fh(sho)m(w)m(onlyblack)452 2715 y Fe(The)g Ff(n)p Fh(sho)m(wb)s(oa)m
-(rd)d Fe(commands)i(will)h(only)f(sho)n(w)g(the)h(blac)n(k)e(pieces.)
-452 2842 y Ff(n)p Fh(sho)m(w)m(onlypa)m(wns)452 2942
-y Fe(The)i Ff(n)p Fh(sho)m(wb)s(oa)m(rd)d Fe(commands)i(will)h(only)f
-(sho)n(w)g(the)h(pa)n(wns.)452 3069 y Ff(n)p Fh(sho)m(w)m(only)q
-Ff(f)p Fd(piece)e(names)p Ff(g)452 3169 y Fe(The)33 b(argumen)n(t)e
-Fd(piece)h(names)38 b Fe(is)32 b(a)g(comma)g(separated)f(list)h(of)h
-(names)e(of)452 3268 y(pieces)24 b(to)g(b)r(e)h(sho)n(wn)e(using)h(the)
-g Ff(n)p Fh(sho)m(wb)s(oa)m(rd)e Fe(commands.)35 b(White)25
-b(pieces)452 3368 y(are)30 b(named)h Fd(K,Q,R,B,N,P)38
-b Fe(and)30 b(blac)n(k's)g Fd(k,q,r,b,n,p)s Fe(.)47 b(Note:)c(called)31
-b(with)452 3468 y(no)d(argumen)n(ts)e(all)h(pieces)h(are)e(sho)n(w)n
-(ed!)p 0 TeXcolorgray 0 TeXcolorgray 2949 78 a Ff(n)p
-Fh(sho)m(w)m(allbut)p Ff(f)p Fd(piece)f(names)p Ff(g)2949
-178 y Fe(The)33 b(argumen)n(t)e Fd(piece)h(names)38 b
-Fe(is)32 b(a)g(comma)g(separated)f(list)h(of)h(names)e(of)2949
-278 y(pieces)h(whic)n(h)f(will)h Fc(not)40 b Fe(b)r(e)32
-b(sho)n(wn)f(when)h(using)f(the)h Ff(n)p Fh(sho)m(wb)s(oa)m(rd)d
-Fe(com-)2949 377 y(mands.)37 b(Note:)g(called)27 b(with)h(an)g(empt)n
-(y)f(list)h(no)f(pieces)h(are)e(sho)n(wn!)p 0 TeXcolorgray
-0 TeXcolorgray 2949 608 a Fg(Move)37 b(a)m(rro)m(ws)2949
-760 y Ff(n)p Fh(p)m(rinta)m(rro)m(w)q Ff(f)p Fd(from)p
-Ff(gf)p Fd(to)p Ff(g)2949 860 y Fe(Dra)n(ws)27 b(an)h(arro)n(w)d(on)j
-(the)g(last)g(t)n(yp)r(eset)g(b)r(oard)f(from)g(the)h(square)f
-Fd(from)j Fe(to)2949 959 y(the)e(square)f Fd(to)5 b Fe(.)2949
-1101 y Ff(n)p Fh(highlight)p Fd([ms])i Ff(f)p Fd(squa)n(re)25
-b(list)p Ff(g)2949 1201 y Fe(The)j(comma)f(separated)f
-Fd(squa)n(re)h(list)32 b Fe(will)c(b)n(y)f(default)h(b)r(e)g(highligh)n
-(ted)f(us-)2949 1301 y(ing)k(a)g(thic)n(k)g(frame)f(on)h(the)g(last)g
-(t)n(yp)r(eset)g(b)r(oard.)46 b(The)31 b(optional)f(mark)n(er)2949
-1400 y(sym)n(b)r(ol)f Fd(ms)36 b Fe(can)29 b(b)r(e)g(one)g(of)g(X,)h
-(x,)g(O)f(and)g(o)g(in)g(whic)n(h)g(case)g(a)g(cross)e(or)i(a)2949
-1500 y(circle)e(is)h(used)f(to)h(highligh)n(t)f(the)h(square.)2949
-1608 y Ff(n)p Fh(p)m(rintknightmove)p Ff(f)p Fd(from)p
-Ff(gf)p Fd(to)p Ff(g)2949 1708 y Fe(Dra)n(ws)f(a)g(b)r(en)n(t)h(arro)n
-(w)e(from)h(the)h(square)e Fd(from)j Fe(to)f(the)g(square)e
-Fd(to)5 b Fe(.)p 0 TeXcolorgray 0 TeXcolorgray 2949 1939
-a Fg(Customizations)2949 2091 y Ff(n)p Fh(newsk)m(aklanguage)p
-Ff(f)p Fd(language)p Ff(gf)p Fd(piecenames)p Ff(g)2949
-2190 y Fe(De\014nes)52 b(a)e(new)i Fd(language)j Fe(for)50
-b(the)i(input)f(of)g(SAN)h(mo)n(v)n(es.)105 b Fd(piece-)2949
-2290 y(names)52 b Fe(are)45 b(the)h(upp)r(ercase)f(letters)g(used)h
-(for)f(the)h(pieces)g(in)g(the)g(or-)2949 2389 y(der)59
-b(King,)66 b(Queen,)h(Ro)r(ok,)f(Bishop,)g(Knigh)n(t,)h(P)n(a)n(wn.)129
-b(Example:)2949 2489 y Ff(n)p Fj(newskaklanguage)p Ff(f)o
-Fj(da)o(nis)o(h)p Ff(g)o(f)p Fj(K)o(DT)o(LSB)o Ff(g)28
-b Fe(de\014nes)35 b Fd(danish)g Fe(as)f(a)g(new)h(in-)2949
-2589 y(put)29 b(language.)2949 2731 y Ff(n)p Fh(sk)m(aklanguage)p
-Fd([language])2949 2830 y Fe(Cho)r(oses)e Fd(language)32
-b Fe(as)26 b(new)i(input)g(language)e(|)i(defaults)g(to)f
-Fd(english)q Fe(.)2949 2972 y Ff(n)p Fh(mainlinest)m(yle)2949
-3072 y Fe(Activ)-5 b(ates)34 b(the)f(t)n(yp)r(esetting)h(st)n(yle)e
-(for)h(the)h(mainline)f(|)g(this)h(command)2949 3172
-y(can)28 b(b)r(e)g(rede\014ned)f(if)h(sp)r(ecial)f(requiremen)n(ts)g
-(for)g(the)h(t)n(yp)r(esetting)g(exists.)2949 3314 y
-Ff(n)p Fh(va)m(riationst)m(yle)2949 3413 y Fe(Similar)g(to)f
-Ff(n)p Fh(mainlinest)m(yle)g Fe(just)h(for)f(the)h(t)n(yp)r(esetting)g
-(of)g(v)-5 b(ariations.)p 0 TeXcolorgray 2887 3717 a(2)p
-0 TeXcolorgray eop end
-%%Page: 3 3
-TeXDict begin @landscape 3 2 bop 0 TeXcolorgray 0 TeXcolorgray
-2220 -242 a Fj(skak)31 b Fi(v)m(ersion)g(1.2)g Fh(Reference)h(Manual)p
-452 -209 4912 4 v 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray
-452 78 a Fg(Game)38 b(sto)m(rage)452 214 y Ff(n)p Fh(savegame)p
-Ff(f)p Fd(\014le)25 b(name)p Ff(g)452 313 y Fe(W)-7 b(rites)27
-b(the)f(FEN)g(string)g(for)f(the)i(curren)n(t)e(p)r(osition)h(on)g(the)
-h(b)r(oard)e(to)h(the)452 413 y(\014le)i Fb(<)p Fj(file)42
-b(name)p Fb(>)p Fj(.fen)452 534 y Ff(n)p Fh(loadgame)p
-Ff(f)p Fd(\014le)25 b(name)p Ff(g)452 633 y Fe(Load)i(the)h(p)r
-(osition)f(stored)g(in)h(the)g(\014le)g Fb(<)p Fj(file)41
-b(name)p Fb(>)p Fj(.fen)452 754 y Ff(n)p Fh(sto)m(regame)p
-Ff(f)p Fd(name)p Ff(g)452 854 y Fe(Stores)27 b(the)h(curren)n(t)f(game)
-g(p)r(osition)g(using)h Fd(name)33 b Fe(as)27 b(reference.)452
-975 y Ff(n)p Fh(resto)m(regame)p Ff(f)p Fd(name)p Ff(g)452
-1074 y Fe(Restores)g(the)h(game)f(previously)f(sa)n(v)n(ed)g(using)i
-Ff(n)p Fh(sto)m(regame)p Fe(.)p 0 TeXcolorgray 0 TeXcolorgray
-452 1262 a Fg(P)m(ack)m(age)37 b(options)452 1398 y Fh(ps)i
-Fe(Includes)f(the)h Fj(ps-tricks)c Fe(pac)n(k)-5 b(age)37
-b(in)i(order)e(to)h(mak)n(e)g(ornamen)n(ts)452 1497 y(on)g(the)g(b)r
-(oard.)66 b(Required)37 b(to)g(mak)n(e)g(the)h(follo)n(wing)f(commands)
-g(w)n(ork:)452 1597 y Ff(n)p Fh(sho)m(wmoverOn)p Fe(,)26
-b Ff(n)p Fh(p)m(rinta)m(rro)m(w)q Fe(,)h Ff(n)p Fh(highlight)p
-Fe(,)e Ff(n)p Fh(p)m(rintknightmove)p Fe(.)452 1718 y
-Fh(pso\013)34 b Fe(Do)r(es)27 b Fc(not)36 b Fe(include)28
-b(the)g Fj(ps-tricks)c Fe(pac)n(k)-5 b(age.)452 1838
-y Fh(mover)29 b Fe(Issues)e(the)h Ff(n)p Fh(sho)m(wmoveOn)d
-Fe(command.)452 1959 y Fh(movero\013)34 b Fe(Issues)27
-b(the)h Ff(n)p Fh(sho)m(wmoveOn)d Fe(command.)452 2080
-y Fh(notation)g Fe(Issues)i(the)h Ff(n)p Fh(notationOn)c
-Fe(command.)452 2201 y Fh(english)41 b Fe(Mak)n(es)f(english)h(the)h
-(preferred)e(input)i(language)d(|)i(the)h(only)452 2301
-y(de\014ned)28 b(language)e(at)i(the)g(momen)n(t.)452
-2421 y Fh(st)m(yleA)g Fe(Cho)r(oses)f Ff(n)p Fh(st)m(yleA)g
-Fe(st)n(yle)g(for)g(the)h(t)n(yp)r(esetting)g(of)f(mo)n(v)n(es.)452
-2542 y Fh(st)m(yleB)h Fe(Cho)r(oses)f Ff(n)p Fh(st)m(yleB)g
-Fe(st)n(yle)g(for)g(the)h(t)n(yp)r(esetting)g(of)f(mo)n(v)n(es.)452
-2663 y Fh(st)m(yleC)i Fe(Cho)r(oses)d Ff(n)p Fh(st)m(yleC)i
-Fe(st)n(yle)f(for)g(the)h(t)n(yp)r(esetting)g(of)f(mo)n(v)n(es.)452
-2784 y Fh(tiny)h Fe(The)g(b)r(oard)f(is)g(sho)n(wn)g(using)g(the)h(tin)
-n(y)g(size)f(fon)n(t.)452 2905 y Fh(small)h Fe(The)g(b)r(oard)e(is)i
-(sho)n(wn)f(using)g(the)h(small)f(size)h(fon)n(t.)452
-3025 y Fh(no)m(rmal)f Fe(The)h(b)r(oard)f(is)g(sho)n(wn)g(using)g(the)h
-(normal)f(size)g(fon)n(t.)452 3146 y Fh(la)m(rge)h Fe(The)g(b)r(oard)f
-(is)g(sho)n(wn)g(using)g(the)h(large)e(size)i(fon)n(t.)452
-3352 y(The)20 b(default)h(options)e(are)g Fh(notation,)i(no)m(rmal,)i
-(pso\013,)h(english,)g(movero\013,)452 3452 y(st)m(yleB)p
-Fe(.)p 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 2887
-3717 a(3)p 0 TeXcolorgray eop end
-%%Trailer
-
-userdict /end-hook known{end-hook}if
-%%EOF