%!PS-Adobe-2.0 %%Creator: dvips(k) 5.991 Copyright 2011 Radical Eye Software %%Title: informator.dvi %%CreationDate: Thu Jul 18 23:26:38 2013 %%Pages: 1 %%PageOrder: Ascend %%BoundingBox: 0 0 596 842 %%DocumentFonts: CMR17 CMTT12 CMR12 CMR10 CMSY10 CMSSBX10 %%+ SkakNew-Figurine CMSS10 %%DocumentPaperSizes: a4 %%EndComments %DVIPSWebPage: (www.radicaleye.com) %DVIPSCommandLine: dvips -o informator.ps informator.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->EE %% 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 /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 %% %% 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 %%BeginFont: CMSS10 %!PS-AdobeFont-1.0: CMSS10 003.002 %%Title: CMSS10 %Version: 003.002 %%CreationDate: Mon Jul 13 16:17:00 2009 %%Creator: David M. Jones %Copyright: Copyright (c) 1997, 2009 American Mathematical Society %Copyright: (), with Reserved Font Name CMSS10. % 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/CMSS10 known{/CMSS10 findfont dup/UniqueID known{dup /UniqueID get 5000803 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 /CMSS10 def /FontBBox {-61 -250 999 759 }readonly def /UniqueID 5000803 def /PaintType 0 def /FontInfo 9 dict dup begin /version (003.002) readonly def /Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050\051, with Reserved Font Name CMSS10.) readonly def /FullName (CMSS10) 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 78 /N put dup 82 /R put readonly def currentdict end currentfile eexec D9D66F633B846AB284BCF8B0411B772DE5CD06DFE1BE899059C588357426D7A0 7B684C079A47D271426064AD18CB9750D8A986D1D67C1B2AEEF8CE785CC19C81 DE96489F740045C5E342F02DA1C9F9F3C167651E646F1A67CF379789E311EF91 511D0F605B045B279357D6FC8537C233E7AEE6A4FDBE73E75A39EB206D20A6F6 1021961B748D419EBEEB028B592124E174CA595C108E12725B9875544955CFFD 028B698EF742BC8C19F979E35B8E99CADDDDC89CC6C59733F2A24BC3AF36AD86 1319147A4A219ECB92D0D9F6228B51A97C295470093CA270C4488BB4EB864B48 63941B9739638D2E6F3CC778582B46AEB4E466D89D1C211225274356A4BC90F3 274C6AA56E200249B7D0949A3FD4185DCB3E5286910EFD7CA72D5D8E8052C96F 388D12094B87D3705CE64459558CF024667C0FE96CBB32B0BC9E51037D7BD62B E4B05FF99384E71D78441A79B0B1DBA1CAE02434A9FAE46596FB86B873B1670D AE0BAF516445A0DDC127F8FF3ADA0B10EC30A9CC1F7E9248828B5E8AB46C3FE4 154B80A54128A08777F5F9B8C519C7E3B632B3476F007FA156E9F39FBE57638B 4214CD2BA79BA9DDA0F4C073AED814ABCCC2F7906C57A872C00E67FF03AC1200 29DAB92376422FA21C67CA98BCEB8C431CA2D3EDDC16972F84BF6DB2F705BAB5 CAB39C82D139FB1304B9E7BF1F6FF447596081D5690B1519E468D6BE49C329C5 C9C809023EDEB9DCE4A6D52A8049E0CC134E8B41BFC6558CFCAD3D9D2773EA16 131567AE6231B3235869767A1E7C1FA6C8D6FC1B276CBB1CAD14D376188C9682 302836A9290E587D4225EB8BB1DBA2C4580A81FACFDA197174FE948CE757C575 F23070FD84DE121955D7D9307BF986C5E739FFFB6CB76822C341FBD9FC2E3378 AC9332B40C07D5B8745D74E30F1D719EAFAEDBF5FBC40D0546F69A66072D8A49 28D2CC2E76B9B1EFD191E0BC7510C2C8761BD92EFCFDAC263342A01398A56D18 121A591FF5CD4AD8B25699A7897E60BA940336BC17B9EC9F97C2464D031F958A A3548D0C97C50C580B6EEFD0FE8330EE2BB0D2E7FD1DAE33448953544A4B1C5D 8EB57798D0ED4B22909FEA78ECDBC4D8A124DA05B9999242D68681017285A0C7 69041C1F79442279FBE328733EA0A6694D68BA89739FDB9297BE0CF1808C07F7 BBF6F1538DFE084EC8C0EC24D883F6CC08A51DFEA23EE920F44BA55FFF58E960 C7BEE551FCD2D5814DE7E3F835608073C2CB80EC57100CFD484C837881674E92 B217F4D11165427DACCC29C129005874C05CDE5FBB2D912368EA2B98C45AEDD8 8A0D2493F60EF36809C8C6EBBC7856F6656E8D398BCB29DAACD4F7D4300A0B01 161CEF51195D2C58DDFBCAFC1C03F49304ADF02789889826F1E20BCC14827565 F2A45CA57DCC61B52E33638A0C6C5A59B145E82B82571DF1806EC40FC0E8634E A34A791B1325571E19F3AC2EF6FE68A14B0ABEF7EBE0EDA3942E85E5AE967A14 0C5AEBFF2A36DCA8866700CB7082D2ABE470864C44AEE1F6D180D511304C8674 D02FAB12A7079ABF96E1CA3CDF9D75532123E87663B1D524265AEF63EB5C2169 B67A651A101E1C7EDB008D3DB06DB1FC1A81B41B291D6C4A58FB57989FFCA434 DA84B3914D1D80B17AA3A55A70BBC06C49DD5F7DDD03FEB0055088558FA192A5 261477899857CF598DB740E82D035E84CF17B33048CFED2DCBEBC2B75CCAEBEA B6C5AA1C6978FBB36ED98D9047028360ED430A0AA69AC85A8F83825EA649E1B2 64B260197B06A24A1DD969CEEEE136FB046D713D0630B246BD41CA285F076038 F7F8431913BB9A3E70311844D4C22AA446E3CA217A9DFD75A898997130269B29 AD4AB7D9662856E677FB2DAED7078639CF31C6E6637C74DE2B5D0ACB88BD61F3 CE3C5D56D3D4B3EC1ACB33EACBE05E53A133EBFE93CE6A0CBC8F24BDC5B31BBF 5B3E55D6B40B1CED389076014667E28BBBD60145A06BDECEE8011A2C6F06D091 73767A8045CEF2A110B614149FEE783A2351FB2938A9F73CA406538EAD82ACC5 A3DFD3DE00221E1B4EA977AF8C89661357FF7D2F1FCEAD6CFC9D6AD81F95100D EA1F328249AD84AE849220E6593D45015B4D7C9527F3063E9F6DB6E572092A1F 1F460696227D5F0FA5A5484B1F0D8B4A35066451663BE448D924DBBFD388B6D6 D7CFC87C9E75B7CF79A4C9207E29E0BAAAD7FDF529B860F7731EA978E335334C 13CB2F0A4250F5957B44CAA0674AE8356F586A24FD137103973B9A1FC31090C7 C84DC5D380404BCDF3FE20C6F74FFDD8BD1DE845E99DC6FE09931F003834ECC8 08C5D962070B6C44F901A787CCEF048A2C584A2285506B4D4E82B1BF130E2220 B6C8B3240A4CBBCE16AD3676B23A50B75F82CD88D1B8F21D30A12716426112B3 23DFDE5A348DC9DCCCE5BB5DB5433A5AC125DE1229FFAAE0D8319B2929986EEA 56A93BA1FBDBE617F30852A3DC8C712DF674169C6D656F75E252187A085B2788 2467CC4DB08D48EE6A98C61BC55E6EFB1938FAA718802B7587B94C8F1477E9BB DCF6E02B5E67FE3AD9D87C321CD9BC0CCD36B9C4BC601E6BD552EAB8E1C940CE 3A22F3C2501C3C939CB4F17CE97566F0A04602D2A22A05CECDF4A49CAFD6332D 5870E1F31AAA5F86867F71610CDB83E473B9D20BA00D8986D7148E0EED03865D 9622864B52B09D12E0C5FCDD023D29D5AB1CACFA92B6FC14FC84E95F407861D5 2BEE3301AF399FD7ED04DFDE6679A345A282E7FC08D47E3FC8969D3B00ACD7B7 F8769647D6D4F4106340EF739583374D023C2702C48FAC1B643B5897D2D7DBCB 73257712A0FDEEEB98A021D218CDDEBBA34687E23C4828D7F96D1ADDFAED7EA5 B279322E6D55FB486AD8F3A8E7B2C67915564FE56F0C9277A06B29C47FB7D007 11AFDDB3FC1B173B4E449CC6B198041CCA0624D81B4840FE5B63BE72157AC6E7 03E5E95D2E2CE2E40BCE8044A8F2AA45F855484A891B9F0F8F70188AC66A8DEE F4D656CBE216E6D9AC33BA8DD0685D480833E1226784469A221D9FA3CA600AC7 5574B5226649A9C48CCB43339942FC9010F86BAA2D181AEB487A92A96BF2EDF1 60F3B93FDFF4137A25A8AEC5ADF8613019CDB103DC4367EF3D8AEB4FED0E6BF7 622AE0CD3CAA0321D26CA4280CFB60D08D9560AB8AA5698231171B881BE9A27F BDCF3162134126212C523738D221AA05E31CEE73D9D40F73C450B6AE2C1E70D5 C37162BDF55943069923A290A6C720042566E55A21CD81C460818883AB016C16 8FCCD1255A66977DC1C110261D7642199D466DD3D2493A2D47694F842241C474 1752B00DA03E69CD16A8A14BEB8A431A315D19A39BA978E46EB1189089FEF647 F9DBB58AAE6B3FBD475E4DCAD241A051DD100ABE81D40ADF18A4C50F53BF749F D6F7C8E02A5665B4AD18DDAE79096DD447F8BD32C68F9F97F05E0071D9E9AFEE 257B96D48ABD9920418E17C8F027E9E975E4A08DFB1988E7104CBBC1CAF356EA 7750AA7110BE116AF1BA69A94776E4356573B38472A8A1292C63701543B0F315 611A0E0595B30424A1137478BA6F990AC7C3AB4DB69E75C222B617F373C521D4 246E954E9857AF59D1E6C36412B643733CF5E1C90389EF0E5E0DA55D3AD12E97 E7630C315F72A03CAF22E0ACE3AAAFC1D496CF4E5ABC49C2DD5E264BE7EB2698 AFF36089B5DD2C53DB1C1FCFBE1E89D41A95DDD278CEB29DC85FD1DB8B83CAB1 EB37C531E9BB8466ED6B8B60258D3C355626CDA43A32834DC89DFB11E5FC6D68 0F78CFA871113DB81A1690250A6F842ADA15734CB6DF7C6ACED6D8D586BC4E1A 94EF3052FB0F8B9454390B882CBB6E135AF1F9C777AC362C2A758C3A98117120 73C6E2FAFB580716D4B2889A4331CC658AAE996245685B973D9C184541385680 AEC2956107DAB00230FB39BE98D3CA898D917E5F2088F26CBA4F8B5B115B6443 8753331233B10852702FC26D9DD4C990C13CE4D0DCEA23D62A826A4B4FD16070 5F3638C0A50A3373A33FCAA6F3644975AFD0560EE5F2D1CDF08820373468E4FE 6679A229D6955CFDF7ACAA92A87E6D8571AD18CF59F84F88A674B2946FF20A28 B9798EAA22442415EB46B9498DDC0F4BA6ADD347AB43E9293CAABEAE80127378 129D5DC69F6DFFBDAFA5D65580239E8EDF6833D0DE6DF75F0FD090A83CE0974B AC947BABBD1B1C7194DDAEA37B0CAB477ABF9433FCE0243C8D308409427D1DCB 8EE4FC36C7E5CEE104904B520B3F6E677A5B92F694BDBC2C799991667E0EC14C B95EAE7DE1854BF4542F05B4AF401CF67FC3E46EA5A0DC362F3CF177B1796DA6 753AA803E724D1721DDD1BCB0C12CE0859E172D2A370C3697286F80D9E138AFD A0EE016805F847BD30D11D8B891E54C77AB51A7CABF76BB14B06153C7F811FE4 93FC4B7CF161051A458EDF767DF94F487DB939A2740B4242BFEE234F75084DDE 207E84533004B933D43C712F0C71DA4A00FFD6D721EBC93AFDC4200E3B8DE433 3ED3E1DB799BAA27548ADC853AFF5D9D6BD92D644E3CF394789C99D9DC054A26 7770AF5DC5BD6563929AE11BE341F036584DD573D3F43D9D975201EF77BEEF80 D1EEDD1D4AD5D4D4DAF6D5B9D4C1736CB111D6FC74C236779C0ADA430323A825 09EA8D0CB1772220AF28B93098BDB36913159208D1B2D7ED45808BF7B686419C 5C0E3DAB5BC9830FDF3B494D624EE8068BF6F5212BD69EF466B9A213047BD105 B848F056DC544A8CE66C546B1A4DCB4BA29CF0EB4DCD9C2452F22172AFF33B29 E97E12D8F0D312B03BD9E5377BF0C81D884F1E79DB66E8144F106DFD2579AD26 C693C5B68F3AC46BF0D6281032D4D4BAEB2243151AB1AC0BDA2ACDDD4D590C90 F29B335DF8F57DC593DCC081FB56924028E3161AC4865B49D1B0F63F5EE866D9 7A71171C09B09A44B0E32F03494D9EA63F3C89F5E772BE25A6557F119299E989 99BA041694ED805AA4F3BBDF00D88171C9D43A9085A287A36A1F0F9386F2A98A 96815CA51F06E1CDF20B757983C5FDF4003F5438232159F325C6335B734FD982 1423BA77D0EFD044381AFBD0704E3DE95D23A70E2428E9AA355A9A8A25C6C74B 48488C14DEC93A766E112D74C83576ED355F17A809E8D3F9C65C4E3E14EF484F 4658DFB57597E2A4461D8044E95844391C1275D63F282B37888C842A5151937A 45007547263D70195ACC018A373D498B88C5A028BC66ED96A343EEE74D61EEB3 D9472B6A549CEB8699F4B35154A0E2ED22867E4F9E4A76311EB2C9F9078FBA81 838EA49C2966BA64C165434DA3093206B70186BE80600B891D9979F730FDC794 5DD6D8B2090CC67A634B719F441092A10C447A86ADB78DAE45823ECED5FCEADA ECA52E363D913D9EFC0ED98A5A1F823DDA3350EE27F09C14E4C7298CC0FB6200 DEBC640C68C82D70AFB7A7BA668F1D7948686206884736CD03D9F6E6CF9702BF E3C932CEF3CE07FBBFCEC0476EA6E8D5D4C5C6450C8FB236B89BB82D51886240 5BA7462F50A88F69228DCBDF26B7250E90B3DF8E94ACA1CADD9EFB5C73EF9DD5 46052314D445CC92512BA231F79A09A2F0D91976B160B8C9BA055DA4AAC1300D 491193EC66A6DE12BE01EEEDBC3A2291DA1F27AB76596A236B75E19FC5F1FB6A DA1AD835CA08B6CD03B97B4CA1BFCBDD2500BB09F1A1B0438E4A759370EFA318 F062BA9F3D352572CE232E6FBADDAA5363807D0DC5320B807FE5485C8CB09B6B 0BED9F5B1300FF370252DEBAC9DB25CE2EC494E8EEA45FC6604B3C104E81B287 EDD49F3D7430EC9176A16B4FCEC5DF68DCC11ADF90BD5337E2E4B59BEFAC8298 E5ED2C7FC5928635420FB1955251932713236DCE28012C86F63D12AF1DB634D0 0B8CB8992B8723548177BD6822A808FF221A9E38B0DCCBC1F3430A9BAEDA89CD ACEBBDD8CCA5E17F1CC37E35A01E058BAAAB6BE7124314DA19962BADB74EE73D 8FB13FF6AFB6FFF97926CA045B62B98BAA753AB0FC78B881D3FAFF9EE2FE918C 8EDBEF87637F1530E3E13AC090FF81F4136E08D5F3734327E643CDF621278741 A17AEBC56E21217888A6C8B5ED4269731910E7E25693CFBDD4EB4A32698F2447 4C45D73E810B627D8719E4E34D8FF378F9B68BFB149AC67B3B1E55F20D097FC1 AF74D46F5A3923C63DFEBFCA210F6B257F5FF3F2AC34CE41C15C9977634E473C 2235295C05C3DF6B3009C7854BF11CC87471CBE085793AF9C5D05C5479B9E780 14A5A6F3F6DDE5A18243DA15732CCF26ADE40C566DBC3C62B71D46DE87A12C6A 647CAC923254E2E74AF882DBD5C9E108A9160393C5CD12566AF7C824EFEAC56E 6F05B92C73A76824C5ED1735BCBAC61B98D509250C854CF1500C212F574D18D6 4426B8510FE9785B814A70E75C9234D42483E736D0689D3561E8EE5650F33A36 D50127589401D267BA6442E8616E2CDB1F6691D3FC4A2A377E5E154972E890DD 60CB463E9EA9A6EA61087DF452FA5646F69BE879337EAA0F5DA4438FF0365627 4E3B16851C2F08E976FDA27AF451CCEFED00376FC3D6E0C160F0BC19544DE289 BECEEF9A067FD71D54DA3A4F73F06E2F522BA07551296214DDA47B1BBB1212E0 1100ACB5F65FD30C655A3402C83058F8ECFE48FA60B6A3DC86C4996414130194 6676EC7F37454023AB53E9D9EE60249ABF6953E76DCE3123DD268BBD492412BE 65D7C3E5A5E483C381182A8F19B506F0AF6DCD55532B89852D1D96021B22E9DF D9D072BD7DD4450577E658B433A84F92752B260AFA2EC4A118747CBFE36AB7D7 6D5DD96A119AA1BDD0FDCBC3AFDAE5FF72713EB46759A06CD09B5CFABCDAB0E9 85599506AC07AA525978AB157496163AAB387F079EC9FA1F9E91B9C2FBCDC9EC 7027D77016760539AC03F1C1DB242D28D6EE946C42DD2262D82ED48C3A839853 BA977046F0EF373AFF884AC3112D2FB319421C3165DFA5710BFB9AB9595A10F4 9D05704B9E22137CF27F4B2DA9CEF6D8801D5F792969B2E58FB539B8038DF440 6DE20C0313A7BCD16F279290AD6859B0E657CC3041C7928CAE35B9D3A681F2A3 2D40F8EDAF1127E754276556C95E1282514B6EB6E43FF4F0FAFF28C715E3F39A 374415B62C1F5F8E31E006D6ABC736057910A3729AC60360CEE1B2C8D9F77336 39CAC45329A372205FD551B9E9EA5082411207473D9D90E76136AA70180172E6 AF6EF3EF6B38B1906B904BE9BD5251EF067738840C28877659B649C6C4CA328F 1BEF8A9CEC2CB062702F58CC0B8D2D097FBC278F9FD894E10ACE1DEC4530CBF8 E4E467B6DB9C596DF0C3D43E6AD70F30B733EEE692C2EBD68756D0C16E1F00B6 AD011B5DA073A769B53C2DA2E7C9B7ADC6F551BF4DF4C39C66443692C3DC62CD B1E094013F364D04BE2FBFCD1C7B2836180E9022E0434421FFA4317A50096684 CF0B8740EF680F27F4A84AAF2AA92C64883BAF57BDC60C6467A8D4E09E6316FF 9BE73053045E5F3586DA3BD1298DC15D751913FB1E72EF80047F6B33591B97D3 DFAD34EB224D64EF60F5B4ACC6EB42E1BE0CB2812FF2F3C264AD2E44F5EBA441 670CA0A60E73176ACDC4E42E74F8F489C73481EB5D46A61FDA1C0FF9F8844DBD 99CECAFE2A72833E4522981FA13713AAFAF8F121E60FAA6F379B2C8874CFF23B 8FECE70654E5855E525A403700A96CF7F8111BF2B58386E29640D82F1DD86900 E0E203F3ED554209CBDA2A61A5641D4B39D98C5C43D4575648D06BB82B6C4D4A F043EC61B17C208CE8B4F43A7BCBBE588A3D13A183D79A47404223037FCFA4F1 DD237344E589F161BB9BBF3FAD2E28749350DB9A74C09E894BBCA85B82E704E2 99788B24642A7D0F0FD96601CF1AE4819EBECAB89824A0DC1C03BA4B546ED36E DABC8D49CFAA53D2A9A5DD6B3431E364C99ED0323513476CDCEE49BC413E50BF 51EB93563DC03B62F84C5F96ED713F288D109C79179AEC41424822772032035A 40E84014F5BF40948F05E8562C9CA9DDD71F89021BE238E74781A92D64E5F9E5 AD6C0D954C6686C714BF189E78EE47F1530CDB8376E52631A1A26E3021FAB977 DBF01167266AD68A779C0180E034A90CB77B86747395BE885E484BE4028B4093 8BE191D58D0BF85308C72E6384292A2E1CD06130A091F8AF9DC6C3E12B1E4BA2 BB2C37AB4AAFC0CCC7964C06B9EC1C7E3BDCB6BA265288D9C8625EBA35BD2A49 BC50472D7AE262237FF1EA8D9DEA3C0DBCF7C3B2DF5AFB1F31E46B48E0A8932C AC31A981655ADE717715290110A24F18A9C280B8A1319EDE24430F8B6EE297A6 F0ED9FA62CCCE8D04508EA835C94EAAC87A6B0CB478EAA834FCC96919A168737 09F5AD160CBB4A83185BD3D2FB6C5106F2305408003BB76353291395C141525C C35B34DC64CB57C382F7D293B863AE11DDD537DFB356CD79C3F39958DBDFAF05 C2018325DBCDBFD6799A213DC41DB996D0ED640669724C3B991A648934351F8F C0AFEF6CFFF64A2DC8573FAE4D27F42F684FA9DE66B983C75EE125EF4285686B C079E717409F7C7976421105699CEE6AC950BFB20E66BEFD4E06AF99E0593AE4 5DB4DC8C8832529631FABA0B611F89BA8AB7C42C115A93761D1FFA9B70177543 F76492919E80F0F379EF684F34BAC59C5D2E69B392 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark {restore}if %%EndFont %%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 65 /A put dup 67 /C put dup 68 /D put dup 69 /E put dup 70 /F put dup 71 /G put dup 72 /H put dup 73 /I put dup 74 /J put dup 76 /L put dup 77 /M put dup 79 /O put dup 80 /P put dup 83 /S put dup 84 /T put dup 85 /U put dup 86 /V 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 109 /m put dup 110 /n put dup 111 /o 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 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 A73760A81C686C373ED4475EEF76A3EB467F2EC721D2AB87B492444996764D66 11C2906AAB13B76373E8E10B6C92AD072356BB7172E941756E1B14A5C16D083A 82D271A5844B36522008EC033C9FA37EE6B8E5603A75500223C98D80CB40CEFF CADA7CA565351C3844C7E2958DBE1DDE280A937A108D9D67257E51CFFF296304 3F3E4ECFC71A72240C5C1E3E022AE56DDA20C9BFB9FF931ECEEE556BCC9C4374 EA6B2CCD3D37CD025624C7B916A98BFD34E7811526561FE9C51114475E9EE497 2E9524DC3EB093A2793D553A3B4C13236CBCC78A8F93CC75F90C9189297BEEEC A16244F6181C5C535EC9B0C8DDE504E621B5887FEAAD0F667C7848497110589F AD4265A06A63E61EBF1D02A87587DC7D4030E320C514539B504A31AF3D78D39B A3E59AD1CC7763901191CACF97B56367EF01CDF17E2E5049D46E0C470750BFCA 57392DE2D0CA52013ED065C5F3A6A112882F7F37638E5B2B3893392706CE2027 29FD3E48D7EC7516E263C79D6A97268DA46DF57696DCE0AABC09D1B6E2F91C96 8D4028D2F1E7C5BE558D301C8B082EB07115A8316F68504339A38BC05ECB819E A3FD4EC2887F1635AACF2780AF4067FF1E1EA8D90D4CEEA08E56C7958159C8E9 5855ABD89B67C61781656DD25A7835DD6D0227E8E5197151EFCAAB5DD7E30FF7 1051D6D4967092FDA2997852C9A27A96351DC61E31ABD4A6EA8173FB9DBC2F61 D36C2E4278A20DF0EDC8A8322F6919079AC88C84E75904A2D372030CBE54BDD3 95DBC876109AC6AF2D5DA531182F93B84AB3B31C5908ACF05947F6414AFB850F 043E1D02CD57C8961D1E0EA51C02097026083440BDEC45721D0F6D8C3A1D8CDB 3A7574A94AA0157967D94B4FE04C20B90DA96AB9391B620CE60C015AC73A71E6 84907BBF57AA08BDC107B0B2DC30D3EC4DCA2FB7C7EBBE81AD2A05A0C30B7128 2595FAB8122EC5A75FD78BFD3CE46263505F4BD03527FC4CEC45236399A2BF9C 4A75DB0DBC50D9659B1E1BDD615BBBD2E338012BFED914E88F37F9EBC7171264 E30D7D87E849FECFD4BEEE78024777C8E1E84FA3B14E0B3ABB8A254A1519B911 DBA0A83D0F86446329C71E645D92D02FFFD3B21DFE7CBA87A3B456F5F7063116 C8125C64E8D6ADD54958DF8F45025A36326245B88D01F9C198A4CE29518BE6B0 29A667AFDFA1350FC6EA47AA1D0503F3ACB450EBEC9CEDCC102FCE62F55BF5E1 CAB60218501E2F429EBD905DD8D404E806EF9CB2841F89A3FA1131105F04465F 3C7A2B47C13DEB6707DC7F01AA43592CE1C81B76B5A6E8D9AEDCD79E7F52AC52 19F863695C77C3BD4EEE3493075513CD6EABF0CB9F34F66D6AB84E2B903873AA 286B6431912785DA63C574BB4F80DD6F7A1B493739E58351A85D1EFC7CF4B1DA EB16AEC6E26F10AC985DAEDA799DE2C09C99906E849A107045862E92C0A1B172 7DDE110ADAA6203C01D69D00071EE1E864B33CD3492BC695E3DEF8B9D83DBBE3 FB6A76B628EBD106B163EDF4C6F485BF8E72FF25A3F08E88648F0877AA3C5A7B 8EE6553554CFCB0B613B43E51B3EF00243D4F5302BC5307FA44BD179D6CC2DF6 F1D9C92C198AB47BFB0BFB2250C48A279E3FF00DA2B09FB23038E781924FCD28 5E09D3201E13708B4DC6BE3D81282CEC04A10C21183A73505F7F430FFDFB7BEC 7D0D22743F6AC58394ADB5D8AEF8DF2675AA70E630D7C4477ED33C1F00073852 A5EC09AC1F212DA9E477CCBC8E6C1716E52E196B929FDB397551C60A2DFE9134 F6728BFD04584AD5F748F136D780A0038D253AF86C005E29DECC5DAFF403F153 0BB5E9B2BD15F6748821A9E687A20D232F530144C800F5E130558BFCF480FBB7 79AB12EBA4FA0C5A5719F3835C3F1641805392CF4F189350D9AAF9F2135D0D24 921F112695D50730EACD5D6BA5028C6D183864FD74E6A7194683A2E542231D14 55CC2E7504334B615CFEA5848F643E8C761E78A9A452B4553EBA264C89076644 8B4BCAFA8A4F12421F14A61544CFCEDE9081C08D4B9AD85C6049625BEBBEE60D 4CD2E0D6BFEDAABE6DBA1C5560D573F1CA77FE7746198B5AF514564BBC7E9033 C5356E7A7A8F62B96A0CDBF27E2C2916C93744A3C377EAF002CB86BBC433E39B 354C24AEB7BB943B425F133B57662B87C4476488D31572EB049CAF8014E433FB D4C18175FEE5C84C38A3994F5FB26EC9083C33F1FBBF1991E2A1E9AA0D9B05CF 807C9314BC4888E895BA400402574E4697271DCA742DE26BB025A76966570464 65C3919ECEA9779CBFFBBF640D228A1F5D5EE26D30A945888D3469281CADA471 23D8D3260E1DE2E47A18526DBD971C6E8CE40021549FDB096336531FAB5B0136 B4DCBF4B10B6E56E0492AEBF75CFD32981455521B2E01EA9D83E56E5DA6CFF86 1352B688FA2B790285E7BBB1AE7EABCC786E0EB75F87276BC9B541B07234E7B6 BE219112646CF3EEDBB82A365B137F0C9DFBA0BD9E22BDBCA7C979B94005785E 3FD5715C89C3518CFFC50BD61869C4A56248D078F6D51E3901ECC4ABCAFC7AB2 C71FB50E2936C272C805FD1CFFEE5E22246D1506DA4F3115C9B58CFFCB8F4B87 0A6A9089BC7728FBD8CEDB4A9828B07ADAC517DDBA442309B6B8BF59E3563E6B A2367FA24A141967456DF674F419459A4242708CB4301DFAC108CC8692C89BEF 1D148558F78A9132B26C7C9FA12233D3FB2EC34EEBA0DD7D2BD61029B48039CB 042945A97D0E651FC0D41C42CCB8B66190785C1BC413CD14C32DBC3632DF73B8 2EF140AA01CBC7A4BC5C6ABFD7B17C81BF507191DBCC45C7CDC0B098D7AAAA09 DCED8AD9FBF1A9457BE7193206259EC22C75339488BC5043BC6C2CB070E0EE14 8540CD52542CD19DD6B0396EECBB4F6AFC20FA231F0D7E17BD080C5DEAF24CB0 60AAE5C79D99C0A3C03071E0577DB271842306296AE5BC588C02A3D19DC0F620 AA624139D349E16C0856BC50894855588ED2BFE2BE2740B76B6FF62B3E59EDDD 104E3BF213680CF14E3337C48B6CA8E2E23476F95152C2B7A2F8AAC39D27BC77 6E4FE1F996ECAC2DDF9125199F7CD3AC1F2D3298EB89AC9BC95EB53798FCF67D 2CB01D6FC54423DF2E17F0CF5A9BDCB8CC4C1FBE312D1A3C886E10066F323302 07B273E55CB6350D2942A5C502C7C1D22FA4E883A0E9BC8A75C3D4C23935DBA3 1C4551552C1C3A3F08B7EA4DCF6DB75371235977FED298991765108DAD5D4BD7 074A6411940A3C907511CD71FA45648F78406E164988EB26019CB16819AF47C3 81E52DE64C0A31A242A272C9F2C8EE6C17795CFC5DFF3E680A7A6A9FCA796000 CD734EAB37D86218452A80A189E4D391502FCAEF9D028ACB9BED3E09441FB7CE 6793A4E49E362E506DC6BF5F8201D53D809A02343F19C21499046DBF408FCCAF 53C56B932842843157F3D16CA4EB54F4CD044DA560F9A4BD783E76D80B743344 0DF77397DA7EE6C415BA33B76D6714F7451FBDBDA7941967CC2AC0F89FC6F193 FD58106FF85144D50392B456D16F27C29B16628D12DE23A184A3AAE658CA3E9A 3AE8CEFC800C1AE6F2AD5E359E9B6B6A1DD8DE7EFA161BCFBCC8045423622B20 1C7D14C27693368D56E1C7E6732222B249420E086D66FEC913F6D88AB8C269BF A36F210851A12FF7DE8FB0957428176477D81B345C69BA368057661601791CCF 7BD7D69A7D6D9F3CE13058805D0D25494868FFF19B2FAC8131D00196950CC3A4 276652B08ED8D6546CAD15D591AE8546A71600613D2B425B9FC7F2367CDC2873 81573201614D241D104F6AF3C8B64E9940490108B626629AD01A4D6A7AC6B70F 0D5E32F0241809B66D0D486DD7032B97F4D2D7D0DF4F0AE6CED7E9C695F47B21 C3D9C263BEBAA7A97F9CDA7455C8302CE3D6D89236F7EAA4878C380A9C23AA08 5EE2658FAD7ABC5EF1ADA32BA39E354D0EA4FA9B9E1F8816E340864F1CB46606 6B50A9F99CDF7A70AC0C2BC8958257DED45C453196C030ECF6E89A5F3F741151 96FA7635AE0748141B6CECDE677133C8083A86B10C134D80D07CC3D5C7669FE5 90DE0133EC61893BF4A7F9CAA915EF3AE61EACA5D851EE1048CD6E898DBD5795 3473E2785450012CC8C5409B9A97FDD10D39DAECB64AD7BED77213FDC724DBD1 AC0535ABC8EB9FE0198E15C50E9657FEE8AB00BCABAAC16F6C1560681A7336BD 177FD31EA4840721BF22335AAD835687CADCA97E568F5F36C96D048C3E6C1F52 2C51CEDE2E3B72CE85CF00AB15C85EDE516399992658BC16249FCDA61AD9BFB7 6A48CEB195A36F3B164B9A36EBC3382950671C29AD8854FAEB9F2A372B78155A 9AB70623E9EB7E22117FB9F75897AB9A64C147B713813C902078A8A023F162B0 7B4243FEFDD612762B8516F97A2E8B6F46B55E2C179018E1CF7ABD4A6B5AF9AE CAC2DC12C61D1EEF349C9797CFA9D657C6E8ABD5F6EA7AD4DA037917201125CF 94D32FAB37A89FDBD06D23D3868A6BB62A97A94A45581A5B17012390EC83668B 3655005298BB8FE43A8880DD63E8C8DC37515580E56FF1BB6689CF92C4CC2E2B 61291B3AD25ABE0937C06E8CD548771FE0AD0A0328F49D818D8B96019E73B4DB DDFE56689DCE604A7945F90E74A2F350CD4B76DA2EDAD87EB104DD90AE6CEF31 15A81D31B56A89DBCAA25144D0F225C0640BA06AF3060523DF5C4F45F0534B8E 7A4D80072DA798F8DE379A1330CDEDA5AFD0C337CF041B5D1D4DE7EB013842AB 7F7707355BFBC756DE91EFA187C20C48B3FAB22D770329CFC52169D0769B2D84 BB6CD63D416CA52BC4F502AF72E82FD4AF14569F957253FFA5A1EEC88A92AD1D CD2436B39051A9B7C8AABD16E06003EA07279A17028727087F332C0BCD20BAD3 D13498F3FCD80D0AD210CA291D42B8184776DA936E2736EA5E3DD3FEF1DA02C5 1DAD1C437AA0277075A39A264AA60A18F249036955116918F68B3066C20D56DF 9D04F756430FEFFA73C5C9BEBD609615E3B5EE10BE0CA948722333AEE411421D A06803D8831DF9BB5F6C18CD67F2FF3A59D2382228BE611F62339251111EDDF3 6E7D2DF531FEBC5B36E3AAE726DC7AEDC50D8CD452A2B4DBB0D0D44282F217DB E6FA7EA15975A51E71012FA0226EB22712762546A652A5D6A7BB0BF135F2CBC1 A45449CD6668044181A009EB9DAECE0F6408616ABCD4865D7C3236DFD24F39B5 A29D229495CA4589EEEDB11E5B9322BFD6137A2D35D3AC5B18DABEF24F6126A2 7F53930DA8F839C8D4F6FA20BB2894FA593FF6AF77F4100ECAFBCC2F93662248 7B3C5E1063BD766C9E87722E36F6CFA6CCDF23C41BAD2BDF5E2FF3909CEDEFBF 163F48790D1F3163D67774AB77C24C952E7220C54D7604EA627E90895DA3D059 693D5B4926F09462D6A04AF78B6A28F1B727060BA2BEA51B5DEF0DD4F422FF56 F4AE0CF07CD42A5290AC4C8CFB52030E9664966098E4A7F039CA62FD73A2CCC8 FCBFFD89F74EA9E93981AC75798A20920A01100D01A626ED1AFBBAA7BE93D2A0 B3AE42DA31340398FDBD91CECC02BA6BB4A80DF76BFA27E063C822A33D1B310D 3A48E60F7F1B5755AA9A96332843711A29A78F6C6578495A691C2F9C64F7AF92 B4FD65BA513ECDA3CCCF42A707BDCF13C8A0102A61392450A3B3CD8B94A383AF 35E59FF6FBB28253542C2EA49CC4C2CAE8987BD26718792253B10FD1C78B08DB F58BEE5BB4767E6455F4B7E01DE3DC96D0043865017196131029E1AA3216738F 50CE57D39BF7BC2E92A8635AB8A1E78D963008C30F05D450999AD22469325334 4EFEB187443E6FA78AA0B8019B50C69E4BD1E450DFF172B5E569BE18F516BEC8 ACDE5A5C1BA20577327E90EEEF2796EF9483B79A0D957A79711124C58FFE8E15 307FEB7F219E38A4E44959570B0B184A39D7147E6034E76596395A6A25BD8A13 1B0EAEB44B77A33FDEE7FCB39B9CC5726C984C110EEA36C3BA33798440D48E87 DFEF88CEFF7EABCECD3724451932AFDBCB66E4D9FFC2584730C6C89395719FBF E0A372C5BE40B78A2B4B633D7439A6A50E0526FE708212EA92242FCABE82CEC1 C94A23B335B4A4F4DE82385D348FD1DB4C8C2CB5CA6724385DAD0415699C59C3 545282C9DC4E3FA784087BBF5A2CB3DA59A34FA2ED6913FF2C4A17FACEC83C03 2D5A8B22D52151B2F4FB728831EB48453DCEAC01626F1043FF9722B0E81C2288 E1F349021880AE7AC24CE16224ACB084F9C34FEB01D3D89C33FBE9E9FB36C60B FD05FC107DE6F399FC8728F9B1DA964C65D6E3AEE1F3AE6766E31AC76426CBAC BA4E21901EC9198BF1404B6682A3EBB2E58EE92DD3F00453283FF90303684FBD 31C495ABC38E5E338E52E8BD8FE9F937F4A6CE0914E87AB607FC41BE4B9D4480 8210F84226701AF41CF23AEEA49E8E65A6D8A5BBAA55EAFF5C9BB311382A1AF0 A278AA337144D278BAA730E1E5B72BFE46C3284789E8F386714856C8885B9B90 A8ADAF3E6A7B242A5764A49040A48CC1608A55356A8B6C26B9FB85339372CA19 994B01C756E9D77ABBCC18A4CB7F172139B481FD1848AE5CDB1D9405BD7146BE A36E39CC2313FF2630EDD4290663178D3746FB4452090914D44AC76E768D72FA 4264BF8A621B92836653B215D58CA5B042E4E7D2A2AF264DD684375BBB42AAD8 36297B940671A33A746BDADBC074E5AD4F3C37291DAB60136B45010657D8247D 9779B371E630E21326DF56689F85C6CC27DA3E28A216F0BED58171CF6287CB9D B1D57BC7F8BA0FC520F5DE0645F619C4AD5CA6499C033124BD7493DF1C6F6801 4B29902FB859CD4C1E75E0A6D5B02EABE3AC973D6A0508C6B23F5DB7539E394C 2745E0194B7B080673E265AE425B203D54EEFD55C9C1A915935686568C435619 3A95F967FCFDA0C967CE5F3533BF453DB99D51AEFEEDC80DDA2B08CC90B2E904 5E3D248F55AFFE8A936E2FA3532F295A40ABB0E8F88088A7628AA67ACF15F9AE ED7F95FA27680858E88085B2F751FC65DD79421E1C521BE3BC6204E396FD76DB E0221A90353E93EE6E40A98BC3D98CADC0951915AA6C39B89D1BB424E73C74D8 9AA6E7EA7DC31D2979943D4B9658097BD3FF124D64C05220B092471C947E179F 59660E8B992A5B1FDD6A509BB5A736DAACE1CFFCAB512A6651138C2CC0872B6C 1B1BAC588A47053F016571A3AAD2BD86069D7CC02568FB215E659352F41D4E73 ECBEAF452441E47716DD4E8A5338945CDFD0497B5A60B1996E262DBCAA504B5D CE77C79B714783A99D3445F6FA914B4A5E08CD59CF943E00F2749711BBD1FB49 D40F017953CE6739665A616D4A78FFF7E210F7D7CA870C73647C293C92D7DC7F F6AAFD3F38FC5DD10B78350D088A606D0E2CF6C30C0D90B59F923850C3E43223 2EB034531F995971C48A28DB302D729394FD87DE8F242F10A5CA01756A683C57 25BAA1D4F3625A93E72C86A0DCD6F010F6340C6BA20281D6964C98186A614EB5 E3632BA1790E4E1B607F5F2B6262FE8928362865819AD32F11472F8A07D16757 24155869E8470B4B5443820F753CC0BF767E4ACE3295666DFDD93D480057C389 1609885D25EAB328A0794C9DA9374329ED1C33ED556E845F8358856A18009911 8BDB06D215AFEB4EDDCFA86ECDDEDB57694BFC89857D2673ADD3091E187464FB 870A70D06F53BDF98C58D95119EB29F564DE0AFF274E17564E598E6E41A4B161 0713FAF3DE0A9853CDBFFEDE22D38E22B3B0BF20BF98DF2B685ABB1BDE1C17BE 0C0500C03CF4E995A87FB4ED9F5762FC95C342E2F10233FAD2DFF7B288EEEA99 2402DE511630A757D679A476C78CBF478D958DE5CE74517F7214874E274ED715 CBFF84EEA41179B451F28F7829C43503B60E332C870CD7E48AD5ECBFBE928D64 7009799178405317118B209B49854B9EA68415AF3BEA92EF7BACA505A67908F4 F5158B0079709D215CDA2884D2D26112D27569062622DA7F2D9D0786C4F0F43E E07DA5BD2652D2D9F55AA65914723A48A9E1DB36C59715F87C6CE89A1FF11033 77A6C42767837D9934CAA7B994B601A562818E52C47D79777C97B31F008D532C 81D3AE83BB01E1EC6956546352A6BFC6A76C6184FA3A462BABE64ABA445FF969 5758F2E6407742C2F7D9E08B28F16EA657532A1C3859B470860D504F5E9E668B 51CD14B65BB96ACCC5A46AA63CDC4D983D6AE6F27C80EC0C284D4479602C6093 9C6F7D31E8FB8CDBEF0C3CC6BD6EDF9AE142C538E4034F0DCF773BCDB183B667 46277B91656D9ACC8372A295EA7F507070CED85623FA27E9D050A0F375379E20 05343486FA2EE2443494FB948DA30C764D0B0141A04906D80926E2513E172283 772665DB6C1A57DA6430E98AF01B026D21AC584712AF57B25509678E0BE0BDBE E1CEFD7240B321BA8ACD9F3DE002FDC4BFB81F7E8684AFE55AA6D7040FC1768C F3B4E9EA9C8A871AABCC4CB88A188B9E662E5054C7258E3A33C88480F0FBADC2 3B0CB6910A7116865D9B5302E023E0D1F2A7D25641CC61CFDCEA42813C36357F D78931B144585CB2BEA1C97839C91A78043E7FD50539FEB408A7B590C6F3F99E 56AED19C64F5F48D95C2009C1AC9C379B70230F24D38CE89FC74B8B2522B5EBD C9FAC472AE9A0F6539B8441DAAEF55158658F79F99659CF1770D09CEA2AEC321 1FD28F443D26A81CAA619EEEEC107A74C572A3AC430B6590B6D5CC124F0ADD48 F3E610F21C8E99FE2E3055F1FC9453CC35502C97192EBF65E809591C3361CE3D E539627A5FFF6AF8071E52608F8B2948D59F747E3A622BE215FFFB7A7A4C2E47 1C776B99FB1944D834CF01D613F6560612F75767ACA95BB808A530765D0F29DA A7705E35D1B9754E4B20E862981F6944EF8A5DA99453AAF7BC5048E72D11F8F3 95E1B1B8137F44FB10FD2C0A5A943107EDCE2B7088C6B0C04A4835B414C5382F 134BB4848816E7C2D1F3313ECF12809FCD7A488225E1D1185C897A0DE86BE71C 672BDA7921406CE3735928FDCB9D30A6BFEBE864A71F7E20BC9A26EDA40FB41F 8986FF3A48169370248520C2D0583BA30C016DF0F5F13AFEF02AF3E3A4450838 0BF0577F9A5F2E681F0224579BBB77365CEA03126D8588A9BC812897FD2A7B77 413969F32935AE40E0C9B05D7624179DCE0F89A85BF2ECE644277739C1667553 1548A18DF73EC7351B78884FF7B63C01E861BEFB445430A30270D0066E3C0389 953EB8B3353306E782CE55570D84EC9E6856D322E6B6394399C9F0BC846DD58C EEA93C18B1287C9BD7B8A23F9675F89625B71DD175C46BF3256F88A39ABB44EE 970F6A21F8CE551CBC9A08F97E6D9B8A60CA82846E7F3D4781E20BB2E9A5DF02 EFCB366EFF106FA066B9C0999CD011CA34CE5474E52C1A6F12FD55FF2E952E64 7708C35845D403E283C3DC16A68D43DA7870615DF63C30BC2DCEA8321030E565 6BFE9583E2C4CE3D17F3C8005DC077FA7B27293A8590DAB4FD509BA7CE11CD9B 4CEA2060925E204BEFFCD2AA934E2385A09C260C1FD89CE173BAE32D54190BCB 91D7E42CC166CA67325642EC31062FFDB06BDF7E8A410EAD0B6663CCA00B5335 8DFE6443A3E5F1B71790ACEB1CCBE0273510692BCBC9C064A3587AF58C001FA7 3D930F9C34A0329DEB8B0F7A18B79605F13C3C2D6A24C0 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%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: (), 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\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 12 /fi put dup 97 /a put dup 98 /b put dup 99 /c put dup 100 /d put dup 101 /e 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 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 B46EE9D1C3D61DB6EB8434F17B15274840BEB842587F3B9AED05B97988E74B69 BC472F5575B136CCEA4A28C49A9A078338F4C164BBBCE925297E4B79CA800124 B3B8DF95BF211547456696F548E9F545DEB165B896B7DA038438114E661B32DB EC043A557A5E26A988B25EE30ACCAA8E8C904246701E97A57C400F062761658C DD33BE34ED09BB1BEF9525DBECFE5A994968FB0F993836E4771AF3DA8C13E121 4FC5EABA8C74A928C6472A0912BBF8F1741B4F0C3F41F58EFD3A549E5B76D332 D5E338A16E83EC574C45A49C1C3C21AB31A08E96B0C430BCA2CDBA81C80BD5A0 43B8A5762CEE68CB35C76EF23FCFFD85A5845E335A3E0F3980CEA0DAD5F78225 D947923E1054E8C2FBD30AA8F5B2BE8C21D79675F359A576DFB382A25584B512 5F8F75A913785D877D4F44FEC237704E08CA03EB9C203B92C664F0279287E1F2 5B533CDDA58898CB55B222701DAD14489AF0FEA3B78CD90225A691CBD75C0727 239A26BDECEE46F3C14350F041E7342DA954A27BEC04753B00C3FDB19044CE69 0AE6501EEA1DCF0BEAA9648BB409FB8FE84069DB8A657FFDED9EB87DAA7F403A 6B8A845FC371159F0D61B7E16B02958BA83061A3318B84A38893E07AB1EE50F7 9D02F521B1F32B05125A0E6A1874EF1C298CFA89E4E9ACC493F6F7F2A9B14AFF 68665DC4185E866AF3AF0402546E11BAEE84F00259B404E6108AA053BBE771EC 60687CA432364AF973497A17AC24BCAC33A18D0D2620352851D32B891D1C458A A6BF008D90E499E7A9C28C898743A8C4A711E46774020E8291191F138D2D847D 057ECAE805053934F62A3578158CA819DA043E21AACB8E006F933B062CDD61C4 8546AE2C9AF14A9345EDE13A9A87BEA32E03F5D4EA114A54732B9AC01A0876BD 90FA43417BE7BF44A7BA61076B20D2BCD8218B41EB6D5A5CF88394D40F9B200B F9BED4DA94442FAB21B33EBBA13D3AC4EF13147DB53F27AE47866566B32CB8CD BA21F5D47CDA6BF2CEE32749C91435CBBD8C11ED7D5E51454BA91F4BEBEB1FA9 873F0804B6FAE30226AB9456A444619303EDCAC59B87CCB1E32A1E4F90C185A9 C776772BCCD30F158F572CAB63D6B5BA0274B467F52943EBFE30419AE757BE83 B12E45D5BB98F5BE982DADF7A9E73E43535F93423357142EFA130800802FE741 EF7B33A186FBB64726981104AA3809FFDB177930FEE85467FBF0CD0870270F0F 4054CAE7432E3AB21374A702BF415C92AE3F02805774524932AF1F57CFCC1F10 FF4E99574DE91D69D930DF50D8D566E60C29830A8220E1BEACD02035B0AF538B 16D86BCBAA9A1C6F4B898BE1CDA222A1E64F14BCE6065F68653EFF251CC20BED 840727F2CCC9FE6E6AE075C22E0ACB7B9B7D969F5DB094FFE231AAE05CB26627 D017264F5022E1B00CE037E54B6E1F589D5884D1525A3010F3453AC83F953EC8 65CBD7AA642BFD158CFB5794F199F021CD0BA552C5C77FA2625F89B714963380 56DD5F9A53A440E9677C57331BE3961FF4F8D0B3372CBC39007A2E6BF307FBF5 F2008ABE101AC4DD5D7ABCC9C914D112EF8B55DB17C23BB842D4C6E59AA14C69 045D2F848824792268C3611F8743FBB66B83A0FB413F528D5160C7E9F6F96730 6CBA193CD0A44EAFAC1098C6B3B663C60C8FCB4CFD79F70CF8A887606742CC71 666E028599059F5A86414E0649446250DA3ADD52B73FD02630CAD8F44895A9E1 571A16E331CAC213EF69EC4DD48701EB3B456E72303AAE727CB5E8A87BD6D85D EBBA1ACA570E083284C80928F04EB1FE18592115FD1AE307CDB81A67DA8DBD23 24FE7A55D7AA015D742F982E6A8140DB2C438B3B08EFB88EDB3F1D471C452767 DFC4A93054DCA315660B75D73F03EC309AF1F996590FEA9096BDB2130AB78F05 685C4493203EB6249B37296E2A52FE14E2E2D79651288356FACAE99EBE00A272 471DFC87BCD5D3DF6023872A30578AC224DBE2DA01CD4307DB36449D0F950912 8DCC07E78011AE57EB79AFA7317F3C6EB7AD57E985020DDEE979F723E5A9DA15 96E3E38CD2D4648608FDCE3BC63BB0267321F5D777E5B9F5308A9CDDF298CC40 59C6FA2E88169F97DE5D1024B06A39C80CE6B06F6441F091C4770E77BBF617FB F1572802B380B3E2EB7EAF4D2614398C04A3CF831CE98AA3C6C4AA46E9017521 82CE678B0DC236840E6C4A68143B4A73A5739079126DFB21E4562C904865D34A C735AC6C743407A28F9EA44980A1E8F6E275D79D561F7A01D972BAEC53974123 29A0AE1E6F12220AEE98270C2CE772C29D810099986958EB4EC88C67AD417D79 C9339BCBB4C543C6037BB3127EBE69F67127354FEF2414F313FE467595D35D76 EC0E8DF1347D183BDBF7162FC129D3CDD544BA5781C1BF739E012E3B9D69C08D 4A8D0ECBC8C1E293FDBCC87B6215B4234A9BE59009268B8A0FCCC3F1A53833DE EA437D980F2FAB56992BB63E65F8AA4934E24F21FE1932E50AE836315EE4D018 7C80A30308C32393B8EA6857A00A341B6AA40ABC940E40351DDC927BC47A239D FD8824F52E7F9D2242F2C9A5BF7CA2379BDB3E4EE84691F7EC843855D541FD9A D444295F2858933FC37F8317E74CE4390E3EFA1EA9529C40A59DBF09978C869F 38713613F2A96F36E1975EE2FDAD38E9D11E3493953E412BCE315886C30A8423 45F07DAC4978CA55B1CCB2840EAD2EFFE33FC1A131525CA597AE1760A996ADBB 905CD27390F03B055FCA67D0086E8237AEE970E6D536CF4F9C47798D7FFCE062 0E0243A53583712368C4C2C7CBC3EE90A3ED791DFB6E17D5DA27D093AC69D5C5 998CC1742BBAD810D8767FC53445A8213C56664A25091BBC59F2F5319D50D71D D127DED73ED729D0EBDB30757211B5709EC713F40FC51D556F955CBF087055C9 BDEBC46FC88BB52D4D638A79F484447D5B69CB603C0DD99F7924C163E19DF472 70F6B6256ED78C81F67AEABE586D9CD47DE5A269EDB573E853C5F1D3C8A11234 2F87C45FAD901C2C0F1B085FF3AC49CA1867B4B61475E02F8402CD8EF346C930 0E0ECE54A79FCE872B2A87BD61C7022898FDBAF2595C7A93C5A75E2ADFEBF3C9 05DC814982B1676EB6EC2183002BD230F7C5E99350CA686D75563EAB3B7F2C05 6E0ABEBCCFA3BB0DB2AB91AD0807E9E070470B20AA602D7E7679AFA5CD630668 86E27BA2DA58321D818248F8CE0BB4688EC0771FFB308D49E43C9A102D9F805A 3E62F2DC9175DC0DD158F7D4F25B2B5D3086187DB478488FCA508920ADD5E754 79DEAC39AE797BA437BE6354C526D89B6B4629EBC1A4B8FDB4A51A7F64C531DB 9E127212E785AEE8414763DF731A2F71A9A56533A6C341B0D00CA5D4A2E3208A F820F6241F106725582702034652AABE47A7A12F4C0581E5877B6443634648CC DB056D91D64CA82EF87BA5810E24A8AB39E463C25C86AE0B890EA2DA6DC75246 25ED1C8B4EA60347AE8518D147CE9D306AEA3BD12CD4BCB4EB720F6312BD51E1 2300D272F89BD7216F34C2BD0AF45B298AFDEFF2E818ED594B672B8249BC117C 17AA4B1DE98B24F2892D80B7836E9DE029A15B399104223E95474BB850F56112 FB110D4499C0F8F9235F5AE9391121E828F8AC4CDA9DF927ADD8CABC4C764501 2E6AA28DCBF3BAE8662158853846D35F0E9098D9022CBC59755D937F65986E92 E49832570394FDF9B09D147458BBCE719F5DC1C664B2E8814A28BF423B09E969 B9740AE9CD56D40BA076C804B0A19B0D0DE2D5FEE1B225CB8C7BA29C8E23F544 F4289C611D644096A57029C1140F83669643DD9A15C4092AFD52640446B7F987 EA7A053C5E16055A1CC87FEB711099DDAC66669048586040AFC1A5FCDC08E746 40A7D7A18AB3356FEB917B899BB181BC0BDB600ADBDB083BBC3651A7CF2F1A70 5818124E11ABFAF291979900C1294C322318C8E7D5910328150C771FBA9C163B 24B9D3569865A96F90F53817F0D51C2A78F4907FDC024947478F25966206CF1D 3D5B4E33B0E3335B2F0BC6B00006CA3E29A14F6EADECA0DA653DE1BB0024495A 6E8BAF009AA479931A5774D3DCAB86F57DCDA1EFEDECD3DC06A2148CA2AFF333 2168B0D95456B540A5EDD1AD8D4E2F4760FB89D5A9EEAC9EA2F065BED3470AD5 6018003BD210C5B7A4F776CE21BA674AE85DE8DB08D6CFAB2C7AD425BA568CC0 5F5A4B9A779B59D89BFBBE7AC9829C1A95235293082C4C337444BCA8B5243E0E 9892B502AEEF51E4FB3B04BA2DB3829185737C5EB6F81EE3DC0F38A6C811CD49 222167DF4DB18E5891D03B7CA0CCC158FA60930185275F34FA9D7C475EA55ED1 C8CD3ED102FD8CDADC37A7A4A29D5BF5A4CBF76358E0C9A242A932262AE4F981 914981E4627673373EA4D50165020AD431E6F20FA2F5EBAA7E7BFD39154C990D 26295C7E297FD9CA462E6026F687CF98635F88DBBC73AD3CDFB58B79575B7358 30EFC98156AB8460710C105223AAB95D2A2746B17E12C3C17035AA14E199D26E 63A4C61A330FA751203A7D6B54B1BA0FF9F3BA72DC2BF371F223FA759887D85F B602287B10DB45CEB4A0109BA5DD23859EF63195813B41C0BD957957A5C03A51 599B937E9011729E54C077FB04E2012E2980B305B5223DF499B992F07E990AFE 35D2B1EA666803C2665154910F1FCC96FA32F3F0BE6B7198ABA63A893B752D3E 45E00A19E9B1FBFE9575B041E36D776F11889D8DB2DD33027E53FCE9024813C4 778966C483590FDF429D64E7103CF30D0D85DA99517AF890302B94C2E26083ED 811F292C265DD3B3971A8AEB844A38EA4E4E3D8FAD2F119FB569E46CEC7C609E A33B50FC711C9D8052BD5ABE5304727E8F6A01FED166364013EBF3EB610C314A 619621FD38D20F5930092392C3D019A467425BCD0A55DC4DB309601CE0BBA1FA 8097BC3004E4A14EE5BE6AAD6AC03CC7F0EB3D53384D84BC721DDBFABE451DD6 0B6A4056EA45B9777D566BAC2B8D0760CB217DD3188258235BC301BE2DDC2CA1 B35610E0830103B9D527662A2C498CF57A8940D824A62D6FC7445C724F4C3581 4B233D7F665A6678154CFA02B6D08ADDE6432BFC8920C91BC7113F0D76F58FD9 3A73778DCE0378C7E9EC5300496FDDD6A725DB863CA660C989CCC89F55012E15 2EEC3F66E77DCFE1C5692A596F01AF15AC0C5B01A3F6EAEF 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: (), 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\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 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 AE6ADA0192657E8078A1D27420093FEBA111333314658021B90DA4E7A8D4B829 F1795501020D5FF0AD25584C1D4669353E1273F51A39C279F1F8EAF073497C25 E79996A530100DD40A73BD980338303E192978236F8EC6BABBC8E4395F99C2EA 8DBA2BDD01AB2030BBB19C9AA104BB96A1A8BF9C25E29269E77E5D6805555B2F 05FAF95D67C87108293EF4BB90A5C2575E484537FB203249A03F54D324D3C4F6 62104C8286DB7C0FBEF9AB2A75D8A17CA5464B417FF0DC1501E40B6D9A226919 145F74A039B54E80023BFBB07B71967C420B23004C4CDF51A94DE0A2708C7957 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: (), 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\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 45 /hyphen put dup 46 /period put dup 49 /one put dup 66 /B put dup 67 /C put dup 68 /D put dup 73 /I put dup 79 /O 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 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 119 /w put dup 121 /y put dup 127 /dieresis 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 9F9EC2518C77806A19730C97F54BEAD10B4729E5749A10EDBE644886443D1249 2C8517DF8D8AE98E2882439FA81903941B363A7D885F93C6DF9E1FD89F2F8CEE B870C409ED13E78B4C914813B0A01DF8F876EDCC4F384055FD37C575726AD69F F23D50EC5BEE2FB95A44F2B2E2DD94C933D90BED2C97B53738B4B2ED56EBE617 BEF17B9DF4F314A37F10FDE34C570D7BE76A496A58242F51E7321380CB042424 855F4B53071DF5A0DA5A31B8AAF9FB4F4C491625FF8FD008BD4402918043BEDF 77B840B2BE0DAAB4EF904FFEF935954AFB9BD2041241B1BC8519EB642C89E288 479664226DBB6F1171F9EEBC7E1273D0CABCF6B1BF7F26AF21C21D9B1B916F4F 603DDB68D3614B86566FC91D67AC3F4A4A96E256FA1A3BD35F4465AE4EC64D82 34BEB4BBDDCEEBD9A89D932E55F14CA2776F927C4FD3E0920790A57DAEA08C5B 169A3E2309DA6BA8684A5D1DEE81415796E13DCF906FCDADB092047831B16841 B250CD148557D72DD7E683BF122B38E2C4F614E59B395D1D9823D7D5F126D932 14B50A37FCA7120F8F3A8E42134F1B6B0C248D56F247AA68FB941839F600F61C 14247EFF780BBA3E5198D37CED44DEEC3455048FC451BCDB48DC414AE5293A60 5A59877D6DFD21EAD729CDB7B378CEDD34262B37A194EDD0BDB24AA42649375B 491DC08F6B03DFEB517B2FC125DA9373AFAA94F4E4BC09510A73E079F4ABDD8F 93529E898B13ABCDE7322323B3A2A02A0BF388E89B4F529A66FA22D38E3EE342 54475A1989BFB7A119CF95750D5A18BB4FA9CDA30DB6F1AEF8AE8448BBC999C9 FD0D74DE9A17A3153617F07CACE92977B68FB5A1CFB29FD42494D5D2B9C1ED81 2F3CCEEC1BC079E837DDBB57C7E351F9925FB96349F8D9786D8E6FF03E9C4C1E 67DB235577B68003BA14073E2702296B284F803259283005D97035874D2B9AFD 4D3F29B4B1E6EDE30DDB9C68348CC174A091791FA74520C8614D4FB1125CBD6F B9367559D715ED057FDF6DAAC180C7FA5CCEFD0C5878A91B20D4919792C03CA9 3AFC986C34C08358A3E85F241E3F8F815FCE7C8E07C2A4258E17D65823264049 3803D47C96A2745580EDC957AC4291730A840A2BADA50A28342A2B7093A3F731 4F4F656E974389E133C53F89D5DD6407BB98B211697941A927BC72A0956FA78E 2DC624B2C253F76778698BD1510D509244AB0462BA8E80769A51F6D020E146C1 7EB6D7207653B80610F8896EBFA6A606EFA54791E78139918C010A404BAD4B0F F3779D39D31D665C528290D1D4096CF7E65F18936508848DF4DBF77A197944E1 DE53CF98DD5008E84A4BEE48C971DB9586980FF90D4AA43C5277C1676D4A6896 BF3168664C7F31059AEF729BB5BF404B88965F7094345DA4F8535C60FC1FC946 4285EAAF493594567AFB161F8F98CC3027FB5FDF901190949B4B6A3297C8DAC7 3355C84532F7A083D5DDD9A52A0E8E38C858441CC99C4FD0FDB0357BB5233F3D 0F6212F013072DBFAB7C061D56CE72CB67E59EAE0D87FE8400FACF1F3919565F 1D434F1B0B6E1EE0AD2510D6B21D5E44574A1142688054ED5805F3788325FAB9 397B4F558005B5C6CF1EE514D77041F132E00B13A76A105AB3EB6E4FCDBCF1F6 60E8262CD10AA45C67562303483314B5B0B2E7C4F285F9BD614A00DE68255721 89A19315AD384AA2957AF8F20D293F17F5521D3311F85DC40CDD29AA85AE61C5 F3A6A112882F7FB92F190B2F10903EC9AA11B02A8239798483CB105A78F53D62 AF3EDFE03A794C0AB1BBDC245B04E8BAD801177B0EFA57A1BEFECF8CD29EED55 75A3EA75909A28E41A42AA4CCBAA4F94086AB50569D9728470C768F2CAC7140F 6E4E141EEB1D14F796AA6D036117EFA78CBFF7D25EBF1E4DEF5F9EA103CD8FD9 A3278AD3177806EA98CAFC7491019DDCFD1C34E6D4DAD24892A71B82D94243E5 66DDFC314CAE502517B50069F984BEA9E7BB776B37107C5E9BF929823F9743B9 EA2417E3750F18E1F491C658037300F1E113F01439C816B4FD088BD3BE37C6AB 6CA38386B188DCCEDE505281359373DC0A0E0019488FA5E8BDA6B7781682CA84 F36DE8F89E9E4518AFFA65334E2C3A5C2E1325D4FA189E4CA00F948D6CE6FF54 9C179EE04E483F5189130541860067A3119C3639A44BD7A7188498CCCEF4F408 A3CC51FB47D0B21212E708A32245D8E2BE741D163595A84381EFE64A06F69632 0EBEE4C7AFA2141D6F120889E3ECABC3DE478C3ED3C150C391CC4105490C9078 B127D142CCB6C1B3C85976113EFDBE4F7F321B9AC5E0FB1EF3B021BAF474A9CF A2EC28FEC13422167D2F49D7601A570857F590C7B904D64166FF0A87986CC9B6 EA75BEE378B8328ACB3A5021D490B3C7065CE781C378C1F01DCD70EDDDB83F48 A61231C7BE4C83A0765242FD2E9ADABAFBD771DC29AFB98C6CB1BC8C83ABCD97 10B607C6C05D7A56A704DAAF9AD3AE67DA3476CCE84832BDA1B6BB5244DF4DCD 65AB1C0EE6C6B0EA56507C3D9DB10BA62284CC1676852D451DF2CDA7FFE09897 138C27F7C6BDD27B3520C31D398026730C5AC6998DD218B92FD4C8C69FC7C0EC 74993155CB94633C9CA2925980C37740F766993C8EF1043A56F6453B862F196E BD7415B50090D1A97A1E290D9E1774A095DF0B82D0D20D0E8EA09BA0D93D9F8E DAE5DF1E8080485344206AD6A9B214C02A57BB9900646AE4EB85A905D3F9D12F 0BFD63D823161186FD0CCE3AC40A86D14B2ABBBC5EC181E3F95AAA636BFFFAA8 ED2789F734A9E258AC19F8D91DCE22B7229605912110D3C88C27E32FC0C1E0FB E4E6253B00E17AFB3A56E80E487B1447B00CFA3C6C8A500C6E34DE1AB52E24B4 29285A06EBEA61BB134055B25332C4F2AFC4CD63E51AC2C563B89563D0254194 DE000681912B191666E7CB012428ECD18DDA85972F4E252C25D22B83076B723D FC464F67B2BC065A56AB23C6A248F309DBA2E131A6EF79586E58C22B28FFAF47 5B59BAFB5D54BCDE67B2D52CF54D722A8DD65A69B6CAB613145652A976CE4D39 64D60C0859891F96E2FFC98EC71CB8627476F971C108F5616E20B6B12B517C95 400FD210006D7C81518A744CC70DE55F76AB2428202F64636BF1B4050C143424 1EDB33B6F1555CFD821DAC359ADFC8241D77E2E639514CB1CF6E169312544A65 D68CFF6687283DA001ADD5140FF92C2A4583000060FF3717E66736B72EB97C4D B5A6B6E1AF4FB0AB0CE7F517E28F67D1FC76296917E1B91F2C07AA0A48FA9399 B88722B1A4A755CA4825EA272C1D104A426AAA391D9125ADBB46CF1015357611 A75D9D098A27F61719BC50DFACBBC89A3ADD031C747FA6722534BA34991AF3F1 BF309AD264166AE4DABEAB56BC495DDF63F51F7F49DF8FCB5BB79C8D01A8A9D8 C19AF84132DE8F5BEC0E4660654B502F46D4B36A0E52ABC788644066DE41DB8E BC5039741F62FBC7E022695E2616AD42CA90D225A8B0B85582D26424B74C146E 164A78957817BF9B0F2BE120B0C0F663659BBD109420C6849592A3376F58135B CFA5DE0696385BB0FFB6345B70A720C655CBBFB8E3BFE02486371A0ED1ACB555 52C3342A01A2C825D685A50DF65F2F9D27604F3F841AE34448CAEC9C5620F73B A0E13D41CAD8B041D7B68FA7946BF6545DD7B4C68A3F79464C1D64E30219493B 2267C4CE8D70C1DB3A6B32B70C9C0A69EFAB858FF9D52DF1EE64CA7541750A5B 0C8A64DBD11D7A52FDFFE8A2AB92BED886B0533C7A29452DBA1FE16FE252C76C 2147179049E4CC03E5301AC7B4A3EACD5C0C215C3A9C0762A997502B0A338A19 94D371C31198073BDEBC7CB5C9DD3EC0C33B5AB9DC0E63EA214DC576A11D1E1B 9627FB3B5E091A7C7480AB572D86B3483BF28CE1E4B2F74315016D0E2D277A75 7DADBB5CFE83D44CCF99699BF548A45F42602F075F9965585106AFC9DEC1F5E4 2E8E625AA80C1A23EED1027787E23EA1E2B6674FBDC70D0869D9A1D2956BC4F2 DF997A23D396EEB029C38CF7C0C775C25AFF4F50761090ADB3C570B631575B0C 99E46BDCAA4B6250238E5D9B07CAEA824B4106BE1E86015E6509D45EA4B7FA9B BAF2F6E2212876DE010F4F42EFE163E4BB5C2EA8BB7DFCC55C2ED9F1FCDEC32C 8FA5C996E011DD4061E9E4E543141EEE7BAC2E59E2A70FAF1D325B4C3CDD7550 1AB42F0A7A5283248B42F9C6E8B777698FF688E55246127F4D63B4DC5DF2D690 76FE80C695AB9982C18D48E647518EC2B76EB697066953C3652626890FAE9E2C E05BB5D8FF563F6431A56CA3B3BB06FB222134A4F3273316F4D813AB4798649D D6D76640E5267654244891ADCE677A7A599D22835082A072C3772C95424FA45D F7A2553E5CDDD74FA70CF540AA72053645573A5BC1D076CA56CC148066671B08 623163ED2DB63672DC00C6B2F3A90103D44035E6C62762F9D570EC180A074BA7 5FFBADCD2898CB92192D631588C208C30573A8F7583EB55AF909494F65408672 CF9B4A2C471DE1BFACCF8292D4EE0CFC3DAFCC75CA917207D7FF60FA738D4CBF DC5A9D10C374BE5D3D04129C5377CE1DF8D68F276989559C2583C6196AEB4557 1CBFA629E30DFF518EA89D48B607797221D94774689E26FF5F85C498D1AF5FDF B24415B519C99E67F653CC52B83A5E6AC4CB8529822733E26DB40148B6D244F6 4B5A75F275288D9F8065FA60FBA29F8B19E467C418CA57A6FE618126F3ABB59C 6D76CB7D7A8EFA3C0DD4AA65E4D49F8FE9F3E71E95ED6677BDEB1D2223DCCC48 9A83E589D293050C20847A3F53178A895AA780BE8D374A8D48A10B8B0B3D066E BF6E6D9E8908EC21DA73E6EAA222400A7C729E04FA077550FB80F5C19CFA1A1B 6A9B58AD9C2F087A730EDF4EC2415991D7572619DC7341ADCD7839C05E1F4251 3DD514ECEBD22658FC136B3F6DDDD5CBCED5DDA4C5191E76FE427015B2863065 768A4FEFF46C68EC7F68978C1D2C23C53EEA6C845DE21A5DE77DC935D2A4514C 8A3E9BE93CBB5E16460FDACCAC0E425D93E6D617443716C6721F2F119AF44640 83CD0B9D7E26AC928A0195F0196BDA8F68DF53B5D7592B4655202BEF769BE4F7 9FEA39FA1AF47223B09FBF61601636E76BCA286EE0BCF5B1923AEB3F9FD0ACDD 3BB2526A8619175D1430440DBE02AEC0C24FE51276C4BE36AE93A54D8378D3A3 227061E257DF285EAD467904A0700AD002E718CABA338D2CC52F2483FB1035D1 D065C64DC509EF9B4747EAA3AF3A02CB64EB6E55D3F3C19B8735BABE26852C6B EBB2E4D8FF77A040D1D5959E701565ADEE7E413340F9451C55B0575E3B18090A 2C28B3DFA6B043BD1EC2A5DC48402479F24D630D743EBE9569A4A63CF6DD9670 E335A22ACD4E09900E11BBA673EF677A021AF4A4A5A1CC56532245117DF5BF0C 4FDB0AE21F56E04C0BA9188348611C0F67032F13B6D6E404C8B3D473496646AC 0D414E18885768F0D65AB506BE36667F54725E5553D664A5C2E9601026989EB4 7AED1F81FE710FA3FF3056729069590C030E702B9179D0081BBCA6398EE8C01E E01766D5C9CB702C4960FE23C4A282DEA36D96C7E906E0060643D50C0C1A5169 CE7FEDFF384D793DD14D9735C04059058CD3226579DAD72467CE95CB76E9092A 42DF6FFB6D567AEF67B1BE359A6BC569830B4EE65BC7832CCA23979CFC48EE25 F1F477B8D723C0FACA8B24C48D1A7320D6DFAB3997F58A4ABA7439F7AE6C73B2 CC29E7A7B8AD6827647577E4A677A0B41DCD206F45D6777A55A864D1FAF919B0 4BB0BBC5CF40264610732E00DEC68CD355F0027C683B5109110297EDEE6927D9 0CE70C98D22920074B1DFB834413F6EF3FF1C9E1A758A6F71D69BAD93F473672 BFFE79BB6D990B1899CE3ADE0BBEEE40A78BC517710DA66EF190477B360AF75E 8DECF1BEBB8D623169CCDD278F86B41595925FFBF10B4B2F8D7E210B185EDC9C 5E14D78F42FC0BC3A3BC8A6171751C35BF5DED43219DD48407BFA8AF992E97C9 8E622F68EBDFB1A9358375C8CCEE0034E692A3A2A74441FF6949A8AE17F5682A F09410E8BBEDDAE83E0D579C6A572DF98723B91C04A2D93DFD09254A4EF1EFFD 230721A13C655F2A0A7FABF796DD3752EEE89C4E066A06CA74AD7C3D8977AF6A 577DF17CDE2EF71C47799B026CE94B611441229AF08692A9EEB18F3E2E1988DD 75834FBD9F9A692DE870A5D43A77D677A3D0DF4D0558FE8B1C6EA0A8FC77F948 4317379E4C140CB28B5BACB7F29AD176CBCEF1FF96A492130ECBCF5BD9FE5AD0 C24595D9EAE4A4BE1F8AF27295F140207CD1D4BFF05BEC897A511F0273EB7958 18AC6909CBD5737063B9D30C9BEA261FE5413A4537187ACAAE0A18C0EC6D073D 0CAC6AA417E1846F12DB12529F983AF7F805F790CA533797E9EAF7C2E8979AF9 933CE692EE74EAA1CC4657FCB2552C97BFBD1C6CA771AE7362888840F011C136 13B261332ED0F291B6CCEF9C5F3F766C8F66BB7BB57493124727F254D9F0CC1B 550CEF604C5B2B374B2CE757ABE19925372EC679AC3B78EB66C0B1AEF5C6AC3E 633D475BD3411CE0F5B84A54FD9290EAB4399FBCC2FABE659D0E0D342B80DB6B AC35ABE3BB6B80FF87DFD311436EF6F268CC3823181136558B6F48B8A7322D77 658A9C2FF41DA157521FD02E22F079E32BD23E408766FA14A9CE1C65F9E73D86 723864E3AA0FF74B367A46A2306300C928AB8E37AFDAF788FAE595A7D53A9FB2 CE8BDE68A11BB6F0BBF48B722BCB32CEFC18756B74FDB79F06639FFD8DCB909A D5FF15C0EEE2D97EBF64F22534E4F80BC7B319673B591D649980BEABE6572CCC 50DA0708ED65E7493B006DD95A48DFA4CA2142C20AE83276F1DCBD37B6EEE61A 8FF20C3D45372FA7EACAE98C038BE4B911E31A261ED29FECC5439A70E74C4CB6 F08AADA08C128DF35990FB2E30359049494C6ECDDFF663176654657A2945B2AA 77D17031F2007ACB9861CBC04F14896499D2303842C303C712175B1EAF4A2448 F29CE39D0AAC14FAEEAD220C23C990D1E9911C8DEEA7C2226977BD5EF4261116 74F54B064D25222733DE1EC50E6BB19ECB89B9DA9A937C9DD8A4C537C73B63D6 670DFD03BAE4168EEC2475962CCF7048CDE547E8FFE9C2B251B0FA169FC08467 53E619D91BC4342A7AB2381AF0945CE121A947C0BC2B266024F8C50FC61AA4FA A90E9764268F79DA2A058FA47C9627607809DBB6377F97E754D39A2390EC41AE E15A8128362D9A08F624DFC8DBAFC4DFE8BFE5C7D0F916DA2C0704D651CA2871 1CF116750B65F38F86431FBF1AB5BEB944D266D5F353B384F0567BDF016BC7A0 C3B36EFF6E690C355F309B449956401E90D94FA19CA25442333081AA87703549 12304787789C4D914DF58A1255D84119BBB3A05A810D772A3C4D91EA904996EB 442D094B052223890340355062218149BE73FC31BBB33878DF4DCA0C407613AC AEA55D731368F373A67893592BC795DE88CA748857D3BBCE909EC26CA14160F8 CC1B6D993D358FC9FDB4E3A5BE8F0D4536D88995F7A2B4F7A8F699ED497E150F D42E71B27697F18AF7B74F310FAAA432CF5C296137A73D39E54D2B9C55425F61 4BAD5264C4D687BB9D3445564FDC1BC7D9D4BC48CC05727B715833629BF11F0C CB9CF12497FB056B0D8C182DD9A22D714A163C9FB2DA05B9F50970A55C9E714A 209AE43ED2EB788736A65A4FC3491455E1971103E89A0F7DE43CCB80C2D082D3 1653BA483F993AF8BEF36ABF3FAE136A4232F93948C8B32F8A2519F45655E204 AEBCDBF1877B261DD983F9FED8301E3B57DF34EF84B91A9927915D64F979B392 A5FD1D2493933E57DD346FF2F9527EE44DC83CCD632A65407A5287AF794DCF6C ECDB895A5978262BF5A7371EC55CABE222A81F580668A193120D921B2CB7761B 6E92869F97AA77326F4F458C6346B97BBFC1446B854DE5D7756A9A0F5DA6A45C 2A5EEA3DFDD8C57B1C79F65CF17AEE04F9036C1206B3538FADC1CAD903C7688A 7991C53917ED97366571FF0E6C77426C768D4E57171FB4D464644727B8F998E1 54D269AAAB71EC012A3317EA1244CFF897600CDBBACC1D53612DBBC5FFE09ACD BA2493DD2557D48657DF7C4512CF63D6CBA9616A190BBE6D1E4048275B5A9BC3 9BA504E26069E9806BC6A845B14557E7038AB37FDF212CE86C636D6239DBA113 DB150CB5678B2701F1C90F361654A0CDA76B40AF409D442CAA20BAC3BAFA5B9B 3B17EA86675FCB22B9187B0ED28F824353217ADA0E0B9F61E79179CC5FF25BF1 BF2FB24A490EAF99081494D29CDA270C893F40404BDFC68FB9DA63A231D3379B 9F9A3873365CDF9B6A32D842D26659CAF48765654F05D707042586DA605BE893 863B987F05E5F0A29D32C13134F2337EBA7EFC269BA7B2F041FF542D36F24D39 F71F3DAD9DF9E74B91033BA8B1FF01A3F3A19686B5A5B4D05DB17C137BC52AA1 6F4AF7BBF819488DEBB5571775A7758727931366900E52AA38652FA92D97690F 49DEF882D78B073FE10BE9D053F69949A848A8EDAC11DC0093B331E87BA94897 7491A5337712718E46A0933A3E2677C646569CA16BEC31E5CC317BF49E3C7203 D06A30719B097B45CCD66DB02F041C946C8EE77B62702F4E7E5AFD05BF611E9F F64D6C9A5E948C5F4B4F5679D14032F3F4FD9D4829EB63E3FB8B4D4165FA3919 ECA69EED712DB0FF3A74EB6F5389499979C3184C28FA6BC25577C1D427AF629C E597D92FAAA099DF37BF335898BD472391D2EA707CD0C32DC8B6A505D4A7740C F3466D4BCEC6361673853B40538D9F3E28C5CCB3DD481183EA39C3A3952C26D8 04DE8422C10E5695CBDEBD3BD748A93C7DD772B5597BDDA47A7515832770D0A1 E20E3520FEB8B60A8A727905B90DBEAC81F8E0D9FD98421BD18917E469C32498 B7A1D8F18400C2F6A81A119717245BC7D5BE7FF27274771A1C51AC83CD2D9616 1EB49CFB56A486FCCF47B7BD42245E82282ADA3CA2D6CFFA1834DEF4AD51FDC4 7065B4C4C56944521E76433C70447C7107EDC136BDBE624D88023D8754DFB982 53E5BD12B30E7294004929956902E661F71EDF9CAA53AC43D49401ACD313A93E 1141CA49EF4361FF6DA3A6A368F0577776C32FDFA3ECF53475312691EDF12966 BF5D3C69B2B09A062DF959625C841727AB9AB4353CEB13E1A06C7AB416133FC9 8ED0904D3ADEB8F05F9BCB66C6F04BCBFBCCFE25BE89087C85C615F9F84F4602 9C72EEFA154A2BE435FCF5D3DEABDE64B793961C9F06EEA3A8902B444167A342 539A76A69B4D5F6A73B7124871AC35FB846576394A02BBE80A38FB388E310DA3 63EFDA00086DD59FC21875C34708217055EA38968F29D6CC98B3D959240E4853 25EAA1A6AF9588B78A0A6AC574873B6C3191282D4F3C100955052CC8A04E8FDB 3843F31781E71838593BE39BF9F177F9BD9C7300D3C2260F36308007E6BCFF2D 74245E0F81A692E3D37CAE4FA2CEE3EC5487903B23773823D50FFF3C079B9F90 CD01BDC9F4FCA357233D3F059F7D29C2F95D5F0FF4DEF948F5FD5B8E04D7EF34 198161813932E4FC9B7FA50E9AA356DE7602F908AD71EE21391B3CE512C9CEE0 C1C60206A5C6D9CDB4EAA65FB654B23B417DD407BE99773A43545F01F05BF0D8 9EB1327A7F0A00A7519D03F8872F4D2280E243656774911D679FC88D10D253F6 C8C1E034CDED477724FE4B13A27ED520DB3BBEC21C049211BD949537D9FFA189 3B0270924ECA20F20EB9FEF641F9251BB140CB1CB36CFAA76479B6850510D52F A1E533845A1C7BB9B3BA5A0BD04FA76C03ADEF6AE8B005FF03101806AEC7066D 03EDAAED0352C5A3F9470946453DE958E11CCCFE17FEA412059C614A815F5D78 D3D379783374A055EF0B0C7C4A2136CDEBB2FA7AFF2D095CDE3996C1534BF247 E764737B814E6C39C89831A76F0EE853F1FA86C3D2000D1AAE76A47E98DD6377 8E442068FE0C2AF3004C2DB654F9BDFF412A5B8415BC85CCB19DC9263B2EB900 1DC907541BCA2AA6A4879A016A99EF4E1179660F9ADF49D7EF3FE7D9FAE42BD9 B134DE6E22BD65BA2FC0904B349F192FF105F46E8B849BE08D78326A200CD548 06C792F185F77C8C01EFD7791BEA93D7E1868E936B66E77B11EB71C7ADBDFD47 30C1B10F097298960077CE4EF8B43498FBABB364BDF1CC74069BC1232664A778 05FEDDB57A536DD97ADB6893C484FBF638F0535AAD005B9040F8F4C5A8985ACD 596365FC9A066E96B3096F2A709E4BA2B5191733FAA31D11B4AD30BE9BD06A46 03DBA293FE94CF06ADA2C661A9E8EF65103980125119447003AF4976EDAA2AD6 79C79EAF57F0819F9649FF6E829D8B403F705DB3B271F788451A5F4DB47E0837 940E766CA6EF0799EE5560BD521390737355D4BBBBB5DB6EC9E12FD3AC9B735D 1C1A7EE65285A7293E7EC30F60462283728E2E1ED4CFBBDCBDAB4EE0BB73FB7B 9382EB082242E48E822D5BCA5C88042A7407D814D945284C4CD9DA223CD41FDA F640E3E64B86E7A9505EF421B0588BB2746F03D4C370B13C69F7451B98B233F7 B979D63C1C86F9BBD9D3EA06EDCED6B84C0408A7D5E8576C43A0C0CF69D7CB0E 02126074E9B3D0A580B2427F9F6C 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark {restore}if %%EndFont %%BeginFont: CMR12 %!PS-AdobeFont-1.0: CMR12 003.002 %%Title: CMR12 %Version: 003.002 %%CreationDate: Mon Jul 13 16:17:00 2009 %%Creator: David M. Jones %Copyright: Copyright (c) 1997, 2009 American Mathematical Society %Copyright: (), with Reserved Font Name CMR12. % 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/CMR12 known{/CMR12 findfont dup/UniqueID known{dup /UniqueID get 5000794 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 /CMR12 def /FontBBox {-34 -251 988 750 }readonly def /UniqueID 5000794 def /PaintType 0 def /FontInfo 9 dict dup begin /version (003.002) readonly def /Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050\051, with Reserved Font Name CMR12.) readonly def /FullName (CMR12) 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 11 /ff put dup 44 /comma put dup 48 /zero put dup 49 /one put dup 50 /two put dup 51 /three put dup 56 /eight put dup 72 /H put dup 74 /J put dup 84 /T put dup 97 /a put dup 98 /b put dup 101 /e put dup 108 /l put dup 109 /m put dup 110 /n put dup 111 /o put dup 114 /r put dup 117 /u put dup 121 /y put readonly def currentdict end currentfile eexec D9D66F633B846AB284BCF8B0411B772DE5CE3DD325E55798292D7BD972BD75FA 0E079529AF9C82DF72F64195C9C210DCE34528F540DA1FFD7BEBB9B40787BA93 51BBFB7CFC5F9152D1E5BB0AD8D016C6CFA4EB41B3C51D091C2D5440E67CFD71 7C56816B03B901BF4A25A07175380E50A213F877C44778B3C5AADBCC86D6E551 E6AF364B0BFCAAD22D8D558C5C81A7D425A1629DD5182206742D1D082A12F078 0FD4F5F6D3129FCFFF1F4A912B0A7DEC8D33A57B5AE0328EF9D57ADDAC543273 C01924195A181D03F5054A93B71E5065F8D92FE23794D2DB9C535A5E57376651 F6823308463DC4E0339C78699AC82C769542FD3B410E236AF8AF68CF124D9224 FD6EE92A38075CAAF82447C7AF41EF96F3ADF62F76FB425BEDE4C4124E7B1E0B 8BF254D91912D3A99557F5427907A56514C5A3EB961B94112077FE9417B70DA0 B2E1C1FA3E1D6F01D11F640CF848E45BE3E205258E64FE36AFBD4DF4E93F6B1A 966C8E7FBE2CC8FF43C1F67BF6C361678B5E90F4BA524FE8A4CAD6AB28183E6E CA6C9636E884845105595A2E40CDBE8D4807A81AF4DB77B31873FEB221BCADD4 2C4669459704CB58A7BC230FC59F867EEADE660E49AEEDEEB042BA9A7DD8193E 56C3A36A1F639F7EA512EE4BC6992F52C2FC82A890EFDA730105B0AF7B819295 EE00B48F64C2B5BCB275B1DD62F289CDAD4AD9B7EF057684642FA6FA6322C277 E779CAC36D78F7779CB6DE12638B3C65B70C6B5F8A8C6421A379719B8DD44973 5F52856A4A29B2ED37F2B1FBE6EF4B79B7C0CD6395C756A00FACD763C235914F 847D1D99831023CE1FD89EFEC83AA7E313131C0C197248605EF5BA773D0A4000 72F607551A8EA6F0FF19441ACA179177D1FF7B423FEBDF58B0C19CAE3C10EEF6 3538D8FC4762B77C5AA023A8186C40D0365A4487DC3564265B3DF908572DEAA2 57E29EC669DD72974F806EFF5ECAFA9ADF1F9D2A63087FB7BBD100F0F81C6FFB B1EA1C9DD46548AEDD147EE64B1B4894972DAE1DC3E8569D6A3CEF9F9E46DEB7 547E10BB2959D374A33E47C58F1B20419920AB485F166062FCCC08EB5CC9AC88 F388F0C0155027B727729488E44CCABB7064A1432E179189C4627453C5231535 47D1F2B8BA43069696830CBB6E5F9A135CF22D3D1FE490A3A63C088EA32FF444 24A2427BBA63033DFE2E06DF8CE67949B6AB02F26335A376B57376814D2A7DE7 64A4347577EBE9A6E33DD2FC214A09C6D889C8FFBF1D567032548851B8F97204 49E215CC7D222F593E1EF1439ED60AD922D41E0E9EFB5CA48F2FEFF75AC5FEE7 FB6676D8B8D4DB6885FBE8B61B586313E4DAFB09D94CEDC0507E93000104F3DD F83865A2C6F6A7DA8562BF86F5DB233CC9B53391273A1462E40876A8AC2B098A DBADD5A160DEAC061F86A5FCCAB495EF8A9D121AF07928EAFD56F618E4EAEA97 CF89A3AFD406FC9DE1E9769C1E1EB83BB883786BC075EB5DA2692CD59C4DD7C1 7FD2FF9B18AC740A390C1DB38670DEB18C67721A1DCD502FE7368F47DB4281D5 459B3F020595FA3B10544AAE9EF786A0645FB7C9BB29D091E1432CD878A05918 1665643005BFD9A4B0FFD347ADC84CE22D6F9AD4EDC05E8C7179DCB360AB57D1 6ABCD200A4B4AD56825DC345984D9A3DE11CDA5E9EC1E5006EE4181E4EFE0846 67D8C27BEE8F84A1E01947E945BBE988702DEB2240C4BED952E433E5305484E5 71965D3DE95C4115FF78CE9EC18E323C599727C8B93CDFBCD1CCA780DB8C81ED C4B5E596E1603624308972FFAE9A57B0EDB51FDDB6E23EDE2946F61BEB241345 2A192D8CAD53E823D687F9C64A70A4B4B703291FA6317C051DC6A44BCCE0288E 3839D726A8F2E39BFF429865E95C726E808E02CD06F36C1CC9AC77999F8E28BF CE9D74B699CA982479E9D0DD98EAB24D29C981EF0349721D6819549A39413801 F80182D567EE316E2F0AB208068E15693E4C399A381BF9BBA625E597E6E109B8 16F3A84C8EC92F2ADE288821092A421A8D3B907048FE947230810F0777EE2542 29A3485223FEA079B359034F70464DAD2F0E420271A4E0CCF57A0ABBC20AB327 0CA71B292126D395E0D083B19BEC6B48A9DE2BF470C3D01A8C3F52075BD4BE02 A0C518355814478202FD4762EC542F8E7B9B1F7824F0554660CEB83E35635E1E DF0D03C94C903ECB36B4948ED98B6324E0094EB1DF70863142D4ED3A932D7346 39D69F8F044B6084482D7748C27328AFD24A3A70B99D1F7D32CB984488672254 28B6A9E9DCA2C9FF6A1B311D72413404B3CE5428BDB7FF3C36357D7975184F56 FA6B32AD54C37D0AF7576663AB1397B80D4E998F0B4C4F6D90B483029EF2EDA9 D4C4204C1546EFF3100629453EAE01918D09FE104E626ABA38646F17B6A94CE8 116BC7A8D9C319434CA5B830859B4164DFADF1D7C3ECA5C78D8DEA930EA4AC3F 59DBBF3148C91A2E807FB934E3439D4F67C6DBBA9972854E6E3688E1E0A34B74 482217CFE031CD7B5DFEF727C3EF8DAEEEDA08F4C90289E62FB2AF2357EB2E45 4BC547980FD479101FFEEE477AAC6268DD659E8DD9E244676FD3C6909713B71A 323B211E571BE711D103FA23B5B9AF077D84E2D20FEE805E81D20C03501F0F17 C3B081946CD0FD577F00E50B76CC37CFA97A61B89C25DD43911B28857284BEBB 5BEC61FFE3A14C64BC5425A7A82326617F6F1FA4FEAE56071C9F559F91568179 46369B394A5CE96FB7420FF8AB7C61CB83492FA5AE4A4B0799578594C9EA67E1 E54498AA5CD6ABA34AD3417F04F5D8D664A7EB39D41E2D17643CAEBBCCD9C38C C5C9541641A09335EFBCE0D276A54253EFD68141807A66F1DFEB4BEA5889FFA3 4D20BD52012206A9F8D3E0F6AFC03FDBBDF3E51506EC6336E249CEFB571AB84C BDF8E471E3795C04E38A5306BA6D450D72E50910D1AC385BB06CCD4B8E433A32 5A4B7FACC976BB31FCAA1E62DB2C4FE06DDDE7367930E336B49F47DAD91C8735 9A35D80CA2E117E86B52E41E9278046ED923454989E48610ACB3B1663F197117 52659A9D7BFA561C7ACE0771794FC778675F83C5EDCB132AF124C7E6540A140B E0A268836C73A3C746DC964E482E63C56C0D396515283970FBFF182F9F684FE2 655FD8F5D057D22246DDC3FD11B77552DB4D90ADBAB77BBB1FB1592129DE0AEC F822D7D36E52BCDABBD560B403A5C56C5E1BE789C3AC049318C7FAC5E5861E42 FD66C3C0F46361078D7E036281682BCE9BBF77983C93ECBBEBA9B359769CA442 87FCA1B98F4EEC4935CC93B08AAADDF355C99816453587310F08C50B9BA3D107 5388A1F3AED2AE32BEFADF0285DA90436D1D7EA85D7B9B6DF2AC4B778CFADFF6 6EEE54D1A1C5DEE3CCA7EFF57A7C2931933CEED90CA26DAAB45E4388EC4DC366 B9E88518D6CF094861D2A59282044CC06E63EFB390A6DF4BA5EAC7CE39E1EE03 3D84099F5BE96612789AF3EDED07266EF10A0FC23EA1EA97040B6BAA63138B1A A9CB8F5DED781260962D7618EDB200C3ED976033E8967A8CC676E9C11F74BE34 343A7ECE7EE97E8F76F7E95517A6D6163527406EF5A669535CB2BF4031F29046 BB2D0FFFB47A576F5EAB1D00A582965C56F28C00B3BB7BE2CC8D8391F789070D 775EB775437F0CD53DA840BB3575104B63E4B0BF14E3F14B320EDEF65FD4CAF5 8596DA491BBCF3153DED3B718F833D106432DF8DB8B8E6B34D5308C9010A5DD0 7E0E53260BB84BAB3EA748E8D72F75901604F80F4416920D69B4B983DCDB72C5 E9928F01A4A85954FD74578AE336C782CDF81D1EB7EBCEBFBAE7ED8AB4862584 397928F502D65139CCD582CF0723C5262EE54B9D2B8C39614652A8A90E1C3B65 7D26B99DA298FE4B9A7E98848F619C9BB4FF9FD215B72F99506F06355B332689 37D80AFD9F9ACD8172CDC51FCD3A759ACA0F7D4EBB07840840EE42C2D5B8B257 2C6DB3A7657B75F2F0B9730A20112745703E2D0FE709436CA6A5F36F59E64D9E 37C0A23D6D289E1AC1DA273872F5FC5C3DA2B127F078A4D7AB3FD7E124455817 DDC796D54EF26A1FBFD539D3A21B86DD4477DA49213259ABB3FF241424F2BE5F 89151E02FF87E0BEE26E85C0E518D8BE7CC9214B8E9A9EA1DBB49C6C212CCF08 90C0F23E9858947EE344062EBD9C574979087439975EAD4E85CD7BFAD3C91CF1 EFF577843AF1427D06CB2F3BB519ED1591974218C43F0D2038665F9E2E3960B7 FE68CD3CB2DB6B36C7997C6B21EC11CF1DE049541001FFF26D14C255E3AE862C 5A5701292FD2FB3D04523D6E2F3547923BB117718DFB6E6520F0D0B5450C695B 8C9242CC8671B7284CB2E1E9EB097A3DB1B4D5E8EEB93B4DC7E38C0A10474665 54DDCBAF079B92EA494F6FA75A84C5AAFE280284D0823D7C22249A21044BB0E6 4062074ECD17B62E03EDF4945A294BFEFB51F5FD870D9D7230FC91B83C1D85A8 86CDDF326FC90E04362145D6E8630C50594484FB829DA18F5C078F2EE67D2F2B 08DFF39AE2E8C9741FA989AE494C7166F122D2C5F71B97C973B7CE8500E9F87E D59C30F2E99CC4D34713DAB680598F41955FBDC26A14CF1E73D6BD6B9AAC8D3B B998F2D0D647356CD236DEAD6561389ED3A6746221B0CF15D6648412B35A6B54 6A0EF5BBB34AA376D9BAF025BFC650C1B74333CE85413D0EBB2F4D082A26A5BC 3C0A25D2B12CB159F140E00E262F1CFECCB2C802FF94CD34DA0CE9B4B3830FB1 DA85B9B670D5169928990A2E9CC869891CA2FFAD9774E6B92549644DAA5FE00C A5BE4F5FF91A0B6D2FD8F96121D766391EC4ED3E73DADD476B7DAE1A50AFCD98 DB7E27E44D30416088D9BC07D4661D9ECEC0806830ABF14CE55AA3CA2DF66E8E 748B8ED46466F1EEB072AC0674FE6FED231E0DDA59ED7C42BC05EF00E176050A C4834D893DE42474EA20DB1E25059E84BD137EF65A02CC295B0FFDE4CDE95879 0FE88BDF2519ABAE7F8CC3E6386ED35E04A14F1E3861922645E3A3F43B48A5AA 1999A5EFE192515FCC625C829FF5A7B337AA422F5E920545F9BB269C869A821D 6C4C26DD2AE746EF0F0B4C1E7E9871ADB5270E1CA9BE28225F7A0370D4C52422 E25263EE101C4EC1C7811B05AD42F364844A56BB91EE72FC8ED53CC6954D2BD6 F945D739BE4C61E36143CE890FC0CBF2F610018D678ECF7CEAB18FF5A0E48F76 FDE2463D40A99380D679B3B76D39C664F4992D23E5988B0D1AF33DFB04894016 E852EFD1EFFE586153C0F31ADBDBDE3F73FB49C5EE64D0D02E1504248FAFAC3D 903FD44679BB09C30288139B41B1E90A10139CA3172677250B16535A1F3E5E4B 6F4264DE58896E66051FC677030A121C5A285C47B6129CB5A3998830CE070D21 2F093FC1B44089F603A21F45F60960F134A47226874C737EF6C085634B0A4A66 139420501351F737A73F39D960EC38420BE46E5B09D298E7C16B8E32F01507D4 0141FC52DA1DE718D634AD9C8B00E46EEEF84356759324D2B9A3473C5DA38DE9 E30182B87F91B6A7F7BACF29A93B44C879CCDEDB063F9D2E51E0F1FC9F018FE1 2433D85AF24B55DE3A61C4D0A2DA4FDE933F5F6FDF17E9FA9932BFC46E2D71F6 585EEF5B2E4E89E797A24B799D7F064DD1A817A53677FC9EB8CC3E7F93FE50E8 D50E3191052943FD6C98B573BDD1F6D70349E1F8011599E3F8FDF1D6E80A710E 51E434E85801617C6FD8ACCF1B77B4BFCCDD35CB4C0367F4EB4D8D9DE8284D5E B4F43E2F8320C2C5A9AE90ECBA7E65D377E91DB69FEF27069235366AD3E126C3 A73CE97F4C90BA00D206FA012C327FD69EE59AF4470A315B1799CDC0539BF90E 512C8FC3BEFE4D1B01D969EA9E3FEF976CD6E0FA4C9ECEC955B265CFD58AB8E5 F7371E479279EE14B689269205C5B506940606CF3E24A1E7EFF3CA96ED30AD6D E243DE57690C3D69A401AB3315FA49E4BF4ACD4DD1CA39272533E82EFDD508E5 1C2CD286CCC5DE1202C7C7F654521750632EB637F918667E2233A43DF75239EB F28F3129EB5DEE2FC5BFC331FF709B0FE9B327CBBCE98BCA2C861C6547E50407 1218CEBE6EB5F9BABA4F2E11BCC6FB553A544A567B459E06375102C69F8018DF BA6A227CFB13E2D74E6A521E01B74F2963E9A0A1C9FD87A88EE6356E3BFABF55 BABC751D2BF85E6712E8EF57914920775906662E4BA68FFA21AD422D34E15578 43CA0568B431101A1194F8AB1EF25E886BFCDFC10F4A5EBD9530816548BC298E AE4A0B6B52B8B59C644C409B4191B6F4203F52314F2675F02AEB65A72C66E92A 2AC703E15D8D381522C0AC30C165B822A9B8D18CAECC094EDE020756018DCF51 D0701B507519C4270B70D8CE94B436F640C15872F9B5B77892AA3D110E4D6A65 8F0815C61A5127BA25815378683F46E69E54A391A8675977E7DF9C2D4E6FA991 9F029E50CC2F266B31EE9F9F24452D5838905F330CB7E416B8AF836C5AC26AB8 BE2ECC6EA4BDAA08C30995709E225C21D35DB6369167602CBFA8DB2697635925 969002CD1BEE745DA2E56C17EF3F0C05E3847147F86963C37A221C8827195A8A 3D38993E4939AC915BFD9A212F5FF3F826F742B952018986F9FBDDB69C3AC65A 845F7F33C55D4BE60A1817EBBCA7E1538E8087E1BD5C083A320D52953BE65F31 E8339C612A510B59CE48D2EF7061560C4AD258E7DC59694493E3AC878246F37D 6DE89253EBC8830C6B209E818213C4AC4CF1F391AD91D57BE76FB0E2924A1407 E4A949C905E44F54EAED6419F13D59942C8079336A172D4758BEB5D3E786FB93 3CBE4FD2EB53E4E1DAC34E821EB30FD44BC6CB4298242C38F848FC23AEDC9733 52BE6F32E31E25F18301370F8936810B0566B664B042C7AE0D78ACF0A87E5BF6 F9B66E358168B2CEA30DCD940074F3ADB793CDB136161FE2522905E87B8E463F 95D4DAB7E14A3DF7BCCE8141C5A08FCFA2BCE9F2D1B05A7642E75877EB840149 AAB007CD239AE47AD115929427717F219B0A8907F0EC79ADE1B901DAEE87A2F8 39361DAB43DFFF69650F601B24061A9353CFD619FF9626F63275FD09A5B13BB4 8B3379EC4D147C41197E8387FC04DA7BE409524CEF74EA91DC066808A7FD0EF3 957A44E2503EDA67B1C61827479486134E922E560A673BF314D601C66003CD07 55569085AFC8428389A140EB976CCFB8F29E27587E46C413ABE2EFB51AF5913F 53EEB74063162E0BA1E24CEDCA320377D3E11BD374F0B44E132A5C35835B6E2C D32948EF9DC7931D104C1385709DA882DED6458319F21C2329938396BC074106 CB9CFB9E0A915F8DBC8435F386917AC87A2BA45D857EC30ECA66FB4044F5439E CDD556B82A0E43418D179AD883C85AC276E1190CEC242E3E1D86E725ADC39E46 BB6C47FE9E17E29F8EA81E870302A00D91434F3B7A05F243176E6EF1082541A1 B9052191EE5C2B8E94A2E02DB65FC769653CA8D1C07A13CB853544AEC7FC35C5 218DE3128AA31952DCE19C55C23FD69BCEA2C661F57B11B8F9E86BFA718D1521 3346E78C701A5E51923D6D937E62FDE3669B214D240538F069A100A542720A86 31DE88116DE775F7ACC2A49EA6C02A24408271A846990669F2AF60AFAB4C16F9 7F4E88E917F0FFDCE68F22998AC0AF2A60A73258C3A4BBC42A2F918123128195 196D0E150D79AC3CF4628503D1F3FC528265ED8324E56849A47B3B07C29940B9 1BC270071E221D355EA51E9942D3BD7F99816304FFFC8F5B036C953B38759341 ED5D7B9C8E6B70C409DD8362FD291201CC385E4A98D73E8518A4C0E544152563 82032FBD2FCB6E403D34B85ED4053A8CB619BDD4DE001F4C3007B1F317579651 E6D6662189CC2D95AB85D7473F65C5D7B4AC63B0FE928F3400035D5A9D443D0D F3532B99F3AC26CB25EA3CD64C341159061E02EFBC7C033C05CD919BBD827A6A BFCF3BD739E32E7FE909AEE068D50FAC33605FFF98C7D0115FB860178FD03DB9 7985B78E0AC21F2EA065FA841F5928FB85163B2E2D8F850DC7EE313912C45C28 2783F6762C67882EFEDDC7E7567F91C16B16FD8D5A1ABF35B5586307701B91AD 54984598F2AD46FEE3D68A2731BEAA754C8E730FE0E84952EF77930E4118F8D7 2F3AD7552C48C6D71102367AF3DD19DD76FA71928B63D7918C3DEB88840FEB80 D288565525B144453F03FD08340E2DD4777484B552E241EB0180BF47E9A19BCD 086D89AC4DC263E273CB0F1D2E2082E023038DA303AB252AA63564D26ED8721F 8EA7AB22FEE60F04C671961BD11F2080F30456DFBBC89894FF05BC9517EB869B 40A4E58290546539BFDB4BDBB450AA7A70D019BC5A39236EFEA6F93A9FBCB8C9 7EC6DC89C5F27EF258F0D533FE882202FB786D0CE1A9D7D0CD18CEC7826291BF 1D3DF573690386F2ADABAEEA8E83960631A33AA07BB7B4970477C46E92D30D75 6E9F27887A8D1CE84F20F88DB678A0D65A53FCC7638BC932CBB2715639B5786C 3E4C88CCFE8F7D758EB497C82FB73635E828F165B2BA010AF65D973D0FF3CBD4 71CCEC76F7E415FE5C72FDF6E2D511B5105874E9B69AD641302FD432DAFC4D80 6B6CD4D1D5B658D4A984B34A2666ED8A74B8A070D33AD7A0E411C644BBD42FFE AA7FE68F9E5EEA0521867422FD6BE49B18BF8AC265E40049F851DBEA997C34DF 3CA77697F5D48FE22C64C303D089E0B928AC2712EDD68A0EDC595FAF83B5D4E0 28EFCAFA72269A4FB0CCAEBFECEDCE66AC7D1FEB9DBA1FC28C33DB8B89D5CF97 932939B64B63070D7C293EF846EB7DE76B5F06FF4DB59278DA0F1111FF97FD5D 25291C63D01506FB143DD9677CB27DD0364FB1D756AADB0D6DF4816B0B1118F6 340C38E4FBCC4C393F928D47585ECEEF5A7F8A15FBBE393029B12DE7E9E4D781 71AC2DFC33FD7D59FD80DC1A634C5D99A068803C674B94D56D1520BD4B21FFEF E020A7B28948FC4534240839D1C825B4E6C4C0844F057A38EE984B7E5B9AD8BA 533B9492E64A43E7A04EEE064DA56DA3E08747D5705F44F7156AD5C65653164A 82150DE6717C614AE1F722D571745119BCDF5B8F40EBE4B73D8CA0A567EC9991 9DEE71B60A72734E0E19C41457BC2CBF08FBA1B4E045DB90FC51E874B64D3ED7 FB7487F36D12E8D3D95FE7D078976AD534AB074FFE6BC8279006DAB8CA55DBC7 89A13800F9DAC874BC74E1C6A6E3A0318AC1656DA73FCC4F5A8727DC1A0F9595 5EC9B02BC987B9C37CDCB45F921306EA22788C3930E3BD2C5E91C9FA8FCB2F52 30BE9FDA1E9F58620F5D95AF91C389A6ACA28BDEE8BEFEB80DF279D17269CCD0 279CD36DB612D1D0DB9F3B398C04A1D39591F3660486759C2C2B9EB9393BA61A 81B2DD33CEEF70E02173165D6C15FD36D3F40B5D7244F29D3C57415F60F19698 4BB27B6B6DA60E7BDA42F2E66AAA8E40FBF06465B80B4AE49CF3607C79472706 C29322ACCD0D0151F3D279ADD31AD7FFE9D694169DAA60CE6A67642202BCDCDA 6E29C8BD1D9705034FC1680ED7D7F44621EB918EB0F3233C0AF28372ECBBA672 059017C88511FBF0EA1F3B7DD84411D019D17A915EE05E68D79DFC4F03DB59A5 ECB39748A437A5882EBFC1574027684145EE9264D62757CF038C0AC868A13319 EE14856DEE3979D82F249869C7A505A4B7AAD1BD0599CF398A32AFF95D3B88AA 12974DFA24CEF4D673E9BC4B9FB36398CA44F2B9FF23AA192D56E35056C2177A ED4A6B1660520A05C01651D10A37748E1483DBB6FE13FD3EEBC1FAA34349AD82 06111CAE95F2013F111D8FE902B996C77A1BE211C2B6F9BC4DF73FB024B4D2E1 CDE9A94BFA9727D95619B30F332C018B528A8F292A142BD5CFB53AF214E36C08 E986347EFFCC3C3C885857D04A85E2514063067F3141BD86B3452A1A2B495372 EAE088FC784DBCA46CC744D9947BC5A8BF354F2C630BECA351DE6A2D47B30F80 DDA9ADA37E50B1816F739DB303627C79CE5DFAC2E94A9CF79957C0CA9B8566BD 892431AE4F23AF6056C7D8F184818C9D4A9E57FB1CEA8D74CCCBD38E5D7E1BC2 4551ECC268BDCDA07E675C206B2DCC7E5C7DAE865A4363D4122848B46F198507 7E166303E4F30C50F0061F6EF316AC7EC5FF61662F088696E1795D75591E6CB7 0ED973CED00B0D058E9622043AF118ABE8C2B757BA3A1A4D5CE2E6C06A2EB582 B99ECB6C765811568EC35E38B81523CCBFF8327E2CEDBE765C18A70B9E054453 1EA6E3E33B9975A49873F3E1CD0438BB53F056254E7051938D08A8173AB22AB0 9B42C13A84F330DB43CAB3AB877A66C3F2A0295E9D8B6292EAB9546F02FABD59 13A88D7CA669122B532C906C4081988C0BF556AF1991E1E4C9B2D6B3BC798B49 A8A6943A242A0CDFC03B498F8F495661C0B32ADAA6C3CEA8C1CCD1E84BC3D174 425A71F8A84A1F806489E2C926CF032CF157A1CFF0498121BB3A6DE04DC400EC 3D98FC20A2A20C110DB95B335C4E1682515292A12C8415E323EBFA11551F2B7E ADBB7682960FA594CBE077E1EB10AA0158273659E8444562093B5A4C28A39E11 362611D6907C0B34DC4C958DEF21D232E2D01DE7F9C649C45ED941A8108AE2D9 775DDD587DDC8CA72A97C3E2E713DDECB09C09F67026284E674A5EF85DE699E5 7258BF1AA40FE374FF2363847DD0953A20259C7C8191E0FE0A391FFD06DF9051 3FA61907BA4F984D7089F1329579927E64A8076B5DC08BE067E449948BF1EC70 03AED3DFBBE20C2B23CB113E3F4973DB01433A72E68335BCEDA94CFC7239E7CA 55939B5EC58B380871397F1F13D7A640D8FC6924AD183ADAFC447CDB9A6CB63E BCCFE5C11E884CABA6261D5605CDA3EDE239737490593E4E4CBDADA0182C8362 F27FDE36EFC56AC691376AEC6F3204D96AEE953AD141629A31132296FF60ED96 0D54E153FFB5117845FCB6EA3B1D71FF4328CFA0972B2E3AD0B1430E33F6AF44 5C12F58959EC611A449923604D95883E378D2DFDA4D2B2D43BC9B4F6D1538350 D9FB3E6B5445C696D916E93A1FFEBF2C59973A523F8972BD8FD20E160AFEF38B E355E2FBDC98F0971A4D04298C47C6781201EA4F16964E6C441331193383C6BF B3109040BFEBFD7217655899FFBC57FFAC3778729924CF9C9504A25823CFEB22 DE375E4AB029F99B91B037A1F956F4CB14E973D5847A3D1F15F400E54730E0AE C9C15DD4322AF9DDA0CE77074EBE320435B9D82BD73040E5150DF87AE690115C AEF26E5EB2612FD51F7761BD894DC139E79C7952BC319E364BC09825CADF4EDF 129D8F7B6D819BE5BCD1C223DBCA46785DB5A2DBF04FB42D451691B25F647B1F 3595EC997C631B70AE41317E8F80394B768C58E64CFC5F97417F88C9DDB98CAD 9F53DEAF7B225CC6DA84B79B21C1C4810D90C1871EE2B20E0D0B4783F20EE925 0E91C1C8671B97FA9E248E8F03B15EDE15F4BA072879E90AA8CAED46886DE114 D19E0A1BE52572FDA487FC97405B4571CD2A48B6135D6EF8C22420AE5C7C9B89 84D96A38FE9067CB6CBC1826C490675DCA6EBC3AFE89FFEDCBB7C83F92D03A32 30C76AFAA57B6F0854E3F4327BF892F0C4985DBDF87E476DB2DD76A5A235A7E4 E750171DB3F4C945A6ED52112B1FB818CC513DF536B7DE1C16685B03589B3D03 DC7056DD140F39C2D21DF867BC23237F697B6CFC080D59239AB465FE688461F2 EA9F0350D62450EF80C454227DB6D60CC4A1156A2C3983503EC4C020B8072F7D 7D471D3D288CA1A1497EEFB7C826FA93CE0A31B1AE583E75E9A97E84CF0F39F5 27694E23AD868C04440B4B3B674246712D89752365E32A6FD7DD024B6B2E9E09 420420996C797C228DBBA33529D256565B4C479C9A4826943B79494816FE9AB1 7A7CF2E0C3110142D10076589753AB96EB827399232E10EFCF1303500DAD9F9A 050FF4D2A7BE882CEC519E57C44AB791605BBD1CF9EB46F588AE695026ADD366 ABA1988D0F692BD8ADA131CD77A6A1E3B44536DC67A00E6FAD10A2807F3B4A76 7AE8F7C5CE76A10958CE05FEE5A6B9DF29540306704239A72166F38FB34ABD12 189B5395FAC0CFBB0B9B743486E0A3E36103A60DA0CC52D78D3A6E646F04BB5D 533B1371C2C7BFEDB46DCDA8E7CF7A00FC29C1BA4F0554FCD1701E0FB3614C8C E63A351C080E03B7779FF122014A34B32EE0D4557F0C3AB0EDB23EB6ED0179DE 34B1440C36BA2B40CB06D26DEDE8C2EF827E10BAFDB6800B60963FC5509333D4 C6AEA8BDD3102EF19E1DCACE8402DB0E98343CBDDD6BCE24D2D9303BA4AD16B8 EE56A24D80F464EB153987368F7E899F51FB67923DE8EE2F20D6D235E28D94B9 8456BDEF0959A3B015462E79AB7B84ECF0299444CE4DEB3C8EE7E2BD23CA59BE 49E6E2C27C0E787376FB5F9524441F803ED572ED7A1321E3C775D8890EFB4A6F A2AAD2B92BAAF651D09E1C7B3059AAB87EA01E1EA8CD7206186202B9115B13E6 7995708F70E72A38BB9FBC9BAF38077D3AAB047A7B469BDC8CBC1D2DF9AA8492 74D52FF2AF461CF685C751EC27E643EE8206CFAA38B9EE236E051C1847D58D33 E2801A3F1DA3205E8F383832356366C6D83A22ED1051FB93AA1944A220FA05D1 4D5FB1A3D14781160712140F698CB99C7EC5E4EA8F3C8DA526A7F92BACC1C67D E04F1A5B080D43B0B8589FE343656B8B84E676ABDC34FD93E24F6D1A0EE4685F DE701BFE614C49EE893F9E2D7DA3F6E3110C55324A3858E9406D1F098D53D65C C5CFD7A5B8FAD2EEA008188F3CDCB6A3029FCE3E1FB6B7363E610DE04FF30604 6262C8B4EF036C5BCC2FA76C09DC2106411E40E8382671BEAD16EC56C6EB5A5B FF2650A38302C5E0A9E5B0456659225818878FD550DEA6D1C8704C6020D2A9A2 9728DAC36B72ACF23991C122E9EA0E52DBBD639431A0C4375225D16C7D1C226A B09C2CD2A6FE67209668B9B876D777B86F68C3AE872EFECD1730456F168E48D7 23E7A26B783AFA95962E94AEDB1B158DC3DC3A6DA5C17BEA6F42C7D4D5A33206 32A767AC088B9BE230BF67353507449272A35F18937656529A7D701C5D6ED11A 30391309A4FCCD5E7530BFDB769C2F3FBA44C27FF56FFC8BE6BCB316DBBD1B69 85A75C6726A9C0A63AAC84036265EB952556A0610C2832FD04636488B89E2C02 528754DA559FBF275565644798D4F11E33892AFA540C1F9573DB2DEC7B2832A0 A538E9903EC4A97AE8ECE9F42B72EEC9B4B5560D1BA7248993C46DA23A3929C0 EB18C32E4ADB24350F10F1B703A93BAE3B82D7CB66E0FE460DFE1C97FA5FB799 74E827C03981CB1175E54682465C5946442B9C2ED1E5AE3430D7E95680D69315 0603E5B2994FA3666DDB44CD35E5C8116CF2F5DDA46C61BD309353D3D89BF459 7DEDC647A51267BFF24F029F7C34F4B82B9AA619B1B23A678E90003B710D801D FD60E1ED36 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark {restore}if %%EndFont %%BeginFont: CMTT12 %!PS-AdobeFont-1.0: CMTT12 003.002 %%Title: CMTT12 %Version: 003.002 %%CreationDate: Mon Jul 13 16:17:00 2009 %%Creator: David M. Jones %Copyright: Copyright (c) 1997, 2009 American Mathematical Society %Copyright: (), with Reserved Font Name CMTT12. % 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/CMTT12 known{/CMTT12 findfont dup/UniqueID known{dup /UniqueID get 5000833 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 /CMTT12 def /FontBBox {-1 -234 524 695 }readonly def /UniqueID 5000833 def /PaintType 0 def /FontInfo 9 dict dup begin /version (003.002) readonly def /Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050\051, with Reserved Font Name CMTT12.) readonly def /FullName (CMTT12) 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 97 /a put dup 107 /k put dup 115 /s put readonly def currentdict end currentfile eexec D9D66F633B846AB284BCF8B0411B772DE5CE32340DC6F28AF40857E4451976E7 5182433CF9F333A38BD841C0D4E68BF9E012EB32A8FFB76B5816306B5EDF7C99 8B3A16D9B4BC056662E32C7CD0123DFAEB734C7532E64BBFBF5A60336E646716 EFB852C877F440D329172C71F1E5D59CE9473C26B8AEF7AD68EF0727B6EC2E0C 02CE8D8B07183838330C0284BD419CBDAE42B141D3D4BE492473F240CEED931D 46E9F999C5CB3235E2C6DAAA2C0169E1991BEAEA0D704BF49CEA3E98E8C2361A 4B60D020D325E4C2450F3BCF59223103D20DB6943DE1B57D05DA0555DF933BB0 7B42D264831116C06C79335D519461E7B0E870A6715E3D74A08D1BCF86E3BCC3 A43FC6BAD1C68BD9D4AFCC06D845FD1F1E70D7A47F0BBCAECE8396E04591E5E3 4797F646AFEEB7DB548183F0B74C9BB6BA2AA04E7F5950EC8AE97C741D4B2C5C A8E7A8DF5A36A30B5A7592D95E1DBC63EF33C92FE459792CED29E2B8B6919251 75EF62089BD7D44A6E1F9B62EC802FBE62B821DA1C3B2DDED45D27964AD29ED0 9FB7868F3A8FEADA87A8E42D52C1EB7229D7C79B60BDA263F2BDB025AE14A507 098FA274206BACFB4A0A7257D5998EE8F0FDCA79CB61DD1FC59DADD11E16BF02 ECDFD706CDA1E72054D4EB55AF7BA9F19955886BC0BD6E0E3FE3769C94AF3581 DFB2BCD67FE2892AF07E858A01280194D8DD7332B3D0A585C87FAB056C2EAA9B 5AD48D1C9F00CEF8EF0D1408DBE1C03D04B231D7B8D5D998FE0CD7EE19828EF2 F988EBF6DDBFEE00F04A4A1F4E1A55DED7EF3AACEAB5005F1962C724A017C914 2936E2E0DF26A55ACD7DD836C6035CBF07981C1BCE3615064F0540A1034C69B4 E3908E76EF8925D486DF0B4A8E1F02D8AA99585A7C31847AB9382F83880C1C21 C496AB2DF8E7BD4643B28B704B5F6B53429D3EE940A79135F5BF0396E5B46F23 42AF406C26D12BEA7A41F332AEB75DF43C15334CF4651A99F602036946B1B91D 4BB0D2E51C20216D892C8173241AC8FD15A37C3CDD8AB4FB67D8565AFA61C068 95E3D6E46D7C09BBD09428207D506AD43C693F3C3D787F6A5C39084AE45E81C9 830900DB50DAD10A17E118FB5E9680B5194716A788FF7514A1167DD1A305FE62 C7DBA30E569DD3565AC9C80B112E221E3878624A015F6224597D02C9A07B368C F9FDC817988D12CB00ABFAB288C20A59AE40E7A75C235938C47F77261BED14BB 6574F633BC4DE9E8AEABC46E0965AD69748C315B6DB5F264D5E7635BE37E23FB 873E2488086BA27275142C774A4A241F92E8ACFF0F25E81E2565642D88F77DE7 03BCCBC437BB1C9EDA969E92CF3423203EEDE585A9371A00BC54DD695BA12EC2 461AD673A27B24AD38903C82D020A8B235845E40A00CEE82BF1B187AE84E847D 37D5098039C3B116C213771F69B63DC822F4B45806D038047C030721213051F4 BD1EF230F86B915B67CC9624DB534F55A1B8739165AB9AB9D76473752C628AA5 4FE057ABDE42A685535EDF4C814CF00F53E7B520B470A6CAC4480488D82E80AF DA5B7A5FC15095787538038AA94AF56018AD0AA7573CFB6DA444E30A99713E4B 07B1CCBC5DF5779110370C81EC980C9555DEDEDE7B655475DE867CF94E57598F 5C70B80B05C94C00A2E8B33EEF429E909AA1BB0DD1EDC8E27E735B41BE8D7708 F9E444DD44F344736EFB0DE4323B4626237B53275CEE1DBE65396BDA86047C81 25AC606422F5D16179F6EBD2E6B39F838A5171DAC344BFAF5A31A3EC688D5BE9 FEAFCC0CC06D38DABCB1982B30CC7CF3A0197D82D7CE414156525C452B5A6A0C 29A5287C47E4ECD1DAEC9237FBE4DAE723F7256D3BC1BC8FC9281A716C93831D BB09ED556A845A038BF82B25CF4B2769836EDC4D3BB01B2ED52065564912A8AB 0B1FE169ECEEEF8D6BE91FFDF1DD67E6E969EC3B6C9EB47BEC81A34CB840F348 D49AFB71BD8D9CEF11019F6CFEA9C6E179634796515B45211F19EE2917F1CCB5 FF91F8329B6F04A62C0A430B8794C27D87CF0BFFEA9F5A96CB9D447D6B4FBB42 1BD54CA909D19569F563701215AAF75F8C1B61F072C3DB38D9666F6D635F8FFB 4C6BB723EF2094DF5F6D9C2E1933F72DDA6DA9A6E14AF2D956D5135537EF0AFA 5085D6B9C6CB7B67FA4247FE3D193BE96B85A35ED1313B2255576490F2E0F5CC 3CAC51FB07EBC0C72FE58C577017429AC0D8B80A21DB1ADB042866C59D1D2947 146808980B0BF886D3CBD5D883690698 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark {restore}if %%EndFont %%BeginFont: CMR17 %!PS-AdobeFont-1.0: CMR17 003.002 %%Title: CMR17 %Version: 003.002 %%CreationDate: Mon Jul 13 16:17:00 2009 %%Creator: David M. Jones %Copyright: Copyright (c) 1997, 2009 American Mathematical Society %Copyright: (), with Reserved Font Name CMR17. % 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/CMR17 known{/CMR17 findfont dup/UniqueID known{dup /UniqueID get 5000795 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 /CMR17 def /FontBBox {-33 -250 945 749 }readonly def /UniqueID 5000795 def /PaintType 0 def /FontInfo 9 dict dup begin /version (003.002) readonly def /Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050\051, with Reserved Font Name CMR17.) readonly def /FullName (CMR17) 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 65 /A put dup 73 /I put dup 80 /P put dup 83 /S put dup 97 /a put dup 98 /b put dup 99 /c 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 114 /r put dup 115 /s put dup 116 /t put dup 118 /v put dup 121 /y put readonly def currentdict end currentfile eexec D9D66F633B846AB284BCF8B0411B772DE5CE3DD325E55798292D7BD972BD75FA 0E079529AF9C82DF72F64195C9C210DCE34528F540DA1FFD7BEBB9B40787BA93 51BBFB7CFC5F9152D1E5BB0AD8D016C6CFA4EB41B3C51D091C2D5440E67CFD71 7C56816B03B901BF4A25A07175380E50A213F877C44778B3C5AADBCC86D6E551 E6AF364B0BFCAAD22D8D558C5C81A7D425A1629DD5182206742D1D082A12F078 0FD4F5F6D3129FCFFF1F4A912B0A7DEC8D33A57B5AE0328EF9D57ADDAC543273 C01924195A181D03F5054A93B71E5065F8D92FE23794D2DB9D6295729076BD8E CBC0F4C1BE246922D2482233846A96D867B66D9CF25A1DB661141D36B8506E61 A022F9EF8BC1F2F674EDF1533E67A78CA29A612AA9268E113C5EB84DA56CEDFC D7A111403E6E2A8682DB04368889747E003A124395ECF0C7FC81218552EE7C6F 60BCFB4120893528670D0E8A4117EA5676915E3591AE5652D003EEF67818A41A 8882E102AEEEBECBD15DCF632ED246A6A58B6A7780DB6F1F9AE3FDAC8344585D E104F2BA2DF06D68945889A2A3B6C262FB53FC670BC5EB7C56887FBFB7AA7026 84115872CFB0652C6BB330447AFF8F0F665EFD6A41D6DB6877B08052F402448F CB21C26BDC900636C99CA347B79AA73AFCDE9762A992CA3DDF7279E5C50F453F 52098529850AFB1F501A442D6A02E0A2896F81C8AC735AF1E7EE47208B4CC944 649DF6802EEE813F1456205C6126D7D0B1821AB62DD65468F3A30575E491623E 0054E2E680E4402E1C8C538DA389B81603BE88D6DC287A076F92B224CD58A0AC 44B8D490197341808DEF243660971F444A560C747BC6F52707ED42A99736ECCF EBCB694A561C3A70A319D204CD40D402FBF937A00BBCBE85DD26C9E3F91B7D10 D85B9D314BC3AAD5A58B107F5F341BE2C53490924142566417D6BE03BB4977FA 6635EA58DEB9508E40B9FFAC75FF44C683680CF242FE210519C9BF92483B0A54 83F48341318BE16D2F8C988FE3DB2E7914581F579D5E323148A31E4ED03BC24B C990372DF5F3B0C5FA32EB2CA4FA0EA33316569133C87697BAA2292E685C26CC F8CD40A2366E60B47D47CC9D0FA29D2836011376A07F78BA7664DE96E775CF45 9BC91559A063073A4C2FAAD0893C517C5C46A1425D07EDCC2B57162E3A45103E FF26A2D2F98B194256A4B052AAFCC08965A50EECD7B9E8F35AFDF7B6568B3983 8030655E7C2BEC961A2F20539D617626E8454E3FE9EBD3EFCEF7F63498441DAE 16CB509BF239FBBE25EFEF07A3E16C9C71EB8D9DCB8403916FB40FD7F4E1A52F 72F2DFF94FD14D7D49FE775390C17C37C1BA0CAF35CF75D682B7833A83224158 D54CE962CFBAFB1B2CA50B60CBEB1F8F58DDB2F5470C355ED9632342D9382AE4 5D33BCA3A0A25EE9E5B39BE5370E7F20684C664EDB48E7973FEDAD9676F9EE8F 701CD4D8CC9B9EBC06E8C86EB88AD56E15CEBB8E1930E8F711CB6E01D5D14967 D7E6C1BDDDE2C4D00384EF4CB02877DECC27AD53FC981338977BA0CC0257CF7D B42E9BC91AF45D9722461EC3CD9DEAA8011FB855FE14B74BE0A102008EACA2B6 0E287BB4F466FBFDD6E65A5262B9322F95E20DAB875A10A84572D982E6FC7ACA 23C0C37E5EB47B8E69C07507B53CDD98CD1B6445E1699CF35B3DA3E0DC56BB76 F997C40E2ECE47DBDDB707EB527055960113F2DABC87FD9EC7D0AB36B400CE33 0D54D4F197B2830B43DF0AA802DFB2BF747A4C44B31FB708B2C8BBE1955A6A28 379C91AA4CC065A50098AEC0B837E180B76801865A43C74859DF18FE1DA1483B C17843BF1C7E1B11A8C6D8BB8CDB1D552FE6A1FD0A696A8F7405F2320F8621EA 17C1A32056C45A9ED35D2BD12D02D8B26489CAAEBF4EF33B66FF4BD9B46E4823 6395831A8F3366EEA0D0EA88D612DEBF63DA7FAA24DA979ACC1A52544BCAA007 6C39946BEA6076ACF45722B2B8E4D0823EA2D12B14A98367BB0433A21FBD9F94 18DF298C56F67ABC9DB1868D431A854DBEDF8E1F49E359A545C75A7AA1FA4D5A 50F1EE6B45FC68ABF65FFF257964E4E50D8B0C1FAF498DFC554073697C2F219D 4A68DA9E873B270B9C56F0DDBC9927ADAF9203FD684DE615F68C24ACFFB44690 89C0D5322049FA69E7FD00EFC9C9B2BD177B5B339907F81C31496662847BEC1E 56B5DCDF4FE618970F4268F475B2EF7E0F28CC986DDF098E59DDAD818649CC35 4080C0867A884B8177A6880F06F1E5CC130AB4243EF8DD8032FCF390765BAB1C 1F0C9728EEE261A09F8C1D7ABC7A6B1550551BE2A7D19D45B656650DB00B3A5E B3E1186043E173BB4DD5EFFB379654F88146382AE3F7196F099BDCD6D245FB6B AA2FA9B6CFBC9F0CD52798DDF2F13874BDE5B124DFFE0DD93E24C9DAEAE4C3BB 71A9A13AE2860F620B4EC789F95221015D9C510CB4AC775EF69DB9E32E59C896 1AF82C9F0DCDB4812A37761859A3D3BA0CA57F244489C78065346FFA78F5F7C8 0B2E8CBA9EE62FF5C27369D0BCD52857D40F1FB8F8A1441B83565A4150AB1945 0B54D6E49F66389E43096269EF5CDD39526A288C0CB81E324E75D326EC9A182F 2CD966368CE300B41873B08E17C3E6BB51804460D2562AF5A12339966F44CD09 114C6809AF246B5BA6937631842CB9417781A58944B6BA4FCF961465C208957C 81A662D560D0F81BD3CB53C06B6D979F04F6121CCFD5D52702CBF6C70C01EDBF 2040AAB9CB144321E68C4010E0E98CCA2603EB55DD62E881DB621C37EA4108D1 528ECC7A0121B57C6BB1E26F8AE7161ABA7E88256D2D6A8B7CDE2E730D137493 3FF628EF6030DD2330D747FABBA03B44CF600418C245C388F33EC5559E7313BC 4B530C4FC12530D38B27D6408548F25FC084DD0523B27D29D6518D3115AE7755 37162CFD4CF528214466FE525B13782F9C3CD78F3D6C7423E63A134C0A371F15 10F4ECE1D482C647B563D3D15586F80BD9DF7381BD53927825D5AEAF762E1CDC 3BD184F345029A95B3AD4D1B66E79AB4F0809418C0CFD4D503457A190D02F134 3F57FC04FF655AEEB783D6791E4EC300755861837D3D50649F6B7F60766211B3 8148F8E575E28D6C2DE75B15E722ABFC6DAADAE53D89FD295352781DCC2CFF6D 982F6DB778D6FCBF1B7BDCB53F3A23AE6EB499BBFA96E8BE04C3C8E5B660EF24 01EB842DAEBE979F2C2DB72AAB4D21627063B1D3C6CD40944E4CB81655698FBA A343766CB22E392E5DAE01DB33A00918D6DAA07F2F38B336A3C5DF3708865E75 0DE04D3AFBCA27A249E97377D5785B4E28EE0E93F7D353619C200DB967372ED2 153BF8BE945474266EB2FD30F80042A11B7E3586DE4AB1FBD4A741D36DE583E9 1CA25DA345520AA60634EC819E7EB493CDB128BBADEC3890F055455F060A1100 D5A41D7B180027E08AD6EE7E393DB9F83799544404FE397F557773BE6A130541 157C0EB37E036C94825B5090EF85F8B4E3DB72895D86687758C20EDEBD6D1079 196E9949DC6ED0113571C70B150B37E446E319EC54D44CC0CF6A14760953DF4A D0E1F33A54D240E236AB63B35BA8E071D77776BE5B9312245F2C6E4FDB4312A0 0D9CF723E7D9A3D8546C4739C00C301A89ABA60A02757AB1A0AC40B24CE6CF12 5850485B11E16646D7150795EABAEB08364A53161111F46A7BC3423A0D3BEB69 BF15726C1F8363914945DEEB29CB8766328318AF3B344FD6D77BBB92BD7FD161 93356493D4D8252AD125708D47C124E44232FB2BF7DD75F87889496DCDB75D03 F58A57D4122CFC194B75A9E9C4789C9A33C0435FB4ADA16AD4A6191928D1663D 05FB8152C0AA176FBA4755205F8A66713404787070757D3721ED6E6D55A59DF0 C92BA8F05EC7BE05D0A2E66DE85E75373483EA3BBEE0F0DFC7E2FA5FBAFAB118 058D095AA71FDFC8AF37E5A98406B64E58BF476C6926725D7EF3C2346CE3F662 1E5A4A18D966479A37070859014719456EA2C7F23E68E1AB2F25ED3A0C00A18C DD403506923BC983F89CCA125780DC76A411472E38173BC0DD4CDA7B43E13419 B5AB0B9A35E77C58BBA12AA4F5C7EBF8A29996B059E4FAE6809565570442AEE5 D56CBF4407E1CD9A4398B1F3ADFF023F64B230E3D29F526B62D964F5C8DF801F E94295AD85BD9E1C18E6327977260A871E921C0745CA06A263E335E344686E7D D6FE3ADB4EE0A7E462F3C00873C3E95D183CCEC71C0E5DC1D2FB310B28FC3611 67C23DE336C374F72368F4973052B48E39969305791C986E6EE35D0350571860 3A8ED849712CF21AEF444BA390644E8646CCA16559BA4642A5800827A0DDC453 7CA0818BC47DF6348A5209A2F0A10CA39840CE6346E89CA0E842BE8692DEF25C 4623A5A0E0B98708B9492E9F564324BB3872D6B953CA59E9F393C477E2AB85EC C557D333E88C111CF995FB79D9432DC94C2BDB3BFEE13C0D7D1BB920DAFA6158 8548447AFC65CD5515D5021E0ED7D213B0C08C35BB424AA91885CA023D7AF767 B83E619B15DFEF5588D2F0564296E14B5A6ACE03751E1016105C51BE76EA5ADB 4167BAED2A8899031FD7BA05C410ADA25ADD94A787EED1A7AE133B0568B1DBA5 44B41BE013782CFCA3D81E8E8210DD506ADFCE7DC7E792EFEF438221164A7D1B 5E7089F476240C5F94988F081943F24DBF7CC3D1E58CB89E1C0C1624682CC3D8 C95815ECC9183A4B3E353C7F920B7E64086E01672DAA7C8A81319BAA03C1FBB7 8E5E84CC5BAE0E107754794C755B7AF00953504094E1A9DF357D51B578259613 8D26F0BA26AAC459BBEEB90BCC98B865EDD26AA4DF533D6624EDAC762C446B6F CF9F86DD2D8989D4655775E662B93BF51805EE3CBA0AE2293D95F166E80973CC 82C53042D0249C598B0821E9E7F218BA6114EEC86C158F277934F2651490B723 7F0D0288560DA5BEBAFDDF243048E590871AD18B3B220EC56549004DF122AA03 BAAD6971D790BC644369FDBEE74A324083CFA9496C2A333774F06E35299242BC F4B26578907CC5AD1893613F2B8622CFBB7B55810162EEBFAAEAB2A6D69CB72B D7859C73843E665125FF450631F32E64F13A6207F368103C7A7318DBAF2560D0 F1CDD83C3E48CB30C62AF1E0896E1962C655D9ED98E1BB38477C1C60ECDB6B95 067D3A638AD43EE886338F7AD2D2A574CE6FD2E21F6FCB4220EFEC85ABF8272A 82081CE70E4390A74EC717F1DDD168F4A4A080A79EE2ECE0F98A96871DA4B52F 78441601AF47763C2219F5A167604C32F478D498835EF3A6167936994F7C7139 3019FF43C97E7978D3CDA641C1E391FEA572D308E759F28DDE2B40B5BC207A4B C5EB6A93EEE26782016F8B6534420BE4D790A2E1A65B6CDBE9468152230384FD 14E9AE84418A44F94E6825DD7D77D0BB5486DE26A692B3DA96C81FA4440C5D44 8E7F3CAA9B8DF38F87E09C4D78841F629F78F4E7CC8580CC44E59E5D9AE8B2DE C0682F793AE7AEC12A8AE688636197E8A08FEB70EFDB6203681A60223B9B0D39 2DA656E5E99B82130D4BE38D7AFE18568DD30B0CC3C73C1E2914ACE11A65334D A9F18135E7B86157122CD221C33C62012FFB16D2D2F3473A53BE3E7B9FD4303F 66ADF0B07155C7B9B002EA68C6AC7247EB3CE7D2670A60138049DAA964F86A05 22983EDA7242E6BEEB90DF61C937399B2CE1061DF1E551CEED4A80D86C2D4649 C9FF9A1F93E96773CD392478D5B70D5336A03A274E0A6EF44BE8CB2274324142 706BC2E340DC944339D647961FD7BF29944503B4AFCDC69A706AA6B0F6AB2CB5 D220A96ACC1EE5E7826F6F75F044224E5260D581AE761AD0C752A06AA03FD935 FAD65C9EDD4E5505396E331D45DE88F0D1A4303D766ABE0702C17E2A7F53C0EA 96A4DEC5A6B6186F5DBAAB05DD78E38AFE630465BEF0EC66ABA9C1C9232214A9 795D105C33CF069F6BE20B179F4CC9F484AB63ED25C1212C457DF62CA0D56E20 608572216F2D4C09010B03A8AA6D287C8F514BEEDC1C912552CC2489858BF4D3 084882CE4F4B6FB9EE27C0168671E6DA154018ABEAD013C88E1D3EC918371251 63D95BA0FE20212C20AD3F4DB614EE36B488A3F55D94C1EDFCA8E68E54A1EED4 7DD168DCCF07C3DDB5E2B499DB5635C5C5056A7438120DB4839427D07F96AB8E F842E285243E40259F6DF029E27779CCF3D3BD7206B2C341045A5A4AABACC2A5 91C6830FE05ACDCFDE99046F16F2AC183426ACA4A89FE5F09B7EB2F811BB5FB5 AF073BDA2886070B2327D582DCBA66B47E8948C3BE05E837BE4B81402A583403 74FF9E938F0E9DC3B1CB81B93DFD4070F9EBAED40BA570DE8F9A5C2C0A097311 22A6065139A6580E332473E9410D9F4C734794F79E41D0D437CEC7381919DF6F A24B170E2BC97A6396A4E3AC3D844AD6E2B8FCE1C6AE97DFC5319F49130C3D6F AF2541EB2384D5D4CCBEB976846EF8C2165DBF706112BDDDEC9A57D157F5996D 95229FD5C71B885D16B177BAB06B9DF5740A45C2A005778EE879193290419C0A A4A339029E37E685B8A05B111DDF94AC19B1D85C8E6026E57E3D3B373C08557A F96E6FE3916695ADFC1F0BF5D558565F42A71C61ACFEFC9026424397F0646642 7EDAA05794BCCD164A645860B57EAD53CB6899B18C6E9496EA4DAB0A0C272639 DEBC4FCBA94B3BF123F7771F602E7667C8F56E12429669F2219C7D8E294BE07B 71E88EA62F5616CAAB7C0198E6FF12A348E36B306FE2684A401399431B6A84CF B46EE4BAA0F4099E65E9AF3B70274EDD6B6524F4FA38C23F9CD5273EEDC8C6C3 E7312B6E0497C05AD3F3C246638F01387CC11DBCBD287ACF54D8E24759F51415 35ED64132EF4158F54AB9F4D567482B3057880490F805822F71E7E2C52F7BC38 8B1F803AC3731064B90E5E97AA3351D17E73DC2FE526CD6C91158636E395867D C1150FD3BD12493FFFB813AF0D08C8ED0B7418A2CF90BD5B783364358605D075 5DEA95A9299C0654EFB28E2FE8A41358A0DD124D0314A27558E42ED5F2D74BB7 056DE04D2CF13B9B804A3CBBA29BC155A3F18B8B48283194C33CE8291677E1EF 0721138F8E0409D49BB99F217607586D2DF00C29A25536E21924B4CF6702CF85 C02DFBFD2AA4DE3DBED1D2C02E21052A8D10F96629D0D18154923638FE0C48BD E2DEAF11663E20717EA77A5453686AAA39D6FF7919AF09B1AD956FDBF734F49E 262F3076F62E77BD45122B55A5913902D9F91C4246FC235BA9C0FA4A96994291 830638949BED423387DA2D455A3C9122484EFF27F5367D1D3DD27D207D973815 965E1CFF36F43C653ED406F65348671D9FFAF55BA3FC266D438AF473181B7801 164EA3F04FEC870743195B3F467DE36B3719BAD9BF15A18637A314C887D46673 445BA3C212749B0A33136FEE9FE2C9A13D62E7ACC96378D257FBE0EB06AD4D4E D41976AB92AC720DFD33B0677062C32E6F5C992A0324FD26E984B5341A58C190 D20EC3F1144697D514D9157340A6C9F82E62AD8CFDEE59F6FF86C6250CE33D6B BB82DDB4F65BEFC6F6D0E4044F7BF307CC346E2FFD191846E3CA288C6F91CB71 5FDE855FEC5E38816CC635C470BF15263A10A409F0BC4877F7E6D4C223E3564E E7BB5B320AAA5AAF4F32528F7413BFB97C70FF5E6843E1FE501472129BC9758D 7531BE576C75840CBC4CD3E6D9E5FF52559B68DE6E7827128BB2ED1BAD43F36E A0CB68C1A147A7093EB02062AC5492DB7EEE08B1BDB187E15339A66269E459BC 67495937B4317AF66A498923322B087ECF47B601C26E253D223A784DB2D204FD 0668BD403A73723848018B7C86B627B9AE0BD9038F567CD5F670CAFC5C4D86FC ECA211B713ACF8C1370191161CBB6C2592E8B9DBF3471133F2D9A60F15D72F9C 5E5539D59A6A7E124D9A38A6FF6EB7C71990716F88E1888295584F17D49144B2 B57252D7D87CFB7BE009E0E1AF68C57E2041CB837A1F9DA290FC07240D616876 CBA29ED23952F977F27ED97503F6C6CB48DA6611E0ED9D90FA865D099740C6CE 8A5DDBB1D6550B208321C365A5104F9ABD66A9238B8A2106AA74CAC58D1163F1 DC4A62013C0F6DD8A3E8E1A6CC6E553746D570A744863FD8EA705890890AC5BC 2F0A068C740572F045B32289A2AE66CC44A1C13FB8BBD4E1834995731D19B47E 7C2FE360AE79DACB95856B01EE39EB3C7C9EAEB3D47348C47D928BC883B8E760 6724D80DABC4D736411942BBA8CF08157F21D63C18924282193C5C8E44E09048 FDCB8DB2E01C8A496FEE2CFC19A3A0EACA508237C8BD988ED6D33D01EB548B14 61A546886AACDAFB7C8CA69056B1F428D72541D3F17007CBAB23C8ACC305A655 BE646A9303F9D2FFA3E7060B7D0226EDD997605E246BFE131463B8614464591E 425278958D87871AA4DC5D3640060B9A435BE23AB2DE953A5365623BAC1A90B0 8268AB3A27695A5AA2F8DAEAAFE88324267FCF88909155E959F90FC2656C6B17 7B1CD6735451BED9CC0CB038F90AC4B632A9AFF99D1B4E85661C85F7DA8C5C3B 44322FA1D86EE66E4CF4FB3176B72AB7C9E33B530B4B36E2C05190EE3A6CC64E 8EC29CC693DBBC748C529600BE05904A48F62C4AE175FB7707E9A28D72C4350B EFF065D7D52105471AC6949CF4E9D2E19BEED19913DD3996589C03E5471B1883 B5ADD0E76316966869433D4D3C2D68897AD54BC0C1056A85F539FB568DD657EA 3AF8B955FD3EBD10BDC86B94651A10010EAA2D7B4CDAA9D04754A2BBEEB42462 7801380BE02FE9C387FE93CE0B2E1D0F65BEF41725130FBAEE89B44B26490D27 DBE1D0D49D3B70ADAC4B2A46991E436070239AD0154644FC4A2773AD68558ADC A1AA62ABB46BB0FCE130DA7FC6755116118FF381764FBD03D1BD10AB0B8F4379 2FE1C35AD8CFAD84738E5A5304387E958037567D2564B00219AFA30EAF2ED876 BA2829A4D55D828E507C9C049796504220AC52CB108DBAEEF70149F452D85BA5 F394C52C09A4A6C9434C40DAC48F9C126F06A5FE34240A16F69BBA11FCA9AC76 CA1E62961CCA4591C6B96A84E7AE4964CEC00E7A8B003B5D8354CD1200489304 0FA8BE1493A2408C494EEEBF30EF1BFF488852ADDCE5D087652063AAE0BB53EA ECF423B32495E2FC461F2F2A18B639FD6CEC09EB7CE1BDD115B5DE66A1B3FB1F 77DF9779C16B981546E71198BBCA746E0F0ADCB09EA0F6F92608D30B9E77A082 0BEE151189F51CDF0B7AA8AFF778DFEF01C988224506370FBE7DFED69D73FF45 371961A0888F0DF215E909EDB9E08E56F50FFA9CDB0EBB16BED3956A75648DAA E0035E589C65C12BBE6904794F8C19C23A830002C6E28217731DE5A0CA604EC0 ECC0B451822F81C725F5330B1C77A5FC085E2A11667AF816D79EE262B99597B0 750F27E862B2D7D9FEB5DEEABD05CAEAB50C5DD1F8E89AB2A6A76B6FD4F0AD21 81E48E86AA9C52E272C0761D3264F78024C493058A5250DCCAF943CCF4A65FEA 3106D5359A584EF79D65DAEE9EF284524D0A40C6A6DC5033C49D740811673194 CC1177FF10B3414334765C2BF89CA1C7D17C9EBE9486479B475A4513B3ED8AB6 D1527B1146DA7325A9915A9E84520C043CD5806531B13773EB76B45F9E96B800 A8C0A25FA1DC2EDB35E91AC6ED1300FFC9EB6D646155DC9FF8D12A4A676D506E 7F15BB5355FB7F84B2F8AE9C975BE738EB0E855CBB513B391B21A4F5366921C1 6A0A2795C5ABD2E24A70B0BDB4BEF07DE92B18E47096E2C33731DDDBFA0A0B01 3410CF285FAEAA7BD1179CC76799C366033FC51E50569E1528D7C978C45EB936 AF222E13C08ECC2A9EAC3B482DEDEE702BCFE3D3A58E19E74018AC6805251FFD BC6656DBE1B4C00F76DF3BEA8BBDCA1721ED61BD99AE4A61C0ECC9F295CC4B81 FA6F1F8008BD5011DAE4CA73C55CCD441A5134813EC0202D634CAB14C4FDB927 6FE8FA7C6A8DFEF29413A124EB0C6FD7217F93997C5613F02D5436BA7776A913 B6E940D4FF0580CC1B34DACB0736ACF3A534955C9355B4B1E00EBBB6D5CD76C0 49A1386A5552EEE2EE9A1F0C73DF8C00BD31CC14095385F0CD4FE90F8DC42E07 588B28174D701A873121F1C71958AFB10610D90D436B1C23D8E3C4662E08646B E73DF766E2BB4A1DCA606F70A6DD00499A3C842D826A6DC72EC3441F71FB00B7 AD814CB8716A8955B9B61CDCD11AB857BF04E211868E4B1B158B4BB2E60DB2FB 25EDFB42586CE6C361A180F736354037A8E31D86231892E301CABF90DCE147DE B44CB65C1E5F046C5B8087201B36A634CDCACE4846118BAA464D6990FB281D13 A9B75142A4F86E274FD7F8487CC56EE38EDBB8E688337D8EA76273B98BB4F694 BF1F5D3C7BEE18519C72E397D87F57AA7FFE59BB49BB70184E3EEB54B81B9A15 3FE205274C24EFD4B8388562B500D672CD32D96A0F822507C352C2BBA12450FB 72956B639F3B56F43F77036B3A607687CA35EE92C6E1E0168709CC2454865997 D89D968D384548DF558E27F1A213E09E5CF339523FB31BEFA5E45A9A874A00DC C2843351AA96704783D4620EF95475925587F37C889BE748B33BF5D3C8D99C5A 95BB2B55B1AE23879901AE64B434F3E01C8B4493FB282F561393C972BA7BAD2A 503E18D111ED3C1BA70AE497D01C31E6D295C5B57871020771D6A96D22B33D14 AC4EE6F9E4698D6BC4AE0A872705BDC1E0546697B5DB2A64CE4A1F400E643ED1 5372ECB4F2B1B0747317DA34648E590BE041C1062B23F92013A6651BD853CD0F 2F49419C82435299A985075647C2B8F505F1182D24A3390A0718F3C255025BD1 6919DEFD68FDDAF4C35FB75996FC3D0B793F888D1FF6B09797D8A528524677E5 4A04F14D4EC256FFBE3846089ED716DD3567519F5F0EC8BAB700ABE6B1EC1080 801653126A22D50D8F1964C77A371217ACD50C6D8989B3E8CF29A0FD20A5F896 A1AF938DD27979543EEA1BA46D6EFCC1D101EE74AA0D5D110F8D1404DA4DBCE9 4C4AE92FF9E4D7AAC3FB79BFC30B566DD1831B1D68BD0E067D963A725550D57B 0F652A65A2AAC98FD9CD979DCB81EF7A2A18A06661FF72E5CD5D593078D4A145 7DB25ED6480383F1E3E30085EAE0F5230FCF4BB397866E5D465F7CE1FD84FFD1 39FCC779F3072103DA48DF38BE65355781BC259C1DB6A4ED0BF805F51BFECA21 AB0AEF7ABD154098EC0F3DD76B136833BCFD9222F331C8AC1456BA95080F9C3E 7B05A0CED7C26E24B03C7DC4245F1E3B8FD7BA40578CE7D61AD1E4A708C013F9 8141F6834DB125035CEFF6A72B147027D49068B1BDB77DE7563F12994F933960 68A87C4F50272C91B859CB83CC6488843529EF6F55977812E5F766DE23AF77B2 DA859379045E0BDE87860BDAB3D0D37C033C05CDA9680B652FB1E2913B766CA2 BA62CEF6BE7D6B266672D994BCFD263C32DC29674B45460E38BCB2BFCA4844D1 1DD4BE395315946DB693E20B21031EB41C20A82495AB0E49D2DCB51D52B893DF 48A16E3180F04C9AE15FB60FBEF9BE5A80D33C51C9FB97B89FD9891109E25F05 00253805C693E8FC4D58DB6F730D1D80C7F4E5ABC64F88F22D2E51D1A353C307 5D8E6FF6A1D17347BDE026E6D1D00A2195BCAD9A4A375275EA6509FC3044C5CA 219840C08C3335CD820377534847A16EEA2EEA228D9A5EDFFE34454012E9AF65 FB638246ECA0772825C3D72B32CF913DBA6921B35473721E263C209A7DC6414F C066328E084F3E3D23D8DF87B70E31EC2E9479938162B353A15DCB1320DAFA11 6BF06231AEBAC8364AAE499EB21E4C2C5238B3CF10F2F02B39AE0B29B9BE6C7F 86C90B6209B774317B5422BDB058AADCB888E9BDBB1CC80505089BF8A7281D3D 69F98EFCFB87BEC440009950D0ADB1EF1FC32F4265ECE9E7AD363EBC604389F6 82CAE39E3FE7F3C17A92FADD0DA81EF29D4BFEF9EB143C9828BBE3FF15EE999A A7F1D8F45647708B6AE7820AF8B82E8BDC890F2D535E3A58A94E16EA4B055FBD 9F4F24AF32BA7395D030E6D8D3FF0F5117CD5E8CB108CC1071EE9BBF59E8E90F 17FDC474037759BB28B9AF3DDD7E4D50F02AA3D2A161ADFEC0EB24566EE286EB 50D0DBC27A38CE66F1F78C44C3BA373EB0C5CBD11EBCDEE495A5BBE44E9CE999 18E50F7B65E4EF21BB51BEF70CBD9932D182E67063BAACD5DB4FC516D03F8951 D12D92887B9E726E064E1E1F0EC4CC09EC8A90F36A358012E5B5D7749B11095C F8027A8C4F8D58C67EF58105AE39BB0276B7870FD90B45D73260D54D9977DD0F F17EF66C257ACB65636E2FB1EA6EB9B66A77310A65C9F328CB212B612F1D86D1 02AFCB6EDCB931CDFC0DFB5D8C145096878DDD85D0A621BEE643FB3991F6EABC 5C7DBE8FC841A401D00B7EC7C3867D0A51C1264B659A0F0D54B3733BEBA8037C 772057BE4EBAAA8B01E4140DCE5DB31943121F1734F4B5FD0E3F8C71FD0DAE50 8A47BD2C7F464D787CAA1ECF68689A16D650BA5890AB06689B5F57ED69DDAADF 8D7EC1B634B294F523BC185FA525C6ADBAB0E0FD033128395B9F39D50722B2A8 7CF8D529CBD2891F59876BCF302CCC06E9A301663B1D29F5F9B5B047EDB9F9F0 96406FE1CEF3788ED72D1FD1733239875470A74633545ACC6E1BAD7A32FBFFA0 9D3AAA7FB6DD0DF858D316D753B1AA5B38AB6F19A1606C68E5DE529E05F95BF3 9FF1A51B4A8C0FAF6DDC0F2B7714A5AE4D16A1724730901236C637873129C435 384A6D16BE80A7B5831F0495060AE8D3320018FDD68E5B3AD55E7D82D5E49933 EFFFD35E73B26D813DF674AB7BDACEFDD5141036F433394BB5EDE175FC7E48BF C9BE85ADB290549290BB464AAC93F4C3D52F5A9136F8C9B00063B49ACB25CFB5 E5F9FF277172FEAD8A36B3AB87A2D82B65C78C59A470C94570AC8D0FB3BB6919 4853AC866CD8890A73CFE28705B379B09C4D25DC3AEB0ACA921B98225C27FD47 52A7F9071ACA940E605890F35FAD92C4D1330773302591720A70C9192E5FAA75 700AF91056CD02A1D54129A3C573BCF54FB3ADE21A23212556673BEDD0F96F42 CDDD606045D5EB18E12488162DB826FF09D0EF4C2B9DE91B6D1A4AB273CB63DC F22ABFB8615FEAF4EEB614F3D7B3AD83B35FDA4DF8DDFE65599BB5EA87B72CC9 3DB1C3D31CF99E2B9A8BB322885EAB2978E688CE00BDFF62AA653F72AA79FC5A A53FCD50205C0ACCAA5B2B46FA5A4D2FDDF27494C1F02C347941CB2EF1082D98 D7B0407ED524D4D0D24FA5C007D8E9E13B3581086FFD40E1B317152805DA6A8D 339B2F0CA3BFEBCA120414A5EDBA787DC0DF416DB643ED48C5AE3E1F7A91B4F7 4898E267DF257D517700409FC72C74E267C19378D7B74201E6B2BE6FDB23138C ED4A081628F6130640E6837BAEADA2FB35BEB16CD781386E951CE793A6F1689B DEA3D1B479C33B43788DC9B61FCFC5CE75187EDA9E08C342CFB7DC624B03223B F83C762189575E839A54F1AAE01462670E5D30E37D72AA9EB4F846083BDE9010 232A026C3369B88A64992EB292A41FFE5B5FEF348429C26BA53F936D18613DDE F50DE424D32D197B6482586BFF7659EC47723E3C8AB729B8050A7095CB757842 DA63EA526AC4083DF375FA41CD04B1DCCEDA0C85EE4407CE858E2FAB980FE0A4 31B02C13E6FFDD3F94E3DAC133B4DF54D2058E747F29F42782C5DBB6F5AFEC6E 10E1C0E143BA081061948BDCCFE0ED68FB0CB360CFD80344459D2DD754FED744 0721973DE17B998B5EE7B2510524D93ADCEF1102BA70A0F24ACDCD364409708D 2C0CBAEB725003635E2D045711E6A84AF6F73BED391EC03BA777C9A62DEDF821 697D6CF90BD4FD840A567A3191BE37677C6C6309CDF2670FEB739F94944BD82D C908C9BF333C6D2213C8F5EDD12742708009DC4B63ABA99FC3C84565466FD369 7DC0FA50A64DD755A62E78DC9625C7424BA4CAC2F8AAB5C2BFE2375648759AA6 52D842E15FE76EB4273E91617ACF2F3BC395A4F7A7DAAD9B18B9ED21B247A927 ACC803C8C3ED6720BF7399F4FDD3F84241820A323C96BB95F8037C618DC820EE 1692DF92CA48E08F4686888F155ECDB3DA21BD4A4F6EC2D498775D1163921B44 21F3B4C6F2C8523ADA57D15B1C2BB6C5A9D25E32DD3A19CD6D6CE4E1B5691240 F90489EEFC20F0C0A3E8FE36D61287067CE94CC364320F94A95CB244DC23C7A4 8B4C2C5EA46AEC0D4D4B 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark {restore}if %%EndFont TeXDict begin 39158280 55380996 1000 600 600 (informator.dvi) @start /Fa 173[54 3[59 78[{}2 83.022 /CMSS10 rf /Fb 134[71 71 75 75 83 75 75 50 108 1[75 58 75 1[58 58 108 108 58 58 58 46 58 100 75 10[66 75 75 62 2[33 58 1[58 75 1[75 75 82 75 75 75 75 33 1[66 65[{}40 83.022 /SkakNew-Figurine rf /Fc 133[40 42 1[62 42 47 34 35 31 47 47 46 47 72 21 44 1[21 47 46 1[42 47 41 47 44 84[49 12[{}24 83.022 /CMSSBX10 rf /Fd 145[42 110[{}1 83.022 /CMSY10 rf /Fe 128[42 5[44 1[60 1[46 32 33 33 1[46 42 46 69 23 44 1[23 46 1[25 37 46 37 46 42 12[60 4[65 5[30 4[63 60 59 16[42 2[23 28 45[{}30 83.022 /CMR10 rf /Ff 134[51 3[54 2[38 2[49 54 81 27 6[43 2[54 49 12[70 9[50 1[73 15[49 4[49 49 49 49 3[27 32[57 11[{}20 99.6264 /CMR12 rf /Fg 140[74 7[74 9[74 97[{}3 143.462 /CMTT12 rf /Fh 134[70 2[70 1[51 52 51 2[66 73 111 36 70 1[36 73 66 40 58 1[58 73 66 13[73 2[90 6[47 7[99 65[{}22 143.462 /CMR17 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 end %%EndSetup %%Page: 1 1 TeXDict begin 1 0 bop 0 TeXcolorgray Black 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 407 797 a Fh(Informator)42 b(Sym)l(b)t(ols)g(Av)-7 b(ailable)43 b(in)g(the)h Fg(skak)f Fh(P)l(ac)l(k)-7 b(age)1500 1038 y Ff(T)f(orb)s(en)33 b(Ho\013mann)1592 1233 y(July)h(18,)e(2013)p Black 0 1460 a tx@Dict begin gsave STV CP T /ps@rot 0 def grestore end 0 1460 a 0 1460 a tx@Dict begin gsave STV CP T /ps@refangle 0. def grestore end 0 1460 a 0 TeXcolorgray 0 1460 a tx@Dict begin gsave STV CP T /ps@rot 0 def grestore end 0 1460 a 83 1543 a Fe(Dirk)23 b(B\177)-42 b(ac)n(hle)22 b(has)h(b)r(een)h(so)e(kind)h(as)g(to)g(create)f(a)h(n)n(um-)0 1643 y(b)r(er)34 b(of)g(the)h(sym)n(b)r(ols)e(used)i(in)f(the)h (Informator.)55 b(They)0 1742 y(are)27 b(no)n(w)g(a)g(part)g(of)g(the)h (sk)-5 b(ak)27 b(fon)n(t.)p 83 2878 1031 7 v 133 2971 a(Command)289 b(Output)p 83 3019 1031 5 v 133 3112 a Fd(n)p Fc(wb)s(etter)431 b Fb(f)133 3212 y Fd(n)p Fc(bb)s(etter)446 b Fb(g)133 3312 y Fd(n)p Fc(wupp)s(erhand)262 b Fb(c)133 3411 y Fd(n)p Fc(bupp)s(erhand)277 b Fb(e)133 3511 y Fd(n)p Fc(wdecisive)348 b Fb(h)133 3610 y Fd(n)p Fc(b)s(decisive)360 b Fb(i)133 3710 y Fd(n)p Fc(equal)525 b Fb(j)133 3810 y Fd(n)p Fc(unclea)m(r)456 b Fb(k)133 3909 y Fd(n)p Fc(comp)s(ensation) 201 b Fb(n)133 4009 y Fd(n)p Fc(devadvantage)196 b Fb(t)133 4109 y Fd(n)p Fc(mo)m(rero)s(om)331 b Fb(U)133 4208 y Fd(n)p Fc(withattack)316 b Fb(A)133 4308 y Fd(n)p Fc(withinit)451 b Fb(C)133 4407 y Fd(n)p Fc(counterpla)m(y)282 b Fb(V)133 4507 y Fd(n)p Fc(zugzw)m(ang)348 b Fb(D)133 4607 y Fd(n)p Fc(mate)525 b Fb(m)133 4706 y Fd(n)p Fc(withidea)399 b Fb(E)133 4806 y Fd(n)p Fc(onlymove)359 b Fb(F)133 4906 y Fd(n)p Fc(b)s(etteris)416 b Fb(b)133 5005 y Fd(n)p Fc(\014le)602 b Fb(H)133 5105 y Fd(n)p Fc(diagonal)401 b Fb(G)133 5204 y Fd(n)p Fc(centre)480 b Fb(I)133 5304 y Fd(n)p Fc(kside)537 b Fb(O)133 5404 y Fd(n)p Fc(qside)d Fb(M)p 83 5455 1031 7 v 0 TeXcolorgray 0 TeXcolorgray 2001 1467 1007 7 v 2051 1560 a Fe(Command)265 b(Output)p 2001 1608 1007 5 v 2051 1701 a Fd(n)p Fc(w)m(eakpt)424 b Fb(J)2051 1801 y Fd(n)p Fc(ending)444 b Fb(L)2051 1900 y Fd(n)p Fc(bishoppair)308 b Fb(a)2051 2000 y Fd(n)p Fc(opp)s(osbishops)192 b Fb(o)2051 2100 y Fd(n)p Fc(samebishops)223 b Fb(s)2051 2199 y Fd(n)p Fc(unitedpa)m(wns)d Fb(u)2051 2299 y Fd(n)p Fc(seppa)m(wns)321 b Fb(q)2051 2398 y Fd(n)p Fc(doublepa)m(wns)226 b Fb(d)2051 2498 y Fd(n)p Fc(passedpa)m(wn)259 b Fb(r)2051 2598 y Fd(n)p Fc(mo)m(repa)m(wns)280 b Fb(S)2051 2697 y Fd(n)p Fc(timelimit)356 b Fb(T)2051 2797 y Fd(n)p Fc(novelt)m(y)431 b Fa(N)2051 2897 y Fd(n)p Fc(comment)324 b Fa(RR)2051 2996 y Fd(n)p Fc(va)m(rious)441 b Fa(R)2051 3096 y Fd(n)p Fc(without)403 b Fb(w)2051 3195 y Fd(n)p Fc(with)530 b Fb(v)2051 3295 y Fd(n)p Fc(etc)598 b Fb(P)2051 3395 y Fd(n)p Fc(see)559 b Fe(see)2051 3494 y Fd(n)p Fc(ma)m(rk)m(era)394 b Fb(x)2051 3594 y Fd(n)p Fc(ma)m(rk)m(erb)d Fb(y)p 2001 3645 1007 7 v 0 TeXcolorgray 1856 5662 a Fe(1)p 0 TeXcolorgray eop end %%Trailer userdict /end-hook known{end-hook}if %%EOF