%!PS-Adobe-2.0
%%Creator: dvips(k) 5.92b Copyright 2002 Radical Eye Software
%%Title: ZR-06-29.dvi
%%Pages: 17
%%PageOrder: Ascend
%%BoundingBox: 0 0 596 842
%%DocumentFonts: Helvetica Times-Roman Times-Bold Helvetica-Oblique
%%+ Times-Italic CMSS9 CMSY10 rsfs10 Symbol CMR10 CMMI10 CMEX10 MSBM10
%%+ CMTT10
%%DocumentPaperSizes: a4
%%EndComments
%DVIPSWebPage: (www.radicaleye.com)
%DVIPSCommandLine: dvips ZR-06-29.dvi
%DVIPSParameters: dpi=600, compressed
%DVIPSSource: TeX output 2007.02.16:1633
%%BeginProcSet: texc.pro
%!
/TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S
N}B/A{dup}B/TR{translate}N/isls false N/vsize 11 72 mul N/hsize 8.5 72
mul N/landplus90{false}def/@rigin{isls{[0 landplus90{1 -1}{-1 1}ifelse 0
0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{
landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize
mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul TR[
matrix currentmatrix{A A round sub abs 0.00001 lt{round}if}forall round
exch round exch]setmatrix}N/@landscape{/isls true N}B/@manualfeed{
statusdict/manualfeed true put}B/@copies{/#copies X}B/FMat[1 0 0 -1 0 0]
N/FBB[0 0 0 0]N/nn 0 N/IEn 0 N/ctr 0 N/df-tail{/nn 8 dict N nn begin
/FontType 3 N/FontMatrix fntrx N/FontBBox FBB N string/base X array
/BitMaps X/BuildChar{CharBuilder}N/Encoding IEn N end A{/foo setfont}2
array copy cvx N load 0 nn put/ctr 0 N[}B/sf 0 N/df{/sf 1 N/fntrx FMat N
df-tail}B/dfs{div/sf X/fntrx[sf 0 0 sf neg 0 0]N df-tail}B/E{pop nn A
definefont setfont}B/Cw{Cd A length 5 sub get}B/Ch{Cd A length 4 sub get
}B/Cx{128 Cd A length 3 sub get sub}B/Cy{Cd A length 2 sub get 127 sub}
B/Cdx{Cd A length 1 sub get}B/Ci{Cd A type/stringtype ne{ctr get/ctr ctr
1 add N}if}B/id 0 N/rw 0 N/rc 0 N/gp 0 N/cp 0 N/G 0 N/CharBuilder{save 3
1 roll S A/base get 2 index get S/BitMaps get S get/Cd X pop/ctr 0 N Cdx
0 Cx Cy Ch sub Cx Cw add Cy setcachedevice Cw Ch true[1 0 0 -1 -.1 Cx
sub Cy .1 sub]/id Ci N/rw Cw 7 add 8 idiv string N/rc 0 N/gp 0 N/cp 0 N{
rc 0 ne{rc 1 sub/rc X rw}{G}ifelse}imagemask restore}B/G{{id gp get/gp
gp 1 add N A 18 mod S 18 idiv pl S get exec}loop}B/adv{cp add/cp X}B
/chg{rw cp id gp 4 index getinterval putinterval A gp add/gp X adv}B/nd{
/cp 0 N rw exit}B/lsh{rw cp 2 copy get A 0 eq{pop 1}{A 255 eq{pop 254}{
A A add 255 and S 1 and or}ifelse}ifelse put 1 adv}B/rsh{rw cp 2 copy
get A 0 eq{pop 128}{A 255 eq{pop 127}{A 2 idiv S 128 and or}ifelse}
ifelse put 1 adv}B/clr{rw cp 2 index string putinterval adv}B/set{rw cp
fillstr 0 4 index getinterval putinterval adv}B/fillstr 18 string 0 1 17
{2 copy 255 put pop}for N/pl[{adv 1 chg}{adv 1 chg nd}{1 add chg}{1 add
chg nd}{adv lsh}{adv lsh nd}{adv rsh}{adv rsh nd}{1 add adv}{/rc X nd}{
1 add set}{1 add clr}{adv 2 chg}{adv 2 chg nd}{pop nd}]A{bind pop}
forall N/D{/cc X A type/stringtype ne{]}if nn/base get cc ctr put nn
/BitMaps get S ctr S sf 1 ne{A A length 1 sub A 2 index S get sf div put
}if put/ctr ctr 1 add N}B/I{cc 1 add D}B/bop{userdict/bop-hook known{
bop-hook}if/SI save N @rigin 0 0 moveto/V matrix currentmatrix A 1 get A
mul exch 0 get A mul add .99 lt{/QV}{/RV}ifelse load def pop pop}N/eop{
SI restore userdict/eop-hook known{eop-hook}if showpage}N/@start{
userdict/start-hook known{start-hook}if pop/VResolution X/Resolution X
1000 div/DVImag X/IEn 256 array N 2 string 0 1 255{IEn S A 360 add 36 4
index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/V{}B/RV/v{
/Ry X/Rx X V}B statusdict begin/product where{pop false[(Display)(NeXT)
(LaserWriter 16/600)]{A length product length le{A length product exch 0
exch getinterval eq{pop true exit}if}{pop}ifelse}forall}{false}ifelse
end{{gsave TR -.1 .1 TR 1 1 scale Rx Ry false RMat{BDot}imagemask
grestore}}{{gsave TR -.1 .1 TR Rx Ry scale 1 1 false RMat{BDot}
imagemask grestore}}ifelse B/QV{gsave newpath transform round exch round
exch itransform moveto Rx 0 rlineto 0 Ry neg rlineto Rx neg 0 rlineto
fill grestore}B/a{moveto}B/delta 0 N/tail{A/delta X 0 rmoveto}B/M{S p
delta add tail}B/b{S p tail}B/c{-4 M}B/d{-3 M}B/e{-2 M}B/f{-1 M}B/g{0 M}
B/h{1 M}B/i{2 M}B/j{3 M}B/k{4 M}B/w{0 rmoveto}B/l{p -4 w}B/m{p -3 w}B/n{
p -2 w}B/o{p -1 w}B/q{p 1 w}B/r{p 2 w}B/s{p 3 w}B/t{p 4 w}B/x{0 S
rmoveto}B/y{3 2 roll p a}B/bos{/SS save N}B/eos{SS restore}B end
%%EndProcSet
%%BeginProcSet: pstricks.pro
%!
% PostScript prologue for pstricks.tex.
% Version 97 patch 3, 98/06/01
% For distribution, see pstricks.tex.
%
/tx@Dict 200 dict def tx@Dict begin
/ADict 25 dict def
/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
/Atan { /atan load stopped { pop pop 0 } if } def
/Div { dup 0 eq { pop } { div } ifelse } def
/NET { neg exch neg exch T } def
/Pyth { dup mul exch dup mul add sqrt } def
/PtoC { 2 copy cos mul 3 1 roll sin mul } def
/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
/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 /x ED /y ED /z y x add def 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 dup y mul
/y ED x mul /x ED x 0 gt y 0 gt and { [ y 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
/LineFill { gsave abs CLW add /a ED a 0 dtransform round exch round exch
2 copy idtransform exch Atan rotate idtransform pop /a ED .25 .25
% DG/SR modification begin - Dec. 12, 1997 - Patch 2
%itransform translate pathbbox /y2 ED a Div ceiling cvi /x2 ED /y1 ED a
itransform pathbbox /y2 ED a Div ceiling cvi /x2 ED /y1 ED a
% DG/SR modification end
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
% DG/SR modification begin - Jun. 1, 1998 - Patch 3 (from Michael Vulis)
% a mul y1 moveto 0 y2 rlineto stroke /x1 x1 1 add def } repeat grestore }
% def
a mul y1 moveto 0 y2 rlineto stroke /x1 x1 1 add def } repeat grestore
pop pop } def
% DG/SR modification end
/BeginArrow { ADict begin /@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
/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
/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 { { /z DS def } { /z 0 def } ifelse /b ED 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 { aload length 2 div dup dup cvi eq not { exch pop } if /n exch
cvi def } def
/NArray { /f ED counttomark 2 div dup cvi /n ED n eq not { exch pop } if
f { ] aload /Points ED } { n 2 mul 1 add -1 roll pop } ifelse } 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
/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
/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
% DG modification begin - Jan. 15, 1997
%/Triangle { /mtrx CM def translate rotate /h ED 2 div /w ED dup 0 eq {
%pop } { 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 } ifelse mark 0 d w neg d 0 h w d 0
%d /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
/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
/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
/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
/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
/ClosedBezier { BezierNArray n 1 eq { pop pop } { moveto n 1 sub 3 idiv {
6 2 roll 4 2 roll curveto } repeat closepath } ifelse } 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 exch def /x0 exch def /y1 exch def /x1 exch def /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
/Grid { newpath /a 4 string def /b ED /c ED /n ED cvi dup 1 lt { pop 1 }
if /s ED s div dup 0 eq { pop 1 } if /dy ED s div dup 0 eq { pop 1 } if
/dx ED dy div round dy mul /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 { /mtrx CM def T scale 0 0 1 5 3 roll arc mtrx setmatrix } def
/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
end
% END pstricks.pro
%%EndProcSet
%%BeginProcSet: pst-dots.pro
%!PS-Adobe-2.0
%%Title: Dot Font for PSTricks
%%Creator: Timothy Van Zandt
%%Creation Date: May 7, 1993
%% Version 97 patch 1, 99/12/16
%% Modified by Etienne Riga - Dec. 16, 1999
%% to add /Diamond, /SolidDiamond and /BoldDiamond
10 dict dup begin
/FontType 3 def
/FontMatrix [ .001 0 0 .001 0 0 ] def
/FontBBox [ 0 0 0 0 ] def
/Encoding 256 array def
0 1 255 { Encoding exch /.notdef put } for
Encoding
dup (b) 0 get /Bullet put
dup (c) 0 get /Circle put
dup (C) 0 get /BoldCircle put
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
% DG/SR modification begin - Dec. 16, 1999 - From Etienne Riga
dup (l) 0 get /SolidDiamond put
dup (d) 0 get /Diamond put
(D) 0 get /BoldDiamond put
% DG/SR modification end
/Metrics 13 dict def
Metrics begin
/Bullet 1000 def
/Circle 1000 def
/BoldCircle 1000 def
/SolidTriangle 1344 def
/Triangle 1344 def
/BoldTriangle 1344 def
/SolidSquare 886 def
/Square 886 def
/BoldSquare 886 def
/SolidPentagon 1093.2 def
/Pentagon 1093.2 def
/BoldPentagon 1093.2 def
% DG/SR modification begin - Dec. 16, 1999 - From Etienne Riga
/SolidDiamond 1008 def
/Diamond 1008 def
/BoldDiamond 1008 def
% DG/SR modification end
/.notdef 0 def
end
/BBoxes 13 dict def
BBoxes begin
/Circle { -550 -550 550 550 } def
/BoldCircle /Circle load def
/Bullet /Circle load def
/Triangle { -571.5 -330 571.5 660 } def
/BoldTriangle /Triangle load def
/SolidTriangle /Triangle load def
/Square { -450 -450 450 450 } def
/BoldSquare /Square load def
/SolidSquare /Square load def
/Pentagon { -546.6 -465 546.6 574.7 } def
/BoldPentagon /Pentagon load def
/SolidPentagon /Pentagon load def
% DG/SR modification begin - Dec. 16, 1999 - From Etienne Riga
/Diamond { -428.5 -742.5 428.5 742.5 } def
/BoldDiamond /Diamond load def
/SolidDiamond /Diamond load def
% DG/SR modification end
/.notdef { 0 0 0 0 } def
end
/CharProcs 20 dict def
CharProcs begin
/Adjust {
2 copy dtransform floor .5 add exch floor .5 add exch idtransform
3 -1 roll div 3 1 roll exch div exch scale
} def
/CirclePath { 0 0 500 0 360 arc closepath } def
/Bullet { 500 500 Adjust CirclePath fill } def
/Circle { 500 500 Adjust CirclePath .9 .9 scale CirclePath
eofill } def
/BoldCircle { 500 500 Adjust CirclePath .8 .8 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
% DG/SR modification begin - Dec. 16, 1999 - From Etienne Riga
/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 .85 .85 scale DiamondPath eofill } def
/BoldDiamond { DiamondPath .7 .7 scale DiamondPath eofill } def
% DG/SR modification end
/.notdef { } def
end
/BuildGlyph {
exch
begin
Metrics 1 index get exec 0
BBoxes 3 index get exec
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 pst-dots.pro
%%EndProcSet
%%BeginProcSet: pst-node.pro
%!
% PostScript prologue for pst-node.tex.
% Version 97 patch 1, 97/05/09.
% For distribution, see pstricks.tex.
%
/tx@NodeDict 400 dict def tx@NodeDict begin
tx@Dict begin /T /translate load def end
/NewNode { gsave /next ED dict dup 3 1 roll def exch { dup 3 1 roll def }
if begin tx@Dict begin STV CP T exec end /NodeMtrx CM def next 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 /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
{ 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 { 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 { 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: 8r.enc
% File 8r.enc as of 2002-03-12 for PSNFSS 9
%
% This is the encoding vector for Type1 and TrueType fonts to be used
% with TeX. This file is part of the PSNFSS bundle, version 9
%
% Authors: S. Rahtz, P. MacKay, Alan Jeffrey, B. Horn, K. Berry, W. Schmidt
%
% Idea is to have all the characters normally included in Type 1 fonts
% available for typesetting. This is effectively the characters in Adobe
% Standard Encoding + ISO Latin 1 + extra characters from Lucida + Euro.
%
% Character code assignments were made as follows:
%
% (1) the Windows ANSI characters are almost all in their Windows ANSI
% positions, because some Windows users cannot easily reencode the
% fonts, and it makes no difference on other systems. The only Windows
% ANSI characters not available are those that make no sense for
% typesetting -- rubout (127 decimal), nobreakspace (160), softhyphen
% (173). quotesingle and grave are moved just because it's such an
% irritation not having them in TeX positions.
%
% (2) Remaining characters are assigned arbitrarily to the lower part
% of the range, avoiding 0, 10 and 13 in case we meet dumb software.
%
% (3) Y&Y Lucida Bright includes some extra text characters; in the
% hopes that other PostScript fonts, perhaps created for public
% consumption, will include them, they are included starting at 0x12.
%
% (4) Remaining positions left undefined are for use in (hopefully)
% upward-compatible revisions, if someday more characters are generally
% available.
%
% (5) hyphen appears twice for compatibility with both ASCII and Windows.
%
% (6) /Euro is assigned to 128, as in Windows ANSI
%
/TeXBase1Encoding [
% 0x00 (encoded characters from Adobe Standard not in Windows 3.1)
/.notdef /dotaccent /fi /fl
/fraction /hungarumlaut /Lslash /lslash
/ogonek /ring /.notdef
/breve /minus /.notdef
% These are the only two remaining unencoded characters, so may as
% well include them.
/Zcaron /zcaron
% 0x10
/caron /dotlessi
% (unusual TeX characters available in, e.g., Lucida Bright)
/dotlessj /ff /ffi /ffl
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
% very contentious; it's so painful not having quoteleft and quoteright
% at 96 and 145 that we move the things normally found there down to here.
/grave /quotesingle
% 0x20 (ASCII begins)
/space /exclam /quotedbl /numbersign
/dollar /percent /ampersand /quoteright
/parenleft /parenright /asterisk /plus /comma /hyphen /period /slash
% 0x30
/zero /one /two /three /four /five /six /seven
/eight /nine /colon /semicolon /less /equal /greater /question
% 0x40
/at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O
% 0x50
/P /Q /R /S /T /U /V /W
/X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore
% 0x60
/quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o
% 0x70
/p /q /r /s /t /u /v /w
/x /y /z /braceleft /bar /braceright /asciitilde
/.notdef % rubout; ASCII ends
% 0x80
/Euro /.notdef /quotesinglbase /florin
/quotedblbase /ellipsis /dagger /daggerdbl
/circumflex /perthousand /Scaron /guilsinglleft
/OE /.notdef /.notdef /.notdef
% 0x90
/.notdef /.notdef /.notdef /quotedblleft
/quotedblright /bullet /endash /emdash
/tilde /trademark /scaron /guilsinglright
/oe /.notdef /.notdef /Ydieresis
% 0xA0
/.notdef % nobreakspace
/exclamdown /cent /sterling
/currency /yen /brokenbar /section
/dieresis /copyright /ordfeminine /guillemotleft
/logicalnot
/hyphen % Y&Y (also at 45); Windows' softhyphen
/registered
/macron
% 0xD0
/degree /plusminus /twosuperior /threesuperior
/acute /mu /paragraph /periodcentered
/cedilla /onesuperior /ordmasculine /guillemotright
/onequarter /onehalf /threequarters /questiondown
% 0xC0
/Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla
/Egrave /Eacute /Ecircumflex /Edieresis
/Igrave /Iacute /Icircumflex /Idieresis
% 0xD0
/Eth /Ntilde /Ograve /Oacute
/Ocircumflex /Otilde /Odieresis /multiply
/Oslash /Ugrave /Uacute /Ucircumflex
/Udieresis /Yacute /Thorn /germandbls
% 0xE0
/agrave /aacute /acircumflex /atilde
/adieresis /aring /ae /ccedilla
/egrave /eacute /ecircumflex /edieresis
/igrave /iacute /icircumflex /idieresis
% 0xF0
/eth /ntilde /ograve /oacute
/ocircumflex /otilde /odieresis /divide
/oslash /ugrave /uacute /ucircumflex
/udieresis /yacute /thorn /ydieresis
] def
%%EndProcSet
%%BeginProcSet: f7b6d320.enc
% Thomas Esser, Dec 2002. public domain
%
% Encoding for:
% cmb10 cmbx10 cmbx12 cmbx5 cmbx6 cmbx7 cmbx8 cmbx9 cmbxsl10
% cmdunh10 cmr10 cmr12 cmr17cmr6 cmr7 cmr8 cmr9 cmsl10 cmsl12 cmsl8
% cmsl9 cmss10cmss12 cmss17 cmss8 cmss9 cmssbx10 cmssdc10 cmssi10
% cmssi12 cmssi17 cmssi8cmssi9 cmssq8 cmssqi8 cmvtt10
%
/TeXf7b6d320Encoding [
/Gamma /Delta /Theta /Lambda /Xi /Pi /Sigma /Upsilon /Phi /Psi /Omega
/ff /fi /fl /ffi /ffl /dotlessi /dotlessj /grave /acute /caron /breve
/macron /ring /cedilla /germandbls /ae /oe /oslash /AE /OE /Oslash
/suppress /exclam /quotedblright /numbersign /dollar /percent /ampersand
/quoteright /parenleft /parenright /asterisk /plus /comma /hyphen
/period /slash /zero /one /two /three /four /five /six /seven /eight
/nine /colon /semicolon /exclamdown /equal /questiondown /question /at
/A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V /W /X
/Y /Z /bracketleft /quotedblleft /bracketright /circumflex /dotaccent
/quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s /t /u
/v /w /x /y /z /endash /emdash /hungarumlaut /tilde /dieresis /suppress
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /space
/Gamma /Delta /Theta /Lambda /Xi /Pi /Sigma /Upsilon /Phi /Psi /.notdef
/.notdef /Omega /ff /fi /fl /ffi /ffl /dotlessi /dotlessj /grave /acute
/caron /breve /macron /ring /cedilla /germandbls /ae /oe /oslash /AE
/OE /Oslash /suppress /dieresis /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
] def
%%EndProcSet
%%BeginProcSet: bbad153f.enc
% Thomas Esser, Dec 2002. public domain
%
% Encoding for:
% cmsy10 cmsy5 cmsy6 cmsy7 cmsy8 cmsy9
%
/TeXbbad153fEncoding [
/minus /periodcentered /multiply /asteriskmath /divide /diamondmath
/plusminus /minusplus /circleplus /circleminus /circlemultiply
/circledivide /circledot /circlecopyrt /openbullet /bullet
/equivasymptotic /equivalence /reflexsubset /reflexsuperset /lessequal
/greaterequal /precedesequal /followsequal /similar /approxequal
/propersubset /propersuperset /lessmuch /greatermuch /precedes /follows
/arrowleft /arrowright /arrowup /arrowdown /arrowboth /arrownortheast
/arrowsoutheast /similarequal /arrowdblleft /arrowdblright /arrowdblup
/arrowdbldown /arrowdblboth /arrownorthwest /arrowsouthwest /proportional
/prime /infinity /element /owner /triangle /triangleinv /negationslash
/mapsto /universal /existential /logicalnot /emptyset /Rfractur /Ifractur
/latticetop /perpendicular /aleph /A /B /C /D /E /F /G /H /I /J /K
/L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /union /intersection
/unionmulti /logicaland /logicalor /turnstileleft /turnstileright
/floorleft /floorright /ceilingleft /ceilingright /braceleft /braceright
/angbracketleft /angbracketright /bar /bardbl /arrowbothv /arrowdblbothv
/backslash /wreathproduct /radical /coproduct /nabla /integral
/unionsq /intersectionsq /subsetsqequal /supersetsqequal /section
/dagger /daggerdbl /paragraph /club /diamond /heart /spade /arrowleft
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/minus /periodcentered /multiply /asteriskmath /divide /diamondmath
/plusminus /minusplus /circleplus /circleminus /.notdef /.notdef
/circlemultiply /circledivide /circledot /circlecopyrt /openbullet
/bullet /equivasymptotic /equivalence /reflexsubset /reflexsuperset
/lessequal /greaterequal /precedesequal /followsequal /similar
/approxequal /propersubset /propersuperset /lessmuch /greatermuch
/precedes /follows /arrowleft /spade /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
] def
%%EndProcSet
%%BeginProcSet: aae443f0.enc
% Thomas Esser, Dec 2002. public domain
%
% Encoding for:
% cmmi10 cmmi12 cmmi5 cmmi6 cmmi7 cmmi8 cmmi9 cmmib10
%
/TeXaae443f0Encoding [
/Gamma /Delta /Theta /Lambda /Xi /Pi /Sigma /Upsilon /Phi /Psi /Omega
/alpha /beta /gamma /delta /epsilon1 /zeta /eta /theta /iota /kappa
/lambda /mu /nu /xi /pi /rho /sigma /tau /upsilon /phi /chi /psi
/omega /epsilon /theta1 /pi1 /rho1 /sigma1 /phi1 /arrowlefttophalf
/arrowleftbothalf /arrowrighttophalf /arrowrightbothalf /arrowhookleft
/arrowhookright /triangleright /triangleleft /zerooldstyle /oneoldstyle
/twooldstyle /threeoldstyle /fouroldstyle /fiveoldstyle /sixoldstyle
/sevenoldstyle /eightoldstyle /nineoldstyle /period /comma /less /slash
/greater /star /partialdiff /A /B /C /D /E /F /G /H /I /J /K /L /M /N
/O /P /Q /R /S /T /U /V /W /X /Y /Z /flat /natural /sharp /slurbelow
/slurabove /lscript /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p
/q /r /s /t /u /v /w /x /y /z /dotlessi /dotlessj /weierstrass /vector
/tie /psi /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/space /Gamma /Delta /Theta /Lambda /Xi /Pi /Sigma /Upsilon /Phi /Psi
/.notdef /.notdef /Omega /alpha /beta /gamma /delta /epsilon1 /zeta /eta
/theta /iota /kappa /lambda /mu /nu /xi /pi /rho /sigma /tau /upsilon
/phi /chi /psi /tie /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef
] def
%%EndProcSet
%%BeginProcSet: 09fbbfac.enc
% Thomas Esser, Dec 2002. public domain
%
% Encoding for:
% cmsltt10 cmtt10 cmtt12 cmtt8 cmtt9
/TeX09fbbfacEncoding [
/Gamma /Delta /Theta /Lambda /Xi /Pi /Sigma /Upsilon /Phi /Psi
/Omega /arrowup /arrowdown /quotesingle /exclamdown /questiondown
/dotlessi /dotlessj /grave /acute /caron /breve /macron /ring /cedilla
/germandbls /ae /oe /oslash /AE /OE /Oslash /visiblespace /exclam
/quotedbl /numbersign /dollar /percent /ampersand /quoteright /parenleft
/parenright /asterisk /plus /comma /hyphen /period /slash /zero /one
/two /three /four /five /six /seven /eight /nine /colon /semicolon /less
/equal /greater /question /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N
/O /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /backslash /bracketright
/asciicircum /underscore /quoteleft /a /b /c /d /e /f /g /h /i /j /k /l
/m /n /o /p /q /r /s /t /u /v /w /x /y /z /braceleft /bar /braceright
/asciitilde /dieresis /visiblespace /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /space /Gamma /Delta /Theta /Lambda /Xi /Pi
/Sigma /Upsilon /Phi /Psi /.notdef /.notdef /Omega /arrowup /arrowdown
/quotesingle /exclamdown /questiondown /dotlessi /dotlessj /grave /acute
/caron /breve /macron /ring /cedilla /germandbls /ae /oe /oslash /AE
/OE /Oslash /visiblespace /dieresis /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
] def
%%EndProcSet
%%BeginProcSet: texps.pro
%!
TeXDict begin/rf{findfont dup length 1 add dict begin{1 index/FID ne 2
index/UniqueID ne and{def}{pop pop}ifelse}forall[1 index 0 6 -1 roll
exec 0 exch 5 -1 roll VResolution Resolution div mul neg 0 0]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
%!
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
%%BeginFont: CMTT10
%!PS-AdobeFont-1.1: CMTT10 1.00B
%%CreationDate: 1992 Apr 26 10:42:42
% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
11 dict begin
/FontInfo 7 dict dup begin
/version (1.00B) readonly def
/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
/FullName (CMTT10) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
/ItalicAngle 0 def
/isFixedPitch true def
end readonly def
/FontName /CMTT10 def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 0 /.notdef put
readonly def
/FontBBox{-4 -235 731 800}readonly def
/UniqueID 5000832 def
currentdict end
currentfile eexec
D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
2BDBF16FBC7512FAA308A093FE5F00F963068B8232429ED8B7CF6A3D879A2D19
38DD5C4467F9DD8C5D1A2000B3A6BF2F25629BAEC199AE8BD4BA6ED9BBF7DABF
D0E153BAB1C17900D4FCE209622ACD19E7C74C2807D0397357ED07AB460D5204
EB3A45B7AC4D106B7303AD8348853032A745F417943F9B4FED652B835AA49727
A8B4117AFF1D4BCE831EB510B6851796D0BE6982B76620CB3CE0C22CACDD4593
F244C14EEC0E5A7C4AC42392F81C01BC4257FE12AF33F4BFEA9108FF11CF9714
4DD6EC70A2C4C1E4F328A1EB25E43525FB1E16C07E28CC359DF61F426B7D41EA
6A0C84DD63275395A503AAE908E1C82D389FD12A21E86999799E7F24A994472E
A10EAE77096709BE0D11AAD24A30D96E15A51D720AFB3B10D2E0AC8DC1A1204B
E8725E00D7E3A96F9978BC19377034D93D080C4391E579C34FF9FC2379CB119F
1E5BBEA91AE20F343C6420BE1E2BD0636B04FCCC0BEE0DC2D56D66F06DB22438
452822CBEAF03EE9EAA8398F276EC0D92A7FB978C17805DB2F4A7DFBA56FD6AF
8670EB364F01DE8FCAFBAF657D68C3A03112915736CEABAA8BA5C0AC25288369
5D49BD891FABEFE8699A0AE3ED85B48ACB22229E15623399C93DE7D935734ADA
DA7A1462C111D44AD53EA35B57E5D0B5FC0B481820E43222DB8EFCD5D30E15F9
BA304FA879392EE0BCC0E1A61E74B3A1FC3A3D170218D7244580C7AA0DC65D19
741FA5FE6F8CBF60250ACC27454BBF0897CA4B909C83A56672958752ED4B5E79
E18660764F155E86F09EFA9F7685F2F5027EC85A775287B30E2069DE4E4D5712
E7D033481A53A2702BA7542C71062173039030CF28D8B9C63B5596A9B42B33E7
D922944A38713383D3648A4AF160A3B0C8F3379BA4372BE2E7EA49AABA75AEEE
C5DDE1D8BF68483C3D21271280ABB91D54CC819680322EAB72E1250A760BC8DC
FF798F2ABFC4F3539392985C4CB324B0007229586D1E0321559F67C057FD7902
194490A4C133DA790FF3BF23A13C2B1B69EEB75950F9106F2BA1E3CA65C90FF5
931DADF03DA48AFB8561FC2E710087251BFC42B80B297A3DB0DA138A7622A931
DA293B0C740987ACE9F2A8EC2DB98F85783C01623FD3612C7E4A84FD93446770
C3DD7431F955A5F3734F6931BD790F0A421EA6A0E8B93E9307C4C7A32D695BB6
998BD57594BF56A63F90872DBD3A4385EBFE7949B8472B63BD025D257624B3EE
5A864F6E65094FD7C70134824A3CE35E93E591AA34784E8F4E42C4900F9BB004
7EE017069547B6CDD0D0D18883BA4F8E15CCE09ACA3FEBC0185840E29D6BD570
6D9F0A69AB10EADD0197F1ECEA5BFE81A091DDF620CD01499272B78D9E3E2665
C64EDD46B36438B94D02F5619D608FC7E7227A2B13D5B7EE2032A52CF4457FB1
47350B8949E39CD39B8CC5D7401FD70B1ACBEE3C55AD3F243744B2147E872F19
755C30A4B839A8B30E93D61FA938A8E72588509943E2ECB4304977DE1EB79D76
B0FA3DBD398972656814D25D9E44F94C1CF63DFAEAF4B75A1BDF515B388E0F99
D1501FA8CFF5EA08B850563962136945585524AD75EA217B9B5F5B2F5E672EF0
C7BEAAD2205E6BD3F56E044B37BC6D86BED277447346D24B21F76384E60762E8
8858AC1DA1B52893411CED3E222F0E696F04E1BC8DCE99225BC1DE54F7D10FD6
FAD3BC7C29B228DA0EE306BC489A24EB1C1A4CDC3AE7BAEC45893F59221410C1
732D9552FCB1B98E14DE8EEC94AAFBAF82F606CFEA9B514FBC2A43E9E8A3E46D
69E5D78620C6CE2039C3501C39A3837C182F4DC0CE4EA72BD387EAFF060BE855
C3B0DEE5CB711011332AAE28B101EE09C2C9B860B725D3C82015D835DB44B5DA
3D392BB4A7D913A9FF9C2E54953C6550B72B3734AF78406F19C0CE549F7D9BFB
F99CB4156FB9037721728615CC410AB3F3A1C55EFF6D04D76978CB881C4FED61
ABC0CC942701EF504279376253B89600173ED298CC2BB3A7D199C01ED9FDB32D
914F44E80C5A94F5C8339CD6154BF57612BF008B953F329B583FF00A97753938
33588DAB1EB84A9EA4C57A1E9626D1193686F284882320BDB36188DE6C42DFBE
5C0811F8B122F61E94228945F5D0002D529CEEC71739BBE040FA6D98BE12D265
F262F4E106F6D398E4B4BF3C02A6BEC8C0A487F0E138F761A04F5E55C026B6A1
FFE59629DB88A8C6824C48A36FDD4B535DFC0BC6C3B3BF207D42E102964336C6
4255AC29436A63F5F9B3947695ADAEA3DAFCD2AC6E1B2B2E666E4436B75B3A1A
196110E5F8C7BC2D3C7D16FDDEE8CB161CFE406BE72D09426D4CA5F0C083B855
99A6918B796CABF8C39B3C8FDA9870A0CF4134DCFD3355B4C33BC8203B1E6DE5
F90F995573EA11EA8AFE680D1B0410307CC148530A2B32B3E7D16932FE106A43
2E3675458E0036365DCCE48ED77C2BE0D4670A710B0CD2C3BA0F7F25B9F4586B
349A1095D1FBA2996DCFB4CD7F4FF96696D7D154EB44078F06ABEBA9135D8818
4B28900C06A5B09C4E63A7E880820527513C9B81EED5F7A1C436222C544D8208
4814671DC6DE460C95AD9C1B2D8DD484529CA9D7B23AD7BDD4796A5DCD2564B0
0219AFA30EAA2158B542ADE48395F653F88A2571DD1C5CE28B8BA6E4157B2E36
99660DC9CB22F5F05C53B71E8216EE28667CF0C65484D859F15E1705DB7956CC
98A9A5A8BE4D1BB12C3C9B46453E69EC83CB9EBE79247C072BC70A7C520AD373
E74C74324D43060F97F8B5164B76B5497B8B50E84A6A9083AF093237D35114DF
41230664931AEF4851B5891E90D35F4AF9CD47A86155130B6B7F3C5F3F9B0C3F
0BE89E036572D4AF6EE3C47F4EAC6B8113AFEFE6A648F82EFF70925D4077289A
EBEFD7234C809219668E0EBFE31A90FB85645AD82F996B492EF19468DE91EB13
23775C8A55B0EBDF6922C64A5D40E42828F35A154A55042C0B26BC1AF5D42E15
530FDD7C05E71C814F1C582F136C80A9545F7AF17A907DFBAE0C0FD87B21F5F1
A1583F4413CEB939863C0D37A084DCBA113C40792DDB2A0C12DED1A2D409EF3B
C227705C636F0BCEB41F074DB97AD3F6B56E6D97C6F8D288BA97345BF5AE89F4
D1496DC0A2F3A8F8F70B8080BB720CA5B7D67D27C620AF2B84711E8C01DF5BE4
BD076D625D9669168DB59FC3C454B778206E8770505419E16BDB9EFDCD1C705B
E050ED2668475EDE918CDA0606FF12F76B7331815699F5628508156537A6A07A
FFD06F3409F3D5AA4F121ECD1AEE663646BE380A163B0C5C9A31074FB130A845
18E787DB25F15C4CC4197A706F5A2C95AFF922D734D2B0D1FC30E104708932C3
8C7EC77178DBB2662455B5B54AB01B7CCF9D90D7C016078EFD6041C7BD186058
34FD269BDC6C2AB398887534FB088DA26B687445A3F8D137EC97E2E16B331BD5
798FC3F4A776A0DA1E95098FE47D1155219028FADD55B91E0FFD1D489501E1DC
F353999CF19B171A3C75959649B2B286541BBBAC18A0EF03F5C75BE98D7C1F3A
F6A10C64476492248EDC182188022D1C10641D3EB1342A1CFAEC05DA3E7BDA29
3B2E7DF61B6CAAAF7F42900BA781902886ADA6F44C39E843D3B76E9C62D6A3AA
0FED58BA5F680308C5A1A0966313BFAFC91171317F39845C6D1D2A4E53916F0A
8EA990EF5BE5B7B958C11352D6F7750BEA3122D85D9E74D1A35810C88E1F1111
4E7278954A8449BEFFC4646BDA04569D14CC43081C75932E96BDD96B9471C1FF
E813797F1D677473E9B88E7B1BE51F69CD508E952FB891BF37318AECAB15AD35
A2665A783C1C9CDA2F62A177E4F338B32554541CA5A1AD99F09AC3DA18FBFE57
6B8B814D549E2ADC791BA9BA5D9167E316A13B321332DA266893872D90CF0928
850005878D5E304C634DD0408659C3E739E20CD74B6F80EC4DEFB2B006EA87EB
AAD21BA1811E57E614DEB63609CC488ACABC4672012FBA5B9BECE820DF52E875
8CDA3FF9DEAA26C19604722C585E937B23EDB15B561A9322624202EC77CFD3B2
389A43F90514673634D577CC41A1AD45F4D4790D3F76AA104BF6F5FBE8F89F74
0D17A805CBDBA09F62897D7296DC43147A5CD5A8CB0B80CFB7DF794528C00DC7
6D5CE261C86355F497AF861015ADD5B671677E66AFB8027CBDC011AA38C3E9C5
3A4DBFD38C0DAB82BA7D311337BCAEEB7DEC5DDB37C6788CF4C3C6D7B6F0ADE2
7C075EB57B54733CD3511D8C956AF4680D3C1989C72DAB51BFD5CCB1358F89CC
545094BF5B2F6060A52D573E6D0BDC4C11C02AF292A68B25D69DE08C5AD5B875
D087710C8A6A782814AC74ACA23B84E9234B59E94C504CB530F63273859A8E16
4D97F06ABA14CDCCDFD0D05A0EC251CC8CC6F3779ECBE11CED7676146F51F5D0
D44BDC41E3D338A5216FD717569E5F34A2B5DC0B4F4E20C41341A5958B6FFD61
F9E5EE2E7FD35A5DAB9B624A478EE13D7ECF355E9586A285CC6F48CCA65BA7A0
46B3C31453F793D9C5501B4D334CBE9F296579928AE409354CD33FD9A1178FE4
229CDB2E4C23DA38E3A2C7A1A8A3D85C4FFED1D5035E794D6436467C632218CE
EEEC8202D1DA85B64A22E2DCB308FF03554D22D4DAD1CBB3F14B6E0537BD7A96
ACDCE3C40F2B889B2B6878F9DB35C37D91F729F4A3431CE9BC1F256EF4951CB7
B2E6E6AA8C2834D5EA9C3AD0B1AE7A1CCDBADBEF8E46E3643790A245830CB8FD
6D78FDA3B383492DB07EA3802224DEA2A02FB8517B566DFE820EE38F3CB5F0E8
684FA76732176FDDA2864023B3F085558B4FE082023F7EA53A9AE6E1EBA9B1D2
4FE65402F8FADF23CE0419F5C685B953E31E8DD89E235D36165ABAB5FBEB7CA3
852BE9E90CB5B570D4433E743665D59376D16BB5347EBC045D2797D5EC77C8AD
C52ED8DA65CA77966C319744FEB17E706167DF86C6BE955F89DC592E1D90CA93
A9A8196DD727CDEE34B19FB03BE2097D216ADC0359D9418E83998F389B84C62B
A6036A0B2550678B87083F32259E0025EE29A74D06E42509B9082A6E27ED0B65
A60AA3B7661A99E39B3E2778B29444831DD1B1851CA4B4FABBCCE77E40CA6F38
9A9E6EBCCFB536869E65D09EBFC97EB8CD49DFB76B7D56E00BAF7C26F4D78282
E34E13A1F5437979EDDA1700E33441B9F9EDDF3CC0597FE7A3C38D410B917D43
3B8788F58A5873E7B2D3FABB8FF8622F1186ED75A77055531D87B617932330D6
E854C2B727010C231DB437568DB1AA7A2E275E11CC215964EE8C40FD32B5FDC3
8CBD69B183BE9AE290E3D5F2D4F2067844E05A6C8FD8E4622B11F8FD12AC1562
4354B44DEAC197D306329F1AD4AFB63C9EDC006A2244199E2CF5924FAA7D25B7
AED8E2BDC69AF5599C9ACACEF065C2743E6E63A5DFEB7688D82D6C7EED51C04A
C63FDD6D3E1CE346DFC17C4F67578DCF1F249CAC5B555C0A828E2259AACA3469
E0D676BD59A445B74D8A8602D8719331D9F4FE91BEA0EC0B2271947328D8FC35
98EC806A33DAA263A557E43B39B14139FD35B2B90ECF2549FBE86A04618B41E1
3CD0FDBCA1A73124EAD4A8D834C218918B943EFE9573A71F8E0472EDC71D89E4
79F4DD94DEBFFBEF1899ED8035108EAA626550A49CE6E7306A60A650996427D2
7AA168E38C0CBEA47CE42653115CCC91B1C6D918FED1A79EB872C1DC23A6DE79
66F175F38F620C69CEF765138CB9DE79D981EBA0D101069C83BB0EB4C7A0043C
B165B6C5A27701F99CB3A8764CB4062A2F5C79352873B0CD03951C126EEABD4F
CD3F1BDB30D73974E17519807B95B0472034DB724640AAAE19C059545BB24758
2D12C55EDD1F68657B40C2F2F378E08384602461A4062634DA222B4A29636D4A
C0A426CE9429372B62D13B23BD12BF30584DE2C1905BF09AF21A9500E94C21D2
C0C834251125383BD5B75331A32E5E90F8C238BAADF04BFAB6330EF56CE50DA3
4B0C8074C80CCB27A20909CFB4DEC1E9164C49F8242D558960082D3DA1BFD7ED
15213492C8546A3FDB878F27938A26A9AC7E9154B2FF033ACB1DE27CB9F142E2
11257CA647F4AB7BE2418FF9B51D111E7FEDB1788BB6EEA8B357246839E23A49
5A65435BD1496C29546664F22C65176C75AFDDFE73628FA588C60C08BBEBAD8D
2E103E943F68F9D55E988CD4B00C1D012FF046787747D94E458448D8B122B83C
BCCFCF86B7216569BE4888CC6DC7E7204C1181C6D336FC53822C17FFA0C5F110
FD07EFE4E9E04F8FFE82B05FE945DD3D2716EB91842297E0FAEE29C2C441D0C9
B9FD42B66618555A850755F42F50145FD862E5BADFC6E1EE29CFEE28708AB06F
DE2455478843BBCCC8E132137AF0777A368E651BD9FA8764A29EF4211AD88ABD
DC3814681B3CD7169DE37CB5A8BD33FF0CDEEB13C8196FA1BC528B7EF697D77D
33C3BE352E41B95613106B912FF582AF97A0044DA2A2FFBEC03504B4C2999B6F
B5A7309893C23C49599C423F787838E56AE47D5F90053970EA96D666A37B45FB
D5AD89181BDE3B657FEEA3C57CC92B5A3A3BAC9D8B588DB8FF6CA47AAEF688BD
8197528CA5E4E8C239224AFA667AFDC13845D0E78A35C91C95A5DB18AF2EEC97
ECB81B4F73E574553BED4A4EE0ACDBBE965CF2EAB1FC51115A01D72F1E7F217C
DA5E1B1E6D3BD51D6190EE7BE8BD92AA03C3F286F1ACBCA81E02252832533445
CBAF22F8BB1EA1FC7174298F08873E37684D716BE4222D8D90864DE42F253DB9
03D0E40DCABEDFE37B6CBD70E2D53B1A27C486E313879C435BD4186BFDC12FC3
283519033F90A7EF748CADD0DEDDBFB17214A690393308E19436C5174BEE765C
150A58CC1F67F6D62A9B95A187670BD60DAB0BDB65D182984A16E5911AB7BD28
0471D8F4585A2336C2906E2EDF620BDC4C7C03A21228C10E40D2F7CB9E11B361
7D59B34E1C6DB4F0A3F9F54288DB844448707D8A2F6C1F0078E09A40487F077E
C1483EBF03620E75DCC913F9E4C633864742E45AF25ED15BFF291DA23D1B16C1
0D16F16E5E18BC3A68A8D505473E54D2E28B236C916F7C2E12B0457E180479F0
4554403C27EC67F9836D418B33FFFD55E13AA00446522E163B556F220CD5B2BC
1EEFC27410BDDEEC1F26B66EED40842EF6960485B6FE04CC72E16FCB2B1C73B4
3866B7ACAC7C8D82BA8BBA8341E83A2CAD4A548501B5CC935B58FF96E5CDBBE1
5D635388BD0B58965AAD423128430B7F15A399586AA9635D2475F82B15ED245D
27B1395A2B2F634880F314647416E8EB25731E3359A190706DF46DD8E6C8F497
2AE624BB348F302093F70B92757D9230341FA1D40FAD09C439381D6622979A14
2CC219FB3002F966598C9BCFAF13BC53A070B0967EF479CF07F032AFA67FCBB3
50F492B18AAA882FB46DB74CB9AB84F6DBB3B7084B5A5E32BAEE7D9337AF785B
1EB10F8A8770A95A89DC4904B7F3872F4C73CD3266428633CBF1B48C8539E684
3BB3517A74E8D4568B4B308750E00B5CCB55DF906415674E405A1379284D87C2
1206847F825D465CD15D8D0E6CE7CA040DDB0A7CF5AA872B6D82F2D8E062F7C7
22DDEE56A2C323C7F7A88B7091544738A66FBC2D28EBE93E117A5F825409EE8D
59A210683120B432B9C4E3D5ABB104C8C1E12AB0CB1A4686AAEADC98ECF47DCD
5A301E5E9C7E36AB3142F026067790C09AAABE028A1ABC23919BC4DF28AECC82
7B98F8E7451D7FBF694C63782D8828D3BA8674FBAE42E79F0616FC5AD924AE0D
39C938EDD2942CECAB567C0834AE095E37E7D2775FE28D7B560FD422A9BFAB88
55ADB08C0394E4D256F073DF2DE8DD1FF34AC06EBE2A8EF3DDB2403721BBD340
2A177A9E59800F19FE0EE162419B6395F129E94CBB23C11E9260D8BB9D150606
A6B79CC4CD4E034B194FF7391CE2FB4CA9F5A61A030DBAB7B61283D237C6B2C5
1E72793BDF57BC
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont
%%BeginFont: CMSY10
%!PS-AdobeFont-1.1: CMSY10 1.0
%%CreationDate: 1991 Aug 15 07:20:57
% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
11 dict begin
/FontInfo 7 dict dup begin
/version (1.0) readonly def
/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
/FullName (CMSY10) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
/ItalicAngle -14.035 def
/isFixedPitch false def
end readonly def
/FontName /CMSY10 def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 0 /.notdef put
readonly def
/FontBBox{-29 -960 1116 775}readonly def
/UniqueID 5000820 def
currentdict end
currentfile eexec
D9D66F633B846A97B686A97E45A3D0AA052F09F9C8ADE9D907C058B87E9B6964
7D53359E51216774A4EAA1E2B58EC3176BD1184A633B951372B4198D4E8C5EF4
A213ACB58AA0A658908035BF2ED8531779838A960DFE2B27EA49C37156989C85
E21B3ABF72E39A89232CD9F4237FC80C9E64E8425AA3BEF7DED60B122A52922A
221A37D9A807DD01161779DDE7D31FF2B87F97C73D63EECDDA4C49501773468A
27D1663E0B62F461F6E40A5D6676D1D12B51E641C1D4E8E2771864FC104F8CBF
5B78EC1D88228725F1C453A678F58A7E1B7BD7CA700717D288EB8DA1F57C4F09
0ABF1D42C5DDD0C384C7E22F8F8047BE1D4C1CC8E33368FB1AC82B4E96146730
DE3302B2E6B819CB6AE455B1AF3187FFE8071AA57EF8A6616B9CB7941D44EC7A
71A7BB3DF755178D7D2E4BB69859EFA4BBC30BD6BB1531133FD4D9438FF99F09
4ECC068A324D75B5F696B8688EEB2F17E5ED34CCD6D047A4E3806D000C199D7C
515DB70A8D4F6146FE068DC1E5DE8BC57034F0E066082A12B11F8BE89A026E65
91B43447E7278E0E62E66F023D427DA3AE586F12F2DD773341A7A3E5A75A7328
B26354FAC930A6E934A7D7CF5730D631D60D98DF787B34144305DC0D364F262F
BD6D1EA0FAE2FE041D04838E99504A3FA5DFA15D8E10DA7CDCF443AAE092D738
5E58D6C2D4D6935FC2DFCC765C5D98109181741CFE5E932C1645972F69CE1856
326A203CCF046C3B77FFB5E10A35A03C9719DA3C580BBBAAA5354A668CC84890
75512F4EA8E0D6B49FFED0E68C6FE4095A551513F15056A669D843CF6BDB1816
6CDF0F3CE9A9C463A375717B72D6E23323DC8A59F4997BADD2BD6D3B12AA32BD
9C015DA630F8148AD6E7EFBE4000D5CF1CE2240E96E558BBACDFAB98590583EE
65B0A6AD7F53BA8B20220EDED4BC36B6A732160D7C2164D8111746955938E1C4
4D231776D12B774134E9E011C70CDA1D866EE7219AEA3F4CA5E729B28C50055F
7E6871D4EE629BACC9C4AE864AB62457710EC46328D7E5EB778FA9CC6A93DA1B
91586DCE66DABA06B240376300BD7868C25D66DB346AA899ABF7462BC55948DF
8A7B83BAD059A20797C47633FE64B2C9457980C9BB674ACC211C7F75408D0B43
6D62892CCCBC5C95193E67073207C943A77592D9D4C4EAB8E32AF741F71EC5E1
72360DE200229E36B1C4E28CAF1D40CD6023C7FCB7837AFB352F87EB50593A58
42E0B0BB32A3B30A3AFD65AF31CC9FFFA900D08278A710B3C611F952D6A9C66B
A4C74D2D3576CA29B263FD6BD30F219A68D790BFEA8D1D223627512CA5B56951
0AD5DAFFE33FBD67BCE8459AB905FBF9126C89A3CD3A108FC0DDB650BF762664
D721B69C6F53BF36F270609C310FE49E3004D93F0E3DC17EDF850E8B8C366F65
720B3712F5199BD47BDCD7E4150D64021138F0DBD2D71B93C8D13C17C6464019
581F8F061E329331B7041C348F0BE8BAC81B06EFF1E33827351E08105B9DE973
39F819579FD4912F458AF00C07A9C0C98AA929C003B2948615341D86AB1094A1
6C5326D69D95EB7909BE2FE736152352D3AD16435853ABA132F32B2540DA8030
792A131DCF3BA71BEFE8A6D9A7DE8ADEE424DF2AB72684DFAD1985A69E93AA63
A66AD2CD43291653A411ED312EAAD11ABAF822C903E00F6181FEF30E898E086E
652A2172C4E8F42E8201E73382C17B27E6F4ACBBE71B829D3C283B403D1FC900
16053A28D48C51426B6E31CFB0E9598BBB5D177279A9ECC49980B5191DBBD6CE
1CB3ACAFA376F1CFB65ABD09281C69BBD75555CFA45FBBBC081FD0DEAB137C11
944F0639EA7ABF81D149ABB6E335B545D517D27EDA6081764910DB23ACDE8AB0
38CD5677D0A0AC59EFE295510F9BDC76A09181B87AF36A12A4F6DA27F2EDC0D0
334DEECF22E929545FCE0BF74925943532D08298BE2801FA1853ED7DF3CF1F7A
E4CB77FBF50ACF8D0877FABBB2AA5711B8B5B507051B151FA66F79890B01B9C8
1AE0142DF07AB23467F906975A1BC7E66E4C1F8D85CC04D21357E6DA4C48F509
A7E76F395CF621EFC7B63CC076B3F40A9099C539A2FEA3E21E1B6223257BE3E9
3FAE9FC793CF231AE0B91FBCB1C3C1438567F7553F59908EED19096794632DE8
73917F8F699694B835D7BC664CC3AB78E41EE1FEFB402FC2BC011D1836B23185
12E43A70964964622142154DBC5FEA19DB485D9ECD78EA3080E958ECC755CC6B
9BD17ABA8DAA17E0C3C834C66D94F4B388CD80C41EEF7CE94E1D63B1A2A0B0DB
183A65247A6071414AC84F7BF4013341D1A5D44A80A9228DBFFC0DB13A4EF3EB
CDD99F81E87791A4DE0FA5B330113B8C5BC7263C3B6C8AF1260517A67BCDD414
911FE184BBC5322EE0F3A5E83B9886F1054F72ED6B54752279F0D18AF7439C25
ACE9F23BECF813FF972A515DB046CD876008A90EA3BC736182EB80DFAA221EEF
1F74E7C72C06D2CBA8B1840AFAFF8D77382ABBCCC51DB6C793B2DCB039A373C8
570F7201347E8B9F96AEE29FE0A2C9282B7C32FDEDB8C7F7357F8E59C377A5CF
ECE7F1F1270F2DB776EBC942E0DA1EA852430BEF83656FC41769399C09F95CEE
10C9EE4AA05800E3B6417A1AD766FAB7F3DC5BAFFD44448318238431E72AF721
8817CF9336AB0BCD4C17B5E9C6423A505782FE3434A90BABC9E04635B4724C55
76928FFBCBD1E36BE904A52027DA073F4F92452F47F1546181FA0130BBA78537
3F006B6035E564A86217A403779A5880B3DE6CFC37671D2FF43AAFF864BCA6AB
0B6D2C2CE77A8DCEF19FD02BBE96E830A444CF16EB45263BA56FD0C03CCE7DBC
11AE932018FBBEE9E23AFE61E5B761371AAC098E56F743423E779F90A33C246E
47FB4631D446AEE2184A5E147712375D135AAEEC86303476A42D072690953339
43772343293BD1989F323170C50BD0F0A99889423ED51EEB8CA13C2BC4E06174
D0DD719A53C9A18363C65FD0A49657A68A2822EFE8639F70366767B4D2B47720
6C7530D05F56AD014343DD48199C8EEA6A5A3A02CE635D4AA9E888857DA4860A
98548C884F2D32CE6648AF3EEDB1342B7B2C1DC908834E5316468042550E9B55
875CC05922AF2DDD942D45802EF444D62B21A69538E8826FE9234950D1A0142A
C8A42374640F33E361A414998CEB499C6FD79B68683589E36AA1D25FD2A877C2
8B6E1015C13497DD6640A2634A0EC44F9B841469E6E0D4D916F37CB57E833573
90F0AEC2F56098956AF97A5ABB8B671B8B915836CF861F8979020696EC841C69
F37FF69880AE1CFE983934FA4725C04492BE13252468055B04BF86D9352358C0
C3E195490C15FACF8BF7E731800AF117C4EBBDB594D690E469ACEC61D162EFE9
B63157880696D0C66F9FEBEB76006410B860F00416CEB2B10CFFA0B000C63393
C76C2B73158FF4283B9663FE6FC95486BE3EABEC61B744318F4CFC64BBE4EECE
8A49F42B6D64FACBC96BB641AA7708DD
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont
%%BeginFont: CMEX10
%!PS-AdobeFont-1.1: CMEX10 1.00
%%CreationDate: 1992 Jul 23 21:22:48
% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
11 dict begin
/FontInfo 7 dict dup begin
/version (1.00) readonly def
/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
/FullName (CMEX10) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
/ItalicAngle 0 def
/isFixedPitch false def
end readonly def
/FontName /CMEX10 def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 26 /braceleftbigg put
dup 56 /bracelefttp put
dup 57 /bracerighttp put
dup 58 /braceleftbt put
dup 59 /bracerightbt put
dup 60 /braceleftmid put
dup 61 /bracerightmid put
dup 83 /uniontext put
readonly def
/FontBBox{-24 -2960 1454 772}readonly def
/UniqueID 5000774 def
currentdict end
currentfile eexec
D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
2BDBF16FBC7512FAA308A093FE5CF5B8CAC6A7BEB5D02276E511FFAF2AE11910
DE076F24311D94D07CACC323F360887F1EA11BDDA7927FF3325986FDB0ABDFC8
8E4B40E7988921D551EC0867EBCA44C05657F0DC913E7B3004A5F3E1337B6987
FEBC45F989C8DC6DC0AD577E903F05D0D54208A0AE7F28C734F130C133B48422
BED48639A2B74E4C08F2E710E24A99F347E0F4394CE64EACB549576E89044E52
EABE595BC964156D9D8C2BAB0F49664E951D7C1A3D1789C47F03C7051A63D5E8
DF04FAAC47351E82CAE0794AA9692C6452688A74A7A6A7AD09B8A9783C235EC1
EA2156261B8FB331827145DE315B6EC1B3D8B67B3323F761EAF4C223BB214C4C
6B062D1B281F5041D068319F4911058376D8EFBA59884BA3318C5BC95684F281
E0591BC0D1B2A4592A137FF301610019B8AC46AE6E48BC091E888E4487688350
E9AD5074EE4848271CE4ACC38D8CBC8F3DB32813DDD5B341AF9A6601281ABA38
4A978B98483A63FCC458D0E3BCE6FD830E7E09B0DB987A6B63B74638FC9F21A5
8C68479E1A85225670D79CDDE5AC0B77F5A994CA700B5F0FF1F97FC63EFDE023
8135F04A9D20C31998B12AE06676C362141AAAA395CDEF0A49E0141D335965F2
FB4198499799CECCC8AA5D255264784CD30A3E8295888EFBC2060ADDD7BAC45A
EEEECDFF7A47A88E69D84C9E572616C1AC69A34B5F0D0DE8EE4EDF9F4ADE0387
680924D8D5B73EF04EAD7F45977CA8AD73D4DD45DE1966A3B8251C0386164C35
5880DD2609C80E96D1AB861C9259748E98F6711D4E241A269ED51FF328344664
3AF9F18DCE671611DB2F5D3EA77EE734D2BED623F973E6840B8DAD1E2C3C2666
DD4DD1C1C32F82156385E55FA0C948E3754B7B4883DDB996924249A3C980CA02
61F8D045D2B773F486122E8D81C08DD7D05449D960EE36C0BC98DABC0D60A75D
89EEAA8EED86189FF7E662339867DB1B75D7403C6EA734371D413FED27D82619
07DD91EFC1CD1A5CD9EE2585DAE643240BEC9AA8854DDF54840B3FE079824E08
72010BEB06F61B44B9CB0CD2887EDC84D3D5CCDAF977475277420672C955288C
F588A0303AC94E0215FC65A494863FD4F4DE6FECDBB2B72D65C983F0B1F0A76B
1960CCFD2A0D724E9D5AA182BCA84124AE470132217CC8E9B2020EA2DCA1C887
281109169FF8D15AB8612F4F12C664525AC9869EFC92A85152C854C70BCE374E
C0BD536527D15FF7DAAD5EF13B4AACAA5739A1753292C7C4EC5915FFBB24CB5B
A2DBBD20BEE873FF2EF212E31DEBB88F0E55EB967605D8837BDA7234B9C09912
DB85291560FC3CD3C1C90E9F48D58C4F7B768A40AF7CC058A104127B117861A4
E047FA7F65F29A461A8FE27CEE1294B59B8EB230C389F1BD7C0A3B7F1FBDB7D0
6C038E88862BDD352C08CB9397A351D3B0974C9A4059BE95DA5BAC6496995664
C42A09AE080EBACBC975047ED84706D7E8FD992EDC7A95B65C1225D744C1A7A9
0F0B22F316F3911E242C83DF0A72B6837324FE0799ECEA22B89D9568A57EEEBD
A690EAE1BE5924063D5031FA1AE73F00DCC3EAA14A7B5BA04DE727CA29C5046C
71D6C502B4B58C5367B84FB4BE5A2AB3AD84829E027520937950A03DEFD947E4
FEFFC9734F174183A0D554BF56B4CAF903FECF7BD6254CDDF56A396584A4A936
79AA2E831892B17B5C9B836B7F13CBF415BE7205413F871057354A60FA14F3E9
82EA58B2181437694B381E5D7C550DF0010F49C50CE293D37C9611516A120838
8F1F3E0888343D807C2C3F61B3444EF6909EA8C2C4C7796471B3A856E5AD0127
071E66AE8B912C16E2E7EE41EFC976F3C80C0EC943CED02D8DC8849EF2EF6B4D
B2AA906E9A35F5B9E7D8CA8D1702F8DC1E9C7BC7A4C010722DE38827957808C6
5DEFE3E0314AC3CC925A9C3D878FF84DD8BBA69C855663B020046820EE777BE4
EDCFA6992C08ACAC1B2A4352180BAE66CC048B40AA73DD34D331F1A7CAAC8493
D14F53B6A106160CF9D11010C0FB08E6703CAA10D24D3140FABE68C241F8658B
EA1D7C56F5A06EDDCB862CFE6350CC6A4F3E88F7830DA08FC8FB38CA11568710
6331E4867F18A0937F304E9B6A225A3D393961E2A4EB71515A33D93161351DDB
59ACB1101BF5A498D700032D31A1A3EB4F03FF6D5A65AF70A2BDC7B4F887DCB2
2DE36D702F59445CDF67604CBDAB7D6C27B2A65D958E9715CCD81377C34FE6D9
C2FF3387409526FA81F609453CE67F4473EDAC8E1E5B94DA9D5AE66FFEB66A3C
4905C149B7D9329D8E73CAD026B84FA596BED678FF8450B9EA59DB7AE227EEB6
97C07778780F2D75FA9CF2FE15DF8C08479C0BEE7F2E7F4B22E4EC1E31DD9DA2
E7453F95125D4055B925103ADBADF8530B76ACB14FCEC2F3F80D194047740645
9FB85D23109D80229D34B82373841CDC1E5A8117EFFA7DEDA825A016C64CD6CE
A40061A64A5939547D6D941A2185BA40B0BD06780508BE2360064A2D052A2EED
7EA8DF6ED07BB93A3FAEE80CC52518085359C14AB7FF00F69568D0454B0FF2E4
8919139167D5568690440883DC62230E73D58665C9CB0E7844B42CA2954EB3EE
B02F67B15491794F31CD0F11F82D5043E7097B4B9720002E5CD4D8A4FFD9
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont
%%BeginFont: MSBM10
%!PS-AdobeFont-1.1: MSBM10 2.1
%%CreationDate: 1993 Sep 17 11:10:37
% Math Symbol fonts were designed by the American Mathematical Society.
% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
11 dict begin
/FontInfo 7 dict dup begin
/version (2.1) readonly def
/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
/FullName (MSBM10) readonly def
/FamilyName (Euler) readonly def
/Weight (Medium) readonly def
/ItalicAngle 0 def
/isFixedPitch false def
end readonly def
/FontName /MSBM10 def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 78 /N put
readonly def
/FontBBox{-55 -420 2343 920}readonly def
/UniqueID 5031982 def
currentdict end
currentfile eexec
D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
2BDBF16FBC7512FAA308A093FE5CF5B8CABB9FFC6A66A4000A13D5F68BFF326D
1D432B0D064B56C598F4338C319309181D78E1629A31ECA5DD8536379B03C383
D10F04E2C2822D3E73F25B81C424627D3D9A158EAB554233A25D3C6849ABA86F
1F25C1667CB57D2E79B7803083CB7CC0616467F68450D9A3FEAB534EB9721003
DBFEEFD050F3AC3492F5C74162A9A531ECEC0F47610B4940E946D21CAA771D30
A6C27ECBA11708CC46C62396BF9D1990D579D0C394899D24FE7A4382EA18E7E1
160E7283AF5BE17254790628E79FCC206F28B5566075B3A5697D5209062544FF
D85FD89D6F43D6588B242AB2666B5D2861CD38A8CE676503EDFAE84D12A71E77
8405E468FE391F4F3F50D2C57ED55512036B0DB8E76A7EF413ED08673E56DE2C
16A3B65CD478433C0D2F9FEC4E662D54DAA43CFA6957D2A9AF8979BE06F70B68
ED4C8C493D6DAC4971A3F1D010A7726D084EC1074FECD7D12D72AE16C26194AF
21AF5774D9B860EEE8608D34F150092F09C19959BAA670022B9A9F263CD391E3
74DD1D1B4CD4D75273CAA4E37F68C631723E08FA35AD34C0AFB4621AE6689861
854D16CE1C375FD159A337E221A6FF1CFFB5693A0623E7EBB58C2969F590D081
AD92DD9E5322E26D6A15023664AC73A355998BCC48ADD0E7A4BC79790519606F
A1FEF6075033BCD1A542ED2F7EE4943A13D927138CB26A52F33F52249DD24930
BBA9773D5DEB5B8115804C2E65EDBCCB17469C47F2591BB232690DAC5F1780A5
6FE9861DC450426725D35E3E8006C022026C0A383B0A6E8AA30A52055E7E139B
DF6ABC491AF90C7A3884582B7407C0DDF37CC49F3CBA0126D07A3639A615400A
01FC5412668335BC7FB0C5C62F533276BC13716EA27CCD3924408650605BEEDE
2A68B5B6105D8766B9DD6A877DE6AEA9C3179677B7C0726022D0F929E7E63574
4692A959C7B4919DEC77FA5012A3CB81439F809D15DA7739FAB5D8E03BD8F283
FB6832C9864D18C4CD499B20534D33C822226FC199D26116A73ABA2B5CAB0B63
42F1B4A3003688088F1F6DA3C61363B4C0C44269FD21F981DA0BDC5D180FFD2C
8BAB61F4330FE5806A35F1235364554FAA1CA61EC79EB01793D586FB1B62F4E9
3FA5AF30CE168CB03F041F939358D62A995FC4958E8FCD8CAC9FEA5FB6D8209C
BAEBDFAD9E2C4CCE9A2D1B96D99A703A642CBAED5F06AEA53FA71398D4C25060
E248122521E7BAB474E143724230BE4AB1CF171FE5FAB9649726C9EA80BB3847
1B90CFA895CB2E24E4EB9E13A5D9D8A2CC17449E2143D0269CA9DA77AC2EBBF4
C21D4FB62D2F1FC77B48127D74D318481EC372D5F9E0FF82CDC8587D4CFEE71F
242CE9C1692E8EFB1DF6D865D3B845CFCB0183DC368C5A202C6B2DC5E736F855
355553B7C37D7871F22E0E0DF7F8C0F354C3475280C07BF1DC568CE6FA9CF07F
7369074A0333E2CE9D5B4089C42D0B3E7A23AA0EC6AF3A26FC775550CF4F05C4
08B3F75657BF5F3C24C71FC4603DA72A23F8E67EDFE1FB210F6A804F3A8364F8
46BFF1FB2384DB32CF32222806A7DCD5590AE596C20C233E454D1098BD07370D
C0B721431148C6BD99DBBD626B7C79261961A7E5C40F2B99E06778C84C541300
C891138B60B516D4A3FFCC690B
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont
%%BeginFont: CMR10
%!PS-AdobeFont-1.1: CMR10 1.00B
%%CreationDate: 1992 Feb 19 19:54:52
% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
11 dict begin
/FontInfo 7 dict dup begin
/version (1.00B) readonly def
/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
/FullName (CMR10) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
/ItalicAngle 0 def
/isFixedPitch false def
end readonly def
/FontName /CMR10 def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 0 /.notdef put
readonly def
/FontBBox{-251 -250 1009 969}readonly def
/UniqueID 5000793 def
currentdict end
currentfile eexec
D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
2BDBF16FBC7512FAA308A093FE5CF7158F1163BC1F3352E22A1452E73FECA8A4
87100FB1FFC4C8AF409B2067537220E605DA0852CA49839E1386AF9D7A1A455F
D1F017CE45884D76EF2CB9BC5821FD25365DDEA6E45F332B5F68A44AD8A530F0
92A36FAC8D27F9087AFEEA2096F839A2BC4B937F24E080EF7C0F9374A18D565C
295A05210DB96A23175AC59A9BD0147A310EF49C551A417E0A22703F94FF7B75
409A5D417DA6730A69E310FA6A4229FC7E4F620B0FC4C63C50E99E179EB51E4C
4BC45217722F1E8E40F1E1428E792EAFE05C5A50D38C52114DFCD24D54027CBF
2512DD116F0463DE4052A7AD53B641A27E81E481947884CE35661B49153FA19E
0A2A860C7B61558671303DE6AE06A80E4E450E17067676E6BBB42A9A24ACBC3E
B0CA7B7A3BFEA84FED39CCFB6D545BB2BCC49E5E16976407AB9D94556CD4F008
24EF579B6800B6DC3AAF840B3FC6822872368E3B4274DD06CA36AF8F6346C11B
43C772CC242F3B212C4BD7018D71A1A74C9A94ED0093A5FB6557F4E0751047AF
D72098ECA301B8AE68110F983796E581F106144951DF5B750432A230FDA3B575
5A38B5E7972AABC12306A01A99FCF8189D71B8DBF49550BAEA9CF1B97CBFC7CC
96498ECC938B1A1710B670657DE923A659DB8757147B140A48067328E7E3F9C3
7D1888B284904301450CE0BC15EEEA00E48CCD6388F3FC3C8578EF9A20A0E06E
4F7ADDAF0E7D1E182D115BF1AD931977325AD391E72E2B13CC108E3726C11099
E2000623188AAAC9F3E233EB253BDD8B0A4759A66A113E066238B0086AC1B634
5ABFF90E4B5ED3FA69C22541981B2BFC9710AEF6B50A8BB53431C7B4D380D721
639E005D6B4688EE16BFF48443E7C9E5FB5BC5883E271CB03428948F9221D912
2E2F3750D1A1AE5FF546535E1DEBF69B458DF49EA3817D9612E5C9A0B7A698E7
5F576FB653DE1297A8C417599917F9D75D42234E54B4B1E99669BA5A40B4AA21
43CE5634719D8F3536694F15E4F8E5B7D9CFE15B68A7D53FF47B923F0AB3CD4F
FEC1BAA7036B5936213BB109CA9425C69A28B7221E68FC79848CD6AFB220F45A
A0D21EC1020DA99816247E6B49FE263926782D00E5B3A57151761303FEA24487
F85FB9B6E6C83B05B38B3BA7F81776B082204C032D467B91767AAD865BBF0F1C
271649C2ED9F8111C5637017470B3F6C3DAA3AF1705DF2B7838968B4EA7F9E62
BE7DA1AD8D81D3608EE86352BEA38DB87A0D57A5DD28829D8728077ED4C16931
59E158F9155CFCD1CE098395826D7D29C56EE27BF71132F6E6EF1F3FC99449E9
9AD5D11275FFCA914FC866BBCBE9E978201D3A78A9B9EF3D50694AB260ACE9B7
64011370C48D51ED6EA297309F3CCE8946BD55D98C7A4EE3959AC8AAAC99510A
3A57B04AC3E0C54B6021D1BD5209BBE0E945DDB019FB41BC593530222F36624D
6D9D1E58580CC3F0CBD119EAF06A2A544D5B05FC33D8595ECCCD38B44C3D5961
56E7F2F827FC7B10480D5FB076172FAFEA2AD59113E544311526DE5DA56A64AE
7F0E6297D1EA3B9F87F85FED1A4D554F76113A59052406E6E76BAB34699797DB
8E39F197FC3513F562411AE4A4A066CFEF879C9263E3031CE1FF731205268033
0E4A7FE0596990542D316611B20C00ACA89845F1D16B4BC73426EA8A13E0AC86
0D08143FA619F8D7F944F01E624C1FED2AD0A81EE44C1F396F62740EAE45EEC1
9BE659970777EF2C0C038DD25BE74B59124FA9C96905604BAB7C4DAF564FD2D0
4BB75557ACF7B855A07AD09891F9AF
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont
%%BeginFont: rsfs10
%!PS-AdobeFont-1.0: rsfs10 001.000
%%CreationDate: Sat Mar 21 18:47:14 1998
%%VMusage: 120000 150000
11 dict begin
/FontInfo 14 dict dup begin
/version (001.001) readonly def
/Copyright (Conversion from mf curves by Metafog (c) 1995 Richard Kinch) readonly def
/Notice (Copyright (c) Taco Hoekwater, 1998. All rights reserved.) readonly def
/FullName (rsfs10) readonly def
/FamilyName (rsfs10) readonly def
/ItalicAngle -12 def
/isFixedPitch false def
/UnderlinePosition -100 def
/UnderlineThickness 50 def
/Weight (Roman) readonly def
end readonly def
/FontName /rsfs10 def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 78 /N put
dup 80 /P put
readonly def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/FontBBox {-2 -300 1240 728} readonly def
currentdict end
currentfile eexec
D9D66F633B846A989B9974B0179FC6CC445BCF7C3C3333173232E3FDBFF43949
1DB866C39088C203DC22FDC758584860EC7BB67FDA28CC6208249060E18FAB32
204779B5C03C0493BBBBC95CF02692CC4DEAA8D2EA90B5C2E64374E92BCB8501
429B8FAE4A76C0C6B76D6FF7CF9A7D5EDFBCA0E959541C59BD05B7DE43D25D53
FC3DDA6EF0C2743978A6D03E19CCED4A11F2EA4BCC3110BE8B8D9E2772361969
C19258EFAFDC276CB1ADE9208A941A36D18F9FB1C33DEF76AA315DD8F41F8A25
4AF1DC3456B9DA8108CE7F2380A151DBB59CBB616BB498185CD0D0DE28290A9C
1DB96124F5F796C7A2FC57B079E292DD1A2E5EBB88585421F81BBDC63FE33ABC
2DF705A2BE4F6BE21BED49C3E2FC3D528A348CBEF34339397282607E56471B4E
B78EA8C9F24AC14AB83068335F7974D7262C18BEC4AC5FB4CB5E0D7C410A3F08
57FAC1C117ED77399C1E264A853EDDA05A6117D3DFD28F96E44B1B8D3995E42A
E0B030F113EC027670E66FF845D9F93808284DC73F51F44B4C210997E261644C
59B3455D7C3D3AFBD65E28D1AA774273FB1B6E9AB4F56464B0D56911EE6CB802
F1C90982836A63EAACD2B2E9D07850C716F7D1291C59433A10F31CB9FB2F2512
1CE1F7F343CC06008D111D235C75DBEB8CE22E88E207F0ADDD18772276176BFC
F43EEE4F51613C545A2A49B34E4237BE57CEDEF63179B73879C2674AF40B79AE
024EF39D4D01AA6E8E83BC1D5F393AC1F78D133A004DE64C4AE52897C279CFA1
C87E605E5C1CFC2F4C72A0D0F9ED40A8B4F8E9EFEBDC1D60E353DE792A091B4C
39738379EBB7BDCE4D06844931D77A2BA45D857EC30ECCCB37F85274F283C27B
4C9BDB119847F4422B1FBB4059A5ADEAC44D234520322E2259CFDA894D6148CC
1E0EFAEF5666358F343AA0C6ACCEFCE6F3BFE30C43C85ED1FC565196555E51C1
0395BAF253393AAE179F635A2DC0AF3A9BD67D385A9A96A5009D09BE5AA164FE
8A48F5DFBC3C2C7244F57C91356ADF25AE852673C48C9C3D4A2D1F06BED56256
869E52850D83D2A78DA51010268631BCF5562B70ECF818A741398D63ECA44D23
567F5932BDFDA9520FEC5F94C434FC369F0BE91DFC66ADCA6108924D943E4A1A
660368770655C87F3F1DDF55DBD314B28AF132AAF66066552929B64611412ECF
92AD5331D37D97A9152E517EF0F6DF9CFBB77F532A369531C4F38A5527D78A67
61EB9A1A98BCB1A18CF66CD7E189206F65681739B524A147A0E22E36D409E7F9
08A1CB6B4E498A7AF0F4AFF536C6DD08CA7DE3D2DD1A2996000E2E08BD684BFE
08C9D31C1EF4C989C7B3A74727AD2AA6306C89D289A05C034F325AED5CE3785D
D783438D89D92DEEF30B110E4BC9748F5423ADD67C1631E60F3E687ED7D9A4AE
C3E6EDA91ECFEC0ECF0B5340E0DDD17A6381B5852E3AF05887FD5142811C2572
A1D4B9F9539CC6DB6EB81CEB69D06DA03FAE476A30AC752C65104F6D08ABC252
888EFE008BE5C4F7292CAD13420A57E20E901AAE58F63D569BB78545051C2FC0
B81CC7668EC6C670BE57562474E361175B115073B2EFD14A1FF76CDB4A748010
888BAB47F407E883211A17C5B44960014B9B84BC310080CD8484A858274DF1A5
A232B2533A2295E30EA56145D44F2DC60EA9D0F7D62021E05D2624B621371432
AEADF3328894170304038253421DEDED82030ED6F378C43DBEE7A6450C83A736
479DF26E8E53897183CC8BEE76B614D03022C8AACB0B1C4C7D185E06F21DB595
69E3D0D54D8E720B05413983E7A45032F8F245350AA213AD5635DFD17EE288EF
7A4D2DADA9C296E86269051CD5CE811EE7067F164EB7200CEB625A2FD21E94E8
38276EF001BA57BAD3F2495382FC6AAA81E6C75920E4E1AC7670346712F096DA
2D69A8D44DB13FC7623589A2B305874704BEE4FDCAFE4E20CEEB2D46606BC9D9
A336C8C0263EF417FD340246E8ABEB8A3891D425ADC54C135420F9A4222F7613
2273C96460733E0B096F10BEEF375642B226EFB9BD53C3BBE529E73EE8E7EF28
984CCEF5D88B5E0F9156A8C72B021754E2FF3CBD382DC3EDB5430B349BDB6B8E
69A0900825A18A3DC852EE6BDF9EE2D098186D14880D713FB24901637A4B5B98
65061AD5FAEFC323026B2D8393E10337438BA2C5C33EFD9D0690B5815B538D4E
A3EC536A4421715C0947FCA169EA31C1A24A19D5EB2CB3D97D0FD65E69F3FCDF
BB4D7D995E828A75EB7911F7957E8662AF5DD9FE9D9034D1E853DF6161B703C5
F7370C2853E3333B98349E8A7DD552B8D0480E73FC48053F26280C0CE45CC5AA
FEA5702B44D71714126C89BD0745866EA4F658C7D27AF6FFAE21DAFFE33140C7
8689ED068EB8842383EC36275F17801B58F18C1D5BAE7C188FA26F81906F5F0C
A7AED06F886BBA9FC00C98F847D83CB08CDF2F8E278D6C7BB41F2A232DF510FB
FB3B448096F86ED656AD4F44EEF0FAC436208BB79812EB76210FC74C1847E4DA
F520FBC3B7E98C5C32FB4157D38B1BCDEB8ECE2069DC2D3806D0B1288296ED98
8A615745D9922D5D7D58A0DEE3A88D25605186469C64CC319C04AF19DCEED052
D7E078E58254815BC5C225C88D8C6D94FE1B6082F59EC58DB2C413B87BE4BE0F
638E9EEA5803C50DCD5C96A50CB420E85C838BBEB72F907B0A19B976E37442C6
D34E9D10A51AFAE5732B9EE39DBFC30EA9A7A04DEE8765C8C5F905F82093D13D
E1A83E5BF5683EC4BA36688B711E14B621C7C897A494612C38E2CF04A41CBF41
B0CAB77389B14866AB0CBBD2101176D4C853AB727F53D7070F8FF63A0C0E4A82
9028DDC562E25B25F316B3E5C43178DA561BE8538765077CF6F33116CCA45C2C
1FD43F0DC5E55A5598117AE571E27D425EDACC7C3FCDA474F2BD83422EB536FB
71339C4C716C6E5FBE1BD879B33F9C8DB293A3D17C36661A77BEE930A757F6FA
8AEC1BE2B620704E79F6BC3E503F6922802CE37D81406D4A4A4A1ECE91129C8E
19BD0B8192860F6044B63AC38597950ED6E6E9A84D1D9195C4D5BAD2AE6D51B9
21A2661E6D7E9A8130B5E65A2F9BF38ABBF11BCD2697F17BE4F7CA477898FD77
0AF2A260BB3B25F66B4E37FB9F875C83E8C8D219455AAFA6D0BF1A0F8C11ED56
FABB7F3C7D5DF81731B44E96AA19A5860BC9642AC44410EABFEF44C15A4A0F24
085CBC165430D485A6AD3AA48617BDF6B6CD613271E359F741E908AF7EBACE2D
1652369B24181424DEC3D1C7F9F5C08C7134B927403184C5DD2FEC1047B81D46
9B7B7D6F28EE968CF48316F6D5216840BC546AD8F1CEAA41C44260AB5634FD51
A530C585985D51BCAA39BD4F6BC7C4F7BD67E7D5C106E37F52BD9D19B0614CA6
28EE21811A8C601FB6BC6F45
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont
%%BeginFont: CMMI10
%!PS-AdobeFont-1.1: CMMI10 1.100
%%CreationDate: 1996 Jul 23 07:53:57
% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
11 dict begin
/FontInfo 7 dict dup begin
/version (1.100) readonly def
/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
/FullName (CMMI10) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
/ItalicAngle -14.04 def
/isFixedPitch false def
end readonly def
/FontName /CMMI10 def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 0 /.notdef put
readonly def
/FontBBox{-32 -250 1048 750}readonly def
/UniqueID 5087385 def
currentdict end
currentfile eexec
D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE
3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B
532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470
B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B
986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE
D919C2DDD26BDC0D99398B9F4D03D5993DFC0930297866E1CD0A319B6B1FD958
9E394A533A081C36D456A09920001A3D2199583EB9B84B4DEE08E3D12939E321
990CD249827D9648574955F61BAAA11263A91B6C3D47A5190165B0C25ABF6D3E
6EC187E4B05182126BB0D0323D943170B795255260F9FD25F2248D04F45DFBFB
DEF7FF8B19BFEF637B210018AE02572B389B3F76282BEB29CC301905D388C721
59616893E774413F48DE0B408BC66DCE3FE17CB9F84D205839D58014D6A88823
D9320AE93AF96D97A02C4D5A2BB2B8C7925C4578003959C46E3CE1A2F0EAC4BF
8B9B325E46435BDE60BC54D72BC8ACB5C0A34413AC87045DC7B84646A324B808
6FD8E34217213E131C3B1510415CE45420688ED9C1D27890EC68BD7C1235FAF9
1DAB3A369DD2FC3BE5CF9655C7B7EDA7361D7E05E5831B6B8E2EEC542A7B38EE
03BE4BAC6079D038ACB3C7C916279764547C2D51976BABA94BA9866D79F13909
95AA39B0F03103A07CBDF441B8C5669F729020AF284B7FF52A29C6255FCAACF1
74109050FBA2602E72593FBCBFC26E726EE4AEF97B7632BC4F5F353B5C67FED2
3EA752A4A57B8F7FEFF1D7341D895F0A3A0BE1D8E3391970457A967EFF84F6D8
47750B1145B8CC5BD96EE7AA99DDC9E06939E383BDA41175233D58AD263EBF19
AFC0E2F840512D321166547B306C592B8A01E1FA2564B9A26DAC14256414E4C8
42616728D918C74D13C349F4186EC7B9708B86467425A6FDB3A396562F7EE4D8
40B43621744CF8A23A6E532649B66C2A0002DD04F8F39618E4F572819DD34837
B5A08E643FDCA1505AF6A1FA3DDFD1FA758013CAED8ACDDBBB334D664DFF5B53
956017667094CD8DC214A666D7D12CB23EC030318B42CBAAF40FFB3841355872
715967202E674F5ECE31075C2B1C5F53E28AE3C1491012441F34A19EE7421594
8C7C9937E184D28A736BA38E5E2596B6541FD3FDFB01B11C6688F739EA2CB227
5A433732C19BAA867456427C889BE96F9988CC4803E46C73D7C14FA47EED15E9
A50A7B3440C3657C8546702F174478164D3FCE6ED09E07BFA3FF4DA15665AE21
997EA3E6028E445E404FDC17A8D5D3FA9528AE2181F62C56CB4B1285ECE7AA43
106927756442D6CFAAD209E48A7C2C083C4617D39D41FD759EAD2AF00E279584
35C0C705F8DC79D682C85D39C2E4BC4A881DB3DC7D265301EC0DE506FB62FD38
2B4BE886E4399B928A524AAB07E806742D858239072E7F925E00F9A79CC547E7
13B2FBF1B9C41672E88A73891B2E1BD070E347A9A67A5990F79F547E8AA91AC1
D072CD649C413FB4D5A55C525A85EC1812DC38D55940EBD54F5901C531DB04C7
95B820AC3635EBF1380C5153687FDDCAF2BA81C52555837821ED623BFA58F16C
BDB207CA6992DAAADBC8A8C1C4242C1260C490F111CC78C0E7831D1A333538FA
E6934BB6B34A45233FF8C83B31F532F635CF46C590
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont
%%BeginFont: CMSS9
%!PS-AdobeFont-1.1: CMSS9 1.0
%%CreationDate: 1991 Aug 20 17:34:24
% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
11 dict begin
/FontInfo 7 dict dup begin
/version (1.0) readonly def
/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
/FullName (CMSS9) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
/ItalicAngle 0 def
/isFixedPitch false def
end readonly def
/FontName /CMSS9 def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 0 /.notdef put
readonly def
/FontBBox{-63 -250 1027 760}readonly def
/UniqueID 5000802 def
currentdict end
currentfile eexec
D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
2BDBF16FBC7512FAA308A093FE5CF7158F1163BDCEEA888D07B439DBD4E8B4C9
D198C0387612A3C669D6A672BF4726B90213C2EC063317A043B6447FEC896BD0
598D0AA1DDB874B7D72F3E89529FFB544C16C41F04AB6972093A91C201589D61
A8FE417702E200FC26E47359B881D02F7CB42A5B21F90424F82FEFEEC5ED59F6
C48895523098D73036537A54639526839F785D7157E08DDBCD96AEF023667FC0
1921070EA097CAAAE9E4E9D5D21DB9363555AD932858E23A534F7DA9F2F0E79E
9D46C0D5EDC452179B6A328A52412F2FC548B03A056663DCE243A441EADC0D63
8FF6D19EEC71606A368EC3EF1DB8FA9117DB6169ED3BD792D9AB2811378E50A8
535232683CFB2C5E0F3C350CD294AF9804B7B88FC848D962819940AC88247756
BD1EDE31C397076351447974F91BA99BF34081C1A6C65879C36934E1494108BF
FA61B57E3A8154D7CBB6AC9B671700FE227AECF9160145957A2E629C3931CA4D
42147A6CA42FE5E0947DD2EEEB0A640EF9C73800A59F0F0B6B75C3C9C863ADED
9627DEBC218141FA414913611061B3EBB46AA393CDB074A40492FDEAD1207838
A13CA709C2CDE567B9688DC5D4D622ACD752A7D6DE3F79002ACDA6AE41EEC084
BB1D3C962725E1AB05922698C598FEAB0D02ACFD97CD8BAD811193660043AEEE
659C18DADD0E614A401FA0F0A485AD4A47DB73FDB3D2B294145FFBCCB994FD2E
68B4ECB3364B377FF6243ED93921F3B3DFDAC3CE9CB3E2B23115BD45FF1F6734
70DDC37F712D78543A8A8A561DAF3303DD8F3742EB700043207D04A782D94952
1E57EC7E5858AA91F07524F2EF2A129D38CAF8698126B8981537CD4DC45AB99E
EE571322DA22745F552675C785D0A8898ADEDD5DA7388C11DF0FF71D5CCC605B
A45331EBC8ADE7548C79EDF2C5941F4ABB5D6387E740D862DAFD7AE4ED5ABBF3
DC46EFBB2B1EAB2FD79B8FE5DA997CC2C1B49D8AC7E17D12F6E359A110027BBA
397313F42BD822F37DAD929B97437EBFA91A517AAEDF06E5CE805653EB048E10
C191C4728861726468B19FEE02B152EE02C3CF7C5DAAEDAD9CB804E4A6AB98E2
68E289968547C0E5A0CF5C861ABDF87B9D4845ADFFCC9C63896C3FE56A98B52C
1FB5A7FF27A955AF6ACD94F62FF30E238B45D7E40626340B9E9F16899A9CD907
F8C744386CBFB7EDE117C0E0E3B0054CCC0A7FA0023F7D589E4D4081E84047E5
66617B3267DED2B57298939C2A4EF7A44864CFEFEF42CAB145BB50830ADE7C44
2C9CC7676E66E74280E52D4E2E50FDF292432B178BD7117B1F32EDB7B7127082
73CAFBE773C8526A0316A8B16F89AE9ED1C63D2F8B3619368E391F90D9CD8EEE
B0B53D28B60FBCA9732E4BFD3BD9E70E754A99A045E35BA03FB1C96A951F83D7
687A926F794CE822CBFD2C75BEC3D0DC56DD57657BA98DFC49D0D3DA369D340B
B4C51116E14403BD67CB073A4C0558A1C14F6A1E405CF0C25F768134749046C4
6A5D2683BC5E74ABD625E61A8C7497D19FFE59C4D329813189566A1AAE47CBE7
5B28535A6574C08A70DF0C8A315FEC39AFD249A27190DC15809705799DF760EE
F8939B0476CC1859D0295D2DB99EFCA9638631573F891430C41F8870DBFEC942
F0171A0102F162280C37E5551FACF78291361F5398BEB1C22662480531A217CB
C648B517A92C7A542598365DCA17FC0A8E9A96CF5D8FE19E68182CECAB567C6A
7F629ED5538BD0A37059696D342FF50D91C318DDA5629507F3DFE732B7DA0EB2
D248ADC1C69A9424F6E3E98989560C6EFB6A8D498E1DF405D27E5A0DE6D2727A
540A059F4B1FE2C70331FC235708648E6685B58A50ECB06EA0AE3AF16F390F83
E21DB55E153BBCB96D0C2733BE079262BC2B24088C5B009019F5E4F31E4D83BD
48735B0AC5188FA75B47C54426A2F939C1A82D68E5A023AC2A54E9E885FB1DD8
1DB9132CA57EC10EC5C59BE2FBA153B8084A63DD86E18970C091325589B83166
EEEF18B8592B2425A47971ADAF226DC31147C58AD73FB76D563B1C00D5CFCA02
748E3421C77E9CC4B619C75BF8DC30A21143D68F56049F8BB6A03F87D5964300
02DBDDB792CC876AAEC7A7918D77762F9AEF13D5F48BED20F494C27FA2784045
561E552BAB26474C9BCD59CF7850B201D877153A5D722B917EC9CF5DE4CA3A87
B5AE862F169DEC29CB76497ACF10FC87FD92864AE04F6D7BE5AE3B37F67CB5D8
44599C48BE0123D2A039C1B58BDD828002A291EC8A8DE971CD70C32781BFD467
CE1A7EBFE9C19F1FB87C9B58C4B5EB22D59F5367E9602A5E7A60689CB45F5F2F
ECC83206889CB400BF6C017D760B5DDC66043D5AAB8EF865B948911ADB9D6B44
9B5C9DF4ADEFD8FBCA3D2485D862799F84DFB1CDD7C5182E7C11672673644A8A
FDF9294DBAD723AC980779EFC3B61E5005E48692B1259FFA1D33179E93DA101F
6CB2D1B2002C985F3269FE261976E61B763FA04B43ADA170A603A9664189F135
090FCAE2F425319E40A7AAEE60CAE785894423704E92297720BC03CA358EB453
E347DB41FD0DA4EF3883198E3FEA9EC2AA03CE61F4B5C28394EA19C669755945
34AEAEFE0DABB2475772CC99400DE222F5D25CA6AA1977E8B035A53D267F8742
B1F8F4E5B802B4752244921489E80B6265419ABF97469ABEAC8D4FAD8AD42BD8
94F713464DC2CCDB6EFB4BBC5D5A12E14DF49457A061969FB7DC3F1C01EB79C5
1F462CB40297D9D2E5D1CF2810FDDEEBD9819681A09E995D419A8591DCAC8B93
5572BDB703842592AB4EC9DFFC050065A2460FAC0C6B8E6EF4447EF1E62BEA70
0A4E4F7535349049A83C7496C5CF72C38A4D3CEAD18FC6639ED561DE820EBD88
5A322BD86A32BEC48086DF437B224C5E28817138E8BF475E28C8D706F25A630A
96081A4E0239C96CECFCAA2C73B868B5F3B15CC975CBB93C199DD9F467449A0E
C351EAF84688EBD253F6BBF528DF49DE646D7A4A59D86B14950C1877B078053A
32D0A3DEBA2D1ADA82BAC70AE27B3CE70A64E3C3465DA08CEF88901EC1F47F46
79D6FC907640AD75C3CD899F5E78840ECF94558D375F0DB8CD70775AD8E7765D
9E25AA137CD5CB9EB0EADF669A2B2E11D9FE7213032642E88EB780D16864F338
429B54FFFFE354B9E40B4B686447F08F0CCD7213151811BB9E10F6743CDE8823
1E6BF1789E56B87D68D34F59437766BE9BBC057037C87638BF0E5184D18C5FEB
9A5C4A22B4DC7CA7CD93350519799297684FB2733B58247C05C0E48AF3408F7F
4A4FFD87B1C86F07DF247E9A4B8A335E057C79727C32B75AB0B8893B4254A2F1
895099D5878BD043BF889BE1004AECA37558960414135193A98A706E2A109565
D12335492DC8A7A68F460112EA3EB14D538F5EE8D51589D06F7232F27A599B45
A05C1BF3DF58DCEF6C14BC604268A78CD438A07F720E332D2B8BABDBA1088075
AB0D3F18E64291AEF64219DC40B329251AB23BFAC1FBEE9D22A4CA0058CB8B3F
15A75BDD1965B58DAE3BD11C91158D66262C511D682DC9B92CBC0DCFDC29A38D
0CDA13BCA3211E8443048D049B14C816D7721A6DD9578A8B7B7638AD1BF60182
52977F6421800B5DF99528EDD0893BD9C85B40AFFB8674A44E4C859B76F47AEA
3E8C64A7C4E611FA2CA8058E9D826DD41E7533EA033E5C7E7C6975FF3F0B43E6
D1E04C9EE03E097C8CEDE5B7B78CFA5E9AF068BEE84A398D4E6B3A7EB8FC7F37
7AEC8A6711C38C2C31BE990009E97C41B9163B7DEC478F5B33C6BA25B74D5520
F6B35946480EE7BB9C685D6F2E44AD6AE8D19892475ACA48048F0BE9710CABBF
9015C9A80195BC99903D8B15DD451C3A0F39355CC240400033B115B313899867
0A191B9321DFA4716A6FEE4800718EB191123706CCF3AFE65AB9CEA7959BF63B
47C4FAFDBC70A46FCC3BC5C66510AD82FC32B375777D7D905298773320C1AF22
9A19918E249062B55C80EBC4729DF9AA2816171AC59990ED629AE2CF9844EE4B
A1D5C556CD371363CDA69C11BD0F596F5BE0E1B5174A59651B68049FDED13831
56BF52ED07F3E75F169151A5FD286FD29C1666A99DC0FAB60E2EDAD4972E83E4
87A2FC13312D711627CCD98484A7EB6F3BEEEA50672CEF5FF8BB120C025995DC
EDD9B6921535FA909E9B91C418D14723E0CF214C9C12B4CBA3A360D45AD90CDF
C0ADB432A048712E7F74C20B10264A7826DF2BA1CAEFCB673C8D2B22AF9F52EC
369112E04369030F45F530F3C7F320653DFA2D2257363E4672C6C8E80BAD868B
519D30623FF68C91BD62694A5DFEC5A524E903CFBA73B4FB9FF9A0B7858B9D4C
71BD1C0EDED41D6B6F1A3ED450394F29221C7CF68B8E8C805594A42095842050
D7773D2E3F257815A8B5B1589D55674FC6D913DF0980E16ACA7DFFAF68DB2EEA
C90E7C940646400BFF1122DCBEA74D582309F01629F0690719638B9DDD3058D2
817EE1A41D1A8F3A2F908A1BB94D7B2CFC0A4F791A3AD243171F1EBCCBF61222
6104F825BE2A7AAE15756A48488738CA5CF12869C7D1AE161EEC3A12D0E6D708
0D72ED03A5295DD5D316BA92E9D2855A8B0D9DBAF45633E7025AA70ECC99F01F
317941F702EB6384C71AFECE1579823E2BB22179535BD0621E00587838FCABFC
A941973371AF6D255C43AAD243DBAE11952CC7B8AA0B49D92FC3FF74B67498A4
0D4C7B2083A6E96E7DB850BBBBF62611EF4268D1012F844E461817FFE2820B56
AAB86EEFF54F31ED334C3BF2B84B63701EEC456915F1B08F654EBA319B133855
5135F9020A356B5D82F4EF1522A8AB5CC79475E95E9ECF9A54D8CA248402A1C7
1FB89256681EB5CFD87918EF85C5690C5424A939EEDDEC0E4512869CEEBDEC35
A747E6266E429BC30372FC45D7A16B16B369EBEB53FABEFEA15B753046DFA7F5
C230B5EC30FFB6B769A72EE3C36046ECC011973F755CC6EE4EB7EF671C23167F
525B7AD80447AC74693C2107A5F27EB296224C296875A923D00869A8DC0DADD9
B347C01F521A2A42B8504C8148E1BA3912843D63636F712C56F6B79CF0382C3C
0D1792AC0C945EEBA842FE8028897997869DE1E581961D709DC77DF22D66BDE7
190B48C346726AB9B6B604B65FEA73B9D0446EC60A19CCA128C41E3EE3FE9884
DC40B4634EFA8FFD6BB283D6B10A39835B43B1297A17C66AA17F5C629DBB2213
A4135B6155F3321847CD2852798D005483D5DE197183848D03BFD6A97389DEBB
5946A212A113A3D4E157AC557C9EC9A8CD71AC2AC285CCD559761CCE5A8DF8D8
FBFFF049417816B9B74AD323EB21BA370963CB89FE7B5F4B534B68057D3B22D3
923B1D56DD2D563CD5DE946D984DE0109C2CC01AA03C9F263AFD392B3D2D4C9F
71D38765054476BFFEF19D16A5CA4EFCAC14E1F782C83B36EE54A3E7FBB9D50A
A501C9662F089F8064A2D77DDDFBB555AE648C603014EC50A0788116B72B421B
65E01E88840840BDE197B07B3F190480FC609F554245B1173FB87A6E3993D398
4A8EDEC5364DEC72CDC1B0B8E8601D77FE1A735EBC13428AC5DE5732C330A9FA
DC44B6ECA59B2193FAC770405C05F9C138CDF0B31FEF13AAA6AC5AC9D20B0F90
DE5FAC13479F2DD42A027299445AA5AC0EC7E4CF18AF5990
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont
TeXDict begin 39158280 55380996 1000 600 600 (ZR-06-29.dvi)
@start /Fa 129[44 4[44 3[44 44 44 44 1[44 44 44 44 44
44 44 44 44 44 1[44 44 44 44 44 11[44 1[44 2[44 13[44
7[44 10[44 44 46[{ TeX09fbbfacEncoding ReEncodeFont }28
83.022 /CMTT10 rf /Fb 205[33 46[25 2[39{
TeXbbad153fEncoding ReEncodeFont }3 49.8132 /CMSY10
rf /Fc 172[46 83[{}1 55.2926 /CMEX10 rf /Fe 177[60 78[{}1
83.022 /MSBM10 rf /Ff 212[39 43[{ TeXf7b6d320Encoding ReEncodeFont }1
49.8132 /CMR10 rf /Fg 205[25 25 49[{ TeXBase1Encoding ReEncodeFont }2
49.8132 /Times-Roman rf /Fi 139[14 5[25 3[14 27[33 78[{
TeXBase1Encoding ReEncodeFont }4 49.8132 /Times-Italic
rf /Fk 26[85 229[{}1 119.551 /Symbol rf /Fl 172[62 83[{}1
74.7197 /CMEX10 rf /Fm 194[74 74 74 74 74 74 29[62 26[{}7
83.022 /CMEX10 rf /Fn 177[55 78[{}1 61.4362 /rsfs10 rf
/Fo 205[41 1[17 33[31 10[31 2[48{ TeXbbad153fEncoding ReEncodeFont }5
61.4362 /CMSY10 rf /Fp 134[42 1[60 1[46 28 32 37 1[46
42 46 69 23 2[23 1[42 28 37 46 37 1[42 11[60 3[65 51
2[78 24[42 42 42 42 2[21 42[46 3[{ TeXBase1Encoding ReEncodeFont }28
83.022 /Times-Bold rf /Fq 134[50 2[50 55 33 39 44 1[55
50 55 83 28 55 1[28 1[50 1[44 1[44 1[50 13[55 72 1[61
2[94 4[78 4[72 1[72 12[50 50 50 50 2[25 46[{
TeXBase1Encoding ReEncodeFont }29 99.6264 /Times-Bold
rf /Fr 139[17 5[31 1[17 27 17 17 2[17 27 3[31 6[34 2[51
2[34 31 4[41 8[38 3[38 65[{ TeXBase1Encoding ReEncodeFont }16
61.4362 /Times-Italic rf /Fs 196[17 59[{
TeXaae443f0Encoding ReEncodeFont }1 61.4362 /CMMI10
rf /Ft 140[37 14[30 2[39 97[{ .167 SlantFont }3 61.4362
/Symbol rf /Fu 194[48 17[48 1[24 24 40[{
TeXf7b6d320Encoding ReEncodeFont }4 61.4362 /CMR10 rf
/Fv 205[31 31 31 48[{ TeXBase1Encoding ReEncodeFont }3
61.4362 /Times-Roman rf /Fx 194[65 17[65 1[32 32 40[{
TeXf7b6d320Encoding ReEncodeFont }4 83.022 /CMR10 rf
/Fy 193[65 2[23 23 58[{ TeXaae443f0Encoding ReEncodeFont }3
83.022 /CMMI10 rf /Fz 140[50 6[46 7[41 2[52 97[{ .167 SlantFont }4
83.022 /Symbol rf /FA 175[84 1[75 78[{}2 83.022 /rsfs10
rf /FB 26[59 229[{}1 83.022 /Symbol rf /FC 145[42 3[23
2[42 42 9[55 37[0 3[55 23[65 4[65 65 1[65 17[65{
TeXbbad153fEncoding ReEncodeFont }12 83.022 /CMSY10
rf /FD 133[33 35 3[40 28 29 26 1[40 38 40 61 18 2[18
1[38 23 34 40 34 40 37 9[73 51 2[43 2[49 3[42 7[56 49
15[38 38 38 49[{ TeXf7b6d320Encoding ReEncodeFont }29
74.7198 /CMSS9 rf /FE 87[28 17[42 27[32 37 37 55 37 42
23 32 32 42 42 42 42 60 23 37 23 23 42 42 23 37 42 37
42 42 6[46 2[69 51 1[46 42 51 1[51 60 55 69 46 55 37
28 1[60 51 51 60 55 51 51 6[28 42 42 42 42 42 42 42 42
42 42 1[21 28 21 4[28 36[42 2[{ TeXBase1Encoding ReEncodeFont }65
83.022 /Times-Italic rf /FF 169[48 2[37 2[37 3[41 2[22
5[44 44 66[{ TeXBase1Encoding ReEncodeFont }7 66.4176
/Times-Roman rf /FG 32[42 42[28 4[28 6[28 16[83 42 1[37
37 24[37 42 42 60 42 42 23 32 28 42 42 42 42 65 23 42
23 23 42 42 28 37 42 37 42 37 6[51 60 60 78 60 60 51
46 55 60 46 60 60 74 51 60 32 28 60 60 46 51 60 55 55
60 1[37 1[47 1[23 23 42 42 42 42 42 42 42 42 42 42 23
21 28 21 47 1[28 28 28 35[46 46 2[{ TeXBase1Encoding ReEncodeFont }84
83.022 /Times-Roman rf /FH 138[66 40 47 53 2[60 66 100
33 66 1[33 66 60 40 53 66 53 1[60 14[86 1[73 2[113 3[47
1[93 3[86 8[40 4[60 60 60 60 60 49[{ TeXBase1Encoding ReEncodeFont }29
119.552 /Times-Bold rf /FI 134[37 1[54 37 37 21 29 25
1[37 37 37 58 21 2[21 37 37 25 33 37 33 37 33 12[46 37[19
1[19 40[42 3[{ TeXBase1Encoding ReEncodeFont }25 74.7198
/Times-Roman rf /FJ 134[37 3[42 25 29 33 2[37 42 62 21
1[25 21 42 37 1[33 42 33 42 37 13[42 54 1[46 2[71 50
7[54 54 50 54 6[25 37 37 1[37 37 2[37 1[37 2[25 3[25
25 37[42 2[{ TeXBase1Encoding ReEncodeFont }38 74.7198
/Times-Bold rf /FK 139[23 1[28 1[46 46 9[46 1[42 8[51
7[60 8[23 4[60 1[55 8[46 2[46 3[46 1[46 2[28 3[28 28
40[{ TeXBase1Encoding ReEncodeFont }18 83.022 /Helvetica
rf /FL 178[52 77[{ TeXBase1Encoding ReEncodeFont }1 58.1154
/Times-Roman rf /FM 171[28 4[34 34 5[34 2[28 3[34 65[{
TeXBase1Encoding ReEncodeFont }6 46.4922 /Times-Roman
rf /FN 133[29 29 1[42 1[32 16 29 19 1[32 32 32 48 13
29 1[13 32 32 16 32 32 29 1[32 19[48 18[16 12[19 16 44[{
TeXBase1Encoding ReEncodeFont }25 58.1154 /Helvetica-Oblique
rf /FO 134[83 1[120 83 92 55 65 74 2[83 92 138 46 2[46
92 1[55 74 92 74 1[83 16[101 129 1[157 111 8[120 111
120 6[55 58[{ TeXBase1Encoding ReEncodeFont }26 166.044
/Times-Bold rf /FP 87[39 83[71 5[84 103 1[84 3[84 5[84
65[{ TeXBase1Encoding ReEncodeFont }7 116.231 /Times-Roman
rf /FQ 170[67 57 52 62 2[67 67 1[57 2[31 67 2[57 67 62
62 67 65[{ TeXBase1Encoding ReEncodeFont }14 92.9846
/Times-Roman rf /FR 87[47 50[78 39 71 47 2[78 78 118
31 71 1[31 78 1[39 78 78 71 1[78 6[86 14[94 1[39 6[94
20[47 45[{ TeXBase1Encoding ReEncodeFont }22 141.137
/Helvetica rf /FS 32[36 101[29 3[32 16 29 19 1[32 32
32 48 13 29 1[13 32 2[32 32 29 1[32 9[55 2[36 1[42 10[45
36 1[42 42 39 8[32 1[32 1[32 32 2[32 3[19 3[19 19 40[{
TeXBase1Encoding ReEncodeFont }34 58.1154 /Helvetica
rf end
%%EndProlog
%%BeginSetup
%%Feature: *Resolution 600dpi
TeXDict begin
%%BeginPaperSize: a4
a4
%%EndPaperSize
end
%%EndSetup
%%Page: 1 1
TeXDict begin 1 0 bop -128 431 2478 3 v 2398 723 a @beginspecial
0 @llx 0 @lly 460 @urx 760 @ury 878 @rwi @setspecial
%%BeginDocument: ziblogo-medium.eps
%!PS-Adobe-3.0 EPSF-3.0
%%Creator: xpdf/pdftops 2.02pl1
%%LanguageLevel: 2
%%BoundingBox: 0 0 460 760
%%DocumentSuppliedResources: (atend)
%%EndComments
%%BeginProlog
%%BeginResource: procset xpdf 2.02pl1 0
/xpdf 75 dict def xpdf begin
% PDF special state
/pdfDictSize 14 def
/pdfSetup {
3 1 roll 2 array astore
/setpagedevice where {
pop 3 dict begin
/PageSize exch def
/ImagingBBox null def
/Policies 1 dict dup begin /PageSize 3 def end def
{ /Duplex true def } if
currentdict end setpagedevice
} {
pop pop
} ifelse
} def
/pdfStartPage {
pdfDictSize dict begin
/pdfFill [0] def
/pdfStroke [0] def
/pdfLastFill false def
/pdfLastStroke false def
/pdfTextMat [1 0 0 1 0 0] def
/pdfFontSize 0 def
/pdfCharSpacing 0 def
/pdfTextRender 0 def
/pdfTextRise 0 def
/pdfWordSpacing 0 def
/pdfHorizScaling 1 def
} def
/pdfEndPage { end } def
% separation convention operators
/findcmykcustomcolor where {
pop
}{
/findcmykcustomcolor { 5 array astore } def
} ifelse
/setcustomcolor where {
pop
}{
/setcustomcolor {
exch
[ exch /Separation exch dup 4 get exch /DeviceCMYK exch
0 4 getinterval cvx
[ exch /dup load exch { mul exch dup } /forall load
/pop load dup ] cvx
] setcolorspace setcolor
} def
} ifelse
/customcolorimage where {
pop
}{
/customcolorimage {
gsave
[ exch /Separation exch dup 4 get exch /DeviceCMYK exch
0 4 getinterval
[ exch /dup load exch { mul exch dup } /forall load
/pop load dup ] cvx
] setcolorspace
10 dict begin
/ImageType 1 def
/DataSource exch def
/ImageMatrix exch def
/BitsPerComponent exch def
/Height exch def
/Width exch def
/Decode [1 0] def
currentdict end
image
grestore
} def
} ifelse
% PDF color state
/sCol {
pdfLastStroke not {
pdfStroke aload length
dup 1 eq {
pop setgray
}{
dup 3 eq {
pop setrgbcolor
}{
4 eq {
setcmykcolor
}{
findcmykcustomcolor exch setcustomcolor
} ifelse
} ifelse
} ifelse
/pdfLastStroke true def /pdfLastFill false def
} if
} def
/fCol {
pdfLastFill not {
pdfFill aload length
dup 1 eq {
pop setgray
}{
dup 3 eq {
pop setrgbcolor
}{
4 eq {
setcmykcolor
}{
findcmykcustomcolor exch setcustomcolor
} ifelse
} ifelse
} ifelse
/pdfLastFill true def /pdfLastStroke false def
} if
} def
% build a font
/pdfMakeFont {
4 3 roll findfont
4 2 roll matrix scale makefont
dup length dict begin
{ 1 index /FID ne { def } { pop pop } ifelse } forall
/Encoding exch def
currentdict
end
definefont pop
} def
/pdfMakeFont16 {
exch findfont
dup length dict begin
{ 1 index /FID ne { def } { pop pop } ifelse } forall
/WMode exch def
currentdict
end
definefont pop
} def
/pdfMakeFont16L3 {
1 index /CIDFont resourcestatus {
pop pop 1 index /CIDFont findresource /CIDFontType known
} {
false
} ifelse
{
0 eq { /Identity-H } { /Identity-V } ifelse
exch 1 array astore composefont pop
} {
pdfMakeFont16
} ifelse
} def
% graphics state operators
/q { gsave pdfDictSize dict begin } def
/Q { end grestore } def
/cm { concat } def
/d { setdash } def
/i { setflat } def
/j { setlinejoin } def
/J { setlinecap } def
/M { setmiterlimit } def
/w { setlinewidth } def
% color operators
/g { dup 1 array astore /pdfFill exch def setgray
/pdfLastFill true def /pdfLastStroke false def } def
/G { dup 1 array astore /pdfStroke exch def setgray
/pdfLastStroke true def /pdfLastFill false def } def
/rg { 3 copy 3 array astore /pdfFill exch def setrgbcolor
/pdfLastFill true def /pdfLastStroke false def } def
/RG { 3 copy 3 array astore /pdfStroke exch def setrgbcolor
/pdfLastStroke true def /pdfLastFill false def } def
/k { 4 copy 4 array astore /pdfFill exch def setcmykcolor
/pdfLastFill true def /pdfLastStroke false def } def
/K { 4 copy 4 array astore /pdfStroke exch def setcmykcolor
/pdfLastStroke true def /pdfLastFill false def } def
/ck { 6 copy 6 array astore /pdfFill exch def
findcmykcustomcolor exch setcustomcolor
/pdfLastFill true def /pdfLastStroke false def } def
/CK { 6 copy 6 array astore /pdfStroke exch def
findcmykcustomcolor exch setcustomcolor
/pdfLastStroke true def /pdfLastFill false def } def
% path segment operators
/m { moveto } def
/l { lineto } def
/c { curveto } def
/re { 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto
neg 0 rlineto closepath } def
/h { closepath } def
% path painting operators
/S { sCol stroke } def
/Sf { fCol stroke } def
/f { fCol fill } def
/f* { fCol eofill } def
% clipping operators
/W { clip newpath } def
/W* { eoclip newpath } def
% text state operators
/Tc { /pdfCharSpacing exch def } def
/Tf { dup /pdfFontSize exch def
dup pdfHorizScaling mul exch matrix scale
pdfTextMat matrix concatmatrix dup 4 0 put dup 5 0 put
exch findfont exch makefont setfont } def
/Tr { /pdfTextRender exch def } def
/Ts { /pdfTextRise exch def } def
/Tw { /pdfWordSpacing exch def } def
/Tz { /pdfHorizScaling exch def } def
% text positioning operators
/Td { pdfTextMat transform moveto } def
/Tm { /pdfTextMat exch def } def
% text string operators
/awcp { % awidthcharpath
exch {
1 string dup 0 3 index put 2 index charpath
3 index 3 index rmoveto
4 index eq { 5 index 5 index rmoveto } if
} forall
6 {pop} repeat
} def
/Tj { fCol
0 pdfTextRise pdfTextMat dtransform rmoveto
1 index stringwidth pdfTextMat idtransform pop
sub 1 index length dup 0 ne { div } { pop pop 0 } ifelse
pdfWordSpacing pdfHorizScaling mul 0 pdfTextMat dtransform 32
4 3 roll pdfCharSpacing pdfHorizScaling mul add 0
pdfTextMat dtransform
6 5 roll
currentpoint 8 2 roll
pdfTextRender 1 and 0 eq {
6 copy awidthshow
} if
pdfTextRender 3 and dup 1 eq exch 2 eq or {
8 6 roll moveto
currentfont /FontType get 3 eq { fCol } { sCol } ifelse
false awcp currentpoint stroke moveto
} {
8 {pop} repeat
} ifelse
0 pdfTextRise neg pdfTextMat dtransform rmoveto } def
/Tj16 { pdfTextRender 1 and 0 eq { fCol } { sCol } ifelse
0 pdfTextRise pdfTextMat dtransform rmoveto
2 index stringwidth pdfTextMat idtransform pop
sub exch div
pdfWordSpacing pdfHorizScaling mul 0 pdfTextMat dtransform 32
4 3 roll pdfCharSpacing pdfHorizScaling mul add 0
pdfTextMat dtransform
6 5 roll awidthshow
0 pdfTextRise neg pdfTextMat dtransform rmoveto } def
/Tj16V { pdfTextRender 1 and 0 eq { fCol } { sCol } ifelse
0 pdfTextRise pdfTextMat dtransform rmoveto
2 index stringwidth pdfTextMat idtransform exch pop
sub exch div
0 pdfWordSpacing pdfTextMat dtransform 32
4 3 roll pdfCharSpacing add 0 exch
pdfTextMat dtransform
6 5 roll awidthshow
0 pdfTextRise neg pdfTextMat dtransform rmoveto } def
/TJm { pdfFontSize 0.001 mul mul neg 0
pdfTextMat dtransform rmoveto } def
/TJmV { pdfFontSize 0.001 mul mul neg 0 exch
pdfTextMat dtransform rmoveto } def
% Level 1 image operators
/pdfIm1 {
/pdfImBuf1 4 index string def
{ currentfile pdfImBuf1 readhexstring pop } image
} def
/pdfIm1Sep {
/pdfImBuf1 4 index string def
/pdfImBuf2 4 index string def
/pdfImBuf3 4 index string def
/pdfImBuf4 4 index string def
{ currentfile pdfImBuf1 readhexstring pop }
{ currentfile pdfImBuf2 readhexstring pop }
{ currentfile pdfImBuf3 readhexstring pop }
{ currentfile pdfImBuf4 readhexstring pop }
true 4 colorimage
} def
/pdfImM1 {
/pdfImBuf1 4 index 7 add 8 idiv string def
{ currentfile pdfImBuf1 readhexstring pop } imagemask
} def
% Level 2 image operators
/pdfImBuf 100 string def
/pdfIm {
image
{ currentfile pdfImBuf readline
not { pop exit } if
(%-EOD-) eq { exit } if } loop
} def
/pdfImSep {
findcmykcustomcolor exch
dup /Width get /pdfImBuf1 exch string def
dup /Decode get aload pop 1 index sub /pdfImDecodeRange exch def
/pdfImDecodeLow exch def
begin Width Height BitsPerComponent ImageMatrix DataSource end
/pdfImData exch def
{ pdfImData pdfImBuf1 readstring pop
0 1 2 index length 1 sub {
1 index exch 2 copy get
pdfImDecodeRange mul 255 div pdfImDecodeLow add round cvi
255 exch sub put
} for }
6 5 roll customcolorimage
{ currentfile pdfImBuf readline
not { pop exit } if
(%-EOD-) eq { exit } if } loop
} def
/pdfImM {
fCol imagemask
{ currentfile pdfImBuf readline
not { pop exit } if
(%-EOD-) eq { exit } if } loop
} def
end
%%EndResource
%%EndProlog
%%BeginSetup
xpdf begin
%%EndSetup
pdfStartPage
[] 0 d
0 i
0 j
0 J
10 M
1 w
0 g
0 G
q
[0.1 0 0 0.1 0 0] cm
q
1 g
1 i
0 0 4600 7600 re
f
31.2 w
1 J
1 j
3189.48 3810.96 m
3189.48 4811.7 l
4056.06 5312.07 l
3189.48 5812.44 l
3189.48 6813.57 l
2322.9 6312.81 l
1456.32 6813.57 l
1456.32 5812.44 l
589.74 5312.07 l
1456.32 4811.7 l
1456.32 3810.96 l
2322.9 4311.33 l
3189.48 3810.96 l
S
3813.87 3181.89 m
4575.93 2093.4 l
S
3813.87 7442.25 m
3900.45 7565.88 l
S
3421.53 2955.3 m
3818.16 2105.1 l
S
4161.36 3473.22 m
4575.93 3058.65 l
S
4161.36 7150.92 m
4575.93 7565.88 l
S
2995.65 2800.47 m
3182.07 2105.1 l
S
4452.3 3820.71 m
4575.93 3734.13 l
S
4452.3 6803.43 m
4575.93 6890.01 l
S
2549.49 2721.69 m
2603.31 2105.1 l
S
193.5 3820.71 m
69.8699 3734.13 l
S
193.5 6803.43 m
69.8699 6890.01 l
S
2096.31 2721.69 m
2042.49 2105.1 l
S
484.44 3473.22 m
69.8699 3058.65 l
S
484.44 7150.92 m
69.8699 7565.88 l
S
1650.15 2800.47 m
1463.73 2105.1 l
S
831.93 3181.89 m
69.8699 2093.4 l
S
831.93 7442.25 m
745.35 7565.88 l
S
1224.27 2955.3 m
827.64 2105.1 l
S
1456.32 4211.1 m
3709.35 5512.14 l
S
3709.35 5112 m
1456.32 6413.04 l
S
1803.03 6613.11 m
1803.03 4011.03 l
S
1456.32 4611.63 m
3362.64 5712.6 l
S
3362.64 4911.93 m
1456.32 6012.51 l
S
2149.74 6413.04 m
2149.74 4211.1 l
S
1283.16 4911.93 m
3189.48 6012.51 l
S
3189.48 4611.63 m
1283.16 5712.6 l
S
2496.06 6413.04 m
2496.06 4211.1 l
S
936.45 5112 m
3189.48 6413.04 l
S
3189.48 4211.1 m
936.45 5512.14 l
S
2842.77 6613.11 m
2842.77 4011.03 l
S
2322.9 4311.33 m
3189.48 4811.7 l
S
3189.48 5812.44 m
2322.9 6312.81 l
S
1456.32 5812.44 m
1456.32 4811.7 l
S
1456.32 5812.44 m
2322.9 6312.81 l
S
2322.9 4311.33 m
1456.32 4811.7 l
S
3189.48 5812.44 m
3189.48 4811.7 l
S
69.8699 5130.72 m
98.7297 5136.18 l
186.48 5155.68 l
271.89 5178.69 l
354.96 5205.6 l
436.08 5236.41 l
514.08 5271.9 l
589.74 5312.07 l
S
3813.87 3181.89 m
3759.27 3258.33 l
3703.5 3332.82 l
3646.17 3404.58 l
3587.28 3473.61 l
3526.83 3539.52 l
3464.04 3601.92 l
3399.3 3660.81 l
3331.83 3715.41 l
3262.02 3765.33 l
3189.48 3810.96 l
S
3375.51 7565.88 m
3346.26 7497.63 l
3312.72 7412.22 l
3282.3 7326.81 l
3255.78 7241.01 l
3232.77 7155.6 l
3214.44 7070.19 l
3200.79 6984.39 l
3192.21 6898.98 l
3189.48 6813.57 l
S
3813.87 7442.25 m
3759.27 7365.81 l
3703.5 7291.32 l
3646.17 7219.56 l
3587.28 7150.53 l
3526.83 7084.62 l
3464.04 7022.22 l
3399.3 6963.33 l
3331.83 6908.73 l
3262.02 6858.81 l
3189.48 6813.57 l
S
69.8699 5493.42 m
98.7297 5488.35 l
186.48 5468.46 l
271.89 5445.45 l
354.96 5418.54 l
436.08 5387.73 l
514.08 5352.24 l
589.74 5312.07 l
S
3421.53 2955.3 m
3382.92 3041.1 l
3346.26 3126.51 l
3312.72 3211.92 l
3282.3 3297.72 l
3255.78 3383.13 l
3232.77 3468.54 l
3214.44 3554.34 l
3200.79 3639.75 l
3192.21 3725.16 l
3189.48 3810.96 l
S
69.8699 4717.32 m
166.59 4750.86 l
281.25 4794.15 l
394.35 4840.56 l
505.89 4889.31 l
615.48 4941.18 l
723.9 4995.78 l
830.76 5052.72 l
936.45 5112 l
S
4161.36 3473.22 m
4071.66 3560.19 l
3980.4 3644.04 l
3887.19 3724.77 l
3792.03 3802.38 l
3695.7 3877.26 l
3597.42 3949.41 l
3497.58 4018.44 l
3396.18 4085.13 l
3293.61 4149.48 l
3189.48 4211.1 l
S
2935.2 7565.88 m
2914.92 7460.58 l
2895.42 7339.68 l
2878.65 7218.39 l
2865.39 7097.49 l
2855.64 6976.59 l
2848.23 6855.3 l
2844.33 6734.4 l
2842.77 6613.11 l
S
4161.36 7150.92 m
4071.66 7063.95 l
3980.4 6980.1 l
3887.19 6899.37 l
3792.03 6821.76 l
3695.7 6746.88 l
3597.42 6674.73 l
3497.58 6605.7 l
3396.18 6539.01 l
3293.61 6474.66 l
3189.48 6413.04 l
S
69.8699 5906.82 m
166.59 5873.28 l
281.25 5829.99 l
394.35 5783.97 l
505.89 5734.83 l
615.48 5682.96 l
723.9 5628.36 l
830.76 5571.42 l
936.45 5512.14 l
S
2995.65 2800.47 m
2965.23 2921.37 l
2938.32 3042.66 l
2914.92 3163.56 l
2895.42 3284.46 l
2878.65 3405.75 l
2865.39 3526.65 l
2855.25 3647.94 l
2848.23 3768.84 l
2844.33 3889.74 l
2842.77 4011.03 l
S
69.8699 4262.19 m
101.85 4277.01 l
235.62 4342.92 l
369 4410 l
501.21 4478.64 l
633.03 4548.45 l
764.07 4619.43 l
894.33 4691.19 l
1024.2 4764.12 l
1154.07 4837.44 l
1283.16 4911.93 l
S
4452.3 3820.71 m
4329.45 3905.34 l
4205.82 3988.8 l
4081.02 4070.7 l
3955.44 4151.04 l
3829.08 4230.21 l
3702.33 4308.21 l
3574.8 4385.04 l
3446.88 4461.48 l
3318.18 4536.75 l
3189.48 4611.63 l
S
2524.92 7565.88 m
2518.68 7455.51 l
2512.05 7306.92 l
2506.59 7157.94 l
2502.3 7008.96 l
2499.57 6859.98 l
2497.62 6711 l
2496.45 6562.02 l
2496.06 6413.04 l
S
4452.3 6803.43 m
4329.45 6718.8 l
4205.82 6635.34 l
4081.02 6553.44 l
3955.44 6473.1 l
3829.08 6393.93 l
3702.33 6315.93 l
3574.8 6239.1 l
3446.88 6162.66 l
3318.18 6087.39 l
3189.48 6012.51 l
S
69.8699 6362.34 m
101.85 6347.13 l
235.62 6281.22 l
369 6214.14 l
501.21 6145.5 l
633.03 6075.69 l
764.07 6005.1 l
894.33 5932.95 l
1024.2 5860.02 l
1154.07 5786.7 l
1283.16 5712.6 l
S
2549.49 2721.69 m
2537.4 2870.67 l
2527.26 3019.65 l
2518.68 3168.63 l
2512.05 3317.61 l
2506.59 3466.2 l
2502.3 3615.18 l
2499.57 3764.16 l
2497.62 3913.14 l
2496.45 4062.12 l
2496.06 4211.1 l
S
193.5 3820.71 m
316.35 3905.34 l
439.98 3988.8 l
564.78 4070.7 l
690.36 4151.04 l
816.72 4230.21 l
943.47 4308.21 l
1071 4385.04 l
1198.92 4461.48 l
1327.62 4536.75 l
1456.32 4611.63 l
S
4575.93 4262.19 m
4543.95 4277.01 l
4410.18 4342.92 l
4276.8 4410 l
4144.59 4478.64 l
4012.77 4548.45 l
3881.73 4619.43 l
3751.47 4691.19 l
3621.6 4764.12 l
3491.73 4837.44 l
3362.64 4911.93 l
S
2120.88 7565.88 m
2127.12 7455.51 l
2133.75 7306.92 l
2139.21 7157.94 l
2143.5 7008.96 l
2146.23 6859.98 l
2148.18 6711 l
2149.35 6562.02 l
2149.74 6413.04 l
S
4575.93 6362.34 m
4543.95 6347.13 l
4410.18 6281.22 l
4276.8 6214.14 l
4144.59 6145.5 l
4012.77 6075.69 l
3881.73 6005.1 l
3751.47 5932.95 l
3621.6 5860.02 l
3491.73 5786.7 l
3362.64 5712.6 l
S
193.5 6803.43 m
316.35 6718.8 l
439.98 6635.34 l
564.78 6553.44 l
690.36 6473.1 l
816.72 6393.93 l
943.47 6315.93 l
1071 6239.1 l
1198.92 6162.66 l
1327.62 6087.39 l
1456.32 6012.51 l
S
2096.31 2721.69 m
2108.4 2870.67 l
2118.54 3019.65 l
2127.12 3168.63 l
2133.75 3317.61 l
2139.21 3466.2 l
2143.5 3615.18 l
2146.23 3764.16 l
2148.18 3913.14 l
2149.35 4062.12 l
2149.74 4211.1 l
S
484.44 3473.22 m
574.14 3560.19 l
665.4 3644.04 l
758.61 3724.77 l
853.77 3802.38 l
950.1 3877.26 l
1048.38 3949.41 l
1148.22 4018.44 l
1249.62 4085.13 l
1352.19 4149.48 l
1456.32 4211.1 l
S
4575.93 4717.32 m
4479.21 4750.86 l
4364.55 4794.15 l
4251.45 4840.56 l
4139.91 4889.31 l
4030.32 4941.18 l
3921.9 4995.78 l
3815.04 5052.72 l
3709.35 5112 l
S
1710.6 7565.88 m
1730.88 7460.58 l
1750.38 7339.68 l
1767.15 7218.39 l
1780.41 7097.49 l
1790.16 6976.59 l
1797.57 6855.3 l
1801.47 6734.4 l
1803.03 6613.11 l
S
4575.93 5906.82 m
4479.21 5873.28 l
4364.55 5829.99 l
4251.45 5783.97 l
4139.91 5734.83 l
4030.32 5682.96 l
3921.9 5628.36 l
3815.04 5571.42 l
3709.35 5512.14 l
S
484.44 7150.92 m
574.14 7063.95 l
665.4 6980.1 l
758.61 6899.37 l
853.77 6821.76 l
950.1 6746.88 l
1048.38 6674.73 l
1148.22 6605.7 l
1249.62 6539.01 l
1352.19 6474.66 l
1456.32 6413.04 l
S
1650.15 2800.47 m
1680.57 2921.37 l
1707.48 3042.66 l
1730.88 3163.56 l
1750.38 3284.46 l
1767.15 3405.75 l
1780.41 3526.65 l
1790.16 3647.94 l
1797.57 3768.84 l
1801.47 3889.74 l
1803.03 4011.03 l
S
831.93 3181.89 m
886.53 3258.33 l
942.3 3332.82 l
999.63 3404.58 l
1058.52 3473.61 l
1118.97 3539.52 l
1181.76 3601.92 l
1246.5 3660.81 l
1313.97 3715.41 l
1383.78 3765.33 l
1456.32 3810.96 l
S
4575.93 5130.72 m
4547.07 5136.18 l
4459.32 5155.68 l
4373.91 5178.69 l
4290.84 5205.6 l
4209.72 5236.41 l
4131.72 5271.9 l
4056.06 5312.07 l
S
1270.29 7565.88 m
1299.54 7497.63 l
1333.08 7412.22 l
1363.5 7326.81 l
1390.02 7241.01 l
1413.03 7155.6 l
1431.36 7070.19 l
1445.01 6984.39 l
1453.59 6898.98 l
1456.32 6813.57 l
S
4575.93 5493.42 m
4547.07 5488.35 l
4459.32 5468.46 l
4373.91 5445.45 l
4290.84 5418.54 l
4209.72 5387.73 l
4131.72 5352.24 l
4056.06 5312.07 l
S
831.93 7442.25 m
886.53 7365.81 l
942.3 7291.32 l
999.63 7219.56 l
1058.52 7150.53 l
1118.97 7084.62 l
1181.76 7022.22 l
1246.5 6963.33 l
1313.97 6908.73 l
1383.78 6858.81 l
1456.32 6813.57 l
S
1224.27 2955.3 m
1262.88 3041.1 l
1299.54 3126.51 l
1333.08 3211.92 l
1363.5 3297.72 l
1390.02 3383.13 l
1413.03 3468.54 l
1431.36 3554.34 l
1445.01 3639.75 l
1453.59 3725.16 l
1456.32 3810.96 l
S
2322.9 6544.08 m
2198.1 6530.04 l
2081.49 6491.43 l
1971.51 6433.32 l
1861.14 6369.75 l
1749.6 6305.4 l
1638.06 6241.05 l
1527.69 6177.09 l
1422.39 6110.79 l
1330.74 6028.89 l
1256.25 5927.88 l
S
1256.25 5927.88 m
1205.94 5813.22 l
1180.98 5692.71 l
1176.3 5568.3 l
1176.3 5055.84 l
1180.98 4931.43 l
1205.94 4810.92 l
1256.25 4696.26 l
S
1256.25 4696.26 m
1330.74 4595.25 l
1422.39 4513.35 l
1527.69 4447.05 l
1638.06 4383.09 l
1749.6 4318.74 l
1861.14 4254.39 l
1971.51 4190.82 l
2081.49 4132.71 l
2198.1 4094.1 l
2322.9 4080.45 l
S
2322.9 4080.45 m
2447.7 4094.1 l
2564.31 4132.71 l
2674.29 4190.82 l
2784.66 4254.39 l
2896.2 4318.74 l
3007.74 4383.09 l
3118.11 4447.05 l
3223.41 4513.35 l
3315.06 4595.25 l
3389.55 4696.26 l
S
3389.55 4696.26 m
3439.86 4810.92 l
3464.82 4931.43 l
3469.5 5055.84 l
3469.5 5568.3 l
3464.82 5692.71 l
3439.86 5813.22 l
3389.55 5927.88 l
S
3389.55 5927.88 m
3315.06 6028.89 l
3223.41 6110.79 l
3118.11 6177.09 l
3007.74 6241.05 l
2896.2 6305.4 l
2784.66 6369.75 l
2674.29 6433.32 l
2564.31 6491.43 l
2447.7 6530.04 l
2322.9 6544.08 l
S
2322.9 6843.99 m
2164.17 6833.07 l
2009.73 6801.48 l
1859.97 6751.17 l
1715.67 6684.48 l
1576.83 6604.14 l
1438.38 6524.19 l
1308.51 6432.93 l
1189.95 6328.02 l
1085.04 6210.24 l
996.51 6078.03 l
S
996.51 6078.03 m
926.7 5935.29 l
876.78 5785.53 l
845.19 5630.7 l
831.15 5472.36 l
831.15 5151.78 l
845.19 4993.44 l
876.78 4838.61 l
926.7 4688.85 l
996.51 4546.11 l
S
996.51 4546.11 m
1085.04 4414.29 l
1189.95 4296.12 l
1308.51 4191.6 l
1438.38 4099.95 l
1576.83 4020 l
1715.67 3939.66 l
1859.97 3872.97 l
2009.73 3822.66 l
2164.17 3791.07 l
2322.9 3780.15 l
S
2322.9 3780.15 m
2481.63 3791.07 l
2636.07 3822.66 l
2785.83 3872.97 l
2930.13 3939.66 l
3068.97 4020 l
3207.42 4099.95 l
3337.29 4191.6 l
3455.85 4296.12 l
3560.76 4414.29 l
3649.29 4546.11 l
S
3649.29 4546.11 m
3719.1 4688.85 l
3769.02 4838.61 l
3800.61 4993.44 l
3814.65 5151.78 l
3814.65 5472.36 l
3800.61 5630.7 l
3769.02 5785.53 l
3719.1 5935.29 l
3649.29 6078.03 l
S
3649.29 6078.03 m
3560.76 6210.24 l
3455.85 6328.02 l
3337.29 6432.93 l
3207.42 6524.19 l
3068.97 6604.14 l
2930.13 6684.48 l
2785.83 6751.17 l
2636.07 6801.48 l
2481.63 6833.07 l
2322.9 6843.99 l
S
2561.19 7198.5 m
2795.58 7154.04 l
3022.56 7079.94 l
3238.62 6978.54 l
3440.25 6850.62 l
3624.33 6698.13 l
3787.74 6524.19 l
3927.75 6331.14 l
4042.8 6121.71 l
4130.94 5899.8 l
4190.22 5668.53 l
4220.25 5431.8 l
4220.25 5193.12 l
4190.22 4956 l
4130.94 4724.73 l
4043.19 4502.82 l
3928.14 4293.39 l
3788.13 4100.34 l
3624.72 3926.4 l
3440.64 3773.91 l
3239.01 3645.99 l
3023.34 3544.2 l
2796.36 3470.49 l
2561.58 3425.64 l
2323.29 3410.43 l
2085.39 3425.64 l
1850.61 3470.1 l
1623.63 3543.81 l
1407.57 3645.6 l
1205.94 3773.52 l
1021.86 3925.62 l
858.45 4099.56 l
718.05 4292.61 l
603 4501.65 l
515.25 4723.56 l
455.58 4954.83 l
425.55 5191.95 l
425.55 5430.63 l
455.19 5667.36 l
514.47 5899.02 l
602.22 6120.93 l
717.27 6330.36 l
857.67 6523.41 l
1020.69 6697.74 l
1204.77 6849.84 l
1406.01 6977.76 l
1622.07 7079.55 l
1849.05 7153.65 l
2083.44 7198.5 l
2321.73 7213.71 l
2561.19 7198.5 l
S
69.8699 1844.97 m
1760.13 1844.97 l
958.29 449.55 l
1760.13 449.55 l
1760.13 30.6899 l
69.8699 30.6899 l
871.32 1426.5 l
69.8699 1426.5 l
69.8699 1844.97 l
S
2019.87 30.6899 606.45 1814.28 re
S
4238.19 30.6899 m
4274.85 35.7598 l
4309.17 49.7998 l
4341.54 71.2498 l
4374.3 94.6499 l
4407.06 118.44 l
4439.82 142.23 l
4472.58 165.63 l
4503.39 190.2 l
4530.3 220.23 l
4567.35 299.79 l
4574.37 343.86 l
4575.93 389.88 l
4575.93 578.64 l
4574.37 623.88 l
4567.35 668.73 l
4530.3 748.29 l
4503.39 778.32 l
4472.58 802.89 l
4439.82 826.29 l
4407.06 850.08 l
4374.3 873.48 l
4341.54 896.88 l
4309.17 918.33 l
4274.85 932.76 l
4238.19 937.83 l
4274.85 942.9 l
4309.17 956.94 l
4341.54 978.39 l
4374.3 1001.79 l
4407.06 1025.58 l
4439.82 1049.37 l
4472.58 1072.77 l
4503.39 1097.34 l
4530.3 1127.37 l
4567.35 1206.93 l
4574.37 1251 l
4575.93 1297.02 l
4575.93 1485.78 l
4574.37 1531.02 l
4567.35 1575.87 l
4530.3 1655.43 l
4503.39 1685.46 l
4472.58 1710.03 l
4439.82 1733.43 l
4407.06 1757.22 l
4374.3 1780.62 l
4341.54 1804.02 l
4309.17 1825.47 l
4274.85 1839.9 l
4238.19 1844.97 l
2886.06 1844.97 l
2886.06 30.6899 l
4238.19 30.6899 l
S
3840 1496.31 m
3492.9 1496.31 l
3492.9 1112.55 l
3840 1112.55 l
3855.6 1114.5 l
3870.03 1120.74 l
3883.68 1129.71 l
3897.33 1139.46 l
3911.37 1149.6 l
3925.02 1159.74 l
3939.06 1169.49 l
3951.93 1180.02 l
3963.63 1192.5 l
3979.23 1226.43 l
3981.96 1244.76 l
3982.74 1264.26 l
3982.74 1344.21 l
3981.96 1363.32 l
3979.23 1382.04 l
3963.63 1415.97 l
3951.93 1428.45 l
3939.06 1438.59 l
3925.02 1448.73 l
3911.37 1458.87 l
3897.33 1468.62 l
3883.68 1478.76 l
3870.03 1487.73 l
3855.6 1493.97 l
3840 1496.31 l
S
3840 763.11 m
3492.9 763.11 l
3492.9 379.74 l
3840 379.74 l
3855.6 381.69 l
3870.03 387.93 l
3883.68 396.9 l
3897.33 406.65 l
3911.37 416.79 l
3925.02 426.93 l
3939.06 436.68 l
3951.93 447.21 l
3963.63 459.69 l
3979.23 493.62 l
3981.96 511.95 l
3982.74 531.45 l
3982.74 611.4 l
3981.96 630.51 l
3979.23 649.23 l
3963.63 683.16 l
3951.93 695.64 l
3939.06 705.78 l
3925.02 715.92 l
3911.37 726.06 l
3897.33 735.81 l
3883.68 745.95 l
3870.03 754.92 l
3855.6 761.16 l
3840 763.11 l
S
Q
Q
showpage
%%PageTrailer
pdfEndPage
%%Trailer
end
%%DocumentSuppliedResources:
%%EOF
%%EndDocument
@endspecial 3177 431 993 3 v 3834 501 a FS(T)-7 b(akustr)o(a\337e)18
b(7)3561 571 y(D-14195)g(Ber)q(lin-Dahlem)3930 640 y(Ger)q(man)o(y)-128
563 y FR(K)-6 b(onr)o(ad-Zuse-Zentr)r(um)-128 721 y(f)16
b(\250)-63 b(ur)40 b(Inf)l(or)t(mationstechnik)j(Ber)r(lin)276
1786 y FP(N)r FQ(A)6 b(D)g(I)g(N)g(E)35 b FP(A)6 b FQ(B)g(B)g(O)g(U)g
(D)237 b FP(M)6 b FQ(A)g(RT)g(I)g(N)34 b FP(G)6 b FQ(R)2003
1776 y FP(\250)1989 1786 y FQ(O)g(T)g(S)g(C)g(H)g(E)g(L)236
b FP(T)6 b FQ(H)g(O)g(R)g(S)g(T)g(E)g(N)32 b FP(K)s FQ(O)6
b(C)g(H)288 2299 y FO(Mathematical)42 b(Methods)f(f)l(or)h(Ph)n(ysical)
f(Lay)l(out)h(of)578 2498 y(Printed)g(Cir)m(cuit)g(Boards:)51
b(An)42 b(Ov)n(er)n(view)-128 5532 y FS(W)n(or)q(k)17
b(suppor)r(ted)i(the)e(DFG)f(Research)i(Center)f FN(Mathematics)i(f)n
(or)e(k)o(e)o(y)f(technologies:)23 b(Modelling,)18 b(sim)o(ulation,)g
(and)f(optimization)h(of)f(real-w)o(or)q(ld)i(processes)g
FS(\()q FL(M)r FM(A)m(T)r(H)r(E)r(O)r(N)q FS(\))p -128
5666 4297 5 v -128 5841 a FK(ZIB-Repor)s(t)24 b(06-29)f(\(Dec)g(2006\))
p eop end
%%Page: 1 2
TeXDict begin 1 1 bop 1773 390 a FJ(Abstract)470 527
y FI(This)18 b(article)g(surv)o(e)o(ys)h(mathematical)g(models)g(and)h
(methods)f(used)h(for)e(the)h(physical)g(layout)g(of)g(printed)g
(circuit)358 619 y(boards,)26 b(in)f(particular)f(component)j
(placement)e(and)g(wire)f(routing.)41 b(The)25 b(main)f(concepts)i(are)
f(brie\003y)f(described)358 710 y(together)19 b(with)g(rele)n(v)n(ant)g
(references.)358 892 y FJ(Mathematics)f(Subject)g(Classi\002cation)g
(\(2000\):)24 b(90C90)c(90-02)g(68R05)150 1173 y FH(1)119
b(Intr)n(oduction)150 1358 y FG(Printed)18 b(circuit)g(boards)g(\()r
FF(P)t(C)t(B)r FG(s\),)i(see)f(Figures)f(2)h(and)f(3)h(for)f(an)h(e)o
(xample,)e(are)i(ubiquituous.)24 b FF(P)t(C)t(B)r FG(s)c(are)f(the)g
(backbones)150 1458 y(of)28 b(almost)g(e)n(v)o(ery)e(electronic)h(de)n
(vice,)i(and)e(therefore,)j FF(P)t(C)t(B)h FG(design)d(and)f(manuf)o
(acturing)e(are)j(e)o(xtremly)e(important)150 1557 y(components)c(of)i
(man)o(y)f(industrial)g(production)f(processes.)37 b(Before)23
b(a)i(PCB)h(can)e(serv)o(e)g(its)h(task)f(it)h(e)n(v)n(olv)o(es)f
(through)150 1657 y(three)29 b(main)f(steps.)53 b(The)29
b(\002rst)g(one)g(is)h(the)f(logic)g(design,)h(which)f(de\002nes)g(the)
g(components)e(to)i(be)g(used)g(and)g(their)150 1757
y(interconnections.)34 b(The)23 b(second)h(step)g(is)h(the)f(physical)f
(layout)g(of)h(the)i FF(P)t(C)t(B)h FG(where)d(the)g(geometric)e
(positions)i(of)g(the)150 1856 y(components)e(and)i(their)g(physical)f
(connections)g(are)h(decided.)36 b(The)24 b(\002nal)h(step)g(is)g(the)f
(industrial)g(production)d(of)k(the)152 1956 y FF(P)t(C)t(B)r
FG(.)275 2056 y(In)e(this)h(article)f(we)h(gi)n(v)o(e)f(an)g(o)o(v)o
(ervie)n(w)f(on)h(the)g(mathematical)f(models)h(and)g(methods)g(used)g
(in)g(the)h(second)e(step,)150 2155 y(the)f(physical)g(design)f(of)h
(the)h(board.)27 b(The)21 b(tw)o(o)g(major)g(issues)h(here)f(are)g
FE(component)e(placement)j FG(and)f FE(wir)m(e)h(r)l(outing)f
FG(as)150 2255 y(depicted)e(in)h(Figure)g(1.)558 2421
y
tx@Dict begin tx@NodeDict begin {3.8 32.25275 98.64882 49.3244 -14.22638
} false /N@A 16 {InitRnode } NewNode end end
558 2421 a 32 w @beginspecial @setspecial
tx@Dict begin STP newpath 0.8 SLW 0. setgray 0. true 3.8 neg 32.25275
neg 94.84882 3.8 .5 Frame gsave 0.8 SLW 0. setgray 0 setlinecap stroke
grestore end
@endspecial
864 2512 a FD(Step)k(1)732 2603 y FJ(Logical)19 b(Design)1503
2421 y
tx@Dict begin tx@NodeDict begin {3.8 32.25275 98.64882 49.3244 -14.22638
} false /N@B 16 {InitRnode } NewNode end end
1503 2421 a 32 w @beginspecial @setspecial
tx@Dict begin STP newpath 0.8 SLW 0. setgray 0. true 3.8 neg 32.25275
neg 94.84882 3.8 .5 Frame gsave 0.8 SLW 0. setgray 0 setlinecap stroke
grestore end
@endspecial
1808 2512 a FD(Step)25 b(2)1658 2603 y FJ(Ph)o(ysical)18
b(Lay)n(out)2448 2421 y
tx@Dict begin tx@NodeDict begin {3.8 32.25275 98.64882 49.3244 -14.22638
} false /N@C 16 {InitRnode } NewNode end end
2448 2421 a 31 w @beginspecial
@setspecial
tx@Dict begin STP newpath 0.8 SLW 0. setgray 0. true 3.8 neg 32.25275
neg 94.84882 3.8 .5 Frame gsave 0.8 SLW 0. setgray 0 setlinecap stroke
grestore end
@endspecial 2753 2519 a FD(Step)25 b(3)2595
2610 y FJ(PCB)19 b(Pr)o(oduction)1468 2799 y
tx@Dict begin tx@NodeDict begin {3.8 26.5622 107.18465 53.59232 -11.3811
} false /N@D 16 {InitRnode } NewNode end end
1468 2799
a 31 w @beginspecial @setspecial
tx@Dict begin STP newpath 0.8 SLW 0. setgray 0. true 3.8 neg 26.5622
neg 103.38464 3.8 .5 Frame gsave 0.8 SLW 0. setgray 0 setlinecap stroke
grestore end
@endspecial 1556 2866
a FD(Determine)25 b(fo)n(rm)i(facto)n(r)1576 2958 y(and)e(numb)r(er)g
(of)h(la)n(y)n(ers)2412 3153 y
tx@Dict begin tx@NodeDict begin {3.8 26.5622 78.73189 39.36594 -11.3811
} false /N@H 16 {InitRnode } NewNode end end
2412 3153 a 32 w @beginspecial
@setspecial
tx@Dict begin STP newpath 0.8 SLW 0. setgray 0. true 3.8 neg 26.5622
neg 74.93188 3.8 .5 Frame gsave 0.8 SLW 0. setgray 0 setlinecap stroke
grestore end
@endspecial 2496 3266 a FD(Pin)f(assignment)1468
3153 y
tx@Dict begin tx@NodeDict begin {3.8 26.5622 107.18465 53.59232 -11.3811
} false /N@E 16 {InitRnode } NewNode end end
1468 3153 a 31 w @beginspecial @setspecial
tx@Dict begin STP newpath 0.8 SLW 0. setgray 0. true 3.8 neg 26.5622
neg 103.38464 3.8 .5 Frame gsave 0.8 SLW 0. setgray 0 setlinecap stroke
grestore end
@endspecial
1552 3266 a FD(Comp)r(onent)g(placement)1468 3555 y
tx@Dict begin tx@NodeDict begin {3.8 26.5622 107.18465 53.59232 -11.3811
} false /N@F 16 {InitRnode } NewNode end end
1468
3555 a 31 w @beginspecial @setspecial
tx@Dict begin STP newpath 0.8 SLW 0. setgray 0. true 3.8 neg 26.5622
neg 103.38464 3.8 .5 Frame gsave 0.8 SLW 0. setgray 0 setlinecap stroke
grestore end
@endspecial 1710
3668 a FD(Wire)h(routing)2412 3555 y
tx@Dict begin tx@NodeDict begin {3.8 26.5622 78.73189 39.36594 -11.3811
} false /N@G 16 {InitRnode } NewNode end end
2412 3555 a 32 w
@beginspecial @setspecial
tx@Dict begin STP newpath 0.8 SLW 0. setgray 0. true 3.8 neg 26.5622
neg 74.93188 3.8 .5 Frame gsave 0.8 SLW 0. setgray 0 setlinecap stroke
grestore end
@endspecial 2464 3630 a FD(La)n(y)n(er)g
(assignment)2468 3721 y(Via)g(minimization)731 2303 y
tx@Dict begin gsave STV newpath 0.8 SLW 0. setgray /ArrowA { moveto
} def /ArrowB { BeginArrow 1. 1. scale false 0.4 1.4 1.5 2. Arrow
EndArrow } def /NCLW CLW def tx@NodeDict begin 0.0 0.0 neg 0.0 0.0
0 0 /N@A /N@B InitNC { NCLine } if end gsave 0.8 SLW 0. setgray 0
setlinecap stroke grestore grestore end
731 2303 a 731 2303 a
tx@Dict begin gsave STV newpath 0.8 SLW 0. setgray /ArrowA { moveto
} def /ArrowB { BeginArrow 1. 1. scale false 0.4 1.4 1.5 2. Arrow
EndArrow } def /NCLW CLW def tx@NodeDict begin 0.0 0.0 neg 0.0 0.0
0 0 /N@B /N@C InitNC { NCLine } if end gsave 0.8 SLW 0. setgray 0
setlinecap stroke grestore grestore end
731 2303 a 731 2303 a
tx@Dict begin gsave STV newpath 0.8 SLW 0. setgray /ArrowA { moveto
} def /ArrowB { } def /NCLW CLW def tx@NodeDict begin 0.0 0.0 neg 0.0
0.0 0 0 /N@B /N@D InitNC { NCLine } if end gsave 0.8 SLW 0. setgray
0 setlinecap stroke grestore grestore end
731 2303
a 731 2303 a
tx@Dict begin gsave STV newpath 0.8 SLW 0. setgray /ArrowA { moveto
} def /ArrowB { BeginArrow 1. 1. scale false 0.4 1.4 1.5 2. Arrow
EndArrow } def /NCLW CLW def tx@NodeDict begin 0.0 0.0 neg 0.0 0.0
0 0 /N@D /N@E InitNC { NCLine } if end gsave 0.8 SLW 0. setgray 0
setlinecap stroke grestore grestore end
731 2303 a 731 2303 a
tx@Dict begin gsave STV newpath 0.8 SLW 0. setgray /ArrowA { moveto
} def /ArrowB { BeginArrow 1. 1. scale false 0.4 1.4 1.5 2. Arrow
EndArrow } def /NCLW CLW def tx@NodeDict begin 0.0 0.0 neg 0.0 0.0
0 0 /N@E /N@F InitNC { NCLine } if end gsave 0.8 SLW 0. setgray 0
setlinecap stroke grestore grestore end
731 2303 a 731 2303
a
tx@Dict begin gsave STV newpath 0.8 SLW 0. setgray /ArrowA { moveto
} def /ArrowB { BeginArrow 1. 1. scale false 0.4 1.4 1.5 2. Arrow
EndArrow } def /NCLW CLW def tx@NodeDict begin 0.0 0.0 neg 0.0 0.0
0 0 /N@F /N@G InitNC { NCLine } if end gsave 0.8 SLW 0. setgray 0
setlinecap stroke grestore grestore end
731 2303 a 731 2303 a
tx@Dict begin gsave STV newpath 0.8 SLW 0. setgray /ArrowA { moveto
} def /ArrowB { BeginArrow 1. 1. scale false 0.4 1.4 1.5 2. Arrow
EndArrow } def /NCLW CLW def tx@NodeDict begin 0.0 0.0 neg 0.0 0.0
0 0 /N@F /N@D InitNC { tx@Dict begin /Lineto /lineto load def false
pop end /AngleA 180. def /AngleB 180. def /ArmA 10.0 def /ArmB 10.0
def /ArmTypeA 0 def /ArmTypeB 0 def NCAngles } if end gsave 0.8 SLW
0. setgray 0 setlinecap stroke grestore grestore end
731 2303 a 731 2303 a
tx@Dict begin gsave STV newpath 0.8 SLW 0. setgray /ArrowA { moveto
} def /ArrowB { BeginArrow 1. 1. scale false 0.4 1.4 1.5 2. Arrow
EndArrow } def /NCLW CLW def tx@NodeDict begin 0.0 0.0 neg 0.0 0.0
0 0 /N@E /N@H InitNC { NCLine } if end gsave 0.8 SLW 0. setgray 0
setlinecap stroke grestore grestore end
731 2303
a 731 2303 a
tx@Dict begin gsave STV newpath 0.8 SLW 0. setgray /ArrowA { moveto
} def /ArrowB { BeginArrow 1. 1. scale false 0.4 1.4 1.5 2. Arrow
EndArrow } def /NCLW CLW def tx@NodeDict begin 0.0 0.0 neg 0.0 0.0
0 0 /N@H /N@F InitNC { tx@Dict begin /Lineto /lineto load def false
pop end /AngleA 270. def /AngleB 90. def /ArmA 10.0 def /ArmB 10.0
def /ArmTypeA 0 def /ArmTypeB 0 def NCAngles } if end gsave 0.8 SLW
0. setgray 0 setlinecap stroke grestore grestore end
731 2303 a 731 2303 a
tx@Dict begin gsave STV newpath 0.8 SLW 0. setgray /ArrowA { moveto
} def /ArrowB { BeginArrow 1. 1. scale false 0.4 1.4 1.5 2. Arrow
EndArrow } def /NCLW CLW def tx@NodeDict begin 0.0 0.0 neg 0.0 0.0
0 0 /N@G /N@D InitNC { tx@Dict begin /Lineto /lineto load def false
pop end /AngleA 0. def /AngleB 0. def /ArmA 10.0 def /ArmB 10.0 def
/ArmTypeA 0 def /ArmTypeB 0 def NCAngles } if end gsave 0.8 SLW 0.
setgray 0 setlinecap stroke grestore grestore end
731 2303 a 1405 3950
a FG(Figure)19 b(1:)26 b(T)-7 b(asks)20 b(in)h(PCB)g(design)275
4232 y(A)i(digital)g(logic)g(circuit)g(consists)g(of)g(a)h(collection)e
(of)g(interconnected)f(parts.)34 b(The)22 b(parts)h(come)g(in)g(tw)o(o)
h(v)n(arities;)150 4332 y(acti)n(v)o(e)c(parts,)g(i.)13
b(e.,)20 b(inte)o(grated)f(circuits)h(\()r FF(I)t(C)r
FG(\))h(and)e(passi)n(v)o(e)h(parts,)g(such)g(as)h(resistors,)f(and)g
(capacitors)f(\(Figure)g(2\).)275 4432 y(Due)30 b(to)i(continuously)c
(shrinking)i(feature)g(sizes,)k(the)d(functionality)e(of)k
FF(I)t(C)r FG(s)g(per)d(area)h(unit)g(has)g(signi\002cantly)150
4531 y(increased)21 b(o)o(v)o(er)g(the)h(years.)30 b(This)22
b(has)g(led)g(to)h(a)f(steady)g(increase)f(of)h(the)g(ratio)g(between)f
(passi)n(v)o(e)h(and)f(acti)n(v)o(e)h(parts)g(of)150
4631 y(a)k FF(P)t(C)t(B)r FG(.)37 b(Ratios)24 b(of)f(20)h(or)f(30)g
(passi)n(v)o(e)g(to)h(one)f(acti)n(v)o(e)g(part)h(are)f(not)g
(uncommon.)33 b(Each)23 b(part)g(can)h(be)f(represented)f(by)150
4731 y(the)j(shape)g(and)f(area)h(occupied)e(on)i(the)g(board)f
(together)f(with)i(the)g(locations)g(of)g(one)f(or)h(more)f
FE(pins)h FG(or)g FE(pads)f FG(where)150 4830 y(the)i(electrical)g
(connections)e(are)i(made)f(\(Figure)g(3\).)42 b(One)28
b FF(I)t(C)h FG(may)d(ha)n(v)o(e)f(up)g(to)i(se)n(v)o(eral)e(hundred)e
(pins.)43 b(T)-7 b(o)26 b(ha)n(v)o(e)f(a)150 4930 y(single)d(term)g(we)
g(will)h(call)f(the)g(pins)g(and)f(pads)h(of)g(the)g(components)d
FE(terminals)p FG(.)31 b(A)22 b(set)h(of)f(terminals)f(that)h(ha)n(v)o
(e)g(to)g(be)150 5029 y(electrically)g(connected)e(is)j(called)f(a)h
FE(net)p FG(.)31 b(In)24 b FF(P)t(C)t(B)i FG(and)21 b(chip)h(design)g
(it)g(is)i(implicitly)d(understood)f(that)i(the)h(electrical)150
5129 y(connection)d(has)j(to)f(be)g(realized)g(by)f(a)i(tree)f(\(on)g
(a)g(routing)f(graph)g(to)h(be)h(described)d(later\).)31
b(This)23 b(standard)e(de\002nition)150 5229 y(of)i(a)h(net)f(just)h
(speci\002es)g(the)f(nodes)g(that)g(ha)n(v)o(e)g(to)g(be)h(connected)d
(and)i(lea)n(v)o(es)g(open)g(ho)n(w)f(the)i(actual)f(wiring)g(is)h
(done.)150 5328 y(T)-7 b(w)o(o)20 b(dif)n(ferent)f(nets)h(\(i.)14
b(e.,)20 b(their)g(physical)f(realization\))g(must)h(be)g(insulated)g
(from)f(each)h(other)-5 b(.)275 5428 y(A)27 b(circuit)g(board)f(is)j(b)
n(uilt)e(as)h(a)g(stack)g(of)f(layer)g(pairs.)46 b(Each)27
b(pair)g(starts)h(as)g(an)g(insulating)e(sheet)i(with)f(copper)150
5528 y(deposited)18 b(on)h(one)f(or)h(both)f(sides.)25
b(The)19 b(copper)e(sides)j(of)f(the)g(sheet)g(are)g(\002rst)h(etched)e
(with)i(dif)n(ferent)d(wiring)h(patterns.)150 5627 y(Then)k(the)h
(sheets)h(are)f(stack)o(ed)f(into)h(a)h(sandwich)e(separated)g(by)g
(insulating)g(material.)33 b(Small)24 b(holes)f(are)f(drilled)h(into)
1892 5919 y(1)p eop end
%%Page: 2 3
TeXDict begin 2 2 bop 150 390 a FG(the)24 b(board.)36
b(Finally)-5 b(,)24 b(the)h(holes)f(are)g(plated)g(with)g(metal,)h(so)g
(that)f(electrical)g(contact)g(is)h(made)e(with)i(each)f(layer)f(that)
150 490 y(has)i(copper)e(left)h(at)h(hole)f(locations.)37
b(Hence,)25 b(a)g(hole)f(can)g(form)g(a)h(conducti)n(v)o(e)d(path)i
(between)f(tw)o(o)i(or)f(more)g(layers.)150 589 y(The)c(standard)f
(term)h(used)g(in)i FF(P)t(C)t(B)i FG(and)19 b(chip)h(layout)f(for)h(a)
h(hole)e(is)i FE(via)p FG(.)275 689 y(P)o(arts)27 b(can)f(be)h
(attached)f(to)h(boards)e(in)i(tw)o(o)g(w)o(ays.)45 b(The)27
b(classical)g(method)f(is)h(to)g(solder)g(the)f(pins)h(of)g(the)f(com-)
150 789 y(ponents)e(into)h(a)g(via)g(pattern)f(on)h(the)g(board.)38
b(The)25 b(other)f(possibility)h(is)h(the)f(utilization)f(of)h
FE(surface)g(mount)f(de)o(vices)p FG(,)150 888 y(which)f(are)h(glued)f
(to)h(the)g(board.)35 b(Little)24 b(connection)e(pads)h(on)h(the)g(de)n
(vices)f(mak)o(e)h(contact)f(with)h(their)g(counterparts)150
988 y(on)18 b(the)g(board)e(without)i(penetrating)e(it.)25
b(Note)18 b(that)g(the)g(drill)g(holes)g(for)f(vias)i(that)f(are)g
(only)f(used)h(to)g(mak)o(e)f(connections)150 1088 y(between)i(layers)h
(can)g(be)h(much)e(smaller)h(than)g(those)g(holes)g(in)g(which)g(pins)g
(must)g(be)g(inserted.)275 1187 y(The)i(\002rst)h(task)g(of)g(the)g
(physical)e(design)h(is)i(to)f(decide)f(on)g(the)h(size)g(of)f(the)h
(board)e(and)i(on)f(the)h(number)e(of)h(layers.)150 1287
y(In)h(practice)f(the)i(form)e(f)o(actor)g(of)h(the)h(board)d(is)j
(often)f(predetermined)d(or)j(at)h(least)g(limited)f(by)g(the)g(kind)f
(of)h(de)n(vice)f(to)150 1386 y(be)g(b)n(uilt,)g(such)g(as)g(a)i
FF(P)t(C)t(I)h FG(slot)e(card,)e(for)h(e)o(xample.)28
b(Hom)22 b(and)f(Granacki)g(\(1996\))e(describe)i(a)i(statistics)g
(based)e(model)150 1486 y(to)f(estimate)h(the)f(number)e(of)i(routing)f
(layers)h(and)g(total)g(wire)g(length)g(for)f(a)i(printed)e(circuit)h
(board.)275 1586 y(The)h(problems)f(f)o(aced)h(in)g(the)h(design)f(of)i
FF(V)t(L)t(S)t(I)h FG(circuits)d(are)h(in)f(man)o(y)g(aspects)h
(similar)f(to)h(those)f(encountered)e(on)152 1685 y FF(P)t(C)t(B)r
FG(s.)25 b(Again)16 b(components)e(\(cells\))i(are)g(to)h(be)f(placed)g
(and)g(ha)n(v)o(e)f(to)i(be)f(connected.)22 b(Man)o(y)15
b(algorithms)g(can)h(be)h(applied)150 1785 y(in)j(both)g(cases.)25
b(In)20 b(f)o(act,)g(there)g(are)g(a)h(lot)f(more)g(publications)e(on)i
(the)i FF(V)t(L)t(S)t(I)h FG(aspects)d(of)g(these)h(problems)d(than)i
(on)g(their)152 1885 y FF(P)t(C)t(B)k FG(counterparts.)i(On)21
b(the)g(other)f(hand,)g(man)o(y)g(technical)g(constraints)g(in)k
FF(P)t(C)t(B)g FG(design)c(are)h(dif)n(ferent)f(from)g(those)g(in)152
1984 y FF(V)t(L)t(S)t(I)25 b FG(design.)32 b(In)22 b(this)h(article,)g
(we)g(focus)f(on)i FF(P)t(C)t(B)i FG(based)c(publications)f(where)h
(possible.)32 b(F)o(or)22 b(an)h(introduction)d(into)150
2084 y(the)h(speci\002cs)h(of)h FF(V)t(L)t(S)t(I)h FG(design)c(and)h(a)
g(precise)g(de\002nition)f(of)h(what)g(is)i(meant)d(by)h(this,)h(see,)g
(e.)13 b(g.,)21 b(Gerez)g(\(1998\),)e(Sait)150 2183 y(and)h(Y)-9
b(oussef)19 b(\(1999\),)f(Vygen)h(\(2001\).)275 2283
y(Most)29 b(of)h(the)g(articles)f(dealing)g(e)o(xplicitly)g(with)j
FF(P)t(C)t(B)h FG(design)c(describe)f(a)33 b FF(P)t(C)t(B)g
FG(design)c(issue)h(and)f(a)h(heuristic)150 2383 y(for)e(its)i
(solution.)51 b(The)28 b(utilization)h(of)f(heuristics)h(is)h(not)f
(surprising,)g(as)h(the)f(problems)e(encountered)g(in)i(physical)152
2482 y FF(P)t(C)t(B)e FG(layout)22 b(are)h(usually)g
FA(N)r(P)7 b FG(-hard)21 b(in)j(theory)e(and)g(computationally)f(e)o
(xpensi)n(v)o(e)g(in)j(practice.)33 b(At)24 b(this)g(point,)f(one)150
2582 y(particular)18 b(feature)h(of)j FF(P)t(C)t(B)r
FG(s)f(should)e(be)g(noted:)25 b(The)19 b(v)n(ast)h(majority)f(of)g
(the)h(nets)g(to)g(be)f(routed)g(between)g(components)150
2682 y(has)k(only)f(tw)o(o)h(terminals.)32 b(This)23
b(property)e(is)j(an)f(important)e(reason)h(why)g(man)o(y)f(of)i(the)g
(heuristics)f(used)h(for)f(routing)150 2781 y(\(and)d(described)g
(later\))h(w)o(ork)g(quite)f(well)i(in)g(practice)e(despite)h(their)g
(simplicity)-5 b(.)275 2881 y(Re)o(garding)19 b(theoretical)h(aspects)i
(there)f(seems)h(to)g(be)f(only)g(limited)g(progress)f(in)i(recent)f
(years.)28 b(On)22 b(the)f(practical)150 2980 y(side,)g(se)n(v)o(eral)f
(commercial)g(placement)g(and)g(routing)f(softw)o(are)i(systems)g(are)g
(purchasable.)k(Assessing)d(their)e(quality)150 3080
y(is)28 b(v)o(ery)e(dif)n(\002cult,)h(as)h(there)f(are)f(no)h
(generally)e(accepted)h(benchmarks)f(for)j FF(P)t(C)t(B)i
FG(placement)c(and)h(routing)e(publicly)150 3180 y(a)n(v)n(ailable.)36
b(\(The)23 b(situation)g(is)i(some)n(what)e(better)h(in)g(the)g(area)f
(of)j FF(V)t(L)t(S)t(I)g FG(design)e(\(Whitak)o(er,)f(1996,)f(Harlo)n
(w,)h(2000\).\))152 3279 y FF(P)t(C)t(B)31 b FG(layout)c(in)m(v)n(olv)o
(es)f(a)i(lar)o(ge)e(amount)h(of)g(technical)g(and)g(other)g
(constraints)f(\(collecti)n(v)o(ely)g(called)i FE(design)f(rules)p
FG(\),)150 3379 y(which)20 b(are)g(speci\002ed)g(and)f(handled)g(dif)n
(ferently)f(in)i(each)g(program,)e(making)h(an)o(y)g(comparision)f(dif)
n(\002cult.)275 3479 y(In)35 b(the)g(ne)o(xt)g(section)g(we)h(will)g
(describe)f(shortly)g(the)g(relation)g(between)g(placement)f(and)h
(routing,)j(then)d(an)150 3578 y(o)o(v)o(ervie)n(w)29
b(on)h(placement)g(methods)g(is)h(presented)f(in)h(Section)f(3)h(and)f
(se)n(v)o(eral)h(routing)e(models)h(are)h(presented)e(in)150
3678 y(Section)20 b(4.)150 3958 y FH(2)119 b(Placement)30
b(and)h(Routing:)38 b(General)30 b(Remarks)150 4144 y
FG(The)23 b(task)i(in)e(placement)g(is)i(to)f(position)f(all)h
(components)d(on)j(the)g(board)e(in)i(a)g(w)o(ay)g(that)g(is)g
(feasible)g(with)g(respect)f(to)150 4243 y(the)h(limitations)f(of)h
(the)g(production)d(process.)35 b(After)24 b(that)g(all)g(nets,)h(i.)13
b(e.,)25 b(all)f(connections)e(between)h(the)h(pins)g(of)g(the)150
4343 y(components)19 b(according)g(to)i(the)g(logical)f(design,)g(ha)n
(v)o(e)g(to)i(be)e(routed)g(on)g(the)h(board.)26 b(Ob)o(viously)-5
b(,)19 b(the)i(placement)e(has)150 4443 y(tremendous)d(repercussions)g
(on)i(the)g(routing.)k(Since)c(the)g(conditions)f(on)g(the)h(placement)
f(itself)i(are)e(usually)h(relati)n(v)o(ely)150 4542
y(simple,)25 b(e.)13 b(g.,)25 b(components)d(are)i(not)g(allo)n(wed)g
(to)g(o)o(v)o(erlap)e(and)i(ha)n(v)o(e)f(to)i(adhere)e(to)h(some)g
(minimum)f(distances,)i(the)150 4642 y(main)32 b(objecti)n(v)o(e)e(in)i
(placement)f(is)i(to)f(allo)n(w)g(a)g(good)f(and)g(feasible)h(routing.)
59 b(In)32 b(principle)e(it)j(w)o(ould)e(be)h(best)g(to)150
4741 y(perform)24 b(placement)h(and)h(routing)f(in)h(one)g(step.)43
b(But)27 b(due)f(to)g(the)h(dif)n(\002culties)e(in)m(v)n(olv)o(ed,)h
(both)f(tasks)i(are)f(typically)150 4841 y(done)19 b(sequentially)g(in)
h(practice)g(\(Mo)g(et)g(al.,)h(2001,)d(K)o(umar)h(et)i(al.,)f(2005\).)
275 4941 y(As)f(said)g(abo)o(v)o(e,)e(since)i(\002nding)e(a)j
(physically)d(feasible)h(placement)g(is)h(generally)e(easy)-5
b(,)19 b(the)g(main)f(objecti)n(v)o(e)f(of)i(the)150
5040 y(placement)e(is)h(to)g(permit)f(a)h(high)f(quality)g(routing.)23
b(Ho)n(we)n(v)o(er)m(,)16 b(it)j(is)f(dif)n(\002cult)f(to)h(de\002ne)g
(\223high)e(quality\224)h(in)h(a)g(some)n(what)150 5140
y(precise)j(mathematical)f(sense.)28 b(Instead,)21 b(substitute)g
(objecti)n(v)o(es)f(are)h(de\002ned.)27 b(A)21 b(widely)g(used)g
(objecti)n(v)o(e)f(in)h(practice)150 5240 y(is)g(to)f(minimize)g(the)g
(total)g(wire)h(length)e(of)h(all)h(connections.)275
5339 y(Unfortunately)-5 b(,)20 b(the)j(e)o(xact)f(wire)h(length)g(of)f
(each)h(net)g(is)h(not)f(kno)n(wn)e(until)i(the)g(nets)g(are)g
(actually)g(routed.)32 b(Since)150 5439 y(e)n(v)o(en)23
b(the)h(computation)d(of)j(the)g(minimum)e(length)h(of)g(a)i(single)e
(net)h(is)h(in)f(general)f FA(N)r(P)7 b FG(-hard,)22
b(as)i(it)h(corresponds)c(to)150 5538 y(computing)f(the)h(length)g(of)h
(a)g(minimum)f(Steiner)g(tree,)h(the)g(total)g(wire)g(length)f(has)h
(to)g(be)g(estimated.)29 b(This)22 b(is)h(usually)150
5638 y(done)e(by)g(summing)f(up)h(an)h(estimate)g(of)f(the)h(length)f
(of)g(each)h(indi)n(vidual)d(net.)30 b(Methods)21 b(to)g(estimate)h
(the)g(length)f(of)g(a)1892 5919 y(2)p eop end
%%Page: 3 4
TeXDict begin 3 3 bop 150 390 a FG(speci\002c)23 b(net)h(include:)30
b(heuristically)22 b(computing)f(a)j(Steiner)e(tree)i(between)e(the)h
(terminals,)h(computing)c(a)k(minimum)150 490 y(spanning)g(tree)i
(between)g(the)g(terminals,)g(b)n(uilding)f(a)h(chain)g(through)e(the)i
(terminals,)g(or)g(taking)f(half)h(the)g(length)f(of)150
589 y(the)e(perimeter)f(of)h(the)g(bounding)d(box)i(enclosing)g(all)i
(the)f(terminals)f(of)h(the)g(net.)34 b(K)n(eep)22 b(in)i(mind,)e(that)
i(for)e(nets)h(with)150 689 y(tw)o(o)e(terminals)f(and)g(using)g
(Manhattan)f(distances)h(\(a)h(typical)f(metric)g(in)j
FF(P)t(C)t(B)h FG(and)e FF(V)t(L)t(S)t(I)h FG(design\))c(all)i(these)g
(measures)150 789 y(gi)n(v)o(e)h(the)g(same)h(result.)31
b(A)23 b(surv)o(e)o(y)e(on)h(placement)f(methods)h(and)g(substitute)g
(objecti)n(v)o(es)f(can)i(be)f(found)f(in)h(Preas)h(and)150
888 y(Kar)o(ger)c(\(1986\).)275 988 y(Another)i(possible)h(objecti)n(v)
o(e)f(during)g(placement)h(is)h(to)g(minimize)f(the)h(number)e(of)h
(wire)h(crossings.)32 b(According)150 1088 y(to)26 b(Stallmann)f(et)h
(al.)h(\(2001\))c(this)k(can)e(be)h(modeled)e(as)j(a)f
FE(bigr)o(aph)e(cr)l(ossing)i(pr)l(oblem)g FG(in)g(the)g(follo)n(wing)e
(w)o(ay:)36 b(Let)150 1187 y FE(G)21 b Fx(=)g(\()l FE(V)p
Fy(;)9 b FE(E)d Fx(\))25 b FG(be)g(a)h(bipartite)e(graph)g(with)h
(partitions)c FE(V)1782 1200 y Fv(1)1842 1187 y FG(and)f
FE(V)2030 1200 y Fv(2)2090 1187 y FG(and)25 b(let)g FE(G)h
FG(be)f(embedded)e(in)i(the)g(plane)g(so)g(that)h(the)150
1287 y(nodes)d(in)d FE(V)500 1299 y Fr(i)544 1287 y FG(occup)o(y)i
(distinct)i(positions)f(on)g(the)h(line)f FE(y)e Fx(=)e
FE(i)25 b FG(and)e(the)g(edges)g(are)h(straight)f(lines.)35
b(F)o(or)24 b(an)f(embedding)162 1386 y FE(f)12 b Fx(\()p
FE(G)p Fx(\))23 b FG(of)e FE(G)h FG(in)f(the)h(plane,)f(the)g
FE(cr)l(ossing)g(number)e(C)1708 1399 y Fr(f)1738 1386
y Fx(\()p FE(G)p Fx(\))k FG(is)f(the)f(number)f(of)h(line)g
(intersections)g(induced)f(by)33 b FE(f)12 b FG(.)29
b(This)150 1486 y(number)20 b(depends)g(only)h(on)g(the)h(permutation)e
(of)d FE(V)1677 1498 y Fr(i)1720 1486 y FG(along)k FE(y)e
Fx(=)g FE(i)j FG(and)f(not)g(on)h(speci\002c)f FE(x)p
FG(-coordinates.)28 b(The)21 b FE(bigr)o(aph)150 1586
y(cr)l(ossing)j(number)d(C)r Fx(\()p FE(G)p Fx(\))26
b FG(is)f(de\002ned)e(as)d FE(C)r Fx(\()p FE(G)p Fx(\))h(=)g
FG(min)1799 1599 y Fr(f)1834 1586 y FE(C)1896 1599 y
Fr(f)1927 1586 y Fx(\()p FE(G)p Fx(\))p FG(.)38 b(The)23
b(computation)f(of)e FE(C)r Fx(\()p FE(G)p Fx(\))25 b
FG(is)g FA(N)r(P)7 b FG(-hard)22 b(\(Gare)o(y)150 1685
y(and)g(Johnson,)e(1979\).)30 b(Some)22 b(heuristics)g(for)g(crossing)f
(minimization)g(are)h(presented)f(and)h(compared)e(in)i(Stallmann)150
1785 y(et)f(al.)f(\(2001\).)150 2065 y FH(3)119 b(Placement)30
b(Methods)150 2251 y FG(As)d(the)f(physical)e(restrictions)i(on)f
(component)e(placement)i(are)h(fe)n(w)-5 b(,)26 b(e)n(v)o(ery)f
(method,)h(including)e(repeated)g(trials)j(of)150 2350
y(random)17 b(placements)g(\(Hanan)h(et)h(al.,)f(1976a,b,)e(Magnuson,)g
(1977\),)h(can)h(be)h(used)f(to)g(produce)f(a)i(feasible)f(placement.)
150 2450 y(Consequently)-5 b(,)18 b(practically)h(e)n(v)o(ery)g(kno)n
(wn)g(heuristic)h(scheme,)f(including)g(cluster)h(de)n(v)o(elopment)d
(\(Areibi)j(and)g(Y)-8 b(ang,)150 2550 y(2004,)18 b(Hanan)h(and)g(K)o
(urtzber)o(g,)d(1972a,)i(Hanan)h(et)h(al.,)g(1976a,)d(Magnuson,)h
(1977,)g(Cox)h(and)g(Carroll,)g(1980\),)f(kno)n(wl-)150
2649 y(edge)29 b(based)g(systems)h(\(P)o(ann)5 b(\264)-33
b(erec,)27 b(2003\),)j(randomized)d(local)j(search)f(algorithms)f(such)
h(as)h(simulated)f(annealing)150 2749 y(\(Sechen)24 b(and)g(Sangiov)n
(anni-V)-5 b(incentelli,)21 b(1986,)i(Sechen,)g(1988,)h(W)-7
b(ong)24 b(et)h(al.,)g(1988,)e(W)-7 b(ang)25 b(et)g(al.,)g(2000,)e
(Murata)150 2848 y(et)17 b(al.,)g(1998\),)f(and)g(genetic)g(algorithms)
g(\(Cohoon)f(and)h(P)o(aris,)h(1987,)f(Shahookar)e(and)j(Mazumder,)e
(1990,)g(V)-9 b(alenzuela)150 2948 y(and)25 b(W)-7 b(ang,)26
b(2002,)e(Sait)i(et)h(al.,)e(2005,)f(Areibi)i(and)f(Y)-8
b(ang,)24 b(2004\),)i(as)g(well)g(as)h(combinations)c(of)j(these)g
(approaches)150 3048 y(\(Zhang)f(et)h(al.,)h(2005\))d(ha)n(v)o(e)i
(been)g(used)g(to)g(compute)f(placements.)42 b(Often,)27
b(computed)e(placements)g(are)h(impro)o(v)o(ed)150 3147
y(by)f(iterati)n(v)o(e)g(heuristics)h(based)f(on)g(component)e
(interchange)h(\(Magnuson,)f(1977,)h(Cot)5 b(\264)-33
b(e)26 b(and)f(P)o(atel,)h(1980\).)40 b(Place-)150 3247
y(ment)18 b(methods)f(can)i(be)f(classi\002ed)h(roughly)d(into)i(three)
g(cate)o(gories:)24 b(recursi)n(v)o(e)17 b(minimum)f(cut)j(placement,)e
(analytical)150 3347 y(placement)i(and)h(local)g(search)g(methods.)150
3584 y Fq(3.1)99 b(Recursi)o(v)o(e)26 b(Minimum)f(Cut)g(Placement)150
3740 y FG(The)19 b(idea)g(of)f(recursi)n(v)o(e)g(minimum)g(cut)h
(placement)e(is)j(to)g(partition)e(the)h(circuit)f(into)h(subcircuits)g
(subject)f(to)i(minimiz-)150 3840 y(ing)i(the)h(number)d(of)j(wires)g
(running)d(between)i(the)g(tw)o(o)h(partitions.)31 b(Simultaneously)-5
b(,)21 b(the)h(board)g(surf)o(ace)g(is)h(di)n(vided)150
3939 y(v)o(ertically)k(or)g(horizontally)f(into)i(subre)o(gions)e(and)h
(each)g(subcircuit)g(is)i(assigned)e(to)h(one)g(re)o(gion.)46
b(This)28 b(procedure)150 4039 y(is)d(repeatedly)e(applied)g(to)h(each)
g(of)g(the)h(subcircuits)e(and)h(subre)o(gions)e(until)i(the)h
(remaining)d(circuit)i(can)g(be)g(tri)n(vially)150 4138
y(placed,)19 b(for)h(instance,)f(if)i(it)g(consists)f(of)g(a)h(single)f
(component)e(only)-5 b(.)275 4238 y(The)20 b(problem)g(can)h(be)g
(stated)h(by)e(representing)f(the)j(circuit)f(as)h(a)f(hyper)o(graph.)j
(The)d(components)e(correspond)f(to)150 4338 y(the)k(nodes)f(and)g(the)
h(nets)g(correspond)d(to)j(the)f(hyperedges)e(connecting)h(these)i
(components)d(\(nodes\).)29 b(Thus,)21 b(decom-)150 4437
y(posing)i(the)h(circuit)f(into)h(tw)o(o)g(subcircuits)f(with)h(an)g
(approximately)d(equal)i(share)h(of)g(components)d(subject)j(to)g
(mini-)150 4537 y(mizing)18 b(the)i(number)d(of)i(wires)h(between)e
(the)h(tw)o(o)h(subcircuits)e(corresponds)f(to)i(\002nding)f(a)i
(balanced)e(bipartition)g(\(or)g(a)150 4637 y(bisection\))j(of)h(the)g
(hyper)o(graph)c(with)k(a)h(minimal)e(cut.)31 b(This)22
b(results)h(in)f(the)g(so)g(called)g FE(balanced)e(hyper)m(gr)o(aph)g
(bipar)n(-)150 4736 y(tition)j(pr)l(oblem)p FG(,)g(and)f
FE(hyper)m(gr)o(aph)f(bisection)h(pr)l(oblem)p FG(,)h(respecti)n(v)o
(ely)-5 b(.)31 b(Both)23 b(problems)f(are)h FA(N)r(P)7
b FG(-hard)21 b(\(Lengauer,)150 4836 y(1990\),)h(b)n(ut)h(man)o(y)f
(heuristics)h(were)g(proposed)f(in)h(literature.)33 b(T)-7
b(w)o(o)24 b(v)o(ery)e(common)f(approaches)g(in)j(practice)e(are)i(the)
150 4935 y(heuristic)f(of)g(Fiduccia)f(and)h(Matthe)o(yses)g(\(1982\))e
(for)i(solving)f(the)h(balanced)f(hyper)o(graph)d(bipartition)j
(problem)f(and)150 5035 y(the)g(algorithm)e(of)i(K)n(ernighan)e(and)h
(Lin)h(\(1970\))e(for)h(solving)g(the)h(bisection)f(problem)f(on)i
(graphs)f(after)g(transforming)150 5135 y(the)28 b(hyper)o(graph)d(to)j
(a)h(graph)e(by)h(replacing)f(each)h(hyperedge)d(by)j(a)h(clique.)49
b(Both)29 b(approaches)d(are)j(based)f(on)g(the)150 5234
y(idea)20 b(of)g(iterati)n(v)o(e)f(impro)o(v)o(ement.)j(Starting)d
(with)h(an)g(initial)h(balanced)d(bipartition)h(\(or)g(bisection\))g
(of)h(the)g(hyper)o(graph)150 5334 y(\(graph\),)e(nodes)h(are)h
(interchanged)e(between)h(the)i(tw)o(o)f(subsets,)g(to)h(reduce)e(the)h
(size)h(of)f(the)g(cut.)275 5434 y(The)i(recursi)n(v)o(e)f(minimum)g
(cut)i(placement)f(can)g(be)h(e)o(xtended)e(to)i(partitions)f(with)h
(more)f(than)g(tw)o(o)h(subsets.)33 b(The)150 5533 y(placement)24
b(problem)g(then)g(becomes)h(a)g FE(multiway)h(partition)e(pr)l(oblem)p
FG(.)40 b(Ef)n(\002cient)25 b(implementations)e(of)i(the)g(hyper)n(-)
150 5633 y(graph)16 b(multiw)o(ay)i(partition)f(problem)f(are)i
(presented)e(in)i(Karypis)f(and)h(K)o(umar)f(\(1999\).)22
b(Recently)-5 b(,)17 b(Zhao)g(et)i(al.)f(\(2005\))1892
5919 y(3)p eop end
%%Page: 4 5
TeXDict begin 4 4 bop 150 390 a FG(proposed)14 b(a)i(uni\002ed)f(frame)
n(w)o(ork)e(for)i(de)n(v)o(eloping)e(and)i(analyzing)f(approximation)f
(algorithms)h(for)i(v)n(arious)e(multiw)o(ay)150 490
y(partition)19 b(problems.)275 589 y(A)c(more)g(e)o(xtensi)n(v)o(e)e
(discussion)i(on)g(partition-based)e(placement)h(methods)g(for)i
FF(V)t(L)t(S)t(I)i FG(design)d(is)h(gi)n(v)o(en)e(by)h(Lengauer)150
689 y(\(1990\))24 b(and)h(a)h(surv)o(e)o(y)f(is)h(presented)f(in)h
(Alpert)g(and)f(Kahng)g(\(1995\).)40 b(In)25 b(Y)-8 b(ang)25
b(and)g(W)-7 b(ong)26 b(\(1996\))e(a)i(partition)f(ap-)150
789 y(proach)h(based)i(on)f(the)h(max-\003o)n(w-min-cut)d(theorem)i(is)
h(proposed.)47 b(The)27 b(e)o(xperimental)f(results)i(demonstrate)e
(that)150 888 y(their)21 b(approach)f(outperforms)e(the)k(K)n
(ernighan-Lin)c(heuristics)k(in)f(terms)h(of)f(the)g(number)f(of)h
(crossings.)29 b(In)21 b(Mak)g(and)150 988 y(W)-7 b(ong)21
b(\(2000\))d(a)j(f)o(ast)h(non-\003o)n(w-based)c(algorithm)h(for)h
(computing)e(a)j(minimum)f(cut)h(in)f(a)i(hyper)o(graph)16
b(is)22 b(suggested.)150 1088 y(Finally)-5 b(,)19 b(in)i(P)o(apa)f(and)
f(Mark)o(o)o(v)g(\(2006\))f(a)j(surv)o(e)o(y)d(of)i(partitioning)e(and)
i(clustering)f(methods)g(is)i(presented.)150 1325 y Fq(3.2)99
b(Analytical)24 b(Placement)150 1481 y FG(So)f(called)g(analytical)f
(placement)g(is)h(an)g(approach)e(widely)h(used)h(in)i
FF(V)t(L)t(S)t(I)g FG(design)d(\(Sigl)h(et)g(al.,)g(1991,)e(J)7
b(\250)-35 b(unger)22 b(et)i(al.,)150 1581 y(1994,)19
b(Kahng)g(and)h(W)-7 b(ang,)21 b(2004,)e(V)-5 b(isw)o(anathan)19
b(and)h(Chu,)h(2004\),)d(which)i(can)h(also)f(be)h(applied)e(to)k
FF(P)t(C)t(B)h FG(placement.)150 1680 y(An)17 b(adv)n(antage)d(of)j
(analytical)e(placement)h(o)o(v)o(er)f(partitioning-based)e(methods)j
(is)h(the)g(global)f(vie)n(w)g(of)g(the)h(problem.)22
b(In)150 1780 y(recursi)n(v)o(e)17 b(minimum)g(cut)i(placement,)e
(minimizing)g(the)i(number)e(of)h(wires)h(crossing)f(a)h(cut)f(in)h
(the)f(\002rst)i(step)f(may)f(lead)150 1879 y(to)j(poor)f(results)h(in)
g(the)g(succeeding)f(steps.)28 b(W)-7 b(e)22 b(present)e(tw)o(o)h
(classes)i(of)d(global)g(analytical)h(placement)e(approaches:)150
1979 y(quadratic)g(or)h(linear)f(assignment)h(and)f(quadratic)g
(placement.)150 2200 y Fp(3.2.1)81 b(Quadratic)19 b(assignment)150
2356 y FG(The)24 b(quadratic)e(assignment)h(approach)f(is)i(based)g(on)
f(the)h(follo)n(wing)e(idea:)33 b(gi)n(v)o(en)22 b(a)j(number)d(of)h
(components)f(and)h(a)150 2455 y(number)18 b(of)h(positions)g(on)g(the)
g(board)g(surf)o(ace,)f(we)i(w)o(ant)g(to)g(assign)f(each)g(component)e
(to)j(a)g(position)f(on)g(the)g(board,)f(so)150 2555
y(that)g(certain)g(physical)f(constraints)g(are)h(satis\002ed)h(and)e
(the)h(total)g(wire)h(length)e(is)i(minimized.)k(This)18
b(can)g(be)g(formulated)150 2655 y(as)h(a)h(linear)e(inte)o(ger)g
(optimization)f(problem)g(with)i(either)f(a)h(linear)g(\(Ak)o(ers,)f
(1981\))f(or)h(a)i(quadratic)d(objecti)n(v)o(e)g(function)150
2754 y(\(Hanan)i(and)h(K)o(urtzber)o(g,)d(1972b,)h(Hanan)i(et)g(al.,)g
(1976a,)f(W)-7 b(eismantel,)20 b(1992\).)275 2854 y(The)26
b(board)f(surf)o(ace)g(is)j(assumed)e(to)g(be)h(modeled)e(as)i(a)g
(grid)e(which)h(decomposes)f(the)h(board)f(into)i(rectangular)150
2954 y(grid)f(cells)h(with)f(precisely)g(de\002ned)f(dimensions.)43
b(A)27 b(component)d(placed)h(on)h(the)h(grid)e(co)o(v)o(ers)h(a)g
(rectangular)f(area)150 3053 y(consisting)19 b(of)h(a)h(set)g(of)f
(grid)f(cells.)275 3153 y(The)g(placement)h(problem)e(is)j(to)g(assign)
f(the)h(components)d(to)i(disjoint)g(rectangular)e(areas)j(of)f(grid)f
(cells)i(such)f(that)150 3252 y(the)k(total)g(wire)g(length)f(is)i
(minimized.)35 b(A)24 b(component)e FE(i)i FG(is)h(said)f(to)g(be)g
(assigned)g(to)g(a)g(grid)f(cell)i FE(k)q FG(,)g(if)f
FE(i)h FG(is)g(placed)e(on)150 3352 y(the)28 b(board)f(in)i(such)f(a)g
(w)o(ay)-5 b(,)30 b(that)f(its)g(lo)n(wer)f(left)g(corner)f(coincides)h
(with)g(grid)g(cell)h FE(k)q FG(,)h(and)e(a)h(grid)f(cell)g
FE(k)i FG(is)g(called)150 3452 y(feasible)24 b(for)f(a)h(component)d
FE(i)p FG(,)k(if)f FE(i)h FG(\002ts)f(on)g(the)g(board)e(when)h
(assigned)g(to)h(the)g(grid)f(cell)h FE(k)q FG(.)37 b(Let)24
b FE(n)f FG(be)h(the)g(number)e(of)150 3551 y(components)i(and)h
FE(m)i FG(the)f(number)f(of)g(grid)h(cells,)i(then)e(we)g(de\002ne)g
FE(Z)t Fx(\()p FE(i)p Fx(\))c FC(\022)f(f)p FG(1)p Fy(;)9
b(:)g(:)g(:)g(;)g FE(m)p FC(g)27 b FG(as)f(the)h(set)g(of)e(feasible)h
(grid)150 3651 y(cells)21 b(for)e(component)f FE(i)p
FG(.)275 3751 y(F)o(or)d(each)h(component)e FE(i)h FC(2)g(f)p
FG(1)p Fy(;)9 b(:)g(:)g(:)g(;)g FE(n)p FC(g)16 b FG(and)g(each)g
(feasible)g(grid)g(cell)h FE(k)f FC(2)f FE(Z)t Fx(\()p
FE(i)p Fx(\))j FG(a)e(binary)f(v)n(ariable)h FE(x)3161
3765 y Fr(ik)3227 3751 y FG(is)h(introduced,)150 3850
y(such)j(that)h FE(x)506 3864 y Fr(ik)577 3850 y FG(is)g(equal)f(to)h
(one)f(if)h(and)f(only)g(if)h(component)d FE(i)j FG(is)h(assigned)e(to)
h(grid)f(cell)h FE(k)q FG(.)27 b(The)20 b(quadratic)f(assignment)150
3950 y(model)g(for)h(component)e(placement)h(proposed)f(by)h(W)-7
b(eismantel)21 b(\(1992\))d(is)j(then)f(de\002ned)f(as)i(follo)n(ws:)
692 4279 y(min)831 4190 y Fr(n)p Fo(\000)p Fv(1)843 4297
y Fk(\345)837 4364 y Fr(i)p Fu(=)p Fv(1)1019 4190 y Fr(n)992
4297 y Fk(\345)958 4364 y Fr(j)r Fu(=)p Fr(i)p Fu(+)p
Fv(1)1172 4297 y Fk(\345)1129 4369 y Fr(k)q Fo(2)p Fr(Z)s
Fu(\()p Fr(i)p Fu(\))1354 4297 y Fk(\345)1310 4369 y
Fr(l)s Fo(2)p Fr(Z)s Fu(\()9 b Fr(j)r Fu(\))1493 4279
y FE(c)1530 4291 y Fr(i)g(j)1588 4279 y FE(d)t Fx(\()p
FE(i)p Fy(;)g FE(k)q Fy(;)21 b FE(j)r Fy(;)9 b FE(l)t
Fx(\))g FE(x)1965 4293 y Fr(ik)2026 4279 y FE(x)2072
4293 y Fr(j)r(l)3578 4279 y FG(\(1\))757 4564 y Fx(+)o
Fz(l)867 4577 y Fv(0)911 4476 y Fr(n)p Fo(\000)p Fv(1)923
4582 y Fk(\345)918 4650 y Fr(i)p Fu(=)p Fv(1)1100 4476
y Fr(n)1072 4582 y Fk(\345)1038 4650 y Fr(j)r Fu(=)p
Fr(i)p Fu(+)p Fv(1)1253 4582 y Fk(\345)1210 4655 y Fr(k)q
Fo(2)p Fr(Z)s Fu(\()p Fr(i)p Fu(\))1435 4582 y Fk(\345)1390
4655 y Fr(l)s Fo(2)p Fr(Z)s Fu(\()g Fr(j)r Fu(\))1573
4564 y FE(o)p Fx(\()p FE(i)p Fy(;)g FE(k)q Fy(;)21 b
FE(j)r Fy(;)9 b FE(l)t Fx(\))g FE(x)1946 4578 y Fr(ik)2007
4564 y FE(x)2053 4578 y Fr(j)r(l)3578 4564 y FG(\(2\))501
4784 y(subject)20 b(to)874 4802 y Fk(\345)831 4874 y
Fr(k)q Fo(2)p Fr(Z)s Fu(\()p Fr(i)p Fu(\))1011 4784 y
FE(x)1048 4798 y Fr(ik)1116 4784 y Fx(=)e FG(1)1525 b(for)20
b(all)h FE(i)d Fx(=)g FG(1)p Fy(;)9 b(:)g(:)g(:)h FE(n)253
b FG(\(3\))821 5001 y FE(x)858 5015 y Fr(ik)926 5001
y FC(2)19 b(f)p FG(0)p Fy(;)9 b FG(1)p FC(g)1266 b FG(for)19
b(all)i FE(i)e Fx(=)f FG(1)p Fy(;)9 b(:)g(:)g(:)g FE(n)p
Fy(;)g FE(k)20 b FC(2)e FE(Z)t Fx(\()p FE(i)p Fx(\))255
b FG(\(4\))275 5184 y(The)30 b(objecti)n(v)o(e)f(function)g(is)i
(composed)e(of)h(tw)o(o)h(terms:)46 b(\(1\))30 b(is)h(an)g
(approximation)c(of)k(the)f(total)h(wire)f(length)150
5283 y(computed)23 b(in)j(the)f(follo)n(wing)f(w)o(ay:)36
b FE(c)1302 5295 y Fr(i)9 b(j)1372 5283 y FC(\025)21
b FG(0)k(denotes)g(the)g FE(af)o(\002nity)f(coef)o(\002cients)g
FG(between)h(the)g(components)f FE(i)i FG(and)36 b FE(j)150
5383 y FG(and)23 b(can)g(be)h(calculated)f(by)g FE(c)1041
5395 y Fr(i)9 b(j)1110 5383 y Fx(=)1195 5389 y FB(\345)1252
5401 y Fr(t)t Fo(2)p Fr(T)1433 5350 y Fv(1)p 1380 5364
138 4 v 1380 5412 a Ft(a)1418 5421 y Fi(t)1439 5412 y
Fo(\000)p Fv(1)1551 5383 y FG(if)22 b FE(t)30 b FG(is)25
b(a)f(net)f(connecting)f FE(i)i FG(and)35 b FE(j)r FG(,)25
b(and)e(zero)g(otherwise.)35 b FE(T)g FG(is)24 b(the)g(set)150
5492 y(of)19 b(all)i(nets,)e Fz(a)567 5504 y Fr(t)614
5492 y FG(the)h(cardinality)e(of)h(a)h(net)e FE(t)24
b FC(2)18 b FE(T)11 b FG(.)25 b FE(d)t Fx(\()p FE(i)p
Fy(;)9 b FE(k)q Fy(;)21 b FE(j)r Fy(;)9 b FE(l)t Fx(\))22
b FG(de\002nes)e(the)g(shortest)f(Manhattan)f(distance)i(between)f(the)
150 5591 y(components)f FE(i)j FG(and)31 b FE(j)24 b
FG(when)19 b(assigned)h(to)g(the)h(grid)e(cells)i FE(k)h
FG(and)e FE(l)t FG(.)1892 5919 y(4)p eop end
%%Page: 5 6
TeXDict begin 5 5 bop 275 390 a FG(The)32 b(second)h(term)g(\(2\))g(of)
g(the)g(objecti)n(v)o(e)f(function)f(e)n(v)n(aluates)i(the)g(number)f
(of)h(o)o(v)o(erlaps.)62 b(The)33 b(coef)n(\002cients)150
490 y FE(o)p Fx(\()p FE(i)p Fy(;)9 b FE(k)q Fy(;)21 b
FE(j)r Fy(;)9 b FE(l)t Fx(\))26 b FG(de\002ned)c(for)h
FE(i)d FC(2)h(f)p FG(1)p Fy(;)9 b(:)g(:)g(:)g(;)g FE(n)p
FC(g)p FG(,)35 b FE(j)23 b FC(2)e(f)p FG(1)p Fy(;)9 b(:)g(:)g(:)g(;)g
FE(n)p FC(g)p FG(,)23 b FE(k)f FC(2)e FE(Z)t Fx(\()p
FE(i)p Fx(\))25 b FG(and)e FE(l)i FC(2)20 b FE(Z)t Fx(\()12
b FE(j)r Fx(\))25 b FG(counts)e(the)g(number)f(of)h(grid)g(cells)150
589 y(that)f(are)g(shared)g(by)g(components)e FE(i)i
FG(and)34 b FE(j)25 b FG(when)d(assigned)g(to)g(grid)f(cells)i
FE(k)h FG(and)e FE(l)t FG(.)32 b(Since)22 b(a)g(feasible)g(placement)f
(has)150 689 y(to)26 b(be)g(free)f(of)g(o)o(v)o(erlaps,)h(the)f(second)
g(term)h(of)f(the)h(objecti)n(v)o(e)e(function)h(is)h(scaled)g(with)g
(a)g(lar)o(ge)f(penalty)g(f)o(actor)g Fz(l)3620 702 y
Fv(0)3654 689 y FG(.)150 789 y(Equations)19 b(\(3\))g(ensure)h(that)g
(each)g(component)e(is)j(assigned)e(to)i(e)o(xactly)e(one)h(grid)f
(cell.)275 888 y(This)25 b(quadratic)f(optimization)g(formulation)f
(allo)n(ws)j(the)g(follo)n(wing)e(e)o(xtension:)34 b(when)25
b(some)g(components)f(are)150 988 y(allo)n(wed)d(to)h(be)f(rotated)g
(90)957 958 y Fo(\016)991 988 y FG(,)h(four)f(dif)n(ferent)f
(realizations)h(e)o(xist)g(to)h(place)f(each)h(of)f(these)h
(components.)27 b(In)21 b(this)h(case,)150 1088 y(binary)17
b(v)n(ariables)h FE(x)735 1057 y Fr(a)735 1114 y(ik)803
1088 y FG(are)g(de\002ned)g(for)f(a)i(component)d FE(i)j
FG(in)g(grid)e(cell)i FE(k)f FC(2)f FE(Z)t Fx(\()p FE(i)p
Fx(\))j FG(and)e(for)f(realization)h FE(a)e FC(2)h FE(A)p
Fx(\()p FE(i)p Fx(\))p FG(,)i(such)f(that)150 1187 y
FE(x)187 1157 y Fr(a)187 1213 y(ik)258 1187 y FG(is)j(equal)f(to)h(one)
f(if)h(and)f(only)g(if)h(the)f(component)e FE(i)k FG(is)f(assigned)f
(to)h(the)g(feasible)f(grid)g(cell)h FE(k)h FG(in)f(realization)f
FE(a)p FG(.)26 b(The)150 1287 y(e)o(xtended)18 b(quadratic)h(placement)
g(problem)f(is)j(the)g(follo)n(wing:)624 1616 y(min)762
1527 y Fr(n)p Fo(\000)p Fv(1)774 1634 y Fk(\345)769 1701
y Fr(i)p Fu(=)p Fv(1)951 1527 y Fr(n)923 1634 y Fk(\345)890
1701 y Fr(j)r Fu(=)p Fr(i)p Fu(+)p Fv(1)1104 1634 y Fk(\345)1061
1706 y Fr(k)q Fo(2)p Fr(Z)s Fu(\()p Fr(i)p Fu(\))1286
1634 y Fk(\345)1241 1706 y Fr(l)s Fo(2)p Fr(Z)s Fu(\()9
b Fr(j)r Fu(\))1483 1634 y Fk(\345)1424 1706 y Fr(a)1455
1718 y Fg(1)1484 1706 y Fo(2)p Fr(A)p Fu(\()p Fr(i)p
Fu(\))1701 1634 y Fk(\345)1637 1706 y Fr(a)1668 1718
y Fg(2)1696 1706 y Fo(2)p Fr(A)p Fu(\()g Fr(j)r Fu(\))1860
1616 y FE(c)1897 1628 y Fr(i)g(j)1945 1616 y FE(d)t Fx(\()p
FE(i)p Fy(;)g FE(k)q Fy(;)g FE(a)2190 1629 y Fv(1)2226
1616 y Fy(;)21 b FE(j)r Fy(;)9 b FE(l)t Fy(;)g FE(a)2428
1629 y Fv(2)2464 1616 y Fx(\))g FE(x)2542 1575 y Fr(a)2573
1587 y Fg(1)2542 1643 y Fr(ik)2615 1616 y FE(x)2652 1575
y Fr(a)2683 1587 y Fg(2)2661 1643 y Fr(j)r(l)688 1901
y Fx(+)p Fz(l)799 1914 y Fv(0)843 1813 y Fr(n)p Fo(\000)p
Fv(1)855 1919 y Fk(\345)849 1987 y Fr(i)p Fu(=)p Fv(1)1031
1813 y Fr(n)1004 1919 y Fk(\345)970 1987 y Fr(j)r Fu(=)p
Fr(i)p Fu(+)p Fv(1)1184 1919 y Fk(\345)1141 1992 y Fr(k)q
Fo(2)p Fr(Z)s Fu(\()p Fr(i)p Fu(\))1366 1919 y Fk(\345)1322
1992 y Fr(l)s Fo(2)p Fr(Z)s Fu(\()g Fr(j)r Fu(\))1564
1919 y Fk(\345)1505 1992 y Fr(a)1536 2004 y Fg(1)1565
1992 y Fo(2)p Fr(A)p Fu(\()p Fr(i)p Fu(\))1781 1919 y
Fk(\345)1717 1992 y Fr(a)1748 2004 y Fg(2)1777 1992 y
Fo(2)p Fr(A)p Fu(\()g Fr(j)r Fu(\))1940 1901 y FE(o)1982
1867 y Fo(0)2003 1901 y Fx(\()p FE(i)p Fy(;)g FE(k)q
Fy(;)g FE(a)2202 1914 y Fv(1)2237 1901 y Fy(;)21 b FE(j)r
Fy(;)9 b FE(l)t Fy(;)g FE(a)2439 1914 y Fv(2)2475 1901
y Fx(\))g FE(x)2553 1861 y Fr(a)2584 1873 y Fg(1)2553
1928 y Fr(ik)2627 1901 y FE(x)2664 1861 y Fr(a)2695 1873
y Fg(2)2673 1928 y Fr(j)r(l)622 2262 y FG(subject)20
b(to)995 2280 y Fk(\345)952 2353 y Fr(k)q Fo(2)p Fr(Z)s
Fu(\()p Fr(i)p Fu(\))1177 2280 y Fk(\345)1133 2353 y
Fr(a)p Fo(2)p Fr(A)p Fu(\()p Fr(i)p Fu(\))1316 2262 y
FE(x)1353 2228 y Fr(a)1353 2284 y(ik)1421 2262 y Fx(=)d
FG(1)1100 b(for)20 b(all)g FE(i)f Fx(=)f FG(1)p Fy(;)9
b(:)g(:)g(:)g FE(n)943 2479 y(x)980 2445 y Fr(a)980 2501
y(ik)1048 2479 y FC(2)18 b(f)p FG(0)p Fy(;)9 b FG(1)p
FC(g)696 b FG(for)20 b(all)h FE(i)d Fx(=)g FG(1)p Fy(;)9
b(:)g(:)g(:)h FE(n)p Fy(;)f FE(k)19 b FC(2)g FE(Z)t Fx(\()p
FE(i)p Fx(\))p Fy(;)9 b FE(a)19 b FC(2)f FE(A)p Fx(\()p
FE(i)p Fx(\))p Fy(:)275 2662 y FG(Where)28 b FE(d)t Fx(\()p
FE(i)p Fy(;)9 b FE(k)q Fy(;)g FE(a)770 2675 y Fv(1)805
2662 y Fy(;)21 b FE(j)r Fy(;)9 b FE(l)t Fy(;)g FE(a)1007
2675 y Fv(2)1043 2662 y Fx(\))30 b FG(denotes)d(the)i(shortest)f
(Manhattan)g(distance)g(between)g(components)e FE(i)j
FG(and)40 b FE(j)32 b FG(when)150 2761 y(placed)17 b(on)g(grid)f(cells)
i FE(k)i FG(and)c FE(l)23 b FG(in)17 b(realization)g
FE(a)1540 2774 y Fv(1)1592 2761 y FG(and)g FE(a)1772
2774 y Fv(2)1806 2761 y FG(,)h(and)f FE(o)2025 2731 y
Fo(0)2046 2761 y Fx(\()p FE(i)p Fy(;)9 b FE(k)q Fy(;)g
FE(a)2245 2774 y Fv(1)2280 2761 y Fy(;)21 b FE(j)r Fy(;)9
b FE(l)t Fy(;)g FE(a)2482 2774 y Fv(2)2518 2761 y Fx(\))18
b FG(counts)f(the)g(number)f(of)h(o)o(v)o(erlapping)150
2861 y(components)24 b FE(i)i FG(and)37 b FE(j)29 b FG(when)c(placed)g
(on)g(grid)g(cells)i FE(k)g FG(and)e FE(l)31 b FG(in)26
b(realization)f FE(a)2508 2874 y Fv(1)2568 2861 y FG(and)g
FE(a)2756 2874 y Fv(2)2791 2861 y FG(.)42 b(The)25 b(quadratic)f(model)
h(for)150 2961 y(component)18 b(placement)g(described)h(abo)o(v)o(e)f
(belongs)h(to)i(the)f(class)h(of)e FA(N)r(P)7 b FG(-hard)18
b(problems.)24 b(In)19 b(W)-7 b(eismantel)21 b(\(1992\),)150
3060 y(a)g(decomposition)c(approach)h(is)j(applied)f(to)g(the)g
(placement)f(problem.)150 3281 y Fp(3.2.2)81 b(Quadratic)19
b(Placement)150 3437 y FG(The)i(main)f(idea)h(in)g(the)g(quadratic)e
(placement)h(approach)f(is)j(to)f(model)f(the)h(placement)f(in)h(such)f
(a)i(w)o(ay)-5 b(,)20 b(that)h(it)h(can)f(be)150 3537
y(solv)o(ed)j(with)h(methods)f(of)h(con)m(v)o(e)o(x)e(optimization.)38
b(Some)24 b(quadratic)g(placement)g(approaches)f(\(Quinn)h(and)g
(Breuer,)150 3636 y(1979,)i(Quinn,)g(1975,)g(Johannes)g(and)h
(Eisenmann,)e(1998,)h(Kleinhans)h(et)g(al.,)h(1991,)e(Khan)g(and)h
(Sait,)h(2004\))e(use)h(a)150 3736 y(physical)19 b(force)g(scheme)h(to)
g(model)g(the)g(placement)f(problem)f(as)j(a)g(con)m(v)o(e)o(x)d
(optimization)g(problem.)275 3836 y(Other)g(approaches)e(use)j(an)g
(approximation)c(of)k(the)f(squared)g(total)g(wire)h(length)f(as)h(an)g
(objecti)n(v)o(e)e(function,)g(that)i(is)150 3935 y(minimized)g(under)g
(certain)h(constraints)g(\(Hall,)g(1970,)f(Blanks,)i(1985\).)j(W)m(ith)
d(this)g(quadratic)e(program,)f(a)j(placement)150 4035
y(is)k(\002rst)h(computed)c(without)i(w)o(orrying)e(about)i(o)o(v)o
(erlaps,)g(then)g(the)g(o)o(v)o(erlaps)f(are)h(remo)o(v)o(ed)e(by)i
(adding)g(certain)f(con-)150 4134 y(straints)h(to)f(the)g(quadratic)f
(program.)32 b(V)-5 b(isw)o(anathan)23 b(and)g(Chu)g(\(2004\))e(gi)n(v)
o(e)i(an)g(o)o(v)o(ervie)n(w)e(of)i(analytical)g(placement)150
4234 y(methods)16 b(and)g(presents)g(an)h(algorithm)e(called)i(\224F)o
(astPlace\224)g(for)f(the)h(quadratic)e(placement)h(approach)f(in)h
(standard)g(cell)152 4334 y FF(V)t(L)t(S)t(I)23 b FG(design.)h
(Recently)-5 b(,)19 b(ne)n(w)h(theoretical)f(results)i(on)f(quadratic)e
(placement)h(were)h(presented)f(by)h(Vygen)f(\(2006\).)275
4433 y(In)24 b(quadratic)g(placement)f(the)i(clique)g(model)f(and)g
(the)h(star)g(model)f(are)h(traditionally)f(used)g(as)i(models)e(for)g
(wire)150 4533 y(length)j(estimation.)49 b(In)28 b(the)h(clique)f
(model,)h(each)f(multi-terminal)f(net)h(is)h(represented)e(by)h(a)g
(clique)g(and)g(the)g(wire)150 4633 y(length)21 b(is)i(approximated)d
(by)i(the)g(sum)g(of)g(rectilinear)f(distances)h(o)o(v)o(er)f(all)i
(pairs)f(of)g(points.)31 b(In)22 b(the)g(star)h(model,)e(a)i(set)150
4732 y(of)e(terminals)h(in)f(a)h(net)g(is)h(replaced)d(by)h(a)h(star)g
(with)g(uniform)e(edge)h(weights)g(through)f(connecting)f(all)j
(terminals)f(to)h(a)150 4832 y(ne)n(w)e(additional)f(point,)g(the)h(so)
h(called)f(the)g(star)h(node.)150 5112 y FH(4)119 b(Modelling)31
b(Routing)150 5298 y FG(Although)16 b(wire)h(routing)f(is)j(a)f(long)f
(studied)g(problem,)f(fully)h(automatic)f(routing)g(of)i(densely)f
(pack)o(ed)f(boards)h(is)h(a)g(goal)150 5397 y(dif)n(\002cult)23
b(to)h(achie)n(v)o(e.)33 b(Ev)o(en)23 b(sho)n(wing)f(the)i(e)o
(xistence)e(of)i(a)f(feasible)h(routing)e(is)i FA(N)r(P)7
b FG(-complete.)33 b(Since)23 b(all)h(routing)150 5497
y(programs)f(used)h(in)h(practice)f(emplo)o(y)f(heuristics,)i(it)h(is)f
(ne)n(v)o(er)e(clear)i(if)g(the)f(problem)f(is)j(infeasible)d(per)i(se)
g(or)f(if)h(just)150 5596 y(the)20 b(algorithm)f(is)i(not)f(able)g(to)g
(\002nd)g(a)h(feasible)f(routing.)j(T)-7 b(o)20 b(quote)g(Dion)f
(\(1988\):)1892 5919 y(5)p eop end
%%Page: 6 7
TeXDict begin 6 6 bop 358 390 a FE(It)18 b(is)h(always)f(easy)g(to)g
(specify)g(a)g(r)l(outing)f(pr)l(oblem)h(that)f(is)i(too)f(har)m(d)f
(for)h(a)g(pr)l(o)o(gr)o(am)g(to)g(solve)o(.)24 b(One)18
b(need)358 490 y(only)e(add)h(wiring)g(to)h(the)f(pr)l(oblem,)g(or)h(r)
m(emo)o(ve)f(r)l(outing)f(layer)o(s.)25 b(In)17 b(this)h(sense)o(,)g
(designing)d(a)j(completely)358 589 y(automatic)j(r)l(outer)j(is)g(an)f
(impossible)g(task.)35 b(A)23 b(better)h(pr)l(o)o(gr)o(am)f(will)h
(simply)g(encour)o(a)o(g)o(e)d(engineer)o(s)i(to)358
689 y(design)j(har)m(der)h(pr)l(oblems.)45 b(The)28 b(only)e(r)m
(ealistic)i(goal)e(for)i(a)f(r)l(outing)g(pr)l(o)o(gr)o(am)f(is)i(to)g
(solve)f(pr)o(actical)358 789 y(layout)19 b(pr)l(oblems)h(well)h
(enough)d(that)i(manual)f(intervention)g(is)i(unnecessary)-5
b(.)150 1026 y Fq(4.1)99 b(Steiner)26 b(tr)n(ees)150
1182 y FG(Mathematically)-5 b(,)19 b(routing)g(a)j(single)e(net)h(can)g
(be)g(seen)f(as)i(a)f FE(Steiner)g(tr)m(ee)g FG(problem:)k(Gi)n(v)o(en)
20 b(an)h(edge-weighted)d(graph)150 1282 y FE(G)k Fx(=)f(\()l
FE(V)p Fy(;)9 b FE(E)d Fy(;)j FE(c)p Fx(\))27 b FG(and)e(a)i(non-empty)
c(subset)j(of)g(nodes)g FE(T)32 b FC(\022)17 b FE(V)37
b FG(called)26 b FE(terminals)p FG(,)i(\002nd)e(a)g(minimal)g(weight)g
(tree)g(in)g FE(G)150 1381 y FG(that)d(spans)g FE(T)11
b FG(.)34 b(The)22 b(problem)f(is)j FA(N)r(P)7 b FG(-hard)21
b(\(Karp,)h(1972\),)g(b)n(ut)h(it)g(is)h(easy)f(to)g(\002nd)g(feasible)
g(suboptimal)e(solutions.)150 1481 y(As)f(a)g(result)g(a)g(lar)o(ge)f
(v)n(ariety)f(of)i(heuristics)f(e)o(xists,)h(e.)13 b(g.,)20
b(T)-7 b(akahashi)18 b(and)h(Matsuyama)g(\(1980\),)e(Rayw)o(ard-Smith)h
(and)150 1581 y(Clare)j(\(1986\),)e(W)m(inter)h(and)g(Smith)h
(\(1992\),)e(Duin)h(and)g(V)-11 b(o\337)21 b(\(1994\),)d(Duin)j(and)f
(V)-11 b(o\337)21 b(\(1999\),)d(Ribeiro)j(et)g(al.)g(\(2002\).)150
1680 y(Solving)26 b(lar)o(ge-scale)f(Steiner)i(tree)f(problems)g(to)h
(optimality)f(is)h(also)g(possible,)h(see,)h(e.)13 b(g.,)29
b(W)-7 b(ong)26 b(\(1984\),)f(Chopra)150 1780 y(et)c(al.)f(\(1992\),)e
(K)m(och)i(and)f(Martin)h(\(1998\),)e(Polzin)i(and)f(Daneshmand)g
(\(2001\),)f(Polzin)i(\(2003\).)275 1879 y(Inte)o(grated)25
b(circuits)j(sometimes)g(ha)n(v)o(e)f(se)n(v)o(eral)h(pins)g(with)g
(the)g(same)g(functionality)-5 b(.)46 b(It)28 b(suf)n(\002ces)g(to)g
(connect)f(a)150 1979 y(net)d(to)h(an)o(y)e(of)h(se)n(v)o(eral)g
(possible)g(terminals.)37 b(This)25 b(can)f(be)g(modelled)f(as)i(a)g
FE(Gr)l(oup)f(Steiner)g(tr)m(ee)h FG(problem:)32 b(Gi)n(v)o(en)23
b(a)150 2079 y(weighted)15 b(graph)f FE(G)h Fx(=)f(\()l
FE(V)p Fy(;)9 b FE(E)d Fy(;)j FE(c)p Fx(\))17 b FG(and)e
FE(N)20 b FC(2)15 b Fe(N)h FG(pairwise)g(disjoint)g(non-empty)d
(subsets)j(of)g(nodes)f FE(Z)3011 2091 y Fr(n)3061 2079
y FC(\022)10 b FE(V)g FG(,)17 b FE(n)d FC(2)h(f)p FG(1)p
Fy(;)9 b(:)g(:)g(:)g FE(N)c FC(g)150 2178 y FG(called)23
b FE(terminal)f(gr)l(oups)p FG(,)h(\002nd)f(an)h(edge)f(set)i
FE(S)1541 2148 y Fo(\003)1598 2178 y FG(such)f(that)g
Fx(\()l FE(V)10 b Fx(\()p FE(S)2086 2148 y Fo(\003)2120
2178 y Fx(\))p Fy(;)f FE(S)2227 2148 y Fo(\003)2262 2178
y Fx(\))23 b FG(is)h(a)f(tree)g(with)g(minimal)f(weight)g(containing)
150 2278 y(at)i(least)g(one)f(node)f(from)g(each)h(group,)f(i.)14
b(e.,)20 b FE(V)10 b Fx(\()p FE(S)1632 2248 y Fo(\003)1667
2278 y Fx(\))j FC(\\)g FE(Z)1826 2290 y Fr(n)1881 2278
y FC(6)p Fx(=)28 b FG(/)-32 b(0)24 b(for)f(all)g FE(n)d
FC(2)h FE(N)5 b FG(.)35 b(F)o(or)23 b(a)h(graph)e FE(G)e
Fx(=)f(\()l FE(V)p Fy(;)9 b FE(E)d Fx(\))24 b FG(we)g(denote,)150
2378 y(for)c(a)g(subset)g(of)g(edges)g FE(F)25 b FC(\022)18
b FE(E)6 b FG(,)21 b(by)15 b FE(V)10 b Fx(\()p FE(F)d
Fx(\))21 b FG(the)g(set)g(of)e(all)i(nodes)f(incident)f(to)h(some)g
(edge)g FE(e)e FC(2)h FE(F)7 b FG(.)275 2477 y(It)28
b(is)h(possible)f(to)h(transform)d(a)j(group)e(Steiner)h(tree)g
(problem)f(back)g(into)h(a)h(normal)e(Steiner)h(tree)g(problem)f(by)150
2577 y(introducing)22 b(an)i(arti\002cial)h(node)e(for)h(each)g
(terminal)f(group)g(and)h(connecting)e(all)j(terminals)f(of)g(the)g
(group)f(with)h(this)150 2676 y(node.)48 b(The)27 b(edges)h(need)f(to)i
(ha)n(v)o(e)e(weights)h(that)g(are)g(high)g(enough)e(to)i(ensure)f
(that)h(only)g(one)f(of)h(these)g(edges)g(per)150 2776
y(terminal)22 b(group)g(is)i(part)f(of)g(the)g(solution.)33
b(In)23 b(the)g(transformed)e(problem,)h(only)g(the)h(arti\002cial)h
(nodes)e(are)h(terminals.)150 2876 y(The)c(approach)e(usually)i(tak)o
(en)g(in)h(practice)f(is)h(to)g(choose)e(the)i(terminal)e(to)i(use)g
(from)e(each)h(group)f(before)g(the)h(routing.)150 2975
y(This)27 b(is)h(called)e(the)h FE(pin)f(assignment)g(pr)l(oblem)g
FG(\(K)m(oren,)g(1972,)f(Mory-Rauch,)f(1978,)h(Brady,)h(1984\).)43
b(Usually)27 b(the)150 3075 y(objecti)n(v)o(e)c(is)j(similar)f(to)f
(the)h(one)f(used)h(in)f(component)f(placing.)37 b(F)o(or)24
b(lar)o(ge)i FF(I)t(C)r FG(s,)h(e.)13 b(g.,)26 b(microprocessors,)d(e)n
(v)o(en)h(the)150 3175 y(routing)18 b(between)i(the)g(chip)f(itself)i
(and)e(the)h(pins)g(of)g(the)g(package)e(has)j(to)f(be)g(considered)e
(\(Y)-9 b(u)19 b(et)i(al.,)f(1996,)e(K)o(ubo)h(and)150
3274 y(T)-7 b(akahashi,)19 b(2005\).)k(Zachariasen)c(and)h(Rohe)g
(\(2003\))e(present)h(an)i(algorithm)d(to)j(solv)o(e)e(group)g(Steiner)
h(tree)g(problems)150 3374 y(to)g(optimality)f(in)i(the)f(conte)o(xt)f
(of)j FF(V)t(L)t(S)t(I)h FG(design.)150 3611 y Fq(4.2)99
b(Steiner)26 b(tr)n(ee)g(packing)150 3767 y FG(Routing)e(all)h(the)f
(nets)h(at)g(once)f(can)h(be)f(modelled)f(as)j(a)f FE(Steiner)f(tr)m
(ee)h(pac)n(king)e FG(problem:)33 b(Gi)n(v)o(en)23 b(a)i(weighted)f
(graph)150 3867 y FE(G)16 b Fx(=)g(\()l FE(V)p Fy(;)9
b FE(E)d Fy(;)j FE(c)p Fx(\))18 b FG(and)f(a)i(set)f(of)g
FE(N)j FC(2)c Fe(N)h FG(pairwise)g(disjoint)f(non-empty)e(subsets)j(of)
g(nodes)f FE(T)2755 3879 y Fr(n)2806 3867 y FC(\022)12
b FE(V)e FG(,)18 b FE(n)e FC(2)g(f)p FG(1)p Fy(;)9 b(:)g(:)g(:)g(;)g
FE(N)c FC(g)19 b FG(called)150 3966 y FE(nets)p FG(,)i(\002nd)f(for)h
(each)f(net)h(an)f(edge)h(set)g FE(S)1325 3936 y Fo(\003)1324
3987 y Fr(n)1380 3966 y FG(such)g(that)g Fx(\()l FE(V)10
b Fx(\()p FE(S)1864 3936 y Fo(\003)1863 3987 y Fr(n)1898
3966 y Fx(\))p Fy(;)f FE(S)2005 3936 y Fo(\003)2004 3987
y Fr(n)2040 3966 y Fx(\))21 b FG(is)h(a)f(tree)g(that)g(spans)g
FE(T)2766 3978 y Fr(n)2801 3966 y FG(,)g(all)g(edge)f(sets)i(are)f
(pairwise)150 4066 y(disjoint,)c(and)g(the)g(total)h(weight)1104
4072 y FB(\345)1164 4084 y Fr(e)p Fo(2)1232 4041 y Fc(S)1278
4099 y Fi(n)p Fb(2)p Fi(N)1383 4084 y Fr(S)1414 4066
y Fb(\003)1414 4099 y Fi(n)1457 4066 y FE(c)1494 4078
y Fr(e)1543 4066 y FG(is)g(minimal.)23 b(Since)18 b(the)f(Steiner)g
(tree)g(problem)f(is)i(a)g(special)f(case)h(of)f(the)150
4166 y(Steiner)j(tree)g(packing)e(problem,)g(the)i(packing)e(problem)g
(is)j(also)f FA(N)r(P)7 b FG(-hard.)23 b(But)d(there)g(is)g(an)g
(important)f(dif)n(ference:)150 4265 y(for)g(the)i(packing)d(problem)g
(e)n(v)o(en)i(\002nding)e(a)j(feasible)f(solution,)f(without)g(re)o
(garding)e(the)j(weights,)g(is)h FA(N)r(P)7 b FG(-complete,)150
4365 y(see)24 b(Kramer)f(and)g(v)n(an)f(Leeuwen)h(\(1984\).)32
b(A)24 b(surv)o(e)o(y)e(of)h(dif)n(ferent)f(inte)o(ger)h(programming)d
(models)i(for)h(Steiner)h(tree)150 4465 y(packing)e(can)g(be)h(found)f
(in)h(Chopra)f(\(1994\).)32 b(W)-7 b(e)24 b(will)g(e)o(xamine)e(tw)o(o)
h(of)g(the)g(models,)g(which)g(ha)n(v)o(e)f(been)h(subject)f(to)150
4564 y(mathematical)d(and)h(practical)f(in)m(v)o(estigation,)f(in)i
(more)g(detail.)150 4785 y Fp(4.2.1)81 b(Multicommodity)20
b(\003o)o(w)g(f)n(ormulation)150 4941 y FG(The)25 b(multicommodity)e
(\003o)n(w)j(formulation)d(as)j(proposed)e(by)h(W)-7
b(ong)25 b(\(1984\))f(has)h(the)h(adv)n(antage)e(that)h(it)i(has)e
(only)g(a)150 5040 y(polynomial)16 b(number)h(of)h(v)n(ariables)g(and)g
(constraints:)23 b(Gi)n(v)o(en)18 b(a)h(weighted)e(bidirectional)g
(grid)h(digraph)e FE(G)h Fx(=)f(\()l FE(V)p Fy(;)9 b
FE(A)p Fy(;)g FE(c)p Fx(\))p FG(,)150 5140 y(and)28 b(sets)i
FE(T)493 5153 y Fv(1)528 5140 y Fy(;)9 b(:)g(:)g(:)h(;)f
FE(T)729 5152 y Fr(N)778 5140 y FG(,)31 b FE(N)e Fy(>)23
b FG(0,)31 b FA(N)52 b Fx(=)23 b FC(f)p FG(1)p Fy(;)9
b(:)g(:)g(:)g(;)g FE(N)c FC(g)29 b FG(of)g(terminals,)h(we)f
(arbitrarily)f(choose)g(a)h(root)f FE(r)3155 5152 y Fr(n)3214
5140 y FC(2)23 b FE(T)3332 5152 y Fr(n)3397 5140 y FG(for)28
b(each)150 5240 y FE(n)20 b FC(2)h FA(N)29 b FG(.)38
b(Let)24 b FE(R)d Fx(=)f FC(f)p FE(r)817 5252 y Fr(n)852
5240 y FC(j)p FE(n)g FC(2)h FA(N)29 b FC(g)24 b FG(be)g(the)h(set)g(of)
f(all)h(roots)e(and)h FE(T)32 b Fx(=)2230 5182 y Fl(S)2292
5259 y Fr(n)p Fo(2)p Fn(N)2454 5240 y FE(T)2494 5252
y Fr(n)2554 5240 y FG(be)24 b(the)g(union)f(of)h(all)h(terminals.)36
b(W)-7 b(e)150 5339 y(introduce)27 b(binary)g(v)n(ariables)39
b(\257)-39 b FE(x)1098 5309 y Fr(n)1098 5363 y(i)9 b(j)1176
5339 y FG(for)28 b(all)i FE(n)23 b FC(2)g FA(N)58 b FG(and)28
b Fx(\()p FE(i)p Fy(;)21 b FE(j)r Fx(\))k FC(2)e FE(A)p
FG(,)31 b(where)39 b(\257)-39 b FE(x)2471 5309 y Fr(n)2471
5363 y(i)9 b(j)2544 5339 y Fx(=)22 b FG(1)29 b(if)g(and)f(only)g(if)h
(arc)g Fx(\()p FE(i)p Fy(;)21 b FE(j)r Fx(\))j FC(2)g
FE(S)3620 5351 y Fr(n)3654 5339 y FG(.)150 5453 y(Additionally)j(we)j
(introduce)d(non-ne)o(gati)n(v)o(e)e(v)n(ariables)j FE(y)1889
5423 y Fr(t)1891 5477 y(i)9 b(j)1940 5453 y FG(,)31 b(for)e(all)e
FE(t)i FC(2)24 b FE(T)h FC(n)15 b FE(R)p FG(.)51 b(F)o(or)29
b(all)h FE(i)23 b FC(2)d FE(V)10 b FG(,)31 b(we)f(de\002ne)e
Fz(d)3512 5420 y Fu(+)3502 5478 y Fr(i)3587 5453 y FG(:)p
Fx(=)150 5568 y FC(f)p Fx(\()p FE(i)p Fy(;)21 b FE(j)r
Fx(\))d FC(2)g FE(A)p FC(j)12 b FE(j)20 b FC(2)14 b FE(V)c
FC(g)19 b FG(and)g Fz(d)950 5534 y Fo(\000)940 5592 y
Fr(i)1019 5568 y FG(:)p Fx(=)f FC(f)p Fx(\()12 b FE(j)r
Fy(;)d FE(i)p Fx(\))18 b FC(2)g FE(A)p FC(j)12 b FE(j)20
b FC(2)13 b FE(V)d FC(g)p FG(.)25 b(F)o(or)19 b(all)f
FE(t)23 b FC(2)18 b FE(T)2154 5580 y Fr(n)2189 5568 y
FG(,)h FE(n)e FC(2)h FA(N)29 b FG(,)20 b(we)f(de\002ne)g
Fz(s)9 b Fx(\()n FE(t)d Fx(\))18 b FG(:)p Fx(=)f FE(n)p
FG(.)24 b(The)19 b(follo)n(wing)1892 5919 y(6)p eop end
%%Page: 7 8
TeXDict begin 7 7 bop 150 390 a FG(formulation)24 b(models)i(the)g
(Steiner)h(tree)f(packing)f(problem)g(for)h(an)o(y)f(graph)h(requiring)
e(edge)i(disjoint)g(b)n(ut)g(not)h(node)150 490 y(disjoint)20
b(routings)f(of)h(all)g(nets.)1068 772 y(min)1239 790
y Fk(\345)1207 859 y Fr(n)p Fo(2)p Fn(N)1416 790 y Fk(\345)1365
863 y Fu(\()p Fr(i)p Fs(;)9 b Fr(j)r Fu(\))p Fo(2)p Fr(A)1562
772 y FE(c)1599 738 y Fr(n)1599 793 y(i)g(j)1659 772
y FG(\257)-39 b FE(x)1685 738 y Fr(n)1685 793 y(i)9 b(j)600
1109 y Fk(\345)527 1190 y Fu(\()p Fr(i)p Fs(;)g Fr(j)r
Fu(\))p Fo(2)p Ft(d)716 1165 y Fb(\000)715 1211 y Fi(j)731
1091 y FE(y)766 1057 y Fr(t)768 1112 y(i)g(j)846 1091
y FC(\000)964 1109 y Fk(\345)886 1190 y Fu(\()g Fr(j)r
Fs(;)p Fr(k)q Fu(\))p Fo(2)p Ft(d)1086 1165 y Ff(+)1085
1211 y Fi(j)1100 1091 y FE(y)1135 1057 y Fr(t)1146 1113
y(j)r(k)1216 1091 y Fx(=)1299 921 y Fm(8)1299 996 y(<)1299
1145 y(:)1479 989 y FG(1)82 b(if)33 b FE(j)21 b Fx(=)16
b FE(t)1414 1089 y FC(\000)p FG(1)82 b(if)33 b FE(j)21
b Fx(=)d FE(r)1846 1106 y Ft(s)7 b Fu(\()n Fr(t)t Fu(\))1479
1191 y FG(0)82 b(otherwise)2003 921 y Fm(9)2003 996 y(=)2003
1145 y(;)2453 1091 y FG(for)20 b(all)33 b FE(j)21 b FC(2)15
b FE(V)p Fy(;)7 b FE(t)23 b FC(2)c FE(T)j FC(n)12 b FE(R)403
b FG(\(5\))969 1353 y(0)18 b FC(\024)g FE(y)1147 1319
y Fr(t)1149 1373 y(i)9 b(j)1216 1353 y FC(\024)29 b FG(\257)-39
b FE(x)1336 1309 y Ft(s)7 b Fu(\()n Fr(t)t Fu(\))1336
1377 y Fr(i)i(j)2453 1353 y FG(for)20 b(all)h Fx(\()p
FE(i)p Fy(;)g FE(j)r Fx(\))f FC(2)e FE(A)p Fy(;)7 b FE(t)24
b FC(2)19 b FE(T)j FC(n)12 b FE(R)279 b FG(\(6\))757
1513 y Fk(\345)725 1583 y Fr(n)p Fo(2)p Fn(N)874 1496
y Fx(\()11 b FG(\257)-39 b FE(x)943 1461 y Fr(n)943 1516
y(i)9 b(j)1003 1496 y Fx(+)22 b FG(\257)-38 b FE(x)1117
1461 y Fr(n)1126 1516 y(j)r(i)1165 1496 y Fx(\))19 b
FC(\024)f FG(1)1112 b(for)20 b(all)h Fx(\()p FE(i)p Fy(;)g
FE(j)r Fx(\))f FC(2)e FE(A)603 b FG(\(7\))1123 1697 y(\257)-39
b FE(x)1149 1662 y Fr(n)1149 1717 y(i)9 b(j)1216 1697
y FC(2)19 b(f)p FG(0)p Fy(;)9 b FG(1)p FC(g)963 b FG(for)20
b(all)h FE(n)d FC(2)g FA(N)29 b Fy(;)9 b Fx(\()p FE(i)p
Fy(;)21 b FE(j)r Fx(\))f FC(2)f FE(A)333 b FG(\(8\))150
1879 y(In)25 b(the)g(model)f(abo)o(v)o(e)g(tw)o(o)h(dif)n(ferent)f
(nets)h(may)g(share)f(a)i(common)d(node.)39 b(T)-7 b(o)25
b(obtain)f(a)i(node)e(disjoint)h(solution)f(we)150 1979
y(ha)n(v)o(e)c(to)g(add:)1100 2126 y Fk(\345)1068 2196
y Fr(n)p Fo(2)p Fn(N)1299 2126 y Fk(\345)1226 2207 y
Fu(\()p Fr(i)p Fs(;)9 b Fr(j)r Fu(\))p Fo(2)p Ft(d)1415
2182 y Fb(\000)1414 2228 y Fi(j)1477 2109 y FG(\257)-39
b FE(x)1503 2074 y Fr(n)1503 2129 y(i)9 b(j)1571 2109
y FC(\024)1654 1992 y Fm(\032)1758 2058 y FG(0)82 b(if)33
b FE(j)21 b FC(2)d FE(R)1758 2158 y FG(1)82 b(otherwise)2349
2109 y(for)19 b(all)33 b FE(j)21 b FC(2)15 b FE(V)831
b FG(\(9\))275 2362 y(Results)23 b(using)e(this)h(model)f(to)i(compute)
d(optimal)h(routings)g(can)h(be)f(found)g(in)h(K)m(och)f(\(2004\).)28
b(The)22 b(adv)n(antage)e(of)150 2462 y(the)27 b(formulation)e(is)j
(that)f(it)h(modells)e(all)i(the)f(layers)g(simultaneously)-5
b(.)44 b(On)27 b(the)g(other)f(hand)g(the)h(size)h(of)f(the)g(graph)150
2561 y(gro)n(ws)20 b(rapidly)f(with)h(the)g(number)e(of)i(terminals.)25
b(T)-7 b(o)20 b(circumv)o(ent)e(this)j(problem)d(another)h(formulation)
f(can)i(be)g(used.)150 2782 y Fp(4.2.2)81 b(Undir)o(ected)20
b(partitioning)f(f)n(ormulation)150 2938 y FG(This)33
b(formulation)d(is)k(used)e(by)g(Gr)7 b(\250)-35 b(otschel)32
b(et)h(al.)g(\(1996a\))e(and)h(by)g(Jor)o(gensen)f(and)h(Me)o(yling)f
(\(2002\).)60 b(Gi)n(v)o(en)32 b(a)150 3038 y(weighted)d(grid)g(graph)f
FE(G)c Fx(=)f(\()l FE(V)p Fy(;)9 b FE(E)d Fy(;)j FE(c)p
Fx(\))p FG(,)32 b(and)d(terminal)g(sets)i FE(T)2014 3051
y Fv(1)2049 3038 y Fy(;)9 b(:)g(:)g(:)h(;)f FE(T)2250
3050 y Fr(N)2299 3038 y FG(,)32 b FE(N)d Fy(>)23 b FG(0,)32
b FA(N)53 b Fx(=)23 b FC(f)p FG(1)p Fy(;)9 b(:)g(:)g(:)g(;)g
FE(N)c FC(g)p FG(,)32 b(we)e(introduce)150 3137 y(binary)h(v)n
(ariables)g FE(x)762 3107 y Fr(n)762 3161 y(i)9 b(j)844
3137 y FG(for)32 b(all)g FE(n)25 b FC(2)g FA(N)62 b FG(and)32
b FE(i)12 b(j)28 b FC(2)d FE(E)6 b FG(,)35 b(where)d
FE(x)2078 3107 y Fr(n)2078 3161 y(i)9 b(j)2152 3137 y
Fx(=)25 b FG(1)32 b(if)g(and)g(only)g(if)g(edge)g FE(i)12
b(j)27 b FC(2)f FE(S)3214 3149 y Fr(n)3248 3137 y FG(.)62
b(W)-7 b(e)33 b(de\002ne)150 3237 y Fz(d)10 b Fx(\()l
FE(W)h Fx(\))23 b(=)h FC(f)p FE(i)12 b(j)25 b FC(2)f
FE(E)6 b FC(j)p FE(i)24 b FC(2)19 b FE(W)s Fy(;)i FE(j)26
b FC(62)20 b FE(W)11 b FC(g)29 b FG(for)c FE(W)34 b FC(\022)19
b FE(V)10 b FG(.)53 b(The)29 b(follo)n(wing)f(formulation)f(models)i
(edge)f(disjoint)i(one-layer)150 3336 y(routing:)695
3519 y(min)1582 3537 y Fk(\345)1551 3606 y Fr(n)p Fo(2)p
Fn(N)1730 3537 y Fk(\345)1708 3603 y Fr(i)9 b(j)r Fo(2)p
Fr(E)1845 3519 y FE(c)1882 3531 y Fr(i)g(j)1931 3519
y FE(x)1968 3485 y Fr(n)1968 3540 y(i)g(j)647 3748 y
Fk(\345)576 3820 y Fr(i)g(j)r Fo(2)p Ft(d)f Fu(\()m Fr(W)f
Fu(\))739 3730 y FE(x)776 3696 y Fr(n)776 3750 y(i)i(j)843
3730 y FC(\025)18 b FG(1)573 b(for)20 b(all)d FE(W)28
b FC(\032)14 b FE(V)p Fy(;)5 b FE(W)22 b FC(\\)12 b FE(T)2212
3742 y Fr(n)2265 3730 y FC(6)p Fx(=)27 b FG(/)-32 b(0)p
Fy(;)9 b Fx(\()l FE(V)21 b FC(n)8 b FE(W)i Fx(\))i FC(\\)g
FE(T)2802 3742 y Fr(n)2854 3730 y FC(6)p Fx(=)27 b FG(/)-32
b(0)p Fy(;)9 b FE(n)18 b FC(2)h FA(N)317 b FG(\(10\))613
3967 y Fk(\345)581 4037 y Fr(n)p Fo(2)p Fn(N)739 3949
y FE(x)776 3915 y Fr(n)776 3970 y(i)9 b(j)843 3949 y
FC(\024)18 b FG(1)573 b(for)20 b(all)h FE(i)12 b(j)21
b FC(2)e FE(E)1570 b FG(\(11\))739 4150 y FE(x)776 4116
y Fr(n)776 4171 y(i)9 b(j)843 4150 y FC(2)19 b(f)p FG(0)p
Fy(;)9 b FG(1)p FC(g)424 b FG(for)20 b(all)h FE(n)d FC(2)g
FA(N)29 b Fy(;)9 b FE(i)j(j)22 b FC(2)c FE(E)1301 b FG(\(12\))150
4333 y(The)33 b(model)f(can)h(be)f(further)g(strengthened)f(with)i(se)n
(v)o(eral)f(v)n(alid)h(inequalities)f(as)i(described)d(in)i(Gr)7
b(\250)-35 b(otschel)33 b(et)g(al.)150 4433 y(\(1996a,b\),)23
b(Gr)7 b(\250)-35 b(otschel)26 b(et)h(al.)g(\(1997\).)42
b(By)27 b(using)e(capacities)i(on)f(the)g(edges)h(the)f(formulation)e
(can)i(be)h(e)o(xtended)d(to)150 4532 y(model)19 b(an)h(arbitrary)f
(number)f(of)i(layers.)275 4632 y(Since)g(there)f(is)i(only)e(one)h
(layer)f(e)o(xplicitly)g(in)h(the)g(model,)f(the)h(assignment)f(of)h
(the)g(wires)g(to)g(the)g(layers)g(has)g(to)h(be)150
4731 y(done)g(in)i(a)f(subsequent)f(step.)31 b(This)23
b(is)g(called)f(the)g FE(layer)g(assignment)h FG(problem.)30
b(Assigning)21 b(layers)h(means)g(deciding)150 4831 y(the)g(number)f
(and)g(location)g(of)h(the)h(vias)f(on)g(the)i FF(P)t(C)t(B)r
FG(.)32 b(As)23 b(e)n(v)o(ery)e(via)h(increases)g(the)h(poduction)d
(costs)i(and)g(decreases)150 4931 y(the)h(production)c(yield,)k
FE(via)f(minimization)g FG(is)i(the)e(goal)g(of)h(this)g(step.)32
b(Brady)22 b(and)g(Bro)n(wn)g(\(1984\))e(ha)n(v)o(e)i(designed)g(an)150
5030 y(algorithm)h(that)h(guarantees)f(that)i(an)o(y)e(solution)h(in)g
(the)g(abo)o(v)o(e)f(model)h(can)g(be)g(routed)f(in)i(four)e(layers,)i
(b)n(ut)f(deciding)150 5130 y(whether)19 b(three)h(layers)g(are)g
(enough)e(is)j(sho)n(wn)f(to)g(be)g FA(N)r(P)7 b FG(-complete)18
b(by)i(Lipski)g(\(1984\).)275 5230 y(In)27 b(practice,)i(since)f(the)g
(components)d(are)j(already)f(placed)g(\(and)g(can)g(only)g(be)h
(placed)f(on)g(the)h(outer)f(layers)h(of)150 5329 y(the)c
FF(P)t(C)t(B)r FG(\))f(the)f(layers)g(for)f(the)h(terminals)f(are)h
(already)f(\002x)o(ed.)30 b(Gr)7 b(\250)-35 b(otschel)21
b(et)h(al.)h(\(1989\))d(sho)n(w)h(ho)n(w)h(to)g(transform)e(this)150
5429 y(problem)d(into)h(a)h(max-cut)e(problem)g(and)h(describe)f(e)o
(xact)h(and)g(heuristic)g(solution)g(approaches.)k(Further)c(graph)f
(based)150 5528 y(approaches)22 b(can)h(be)h(found)e(in)i(Chen)f(et)h
(al.)g(\(1983\),)e(Naclerie)h(et)h(al.)g(\(1987\),)e(Xiong)h(and)g(K)o
(uh)g(\(1988\),)e(F)o(ang)i(et)h(al.)150 5628 y(\(1991\),)18
b(Chang)h(and)h(Cong)g(\(1997\),)e(Chou)h(and)h(Lin)g(\(1998\).)1892
5919 y(7)p eop end
%%Page: 8 9
TeXDict begin 8 8 bop 150 390 a Fq(4.3)99 b(Heuristic)25
b(r)n(outing)150 546 y FG(In)e(practice)f(heuristics)h(are)g(used)g(to)
h(route)e(the)h(nets)h(\(Dysart)e(and)h(K)m(oifman,)f(1979,)f(Aranof)n
(f)h(and)g(Ab)n(ulaf)n(\002o,)g(1981,)150 645 y(Na)n(v)o(eda)29
b(et)i(al.,)g(1986,)d(Dion,)i(1988\).)53 b(There)30 b(are)g(tw)o(o)g
(basic)h(techniques)e(for)g(\002nding)g(paths)i(between)e(terminals)150
745 y(\(Pecht,)d(1993\):)37 b(grid)27 b(based)f(maze)h(routers)f(as)i
(introduced)c(by)j(Lee)g(\(1961\),)e(Ak)o(ers)i(\(1972\))d(and)j
(gridless)g(routers,)150 845 y(as)e(described)e(by)i(Lauther)e
(\(1980\),)f(Finch)i(et)h(al.)g(\(1985\),)d(Schiele)j(et)g(al.)g
(\(1990\).)35 b(Since)25 b(just)g(trying)f(to)g(route)g(each)150
944 y(connection)29 b(one)h(after)h(the)g(other)f(is)i(not)e(lik)o(ely)
h(to)g(result)g(in)g(a)h(feasible)e(routing)g(usually)g(one)h(of)f(the)
h(follo)n(wing)150 1044 y(tw)o(o)23 b(techniques)f(is)i(emplo)o(yed:)30
b(In)23 b(so-called)f FE(dynamic)g FG(or)h FE(rip-up)g(and)f(r)m(etry)i
FG(routing)d(whene)n(v)o(er)h(a)h(wire)h(cannot)e(be)150
1144 y(routed,)f(the)h(blocking)f(wires)h(are)g(remo)o(v)o(ed)e(and)i
(rerouted)e(later)i(after)g(the)g(ne)n(w)g(wire)g(has)h(been)e
(successfully)h(routed)150 1243 y(\(Dees)31 b(and)e(Smith,)h(1981,)f
(Rosenber)o(g,)f(1987,)h(Raith)i(and)f(Bartholomeus,)e(1991\).)54
b(In)30 b FE(iter)o(ative)g FG(routing)f(se)n(v)o(eral)150
1343 y(passes)f(are)f(made.)45 b(In)27 b(each)g(pass)g(all)h(the)f
(connections)f(are)h(routed)e(re)o(gardless)h(whether)g(ille)o(gal)h
(crossings)f(occur)-5 b(.)150 1443 y(In)30 b(the)h(ne)o(xt)e(iteration)
h(some)g(penalty)g(on)g(those)g(areas)g(of)g(the)h(board)e(is)i
(increased)f(that)g(e)o(xperience)f(congestion.)150 1542
y(The)g(hope)g(is)h(that)g(this)g(will)g(lead)g(to)f(dif)n(ferent)f
(routes)h(of)h(some)f(wires)h(in)g(the)f(ne)o(xt)g(pass)h(\(Fisher,)f
(1978,)f(Moosa)150 1642 y(and)23 b(Edw)o(ards,)f(1995\).)33
b(Ev)o(en)22 b(hybrid)f(approaches)g(of)j(these)f(techniques)f(are)h
(possible)g(\(Cong)g(and)f(Madden,)g(1998,)150 1741 y(Hadsell)h(and)e
(Madden,)g(2003\).)30 b(A)23 b(further)e(technique)g(that)h(can)h(be)f
(used)g(on)g(top)g(of)g(the)h(ones)f(described)f(is)i(to)g(b)n(uild)150
1841 y(routing)j(hierarchies)g(by)i(partitioning)d(the)j(board)e(and)h
(\002rst)h(routing)e(between)h(important)f(\(congested\))g(areas)h
(only)150 1941 y(and)18 b(then)g(going)f(into)h(smaller)g(detailed)g
(areas)g(\(Ozdal)g(and)f(W)-7 b(ong,)18 b(2004b\).)k(F)o(or)c(e)o
(xample,)f(Ka)o(w)o(amura)g(et)i(al.)g(\(1986\))150 2040
y(describe)25 b(a)h(hierarchical)e(dynamic)g(router)g(that)i(emplo)o
(ys)e(three)h(le)n(v)o(els)h(of)f(hierarchy)-5 b(.)38
b(The)25 b(hierarchy)e(can)j(also)g(be)150 2140 y(used)f(to)h(include)e
(further)g(concepts)g(lik)o(e)i(electromagnetic)d(compatibility)g(as)j
(reported)e(by)h(Schmidt)g(et)g(al.)h(\(1995\).)150 2240
y(Ozdal)d(and)h(W)-7 b(ong)23 b(\(2004a\))f(describe)g(an)i(algorithm)e
(for)h(high)g(performance)e(single-layer)h(b)n(us)i(routing,)e(where)i
(the)150 2339 y(objecti)n(v)o(e)19 b(is)i(to)f(match)g(the)g(lengths)g
(of)g(all)g(nets)h(belonging)d(to)i(each)g(b)n(us.)150
2619 y FH(5)119 b(Conclusion)150 2805 y FG(Continuing)27
b(adv)n(ances)g(in)i(production)d(techniques)h(increase)h(the)g
(requirements)f(on)h(physical)f(layout)h(algorithms.)150
2905 y(From)17 b(a)h(theoretical)e(point)h(of)g(vie)n(w)h(it)g(w)o
(ould)f(be)g(ob)o(viously)f(best)i(to)f(use)h(a)g(holistic)g(approach)d
(to)j(\002nd)f(a)h(physical)g FF(P)t(C)t(B)150 3004 y
FG(design.)23 b(It)18 b(is)h(clear)e(that)h(this)g(is)g(f)o(ar)g(from)e
(reality)h(in)h(practice.)23 b(While)18 b(some)g(subproblems)d(such)i
(as)i(via)e(minimization)150 3104 y(and)j(layer)g(assignment)g(tend)g
(to)h(be)g(reinte)o(grated)d(with)j(routing,)e(ne)n(w)h(subproblems)f
(lik)o(e)i(pin)f(assignment)g(for)g(the)i FF(I)t(C)150
3203 y FG(packages)d(emer)o(ge.)275 3303 y(F)o(or)26
b(research,)i(one)f(of)g(the)g(biggest)f(shortcomings)f(is)j(the)g
(absence)e(of)h(publicly)f(a)n(v)n(ailable)g(benchmark)f(cases.)150
3403 y(Readers)31 b(with)g(more)f(than)g(super\002cial)h(interest)f(in)
h(the)g(subject)g(presented)f(here)g(may)g(ha)n(v)o(e)h(wished)f(to)h
(obtain)f(a)150 3502 y(sound)18 b(and)h(f)o(act)h(based)f(judgment)e
(of)i(the)h(relati)n(v)o(e)e(merits)i(and)f(disadv)n(antages)e(of)j
(the)f(v)n(arious)f(approaches)g(to)h(place-)150 3602
y(ment)26 b(and)g(routing)g(surv)o(e)o(yed)e(in)j(this)g(paper)-5
b(.)44 b(W)-7 b(e)28 b(w)o(ould)e(lo)o(v)o(e)f(to)i(present)f(such)h
(\002ndings,)g(b)n(ut)f(for)h(man)o(y)e(reasons)150 3702
y(it)k(is)g(impossible)f(to)h(mak)o(e)f(f)o(air)g(test)i(runs)d
(necessary)h(for)g(such)g(comparisons.)48 b(Clearly)-5
b(,)30 b(e)n(v)o(ery)d(group)f(of)j(authors)150 3801
y(sho)n(ws)i(in)f(their)h(papers)f(that)h(their)f(approach)e(has)j
(some)g(adv)n(antages)e(in)i(comparison)d(to)j(other)f(methods)f(on)i
(the)150 3901 y(e)o(xamples)26 b(considered.)42 b(But)27
b(it)h(is)f(not)g(possible)f(to)h(obtain)f(the)g(codes)h(and)f(the)h
(test)g(instances)g(to)f(mak)o(e)h(\223neutral\224)150
4000 y(runs.)40 b(Moreo)o(v)o(er)m(,)24 b(production)e(codes)j(are)h
(usually)f(\002ne)g(tuned)g(to)g(speci\002c)h(customer)e(demands,)h
(particular)f(layout)150 4100 y(properties,)17 b(and)i(design)f(rules)g
(to)h(which)f(competititors)g(\(usually\))f(do)i(not)f(get)h(access.)25
b(In)18 b(this)i(sense)f(no)f(tw)o(o)h(routing)150 4200
y(or)k(no)g(tw)o(o)g(placement)f(programs)f(address)i(e)o(xactly)f(the)
i(same)f(problem.)32 b(This)24 b(de\002cienc)o(y)d(could)i(be)g
(remediated)e(if)150 4299 y(the)k(PCB/VLSI)i(layout)e(community)e(w)o
(ould)i(ha)n(v)o(e)g(access)h(to)f(a)h(lar)o(ge)f(collection)f(of)h
(real)h(instances,)g(including)e(all)150 4399 y(speci\002c)k(layout)e
(requirements,)i(allo)n(wing)e(to)i(test)g(ne)n(w)g(codes)f(and)g
(ideas)g(in)h(an)g(open)e(competiti)n(v)o(e)g(en)m(vironment.)150
4499 y(Unfortunately)-5 b(,)18 b(the)i(electronic)g(industry)f(does)i
(not)f(seem)h(to)g(be)g(ready)e(to)i(mak)o(e)f(up-to-date)f(realistic)i
(test)h(instances)150 4598 y(publicly)k(a)n(v)n(ailable)i(and)f(thus,)i
(\223benchmarking)24 b(suites\224)k(consist)g(only)f(of)h(small)g
(academic)f(\(made-up\))e(e)o(xamples)150 4698 y(with)20
b(questionable)f(bearing)g(on)g(real)i(layout)e(problems.)275
4797 y(This)i(situation)h(not)f(only)g(mak)o(es)g(it)h(dif)n(\002cult)g
(to)f(test)i(ne)n(w)e(ideas,)h(especially)f(for)g(people)g(without)g
(access)h(to)g(tool)150 4897 y(suites,)f(it)h(also)f(mak)o(es)g(it)h
(dif)n(\002cult)e(to)h(measure)f(adv)n(ancement)e(in)j(the)g(\002eld.)
27 b(While)22 b(\002nding)d(an)i(optimal)f(solution)g(for)150
4997 y(a)27 b(contemporary)f FF(P)t(C)t(B)k FG(layout)c(problem)f
(might)h(be)h(completely)e(out)i(of)f(reach,)i(it)f(could)f(be)h
(possible)f(to)h(solv)o(e)g(the)150 5096 y(problems)17
b(from)h(20)g(years)g(ago)g(to)h(optimality)-5 b(.)23
b(This)18 b(might)g(gi)n(v)o(e)g(an)h(interesting)e(insight)h(in)h(ho)n
(w)f(much)g(is)h(lost)g(by)g(the)150 5196 y(standard)g(approach)f(of)i
(partitioning)e(the)i(problem)f(into)h(se)n(v)o(eral)f(hierarchically)g
(e)o(x)o(ecuted)f(steps.)1892 5919 y(8)p eop end
%%Page: 9 10
TeXDict begin 9 9 bop 150 4141 a @beginspecial 0 @llx
0 @lly 556 @urx 395 @ury 4230 @rwi @setspecial
%%BeginDocument: imgp1785text.eps
%!PS-Adobe-2.0 EPSF-2.0
%%Title: imgp1785.fig
%%Creator: fig2dev Version 3.2 Patchlevel 4
%%CreationDate: Wed May 31 12:59:33 2006
%%For: bzfkocht@opt24 (T. Koch,ZIB)
%%BoundingBox: 0 0 556 395
%%Magnification: 1.0000
%%EndComments
/$F2psDict 200 dict def
$F2psDict begin
$F2psDict /mtrx matrix put
/col-1 {0 setgray} bind def
/col0 {0.000 0.000 0.000 srgb} bind def
/col1 {0.000 0.000 1.000 srgb} bind def
/col2 {0.000 1.000 0.000 srgb} bind def
/col3 {0.000 1.000 1.000 srgb} bind def
/col4 {1.000 0.000 0.000 srgb} bind def
/col5 {1.000 0.000 1.000 srgb} bind def
/col6 {1.000 1.000 0.000 srgb} bind def
/col7 {1.000 1.000 1.000 srgb} bind def
/col8 {0.000 0.000 0.560 srgb} bind def
/col9 {0.000 0.000 0.690 srgb} bind def
/col10 {0.000 0.000 0.820 srgb} bind def
/col11 {0.530 0.810 1.000 srgb} bind def
/col12 {0.000 0.560 0.000 srgb} bind def
/col13 {0.000 0.690 0.000 srgb} bind def
/col14 {0.000 0.820 0.000 srgb} bind def
/col15 {0.000 0.560 0.560 srgb} bind def
/col16 {0.000 0.690 0.690 srgb} bind def
/col17 {0.000 0.820 0.820 srgb} bind def
/col18 {0.560 0.000 0.000 srgb} bind def
/col19 {0.690 0.000 0.000 srgb} bind def
/col20 {0.820 0.000 0.000 srgb} bind def
/col21 {0.560 0.000 0.560 srgb} bind def
/col22 {0.690 0.000 0.690 srgb} bind def
/col23 {0.820 0.000 0.820 srgb} bind def
/col24 {0.500 0.190 0.000 srgb} bind def
/col25 {0.630 0.250 0.000 srgb} bind def
/col26 {0.750 0.380 0.000 srgb} bind def
/col27 {1.000 0.500 0.500 srgb} bind def
/col28 {1.000 0.630 0.630 srgb} bind def
/col29 {1.000 0.750 0.750 srgb} bind def
/col30 {1.000 0.880 0.880 srgb} bind def
/col31 {1.000 0.840 0.000 srgb} bind def
end
save
newpath 0 395 moveto 0 0 lineto 556 0 lineto 556 395 lineto closepath clip newpath
-167.2 521.6 translate
1 -1 scale
/cp {closepath} bind def
/ef {eofill} bind def
/gr {grestore} bind def
/gs {gsave} bind def
/sa {save} bind def
/rs {restore} bind def
/l {lineto} bind def
/m {moveto} bind def
/rm {rmoveto} bind def
/n {newpath} bind def
/s {stroke} bind def
/sh {show} bind def
/slc {setlinecap} bind def
/slj {setlinejoin} bind def
/slw {setlinewidth} bind def
/srgb {setrgbcolor} bind def
/rot {rotate} bind def
/sc {scale} bind def
/sd {setdash} bind def
/ff {findfont} bind def
/sf {setfont} bind def
/scf {scalefont} bind def
/sw {stringwidth} bind def
/tr {translate} bind def
/tnt {dup dup currentrgbcolor
4 -2 roll dup 1 exch sub 3 -1 roll mul add
4 -2 roll dup 1 exch sub 3 -1 roll mul add
4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb}
bind def
/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul
4 -2 roll mul srgb} bind def
/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def
/$F2psEnd {$F2psEnteredState restore end} def
$F2psBegin
10 setmiterlimit
0 slj 0 slc
0.06299 0.06299 sc
%
% Fig objects follow
%
%
% here starts figure with depth 50
% Polyline
%
% pen to black in case this eps object doesn't set color first
0 0 0 setrgbcolor
% Begin Imported EPS File: imgp1785.eps
%%BeginDocument: imgp1785.eps
%
n gs
2655 2025 tr
15.875676 -15.875676 sc
0 -370 tr
-20 -20 tr
sa
n 20 20 m 575 20 l 575 390 l 20 390 l cp clip n
countdictstack
mark
/showpage {} def
% EPS file follows:
%!PS-Adobe-3.0 EPSF-3.0
%%Creator: jpeg2ps V1.9 by Thomas Merz
%%Title: IMGP1785-02.jpg
%%CreationDate: Wed May 31 10:11:46 2006
%%BoundingBox: 20 20 575 390
%%DocumentData: Clean7Bit
%%LanguageLevel: 2
%%EndComments
%%BeginProlog
%%EndProlog
%%Page: 1 1
/languagelevel where {pop languagelevel 2 lt}{true} ifelse {
(JPEG file 'IMGP1785-02.jpg' needs PostScript Level 2!\n) dup print flush
/Helvetica findfont 20 scalefont setfont 100 100 moveto show showpage stop
} if
save
/RawData currentfile /ASCII85Decode filter def
/Data RawData << >> /DCTDecode filter def
20 20 translate
555.00 370.00 scale
/DeviceGray setcolorspace
{ << /ImageType 1
/Width 2325
/Height 1550
/ImageMatrix [ 2325 0 0 -1550 0 1550 ]
/DataSource Data
/BitsPerComponent 8
/Decode [0 1]
>> image
Data closefile
RawData flushfile
showpage
restore
} exec
s4IA0!"_al8O`[\!!)1$3.pD?4[);!s8W,!sJi4!sAf3!>tn>!
sAT-&I&jk#;HlX;$[j[@4(aVOiJs%H;;e)Q-nL$1^
F+_?XAZHD
R+*V]5W.^+m"al[m>XF?^-YUU:'K#.N[p\?R0_HKb*eT6/u3B!Hl
i'Y8%,O`n2@DaeC6>C!%k8BV)]Q1+G:e_nQh7\jQocBX=/@Q='B=bKdCRa.!gc-.
LCAH-*tq?UUP)=8kJO%O?CU`LdJ^jaSJu\B^Ybqnt[_4Ec@:QQ@ph=3C:Gb=!*/r
#ZFkOH&@4(WGK9b[6X4JEDqtRMH80RQ,akG<>G%h-'e#^MEl$qId%q*=3,6sT8=r
dV(I5%8O5P<'jg"*HH$Mh$*,m\)KfjFD1o$fD=o%GW0496^^\S4ETDCSk#H.in+PNcF
9*D'-,g;Z59-]2c\SOj1Xf?\92]d:%emL!f!&a<5)l,K!%DHfb+S5shm\$]-h%'m
O!W,n$2C3rZ.)"?+$aN@:C9&l&T`Z%cPncHNZUkS1JhCAO*:;`MkC"+eNfPhp!K1
V79[IRKt5(P&J7C?tpQO>FA!M3+V=?f4)U//CoBjP7HJB*kGq6,tk%7ZeS:R5(KmYVK,:8kI(_.u"sQN/6o
P_+i6^_P.D03XVQI"AiB]/kI3MPgkpa(WJ&V9
15F!85VVG:DLo[ll`,PT3>et:c[6*cr6lZ/Wq)D_FKulbI976.&A"`"X5d$b*6o$
!E.>Uh6&,Vf[=):-fRZ]9N*H3`O?)EPrRDe5n7iro3HMJAV?;@oCC#%M1Ms5j=+;
[@\a^;*,Rp*E1@=b@[c(JnGX,`Ppo+S.is0HUX#BEVR6!C-2?eG)!>g`ZdsHb4jn
Xf7qpI\S7[:(Niq=`YE5O).]%,cUVJ5^S5YD;=igtN#C\,KJs>>m=ZqKiWBuh)&q
;CpBh9[$r9NFPTQ61,e5WEXkPBGCc$&5L,k;>UeI"EF&'c#!gIJKkEN>F&&^ChF^\Q&cndm!\m7uUuTa
q0[XF1,e2!MKf3EfY;#+2:gLHIc5>tFNMUQJ)"Q4Q'cr(B]dDuB
/r,[9h8hIT8+dOaJnrk,k55&`*"bmp_1Y,'\o0oA2T%9kLRA-SW'BFE'%$P'IdbO
3$%7(=D4aU%gT>;jZ?6PR;@Z,Pb29'8l`;ZD`Hnp*L;(!'Xg!G9CReR:rPtG4"<]
uOb$>nO>6u&NU_p!lpW6X#\bD75;Ptp'p`1]eo=G?YX&Ck`3R84"YP1)jA]-4+[f
t3q$I+dT#=N96&qe)Zfg)oS!OSmjTc>Gk*1t17i:Ba[Mm6olphqj>\PdQ8"D>"ga
OY+e$=#Vlsn2'-J[;T>'#amYC]OTe$V__A^of!H.QR\OJ8h?;4IatA'UN:<4qdGN
2Ji;.SJ@6i,/dYED3&,[eqrlh5N!(Eea!3;mBQ]]d2&E!"]<&P/q`^"7)D=Qn9bo
JlImn/UWBPQ=?9o;N=P;K/C<3mf$mRSjZ-%Ve+>89MmrK_OJlmAMj.d!JZZ"[!^_d'1
4$[VEf-Pb=\NG!+?>+'dM5Vbmc9Yi$AW1`*,DO_6R?@_R7[-qX-`:McJN+t6^+8^
E_;KZ%jU&36eYD`lc?$d$2^']E-31\7f>PCRZ0OJb^35'3Z@Q06SbG:IfUm@(@uQ
K0la#K9Rc9D&f@:8S#$YW/hp'__gG5Z,V!mD.mBnd4Y]Re^VWa
@X1Ee-PreSCbh38647<-d*3(dLifjgYCQsT+_?rp3Ui/m_=+=:u0.OLK3m7R]UUV
Q2^huo#>C9Gf_s1X`7,)tCkRX-01C>Pb65%%BkXi44RIPZ3r!/dbC_A&&^Ul:mc.EIGnTdhXf5b8L_8XC0
fG=$^m]A;1`c;TfTZ"#(8P(eJGk9ON??AT*t7b6"`T2^]%E+OQ\h6hqacjG\KAil
%
dlY.X<3#kol,JmVH1)o'L!-X`l)E3TfQH!q%*d#b;D6+G[Q%48XW@Y98if^at[9^
aljG'-p91]G.cfIhW[a\1ZdQun;X:l1t_Ns0m4U*C=k(`[T$2S,3)/0F#?j),H="
HUji=ia`^s=5>gTZbLjIlPc_8gk\,:.*IJ/J*+Wt?Zk=Ui%bZ]<01O\tP-V$s/E.
8tNe8lLV*)8lW/aSB@Ho3UY8"m!&EMXX5cWZ:6mh/#YM-qPf-qNWnDj`rr=L,fNB7eVetgt/+Cc+c3A?MC=0Q=!*[TY<`V9oS5j+-a')
H'!=?e_%Oot@7RV@X'4klQgn3b$Ajf(@.'eB1*lU:]=3+Tc>ek%p)MpIF!h>$bNS
l5p`al,1a[Jpb/deA.?&HdqjJ?'L1NU5g1pk_n,IY$H!D,a::KjSKj,$_)=@rg[:
O7J2EEm`JM"/?%NMQ]O8sKE&1n/l''TPd_9tKX_#Q][gN`7aiT4p!C%&pb=."qhB
a(g^n]C/Ajac^_::d;?i7#I>ucG&'>WXLC?+ZUeZmhgEp$GX
`0cG_1-7!^;&jc$-_jWu'DH'"Sg_j/CA=]6'1mHdh6BJ"`[mrNqc;DBV@c_KqE/L
'F@A1+q4+]HTN)SjZV2;?7jglA"E:.F/!:fiAM/\Rt`MJeaNg'S",9D96ku2G:`(
WTeB],.`njQ')]4$0nh]$HSP+#(&K.ppjEIf4fe92OZN);EYe5+a693*Qii`IX-r
&!hXBBfEr3ND6iYpS2V]NO8J?jS=mNSIJ#_Qp$5pK$:X2?8+[J-JNG?bk/,q(F5a
gcK6l5Q_1k!X2J-mSWCNQTOQd.paP[aWFGRT;c3dSC9%)LENRhOpV604K>#IhbBR
LKE'KfcP%jSZtsZZ!<0SRWmP]5:??#n3@?/T)fj%E$CG+f'4hLrOP&QYm(5k$o@DR&o
t6@sL0M^W9c[d237'd'1_khlQ(T9n*h6_)n>S@I`-k?qPTGS\[6>3ojHS[0cfnD4
Apc+?[R:n+_ba:B$cbF1!9@/2T[\oT!LmoK6rc1X`'T&F1WR]FQ4e-`YhL-`l.L$TDF/om
Fr$P"HfG#X%arq(18@o4/)/_9Qm]99!LfN2["4)L9u?]f06aDh<4KO^I=Btde)"`
hnZK$f!+hm:NHGK"V&!,f5[3,"@*,UVB-P(83ni;$3G_7L\0()LhCPbVtlZaEK8g
+9JdQdZ![e9dlSFsj\"LfQpJR7O^%GtL.P:cP@bg*+R:>:e-*Bke[A5m)\YDjTa(
](Z9[m$QAtm?!`@dq$!C/IhI1P&5,/9^10&fHMNeH*HWrq/Vc
'P,AnE["e*X,oJ)UH;eSYcY:GmP2a'Vk:ja.ODCEarXX;;+lfdG80jQ7&]gd8859
6)$rm3h2Q)HaCjl55i7dGHC57#NJiPPgDP:b!c`dBqGcZ>G0K%?8X41+DVp.06)P
g6g)3MXU:mAh50E".W9hDZWpI+"#h34+9^
:.>)\tlR/H^(6;%1pY12YQNG)gVc4j]UqGDs:7XD78ZUgJX[eH$q0bbm)';!A?cR
9-&R*g9$aHg*;-WmEH3=HoN"ucaP)j'"VSV
U>22+3"qKU^Pb-d'4aPS#7O!)o'0WnoJ!m;rp5:K26<+U?V"+b]=Caej63W=-RYh@OJ65T`PInHi6CUO?([1Of3\
JaT'V]scqiLTC,Bh:ImhR[gQ7ClIQHU^3eC:6R2)__*#XG#$eR7UJI
aV?+m3u+"njE4rP*<-#aBqM]uLaj_ujTFU?[0G-Y_Lsb)N"NM"%AM4Hna=J8+H58
AR]i>u[5*`93_E@r=$1r=mC'uLI9VYY^l2gRL`1$\Q)qY4-muRM6bh;k0[c2o`W>
6[!^3OjQ+/N5I;2?[^tNbK:X9.?;^0a#2i".C,l*JNeCs:b.4mIt^DR*SR*q+]N1
h[<*"V@3Aa-)FFSMd;B7]WLZYQrCLW!_B4LiX?8('5/*
Z[)"=/LAW,^1N_[p;!+VTXMq,lAc'UfF\&_&SIaeCp@.!D5Z@eCWSj8&6ZM:X%:Lm4
l'OUnpFAYu7$r7I`n9\Bh:#j(2U-a@7jDW)9[:S9&G/bta=tUU[RZD(`VGmh)I-J\Qlo21?
5id(i^2DHSNYTEY_583]gY-`]Pn-KGoI.\r[BmsIVT_;f[g+!9@<"'c#ik/J@U!#
6<)e`IiAAs%g18,f?:nql"dOb&SGLhG&5_V3l+<&ga%=W'h'$/
g!*Yq57O[1T$;C=4\s14^(Sn;!CO'\)M1DbIuV"U*msk;:u-3un>PD#?9Z"]nF,7
RB]1M:jKdHMVd]J'D=RKm:
N>s'P+,)W62E,.h!%DO:aMC2f1o;D"[HuU%7D[D`9!#X:@YVOM;EUlg:-N(E7
<7C#MO74K9*`Si\3Ma+;#:1VaV6'i;7is3s"HP$PJD!t&32o1U^u7YLE(5in;+WloWGu@b>)=AN'
e)%qnpE1&-bg\%4-ju^GpC(c'VfGP.dc`ShdeK@iZs%o:&U1-P#q8C4&`D#d8[fZ
(^K5%T!?7"_FGite7k62;V4QX59j%>c\bU-OndErU9K5mO2@AZ9e23nO-N7EL,$O
McBdL,D$VNp5'4!6ii.WE\E9QoDdcd>,9t;*ML+("\'8e`#A],r;GA"/W*5BnA5"
.+a(gLOZ+INO*L""r\Z%g$2^%5cP*Gdo;lafW$JODuluITh=N&_@2\6\4pr>L@VO
Z0q,refXQ#5o>94q5[JrfBNZuKG9Xff`;RP+Lf)!"\j0<2ZEca:W,AL0fn0E!2PX(??Ja]
YhForEBK,0,p4ETo9uh-odAAWK>H?p4WfPl>Zk,D%S9e*I/2?
!NdaE.-W]>AHhXd5\E".)E:..#]h9&ZdeL$Q)?2jn%`Nt8lT,E!"Ohd`PU$0,6M"
b!.ELDpL04Gnf83-Ku<"I9%.ffZ4!Q`8:or=K%c;jU;`3^8c+3/I^^DnUbFB?uj4
*p/H\>ac;ZQdRW\oe6R%FFpMHY*I!gE5UL1Vo'6ioUu#IP(L
Ie/ChP\#I9-V*eBX<]hQ5$GS9E3ZgoW8I$K[b
!`!d0`A0qMsb6a&BY_uZRqDEd,>V*5NTnoC7>%8uIaqiG)W_?QD?8Ide8t5
pqEK$/^DGJ+nE9(VG8l39>B9b\H
SjhYTUEcO3K(btFTZkSE:$5Y@2d,`9(q$jh7RFiN:]NC3GRr[LsUkAefMj\TD^QO
?\QAtL*FTI;6SGPY:,YD-K-Glr6.j9%s;Fh[1EDf4<<\K3fbBXh*LnGIu9]dE?IF
Z@kE<(/F@J4`h3Ul9mcYFUcb8U."FedtlH"2tRModm_OiO`T9ZJ)+a&/M&8EdQ1\
[^TN6L#KX[`&@0-,AYA%"Co,3<.NFJ;<:&j5<9mCW?fZt8%5?>4@87J.%KHIO#i?
"m[=U[X[u3#D,()-BG`2pO"\`(j/I#R(.,f-m8VuM%k_m>Bjh?Ph+@d;m?hj2m>YBNSG6RI2PegOnaV'W_et8F9Cn4]J;]X(]:[?ml&t)?"6l?Wq?U$R
NOV\FG2m)%I?(GpjNr7V[N4_GVu,>!dDD!@dZ>P;S9,\,6t1nNrASh:V^+][I22k^#8!P:T:KlfVKbaZI?p>p]@r
?V0(GCGh(LsHC?BUY;[J:5_u=W:q
AW_:%Sb8L.cIF;oF@@1)*Ch\iBrsg2"\O7l]\@cS\jFeM7qdG20T@NS
n=qJ_]Cf-XNCQ_XW_K&Kt:+c8.p1._WHtmci3/H[@JHQB^Ej]"Tp)T+t@Se8t#gM
GBcu)iji=.CH\7UkN=&;q=ZFeX"`2go]_uP!K5\7PS04?D)(8FWn7l?o5_B98Wac
i-Zo4C*p-u4!.?@5&KLpet+(@#HZ8OI#s%SSWS;TnN8o>cah,*0&[0uD`Iah9[9gTX=P]&$
?ACMKp?h]W4bW/d5]+V_c4/18]"@=S<:i=Li6ID^cii8a8Se>kZbcpenUI6_/3`aN$V
%
oSBjJRsa/qgb"?#^?iH?(
6I-7K(_0*IKa.[g62W)[r)C:TZJ>X*p5`]9j;eOm9g<2W*D-ub+e5K9dN=aI_r$g
[`b90YLqJUjh+)b"C.VTXkm(\EF+QNdK1UDi0lD!QYJsFV*/#V_kOGTi):ZjW&b]]jWM_7SBY@TWFanW,/'3e/dt7A?L1,__;74gR^=X)$iJT'<
Wr!%9>f'c0h)@l`L)UoCRR!31rn"LQX=85`>DPp[gKWE.3=\NhpJd+XS,"^&kDC<
STDfC@bhCIFAq$!cgqJ(2LC=dJr=3Jn7B=anp@8sM
S+m"pBD74RaH7gNM0V;ktp,9]=aq6=rV<(m89m[hX.W:.>igj8bM\U=NqZ4YUaHS
mS+5X2d1l4_92=8Z9K8RB'M;-Iqk?J:T-*MU9/a&G#(!E01-%Ugk/I.eG9WqfTJYb=urhW(6?:?_TJlWN+obHaW:Naj=H_?[29^3
utp]pf5"JE&7AS]N-rIUhJ=Esc;(E]^,%<(F&RV):-Z:g`6dXKdAR3UhPu5i@$L>
3gGPP/D@EhJsMQtUl:aCPh#B.GD>I-q#2Oq.bL>?rG(@r
`kU`jlmD[K+h,`9G[kL$rr>*`QS72+]`s9`*U9dCW*6&89L^ZtV`(1VAFnQ,6lN$
CP>&3u[lZq:`I*1PO"rMD3BX6"b`6[qukDgb;.V't@Hd>JdR:A0uKViPUDL88_.4R
F27TpST_G@\j"p,Ef@TM3'WBTSi()tG[W)Hl*8Het#HkVe2:L,8QYOp@?Wng]gU,
o8Jhi`TK$CuK(l[9nNSX[?]I>;^%(<^WTV
.1clO$$>O-4A(pij)OWRN7TkRYN1_PSJ&q)5@4@eHjV1^TQ/aTX^!BJj/XBIk$?\
1g/2RnQ*U[HLk*[/*f*mMMshtljcGr7YRigBr,P[/PdkQ;n+4cETV9*<3R(m_4^L
FW:pLY4&@-BlYS'3.ccP/.#unr]BThfjn^!oa5Wa)Fr[O_j0tQh6;nQMFJZAg9qF
g9F5->a-JY&u,NDPXT%.PO@pV#aH0\EG,UK(q'AANf&'p@J;dSb\6OQ5mJdsM3B$
#l1"_q)sT@0h5K\?3bJ(a[I)P(jsb4%C1EDr`'R*FkRX2K3+^Up"r3V074W+lF[O
Pj#5:-NdMMH[4X=SA5#EqG\o#o.HZXO:o?&T>;!E[._7+[kfiaO;3o`-;W64h.EY
!Qh:%YE<1\gc4QTo%"?cNomN&*P1?C&_D36]c"@_fX&^q7WD6W9Z<"lAR+7Tc[)d
SW?K6';;C#0S.'SA]B,LKDiBUE]6ooS4,ba_pj)\tX5@A@@1ldNdRPG1HM%tSmqe
*M"[%`@<#\ign#-0>O(sd;0GToeO!3[c6&'RXJ^k7j#KYGCgXKmhL7TkkgQ6L1VR
I304&7kaLMV7W%>%XEncR19PRGb2aZg<'`C,o16rf9[5$V+TRbN/#fHf=HgDl=bJ
:'e`*+3f%^(eLV6,OWUJ`k:+5$,@5E/k4pV_mI-Ni&',2Q2YW;b>c;#AQS)YBb.-
XXTTu8lV&a&4+,H_t$_@V3R(kgC/k@G:)_H,H^.[E"XY?@NW'REn`VVj2aOI/9=h
_(8f-.3tCp)"LVL;%)I\GET^?0.36O2Mi9*NM=&3l6#nc=85S/)KBH.(n=trP2Lq
=f>_dcYAht$r$J\gnE&f8)DfOrC=_6?a[R>:D+Xh<-NnG.5Fa^,rVG?O#.4Y6FQs
T0;.Ic+j<-+1\;.\$0McH1GPOP2b)m+f!"(ZtFSp`)BpJh&[k(J3IX'j'1+%lAtP
rTf$D-0US!c!I"l<9*<-ZW!?>iQch83+_:q37.u$kJ)X[4+l>5<;tQ/V&,_o;;Z1
LQJ7#T)#1H-iiFZH)1`H_M@5N'""V#B>sM@4@FV7!'Z\>.h/GWU!9+'.8H#pj3"(
3S;Hi@Nm\9)EBjLfFAk6LEO3buX-=EqV:=p"QCMQWE]YEJ7$!+lBtNc:+VC1n0CK
1d4T>EWZsfuArSG_7O)pX&?Kg;dQBAu(cSR(i6V>P$:cKHTcDs\9#[b3E+^jo\&`
;qVRsg!Kg10T)jt`WkKO[%?W(KC6O,9J$;(gpa?1?@89jbiFh#>/bn[N=5+qE`2<
&D*j_:ufsWgVM0WSV42WXb\qBI"u^KMpgXg#^e`rrIi6TbdI%m$bIJL%?D)cWFR.@YoPeZu#!JQ&p
USlVl$qh;N]mPbQHSge_icF2P9Zs4I;hdJq\+%g+ga$Q=%3#,r"D^h;9X*Z9FH0'
])"5QG(n$ZG[U15b0iiT"+7Pb0k:]H".Wn7^R#['j&+Qi[o22A#2l,=;]S^R/gDiVj?oEP#%E%+dlhnO\Z:
V*$n^d;,eX.g07@.[_Y]N$$q*!cfu7MQM@([o&5d%XXiID*WR.f[ja]0]J6nUP1
)*WNu2VqX5/WFR-$-;38Ga[oJNQ:R)d4?M;6:2NG`&2PbQ4]"7/_PdulGEDF[-=8
RY^5`p/Ur)Ye1[,Zh8j0o_5pc&B91W3#"lY*V!XPlC@Y!^2SGJ3mDPhP#)
J[8NEdY?D4sb@P0JtnlTbHnKGA49"prup5Y6pb*;5)WEW,4:9IdVJaiRs,IJ"qrC
_F?QbLV4oM6<@E40brH<&gfOWnW+'&QQ/70@RkF&j3A@+gi3ccaahm!&?'OnTZ-R
-[g4SZ=?@JjisZ4/@_B^D^=1eSJ(;Y4Q"=pacrW\Y"F1oX4&TCgD`.6J_hQJb@Vo?,bEC7ZI.QQtB],/=2]4`[$`$1$@H;2((u;H;o/g,WMV[j.qrQ\Z!*m:7Ga/]ug?J_
+899mR`57`?e])'5&kV<,dioZ<::0"Ope-b8ER8\_>*X)TL7,IaKXl$Z9Mddp_-A
!lU1*#fU!*_>q(]eOVTiM[i^E-T%SBgkcMP"f4gAh\$3KVWK`GU-*#RdW/VE"_Q@
Xf&tM>#/n@Z<\b]oc$dT\>NDk8QTqGSpQHOgrI8;3A_1Z]$.M;4oX1][3;qh$VBD
ZZLns\qg+:7PblH@:4nh#2.be$*5BjlG9YbRnr144VGNI/@g+g(kZFnXPnd>-"(##c@2n>B;m;T
[B<0njpNTpKQa7,t6MQper_$L@VW]^fnD]2+)\X%HW/uW2HU`>79ZYGu,W7tH7_5Xeu6FnPK8C5C>WX
(=n73tN<"&dQdIm%_FK-]cQOY)s]5jUL9$?
rFd;*^[6'G/g'\,ciDr_7nbRrhmJa+mklOed[M^m_8^Oqh*h@&H#,R)^Q4[q2bprXGL1?
b9r^LCaIpUM.I6YI/G4)Zn3]-R0baB1qpIXTl
Y6[47[^LRh%4dKhZMTXAmD*I
^HB&ea8[:B>"arGb=$ri0:NO*J..ko)C%j!uNN@"8cUjO.op8<"m[Jhc,6oPO-C2
1PLL.ZgVa=1JW6a?7k::jTlul4RL?SH_3"=E#iR#:3]eWJXS;buVZNVgp9]\)!B^
e-id[.9!M,$Z.@2)9up9>4n3SXfZU0o-(tZOQ&h`UQS,^P/0u(UaqLVF$UTX>$]Z
c]hVB_r("FAT"NrMPPpqD(hLGm_(K;%gY9,&Lc=&IXJg.G+Ae)uI#H]NNrX0W34!
bmpMA8BZVI7j]ngtHEf[#3dGiKY.<0e=uljjpZ/ZH](!'I30<()18`OD9%mp6`dd_+.l.SLTdc4jNMeesbl/>CWX&>I'F%L]9b):"<
ui6]A)>ZS8FUX,$-*:aB\c)A]RHX"K,pFW\qoN2Pc`(RN.+c&EcE[8?9m:dT3;]2
>[>e3P2CRiBlaahOFhK_'j?r#3m?HjZU;$qeJrG,`dSUGCpU0Fk)aG6)9AY^k1#pAcZTln$7p=C]J)\4L'C/4pg.B$EXpl
@siBgQd$l=dLrFa`R6KQg(F9t8p3;e]Au7.ZkFK)'^"SD0%a)Q^VV,ts-e[aY,>#
K2(>k`8#P@JqjTUfcB-bK+rY8lS'uEX+fiVR&nh`B*9_['/RuC'5t:"Rb+2I4@`[
HA;-MPp+6=Rscr/TW\3?l1EjCU!s]mMN6F`I;2nW7q-bDqr%ok^j*XY_/GH!W95;f_XVf0*,kKdiF&^D_Mj%j"+SVb9WGOROXXW:D
!*)Zbrr>3saQGC7>fFNh*tN*ZUnUb=]+^<)Y"l>Ukt"S$!#WbI1QM^*H%3PbC;qG!O400j&LlQ4Kkeq?!pDd0b`EO
Q,T.VO0cZNO!ie]'+XegCi*d+7&l7L1Y^D\rY17$W2(e=nT-]2-/8W;V$R33RDT.
]0lpVQML-+?4]4bu,#XmWYYIFcZ6qRA/:faA`B&eJll(SQ'^UZk`
c<3u@b[h6Z&2TABeN+!i`=Ll8X,n`B=f&Lm_:iso$dZ_J;'X9dh6+5k15]K-m%'\16%0GQU'7?1+A,lQeAkb=\)E1@O\:
:2^Unp8Pffc'`FH^")79j*;WZ6_-ZipgIY:eAu$SC4&iFRIT355)[a%oihC[5*2j
ml[,M)G4fUk`8O!9$W6[;rWF&h-.EUW_T/pucM^9ZUF^kTnUYlB<3k0^2jFEc`cB
3*T8Q%k4Ot"ml["PL+YcF6"8QjrB:,4<]pB<;r[P>cU:Wg$0[CpS0huhTRWR.J!f
MmIne=KE(,WMls.4T;s*Pn\Xn>p)e+D6`-+d-hrj\kg@.E?o0phr$"A5:7j/R3[5
nE.D7e&da&*=33'FpA_#,W5na(%ITP9Wi'KC,2Y3SE@Q[[!L>\*G*!/Ig6*5U,2F
!R*JmYlJ/ZG4mD>r(\XU,YE'4r:Y)q0YhX]J3c?;VPD:mJA8t`]eLL+F41"HsRVp
]=p69S.h/O_>FfDV"Mam=aUj8*a=fpaoA(sqHP#(+7i$>18=nm#-iEHJJerdA<>!
o8m4tQLO;-B3^BT&qU%d+3BS9O+qg2+4_E^tU&hR,t.4HO)N)B#%;B)m77-&r7ZWa"c=sJuX7OUjJPalV5=u"D
6jb5+AUb(]pJPnAB$K3n=S0c.Ei6YD>K&1\Hq>!m2Ka:Qu3R8gIc",P_[Y5qC-bT
TJE2s+n.%hB
*'4a8l5?%L$LKHu9X[!$5aSoPk/N8''^<#3Vlcj+g[>W,d/`In]<
GC%LeHTh?o.4P&(<*5.IP2F9&mnRlqX\)Q;m=tDY[LLmVS5sj5d@6W!8.YRlk)[DGib&1cq
k%[Uu?<*,omb5pS*06U*W\1d2X`D*($,A=BRa)=c(j>8gCOMf6Pb_^LJK/CU('g2KN
3k&JiOkFpE!OsqFX2)Rde\`sHI!Qs7WO)G3R2;j6DUXKO>p-6j[Hb;1"rurPcJa?
":EBo%V86M'l0RreTPLHo=3l/V9uX;DXIK9P'O.gApdTq7QKp9o]gqlBZ+q8EK?Z
);\GcE`9kHmF.1;?D3I-27qEYIqUU?MilD+jc2\#`/Oj^cb/ZB,C0ukdq!nePk,[
32k7Vden1.t$_+gLE/&5@48Z^NHV+0V8;t1N#/@Cb=W2o+kCKc)'@aN4!\i4g"62
LT]H]sUbZ:N*^$FdMd&:;unV.-OYRO^I?1'$pG^7^/sn_5NpCsZ:#V-"'M)US*q#
OK=5I/!o@FU0Y;7e?E<\=cZ`"aOMO)Ed8[,qXo.,UFn?4`INh[3m[^1kbB;(?)a!)bX8PR2El@g>h"g-UZSa#+4&eockTh\G1bT4!ntSk#(*^K
Gi,(KUW^oriMG?14>q"FUG%k@Y4OLm<8qjNQ7m"'2ZWW^de,\Yplf^lAFDhE!($G
h0VIN_[Q3J36n(rqkL@j)^lV2>oq0]7172*SfD4tmT$5J\Uc[O@i@>JQ3=Nnp5.*
G*f,RsgV%GP%_4\^Zn+gg_Q#WSM>r#m*C<4*l`,E-nEc-A(WC(M&_.&/dM^'.b`i
ZU*j6?hP;B+Jcc?"k5;O^:[?6Y_k'^#Q=lS$nm_^Di2o]`hal[]?'>\8f"R_@
:tlYB'A:u`p\aiR`3#s%Vl;4pa]cbZAN9)AP,E>TX<*._62[s6(<(,O#g8"d_QeL
F`.:,2Okc.O6O?N1"N-F.nhE(FqnDDa4FV/!N8E;h#3>$@LL[%rBs"u'gG]I?>2p
BLhme=0?;mu@&dE;V4s@=hmn]d..k]k(BWXfL3u5sG[k,L3;t,ta=7Y^=sC@Vu`t9`qb
VKl0cCUYOF[U5AaqkDi%I?a!A$'e@A@1_:;ZQ3bOZZu2>?\i\k\NP*^4a`4q!_88
e4NqJpa>E>t/X&>1R`6nQhP`no2IY"Fn$;Eu]Q7lDXGDc.Z-@3?i^-NNu]cbjKqnk-I`U[FS(D/lJ#F&n
aceAetM*CMKc\8bZrk%r5K`E*Al/a3WD-,gjo!J!Ba-L&NK2#KaP*n3c]<`*aS3W
*YCF==^u'9IV*LID3$W`7p9Npk&';&0b6&_L,eEII#B;AQYg2jC*[.\!;iDJYR[3
md!nr$;DfjZIVI=dAG>roQ9E?Wdttm,Y*sTj$K]gL^P*[]]#e0j/t-Fk+b+G:R,/
3:c44+sgIA#CP+/DLJ>6=:4"PG-(]D><1\8+Zt.+%l=usAG5Yt+&'$NO+36RB@Xk;g(j/tZ7q--o,ctKI:r)IU44.ms:`OP/ZC04FXYH%q5s;/,#s7oGIT0[
IoBuhi4F,Gi;NfHJfq#.h31rC9:@5h=3[<$d55pfB".u\4?a_9__F>"qXMOh$<'<
h?G([h_>]d`g6k4QDCkS&.>UUS(T7)um9GNVAOd_]:"BT0=gB;#)1usY)fP"JS
.t'm?QX==S2P%Ar+F6qfc)'`BL2mBaYH4g63E@mG2!1S=`K##2:+=du:l2_TaMqt
TncGPamD/jU]!-!!I3]R4>p7CFe;1cqegWcg0k?5aq"O21Br+D-jFQk,m2fY
%
4=sNi17g]L[orQI=!/0,I;MGH>I-J7\f4;7]8GKetJf\-9gAlMCTZp>*HCi]WK*\jAOW6>?9a(I^O<4\/*WL]hc146]
"F%N"4A[hF!)=<;V&phU!"mdK)nOkB4@7bFq/C(RCR)`s'o(-sa*R>4UP6
O,)nmMe\KI"tC[nk+Ep%fZN$D63lu:0a+;
:,8=QcgmelD6IG2)H'U>8E2k<<4DfWjQh_ePk%+C*-ucC&,%-4G,AG`7r2$:GiBI
GQtjL(g30'7S=67`BpDt93:^BB<"_sSEL^$5\jYn$HbeI-Om,7lX*UPY9*up%:Bs
*He4[fMp\h;(pV`T`3:a)sUYIBR=7D?BO]M2!/(#I`&kYcIqnog'Emd`g)J&`f;7
'asGH.F3*)hQd,q@V(:4%l&ZK[3(pkoQjQ(^jm3UOdODqlFlpsZE'2BMY13'GWI
]_m'_C)F6a(V2k[Z[,YV8kl[#f"SI6=&)k8:_h77.F`,b3fk5#bG9P%peh['Z)%%
GQYSH-l2DRbVGuI;HLC_N[U5VE_tTdF;3pRTc.?>#MGFX!Zjt>GH3F"RY.@W%R:,
NQU7Y!mm7g-!;`J[K&&.32UR62nRjh8Skg
LU\>J,33%bFDfK4IG_IAUc9-rakdHljU.&e7.8&?JOnGZ>*>`b1>_-a+BikHF#F\
B)UfV/+U*WY,h2o0dcH*A5K'Fi4`RD]BM].C_MVe<^@*9SdM
M%#s\QOnmP@^SFrc%%uY/TKTilKXUV(5<]@MXr:X23=]7ib!VYBP#O/s:hXk*R9f
q%MOR./J2oJB_:+=l/%\6eO9d-llpY1&e$h?^/h7?X>Dmc6"#W]ROD9QH"?>.,$3
aSf3#,q:kjG+$pmNHu/[f[#=ip9q!j$!:DBAEgE?P^3lig[O-P]PR89G$_?JP0PJ
]K-cq5%7U4/bm2_(oH,i#J!si"A+pbn=9_QPc_6hIH<8!)g%AI:u[?dbF-QHc(dG
548g71KJJ+#HAQ4iZplQ8BQ-s.Ws%_E3h.+;curdE7i2U+"E%gkmjH#aAhktb7#q
4G`(\TUq+i(6I^0h20HAf;unC/LS*&l<7eLrgJ'NRG;.n#2?fb:P>qCJVtZ\(Z)>
HQ!N1Yb1Y_Pt2:1_gA#;M70E'>5C@5\u]4p#AGZ0cgj(Sa=%Rqq^iR@,Nr.BP[T\h6qr7NlG]k9nUA6VHY"Yq.Kf`aq^HJ/e^k%Pb6a,h0XqnPMOPNFT&jj*)ZP2_^,:?#5/kF./e@br]X/ZC`)6@rtD5g7_)
F.6E_faQ*Xkl^_MT%gM]QK,kk$
>NU-X(1Pq;$^.",ftZG:lO>kI&R+hnl3gl]l[F$r&qeNVRAM'a.qnkgh[V
eW0Vh^rQ%&ij0Qk:'1RJfE)R[@F*<^aC4Gd3X]Egb!8hQSU+1$&hPlgm)J.1]
Oht"ATT@a+k#AStB:k!K^=+tjKJu^LMEjbg:T*;U[i!;Q$s*B(M#_kKI-h;hO-M=
I\NRtj-VnGlX&!;GQ8YAJ7heGZ;U^LiK"Ot#4\Z5Xd5U58/STa>Q'.s+O698A1o8
`Z!D^O/:.@gq*7=*9EL+u+RGet_r@:(Dl'oZ;Ha6b64<=!=k06auup\%_Gg4onj=OrYIa*"\tCDe#W8!ZP9K+/Ea"
gWEm%dT$q_XAU-)20Xon=gSb+)=O*&Fr_..jpi$OFNN6l+8d.YR,`S2pVJ_'32WX
fd:cH**.sIkQMDSV=(:%.9';X*_$SVBq'51HYPpl.?^CE60=B3/b5aR/2Vn9-]aM
uN?r]S)2R:5aAFjV[*4?cPl"'`j+'R'?f=!ldc1`;>utDH$[r+-
ghJWgf8/9o8M-0Cic(k-#jVgJ'r#t[T(17;RVD8S/u?>;->8BS`@bN[5NAnP'O!'
2#Y7WIsDKNHDLQ@C,gnR.CM'g&5p4s<-kjlF.2DeBna&O_#kf[!7SDH'FU%'K@lV
Mdu55n*tCqY$;_QS?*%F+S:ig21=e7nJ5$D1A"JH>.')1d0h*'BgAFpLf3']qOcb
US20)bV.[t.8<]D@Mcrr!,b.nURF6X2LBffk8YEp5fUgS-ImoDK,47]-q[bE97*!
&=e`An0DUF^_S.b_dYH'cnKg*%]dM.\Cn6u`K!]L&2E5jqig3;SjV[0R0ACU#a1+
.:&(F*g@&2D6fe*V)6"dI7KhsK4pKT8QuP;=#^n+2Bj%W:ao:`gebGR[Rb^@>>=N
O)9l3eBTsP!U[mE)m*']4ZJ,9kgDHX_9l6"A_;QPP8EYP'Cg#m*5ZDl9ks`1'QXd
8[>B](J.?.+(k8E"%2]k's@aQL2#55^nX%YiYDCIti;F`b=W>_$3abHT73VeOA(3
s>6n-K3@H=[[0UNO>9RP9L`T1
3"@]+lWVc;Fa?b6&dh[4U&jX]%m'V[rZc[q6-j;*FI;a<7ct^5Ob68_5"$.g-tk'
9g_&8-9P5Dd:DDb;5#f"^_?4O=;&tW]9P7UX]&6I^Q>g3*06X;CuIB&D#XJ?@u?B.\;V&qOp+1Dc]&65mu
BgE.b+3R_A0H.`h/!adh8JY."ZG&'!p^_W((('k8Z)tZ;OJEO_;*oC.]Kt*M^@`:
Ea4_LT'T+f18\#2+f:<5:Y_uH]?-aA[MLK4AhF&j"7()*-\)LoG8O8V)C.)<+tuN
%
OiY]V.6)#(;skl9`bZ$#9\o%e8ZOm;rN_g5!l8LC32@X[!4a=7TsMgmN)b6B]B;j
CA;[+6VV,oTi5fX3:QpF'M#''>\NCo8C*P_HYIB:fEZEX6\r-5akN8qdkOoAmHSM
H.]tDi%`MUU:cTMG-oG&7r(Y="_=\OOVkCRAi0PELfR7G6H8d8uAGkXdiG!^]'XY
:;P>0g!Y;:,h.)8F#'Q#/ir$2E8r$+Fk"C>M!m+!X3.4;f!MedSn!n*,lSC,Im[b
fFB5mc\KPSJ.OE?h844*_jHeh\E]?6!I_,"qISfh?LHNo\`*?Vu/q8FP8uPJ,CF8
lJI*8F\k`"HGo!84pnNjkcS%9I[9AY'd6)%tsZ7XF]*9120ZkInF:KmnX$#^_OKO
WR0GiaP;-l[hP[7"3P[\J=qjIqGke'0mQ.64IjfYV4\e75!t34i.@\d5o?VU+U.k
_O-MW")upU+mi^([b9ai!!
WN-2>\E%YGiPEgHHVd^C27a1%eQ"pPQIqJC1B#fC#o>V3:)'-\H/U"/bVM*#==W8L^HLE2O=_:N`9b8G1,u5"QS\09jClk'tFHc*-"
sHW;(p:58!IiOQoHH"mmSnd_]*Zq]$lZe5loiQZtN/b+p3EfIKN:6t"G?,lpVVPE
E\X,"#cDG3#TIikC=).kWaE+<1r-9R-qYdd"nO_Rh62VN>70G!oV%q"H[Z:_>3ELuf(@$^m*!i3TA_D@(U%`WXa
VO[*TcDbY?<0p+u2!Q--,qc0(E9*+.WRH#YLD5EFJ_V>NH8LGVC!Fq@.Qt-$9_aX
0()B@ECt,Bs(0L'lUUN8;9h7Xe3'JrLN+Te_n5@c^L]L\>.Hfl3FiN*Vpo!'u)#U
Br7glNq&ft*Z\ZWHN_V?_&(P@;hC^R,D>*>9K.9C[a
a%a*t[p$m9F+Bp>,6P]6B[`(o])J[4,uQkXngsP>']b>-htgTVrYMUgLqnQb*lX6^cZW8Wd6#9Nl%Zh[Zr:g5RGF74K2/[N_,>?
\eNn68HjR5<8/Y6QdX?d+NI5V'WRGe0W%Go2_4:tILe50]l>aSeomtqKn,uhjd\9j4'!6"-*D8i+PoS]ok>o/_aR3=A&$7CX>,ekG_C[h=G0*Mm%r4_p6ZltQ9REUfeM,m32JlfV0tGd=egP
\!X-&s/&1<3H.>44%IrqeN[lSn?td5t9HmL-PLAG7sMFLj>n9W-`ir8KEL=]"TNm36$;
bKJkAk6#o
msAMem=K$'L#b998kjao;?bb7t[i>4'blANgcCGW6I?h_dcKP;'Z9FqgPTbb-7,P
gr4&g8GL\0$,L8K6BiRrB0@7]!_FkZ)='n/[V1D(!_8M6T'Uedh/.*[Mr.9:=f=6
ktn1j-$HZ/j#5>K6?_N0buEI@[dZZ9#mY-?,Uhi5SR`h$m,X&*]ZGnk(fR$s$39KJ%lBX\O_M4s9rYmO,TL!kY!:m6_8q#\b^ed7;J'
[\_hh'XAbE8<=pIDq\5SYX)D.2YLpJ25!PD(M-a.65(G1[.I$<(]sS[!s\ZkoF(:Ft`to!:mq#=HV+oh[rWY$7OSYoCJZCQC.[PB_X5=Q)##d]]dX7#_k
-LH%p]/@4;Kt<2URALFr$-Ua.ISN+SH;_VL5Fj[UD:EUQp_P.9kS[2^JB:,aQEd-
@b,OY&n045Jf8U;Hbl't-4]2]O2uC_[+-m=i#ib"JADEE/2SE*RMm>?eOV6)_6oM
=%-18m5Z),[bfq!1_EldL#eR\EG)->'GAu?X%>mH'T(S>+0`aP"?AWM5?Smi^K.c
:EYn_raaM*&Tl3>hQ1@_j&o/P`
.HUPs7qf#9c2g^-PC-\*_H@;R^ZG7YH'hhnHh@l6-JOHA[,7:/P:"q,;t$UI:T[hY'VPhLNPKg>e99R?AHa5=6
?qLE?:.A6Bu3FH]hWF?ToI"kO$BahR-YEHg,\g@8ZCBH+5-rLmt"6d;PZbf>!!f#
X$r?0>N1_+Es`\0\9^O>s5mi'pS\=P_N-lnI5>pjKjVh:k2K:
3d&9'q?,hOD:H"a(;W2B*PeM!5m-\VloEuf=+G4OQn1_6@lV8Q^%RPp-8ptN]i
^2(TQ$Lt]*#oSQ<-R=[V/747TY2/X3D&5*\sEHRN8r?rPpJd$3'U#s`'eIuJ.L(u
OH_2dKT3j;#U)6,ZZJ43S[;dgaRaJ]_
Je*V^aWA$*<_:a9p#P_HJ'!j:%)>71-92*J>r84Y5s.F]&jOu]_86!iZ:
[!cXp,+CknE[i#d$$RWhX64X7.4:R04/=#K6:jup/I*;+gGP6VP%Vf>fnJ+_jg
uFX9W[@%M)*61X(!>s[,H;,T>oO\V`Tg7k0-92!23iiar=PpqfgO.?tg,F2/FPE7
pWefVgFN.^c"hN%0Q_qq%N##C2$TiiB/VI#628EI6$Q7An6)5RLC$_@0GR]CTOc(
)*&bC`G^Z?k#Rp^51@EDAH*StM_q4,8q=Wlc'.kh=:.fX`)kauUjk,QOUkXf\M0,3D!rt(:-iSVIPiR6CXQ`@%bVg
,*PL5MlWF#@;@_ckms][Bf(_Fi7;V_m
;cc]kCVDq?#1kNB@L'V^%"kN>R:ihkJM&ktL5a_e))cnKft:.MoUj.qoN,I$Q/^N
;(]ibW!D/*5#p`@a&li:8>*/n\k?8QXK?`P/q4RtG+$g_3GtG#H%3,<>)sWqWk"Y3>`IZZ5%t^TT!M?OYO\(:B5[g"j(I<^`XWF?b$_S27#IjO1URGh7$=fp&>$(at"(@;Kr:(rcRj=
BGci1+u)u[:,`cBq0KlDSh?li6A`f%^o&?t^N^@g3=?Y0q3s`cF,>R:eX[QA4I;0;[q
^ZGj@7hbp'Q=4-^7fCs\?3eIa5'^N)W\eTXUS]F?F9$Ef`c8mCoL1>:=<.rS82>R
;9D&Zim(0#3N4FY;+pu:Ju-1\'NRcbkt\Eg7Wj6umJ+_EDQZO^nsjR*>&6+OBaNg
YeO9@9Efbn1Nj.1^lj&EFG%?pL9$%tB'U1(=3;VB
h>UP%?6XXr2#<#G_b6F$FkE(B(]Oa=T;*QF@UAP$'Ki@7")PVTpu=L\YLR4U=^Kn
KKiU::
"_$LS7C"LTT+43\I*HkZ4oEfqGjAUW\Is7d/+:UW-flnR^SF1a=;er0r)C)W,=(I
dkNnQBPKlh0qM:o1'te5Ve5U.fd/(?G..R)3%@cB5@-cR^?Z/kM]>kO`,3#EKT$M
5rrC=pO`a:X`qZ8W.VfmUfT2jf03Yb2r3G:o&Y,!hSQ<6-^#Jr];4M@?gtG(*V/k%fr&9!,+ida$fG;66p
h$T\HJT0idtptTm2a4inPQ"Q*]s?OJX)!''M/Ba()Ki=%Cm3+39&dZFH=k<@oM('
Q1*&/gW<
5-;poeV-_r#dP0t#&@_6C)G,Vkqb>J_I+2E5#6McgY/oF?+Z"&qqb'oTsl)F&F+U
*O>H-Q]p[4]q-@*SAZo"(H;EV3\T"(WKeFA=M>J#jDla?!1Ld5].L(Z0p`C#8%<+QcR
>W]qj,b.lZL"Dl5C>V?WQJ*hlNc5/#h(Gt-6Z=pg`h5lCSIXHD;."aR![
h>0fe?cR$09MjE;iP)CqnU@i;*MC0p#UoR2T[>d=9L#;8XV.`gm&T^.?]CLP[h8(
)r8Ib9INkk\/Z%jCfHd'Q5iP;K:J3QG;V!Qg(Z'#Ruft,BG@CTcBsrs@m$QhV18U
)!SXBb.S#aUQl2XBCUa$$G,=%8L8bC!e:)*ChJ]/GopNh
_J2$#`Hi/[A=p6!DUU%e]>(pd=%AjH8SO=3b.4W?me-F8UMKNtP,u-$Y-pb)UEJa
7lXUF,.?=+<7b?OJCp`C6:8eENIF!V'j0D$N\^o;eLoQJF#
c848Pf-9">6`7rX#!7B:E>HHLpP-dl$0N>//@j0"=`HDQo8f!3.$,2Y\E%K3SGH6
E3K:!e8lUtKaMg?RlnnJJ3g;/=+"EgBi>nj(:in!0"JGVT8b
Fq<2k=dOjQEsc;PqQSKW>4!<#1eZS1XtX5.)Wl"*dGJ3:`qNIDnh)F6"dNSC`3Ll
Pg1+eI5E"mXSO9JeFE4]f@+P>/jKY>$dU:'f<`tE9"CeJOk#$+Yt<-#Y]oMZqm%o
+4dLL%bk;UGl]5PDbf9HB,UXuY\#=_OG#Y/[B"%-4;)CVX+O+_,.QQ(La<1LK2j@
,kL)]F;@b-L'Z0<5V.qCYkI,*e
Y=W`;LkMCcEApAWPm!W+bh]&PmQBNjPp(?0!Qe19l`%E^5CHhX'chASV1/jGj6,9
b]8St-WSs&eH@>,/A@8ftDA_dN1DY(Qp>nImfE,g,bG8+1UcObQj:*EYUc/mjcJE
*\Bt?VA_F6<[iZd/Ti?LMMd<
CNL*WH*HqsBbYD=c)UGO:\&^c;J-]:2(hUl'KU+Z%Uea2R.tPAo"F7Z\X%Ju7)]T
%
(qeC@o9t#\kMg^ZQFQ&Q$9qB=n8nGq3+:QVZgaOC8nH*V;PB*[87LZdE4'cLCQD`\#
Immi7
m(:Fo^#C19,bDlApS,&!"QWKj=CHJp4FF,pY"]^%!W5A:hcgB4On,ZTjOO=Oj%lp
1`?Si;U'iQQ9_%U"o;c!IAoiN5Bc-8/UYPrdN5J;L49l-0"=MKN?ATL_VOLuRaGf
,J&c="s>:E@GH?WnL&/'.9OT*bQD57riQf_uug('JPfsoGdNX#irHA?#r
L2Xb_Rp\M%a"lJp9IZ(oA6mg-V[1?SHh*f/E#T,Sm;33M&_!8WrBK(;j2V!27\;5
F";W.rh$gZZBn4(rehelVuKWN&&6cM63aM5!X=jOs@*[HpZ[VL2o@PAtjdm;/J9g
J&6kLXK?-qbsk`#Hhl8"=8&en7uhBR&R"-RX2%'K0Tn>SCTQlNC.e$sqm@JCMDBh
ektm\@[q^K_9bO7q8`pf7$7CpM9.sjJ$J]e71+Fi/P2YQ!7Zb@n[_IYEH.:D;97I
HRRS$.nmE1S@%fj"S8LQcEmS_LV.6eC8Upa=!Pc'D#GGuf3)!tQ/^l3e'VA?QP5o
:=OpNH$U/+8.[DgC*$fU?AhPq*^J;Gp(G'`RciD&KLQXEQ\&>@ado[:aB-*-!-,-
Tpof&T$tV.L6Pr*JOR5/\?>A9s,cl8?'^k
di`I!;<`X7rr>pg"'>5UZoG6+,67O?.m$)RinV0^=Pc?h;F*ODI=&N8(>c)kVL`^
h*0*=Yq^&ol(Y4:J,^Rump#'aXZPkWVO79'kNnME%P>Q&F/iRnu,BLh+)"1%?V
'!2T<1Spl4fC/6kpqaIj+XI(4=+^_TW(uf;Q_H_@.-t\CAQneUY6kLA.?_$E'^1U
KrM!L-<9h;p!,&I*!?k)buZ/@G4!r'mV,3m!g
K10*<83!-1K7uTW`,oi@4bX*rD=0i85dmJYq22:(jJR/18;*_/lKqMR;,XZkV+;&oO9^7Y
?NdJ6Jk5R2TW"nQ\Yi8h-OM5R=p;B:\B^M'D-UZo6[0GLT^>d+HMD#9SEOCg#jmn
=#'d'WC0#q+mL5WV8ZR8$W*>E*A[nh5Xk#II)-W=1(p;l^5/i4tad9MOAA4BRN
1UU,J=h`^*JBk%UmPi5:cj+uZ7[-s8^P9[e3n9q#5td"M0d;':/lLBCXC)KOCP[=
UpV,Q8ArG(":6,Y:i5]&?rqorBK5D@O98*W>!LpCgQTV(P,mEPor02*Xe\/fi>-V
r3H/-RP%Qr"Ws;A<&T]R]j=SS"uB0DZ0.PJ+nq(32I@Q3tksHiE6QU?[.9L"7`*[
&9ci8=Wi89^^&groV->?e4[r)Laqld`fkeZt'V.1
b^#G"%q:6%U^SM[9cHp<;T%q4X$lCBB%[QK][:-Kh%k#?tGR/:Gd6;c^D6iHI'%_
+##SD:8pW+F"78I*"q1r7u3pr[SO.T2aY+[hrn:AnnIE9_nAep;KA$p=iPN?$.R8_pFuUIn(7R>au/m`=E+Z:afn^"J>-VY5%msjMPdR@#fLh\)khNT^j&Lg:EG^[po5$7LP#=*uI6S(HMWAPbQ^
;ArWH)9JHr*>h,;g.65Xj.jDDpu(9.NohN^-LK9QaK1BrsS3V*W:,+K)qtJ&[.`W
mm"sDKMGk&eJ"Kq:2(MP1T)D_+]iE>_T3q^`:iCI$CbZ$[;gNR^R&_>1/YGb"mE9
MeSFdm:]4OC=8G(T*`@"l1rl*:Ns;29OC`q[fHrJI=.#SI@hl]>hj.SFM%T]:_
5Dq'>L&pb/)#f+ES1(`FlN?Wd\E1Z]_)8L8A/!0$k76K=Ye8VK$hNH?A-Xt3\[l)5(5dAGu85LZ]-GE)C9f
S@cJj?4QC#6r:*d-?Dno9A4<.]m'Gm?4tK)6HQ[fP?S>#\GXSCDaMM&[sO/np@Yh
V?`*P-h9TEV6;)9BQGLC.!#nNm`BHdh5nfF71XKVc<8B3(am6I+&@?m_Y$U.'6_L
,`c,O$;-%uWD+N^^VA#:;9;Zqbpb*Xigi\B]RUIq?>1b9/rbR)PC]?0oEDo;]4EJ
u8sJ1WcR7#;f;U@C:)%ZSn3KY+nYX^5D5A]VOK9NbX49-j7&Y#H#0GRkE%/"JF^Um>@f][5P=UG84P#;Ne;lndTEK0PN:KA[aD#bkcV9^F$i+!DG!h
NbTlP:E[eD'8.bTF-#]i+(:Bq[&@CrL_UP%*5!4gJ-XB#k1NS?pel\><@u5?O`QJ
EVZIR6W.WE9?.+tQB5;NTgb8j6JLMN`@CD"6.s2#<4<+HU>$h5`
U![\g1L6IY\=mnn3YH[=2,a+0t():$^s;;!I8G
H.N:T[INfXDW`n6r:'*Q^kjk+o`ni8oMB=sC*!J3Es'*W9XejjW%8.1;Y^Nu#gY`
X28-r$o)Ga'L5DOu3*=WZqUSaiPd:iD7Y]+&O9!9\2,mh?neLgbLn1,J>eO96K:"
b_56V+ed\i@/g5HPolikk!Tk;]-Em_EUe!t.ZG+=g=BJW,8OpVT3g'C5j9lJ/ftk
j*DI3"Q;;7V,Gb'5b$TdBO0EfN7"7gBoTJd?K6)mqF0OYicU[E'E@Fo))$@XjCQn
T\4Y?sVSIg<*Y^#<2?KiL"!)kcdWVbT,UAk4IpXYY'?&l'L,j.#:l(-X@W4<_R@!
SYRl#"f*M+mk+k+j5uGAre/2EiqB;JKHcPMP"cgHI*8IKano'7)lh>DOKQ_0U
\[o,FGf/>6n[F<&a-CH=QqEn[`X$t/jS>+Bkcg;m&;.,@"`fsGcLXr9X"!A;Oa!V
BcN1p)>rcciM(6AO5;=>*9.?%a7H":^7Ul0`>'sEGlq%S[lg=-W$O_&oq[#,+HV\
\r<]8PgA2Jn9299dd?M%U+,Qs)A&@7@`&:2dnIUr`ljB,8_eS+mI"2rI))k+rjgJ
DdF,Z?GRO>H+Gn.mb=!:eujbb\>p=nqSQJ5PV!01(DntMdqm?/B/`W0YZ;;EU77C
]+H-Y_o\<)WCcf%dMO5td%u\^0PU?(4pMA1:(=c]#(4#jc<3qk1't,"oSFCN`'uX
XFDuZHYH$/bbMRjG)#]K:aL\tkrr?`j)=LO*h)
@+S>+Zir#Qtc[j]Aq7)co[V\Och"4.qZj.jhm]kLh2]W=>DnZE_4\!dmK"0te\71
!VoF;K]L)"qP4b1r6Zj!E\6KlSP
mt9/p6An.frDXHr\U=-3qDU!9AAFuAG)FAA76a@s#VU/jP#q:.md&FU62fPLVYJ]
.n0CDu1o`uBb'(og&-FW@HG7%-nHcb;s>@0A%/pB.Ine2m7WMg%;:o$\C&_0
@TUDDW/j\q_c'"5?6Zt:iQ3ge2TSb8EY#!F%Zfp%r$U=
p4U!FPe'XY.:2eLk$52]7@7[b:c3WF0.7:@C\qVWKYO+aM$pRF08cWGa3o6;e2EN4]?aC+Ghre_tud
3+"d=:DB#?m9P6B"tI9Gf7c9C82XRCG2&e_5PDsro_1tc*(u1finhan9dq4[R2J4
]P@Nj#To?tLM)O:a)Cgir97V^9k8YBZH_e6_!0L`/OhhP8j*`$#3!\g4OAD!FCSR
X#\P#fhihmg5;?#(MdB-T*r%XnDTDeI6VkcAXHp6X$8(Yc_X=V%;ePWI\giaA7,n
^cc&L8$?H1Im+(JD.mX7XM2ik[3-lBI:Ri:Bn>Y>)D4%*2,`1!l]i'ULVE\^N](]
injWaRI[pkud-"V]@.6aW;*[08d9!-[Rq%%@1Oc4Pb!8EMajE-;
_"f.VuE!gkl]dC=nOD>XQ8.ab^H[bl2D9e:0B#.#k_M7Ci*>S.V6*6$QU([VR3A-
23Nf7bO&\,.^,LEVYb)*K<9XUG&A<2(T10QDuP[W>VjBuWHoJKPtUcSJ%nHd:`Di
E53K;Nt74%d!;;Se+VEg+XAX\$u)2q=5k\kB.q<,eZCg\JmV'ctEDrEU?-EIM(9Q
CVIF2L"tqn\l$BUcgua#]9r6*Q,aq[-p]]X:)C*UpU`N9;sC=*ieLD
1%r3LP`f8h_)\IaqCSh^7bglci@5`Di1aBQ/(O4ZZ"B6@#\blBGC!/\FL,)ieI&i
90bi#T8f2P5N;aMSF6L'?OZhmFEH\=uYIo,ubt;cH\t,>G3>CL(I1XK!Uu"brr
*'8ZXOgM%\jV+2V4'pmgKI&^d^ug;-1%Tceq_MaYuM(9;KKCOJpt9/0U:'VOnT#O
,K/VqRggq6>[=AsI0R.XC3j#/ARaG-tl$MNNtuYc"5fCL!RQe>D7?K`XMY;-(Bp:
8tt_,>m+jp9
TXCn'7TC5ZTdQMIK!^&cYp+MBP7@U1.]q#m!g1.DV%`q?:mf[#/>$]IP)UQ2V<[c210]<'SkJ1&U6ia3tK+CUQ4n+gg=^#s
qNh0S/QHWT8/fW"(7KEL)hgH-:lkVO?[dXFUk%S;;eO[R4C<#,>@J9<6Mb;^Jg)S
I3G'3R'd4l.3@me4=UA,sEqD0_[R'<6N=GqK0k$n2]9K9
_iuD&lh&"ZA+,j\`V.Z$J3AkgU)=(Nh`ol;'WumpM>m0Tp,l2Laai[IA^p7qL`6UGSHXm!4!3TL@$H!4FNaLAo!(7)^]E)`*QE
E5+r7;EiG(G3fZH;4`^'at2*SOBf+mohMhEb)*t>E>_b8.3]QF,FI-kUrN6AL5sq
W(KrAKW+S^WI!0og=kq1[%WC]$=ZF4Q1"7hBR\4SI<,bY&ke(5\lkdE0Sn+91muAh8c]6CDtcYL'g6C$D27Ea`
6r&.q`f`kfRStt3n5>`im#Q]t-()sm"Y7#r=`"0%*;\
.3fQm/VD$i;q'NJ\kP9m%h1MTNXnQ"RjMIGmFJLX4YBkb&_*Rq'qiuW?Bkc;U-jH
^Ro'drQ0>H"rVf(lA(J6Z.C0KcAGm9=Tu7In=(GO=KZp\egpd2'UHpVo3N?_K#&]
R3,S**U$@q,&]oD#QKT9o@Ab"pip<#N.);7[.>9<@ZRI7W\)VY'BbSK_6([.;;Fh
]rD)$:SFG)g/>CZ[OKCksfQDW4&GHFN8$b+1/LR%C;"1W`7U\>na?%#Hi$ZR4f9;lrDY3r$m]J
R6ll1Fm%CAFW'CU^FsJoKF!TQ+)abop"dI'_p>Mn+TU[,?hu\iY#>#hrlDYB\@n%
cGp4c,!Vn2Z`S1Sj"5GFsY*^V7PZgo'h+r)`9577)m$9D4FQq,JlV/Mbm^8EWTR*
!`tDI,a9_\ELpo<)PN5!'"=u@p*CaQH."!R973dm%jKCLV$Tspn@KU&E5#Of+d)I
lZ:Ech!i`#%)ff+`)Ta\B]99$]r+aauMehaAI'Q?=:BWQdktlLCc6S=;8qCE8/,[q\>#L"B%gOGTh62sk5!#(:9mO,/J+!+rR&4fU]Y)\F@nBr?OK
jap"p`>?)n=bn(GP+dUu[R`r\!)5d&NZ%XCj=!''$I^OG'.SJ@tQR`UNdNTHoO['
S:\'Il^ffLTP<*[S-tC["3a`l0"T.brI.Mou6,$[u5''RSGQD`G?r]PO%D(d[;[k:S-mPA?%GZ6YX(BVY&/l]DTS;E[,SDh7h2bo
JS3Gmq;S[81%rOIl:T:LGf4l6N_+9sih2^Fg9%6U*F-(J"Of:"c[M##%l\pH.cjo
!m4&;\O-XCI$N!l/Ihs3+_Xu-lmagt%DSpiIhY?GZDP+T-.G3iH]MN7,1^MX;D8O
o<3\kZtSg<7X'U$pGHd$[hPM?Zn88^_\`m53miRn"T:``
uZ[4(nC;d(??n9M!,,X*tZC.d44YGDlq4V*%n;Mm&'p;TD9Z<+mVrTdIjFPbVXOl
8FgF5>k,:r#[#q4bK-T=(=@.S:ApI.j_J(*n06PTt?H!@"GsP14)k6G:$TV:]*JV
Gn,22NHtd:/$P^@i&B!;MP5Q6MJ_V'(""j,m:#V"AhdM1gbl7S.pH[O&](F_#`Unf_@@_
=:Lc_pNNXc5aPrDnp'HC.jFE3@:;Q>]JO=i-El6Ar=C>^_Jk[OA_VC4Os,0$"j
T-AuEtb1tiS88FjRWP=4+lVE2au2=KtRq_m9c4!TG1I"`GPDMZ>Vp#8\kaVNIVSj
:G`jsePhdb@cbHPIaA]:`O->^%sPsgkI9A!CqIs3f_Z4!C_.?q^qds0=(SS)Uc^i2m+A%cImKm%,\W=TfTA7m%ToUmX$.E*geRZ(-'Edo!
#^kDV81mK@^2t/5LVokHBf1?7iX4YN<3"#(DH?k7"8Mr[f.9_lt:+3!\_[N+%nf?
q[fU6ec%Dual*_HauO6ot\R;"i/Q/Wl04&s]\O!0+A?eCu&UEoh\.=&=GD^e5*C0
iulIoFQ8E#nm>u0u'HW4'JD:LG,\IGB<3SWdqjCiBdBmAEc
]*K;,V$qcf.I%qr/BOn[<.q]35iRH!Cac6FId+g/C:[3Maq$t'lO+'\TgVbb/u<>
CWug`.->ge7.ljT/l@uY8bNQXPg5*VSUgVW9eQm:+)gC]DJO%#gC&ZZSSPn&l%'*
4Ha2nT/d]P1uLT?aG'.P8cZd$(4[:r1KLT!%8UM'6:Bq7ulP?0&8'+B5=E@3ikK-
rlU)&Fp4Vf>Y%TMh@P:RC02]fN`I3W$FKhOV2,,^0)]%;h'66ANE;WdD1MlU/#>4
W00Z=RJ/CL6E]&"$NrckOku\DI$_^>oU771@6)4:u8Y]!@'_uMC-qYO'Ps,@b7O;
g`0N@.R_g^-#2-qIQ=@?4OcMaQ`-.noA9st*0fl(*u7A>oZ[lheX^($Yb]Q3Bi3t
H;qjET71[N*L:hLPQ/A0"P"J7SU_%m!;5N;YC:X:)[bP]*QAKV4Us8DF.Nf39l0C
S^W;>3!K8\5X!?JDW;1D?KY,7Tl;a2c#+k=N=/`qrBSZ:J:Ip2#,2=@WZobu(mT6
c[uBB3o5'L3[qo_DJrhl?PN>brS^JjUt[lUjtmD!f)qa!mlM`P.unD-j!!GfT\>r
rDq"kj#Ug3!T6La!3#Tg7SBF(:D#h2gfmidV,8LqX[cp[02;l/o,mB`ET#t':aY/
N]qS9V`O]Rh^pn37(]LK27D#6;#t=tW%SCbIcJ2cJeut_TO9'Iol)Y'%?KR"3U33
K.d'XL+&!$$rZ^Z.3i>2UVf,Gnpn-!+7oK$&HYPR/`]59Qj\hQ4T"Su*%\o/F@-%
YYrJb,scD><'T!GT9R=';RUg09u816ekJsI$8^_uTGf,[B42XP.'[RRj1[URO-Pc
&1VG,UG^B?H$V?`iuIdA_Tp!-
9QOq=c8#,r7HWcc[U\+g'2mgr8eUUI\(@:n>7Plf-$VU%").M]D1:+5^+:&X!,G4,!#W;)KOHoq6dY_:?i@*ST!7k
gk?BINS]Onu$oU=6.1^QV?S)UN]lticb($fF*Eq'+(ffrnN.8--Fa[?CV36sj>!W
ubAHVVEBtY=nFY76eJ.QtA2$ZI.X05JOGK8N.]ObC^YXa/[n>A*rNiON"E
a@q=*eYcMmYM5Vb4kfo3$)$[\\?F!:+`3EfI(A%R5c:GH)J%:e#Y+cHTH9nhA4_?
2VZjnNYJ-J,QgC0gT,YK*iZa*iE[)GB[[r8YZXOW8r+J;1k)NAV9!5U?C70KiF%a8gc+,VMBJ^YKJ`E
?o$[Ct9]k[!rW7Q^2b%*%]Nr^VC6AP^hBCdtJR-LibT;jIsUg=Fg^GVmSJ:N`S[/
oC^X+$f993TuUQ."1mi.e#2nOc)::-4=Q:K[;dJjQY$)&YUNF8W(9]^"l[%pnKn8
nV`faolu"J.bJ4KT,)4b+RL3rhW4EjG.?DC:!@@IK2]!H*h`7rZ\\$eio`[KjIW;
0AI\"+\aoGX`W:5?0t6U:rk48ZnAh1,?JUFoNP%ainG(D_2"=D+K-`&"S]"n^9Vk
]Ei\J#%XEqmm8&4k4[D3"_`bVYU'L=c/s>mW;G#Bp%H?BjMH`J;.qf'@E\WY=7VX
9\lGliifBEU1j@27#mm'QS&6%XY&$)h$ok4Xj#jESE%$#%g3nMk=A2egK]Ulti&+
^P*lR,Mn5r[^-oSVQ+!,GabQg-K.4W;g2L&%ja4fMa$:+`jN+RSaek%[)Vl:.k/d
G6g&O)[t/c][74h[!c[!s@f4!?SR_luR5XJWKb7MlCIYJ
`/?J,Rka?VJ*N1)$//D?OulM6V!i@urRB6]#o%BmpiES=U63`?S6@-NJo/AZb&N[
kr]A!WW_,#Gh%LlZYhOnYT7:^=7Ba^+66#!H^ZI0;^)o1On8L/b-P`Dkg%1=>'pJ
db=V@ih.g=+10-GCAPF_P/l1"/ck=Z,@?k2aC7RS*_e[(S]RrB[MAP&0h^TYnII^
Cacs5aP!8F2\/bHFMC^A^tb&01Kg"mJu8tL4PjqP+K-V]3*f'`*$Kh<-$0R3_nb>
"6(<[L!d!0Wng?ug<4^IlpYVutn3TH_f^[`qI:MP,:b9)a?UL.1mIH\$&
TQIEEB^1]C2["]WN,UiRa\M"H^ecBDJi[]WP#9Oo^ngB(K`Q6gJllOba?5,W@]s&
2W!5Khi/7k0
NaWQ#*)+Wj-+53f4SQY5`o'F?(gpiLm^9E,$'RVq425]Ye@rg$qUZq@8G?n?##Y8
[*@)r#8gklT@/EN2R:p)U*I[m5Z`W/@@#?)I_N4\4a=[8l<:=tgf9M,#
;i]b2$.`h[+77`)#i(VFXEak(I$8M;'#GPj]qbY^6F/KJKT$Z%4rKUkfYGZjmFM>
BVq6J(M>[EPOP1D!!oH.P4X>=[:Gmj2X.r,PGi%=:E`;i3@Y-EDO/#,gE8sXUW5r
(7luE26En=efO'@7LONtYo&1&t8l"j]huR!KT[Z`H[5/Pa*92V^8JE+bHKs_16\t
g:5'9jL"j,!W@Ge6)C8+rnN@^oCXnhi-ag)!f))c%O7.,#sr=j_5/o?XlL)[`ECHo2]2W%8l),^
Y-`qDRs%nVCofSq!-brT!Z$qf[(QSi`#C'\h8-1")QoJ_ltrgWnX[4K?-R>>[L
mkG`Znlf?r6Em(3C"pje"uG'.Ul"Q>?&.N>U:BdGOurTABF5dM;XKe'2
[KKo2HB>M[Clm@fjuRP@qdI=5[X$.ihOPOa+f6mA'e'Ffrl5A5p1L#qiOpeG^/Y$
^oP.1$0INd;9!l@X3!8S,eP0s81P^;)66m5[T=0:BM,`B@#>$9]f@hiE_J#BYOpk
4XO?LkFPO[]QM:[i,Kd/H9oY,urdFpl;Na$Im&I"hZ$Eg\D9QgmZ1*?*8YM`P+*O
10L(mN-D!rEJTK$gK*QqqTdOnI0[,JkgETBPV(PtOfj0rc;G?<9S_"GYi2])3r!V
o`KG?mR)ks#G:LTN7eO0-m<%A`O58kRk`S:4H7/@b3U6?a+,.*"qn$+Ep2::@%Sm
uf1k[rg%\(;bm`J_YfLT;LYUKc^IIgY.FcEFZB5#Ys?uBMRQMVf:*fan2>\T>D'i
%
65:p8%PrqTkX!@WEL7Gg>/LJ>;9P^;JIPO`_EV^#[AuF'sQJ,7tf0Y!8CON2JSta[_@
Ca/uJK.iD888,bMjZBP[Pp+>VrZ.oO
kY"ERKZf6U_Y,"K>X[4$2-jGK(J?*]Y)U"F>s/e2CeFHgF`Yk\bF+,j0*ee
IoA,f$IBjF.PTGMYK9CVLk%ra>?Vh?W+!ZU,oOJ5BMAdX)/]Oj5)rXcpMM>Js5M^
BMRTm&"T53btPTP:a;>@7u5?DKBAB_.<4@E46>,c_K4@^
YgN%3Td*)
k\AVEp4B[R:Hc$^oEKtDVH]C&_UdL#S\n0FnM0A#Vu#N(f_95:V_+iaLS=jWD&D*
uiucJ8Y<;#A92jucgu()t53Y:Vk7gkgCcc9cg+nK-qu$.0K`p[VID'?:>0?QsW$q
IkcS_9+JsXP[YFS+,QCL-df1+@lJ3LAZCke.)N_N^DnAY^n8n"P2DB*^uBm^-SE_
-.E=6R)VL>DPdqb\LeBoj,OKad'L7#KhCe;RWZYlU\G9e>4b^]PUWoJmqj_76LHA
*$"&ME7XY6,flRc;\I?Q^s0$+QY'D,J@5`VjF2*^lcI-aRadi-+,+Qk=o6LNi:)e
!`l$W&Xid3l-S_HV2QqGo0DkggmFO]\LN]:a$P>A5Eu]N3rL*sDCfu<-j1rZ_u!J
Q0WE>iM=dgg8&^us9,rsR;@YL8>U5#74`p:(+oWGfRa6UfSG'F-'.FUg#2p3D]D;fFX)+'SI
h_6,tb(i]KT\poukdoL5`!8&obBtK$[F#%9#C-)\n`Y+OP2rs#6CfPA?fD:6\n*q
C+`)XW&_[SNW!1])IqIItGkH6bu:#9`Y:7m'9&`,(("fMi^hs!U62dG5tC\)#i/W
e_R*L+*g\tXd8"I#?dGP%PtQX2>,Y#6i(==qN[&m$)h&mQm.<)]CE\>$)?YB:VZL
G^dQ[e.n*Kl&;HLU)kVZo:q9SXYgjemiaHg
Od_0^@qs^X_N&W+r@,I;!:iSkdlqOFDSBm:
LT*JS9gR,-]SmaIk7&,@`O7723Cqk6E!qGQ%&2aD/JD:p42_IcDFAb:.L1QjQ[MY
j=j=^Dc1ZH\f'R>r`HQGuQ*-R:*c%%7D$+,fZc!QIiXD`Q'V4TX3T[rp:l:gc6hc
Yc0!UJ[3:R-H3`BaSKHX_Bc?:PpnhH&PdAl8%f$ns9?#>>AEP1nt1rYq`=`.;BTL="B>A`gZ+CL`"!gBg)MnN
>(qhhkp*GS_B5,fG!<$A@8p["K/8\)L!h!T(A/>62U[Pj4ClWK\-TDiN$QD>LZni
Me/@&.gaKCUnWLH-L;jpcGm4F]tKBdPn2rfd8\eb;4"4%8cD:#)ht=F+3A+u%_V5
u>_Yc>X'8A,)LJ2dY;sY)6NF=\OX`gr;X6D2d+58PmQ%J]Ys3XPu`SorB^@,hp0C
6H0o6,<2F^SPm5@klmh_.B)OAbe-"L8Kd@J6Y1Q'[l>*sV)mddIe^f^`56C1L^I@
#+K(goR^VK';n@OUju3&\>,9kaJuGto[>rqo80\6=./s97C'cr)V7)<\e[CYbfuW
'T*OnLsRHNW]b?[\P_s/kLCnR[B8H])WMi&bOWeb=ZR1uVGNu8fVIHt1hWG1g7D*
!Et.Mf7ijRQ3@l&+V`@;gKlXeJSNF*j!rYZ4gpheB_u.2u4S:4P-j!4")t5bsBdV
fi&>X/oijO8\'QG?>E_eEoMTYAm7-rrDg_$oBXO^rG?*V/DW$'^&V@$VNKPD3j6-
T-@!1=]0^glSGIY6YLUM!U1apq0sm62M'X]dXen:o9#*Z[#\ok$0j!BnH...9I%?
m1=gGJNkc6;AoMU2sZ0JKXg?724Ci(VXdDceTT
+hfBCDW6W$0>j05KY@cm*D\Ob,:mOg7(fO=.,PVTL
]k3Js(SBkr9uj-)iOTK:TE0`^cR83aV)<5VWg'Cr%WL,]*Z<*"
!95or2\)7D+YH3N)CM&JnbUc!1HJe.h6r2P,!)q8Q+.=s?`YfF5+UT+hs>AG>@Yh
5*TW`e5`G)1:$\Hd&*]S]7_RMEb1bX)XTrRtJ9/c\O)(nohN]+ZYbX2;KtIN/!-<_T"]?f;S3=D:*k=A:Sj?HN+4?Og-Ub=pTn_uM
4$hZ*,O%Ph?ePGZ%7,P!B:PqX,B-=U]R2pWB9l&6N][q=O7KK1A1Ot]1n6:jS_SU
l74^+#IT[BV9p.E1GP&!jV7es_J!>_QfD/sLM#RHIo]D[K8$kQMAsj+p(aK%\R8T
k7_JH/\)KCNhOIm=#
]`NK*fc9G61+Kp3K!Z)$>Ej".@$ZeA"&;O5jg(S[b3ke2(>DqTGK;Y/9VliUH.@1
Ho;V1N;8?W6BMSX#!X^PnJXe$*#TB6oEW[CE`OkJ&j'Qu6Ah\2#Yn*/RL;_2HX2e
ph"La?TLu]"*\PH11S6u3.2mNW*S[#gR)jCU)8YZ6CA,V3DAl/"[`Sgo5bqYJM$O
8E32e!S$k\']UrZpHk6#j+c!eJ@U`M"hF+=gn0iXL-DBP2(,b._4L!]i"BJ>8V>2
A1sPRr1i6)`U@l&<-<)&Fe=jb==O<,tPm!cg&G9(Lflm4n"P5Er)Z#j/'-)*+iV'
VYV0)6]jVA.4_OO$&;Zm]d)qlK@869NZh.'R9FPnR>!lntcmI`A*fu5J's2o1A3"
\*JWUa(\.258pac't%1$N(Z8IPr,;9-RWlQIWXYo_b<%URG5>5,ZVRJLEc*ES4G+
p4IVObZDo&h,Buhn^uD@t[]lTGfFBm?88']%*NAh;GcD':G95:PL)iT:YjkA'`g=
4`mphe*^VX^W/-H#DG+V,hNl-0)8m4FT#'!#^9i/80>ED>r6rnN4Y6*eU;Nm=i[V
D6<_Aqt+<];oSR1(JD*D"IGR%Xg<.CTT%0N,"24mL>K"CN%V0Hip8FMa?A*J+okRT%Za<11S?%UcS-jG_7(ab4
d4LU[tYb^9$l"T.`tQ0LG^rXhf?.c/eV"8m>]-g^,s]%P1FEtZO([/be:$rf.nl(>r
pSTl@qp)Bp_MUR;JETA`?`:+@j8bk=6C\W@GRff2JEe;2NpYt@t%WCu_d35HI8HIZ&mZ_fL2W&\l
;gn9[NT1Z&>R1-0t_Hu#=n="46gah07NmBM=p].,V>BIc34F%m7.NIp]>-W1@g6/
h,a32.gH.XmmMWA?FdQSca)5qF3%lm95i-L8OEKp/`rr>*L)H9$)<0m["C;r$'+e
n;IY@0E3'dDUT;iq`:Z+d+KfDAVK!/Wp&;sHb60rR>gnjiAfalVR"XQ#/0.C],uiVW(k=UBbAi#;Kt2
=V(&i9hhCtub;Bb&b6Zfsii6RT+u;D+58J"bgFD),7*O@]g2],teV0bk5C/KnJm8
oHW:5b2eU5\@
J!-Z'c*9T8=PI_j\n!C']rr]c@P.90!#@G+]_1;plHF:.[J(<&`OQb-S[L\$B&s8
DDB->HQ%[(VD1B"V*?Q;&0kD:W::HCP6b1)FiSQL"QLHpRs_-HI$gTA#sgX$];8?Y5M5/=
d1h+LA_d!We;"U-7g&bH'lM!5%P'Z`j&KG#715%fbd[7+#p#Y668X,/9!A-TArj4_jMfUCB[?_V1_G-rqG@4(@9l91R/*6d2Z;O]b%lLhC6et
C`37.@gRG:.=aX[T\Fd/[$!4&^'6gICrS\DRZN9XYi-XrQj4+S6f=6jXSF08-IU#
=tZ8TE_pA`g'N5./+==7-\QEXQbYN#5](:W'[mO2P$T8J%apPq)"hJ]CBQ97]11i
Ao$XC>V\M44]dY3B"E=CeI#d^Bdk*3?@un`-I8Y>%R^6g':9A]^qRMdN(fjBt1VV
iIid=Rg
&O/M#=#j;Ji.emo.e5'm+ii]ZW82YjfOS#Df;4g/d9#7>C4YrOB9AcMiKJ`Cq=`t.umZs\Z_H5d9E>(5]tgK
IBn5'9N%1m8^-XPYREpPUT*5m*D`qG57e&i%Fl/.nK(UN?qS5HH.dq>J]m]_nh$,
a7ZM-`Duh+9u^E3>pY>!6&SgEhZ>o3^ST'\9iDf?0j=@&a;FlWV&>'Ia)\6L6:
TR_KF=9blaD49ji]"=g^hB9E?8hQ&R-!2;K5k%8JTBbj9]A%H:X2Vq6aO`GTXbSj
u,B5P+d(=\G/2t\pYZAqB+Y"`#9c^PHpTeFC,
b2;:tn
9Na?fuC+:gc[Wp:^k]&$Z](i*VQ:]!TS25O*rZ=e:YgSLC2g/SVTjFU1E<2AI'-gq>E]6(rrDE:52uQrM=`^.@&)g[+5`@;+J
Oceha[;3@QQVXu:J33Y5rr?)aj2_?6l4"t+&Dsl6SSXRhm2&M`k9VM-k%cQ^W%RU
]>0moAVnT5C0A\?+XEnu?^7jeeShYDIU\##u;u5Ak7I'<;BaWXKaoifeBg:1%:iZ
OujOWEQjh97t&@7\F/b\75*+K,DlVT3oQ8JUA=n_gWj1^*7J#W+"E_!6A6)U(>"s
#m;i&1'CI;U;9mjOG2aZd,+qaKL?;Guj@m]E+e@3]e*80g.?5>5*oiZ1AZQ5prpT
[sdcS-IPon=">YZcauqrr>?e-_[S>05EK\(>*\%87N2]H>#O,Bkfm#D2*TZ7k
-o?pa(aZXOmI2#t7T'G1c"]/$+F>nO>lYT`oS!d'<7(X;pJE/tcsE9SP-(HXZ&JL
CkPkOeT^JDIIbe*t`tnr@4hK=AQ5%iCVURn'a`!5kL(*;M
ZLJ#o_g6TTQSf^1$R978f6'=J4]>$P^f.&.mfMYf/d&CZGPj[pS_/<7WZsa<(N/$
IN?3Ki]i=89!#HlIp(T:l/^Tn2!h,9Jm2"+S.]n`4:6nIT'EM+EMfE5phgcY!kaO
V5#eEUD5u[0&=>Nn54M`7r:*/NX%ls-j2c-$),5@D#uD]NZ1Fu'Ii=ki[+m:_"?U
-Ajh.b;BfW0HLJ;*V"UVfqQP_:4.QjUgm?-R2b"abS8NqgUO@CtdMUlX)b.)dRhp
itgdg"`ld[/'BGI,*_bq[g.*G81?rG*9fb9Ak7N"F`HraM(e#QFdVf"ELp.E:j?0
Xe9:9'9;_>FdS7iu<52(OWjol(S%dk=bN0$;@Q9Q/MZBkgY'0:=2B+,tM*:FJ8d<
FlkA9SEhClB<%D_$;TLMlJk&r"/!UoW]`4L\`u9CHSqXb4"9h&1"dd2.R,(
\e*TQfS9VVP9I*lNN:N4CXh24W;r""IIVtl(PnupSCMIb]7$*fhP_F^p549JTntb*nWuY(Lm[/aG[NpH.kHtS1&%75@m
=C#3hA,!Z1a==VepO)!RpTZba[[5PT$mId)mO5e^s,ffe@$AL]beR_nk^IW8TT%h
a;*2IX^?8d;kn/dT/hRA,Um7"f;^lU(-S\@*]md9#oqucE%$`X_&,7+E]jj?hX5/
_4>sqJSQ8ss96o&Kl2pOXo0fhMi<]g-4F\iO&ctu`0"_\Dp>W49XgX\W6!K*KW$X
>B,tU5q;bY0eS_:l8Ps!1h_H$BZDALj7n0#;%q;cbcs5ff[#<;%
Mk4TYsQiH(>:P+&"q6i9+"XR6,jT"nu:$h#NE,f1mdWV?
2Q.)d'cpYl>>iRc$h3Wk,IL6]^dC[l8j)jm=[dJMf`3O;I;/4k#Y6)"HQ&!ac2@=
uQS(mX,NO$piOPd;lqoe1gbJ`,XWn&l!;u*Vhui^.<`[:[:6sC1;n5XO,\,>o=
/Ph8Ught.-toN"lGAjnlW%4ie4mki0\BDGo>dO(!0^Q,GgglEp)jl36PmM17c=:%/1K+GSq4];DsIIoVa]#XuX$T*-4`]5s
c7RP;mDBJb)')h"b`M]FY^/N$J`t-j5LZM_,YT#C>+82kgYGp8$i&YXaERr,Z''b
n0:3JP$K:7qrsNa`toW.Qj7!W6PHG+t._%G3qZNWn$,4YA_9R-BhiFXpVs7.9AOU
HBWSdj%@aP\9B&oG47U^KlN[iX*;"]*/'=_H687>[juB3NZ)e+_V5FoN6p^\ZPHR
$`62mZT!U(-CQGhH>RR,EmRTNA3S,FmJu(0*VKNqik<)d&HJ6!$Kd6$S32.u:YB:
&58sO,#\J\lr7KSa%TSbgdf.Ni04C`SJDE/d+NrK*EBR1lke]h.P]YARc4rT0'75
06k5!p$."nlg(=c[aV]AHHfpPMRgc!NZ(+,o7'eBDiF^%qDeN)XpSVr!)bN3-(%5
sG_#e>4Ph;It=&7r=TZX(-1D[rh7`pj(ID$s4:n,ep?hkICNl3e0"`?Q+.F+qprN
WQ,d=?qaAjWG]MWaEd7Q+\IASE%.$35?a6a9Ylta"*_9Z?5Qk'A>b<@CpmQ"jLHX
9\/U0sPpjjK6:gR/ntD7jdB]Su'Dei?!aY<+OcW%\HW@cMh5kZO^"j#tP@h,c+
WjL+`p&i-.WuqW>]XIUYb1HQ4g>9Q;U'L!#hQ@F_=f9'#
PMj7n*h`A"XM1JXU$(WGJku)A^)7W$l
l]L$'!4-ak-i6g$a19#YUOn7<-R7Wl2(b].4*Mkn$4"rX!618`="aqiL>E07mJ>@
<[Ul7G;;3.e,-,$DSbXh53:$XJ[.F:tF\O!.iMQd@0p'7JcYdHp4lp(M17W`S9dp
So(>%eX+ZNOO)65`@(0FYM940?*p[oUhGPoaXT%pi6%mtP(Q,8aK78:JMRrU8A%\
Lg4$@/jp>?Auh<6N-2V1Mqk)7d,HL_G=&rq&C0?X]:/a[1O(ATp_J$`DR/a3l`Gl
N!1qOE'"iSQm-ebAkF_<2*)BK8rB)ku]:sI>n\+!D=Agn(C%<+_WH6]2SSTD(k6WX,=n]#HjjL'Z"Xb:O44'K*GPU\9\[Ae
gc!3o&DG,7SPa)b&<#5`@iC1,8f^*:(6>5sF-?[6U/:R^%qp]iL8$k"mg=f"/T1T
g3hd:[p;@_j8A;W[_Z0kgqIO"b7JNB!0O"X;AmSk5m.RjZ6A/:Y0TtE%p@>>0p)-
6lr@!&,1W=I7$B:2<,r`(0(T^C+\.7-3LG?/K5ei)$qOAaeUN:8PqkrW+UmS(Yf8
LcjRM6GWFdr&V%#1kbagR8=`>E)0?PZ/7r,b>0U>rJu7La[PgLPW*!`G-"=P12mr
8_S\S!**M;
.aK*9Q>$K-7"4n8'0#o5m%rpc2V6.-O,t\7@TIiHJ,W;i]4OF*.;Y7n3NJYW]P$U
];f:$9XW:O'+9"-*K`[RgREuFJ;rrC2V!G06NiBiCs$:f^.?[2f8orb[C;TICH44
8;;$[Un`-NJ@j];pL'Q&KQ#X6W[kP:7q=a&fr::H6V?!&,lFZ`Y4tC84Qk.LFSfpL
.\53)V&Z!4D,Gu.qa,KHp85#O;TdGbW=%D7"1;-';I+!-$0/JrL9Ho
QL--:F92sZ*epK$rZ@DTr'@&m
8L@G\p#=Hk1KnE"g7H
f;l'?Nh>%mCs6oGZ.-C90VmcY[8#*5[^_lJPe/_GU,06^5]#OBh37c8)b=[ik,dk
9UeR`am@@^,P3U_(P-onE#JrrGck.i`1dm.C8b_fRq3_N_Qdf'14N?B#q:.[#\)"
ENZW:H%pW'F6;AAUQ&pttrJ3Q>+>gn"b7Af56P`>4)ECtM>GYfZLr9E)kaCoI=Q@83)SQtn`_/_tr2KI3k@crWm5IF[oo<'<9
"lQ"-hrJBWV+8rC>U&4eWj`@VGQ%T8,FOnPFKa:mdEZS#e\JUZ?efJ#*/0qaJO#FH(%C`E\gLS2Q'#!&O2?3Lr7H`K^9:&BUB
Vb1Hjbr$XkL.'%*68s4-Z*.pe(Id'u'K3kIa9tacB"fJ0[7O,Z,@qf%G8Gh9dDoS
ojN5R/hSt:eTa`%7/5,_l+7o8M5?;04W(F_QPJQQaB&MWo*fCl\;0!q\\3NB
O="As?lu0&.FA(Q@F@'13S<3mt/T9LeaNc(Sei0u4U+g[1G5%o&duisi%`)\\k)CJ).)p6_sKJ5SKP'9>G?k>`;`U6@,NX$7CG\8o\+#K,*/'fgK[C)oa7mC2LcV7T&5M<:m>W4,oaEb6#4RFZ$.1
4f!DpeW\!NRmGb(qTu&!B![iA@og0kO:h2L^]VZ&V\Q7IP*>8F@ga.\6m81-+I\.
\eK#^Zc9'je0uBIWm.pSF/%u_#ol+(E6Dck2c?m'rUJ&`]r6Q$8b65Vp@J+jSm,@[n%sSSWMg'P_).L9iuLP"Da8GcH?Ae-2Rn
r/WB`Z_.E2QfA*I)[=05nkX(ho`aD3@cl;eJE$/:[QpA*8"#h'IRnTK_U0,Y7);S
N`OZ[ekIA*$TLM[n[ZMeG)lMXo?9Z53!DJkL@o"T!>8Y+:_5c&eT9rr=s;/(*c5.
HM64r2IFKD4SqMV*hMhCYC6XGeHF:OkWJ2RsPXUO#<#>J!F470f!"`)NfAG6Zto]
"4_,beW2CSKAXk0fKGs2+(JtE/KgA.AdkfW1,f?F_'@9Y:h1GVl0FjiT-sL:o
p8s5(&AMo;nA)9mnd^/QZ'Uodb#c(/t554mR_uhhq.Xo/D/9`Uj&o7*o,KgSldJd
Mg1Qd.#^(@XuT8I8'e/]dGU.?Bkigil>+O^'DNZHZNAG9C;mRoVm&H>6oE<10W&$
OACUqis1*_C:`T-mTQX@Eeej*AMas)$c2eqZeTk-8Ka"cN.)KQX3@#9&&\Zf>1:S
krL*=l#6WgLLa0[QO6oR*lHm-R:YS3UiRrbMrrBZEInJj]B`A([dp+FM7&]%&H"A
i$>M/GVIFI9^Pa;:$`.CL[C#ei`4euIWOUk"?=@/U2Rkldbi^Q6MPU,knrfs#Gg2
)+S:pfo8;n`o"DCiB,%j2Pq)LG!=M=6#f+kuPO@:#f.:$
&D3$=S@?B.$(r`O6omXt^)d/%n<.u;3nh]0TBm8ApWa(
'-g7M7if-XNt,Au-Q8Jqi-4\5fSe)EZh])n?Lmq*kR;*e.A=K58d`.
]ICIQ)Fa7=6ZMmfI:r74-P7[R&s5dVh@s4*\ka4.cdM3P[oF%NoHtki@/XL*DY\Y
cA2GeqWqRSoNq;F'##.!A:n*H<5m!$9Y\>f&6XMW<-/28(F
FE$$_o<&BqrnpW5H>^B:XOqqdQ``ito:a$rk#F`K?[9uY!1kr9W.o$>9Vu6DB1:/
J_.1-n7Oc"!cN7&?@WZ9DCCW`*P]b(?\FZ9anKi,A7Y,*O%!D6,i2*O)r[aJ';Po
fUBV_+p:EbPhTm#dh:7=%0cl1iWma`Ci;pl7H9!7!"AEU.,'q+p7f#JnRT]8d
#atM%ocXOLpHq(mRT>dWlWAF,:dcR7jH4rX@[cqQB4]1U)PK"Untjej0_Ok2MTp`
]a&9_P(rm1'R(mpK5;4V:'Z7Geto)tlVLbWJE+?u7]LhmhE+POX1C?GW$@8sen_=
][;q55^+pCJik3I>(33V+VU>O*Ec
,sjO6XmT]a9$q.?GC8sHN:Zu2(3cu1A!l4R"IaN3uQ!1[*OG.t;#Ypi+Uh@OkkH2
1O52'pf=NQH(J]uG,qHo3:c4'&niU8C#O8en^p3>J5iA0oh#(C^SNUhMgkc@4INkK)Be_IB2+J(P61Hl)=RND-
bBBPD&`.[Zi;/D&+3LWmjnD)gKB5MPXYSqU$VKuRr&F(IG+5hE)CcB,-\:MIIaS!
5(8T>5,tDf$\3^A]1'u(dM32Y9\P,+T[NlJTa#nF#oBjZ[q$*[4Fos1
k&!//mFbXtK[Dl#]EE!RY\T`gggMTu]+*H^17)l;N$]&2p[_N%+kiZ*G/oUHXbZW
i$Ad+T*:#9Ba0o6F'I:&t=u*+88)3>l\9Z+#[;d8l^'VUgj4M#\"&j];!4,"k\:P
I\)oPTN4\%i%R_C1
%
gN*b8:;XfPb^i!Gpu;e4mDe4eGBI[Q&madWd.bPIG,iiL(p/:Uljj9coo8!3n#g,
bEQQ_K=$cXK`^PoA7kiAbsV\aXZni\FZJjE4EhX]+L%O"@j#J
\L4=!YLYnMoJ0Z:^-,3.9Bu$;iegMOr"K;*Dm*FPfk7=f^.jR<2CFBOJL':5LR0Go\G8DF`K(:r+C[&&tPh24Rt]IaO*JI9nZ_[[3@G?'G-A3U2j!l.W*'t
`L1UI/WnauDA0:#4A^q.BT.8M29?#]7eH+M*NO-"3\iSO3pTEXm:8So"8cZ\6-fBW=V*>AMF
ti\4I#F"0q!i+`p@Q/hg7]ZP9]@+G!XcO%hWQl9lQpc(IUWCOh@r`^bLMFk!NTA[
-A5b97Ie9K1*VG)cVq/)-]X>jG+Y5*N\#R0B*bD?r>Y"5ulC7hk,S[&p@l/f/`YL
SBdQ+Y"H6J91N_c/L8[f-q;qES(AH!)tY6C(iN!N4'Qte@6NA#tfCDS=FoVRFQWn
[bk\J+?1N)ZXG7u!5':mc",:*O+h'$([9YR?;#!0:m;]IaJ',0BScYULNnDoV((-
_"QMWE!,>8\[5U-'kFDMA&dgT=Nm`"F-O71Xk>TXNbpE(O9.D
7*81kD:5XeiEB.*^MaGeCjkr'rr/D
n$CiadcAL`V^HS>05EiK$s0Aa[IW2VeqA9T(.mIFaK(H%5`DUE@,ZOHW-7hgDlL3
>NMh5K;t8qT,o[h%<']h:>0b/7V`j/MC>,CSJg_os3bDf/8!#HoeF^bLBLbG]fGe
c:)^kI3bh(R#f%/1L;nrL>W+q`=QHt<_Bi.%a1K8[WqdP_ENO"dp@5U[T6`n3%U?*sk$Y[=?1JrJ)/'$0.,p\SB%SrZE4e]oFoLY_CL?j;"Je#_iau/Br
1"-F\iA_,GJh$%)mnNRQ#Qp*$lZ4LeEg#^>:f!4SR;%U"D+J"UcE3k@$//920iZl
SK[#;2A'`SR^'$]O
6N_ZqFP>_-=L[Z\$H,sP^LNN5\YLo0'#E"R[-XHudum3?#P]/"2'OlL'XA)Zn?C7
4tMNS^=an]DO/c[(3i)Ema.7qO]9X:Q"&kOkL=CN#/d8shluc8_JT>7,h"=p+4E-
]a[tQLP8>I2\[]iW.$X=\GdO[:FR6a6^"-U0[GNR<'8VH_Y&!+Zoap:jCH*`Hc61[:;<$;!+n4R3e[1neho'e=OiO](/
'2NJh$+F+lK&T[2X947ZB]b`fGF,h204Eda%Y6onE.D_#!ETpN-glj=_$?-:TjXqPtm&5"/q[F^$sk`rPtf'
pSmjeOYu#"k8[*6_+uq,Fjm:?H@F`q6`U[)LBmY^:sW._Tkp?IYsn&3BrfCNfDSEDC:;WCmAkgW1c@j,0
l$p86:s%]!iPo`LAG;ps4amP(L,6B<3!26k'*l&B=0?PNo_j:#jQpQ`CMEJ'e@Xf
n$r/I+c%driB\Z'QJ%H&!_ZH.mH>-^2h+`S&9<;'RFn4iLdlrC8M:bmlY;jB"M]f
N6m4:OL^,XOD1@DZ-N_\8pHbbH29@X$=audT$JVm([kC],C1,sHn>9t$*2@&0>l:@FeiS,uURD6Z'9,hZT)lGI)CGT^&SO+UGUq$>pKCN1nH:h`fOOB5^
hneqjuCR-ifrQ)oRbq'Y9*SO:hFVTt_^b#.WTO86;ao2\%!.kh8PPc,-Zj<#UQ[c
fbYNR:rcmH?q*.7u*_O)2"keOA'-[Z7]X8!)kD@DZ6i^]5F&dCu[2K1GRAGF)?q8
apmW$-q]J:-[q'5i0\E.X$m&&sD6UF`MMgZD5]9aS[PRHsI5<\-oN:]\qfPb&1Q=j,^?71h1U9[5K=i5so@+W%B=N%dLju8Cf\
eilcr$n59t+8!atPqsm^G5jDBA2:duN/IBK936A5')&5qi%o'u.nHuFXN/p(@rr>
[`f2nY'-Wi@_BF8l.,S3+/C(BMN^U^.u:,:fAaXTOuJXXouRRVVh)g?9>oD\g-"`
rB\Hb-8(_9O!6-_L,tj'-Bb.r2"#2$t:'A4Ai?c8/S3:u=0k]%l1G)e3-9:44esX
V15D/h>f=!p"R0Yd)ps)(IMc;b+DdED;T3
YW"mG[3Mmjkrt_XBA&9@&/2`,;GYBF.^I#8/fV(mNC7^Gt!&q!JhR0b;:IIZ?Mjb.iZRdmW<-PYKk.FZ
?9o2_DE37jH.N;imK7s[#%>jOApBUc*Hr)4s"mu)$WLA1;H!-.2HD-C8tTX>qIYV
a3pf^.YG$3C(ic6G@jc!]A$&>QDu)84sT\]\[hO,FkQN16J-A=Lo.@Yfi[1qe/*[H(hDZrAj,b@5(b+HH*,e@7TV'M7d"urT$07'3(`5un)
GJcGY^aL;K<;rli*_s&H`J#en*YP4uEgGFq$TQ1CEV\4]XU@dM'5`"6;e.8>rrBY
gjqV3,LSJ\uX\r*X.?^UN+)tHNbsJns[6/)SdB9Z2U.6@#U>$2XDq7E!7+NR;2l?
ehPc0!#.`7qr?ab:S/l"e\!k+fUbn!O=J-&Lsl%'j8Yt-43X770aOY5VH!:3iZ^nEY?5A;%-j?
*!)KAf,@P9Pe*5[gEi*ui&h7]ib8(`g7m2t/Dm^Y`rrCK
D^H".;E1TnNg37T7
cl`:N+C=gY->T<&@R[N:GQ\rr@eL6&DBp'UPnWK]SNXZ+5S#K`#22>&!4q3pXIDl
2s,t4rA?3q/ONV"thj;QsLlA:PtWqV;bP0*;bX9l3A?pc50MdLjAaZnLCU0VW>B8pM^pk,!&\DR2C,eRiH]F3Wp8bBhU5>$52*btZ:a5F;Klq@LD3&%X]
VXJR(Nf5O/5IX(3%f,(deVHNrf:-`8Odh7ZBWo-!Yfaf>qkB1N0u$`R$Pk4Ku
76A@s-N\V4PQ8:n:.n/p+(T4[,[$U2=2TFg3W1a5:YXgT*X!DB-.F_Pgo&MKY@4r
o/$3THmEU5V$)D/RtVHfLi8kCIjiSe%lD3%0bOLD;IY%WT0E0?;RoBnW4DP:5]5e
/&]MpBNVN3qgpO/I;uM\F#OU_-Y4,OBCmJ`!jVl,d9"dW*Q%"V`.urOD%>RPrUFV
r$.dD^dY.ME6Z47u+?SIMF.`4='=>I4?aT-1X6BC1e!"SaV)9]U2n8?Jmm=0)N+//X"u6?QAbO#*)UbH`>=0P2!0>""m?!4P'ER
U?*9]qn7/#13a2LZh=/l$9fEj2
!ogWirj#?=^S`D0+h%60X@Q4I%5D^``CEWGG:GU[S6uSp`'"bbq6j$U=c?N7B[.]
X;.+X$*EM7G,a&98a#lo+e(@Be;*2\DUSC-6"+R*dQ)&IBIL+\:Ye3OGn>s%r@7Pgea8KDL(
BQD(B::W(7jtD?r+I"0AG<*/]j_m,Vj]7l``R1i]Fr6K$Dr]6_t2eWmRK>a6T$;9
8o&)Qf+=&H!t.3T$?Q
AcWi"U!VgfTu4U1'0]Ja!R7$k*Y)&-tIU"cDA+a.O0c(P`ToKCCjLCcHXJnV*]*G
;';+tX1Mu7Ys(M7ZH2\FrrD31[r"2E&XJY),q"nq@Qd2f+UV-"5Y_MSa3K9?NZ12
!F4aKg(o:t<,J@sM/;rpm2jX5:L>mY^2dB_h'gu[r<%rUdRMCAEmO^M"8LiaIZl:
P$<>dm<#u4:IMQMmsgIQ"O4,3sd"D1]CP,KQBi;G+41V?=GmpSnAG*T3j#*`XBu8"L#bF-5SI7ljPdr3oSd$-rt"X
_,UaC-)_),iEjb"nfc(6G."MZ6Q`0:5mnsBk\RJ"3#O3gKNEW^fnX4??;7MTSqX'
>T'S/R9maN%Qpa1%Q`:rQ(VcPg5S.*phsJA?>Z&PK^tViNQ!7
J$HfH08@VnLYk"%;IDDG'B>&UHl_3[#9F/m2D(`9E_U8EG[am/[d__e1a%keoG(N
J."`W/S/DrFMo<'#X6k&DrdVZ6%ZBVdXV()ReP#U1MpkB(WRQ9V]O0m6@8=;X[*)
`#!NT77aTRD#%]0<$6*)j,Li..$,c]o7;hWAB)it&^9YrdM6mEK;?fu,7`X\BTo^'Cd\]uai_tq7Sgk(6c)!ch<,t0egIbFiI&QUW
:I^q]aQGN>)mAT?cVV"InGmfO\XsFVc8Z]^V#gHi.:6fDMec3iL5lQ1+_9/n!EO&
9dd(J]r53HW,GAm&a25#Ee5@nmfsG@CPqpkA6t`"3!'CmfJR2QlcWl<"=XOACDpp
&8m2B&*aY7UPXj8.k!:t!Pb?Fj=1?+N3PJ
q56-u)Jna`=]1AR=fq'O"\P!_*AY;bq'tF"BqrgLda?-OPsJpAcT`jsr*p/GnGL#
lpp^B=1iF/[nik-o6NVWOABcT]<`l1f)WSmOdY+Vh1_-TK(9:=8b*&,7R7`i)AZ]
kL=[W(StICTta?U^gYN>ca$Gt
;oX#R;FaTET,[WIZF)6bFZ*'!57q=^qO9tD>CbGQ:L5(5dm<'aP@a14S=jLUbBZX*ND2\LH
PQ0-SAF-Za08-a9CpT]/n`B.Ni-pA:AF]FVqY46ObHXbEZ)8W`Q/gna$SG-4AShJ
MOt*9B""gIm^qOc"?BT);Q2FPQUs;0gIs+IiK]K2:1^5^a#*m!0k#UEr>*69%X'g
,L@*l8aOI1_QGk4(M8`*tcr/-S>8^+SM[f)9j:l/HCRZFZ@F/-^sVk$`'9r'C#`a
*`V@LKk8YaS/h&fMO'+MASsM/h??ej\AA,;b#10G7up>bT@1,BYAK>/A[$?W9?%L
c^\"UH&\>Xdm'RPFM#GDXPs4Cj007&)3@1P>794G!sb#Yg-XGZXI#Pn9s"*E.I
4($]OF4C:QV83]R]:qGYq8(2$(>-K-S3G"e9SQC*=-/FX_Ib_Gg_Zj\f1e6Ps%,4
Eo%_]j?Aim-g4\cI=;]V`E$_reA)S,tZ+'kF-`k>8)(iTr"Q`E,hM@*q_!\D#/BE
AI1iuJ1u?$AR`3`(.`QU,6oK?eblieVuG+r1<\VE*_B]rb7pr,Ii@iq#FE_#COd.3@PA'&k/WdFI,!rSQ^+?$u`Sm5#W7(A!L<6#ZjdOB'
-mFu>GR3I=Ffau65-PlO.oA.0O/R20S%&[Lan'9WP*X#j%=lYgbRb(4MCV`*L)Cl
^Whe.Q#9<(NNX.C;'f+XJT#KRn_*ZcfYM?!+XAB/[una[40@.8g@1+$A(3^5DjE7
NIB0MF*DZd%#,qO=H9-T&U^^g3*mZeulh[,;luX1G[u26Y2Sq>&[WeP_8u9Ihb8C
0A8WdFVdrjX(&'so54j%#(0-u/Qq,s`G3Gqh)fHm)Ko`JG"d=orC'\$g[9f;90IB
dA@X;(Uie.LQQ+t6e$h>"F,KR/iBt-\[4e.E+jsPS?%r:YKB%dP*]j]H9%0AVU((
V.U;(RaUIq/'[l=_jYQub>Y'\j;B_[A`;AIm3
Yhn;8?$H8P/9B9Zslhd5Rp[*LU70CJi5Z6--n&C;2g!/X"LN[F(aaF8fo,5q"+q*
gQB]O`^dqC98m!(@K0NW/*R7q39AZIoJ9?\X=n*gd^G;2C_:2pSm0XPNP:kMs\[A
Go&pl;P#AniDKUTBqG-pm6bB9X.VJP1t!"nJ/(_10Fg@i+FY&"U:Q8`[!YAO=fqe
(b#'IORL9F'R/lr]D$d.Y\rWt^G3aRD\[!"sUo@Gs.G1>E"oo@h>'58Yo;Z\3H:7
37dqcHUe4,USJ-&\KaT,t_SIOg(;gZsE"#A%W;4L_h@i7nQUX$:g-e16RSgpk/BA
$l`L`&_`3%7![C!kAb7'qn2VrFA?\]NWOV=b9LrrCGn83HYD'M3nc5ORUp[4;psW
^:TMg'ds>*Sb+b?q.He%63ARFb^rZ(`QKd(#hEgfMe\/Z#[9#$>g6\UgqeD#(t2k
5:X>1jhV_8T]td+kpgF1d%g.X.KK2aA65iU6o$C<]3Pb6LopJM(r^3PFKUq\HF7.k2L$I;@'?0BqTQ7!8*;[0N'l&mGjDfAO^5CHqNL?953e:M^ferrAN[rjB
CS,qo0RdA.DLWGt!0:Vpnmh,Ja>l>EDCC/N4L#(D=BH_@s+]0%oS/kh[p;tk;+On
naR+qIR4Emdjn.UZB>2OMG0hOrI=IpCf2BpW]qp^[q'm^St#.!@Sq!RK&tI%
KV6$L,V;rU9!/5at.ik4*>U6@f1@iL.<>rI5^E#SDMunFt4m:G>Ktc=/-ZjgrCH!
#g`TG&dDgC0S#8O[i?`Hh74"[&[C=7-".XSu`.F`0!!/uFAaZT9rbj*qM=8#g'Q<
Q9QgGsXNp]^qA=';^rVCm&"eFRQF1EF$5#m7Xerm\&_An(5r1NSO%UolapbdcS4A
+5!uH8K5tEUOJK^rLC$a$3=7n(Gr8<8pl55OW/k@Y0$&[(W3WTjZ0T7V*&]rO^c'
'Td[6_R5,j;dBBGbiGZtW0@5]f'#$"ZbX`=cZ#j7D%7cW2q8QKEn"#I(gL\Z!M=6YA'Om`Oa
KUMB=GI`oRfkU`^4ijkNn/e4if@;rP2u[R9e`lXdTbc+uprm`ENCW_IQ5[H(U7bE
dQ7K5l=IM'Xce_=GYgI^S=@S"C@$>#cj0Al=N4T'RHr[HP(TQO65kqU7`%.98\R<
=Z[j+16E+\85tTkc.R?/GXlX9mQ/3=dIb/7Zu3[b%4hRN"CDQB)PN@op.>b2@.E*Q!h>BbK2=iQq\k5q_EZ?'Lg2U
IH2S0Ic%RP(saC&JAW1?B3-:9B>V7=Zl#)#j:5MbA5BCBsF;'G[YtrM!_H=&f8*r=f8F>.?*'bgWdCM.KimW
!m,*$6[VlF,r]"ZQ3PQmTNZRW&&s.BB!@lIFf.(i6dUmFC`GAQ;qe`gJ^V'iZjNK
<#1LaCFQLkPhDU=QNlNMlm!_mo:bK8\m;akYbnY%?YJCi$"+,RuBbl+PIf77b@Ci(eLJC26%p*d3D.sB^U5"jJ3"]-(OgZZVW6")[N.e5:qc$952C5fM^96cl*4\e*ifO^3
JDjWS+D7qs`=Y-!h,1^@`)`.8d8o`C-OK<
p7mG.JqMVMXVIOdt+_P1MNXJ;+2p8,.(o$=;W/Ph/97E[oW)#*&NN"$4<&]0$O1I
r"]ch:'T=U8"GN`^=W>^ILGGDs1*DNjZ\QH_*`I4ZN`VA\;8ahZo;5Q+7/o!Z<%:
*1;&sS'>-dIT+S7eu\cl$Oi8l%FKdn[i%/6%Cf;P5Mo`Ca-og:Hp@P]#i&RR=)lr
PXn`=4XdY`qUTSc0?6CTIn+Rl]0IL.BU,iWutD`O*E#[2-DqXb]%&;%L$+ilq\YVT%j]]eZVMBJD=G#Bp;+]fg9fcHK_Q\m*b)CXC@7]S.n6Q3'`bDoQPY4p8`IC
#kMGZb@DcGA,74Qpj]2r@V7M>ZZ%>7#[!QA_,2[d/6.FhSuC6o$S'f(afS
'[';:Xu&[m8ZG0).1P1mZm$,H25"PR1G+J:-:Il]423d`W3Vq]>d1gnKTNn<^="X
3\Ge)@*^pu7#\%D%7mDQC>:(.sHGObs=L?*Et2&
EK(g;@"Y[265urlZ[S$EW+ld83&o;BIBbk:o5#jc:7kq3ldXs9:N;L51EqW[?R@7
.-$@,SP?N2H?6n.6AR#;[1+X]dGZ7h9!aOuCI#:3R>-52809roK@:CTII
W1+eTW5(-X%L`@"KoP''tfceMBG.O3k!I_/gFFZJ%HFJ?rg/3m]96o;OMNq7/R?A"lq=O`d&O2XKn(bqenfM
*'Aeoa.7OB?c-YWGA[Se3Vc\j2&i\OOuDF>a5]mIm84_'83a]DIWYZ2/?&AGcFc&
F]ke]Gg2qrP[T'@-FcQ-S8633=1cGEgE_!;j+$i#oE@F3A0oA`"dX$r6W8EkW[Qc
(OJ>f/%U@+0.g\mT4,#unjZ(!<3b/\sHDR@*BZ'19S["DYSL0EFm*Y`QL;4^uE64
#K97?7ZmJAF(_:>_%Zdd/gNU.L
-b-bU#Y:V1dnNpuD6PK-bRjejeG/3-f'p4cfO#VfeTI!rJkS^GGV)Fp'S`!:K<7T
3AjQ)D=5lD2E*B=cA*m8/WPY0MhAF5$k>Y=[5>i0>Vac)0aSV+.WsXgPD>lj#<5#
!BKuM+7o-+WSZ^5P+FaZnukFQ;B'ZCn^:La#<;,N!'F,lmAK?WJ8O@u\%5:!C@:C
\_p=Srq.>a=lgHC7J[]MW;*K+8f].p$+K`Ma+>RWV9uNYQe-*4We-O-jjP-!D)0o
@c-o4a]2UM>b<'3WiJ1@STEb]*UMPNS
2TlWo#.%Ue=n@!kaAabB<4HQ(2D7:&kO,3;U>I7:eG*U:p[J3#VNg`h6WNV$?JQ=
[,j8]nV[_F-9,jBD^060U([OneP9pdn9
+Hga1rr=0B]5O4^mHQrC<3?F$@8Nf@pi6T0:BJ'Jct#1jKr647==GJ'aVar+5E._
kWd5^b&Xk1@);GH$Y&2b5T7E6YlHf_jPc3T!D6R8_.Tm'Y!6<&R7C0mjns>$+`L_
-LS8&ZM\Q_6eWbrVBO>,87KAN>\gV7m=KCl$O8t@Ck_LbR$Bst1&D3#+/"EB$,>?
JaP:ra10,q^Ed+S/RZF:FM2%Bp`1eJZ]q9i,sW7p;;/YM,GdfTVB
-8F94/nDmIc"$#kQcL@7gG`#aKW+>Ma6O8*5GsT?!SiO!E;A`JqOuEkjMO)8WOJI
V.J=L$.q,>JJX+1t2is(:MN2^;_WR@;gPEL>(8+eb&\'e/9kL9L.4D0%d@a:1*19F*nV/l3>J277*DkH*L2Hm?,:YJk
m,Leo^l_LHFhq4HYQQpA'9\tc8+.lBKn$\&)gI[EG,!/I$o
fn);'!<0C?lPMZ\c#eM]eNOh)jflTn?goWt"XFU7amDsZeli-'Z#C\QPV?2k%(Cb
9'@1U]?=1?MVl&tS=#nmmZSr1erZif8#Tl?=OHHWO-.^hT>mj4+-j>blS/bV$iT^
aL!43O+f/X,S6a1pVu0+hCn#^*`>GIjuGcd,TV:P-5WdQ
Rn'#Ci.Z6J?i'mr6OP*)@o;Cm@*KB:"4Ij35el\:t?a$<`m.VS+smuD+bV.b$@Z)ql>&72]c_ObBmXu;p5aHc*]Gr:`Lo"puFS>.bQ.;"UM_qc+fDHn7!eL4.l&,@7=
K\2R]sE$mm^QuA7k&X"6BZEZX33KhI-TGY@M%q2qN98"/a034bijU^]Im!HVE9hi
MLhc!bUmO<:9`.Uk&T#OIbkg&PKm,4r:ckMoS0
OKQ+Ac0t_fE7@K]>_pu1U)S8Ta#MB+'Jt-?bS>db&cd&Q%'$PRrZ!e8E6&c1%ZBZQn&`dW"l`Y4CI3?h&P*
SL85*qd]%unOUFu0-uS+NmLB[%tJ?$e\Jb9bDO2UdeXF)tssD-=h$*=K2"T*+Jm^
h=r37$S70\>EYU4sW"1OS(KqKkItB']POOcmqi-BU:pWF-Q23;VcP;aR\E?&$s!=
;l"i&LQ\o%(R(T'"U-
85UXYqI6dKT\QS"Ti:uO
%
p8KIdqMD+8GN7YXnW7G1D]l@;a>@]YX85c_!i^m0@SoNjq9Zsd[qRYEhEO>W(efT
8?N$0cic@%LYA+?Yd8jnRRX.$`#ll[HqLlI!J"aD!:O.Jq:T!*CDqWWG\/O<0H't
M0#!#X&GCFdg+$[(U^(.>3nk2[PuV6H[!`'EC3/"6?1frXmMDCaDgeu'4f%F%F8;(&gO5>(Pq],(5Co4f-B!7@Va5PfpgkN*A*e4dop
>pZ`4fo3Lod`CT\I(lJ\i9<"J(F>/$-Ker=`]F%GU.PWjb<
Ke-U\,Qm1DSZ\7$%fgO0&b15O\=B2C]h`REQUoPJ%8to'X1sOSje)3DNeP'QnLE'
\8sFC[i8fCMV'A93eoq&B2iM-riVnS*C@)b:/@Joo(qMdi.qA=MLK0Z3kMNZRBt[
;gZX$_F6_*`&6F'MKb*'$n7X;+Ih%sYfHs!tk"5dX6M^c0siB)g84GRYme630:!b
GYZ[\+;I_8MOk!j!C&N"7I>ZpdCJ?&c@*9ub]Q&XM5T*Zu?lr$`1%]<*pWlIDgM,
5\8U;M9Q\,R#4'r&C_$7j6WJZc/MXbW?s]_e=$[isFMGJ:.:0.P]M?fX#nse(?TA
WIkX+8RGq)<^?SuV#*Mp]hKHE1:5TBC53Q:5\2LA-/>1D,l79&5i#7uDV"2>F.FD
g]"9!!//7$40*rn'lXWsNm*1$EZ4a&^Z4]Ilqp6f_ZqPTu(I[`H^[.eKG2Vk`pj(
@P-HhDG3pQIV5mrjm4*.#/5MT9%*Z-oE'4sOHrfCbku[qa+2UJ
N=3=d%hbH4l8I0TKGsE&$sWm^+/5)B-d_o"q0YpQjSE,AP_epHPS=ka5b[&7F\U0e#nbmBAsBpJ=.OJ`]Kf:pjPg*&3I=(tp28>1O?djG3V<:0`>S=a
f":BL1q-8MHbcom?LmtfE"l1aE,kmXGP.WS[;4l/-_1dCj/suB,5p31aMO`(*+P&
gcf\?_6`7AaT@d/Ep#=^=dba37M$3853:f7i+VoJLX0cq/T'YdJ<9$'1;V0m$#<3
h.=j.Q.)`@/rOmY["1paYU)#Ec&I703qDO2.$f];gfXIg;<8jW@a''[tj>EDD$e.
N:q)5(3`JhJbXlVGQi]n7iT.rXXX@)5IcPppInEPS\jkq0:!f*JD>AZ'Ms4B-#nL
aoqno8%hR(g=#8CH+spe
&O\?1b74QXOIVol=)$*f:mA*;Op;&E,!q8+Id*Y\l\^++65,MI'H>Q2A'<`'73QTJr@RFRn.b$
2;UQ"R&QPnJg+OkaS1dQO_*d)PmW:9NK)60+r8
BBUS[i:pgOA8h^E7Idc:@&.;&d*m;e"ITU:eeq=0P!C@G
3h<,l`eNiY_'rJ(^]4im$3K"+!o(iX&8J5lS6j[/&cp!.k?:jWpf81HO>uWbTSk5
qRDBu!;GR2NUs\p2mI$:eY6a/K"T$]$llo&N/:,fi==o];;LRaeOuo,:[QbV=K`m
Eb<+BRP-("NbX="usLg5ti\G=i=m7E.F@C:kKNR[jK%-2@5VA!qP'W?si-`"1V$;
-J2)R$_I6CUkKk1O;E"0dkV-kAQpeufK?T
7_;N)SFZ6HrspAnDaL]cE^)j4Pe.Ni)YCm3[.c0P+HouBB?WH(!DFis9U!.U7T*\bT`Xcf,e$lT
e.!8$>k;@H7[l,^j!BBILY,HsD:T6Xc:p._HeIKd"Utcst;@_-'44^[51os5!,tg
Mn1"al@IN39Z@!npag_'W^;r"N%,:-IsK^SGaMc(*Xq+u_6&2)%cPS'GRbt5T&Ku
M=A0g`l-mZ\"5NbW0anClF$pK!phAP2-:g9I6V]^#?iH&r42J)SFa@]A9%"j.553
Um`bh`CF7W_fuZ[=OFd-h=?-j_pb75^.3M+,t[,3W#_83f*OKjue>UlUaEBUZYL9
g/bpX'sD`;"/MDQGsEWqF6?[b=$.(th+K0t4q_l9o>``5![BWa%eq!m<'-Q#XZEL
X=k>+%2]2'q'F^[J"S5[>l5Lc+3;YJh`2Yk\t*NJ#!oCW"(jNqr+iYI$sWO2m<:u6f1B
IiK'EN`9K'`m8+6[\iGY347tT#6_Z&["`!XJe+?*t%E+W*N]?l)UAD*+u.UnS>_*
+HV'T=XoffAOg7rj,bsE]fLt\AL.g5CWUQ55BQW>f&%QLo^c:#oN:c#QI>XR4'(s
E)'fW$)Q0euT_++Sa+JVQU-]/a'_Zpa`tb4Mm(*\g5!YTV/?)%%A]t8&W>0BlP3M
m)bfO>bOLCAh1?^_Cn>X)ln>+16hr17b/^`,\qO@8gF.A\;;dK%_n`Vn2!./Qf-#
C5iE0Y(EF2_AVUA+@]MV%9SgE\`u)!j^T77k1">O!;'gI7t4rmlr>l`=V#"XJ/Jo
?Aq^h+s!,7[DR"C#DWU;h0ka=?eiVg&_bUZ0B#H[j_SfLI7%Z!Vf0V5#m[@qVJRU
\PXIZ`ePW4rr=P.0GH$Xk`s,AXZdV+K$nU5Gcc#V%bU0Y/Q0`]gQTp.TUFC#PJ*k
dO-$:K6([GH"e`/$g]